@estjs/template 0.0.14 → 0.0.15-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -0,0 +1,14 @@
1
+ # @estjs/template
2
+
3
+ The template engine for **Essor**. It handles the normalization of JSX templates and provides the runtime support for Server-Side Rendering (SSR) and Static Site Generation (SSG).
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install @estjs/template
9
+ ```
10
+
11
+
12
+ ## License
13
+
14
+ MIT
@@ -1,7 +1,8 @@
1
- 'use strict';var shared=require('@estjs/shared'),signal=require('@estjs/signal');/**
2
- * @estjs/template v0.0.14
1
+ 'use strict';var shared=require('@estjs/shared'),signals=require('@estjs/signals');/**
2
+ * @estjs/template v0.0.15-beta.1
3
3
  * (c) 2023-Present jiangxd <jiangxd2016@gmail.com>
4
4
  * @license MIT
5
5
  **/
6
- var R="on",w="update",E="children",A="",U="0",B="1";var H="ref",_=" __PLACEHOLDER__ ";var G=class{constructor(){this.renderMode=0;}get isSSG(){return this.renderMode===1}get isSSR(){return this.renderMode===2}get isClient(){return this.renderMode===0}setSSR(){this.renderMode=2;}setSSG(){this.renderMode=1;}setClient(){this.renderMode=0;}},u=new G,q=new Map;function z(n,t){q.set(n,{index:t});}function W(n){var t;return (t=q.get(n))==null?void 0:t.index}var T=class T{constructor(){this.hooks={mounted:new Set,destroy:new Set};}addEventListener(){}removeEventListener(){}addHook(t,e){var o;(o=this.hooks[t])==null||o.add(e);}getContext(t){return T.context[t]}setContext(t,e){T.context[t]=e;}initRef(){T.ref=this;}removeRef(){T.ref=null;}clearHooks(){Object.values(this.hooks).forEach(t=>t.clear());}};T.ref=null,T.context={};var l=T;function O(n){return n instanceof b}var C=1,b=class extends l{constructor(e,o={},r){super();this.template=e;this.props=o;this.key=r;z(e,C),this.templates=this.processTemplate();}processTemplate(){if(shared.isArray(this.template)){let e=this.template.join(_);return this.processHtmlString(e).split(_)}return []}processHtmlString(e){return e.replaceAll(/(<[^>]+>)|([^<]+)/g,(o,r,i)=>r?r.includes("data-ci")?o:r.replace(/<\s*([\da-z]+)(\s[^>]*)?>/i,(s,c,a)=>`<${c} data-ci="${C}"${a||""}>`):i&&i.replace(_,"").trim()?`<!--0-${C}-->${i}<!$>`:o)}mount(){this.initRef();let e=this.render();return this.removeRef(),e}render(){if(shared.isFunction(this.template)){let e=this.template(this.props);return O(e)?e.mount():String(e)}return this.renderTemplate()}renderTemplate(){return Object.entries(this.props).forEach(([e,o])=>{let r=o.children;this.normalizeProps(o);let i=this.templates.findIndex(s=>s.includes(`data-hk="${e}"`));r&&this.renderChildren(r,i),this.templates[i]=this.templates[i].replace(`data-hk="${e}"`,`data-hk="${e}" ${this.generateAttributes(o)}`);}),this.templates.join("")}normalizeProps(e){Object.entries(e).forEach(([o,r])=>{o===E||shared.isFunction(r)?delete e[o]:signal.isSignal(r)&&(e[o]=r.value);});}generateAttributes(e){return Object.entries(e).filter(([o,r])=>o!==E&&!shared.isFunction(r)).map(([o,r])=>`${o}="${shared.escape(String(r))}"`).join(" ")}renderChildren(e,o){e.forEach(([r])=>{C++;let i=this.renderChild(r);this.templates[o]+=i;});}renderChild(e){if(signal.isSignal(e))return `<!--1-${C}-->${e.value}<!$>`;if(shared.isFunction(e))return this.renderChild(e(this.props));if(O(e)){let o=e.mount();return shared.isFunction(o)?o(this.props):$(o)}else return `<!--1-${C}-->${e}<!$>`}};var Ne="area,base,br,col,embed,hr,img,input,link,meta,param,source,track,wbr".split(",");function D(n){if(h(n)||n instanceof Node||O(n))return n;let t=shared.isFalsy(n)?"":String(n);return document.createTextNode(t)}function g(n,t,e=null){let o=h(e)?e.firstChild:e,r=u.isSSR;h(t)?t.mount(n,o):o&&!r?o.before(t):r||n.append(t);}function M(n){h(n)?n.unmount():n.parentNode&&n.remove();}function F(n,t,e){g(n,t,e),M(e);}function ee(n,t,e){t==="class"?Ee(n,e):t==="style"?ge(n,e):Te(n,t,e);}function Ee(n,t){typeof t=="string"?n.className=t:shared.isArray(t)?n.className=t.join(" "):t&&typeof t=="object"&&(n.className=Object.entries(t).reduce((e,[o,r])=>e+(r?` ${o}`:""),"").trim());}function ge(n,t){typeof t=="string"?n.style.cssText=t:t&&typeof t=="object"&&Object.entries(t).forEach(([o,r])=>{n.style.setProperty(shared.kebabCase(o),String(r));});}function Te(n,t,e){shared.isFalsy(e)?n.removeAttribute(t):e===!0?n.setAttribute(t,""):n instanceof HTMLInputElement&&t==="value"?n.value=String(e):n.setAttribute(t,String(e));}function te(n,t){if(n instanceof HTMLInputElement)switch(n.type){case"checkbox":return m(n,"change",()=>{t(!!n.checked);});case"date":return m(n,"change",()=>{t(n.value?n.value:"");});case"file":return m(n,"change",()=>{n.files&&t(n.files);});case"number":return m(n,"input",()=>{let e=Number.parseFloat(n.value);t(Number.isNaN(e)?"":String(e));});case"radio":return m(n,"change",()=>{t(n.checked?n.value:"");});case"text":return m(n,"input",()=>{t(n.value);})}if(n instanceof HTMLSelectElement)return m(n,"change",()=>{t(n.value);});if(n instanceof HTMLTextAreaElement)return m(n,"input",()=>{t(n.value);})}function m(n,t,e){return n.addEventListener(t,e),()=>n.removeEventListener(t,e)}function oe(n){return Ne.includes(n)?`<${n}/>`:`<${n}></${n}>`}function $(n){return signal.isSignal(n)?n.value:n}var y=class extends l{constructor(e,o,r){super();this.template=e;this.props=o;this.key=r;this.emitter=new Set;this.rootNode=null;this.trackMap=new Map;this.nodes=[];this.parent=null;this.before=null;this.key||(this.key=o&&o.key),this.proxyProps||(this.proxyProps=signal.shallowReactive(o||{}));}get firstChild(){var e,o;return (o=(e=this.rootNode)==null?void 0:e.firstChild)!=null?o:null}get isConnected(){var e,o;return (o=(e=this.rootNode)==null?void 0:e.isConnected)!=null?o:!1}mount(e,o){var r,i,s,c;if(this.parent=e,!shared.isFunction(this.template))throw new Error("Template must be a function");return this.isConnected?(i=(r=this.rootNode)==null?void 0:r.mount(e,o))!=null?i:[]:(this.initRef(),this.rootNode=this.template(signal.useReactive(this.proxyProps,[E])),this.nodes=(c=(s=this.rootNode)==null?void 0:s.mount(e,o))!=null?c:[],this.callMountHooks(),this.patchProps(this.props),this.removeRef(),this.nodes)}unmount(){var e;this.callLifecycleHooks("destroy"),this.cleanup(),(e=this.rootNode)==null||e.unmount(),this.resetState(),this.key&&k.delete(this.key);}resetState(){this.rootNode=null,this.proxyProps={},this.nodes=[],this.parent=null;}callLifecycleHooks(e){this.hooks[e].forEach(o=>o());}callMountHooks(){this.hooks.mounted.forEach(e=>e());}callDestroyHooks(){this.hooks.destroy.forEach(e=>e());}clearEmitter(){for(let e of this.emitter)e();this.emitter.clear();}inheritNode(e){if(Object.assign(this.proxyProps,e.proxyProps),this.rootNode=e.rootNode,this.trackMap=e.trackMap,this.hooks=e.hooks,shared.hasChanged(e.props,this.props)){let o=this.props;this.props=e.props,this.patchProps(o);}}getNodeTrack(e){let o=this.trackMap.get(e);return o||(o={cleanup:()=>{}},this.trackMap.set(e,o)),o.cleanup(),o}patchProps(e){var o;if(e){for(let[r,i]of Object.entries(e))shared.startsWith(r,R)&&((o=this.rootNode)!=null&&o.firstChild)?this.patchEventListener(r,i):r===H?this.patchRef(i):shared.startsWith(r,w)?this.patchUpdateHandler(r,i):r!==E&&this.patchNormalProp(r,i);this.props=e;}}patchEventListener(e,o){let r=e.slice(2).toLowerCase(),i=m(this.rootNode.nodes[0],r,o);this.emitter.add(i);}patchRef(e){var o,r;e.value=(r=(o=this.rootNode)==null?void 0:o.firstChild)!=null?r:null;}patchUpdateHandler(e,o){this.proxyProps[e]=$(o);}patchNormalProp(e,o){let r=this.getNodeTrack(e);r.cleanup=signal.useEffect(()=>{this.proxyProps[e]=shared.isFunction(o)?o():o;});}cleanup(){this.trackMap.forEach(e=>{var o;return (o=e.cleanup)==null?void 0:o.call(e)}),this.trackMap.clear(),this.emitter.forEach(e=>e()),this.emitter.clear();}};function ie(n,t,e,o){let r=new Map,i=Array.from(t.values());if(i.length&&e.length===0)return Ce(n,i,o),r;let s=[],c=Me(e),a=0;for(let[d,p]of e.entries()){let f=i[a],v=S(f,d);for(;f&&!c.has(v);)M(f),t.delete(v),f=i[++a],v=S(f,d);let V=S(p,d),X=t.get(V);if(X&&(p=be(n,X,p)),f)if(f===X)a++;else {let Y=document.createComment("");g(n,Y,f),s.push([Y,p]);}else g(n,p,o);r.set(V,p);}return s.forEach(([d,p])=>{F(n,p,d);}),t.forEach((d,p)=>{d.isConnected&&!r.has(p)&&M(d);}),r}function Ce(n,t,e){if(n.childNodes.length===t.length+(e?1:0))n.innerHTML="",e&&g(n,e);else {let o=document.createRange(),r=t[0],i=h(r)?r.firstChild:r;o.setStartBefore(i),e?o.setEndBefore(e):o.setEndAfter(n),o.deleteContents();}t.forEach(o=>{h(o)&&o.unmount();});}function be(n,t,e){return t===e?t:h(t)&&h(e)&&t.template===e.template?(e.inheritNode(t),e):t instanceof Text&&e instanceof Text?(t.textContent!==e.textContent&&(t.textContent=e.textContent),t):(F(n,e,t),e)}function Me(n){let t=new Map;for(let[e,o]of n.entries()){let r=S(o,e);t.set(r,o);}return t}function S(n,t){if(h(n)){let e=n.key;if(e!=null)return String(e)}return `_$${t}$`}var x=class{constructor(t,e,o){this.template=t;this.props=e;this.key=o;this.treeMap=new Map;this.mounted=!1;this.nodes=[];this.trackMap=new Map;this.bindValueKeys=[];this.parent=null;u.isSSR&&(this.componentIndex=W(this.template));}get firstChild(){var t;return (t=this.nodes[0])!=null?t:null}get isConnected(){return this.mounted}addEventListener(){}removeEventListener(){}mount(t,e){var i;if(this.parent=t,this.isConnected)return this.nodes.forEach(s=>g(t,s,e)),this.nodes;shared.isArray(this.template)&&(this.template=P(this.template.join("")));let o=this.template.content.cloneNode(!0),r=o.firstChild;return (i=r==null?void 0:r.hasAttribute)!=null&&i.call(r,"_svg_")&&(r.remove(),r.childNodes.forEach(s=>{o.append(s);})),this.nodes=Array.from(o.childNodes),u.isSSR?this.mapSSGNodeTree(t):this.mapNodeTree(t,o),g(t,o,e),this.patchProps(this.props),this.mounted=!0,this.nodes}unmount(){this.trackMap.forEach(t=>{t.cleanup&&t.cleanup();}),this.trackMap.clear(),this.treeMap.clear(),this.nodes.forEach(t=>M(t)),this.nodes=[],this.mounted=!1,this.key&&k.delete(this.key);}inheritNode(t){this.mounted=t.mounted,this.nodes=t.nodes,this.trackMap=t.trackMap,this.treeMap=t.treeMap;let e=this.props;this.props=t.props,this.patchProps(e);}mapSSGNodeTree(t){this.treeMap.set(0,t),this.walkNodeTree(t,this.handleSSGNode.bind(this));}mapNodeTree(t,e){let o=1;this.treeMap.set(0,t);let r=[t],i=s=>{s.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&(this.treeMap.set(o++,s),r.push(s));};this.walkNodeTree(e,i);}walkNodeTree(t,e){t.nodeType!==Node.DOCUMENT_FRAGMENT_NODE&&e(t);let o=t.firstChild;for(;o;)this.walkNodeTree(o,e),o=o.nextSibling;}handleSSGNode(t){var e;if(t.nodeType===Node.COMMENT_NODE){let[o,r]=((e=t.textContent)==null?void 0:e.split("-"))||[];if(0===+o&&+r===this.componentIndex){let i=t.nextSibling;this.treeMap.set(+r,i);}}else if(t.nodeType!==Node.TEXT_NODE){let{ci:o="-1",hk:r}=(t==null?void 0:t.dataset)||{};r&&+o===this.componentIndex&&this.treeMap.set(+r,t);}}patchProps(t){t&&(Object.entries(t).forEach(([e,o])=>{let r=Number(e),i=this.treeMap.get(r);i&&this.patchProp(e,i,o,r===0);}),this.props=t);}patchProp(t,e,o,r){o&&Object.entries(o).forEach(([i,s])=>{if(i===E&&s)this.patchChildren(t,e,s,r);else if(i===H)o[i].value=e;else if(shared.startsWith(i,R))this.patchEventListener(t,e,i,s);else {if(this.bindValueKeys.includes(i))return;let c=this.getBindUpdateValue(o,t,i);this.patchAttribute(t,e,i,s,c);}});}getBindUpdateValue(t,e,o){let r=`${w}${shared.capitalize(o)}`;if(r&&t[r]&&shared.isFunction(t[r]))return this.bindValueKeys.push(r),t[r]}patchChildren(t,e,o,r){if(shared.isArray(o))o.filter(Boolean).forEach((i,s)=>{var v;let[c,a]=shared.isArray(i)?i:[i,null],d=shared.isNil(a)?null:(v=this.treeMap.get(a))!=null?v:null,p=`${t}:${E}:${s}`,f=this.getNodeTrack(p,!0,r);this.patchChild(f,e,c,d);});else {let i=`${t}:${E}:0`,s=this.getNodeTrack(i,!0,r);this.patchChild(s,e,o,null);}}patchEventListener(t,e,o,r){let i=o.slice(2).toLowerCase(),s=this.getNodeTrack(`${t}:${o}`);s.cleanup=m(e,i,r);}patchAttribute(t,e,o,r,i){let s=this.getNodeTrack(`${t}:${o}`),c=signal.shallowSignal(),a=signal.useEffect(()=>{c.value=signal.isSignal(r)||signal.isComputed(r)?r.value:r,ee(e,o,c.value);}),d;i&&shared.isHTMLElement(e)&&(d=te(e,p=>{i(p);})),s.cleanup=()=>{a&&a(),d&&d();};}getNodeTrack(t,e,o){let r=this.trackMap.get(t);return r||(r={cleanup:()=>{}},e&&(r.lastNodes=new Map),o&&(r.isRoot=!0),this.trackMap.set(t,r)),r.cleanup&&r.cleanup(),r}patchChild(t,e,o,r){shared.isFunction(o)?t.cleanup=signal.useEffect(()=>{let i=shared.coerceArray(o()).map(D);u.isSSR?t.lastNodes=this.reconcileChildren(e,i,r):t.lastNodes=ie(e,t.lastNodes,i,r);}):shared.coerceArray(o).forEach((i,s)=>{let c=D(i),a=S(c,s);u.isSSR?t.lastNodes=this.reconcileChildren(e,[c],r):(t.lastNodes.set(a,c),g(e,c,r));});}reconcileChildren(t,e,o){let r=new Map,i=Array.from(t.childNodes).filter(s=>{var c,a;return s.nodeType===Node.TEXT_NODE&&((c=s.previousSibling)==null?void 0:c.nodeType)===Node.COMMENT_NODE&&((a=s.nextSibling)==null?void 0:a.nodeType)===Node.COMMENT_NODE});return e.forEach((s,c)=>{let a=S(s,c);s.nodeType===Node.TEXT_NODE?i.forEach(d=>{s.textContent===d.textContent&&t.replaceChild(s,d);}):g(t,s,o),r.set(a,s);}),r}};var k=new Map;function I(n,t,e={},o){if(o){let i=k.get(o);if(i)return i}typeof t=="string"&&(t=P(t));let r=new n(t,e,o);return o&&r instanceof y&&k.set(o,r),r}function j(n,t={},e){if(n===A)return de(n,t);if(shared.isString(n)){let o=oe(n),r={[B]:t};return I(x,o,r,e)}return shared.isFunction(n)?I(y,n,t,e):I(x,n,t,e)}function $e(n){return n instanceof y}function h(n){return n instanceof y||n instanceof x}function P(n){let t=document.createElement("template");return t.innerHTML=n,t}function de(n,t){let e=t.children?{[U]:{children:Array.isArray(t.children)?t.children.filter(Boolean):[t.children]}}:t,o=n===A?P(A):n;return I(x,o,e)}function Ie(n){l.ref&&l.ref.addHook("mounted",n);}function je(n){l.ref&&l.ref.addHook("destroy",n);}function Ke(n,t){l.ref&&l.ref.setContext(n,t);}function Xe(n,t){var e;return (e=l.ref&&l.ref.getContext(n))!=null?e:t}function Ge(n,t){u.setSSG();let o=new b(n,t||{}).mount();return u.setClient(),o}function De(n,t){let e=typeof t=="string"?document.querySelector(t):t;if(!e)throw new Error(`Could not find container: ${t}`);u.setSSR(),j(n).mount(e),u.setClient();}function Fe(n,t){return u.isSSG?new b(n,t):j(n,t)}exports.Fragment=de;exports.h=j;exports.hydrate=De;exports.inject=Xe;exports.isComponent=$e;exports.isJsxElement=h;exports.onDestroy=je;exports.onMount=Ie;exports.provide=Ke;exports.renderToString=Ge;exports.ssg=Fe;exports.template=P;//# sourceMappingURL=template.cjs.js.map
6
+ var st=Object.defineProperty;var Ne=Object.getOwnPropertySymbols;var ct=Object.prototype.hasOwnProperty,at=Object.prototype.propertyIsEnumerable;var Se=(e,t,n)=>t in e?st(e,t,{enumerable:true,configurable:true,writable:true,value:n}):e[t]=n,H=(e,t)=>{for(var n in t||(t={}))ct.call(t,n)&&Se(e,n,t[n]);if(Ne)for(var n of Ne(t))at.call(t,n)&&Se(e,n,t[n]);return e};var K=(e,t,n)=>new Promise((r,o)=>{var i=c=>{try{a(n.next(c));}catch(u){o(u);}},s=c=>{try{a(n.throw(c));}catch(u){o(u);}},a=c=>c.done?r(c.value):Promise.resolve(c.value).then(i,s);a((n=n.apply(e,t)).next());});var F=null,Ee=[],lt=0;function Ae(e=null){let t={id:++lt,parent:e,provides:new Map,cleanup:new Set,mount:new Set,update:new Set,destroy:new Set,isMount:false,isDestroy:false,children:new Set};return e&&e.children.add(t),t}function N(){return F}function M(e){F&&Ee.push(F),F=e;}function Y(){F=Ee.pop()||null;}function Q(e){if(!e||e.isDestroy)return;Array.from(e.children).forEach(Q),ft(e);}function ft(e){if(!(!e||e.isDestroy)){e.parent&&(e.parent.children.delete(e),e.parent=null);try{e.cleanup.forEach(t=>t()),e.cleanup.clear(),e.mount.clear(),e.update.clear(),e.destroy.clear(),e.provides.clear(),e.children.clear();}catch(t){shared.error("Error during context cleanup:",t);}e.isDestroy=true;}}var v={mount:"mount",destroy:"destroy",update:"update"};function Z(e,t){let n=N();if(!n){shared.error(`Cannot register ${e} hook outside component context`);return}if(!v[e]){shared.error(`Invalid lifecycle type: ${e}`);return}if(e===v.mount&&n.isMount){try{t();}catch(r){shared.error(`Error in ${e} hook:`,r);}return}n[e].add(t);}function $(e){let t=N();if(!t){shared.error(`Cannot trigger ${e} hook outside component context`);return}let n=t[e];n!=null&&n.size&&n.forEach(r=>{try{r();}catch(o){}});}function ee(e){Z(v.mount,e);}function te(e){Z(v.destroy,e);}function dt(e){Z(v.update,e);}var Ce="http://www.w3.org/2000/svg",ne="http://www.w3.org/2000/xlink",re="http://www.w3.org/2000/xmlns/",oe=/^\d+-\d+$/;var ve=1e3,be=new WeakMap;function ke(e){let t=be.get(e);if(!t){let n=e.name||"anonymous",r=Le(e.toString()).toString(36);t=`${n}_${r}`,be.set(e,t);}return t}function Le(e){let t=0,n=e.length<100?e.length:100;for(let r=0;r<n;r++)t=Math.trunc((t<<5)-t+e.charCodeAt(r));return t<0?-t:t}var ht=0;function se(e){if(!shared.isFalsy(e)){if(shared.isString(e))return e.length<=ve?e:`${e.slice(0,ve-10)}_${Le(e).toString(36)}`;if(shared.isNumber(e))return String(e);if(shared.isSymbol(e)){let t=Symbol.keyFor(e);if(t)return `_s.${t}`;let n=e.description;return n?`_s.${n}`:`${ht++}`}return String(e)}}var ie=Symbol("essor.key");function O(e,t){if(m(e)||!e||e.nodeType===Node.DOCUMENT_NODE)return;let n=se(t);shared.isFalsy(n)?delete e[ie]:e[ie]=n;}function k(e){if(e)return m(e)?e.key:e[ie]}function b(e){if(e)try{if(m(e))e.destroy();else {let t=e;t.parentElement&&t.remove();}}catch(t){shared.error("Failed to remove node:",t);}}function p(e,t,n=null){if(!(!e||!t))try{let r=m(n)?n.firstChild:n;if(m(t)){t.mount(e,r);return}r?e.insertBefore(t,r):e.appendChild(t);}catch(r){shared.error("Failed to insert node:",r);}}function z(e,t,n){if(!(!e||!t||!n||t===n))try{p(e,t,n),b(n);}catch(r){shared.error("Failed to replace node:",r);}}function R(e){return e?m(e)?e.firstChild:e:null}function L(e,t){let n=k(e),r=k(t);if(n!==r)return false;let o=m(e),i=m(t);if(o&&i)return e.component===t.component;if(o!==i)return false;let s=e,a=t;return s.nodeType!==a.nodeType?false:s.nodeType===Node.ELEMENT_NODE?s.tagName===a.tagName:true}function T(e){if(shared.isHTMLElement(e))return e;if(shared.isPrimitive(e)){let t=shared.isFalsy(e)?"":String(e);return document.createTextNode(t)}return e}function _e(e){return e instanceof HTMLInputElement}function Pe(e){return e instanceof HTMLSelectElement}function Re(e){return e instanceof HTMLTextAreaElement}function ae(e){return e instanceof Text}function we(e,t){if(e===t)return true;if(!e||!t||Array.isArray(e)!==Array.isArray(t))return false;for(let n in e)if(e[n]!==t[n])return false;for(let n in t)if(!(n in e))return false;return true}function Ie(e,t){if(m(e)||m(t))return;let n=k(e);n&&!k(t)&&O(t,n);}function _(e,t,n){if(n===t)return t;let r=shared.isHTMLElement(t);if(shared.isHTMLElement(n)&&r){if(n.isEqualNode(t))return t;if(t.tagName===n.tagName){let a=t.attributes,c=n.attributes;for(let u=a.length-1;u>=0;u--){let f=a[u].name;n.hasAttribute(f)||t.removeAttribute(f);}for(let u=0,f=c.length;u<f;u++){let l=c[u];t.getAttribute(l.name)!==l.value&&t.setAttribute(l.name,l.value);}return Ie(t,n),t}}if(ae(t)&&ae(n))return t.textContent!==n.textContent&&(t.textContent=n.textContent),Ie(t,n),t;let i=m(t),s=m(n);return i&&s&&t.component===n.component?n.update(t):(z(e,n,t),n)}function He(e,t,n,r){let o=t.length,i=n.length;if(o===0&&i===0)return [];if(o===0){let s=document.createDocumentFragment();for(let a=0;a<i;a++)p(s,n[a]);return p(e,s,r),n}if(i===0){for(let s=0;s<o;s++)b(t[s]);return []}if(o===1&&i===1){let s=t[0],a=n[0];return L(s,a)?(_(e,s,a),n[0]=s):z(e,a,s),n}if(o===2&&i===2){let s=t[0],a=t[1],c=n[0],u=n[1];if(L(s,c)&&L(a,u))return _(e,s,c),_(e,a,u),n[0]=s,n[1]=a,n;if(L(s,u)&&L(a,c)){_(e,s,u),_(e,a,c);let f=R(a),l=R(s);return f&&l&&f.parentNode===e&&e.insertBefore(f,l),n[0]=a,n[1]=s,n}}return St(e,t,n,r)}function St(e,t,n,r){let o=0,i=0,s=t.length-1,a=n.length-1,c=t[0],u=t[s],f=n[0],l=n[a];for(;o<=s&&i<=a;)if(!c)c=t[++o];else if(!u)u=t[--s];else if(L(c,f))_(e,c,f),n[i]=c,c=t[++o],f=n[++i];else break;for(;o<=s&&i<=a;)if(!c)c=t[++o];else if(!u)u=t[--s];else if(L(u,l))_(e,u,l),n[a]=u,u=t[--s],l=n[--a];else break;if(o>s){if(i<=a){let h=a+1<n.length?R(n[a+1]):r;for(let y=i;y<=a;y++)p(e,n[y],h);}}else if(i>a)for(let h=o;h<=s;h++){let y=t[h];y&&b(y);}else Et(e,t,n,o,s,i,a,r);return n}function Et(e,t,n,r,o,i,s,a){let c=s-i+1,u=n.length,f;for(let g=i;g<=s;g++){let x=k(n[g]);x!==void 0&&(f||(f=Object.create(null)),f[x]=g);}let l=new Int32Array(c),h=false,y=0,A=0;for(let g=r;g<=o;g++){let x=t[g];if(!x)continue;if(A>=c){b(x);continue}let S,P=k(x);if(P!==void 0&&f&&P in f)S=f[P];else for(let C=i;C<=s;C++)if(l[C-i]===0&&P===void 0&&k(n[C])===void 0&&L(x,n[C])){S=C;break}S===void 0?b(x):(l[S-i]=g+1,S>=y?y=S:h=true,_(e,x,n[S]),n[S]=x,A++);}let I=h?At(l):[],J=I.length-1;for(let g=c-1;g>=0;g--){let x=i+g,S=n[x],P=x+1<u?R(n[x+1]):a;if(l[g]===0)p(e,S,P);else if(h)if(J<0||g!==I[J]){let C=R(S);C&&C.parentNode===e&&p(e,C,P);}else J--;}}function At(e){let t=e.length;if(t===0)return [];if(t===1)return e[0]!==0?[0]:[];let n=[],r=new Int32Array(t),o,i,s,a,c;for(o=0;o<t;o++){let u=e[o];if(u!==0){if(i=n[n.length-1],n.length===0||e[i]<u){r[o]=i,n.push(o);continue}for(s=0,a=n.length-1;s<a;)c=s+a>>1,e[n[c]]<u?s=c+1:a=c;u<e[n[s]]&&(s>0&&(r[o]=n[s-1]),n[s]=o);}}for(s=n.length,a=n[s-1];s-- >0;)n[s]=a,a=r[a];return n}function E(e,t,n,r){e.addEventListener(t,n,r);let o=N();o&&o.cleanup.add(()=>{e.removeEventListener(t,n,r);});}function Tt(e,t,n,r){if(_e(e))switch(e.type){case "checkbox":E(e,"change",()=>{r(!!e.checked);});break;case "radio":E(e,"change",()=>{r(e.checked?e.value:"");});break;case "file":E(e,"change",()=>{r(e.files);});break;case "number":case "range":E(e,"input",()=>{r(e.value||"");});break;case "date":case "datetime-local":case "month":case "time":case "week":E(e,"change",()=>{r(e.value||"");});break;default:E(e,"input",()=>{r(e.value);});break}else Pe(e)?E(e,"change",()=>{if(e.multiple){let o=Array.from(e.options).filter(i=>i.selected).map(i=>i.value);r(o);}else r(e.value);}):Re(e)&&E(e,"input",()=>{r(e.value);});}function kt(e,t,n,r){if(!e)return;let o=N();if(!o)return;let i=[],s=signals.effect(()=>{let a=shared.isFunction(t)?t():t,c=shared.coerceArray(a).map(T);i=He(e,i,c,n);});o.cleanup.add(()=>{s(),r!=null&&r.preserveOnCleanup||i.forEach(a=>b(a)),i.length=0;});}function ue(e,t){let n=t.length,r=new Array(n),o=new Set(t),i=1,s=0,a=c=>{if(c.nodeType!==Node.DOCUMENT_FRAGMENT_NODE){if(o.has(i)&&(r[s++]=c,s===n))return true;i++;}let u=c.firstChild;for(;u;){if(a(u))return true;u=u.nextSibling;}return false};return a(e),r}var $e;$e="normal";var W=class{constructor(t,n){this.component=t;this.props=n;this.renderedNode=null;this.componentContext=null;this.parentNode=null;this.beforeNode=null;this.reactiveProps={};this._propSnapshots={};this.state=0;this.context=null;this.parentContext=null;this[$e]=true;if(this.key=n!=null&&n.key?se(n.key):ke(t),this.reactiveProps=signals.shallowReactive(H({},this.props||{})),this.parentContext=N(),this.props)for(let r in this.props){let o=this.props[r];shared.isObject(o)&&o!==null&&(this._propSnapshots[r]=Array.isArray(o)?[...o]:H({},o));}}get isConnected(){return this.state===2}get firstChild(){var t;return (t=this.renderedNode)!=null?t:null}mount(t,n){if(this.parentNode=t,this.beforeNode=n||null,this.state=1,this.renderedNode)return p(t,this.renderedNode,n),this.renderedNode;this.componentContext=Ae(this.parentContext),M(this.componentContext);let r=this.component(this.reactiveProps);return shared.isFunction(r)&&(r=r(this.reactiveProps)),(signals.isSignal(r)||signals.isComputed(r))&&(r=r.value),this.renderedNode=r,p(t,this.renderedNode,n),this.applyProps(this.props||{}),this.state=2,this.componentContext&&(this.componentContext.isMount=true),$(v.mount),this.renderedNode}update(t){if(this.key!==t.key)return this.mount(t.parentNode,t.beforeNode),this;if(this.parentNode=t.parentNode,this.beforeNode=t.beforeNode,this.componentContext=t.componentContext,this.renderedNode=t.renderedNode,this.state=t.state,this.reactiveProps=t.reactiveProps,this._propSnapshots=t._propSnapshots,this.props)for(let n in this.props){if(n==="key")continue;let r=this.props[n],o=this.reactiveProps[n];if(shared.isObject(r)&&r!==null){let i=this._propSnapshots[n];if(!i||!we(r,i)){let s=Array.isArray(r)?r.slice():Object.assign({},r);this.reactiveProps[n]=s,this._propSnapshots[n]=s;}}else shared.hasChanged(r,o)&&(this.reactiveProps[n]=r,this._propSnapshots[n]&&delete this._propSnapshots[n]);}return !this.isConnected&&this.parentNode&&this.mount(this.parentNode,this.beforeNode),this.componentContext&&(M(this.componentContext),this.applyProps(this.props||{}),$(v.update),Y()),this}forceUpdate(){return K(this,null,function*(){if(this.state===5||!this.parentNode||!this.componentContext)return;let t=this.renderedNode,n;try{this.componentContext&&M(this.componentContext),n=this.component(this.reactiveProps),shared.isFunction(n)&&(n=n(this.reactiveProps)),(signals.isSignal(n)||signals.isComputed(n))&&(n=n.value),t&&n&&t!==n&&this.parentNode&&(z(this.parentNode,n,t),this.renderedNode=n),yield $(v.update);}catch(r){throw shared.error("Force update failed:",r),r}finally{this.componentContext&&Y();}})}destroy(){if(this.state===4||this.state===5)return;this.state=4;let t=this.componentContext;t&&(M(t),$(v.destroy),Q(t),this.componentContext=null,Y());let n=this.renderedNode;n&&b(n),this.renderedNode=null,this.parentNode=null,this.beforeNode=null,this.reactiveProps={},this.props=void 0,this.state=5;}applyProps(t){if(t){for(let[n,r]of Object.entries(t))if(shared.startsWith(n,"on")&&this.renderedNode){let o=n.slice(2).toLowerCase();shared.isHTMLElement(this.renderedNode)&&E(this.renderedNode,o,r);}else n==="ref"&&signals.isSignal(r)&&(r.value=this.renderedNode);this.props=t;}}};function m(e){return !!e&&!!e.normal}function j(e,t){return m(e)?e:new W(e,t)}function fe(e){let t,n=()=>{let r=document.createElement("template");r.innerHTML=e;let o=r.content.firstChild;if(!o)throw new Error("Invalid template: empty content");return o};return ()=>(t||(t=n())).cloneNode(true)}function It(e,t){let n=shared.isString(t)?document.querySelector(t):t;if(!n){shared.error(`Target element not found: ${t}`);return}n.innerHTML&&(shared.error(`Target element is not empty, it will be delete: ${t}`),n.innerHTML="");let o=j(e);return o.mount(n),o}function de(e,t){let n=N();if(!n){shared.error("provide must be called within a template");return}n.provides.set(e,t);}function me(e,t){let n=N();if(!n)return shared.error("inject must be called within a template"),t;let r=n;for(;r;){let o=r.provides.get(e);if(!shared.isNil(o))return o;r=r.parent;}return t}function Ft(e){let t=e.target,n=`${e.type}`,r=e.target,o=e.currentTarget,i=c=>Object.defineProperty(e,"target",{configurable:true,value:c}),s=()=>{let c=t[`_$${n}`];if(c&&shared.isFunction(c)&&!t.disabled){let u=t[`${n}Data`];if(u?c.call(t,u,e):c.call(t,e),e.cancelBubble)return false}return t.host&&!shared.isString(t.host)&&!t.host._$host&&shared.isFunction(t.contains)&&t.contains(e.target)&&i(t.host),true},a=()=>{for(;s()&&(t=t._$host||t.parentNode||t.host););};if(Object.defineProperty(e,"currentTarget",{configurable:true,get(){return t||document}}),e.composedPath){let c=e.composedPath();i(c[0]);for(let u=0;u<c.length-2&&(t=c[u],!!s());u++){if(t._$host){t=t._$host,a();break}if(t.parentNode===o)break}}else a();i(r);}var Ue=Symbol("_$EVENTS");function Mt(e,t=window.document){let n=t,r=n[Ue]||(n[Ue]=new Set);for(let o of e)r.has(o)||(r.add(o),t.addEventListener(o,Ft));}function zt(e,t,n,r=false){if(t===n)return;let o=q(n),i=q(t);o&&i===o||(o?r?e.setAttribute("class",o):e.className=o:e.removeAttribute("class"));}function q(e){if(e==null)return "";if(typeof e=="string")return e.trim();if(shared.isArray(e))return e.map(q).filter(Boolean).join(" ");if(shared.isObject(e)){let t=[];for(let n in e)e[n]&&t.push(n);return t.join(" ")}return String(e).trim()}var Ye=/\s*!important$/,Yt=["Webkit","Moz","ms"],pe={};function Xt(e,t,n){let r=e.style,o=shared.isString(n);if(n&&o){t!==n&&(r.cssText=n);return}if(!n){t&&e.removeAttribute("style");return}if(t&&!shared.isString(t))for(let i in t)(!n||n[i]==null)&&U(r,i,"");else if(t&&shared.isString(t)){let i=t.split(";");for(let s of i){let a=s.indexOf(":");if(a>0){let c=s.slice(0,a).trim();n&&shared.isObject(n)&&n[c]==null&&U(r,c,"");}}}if(n&&!shared.isString(n))for(let i in n){let s=n[i];(!t||shared.isString(t)||t[i]!==s)&&s!=null&&U(r,i,s);}}function U(e,t,n){if(shared.isArray(n)){for(let o of n)U(e,t,o);return}if((n==null||n==="")&&(n=""),t.startsWith("--")){e.setProperty(t,n);return}let r=Wt(e,t);typeof n=="string"&&Ye.test(n)?e.setProperty(shared.camelCase(r),n.replace(Ye,""),"important"):e[r]=n;}function Wt(e,t){let n=pe[t];if(n)return n;let r=shared.camelCase(t);if(r!=="filter"&&r in e)return pe[t]=r;r=shared.capitalize(r);for(let o of Yt){let i=o+r;if(i in e)return pe[t]=i}return t}function Zt(e,t,n,r){if(t==="ref"){n.value=e;return}if(t==="key"){r==null?O(e,void 0):O(e,String(r));return}let o=(e==null?void 0:e.namespaceURI)===Ce,i=o&&t.startsWith("xlink:"),s=o&&t.startsWith("xmlns:"),a=shared.isSpecialBooleanAttr(t)||shared.isBooleanAttr(t);if(n===r)return;let c=t.toLowerCase();if(/^on[a-z]+/.test(c)||c==="innerhtml")return;if(r==null){if(i)e.removeAttributeNS(ne,t.slice(6));else if(s){let l=t.slice(6);e.removeAttributeNS(re,l);}else e.removeAttribute(t);return}if(i){e.setAttributeNS(ne,t,String(r));return}if(s){e.setAttributeNS(re,t,String(r));return}if(a){shared.includeBooleanAttr(r)?e.setAttribute(t,""):e.removeAttribute(t);return}let u=shared.isSymbol(r)?String(r):r;if((c==="href"||c==="src"||c==="xlink:href")&&typeof u=="string"){let l=u.trim().toLowerCase();if(l.startsWith("javascript:")||l.startsWith("data:"))return}if(o)e.setAttribute(t,String(u));else if(t in e)try{e[t]=u;}catch(l){e.setAttribute(t,String(u));}else e.setAttribute(t,String(u));}function en(e,t,n,r){if(!(r!=null&&r.delegate))return e.addEventListener(t,n,r),()=>e.removeEventListener(t,n,r);let o=r.delegate,i=a=>{let c=a.target;(c.matches(o)||c.closest(o))&&n.call(e,a);},s=H({},r);return s.delegate=void 0,e.addEventListener(t,i,s),()=>{e.removeEventListener(t,i,s);}}function tn(e){if(typeof document=="undefined"){let r=e.children;return r?(Array.isArray(r)?r:[r]).map(i=>String(i||"")).join(""):""}let t=document.createDocumentFragment(),n=e.children;return n&&(Array.isArray(n)?n:[n]).forEach(o=>{if(o!=null){let i=T(o);i&&p(t,i);}}),t}tn.fragment=true;function Zr(e){return !!e&&!!e.fragment}function rn(e){if(typeof document=="undefined"){let n=e.children;return n?(shared.isArray(n)?n:[n]).map(o=>String(o||"")).join(""):""}let t=document.createComment("portal");return t.portal=true,ee(()=>{let n=shared.isString(e.target)?document.querySelector(e.target):e.target;if(!n)return;let r=e.children;r&&(shared.isArray(r)?r:[r]).forEach(i=>{if(i!=null){let s=T(i);s&&p(n,s);}});}),t}rn.portal=true;function so(e){return !!e&&!!e.portal}var he=Symbol("SuspenseContext");function cn(e){if(shared.isUndefined(document)){let l=e.fallback;return l?String(l||""):""}let t=document.createElement("div");t.style.display="contents";let n=true,r=0,o=false,i=null,s=()=>{if(!o){for(o=true;t.firstChild;)t.removeChild(t.firstChild);if(e.fallback!=null){let l=T(e.fallback);l&&p(t,l);}}},a=()=>{if(!(!o||!(i||e.children!=null&&!shared.isPromise(e.children)))){for(o=false;t.firstChild;)t.removeChild(t.firstChild);i?c(i):e.children!=null&&!shared.isPromise(e.children)&&c(e.children);}},c=l=>{for(;t.firstChild;)t.removeChild(t.firstChild);if(l==null)return;let h=N();if((shared.isArray(l)?l:[l]).forEach(A=>{if(A!=null){m(A)&&(A.parentContext=h);let I=T(A);I&&p(t,I);}}),o){for(;t.firstChild;)t.removeChild(t.firstChild);if(e.fallback!=null){let A=T(e.fallback);A&&p(t,A);}}},u={register:l=>{r++,s(),l.then(()=>{n&&(r--,r===0&&a());}).catch(h=>{n&&(r--,r===0&&a());});},increment:()=>{r++,s();},decrement:()=>{r--,r===0&&a();}};de(he,u);let f=e.children;return shared.isPromise(f)?(f.then(l=>{i=l;}).catch(()=>{}),u.register(f)):f!=null?c(f):s(),te(()=>{for(n=false;t.firstChild;)t.removeChild(t.firstChild);}),t}cn.suspense=true;function go(e){return !!e&&!!e.suspense}function Co(e,t){let n=signals.signal(t==null?void 0:t.initialValue),r=signals.signal(true),o=signals.signal(null),i=signals.signal("pending"),s=0,a=null,c=()=>K(null,null,function*(){let l=++s;r.value=true,i.value="pending",o.value=null;let h=e();a=h.then(()=>{});try{let y=yield h;l===s&&(n.value=y,i.value="ready",r.value=!1);}catch(y){l===s&&(o.value=y instanceof Error?y:new Error(String(y)),i.value="errored",r.value=false);}});c();let u=(()=>{if(r.value&&a){let l=me(he,null);l&&l.register(a);}return n.value});return u.loading=r,u.error=o,u.state=i,[u,{mutate:l=>{n.value=l,i.value="ready",r.value=false,o.value=null;},refetch:()=>K(null,null,function*(){yield c();})}]}var qe=0;function ge(){return `${qe++}`}function V(){qe=0;}function xe(){}function w(e,t=false){return shared.isNil(e)?"":shared.isString(e)?e:shared.isArray(e)?e.map(n=>w(n,t)).join(""):shared.isFunction(e)?w(e(),t):String(e)}function Je(e,t){let n=/^<([a-z]+)(\s*)([^>]*)>/i,r=/data-idx="(\d+)"/g,o=/<!--(.*?)-->/g;return e.replace(n,`<$1$2$3 data-hk="${t}">`).replaceAll(r,`data-idx="${t}-$1"`).replaceAll(o,`<!--${t}-$1-->`)}function dn(e,t){if(!shared.isFunction(e))return shared.error("Component must be a function"),"";V();let n=e(t);return w(n)}function mn(e,t,...n){let r="",o=0;for(let s of e)if(r+=s,o<n.length){let a=n[o++];a&&(r+=w(a));}return Je(r,t)}function pn(e,t={}){if(!shared.isFunction(e))return shared.error("create ssg component: Component is not a function"),"";let n=e(t);return w(n)}function nt(e){if(shared.isArray(e)){let t={};for(let n of e){let r=shared.isString(n)?An(n):nt(n);if(r)for(let o in r)t[o]=r[o];}return t}if(shared.isString(e)||shared.isObject(e))return e}var Nn=/;(?![^(]*\))/g,Sn=/:([\s\S]+)/,En=/\/\*[\s\S]*?\*\//g;function An(e){let t={};return e.replaceAll(En,"").split(Nn).forEach(n=>{if(n){let r=n.split(Sn);r.length>1&&(t[r[0].trim()]=r[1].trim());}}),t}function Cn(e){if(!e)return "";if(shared.isString(e))return e;let t="";for(let n in e){let r=e[n];if(shared.isString(r)||shared.isNumber(r)){let o=n.startsWith("--")?n:shared.kebabCase(n);t+=`${o}:${r};`;}}return t}function rt(e){let t="";if(shared.isString(e))t=e;else if(shared.isArray(e))for(let n of e){let r=rt(n);r&&(t+=`${r} `);}else if(shared.isObject(e))for(let n in e)e[n]&&(t+=`${n} `);return t.trim()}function ot(e,t,n){if(signals.isSignal(t)||signals.isComputed(t))return ot(e,t.value);if(!t&&t!==0)return "";if(e==="style"){let r=nt(t);return r?shared.isString(r)?` style="${r}"`:` style="${Cn(r)}"`:""}if(e==="class"){let r=rt(t);return r?` class="${r}"`:""}return e.startsWith("on")?"":t===true?` ${e}`:` ${e}="${t}"`}function bn(e){return ()=>{let t=ge();return document.querySelector(`[data-hk="${t}"]`)||fe(e)()}}function Tn(e,t){let n=e.dataset.hk;if(!n)return ue(e,t);let r=[],o=e.querySelectorAll(`[data-idx^="${n}"]`);o.length>0&&r.push(...Array.from(o).filter(c=>{let u=c.dataset.idx;return u!==null&&oe.test(u)}).map(c=>{let u=c.dataset.idx||"",[f,l]=u.split("-");return {hk:f,idx:l,node:c}}));let i=[],s=c=>{if(c.nodeType===Node.COMMENT_NODE&&c.textContent&&oe.test(c.textContent)){let[f,l]=c.textContent.split("-");i.push({hk:f,idx:l,node:c});}let u=c.firstChild;for(;u;)s(u),u=u.nextSibling;};s(e),r.push(...i);let a=[e];return t.forEach(c=>{let u=r.find(f=>f.idx===String(c));u&&a.push(u.node);}),a}function kn(e,t,n={}){V();try{let r=shared.isString(t)?document.querySelector(t):t;if(!r){shared.error("Hydration error: Root element not found");return}let o=j(e,n);return o.mount(r),xe(),o}catch(r){shared.error("Hydration error:",r);return}}
7
+ Object.defineProperty(exports,"escapeHTML",{enumerable:true,get:function(){return shared.escapeHTML}});exports.Component=W;exports.Fragment=tn;exports.Portal=rn;exports.Suspense=cn;exports.SuspenseContext=he;exports.addEvent=en;exports.addEventListener=E;exports.bindElement=Tt;exports.createApp=It;exports.createComponent=j;exports.createResource=Co;exports.createSSGComponent=pn;exports.delegateEvents=Mt;exports.getHydrationKey=ge;exports.getRenderedElement=bn;exports.hydrate=kn;exports.inject=me;exports.insert=kt;exports.isComponent=m;exports.isFragment=Zr;exports.isPortal=so;exports.isSuspense=go;exports.mapNodes=ue;exports.mapSSRNodes=Tn;exports.normalizeClass=q;exports.onDestroy=te;exports.onMount=ee;exports.onUpdate=dt;exports.patchAttr=Zt;exports.patchClass=zt;exports.patchStyle=Xt;exports.provide=de;exports.render=mn;exports.renderToString=dn;exports.setSSGAttr=ot;exports.setStyle=U;exports.template=fe;//# sourceMappingURL=template.cjs.js.map
7
8
  //# sourceMappingURL=template.cjs.js.map