lithent 1.18.0 → 1.18.2

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
@@ -90,14 +90,14 @@ pnpm add lithent
90
90
 
91
91
  #### Or Use CDN
92
92
 
93
- * UMD : https://cdn.jsdelivr.net/npm/lithent@1.18.0/dist/lithent.umd.js
94
- * UMD-HELPER: https://cdn.jsdelivr.net/npm/lithent@1.18.0/helper/dist/lithentHelper.umd.js
95
- * UMD-FTAGS: https://cdn.jsdelivr.net/npm/lithent@1.18.0/ftags/dist/lithentFTags.umd.js
96
- * UMD-TAG: https://cdn.jsdelivr.net/npm/lithent@1.18.0/tag/dist/lithentTag.umd.js
97
- * ESM : https://cdn.jsdelivr.net/npm/lithent@1.18.0/dist/lithent.mjs
98
- * ESM-HELPER: https://cdn.jsdelivr.net/npm/lithent@1.18.0/helper/dist/lithentHelper.mjs
99
- * ESM-FTAGS: https://cdn.jsdelivr.net/npm/lithent@1.18.0/ftags/dist/lithentFTags.mjs
100
- * ESM-TAG: https://cdn.jsdelivr.net/npm/lithent@1.18.0/tag/dist/lithentTag.mjs
93
+ * UMD : https://cdn.jsdelivr.net/npm/lithent@1.18.2/dist/lithent.umd.js
94
+ * UMD-HELPER: https://cdn.jsdelivr.net/npm/lithent@1.18.2/helper/dist/lithentHelper.umd.js
95
+ * UMD-FTAGS: https://cdn.jsdelivr.net/npm/lithent@1.18.2/ftags/dist/lithentFTags.umd.js
96
+ * UMD-TAG: https://cdn.jsdelivr.net/npm/lithent@1.18.2/tag/dist/lithentTag.umd.js
97
+ * ESM : https://cdn.jsdelivr.net/npm/lithent@1.18.2/dist/lithent.mjs
98
+ * ESM-HELPER: https://cdn.jsdelivr.net/npm/lithent@1.18.2/helper/dist/lithentHelper.mjs
99
+ * ESM-FTAGS: https://cdn.jsdelivr.net/npm/lithent@1.18.2/ftags/dist/lithentFTags.mjs
100
+ * ESM-TAG: https://cdn.jsdelivr.net/npm/lithent@1.18.2/tag/dist/lithentTag.mjs
101
101
 
102
102
 
103
103
  It's easier to use lithent with JSX or HTM.
@@ -122,9 +122,9 @@ import { fTags, fFragment, fMount } from 'lithent/ftags';
122
122
  const { section, div, p, br, strong } = fTags;
123
123
 
124
124
  /* UMD
125
- <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.0/dist/lithent.umd.js"></script>
126
- <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.0/helper/dist/lithentHelper.umd.js"></script>
127
- <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.0/ftags/dist/lithentFTags.umd.js"></script>
125
+ <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.2/dist/lithent.umd.js"></script>
126
+ <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.2/helper/dist/lithentHelper.umd.js"></script>
127
+ <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.2/ftags/dist/lithentFTags.umd.js"></script>
128
128
 
129
129
  const { render } = lithent;
130
130
  const { fTags, fMount, fFragment } = lithentFTags;
@@ -197,10 +197,10 @@ const destroy = render(lTag`<${Component} />`, document.getElementById('root'),
197
197
  #### With UMD
198
198
 
199
199
  ```html
200
- <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.0/dist/lithent.umd.js"></script>
201
- <!--script src="https://cdn.jsdelivr.net/npm/lithent@1.18.0/helper/dist/lithentHelper.umd.js"></script-->
202
- <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.0/tag/dist/lithentTag.umd.js"></script>
203
- <!--script src="https://cdn.jsdelivr.net/npm/lithent@1.18.0/ftags/dist/lithentFTags.umd.js"></script-->
200
+ <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.2/dist/lithent.umd.js"></script>
201
+ <!--script src="https://cdn.jsdelivr.net/npm/lithent@1.18.2/helper/dist/lithentHelper.umd.js"></script-->
202
+ <script src="https://cdn.jsdelivr.net/npm/lithent@1.18.2/tag/dist/lithentTag.umd.js"></script>
203
+ <!--script src="https://cdn.jsdelivr.net/npm/lithent@1.18.2/ftags/dist/lithentFTags.umd.js"></script-->
204
204
 
205
205
  <div id="root"></div>
206
206
 
@@ -0,0 +1,2 @@
1
+ (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const o of l)if(o.type==="childList")for(const c of o.addedNodes)c.tagName==="LINK"&&c.rel==="modulepreload"&&r(c)}).observe(document,{childList:!0,subtree:!0});function n(l){const o={};return l.integrity&&(o.integrity=l.integrity),l.referrerPolicy&&(o.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?o.credentials="include":l.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function r(l){if(l.ep)return;l.ep=!0;const o=n(l);fetch(l.href,o)}})();const E=e=>typeof e=="object"&&!("resolve"in e),N=(e,t)=>E(e)&&e.type===t,Ce=(e,t)=>"ctor"in e?e.ctor===(t==null?void 0:t.ctor):e===(t==null?void 0:t.ctor),Re=(e,t)=>{var n,r;return E(e)&&(t==null?void 0:t.type)==="fragment"&&((n=t==null?void 0:t.children)==null?void 0:n.length)===((r=e==null?void 0:e.children)==null?void 0:r.length)},we=(e,t)=>{var n,r;return E(e)&&(t==null?void 0:t.type)==="element"&&(t==null?void 0:t.tag)===e.tag&&((n=t==null?void 0:t.children)==null?void 0:n.length)===((r=e==null?void 0:e.children)==null?void 0:r.length)},J=(e,t)=>E(e)&&(t==null?void 0:t.type)===e.type,xe=(e,t)=>{var n,r;return E(e)&&(t==null?void 0:t.type)===e.type&&(S(h((e.children||[])[0]))&&S(h(((t==null?void 0:t.children)||[])[0]))||((n=t==null?void 0:t.children)==null?void 0:n.length)===((r=e==null?void 0:e.children)==null?void 0:r.length))},h=e=>{var t,n;return((t=e==null?void 0:e.compProps)==null?void 0:t.key)??((n=e==null?void 0:e.props)==null?void 0:n.key)},y=e=>e&&["fragment","loop"].includes(e),U=e=>typeof e=="function"&&!ne(e)||typeof e=="object"&&"resolve"in e,ne=e=>typeof e=="function"&&e===x,re=e=>E(e)&&!e.type,S=e=>e!=null,_=(e,t)=>e==="style"&&typeof t=="object",Ne=(e,t)=>e==="ref"&&typeof t=="object",Ue=(e,t)=>{const n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);return n&&n.get&&n.set},Le=e=>{let t="et";return U(e)?t="c":N(e,"fragment")?t="f":N(e,"element")?t="e":N(e,"loop")?t="l":N(e,"text")?t="t":re(e)&&(t="et"),t},Oe={c:Ce,l:xe,t:J,e:we,f:Re,et:J},P=Symbol.for("lithentWDomSymbol"),b={value:""},R={value:{}},j={value:!1},p=new WeakMap,Ve=e=>{p.set(e,{vd:{value:null},up:()=>{},upR:[],upS:{value:0},upD:[],upCB:[],mts:[],umts:[]})},w=()=>R.value,z=(e,t)=>p.get(e)?p.get(e)[t]:null,Ae=e=>R.value=e,Te=e=>{R.value=e,Ve(e)},m=e=>e.getParent&&e.getParent(),C=Object.entries,le=Object.keys,L=Object.assign,De=e=>{p.get(w()).umts.push(e)},O=e=>{const{compKey:t}=e;t&&Me(t),oe(e)},oe=e=>{(e.children||[]).forEach(t=>{t.compKey?O(t):oe(t)})},Me=e=>{const t=p.get(e);t&&(t.umts.forEach(n=>n()),t.umts=[],p.delete(e))};let k=[];const H=()=>{k.forEach(e=>ke(e)),k=[]},je=e=>{e.compKey&&k.push(e)},ce=e=>{var t;return(((t=p.get(w()))==null?void 0:t.mts)||[]).push(e)},ke=e=>{const{compKey:t}=e;if(t){const n=p.get(t),r=n==null?void 0:n.mts,l=n==null?void 0:n.upS;R.value=t,l&&(l.value=0),r&&(n.mts=[],r.forEach(o=>{const c=o();c&&De(c)}))}},G=(e,t=()=>[])=>{const n=p.get(w()),{upD:r,upS:l}=n,o=r[l.value];if(o&&Fe(o,t())){const c=e();c&&n.upCB.push(c)}r[l.value]=t(),l.value+=1},$e=e=>{const{compKey:t}=e;if(t){const n=p.get(t),r=n==null?void 0:n.upCB,l=n==null?void 0:n.upS;R.value=t,l&&(l.value=0),e.ctor&&r&&(n.upCB=[],r.forEach(o=>o()))}},Fe=(e,t)=>e.length?e.some((n,r)=>n!==t[r]):!0,Ie=e=>e==="className"?"class":e,ue=e=>e.replace(/^on(.*)/,(t,n)=>n.toLowerCase()),W=()=>new DocumentFragment,Q=e=>document.createElement(e),Ke=(e,t,n,r)=>{e.isRoot=!0,t??(t=document.body),e.wrapElement=t;const l=A(e,r);return t.tagName==="HTML"?t.replaceWith(l):t.appendChild(l),H(),()=>{var o;const c=(o=p.get(e.compProps||{}))==null?void 0:o.vd.value;c&&O(c),V(c||e),Be(c||e)}},ie=e=>{const{needRerender:t}=e;t&&t!=="N"&&({A:Y,D:q,R:We,U:F,CNSU:F,SR:se,SU:He}[t](e),delete e.needRerender,delete e.oldChildren,delete e.oldProps)},V=e=>{e.props&&e.el&&he(e.props,e.el),(e.children||[]).forEach(t=>{V(t)})},Be=e=>{ae(e,e.wrapElement)},q=e=>{e.oldProps&&e.el&&he(e.oldProps,e.el),ae(e,T(m(e)))},ae=(e,t)=>{var n,r;t&&e.el&&([1,3].includes((n=e.el)==null?void 0:n.nodeType)?t.removeChild(e.el):((r=e.el)==null?void 0:r.nodeType)===11&&de(e),delete e.el)},de=(e,t)=>{((e==null?void 0:e.oldChildren)||(e==null?void 0:e.children)||[]).forEach(n=>{var r;const l=(r=n.el)==null?void 0:r.nodeType;l&&([1,3].includes(l)?n.el.tagName==="HTML"?n.el.innerHTML="":n.el.remove():l===11&&de(n))})},se=e=>{q(e),Y(e)},He=e=>{if(F(e),m(e).needRerender!=="CNSU"){const t=pe(e);Y(e,t)}},Y=(e,t)=>{t||(t=A(e));const n=m(e);if(n.type){const r=T(n),l=n.type==="loop"&&n.needRerender&&n.needRerender!=="CNSU"?$(n,m(n)):$(e,n);t&&r&&(e.tag!=="portal"&&(l?r.insertBefore(t,l):r.appendChild(t)),H())}},pe=e=>y(e.type)?((e==null?void 0:e.children)||[]).reduce((t,n)=>{const r=pe(n);return r&&t.appendChild(r),t},W()):e.el,$=(e,t)=>{const n=t.children||[],r=n.indexOf(e)+1,l=n.slice(r),o=ve(l),c=t.type||"";if(o)return o;if(!t.isRoot&&y(c))return $(t,m(t));if(t.isRoot&&y(c)&&t.afterElement)return t.afterElement},ve=e=>e.reduce((t,n)=>{const r=n.type,l=n.el,o=r&&y(r);return t||(o?ve(n.children||[]):l&&l.nodeType!==11?l:t)},void 0),We=e=>{const t=m(e),n=e.el;if(t.type&&n)if(n.nodeType===11)se(e);else{const r=T(t),l=A(e);r&&e.tag!=="portal"&&r.replaceChild(l,n),H()}},he=(e,t)=>{C(e||{}).forEach(([n,r])=>{n.match(/^on/)&&t.removeEventListener(ue(n),r)})},F=e=>{var t;const n=e.el;if(e.type==="text"){qe(e);return}if(n){const{oldProps:r,props:l}=e;fe(l,n,r),delete e.oldProps,e.tag==="input"&&(n.value=String(((t=e==null?void 0:e.props)==null?void 0:t.value)||""))}(e.children||[]).forEach(r=>ie(r)),$e(e)},qe=e=>{const t=e.el;t&&(t.nodeValue=String(e.text))},fe=(e,t,n,r)=>{const l={...n};C(e||{}).forEach(([o,c])=>{o==="key"||c===l[o]||o==="portal"&&typeof c=="object"||(o==="innerHTML"&&typeof c=="string"?t.innerHTML=c:_(o,c)?ze(c,_(o,l.style)?l.style:{},t):Ne(o,c)?c.value=t:o.match(/^on/)?_e(t,o,c,l[o]):o&&(o!=="type"&&Ue(t,o)?t[o]=c:Ye(Ie(o),t,c))),delete l[o]}),le(l).forEach(o=>t.removeAttribute(o))},Ye=(e,t,n)=>{b.value&&e!=="xmlns"?t.setAttributeNS(null,e,n):t.setAttribute(e,n)},A=(e,t)=>{let n;const{type:r,tag:l,text:o,props:c,children:i=[]}=e,u=y(r);return l==="svg"&&(b.value=String(c==null?void 0:c.xmlns)),u?n=W():r==="element"&&l?l==="portal"&&c!=null&&c.portal?n=c.portal:n=b.value?document.createElementNS(b.value,l):Q(l):r==="text"&&S(o)?n=document.createTextNode(String(o)):n=Q("e"),e.el=n,Je(i,n,t),fe(c,n,null),je(e),l==="svg"&&(b.value=""),n},Je=(e,t,n)=>{const r=e.reduce((l,o)=>{if(o.type){const c=A(o,n);o.tag!=="portal"&&!n&&l.appendChild(c)}return l},W());t&&r.hasChildNodes()&&t.appendChild(r)},_e=(e,t,n,r)=>{const l=ue(t);r!==n&&(r&&e.removeEventListener(l,r),n&&e.addEventListener(l,n))},ze=(e,t,n)=>{const r={...t},l=n==null?void 0:n.style;l&&(C(e).forEach(([o,c])=>{l[o]=c,delete r[o]}),C(r).forEach(([o])=>l[o]=""))},T=e=>{const t=y(e.type);return e.isRoot&&t?e.wrapElement:t?T(m(e)):e.el},D=(e,t)=>Ge(e,Oe[Le(e)](e,t),t),Ge=(e,t,n)=>{const r=rt(e,t,n),l=[r,t,n],o=Xe(...l),c=o==="N";return c||(r.children=lt(...l)),r.needRerender=o,Qe(r,n,o),!c&&n&&(n.isLegacy=!0,delete n.children),r},Qe=(e,t,n)=>{n!=="A"&&t&&(e.el=t.el),n&&["D","R","SR"].includes(n)&&(t&&(O(t),V(t)),e.oldChildren=t==null?void 0:t.children),e.oldProps=t==null?void 0:t.props},Xe=(e,t,n)=>{const r=n&&n.type,l=re(e),o=e.isRoot,c=n&&m(n),i=!o&&(c==null?void 0:c.type),u=h(e),s=i==="loop"&&S(u),v=e.type==="text"&&t&&e.text===(n==null?void 0:n.text),f=e===n;let d;return l?d="D":v||f?d="N":r?t?d=s?"SU":"U":d=s?"SR":"R":d="A",e.type==="loop"&&d==="U"&&n&&Ze(e,n)&&(d="CNSU"),d},Ze=(e,t)=>{const n=[...(t==null?void 0:t.children)||[]],r=[...(e==null?void 0:e.children)||[]].filter(c=>n.find(i=>h(c)===h(i))),l=n.filter(c=>r.find(i=>h(c)===h(i)));let o=l.length===r.length;return o&&(o=l.every((c,i)=>h(c)===h(r[i]))),o},et=(e,t)=>{e&&t!==e&&(le(e).forEach(n=>delete e[n]),C(t||{}).forEach(([n,r])=>e[n]=r))},tt=(e,t)=>{e&&t!==e&&(e.splice(0,e.length),t&&t.forEach(n=>e.push(n)))},nt=(e,t)=>{const{compProps:n,compChild:r}=e,{props:l,children:o}=t;return n&&et(n,l),r&&tt(r,o),e.reRender&&e.reRender()},rt=(e,t,n)=>U(e)?t&&n?nt(n,e):e.resolve():e,lt=(e,t,n)=>t&&n?ct(e,n):ot(e),ot=e=>(e.children||[]).map(t=>L(D(t),{getParent:()=>e})),ct=(e,t)=>e.type==="loop"&&S(h((e.children||[])[0]))?ut(e,t):(e.children||[]).map((n,r)=>L(D(n,(t.children||[])[r]),{getParent:()=>e})),ut=(e,t)=>{const[n,r]=it(e,t);return r.forEach(l=>{O(l),V(l),q(l)}),n},it=(e,t)=>{const n=[...e.children||[]],r=[...t.children||[]];return[n.map(l=>{const o=at(l,r),c=D(l,o);return o&&r.splice(r.indexOf(o),1),c.getParent=()=>e,c}),r]},at=(e,t)=>t.find(n=>h(n)===h(e)),I=new Map;let K=!1;const dt=(e,t)=>{p.get(e)&&(p.get(e).up=()=>{I.set(e,t),K||(K=!0,queueMicrotask(pt))})},st=e=>()=>{var t;const n=(t=p.get(e))==null?void 0:t.up;let r=!1;return n&&(n(),r=!0),r},pt=()=>{I.forEach(e=>{e()}),I.clear(),K=!1},me=(e,t=()=>[])=>{p.get(w()).upR.push(()=>G(e,t)),G(e,t)},vt=()=>{var e;const t=(e=p.get(w()))==null?void 0:e.upR;t!=null&&t.length&&t.forEach(n=>n())},x=(e,...t)=>({type:"fragment",[P]:!0,children:t}),X=(e,t,...n)=>{const r={value:void 0},l=t||{},o=be(r,n),c=yt(e,l,o);return U(c)||(r.value=c),c},ge=e=>(t,n)=>e,ht=(e,t,n,r)=>{var l;if(r.isLegacy)return;j.value=!0;const o=ye(e,t,n),c=D(o,r),{isRoot:i,getParent:u,wrapElement:s,afterElement:v}=r;if(c.getParent=u,!i&&u){const f=((l=u())==null?void 0:l.children)||[],d=f.indexOf(r);f.splice(d,1,c)}else c.isRoot=!0,c.wrapElement=s,c.afterElement=v;j.value=!1,ie(c)},ye=(e,t,n)=>({tagName:e.name,ctor:e,props:t,children:n,resolve:(r=t)=>{Te(r);const l=e(t,n),o=(typeof l=="function"?l:()=>()=>l)(st(r),t,n);return ft(o,r,e,t,n)}}),ft=(e,t,n,r,l)=>{let o=e,c=e(r);c.reRender&&(o=u=>{const s=e(u),v=x({},s);return s.getParent=()=>v,v},c=o(r));const i=mt(o,t,n,r,l);return Ee(c,t,n,r,l,i),c},mt=(e,t,n,r,l)=>{const o=()=>gt(e,t,n,r,l,o);return o},gt=(e,t,n,r,l,o)=>{Ae(t),vt();const c=e(r);return Ee(c,t,n,r,l,o),c},Ee=(e,t,n,r,l,o)=>{L(e,{compProps:r,compChild:l,ctor:n,tagName:n.name,compKey:t,reRender:o}),dt(t,()=>ht(n,r,l,e)),z(t,"vd")&&(z(t,"vd").value=e)},yt=(e,t,n)=>{if(ne(e))return x(t,...n);if(U(e)){const r=ye(e,t,n);return j.value?r:r.resolve()}return{type:"element",[P]:!0,tag:e,props:t,children:n}},be=(e,t)=>t.map(n=>L(Et(n),{getParent:()=>e.value})),Et=e=>{if(e==null||e===!1)return{type:null,[P]:!0};if(Array.isArray(e)){const t={value:void 0},n=be(t,e),r={type:"loop",[P]:!0,children:n};return t.value=r,r}else if(typeof e=="string"||typeof e=="number")return{type:"text",[P]:!0,text:e};return e},bt=e=>({value:e});function a(e,t,n,r,l,o){const{children:c,...i}=t;if(c!=null){const u=Array.isArray(c)?c:[c];return X(e,{...i,key:n},...u)}return X(e,{...i,key:n})}const B=(e,t)=>{let n=e;return{get value(){return n},get v(){return n},set value(r){n=r,t()},set v(r){n=r,t()}}},Pt=e=>{let t=e;return{get value(){return t()},get v(){return t()},set value(n){throw new Error("You can't change 'computed'")},set v(n){throw new Error("You can't change 'computed'")}}},St=(e,t=()=>{},n=()=>[])=>{ce(()=>(e(),t)),me(()=>(t&&t(),e),n)},Ct={cache:!0};function Rt(e){const t={value:!1},n=!Array.isArray(e)&&typeof e=="object"&&e!==null?e:{value:e},r=new Set,l=[],o=new WeakMap;return(c,i,u)=>{const{cache:s}=Object.assign({},Ct,u||{});if(s&&c&&o.has(c))return o.get(c);const v={},f=new Set;let d={value:null},g=()=>{};return l.push(v),c&&i&&(g=()=>c(d.value),d.value=Z(n,t,r,f,l,g,v),t.value=!0,i(d.value),t.value=!1),d.value||(d.value=Z(n,t,r,f,l),c&&(g=()=>c(d.value),r.add(g))),c&&(xt(g,r,v,f),o.set(c,d.value)),d.value}}function Z(e,t,n,r,l,o,c){return new Proxy(e,{get(i,u){return o&&c&&t.value&&(c[u]??(c[u]=new Set),c[u].has(o)||(c[u].add(o),r.add(u))),i[u]},set(i,u,s){return i[u]===s||(i[u]=s,wt(n,l,u)),!0}})}function wt(e,t=[],n){const r=new Set;te(e).forEach(l=>r.add(l)),(t||[]).forEach(l=>{const o=l[n]||new Set;te(o).forEach(c=>r.add(c)),ee(r,o)}),ee(r,e)}function ee(e,t){e.forEach(n=>{t.delete(n)})}function te(e){const t=[];return e.forEach(n=>{n()===!1&&t.push(n)}),t}function xt(e,t,n,r){const l=e();l instanceof AbortSignal&&l.addEventListener("abort",()=>{const o=n||{};t.delete(e),Object.entries(o).forEach(([c,i])=>{i.delete(e),r.delete(c)})})}const Nt=ge((e,t,n)=>{const r=B(1,e),l=B('"destructuring" the "props" value directly from the mount function will cause referencing issues, so if you want to use it, you need to "destructuring" it from the internal function (updater).',e),o=()=>t.parentValue,c=t.parentValue,i=Pt(()=>r.v+s+t.parentValue),u=Rt({text:"s",count:0})(e);let s=t.parentValue;const v=bt(null),f=()=>{r.v=r.v+1,s+=1},d=M=>{l.v=M.target.value},g=()=>{u.count+=1,u.text+="1"},Pe=()=>(console.log("MOUNTED",v),()=>console.log("UNMOUNT")),Se=()=>(console.log("UPDATE - parentValue"),()=>console.log("UPDATED"));return ce(Pe),me(Se,()=>[t.parentValue]),St(()=>console.log("INJECT"),()=>console.log("CLEAN_UP"),()=>[r.v]),({parentValue:M})=>a(x,{children:[a("div",{children:a("textarea",{value:l.v,onInput:d,style:{width:"300px",height:"100px"}})}),a("div",{children:l.v}),a("div",{children:[a("div",{style:{color:"blue"},children:["parentValueFromRef: ",t.parentValue," (working)"]}),a("div",{style:{color:"blue"},children:["parentValueFromFunction: ",o()," (working)"]}),a("div",{style:{color:"blue"},children:["parentValueFromUpdaterDestructuring: ",M," (working)"]}),a("div",{style:{color:"red"},children:["parentValueFromMounterDestructuring: ",c," (not working)"]})]}),a("div",{children:[a("div",{ref:v,children:["count: ",r.v]}),a("div",{children:["sum: ",r.v+s+t.parentValue]}),a("div",{children:["sum(computed): ",i.v]}),a("div",{children:["notRefValue: ",s]}),a("div",{children:["localStore(text): ",u.text]}),a("div",{children:["localStore(count): ",u.count]})]}),a("button",{onClick:f,children:"Increase"}),a("button",{onClick:g,children:"localStoreUpdate"}),n]})}),Ut=ge(e=>{const t=B(7,e),n=()=>{t.v=t.v+1},r=()=>{t.v=t.v-1};return()=>a(x,{children:[a(Nt,{parentValue:t.v,children:a("button",{onClick:n,children:"Increase - Parent"})}),a("button",{onClick:r,children:"Decrease - Parent"})]})}),Lt=a(Ut,{});Ke(Lt,document.getElementById("root"));
2
+ //# sourceMappingURL=index-CoLsHZbl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CoLsHZbl.js","sources":["../../../dist/lithent.mjs","../../../jsx-runtime/dist/jsxRuntime.mjs","../../../helper/dist/lithentHelper.mjs","../../src/index.tsx"],"sourcesContent":["const R = (e) => typeof e == \"object\" && !(\"resolve\" in e), N = (e, t) => R(e) && e.type === t, pe = (e, t) => \"ctor\" in e ? e.ctor === (t == null ? void 0 : t.ctor) : e === (t == null ? void 0 : t.ctor), he = (e, t) => {\n var s, c;\n return R(e) && (t == null ? void 0 : t.type) === \"fragment\" && ((s = t == null ? void 0 : t.children) == null ? void 0 : s.length) === ((c = e == null ? void 0 : e.children) == null ? void 0 : c.length);\n}, ie = (e, t) => {\n var s, c;\n return R(e) && (t == null ? void 0 : t.type) === \"element\" && (t == null ? void 0 : t.tag) === e.tag && ((s = t == null ? void 0 : t.children) == null ? void 0 : s.length) === ((c = e == null ? void 0 : e.children) == null ? void 0 : c.length);\n}, X = (e, t) => R(e) && (t == null ? void 0 : t.type) === e.type, ye = (e, t) => {\n var s, c;\n return R(e) && (t == null ? void 0 : t.type) === e.type && (E(o((e.children || [])[0])) && E(o(((t == null ? void 0 : t.children) || [])[0])) || ((s = t == null ? void 0 : t.children) == null ? void 0 : s.length) === ((c = e == null ? void 0 : e.children) == null ? void 0 : c.length));\n}, o = (e) => {\n var t, s;\n return ((t = e == null ? void 0 : e.compProps) == null ? void 0 : t.key) ?? ((s = e == null ? void 0 : e.props) == null ? void 0 : s.key);\n}, v = (e) => e && [\"fragment\", \"loop\"].includes(e), T = (e) => typeof e == \"function\" && !g(e) || typeof e == \"object\" && \"resolve\" in e, g = (e) => typeof e == \"function\" && e === J, m = (e) => R(e) && !e.type, E = (e) => e != null, Y = (e, t) => e === \"style\" && typeof t == \"object\", Ce = (e, t) => e === \"ref\" && typeof t == \"object\", ve = (e, t) => {\n const s = Object.getOwnPropertyDescriptor(\n e.constructor.prototype,\n t\n );\n return s && s.get && s.set;\n}, Re = (e) => {\n let t = \"et\";\n return T(e) ? t = \"c\" : N(e, \"fragment\") ? t = \"f\" : N(e, \"element\") ? t = \"e\" : N(e, \"loop\") ? t = \"l\" : N(e, \"text\") ? t = \"t\" : m(e) && (t = \"et\"), t;\n}, ke = {\n c: pe,\n l: ye,\n t: X,\n e: ie,\n f: he,\n et: X\n}, C = Symbol.for(\"lithentWDomSymbol\"), k = { value: \"\" }, S = { value: {} }, O = { value: !1 }, f = /* @__PURE__ */ new WeakMap(), Ee = (e) => {\n f.set(e, {\n vd: { value: null },\n up: () => {\n },\n upR: [],\n upS: { value: 0 },\n upD: [],\n upCB: [],\n mts: [],\n umts: []\n });\n}, a = () => S.value, Z = (e, t) => f.get(e) ? f.get(e)[t] : null, Pe = (e) => S.value = e, Se = (e) => {\n S.value = e, Ee(e);\n}, y = (e) => e.getParent && e.getParent(), P = Object.entries, w = Object.keys, b = Object.assign, lt = (e) => typeof e == \"object\" && !Array.isArray(e) && !Object.getOwnPropertySymbols(e).includes(C), ae = (e) => {\n f.get(a()).umts.push(e);\n}, U = (e) => {\n const { compKey: t } = e;\n t && xe(t), W(e);\n}, W = (e) => {\n (e.children || []).forEach((t) => {\n t.compKey ? U(t) : W(t);\n });\n}, xe = (e) => {\n const t = f.get(e);\n t && (t.umts.forEach((s) => s()), t.umts = [], f.delete(e));\n};\nlet Q = [];\nconst I = () => {\n Q.forEach((e) => Te(e)), Q = [];\n}, Ne = (e) => {\n e.compKey && Q.push(e);\n}, ft = (e) => {\n var t;\n return (((t = f.get(a())) == null ? void 0 : t.mts) || []).push(e);\n}, Te = (e) => {\n const { compKey: t } = e;\n if (t) {\n const s = f.get(t), c = s == null ? void 0 : s.mts, r = s == null ? void 0 : s.upS;\n S.value = t, r && (r.value = 0), c && (s.mts = [], c.forEach((n) => {\n const u = n();\n u && ae(u);\n }));\n }\n}, H = (e, t = () => []) => {\n const s = f.get(a()), { upD: c, upS: r } = s, n = c[r.value];\n if (n && Ue(n, t())) {\n const u = e();\n u && s.upCB.push(u);\n }\n c[r.value] = t(), r.value += 1;\n}, be = (e) => {\n const { compKey: t } = e;\n if (t) {\n const s = f.get(t), c = s == null ? void 0 : s.upCB, r = s == null ? void 0 : s.upS;\n S.value = t, r && (r.value = 0), e.ctor && c && (s.upCB = [], c.forEach((n) => n()));\n }\n}, Ue = (e, t) => e.length ? e.some((s, c) => s !== t[c]) : !0, Fe = (e) => e === \"className\" ? \"class\" : e, D = (e) => e.replace(/^on(.*)/, (t, s) => s.toLowerCase()), z = () => new DocumentFragment(), V = (e) => document.createElement(e), ot = (e, t, s, c) => {\n e.isRoot = !0, t ?? (t = document.body), e.wrapElement = t;\n const r = L(e, c);\n return s ? (e.afterElement = s, t.insertBefore(r, s)) : c || (t.tagName === \"HTML\" ? t.replaceWith(r) : t.appendChild(r)), I(), () => {\n var u;\n const n = (u = f.get(e.compProps || {})) == null ? void 0 : u.vd.value;\n n && U(n), F(n || e), Le(n || e);\n };\n}, ee = (e) => {\n const { needRerender: t } = e;\n t && t !== \"N\" && ({\n A: G,\n D: $,\n R: Me,\n U: B,\n CNSU: B,\n SR: ce,\n SU: Ae\n }[t](e), delete e.needRerender, delete e.oldChildren, delete e.oldProps);\n}, F = (e) => {\n e.props && e.el && ue(e.props, e.el), (e.children || []).forEach((t) => {\n F(t);\n });\n}, Le = (e) => {\n te(e, e.wrapElement);\n}, $ = (e) => {\n e.oldProps && e.el && ue(e.oldProps, e.el), te(\n e,\n A(y(e))\n );\n}, te = (e, t) => {\n var s, c;\n t && e.el && ([1, 3].includes((s = e.el) == null ? void 0 : s.nodeType) ? t.removeChild(e.el) : ((c = e.el) == null ? void 0 : c.nodeType) === 11 && se(e), delete e.el);\n}, se = (e, t) => {\n ((e == null ? void 0 : e.oldChildren) || (e == null ? void 0 : e.children) || []).forEach((s) => {\n var r;\n const c = (r = s.el) == null ? void 0 : r.nodeType;\n c && ([1, 3].includes(c) ? s.el.tagName === \"HTML\" ? s.el.innerHTML = \"\" : s.el.remove() : c === 11 && se(s));\n });\n}, ce = (e) => {\n $(e), G(e);\n}, Ae = (e) => {\n if (B(e), y(e).needRerender !== \"CNSU\") {\n const s = ne(e);\n G(e, s);\n }\n}, G = (e, t) => {\n t || (t = L(e));\n const s = y(e);\n if (s.type) {\n const c = A(s), n = s.type === \"loop\" && s.needRerender && s.needRerender !== \"CNSU\" ? j(s, y(s)) : j(e, s);\n t && c && (e.tag !== \"portal\" && (n ? c.insertBefore(t, n) : c.appendChild(t)), I());\n }\n}, ne = (e) => v(e.type) ? ((e == null ? void 0 : e.children) || []).reduce((t, s) => {\n const c = ne(s);\n return c && t.appendChild(c), t;\n}, z()) : e.el, j = (e, t) => {\n const s = t.children || [], r = s.indexOf(e) + 1, n = s.slice(r), u = re(n), l = t.type || \"\";\n if (u)\n return u;\n if (!t.isRoot && v(l))\n return j(t, y(t));\n if (t.isRoot && v(l) && t.afterElement)\n return t.afterElement;\n}, re = (e) => e.reduce(\n (t, s) => {\n const c = s.type, r = s.el, n = c && v(c);\n return t || (n ? re(s.children || []) : r && r.nodeType !== 11 ? r : t);\n },\n void 0\n), Me = (e) => {\n const t = y(e), s = e.el;\n if (t.type && s)\n if (s.nodeType === 11)\n ce(e);\n else {\n const c = A(t), r = L(e);\n c && e.tag !== \"portal\" && c.replaceChild(r, s), I();\n }\n}, ue = (e, t) => {\n P(e || {}).forEach(([s, c]) => {\n s.match(/^on/) && t.removeEventListener(\n D(s),\n c\n );\n });\n}, B = (e) => {\n var s;\n const t = e.el;\n if (e.type === \"text\") {\n Oe(e);\n return;\n }\n if (t) {\n const { oldProps: c, props: r } = e;\n le(r, t, c), delete e.oldProps, e.tag === \"input\" && (t.value = String(((s = e == null ? void 0 : e.props) == null ? void 0 : s.value) || \"\"));\n }\n (e.children || []).forEach((c) => ee(c)), be(e);\n}, Oe = (e) => {\n const t = e.el;\n t && (t.nodeValue = String(e.text));\n}, le = (e, t, s, c) => {\n const r = { ...s };\n P(e || {}).forEach(([n, u]) => {\n c && n.match(/^on/) ? K(\n t,\n n,\n u,\n r[n]\n ) : (n === \"key\" || u === r[n] || n === \"portal\" && typeof u == \"object\" || (n === \"innerHTML\" && typeof u == \"string\" ? t.innerHTML = u : Y(n, u) ? Be(\n u,\n Y(n, r.style) ? r.style : {},\n t\n ) : Ce(n, u) ? u.value = t : n.match(/^on/) ? K(\n t,\n n,\n u,\n r[n]\n ) : n && (n !== \"type\" && ve(t, n) ? t[n] = u : Qe(\n Fe(n),\n t,\n u\n ))), delete r[n]);\n }), w(r).forEach(\n (n) => t.removeAttribute(n)\n );\n}, Qe = (e, t, s) => {\n k.value && e !== \"xmlns\" ? t.setAttributeNS(null, e, s) : t.setAttribute(e, s);\n}, L = (e, t) => {\n let s;\n const { type: c, tag: r, text: n, props: u, children: l = [] } = e, h = v(c);\n return r === \"svg\" && (k.value = String(u == null ? void 0 : u.xmlns)), t ? s = e.el : (h ? s = z() : c === \"element\" && r ? r === \"portal\" && (u != null && u.portal) ? s = u.portal : s = k.value ? document.createElementNS(k.value, r) : V(r) : c === \"text\" && E(n) ? s = document.createTextNode(String(n)) : s = V(\"e\"), e.el = s), je(l, s, t), le(u, s, null, t), Ne(e), r === \"svg\" && (k.value = \"\"), s;\n}, je = (e, t, s) => {\n const c = e.reduce(\n (r, n) => {\n if (n.type) {\n const u = L(n, s);\n n.tag !== \"portal\" && !s && r.appendChild(u);\n }\n return r;\n },\n z()\n );\n !s && t && c.hasChildNodes() && t.appendChild(c);\n}, K = (e, t, s, c) => {\n const r = D(t);\n c !== s && (c && e.removeEventListener(r, c), s && e.addEventListener(r, s));\n}, Be = (e, t, s) => {\n const c = { ...t }, r = s == null ? void 0 : s.style;\n r && (P(e).forEach(([n, u]) => {\n r[n] = u, delete c[n];\n }), P(c).forEach(\n ([n]) => r[n] = \"\"\n ));\n}, A = (e) => {\n const t = v(e.type);\n return e.isRoot && t ? e.wrapElement : t ? A(y(e)) : e.el;\n}, M = (e, t) => qe(\n e,\n ke[Re(e)](e, t),\n t\n), qe = (e, t, s) => {\n const c = Xe(e, t, s), r = [\n c,\n t,\n s\n ], n = Ie(...r), u = n === \"N\";\n return u || (c.children = Ye(...r)), c.needRerender = n, _e(c, s, n), !u && s && (s.isLegacy = !0, delete s.children), c;\n}, _e = (e, t, s) => {\n s !== \"A\" && t && (e.el = t.el), s && [\"D\", \"R\", \"SR\"].includes(s) && (t && (U(t), F(t)), e.oldChildren = t == null ? void 0 : t.children), e.oldProps = t == null ? void 0 : t.props;\n}, Ie = (e, t, s) => {\n const c = s && s.type, r = m(e), n = e.isRoot, u = s && y(s), l = !n && (u == null ? void 0 : u.type), h = o(e), p = l === \"loop\" && E(h), i = e.type === \"text\" && t && e.text === (s == null ? void 0 : s.text), x = e === s;\n let d;\n return r ? d = \"D\" : i || x ? d = \"N\" : c ? t ? d = p ? \"SU\" : \"U\" : d = p ? \"SR\" : \"R\" : d = \"A\", e.type === \"loop\" && d === \"U\" && s && ze(e, s) && (d = \"CNSU\"), d;\n}, ze = (e, t) => {\n const s = [...(t == null ? void 0 : t.children) || []], c = [...(e == null ? void 0 : e.children) || []].filter(\n (u) => s.find((l) => o(u) === o(l))\n ), r = s.filter(\n (u) => c.find((l) => o(u) === o(l))\n );\n let n = r.length === c.length;\n return n && (n = r.every(\n (u, l) => o(u) === o(c[l])\n )), n;\n}, $e = (e, t) => {\n e && t !== e && (w(e).forEach((s) => delete e[s]), P(t || {}).forEach(([s, c]) => e[s] = c));\n}, Ge = (e, t) => {\n e && t !== e && (e.splice(0, e.length), t && t.forEach((s) => e.push(s)));\n}, Je = (e, t) => {\n const { compProps: s, compChild: c } = e, { props: r, children: n } = t;\n return s && $e(s, r), c && Ge(c, n), e.reRender && e.reRender();\n}, Xe = (e, t, s) => T(e) ? t && s ? Je(s, e) : e.resolve() : e, Ye = (e, t, s) => t && s ? He(e, s) : Ze(e), Ze = (e) => (e.children || []).map(\n (t) => b(M(t), { getParent: () => e })\n), He = (e, t) => e.type === \"loop\" && E(o((e.children || [])[0])) ? Ve(e, t) : (e.children || []).map(\n (s, c) => b(M(s, (t.children || [])[c]), {\n getParent: () => e\n })\n), Ve = (e, t) => {\n const [s, c] = Ke(\n e,\n t\n );\n return c.forEach((r) => {\n U(r), F(r), $(r);\n }), s;\n}, Ke = (e, t) => {\n const s = [...e.children || []], c = [...t.children || []];\n return [s.map((n) => {\n const u = ge(n, c), l = M(n, u);\n return u && c.splice(c.indexOf(u), 1), l.getParent = () => e, l;\n }), c];\n}, ge = (e, t) => t.find(\n (s) => o(s) === o(e)\n), q = /* @__PURE__ */ new Map();\nlet _ = !1;\nconst me = (e, t) => {\n f.get(e) && (f.get(e).up = () => {\n q.set(e, t), _ || (_ = !0, queueMicrotask(We));\n });\n}, we = (e) => () => {\n var c;\n const t = (c = f.get(e)) == null ? void 0 : c.up;\n let s = !1;\n return t && (t(), s = !0), s;\n}, We = () => {\n q.forEach((e) => {\n e();\n }), q.clear(), _ = !1;\n}, dt = (e, t = () => []) => {\n f.get(a()).upR.push(() => H(e, t)), H(e, t);\n}, De = () => {\n var t;\n const e = (t = f.get(a())) == null ? void 0 : t.upR;\n e != null && e.length && e.forEach((s) => s());\n}, J = (e, ...t) => ({\n type: \"fragment\",\n [C]: !0,\n children: t\n}), et = (e, t, ...s) => {\n const c = { value: void 0 }, r = t || {}, n = de(c, s), u = rt(e, r, n);\n return T(u) || (c.value = u), u;\n}, pt = (e, t) => et(\"portal\", { portal: t }, e), ht = (e) => (t, s) => e, tt = (e, t, s, c) => {\n var i;\n if (c.isLegacy)\n return;\n O.value = !0;\n const r = fe(e, t, s), n = M(r, c), { isRoot: u, getParent: l, wrapElement: h, afterElement: p } = c;\n if (n.getParent = l, !u && l) {\n const x = ((i = l()) == null ? void 0 : i.children) || [], d = x.indexOf(c);\n x.splice(d, 1, n);\n } else\n n.isRoot = !0, n.wrapElement = h, n.afterElement = p;\n O.value = !1, ee(n);\n}, fe = (e, t, s) => ({ tagName: e.name, ctor: e, props: t, children: s, resolve: (u = t) => {\n Se(u);\n const l = e(t, s), p = (typeof l == \"function\" ? l : () => () => l)(we(u), t, s);\n return st(\n p,\n u,\n e,\n t,\n s\n );\n} }), st = (e, t, s, c, r) => {\n let n = e, u = e(c);\n u.reRender && (n = (h) => {\n const p = e(h), i = J({}, p);\n return p.getParent = () => i, i;\n }, u = n(c));\n const l = ct(\n n,\n t,\n s,\n c,\n r\n );\n return oe(u, t, s, c, r, l), u;\n}, ct = (e, t, s, c, r) => {\n const n = () => nt(e, t, s, c, r, n);\n return n;\n}, nt = (e, t, s, c, r, n) => {\n Pe(t), De();\n const u = e(c);\n return oe(u, t, s, c, r, n), u;\n}, oe = (e, t, s, c, r, n) => {\n b(e, {\n compProps: c,\n compChild: r,\n ctor: s,\n tagName: s.name,\n compKey: t,\n reRender: n\n }), me(\n t,\n () => tt(s, c, r, e)\n ), Z(t, \"vd\") && (Z(t, \"vd\").value = e);\n}, rt = (e, t, s) => {\n if (g(e))\n return J(t, ...s);\n if (T(e)) {\n const c = fe(e, t, s);\n return O.value ? c : c.resolve();\n }\n return {\n type: \"element\",\n [C]: !0,\n tag: e,\n props: t,\n children: s\n };\n}, de = (e, t) => t.map(\n (s) => b(ut(s), { getParent: () => e.value })\n), ut = (e) => {\n if (e == null || e === !1)\n return { type: null, [C]: !0 };\n if (Array.isArray(e)) {\n const t = { value: void 0 }, s = de(t, e), c = {\n type: \"loop\",\n [C]: !0,\n children: s\n };\n return t.value = c, c;\n } else if (typeof e == \"string\" || typeof e == \"number\")\n return { type: \"text\", [C]: !0, text: e };\n return e;\n}, it = (e) => ({ value: e }), yt = () => Promise.resolve();\nexport {\n J as Fragment,\n we as componentUpdate,\n et as h,\n lt as isPropType,\n ht as mount,\n ft as mountCallback,\n yt as nextTick,\n pt as portal,\n it as ref,\n ot as render,\n dt as updateCallback\n};\n//# sourceMappingURL=lithent.mjs.map\n","import { h as o } from \"lithent\";\nimport { Fragment as h } from \"lithent\";\nfunction f(s, t, e, a, c, l) {\n const { children: r, ...n } = t;\n if (r != null) {\n const i = Array.isArray(r) ? r : [r];\n return o(s, { ...n, key: e }, ...i);\n }\n return o(s, { ...n, key: e });\n}\nexport {\n h as Fragment,\n f as jsx,\n f as jsxDEV,\n f as jsxs\n};\n//# sourceMappingURL=jsxRuntime.mjs.map\n","import { mountCallback as y, updateCallback as S, nextTick as T, render as w } from \"lithent\";\nconst L = (t, e) => {\n let n = t;\n return {\n get value() {\n return n;\n },\n get v() {\n return n;\n },\n set value(c) {\n n = c, e();\n },\n set v(c) {\n n = c, e();\n }\n };\n}, U = (t) => {\n let e = t;\n return {\n get value() {\n return e();\n },\n get v() {\n return e();\n },\n set value(n) {\n throw new Error(\"You can't change 'computed'\");\n },\n set v(n) {\n throw new Error(\"You can't change 'computed'\");\n }\n };\n}, b = (t, e = () => {\n}, n = () => []) => {\n y(() => (t(), e)), S(() => (e && e(), t), n);\n}, x = { cache: !0 };\nfunction k(t) {\n const e = { value: !1 }, c = !Array.isArray(t) && typeof t == \"object\" && t !== null ? t : { value: t }, s = /* @__PURE__ */ new Set(), l = [], u = /* @__PURE__ */ new WeakMap();\n return (a, o, r) => {\n const { cache: d } = Object.assign({}, x, r || {});\n if (d && a && u.has(a))\n return u.get(a);\n const h = {}, v = /* @__PURE__ */ new Set();\n let f = { value: null }, i = () => {\n };\n return l.push(h), a && o && (i = () => a(f.value), f.value = g(\n c,\n e,\n s,\n v,\n l,\n i,\n h\n ), e.value = !0, o(f.value), e.value = !1), f.value || (f.value = g(\n c,\n e,\n s,\n v,\n l\n ), a && (i = () => a(f.value), s.add(i))), a && (j(\n i,\n s,\n h,\n v\n ), u.set(a, f.value)), f.value;\n };\n}\nfunction g(t, e, n, c, s, l, u) {\n return new Proxy(t, {\n get(o, r) {\n return l && u && e.value && (u[r] ?? (u[r] = /* @__PURE__ */ new Set()), u[r].has(l) || (u[r].add(l), c.add(r))), o[r];\n },\n set(o, r, d) {\n return o[r] === d || (o[r] = d, C(n, s, r)), !0;\n }\n });\n}\nfunction C(t, e = [], n) {\n const c = /* @__PURE__ */ new Set();\n m(t).forEach(\n (s) => c.add(s)\n ), (e || []).forEach((s) => {\n const l = s[n] || /* @__PURE__ */ new Set();\n m(l).forEach(\n (u) => c.add(u)\n ), E(c, l);\n }), E(c, t);\n}\nfunction E(t, e) {\n t.forEach((n) => {\n e.delete(n);\n });\n}\nfunction m(t) {\n const e = [];\n return t.forEach((n) => {\n n() === !1 && e.push(n);\n }), e;\n}\nfunction j(t, e, n, c) {\n const s = t();\n s instanceof AbortSignal && s.addEventListener(\"abort\", () => {\n const l = n || {};\n e.delete(t), Object.entries(l).forEach(([u, a]) => {\n a.delete(t), c.delete(u);\n });\n });\n}\nconst D = (t, e) => {\n let n = [], c = null;\n return (s) => {\n const l = t(), u = n.every((o, r) => o === l[r]);\n if (n = l, u && c)\n return c;\n const a = e(s);\n return c = a, a;\n };\n}, P = (t, e, n) => {\n let c = () => {\n };\n return T().then(() => {\n c = w(t(), e, n);\n }), () => c();\n};\nexport {\n D as cacheUpdate,\n U as computed,\n b as effect,\n P as nextTickRender,\n L as state,\n k as store\n};\n//# sourceMappingURL=lithentHelper.mjs.map\n","// example.jsx\nimport {\n Fragment,\n render,\n ref,\n mountCallback,\n updateCallback,\n mount,\n} from 'lithent';\nimport { state, computed, effect, store } from 'lithent/helper';\n\n// This is the \"mount\" function.\n// This function is only executed on mount, and on update, only updates `props` and then executes the internal return function.\n// childen is passed as the second argument.\nconst ChildComponent = mount<{ parentValue: number }>(\n (renew, props, children) => {\n // The value is used as a \"getter\" to make it easy to get and write to in the higher-order functions it returns\n const count = state<number>(1, renew);\n const text = state<string>(\n '\"destructuring\" the \"props\" value directly from the mount function will cause referencing issues, so if you want to use it, you need to \"destructuring\" it from the internal function (updater).',\n renew\n );\n const getParentValue = () => props.parentValue;\n const parentValueFromMount = props.parentValue;\n const summ = computed<number>(\n () => count.v + notRefValue + props.parentValue\n );\n\n const localStore = store<{ text: string; count: number }>({\n text: 's',\n count: 0,\n })(renew);\n /*\n // To share a store, make it externally and use `asign`.\n const asignStore = store<{ text: string; count: number }>({ text: 's', count: 0 });\n\n const sharedStore = asignStore(nenew);\n */\n\n // Even if you don't use a ref, the private value is always maintained as a regular variable.\n let notRefValue = props.parentValue;\n\n // Ref is only used to reference the DOM.\n const domRef = ref(null);\n\n const increase = () => {\n count.v = count.v + 1;\n notRefValue += 1;\n };\n\n const handleInputChane = (event: InputEvent) => {\n text.v = (event.target as HTMLInputElement).value;\n };\n\n const localStoreUpdate = () => {\n localStore.count += 1;\n localStore.text += '1';\n };\n\n const handleMounted = () => {\n console.log('MOUNTED', domRef);\n\n return () => console.log('UNMOUNT');\n };\n const handleUpdated = () => {\n console.log('UPDATE - parentValue');\n\n return () => console.log('UPDATED');\n };\n\n mountCallback(handleMounted);\n updateCallback(handleUpdated, () => [props.parentValue]); // Only Defs Updated (using a closure to update a value)\n\n // Behaves like `react`'s `useEffect`\n effect(\n () => console.log('INJECT'),\n () => console.log('CLEAN_UP'),\n () => [count.v]\n );\n\n // Wrap in a function and return (using a closure to hold the value)\n // This is the \"update\" function.\n return ({ parentValue }) => (\n <Fragment>\n {/* Note that the event is onInput (we use the native event name to avoid confusion). */}\n <div>\n <textarea\n value={text.v}\n onInput={handleInputChane}\n style={{ width: '300px', height: '100px' }}\n />\n </div>\n <div>{text.v}</div>\n <div>\n <div style={{ color: 'blue' }}>\n parentValueFromRef: {props.parentValue} (working)\n </div>\n <div style={{ color: 'blue' }}>\n parentValueFromFunction: {getParentValue()} (working)\n </div>\n <div style={{ color: 'blue' }}>\n parentValueFromUpdaterDestructuring: {parentValue} (working)\n </div>\n <div style={{ color: 'red' }}>\n parentValueFromMounterDestructuring: {parentValueFromMount} (not\n working)\n </div>\n </div>\n <div>\n <div ref={domRef}>count: {count.v}</div>\n <div>sum: {count.v + notRefValue + props.parentValue}</div>\n <div>sum(computed): {summ.v}</div>\n {/* It doesn't pull it out from under the reference, it uses the value directly, so you can just use it. */}\n <div>notRefValue: {notRefValue}</div>\n <div>localStore(text): {localStore.text}</div>\n <div>localStore(count): {localStore.count}</div>\n </div>\n <button onClick={increase}>Increase</button>\n <button onClick={localStoreUpdate}>localStoreUpdate</button>\n {children}\n </Fragment>\n );\n }\n);\n\nconst Root = mount(renew => {\n const parentNumber = state<number>(7, renew);\n\n const increaseParent = () => {\n parentNumber.v = parentNumber.v + 1;\n };\n\n const decreaseParent = () => {\n parentNumber.v = parentNumber.v - 1;\n };\n\n return () => (\n <Fragment>\n <ChildComponent parentValue={parentNumber.v}>\n <button onClick={increaseParent}>Increase - Parent</button>\n </ChildComponent>\n <button onClick={decreaseParent}>Decrease - Parent</button>\n </Fragment>\n );\n});\nconst root = <Root />;\n\nrender(root, document.getElementById('root'));\n"],"names":["R","pe","he","s","c","ie","X","ye","E","o","v","T","g","J","m","Y","Ce","ve","Re","ke","C","k","S","O","f","Ee","a","Z","Pe","Se","y","P","w","b","ae","U","xe","W","Q","I","Te","Ne","ft","r","n","u","H","Ue","be","Fe","D","z","V","ot","L","F","Le","ee","G","$","Me","B","ce","Ae","ue","te","A","se","ne","j","re","l","t","Oe","le","Be","K","Qe","h","je","M","qe","Xe","Ie","Ye","_e","p","i","x","ze","$e","Ge","Je","He","Ze","Ve","Ke","ge","q","_","me","We","we","dt","De","e","et","de","rt","ht","tt","fe","st","ct","oe","nt","ut","it","d","ChildComponent","mount","renew","props","children","count","state","text","getParentValue","parentValueFromMount","summ","computed","notRefValue","localStore","store","domRef","ref","increase","handleInputChane","event","localStoreUpdate","handleMounted","handleUpdated","mountCallback","updateCallback","effect","parentValue","Fragment","jsx","jsxs","Root","parentNumber","increaseParent","decreaseParent","root","render"],"mappings":"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"}
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
6
  <title>lithent</title>
7
- <script type="module" crossorigin src="/assets/index-D3s6A-eb.js"></script>
7
+ <script type="module" crossorigin src="/assets/index-CoLsHZbl.js"></script>
8
8
  </head>
9
9
  <body>
10
10
  <section id="root"></section>
@@ -24,6 +24,7 @@
24
24
  "lithent"
25
25
  ],
26
26
  "dependencies": {
27
+ "@mdx-js/rollup": "^3.1.0",
27
28
  "lithent": "workspace:*",
28
29
  "lithent-helper": "workspace:*",
29
30
  "lithent-tag": "workspace:*"
@@ -1,5 +1,4 @@
1
1
  import {
2
- h,
3
2
  Fragment,
4
3
  render,
5
4
  mount,
@@ -1,6 +1,5 @@
1
1
  // example.jsx
2
2
  import {
3
- h,
4
3
  Fragment,
5
4
  render,
6
5
  ref,
@@ -0,0 +1,30 @@
1
+ import { render, mount, Fragment } from 'lithent';
2
+ import { state } from 'lithent/helper';
3
+ import TestMdx from '@/testmdx.mdx';
4
+
5
+ const Aa = mount(() => {
6
+ return () => (
7
+ <Fragment>
8
+ <h2>mark down title</h2>
9
+ <div>22</div>
10
+ </Fragment>
11
+ );
12
+ });
13
+
14
+ const Component = mount((r, _props) => {
15
+ const cType = state('markdown', r);
16
+
17
+ const change = () => {
18
+ cType.value = cType.value === 'markdown' ? 'element' : 'markdown';
19
+ };
20
+
21
+ // Updater
22
+ return () => (
23
+ <Fragment>
24
+ <button onClick={change}>change</button>
25
+ {cType.value === 'markdown' ? <TestMdx /> : <Aa />}
26
+ </Fragment>
27
+ );
28
+ });
29
+
30
+ render(<Component />, document.getElementById('root'));
@@ -1,5 +1,5 @@
1
1
  // example.jsx
2
- import { h, render, mount } from 'lithent';
2
+ import { render, mount } from 'lithent';
3
3
  import { store } from 'lithent/helper';
4
4
 
5
5
  const assignShardStore = store<{ text: string; count: number }>({
@@ -0,0 +1,10 @@
1
+ ## mark down title
2
+
3
+ 1. one
4
+ 2. two
5
+
6
+ # aavv
7
+
8
+ ```js
9
+ var aa = 'asdgas';
10
+ ```
@@ -0,0 +1,4 @@
1
+ declare module '*.mdx' {
2
+ const MDXContent: (props: Record<string, unknown>) => any;
3
+ export default MDXContent;
4
+ }
@@ -1,17 +1,17 @@
1
1
  import { h as o } from "lithent";
2
- import { Fragment as m } from "lithent";
3
- function d(s, t, e, a, c, f) {
2
+ import { Fragment as h } from "lithent";
3
+ function f(s, t, e, a, c, l) {
4
4
  const { children: r, ...n } = t;
5
- if (r) {
5
+ if (r != null) {
6
6
  const i = Array.isArray(r) ? r : [r];
7
7
  return o(s, { ...n, key: e }, ...i);
8
8
  }
9
9
  return o(s, { ...n, key: e });
10
10
  }
11
11
  export {
12
- m as Fragment,
13
- d as jsx,
14
- d as jsxDEV,
15
- d as jsxs
12
+ h as Fragment,
13
+ f as jsx,
14
+ f as jsxDEV,
15
+ f as jsxs
16
16
  };
17
17
  //# sourceMappingURL=jsxRuntime.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsxRuntime.mjs","sources":["../src/index.ts"],"sourcesContent":["import { h, Fragment } from 'lithent';\nimport type {\n Props,\n TagFunction,\n FragmentFunction,\n MiddleStateWDomChildren,\n} from 'lithent';\n\nfunction createWNode(\n type: TagFunction | FragmentFunction | string,\n orgProps: Props,\n key: unknown,\n _isStaticChildren: boolean,\n _source: unknown,\n _self: unknown\n) {\n const { children, ...props } = orgProps;\n if (children) {\n const newChildren: MiddleStateWDomChildren = !Array.isArray(children)\n ? [children]\n : children;\n\n return h(type, { ...props, key } as Props, ...newChildren);\n }\n\n return h(type, { ...props, key } as Props);\n}\n\nexport {\n createWNode as jsx,\n createWNode as jsxs,\n createWNode as jsxDEV,\n Fragment,\n};\n"],"names":["createWNode","type","orgProps","key","_isStaticChildren","_source","_self","children","props","newChildren","h"],"mappings":";;AAQA,SAASA,EACPC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA;AACA,QAAM,EAAE,UAAAC,GAAU,GAAGC,EAAA,IAAUN;AAC/B,MAAIK,GAAU;AACN,UAAAE,IAAwC,MAAM,QAAQF,CAAQ,IAEhEA,IADA,CAACA,CAAQ;AAGN,WAAAG,EAAET,GAAM,EAAE,GAAGO,GAAO,KAAAL,EAAI,GAAY,GAAGM,CAAW;AAAA,EAC3D;AAEA,SAAOC,EAAET,GAAM,EAAE,GAAGO,GAAO,KAAAL,EAAc,CAAA;AAC3C;"}
1
+ {"version":3,"file":"jsxRuntime.mjs","sources":["../src/index.ts"],"sourcesContent":["import { h, Fragment } from 'lithent';\nimport type {\n Props,\n TagFunction,\n FragmentFunction,\n MiddleStateWDomChildren,\n} from 'lithent';\n\nfunction createWNode(\n type: TagFunction | FragmentFunction | string,\n orgProps: Props,\n key: unknown,\n _isStaticChildren: boolean,\n _source: unknown,\n _self: unknown\n) {\n const { children, ...props } = orgProps;\n if (children !== null && children !== undefined) {\n const newChildren: MiddleStateWDomChildren = !Array.isArray(children)\n ? [children]\n : children;\n\n return h(type, { ...props, key } as Props, ...newChildren);\n }\n\n return h(type, { ...props, key } as Props);\n}\n\nexport {\n createWNode as jsx,\n createWNode as jsxs,\n createWNode as jsxDEV,\n Fragment,\n};\n"],"names":["createWNode","type","orgProps","key","_isStaticChildren","_source","_self","children","props","newChildren","h"],"mappings":";;AAQA,SAASA,EACPC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA;AACA,QAAM,EAAE,UAAAC,GAAU,GAAGC,EAAA,IAAUN;AAC3B,MAAAK,KAAa,MAAgC;AACzC,UAAAE,IAAwC,MAAM,QAAQF,CAAQ,IAEhEA,IADA,CAACA,CAAQ;AAGN,WAAAG,EAAET,GAAM,EAAE,GAAGO,GAAO,KAAAL,EAAI,GAAY,GAAGM,CAAW;AAAA,EAC3D;AAEA,SAAOC,EAAET,GAAM,EAAE,GAAGO,GAAO,KAAAL,EAAc,CAAA;AAC3C;"}
@@ -1,2 +1,2 @@
1
- (function(e,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("lithent")):typeof define=="function"&&define.amd?define(["exports","lithent"],n):(e=typeof globalThis<"u"?globalThis:e||self,n(e.jsxRuntime={},e.lithent))})(this,function(e,n){"use strict";function i(r,d,s,o,c,h){const{children:t,...u}=d;if(t){const f=Array.isArray(t)?t:[t];return n.h(r,{...u,key:s},...f)}return n.h(r,{...u,key:s})}Object.defineProperty(e,"Fragment",{enumerable:!0,get:()=>n.Fragment}),e.jsx=i,e.jsxDEV=i,e.jsxs=i,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
1
+ (function(e,n){typeof exports=="object"&&typeof module<"u"?n(exports,require("lithent")):typeof define=="function"&&define.amd?define(["exports","lithent"],n):(e=typeof globalThis<"u"?globalThis:e||self,n(e.jsxRuntime={},e.lithent))})(this,function(e,n){"use strict";function i(r,o,u,f,c,l){const{children:t,...d}=o;if(t!=null){const s=Array.isArray(t)?t:[t];return n.h(r,{...d,key:u},...s)}return n.h(r,{...d,key:u})}Object.defineProperty(e,"Fragment",{enumerable:!0,get:()=>n.Fragment}),e.jsx=i,e.jsxDEV=i,e.jsxs=i,Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})});
2
2
  //# sourceMappingURL=jsxRuntime.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"jsxRuntime.umd.js","sources":["../src/index.ts"],"sourcesContent":["import { h, Fragment } from 'lithent';\nimport type {\n Props,\n TagFunction,\n FragmentFunction,\n MiddleStateWDomChildren,\n} from 'lithent';\n\nfunction createWNode(\n type: TagFunction | FragmentFunction | string,\n orgProps: Props,\n key: unknown,\n _isStaticChildren: boolean,\n _source: unknown,\n _self: unknown\n) {\n const { children, ...props } = orgProps;\n if (children) {\n const newChildren: MiddleStateWDomChildren = !Array.isArray(children)\n ? [children]\n : children;\n\n return h(type, { ...props, key } as Props, ...newChildren);\n }\n\n return h(type, { ...props, key } as Props);\n}\n\nexport {\n createWNode as jsx,\n createWNode as jsxs,\n createWNode as jsxDEV,\n Fragment,\n};\n"],"names":["createWNode","type","orgProps","key","_isStaticChildren","_source","_self","children","props","newChildren","h"],"mappings":"2QAQA,SAASA,EACPC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA,CACA,KAAM,CAAE,SAAAC,EAAU,GAAGC,CAAA,EAAUN,EAC/B,GAAIK,EAAU,CACN,MAAAE,EAAwC,MAAM,QAAQF,CAAQ,EAEhEA,EADA,CAACA,CAAQ,EAGN,OAAAG,EAAAA,EAAET,EAAM,CAAE,GAAGO,EAAO,IAAAL,CAAI,EAAY,GAAGM,CAAW,CAC3D,CAEA,OAAOC,EAAAA,EAAET,EAAM,CAAE,GAAGO,EAAO,IAAAL,CAAc,CAAA,CAC3C"}
1
+ {"version":3,"file":"jsxRuntime.umd.js","sources":["../src/index.ts"],"sourcesContent":["import { h, Fragment } from 'lithent';\nimport type {\n Props,\n TagFunction,\n FragmentFunction,\n MiddleStateWDomChildren,\n} from 'lithent';\n\nfunction createWNode(\n type: TagFunction | FragmentFunction | string,\n orgProps: Props,\n key: unknown,\n _isStaticChildren: boolean,\n _source: unknown,\n _self: unknown\n) {\n const { children, ...props } = orgProps;\n if (children !== null && children !== undefined) {\n const newChildren: MiddleStateWDomChildren = !Array.isArray(children)\n ? [children]\n : children;\n\n return h(type, { ...props, key } as Props, ...newChildren);\n }\n\n return h(type, { ...props, key } as Props);\n}\n\nexport {\n createWNode as jsx,\n createWNode as jsxs,\n createWNode as jsxDEV,\n Fragment,\n};\n"],"names":["createWNode","type","orgProps","key","_isStaticChildren","_source","_self","children","props","newChildren","h"],"mappings":"2QAQA,SAASA,EACPC,EACAC,EACAC,EACAC,EACAC,EACAC,EACA,CACA,KAAM,CAAE,SAAAC,EAAU,GAAGC,CAAA,EAAUN,EAC3B,GAAAK,GAAa,KAAgC,CACzC,MAAAE,EAAwC,MAAM,QAAQF,CAAQ,EAEhEA,EADA,CAACA,CAAQ,EAGN,OAAAG,EAAAA,EAAET,EAAM,CAAE,GAAGO,EAAO,IAAAL,CAAI,EAAY,GAAGM,CAAW,CAC3D,CAEA,OAAOC,EAAAA,EAAET,EAAM,CAAE,GAAGO,EAAO,IAAAL,CAAc,CAAA,CAC3C"}
@@ -15,7 +15,7 @@ function createWNode(
15
15
  _self: unknown
16
16
  ) {
17
17
  const { children, ...props } = orgProps;
18
- if (children) {
18
+ if (children !== null && children !== undefined) {
19
19
  const newChildren: MiddleStateWDomChildren = !Array.isArray(children)
20
20
  ? [children]
21
21
  : children;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "type": "module",
3
3
  "name": "lithent",
4
- "version": "1.18.0",
4
+ "version": "1.18.2",
5
5
  "description": "An extensible virtual DOM library for lightweight use in a variety of environments.",
6
6
  "packageManager": "pnpm@9.12.3",
7
7
  "main": "./dist/lithent.umd.js",
@@ -1,13 +1,13 @@
1
1
  import { mount as h, h as l, Fragment as $, render as x } from "lithent";
2
- const m = h((n) => {
2
+ const S = h((n) => {
3
3
  let e = 1, t = "s";
4
4
  const r = () => {
5
5
  e += 1, t += "s", n();
6
6
  };
7
7
  return () => /* @__PURE__ */ l("div", { style: { border: `${e}px solid red` } }, "asve", /* @__PURE__ */ l("br", null), /* @__PURE__ */ l("section", { innerHTML: "<article>ss</article>" }), /* @__PURE__ */ l("button", { disabled: !1, onClick: r }, e, " -== a1 - ", e, t), e, /* @__PURE__ */ l("span", { id: "aa11", "data-max-string": "va" }, " ", "123124"));
8
8
  });
9
- h((n) => () => /* @__PURE__ */ l($, null, " ", "111", "222", " ", "45", /* @__PURE__ */ l(m, null), /* @__PURE__ */ l("div", null, "aaa")));
10
- const S = [
9
+ h((n) => () => /* @__PURE__ */ l($, null, " ", "111", "222", " ", "45", /* @__PURE__ */ l(S, null), /* @__PURE__ */ l("div", null, "aaa")));
10
+ const k = [
11
11
  "area",
12
12
  "base",
13
13
  "br",
@@ -24,22 +24,22 @@ const S = [
24
24
  "track",
25
25
  "wbr"
26
26
  ];
27
- function k(n) {
28
- return S.includes(n);
29
- }
30
27
  function C(n) {
31
- return n != null;
28
+ return k.includes(n);
32
29
  }
33
30
  function E(n) {
31
+ return n != null;
32
+ }
33
+ function L(n) {
34
34
  return n && ["fragment", "loop"].includes(n);
35
35
  }
36
- function L(n, e) {
36
+ function j(n, e) {
37
37
  return n === "style" && typeof e == "object";
38
38
  }
39
- function j(n, e) {
39
+ function N(n, e) {
40
40
  return n === "ref" && typeof e == "object";
41
41
  }
42
- function N(n) {
42
+ function v(n) {
43
43
  return Object.entries(n).map(([e, t]) => `${e.replace(/([A-Z])/g, "-$1").toLowerCase()}: ${t};`).join(" ");
44
44
  }
45
45
  function a(n) {
@@ -48,12 +48,12 @@ function a(n) {
48
48
  function y(n) {
49
49
  let e = "";
50
50
  const { type: t, tag: r, text: o, props: i, children: s = [] } = n;
51
- if (E(t))
51
+ if (L(t))
52
52
  e = f(s, e);
53
53
  else if (t === "element" && r) {
54
54
  const c = i == null ? void 0 : i.innerHTML;
55
- c ? e = `<${r}${p(i)}>${c}</${r}>` : k(r) && !s.length ? e = `<${r}${p(i)} />` : (e = `<${r}${p(i)}>`, e = f(s, e), e = `${e}</${r}>`);
56
- } else if (t === "text" && C(o))
55
+ c ? e = `<${r}${p(i)}>${c}</${r}>` : C(r) && !s.length ? e = `<${r}${p(i)} />` : (e = `<${r}${p(i)}>`, e = f(s, e), e = `${e}</${r}>`);
56
+ } else if (t === "text" && E(o))
57
57
  e = String(o), e = f(s, e);
58
58
  else
59
59
  throw new Error(
@@ -74,19 +74,19 @@ function p(n) {
74
74
  let e = [];
75
75
  return Object.entries(n || {}).forEach(
76
76
  ([t, r]) => {
77
- const o = t === "key", i = t === "portal" && typeof r == "object", s = t === "innerHTML" && typeof r == "string", u = j(t, r), c = t.match(/^on/);
77
+ const o = t === "key", i = t === "portal" && typeof r == "object", s = t === "innerHTML" && typeof r == "string", u = N(t, r), c = t.match(/^on/);
78
78
  if (!(o || i || s || u || c))
79
- if (L(t, r)) {
80
- const T = N(r);
79
+ if (j(t, r)) {
80
+ const T = v(r);
81
81
  e.push(`style="${T}"`);
82
82
  } else t && r === !0 ? e.push(`${t}="${t}"`) : t && typeof r != "boolean" && e.push(`${t}="${String(r)}"`);
83
83
  }
84
84
  ), e.length ? " " + e.join(" ") : "";
85
85
  }
86
- function v(n, e) {
87
- return F(n, e), x(n, e, null, !0);
88
- }
89
86
  function F(n, e) {
87
+ return A(n, e), x(n, e, null, !0);
88
+ }
89
+ function A(n, e) {
90
90
  const t = n.type && ["fragment", "loop"].includes(n.type);
91
91
  t && (n.el = new DocumentFragment());
92
92
  const r = d(
@@ -96,13 +96,14 @@ function F(n, e) {
96
96
  }
97
97
  function g(n, e) {
98
98
  let t = 0;
99
- e.filter((r) => A(r)).forEach((r) => {
99
+ e.filter((r) => H(r)).forEach((r) => {
100
100
  let o = n[t];
101
101
  const i = r.nodeType;
102
102
  let s = !1;
103
- if ((o == null ? void 0 : o.type) === null && (t += 1, o = n[t]), r && o && o.type && ["text", "element"].includes(o.type)) {
103
+ if (((o == null ? void 0 : o.type) === null || (o == null ? void 0 : o.type) === "text" && (o == null ? void 0 : o.text) === `
104
+ `) && (t += 1, o = n[t]), r && o && o.type && ["text", "element"].includes(o.type)) {
104
105
  if (o.type === "text" && i === 3) {
105
- const { tFragment: u, nIndex: c } = H(
106
+ const { tFragment: u, nIndex: c } = m(
106
107
  n,
107
108
  t
108
109
  );
@@ -116,13 +117,13 @@ function g(n, e) {
116
117
  s || (t += 1);
117
118
  });
118
119
  }
119
- function A(n) {
120
+ function H(n) {
120
121
  return !(n.nodeType === 3 && !n.data.replace(/\s*/g, ""));
121
122
  }
122
123
  function d(n) {
123
124
  return n.reduce((e, t) => (t.type && ["fragment", "loop"].includes(t.type) ? (t.el = new DocumentFragment(), e.push(...d((t == null ? void 0 : t.children) || []))) : e.push(t), e), []);
124
125
  }
125
- function H(n, e) {
126
+ function m(n, e) {
126
127
  const t = b(n, e, []), r = new DocumentFragment();
127
128
  return t.forEach((o) => {
128
129
  const i = document.createTextNode(String(o.text));
@@ -135,16 +136,16 @@ function H(n, e) {
135
136
  function b(n, e, t) {
136
137
  return n[e] && n[e].type === "text" ? (t.push(n[e]), b(n, e + 1, [...t])) : t;
137
138
  }
138
- const P = a, M = v;
139
- function W(n) {
139
+ const W = a, M = F;
140
+ function O(n) {
140
141
  return typeof window < "u" ? M(l(n, {}), document.documentElement) : a(l(n, {}));
141
142
  }
142
143
  let _;
143
- const O = _;
144
+ const R = _;
144
145
  export {
145
146
  M as hydration,
146
- P as renderToString,
147
- W as renderWithHydration,
148
- O as run
147
+ W as renderToString,
148
+ O as renderWithHydration,
149
+ R as run
149
150
  };
150
151
  //# sourceMappingURL=lithentSsr.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"lithentSsr.mjs","sources":["../src/tests/tostring.tsx","../src/helper/index.ts","../src/renderToString.ts","../src/hydration.ts","../src/index.ts"],"sourcesContent":["import { h, mount, Fragment } from 'lithent';\n\nconst Children = mount(r => {\n let v = 1;\n let k = 's';\n\n const increase = () => {\n v += 1;\n k += 's';\n r();\n };\n\n return () => (\n <div style={{ border: `${v}px solid red` }}>\n asve\n <br />\n <section innerHTML=\"<article>ss</article>\" />\n <button disabled={false} onClick={increase}>\n {v} -== a1 - {v}\n {k}\n </button>\n {v}\n <span id=\"aa11\" data-max-string=\"va\">\n {' '}123124\n </span>\n </div>\n );\n});\n\nconst Root = mount(_r => {\n return () => (\n <Fragment>\n {' '}\n 111{/* <!-- aa --> */}222{' '}45\n <Children />\n <div>aaa</div>\n </Fragment>\n );\n});\n\nexport default Root;\n","const SELF_CLOSE_ALLLOW = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n];\n\nexport function isAllowSelfClose(tagname: string) {\n return SELF_CLOSE_ALLLOW.includes(tagname);\n}\n\nexport function checkExisty(value: unknown) {\n return value !== null && value !== undefined;\n}\n\nexport function checkVirtualType(type?: string | null) {\n return type && ['fragment', 'loop'].includes(type);\n}\n\nexport function checkStyleData(\n dataKey: string,\n dataValue: unknown\n): dataValue is Record<string, string> {\n return dataKey === 'style' && typeof dataValue === 'object';\n}\n\nexport function checkRefData(\n dataKey: string,\n dataValue: unknown\n): dataValue is {\n value: HTMLElement | Element | DocumentFragment | Text | undefined;\n} {\n return dataKey === 'ref' && typeof dataValue === 'object';\n}\n\nexport function styleObjectToString(styleObj: Record<string, string>) {\n return Object.entries(styleObj)\n .map(([key, value]) => {\n // camelCase를 kebab-case로 변환 (예: borderTop -> border-top)\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n return `${kebabKey}: ${value};`;\n })\n .join(' ');\n}\n","import type { WDom, Props } from 'lithent';\nimport {\n isAllowSelfClose,\n checkExisty,\n checkVirtualType,\n checkStyleData,\n checkRefData,\n styleObjectToString,\n} from '@/helper';\n\n/**\n * Main function of renderToString\"\n */\nexport function renderToString(wDom: WDom) {\n return wDomToString(wDom);\n}\n\n/**\n * Converts a chunk of virtual DOM objects into string tags.\n */\nfunction wDomToString(wDom: WDom) {\n let element = '';\n const { type, tag, text, props, children = [] } = wDom;\n const isVirtualType = checkVirtualType(type);\n\n if (isVirtualType) {\n element = wDomChildrenToDom(children, element);\n } else if (type === 'element' && tag) {\n const innerHTML = props?.innerHTML;\n\n if (innerHTML) {\n element = `<${tag}${makeProp(props)}>${innerHTML}</${tag}>`;\n } else if (isAllowSelfClose(tag) && !children.length) {\n element = `<${tag}${makeProp(props)} />`;\n } else {\n element = `<${tag}${makeProp(props)}>`;\n element = wDomChildrenToDom(children, element);\n element = `${element}</${tag}>`;\n }\n } else if (type === 'text' && checkExisty(text)) {\n element = String(text);\n element = wDomChildrenToDom(children, element);\n } else {\n throw new Error(\n 'An attempt was made to render an abnormal virtual DOM object.'\n );\n }\n\n return element;\n}\n\n/**\n * Converts all child nodes of a virtual DOM object into string tags.\n */\nfunction wDomChildrenToDom(children: WDom[], parentElement?: string) {\n const newString = children.reduce((acc: string, childItem: WDom) => {\n if (childItem.type) {\n const childElement = wDomToString(childItem);\n\n acc += childElement;\n }\n\n return acc;\n }, parentElement || '');\n\n return newString;\n}\n\n/**\n * Creates and attaches a prop string to the tag.\n */\nfunction makeProp(props?: Props) {\n let attrGroup: string[] = [];\n\n Object.entries(props || {}).forEach(\n ([dataKey, dataValue]: [string, unknown]) => {\n const isKey = dataKey === 'key';\n const isPortal = dataKey === 'portal' && typeof dataValue === 'object';\n const isHtml = dataKey === 'innerHTML' && typeof dataValue === 'string';\n const isRef = checkRefData(dataKey, dataValue);\n const isEvent = dataKey.match(/^on/);\n\n if (!(isKey || isPortal || isHtml || isRef || isEvent)) {\n if (checkStyleData(dataKey, dataValue)) {\n const cssString = styleObjectToString(dataValue);\n attrGroup.push(`style=\"${cssString}\"`);\n } else if (dataKey && dataValue === true) {\n attrGroup.push(`${dataKey}=\"${dataKey}\"`);\n } else if (dataKey && typeof dataValue !== 'boolean') {\n attrGroup.push(`${dataKey}=\"${String(dataValue)}\"`);\n }\n }\n }\n );\n\n return attrGroup.length ? ' ' + attrGroup.join(' ') : '';\n}\n","import { render } from 'lithent';\nimport type { WDom } from 'lithent';\n\n/**\n * hydration\n */\nexport function hydration(wDom: WDom, wrapElement: HTMLElement) {\n /**\n * Attach the el property to wDom.\n */\n addElement(wDom, wrapElement);\n\n /**\n * Attach events to wDom.\n */\n return render(wDom, wrapElement, null, true);\n}\n\n/**\n * Attach the el property to wDom.\n */\nfunction addElement(wDomOrig: WDom, wrapElement: HTMLElement) {\n const isVirtualType =\n wDomOrig.type && ['fragment', 'loop'].includes(wDomOrig.type);\n\n if (isVirtualType) {\n wDomOrig.el = new DocumentFragment();\n }\n const wDomList = flatFlagmentFromList(\n isVirtualType ? [...(wDomOrig.children || [])] : [wDomOrig]\n );\n const realDomList =\n wrapElement.tagName === 'HTML'\n ? [wrapElement]\n : Array.from(wrapElement.childNodes);\n\n if (wDomList) {\n addElementProcessChildren(wDomList, realDomList);\n }\n}\n\n/**\n * Attach the el property to wDom recursively.\n */\nfunction addElementProcessChildren(wDomList: WDom[], realDomList: ChildNode[]) {\n let index = 0;\n realDomList\n .filter((item: any) => filteredEmptyTextNode(item))\n .forEach(realDomItem => {\n let wDomItem = wDomList[index];\n const nodeType = realDomItem.nodeType;\n let pass = false;\n\n if (wDomItem?.type === null) {\n index += 1;\n wDomItem = wDomList[index];\n }\n\n if (\n realDomItem &&\n wDomItem &&\n wDomItem.type &&\n ['text', 'element'].includes(wDomItem.type)\n ) {\n if (wDomItem.type === 'text' && nodeType === 3) {\n const { tFragment, nIndex } = processConsecutiveTextNodes(\n wDomList,\n index\n );\n index = nIndex;\n realDomItem!.parentElement!.replaceChild(tFragment, realDomItem);\n } else if (wDomItem.type === 'element' && nodeType === 1) {\n if (\n ((realDomItem as HTMLElement).tagName || '').toLowerCase() !==\n wDomItem.tag\n ) {\n // throw new Error('Hydration Error - not matched tagname');\n pass = true;\n } else {\n wDomItem.el = realDomItem as HTMLElement;\n }\n }\n\n if (!pass) {\n addElementProcessChildren(\n flatFlagmentFromList(wDomItem.children || []),\n Array.from(realDomItem.childNodes)\n );\n }\n }\n\n if (!pass) {\n index += 1;\n }\n });\n}\n\n/**\n * Whitespace or text nodes are ignored.\n */\nfunction filteredEmptyTextNode(item: HTMLElement | Text) {\n if (item.nodeType === 3 && !(item as Text).data.replace(/\\s*/g, '')) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Flattens nested fragment types.\n */\nfunction flatFlagmentFromList(wDomlist: WDom[]) {\n return wDomlist.reduce((acc: WDom[], item: WDom) => {\n if (item.type && ['fragment', 'loop'].includes(item.type)) {\n item.el = new DocumentFragment();\n acc.push(...flatFlagmentFromList(item?.children || []));\n } else {\n acc.push(item);\n }\n return acc;\n }, []);\n}\n\n/**\n * Hydration is applied to consecutively rendered text node objects.\n */\nfunction processConsecutiveTextNodes(wDomList: WDom[], cIndex: number) {\n const textWDomList: WDom[] = collectAdjacentTextNode(wDomList, cIndex, []);\n const tFragment = new DocumentFragment();\n textWDomList.forEach(item => {\n const textNode = document.createTextNode(String(item.text));\n item.el = textNode;\n tFragment.appendChild(textNode);\n });\n\n return {\n tFragment,\n nIndex: cIndex + (textWDomList.length - 1),\n };\n}\n\n/**\n * Collect consecutive text nodes.\n */\nfunction collectAdjacentTextNode(\n wDomList: WDom[],\n cIndex: number,\n acc: WDom[]\n): WDom[] {\n if (wDomList[cIndex] && wDomList[cIndex].type === 'text') {\n acc.push(wDomList[cIndex]);\n\n return collectAdjacentTextNode(wDomList, cIndex + 1, [...acc]);\n }\n return acc;\n}\n","import { h } from 'lithent';\nimport type { TagFunction } from 'lithent';\nimport Test from '@/tests/tostring';\nimport { renderToString as _renderToString } from '@/renderToString';\nimport { hydration as _hydration } from '@/hydration';\n\nexport const renderToString = _renderToString;\nexport const hydration = _hydration;\n\nexport function renderWithHydration(tagFunction: TagFunction) {\n if (typeof window !== 'undefined') {\n return hydration(h(tagFunction, {}), document.documentElement);\n }\n\n return _renderToString(h(tagFunction, {}));\n}\n\nlet _run: ((wrap: HTMLElement) => void) | undefined;\n\nif (import.meta.env.MODE === 'development') {\n _run = (wrap: HTMLElement) => {\n hydration(h(Test as TagFunction, {}), wrap);\n };\n}\n\nexport const run = _run;\n"],"names":["Children","mount","r","v","k","increase","h","_r","Fragment","SELF_CLOSE_ALLLOW","isAllowSelfClose","tagname","checkExisty","value","checkVirtualType","type","checkStyleData","dataKey","dataValue","checkRefData","styleObjectToString","styleObj","key","renderToString","wDom","wDomToString","element","tag","text","props","children","wDomChildrenToDom","innerHTML","makeProp","parentElement","acc","childItem","childElement","attrGroup","isKey","isPortal","isHtml","isRef","isEvent","cssString","hydration","wrapElement","addElement","render","wDomOrig","isVirtualType","wDomList","flatFlagmentFromList","realDomList","addElementProcessChildren","index","item","filteredEmptyTextNode","realDomItem","wDomItem","nodeType","pass","tFragment","nIndex","processConsecutiveTextNodes","wDomlist","cIndex","textWDomList","collectAdjacentTextNode","textNode","_renderToString","_hydration","renderWithHydration","tagFunction","_run","run"],"mappings":"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"}
1
+ {"version":3,"file":"lithentSsr.mjs","sources":["../src/tests/tostring.tsx","../src/helper/index.ts","../src/renderToString.ts","../src/hydration.ts","../src/index.ts"],"sourcesContent":["import { h, mount, Fragment } from 'lithent';\n\nconst Children = mount(r => {\n let v = 1;\n let k = 's';\n\n const increase = () => {\n v += 1;\n k += 's';\n r();\n };\n\n return () => (\n <div style={{ border: `${v}px solid red` }}>\n asve\n <br />\n <section innerHTML=\"<article>ss</article>\" />\n <button disabled={false} onClick={increase}>\n {v} -== a1 - {v}\n {k}\n </button>\n {v}\n <span id=\"aa11\" data-max-string=\"va\">\n {' '}123124\n </span>\n </div>\n );\n});\n\nconst Root = mount(_r => {\n return () => (\n <Fragment>\n {' '}\n 111{/* <!-- aa --> */}222{' '}45\n <Children />\n <div>aaa</div>\n </Fragment>\n );\n});\n\nexport default Root;\n","const SELF_CLOSE_ALLLOW = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n];\n\nexport function isAllowSelfClose(tagname: string) {\n return SELF_CLOSE_ALLLOW.includes(tagname);\n}\n\nexport function checkExisty(value: unknown) {\n return value !== null && value !== undefined;\n}\n\nexport function checkVirtualType(type?: string | null) {\n return type && ['fragment', 'loop'].includes(type);\n}\n\nexport function checkStyleData(\n dataKey: string,\n dataValue: unknown\n): dataValue is Record<string, string> {\n return dataKey === 'style' && typeof dataValue === 'object';\n}\n\nexport function checkRefData(\n dataKey: string,\n dataValue: unknown\n): dataValue is {\n value: HTMLElement | Element | DocumentFragment | Text | undefined;\n} {\n return dataKey === 'ref' && typeof dataValue === 'object';\n}\n\nexport function styleObjectToString(styleObj: Record<string, string>) {\n return Object.entries(styleObj)\n .map(([key, value]) => {\n // camelCase를 kebab-case로 변환 (예: borderTop -> border-top)\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n return `${kebabKey}: ${value};`;\n })\n .join(' ');\n}\n","import type { WDom, Props } from 'lithent';\nimport {\n isAllowSelfClose,\n checkExisty,\n checkVirtualType,\n checkStyleData,\n checkRefData,\n styleObjectToString,\n} from '@/helper';\n\n/**\n * Main function of renderToString\"\n */\nexport function renderToString(wDom: WDom) {\n return wDomToString(wDom);\n}\n\n/**\n * Converts a chunk of virtual DOM objects into string tags.\n */\nfunction wDomToString(wDom: WDom) {\n let element = '';\n const { type, tag, text, props, children = [] } = wDom;\n const isVirtualType = checkVirtualType(type);\n\n if (isVirtualType) {\n element = wDomChildrenToDom(children, element);\n } else if (type === 'element' && tag) {\n const innerHTML = props?.innerHTML;\n\n if (innerHTML) {\n element = `<${tag}${makeProp(props)}>${innerHTML}</${tag}>`;\n } else if (isAllowSelfClose(tag) && !children.length) {\n element = `<${tag}${makeProp(props)} />`;\n } else {\n element = `<${tag}${makeProp(props)}>`;\n element = wDomChildrenToDom(children, element);\n element = `${element}</${tag}>`;\n }\n } else if (type === 'text' && checkExisty(text)) {\n element = String(text);\n element = wDomChildrenToDom(children, element);\n } else {\n throw new Error(\n 'An attempt was made to render an abnormal virtual DOM object.'\n );\n }\n\n return element;\n}\n\n/**\n * Converts all child nodes of a virtual DOM object into string tags.\n */\nfunction wDomChildrenToDom(children: WDom[], parentElement?: string) {\n const newString = children.reduce((acc: string, childItem: WDom) => {\n if (childItem.type) {\n const childElement = wDomToString(childItem);\n\n acc += childElement;\n }\n\n return acc;\n }, parentElement || '');\n\n return newString;\n}\n\n/**\n * Creates and attaches a prop string to the tag.\n */\nfunction makeProp(props?: Props) {\n let attrGroup: string[] = [];\n\n Object.entries(props || {}).forEach(\n ([dataKey, dataValue]: [string, unknown]) => {\n const isKey = dataKey === 'key';\n const isPortal = dataKey === 'portal' && typeof dataValue === 'object';\n const isHtml = dataKey === 'innerHTML' && typeof dataValue === 'string';\n const isRef = checkRefData(dataKey, dataValue);\n const isEvent = dataKey.match(/^on/);\n\n if (!(isKey || isPortal || isHtml || isRef || isEvent)) {\n if (checkStyleData(dataKey, dataValue)) {\n const cssString = styleObjectToString(dataValue);\n attrGroup.push(`style=\"${cssString}\"`);\n } else if (dataKey && dataValue === true) {\n attrGroup.push(`${dataKey}=\"${dataKey}\"`);\n } else if (dataKey && typeof dataValue !== 'boolean') {\n attrGroup.push(`${dataKey}=\"${String(dataValue)}\"`);\n }\n }\n }\n );\n\n return attrGroup.length ? ' ' + attrGroup.join(' ') : '';\n}\n","import { render } from 'lithent';\nimport type { WDom } from 'lithent';\n\n/**\n * hydration\n */\nexport function hydration(wDom: WDom, wrapElement: HTMLElement) {\n /**\n * Attach the el property to wDom.\n */\n addElement(wDom, wrapElement);\n\n /**\n * Attach events to wDom.\n */\n return render(wDom, wrapElement, null, true);\n}\n\n/**\n * Attach the el property to wDom.\n */\nfunction addElement(wDomOrig: WDom, wrapElement: HTMLElement) {\n const isVirtualType =\n wDomOrig.type && ['fragment', 'loop'].includes(wDomOrig.type);\n\n if (isVirtualType) {\n wDomOrig.el = new DocumentFragment();\n }\n const wDomList = flatFlagmentFromList(\n isVirtualType ? [...(wDomOrig.children || [])] : [wDomOrig]\n );\n const realDomList =\n wrapElement.tagName === 'HTML'\n ? [wrapElement]\n : Array.from(wrapElement.childNodes);\n\n if (wDomList) {\n addElementProcessChildren(wDomList, realDomList);\n }\n}\n\n/**\n * Attach the el property to wDom recursively.\n */\nfunction addElementProcessChildren(wDomList: WDom[], realDomList: ChildNode[]) {\n let index = 0;\n realDomList\n .filter((item: any) => filteredEmptyTextNode(item))\n .forEach(realDomItem => {\n let wDomItem = wDomList[index];\n const nodeType = realDomItem.nodeType;\n let pass = false;\n\n if (\n wDomItem?.type === null ||\n (wDomItem?.type === 'text' && wDomItem?.text === '\\n')\n ) {\n index += 1;\n wDomItem = wDomList[index];\n }\n\n if (\n realDomItem &&\n wDomItem &&\n wDomItem.type &&\n ['text', 'element'].includes(wDomItem.type)\n ) {\n if (wDomItem.type === 'text' && nodeType === 3) {\n const { tFragment, nIndex } = processConsecutiveTextNodes(\n wDomList,\n index\n );\n index = nIndex;\n realDomItem!.parentElement!.replaceChild(tFragment, realDomItem);\n } else if (wDomItem.type === 'element' && nodeType === 1) {\n if (\n ((realDomItem as HTMLElement).tagName || '').toLowerCase() !==\n wDomItem.tag\n ) {\n // throw new Error('Hydration Error - not matched tagname');\n pass = true;\n } else {\n wDomItem.el = realDomItem as HTMLElement;\n }\n }\n\n if (!pass) {\n addElementProcessChildren(\n flatFlagmentFromList(wDomItem.children || []),\n Array.from(realDomItem.childNodes)\n );\n }\n }\n\n if (!pass) {\n index += 1;\n }\n });\n}\n\n/**\n * Whitespace or text nodes are ignored.\n */\nfunction filteredEmptyTextNode(item: HTMLElement | Text) {\n if (item.nodeType === 3 && !(item as Text).data.replace(/\\s*/g, '')) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Flattens nested fragment types.\n */\nfunction flatFlagmentFromList(wDomlist: WDom[]) {\n return wDomlist.reduce((acc: WDom[], item: WDom) => {\n if (item.type && ['fragment', 'loop'].includes(item.type)) {\n item.el = new DocumentFragment();\n acc.push(...flatFlagmentFromList(item?.children || []));\n } else {\n acc.push(item);\n }\n return acc;\n }, []);\n}\n\n/**\n * Hydration is applied to consecutively rendered text node objects.\n */\nfunction processConsecutiveTextNodes(wDomList: WDom[], cIndex: number) {\n const textWDomList: WDom[] = collectAdjacentTextNode(wDomList, cIndex, []);\n const tFragment = new DocumentFragment();\n textWDomList.forEach(item => {\n const textNode = document.createTextNode(String(item.text));\n item.el = textNode;\n tFragment.appendChild(textNode);\n });\n\n return {\n tFragment,\n nIndex: cIndex + (textWDomList.length - 1),\n };\n}\n\n/**\n * Collect consecutive text nodes.\n */\nfunction collectAdjacentTextNode(\n wDomList: WDom[],\n cIndex: number,\n acc: WDom[]\n): WDom[] {\n if (wDomList[cIndex] && wDomList[cIndex].type === 'text') {\n acc.push(wDomList[cIndex]);\n\n return collectAdjacentTextNode(wDomList, cIndex + 1, [...acc]);\n }\n return acc;\n}\n","import { h } from 'lithent';\nimport type { TagFunction } from 'lithent';\nimport Test from '@/tests/tostring';\nimport { renderToString as _renderToString } from '@/renderToString';\nimport { hydration as _hydration } from '@/hydration';\n\nexport const renderToString = _renderToString;\nexport const hydration = _hydration;\n\nexport function renderWithHydration(tagFunction: TagFunction) {\n if (typeof window !== 'undefined') {\n return hydration(h(tagFunction, {}), document.documentElement);\n }\n\n return _renderToString(h(tagFunction, {}));\n}\n\nlet _run: ((wrap: HTMLElement) => void) | undefined;\n\nif (import.meta.env.MODE === 'development') {\n _run = (wrap: HTMLElement) => {\n hydration(h(Test as TagFunction, {}), wrap);\n };\n}\n\nexport const run = _run;\n"],"names":["Children","mount","r","v","k","increase","h","_r","Fragment","SELF_CLOSE_ALLLOW","isAllowSelfClose","tagname","checkExisty","value","checkVirtualType","type","checkStyleData","dataKey","dataValue","checkRefData","styleObjectToString","styleObj","key","renderToString","wDom","wDomToString","element","tag","text","props","children","wDomChildrenToDom","innerHTML","makeProp","parentElement","acc","childItem","childElement","attrGroup","isKey","isPortal","isHtml","isRef","isEvent","cssString","hydration","wrapElement","addElement","render","wDomOrig","isVirtualType","wDomList","flatFlagmentFromList","realDomList","addElementProcessChildren","index","item","filteredEmptyTextNode","realDomItem","wDomItem","nodeType","pass","tFragment","nIndex","processConsecutiveTextNodes","wDomlist","cIndex","textWDomList","collectAdjacentTextNode","textNode","_renderToString","_hydration","renderWithHydration","tagFunction","_run","run"],"mappings":";AAEA,MAAMA,IAAWC,EAAM,CAAKC,MAAA;AAC1B,MAAIC,IAAI,GACJC,IAAI;AAER,QAAMC,IAAW,MAAM;AAChB,IAAAF,KAAA,GACAC,KAAA,KACHF;EAAA;AAGJ,SAAO,MACJ,gBAAAI,EAAA,OAAA,EAAI,OAAO,EAAE,QAAQ,GAAGH,CAAC,eAAe,EAAA,GAAG,QAEzC,gBAAAG,EAAA,MAAA,IAAG,GACH,gBAAAA,EAAA,WAAA,EAAQ,WAAU,wBAAwB,CAAA,GAC1C,gBAAAA,EAAA,UAAA,EAAO,UAAU,IAAO,SAASD,KAC/BF,GAAE,cAAWA,GACbC,CACH,GACCD,GACD,gBAAAG,EAAC,UAAK,IAAG,QAAO,mBAAgB,QAC7B,MAAK,QACR,CACF;AAEJ,CAAC;AAEYL,EAAM,CAAMM,MAChB,MACL,gBAAAD,EAACE,GACE,MAAA,KAAI,OACiB,OAAI,QAAO,MACjC,gBAAAF,EAACN,GAAS,IAAA,GACT,gBAAAM,EAAA,OAAA,MAAI,KAAG,CACV,CAEH;ACtCD,MAAMG,IAAoB;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAEO,SAASC,EAAiBC,GAAiB;AACzC,SAAAF,EAAkB,SAASE,CAAO;AAC3C;AAEO,SAASC,EAAYC,GAAgB;AACnC,SAAAA,KAAU;AACnB;AAEO,SAASC,EAAiBC,GAAsB;AACrD,SAAOA,KAAQ,CAAC,YAAY,MAAM,EAAE,SAASA,CAAI;AACnD;AAEgB,SAAAC,EACdC,GACAC,GACqC;AAC9B,SAAAD,MAAY,WAAW,OAAOC,KAAc;AACrD;AAEgB,SAAAC,EACdF,GACAC,GAGA;AACO,SAAAD,MAAY,SAAS,OAAOC,KAAc;AACnD;AAEO,SAASE,EAAoBC,GAAkC;AAC7D,SAAA,OAAO,QAAQA,CAAQ,EAC3B,IAAI,CAAC,CAACC,GAAKT,CAAK,MAGR,GADUS,EAAI,QAAQ,YAAY,KAAK,EAAE,aAC9B,KAAKT,CAAK,GAC7B,EACA,KAAK,GAAG;AACb;ACzCO,SAASU,EAAeC,GAAY;AACzC,SAAOC,EAAaD,CAAI;AAC1B;AAKA,SAASC,EAAaD,GAAY;AAChC,MAAIE,IAAU;AACR,QAAA,EAAE,MAAAX,GAAM,KAAAY,GAAK,MAAAC,GAAM,OAAAC,GAAO,UAAAC,IAAW,CAAA,EAAO,IAAAN;AAGlD,MAFsBV,EAAiBC,CAAI;AAG/B,IAAAW,IAAAK,EAAkBD,GAAUJ,CAAO;AAAA,WACpCX,MAAS,aAAaY,GAAK;AACpC,UAAMK,IAAYH,KAAA,gBAAAA,EAAO;AAEzB,IAAIG,IACQN,IAAA,IAAIC,CAAG,GAAGM,EAASJ,CAAK,CAAC,IAAIG,CAAS,KAAKL,CAAG,MAC/CjB,EAAiBiB,CAAG,KAAK,CAACG,EAAS,SAC5CJ,IAAU,IAAIC,CAAG,GAAGM,EAASJ,CAAK,CAAC,SAEnCH,IAAU,IAAIC,CAAG,GAAGM,EAASJ,CAAK,CAAC,KACzBH,IAAAK,EAAkBD,GAAUJ,CAAO,GACnCA,IAAA,GAAGA,CAAO,KAAKC,CAAG;AAAA,EAErB,WAAAZ,MAAS,UAAUH,EAAYgB,CAAI;AAC5C,IAAAF,IAAU,OAAOE,CAAI,GACXF,IAAAK,EAAkBD,GAAUJ,CAAO;AAAA;AAE7C,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAIG,SAAAA;AACT;AAKA,SAASK,EAAkBD,GAAkBI,GAAwB;AAW5D,SAVWJ,EAAS,OAAO,CAACK,GAAaC,MAAoB;AAClE,QAAIA,EAAU,MAAM;AACZ,YAAAC,IAAeZ,EAAaW,CAAS;AAEpC,MAAAD,KAAAE;AAAA,IACT;AAEO,WAAAF;AAAA,EAAA,GACND,KAAiB,EAAE;AAGxB;AAKA,SAASD,EAASJ,GAAe;AAC/B,MAAIS,IAAsB,CAAA;AAE1B,gBAAO,QAAQT,KAAS,CAAA,CAAE,EAAE;AAAA,IAC1B,CAAC,CAACZ,GAASC,CAAS,MAAyB;AAC3C,YAAMqB,IAAQtB,MAAY,OACpBuB,IAAWvB,MAAY,YAAY,OAAOC,KAAc,UACxDuB,IAASxB,MAAY,eAAe,OAAOC,KAAc,UACzDwB,IAAQvB,EAAaF,GAASC,CAAS,GACvCyB,IAAU1B,EAAQ,MAAM,KAAK;AAEnC,UAAI,EAAEsB,KAASC,KAAYC,KAAUC,KAASC;AACxC,YAAA3B,EAAeC,GAASC,CAAS,GAAG;AAChC,gBAAA0B,IAAYxB,EAAoBF,CAAS;AACrC,UAAAoB,EAAA,KAAK,UAAUM,CAAS,GAAG;AAAA,QAAA,MACvC,CAAW3B,KAAWC,MAAc,KAClCoB,EAAU,KAAK,GAAGrB,CAAO,KAAKA,CAAO,GAAG,IAC/BA,KAAW,OAAOC,KAAc,aACzCoB,EAAU,KAAK,GAAGrB,CAAO,KAAK,OAAOC,CAAS,CAAC,GAAG;AAAA,IAGxD;AAAA,EAAA,GAGKoB,EAAU,SAAS,MAAMA,EAAU,KAAK,GAAG,IAAI;AACxD;AC1FgB,SAAAO,EAAUrB,GAAYsB,GAA0B;AAI9D,SAAAC,EAAWvB,GAAMsB,CAAW,GAKrBE,EAAOxB,GAAMsB,GAAa,MAAM,EAAI;AAC7C;AAKA,SAASC,EAAWE,GAAgBH,GAA0B;AACtD,QAAAI,IACJD,EAAS,QAAQ,CAAC,YAAY,MAAM,EAAE,SAASA,EAAS,IAAI;AAE9D,EAAIC,MACOD,EAAA,KAAK,IAAI;AAEpB,QAAME,IAAWC;AAAA,IACfF,IAAgB,CAAC,GAAID,EAAS,YAAY,CAAG,CAAA,IAAI,CAACA,CAAQ;AAAA,EAAA,GAEtDI,IACJP,EAAY,YAAY,SACpB,CAACA,CAAW,IACZ,MAAM,KAAKA,EAAY,UAAU;AAEvC,EAAIK,KACFG,EAA0BH,GAAUE,CAAW;AAEnD;AAKA,SAASC,EAA0BH,GAAkBE,GAA0B;AAC7E,MAAIE,IAAQ;AAET,EAAAF,EAAA,OAAO,CAACG,MAAcC,EAAsBD,CAAI,CAAC,EACjD,QAAQ,CAAeE,MAAA;AAClB,QAAAC,IAAWR,EAASI,CAAK;AAC7B,UAAMK,IAAWF,EAAY;AAC7B,QAAIG,IAAO;AAWT,UARAF,KAAA,gBAAAA,EAAU,UAAS,SAClBA,KAAA,gBAAAA,EAAU,UAAS,WAAUA,KAAA,gBAAAA,EAAU,UAAS;AAAA,OAExCJ,KAAA,GACTI,IAAWR,EAASI,CAAK,IAIzBG,KACAC,KACAA,EAAS,QACT,CAAC,QAAQ,SAAS,EAAE,SAASA,EAAS,IAAI,GAC1C;AACA,UAAIA,EAAS,SAAS,UAAUC,MAAa,GAAG;AACxC,cAAA,EAAE,WAAAE,GAAW,QAAAC,EAAA,IAAWC;AAAA,UAC5Bb;AAAA,UACAI;AAAA,QAAA;AAEM,QAAAA,IAAAQ,GACKL,EAAA,cAAe,aAAaI,GAAWJ,CAAW;AAAA,MACtD,MAAA,CAAAC,EAAS,SAAS,aAAaC,MAAa,OAEjDF,EAA4B,WAAW,IAAI,YAAY,MACzDC,EAAS,MAGFE,IAAA,KAEPF,EAAS,KAAKD;AAIlB,MAAKG,KACHP;AAAA,QACEF,EAAqBO,EAAS,YAAY,EAAE;AAAA,QAC5C,MAAM,KAAKD,EAAY,UAAU;AAAA,MAAA;AAAA,IAGvC;AAEA,IAAKG,MACMN,KAAA;AAAA,EACX,CACD;AACL;AAKA,SAASE,EAAsBD,GAA0B;AACnD,SAAA,EAAAA,EAAK,aAAa,KAAK,CAAEA,EAAc,KAAK,QAAQ,QAAQ,EAAE;AAKpE;AAKA,SAASJ,EAAqBa,GAAkB;AAC9C,SAAOA,EAAS,OAAO,CAAC9B,GAAaqB,OAC/BA,EAAK,QAAQ,CAAC,YAAY,MAAM,EAAE,SAASA,EAAK,IAAI,KACjDA,EAAA,KAAK,IAAI,oBACdrB,EAAI,KAAK,GAAGiB,GAAqBI,KAAA,gBAAAA,EAAM,aAAY,CAAE,CAAA,CAAC,KAEtDrB,EAAI,KAAKqB,CAAI,GAERrB,IACN,CAAE,CAAA;AACP;AAKA,SAAS6B,EAA4Bb,GAAkBe,GAAgB;AACrE,QAAMC,IAAuBC,EAAwBjB,GAAUe,GAAQ,CAAE,CAAA,GACnEJ,IAAY,IAAI;AACtB,SAAAK,EAAa,QAAQ,CAAQX,MAAA;AAC3B,UAAMa,IAAW,SAAS,eAAe,OAAOb,EAAK,IAAI,CAAC;AAC1D,IAAAA,EAAK,KAAKa,GACVP,EAAU,YAAYO,CAAQ;AAAA,EAAA,CAC/B,GAEM;AAAA,IACL,WAAAP;AAAA,IACA,QAAQI,KAAUC,EAAa,SAAS;AAAA,EAAA;AAE5C;AAKA,SAASC,EACPjB,GACAe,GACA/B,GACQ;AACR,SAAIgB,EAASe,CAAM,KAAKf,EAASe,CAAM,EAAE,SAAS,UAC5C/B,EAAA,KAAKgB,EAASe,CAAM,CAAC,GAElBE,EAAwBjB,GAAUe,IAAS,GAAG,CAAC,GAAG/B,CAAG,CAAC,KAExDA;AACT;ACxJO,MAAMZ,IAAiB+C,GACjBzB,IAAY0B;AAElB,SAASC,EAAoBC,GAA0B;AACxD,SAAA,OAAO,SAAW,MACb5B,EAAUvC,EAAEmE,GAAa,CAAE,CAAA,GAAG,SAAS,eAAe,IAGxDH,EAAgBhE,EAAEmE,GAAa,CAAA,CAAE,CAAC;AAC3C;AAEA,IAAIC;AAQG,MAAMC,IAAMD;"}
@@ -1,2 +1,3 @@
1
- (function(c,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("lithent")):typeof define=="function"&&define.amd?define(["exports","lithent"],i):(c=typeof globalThis<"u"?globalThis:c||self,i(c.lithentSsr={},c.lithent))})(this,function(c,i){"use strict";const $=i.mount(n=>{let e=1,t="s";const r=()=>{e+=1,t+="s",n()};return()=>i.h("div",{style:{border:`${e}px solid red`}},"asve",i.h("br",null),i.h("section",{innerHTML:"<article>ss</article>"}),i.h("button",{disabled:!1,onClick:r},e," -== a1 - ",e,t),e,i.h("span",{id:"aa11","data-max-string":"va"}," ","123124"))});i.mount(n=>()=>i.h(i.Fragment,null," ","111","222"," ","45",i.h($,null),i.h("div",null,"aaa")));const S=["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function m(n){return S.includes(n)}function k(n){return n!=null}function x(n){return n&&["fragment","loop"].includes(n)}function j(n,e){return n==="style"&&typeof e=="object"}function C(n,e){return n==="ref"&&typeof e=="object"}function E(n){return Object.entries(n).map(([e,t])=>`${e.replace(/([A-Z])/g,"-$1").toLowerCase()}: ${t};`).join(" ")}function y(n){return a(n)}function a(n){let e="";const{type:t,tag:r,text:o,props:s,children:u=[]}=n;if(x(t))e=d(u,e);else if(t==="element"&&r){const l=s==null?void 0:s.innerHTML;l?e=`<${r}${p(s)}>${l}</${r}>`:m(r)&&!u.length?e=`<${r}${p(s)} />`:(e=`<${r}${p(s)}>`,e=d(u,e),e=`${e}</${r}>`)}else if(t==="text"&&k(o))e=String(o),e=d(u,e);else throw new Error("An attempt was made to render an abnormal virtual DOM object.");return e}function d(n,e){return n.reduce((r,o)=>{if(o.type){const s=a(o);r+=s}return r},e||"")}function p(n){let e=[];return Object.entries(n||{}).forEach(([t,r])=>{const o=t==="key",s=t==="portal"&&typeof r=="object",u=t==="innerHTML"&&typeof r=="string",f=C(t,r),l=t.match(/^on/);if(!(o||s||u||f||l))if(j(t,r)){const _=E(r);e.push(`style="${_}"`)}else t&&r===!0?e.push(`${t}="${t}"`):t&&typeof r!="boolean"&&e.push(`${t}="${String(r)}"`)}),e.length?" "+e.join(" "):""}function L(n,e){return v(n,e),i.render(n,e,null,!0)}function v(n,e){const t=n.type&&["fragment","loop"].includes(n.type);t&&(n.el=new DocumentFragment);const r=h(t?[...n.children||[]]:[n]),o=e.tagName==="HTML"?[e]:Array.from(e.childNodes);r&&g(r,o)}function g(n,e){let t=0;e.filter(r=>N(r)).forEach(r=>{let o=n[t];const s=r.nodeType;let u=!1;if((o==null?void 0:o.type)===null&&(t+=1,o=n[t]),r&&o&&o.type&&["text","element"].includes(o.type)){if(o.type==="text"&&s===3){const{tFragment:f,nIndex:l}=F(n,t);t=l,r.parentElement.replaceChild(f,r)}else o.type==="element"&&s===1&&((r.tagName||"").toLowerCase()!==o.tag?u=!0:o.el=r);u||g(h(o.children||[]),Array.from(r.childNodes))}u||(t+=1)})}function N(n){return!(n.nodeType===3&&!n.data.replace(/\s*/g,""))}function h(n){return n.reduce((e,t)=>(t.type&&["fragment","loop"].includes(t.type)?(t.el=new DocumentFragment,e.push(...h((t==null?void 0:t.children)||[]))):e.push(t),e),[])}function F(n,e){const t=T(n,e,[]),r=new DocumentFragment;return t.forEach(o=>{const s=document.createTextNode(String(o.text));o.el=s,r.appendChild(s)}),{tFragment:r,nIndex:e+(t.length-1)}}function T(n,e,t){return n[e]&&n[e].type==="text"?(t.push(n[e]),T(n,e+1,[...t])):t}const H=y,b=L;function A(n){return typeof window<"u"?b(i.h(n,{}),document.documentElement):y(i.h(n,{}))}const M=void 0;c.hydration=b,c.renderToString=H,c.renderWithHydration=A,c.run=M,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
1
+ (function(c,i){typeof exports=="object"&&typeof module<"u"?i(exports,require("lithent")):typeof define=="function"&&define.amd?define(["exports","lithent"],i):(c=typeof globalThis<"u"?globalThis:c||self,i(c.lithentSsr={},c.lithent))})(this,function(c,i){"use strict";const $=i.mount(n=>{let e=1,t="s";const r=()=>{e+=1,t+="s",n()};return()=>i.h("div",{style:{border:`${e}px solid red`}},"asve",i.h("br",null),i.h("section",{innerHTML:"<article>ss</article>"}),i.h("button",{disabled:!1,onClick:r},e," -== a1 - ",e,t),e,i.h("span",{id:"aa11","data-max-string":"va"}," ","123124"))});i.mount(n=>()=>i.h(i.Fragment,null," ","111","222"," ","45",i.h($,null),i.h("div",null,"aaa")));const S=["area","base","br","col","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"];function x(n){return S.includes(n)}function k(n){return n!=null}function j(n){return n&&["fragment","loop"].includes(n)}function C(n,e){return n==="style"&&typeof e=="object"}function E(n,e){return n==="ref"&&typeof e=="object"}function L(n){return Object.entries(n).map(([e,t])=>`${e.replace(/([A-Z])/g,"-$1").toLowerCase()}: ${t};`).join(" ")}function y(n){return a(n)}function a(n){let e="";const{type:t,tag:r,text:o,props:s,children:u=[]}=n;if(j(t))e=d(u,e);else if(t==="element"&&r){const l=s==null?void 0:s.innerHTML;l?e=`<${r}${p(s)}>${l}</${r}>`:x(r)&&!u.length?e=`<${r}${p(s)} />`:(e=`<${r}${p(s)}>`,e=d(u,e),e=`${e}</${r}>`)}else if(t==="text"&&k(o))e=String(o),e=d(u,e);else throw new Error("An attempt was made to render an abnormal virtual DOM object.");return e}function d(n,e){return n.reduce((r,o)=>{if(o.type){const s=a(o);r+=s}return r},e||"")}function p(n){let e=[];return Object.entries(n||{}).forEach(([t,r])=>{const o=t==="key",s=t==="portal"&&typeof r=="object",u=t==="innerHTML"&&typeof r=="string",f=E(t,r),l=t.match(/^on/);if(!(o||s||u||f||l))if(C(t,r)){const _=L(r);e.push(`style="${_}"`)}else t&&r===!0?e.push(`${t}="${t}"`):t&&typeof r!="boolean"&&e.push(`${t}="${String(r)}"`)}),e.length?" "+e.join(" "):""}function v(n,e){return N(n,e),i.render(n,e,null,!0)}function N(n,e){const t=n.type&&["fragment","loop"].includes(n.type);t&&(n.el=new DocumentFragment);const r=h(t?[...n.children||[]]:[n]),o=e.tagName==="HTML"?[e]:Array.from(e.childNodes);r&&g(r,o)}function g(n,e){let t=0;e.filter(r=>m(r)).forEach(r=>{let o=n[t];const s=r.nodeType;let u=!1;if(((o==null?void 0:o.type)===null||(o==null?void 0:o.type)==="text"&&(o==null?void 0:o.text)===`
2
+ `)&&(t+=1,o=n[t]),r&&o&&o.type&&["text","element"].includes(o.type)){if(o.type==="text"&&s===3){const{tFragment:f,nIndex:l}=F(n,t);t=l,r.parentElement.replaceChild(f,r)}else o.type==="element"&&s===1&&((r.tagName||"").toLowerCase()!==o.tag?u=!0:o.el=r);u||g(h(o.children||[]),Array.from(r.childNodes))}u||(t+=1)})}function m(n){return!(n.nodeType===3&&!n.data.replace(/\s*/g,""))}function h(n){return n.reduce((e,t)=>(t.type&&["fragment","loop"].includes(t.type)?(t.el=new DocumentFragment,e.push(...h((t==null?void 0:t.children)||[]))):e.push(t),e),[])}function F(n,e){const t=T(n,e,[]),r=new DocumentFragment;return t.forEach(o=>{const s=document.createTextNode(String(o.text));o.el=s,r.appendChild(s)}),{tFragment:r,nIndex:e+(t.length-1)}}function T(n,e,t){return n[e]&&n[e].type==="text"?(t.push(n[e]),T(n,e+1,[...t])):t}const H=y,b=v;function A(n){return typeof window<"u"?b(i.h(n,{}),document.documentElement):y(i.h(n,{}))}const M=void 0;c.hydration=b,c.renderToString=H,c.renderWithHydration=A,c.run=M,Object.defineProperty(c,Symbol.toStringTag,{value:"Module"})});
2
3
  //# sourceMappingURL=lithentSsr.umd.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"lithentSsr.umd.js","sources":["../src/tests/tostring.tsx","../src/helper/index.ts","../src/renderToString.ts","../src/hydration.ts","../src/index.ts"],"sourcesContent":["import { h, mount, Fragment } from 'lithent';\n\nconst Children = mount(r => {\n let v = 1;\n let k = 's';\n\n const increase = () => {\n v += 1;\n k += 's';\n r();\n };\n\n return () => (\n <div style={{ border: `${v}px solid red` }}>\n asve\n <br />\n <section innerHTML=\"<article>ss</article>\" />\n <button disabled={false} onClick={increase}>\n {v} -== a1 - {v}\n {k}\n </button>\n {v}\n <span id=\"aa11\" data-max-string=\"va\">\n {' '}123124\n </span>\n </div>\n );\n});\n\nconst Root = mount(_r => {\n return () => (\n <Fragment>\n {' '}\n 111{/* <!-- aa --> */}222{' '}45\n <Children />\n <div>aaa</div>\n </Fragment>\n );\n});\n\nexport default Root;\n","const SELF_CLOSE_ALLLOW = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n];\n\nexport function isAllowSelfClose(tagname: string) {\n return SELF_CLOSE_ALLLOW.includes(tagname);\n}\n\nexport function checkExisty(value: unknown) {\n return value !== null && value !== undefined;\n}\n\nexport function checkVirtualType(type?: string | null) {\n return type && ['fragment', 'loop'].includes(type);\n}\n\nexport function checkStyleData(\n dataKey: string,\n dataValue: unknown\n): dataValue is Record<string, string> {\n return dataKey === 'style' && typeof dataValue === 'object';\n}\n\nexport function checkRefData(\n dataKey: string,\n dataValue: unknown\n): dataValue is {\n value: HTMLElement | Element | DocumentFragment | Text | undefined;\n} {\n return dataKey === 'ref' && typeof dataValue === 'object';\n}\n\nexport function styleObjectToString(styleObj: Record<string, string>) {\n return Object.entries(styleObj)\n .map(([key, value]) => {\n // camelCase를 kebab-case로 변환 (예: borderTop -> border-top)\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n return `${kebabKey}: ${value};`;\n })\n .join(' ');\n}\n","import type { WDom, Props } from 'lithent';\nimport {\n isAllowSelfClose,\n checkExisty,\n checkVirtualType,\n checkStyleData,\n checkRefData,\n styleObjectToString,\n} from '@/helper';\n\n/**\n * Main function of renderToString\"\n */\nexport function renderToString(wDom: WDom) {\n return wDomToString(wDom);\n}\n\n/**\n * Converts a chunk of virtual DOM objects into string tags.\n */\nfunction wDomToString(wDom: WDom) {\n let element = '';\n const { type, tag, text, props, children = [] } = wDom;\n const isVirtualType = checkVirtualType(type);\n\n if (isVirtualType) {\n element = wDomChildrenToDom(children, element);\n } else if (type === 'element' && tag) {\n const innerHTML = props?.innerHTML;\n\n if (innerHTML) {\n element = `<${tag}${makeProp(props)}>${innerHTML}</${tag}>`;\n } else if (isAllowSelfClose(tag) && !children.length) {\n element = `<${tag}${makeProp(props)} />`;\n } else {\n element = `<${tag}${makeProp(props)}>`;\n element = wDomChildrenToDom(children, element);\n element = `${element}</${tag}>`;\n }\n } else if (type === 'text' && checkExisty(text)) {\n element = String(text);\n element = wDomChildrenToDom(children, element);\n } else {\n throw new Error(\n 'An attempt was made to render an abnormal virtual DOM object.'\n );\n }\n\n return element;\n}\n\n/**\n * Converts all child nodes of a virtual DOM object into string tags.\n */\nfunction wDomChildrenToDom(children: WDom[], parentElement?: string) {\n const newString = children.reduce((acc: string, childItem: WDom) => {\n if (childItem.type) {\n const childElement = wDomToString(childItem);\n\n acc += childElement;\n }\n\n return acc;\n }, parentElement || '');\n\n return newString;\n}\n\n/**\n * Creates and attaches a prop string to the tag.\n */\nfunction makeProp(props?: Props) {\n let attrGroup: string[] = [];\n\n Object.entries(props || {}).forEach(\n ([dataKey, dataValue]: [string, unknown]) => {\n const isKey = dataKey === 'key';\n const isPortal = dataKey === 'portal' && typeof dataValue === 'object';\n const isHtml = dataKey === 'innerHTML' && typeof dataValue === 'string';\n const isRef = checkRefData(dataKey, dataValue);\n const isEvent = dataKey.match(/^on/);\n\n if (!(isKey || isPortal || isHtml || isRef || isEvent)) {\n if (checkStyleData(dataKey, dataValue)) {\n const cssString = styleObjectToString(dataValue);\n attrGroup.push(`style=\"${cssString}\"`);\n } else if (dataKey && dataValue === true) {\n attrGroup.push(`${dataKey}=\"${dataKey}\"`);\n } else if (dataKey && typeof dataValue !== 'boolean') {\n attrGroup.push(`${dataKey}=\"${String(dataValue)}\"`);\n }\n }\n }\n );\n\n return attrGroup.length ? ' ' + attrGroup.join(' ') : '';\n}\n","import { render } from 'lithent';\nimport type { WDom } from 'lithent';\n\n/**\n * hydration\n */\nexport function hydration(wDom: WDom, wrapElement: HTMLElement) {\n /**\n * Attach the el property to wDom.\n */\n addElement(wDom, wrapElement);\n\n /**\n * Attach events to wDom.\n */\n return render(wDom, wrapElement, null, true);\n}\n\n/**\n * Attach the el property to wDom.\n */\nfunction addElement(wDomOrig: WDom, wrapElement: HTMLElement) {\n const isVirtualType =\n wDomOrig.type && ['fragment', 'loop'].includes(wDomOrig.type);\n\n if (isVirtualType) {\n wDomOrig.el = new DocumentFragment();\n }\n const wDomList = flatFlagmentFromList(\n isVirtualType ? [...(wDomOrig.children || [])] : [wDomOrig]\n );\n const realDomList =\n wrapElement.tagName === 'HTML'\n ? [wrapElement]\n : Array.from(wrapElement.childNodes);\n\n if (wDomList) {\n addElementProcessChildren(wDomList, realDomList);\n }\n}\n\n/**\n * Attach the el property to wDom recursively.\n */\nfunction addElementProcessChildren(wDomList: WDom[], realDomList: ChildNode[]) {\n let index = 0;\n realDomList\n .filter((item: any) => filteredEmptyTextNode(item))\n .forEach(realDomItem => {\n let wDomItem = wDomList[index];\n const nodeType = realDomItem.nodeType;\n let pass = false;\n\n if (wDomItem?.type === null) {\n index += 1;\n wDomItem = wDomList[index];\n }\n\n if (\n realDomItem &&\n wDomItem &&\n wDomItem.type &&\n ['text', 'element'].includes(wDomItem.type)\n ) {\n if (wDomItem.type === 'text' && nodeType === 3) {\n const { tFragment, nIndex } = processConsecutiveTextNodes(\n wDomList,\n index\n );\n index = nIndex;\n realDomItem!.parentElement!.replaceChild(tFragment, realDomItem);\n } else if (wDomItem.type === 'element' && nodeType === 1) {\n if (\n ((realDomItem as HTMLElement).tagName || '').toLowerCase() !==\n wDomItem.tag\n ) {\n // throw new Error('Hydration Error - not matched tagname');\n pass = true;\n } else {\n wDomItem.el = realDomItem as HTMLElement;\n }\n }\n\n if (!pass) {\n addElementProcessChildren(\n flatFlagmentFromList(wDomItem.children || []),\n Array.from(realDomItem.childNodes)\n );\n }\n }\n\n if (!pass) {\n index += 1;\n }\n });\n}\n\n/**\n * Whitespace or text nodes are ignored.\n */\nfunction filteredEmptyTextNode(item: HTMLElement | Text) {\n if (item.nodeType === 3 && !(item as Text).data.replace(/\\s*/g, '')) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Flattens nested fragment types.\n */\nfunction flatFlagmentFromList(wDomlist: WDom[]) {\n return wDomlist.reduce((acc: WDom[], item: WDom) => {\n if (item.type && ['fragment', 'loop'].includes(item.type)) {\n item.el = new DocumentFragment();\n acc.push(...flatFlagmentFromList(item?.children || []));\n } else {\n acc.push(item);\n }\n return acc;\n }, []);\n}\n\n/**\n * Hydration is applied to consecutively rendered text node objects.\n */\nfunction processConsecutiveTextNodes(wDomList: WDom[], cIndex: number) {\n const textWDomList: WDom[] = collectAdjacentTextNode(wDomList, cIndex, []);\n const tFragment = new DocumentFragment();\n textWDomList.forEach(item => {\n const textNode = document.createTextNode(String(item.text));\n item.el = textNode;\n tFragment.appendChild(textNode);\n });\n\n return {\n tFragment,\n nIndex: cIndex + (textWDomList.length - 1),\n };\n}\n\n/**\n * Collect consecutive text nodes.\n */\nfunction collectAdjacentTextNode(\n wDomList: WDom[],\n cIndex: number,\n acc: WDom[]\n): WDom[] {\n if (wDomList[cIndex] && wDomList[cIndex].type === 'text') {\n acc.push(wDomList[cIndex]);\n\n return collectAdjacentTextNode(wDomList, cIndex + 1, [...acc]);\n }\n return acc;\n}\n","import { h } from 'lithent';\nimport type { TagFunction } from 'lithent';\nimport Test from '@/tests/tostring';\nimport { renderToString as _renderToString } from '@/renderToString';\nimport { hydration as _hydration } from '@/hydration';\n\nexport const renderToString = _renderToString;\nexport const hydration = _hydration;\n\nexport function renderWithHydration(tagFunction: TagFunction) {\n if (typeof window !== 'undefined') {\n return hydration(h(tagFunction, {}), document.documentElement);\n }\n\n return _renderToString(h(tagFunction, {}));\n}\n\nlet _run: ((wrap: HTMLElement) => void) | undefined;\n\nif (import.meta.env.MODE === 'development') {\n _run = (wrap: HTMLElement) => {\n hydration(h(Test as TagFunction, {}), wrap);\n };\n}\n\nexport const run = _run;\n"],"names":["Children","mount","r","v","k","increase","h","_r","Fragment","SELF_CLOSE_ALLLOW","isAllowSelfClose","tagname","checkExisty","value","checkVirtualType","type","checkStyleData","dataKey","dataValue","checkRefData","styleObjectToString","styleObj","key","renderToString","wDom","wDomToString","element","tag","text","props","children","wDomChildrenToDom","innerHTML","makeProp","parentElement","acc","childItem","childElement","attrGroup","isKey","isPortal","isHtml","isRef","isEvent","cssString","hydration","wrapElement","addElement","render","wDomOrig","isVirtualType","wDomList","flatFlagmentFromList","realDomList","addElementProcessChildren","index","item","filteredEmptyTextNode","realDomItem","wDomItem","nodeType","pass","tFragment","nIndex","processConsecutiveTextNodes","wDomlist","cIndex","textWDomList","collectAdjacentTextNode","textNode","_renderToString","_hydration","renderWithHydration","tagFunction","run"],"mappings":"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"}
1
+ {"version":3,"file":"lithentSsr.umd.js","sources":["../src/tests/tostring.tsx","../src/helper/index.ts","../src/renderToString.ts","../src/hydration.ts","../src/index.ts"],"sourcesContent":["import { h, mount, Fragment } from 'lithent';\n\nconst Children = mount(r => {\n let v = 1;\n let k = 's';\n\n const increase = () => {\n v += 1;\n k += 's';\n r();\n };\n\n return () => (\n <div style={{ border: `${v}px solid red` }}>\n asve\n <br />\n <section innerHTML=\"<article>ss</article>\" />\n <button disabled={false} onClick={increase}>\n {v} -== a1 - {v}\n {k}\n </button>\n {v}\n <span id=\"aa11\" data-max-string=\"va\">\n {' '}123124\n </span>\n </div>\n );\n});\n\nconst Root = mount(_r => {\n return () => (\n <Fragment>\n {' '}\n 111{/* <!-- aa --> */}222{' '}45\n <Children />\n <div>aaa</div>\n </Fragment>\n );\n});\n\nexport default Root;\n","const SELF_CLOSE_ALLLOW = [\n 'area',\n 'base',\n 'br',\n 'col',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr',\n];\n\nexport function isAllowSelfClose(tagname: string) {\n return SELF_CLOSE_ALLLOW.includes(tagname);\n}\n\nexport function checkExisty(value: unknown) {\n return value !== null && value !== undefined;\n}\n\nexport function checkVirtualType(type?: string | null) {\n return type && ['fragment', 'loop'].includes(type);\n}\n\nexport function checkStyleData(\n dataKey: string,\n dataValue: unknown\n): dataValue is Record<string, string> {\n return dataKey === 'style' && typeof dataValue === 'object';\n}\n\nexport function checkRefData(\n dataKey: string,\n dataValue: unknown\n): dataValue is {\n value: HTMLElement | Element | DocumentFragment | Text | undefined;\n} {\n return dataKey === 'ref' && typeof dataValue === 'object';\n}\n\nexport function styleObjectToString(styleObj: Record<string, string>) {\n return Object.entries(styleObj)\n .map(([key, value]) => {\n // camelCase를 kebab-case로 변환 (예: borderTop -> border-top)\n const kebabKey = key.replace(/([A-Z])/g, '-$1').toLowerCase();\n return `${kebabKey}: ${value};`;\n })\n .join(' ');\n}\n","import type { WDom, Props } from 'lithent';\nimport {\n isAllowSelfClose,\n checkExisty,\n checkVirtualType,\n checkStyleData,\n checkRefData,\n styleObjectToString,\n} from '@/helper';\n\n/**\n * Main function of renderToString\"\n */\nexport function renderToString(wDom: WDom) {\n return wDomToString(wDom);\n}\n\n/**\n * Converts a chunk of virtual DOM objects into string tags.\n */\nfunction wDomToString(wDom: WDom) {\n let element = '';\n const { type, tag, text, props, children = [] } = wDom;\n const isVirtualType = checkVirtualType(type);\n\n if (isVirtualType) {\n element = wDomChildrenToDom(children, element);\n } else if (type === 'element' && tag) {\n const innerHTML = props?.innerHTML;\n\n if (innerHTML) {\n element = `<${tag}${makeProp(props)}>${innerHTML}</${tag}>`;\n } else if (isAllowSelfClose(tag) && !children.length) {\n element = `<${tag}${makeProp(props)} />`;\n } else {\n element = `<${tag}${makeProp(props)}>`;\n element = wDomChildrenToDom(children, element);\n element = `${element}</${tag}>`;\n }\n } else if (type === 'text' && checkExisty(text)) {\n element = String(text);\n element = wDomChildrenToDom(children, element);\n } else {\n throw new Error(\n 'An attempt was made to render an abnormal virtual DOM object.'\n );\n }\n\n return element;\n}\n\n/**\n * Converts all child nodes of a virtual DOM object into string tags.\n */\nfunction wDomChildrenToDom(children: WDom[], parentElement?: string) {\n const newString = children.reduce((acc: string, childItem: WDom) => {\n if (childItem.type) {\n const childElement = wDomToString(childItem);\n\n acc += childElement;\n }\n\n return acc;\n }, parentElement || '');\n\n return newString;\n}\n\n/**\n * Creates and attaches a prop string to the tag.\n */\nfunction makeProp(props?: Props) {\n let attrGroup: string[] = [];\n\n Object.entries(props || {}).forEach(\n ([dataKey, dataValue]: [string, unknown]) => {\n const isKey = dataKey === 'key';\n const isPortal = dataKey === 'portal' && typeof dataValue === 'object';\n const isHtml = dataKey === 'innerHTML' && typeof dataValue === 'string';\n const isRef = checkRefData(dataKey, dataValue);\n const isEvent = dataKey.match(/^on/);\n\n if (!(isKey || isPortal || isHtml || isRef || isEvent)) {\n if (checkStyleData(dataKey, dataValue)) {\n const cssString = styleObjectToString(dataValue);\n attrGroup.push(`style=\"${cssString}\"`);\n } else if (dataKey && dataValue === true) {\n attrGroup.push(`${dataKey}=\"${dataKey}\"`);\n } else if (dataKey && typeof dataValue !== 'boolean') {\n attrGroup.push(`${dataKey}=\"${String(dataValue)}\"`);\n }\n }\n }\n );\n\n return attrGroup.length ? ' ' + attrGroup.join(' ') : '';\n}\n","import { render } from 'lithent';\nimport type { WDom } from 'lithent';\n\n/**\n * hydration\n */\nexport function hydration(wDom: WDom, wrapElement: HTMLElement) {\n /**\n * Attach the el property to wDom.\n */\n addElement(wDom, wrapElement);\n\n /**\n * Attach events to wDom.\n */\n return render(wDom, wrapElement, null, true);\n}\n\n/**\n * Attach the el property to wDom.\n */\nfunction addElement(wDomOrig: WDom, wrapElement: HTMLElement) {\n const isVirtualType =\n wDomOrig.type && ['fragment', 'loop'].includes(wDomOrig.type);\n\n if (isVirtualType) {\n wDomOrig.el = new DocumentFragment();\n }\n const wDomList = flatFlagmentFromList(\n isVirtualType ? [...(wDomOrig.children || [])] : [wDomOrig]\n );\n const realDomList =\n wrapElement.tagName === 'HTML'\n ? [wrapElement]\n : Array.from(wrapElement.childNodes);\n\n if (wDomList) {\n addElementProcessChildren(wDomList, realDomList);\n }\n}\n\n/**\n * Attach the el property to wDom recursively.\n */\nfunction addElementProcessChildren(wDomList: WDom[], realDomList: ChildNode[]) {\n let index = 0;\n realDomList\n .filter((item: any) => filteredEmptyTextNode(item))\n .forEach(realDomItem => {\n let wDomItem = wDomList[index];\n const nodeType = realDomItem.nodeType;\n let pass = false;\n\n if (\n wDomItem?.type === null ||\n (wDomItem?.type === 'text' && wDomItem?.text === '\\n')\n ) {\n index += 1;\n wDomItem = wDomList[index];\n }\n\n if (\n realDomItem &&\n wDomItem &&\n wDomItem.type &&\n ['text', 'element'].includes(wDomItem.type)\n ) {\n if (wDomItem.type === 'text' && nodeType === 3) {\n const { tFragment, nIndex } = processConsecutiveTextNodes(\n wDomList,\n index\n );\n index = nIndex;\n realDomItem!.parentElement!.replaceChild(tFragment, realDomItem);\n } else if (wDomItem.type === 'element' && nodeType === 1) {\n if (\n ((realDomItem as HTMLElement).tagName || '').toLowerCase() !==\n wDomItem.tag\n ) {\n // throw new Error('Hydration Error - not matched tagname');\n pass = true;\n } else {\n wDomItem.el = realDomItem as HTMLElement;\n }\n }\n\n if (!pass) {\n addElementProcessChildren(\n flatFlagmentFromList(wDomItem.children || []),\n Array.from(realDomItem.childNodes)\n );\n }\n }\n\n if (!pass) {\n index += 1;\n }\n });\n}\n\n/**\n * Whitespace or text nodes are ignored.\n */\nfunction filteredEmptyTextNode(item: HTMLElement | Text) {\n if (item.nodeType === 3 && !(item as Text).data.replace(/\\s*/g, '')) {\n return false;\n }\n\n return true;\n}\n\n/**\n * Flattens nested fragment types.\n */\nfunction flatFlagmentFromList(wDomlist: WDom[]) {\n return wDomlist.reduce((acc: WDom[], item: WDom) => {\n if (item.type && ['fragment', 'loop'].includes(item.type)) {\n item.el = new DocumentFragment();\n acc.push(...flatFlagmentFromList(item?.children || []));\n } else {\n acc.push(item);\n }\n return acc;\n }, []);\n}\n\n/**\n * Hydration is applied to consecutively rendered text node objects.\n */\nfunction processConsecutiveTextNodes(wDomList: WDom[], cIndex: number) {\n const textWDomList: WDom[] = collectAdjacentTextNode(wDomList, cIndex, []);\n const tFragment = new DocumentFragment();\n textWDomList.forEach(item => {\n const textNode = document.createTextNode(String(item.text));\n item.el = textNode;\n tFragment.appendChild(textNode);\n });\n\n return {\n tFragment,\n nIndex: cIndex + (textWDomList.length - 1),\n };\n}\n\n/**\n * Collect consecutive text nodes.\n */\nfunction collectAdjacentTextNode(\n wDomList: WDom[],\n cIndex: number,\n acc: WDom[]\n): WDom[] {\n if (wDomList[cIndex] && wDomList[cIndex].type === 'text') {\n acc.push(wDomList[cIndex]);\n\n return collectAdjacentTextNode(wDomList, cIndex + 1, [...acc]);\n }\n return acc;\n}\n","import { h } from 'lithent';\nimport type { TagFunction } from 'lithent';\nimport Test from '@/tests/tostring';\nimport { renderToString as _renderToString } from '@/renderToString';\nimport { hydration as _hydration } from '@/hydration';\n\nexport const renderToString = _renderToString;\nexport const hydration = _hydration;\n\nexport function renderWithHydration(tagFunction: TagFunction) {\n if (typeof window !== 'undefined') {\n return hydration(h(tagFunction, {}), document.documentElement);\n }\n\n return _renderToString(h(tagFunction, {}));\n}\n\nlet _run: ((wrap: HTMLElement) => void) | undefined;\n\nif (import.meta.env.MODE === 'development') {\n _run = (wrap: HTMLElement) => {\n hydration(h(Test as TagFunction, {}), wrap);\n };\n}\n\nexport const run = _run;\n"],"names":["Children","mount","r","v","k","increase","h","_r","Fragment","SELF_CLOSE_ALLLOW","isAllowSelfClose","tagname","checkExisty","value","checkVirtualType","type","checkStyleData","dataKey","dataValue","checkRefData","styleObjectToString","styleObj","key","renderToString","wDom","wDomToString","element","tag","text","props","children","wDomChildrenToDom","innerHTML","makeProp","parentElement","acc","childItem","childElement","attrGroup","isKey","isPortal","isHtml","isRef","isEvent","cssString","hydration","wrapElement","addElement","render","wDomOrig","isVirtualType","wDomList","flatFlagmentFromList","realDomList","addElementProcessChildren","index","item","filteredEmptyTextNode","realDomItem","wDomItem","nodeType","pass","tFragment","nIndex","processConsecutiveTextNodes","wDomlist","cIndex","textWDomList","collectAdjacentTextNode","textNode","_renderToString","_hydration","renderWithHydration","tagFunction","run"],"mappings":"2QAEA,MAAMA,EAAWC,EAAAA,MAAWC,GAAA,CAC1B,IAAIC,EAAI,EACJC,EAAI,IAER,MAAMC,EAAW,IAAM,CAChBF,GAAA,EACAC,GAAA,IACHF,GAAA,EAGJ,MAAO,IACJI,EAAAA,EAAA,MAAA,CAAI,MAAO,CAAE,OAAQ,GAAGH,CAAC,cAAe,CAAA,EAAG,OAEzCG,EAAA,EAAA,KAAA,IAAG,EACHA,EAAAA,EAAA,UAAA,CAAQ,UAAU,uBAAwB,CAAA,EAC1CA,EAAAA,EAAA,SAAA,CAAO,SAAU,GAAO,QAASD,GAC/BF,EAAE,aAAWA,EACbC,CACH,EACCD,EACDG,IAAC,QAAK,GAAG,OAAO,kBAAgB,MAC7B,KAAK,QACR,CACF,CAEJ,CAAC,UAEwBC,GAChB,IACLD,EAAA,EAACE,WACE,KAAA,IAAI,MACiB,MAAI,OAAO,KACjCF,EAAAA,EAACN,EAAS,IAAA,EACTM,EAAAA,EAAA,MAAA,KAAI,KAAG,CACV,CAEH,ECtCD,MAAMG,EAAoB,CACxB,OACA,OACA,KACA,MACA,QACA,KACA,MACA,QACA,SACA,OACA,OACA,QACA,SACA,QACA,KACF,EAEO,SAASC,EAAiBC,EAAiB,CACzC,OAAAF,EAAkB,SAASE,CAAO,CAC3C,CAEO,SAASC,EAAYC,EAAgB,CACnC,OAAAA,GAAU,IACnB,CAEO,SAASC,EAAiBC,EAAsB,CACrD,OAAOA,GAAQ,CAAC,WAAY,MAAM,EAAE,SAASA,CAAI,CACnD,CAEgB,SAAAC,EACdC,EACAC,EACqC,CAC9B,OAAAD,IAAY,SAAW,OAAOC,GAAc,QACrD,CAEgB,SAAAC,EACdF,EACAC,EAGA,CACO,OAAAD,IAAY,OAAS,OAAOC,GAAc,QACnD,CAEO,SAASE,EAAoBC,EAAkC,CAC7D,OAAA,OAAO,QAAQA,CAAQ,EAC3B,IAAI,CAAC,CAACC,EAAKT,CAAK,IAGR,GADUS,EAAI,QAAQ,WAAY,KAAK,EAAE,aAC9B,KAAKT,CAAK,GAC7B,EACA,KAAK,GAAG,CACb,CCzCO,SAASU,EAAeC,EAAY,CACzC,OAAOC,EAAaD,CAAI,CAC1B,CAKA,SAASC,EAAaD,EAAY,CAChC,IAAIE,EAAU,GACR,KAAA,CAAE,KAAAX,EAAM,IAAAY,EAAK,KAAAC,EAAM,MAAAC,EAAO,SAAAC,EAAW,CAAA,CAAO,EAAAN,EAGlD,GAFsBV,EAAiBC,CAAI,EAG/BW,EAAAK,EAAkBD,EAAUJ,CAAO,UACpCX,IAAS,WAAaY,EAAK,CACpC,MAAMK,EAAYH,GAAA,YAAAA,EAAO,UAErBG,EACQN,EAAA,IAAIC,CAAG,GAAGM,EAASJ,CAAK,CAAC,IAAIG,CAAS,KAAKL,CAAG,IAC/CjB,EAAiBiB,CAAG,GAAK,CAACG,EAAS,OAC5CJ,EAAU,IAAIC,CAAG,GAAGM,EAASJ,CAAK,CAAC,OAEnCH,EAAU,IAAIC,CAAG,GAAGM,EAASJ,CAAK,CAAC,IACzBH,EAAAK,EAAkBD,EAAUJ,CAAO,EACnCA,EAAA,GAAGA,CAAO,KAAKC,CAAG,IAErB,SAAAZ,IAAS,QAAUH,EAAYgB,CAAI,EAC5CF,EAAU,OAAOE,CAAI,EACXF,EAAAK,EAAkBD,EAAUJ,CAAO,MAE7C,OAAM,IAAI,MACR,+DAAA,EAIG,OAAAA,CACT,CAKA,SAASK,EAAkBD,EAAkBI,EAAwB,CAW5D,OAVWJ,EAAS,OAAO,CAACK,EAAaC,IAAoB,CAClE,GAAIA,EAAU,KAAM,CACZ,MAAAC,EAAeZ,EAAaW,CAAS,EAEpCD,GAAAE,CACT,CAEO,OAAAF,CAAA,EACND,GAAiB,EAAE,CAGxB,CAKA,SAASD,EAASJ,EAAe,CAC/B,IAAIS,EAAsB,CAAA,EAE1B,cAAO,QAAQT,GAAS,CAAA,CAAE,EAAE,QAC1B,CAAC,CAACZ,EAASC,CAAS,IAAyB,CAC3C,MAAMqB,EAAQtB,IAAY,MACpBuB,EAAWvB,IAAY,UAAY,OAAOC,GAAc,SACxDuB,EAASxB,IAAY,aAAe,OAAOC,GAAc,SACzDwB,EAAQvB,EAAaF,EAASC,CAAS,EACvCyB,EAAU1B,EAAQ,MAAM,KAAK,EAEnC,GAAI,EAAEsB,GAASC,GAAYC,GAAUC,GAASC,GACxC,GAAA3B,EAAeC,EAASC,CAAS,EAAG,CAChC,MAAA0B,EAAYxB,EAAoBF,CAAS,EACrCoB,EAAA,KAAK,UAAUM,CAAS,GAAG,CAAA,MAC5B3B,GAAWC,IAAc,GAClCoB,EAAU,KAAK,GAAGrB,CAAO,KAAKA,CAAO,GAAG,EAC/BA,GAAW,OAAOC,GAAc,WACzCoB,EAAU,KAAK,GAAGrB,CAAO,KAAK,OAAOC,CAAS,CAAC,GAAG,CAGxD,CAAA,EAGKoB,EAAU,OAAS,IAAMA,EAAU,KAAK,GAAG,EAAI,EACxD,CC1FgB,SAAAO,EAAUrB,EAAYsB,EAA0B,CAI9D,OAAAC,EAAWvB,EAAMsB,CAAW,EAKrBE,EAAO,OAAAxB,EAAMsB,EAAa,KAAM,EAAI,CAC7C,CAKA,SAASC,EAAWE,EAAgBH,EAA0B,CACtD,MAAAI,EACJD,EAAS,MAAQ,CAAC,WAAY,MAAM,EAAE,SAASA,EAAS,IAAI,EAE1DC,IACOD,EAAA,GAAK,IAAI,kBAEpB,MAAME,EAAWC,EACfF,EAAgB,CAAC,GAAID,EAAS,UAAY,CAAG,CAAA,EAAI,CAACA,CAAQ,CAAA,EAEtDI,EACJP,EAAY,UAAY,OACpB,CAACA,CAAW,EACZ,MAAM,KAAKA,EAAY,UAAU,EAEnCK,GACFG,EAA0BH,EAAUE,CAAW,CAEnD,CAKA,SAASC,EAA0BH,EAAkBE,EAA0B,CAC7E,IAAIE,EAAQ,EAETF,EAAA,OAAQG,GAAcC,EAAsBD,CAAI,CAAC,EACjD,QAAuBE,GAAA,CAClB,IAAAC,EAAWR,EAASI,CAAK,EAC7B,MAAMK,EAAWF,EAAY,SAC7B,IAAIG,EAAO,GAWT,KARAF,GAAA,YAAAA,EAAU,QAAS,OAClBA,GAAA,YAAAA,EAAU,QAAS,SAAUA,GAAA,YAAAA,EAAU,QAAS;AAAA,KAExCJ,GAAA,EACTI,EAAWR,EAASI,CAAK,GAIzBG,GACAC,GACAA,EAAS,MACT,CAAC,OAAQ,SAAS,EAAE,SAASA,EAAS,IAAI,EAC1C,CACA,GAAIA,EAAS,OAAS,QAAUC,IAAa,EAAG,CACxC,KAAA,CAAE,UAAAE,EAAW,OAAAC,CAAA,EAAWC,EAC5Bb,EACAI,CAAA,EAEMA,EAAAQ,EACKL,EAAA,cAAe,aAAaI,EAAWJ,CAAW,CACtD,MAAAC,EAAS,OAAS,WAAaC,IAAa,KAEjDF,EAA4B,SAAW,IAAI,YAAY,IACzDC,EAAS,IAGFE,EAAA,GAEPF,EAAS,GAAKD,GAIbG,GACHP,EACEF,EAAqBO,EAAS,UAAY,EAAE,EAC5C,MAAM,KAAKD,EAAY,UAAU,CAAA,CAGvC,CAEKG,IACMN,GAAA,EACX,CACD,CACL,CAKA,SAASE,EAAsBD,EAA0B,CACnD,MAAA,EAAAA,EAAK,WAAa,GAAK,CAAEA,EAAc,KAAK,QAAQ,OAAQ,EAAE,EAKpE,CAKA,SAASJ,EAAqBa,EAAkB,CAC9C,OAAOA,EAAS,OAAO,CAAC9B,EAAaqB,KAC/BA,EAAK,MAAQ,CAAC,WAAY,MAAM,EAAE,SAASA,EAAK,IAAI,GACjDA,EAAA,GAAK,IAAI,iBACdrB,EAAI,KAAK,GAAGiB,GAAqBI,GAAA,YAAAA,EAAM,WAAY,CAAE,CAAA,CAAC,GAEtDrB,EAAI,KAAKqB,CAAI,EAERrB,GACN,CAAE,CAAA,CACP,CAKA,SAAS6B,EAA4Bb,EAAkBe,EAAgB,CACrE,MAAMC,EAAuBC,EAAwBjB,EAAUe,EAAQ,CAAE,CAAA,EACnEJ,EAAY,IAAI,iBACtB,OAAAK,EAAa,QAAgBX,GAAA,CAC3B,MAAMa,EAAW,SAAS,eAAe,OAAOb,EAAK,IAAI,CAAC,EAC1DA,EAAK,GAAKa,EACVP,EAAU,YAAYO,CAAQ,CAAA,CAC/B,EAEM,CACL,UAAAP,EACA,OAAQI,GAAUC,EAAa,OAAS,EAAA,CAE5C,CAKA,SAASC,EACPjB,EACAe,EACA/B,EACQ,CACR,OAAIgB,EAASe,CAAM,GAAKf,EAASe,CAAM,EAAE,OAAS,QAC5C/B,EAAA,KAAKgB,EAASe,CAAM,CAAC,EAElBE,EAAwBjB,EAAUe,EAAS,EAAG,CAAC,GAAG/B,CAAG,CAAC,GAExDA,CACT,CCxJa,MAAAZ,EAAiB+C,EACjBzB,EAAY0B,EAElB,SAASC,EAAoBC,EAA0B,CACxD,OAAA,OAAO,OAAW,IACb5B,EAAUvC,EAAAA,EAAEmE,EAAa,CAAE,CAAA,EAAG,SAAS,eAAe,EAGxDH,EAAgBhE,EAAA,EAAEmE,EAAa,CAAA,CAAE,CAAC,CAC3C,CAUO,MAAMC,EART"}
package/ssr/package.json CHANGED
@@ -25,7 +25,7 @@
25
25
  "lithent"
26
26
  ],
27
27
  "peerDependencies": {
28
- "lithent": "1.0.0"
28
+ "lithent": "^1.0.0"
29
29
  },
30
30
  "devDependencies": {
31
31
  "express": "^4.21.1",
@@ -51,7 +51,10 @@ function addElementProcessChildren(wDomList: WDom[], realDomList: ChildNode[]) {
51
51
  const nodeType = realDomItem.nodeType;
52
52
  let pass = false;
53
53
 
54
- if (wDomItem?.type === null) {
54
+ if (
55
+ wDomItem?.type === null ||
56
+ (wDomItem?.type === 'text' && wDomItem?.text === '\n')
57
+ ) {
55
58
  index += 1;
56
59
  wDomItem = wDomList[index];
57
60
  }
@@ -1,2 +0,0 @@
1
- (function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))l(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const u of o.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&l(u)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function l(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();const E=e=>typeof e=="object"&&!("resolve"in e),N=(e,t)=>E(e)&&e.type===t,Se=(e,t)=>"ctor"in e?e.ctor===(t==null?void 0:t.ctor):e===(t==null?void 0:t.ctor),Ce=(e,t)=>{var n,l;return E(e)&&(t==null?void 0:t.type)==="fragment"&&((n=t==null?void 0:t.children)==null?void 0:n.length)===((l=e==null?void 0:e.children)==null?void 0:l.length)},Re=(e,t)=>{var n,l;return E(e)&&(t==null?void 0:t.type)==="element"&&(t==null?void 0:t.tag)===e.tag&&((n=t==null?void 0:t.children)==null?void 0:n.length)===((l=e==null?void 0:e.children)==null?void 0:l.length)},J=(e,t)=>E(e)&&(t==null?void 0:t.type)===e.type,we=(e,t)=>{var n,l;return E(e)&&(t==null?void 0:t.type)===e.type&&(S(f((e.children||[])[0]))&&S(f(((t==null?void 0:t.children)||[])[0]))||((n=t==null?void 0:t.children)==null?void 0:n.length)===((l=e==null?void 0:e.children)==null?void 0:l.length))},f=e=>{var t,n;return((t=e==null?void 0:e.compProps)==null?void 0:t.key)??((n=e==null?void 0:e.props)==null?void 0:n.key)},y=e=>e&&["fragment","loop"].includes(e),U=e=>typeof e=="function"&&!te(e)||typeof e=="object"&&"resolve"in e,te=e=>typeof e=="function"&&e===x,ne=e=>E(e)&&!e.type,S=e=>e!=null,_=(e,t)=>e==="style"&&typeof t=="object",xe=(e,t)=>e==="ref"&&typeof t=="object",Ne=(e,t)=>{const n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t);return n&&n.get&&n.set},Ue=e=>{let t="et";return U(e)?t="c":N(e,"fragment")?t="f":N(e,"element")?t="e":N(e,"loop")?t="l":N(e,"text")?t="t":ne(e)&&(t="et"),t},Le={c:Se,l:we,t:J,e:Re,f:Ce,et:J},P=Symbol.for("lithentWDomSymbol"),b={value:""},R={value:{}},j={value:!1},p=new WeakMap,Oe=e=>{p.set(e,{vd:{value:null},up:()=>{},upR:[],upS:{value:0},upD:[],upCB:[],mts:[],umts:[]})},w=()=>R.value,z=(e,t)=>p.get(e)?p.get(e)[t]:null,Ve=e=>R.value=e,Te=e=>{R.value=e,Oe(e)},m=e=>e.getParent&&e.getParent(),C=Object.entries,le=Object.keys,L=Object.assign,Ae=e=>{p.get(w()).umts.push(e)},O=e=>{const{compKey:t}=e;t&&De(t),re(e)},re=e=>{(e.children||[]).forEach(t=>{t.compKey?O(t):re(t)})},De=e=>{const t=p.get(e);t&&(t.umts.forEach(n=>n()),t.umts=[],p.delete(e))};let k=[];const H=()=>{k.forEach(e=>je(e)),k=[]},Me=e=>{e.compKey&&k.push(e)},oe=e=>{var t;return(((t=p.get(w()))==null?void 0:t.mts)||[]).push(e)},je=e=>{const{compKey:t}=e;if(t){const n=p.get(t),l=n==null?void 0:n.mts,r=n==null?void 0:n.upS;R.value=t,r&&(r.value=0),l&&(n.mts=[],l.forEach(o=>{const u=o();u&&Ae(u)}))}},G=(e,t=()=>[])=>{const n=p.get(w()),{upD:l,upS:r}=n,o=l[r.value];if(o&&$e(o,t())){const u=e();u&&n.upCB.push(u)}l[r.value]=t(),r.value+=1},ke=e=>{const{compKey:t}=e;if(t){const n=p.get(t),l=n==null?void 0:n.upCB,r=n==null?void 0:n.upS;R.value=t,r&&(r.value=0),e.ctor&&l&&(n.upCB=[],l.forEach(o=>o()))}},$e=(e,t)=>e.length?e.some((n,l)=>n!==t[l]):!0,Fe=e=>e==="className"?"class":e,ue=e=>e.replace(/^on(.*)/,(t,n)=>n.toLowerCase()),W=()=>new DocumentFragment,Q=e=>document.createElement(e),Ie=(e,t,n,l)=>{e.isRoot=!0,t??(t=document.body),e.wrapElement=t;const r=T(e,l);return t.tagName==="HTML"?t.replaceWith(r):t.appendChild(r),H(),()=>{var o;const u=(o=p.get(e.compProps||{}))==null?void 0:o.vd.value;u&&O(u),V(u||e),Ke(u||e)}},ce=e=>{const{needRerender:t}=e;t&&t!=="N"&&({A:Y,D:q,R:He,U:F,CNSU:F,SR:de,SU:Be}[t](e),delete e.needRerender,delete e.oldChildren,delete e.oldProps)},V=e=>{e.props&&e.el&&ve(e.props,e.el),(e.children||[]).forEach(t=>{V(t)})},Ke=e=>{ie(e,e.wrapElement)},q=e=>{e.oldProps&&e.el&&ve(e.oldProps,e.el),ie(e,A(m(e)))},ie=(e,t)=>{var n,l;t&&e.el&&([1,3].includes((n=e.el)==null?void 0:n.nodeType)?t.removeChild(e.el):((l=e.el)==null?void 0:l.nodeType)===11&&ae(e),delete e.el)},ae=(e,t)=>{((e==null?void 0:e.oldChildren)||(e==null?void 0:e.children)||[]).forEach(n=>{var l;const r=(l=n.el)==null?void 0:l.nodeType;r&&([1,3].includes(r)?n.el.tagName==="HTML"?n.el.innerHTML="":n.el.remove():r===11&&ae(n))})},de=e=>{q(e),Y(e)},Be=e=>{if(F(e),m(e).needRerender!=="CNSU"){const t=se(e);Y(e,t)}},Y=(e,t)=>{t||(t=T(e));const n=m(e);if(n.type){const l=A(n),r=n.type==="loop"&&n.needRerender&&n.needRerender!=="CNSU"?$(n,m(n)):$(e,n);t&&l&&(e.tag!=="portal"&&(r?l.insertBefore(t,r):l.appendChild(t)),H())}},se=e=>y(e.type)?((e==null?void 0:e.children)||[]).reduce((t,n)=>{const l=se(n);return l&&t.appendChild(l),t},W()):e.el,$=(e,t)=>{const n=t.children||[],l=n.indexOf(e)+1,r=n.slice(l),o=pe(r),u=t.type||"";if(o)return o;if(!t.isRoot&&y(u))return $(t,m(t));if(t.isRoot&&y(u)&&t.afterElement)return t.afterElement},pe=e=>e.reduce((t,n)=>{const l=n.type,r=n.el,o=l&&y(l);return t||(o?pe(n.children||[]):r&&r.nodeType!==11?r:t)},void 0),He=e=>{const t=m(e),n=e.el;if(t.type&&n)if(n.nodeType===11)de(e);else{const l=A(t),r=T(e);l&&e.tag!=="portal"&&l.replaceChild(r,n),H()}},ve=(e,t)=>{C(e||{}).forEach(([n,l])=>{n.match(/^on/)&&t.removeEventListener(ue(n),l)})},F=e=>{var t;const n=e.el;if(e.type==="text"){We(e);return}if(n){const{oldProps:l,props:r}=e;fe(r,n,l),delete e.oldProps,e.tag==="input"&&(n.value=String(((t=e==null?void 0:e.props)==null?void 0:t.value)||""))}(e.children||[]).forEach(l=>ce(l)),ke(e)},We=e=>{const t=e.el;t&&(t.nodeValue=String(e.text))},fe=(e,t,n,l)=>{const r={...n};C(e||{}).forEach(([o,u])=>{o==="key"||u===r[o]||o==="portal"&&typeof u=="object"||(o==="innerHTML"&&typeof u=="string"?t.innerHTML=u:_(o,u)?_e(u,_(o,r.style)?r.style:{},t):xe(o,u)?u.value=t:o.match(/^on/)?Je(t,o,u,r[o]):o&&(o!=="type"&&Ne(t,o)?t[o]=u:qe(Fe(o),t,u))),delete r[o]}),le(r).forEach(o=>t.removeAttribute(o))},qe=(e,t,n)=>{b.value&&e!=="xmlns"?t.setAttributeNS(null,e,n):t.setAttribute(e,n)},T=(e,t)=>{let n;const{type:l,tag:r,text:o,props:u,children:i=[]}=e,c=y(l);return r==="svg"&&(b.value=String(u==null?void 0:u.xmlns)),c?n=W():l==="element"&&r?r==="portal"&&u!=null&&u.portal?n=u.portal:n=b.value?document.createElementNS(b.value,r):Q(r):l==="text"&&S(o)?n=document.createTextNode(String(o)):n=Q("e"),e.el=n,Ye(i,n,t),fe(u,n,null),Me(e),r==="svg"&&(b.value=""),n},Ye=(e,t,n)=>{const l=e.reduce((r,o)=>{if(o.type){const u=T(o,n);o.tag!=="portal"&&!n&&r.appendChild(u)}return r},W());t&&l.hasChildNodes()&&t.appendChild(l)},Je=(e,t,n,l)=>{const r=ue(t);l!==n&&(l&&e.removeEventListener(r,l),n&&e.addEventListener(r,n))},_e=(e,t,n)=>{const l={...t},r=n==null?void 0:n.style;r&&(C(e).forEach(([o,u])=>{r[o]=u,delete l[o]}),C(l).forEach(([o])=>r[o]=""))},A=e=>{const t=y(e.type);return e.isRoot&&t?e.wrapElement:t?A(m(e)):e.el},D=(e,t)=>ze(e,Le[Ue(e)](e,t),t),ze=(e,t,n)=>{const l=nt(e,t,n),r=[l,t,n],o=Qe(...r),u=o==="N";return u||(l.children=lt(...r)),l.needRerender=o,Ge(l,n,o),!u&&n&&(n.isLegacy=!0,delete n.children),l},Ge=(e,t,n)=>{n!=="A"&&t&&(e.el=t.el),n&&["D","R","SR"].includes(n)&&(t&&(O(t),V(t)),e.oldChildren=t==null?void 0:t.children),e.oldProps=t==null?void 0:t.props},Qe=(e,t,n)=>{const l=n&&n.type,r=ne(e),o=e.isRoot,u=n&&m(n),i=!o&&(u==null?void 0:u.type),c=f(e),s=i==="loop"&&S(c),v=e.type==="text"&&t&&e.text===(n==null?void 0:n.text),h=e===n;let d;return r?d="D":v||h?d="N":l?t?d=s?"SU":"U":d=s?"SR":"R":d="A",e.type==="loop"&&d==="U"&&n&&Xe(e,n)&&(d="CNSU"),d},Xe=(e,t)=>{const n=[...(t==null?void 0:t.children)||[]],l=[...(e==null?void 0:e.children)||[]].filter(u=>n.find(i=>f(u)===f(i))),r=n.filter(u=>l.find(i=>f(u)===f(i)));let o=r.length===l.length;return o&&(o=r.every((u,i)=>f(u)===f(l[i]))),o},Ze=(e,t)=>{e&&t!==e&&(le(e).forEach(n=>delete e[n]),C(t||{}).forEach(([n,l])=>e[n]=l))},et=(e,t)=>{e&&t!==e&&(e.splice(0,e.length),t&&t.forEach(n=>e.push(n)))},tt=(e,t)=>{const{compProps:n,compChild:l}=e,{props:r,children:o}=t;return n&&Ze(n,r),l&&et(l,o),e.reRender&&e.reRender()},nt=(e,t,n)=>U(e)?t&&n?tt(n,e):e.resolve():e,lt=(e,t,n)=>t&&n?ot(e,n):rt(e),rt=e=>(e.children||[]).map(t=>L(D(t),{getParent:()=>e})),ot=(e,t)=>e.type==="loop"&&S(f((e.children||[])[0]))?ut(e,t):(e.children||[]).map((n,l)=>L(D(n,(t.children||[])[l]),{getParent:()=>e})),ut=(e,t)=>{const[n,l]=ct(e,t);return l.forEach(r=>{O(r),V(r),q(r)}),n},ct=(e,t)=>{const n=[...e.children||[]],l=[...t.children||[]];return[n.map(r=>{const o=it(r,l),u=D(r,o);return o&&l.splice(l.indexOf(o),1),u.getParent=()=>e,u}),l]},it=(e,t)=>t.find(n=>f(n)===f(e)),I=new Map;let K=!1;const at=(e,t)=>{p.get(e)&&(p.get(e).up=()=>{I.set(e,t),K||(K=!0,queueMicrotask(st))})},dt=e=>()=>{var t;const n=(t=p.get(e))==null?void 0:t.up;let l=!1;return n&&(n(),l=!0),l},st=()=>{I.forEach(e=>{e()}),I.clear(),K=!1},he=(e,t=()=>[])=>{p.get(w()).upR.push(()=>G(e,t)),G(e,t)},pt=()=>{var e;const t=(e=p.get(w()))==null?void 0:e.upR;t!=null&&t.length&&t.forEach(n=>n())},x=(e,...t)=>({type:"fragment",[P]:!0,children:t}),a=(e,t,...n)=>{const l={value:void 0},r=t||{},o=Ee(l,n),u=gt(e,r,o);return U(u)||(l.value=u),u},me=e=>(t,n)=>e,vt=(e,t,n,l)=>{var r;if(l.isLegacy)return;j.value=!0;const o=ge(e,t,n),u=D(o,l),{isRoot:i,getParent:c,wrapElement:s,afterElement:v}=l;if(u.getParent=c,!i&&c){const h=((r=c())==null?void 0:r.children)||[],d=h.indexOf(l);h.splice(d,1,u)}else u.isRoot=!0,u.wrapElement=s,u.afterElement=v;j.value=!1,ce(u)},ge=(e,t,n)=>({tagName:e.name,ctor:e,props:t,children:n,resolve:(l=t)=>{Te(l);const r=e(t,n),o=(typeof r=="function"?r:()=>()=>r)(dt(l),t,n);return ft(o,l,e,t,n)}}),ft=(e,t,n,l,r)=>{let o=e,u=e(l);u.reRender&&(o=c=>{const s=e(c),v=x({},s);return s.getParent=()=>v,v},u=o(l));const i=ht(o,t,n,l,r);return ye(u,t,n,l,r,i),u},ht=(e,t,n,l,r)=>{const o=()=>mt(e,t,n,l,r,o);return o},mt=(e,t,n,l,r,o)=>{Ve(t),pt();const u=e(l);return ye(u,t,n,l,r,o),u},ye=(e,t,n,l,r,o)=>{L(e,{compProps:l,compChild:r,ctor:n,tagName:n.name,compKey:t,reRender:o}),at(t,()=>vt(n,l,r,e)),z(t,"vd")&&(z(t,"vd").value=e)},gt=(e,t,n)=>{if(te(e))return x(t,...n);if(U(e)){const l=ge(e,t,n);return j.value?l:l.resolve()}return{type:"element",[P]:!0,tag:e,props:t,children:n}},Ee=(e,t)=>t.map(n=>L(yt(n),{getParent:()=>e.value})),yt=e=>{if(e==null||e===!1)return{type:null,[P]:!0};if(Array.isArray(e)){const t={value:void 0},n=Ee(t,e),l={type:"loop",[P]:!0,children:n};return t.value=l,l}else if(typeof e=="string"||typeof e=="number")return{type:"text",[P]:!0,text:e};return e},Et=e=>({value:e}),B=(e,t)=>{let n=e;return{get value(){return n},get v(){return n},set value(l){n=l,t()},set v(l){n=l,t()}}},bt=e=>{let t=e;return{get value(){return t()},get v(){return t()},set value(n){throw new Error("You can't change 'computed'")},set v(n){throw new Error("You can't change 'computed'")}}},Pt=(e,t=()=>{},n=()=>[])=>{oe(()=>(e(),t)),he(()=>(t&&t(),e),n)},St={cache:!0};function Ct(e){const t={value:!1},n=!Array.isArray(e)&&typeof e=="object"&&e!==null?e:{value:e},l=new Set,r=[],o=new WeakMap;return(u,i,c)=>{const{cache:s}=Object.assign({},St,c||{});if(s&&u&&o.has(u))return o.get(u);const v={},h=new Set;let d={value:null},g=()=>{};return r.push(v),u&&i&&(g=()=>u(d.value),d.value=X(n,t,l,h,r,g,v),t.value=!0,i(d.value),t.value=!1),d.value||(d.value=X(n,t,l,h,r),u&&(g=()=>u(d.value),l.add(g))),u&&(wt(g,l,v,h),o.set(u,d.value)),d.value}}function X(e,t,n,l,r,o,u){return new Proxy(e,{get(i,c){return o&&u&&t.value&&(u[c]??(u[c]=new Set),u[c].has(o)||(u[c].add(o),l.add(c))),i[c]},set(i,c,s){return i[c]===s||(i[c]=s,Rt(n,r,c)),!0}})}function Rt(e,t=[],n){const l=new Set;ee(e).forEach(r=>l.add(r)),(t||[]).forEach(r=>{const o=r[n]||new Set;ee(o).forEach(u=>l.add(u)),Z(l,o)}),Z(l,e)}function Z(e,t){e.forEach(n=>{t.delete(n)})}function ee(e){const t=[];return e.forEach(n=>{n()===!1&&t.push(n)}),t}function wt(e,t,n,l){const r=e();r instanceof AbortSignal&&r.addEventListener("abort",()=>{const o=n||{};t.delete(e),Object.entries(o).forEach(([u,i])=>{i.delete(e),l.delete(u)})})}const xt=me((e,t,n)=>{const l=B(1,e),r=B('"destructuring" the "props" value directly from the mount function will cause referencing issues, so if you want to use it, you need to "destructuring" it from the internal function (updater).',e),o=()=>t.parentValue,u=t.parentValue,i=bt(()=>l.v+s+t.parentValue),c=Ct({text:"s",count:0})(e);let s=t.parentValue;const v=Et(null),h=()=>{l.v=l.v+1,s+=1},d=M=>{r.v=M.target.value},g=()=>{c.count+=1,c.text+="1"},be=()=>(console.log("MOUNTED",v),()=>console.log("UNMOUNT")),Pe=()=>(console.log("UPDATE - parentValue"),()=>console.log("UPDATED"));return oe(be),he(Pe,()=>[t.parentValue]),Pt(()=>console.log("INJECT"),()=>console.log("CLEAN_UP"),()=>[l.v]),({parentValue:M})=>a(x,null,a("div",null,a("textarea",{value:r.v,onInput:d,style:{width:"300px",height:"100px"}})),a("div",null,r.v),a("div",null,a("div",{style:{color:"blue"}},"parentValueFromRef: ",t.parentValue," (working)"),a("div",{style:{color:"blue"}},"parentValueFromFunction: ",o()," (working)"),a("div",{style:{color:"blue"}},"parentValueFromUpdaterDestructuring: ",M," (working)"),a("div",{style:{color:"red"}},"parentValueFromMounterDestructuring: ",u," (not working)")),a("div",null,a("div",{ref:v},"count: ",l.v),a("div",null,"sum: ",l.v+s+t.parentValue),a("div",null,"sum(computed): ",i.v),a("div",null,"notRefValue: ",s),a("div",null,"localStore(text): ",c.text),a("div",null,"localStore(count): ",c.count)),a("button",{onClick:h},"Increase"),a("button",{onClick:g},"localStoreUpdate"),n)}),Nt=me(e=>{const t=B(7,e),n=()=>{t.v=t.v+1},l=()=>{t.v=t.v-1};return()=>a(x,null,a(xt,{parentValue:t.v},a("button",{onClick:n},"Increase - Parent")),a("button",{onClick:l},"Decrease - Parent"))}),Ut=a(Nt,null);Ie(Ut,document.getElementById("root"));
2
- //# sourceMappingURL=index-D3s6A-eb.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index-D3s6A-eb.js","sources":["../../../dist/lithent.mjs","../../../helper/dist/lithentHelper.mjs","../../src/index.tsx"],"sourcesContent":["const R = (e) => typeof e == \"object\" && !(\"resolve\" in e), N = (e, t) => R(e) && e.type === t, pe = (e, t) => \"ctor\" in e ? e.ctor === (t == null ? void 0 : t.ctor) : e === (t == null ? void 0 : t.ctor), he = (e, t) => {\n var s, c;\n return R(e) && (t == null ? void 0 : t.type) === \"fragment\" && ((s = t == null ? void 0 : t.children) == null ? void 0 : s.length) === ((c = e == null ? void 0 : e.children) == null ? void 0 : c.length);\n}, ie = (e, t) => {\n var s, c;\n return R(e) && (t == null ? void 0 : t.type) === \"element\" && (t == null ? void 0 : t.tag) === e.tag && ((s = t == null ? void 0 : t.children) == null ? void 0 : s.length) === ((c = e == null ? void 0 : e.children) == null ? void 0 : c.length);\n}, X = (e, t) => R(e) && (t == null ? void 0 : t.type) === e.type, ye = (e, t) => {\n var s, c;\n return R(e) && (t == null ? void 0 : t.type) === e.type && (E(o((e.children || [])[0])) && E(o(((t == null ? void 0 : t.children) || [])[0])) || ((s = t == null ? void 0 : t.children) == null ? void 0 : s.length) === ((c = e == null ? void 0 : e.children) == null ? void 0 : c.length));\n}, o = (e) => {\n var t, s;\n return ((t = e == null ? void 0 : e.compProps) == null ? void 0 : t.key) ?? ((s = e == null ? void 0 : e.props) == null ? void 0 : s.key);\n}, v = (e) => e && [\"fragment\", \"loop\"].includes(e), T = (e) => typeof e == \"function\" && !g(e) || typeof e == \"object\" && \"resolve\" in e, g = (e) => typeof e == \"function\" && e === J, m = (e) => R(e) && !e.type, E = (e) => e != null, Y = (e, t) => e === \"style\" && typeof t == \"object\", Ce = (e, t) => e === \"ref\" && typeof t == \"object\", ve = (e, t) => {\n const s = Object.getOwnPropertyDescriptor(\n e.constructor.prototype,\n t\n );\n return s && s.get && s.set;\n}, Re = (e) => {\n let t = \"et\";\n return T(e) ? t = \"c\" : N(e, \"fragment\") ? t = \"f\" : N(e, \"element\") ? t = \"e\" : N(e, \"loop\") ? t = \"l\" : N(e, \"text\") ? t = \"t\" : m(e) && (t = \"et\"), t;\n}, ke = {\n c: pe,\n l: ye,\n t: X,\n e: ie,\n f: he,\n et: X\n}, C = Symbol.for(\"lithentWDomSymbol\"), k = { value: \"\" }, S = { value: {} }, O = { value: !1 }, f = /* @__PURE__ */ new WeakMap(), Ee = (e) => {\n f.set(e, {\n vd: { value: null },\n up: () => {\n },\n upR: [],\n upS: { value: 0 },\n upD: [],\n upCB: [],\n mts: [],\n umts: []\n });\n}, a = () => S.value, Z = (e, t) => f.get(e) ? f.get(e)[t] : null, Pe = (e) => S.value = e, Se = (e) => {\n S.value = e, Ee(e);\n}, y = (e) => e.getParent && e.getParent(), P = Object.entries, w = Object.keys, b = Object.assign, lt = (e) => typeof e == \"object\" && !Array.isArray(e) && !Object.getOwnPropertySymbols(e).includes(C), ae = (e) => {\n f.get(a()).umts.push(e);\n}, U = (e) => {\n const { compKey: t } = e;\n t && xe(t), W(e);\n}, W = (e) => {\n (e.children || []).forEach((t) => {\n t.compKey ? U(t) : W(t);\n });\n}, xe = (e) => {\n const t = f.get(e);\n t && (t.umts.forEach((s) => s()), t.umts = [], f.delete(e));\n};\nlet Q = [];\nconst I = () => {\n Q.forEach((e) => Te(e)), Q = [];\n}, Ne = (e) => {\n e.compKey && Q.push(e);\n}, ft = (e) => {\n var t;\n return (((t = f.get(a())) == null ? void 0 : t.mts) || []).push(e);\n}, Te = (e) => {\n const { compKey: t } = e;\n if (t) {\n const s = f.get(t), c = s == null ? void 0 : s.mts, r = s == null ? void 0 : s.upS;\n S.value = t, r && (r.value = 0), c && (s.mts = [], c.forEach((n) => {\n const u = n();\n u && ae(u);\n }));\n }\n}, H = (e, t = () => []) => {\n const s = f.get(a()), { upD: c, upS: r } = s, n = c[r.value];\n if (n && Ue(n, t())) {\n const u = e();\n u && s.upCB.push(u);\n }\n c[r.value] = t(), r.value += 1;\n}, be = (e) => {\n const { compKey: t } = e;\n if (t) {\n const s = f.get(t), c = s == null ? void 0 : s.upCB, r = s == null ? void 0 : s.upS;\n S.value = t, r && (r.value = 0), e.ctor && c && (s.upCB = [], c.forEach((n) => n()));\n }\n}, Ue = (e, t) => e.length ? e.some((s, c) => s !== t[c]) : !0, Fe = (e) => e === \"className\" ? \"class\" : e, D = (e) => e.replace(/^on(.*)/, (t, s) => s.toLowerCase()), z = () => new DocumentFragment(), V = (e) => document.createElement(e), ot = (e, t, s, c) => {\n e.isRoot = !0, t ?? (t = document.body), e.wrapElement = t;\n const r = L(e, c);\n return s ? (e.afterElement = s, t.insertBefore(r, s)) : c || (t.tagName === \"HTML\" ? t.replaceWith(r) : t.appendChild(r)), I(), () => {\n var u;\n const n = (u = f.get(e.compProps || {})) == null ? void 0 : u.vd.value;\n n && U(n), F(n || e), Le(n || e);\n };\n}, ee = (e) => {\n const { needRerender: t } = e;\n t && t !== \"N\" && ({\n A: G,\n D: $,\n R: Me,\n U: B,\n CNSU: B,\n SR: ce,\n SU: Ae\n }[t](e), delete e.needRerender, delete e.oldChildren, delete e.oldProps);\n}, F = (e) => {\n e.props && e.el && ue(e.props, e.el), (e.children || []).forEach((t) => {\n F(t);\n });\n}, Le = (e) => {\n te(e, e.wrapElement);\n}, $ = (e) => {\n e.oldProps && e.el && ue(e.oldProps, e.el), te(\n e,\n A(y(e))\n );\n}, te = (e, t) => {\n var s, c;\n t && e.el && ([1, 3].includes((s = e.el) == null ? void 0 : s.nodeType) ? t.removeChild(e.el) : ((c = e.el) == null ? void 0 : c.nodeType) === 11 && se(e), delete e.el);\n}, se = (e, t) => {\n ((e == null ? void 0 : e.oldChildren) || (e == null ? void 0 : e.children) || []).forEach((s) => {\n var r;\n const c = (r = s.el) == null ? void 0 : r.nodeType;\n c && ([1, 3].includes(c) ? s.el.tagName === \"HTML\" ? s.el.innerHTML = \"\" : s.el.remove() : c === 11 && se(s));\n });\n}, ce = (e) => {\n $(e), G(e);\n}, Ae = (e) => {\n if (B(e), y(e).needRerender !== \"CNSU\") {\n const s = ne(e);\n G(e, s);\n }\n}, G = (e, t) => {\n t || (t = L(e));\n const s = y(e);\n if (s.type) {\n const c = A(s), n = s.type === \"loop\" && s.needRerender && s.needRerender !== \"CNSU\" ? j(s, y(s)) : j(e, s);\n t && c && (e.tag !== \"portal\" && (n ? c.insertBefore(t, n) : c.appendChild(t)), I());\n }\n}, ne = (e) => v(e.type) ? ((e == null ? void 0 : e.children) || []).reduce((t, s) => {\n const c = ne(s);\n return c && t.appendChild(c), t;\n}, z()) : e.el, j = (e, t) => {\n const s = t.children || [], r = s.indexOf(e) + 1, n = s.slice(r), u = re(n), l = t.type || \"\";\n if (u)\n return u;\n if (!t.isRoot && v(l))\n return j(t, y(t));\n if (t.isRoot && v(l) && t.afterElement)\n return t.afterElement;\n}, re = (e) => e.reduce(\n (t, s) => {\n const c = s.type, r = s.el, n = c && v(c);\n return t || (n ? re(s.children || []) : r && r.nodeType !== 11 ? r : t);\n },\n void 0\n), Me = (e) => {\n const t = y(e), s = e.el;\n if (t.type && s)\n if (s.nodeType === 11)\n ce(e);\n else {\n const c = A(t), r = L(e);\n c && e.tag !== \"portal\" && c.replaceChild(r, s), I();\n }\n}, ue = (e, t) => {\n P(e || {}).forEach(([s, c]) => {\n s.match(/^on/) && t.removeEventListener(\n D(s),\n c\n );\n });\n}, B = (e) => {\n var s;\n const t = e.el;\n if (e.type === \"text\") {\n Oe(e);\n return;\n }\n if (t) {\n const { oldProps: c, props: r } = e;\n le(r, t, c), delete e.oldProps, e.tag === \"input\" && (t.value = String(((s = e == null ? void 0 : e.props) == null ? void 0 : s.value) || \"\"));\n }\n (e.children || []).forEach((c) => ee(c)), be(e);\n}, Oe = (e) => {\n const t = e.el;\n t && (t.nodeValue = String(e.text));\n}, le = (e, t, s, c) => {\n const r = { ...s };\n P(e || {}).forEach(([n, u]) => {\n c && n.match(/^on/) ? K(\n t,\n n,\n u,\n r[n]\n ) : (n === \"key\" || u === r[n] || n === \"portal\" && typeof u == \"object\" || (n === \"innerHTML\" && typeof u == \"string\" ? t.innerHTML = u : Y(n, u) ? Be(\n u,\n Y(n, r.style) ? r.style : {},\n t\n ) : Ce(n, u) ? u.value = t : n.match(/^on/) ? K(\n t,\n n,\n u,\n r[n]\n ) : n && (n !== \"type\" && ve(t, n) ? t[n] = u : Qe(\n Fe(n),\n t,\n u\n ))), delete r[n]);\n }), w(r).forEach(\n (n) => t.removeAttribute(n)\n );\n}, Qe = (e, t, s) => {\n k.value && e !== \"xmlns\" ? t.setAttributeNS(null, e, s) : t.setAttribute(e, s);\n}, L = (e, t) => {\n let s;\n const { type: c, tag: r, text: n, props: u, children: l = [] } = e, h = v(c);\n return r === \"svg\" && (k.value = String(u == null ? void 0 : u.xmlns)), t ? s = e.el : (h ? s = z() : c === \"element\" && r ? r === \"portal\" && (u != null && u.portal) ? s = u.portal : s = k.value ? document.createElementNS(k.value, r) : V(r) : c === \"text\" && E(n) ? s = document.createTextNode(String(n)) : s = V(\"e\"), e.el = s), je(l, s, t), le(u, s, null, t), Ne(e), r === \"svg\" && (k.value = \"\"), s;\n}, je = (e, t, s) => {\n const c = e.reduce(\n (r, n) => {\n if (n.type) {\n const u = L(n, s);\n n.tag !== \"portal\" && !s && r.appendChild(u);\n }\n return r;\n },\n z()\n );\n !s && t && c.hasChildNodes() && t.appendChild(c);\n}, K = (e, t, s, c) => {\n const r = D(t);\n c !== s && (c && e.removeEventListener(r, c), s && e.addEventListener(r, s));\n}, Be = (e, t, s) => {\n const c = { ...t }, r = s == null ? void 0 : s.style;\n r && (P(e).forEach(([n, u]) => {\n r[n] = u, delete c[n];\n }), P(c).forEach(\n ([n]) => r[n] = \"\"\n ));\n}, A = (e) => {\n const t = v(e.type);\n return e.isRoot && t ? e.wrapElement : t ? A(y(e)) : e.el;\n}, M = (e, t) => qe(\n e,\n ke[Re(e)](e, t),\n t\n), qe = (e, t, s) => {\n const c = Xe(e, t, s), r = [\n c,\n t,\n s\n ], n = Ie(...r), u = n === \"N\";\n return u || (c.children = Ye(...r)), c.needRerender = n, _e(c, s, n), !u && s && (s.isLegacy = !0, delete s.children), c;\n}, _e = (e, t, s) => {\n s !== \"A\" && t && (e.el = t.el), s && [\"D\", \"R\", \"SR\"].includes(s) && (t && (U(t), F(t)), e.oldChildren = t == null ? void 0 : t.children), e.oldProps = t == null ? void 0 : t.props;\n}, Ie = (e, t, s) => {\n const c = s && s.type, r = m(e), n = e.isRoot, u = s && y(s), l = !n && (u == null ? void 0 : u.type), h = o(e), p = l === \"loop\" && E(h), i = e.type === \"text\" && t && e.text === (s == null ? void 0 : s.text), x = e === s;\n let d;\n return r ? d = \"D\" : i || x ? d = \"N\" : c ? t ? d = p ? \"SU\" : \"U\" : d = p ? \"SR\" : \"R\" : d = \"A\", e.type === \"loop\" && d === \"U\" && s && ze(e, s) && (d = \"CNSU\"), d;\n}, ze = (e, t) => {\n const s = [...(t == null ? void 0 : t.children) || []], c = [...(e == null ? void 0 : e.children) || []].filter(\n (u) => s.find((l) => o(u) === o(l))\n ), r = s.filter(\n (u) => c.find((l) => o(u) === o(l))\n );\n let n = r.length === c.length;\n return n && (n = r.every(\n (u, l) => o(u) === o(c[l])\n )), n;\n}, $e = (e, t) => {\n e && t !== e && (w(e).forEach((s) => delete e[s]), P(t || {}).forEach(([s, c]) => e[s] = c));\n}, Ge = (e, t) => {\n e && t !== e && (e.splice(0, e.length), t && t.forEach((s) => e.push(s)));\n}, Je = (e, t) => {\n const { compProps: s, compChild: c } = e, { props: r, children: n } = t;\n return s && $e(s, r), c && Ge(c, n), e.reRender && e.reRender();\n}, Xe = (e, t, s) => T(e) ? t && s ? Je(s, e) : e.resolve() : e, Ye = (e, t, s) => t && s ? He(e, s) : Ze(e), Ze = (e) => (e.children || []).map(\n (t) => b(M(t), { getParent: () => e })\n), He = (e, t) => e.type === \"loop\" && E(o((e.children || [])[0])) ? Ve(e, t) : (e.children || []).map(\n (s, c) => b(M(s, (t.children || [])[c]), {\n getParent: () => e\n })\n), Ve = (e, t) => {\n const [s, c] = Ke(\n e,\n t\n );\n return c.forEach((r) => {\n U(r), F(r), $(r);\n }), s;\n}, Ke = (e, t) => {\n const s = [...e.children || []], c = [...t.children || []];\n return [s.map((n) => {\n const u = ge(n, c), l = M(n, u);\n return u && c.splice(c.indexOf(u), 1), l.getParent = () => e, l;\n }), c];\n}, ge = (e, t) => t.find(\n (s) => o(s) === o(e)\n), q = /* @__PURE__ */ new Map();\nlet _ = !1;\nconst me = (e, t) => {\n f.get(e) && (f.get(e).up = () => {\n q.set(e, t), _ || (_ = !0, queueMicrotask(We));\n });\n}, we = (e) => () => {\n var c;\n const t = (c = f.get(e)) == null ? void 0 : c.up;\n let s = !1;\n return t && (t(), s = !0), s;\n}, We = () => {\n q.forEach((e) => {\n e();\n }), q.clear(), _ = !1;\n}, dt = (e, t = () => []) => {\n f.get(a()).upR.push(() => H(e, t)), H(e, t);\n}, De = () => {\n var t;\n const e = (t = f.get(a())) == null ? void 0 : t.upR;\n e != null && e.length && e.forEach((s) => s());\n}, J = (e, ...t) => ({\n type: \"fragment\",\n [C]: !0,\n children: t\n}), et = (e, t, ...s) => {\n const c = { value: void 0 }, r = t || {}, n = de(c, s), u = rt(e, r, n);\n return T(u) || (c.value = u), u;\n}, pt = (e, t) => et(\"portal\", { portal: t }, e), ht = (e) => (t, s) => e, tt = (e, t, s, c) => {\n var i;\n if (c.isLegacy)\n return;\n O.value = !0;\n const r = fe(e, t, s), n = M(r, c), { isRoot: u, getParent: l, wrapElement: h, afterElement: p } = c;\n if (n.getParent = l, !u && l) {\n const x = ((i = l()) == null ? void 0 : i.children) || [], d = x.indexOf(c);\n x.splice(d, 1, n);\n } else\n n.isRoot = !0, n.wrapElement = h, n.afterElement = p;\n O.value = !1, ee(n);\n}, fe = (e, t, s) => ({ tagName: e.name, ctor: e, props: t, children: s, resolve: (u = t) => {\n Se(u);\n const l = e(t, s), p = (typeof l == \"function\" ? l : () => () => l)(we(u), t, s);\n return st(\n p,\n u,\n e,\n t,\n s\n );\n} }), st = (e, t, s, c, r) => {\n let n = e, u = e(c);\n u.reRender && (n = (h) => {\n const p = e(h), i = J({}, p);\n return p.getParent = () => i, i;\n }, u = n(c));\n const l = ct(\n n,\n t,\n s,\n c,\n r\n );\n return oe(u, t, s, c, r, l), u;\n}, ct = (e, t, s, c, r) => {\n const n = () => nt(e, t, s, c, r, n);\n return n;\n}, nt = (e, t, s, c, r, n) => {\n Pe(t), De();\n const u = e(c);\n return oe(u, t, s, c, r, n), u;\n}, oe = (e, t, s, c, r, n) => {\n b(e, {\n compProps: c,\n compChild: r,\n ctor: s,\n tagName: s.name,\n compKey: t,\n reRender: n\n }), me(\n t,\n () => tt(s, c, r, e)\n ), Z(t, \"vd\") && (Z(t, \"vd\").value = e);\n}, rt = (e, t, s) => {\n if (g(e))\n return J(t, ...s);\n if (T(e)) {\n const c = fe(e, t, s);\n return O.value ? c : c.resolve();\n }\n return {\n type: \"element\",\n [C]: !0,\n tag: e,\n props: t,\n children: s\n };\n}, de = (e, t) => t.map(\n (s) => b(ut(s), { getParent: () => e.value })\n), ut = (e) => {\n if (e == null || e === !1)\n return { type: null, [C]: !0 };\n if (Array.isArray(e)) {\n const t = { value: void 0 }, s = de(t, e), c = {\n type: \"loop\",\n [C]: !0,\n children: s\n };\n return t.value = c, c;\n } else if (typeof e == \"string\" || typeof e == \"number\")\n return { type: \"text\", [C]: !0, text: e };\n return e;\n}, it = (e) => ({ value: e }), yt = () => Promise.resolve();\nexport {\n J as Fragment,\n we as componentUpdate,\n et as h,\n lt as isPropType,\n ht as mount,\n ft as mountCallback,\n yt as nextTick,\n pt as portal,\n it as ref,\n ot as render,\n dt as updateCallback\n};\n//# sourceMappingURL=lithent.mjs.map\n","import { mountCallback as y, updateCallback as S, nextTick as T, render as w } from \"lithent\";\nconst L = (t, e) => {\n let n = t;\n return {\n get value() {\n return n;\n },\n get v() {\n return n;\n },\n set value(c) {\n n = c, e();\n },\n set v(c) {\n n = c, e();\n }\n };\n}, U = (t) => {\n let e = t;\n return {\n get value() {\n return e();\n },\n get v() {\n return e();\n },\n set value(n) {\n throw new Error(\"You can't change 'computed'\");\n },\n set v(n) {\n throw new Error(\"You can't change 'computed'\");\n }\n };\n}, b = (t, e = () => {\n}, n = () => []) => {\n y(() => (t(), e)), S(() => (e && e(), t), n);\n}, x = { cache: !0 };\nfunction k(t) {\n const e = { value: !1 }, c = !Array.isArray(t) && typeof t == \"object\" && t !== null ? t : { value: t }, s = /* @__PURE__ */ new Set(), l = [], u = /* @__PURE__ */ new WeakMap();\n return (a, o, r) => {\n const { cache: d } = Object.assign({}, x, r || {});\n if (d && a && u.has(a))\n return u.get(a);\n const h = {}, v = /* @__PURE__ */ new Set();\n let f = { value: null }, i = () => {\n };\n return l.push(h), a && o && (i = () => a(f.value), f.value = g(\n c,\n e,\n s,\n v,\n l,\n i,\n h\n ), e.value = !0, o(f.value), e.value = !1), f.value || (f.value = g(\n c,\n e,\n s,\n v,\n l\n ), a && (i = () => a(f.value), s.add(i))), a && (j(\n i,\n s,\n h,\n v\n ), u.set(a, f.value)), f.value;\n };\n}\nfunction g(t, e, n, c, s, l, u) {\n return new Proxy(t, {\n get(o, r) {\n return l && u && e.value && (u[r] ?? (u[r] = /* @__PURE__ */ new Set()), u[r].has(l) || (u[r].add(l), c.add(r))), o[r];\n },\n set(o, r, d) {\n return o[r] === d || (o[r] = d, C(n, s, r)), !0;\n }\n });\n}\nfunction C(t, e = [], n) {\n const c = /* @__PURE__ */ new Set();\n m(t).forEach(\n (s) => c.add(s)\n ), (e || []).forEach((s) => {\n const l = s[n] || /* @__PURE__ */ new Set();\n m(l).forEach(\n (u) => c.add(u)\n ), E(c, l);\n }), E(c, t);\n}\nfunction E(t, e) {\n t.forEach((n) => {\n e.delete(n);\n });\n}\nfunction m(t) {\n const e = [];\n return t.forEach((n) => {\n n() === !1 && e.push(n);\n }), e;\n}\nfunction j(t, e, n, c) {\n const s = t();\n s instanceof AbortSignal && s.addEventListener(\"abort\", () => {\n const l = n || {};\n e.delete(t), Object.entries(l).forEach(([u, a]) => {\n a.delete(t), c.delete(u);\n });\n });\n}\nconst D = (t, e) => {\n let n = [], c = null;\n return (s) => {\n const l = t(), u = n.every((o, r) => o === l[r]);\n if (n = l, u && c)\n return c;\n const a = e(s);\n return c = a, a;\n };\n}, P = (t, e, n) => {\n let c = () => {\n };\n return T().then(() => {\n c = w(t(), e, n);\n }), () => c();\n};\nexport {\n D as cacheUpdate,\n U as computed,\n b as effect,\n P as nextTickRender,\n L as state,\n k as store\n};\n//# sourceMappingURL=lithentHelper.mjs.map\n","// example.jsx\nimport {\n h,\n Fragment,\n render,\n ref,\n mountCallback,\n updateCallback,\n mount,\n} from 'lithent';\nimport { state, computed, effect, store } from 'lithent/helper';\n\n// This is the \"mount\" function.\n// This function is only executed on mount, and on update, only updates `props` and then executes the internal return function.\n// childen is passed as the second argument.\nconst ChildComponent = mount<{ parentValue: number }>(\n (renew, props, children) => {\n // The value is used as a \"getter\" to make it easy to get and write to in the higher-order functions it returns\n const count = state<number>(1, renew);\n const text = state<string>(\n '\"destructuring\" the \"props\" value directly from the mount function will cause referencing issues, so if you want to use it, you need to \"destructuring\" it from the internal function (updater).',\n renew\n );\n const getParentValue = () => props.parentValue;\n const parentValueFromMount = props.parentValue;\n const summ = computed<number>(\n () => count.v + notRefValue + props.parentValue\n );\n\n const localStore = store<{ text: string; count: number }>({\n text: 's',\n count: 0,\n })(renew);\n /*\n // To share a store, make it externally and use `asign`.\n const asignStore = store<{ text: string; count: number }>({ text: 's', count: 0 });\n\n const sharedStore = asignStore(nenew);\n */\n\n // Even if you don't use a ref, the private value is always maintained as a regular variable.\n let notRefValue = props.parentValue;\n\n // Ref is only used to reference the DOM.\n const domRef = ref(null);\n\n const increase = () => {\n count.v = count.v + 1;\n notRefValue += 1;\n };\n\n const handleInputChane = (event: InputEvent) => {\n text.v = (event.target as HTMLInputElement).value;\n };\n\n const localStoreUpdate = () => {\n localStore.count += 1;\n localStore.text += '1';\n };\n\n const handleMounted = () => {\n console.log('MOUNTED', domRef);\n\n return () => console.log('UNMOUNT');\n };\n const handleUpdated = () => {\n console.log('UPDATE - parentValue');\n\n return () => console.log('UPDATED');\n };\n\n mountCallback(handleMounted);\n updateCallback(handleUpdated, () => [props.parentValue]); // Only Defs Updated (using a closure to update a value)\n\n // Behaves like `react`'s `useEffect`\n effect(\n () => console.log('INJECT'),\n () => console.log('CLEAN_UP'),\n () => [count.v]\n );\n\n // Wrap in a function and return (using a closure to hold the value)\n // This is the \"update\" function.\n return ({ parentValue }) => (\n <Fragment>\n {/* Note that the event is onInput (we use the native event name to avoid confusion). */}\n <div>\n <textarea\n value={text.v}\n onInput={handleInputChane}\n style={{ width: '300px', height: '100px' }}\n />\n </div>\n <div>{text.v}</div>\n <div>\n <div style={{ color: 'blue' }}>\n parentValueFromRef: {props.parentValue} (working)\n </div>\n <div style={{ color: 'blue' }}>\n parentValueFromFunction: {getParentValue()} (working)\n </div>\n <div style={{ color: 'blue' }}>\n parentValueFromUpdaterDestructuring: {parentValue} (working)\n </div>\n <div style={{ color: 'red' }}>\n parentValueFromMounterDestructuring: {parentValueFromMount} (not\n working)\n </div>\n </div>\n <div>\n <div ref={domRef}>count: {count.v}</div>\n <div>sum: {count.v + notRefValue + props.parentValue}</div>\n <div>sum(computed): {summ.v}</div>\n {/* It doesn't pull it out from under the reference, it uses the value directly, so you can just use it. */}\n <div>notRefValue: {notRefValue}</div>\n <div>localStore(text): {localStore.text}</div>\n <div>localStore(count): {localStore.count}</div>\n </div>\n <button onClick={increase}>Increase</button>\n <button onClick={localStoreUpdate}>localStoreUpdate</button>\n {children}\n </Fragment>\n );\n }\n);\n\nconst Root = mount(renew => {\n const parentNumber = state<number>(7, renew);\n\n const increaseParent = () => {\n parentNumber.v = parentNumber.v + 1;\n };\n\n const decreaseParent = () => {\n parentNumber.v = parentNumber.v - 1;\n };\n\n return () => (\n <Fragment>\n <ChildComponent parentValue={parentNumber.v}>\n <button onClick={increaseParent}>Increase - Parent</button>\n </ChildComponent>\n <button onClick={decreaseParent}>Decrease - Parent</button>\n </Fragment>\n );\n});\nconst root = <Root />;\n\nrender(root, document.getElementById('root'));\n"],"names":["R","pe","he","s","c","ie","X","ye","E","o","v","T","g","J","m","Y","Ce","ve","Re","ke","C","k","S","O","f","Ee","a","Z","Pe","Se","y","P","w","b","ae","U","xe","W","Q","I","Te","Ne","ft","n","H","Ue","be","D","z","V","ot","L","u","F","Le","ee","G","$","Me","B","ce","Ae","ue","te","se","r","ne","j","re","l","t","Oe","le","Be","K","Qe","h","je","M","qe","Xe","Ie","Ye","_e","p","i","x","ze","$e","Ge","Je","He","Ze","Ve","Ke","ge","q","_","me","We","we","dt","De","e","et","de","rt","ht","tt","fe","st","ct","oe","nt","ut","it","d","ChildComponent","mount","renew","props","children","count","state","text","getParentValue","parentValueFromMount","summ","computed","notRefValue","localStore","store","domRef","ref","increase","handleInputChane","event","localStoreUpdate","handleMounted","handleUpdated","mountCallback","updateCallback","effect","parentValue","Fragment","Root","parentNumber","increaseParent","decreaseParent","root","render"],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import { h, render, mount, Fragment } from 'lithent';
2
- import { state } from 'lithent/helper';
3
- import htm from 'htm';
4
- const html = htm.bind(h);
5
-
6
- const Component = mount((r, _props) => {
7
- const count = state(0, r);
8
-
9
- const change = () => (count.v += 1);
10
-
11
- // Updater
12
- return () => html`
13
- <${Fragment}>
14
- <li>count: ${count.v}</li>
15
- <button onClick=${change}>increase</button>
16
- <//>
17
- `;
18
- });
19
-
20
- render(html`<${Component} />`, document.getElementById('root'));