essor 0.0.8 → 0.0.10-beta.21
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/LICENSE +20 -20
- package/dist/essor.cjs.js +50 -30
- package/dist/essor.cjs.js.map +1 -1
- package/dist/essor.d.cts +4 -2439
- package/dist/essor.d.ts +4 -2439
- package/dist/essor.dev.cjs.js +234 -486
- package/dist/essor.dev.esm.js +232 -485
- package/dist/essor.esm.js +22 -3
- package/dist/essor.esm.js.map +1 -1
- package/package.json +4 -3
- package/types/component.d.ts +0 -18
- package/types/index.d.ts +0 -3
- package/types/jsx.d.ts +0 -2182
- package/types/node.d.ts +0 -16
package/dist/essor.esm.js
CHANGED
|
@@ -1,6 +1,25 @@
|
|
|
1
|
-
var _e=Object.defineProperty;var me=Object.getOwnPropertySymbols;var Le=Object.prototype.hasOwnProperty,We=Object.prototype.propertyIsEnumerable;var he=(e,t,n)=>t in e?_e(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,E=(e,t)=>{for(var n in t||(t={}))Le.call(t,n)&&he(e,n,t[n]);if(me)for(var n of me(t))We.call(t,n)&&he(e,n,t[n]);return e};var ge="0.0.7";var k=e=>e!==null&&typeof e=="object";var C=Array.isArray;function U(e){return typeof e=="string"}function Pe(e){return e===null}function ye(e){return e==null}var p=e=>typeof e=="function";function Z(e){return e===!1||e===null||e===void 0||e===""}var w=e=>["string","number","boolean","symbol","undefined"].includes(typeof e)||Pe(e);function Q(e){return e?e&&typeof e=="object"&&e.nodeType===1&&typeof e.nodeName=="string":!1}function Y(e){return Array.isArray(e)?e.flat():[e]}var J=(e,t)=>e!==t&&(e===e||t===t),Te=Function.prototype;function y(e,t){return U(e)?e.indexOf(t)===0:!1}function M(e,t=new WeakMap){if(e===null||typeof e!="object")return e;if(t.has(e))return t.get(e);if(e instanceof Date)return new Date(e);if(e instanceof RegExp)return new RegExp(e);if(e instanceof Map){let s=new Map;return t.set(e,s),e.forEach((o,i)=>{s.set(M(i,t),M(o,t));}),s}if(e instanceof Set){let s=new Set;return t.set(e,s),e.forEach(o=>{s.add(M(o,t));}),s}let n=Array.isArray(e)?[]:{};t.set(e,n);let r=Object.keys(e);for(let s of r)n[s]=M(e[s],t);return n}function _(e,t,n=new WeakMap){if(w(e)&&w(t))return e===t;if(e===t)return !0;if(e==null||t==null||typeof e!="object"||typeof t!="object"||e.constructor!==t.constructor)return !1;if(n.has(e))return n.get(e)===t;if(n.set(e,t),Array.isArray(e)){if(e.length!==t.length)return !1;for(let[o,i]of e.entries())if(!_(i,t[o],n))return !1;return !0}if(e instanceof Map){if(e.size!==t.size)return !1;for(let[o,i]of e)if(!t.has(o)||!_(i,t.get(o),n))return !1;return !0}if(e instanceof Set){if(e.size!==t.size)return !1;let o=Array.from(e).sort(),i=Array.from(t).sort();for(let[a,c]of o.entries())if(!_(c,i[a],n))return !1;return !0}let r=Object.keys(e),s=new Set(Object.keys(t));if(r.length!==s.size)return !1;for(let o of r)if(!s.has(o)||!_(e[o],t[o],n))return !1;return !0}function I(e,t){return Array.isArray(t)?t.includes(e):p(t)?t(e):!1}var be=e=>e.replaceAll(/[A-Z]+/g,(t,n)=>`${n>0?"-":""}${t.toLocaleLowerCase()}`);var ve=e=>e.charAt(0).toUpperCase()+e.slice(1);var A=null,L=null,te=new WeakMap,ne=new WeakMap,re=new Set,ee=new WeakMap,He=["push","pop","shift","unshift","splice","sort","reverse"];function W(e,t){if(!A&&!L)return;let n=ne.get(e);n||(n=new Map,ne.set(e,n));let r=n.get(t);r||(r=new Set,n.set(t,r)),A&&r.add(A);let s=te.get(e);s||(s=new Map,te.set(e,s));let o=s.get(t);o||(o=new Set,s.set(t,o)),L&&o.add(L);}function P(e,t){let n=ne.get(e);if(!n)return;let r=n.get(t);r&&r.forEach(o=>re.has(o)&&o());let s=te.get(e);if(s){let o=s.get(t);o&&o.forEach(i=>i.run());}}var G=class{constructor(t){this._value=t;}valueOf(){return W(this,"_sv"),this.__triggerObject(),this._value}toString(){return W(this,"_sv"),this.__triggerObject(),String(this._value)}toJSON(){return this._value}get value(){return W(this,"_sv"),this.__triggerObject(),this._value}__triggerObject(){!w(this._value)&&!Q(this._value)&&O(this._value);}set value(t){d(t)&&(console.warn("Signal cannot be set to another signal, use .peek() instead"),t=t.peek()),J(t,this._value)&&(this._value=t,!w(this._value)&&!Q(this._value)&&this.__triggerObject(),P(this,"_sv"));}peek(){return this._value}update(){P(this,"_sv");}};function H(e){return d(e)?e:new G(e)}function d(e){return e instanceof G}var D=class{constructor(t){this.fn=t;let n=L;L=this,this._value=this.fn(),L=n;}peek(){return this._value}run(){let t=this.fn();J(t,this._value)&&(this._value=t,P(this,"_cv"));}get value(){return W(this,"_cv"),this._value}};function oe(e){return new D(e)}function X(e){return e instanceof D}function x(e){function t(){let n=A;A=t,e(),A=n;}return re.add(t),t(),()=>{re.delete(t),A=null;}}function se(e,t){return Object.entries(e).reduce((r,[s,o])=>(r[s]=I(s,t)||d(o)?o:H(o),r),{})}function xe(e,t){return e?d(e)?e.peek():C(e)?e.map(n=>xe(n,t)):k(e)?Object.entries(e).reduce((n,[r,s])=>(I(r,t)?n[r]=s:n[r]=d(s)?s.peek():s,n),{}):e:{}}var Ne=Symbol("useReactive");function $(e){return e&&e[Ne]===!0}function $e(e){return $(e)?E({},e):e}function O(e,t){if(!k(e)||$(e))return e;if(ee.has(e))return ee.get(e);Array.isArray(e)&&He.forEach(s=>{let o=e[s];W(e,"length"),Object.defineProperties(e,{[s]:{value(...i){let a=o.apply(this,i);return P(e,"length"),a},enumerable:!1,configurable:!0,writable:!0}});});let n={get(s,o,i){if(o===Ne||y(o,"_"))return !0;let a=Reflect.get(s,o,i),c=d(a)?a.value:a;return I(o,t)?c:(W(s,o),k(c)?O(c):c)},set(s,o,i,a){if(I(o,t))return Reflect.set(s,o,i,a),!0;let c=Reflect.get(s,o,a);d(c)&&(c=c.value),d(i)&&(i=i.value);let f=Reflect.set(s,o,i,a);return J(i,c)&&P(s,o),f},deleteProperty(s,o){let i=Reflect.get(s,o),a=Reflect.deleteProperty(s,o);return i!==void 0&&P(s,o),a}},r=new Proxy(e,n);return ee.set(e,r),r}function ie(e,...t){console.warn.apply(console,[`[Essor warn]: ${e}`].concat(t));}function Ke(e,t,n){return Fe(e,t,n)}function Fe(e,t,n){let r,s=n==null?void 0:n.deep;if(d(e)||X(e)?r=()=>e.value:$(e)?r=()=>E({},e):C(e)?r=()=>e.map(c=>d(c)||X(c)?c.value:$(c)?E({},c):p(c)?c():ie("Invalid source",c)):p(e)?r=e:(ie("Invalid source type",e),r=Te),t&&s){let c=r;r=()=>K(c());}let o,i=()=>{let c=M(r());_(c,o)||(t&&t(c,o),o=w(c)?c:M(c));},a=x(i);return n!=null&&n.immediate&&i(),a}function K(e,t=new Set){return !k(e)||t.has(e)||(t.add(e),C(e)?e.forEach(n=>K(n,t)):e instanceof Map?e.forEach((n,r)=>{K(r,t),K(n,t);}):e instanceof Set?e.forEach(n=>K(n,t)):Object.keys(e).forEach(n=>{K(e[n],t);})),e}var z=0,ae=new Map;function Ie(e){let{state:t,getters:n,actions:r}=e,s=E({},t!=null?t:{}),o=O(t!=null?t:{},u=>p(u)),i=[],a=[],f=E({state:o},{patch$(u){Object.assign(o,u),i.forEach(l=>l(o)),a.forEach(l=>l(o));},subscribe$(u){i.push(u);},unsubscribe$(u){let l=i.indexOf(u);l!==-1&&i.splice(l,1);},onAction$(u){a.push(u);},reset$(){Object.assign(o,s);}});for(let u in n){let l=n[u];l&&(f[u]=oe(l.bind(o,o)));}for(let u in r){let l=r[u];l&&(f[u]=l.bind(o));}return ae.set(z,f),++z,f}function Je(e){return function(){return ae.has(z)?ae.get(z):Ie(e)}}var N=class N{constructor(t,n){this.template=t;this.props=n;this.proxyProps={};this.context={};this.emitter=new Set;this.mounted=!1;this.rootNode=null;this.hooks={mounted:new Set,destroy:new Set};this.trackMap=new Map;this.proxyProps=se(n,r=>y(r,"on")||y(r,"update"));}addEventListener(){}removeEventListener(){}get firstChild(){var t,n;return (n=(t=this.rootNode)==null?void 0:t.firstChild)!=null?n:null}get isConnected(){var t,n;return (n=(t=this.rootNode)==null?void 0:t.isConnected)!=null?n:!1}addHook(t,n){var r;(r=this.hooks[t])==null||r.add(n);}getContext(t){return N.context[t]}setContext(t,n){N.context[t]=n;}inheritNode(t){this.context=t.context,this.hooks=t.hooks,Object.assign(this.proxyProps,t.proxyProps),this.rootNode=t.rootNode,this.trackMap=t.trackMap;let n=this.props;this.props=t.props,this.patchProps(n);}unmount(){var t;this.hooks.destroy.forEach(n=>n()),Object.values(this.hooks).forEach(n=>n.clear()),(t=this.rootNode)==null||t.unmount(),this.rootNode=null,this.proxyProps={},this.mounted=!1,this.emitter.forEach(n=>n()),N.context={};}mount(t,n){var s,o,i,a;if(!p(this.template))throw new Error("Template must be a function");if(this.isConnected)return (o=(s=this.rootNode)==null?void 0:s.mount(t,n))!=null?o:[];N.ref=this,this.rootNode=this.template(O(this.proxyProps,["children"])),N.ref=null,this.mounted=!0;let r=(a=(i=this.rootNode)==null?void 0:i.mount(t,n))!=null?a:[];return this.hooks.mounted.forEach(c=>c()),this.patchProps(this.props),r}getNodeTrack(t,n){let r=this.trackMap.get(t);return r||(r={cleanup:()=>{}},this.trackMap.set(t,r)),n||r.cleanup(),r}patchProps(t){var n,r,s,o,i;for(let[a,c]of Object.entries(t))if(y(a,"on")&&((n=this.rootNode)!=null&&n.nodes)){let f=a.slice(2).toLowerCase(),u=c,l=b(this.rootNode.nodes[0],f,u);this.emitter.add(l);}else if(a==="ref")d(c)?t[a].value=(r=this.rootNode)==null?void 0:r.nodes[0]:p(c)&&t[a]((s=this.rootNode)==null?void 0:s.nodes[0]);else if(y(a,"update"))t[a]=d(c)?c.value:c;else if(a!=="children"){let f=(i=(o=this.proxyProps)[a])!=null?i:o[a]=H(c),u=this.getNodeTrack(a);u.cleanup=x(()=>{f.value=p(c)?c():c;});}this.props=t;}};N.ref=null,N.context={};var T=N;function Ge(e,t){return U(e)&&(ke(e)&&(e=Ce(e),t={1:t}),e===""&&(t={0:t}),e=Se(e)),p(e)?new T(e,t):new F(e,t)}function v(e){return e instanceof T||e instanceof F}function Se(e){e=Ee(e);let t=document.createElement("template");return t.innerHTML=e,t}function De(e){return e.children}function ce(e){if(v(e)||e instanceof Node)return e;let t=Z(e)?"":String(e);return document.createTextNode(t)}function S(e,t,n=null){let r=v(n)?n.firstChild:n;v(t)?t.mount(e,r):r?r.before(t):e.append(t);}function j(e){v(e)?e.unmount():e.parentNode&&e.remove();}function ue(e,t,n){S(e,t,n),j(n);}function le(e,t,n){if(t==="class"){typeof n=="string"?e.className=n:Array.isArray(n)?e.className=n.join(" "):n&&typeof n=="object"&&(e.className=Object.entries(n).reduce((r,[s,o])=>r+(o?` ${s}`:""),"").trim());return}if(t==="style"){if(typeof n=="string")e.style.cssText=n;else if(n&&typeof n=="object"){let r=n;Object.keys(r).forEach(s=>{e.style.setProperty(be(s),String(r[s]));});}return}Z(n)?e.removeAttribute(t):n===!0?e.setAttribute(t,""):e.setAttribute(t,String(n));}function we(e,t){if(e instanceof HTMLInputElement){if(e.type==="checkbox")return b(e,"change",()=>{t(!!e.checked);});if(e.type==="date")return b(e,"change",()=>{t(e.value?e.value:"");});if(e.type==="file")return b(e,"change",()=>{e.files&&t(e.files);});if(e.type==="number")return b(e,"input",()=>{let n=Number.parseFloat(e.value);t(Number.isNaN(n)?"":String(n));});if(e.type==="radio")return b(e,"change",()=>{t(e.checked?e.value:"");});if(e.type==="text")return b(e,"input",()=>{t(e.value);})}if(e instanceof HTMLSelectElement)return b(e,"change",()=>{t(e.value);});if(e instanceof HTMLTextAreaElement)return b(e,"input",()=>{t(e.value);})}var Me=Promise.resolve();function Xe(e){return e?Me.then(e):Me}function b(e,t,n){return e.addEventListener(t,n),()=>e.removeEventListener(t,n)}var Ae=["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","wbr"],ze=["a","abbr","acronym","address","applet","area","article","aside","audio","b","base","basefont","bdi","bdo","bgsound","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","command","content","data","datalist","dd","del","details","dfn","dialog","dir","div","dl","dt","em","embed","fieldset","figcaption","figure","font","footer","form","frame","frameset","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","iframe","image","img","input","ins","kbd","keygen","label","legend","li","link","listing","main","map","mark","marquee","menu","menuitem","meta","meter","nav","nobr","noframes","noscript","object","ol","optgroup","option","output","p","param","picture","plaintext","pre","progress","q","rb","rp","rt","rtc","ruby","s","samp","script","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","tt","u","ul","var","video","wbr","xmp"];function Ee(e){let t=[],n=[],r=/<\/?([\da-z-]+)([^>]*)>/gi,s=0;for(;;){let o=r.exec(e);if(!o)break;let[i,a,c]=o,f=i[1]==="/";if(n.push(e.slice(s,o.index)),s=o.index+i.length,f){for(;t.length>0&&t[t.length-1]!==a;){let u=t.pop();u&&n.push(`</${u}>`);}t.length>0&&(t.pop(),n.push(i));}else Ae.includes(a)?n.push(i):(t.push(a),n.push(`<${a}${c}>`));}for(n.push(e.slice(s));t.length>0;){let o=t.pop();o&&n.push(`</${o}>`);}return n.join("")}function ke(e){return ze.includes(e)}function Ce(e){return Ae.includes(e)?`<${e}/>`:`<${e}></${e}>`}function Oe(e,t,n,r){let s=new Map,o=Array.from(t.values()),i=o.length;if(t.size>0&&n.length===0){if(e.childNodes.length===i+(r?1:0))e.innerHTML="",r&&S(e,r);else {let u=document.createRange(),l=o[0],g=v(l)?l.firstChild:l;u.setStartBefore(g),r?u.setEndBefore(r):u.setEndAfter(e),u.deleteContents();}return o.forEach(u=>{v(u)&&u.unmount();}),s}let a=[],c=qe(n),f=0;for(let[u,l]of n.entries()){let g=o[f],R=B(g,u);for(;g&&!c.has(R);)j(g),t.delete(R),g=o[++f],R=B(g,u);let pe=B(l,u),V=t.get(pe);if(V&&(l=Be(e,V,l)),g)if(g===V)f++;else {let de=document.createComment("");S(e,de,g),a.push([de,l]);}else S(e,l,r);s.set(pe,l);}return a.forEach(([u,l])=>ue(e,l,u)),t.forEach((u,l)=>{u.isConnected&&!s.has(l)&&j(u);}),s}function Be(e,t,n){return t===n?t:v(t)&&v(n)&&t.template===n.template?(n.inheritNode(t),n):t instanceof Text&&n instanceof Text?(t.textContent!==n.textContent&&(t.textContent=n.textContent),t):(ue(e,n,t),n)}function qe(e){let t=new Map;for(let[n,r]of e.entries()){let s=B(r,n);t.set(s,r);}return t}function B(e,t){let n=e instanceof Element?e.id:void 0,r=n===""?void 0:n;return r!=null?r:`_$${t}$`}var F=class e{constructor(t,n){this.template=t;this.props=n;this.treeMap=new Map;this.mounted=!1;this.nodes=[];this.provides={};this.trackMap=new Map;this.parent=null;}get firstChild(){var t;return (t=this.nodes[0])!=null?t:null}get isConnected(){return this.mounted}addEventListener(){}removeEventListener(){}unmount(){this.trackMap.forEach(t=>{var n,r;(n=t.cleanup)==null||n.call(t),(r=t.lastNodes)==null||r.forEach(s=>{t.isRoot?j(s):s instanceof e&&s.unmount();});}),this.trackMap.clear(),this.treeMap.clear(),this.nodes.forEach(t=>j(t)),this.nodes=[],this.mounted=!1;}mount(t,n){var o;if(this.parent=t,this.isConnected)return this.nodes.forEach(i=>S(t,i,n)),this.nodes;let r=this.template.content.cloneNode(!0),s=r.firstChild;return (o=s==null?void 0:s.hasAttribute)!=null&&o.call(s,"_svg_")&&(s.remove(),s==null||s.childNodes.forEach(i=>{r.append(i);})),this.nodes=Array.from(r.childNodes),this.mapNodeTree(t,r),S(t,r,n),this.patchNodes(this.props),this.mounted=!0,this.nodes}mapNodeTree(t,n){let r=1;this.treeMap.set(0,t);let s=o=>{o.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&this.treeMap.set(r++,o);let i=o.firstChild;for(;i;)s(i),i=i.nextSibling;};s(n);}patchNodes(t){for(let n in t){let r=Number(n),s=this.treeMap.get(r);if(s){let o=this.props[n];this.patchNode(n,s,o,r===0);}}this.props=t;}getNodeTrack(t,n,r){var o;let s=this.trackMap.get(t);return s||(s={cleanup:()=>{}},n&&(s.lastNodes=new Map),r&&(s.isRoot=!0),this.trackMap.set(t,s)),(o=s.cleanup)==null||o.call(s),s}inheritNode(t){this.mounted=t.mounted,this.nodes=t.nodes,this.trackMap=t.trackMap,this.treeMap=t.treeMap;let n=this.props;this.props=t.props,this.patchNodes(n);}patchNode(t,n,r,s){for(let o in r)if(o==="children"&&r.children)if(C(r.children))r.children.filter(Boolean).forEach((i,a)=>{var R;let[c,f]=C(i)?i:[i,null],u=ye(f)?null:(R=this.treeMap.get(f))!=null?R:null,l=`${t}:${o}:${a}`,g=this.getNodeTrack(l,!0,s);Re(g,n,c,u);});else {let i=`${t}:${o}:0`,a=this.getNodeTrack(i,!0,s);Re(a,n,r.children,null);}else if(o==="ref")d(r[o])?r[o].value=n:p(r[o])&&r[o](n);else if(y(o,"on")){let i=o.slice(2).toLocaleLowerCase(),a=this.getNodeTrack(`${t}:${o}`),c=r[o];a.cleanup=b(n,i,c);}else if(!y(o,"update")){let i=this.getNodeTrack(`${t}:${o}`),a=r[o],c=d(a)?a:H(a);je(i,n,o,c.value);let f=x(()=>{c.value=d(a)?a.value:a,je(i,n,o,c.value);}),u,l=`update${ve(o)}`;r[l]&&(u=we(n,g=>{r[l](g);})),i.cleanup=()=>{f&&f(),u&&u();};}}};function je(e,t,n,r){let s=t;s.setAttribute&&(p(r)?e.cleanup=x(()=>{le(s,n,r());}):le(s,n,r));}function Re(e,t,n,r){p(n)?e.cleanup=x(()=>{let s=Y(n()).map(ce);e.lastNodes=Oe(t,e.lastNodes,s,r);}):Y(n).forEach((s,o)=>{let i=ce(s);e.lastNodes.set(String(o),i),S(t,i,r);});}function Ve(e){var t;q("onMounted"),(t=T.ref)==null||t.addHook("mounted",e);}function Ue(e){var t;q("onDestroy"),(t=T.ref)==null||t.addHook("destroy",e);}function q(e){T.ref||console.error(`"${e}" can only be called within the component function body
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* essor v0.0.10-beta.20
|
|
3
|
+
* (c) 2023-Present jiangxd <jiangxd2016@gmail.com>
|
|
4
|
+
* @license MIT
|
|
5
|
+
**/
|
|
6
|
+
var rt="0.0.10-beta.20";var st=t=>t!==null&&typeof t=="object";var D=Array.isArray;function K(t){return typeof t=="string"}function ot(t){return t==null}var d=t=>typeof t=="function";function B(t){return t===!1||t===null||t===void 0}function q(t){return Array.isArray(t)?t.flat():[t]}function v(t,e){return K(t)?t.indexOf(e)===0:!1}var it=t=>t.replaceAll(/[A-Z]+/g,(e,n)=>`${n>0?"-":""}${e.toLocaleLowerCase()}`);var ct=t=>t.charAt(0).toUpperCase()+t.slice(1);var kt=Object.defineProperty,at=Object.getOwnPropertySymbols,At=Object.prototype.hasOwnProperty,Ot=Object.prototype.propertyIsEnumerable,ut=(t,e,n)=>e in t?kt(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,C=(t,e)=>{for(var n in e||(e={}))At.call(e,n)&&ut(t,n,e[n]);if(at)for(var n of at(e))Ot.call(e,n)&&ut(t,n,e[n]);return t},J=t=>t!==null&&typeof t=="object",dt=Array.isArray;function jt(t){return typeof t=="string"}function xt(t){return t===null}function $t(t){return P.call(t)==="[object Set]"}function Pt(t){return P.call(t)==="[object WeakMap]"}function Lt(t){return P.call(t)==="[object WeakSet]"}function Rt(t){return P.call(t)==="[object Map]"}var U=t=>typeof t=="function",lt=t=>["string","number","boolean","symbol","undefined"].includes(typeof t)||xt(t);function ft(t){return t?t&&typeof t=="object"&&t.nodeType===1&&typeof t.nodeName=="string":!1}var P=Object.prototype.toString,L=(t,e)=>t!==e&&(t===t||e===e),Wt=Function.prototype;function Ht(t,e){return jt(t)?t.indexOf(e)===0:!1}function x(t,e){return Array.isArray(e)?e.includes(t):U(e)?e(t):!1}function ht(t,...e){console.warn.apply(console,[`[Essor warn]: ${t}`].concat(e));}var b=null,_=null,G=new WeakMap,Z=new WeakMap,Q=new Set,z=new WeakMap,Ft=["push","pop","shift","unshift","splice","sort","reverse"];function R(t,e){if(!b&&!_)return;let n=Z.get(t);n||(n=new Map,Z.set(t,n));let r=n.get(e);r||(r=new Set,n.set(e,r)),b&&r.add(b);let o=G.get(t);o||(o=new Map,G.set(t,o));let s=o.get(e);s||(s=new Set,o.set(e,s)),_&&s.add(_);}function E(t,e){let n=Z.get(t);if(!n)return;let r=n.get(e);r&&r.forEach(s=>Q.has(s)&&s());let o=G.get(t);if(o){let s=o.get(e);s&&s.forEach(c=>c.run());}}var Y=class{constructor(t,e=!1){this._value=t,this._shallow=e;}get value(){return R(this,"_sv"),this.__triggerObject(),this._value}__triggerObject(){!lt(this._value)&&!ft(this._value)&&!this._shallow&&T(this._value);}set value(t){p(t)&&(console.warn("Signal cannot be set to another signal, use .peek() instead"),t=t.peek()),L(t,this._value)&&(this._value=t,!lt(this._value)&&!ft(this._value)&&this.__triggerObject(),E(this,"_sv"));}peek(){return this._value}};function W(t){return p(t)?t:new Y(t)}function ae(t){return new Y(t,!0)}function p(t){return t instanceof Y}var mt=class{constructor(t){this.fn=t;let e=_;_=this,this._value=this.fn(),_=e;}peek(){return this._value}run(){let t=this.fn();L(t,this._value)&&(this._value=t,E(this,"_cv"));}get value(){return R(this,"_cv"),this._value}};function It(t){return new mt(t)}function pt(t){return t instanceof mt}function w(t){function e(){let n=b;b=e,t(),b=n;}return Q.add(e),e(),()=>{Q.delete(e),b=null;}}function vt(t,e){return Object.entries(t).reduce((r,[o,s])=>(r[o]=x(o,e)||p(s)?s:W(s),r),{})}function Dt(t,e){return t?p(t)?t.peek():dt(t)?t.map(n=>Dt(n,e)):J(t)?Object.entries(t).reduce((n,[r,o])=>(x(r,e)?n[r]=o:n[r]=p(o)?o.peek():S(o)?Kt(o):o,n),{}):t:{}}var gt=Symbol("useReactive");function S(t){return t&&t[gt]===!0}function Kt(t){return S(t)?C({},t):t}function Bt(t){Ft.forEach(e=>{let n=Array.prototype[e];R(t,"length"),Object.defineProperty(t,e,{value(...r){let o=n.apply(this,r);return ["push","pop","shift","unshift","splice","sort","reverse"].includes(e)&&E(t,"length"),o},enumerable:!1,writable:!0,configurable:!0});});}function T(t,e){return bt(t,e,!1)}function ue(t,e){return bt(t,e,!0)}function bt(t,e,n=!1){if(!J(t)||S(t))return t;if(z.has(t))return z.get(t);if(Array.isArray(t)&&Bt(t),$t(t)||Rt(t)||Lt(t)||Pt(t))return t;let r={get(s,c,i){if(c===gt||Ht(c,"_"))return !0;let a=Reflect.get(s,c,i),l=p(a)?a.value:a;return x(c,e)?l:(R(s,c),J(l)&&!n?T(l):l)},set(s,c,i,a){if(x(c,e))return Reflect.set(s,c,i,a),!0;let l=Reflect.get(s,c,a);p(l)&&(l=l.value),p(i)&&(i=i.value);let u=Reflect.set(s,c,i,a);return L(i,l)&&E(s,c),u},deleteProperty(s,c){let i=Reflect.get(s,c),a=Reflect.deleteProperty(s,c);return i!==void 0&&E(s,c),a}},o=new Proxy(t,r);return z.set(t,o),o}function qt(t,e,n){return zt(t,e,n)}function zt(t,e,n){let r;p(t)||pt(t)?r=()=>t.value:S(t)?r=()=>C({},t):dt(t)?r=()=>t.map(i=>p(i)||pt(i)?i.value:S(i)?C({},i):U(i)?i():ht("Invalid source",i)):U(t)?r=t:(ht("Invalid source type",t),r=Wt);let o,s=()=>{let i=r();(n!=null&&n.deep||L(i,o))&&(e&&e(i,o),o=i);},c=w(s);return n!=null&&n.immediate&&s(),c}var $=0,X=new Map;function Jt(t){let{state:e,getters:n,actions:r}=t,o=C({},e!=null?e:{}),s=T(e!=null?e:{}),c=[],i=[],l=C({state:s},{patch$(u){Object.assign(s,u),c.forEach(f=>f(s)),i.forEach(f=>f(s));},subscribe$(u){c.push(u);},unsubscribe$(u){let f=c.indexOf(u);f!==-1&&c.splice(f,1);},onAction$(u){i.push(u);},reset$(){Object.assign(s,o);}});for(let u in n){let f=n[u];f&&qt(It(f.bind(s,s)),h=>{l[u]=h;});}for(let u in r){let f=r[u];f&&(l[u]=f.bind(s));}return X.set($,l),++$,l}function le(t){return function(){return X.has($)?X.get($):Jt(t)}}var V=class k{constructor(e,n){this.template=e,this.props=n,this.proxyProps={},this.context={},this.emitter=new Set,this.mounted=!1,this.rootNode=null,this.hooks={mounted:new Set,destroy:new Set},this.trackMap=new Map,this.proxyProps=vt(n,r=>v(r,"on")||v(r,"update"));}addEventListener(){}removeEventListener(){}get firstChild(){var e,n;return (n=(e=this.rootNode)==null?void 0:e.firstChild)!=null?n:null}get isConnected(){var e,n;return (n=(e=this.rootNode)==null?void 0:e.isConnected)!=null?n:!1}addHook(e,n){var r;(r=this.hooks[e])==null||r.add(n);}getContext(e){return k.context[e]}setContext(e,n){k.context[e]=n;}inheritNode(e){this.context=e.context,this.hooks=e.hooks,Object.assign(this.proxyProps,e.proxyProps),this.rootNode=e.rootNode,this.trackMap=e.trackMap;let n=this.props;this.props=e.props,this.patchProps(n);}mount(e,n){var r,o,s,c;if(!d(this.template))throw new Error("Template must be a function");if(this.isConnected)return (o=(r=this.rootNode)==null?void 0:r.mount(e,n))!=null?o:[];k.ref=this,this.rootNode=this.template(T(this.proxyProps,["children"])),k.ref=null,this.mounted=!0;let i=(c=(s=this.rootNode)==null?void 0:s.mount(e,n))!=null?c:[];return this.hooks.mounted.forEach(a=>a()),this.patchProps(this.props),i}unmount(){var e;this.hooks.destroy.forEach(n=>n()),Object.values(this.hooks).forEach(n=>n.clear()),(e=this.rootNode)==null||e.unmount(),this.rootNode=null,this.proxyProps={},this.mounted=!1,this.emitter.forEach(n=>n());}getNodeTrack(e,n){let r=this.trackMap.get(e);return r||(r={cleanup:()=>{}},this.trackMap.set(e,r)),n||r.cleanup(),r}patchProps(e){var n,r,o,s,c;for(let[i,a]of Object.entries(e))if(v(i,"on")&&((n=this.rootNode)!=null&&n.nodes)){let l=i.slice(2).toLowerCase(),u=a,f=m(this.rootNode.nodes[0],l,u);this.emitter.add(f);}else if(i==="ref")p(a)?e[i].value=(r=this.rootNode)==null?void 0:r.nodes[0]:d(a)&&e[i]((o=this.rootNode)==null?void 0:o.nodes[0]);else if(v(i,"update"))e[i]=p(a)?a.value:a;else if(i!=="children"){let l=(c=(s=this.proxyProps)[i])!=null?c:s[i]=W(a),u=this.getNodeTrack(i);u.cleanup=w(()=>{l.value=d(a)?a():a;});}this.props=e;}};V.ref=null;V.context={};var N=V;function ge(t,e){return K(t)&&(Xt(t)&&(t=Yt(t),e={1:e}),t===""&&(e={0:e}),t=Ut(t)),d(t)?new N(t,e):new St(t,e)}function g(t){return t instanceof N||t instanceof St}function Ut(t){t=Qt(t);let e=document.createElement("template");return e.innerHTML=t,e}function be(t){return t.children}var Ct="area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr",Gt="a,abbr,acronym,address,applet,area,article,aside,audio,b,base,basefont,bdi,bdo,bgsound,big,blink,blockquote,body,br,button,canvas,caption,center,cite,code,col,colgroup,command,content,data,datalist,dd,del,details,dfn,dialog,dir,div,dl,dt,em,embed,fieldset,figcaption,figure,font,footer,form,frame,frameset,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,i,iframe,image,img,input,ins,kbd,keygen,label,legend,li,link,listing,main,map,mark,marquee,menu,menuitem,meta,meter,nav,nobr,noframes,noscript,object,ol,optgroup,option,output,p,param,picture,plaintext,pre,progress,q,rb,rp,rt,rtc,ruby,s,samp,script,section,select,shadow,small,source,spacer,span,strike,strong,style,sub,summary,sup,table,tbody,td,template,textarea,tfoot,th,thead,time,title,tr,track,tt,u,ul,var,video,wbr,xmp";function yt(t){if(g(t)||t instanceof Node)return t;let e=B(t)?"":String(t);return document.createTextNode(e)}function y(t,e,n=null){let r=g(n)?n.firstChild:n;g(e)?e.mount(t,r):r?r.before(e):t.append(e);}function A(t){g(t)?t.unmount():t.parentNode&&t.remove();}function Et(t,e,n){y(t,e,n),A(n);}function Nt(t,e,n){if(e==="class"){typeof n=="string"?t.className=n:Array.isArray(n)?t.className=n.join(" "):n&&typeof n=="object"&&(t.className=Object.entries(n).reduce((r,[o,s])=>r+(s?` ${o}`:""),"").trim());return}if(e==="style"){if(typeof n=="string")t.style.cssText=n;else if(n&&typeof n=="object"){let r=n;Object.keys(r).forEach(o=>{t.style.setProperty(it(o),String(r[o]));});}return}B(n)?t.removeAttribute(e):n===!0?t.setAttribute(e,""):t instanceof HTMLInputElement?t.value=String(n):t.setAttribute(e,String(n));}function Zt(t,e){if(t instanceof HTMLInputElement)switch(t.type){case"checkbox":return m(t,"change",()=>{e(!!t.checked);});case"date":return m(t,"change",()=>{e(t.value?t.value:"");});case"file":return m(t,"change",()=>{t.files&&e(t.files);});case"number":return m(t,"input",()=>{let n=Number.parseFloat(t.value);e(Number.isNaN(n)?"":String(n));});case"radio":return m(t,"change",()=>{e(t.checked?t.value:"");});case"text":return m(t,"input",()=>{e(t.value);})}if(t instanceof HTMLSelectElement)return m(t,"change",()=>{e(t.value);});if(t instanceof HTMLTextAreaElement)return m(t,"input",()=>{e(t.value);})}var _t=Promise.resolve();function ye(t){return t?_t.then(t):_t}function m(t,e,n){return t.addEventListener(e,n),()=>t.removeEventListener(e,n)}function Qt(t){let e=Ct.split(","),n=[],r=[],o=/<\/?([\da-z-]+)([^>]*)>/gi,s=0;for(;;){let c=o.exec(t);if(!c)break;let[i,a]=c,l=i[1]==="/";if(r.push(t.slice(s,c.index)),s=c.index+i.length,l){for(;n.length>0&&n[n.length-1]!==a;){let u=n.pop();u&&r.push(`</${u}>`);}n.length>0&&n.pop();}else e.includes(a)||n.push(a);r.push(i);}for(r.push(t.slice(s));n.length>0;){let c=n.pop();c&&r.push(`</${c}>`);}return r.join("")}function Xt(t){return Gt.split(",").includes(t)}function Yt(t){return Ct.split(",").includes(t)?`<${t}/>`:`<${t}></${t}>`}function Vt(t,e,n,r){let o=new Map,s=Array.from(e.values()),c=s.length;if(e.size>0&&n.length===0){if(t.childNodes.length===c+(r?1:0))t.innerHTML="",r&&y(t,r);else {let u=document.createRange(),f=s[0],h=g(f)?f.firstChild:f;u.setStartBefore(h),r?u.setEndBefore(r):u.setEndAfter(t),u.deleteContents();}return s.forEach(u=>{g(u)&&u.unmount();}),o}let i=[],a=ee(n),l=0;for(let[u,f]of n.entries()){let h=s[l],M=H(h,u);for(;h&&!a.has(M);)A(h),e.delete(M),h=s[++l],M=H(h,u);let et=H(f,u),I=e.get(et);if(I&&(f=te(t,I,f)),h)if(h===I)l++;else {let nt=document.createComment("");y(t,nt,h),i.push([nt,f]);}else y(t,f,r);o.set(et,f);}return i.forEach(([u,f])=>Et(t,f,u)),e.forEach((u,f)=>{u.isConnected&&!o.has(f)&&A(u);}),o}function te(t,e,n){return e===n?e:g(e)&&g(n)&&e.template===n.template?(n.inheritNode(e),n):e instanceof Text&&n instanceof Text?(e.textContent!==n.textContent&&(e.textContent=n.textContent),e):(Et(t,n,e),n)}function ee(t){let e=new Map;for(let[n,r]of t.entries()){let o=H(r,n);e.set(o,r);}return e}function H(t,e){let n=t instanceof Element?t.id:void 0,r=n===""?void 0:n;return r!=null?r:`_$${e}$`}var St=class Tt{constructor(e,n){this.template=e,this.props=n,this.treeMap=new Map,this.mounted=!1,this.nodes=[],this.provides={},this.trackMap=new Map,this.parent=null;}get firstChild(){var e;return (e=this.nodes[0])!=null?e:null}get isConnected(){return this.mounted}addEventListener(){}removeEventListener(){}unmount(){this.trackMap.forEach(e=>{var n,r;(n=e.cleanup)==null||n.call(e),(r=e.lastNodes)==null||r.forEach(o=>{e.isRoot?A(o):o instanceof Tt&&o.unmount();});}),this.trackMap.clear(),this.treeMap.clear(),this.nodes.forEach(e=>A(e)),this.nodes=[],this.mounted=!1;}mount(e,n){var r;if(this.parent=e,this.isConnected)return this.nodes.forEach(c=>y(e,c,n)),this.nodes;let o=this.template.content.cloneNode(!0),s=o.firstChild;return (r=s==null?void 0:s.hasAttribute)!=null&&r.call(s,"_svg_")&&(s.remove(),s==null||s.childNodes.forEach(c=>{o.append(c);})),this.nodes=Array.from(o.childNodes),this.mapNodeTree(e,o),y(e,o,n),this.patchNodes(this.props),this.mounted=!0,this.nodes}mapNodeTree(e,n){let r=1;this.treeMap.set(0,e);let o=s=>{s.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&this.treeMap.set(r++,s);let c=s.firstChild;for(;c;)o(c),c=c.nextSibling;};o(n);}patchNodes(e){for(let n in e){let r=Number(n),o=this.treeMap.get(r);if(o){let s=this.props[n];this.patchNode(n,o,s,r===0);}}this.props=e;}getNodeTrack(e,n,r){var o;let s=this.trackMap.get(e);return s||(s={cleanup:()=>{}},n&&(s.lastNodes=new Map),r&&(s.isRoot=!0),this.trackMap.set(e,s)),(o=s.cleanup)==null||o.call(s),s}inheritNode(e){this.mounted=e.mounted,this.nodes=e.nodes,this.trackMap=e.trackMap,this.treeMap=e.treeMap;let n=this.props;this.props=e.props,this.patchNodes(n);}patchNode(e,n,r,o){for(let s in r)if(s==="children"&&r.children)if(D(r.children))r.children.filter(Boolean).forEach((c,i)=>{var a;let[l,u]=D(c)?c:[c,null],f=ot(u)?null:(a=this.treeMap.get(u))!=null?a:null,h=`${e}:${s}:${i}`,M=this.getNodeTrack(h,!0,o);Mt(M,n,l,f);});else {let c=`${e}:${s}:0`,i=this.getNodeTrack(c,!0,o);Mt(i,n,r.children,null);}else if(s==="ref")p(r[s])?r[s].value=n:d(r[s])&&r[s](n);else if(v(s,"on")){let c=s.slice(2).toLocaleLowerCase(),i=this.getNodeTrack(`${e}:${s}`),a=r[s];i.cleanup=m(n,c,a);}else if(!v(s,"update")){let c=this.getNodeTrack(`${e}:${s}`),i=r[s],a=p(i)?i:W(i);wt(c,n,s,a.value);let l=w(()=>{a.value=p(i)?i.value:i,wt(c,n,s,a.value);}),u,f=`update${ct(s)}`;r[f]&&(u=Zt(n,h=>{r[f](h);})),c.cleanup=()=>{l&&l(),u&&u();};}}};function wt(t,e,n,r){let o=e;o.setAttribute&&(d(r)?t.cleanup=w(()=>{Nt(o,n,r());}):Nt(o,n,r));}function Mt(t,e,n,r){d(n)?t.cleanup=w(()=>{let o=q(n()).map(yt);t.lastNodes=Vt(e,t.lastNodes,o,r);}):q(n).forEach((o,s)=>{let c=yt(o);t.lastNodes.set(String(s),c),y(e,c,r);});}function Ne(t){var e;F("onMounted"),(e=N.ref)==null||e.addHook("mounted",t);}function _e(t){var e;F("onDestroy"),(e=N.ref)==null||e.addHook("destroy",t);}function F(t){N.ref||console.error(`"${t}" can only be called within the component function body
|
|
7
|
+
and cannot be used in asynchronous or deferred calls.`);}function we(t,e){var n;F("useProvide"),(n=N.ref)==null||n.setContext(t,e);}function Me(t,e){var n;return F("useInject"),((n=N.ref)==null?void 0:n.getContext(t))||e}function ne(t){return Object.entries(t).map(([e,n])=>`${e}=${JSON.stringify(escape(String(n)))}`).join(" ")}function tt(t,e){if(d(t))return t(e);let n=Array.isArray(t)?t.reduce((s,c,i)=>(s[i+1]={template:c},s),{}):t,r={},o={};if(st(n))for(let[s,c]of Object.entries(n)){let i=e[s];if(i){for(let a in i)v(a,"on")&&d(i[a])&&delete i[a];if(i.children){for(let[a,l]of i.children)r[l]||(r[l]=[]),r[l].push(a);delete i.children;}}o[s]={template:c.template,props:i};}return Object.entries(o).map(([s,{template:c,props:i}])=>{let a=c;return i&&(a+=` ${ne(i)}`),r[s]&&(a+=r[s].map(l=>tt(l,i)).join("")),a}).join("")}function Ce(t,e){return tt(t,e)}function Ee(t,e,n={}){e.innerHTML=tt(t,n);}globalThis&&(globalThis.__essor_version__=rt);/**
|
|
8
|
+
* @estjs/shared v0.0.10-beta.20
|
|
9
|
+
* (c) 2023-Present jiangxd <jiangxd2016@gmail.com>
|
|
10
|
+
* @license MIT
|
|
11
|
+
**/
|
|
12
|
+
/**
|
|
13
|
+
* @estjs/signal v0.0.10-beta.20
|
|
14
|
+
* (c) 2023-Present jiangxd <jiangxd2016@gmail.com>
|
|
15
|
+
* @license MIT
|
|
16
|
+
**/
|
|
17
|
+
/**
|
|
18
|
+
* @estjs/template v0.0.10-beta.20
|
|
19
|
+
* (c) 2023-Present jiangxd <jiangxd2016@gmail.com>
|
|
20
|
+
* @license MIT
|
|
21
|
+
**/
|
|
3
22
|
|
|
4
|
-
export {
|
|
23
|
+
export { N as ComponentNode, be as Fragment, St as TemplateNode, le as createStore, rt as essor_version, ge as h, pt as isComputed, g as isJsxElement, S as isReactive, p as isSignal, ye as nextTick, _e as onDestroy, Ne as onMount, Ee as renderSSG, tt as renderTemplate, Ce as renderToString, ue as shallowReactive, ae as shallowSignal, vt as signalObject, Ut as template, Kt as unReactive, Dt as unSignal, It as useComputed, w as useEffect, Me as useInject, we as useProvide, T as useReactive, W as useSignal, qt as useWatch };
|
|
5
24
|
//# sourceMappingURL=essor.esm.js.map
|
|
6
25
|
//# sourceMappingURL=essor.esm.js.map
|
package/dist/essor.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/version.ts","../../shared/src/is.ts","../../shared/src/comm.ts","../../shared/src/name.ts","../src/signal/signal.ts","../src/warning.ts","../src/signal/watch.ts","../src/signal/store.ts","../src/template/component-node.ts","../src/template/template.ts","../src/template/utils.ts","../src/template/patch.ts","../src/template/template-node.ts","../src/template/hooks.ts","../src/server/index.ts","../src/index.ts"],"names":["essor_version","isObject","val","isArray","isString","isNull","isNil","x","isFunction","isFalsy","isPrimitive","isHTMLElement","obj","coerceArray","data","hasChanged","value","oldValue","noop","startsWith","str","searchString","deepClone","hash","mapClone","key","setClone","cloneObj","keys","deepEqual","a","b","seen","i","element","arrA","arrB","keysA","keysB","isExclude","exclude","kebabCase","string","match","offset","capitalizeFirstLetter","inputString","activeEffect","activeComputed","computedMap","signalMap","effectDeps","reactiveMap","arrayMethods","track","target","depsMap","dep","computedDepsMap","computedDeps","trigger","effect","computeds","computed","Signal","useReactive","newValue","isSignal","useSignal","Computed","fn","prev","useComputed","isComputed","useEffect","effectFn","signalObject","initialValues","acc","unSignal","signal","REACTIVE_MARKER","isReactive","unReactive","__spreadValues","initialValue","method","originalMethod","args","result","handler","receiver","getValue","proxy","warn","msg","useWatch","source","cb","options","doWatch","getter","deep","s","baseGetter","traverse","stop","item","v","k","_id","StoreMap","createOptionsStore","state","getters","actions","initState","reactiveState","subscriptions","actionCallbacks","store","payload","callback","index","action","createStore","_ComponentNode","template","props","_a","_b","hook","context","node","set","emitter","parent","before","_c","_d","mountedNode","trackKey","suppressCleanupCall","_e","prop","event","listener","cleanup","addEventListener","ComponentNode","h","_template","isHtmlTagName","convertToHtmlTag","TemplateNode","isJsxElement","html","closeHtmlTags","Fragment","coerceNode","text","insertChild","child","beforeNode","removeChild","replaceChild","setAttribute","attr","binNode","setter","p","nextTick","eventName","selfClosingTags","htmlTags","input","tagStack","output","tagPattern","lastIndex","fullMatch","tagName","attributes","isEndTag","unclosedTag","tag","patchChildren","childrenMap","nextChildren","children","childrenLength","range","start","replaces","nextChildrenMap","mapKeys","childIndex","currChild","currKey","getKey","origChild","patch","placeholder","next","id","_TemplateNode","cloneNode","firstChild","tree","walk","trackLastNodes","isRoot","path","patchChild","triggerValue","patchAttribute","cleanupBind","updateKey","nextNodes","newNode","onMount","throwIfOutsideComponent","onDestroy","useProvide","useInject","defaultValue","useRef","refValue","jsonToAttrs","json","renderTemplate","templates","tmpl","newTemplate","propKey","idx","renderToString","component","ssgRender","root"],"mappings":"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","file":"essor.esm.js","sourcesContent":["export const essor_version = '0.0.7';\n","import { _toString } from './comm';\r\n\r\nexport const isObject = (val: unknown): val is Record<any, any> =>\r\n val !== null && typeof val === 'object';\r\nexport function isPromise(val: any): boolean {\r\n return _toString.call(val) === '[object Promise]';\r\n}\r\n\r\nexport const isArray = Array.isArray;\r\n\r\nexport function isString(val: unknown): val is string {\r\n return typeof val === 'string';\r\n}\r\nexport function isNull(val: any): val is null {\r\n return val === null;\r\n}\r\nexport function isSymbol(val: unknown): val is symbol {\r\n return typeof val === 'symbol';\r\n}\r\nexport function isMap(val: unknown): val is Map<any, any> {\r\n return _toString.call(val) === '[object Map]';\r\n}\r\nexport function isNil(x: any): x is null | undefined {\r\n return x === null || x === undefined;\r\n}\r\n\r\nexport const isFunction = (val: unknown): val is Function => typeof val === 'function';\r\n\r\nexport function isFalsy(x: any): x is false | null | undefined {\r\n return x === false || x === null || x === undefined || x === '';\r\n}\r\n\r\nexport const isPrimitive = (\r\n val: unknown,\r\n): val is string | number | boolean | symbol | null | undefined =>\r\n ['string', 'number', 'boolean', 'symbol', 'undefined'].includes(typeof val) || isNull(val);\r\n\r\nexport function isHTMLElement(obj) {\r\n if (!obj) return false;\r\n return obj && typeof obj === 'object' && obj.nodeType === 1 && typeof obj.nodeName === 'string';\r\n}\r\n","import { isFunction, isPrimitive, isString } from './is';\r\n\r\nexport const _toString = Object.prototype.toString;\r\nexport const extend = Object.assign;\r\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\r\nexport const hasOwn = (val: object, key: string | symbol): key is keyof typeof val =>\r\n hasOwnProperty.call(val, key);\r\n\r\nexport function coerceArray<T>(data: T | T[]): T[] {\r\n return Array.isArray(data) ? (data.flat() as T[]) : [data];\r\n}\r\nexport const hasChanged = (value, oldValue) =>\r\n value !== oldValue && (value === value || oldValue === oldValue);\r\nexport const noop = Function.prototype as () => void;\r\n\r\n/**\r\n * A function that checks if a string starts with a specific substring.\r\n * indexOf faster under normal circumstances\r\n * @see https://www.measurethat.net/Benchmarks/Show/12350/0/startswith-vs-test-vs-match-vs-indexof#latest_results_block\r\n\r\n * @param {string} str - The input string to check.\r\n * @param {string} searchString - The substring to check for at the beginning of the input string.\r\n * @return {boolean} Returns true if the input string starts with the specified substring, otherwise false.\r\n */\r\nexport function startsWith(str, searchString) {\r\n if (!isString(str)) {\r\n return false;\r\n }\r\n return str.indexOf(searchString) === 0;\r\n}\r\n\r\n/**\r\n * Recursively clones an object, including its nested properties and special types like Date, RegExp, Map, and Set.\r\n *\r\n * @param {any} obj - The object to clone.\r\n * @param {WeakMap<object, object>} [hash] - A WeakMap used to track circular references.\r\n * @return {any} The cloned object.\r\n */\r\nexport function deepClone(obj, hash = new WeakMap()) {\r\n // Return primitives and functions as-is\r\n if (obj === null || typeof obj !== 'object') {\r\n return obj;\r\n }\r\n\r\n // Handle circular references\r\n if (hash.has(obj)) {\r\n return hash.get(obj);\r\n }\r\n\r\n // Handle special types\r\n if (obj instanceof Date) {\r\n return new Date(obj);\r\n }\r\n\r\n if (obj instanceof RegExp) {\r\n return new RegExp(obj);\r\n }\r\n\r\n if (obj instanceof Map) {\r\n const mapClone = new Map();\r\n hash.set(obj, mapClone);\r\n obj.forEach((value, key) => {\r\n mapClone.set(deepClone(key, hash), deepClone(value, hash));\r\n });\r\n return mapClone;\r\n }\r\n\r\n if (obj instanceof Set) {\r\n const setClone = new Set();\r\n hash.set(obj, setClone);\r\n obj.forEach(value => {\r\n setClone.add(deepClone(value, hash));\r\n });\r\n return setClone;\r\n }\r\n\r\n // Initialize the clone and store it in the WeakMap\r\n const cloneObj = Array.isArray(obj) ? [] : {};\r\n hash.set(obj, cloneObj);\r\n\r\n // Iterate over object keys\r\n const keys = Object.keys(obj);\r\n for (const key of keys) {\r\n cloneObj[key] = deepClone(obj[key], hash);\r\n }\r\n\r\n return cloneObj;\r\n}\r\n\r\n/**\r\n * Determines whether two values are deeply equal.\r\n *\r\n * @param {any} a - The first value to compare.\r\n * @param {any} b - The second value to compare.\r\n * @param {WeakMap<object, object>} [seen] - A WeakMap used to store previously seen objects to avoid infinite recursion.\r\n * @return {boolean} True if the values are deeply equal, false otherwise.\r\n */\r\nexport function deepEqual(a: any, b: any, seen = new WeakMap()): boolean {\r\n if (isPrimitive(a) && isPrimitive(b)) {\r\n return a === b;\r\n }\r\n\r\n if (a === b) {\r\n return true;\r\n }\r\n\r\n if (a == null || b == null || typeof a !== 'object' || typeof b !== 'object') {\r\n return false;\r\n }\r\n\r\n if (a.constructor !== b.constructor) {\r\n return false;\r\n }\r\n\r\n if (seen.has(a)) {\r\n return seen.get(a) === b;\r\n }\r\n\r\n seen.set(a, b);\r\n\r\n if (Array.isArray(a)) {\r\n if (a.length !== b.length) {\r\n return false;\r\n }\r\n for (const [i, element] of a.entries()) {\r\n if (!deepEqual(element, b[i], seen)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n if (a instanceof Map) {\r\n if (a.size !== b.size) {\r\n return false;\r\n }\r\n for (const [key, value] of a) {\r\n if (!b.has(key) || !deepEqual(value, b.get(key), seen)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n if (a instanceof Set) {\r\n if (a.size !== b.size) {\r\n return false;\r\n }\r\n const arrA = Array.from(a).sort();\r\n const arrB = Array.from(b).sort();\r\n for (const [i, element] of arrA.entries()) {\r\n if (!deepEqual(element, arrB[i], seen)) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n const keysA = Object.keys(a);\r\n const keysB = new Set(Object.keys(b));\r\n\r\n if (keysA.length !== keysB.size) {\r\n return false;\r\n }\r\n\r\n for (const key of keysA) {\r\n if (!keysB.has(key) || !deepEqual(a[key], b[key], seen)) {\r\n return false;\r\n }\r\n }\r\n\r\n return true;\r\n}\r\n\r\n/**\r\n * Escapes special HTML characters in a string.\r\n * @param str - The string to escape.\r\n * @returns The escaped string.\r\n */\r\nexport function escape(str: string): string {\r\n return str.replaceAll(/[\"&'<>]/g, char => {\r\n switch (char) {\r\n case '&':\r\n return '&';\r\n case '<':\r\n return '<';\r\n case '>':\r\n return '>';\r\n case '\"':\r\n return '"';\r\n case \"'\":\r\n return ''';\r\n default:\r\n return char;\r\n }\r\n });\r\n}\r\n\r\nexport type ExcludeType = ((key: string | symbol) => boolean) | (string | symbol)[];\r\n\r\n/**\r\n * Checks if a key should be excluded based on the provided exclude criteria.\r\n * @param key - The key to check.\r\n * @param exclude - The exclusion criteria.\r\n * @returns True if the key should be excluded, otherwise false.\r\n */\r\nexport function isExclude(key: string | symbol, exclude?: ExcludeType): boolean {\r\n return Array.isArray(exclude)\r\n ? exclude.includes(key)\r\n : isFunction(exclude)\r\n ? exclude(key)\r\n : false;\r\n}\r\n","export const kebabCase = (string: string): string => {\r\n return string.replaceAll(/[A-Z]+/g, (match, offset) => {\r\n return `${offset > 0 ? '-' : ''}${match.toLocaleLowerCase()}`;\r\n });\r\n};\r\n\r\nexport const camelCase = (str: string): string => {\r\n const s = str.replaceAll(/[\\s_-]+(.)?/g, (_, c) => (c ? c.toUpperCase() : ''));\r\n return s[0].toLowerCase() + s.slice(1);\r\n};\r\n/**\r\n * Capitalizes the first letter of a string.\r\n *\r\n * @param {string} inputString - The input string to capitalize the first letter.\r\n * @return {string} The string with the first letter capitalized.\r\n */\r\nexport const capitalizeFirstLetter = (inputString: string): string => {\r\n return inputString.charAt(0).toUpperCase() + inputString.slice(1);\r\n};\r\n","import {\n type ExcludeType,\n hasChanged,\n isArray,\n isExclude,\n isHTMLElement,\n isObject,\n isPrimitive,\n startsWith,\n} from 'essor-shared';\n\ntype EffectFn = () => void;\n\nlet activeEffect: EffectFn | null = null;\nlet activeComputed: Computed<unknown> | null = null;\n\ntype ComputedMap = Map<string | symbol, Set<Computed<unknown>>>;\ntype SignalMap = Map<string | symbol, Set<EffectFn>>;\n\nconst computedMap = new WeakMap<object, ComputedMap>();\nconst signalMap = new WeakMap<object, SignalMap>();\nconst effectDeps = new Set<EffectFn>();\nconst reactiveMap = new WeakMap<object, object>();\nconst arrayMethods = ['push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse'];\n\n/**\n * Tracks dependencies for reactive properties.\n * @param target - The target object being tracked.\n * @param key - The key on the target object.\n */\nfunction track(target: object, key: string | symbol) {\n if (!activeEffect && !activeComputed) return;\n\n let depsMap = signalMap.get(target);\n if (!depsMap) {\n depsMap = new Map();\n signalMap.set(target, depsMap);\n }\n let dep = depsMap.get(key);\n if (!dep) {\n dep = new Set();\n depsMap.set(key, dep);\n }\n if (activeEffect) dep.add(activeEffect);\n\n let computedDepsMap = computedMap.get(target);\n if (!computedDepsMap) {\n computedDepsMap = new Map();\n computedMap.set(target, computedDepsMap);\n }\n let computedDeps = computedDepsMap.get(key);\n if (!computedDeps) {\n computedDeps = new Set();\n computedDepsMap.set(key, computedDeps);\n }\n if (activeComputed) {\n computedDeps.add(activeComputed);\n }\n}\n\nfunction trigger(target: object, key: string | symbol) {\n const depsMap = signalMap.get(target);\n if (!depsMap) return;\n\n const dep = depsMap.get(key);\n if (dep) {\n dep.forEach(effect => effectDeps.has(effect) && effect());\n }\n\n const computedDepsMap = computedMap.get(target);\n if (computedDepsMap) {\n const computeds = computedDepsMap.get(key);\n if (computeds) {\n computeds.forEach(computed => computed.run());\n }\n }\n}\n\n/**\n * Signal class representing a reactive value.\n */\nexport class Signal<T> {\n private _value: T;\n\n constructor(value: T) {\n this._value = value;\n }\n\n valueOf(): T {\n track(this, '_sv');\n this.__triggerObject();\n return this._value;\n }\n\n toString(): string {\n track(this, '_sv');\n this.__triggerObject();\n return String(this._value);\n }\n\n toJSON(): T {\n return this._value;\n }\n\n get value(): T {\n track(this, '_sv');\n this.__triggerObject();\n return this._value;\n }\n\n private __triggerObject() {\n if (!isPrimitive(this._value) && !isHTMLElement(this._value)) {\n useReactive(this._value as object);\n }\n }\n\n set value(newValue: T) {\n if (isSignal(newValue)) {\n console.warn('Signal cannot be set to another signal, use .peek() instead');\n newValue = newValue.peek() as T;\n }\n if (hasChanged(newValue, this._value)) {\n this._value = newValue;\n if (!isPrimitive(this._value) && !isHTMLElement(this._value)) {\n this.__triggerObject();\n }\n trigger(this, '_sv');\n }\n }\n\n peek(): T {\n return this._value;\n }\n\n update() {\n trigger(this, '_sv');\n }\n}\n\n/**\n * Creates a Signal object.\n * @param value - The initial value for the Signal.\n * @returns A Signal object.\n */\nexport function useSignal<T>(value?: T): Signal<T> {\n if (isSignal(value)) {\n return value as Signal<T>;\n }\n return new Signal<T>(value as T);\n}\n\n/**\n * Checks if a value is a Signal.\n * @param value - The value to check.\n * @returns True if the value is a Signal, otherwise false.\n */\nexport function isSignal<T>(value: any): value is Signal<T> {\n return value instanceof Signal;\n}\n\n/**\n * Computed class representing a computed reactive value.\n */\nexport class Computed<T = unknown> {\n private _value: T;\n\n constructor(private readonly fn: () => T) {\n const prev = activeComputed;\n activeComputed = this;\n this._value = this.fn();\n activeComputed = prev;\n }\n\n peek(): T {\n return this._value;\n }\n\n run() {\n const newValue = this.fn();\n if (hasChanged(newValue, this._value)) {\n this._value = newValue;\n trigger(this, '_cv');\n }\n }\n\n get value(): T {\n track(this, '_cv');\n return this._value;\n }\n}\n\n/**\n * Creates a Computed object.\n * @param fn - The function to compute the value.\n * @returns A Computed object.\n */\nexport function useComputed<T>(fn: () => T): Computed<T> {\n return new Computed<T>(fn);\n}\n\n/**\n * Checks if a value is a Computed object.\n * @param value - The value to check.\n * @returns True if the value is a Computed object, otherwise false.\n */\nexport function isComputed<T>(value: any): value is Computed<T> {\n return value instanceof Computed;\n}\n\n/**\n * Registers an effect function that runs whenever its dependencies change.\n * @param fn - The effect function to register.\n * @returns A function to unregister the effect.\n */\nexport function useEffect(fn: EffectFn): () => void {\n function effectFn() {\n const prev = activeEffect;\n activeEffect = effectFn;\n fn();\n activeEffect = prev;\n }\n\n effectDeps.add(effectFn);\n effectFn();\n\n return () => {\n effectDeps.delete(effectFn);\n activeEffect = null;\n };\n}\n\nexport type SignalObject<T> = {\n [K in keyof T]: Signal<T[K]> | T[K];\n};\n\n/**\n * Creates a SignalObject from the given initialValues, excluding specified keys.\n * @param initialValues - The initial values for the SignalObject.\n * @param exclude - A function or array that determines which keys to exclude from the SignalObject.\n * @returns The created SignalObject.\n */\nexport function signalObject<T extends object>(\n initialValues: T,\n exclude?: ExcludeType,\n): SignalObject<T> {\n const signals = Object.entries(initialValues).reduce((acc, [key, value]) => {\n acc[key] = isExclude(key, exclude) || isSignal(value) ? value : useSignal(value);\n return acc;\n }, {} as SignalObject<T>);\n\n return signals;\n}\n\n/**\n * Returns the current value of a signal, signal object, or plain object, excluding specified keys.\n * @param signal - The signal, signal object, or plain object to unwrap.\n * @param exclude - A function or array that determines which keys to exclude from the unwrapped object.\n * @returns The unwrapped value of the signal, signal object, or plain object.\n */\nexport function unSignal<T>(signal: SignalObject<T> | T | Signal<T>, exclude?: ExcludeType): T {\n if (!signal) return {} as T;\n if (isSignal(signal)) {\n return signal.peek();\n }\n if (isArray(signal)) {\n return signal.map(value => unSignal(value, exclude)) as T;\n }\n if (isObject(signal)) {\n return Object.entries(signal).reduce((acc, [key, value]) => {\n if (isExclude(key, exclude)) {\n acc[key] = value;\n } else {\n acc[key] = isSignal(value) ? value.peek() : value;\n }\n return acc;\n }, {} as T);\n }\n return signal as T;\n}\n\nconst REACTIVE_MARKER = Symbol('useReactive');\n\n/**\n * Checks if an object is reactive.\n * @param obj - The object to check.\n * @returns True if the object is reactive, otherwise false.\n */\nexport function isReactive(obj: any): boolean {\n return obj && obj[REACTIVE_MARKER] === true;\n}\n\n/**\n * Creates a shallow copy of a reactive object.\n * @param obj - The reactive object to copy.\n * @returns A shallow copy of the reactive object.\n */\nexport function unReactive(obj: any): any {\n if (!isReactive(obj)) {\n return obj;\n }\n return { ...obj };\n}\n\n/**\n * Creates a reactive object.\n * @param initialValue - The initial value for the reactive object.\n * @param exclude - A function or array that determines which keys to exclude from the reactive object.\n * @returns A reactive object.\n */\nexport function useReactive<T extends object>(initialValue: T, exclude?: ExcludeType): T {\n if (!isObject(initialValue)) {\n return initialValue;\n }\n if (isReactive(initialValue)) {\n return initialValue;\n }\n\n if (reactiveMap.has(initialValue)) {\n return reactiveMap.get(initialValue) as T;\n }\n\n if (Array.isArray(initialValue)) {\n arrayMethods.forEach(method => {\n const originalMethod = initialValue[method];\n track(initialValue, 'length');\n\n Object.defineProperties(initialValue, {\n [method]: {\n value(...args) {\n const result = originalMethod.apply(this, args);\n trigger(initialValue, 'length');\n return result;\n },\n enumerable: false,\n configurable: true,\n writable: true,\n },\n });\n });\n }\n\n const handler: ProxyHandler<T> = {\n get(target, key, receiver) {\n if (key === REACTIVE_MARKER || startsWith(key, '_')) return true;\n\n const getValue = Reflect.get(target, key, receiver);\n const value = isSignal(getValue) ? getValue.value : getValue;\n\n if (isExclude(key, exclude)) {\n return value;\n }\n track(target, key);\n if (isObject(value)) {\n return useReactive(value);\n }\n return value;\n },\n set(target, key, value, receiver) {\n if (isExclude(key, exclude)) {\n Reflect.set(target, key, value, receiver);\n return true;\n }\n let oldValue: Signal<any> | any = Reflect.get(target, key, receiver);\n\n if (isSignal(oldValue)) {\n oldValue = oldValue.value;\n }\n if (isSignal(value)) {\n value = value.value;\n }\n const obj = Reflect.set(target, key, value, receiver);\n if (hasChanged(value, oldValue)) {\n trigger(target, key);\n }\n return obj;\n },\n deleteProperty(target, key) {\n const oldValue = Reflect.get(target, key);\n const result = Reflect.deleteProperty(target, key);\n if (oldValue !== undefined) {\n trigger(target, key);\n }\n return result;\n },\n };\n\n const proxy = new Proxy(initialValue, handler);\n reactiveMap.set(initialValue, proxy);\n return proxy;\n}\n","export function warn(msg: string, ..._args: any[]): void;\r\nexport function warn(msg: string, ...args): void {\r\n // eslint-disable-next-line prefer-spread\r\n console.warn.apply(console, [`[Essor warn]: ${msg}`].concat(args) as [string, ...any[]]);\r\n}\r\n","import {\r\n deepClone,\r\n deepEqual,\r\n isArray,\r\n isFunction,\r\n isObject,\r\n isPrimitive,\r\n noop,\r\n} from 'essor-shared';\r\nimport { warn } from '../warning';\r\nimport { type Computed, type Signal, isComputed, isReactive, isSignal, useEffect } from './signal';\r\n\r\nexport type WatchSource<T = any> = Signal<T> | Computed<T> | (() => T);\r\n\r\nexport type WatchCallback<V = any, OV = any> = (value: V, oldValue: OV) => any;\r\n\r\nexport type WatchStopHandle = () => void;\r\n\r\ntype MapSources<T> = {\r\n [K in keyof T]: T[K] extends WatchSource<infer V> ? V : T[K] extends object ? T[K] : never;\r\n};\r\n\r\ntype MapOldSources<T, Immediate> = {\r\n [K in keyof T]: T[K] extends WatchSource<infer V>\r\n ? Immediate extends true\r\n ? V | undefined\r\n : V\r\n : T[K] extends object\r\n ? Immediate extends true\r\n ? T[K] | undefined\r\n : T[K]\r\n : never;\r\n};\r\n\r\nexport interface WatchOptionsBase {\r\n flush?: 'sync' | 'pre' | 'post';\r\n}\r\n\r\nexport interface WatchOptions<Immediate = boolean> extends WatchOptionsBase {\r\n immediate?: Immediate;\r\n deep?: boolean;\r\n}\r\n\r\n// overload #1: array of multiple sources + cb\r\nexport function useWatch<\r\n T extends Readonly<Array<WatchSource<unknown> | object>>,\r\n Immediate extends Readonly<boolean> = false,\r\n>(\r\n sources: T,\r\n cb: WatchCallback<MapSources<T>, MapOldSources<T, Immediate>>,\r\n options?: WatchOptions<Immediate>,\r\n): WatchStopHandle;\r\n\r\n// overload #2: single source + cb\r\nexport function useWatch<T, Immediate extends Readonly<boolean> = false>(\r\n source: WatchSource<T>,\r\n cb: WatchCallback<T, Immediate extends true ? T | undefined : T>,\r\n options?: WatchOptions<Immediate>,\r\n): WatchStopHandle;\r\n\r\n// overload #3: watching reactive object w/ cb\r\nexport function useWatch<T extends object, Immediate extends Readonly<boolean> = false>(\r\n source: T,\r\n cb: WatchCallback<T, Immediate extends true ? T | undefined : T>,\r\n options?: WatchOptions<Immediate>,\r\n): WatchStopHandle;\r\n\r\n// implementation\r\nexport function useWatch<T = any>(\r\n source: WatchSource<T> | WatchSource<T>[] | object,\r\n cb: WatchCallback<T>,\r\n options?: WatchOptions,\r\n): WatchStopHandle {\r\n return doWatch(source, cb, options);\r\n}\r\n\r\nfunction doWatch(\r\n source: WatchSource | WatchSource[] | object,\r\n cb: WatchCallback | null,\r\n options?: WatchOptions,\r\n): WatchStopHandle {\r\n let getter: () => any;\r\n const deep = options?.deep;\r\n\r\n if (isSignal(source) || isComputed(source)) {\r\n getter = () => source.value;\r\n } else if (isReactive(source)) {\r\n getter = () => ({ ...source });\r\n } else if (isArray(source)) {\r\n getter = () =>\r\n source.map(s => {\r\n if (isSignal(s) || isComputed(s)) return s.value;\r\n if (isReactive(s)) return { ...s };\r\n if (isFunction(s)) return s();\r\n return warn('Invalid source', s);\r\n });\r\n } else if (isFunction(source)) {\r\n getter = source as () => any;\r\n } else {\r\n warn('Invalid source type', source);\r\n getter = noop;\r\n }\r\n\r\n if (cb && deep) {\r\n const baseGetter = getter;\r\n getter = () => traverse(baseGetter());\r\n }\r\n\r\n let oldValue;\r\n\r\n const effectFn = () => {\r\n const newValue = deepClone(getter());\r\n\r\n if (!deepEqual(newValue, oldValue)) {\r\n cb && cb(newValue, oldValue);\r\n oldValue = isPrimitive(newValue) ? newValue : deepClone(newValue);\r\n }\r\n };\r\n\r\n const stop = useEffect(effectFn);\r\n\r\n if (options?.immediate) {\r\n effectFn();\r\n }\r\n\r\n return stop;\r\n}\r\n\r\nfunction traverse(value: unknown, seen: Set<unknown> = new Set()): unknown {\r\n if (!isObject(value) || seen.has(value)) return value;\r\n\r\n seen.add(value);\r\n if (isArray(value)) {\r\n value.forEach(item => traverse(item, seen));\r\n } else if (value instanceof Map) {\r\n value.forEach((v, k) => {\r\n traverse(k, seen);\r\n traverse(v, seen);\r\n });\r\n } else if (value instanceof Set) {\r\n value.forEach(v => traverse(v, seen));\r\n } else {\r\n Object.keys(value).forEach(key => {\r\n traverse((value as Record<string, unknown>)[key], seen);\r\n });\r\n }\r\n return value;\r\n}\r\n","import { isFunction } from 'essor-shared';\r\nimport { useComputed, useReactive } from './signal';\r\nimport type { Computed } from './signal';\r\n\r\ninterface StoreOptions<S, G, A> {\r\n state?: S;\r\n getters?: G;\r\n actions?: A;\r\n}\r\ntype PatchPayload = Record<string, any>;\r\ntype Callback = (value: any) => void;\r\nexport interface StoreActions {\r\n patch$: (payload: PatchPayload) => void;\r\n subscribe$: (callback: Callback) => void;\r\n unsubscribe$: (callback: Callback) => void;\r\n onAction$: (callback: Callback) => void;\r\n reset$: () => void;\r\n}\r\n\r\nlet _id = 0;\r\nconst StoreMap = new Map<number, any>();\r\n\r\nfunction createOptionsStore<S, G, A>(options: StoreOptions<S, G, A>) {\r\n const { state, getters, actions } = options as StoreOptions<\r\n Record<string | symbol, any>,\r\n Record<string, Function>,\r\n Record<string, Function>\r\n >;\r\n\r\n const initState = { ...(state ?? {}) };\r\n const reactiveState = useReactive(state ?? {}, val => {\r\n return isFunction(val);\r\n });\r\n\r\n const subscriptions: Callback[] = [];\r\n const actionCallbacks: Callback[] = [];\r\n const default_actions: StoreActions = {\r\n patch$(payload: PatchPayload) {\r\n Object.assign(reactiveState, payload);\r\n subscriptions.forEach(callback => callback(reactiveState));\r\n actionCallbacks.forEach(callback => callback(reactiveState));\r\n },\r\n subscribe$(callback: Callback) {\r\n subscriptions.push(callback);\r\n },\r\n unsubscribe$(callback: Callback) {\r\n const index = subscriptions.indexOf(callback);\r\n if (index !== -1) {\r\n subscriptions.splice(index, 1);\r\n }\r\n },\r\n onAction$(callback: Callback) {\r\n actionCallbacks.push(callback);\r\n },\r\n reset$() {\r\n Object.assign(reactiveState, initState);\r\n },\r\n };\r\n\r\n const store = {\r\n state: reactiveState,\r\n ...default_actions,\r\n };\r\n\r\n for (const key in getters) {\r\n const getter = getters[key];\r\n if (getter) {\r\n store[key] = useComputed(getter.bind(reactiveState, reactiveState));\r\n }\r\n }\r\n\r\n for (const key in actions) {\r\n const action = actions[key];\r\n if (action) {\r\n store[key] = action.bind(reactiveState);\r\n }\r\n }\r\n\r\n StoreMap.set(_id, store);\r\n ++_id;\r\n\r\n return store;\r\n}\r\n\r\ntype Getters<S> = {\r\n [K in keyof S]: S[K] extends (...args: any[]) => any ? Computed<ReturnType<S[K]>> : S[K];\r\n};\r\n\r\nexport function createStore<S, G, A>(\r\n options: {\r\n state: S;\r\n getters?: G;\r\n actions?: A;\r\n } & ThisType<S & Getters<G> & A>,\r\n): () => S & Getters<G> & A & StoreActions & { state: S } {\r\n return function () {\r\n if (StoreMap.has(_id)) {\r\n return StoreMap.get(_id)!;\r\n }\r\n\r\n return createOptionsStore<S, G, A>(options);\r\n };\r\n}\r\n","import { isFunction, startsWith } from 'essor-shared';\nimport { signalObject } from '../signal';\nimport { type Signal, useEffect, useReactive, useSignal } from '../signal';\nimport { isSignal } from '../signal/signal';\nimport { addEventListener } from './utils';\nimport type { EssorComponent, NodeTrack } from '../../types';\nimport type { TemplateNode } from './template-node';\nimport type { Listener } from './utils';\nexport type Hook = 'mounted' | 'destroy';\n\nexport class ComponentNode implements JSX.Element {\n constructor(\n public template: EssorComponent,\n public props: Record<string, any>,\n ) {\n this.proxyProps = signalObject(\n props,\n key => startsWith(key, 'on') || startsWith(key, 'update'),\n );\n }\n addEventListener(): void {}\n removeEventListener(): void {}\n\n static ref: ComponentNode | null = null;\n static context: Record<symbol, Signal<any>> = {};\n id?: string;\n private proxyProps: Record<string, Signal<any>> = {};\n context: Record<symbol | string | number, any> = {};\n emitter = new Set<Function>();\n mounted = false;\n rootNode: TemplateNode | null = null;\n hooks: Record<Hook, Set<() => void>> = {\n mounted: new Set(),\n destroy: new Set(),\n };\n private trackMap = new Map<string, NodeTrack>();\n get firstChild(): Node | null {\n return this.rootNode?.firstChild ?? null;\n }\n\n get isConnected(): boolean {\n return this.rootNode?.isConnected ?? false;\n }\n\n addHook(hook: Hook, cb: () => void): void {\n this.hooks[hook]?.add(cb);\n }\n\n getContext<T>(context: symbol | string | number): T | undefined {\n return ComponentNode.context[context];\n }\n\n setContext<T>(context: symbol | string | number, value: T): void {\n ComponentNode.context[context] = value;\n }\n\n inheritNode(node: ComponentNode): void {\n this.context = node.context;\n this.hooks = node.hooks;\n\n Object.assign(this.proxyProps, node.proxyProps);\n this.rootNode = node.rootNode;\n this.trackMap = node.trackMap;\n\n // patch props\n const props = this.props;\n this.props = node.props;\n\n this.patchProps(props);\n }\n\n unmount(): void {\n this.hooks.destroy.forEach(handler => handler());\n Object.values(this.hooks).forEach(set => set.clear());\n this.rootNode?.unmount();\n this.rootNode = null;\n this.proxyProps = {};\n this.mounted = false;\n this.emitter.forEach(emitter => emitter());\n ComponentNode.context = {};\n }\n\n mount(parent: Node, before?: Node | null): Node[] {\n if (!isFunction(this.template)) {\n throw new Error('Template must be a function');\n }\n if (this.isConnected) {\n return this.rootNode?.mount(parent, before) ?? [];\n }\n\n ComponentNode.ref = this;\n this.rootNode = this.template(useReactive(this.proxyProps, ['children']));\n ComponentNode.ref = null;\n this.mounted = true;\n const mountedNode = this.rootNode?.mount(parent, before) ?? [];\n this.hooks.mounted.forEach(handler => handler());\n this.patchProps(this.props);\n\n return mountedNode;\n }\n private getNodeTrack(trackKey: string, suppressCleanupCall?: boolean): NodeTrack {\n let track = this.trackMap.get(trackKey);\n if (!track) {\n track = { cleanup: () => {} };\n this.trackMap.set(trackKey, track);\n }\n if (!suppressCleanupCall) {\n track.cleanup();\n }\n return track;\n }\n\n patchProps(props: Record<string, any>) {\n for (const [key, prop] of Object.entries(props)) {\n if (startsWith(key, 'on') && this.rootNode?.nodes) {\n const event = key.slice(2).toLowerCase();\n const listener = prop as Listener<unknown>;\n const cleanup = addEventListener(this.rootNode.nodes[0], event, listener);\n this.emitter.add(cleanup);\n } else if (key === 'ref') {\n if (isSignal(prop)) {\n (props[key] as any).value = this.rootNode?.nodes[0];\n } else if (isFunction(prop)) {\n (props[key] as Function)(this.rootNode?.nodes[0]);\n }\n } else if (startsWith(key, 'update')) {\n props[key] = isSignal(prop) ? prop.value : prop;\n } else if (key !== 'children') {\n const newValue = (this.proxyProps[key] ??= useSignal(prop));\n const track = this.getNodeTrack(key);\n track.cleanup = useEffect(() => {\n newValue.value = isFunction(prop) ? prop() : prop;\n });\n }\n }\n this.props = props;\n }\n}\n","import { isFunction, isString } from 'essor-shared';\r\nimport { ComponentNode } from './component-node';\r\nimport { TemplateNode } from './template-node';\r\nimport { closeHtmlTags, convertToHtmlTag, isHtmlTagName } from './utils';\r\nimport type { EssorComponent, EssorNode } from '../../types';\r\n\r\nexport function h<K extends keyof HTMLElementTagNameMap>(\r\n _template: EssorComponent | HTMLTemplateElement | K | '',\r\n props: Record<string, any>,\r\n): JSX.Element {\r\n if (isString(_template)) {\r\n if (isHtmlTagName(_template)) {\r\n (_template as string) = convertToHtmlTag(_template as string);\r\n props = {\r\n 1: props,\r\n };\r\n }\r\n if (_template === '') {\r\n props = {\r\n 0: props,\r\n };\r\n }\r\n\r\n _template = template(_template as string);\r\n }\r\n\r\n return isFunction(_template)\r\n ? new ComponentNode(_template, props)\r\n : new TemplateNode(_template as HTMLTemplateElement, props);\r\n}\r\n\r\nexport function isComponentOf(node: unknown, component: EssorComponent) {\r\n return node instanceof ComponentNode && node.template === component;\r\n}\r\n\r\nexport function isJsxElement(node: unknown): node is EssorNode {\r\n return node instanceof ComponentNode || node instanceof TemplateNode;\r\n}\r\n\r\nexport function template(html: string): HTMLTemplateElement {\r\n html = closeHtmlTags(html);\r\n const template = document.createElement('template');\r\n template.innerHTML = html;\r\n return template;\r\n}\r\nexport function Fragment(props: { children: JSX.Element }) {\r\n return props.children;\r\n}\r\n","import { isFalsy, kebabCase } from 'essor-shared';\r\nimport { isJsxElement } from './template';\r\n\r\n// 将任意数据转换为 Node 或 JSX.Element 类型\r\nexport function coerceNode(data: unknown) {\r\n if (isJsxElement(data) || data instanceof Node) {\r\n return data;\r\n }\r\n const text = isFalsy(data) ? '' : String(data);\r\n return document.createTextNode(text);\r\n}\r\n\r\nexport function insertChild(\r\n parent: Node,\r\n child: Node | JSX.Element,\r\n before: Node | JSX.Element | null = null,\r\n): void {\r\n const beforeNode = isJsxElement(before) ? before.firstChild : before;\r\n if (isJsxElement(child)) {\r\n child.mount(parent, beforeNode);\r\n } else if (beforeNode) {\r\n (beforeNode as HTMLElement).before(child);\r\n } else {\r\n (parent as HTMLElement).append(child);\r\n }\r\n}\r\n\r\nexport function removeChild(child: Node | JSX.Element): void {\r\n if (isJsxElement(child)) {\r\n child.unmount();\r\n } else {\r\n const parent = child.parentNode;\r\n if (parent) {\r\n (child as HTMLElement).remove();\r\n }\r\n }\r\n}\r\n\r\nexport function replaceChild(\r\n parent: Node,\r\n node: Node | JSX.Element,\r\n child: Node | JSX.Element,\r\n): void {\r\n // 先插入新节点,再移除旧节点\r\n insertChild(parent, node, child);\r\n removeChild(child);\r\n}\r\nexport function setAttribute(element: HTMLElement, attr: string, value: unknown): void {\r\n if (attr === 'class') {\r\n if (typeof value === 'string') {\r\n element.className = value;\r\n } else if (Array.isArray(value)) {\r\n element.className = value.join(' ');\r\n } else if (value && typeof value === 'object') {\r\n element.className = Object.entries(value)\r\n .reduce((acc, [key, value]) => acc + (value ? ` ${key}` : ''), '')\r\n .trim();\r\n }\r\n return;\r\n }\r\n\r\n if (attr === 'style') {\r\n if (typeof value === 'string') {\r\n element.style.cssText = value;\r\n } else if (value && typeof value === 'object') {\r\n const obj = value as Record<string, unknown>;\r\n\r\n Object.keys(obj).forEach(key => {\r\n element.style.setProperty(kebabCase(key), String(obj[key]));\r\n });\r\n }\r\n return;\r\n }\r\n\r\n if (isFalsy(value)) {\r\n element.removeAttribute(attr);\r\n } else if (value === true) {\r\n element.setAttribute(attr, '');\r\n } else {\r\n element.setAttribute(attr, String(value));\r\n }\r\n}\r\n\r\nexport function binNode(node: Node, setter: (value: any) => void) {\r\n if (node instanceof HTMLInputElement) {\r\n // checkbox\r\n if (node.type === 'checkbox') {\r\n return addEventListener(node, 'change', () => {\r\n setter(Boolean(node.checked));\r\n });\r\n }\r\n\r\n // date\r\n if (node.type === 'date') {\r\n return addEventListener(node, 'change', () => {\r\n setter(node.value ? node.value : '');\r\n });\r\n }\r\n\r\n // file\r\n if (node.type === 'file') {\r\n return addEventListener(node, 'change', () => {\r\n if (node.files) {\r\n setter(node.files);\r\n }\r\n });\r\n }\r\n\r\n // number\r\n if (node.type === 'number') {\r\n return addEventListener(node, 'input', () => {\r\n const value = Number.parseFloat(node.value);\r\n setter(Number.isNaN(value) ? '' : String(value));\r\n });\r\n }\r\n\r\n // radio\r\n if (node.type === 'radio') {\r\n return addEventListener(node, 'change', () => {\r\n setter(node.checked ? node.value : '');\r\n });\r\n }\r\n\r\n // text\r\n if (node.type === 'text') {\r\n return addEventListener(node, 'input', () => {\r\n setter(node.value);\r\n });\r\n }\r\n }\r\n\r\n if (node instanceof HTMLSelectElement) {\r\n return addEventListener(node, 'change', () => {\r\n setter(node.value);\r\n });\r\n }\r\n\r\n if (node instanceof HTMLTextAreaElement) {\r\n return addEventListener(node, 'input', () => {\r\n setter(node.value);\r\n });\r\n }\r\n}\r\nconst p = Promise.resolve();\r\nexport function nextTick(fn?: () => void): Promise<void> {\r\n return fn ? p.then(fn) : p;\r\n}\r\n\r\nexport type Listener<T> = (value: T) => void;\r\n\r\nexport interface EventTarget {\r\n // 添加事件监听器\r\n addEventListener(type: string, listener: Listener<unknown>): void;\r\n // 移除事件监听器\r\n removeEventListener(type: string, listener: Listener<unknown>): void;\r\n}\r\n\r\nexport function addEventListener(\r\n node: EventTarget,\r\n eventName: string,\r\n handler: Listener<any>,\r\n): () => void {\r\n node.addEventListener(eventName, handler);\r\n return () => node.removeEventListener(eventName, handler);\r\n}\r\nconst selfClosingTags = [\r\n 'area',\r\n 'base',\r\n 'br',\r\n 'col',\r\n 'embed',\r\n 'hr',\r\n 'img',\r\n 'input',\r\n 'link',\r\n 'meta',\r\n 'param',\r\n 'source',\r\n 'track',\r\n 'wbr',\r\n];\r\n\r\nconst htmlTags = [\r\n 'a',\r\n 'abbr',\r\n 'acronym',\r\n 'address',\r\n 'applet',\r\n 'area',\r\n 'article',\r\n 'aside',\r\n 'audio',\r\n 'b',\r\n 'base',\r\n 'basefont',\r\n 'bdi',\r\n 'bdo',\r\n 'bgsound',\r\n 'big',\r\n 'blink',\r\n 'blockquote',\r\n 'body',\r\n 'br',\r\n 'button',\r\n 'canvas',\r\n 'caption',\r\n 'center',\r\n 'cite',\r\n 'code',\r\n 'col',\r\n 'colgroup',\r\n 'command',\r\n 'content',\r\n 'data',\r\n 'datalist',\r\n 'dd',\r\n 'del',\r\n 'details',\r\n 'dfn',\r\n 'dialog',\r\n 'dir',\r\n 'div',\r\n 'dl',\r\n 'dt',\r\n 'em',\r\n 'embed',\r\n 'fieldset',\r\n 'figcaption',\r\n 'figure',\r\n 'font',\r\n 'footer',\r\n 'form',\r\n 'frame',\r\n 'frameset',\r\n 'h1',\r\n 'h2',\r\n 'h3',\r\n 'h4',\r\n 'h5',\r\n 'h6',\r\n 'head',\r\n 'header',\r\n 'hgroup',\r\n 'hr',\r\n 'html',\r\n 'i',\r\n 'iframe',\r\n 'image',\r\n 'img',\r\n 'input',\r\n 'ins',\r\n 'kbd',\r\n 'keygen',\r\n 'label',\r\n 'legend',\r\n 'li',\r\n 'link',\r\n 'listing',\r\n 'main',\r\n 'map',\r\n 'mark',\r\n 'marquee',\r\n 'menu',\r\n 'menuitem',\r\n 'meta',\r\n 'meter',\r\n 'nav',\r\n 'nobr',\r\n 'noframes',\r\n 'noscript',\r\n 'object',\r\n 'ol',\r\n 'optgroup',\r\n 'option',\r\n 'output',\r\n 'p',\r\n 'param',\r\n 'picture',\r\n 'plaintext',\r\n 'pre',\r\n 'progress',\r\n 'q',\r\n 'rb',\r\n 'rp',\r\n 'rt',\r\n 'rtc',\r\n 'ruby',\r\n 's',\r\n 'samp',\r\n 'script',\r\n 'section',\r\n 'select',\r\n 'shadow',\r\n 'small',\r\n 'source',\r\n 'spacer',\r\n 'span',\r\n 'strike',\r\n 'strong',\r\n 'style',\r\n 'sub',\r\n 'summary',\r\n 'sup',\r\n 'table',\r\n 'tbody',\r\n 'td',\r\n 'template',\r\n 'textarea',\r\n 'tfoot',\r\n 'th',\r\n 'thead',\r\n 'time',\r\n 'title',\r\n 'tr',\r\n 'track',\r\n 'tt',\r\n 'u',\r\n 'ul',\r\n 'var',\r\n 'video',\r\n 'wbr',\r\n 'xmp',\r\n];\r\n\r\nexport function closeHtmlTags(input: string): string {\r\n const tagStack: string[] = [];\r\n const output: string[] = [];\r\n\r\n const tagPattern = /<\\/?([\\da-z-]+)([^>]*)>/gi;\r\n\r\n let lastIndex = 0;\r\n\r\n while (true) {\r\n const match = tagPattern.exec(input);\r\n if (!match) break;\r\n\r\n const [fullMatch, tagName, attributes] = match;\r\n const isEndTag = fullMatch[1] === '/';\r\n\r\n // Push text content between tags\r\n output.push(input.slice(lastIndex, match.index));\r\n lastIndex = match.index + fullMatch.length;\r\n\r\n if (isEndTag) {\r\n // Handle end tag\r\n while (tagStack.length > 0 && tagStack[tagStack.length - 1] !== tagName) {\r\n const unclosedTag = tagStack.pop();\r\n if (unclosedTag) {\r\n output.push(`</${unclosedTag}>`);\r\n }\r\n }\r\n if (tagStack.length > 0) {\r\n tagStack.pop();\r\n output.push(fullMatch);\r\n }\r\n } else {\r\n // Handle start tag or self-closing tag\r\n if (selfClosingTags.includes(tagName)) {\r\n output.push(fullMatch);\r\n } else {\r\n tagStack.push(tagName);\r\n output.push(`<${tagName}${attributes}>`);\r\n }\r\n }\r\n }\r\n\r\n // Push remaining text content after last tag\r\n output.push(input.slice(lastIndex));\r\n\r\n // Close any remaining open tags\r\n while (tagStack.length > 0) {\r\n const unclosedTag = tagStack.pop();\r\n if (unclosedTag) {\r\n output.push(`</${unclosedTag}>`);\r\n }\r\n }\r\n\r\n return output.join('');\r\n}\r\n\r\nexport function isHtmlTagName(str): str is string {\r\n return htmlTags.includes(str);\r\n}\r\nexport function convertToHtmlTag(tag: string): string {\r\n if (selfClosingTags.includes(tag)) {\r\n return `<${tag}/>`;\r\n } else {\r\n return `<${tag}></${tag}>`;\r\n }\r\n}\r\n","import { insertChild, removeChild, replaceChild } from './utils';\r\nimport { isJsxElement } from './template';\r\n\r\ntype AnyNode = Node | JSX.Element;\r\n\r\nexport function patchChildren(\r\n parent: Node,\r\n childrenMap: Map<string, AnyNode>,\r\n nextChildren: AnyNode[],\r\n before: Node | null,\r\n): Map<string, AnyNode> {\r\n const result = new Map<string, AnyNode>();\r\n const children = Array.from(childrenMap.values());\r\n const childrenLength = children.length;\r\n\r\n if (childrenMap.size > 0 && nextChildren.length === 0) {\r\n if (parent.childNodes.length === childrenLength + (before ? 1 : 0)) {\r\n (parent as Element).innerHTML = '';\r\n if (before) {\r\n insertChild(parent, before);\r\n }\r\n } else {\r\n const range = document.createRange();\r\n const child = children[0];\r\n const start = isJsxElement(child) ? child.firstChild : child;\r\n range.setStartBefore(start!);\r\n if (before) {\r\n range.setEndBefore(before);\r\n } else {\r\n range.setEndAfter(parent);\r\n }\r\n range.deleteContents();\r\n }\r\n children.forEach(node => {\r\n if (isJsxElement(node)) {\r\n node.unmount();\r\n }\r\n });\r\n return result;\r\n }\r\n\r\n const replaces: [Comment, AnyNode][] = [];\r\n const nextChildrenMap = mapKeys(nextChildren);\r\n let childIndex = 0;\r\n\r\n for (let [i, child] of nextChildren.entries()) {\r\n let currChild = children[childIndex];\r\n let currKey = getKey(currChild, i);\r\n\r\n while (currChild && !nextChildrenMap.has(currKey)) {\r\n removeChild(currChild);\r\n childrenMap.delete(currKey);\r\n currChild = children[++childIndex];\r\n currKey = getKey(currChild, i);\r\n }\r\n\r\n const key = getKey(child, i);\r\n const origChild = childrenMap.get(key);\r\n\r\n if (origChild) {\r\n child = patch(parent, origChild, child);\r\n }\r\n\r\n if (currChild) {\r\n if (currChild === origChild) {\r\n childIndex++;\r\n } else {\r\n const placeholder = document.createComment('');\r\n insertChild(parent, placeholder, currChild);\r\n replaces.push([placeholder, child]);\r\n }\r\n } else {\r\n insertChild(parent, child, before);\r\n }\r\n\r\n result.set(key, child);\r\n }\r\n\r\n replaces.forEach(([placeholder, child]) => replaceChild(parent, child, placeholder));\r\n\r\n childrenMap.forEach((child, key) => {\r\n if (child.isConnected && !result.has(key)) {\r\n removeChild(child);\r\n }\r\n });\r\n\r\n return result;\r\n}\r\n\r\nfunction patch(parent: Node, node: AnyNode, next: AnyNode): AnyNode {\r\n if (node === next) {\r\n return node;\r\n }\r\n if (isJsxElement(node) && isJsxElement(next) && node.template === next.template) {\r\n next.inheritNode(node);\r\n return next;\r\n }\r\n if (node instanceof Text && next instanceof Text) {\r\n if (node.textContent !== next.textContent) {\r\n node.textContent = next.textContent;\r\n }\r\n return node;\r\n }\r\n replaceChild(parent, next, node);\r\n return next;\r\n}\r\n\r\nexport function mapKeys(children: AnyNode[]): Map<string, AnyNode> {\r\n const result = new Map();\r\n for (const [i, child] of children.entries()) {\r\n const key = getKey(child, i);\r\n result.set(key, child);\r\n }\r\n return result;\r\n}\r\n\r\nexport function getKey(node, index): string {\r\n const id = node instanceof Element ? node.id : undefined;\r\n const result = id === '' ? undefined : id;\r\n return result ?? `_$${index}$`;\r\n}\r\n","import {\n capitalizeFirstLetter,\n coerceArray,\n isArray,\n isFunction,\n isNil,\n startsWith,\n} from 'essor-shared';\nimport { useEffect, useSignal } from '../signal';\nimport { isSignal } from '../signal/signal';\nimport {\n addEventListener,\n binNode,\n coerceNode,\n insertChild,\n removeChild,\n setAttribute,\n} from './utils';\nimport { patchChildren } from './patch';\nimport type { NodeTrack } from '../../types';\n\nexport class TemplateNode implements JSX.Element {\n treeMap = new Map<number, Node>();\n constructor(\n public template: HTMLTemplateElement,\n public props: Record<string, unknown>,\n ) {}\n\n mounted = false;\n nodes: Node[] = [];\n provides: Record<string, unknown> = {};\n trackMap = new Map<string, NodeTrack>();\n\n get firstChild(): Node | null {\n return this.nodes[0] ?? null;\n }\n\n get isConnected(): boolean {\n return this.mounted;\n }\n addEventListener(): void {}\n removeEventListener(): void {}\n\n unmount(): void {\n this.trackMap.forEach(track => {\n track.cleanup?.();\n track.lastNodes?.forEach(node => {\n if (track.isRoot) {\n removeChild(node);\n } else if (node instanceof TemplateNode) {\n node.unmount();\n }\n });\n });\n this.trackMap.clear();\n this.treeMap.clear();\n this.nodes.forEach(node => removeChild(node));\n this.nodes = [];\n this.mounted = false;\n }\n\n parent: Node | null = null;\n mount(parent: Node, before?: Node | null): Node[] {\n this.parent = parent;\n if (this.isConnected) {\n this.nodes.forEach(node => insertChild(parent, node, before));\n return this.nodes;\n }\n\n const cloneNode = this.template.content.cloneNode(true);\n const firstChild = cloneNode.firstChild as HTMLElement | null;\n\n if (firstChild?.hasAttribute?.('_svg_')) {\n firstChild.remove();\n firstChild?.childNodes.forEach(node => {\n (cloneNode as Element).append(node);\n });\n }\n\n this.nodes = Array.from(cloneNode.childNodes);\n this.mapNodeTree(parent, cloneNode);\n\n insertChild(parent, cloneNode, before);\n\n this.patchNodes(this.props);\n this.mounted = true;\n return this.nodes;\n }\n\n mapNodeTree(parent: Node, tree: Node) {\n let index = 1;\n this.treeMap.set(0, parent);\n const walk = (node: Node) => {\n if (node.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) {\n this.treeMap.set(index++, node);\n }\n let child = node.firstChild;\n while (child) {\n walk(child);\n child = child.nextSibling;\n }\n };\n walk(tree);\n }\n\n patchNodes(props) {\n for (const key in props) {\n const index = Number(key);\n const node = this.treeMap.get(index);\n if (node) {\n const value = this.props[key];\n this.patchNode(key, node, value, index === 0);\n }\n }\n this.props = props;\n }\n\n getNodeTrack(trackKey: string, trackLastNodes?: boolean, isRoot?: boolean): NodeTrack {\n let track = this.trackMap.get(trackKey);\n if (!track) {\n track = { cleanup: () => {} };\n if (trackLastNodes) {\n track.lastNodes = new Map();\n }\n if (isRoot) {\n track.isRoot = true;\n }\n this.trackMap.set(trackKey, track);\n }\n track.cleanup?.();\n return track;\n }\n\n inheritNode(node: TemplateNode): void {\n this.mounted = node.mounted;\n this.nodes = node.nodes;\n this.trackMap = node.trackMap;\n this.treeMap = node.treeMap;\n\n const props = this.props;\n this.props = node.props;\n this.patchNodes(props);\n }\n\n patchNode(key, node, props, isRoot) {\n for (const attr in props) {\n if (attr === 'children' && props.children) {\n if (!isArray(props.children)) {\n const trackKey = `${key}:${attr}:${0}`;\n const track = this.getNodeTrack(trackKey, true, isRoot);\n patchChild(track, node, props.children, null);\n } else {\n props.children.filter(Boolean).forEach((item, index) => {\n const [child, path] = isArray(item) ? item : [item, null];\n const before = isNil(path) ? null : (this.treeMap.get(path) ?? null);\n const trackKey = `${key}:${attr}:${index}`;\n const track = this.getNodeTrack(trackKey, true, isRoot);\n patchChild(track, node, child, before);\n });\n }\n } else if (attr === 'ref') {\n if (isSignal(props[attr])) {\n props[attr].value = node;\n } else if (isFunction(props[attr])) {\n (props[attr] as Function)(node);\n }\n }\n // handle events\n else if (startsWith(attr, 'on')) {\n const eventName = attr.slice(2).toLocaleLowerCase();\n const track = this.getNodeTrack(`${key}:${attr}`);\n const listener = props[attr];\n track.cleanup = addEventListener(node, eventName, listener);\n // attr\n } else if (!startsWith(attr, 'update')) {\n const track = this.getNodeTrack(`${key}:${attr}`);\n\n const val = props[attr];\n\n const triggerValue = isSignal(val) ? val : useSignal(val);\n patchAttribute(track, node, attr, triggerValue.value);\n const cleanup = useEffect(() => {\n triggerValue.value = isSignal(val) ? val.value : val;\n patchAttribute(track, node, attr, triggerValue.value);\n });\n\n let cleanupBind;\n const updateKey = `update${capitalizeFirstLetter(attr)}`;\n if (props[updateKey]) {\n cleanupBind = binNode(node, value => {\n props[updateKey](value);\n });\n }\n\n track.cleanup = () => {\n cleanup && cleanup();\n cleanupBind && cleanupBind();\n };\n }\n }\n }\n}\n\nfunction patchAttribute(track: NodeTrack, node: Node, attr: string, data: unknown): void {\n const element = node as HTMLElement;\n if (!element.setAttribute) {\n return;\n }\n if (isFunction(data)) {\n track.cleanup = useEffect(() => {\n setAttribute(element, attr, data());\n });\n } else {\n setAttribute(element, attr, data);\n }\n}\n\nfunction patchChild(track: NodeTrack, parent: Node, child: unknown, before: Node | null): void {\n if (isFunction(child)) {\n track.cleanup = useEffect(() => {\n const nextNodes = coerceArray((child as Function)()).map(coerceNode);\n track.lastNodes = patchChildren(parent, track.lastNodes!, nextNodes, before);\n });\n } else {\n coerceArray(child).forEach((node, i) => {\n const newNode = coerceNode(node);\n track.lastNodes!.set(String(i), newNode);\n insertChild(parent, newNode, before);\n });\n }\n}\n","import { ComponentNode } from './component-node';\n\nexport function onMount(cb: () => void): void {\n throwIfOutsideComponent('onMounted');\n ComponentNode.ref?.addHook('mounted', cb);\n}\n\nexport function onDestroy(cb: () => void): void {\n throwIfOutsideComponent('onDestroy');\n ComponentNode.ref?.addHook('destroy', cb);\n}\n\nfunction throwIfOutsideComponent(hook: string) {\n if (!ComponentNode.ref) {\n console.error(\n `\"${hook}\" can only be called within the component function body\n and cannot be used in asynchronous or deferred calls.`,\n );\n }\n}\n\nexport function getCurrentComponent(): ComponentNode | null {\n return ComponentNode.ref;\n}\n\nexport interface InjectionKey<T> extends Symbol {}\n\nexport function useProvide<T, K = InjectionKey<T> | string | number>(\n key: K,\n value: K extends InjectionKey<infer V> ? V : T,\n) {\n throwIfOutsideComponent('useProvide');\n\n ComponentNode.ref?.setContext(key as string, value);\n}\nexport function useInject<T, K = InjectionKey<T> | string | number>(\n key: K,\n defaultValue?: K extends InjectionKey<infer V> ? V : T,\n) {\n throwIfOutsideComponent('useInject');\n return ComponentNode.ref?.getContext(key as string) || defaultValue;\n}\n\n// export function useProps(props) {\n// const propsValue = props;\n// const propsAction = () => {};\n// const propsRef = () => {};\n// const propsChild = () => {};\n// }\n\n/**\n * Initializes a reference with a null value of type T or null.\n *\n * @template T - The type of the reference.\n * @return {T & { __is_ref: boolean; current: T | null }} A proxy object allowing custom get and set behavior.\n */\nexport function useRef<T>(): {\n __is_ref: boolean;\n current: T | null;\n} {\n let refValue: T | null = null;\n\n return new Proxy({} as any, {\n get(target, key: string | symbol) {\n if (key === '__is_ref') {\n return true;\n }\n return refValue;\n },\n set(target, prop: string | symbol, value: any) {\n if (prop === 'current') {\n refValue = value;\n return true;\n }\n refValue = value;\n return true;\n },\n });\n}\n","import { isFunction, isObject, startsWith } from 'essor-shared';\r\nimport type { EssorNode } from '../../types';\r\n\r\ninterface TemplateMap {\r\n [key: number]: {\r\n template: string;\r\n prop?: Record<string, any>;\r\n };\r\n}\r\n\r\ntype Props = Record<string, any>;\r\n\r\n/**\r\n * Converts a JSON object to a string of HTML attributes.\r\n * @param json - The JSON object.\r\n * @returns The string of HTML attributes.\r\n */\r\nfunction jsonToAttrs(json: Record<string, any>): string {\r\n return Object.entries(json)\r\n .map(([key, value]) => `${key}=${JSON.stringify(escape(String(value)))}`)\r\n .join(' ');\r\n}\r\n\r\nexport function renderTemplate(template: string[] | EssorNode | Function, props: Props): string {\r\n if (isFunction(template)) {\r\n return template(props);\r\n }\r\n\r\n const templates: TemplateMap = Array.isArray(template)\r\n ? template.reduce((acc, tmpl, index) => {\r\n acc[index + 1] = { template: tmpl };\r\n return acc;\r\n }, {})\r\n : template;\r\n\r\n const childrenMap: Record<string, EssorNode[]> = {};\r\n const newTemplate: TemplateMap = {};\r\n\r\n if (isObject(templates)) {\r\n for (const [key, tmpl] of Object.entries(templates)) {\r\n const prop = props[key];\r\n if (prop) {\r\n for (const propKey in prop) {\r\n if (startsWith(propKey, 'on') && isFunction(prop[propKey])) {\r\n delete prop[propKey];\r\n }\r\n }\r\n\r\n if (prop.children) {\r\n for (const [child, idx] of prop.children) {\r\n if (!childrenMap[idx]) childrenMap[idx] = [];\r\n childrenMap[idx].push(child);\r\n }\r\n delete prop.children;\r\n }\r\n }\r\n\r\n newTemplate[key] = { template: tmpl.template, prop };\r\n }\r\n }\r\n\r\n return Object.entries(newTemplate)\r\n .map(([key, { template: tmpl, prop }]) => {\r\n let str = tmpl;\r\n if (prop) {\r\n str += ` ${jsonToAttrs(prop)}`;\r\n }\r\n if (childrenMap[key]) {\r\n str += childrenMap[key].map(child => renderTemplate(child, prop)).join('');\r\n }\r\n\r\n return str;\r\n })\r\n .join('');\r\n}\r\n\r\n/**\r\n * Renders the component to a string.\r\n * @param component - The component function.\r\n * @param props - The properties to pass to the component.\r\n * @returns The rendered component as a string.\r\n */\r\nexport function renderToString(component: (...args: any[]) => string, props: Props): string {\r\n return renderTemplate(component, props);\r\n}\r\n\r\nexport function ssgRender(component, root: HTMLElement, props: Props = {}): void {\r\n root.innerHTML = renderTemplate(component, props);\r\n}\r\n","import { essor_version } from './version';\r\n\r\nexport * from './signal';\r\nexport * from './template';\r\nexport * from './server';\r\n\r\nexport type * from '../types/index.d.ts';\r\n\r\nif (globalThis) {\r\n globalThis.__essor_version__ = essor_version;\r\n}\r\n\r\nexport { essor_version };\r\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/version.ts","../../shared/src/is.ts","../../shared/src/comm.ts","../../shared/src/name.ts","../../signal/dist/signal.dev.esm.js","../../template/dist/template.dev.esm.js","../src/index.ts"],"names":["essor_version","isObject","val","isArray","isString","isNil","x","isFunction","isFalsy","coerceArray","data","startsWith","str","searchString","kebabCase","string","match","offset","capitalizeFirstLetter","inputString","__defProp","__getOwnPropSymbols","__hasOwnProp","__propIsEnum","__defNormalProp","obj","key","value","__spreadValues","a","b","prop","isNull","isSet","_toString","isWeakMap","isWeakSet","isMap","isPrimitive","isHTMLElement","hasChanged","oldValue","noop","isExclude","exclude","warn","msg","args","activeEffect","activeComputed","computedMap","signalMap","effectDeps","reactiveMap","arrayMethods","track","target","depsMap","dep","computedDepsMap","computedDeps","trigger","effect","computeds","computed","Signal","shallow","useReactive","newValue","isSignal","useSignal","shallowSignal","Computed","fn","prev","useComputed","isComputed","useEffect","effectFn","signalObject","initialValues","acc","unSignal","signal","isReactive","unReactive","REACTIVE_MARKER","createArrayProxy","initialValue","method","originalMethod","result","reactive","shallowReactive","handler","receiver","getValue","proxy","useWatch","source","cb","options","doWatch","getter","s","stop","_id","StoreMap","createOptionsStore","state","getters","actions","initState","reactiveState","subscriptions","actionCallbacks","store","payload","callback","index","action","createStore","_ComponentNode","template2","props","_a","_b","hook","context","node","parent","before","_c","_d","mountedNode","set","emitter","trackKey","suppressCleanupCall","_e","event","listener","cleanup","addEventListener","ComponentNode","h","_template","isHtmlTagName","convertToHtmlTag","template","TemplateNode","isJsxElement","html","closeHtmlTags","Fragment","selfClosingTags","htmlTags","coerceNode","text","insertChild","child","beforeNode","removeChild","replaceChild","setAttribute","element","attr","value2","binNode","setter","p","nextTick","eventName","input","selfClosingTagList","tagStack","output","tagPattern","lastIndex","fullMatch","tagName","isEndTag","unclosedTag","patchChildren","childrenMap","nextChildren","children","childrenLength","range","start","replaces","nextChildrenMap","mapKeys","childIndex","i","currChild","currKey","getKey","origChild","patch","placeholder","next","id","_TemplateNode","cloneNode","firstChild","tree","walk","trackLastNodes","isRoot","item","path","patchChild","triggerValue","patchAttribute","cleanupBind","updateKey","nextNodes","newNode","onMount","throwIfOutsideComponent","onDestroy","useProvide","useInject","defaultValue","convertJsonToAttributes","json","renderTemplate","templateCollection","tmpl","childNodesMap","processedTemplates","propKey","idx","renderedString","renderToString","component","renderSSG","root"],"mappings":"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","file":"essor.esm.js","sourcesContent":["export const essor_version = '0.0.10-beta.20';\n","import { _toString } from './comm';\n\nexport const isObject = (val: unknown): val is Record<any, any> =>\n val !== null && typeof val === 'object';\nexport function isPromise(val: any): boolean {\n return _toString.call(val) === '[object Promise]';\n}\n\nexport const isArray = Array.isArray;\n\nexport function isString(val: unknown): val is string {\n return typeof val === 'string';\n}\nexport function isNull(val: any): val is null {\n return val === null;\n}\nexport function isSymbol(val: unknown): val is symbol {\n return typeof val === 'symbol';\n}\n\nexport function isSet(val: any): val is Set<any> {\n return _toString.call(val) === '[object Set]';\n}\nexport function isWeakMap(val: any): val is WeakMap<any, any> {\n return _toString.call(val) === '[object WeakMap]';\n}\nexport function isWeakSet(val: any): val is WeakSet<any> {\n return _toString.call(val) === '[object WeakSet]';\n}\n\nexport function isMap(val: unknown): val is Map<any, any> {\n return _toString.call(val) === '[object Map]';\n}\nexport function isNil(x: any): x is null | undefined {\n return x === null || x === undefined;\n}\n\nexport const isFunction = (val: unknown): val is Function => typeof val === 'function';\n\nexport function isFalsy(x: any): x is false | null | undefined {\n return x === false || x === null || x === undefined;\n}\n\nexport const isPrimitive = (\n val: unknown,\n): val is string | number | boolean | symbol | null | undefined =>\n ['string', 'number', 'boolean', 'symbol', 'undefined'].includes(typeof val) || isNull(val);\n\nexport function isHTMLElement(obj) {\n if (!obj) return false;\n return obj && typeof obj === 'object' && obj.nodeType === 1 && typeof obj.nodeName === 'string';\n}\n","import { isFunction, isString } from './is';\n\nexport const _toString = Object.prototype.toString;\nexport const extend = Object.assign;\nconst hasOwnProperty = Object.prototype.hasOwnProperty;\nexport const hasOwn = (val: object, key: string | symbol): key is keyof typeof val =>\n hasOwnProperty.call(val, key);\n\nexport function coerceArray<T>(data: T | T[]): T[] {\n return Array.isArray(data) ? (data.flat() as T[]) : [data];\n}\nexport const hasChanged = (value, oldValue) =>\n value !== oldValue && (value === value || oldValue === oldValue);\nexport const noop = Function.prototype as () => void;\n\n/**\n * A function that checks if a string starts with a specific substring.\n * indexOf faster under normal circumstances\n * @see https://www.measurethat.net/Benchmarks/Show/12350/0/startswith-vs-test-vs-match-vs-indexof#latest_results_block\n\n * @param {string} str - The input string to check.\n * @param {string} searchString - The substring to check for at the beginning of the input string.\n * @return {boolean} Returns true if the input string starts with the specified substring, otherwise false.\n */\nexport function startsWith(str, searchString) {\n if (!isString(str)) {\n return false;\n }\n return str.indexOf(searchString) === 0;\n}\n\n/**\n * Escapes special HTML characters in a string.\n * @param str - The string to escape.\n * @returns The escaped string.\n */\nexport function escape(str: string): string {\n return str.replaceAll(/[\"&'<>]/g, char => {\n switch (char) {\n case '&':\n return '&';\n case '<':\n return '<';\n case '>':\n return '>';\n case '\"':\n return '"';\n case \"'\":\n return ''';\n default:\n return char;\n }\n });\n}\n\nexport type ExcludeType = ((key: string | symbol) => boolean) | (string | symbol)[];\n\n/**\n * Checks if a key should be excluded based on the provided exclude criteria.\n * @param key - The key to check.\n * @param exclude - The exclusion criteria.\n * @returns True if the key should be excluded, otherwise false.\n */\nexport function isExclude(key: string | symbol, exclude?: ExcludeType): boolean {\n return Array.isArray(exclude)\n ? exclude.includes(key)\n : isFunction(exclude)\n ? exclude(key)\n : false;\n}\n","export const kebabCase = (string: string): string => {\n return string.replaceAll(/[A-Z]+/g, (match, offset) => {\n return `${offset > 0 ? '-' : ''}${match.toLocaleLowerCase()}`;\n });\n};\n\nexport const camelCase = (str: string): string => {\n const s = str.replaceAll(/[\\s_-]+(.)?/g, (_, c) => (c ? c.toUpperCase() : ''));\n return s[0].toLowerCase() + s.slice(1);\n};\n/**\n * Capitalizes the first letter of a string.\n *\n * @param {string} inputString - The input string to capitalize the first letter.\n * @return {string} The string with the first letter capitalized.\n */\nexport const capitalizeFirstLetter = (inputString: string): string => {\n return inputString.charAt(0).toUpperCase() + inputString.slice(1);\n};\n","/**\n* @estjs/signal v0.0.10-beta.20\n* (c) 2023-Present jiangxd <jiangxd2016@gmail.com>\n* @license MIT\n**/\nvar __defProp = Object.defineProperty;\nvar __getOwnPropSymbols = Object.getOwnPropertySymbols;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __propIsEnum = Object.prototype.propertyIsEnumerable;\nvar __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;\nvar __spreadValues = (a, b) => {\n for (var prop in b || (b = {}))\n if (__hasOwnProp.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n if (__getOwnPropSymbols)\n for (var prop of __getOwnPropSymbols(b)) {\n if (__propIsEnum.call(b, prop))\n __defNormalProp(a, prop, b[prop]);\n }\n return a;\n};\n\n// ../shared/dist/essor-shared.js\nvar isObject = (val) => val !== null && typeof val === \"object\";\nvar isArray = Array.isArray;\nfunction isString(val) {\n return typeof val === \"string\";\n}\nfunction isNull(val) {\n return val === null;\n}\nfunction isSet(val) {\n return _toString.call(val) === \"[object Set]\";\n}\nfunction isWeakMap(val) {\n return _toString.call(val) === \"[object WeakMap]\";\n}\nfunction isWeakSet(val) {\n return _toString.call(val) === \"[object WeakSet]\";\n}\nfunction isMap(val) {\n return _toString.call(val) === \"[object Map]\";\n}\nvar isFunction = (val) => typeof val === \"function\";\nvar isPrimitive = (val) => [\"string\", \"number\", \"boolean\", \"symbol\", \"undefined\"].includes(typeof val) || isNull(val);\nfunction isHTMLElement(obj) {\n if (!obj) return false;\n return obj && typeof obj === \"object\" && obj.nodeType === 1 && typeof obj.nodeName === \"string\";\n}\nvar _toString = Object.prototype.toString;\nvar hasChanged = (value, oldValue) => value !== oldValue && (value === value || oldValue === oldValue);\nvar noop = Function.prototype;\nfunction startsWith(str, searchString) {\n if (!isString(str)) {\n return false;\n }\n return str.indexOf(searchString) === 0;\n}\nfunction isExclude(key, exclude) {\n return Array.isArray(exclude) ? exclude.includes(key) : isFunction(exclude) ? exclude(key) : false;\n}\nfunction warn(msg, ...args) {\n console.warn.apply(console, [`[Essor warn]: ${msg}`].concat(args));\n}\n\n// src/signal.ts\nvar activeEffect = null;\nvar activeComputed = null;\nvar computedMap = /* @__PURE__ */ new WeakMap();\nvar signalMap = /* @__PURE__ */ new WeakMap();\nvar effectDeps = /* @__PURE__ */ new Set();\nvar reactiveMap = /* @__PURE__ */ new WeakMap();\nvar arrayMethods = [\"push\", \"pop\", \"shift\", \"unshift\", \"splice\", \"sort\", \"reverse\"];\nfunction track(target, key) {\n if (!activeEffect && !activeComputed) return;\n let depsMap = signalMap.get(target);\n if (!depsMap) {\n depsMap = /* @__PURE__ */ new Map();\n signalMap.set(target, depsMap);\n }\n let dep = depsMap.get(key);\n if (!dep) {\n dep = /* @__PURE__ */ new Set();\n depsMap.set(key, dep);\n }\n if (activeEffect) dep.add(activeEffect);\n let computedDepsMap = computedMap.get(target);\n if (!computedDepsMap) {\n computedDepsMap = /* @__PURE__ */ new Map();\n computedMap.set(target, computedDepsMap);\n }\n let computedDeps = computedDepsMap.get(key);\n if (!computedDeps) {\n computedDeps = /* @__PURE__ */ new Set();\n computedDepsMap.set(key, computedDeps);\n }\n if (activeComputed) {\n computedDeps.add(activeComputed);\n }\n}\nfunction trigger(target, key) {\n const depsMap = signalMap.get(target);\n if (!depsMap) return;\n const dep = depsMap.get(key);\n if (dep) {\n dep.forEach((effect) => effectDeps.has(effect) && effect());\n }\n const computedDepsMap = computedMap.get(target);\n if (computedDepsMap) {\n const computeds = computedDepsMap.get(key);\n if (computeds) {\n computeds.forEach((computed) => computed.run());\n }\n }\n}\nvar Signal = class {\n constructor(value, shallow = false) {\n this._value = value;\n this._shallow = shallow;\n }\n /**\n * Get the current value of the Signal and track its usage.\n */\n get value() {\n track(this, \"_sv\");\n this.__triggerObject();\n return this._value;\n }\n /**\n * Trigger reactivity for non-primitive and non-HTMLElement values.\n * Recursively applies reactivity to nested objects.\n */\n __triggerObject() {\n if (!isPrimitive(this._value) && !isHTMLElement(this._value) && !this._shallow) {\n useReactive(this._value);\n }\n }\n /**\n * Set a new value to the Signal and trigger updates if the value has changed.\n */\n set value(newValue) {\n if (isSignal(newValue)) {\n console.warn(\"Signal cannot be set to another signal, use .peek() instead\");\n newValue = newValue.peek();\n }\n if (hasChanged(newValue, this._value)) {\n this._value = newValue;\n if (!isPrimitive(this._value) && !isHTMLElement(this._value)) {\n this.__triggerObject();\n }\n trigger(this, \"_sv\");\n }\n }\n /**\n * Peek at the current value of the Signal without tracking it.\n */\n peek() {\n return this._value;\n }\n};\nfunction useSignal(value) {\n if (isSignal(value)) {\n return value;\n }\n return new Signal(value);\n}\nfunction shallowSignal(value) {\n return new Signal(value, true);\n}\nfunction isSignal(value) {\n return value instanceof Signal;\n}\nvar Computed = class {\n constructor(fn) {\n this.fn = fn;\n const prev = activeComputed;\n activeComputed = this;\n this._value = this.fn();\n activeComputed = prev;\n }\n /**\n * Get the current computed value without tracking it.\n */\n peek() {\n return this._value;\n }\n /**\n * Run the computed function and update the value if it has changed.\n */\n run() {\n const newValue = this.fn();\n if (hasChanged(newValue, this._value)) {\n this._value = newValue;\n trigger(this, \"_cv\");\n }\n }\n /**\n * Get the current computed value and track its usage.\n */\n get value() {\n track(this, \"_cv\");\n return this._value;\n }\n};\nfunction useComputed(fn) {\n return new Computed(fn);\n}\nfunction isComputed(value) {\n return value instanceof Computed;\n}\nfunction useEffect(fn) {\n function effectFn() {\n const prev = activeEffect;\n activeEffect = effectFn;\n fn();\n activeEffect = prev;\n }\n effectDeps.add(effectFn);\n effectFn();\n return () => {\n effectDeps.delete(effectFn);\n activeEffect = null;\n };\n}\nfunction signalObject(initialValues, exclude) {\n const signals = Object.entries(initialValues).reduce((acc, [key, value]) => {\n acc[key] = isExclude(key, exclude) || isSignal(value) ? value : useSignal(value);\n return acc;\n }, {});\n return signals;\n}\nfunction unSignal(signal, exclude) {\n if (!signal) return {};\n if (isSignal(signal)) {\n return signal.peek();\n }\n if (isArray(signal)) {\n return signal.map((value) => unSignal(value, exclude));\n }\n if (isObject(signal)) {\n return Object.entries(signal).reduce((acc, [key, value]) => {\n if (isExclude(key, exclude)) {\n acc[key] = value;\n } else {\n acc[key] = isSignal(value) ? value.peek() : isReactive(value) ? unReactive(value) : value;\n }\n return acc;\n }, {});\n }\n return signal;\n}\nvar REACTIVE_MARKER = Symbol(\"useReactive\");\nfunction isReactive(obj) {\n return obj && obj[REACTIVE_MARKER] === true;\n}\nfunction unReactive(obj) {\n if (!isReactive(obj)) {\n return obj;\n }\n return __spreadValues({}, obj);\n}\nfunction createArrayProxy(initialValue) {\n arrayMethods.forEach((method) => {\n const originalMethod = Array.prototype[method];\n track(initialValue, \"length\");\n Object.defineProperty(initialValue, method, {\n value(...args) {\n const result = originalMethod.apply(this, args);\n if ([\"push\", \"pop\", \"shift\", \"unshift\", \"splice\", \"sort\", \"reverse\"].includes(method)) {\n trigger(initialValue, \"length\");\n }\n return result;\n },\n enumerable: false,\n writable: true,\n configurable: true\n });\n });\n}\nfunction useReactive(initialValue, exclude) {\n return reactive(initialValue, exclude, false);\n}\nfunction shallowReactive(initialValue, exclude) {\n return reactive(initialValue, exclude, true);\n}\nfunction reactive(initialValue, exclude, shallow = false) {\n if (!isObject(initialValue)) {\n return initialValue;\n }\n if (isReactive(initialValue)) {\n return initialValue;\n }\n if (reactiveMap.has(initialValue)) {\n return reactiveMap.get(initialValue);\n }\n if (Array.isArray(initialValue)) {\n createArrayProxy(initialValue);\n }\n if (isSet(initialValue) || isMap(initialValue) || isWeakSet(initialValue) || isWeakMap(initialValue)) {\n return initialValue;\n }\n const handler = {\n get(target, key, receiver) {\n if (key === REACTIVE_MARKER || startsWith(key, \"_\")) return true;\n const getValue = Reflect.get(target, key, receiver);\n const value = isSignal(getValue) ? getValue.value : getValue;\n if (isExclude(key, exclude)) {\n return value;\n }\n track(target, key);\n if (isObject(value) && !shallow) {\n return useReactive(value);\n }\n return value;\n },\n set(target, key, value, receiver) {\n if (isExclude(key, exclude)) {\n Reflect.set(target, key, value, receiver);\n return true;\n }\n let oldValue = Reflect.get(target, key, receiver);\n if (isSignal(oldValue)) {\n oldValue = oldValue.value;\n }\n if (isSignal(value)) {\n value = value.value;\n }\n const obj = Reflect.set(target, key, value, receiver);\n if (hasChanged(value, oldValue)) {\n trigger(target, key);\n }\n return obj;\n },\n deleteProperty(target, key) {\n const oldValue = Reflect.get(target, key);\n const result = Reflect.deleteProperty(target, key);\n if (oldValue !== void 0) {\n trigger(target, key);\n }\n return result;\n }\n };\n const proxy = new Proxy(initialValue, handler);\n reactiveMap.set(initialValue, proxy);\n return proxy;\n}\n\n// src/watch.ts\nfunction useWatch(source, cb, options) {\n return doWatch(source, cb, options);\n}\nfunction doWatch(source, cb, options) {\n let getter;\n if (isSignal(source) || isComputed(source)) {\n getter = () => source.value;\n } else if (isReactive(source)) {\n getter = () => __spreadValues({}, source);\n } else if (isArray(source)) {\n getter = () => source.map((s) => {\n if (isSignal(s) || isComputed(s)) return s.value;\n if (isReactive(s)) return __spreadValues({}, s);\n if (isFunction(s)) return s();\n return warn(\"Invalid source\", s);\n });\n } else if (isFunction(source)) {\n getter = source;\n } else {\n warn(\"Invalid source type\", source);\n getter = noop;\n }\n let oldValue;\n const effectFn = () => {\n const newValue = getter();\n if ((options == null ? void 0 : options.deep) || hasChanged(newValue, oldValue)) {\n cb && cb(newValue, oldValue);\n oldValue = newValue;\n }\n };\n const stop = useEffect(effectFn);\n if (options == null ? void 0 : options.immediate) {\n effectFn();\n }\n return stop;\n}\n\n// src/store.ts\nvar _id = 0;\nvar StoreMap = /* @__PURE__ */ new Map();\nfunction createOptionsStore(options) {\n const { state, getters, actions } = options;\n const initState = __spreadValues({}, state != null ? state : {});\n const reactiveState = useReactive(state != null ? state : {});\n const subscriptions = [];\n const actionCallbacks = [];\n const default_actions = {\n patch$(payload) {\n Object.assign(reactiveState, payload);\n subscriptions.forEach((callback) => callback(reactiveState));\n actionCallbacks.forEach((callback) => callback(reactiveState));\n },\n subscribe$(callback) {\n subscriptions.push(callback);\n },\n unsubscribe$(callback) {\n const index = subscriptions.indexOf(callback);\n if (index !== -1) {\n subscriptions.splice(index, 1);\n }\n },\n onAction$(callback) {\n actionCallbacks.push(callback);\n },\n reset$() {\n Object.assign(reactiveState, initState);\n }\n };\n const store = __spreadValues({\n state: reactiveState\n }, default_actions);\n for (const key in getters) {\n const getter = getters[key];\n if (getter) {\n useWatch(useComputed(getter.bind(reactiveState, reactiveState)), (value) => {\n store[key] = value;\n });\n }\n }\n for (const key in actions) {\n const action = actions[key];\n if (action) {\n store[key] = action.bind(reactiveState);\n }\n }\n StoreMap.set(_id, store);\n ++_id;\n return store;\n}\nfunction createStore(options) {\n return function() {\n if (StoreMap.has(_id)) {\n return StoreMap.get(_id);\n }\n return createOptionsStore(options);\n };\n}\n/**\n* @estjs/shared v0.0.10-beta.20\n* (c) 2023-Present jiangxd <jiangxd2016@gmail.com>\n* @license MIT\n**/\n\nexport { createStore, isComputed, isReactive, isSignal, shallowReactive, shallowSignal, signalObject, unReactive, unSignal, useComputed, useEffect, useReactive, useSignal, useWatch };\n","import { isString, isFunction, isArray, isNil, startsWith, capitalizeFirstLetter, coerceArray, isObject, isFalsy, kebabCase } from '@estjs/shared';\nimport { isSignal, useSignal, useEffect, signalObject, useReactive } from '@estjs/signal';\n\n/**\n* @estjs/template v0.0.10-beta.20\n* (c) 2023-Present jiangxd <jiangxd2016@gmail.com>\n* @license MIT\n**/\n\nvar _ComponentNode = class _ComponentNode {\n constructor(template2, props) {\n this.template = template2;\n this.props = props;\n this.proxyProps = {};\n this.context = {};\n this.emitter = /* @__PURE__ */ new Set();\n this.mounted = false;\n this.rootNode = null;\n this.hooks = {\n mounted: /* @__PURE__ */ new Set(),\n destroy: /* @__PURE__ */ new Set()\n };\n this.trackMap = /* @__PURE__ */ new Map();\n this.proxyProps = signalObject(\n props,\n (key) => startsWith(key, \"on\") || startsWith(key, \"update\")\n );\n }\n addEventListener() {\n }\n removeEventListener() {\n }\n get firstChild() {\n var _a, _b;\n return (_b = (_a = this.rootNode) == null ? void 0 : _a.firstChild) != null ? _b : null;\n }\n get isConnected() {\n var _a, _b;\n return (_b = (_a = this.rootNode) == null ? void 0 : _a.isConnected) != null ? _b : false;\n }\n addHook(hook, cb) {\n var _a;\n (_a = this.hooks[hook]) == null ? void 0 : _a.add(cb);\n }\n getContext(context) {\n return _ComponentNode.context[context];\n }\n setContext(context, value) {\n _ComponentNode.context[context] = value;\n }\n inheritNode(node) {\n this.context = node.context;\n this.hooks = node.hooks;\n Object.assign(this.proxyProps, node.proxyProps);\n this.rootNode = node.rootNode;\n this.trackMap = node.trackMap;\n const props = this.props;\n this.props = node.props;\n this.patchProps(props);\n }\n mount(parent, before) {\n var _a, _b, _c, _d;\n if (!isFunction(this.template)) {\n throw new Error(\"Template must be a function\");\n }\n if (this.isConnected) {\n return (_b = (_a = this.rootNode) == null ? void 0 : _a.mount(parent, before)) != null ? _b : [];\n }\n _ComponentNode.ref = this;\n this.rootNode = this.template(useReactive(this.proxyProps, [\"children\"]));\n _ComponentNode.ref = null;\n this.mounted = true;\n const mountedNode = (_d = (_c = this.rootNode) == null ? void 0 : _c.mount(parent, before)) != null ? _d : [];\n this.hooks.mounted.forEach((handler) => handler());\n this.patchProps(this.props);\n return mountedNode;\n }\n unmount() {\n var _a;\n this.hooks.destroy.forEach((handler) => handler());\n Object.values(this.hooks).forEach((set) => set.clear());\n (_a = this.rootNode) == null ? void 0 : _a.unmount();\n this.rootNode = null;\n this.proxyProps = {};\n this.mounted = false;\n this.emitter.forEach((emitter) => emitter());\n }\n getNodeTrack(trackKey, suppressCleanupCall) {\n let track = this.trackMap.get(trackKey);\n if (!track) {\n track = { cleanup: () => {\n } };\n this.trackMap.set(trackKey, track);\n }\n if (!suppressCleanupCall) {\n track.cleanup();\n }\n return track;\n }\n patchProps(props) {\n var _a, _b, _c, _d, _e;\n for (const [key, prop] of Object.entries(props)) {\n if (startsWith(key, \"on\") && ((_a = this.rootNode) == null ? void 0 : _a.nodes)) {\n const event = key.slice(2).toLowerCase();\n const listener = prop;\n const cleanup = addEventListener(this.rootNode.nodes[0], event, listener);\n this.emitter.add(cleanup);\n } else if (key === \"ref\") {\n if (isSignal(prop)) {\n props[key].value = (_b = this.rootNode) == null ? void 0 : _b.nodes[0];\n } else if (isFunction(prop)) {\n props[key]((_c = this.rootNode) == null ? void 0 : _c.nodes[0]);\n }\n } else if (startsWith(key, \"update\")) {\n props[key] = isSignal(prop) ? prop.value : prop;\n } else if (key !== \"children\") {\n const newValue = (_e = (_d = this.proxyProps)[key]) != null ? _e : _d[key] = useSignal(prop);\n const track = this.getNodeTrack(key);\n track.cleanup = useEffect(() => {\n newValue.value = isFunction(prop) ? prop() : prop;\n });\n }\n }\n this.props = props;\n }\n};\n_ComponentNode.ref = null;\n_ComponentNode.context = {};\nvar ComponentNode = _ComponentNode;\n\n// src/template.ts\nfunction h(_template, props) {\n if (isString(_template)) {\n if (isHtmlTagName(_template)) {\n _template = convertToHtmlTag(_template);\n props = {\n 1: props\n };\n }\n if (_template === \"\") {\n props = {\n 0: props\n };\n }\n _template = template(_template);\n }\n return isFunction(_template) ? new ComponentNode(_template, props) : new TemplateNode(_template, props);\n}\nfunction isJsxElement(node) {\n return node instanceof ComponentNode || node instanceof TemplateNode;\n}\nfunction template(html) {\n html = closeHtmlTags(html);\n const template2 = document.createElement(\"template\");\n template2.innerHTML = html;\n return template2;\n}\nfunction Fragment(props) {\n return props.children;\n}\n\n// src/utils.ts\nvar selfClosingTags = \"area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr\";\nvar htmlTags = \"a,abbr,acronym,address,applet,area,article,aside,audio,b,base,basefont,bdi,bdo,bgsound,big,blink,blockquote,body,br,button,canvas,caption,center,cite,code,col,colgroup,command,content,data,datalist,dd,del,details,dfn,dialog,dir,div,dl,dt,em,embed,fieldset,figcaption,figure,font,footer,form,frame,frameset,h1,h2,h3,h4,h5,h6,head,header,hgroup,hr,html,i,iframe,image,img,input,ins,kbd,keygen,label,legend,li,link,listing,main,map,mark,marquee,menu,menuitem,meta,meter,nav,nobr,noframes,noscript,object,ol,optgroup,option,output,p,param,picture,plaintext,pre,progress,q,rb,rp,rt,rtc,ruby,s,samp,script,section,select,shadow,small,source,spacer,span,strike,strong,style,sub,summary,sup,table,tbody,td,template,textarea,tfoot,th,thead,time,title,tr,track,tt,u,ul,var,video,wbr,xmp\";\nfunction coerceNode(data) {\n if (isJsxElement(data) || data instanceof Node) {\n return data;\n }\n const text = isFalsy(data) ? \"\" : String(data);\n return document.createTextNode(text);\n}\nfunction insertChild(parent, child, before = null) {\n const beforeNode = isJsxElement(before) ? before.firstChild : before;\n if (isJsxElement(child)) {\n child.mount(parent, beforeNode);\n } else if (beforeNode) {\n beforeNode.before(child);\n } else {\n parent.append(child);\n }\n}\nfunction removeChild(child) {\n if (isJsxElement(child)) {\n child.unmount();\n } else {\n const parent = child.parentNode;\n if (parent) {\n child.remove();\n }\n }\n}\nfunction replaceChild(parent, node, child) {\n insertChild(parent, node, child);\n removeChild(child);\n}\nfunction setAttribute(element, attr, value) {\n if (attr === \"class\") {\n if (typeof value === \"string\") {\n element.className = value;\n } else if (Array.isArray(value)) {\n element.className = value.join(\" \");\n } else if (value && typeof value === \"object\") {\n element.className = Object.entries(value).reduce((acc, [key, value2]) => acc + (value2 ? ` ${key}` : \"\"), \"\").trim();\n }\n return;\n }\n if (attr === \"style\") {\n if (typeof value === \"string\") {\n element.style.cssText = value;\n } else if (value && typeof value === \"object\") {\n const obj = value;\n Object.keys(obj).forEach((key) => {\n element.style.setProperty(kebabCase(key), String(obj[key]));\n });\n }\n return;\n }\n if (isFalsy(value)) {\n element.removeAttribute(attr);\n } else if (value === true) {\n element.setAttribute(attr, \"\");\n } else {\n if (element instanceof HTMLInputElement) {\n element.value = String(value);\n } else {\n element.setAttribute(attr, String(value));\n }\n }\n}\nfunction binNode(node, setter) {\n if (node instanceof HTMLInputElement) {\n switch (node.type) {\n case \"checkbox\":\n return addEventListener(node, \"change\", () => {\n setter(Boolean(node.checked));\n });\n case \"date\":\n return addEventListener(node, \"change\", () => {\n setter(node.value ? node.value : \"\");\n });\n case \"file\":\n return addEventListener(node, \"change\", () => {\n if (node.files) {\n setter(node.files);\n }\n });\n case \"number\":\n return addEventListener(node, \"input\", () => {\n const value = Number.parseFloat(node.value);\n setter(Number.isNaN(value) ? \"\" : String(value));\n });\n case \"radio\":\n return addEventListener(node, \"change\", () => {\n setter(node.checked ? node.value : \"\");\n });\n case \"text\":\n return addEventListener(node, \"input\", () => {\n setter(node.value);\n });\n }\n }\n if (node instanceof HTMLSelectElement) {\n return addEventListener(node, \"change\", () => {\n setter(node.value);\n });\n }\n if (node instanceof HTMLTextAreaElement) {\n return addEventListener(node, \"input\", () => {\n setter(node.value);\n });\n }\n}\nvar p = Promise.resolve();\nfunction nextTick(fn) {\n return fn ? p.then(fn) : p;\n}\nfunction addEventListener(node, eventName, handler) {\n node.addEventListener(eventName, handler);\n return () => node.removeEventListener(eventName, handler);\n}\nfunction closeHtmlTags(input) {\n const selfClosingTagList = selfClosingTags.split(\",\");\n const tagStack = [];\n const output = [];\n const tagPattern = /<\\/?([\\da-z-]+)([^>]*)>/gi;\n let lastIndex = 0;\n while (true) {\n const match = tagPattern.exec(input);\n if (!match) break;\n const [fullMatch, tagName] = match;\n const isEndTag = fullMatch[1] === \"/\";\n output.push(input.slice(lastIndex, match.index));\n lastIndex = match.index + fullMatch.length;\n if (isEndTag) {\n while (tagStack.length > 0 && tagStack[tagStack.length - 1] !== tagName) {\n const unclosedTag = tagStack.pop();\n if (unclosedTag) {\n output.push(`</${unclosedTag}>`);\n }\n }\n if (tagStack.length > 0) {\n tagStack.pop();\n }\n } else if (!selfClosingTagList.includes(tagName)) {\n tagStack.push(tagName);\n }\n output.push(fullMatch);\n }\n output.push(input.slice(lastIndex));\n while (tagStack.length > 0) {\n const unclosedTag = tagStack.pop();\n if (unclosedTag) {\n output.push(`</${unclosedTag}>`);\n }\n }\n return output.join(\"\");\n}\nfunction isHtmlTagName(tagName) {\n const htmlTagsList = htmlTags.split(\",\");\n return htmlTagsList.includes(tagName);\n}\nfunction convertToHtmlTag(tagName) {\n const selfClosingTagList = selfClosingTags.split(\",\");\n if (selfClosingTagList.includes(tagName)) {\n return `<${tagName}/>`;\n } else {\n return `<${tagName}></${tagName}>`;\n }\n}\n\n// src/patch.ts\nfunction patchChildren(parent, childrenMap, nextChildren, before) {\n const result = /* @__PURE__ */ new Map();\n const children = Array.from(childrenMap.values());\n const childrenLength = children.length;\n if (childrenMap.size > 0 && nextChildren.length === 0) {\n if (parent.childNodes.length === childrenLength + (before ? 1 : 0)) {\n parent.innerHTML = \"\";\n if (before) {\n insertChild(parent, before);\n }\n } else {\n const range = document.createRange();\n const child = children[0];\n const start = isJsxElement(child) ? child.firstChild : child;\n range.setStartBefore(start);\n if (before) {\n range.setEndBefore(before);\n } else {\n range.setEndAfter(parent);\n }\n range.deleteContents();\n }\n children.forEach((node) => {\n if (isJsxElement(node)) {\n node.unmount();\n }\n });\n return result;\n }\n const replaces = [];\n const nextChildrenMap = mapKeys(nextChildren);\n let childIndex = 0;\n for (let [i, child] of nextChildren.entries()) {\n let currChild = children[childIndex];\n let currKey = getKey(currChild, i);\n while (currChild && !nextChildrenMap.has(currKey)) {\n removeChild(currChild);\n childrenMap.delete(currKey);\n currChild = children[++childIndex];\n currKey = getKey(currChild, i);\n }\n const key = getKey(child, i);\n const origChild = childrenMap.get(key);\n if (origChild) {\n child = patch(parent, origChild, child);\n }\n if (currChild) {\n if (currChild === origChild) {\n childIndex++;\n } else {\n const placeholder = document.createComment(\"\");\n insertChild(parent, placeholder, currChild);\n replaces.push([placeholder, child]);\n }\n } else {\n insertChild(parent, child, before);\n }\n result.set(key, child);\n }\n replaces.forEach(([placeholder, child]) => replaceChild(parent, child, placeholder));\n childrenMap.forEach((child, key) => {\n if (child.isConnected && !result.has(key)) {\n removeChild(child);\n }\n });\n return result;\n}\nfunction patch(parent, node, next) {\n if (node === next) {\n return node;\n }\n if (isJsxElement(node) && isJsxElement(next) && node.template === next.template) {\n next.inheritNode(node);\n return next;\n }\n if (node instanceof Text && next instanceof Text) {\n if (node.textContent !== next.textContent) {\n node.textContent = next.textContent;\n }\n return node;\n }\n replaceChild(parent, next, node);\n return next;\n}\nfunction mapKeys(children) {\n const result = /* @__PURE__ */ new Map();\n for (const [i, child] of children.entries()) {\n const key = getKey(child, i);\n result.set(key, child);\n }\n return result;\n}\nfunction getKey(node, index) {\n const id = node instanceof Element ? node.id : void 0;\n const result = id === \"\" ? void 0 : id;\n return result != null ? result : `_$${index}$`;\n}\n\n// src/template-node.ts\nvar TemplateNode = class _TemplateNode {\n constructor(template2, props) {\n this.template = template2;\n this.props = props;\n this.treeMap = /* @__PURE__ */ new Map();\n this.mounted = false;\n this.nodes = [];\n this.provides = {};\n this.trackMap = /* @__PURE__ */ new Map();\n this.parent = null;\n }\n get firstChild() {\n var _a;\n return (_a = this.nodes[0]) != null ? _a : null;\n }\n get isConnected() {\n return this.mounted;\n }\n addEventListener() {\n }\n removeEventListener() {\n }\n unmount() {\n this.trackMap.forEach((track) => {\n var _a, _b;\n (_a = track.cleanup) == null ? void 0 : _a.call(track);\n (_b = track.lastNodes) == null ? void 0 : _b.forEach((node) => {\n if (track.isRoot) {\n removeChild(node);\n } else if (node instanceof _TemplateNode) {\n node.unmount();\n }\n });\n });\n this.trackMap.clear();\n this.treeMap.clear();\n this.nodes.forEach((node) => removeChild(node));\n this.nodes = [];\n this.mounted = false;\n }\n mount(parent, before) {\n var _a;\n this.parent = parent;\n if (this.isConnected) {\n this.nodes.forEach((node) => insertChild(parent, node, before));\n return this.nodes;\n }\n const cloneNode = this.template.content.cloneNode(true);\n const firstChild = cloneNode.firstChild;\n if ((_a = firstChild == null ? void 0 : firstChild.hasAttribute) == null ? void 0 : _a.call(firstChild, \"_svg_\")) {\n firstChild.remove();\n firstChild == null ? void 0 : firstChild.childNodes.forEach((node) => {\n cloneNode.append(node);\n });\n }\n this.nodes = Array.from(cloneNode.childNodes);\n this.mapNodeTree(parent, cloneNode);\n insertChild(parent, cloneNode, before);\n this.patchNodes(this.props);\n this.mounted = true;\n return this.nodes;\n }\n mapNodeTree(parent, tree) {\n let index = 1;\n this.treeMap.set(0, parent);\n const walk = (node) => {\n if (node.nodeType !== Node.DOCUMENT_FRAGMENT_NODE) {\n this.treeMap.set(index++, node);\n }\n let child = node.firstChild;\n while (child) {\n walk(child);\n child = child.nextSibling;\n }\n };\n walk(tree);\n }\n patchNodes(props) {\n for (const key in props) {\n const index = Number(key);\n const node = this.treeMap.get(index);\n if (node) {\n const value = this.props[key];\n this.patchNode(key, node, value, index === 0);\n }\n }\n this.props = props;\n }\n getNodeTrack(trackKey, trackLastNodes, isRoot) {\n var _a;\n let track = this.trackMap.get(trackKey);\n if (!track) {\n track = { cleanup: () => {\n } };\n if (trackLastNodes) {\n track.lastNodes = /* @__PURE__ */ new Map();\n }\n if (isRoot) {\n track.isRoot = true;\n }\n this.trackMap.set(trackKey, track);\n }\n (_a = track.cleanup) == null ? void 0 : _a.call(track);\n return track;\n }\n inheritNode(node) {\n this.mounted = node.mounted;\n this.nodes = node.nodes;\n this.trackMap = node.trackMap;\n this.treeMap = node.treeMap;\n const props = this.props;\n this.props = node.props;\n this.patchNodes(props);\n }\n patchNode(key, node, props, isRoot) {\n for (const attr in props) {\n if (attr === \"children\" && props.children) {\n if (!isArray(props.children)) {\n const trackKey = `${key}:${attr}:${0}`;\n const track = this.getNodeTrack(trackKey, true, isRoot);\n patchChild(track, node, props.children, null);\n } else {\n props.children.filter(Boolean).forEach((item, index) => {\n var _a;\n const [child, path] = isArray(item) ? item : [item, null];\n const before = isNil(path) ? null : (_a = this.treeMap.get(path)) != null ? _a : null;\n const trackKey = `${key}:${attr}:${index}`;\n const track = this.getNodeTrack(trackKey, true, isRoot);\n patchChild(track, node, child, before);\n });\n }\n } else if (attr === \"ref\") {\n if (isSignal(props[attr])) {\n props[attr].value = node;\n } else if (isFunction(props[attr])) {\n props[attr](node);\n }\n } else if (startsWith(attr, \"on\")) {\n const eventName = attr.slice(2).toLocaleLowerCase();\n const track = this.getNodeTrack(`${key}:${attr}`);\n const listener = props[attr];\n track.cleanup = addEventListener(node, eventName, listener);\n } else if (!startsWith(attr, \"update\")) {\n const track = this.getNodeTrack(`${key}:${attr}`);\n const val = props[attr];\n const triggerValue = isSignal(val) ? val : useSignal(val);\n patchAttribute(track, node, attr, triggerValue.value);\n const cleanup = useEffect(() => {\n triggerValue.value = isSignal(val) ? val.value : val;\n patchAttribute(track, node, attr, triggerValue.value);\n });\n let cleanupBind;\n const updateKey = `update${capitalizeFirstLetter(attr)}`;\n if (props[updateKey]) {\n cleanupBind = binNode(node, (value) => {\n props[updateKey](value);\n });\n }\n track.cleanup = () => {\n cleanup && cleanup();\n cleanupBind && cleanupBind();\n };\n }\n }\n }\n};\nfunction patchAttribute(track, node, attr, data) {\n const element = node;\n if (!element.setAttribute) {\n return;\n }\n if (isFunction(data)) {\n track.cleanup = useEffect(() => {\n setAttribute(element, attr, data());\n });\n } else {\n setAttribute(element, attr, data);\n }\n}\nfunction patchChild(track, parent, child, before) {\n if (isFunction(child)) {\n track.cleanup = useEffect(() => {\n const nextNodes = coerceArray(child()).map(coerceNode);\n track.lastNodes = patchChildren(parent, track.lastNodes, nextNodes, before);\n });\n } else {\n coerceArray(child).forEach((node, i) => {\n const newNode = coerceNode(node);\n track.lastNodes.set(String(i), newNode);\n insertChild(parent, newNode, before);\n });\n }\n}\n\n// src/hooks.ts\nfunction onMount(cb) {\n var _a;\n throwIfOutsideComponent(\"onMounted\");\n (_a = ComponentNode.ref) == null ? void 0 : _a.addHook(\"mounted\", cb);\n}\nfunction onDestroy(cb) {\n var _a;\n throwIfOutsideComponent(\"onDestroy\");\n (_a = ComponentNode.ref) == null ? void 0 : _a.addHook(\"destroy\", cb);\n}\nfunction throwIfOutsideComponent(hook) {\n if (!ComponentNode.ref) {\n console.error(\n `\"${hook}\" can only be called within the component function body\n and cannot be used in asynchronous or deferred calls.`\n );\n }\n}\nfunction useProvide(key, value) {\n var _a;\n throwIfOutsideComponent(\"useProvide\");\n (_a = ComponentNode.ref) == null ? void 0 : _a.setContext(key, value);\n}\nfunction useInject(key, defaultValue) {\n var _a;\n throwIfOutsideComponent(\"useInject\");\n return ((_a = ComponentNode.ref) == null ? void 0 : _a.getContext(key)) || defaultValue;\n}\nfunction convertJsonToAttributes(json) {\n return Object.entries(json).map(([key, value]) => `${key}=${JSON.stringify(escape(String(value)))}`).join(\" \");\n}\nfunction renderTemplate(template2, props) {\n if (isFunction(template2)) {\n return template2(props);\n }\n const templateCollection = Array.isArray(template2) ? template2.reduce((acc, tmpl, index) => {\n acc[index + 1] = { template: tmpl };\n return acc;\n }, {}) : template2;\n const childNodesMap = {};\n const processedTemplates = {};\n if (isObject(templateCollection)) {\n for (const [key, tmpl] of Object.entries(templateCollection)) {\n const prop = props[key];\n if (prop) {\n for (const propKey in prop) {\n if (startsWith(propKey, \"on\") && isFunction(prop[propKey])) {\n delete prop[propKey];\n }\n }\n if (prop.children) {\n for (const [child, idx] of prop.children) {\n if (!childNodesMap[idx]) childNodesMap[idx] = [];\n childNodesMap[idx].push(child);\n }\n delete prop.children;\n }\n }\n processedTemplates[key] = { template: tmpl.template, props: prop };\n }\n }\n return Object.entries(processedTemplates).map(([key, { template: tmpl, props: prop }]) => {\n let renderedString = tmpl;\n if (prop) {\n renderedString += ` ${convertJsonToAttributes(prop)}`;\n }\n if (childNodesMap[key]) {\n renderedString += childNodesMap[key].map((child) => renderTemplate(child, prop)).join(\"\");\n }\n return renderedString;\n }).join(\"\");\n}\nfunction renderToString(component, props) {\n return renderTemplate(component, props);\n}\nfunction renderSSG(component, root, props = {}) {\n root.innerHTML = renderTemplate(component, props);\n}\n\nexport { ComponentNode, Fragment, TemplateNode, h, isJsxElement, nextTick, onDestroy, onMount, renderSSG, renderTemplate, renderToString, template, useInject, useProvide };\n","import { essor_version } from './version';\n\nexport * from '@estjs/template';\nexport * from '@estjs/signal';\n\nif (globalThis) {\n globalThis.__essor_version__ = essor_version;\n}\n\nexport { essor_version };\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "essor",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.10-beta.21",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [],
|
|
@@ -53,8 +53,9 @@
|
|
|
53
53
|
"unpkg": "dist/essor.esm.js",
|
|
54
54
|
"jsdelivr": "dist/essor.esm.js",
|
|
55
55
|
"dependencies": {
|
|
56
|
-
"
|
|
57
|
-
"
|
|
56
|
+
"@estjs/shared": "0.0.10-beta.21",
|
|
57
|
+
"@estjs/template": "0.0.10-beta.21",
|
|
58
|
+
"@estjs/signal": "0.0.10-beta.21"
|
|
58
59
|
},
|
|
59
60
|
"scripts": {
|
|
60
61
|
"build": "tsup && cross-env NODE_ENV=production tsup --clean=false --treeshake --sourcemap=false",
|