lithent 1.11.0 → 1.11.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 +15 -15
- package/examples/dist/assets/index-DIuCd_7X.js +2 -0
- package/examples/dist/assets/index-DIuCd_7X.js.map +1 -0
- package/examples/dist/index.html +1 -1
- package/helper/dist/hook/store.d.ts +1 -1
- package/helper/dist/lithentHelper.mjs +93 -83
- package/helper/dist/lithentHelper.mjs.map +1 -1
- package/helper/dist/lithentHelper.umd.js +1 -1
- package/helper/dist/lithentHelper.umd.js.map +1 -1
- package/helper/src/hook/store.ts +80 -69
- package/package.json +28 -28
- package/examples/dist/assets/index-gAvzjQ3v.js +0 -2
- package/examples/dist/assets/index-gAvzjQ3v.js.map +0 -1
package/README.md
CHANGED
|
@@ -78,14 +78,14 @@ pnpm add lithent
|
|
|
78
78
|
|
|
79
79
|
#### Or Use CDN
|
|
80
80
|
|
|
81
|
-
* UMD : https://cdn.jsdelivr.net/npm/lithent@1.11.
|
|
82
|
-
* UMD-HELPER: https://cdn.jsdelivr.net/npm/lithent@1.11.
|
|
83
|
-
* UMD-FTAGS: https://cdn.jsdelivr.net/npm/lithent@1.11.
|
|
84
|
-
* UMD-TAG: https://cdn.jsdelivr.net/npm/lithent@1.11.
|
|
85
|
-
* ESM : https://cdn.jsdelivr.net/npm/lithent@1.11.
|
|
86
|
-
* ESM-HELPER: https://cdn.jsdelivr.net/npm/lithent@1.11.
|
|
87
|
-
* ESM-FTAGS: https://cdn.jsdelivr.net/npm/lithent@1.11.
|
|
88
|
-
* ESM-TAG: https://cdn.jsdelivr.net/npm/lithent@1.11.
|
|
81
|
+
* UMD : https://cdn.jsdelivr.net/npm/lithent@1.11.2/dist/lithent.umd.js
|
|
82
|
+
* UMD-HELPER: https://cdn.jsdelivr.net/npm/lithent@1.11.2/helper/dist/lithentHelper.umd.js
|
|
83
|
+
* UMD-FTAGS: https://cdn.jsdelivr.net/npm/lithent@1.11.2/ftags/dist/lithentFTags.umd.js
|
|
84
|
+
* UMD-TAG: https://cdn.jsdelivr.net/npm/lithent@1.11.2/tag/dist/lithentTag.umd.js
|
|
85
|
+
* ESM : https://cdn.jsdelivr.net/npm/lithent@1.11.2/dist/lithent.mjs
|
|
86
|
+
* ESM-HELPER: https://cdn.jsdelivr.net/npm/lithent@1.11.2/helper/dist/lithentHelper.mjs
|
|
87
|
+
* ESM-FTAGS: https://cdn.jsdelivr.net/npm/lithent@1.11.2/ftags/dist/lithentFTags.mjs
|
|
88
|
+
* ESM-TAG: https://cdn.jsdelivr.net/npm/lithent@1.11.2/tag/dist/lithentTag.mjs
|
|
89
89
|
|
|
90
90
|
|
|
91
91
|
It's easier to use lithent with JSX or HTM.
|
|
@@ -110,9 +110,9 @@ import { fTags, fFragment, fMount } from 'lithent/ftags';
|
|
|
110
110
|
const { section, div, p, br, strong } = fTags;
|
|
111
111
|
|
|
112
112
|
/* UMD
|
|
113
|
-
<script src="https://cdn.jsdelivr.net/npm/lithent@1.11.
|
|
114
|
-
<script src="https://cdn.jsdelivr.net/npm/lithent@1.11.
|
|
115
|
-
<script src="https://cdn.jsdelivr.net/npm/lithent@1.11.
|
|
113
|
+
<script src="https://cdn.jsdelivr.net/npm/lithent@1.11.2/dist/lithent.umd.js"></script>
|
|
114
|
+
<script src="https://cdn.jsdelivr.net/npm/lithent@1.11.2/helper/dist/lithentHelper.umd.js"></script>
|
|
115
|
+
<script src="https://cdn.jsdelivr.net/npm/lithent@1.11.2/ftags/dist/lithentFTags.umd.js"></script>
|
|
116
116
|
|
|
117
117
|
const { render } = lithent;
|
|
118
118
|
const { fTags, fMount, fFragment } = lithentFTags;
|
|
@@ -184,10 +184,10 @@ const destroy = render(lTag`<${Component} />`, document.getElementById('root'),
|
|
|
184
184
|
#### With UMD
|
|
185
185
|
|
|
186
186
|
```html
|
|
187
|
-
<script src="https://cdn.jsdelivr.net/npm/lithent@1.11.
|
|
188
|
-
<!--script src="https://cdn.jsdelivr.net/npm/lithent@1.11.
|
|
189
|
-
<script src="https://cdn.jsdelivr.net/npm/lithent@1.11.
|
|
190
|
-
<!--script src="https://cdn.jsdelivr.net/npm/lithent@1.11.
|
|
187
|
+
<script src="https://cdn.jsdelivr.net/npm/lithent@1.11.2/dist/lithent.umd.js"></script>
|
|
188
|
+
<!--script src="https://cdn.jsdelivr.net/npm/lithent@1.11.2/helper/dist/lithentHelper.umd.js"></script-->
|
|
189
|
+
<script src="https://cdn.jsdelivr.net/npm/lithent@1.11.2/tag/dist/lithentTag.umd.js"></script>
|
|
190
|
+
<!--script src="https://cdn.jsdelivr.net/npm/lithent@1.11.2/ftags/dist/lithentFTags.umd.js"></script-->
|
|
191
191
|
|
|
192
192
|
<div id="root"></div>
|
|
193
193
|
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))l(o);new MutationObserver(o=>{for(const r of o)if(r.type==="childList")for(const u of r.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&l(u)}).observe(document,{childList:!0,subtree:!0});function n(o){const r={};return o.integrity&&(r.integrity=o.integrity),o.referrerPolicy&&(r.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?r.credentials="include":o.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function l(o){if(o.ep)return;o.ep=!0;const r=n(o);fetch(o.href,r)}})();const y=e=>typeof e=="object"&&!("resolve"in e),S=(e,t)=>y(e)&&e.type===t,xe=(e,t)=>"ctor"in e?e.ctor===(t==null?void 0:t.ctor):e===(t==null?void 0:t.ctor),be=(e,t)=>{var n,l;return y(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)},Se=(e,t)=>{var n,l;return y(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)},Y=(e,t)=>y(e)&&(t==null?void 0:t.type)===e.type,Ne=(e,t)=>{var n,l;return y(e)&&(t==null?void 0:t.type)===e.type&&(P(v((e.children||[])[0]))&&P(v(((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))},v=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)},g=e=>e&&["fragment","loop"].includes(e),N=e=>typeof e=="function"&&!Q(e)||typeof e=="object"&&"resolve"in e,Q=e=>typeof e=="function"&&e===b,Z=e=>y(e)&&!e.type,P=e=>e!=null,J=(e,t)=>e==="style"&&typeof t=="object",Oe=(e,t)=>e==="ref"&&typeof t=="object",Te=e=>e.nodeType===1&&e.tagName==="OPTION",Ue=e=>e.nodeType===1&&e.tagName==="TEXTAREA",we=e=>e.nodeType===1&&["radio","checkbox"].includes(e.type),Ve=e=>{let t="et";return N(e)?t="c":S(e,"fragment")?t="f":S(e,"element")?t="e":S(e,"loop")?t="l":S(e,"text")?t="t":Z(e)&&(t="et"),t},Ae={c:xe,l:Ne,t:Y,e:Se,f:be,et:Y},f=e=>e.getParent&&e.getParent(),C=Object.entries,ee=Object.keys,O=Object.assign,E={value:""},R={value:{}},D={value:!1},a=new WeakMap,Le=e=>{a.set(e,{vd:{value:null},up:()=>{},upR:[],upS:{value:0},upD:[],upCB:[],mts:[],umts:[]})},x=()=>R.value,te=(e,t)=>a.get(e)[t],De=e=>R.value=e,ke=e=>{R.value=e,Le(e)},je=e=>{a.get(x()).umts.push(e)},T=e=>{const{compKey:t}=e;t&&Me(t),ne(e)},ne=e=>{(e.children||[]).forEach(t=>{t.compKey?T(t):ne(t)})},Me=e=>{const t=a.get(e);t&&(t.umts.forEach(n=>n()),t.umts=[],a.delete(e))};let k=[];const $=()=>{k.forEach(e=>Ie(e)),k=[]},Fe=e=>{e.compKey&&k.push(e)},le=e=>a.get(x()).mts.push(e),Ie=e=>{const{compKey:t}=e;if(t){const n=a.get(t),l=n==null?void 0:n.mts,o=n==null?void 0:n.upS;R.value=t,o&&(o.value=0),l&&(n.mts=[],l.forEach(r=>{const u=r();u&&je(u)}))}},W=(e,t=()=>[])=>{const n=a.get(x()),{upD:l,upS:o}=n,r=l[o.value];if(r&&$e(r,t())){const u=e();u&&n.upCB.push(u)}l[o.value]=t(),o.value+=1},Ke=e=>{const{compKey:t}=e;if(t){const n=a.get(t),l=n==null?void 0:n.upCB,o=n==null?void 0:n.upS;R.value=t,o&&(o.value=0),e.ctor&&l&&(n.upCB=[],l.forEach(r=>r()))}},$e=(e,t)=>e.length?e.some((n,l)=>n!==t[l]):!0,Be=e=>e==="className"?"class":e,oe=e=>e.replace(/^on(.*)/,(t,n)=>n.toLowerCase()),B=()=>new DocumentFragment,X=e=>document.createElement(e),qe=(e,t,n)=>{t??(t=document.body),e.isRoot=!0,e.wrapElement=t;const l=w(e);return t.appendChild(l),$(),()=>{var o;const r=(o=a.get(e.compProps||{}))==null?void 0:o.vd.value;r&&T(r),U(r||e),He(r||e)}},re=e=>{const{needRerender:t}=e;t&&t!=="N"&&({A:H,D:q,R:Je,U:M,CNSU:M,SR:ie,SU:Ye}[t](e),delete e.needRerender,delete e.oldChildren,delete e.oldProps)},U=e=>{e.props&&e.el&&ae(e.props,e.el),(e.children||[]).forEach(t=>{U(t)})},He=e=>{ue(e,e.wrapElement)},q=e=>{e.oldProps&&e.el&&ae(e.oldProps,e.el),ue(e,V(f(e)))},ue=(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&&ce(e,t),delete e.el)},ce=(e,t)=>{((e==null?void 0:e.oldChildren)||(e==null?void 0:e.children)||[]).forEach(n=>{var l;const o=(l=n.el)==null?void 0:l.nodeType;o&&([1,3].includes(o)?t.removeChild(n==null?void 0:n.el):o===11&&ce(n,t))})},ie=e=>{q(e),H(e)},Ye=e=>{if(M(e),f(e).needRerender!=="CNSU"){const t=de(e);H(e,t)}},H=(e,t)=>{t||(t=w(e));const n=f(e);if(n.type){const l=V(n),o=n.type==="loop"&&n.needRerender&&n.needRerender!=="CNSU"?j(n,f(n)):j(e,n);t&&l&&(o?l.insertBefore(t,o):l.appendChild(t),$())}},de=e=>g(e.type)?((e==null?void 0:e.children)||[]).reduce((t,n)=>{const l=de(n);return l&&t.appendChild(l),t},B()):e.el,j=(e,t)=>{const n=t.children||[],l=n.indexOf(e)+1,o=n.slice(l),r=se(o),u=t.type||"";if(r)return r;if(!t.isRoot&&g(u))return j(t,f(t));if(t.isRoot&&g(u)&&t.afterElement)return t.afterElement},se=e=>e.reduce((t,n)=>{const l=n.type,o=n.el,r=l&&g(l);return t||(r?se(n.children||[]):o&&o.nodeType!==11?o:t)},void 0),Je=e=>{const t=f(e),n=e.el;if(t.type&&n)if(n.nodeType===11)ie(e);else{const l=V(t),o=w(e);l&&l.replaceChild(o,n),$()}},ae=(e,t)=>{C(e||{}).forEach(([n,l])=>{n.match(/^on/)&&t.removeEventListener(oe(n),l)})},M=e=>{var t;const n=e.el;if(e.type==="text"){We(e);return}if(n){const{oldProps:l,props:o}=e;pe(o,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=>re(l)),Ke(e)},We=e=>{const t=e.el;t&&(t.nodeValue=String(e.text))},pe=(e,t,n)=>{const l={...n};C(e||{}).forEach(([o,r])=>{let u=!0;o==="key"||r===l[o]||(o==="innerHTML"&&typeof r=="string"?t.innerHTML=r:J(o,r)?Qe(r,J(o,l.style)?l.style:{},t):Oe(o,r)?r.value=t:o.match(/^on/)?Ge(t,o,r,l[o]):we(t)&&o==="checked"?t.checked=!!r:Ue(t)&&o==="value"?t.value=r:Te(t)&&o==="selected"?t.selected=!!r:o&&([u,r]=_e(r),u&&Xe(Be(o),t,r))),u&&delete l[o]}),ee(l).forEach(o=>t.removeAttribute(o))},Xe=(e,t,n)=>{E.value&&e!=="xmlns"?t.setAttributeNS(null,e,n):t.setAttribute(e,n)},_e=e=>{let t=!0;return typeof e=="boolean"&&(e||(t=!1),e=""),[t,String(e)]},w=e=>{let t;const{type:n,tag:l,text:o,props:r,children:u=[]}=e,i=g(n);return l==="svg"&&(E.value=String(r==null?void 0:r.xmlns)),i?t=B():n==="element"&&l?t=E.value?document.createElementNS(E.value,l):X(l):n==="text"&&P(o)?t=document.createTextNode(String(o)):t=X("e"),ze(u,t),pe(r,t),e.el=t,Fe(e),l==="svg"&&(E.value=""),t},ze=(e,t)=>{const n=e.reduce((l,o)=>(o.type&&l.appendChild(w(o)),l),B());t&&n.hasChildNodes()&&t.appendChild(n)},Ge=(e,t,n,l)=>{const o=oe(t);l!==n&&(l&&e.removeEventListener(o,l),n&&e.addEventListener(o,n))},Qe=(e,t,n)=>{const l={...t},o=n==null?void 0:n.style;o&&(C(e).forEach(([r,u])=>{o[r]=u,delete l[r]}),C(l).forEach(([r])=>o[r]=""))},V=e=>{const t=g(e.type);return e.isRoot&&t?e.wrapElement:t?V(f(e)):e.el},A=(e,t)=>Ze(e,Ae[Ve(e)](e,t),t),Ze=(e,t,n)=>{const l=ut(e,t,n),o=[l,t,n],r=tt(...o),u=r==="N";return u||(l.children=ct(...o)),l.needRerender=r,et(l,n,r),!u&&n&&(n.isLegacy=!0,delete n.children),l},et=(e,t,n)=>{n!=="A"&&t&&(e.el=t.el),n&&["D","R","SR"].includes(n)&&(t&&(T(t),U(t)),e.oldChildren=t==null?void 0:t.children),e.oldProps=t==null?void 0:t.props},tt=(e,t,n)=>{const l=n&&n.type,o=Z(e),r=e.isRoot,u=n&&f(n),i=!r&&(u==null?void 0:u.type),c=v(e),d=i==="loop"&&P(c),h=e.type==="text"&&t&&e.text===(n==null?void 0:n.text),m=e===n;let p;return o?p="D":h||m?p="N":l?t?p=d?"SU":"U":p=d?"SR":"R":p="A",e.type==="loop"&&p==="U"&&n&&nt(e,n)&&(p="CNSU"),p},nt=(e,t)=>{const n=[...(t==null?void 0:t.children)||[]],l=[...(e==null?void 0:e.children)||[]].filter(u=>n.find(i=>v(u)===v(i))),o=n.filter(u=>l.find(i=>v(u)===v(i)));let r=o.length===l.length;return r&&(r=o.every((u,i)=>v(u)===v(l[i]))),r},lt=(e,t)=>{e&&t!==e&&(ee(e).forEach(n=>delete e[n]),C(t||{}).forEach(([n,l])=>e[n]=l))},ot=(e,t)=>{e&&t!==e&&(e.splice(0,e.length),t&&t.forEach(n=>e.push(n)))},rt=(e,t)=>{const{compProps:n,compChild:l}=e,{props:o,children:r}=t;return n&<(n,o),l&&ot(l,r),e.reRender&&e.reRender()},ut=(e,t,n)=>N(e)?t&&n?rt(n,e):e.resolve():e,ct=(e,t,n)=>t&&n?dt(e,n):it(e),it=e=>(e.children||[]).map(t=>O(A(t),{getParent:()=>e})),dt=(e,t)=>e.type==="loop"&&P(v((e.children||[])[0]))?st(e,t):(e.children||[]).map((n,l)=>O(A(n,(t.children||[])[l]),{getParent:()=>e})),st=(e,t)=>{const[n,l]=at(e,t);return l.forEach(o=>{T(o),U(o),q(o)}),n},at=(e,t)=>{const n=[...e.children||[]],l=[...t.children||[]];return[n.map(o=>{const r=pt(o,l),u=A(o,r);return r&&l.splice(l.indexOf(r),1),u.getParent=()=>e,u}),l]},pt=(e,t)=>t.find(n=>v(n)===v(e));let F=[],I=!1;const ve=(e,t)=>{a.get(e).up=()=>{F.push({compKey:e,exec:t}),I||(I=!0,queueMicrotask(ht))}},vt=e=>()=>{var t;const n=(t=a.get(e))==null?void 0:t.up;let l=!1;return n&&(n(),l=!0),l},ht=()=>{F.forEach(e=>{e.exec()}),F=[],I=!1},he=(e,t=()=>[])=>{a.get(x()).upR.push(()=>W(e,t)),W(e,t)},ft=()=>{var e;const t=(e=a.get(x()))==null?void 0:e.upR;t!=null&&t.length&&t.forEach(n=>n())},b=(e,...t)=>({type:"fragment",children:t}),s=(e,t,...n)=>{const l={value:void 0},o=t||{},r=Ee(l,n),u=Et(e,o,r);return N(u)||(l.value=u),u},fe=e=>(t,n)=>e,me=(e,t,n,l)=>{var o;if(l.isLegacy)return;D.value=!0;const r=ge(e,t,n),u=A(r,l),{isRoot:i,getParent:c,wrapElement:d,afterElement:h}=l;if(u.getParent=c,!i&&c){const m=((o=c())==null?void 0:o.children)||[],p=m.indexOf(l);m.splice(p,1,u)}else u.isRoot=!0,u.wrapElement=d,u.afterElement=h;D.value=!1,re(u)},ge=(e,t,n)=>({tagName:e.name,ctor:e,props:t,children:n,resolve:(l=t)=>{ke(l);const o=e(t,n)(vt(l),t,n),r=mt(o,l,e,t,n),u=r;return ve(l,()=>me(e,t,n,u)),te(l,"vd").value=r,r}}),mt=(e,t,n,l,o)=>{let r=e,u=e(l);return u.reRender&&(r=i=>{const c=e(i),d=b({},c);return c.getParent=()=>d,d},u=r(l)),ye(u,t,n,l,o,gt(r,t,n,l,o)),u},gt=(e,t,n,l,o)=>{const r=()=>yt(e,t,n,l,o,r);return r},yt=(e,t,n,l,o,r)=>{De(t),ft();const u=e(l);return ve(t,()=>me(n,l,o,u)),ye(u,t,n,l,o,r),te(t,"vd").value=u,u},ye=(e,t,n,l,o,r)=>{O(e,{compProps:l,compChild:o,ctor:n,tagName:n.name,compKey:t,reRender:r})},Et=(e,t,n)=>{if(Q(e))return b(t,...n);if(N(e)){const l=ge(e,t,n);return D.value?l:l.resolve()}return{type:"element",tag:e,props:t,children:n}},Ee=(e,t)=>t.map(n=>O(Pt(n),{getParent:()=>e.value})),Pt=e=>{if(e==null||e===!1)return{type:null};if(Array.isArray(e)){const t={value:void 0},n={type:"loop",children:Ee(t,e)};return t.value=n,n}else if(typeof e=="string"||typeof e=="number")return{type:"text",text:e};return e},Ct=e=>({value:e}),K=(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()}}},Rt=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'")}}},xt=(e,t=()=>{},n=()=>[])=>{le(()=>(e(),t)),he(()=>(t&&t(),e),n)},bt=e=>{const t={value:!1},n=typeof e=="object"&&e!==null?e:{value:e};let l=[];const o=[];return(r,u)=>{const i={};let c=null;return o.push(i),r&&u&&(c=_(n,t,l,()=>r(c),i,o),t.value=!0,u(c),t.value=!1),c||(c=_(n,t,l),r&&l.push(()=>r(c))),r&&Nt(()=>r(c),l,i),c}},_=(e,t,n,l,o,r)=>{const u=[],i=new Proxy(e,{get(c,d){return l&&o&&t.value&&(o[d]??(o[d]=[]),o[d].includes(l)||(o[d].push(l),u.push(d))),u.includes(d)||!l?c[d]:null},set(c,d,h){if(u.includes(d)||!l)c[d]=h;else return!0;return St(i,n,r,d,l),!0}});return i},St=(e,t,n=[],l,o)=>{const r=[];r.push(...G(t,e)),(n||[]).forEach(u=>{const i=o?u[l]||[]:[];r.push(...G(i,e)),z(r,i)}),z(r,t)},z=(e,t)=>{e.forEach(n=>{t.splice(t.indexOf(n),1)})},G=(e,t)=>{const n=[];return e.forEach(l=>{l(t)===!1&&n.push(l)}),n},Nt=(e,t,n)=>{const l=e();l instanceof AbortSignal&&l.addEventListener("abort",()=>{const o=n||{};t.splice(t.indexOf(e),1),Object.values(o).forEach(r=>{r.splice(r.indexOf(e),1)})})},Ot=fe((e,t,n)=>{const l=K(1,e),o=K('"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),r=()=>t.parentValue,u=t.parentValue,i=Rt(()=>l.v+d+t.parentValue),c=bt({text:"s",count:0})(e);let d=t.parentValue;const h=Ct(null),m=()=>{l.v=l.v+1,d+=1},p=L=>{o.v=L.target.value},Pe=()=>{c.count+=1,c.text+="1"},Ce=()=>(console.log("MOUNTED",h),()=>console.log("UNMOUNT")),Re=()=>(console.log("UPDATE - parentValue"),()=>console.log("UPDATED"));return le(Ce),he(Re,()=>[t.parentValue]),xt(()=>console.log("INJECT"),()=>console.log("CLEAN_UP"),()=>[l.v]),({parentValue:L})=>s(b,null,s("div",null,s("textarea",{value:o.v,onInput:p,style:{width:"300px",height:"100px"}})),s("div",null,o.v),s("div",null,s("div",{style:{color:"blue"}},"parentValueFromRef: ",t.parentValue," (working)"),s("div",{style:{color:"blue"}},"parentValueFromFunction: ",r()," (working)"),s("div",{style:{color:"blue"}},"parentValueFromUpdaterDestructuring: ",L," (working)"),s("div",{style:{color:"red"}},"parentValueFromMounterDestructuring: ",u," (not working)")),s("div",null,s("div",{ref:h},"count: ",l.v),s("div",null,"sum: ",l.v+d+t.parentValue),s("div",null,"sum(computed): ",i.v),s("div",null,"notRefValue: ",d),s("div",null,"localStore(text): ",c.text),s("div",null,"localStore(count): ",c.count)),s("button",{onClick:m},"Increase"),s("button",{onClick:Pe},"localStoreUpdate"),n)}),Tt=fe(e=>{const t=K(7,e),n=()=>{t.v=t.v+1},l=()=>{t.v=t.v-1};return()=>s(b,null,s(Ot,{parentValue:t.v},s("button",{onClick:n},"Increase - Parent")),s("button",{onClick:l},"Decrease - Parent"))}),Ut=s(Tt,null);qe(Ut,document.getElementById("root"));
|
|
2
|
+
//# sourceMappingURL=index-DIuCd_7X.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-DIuCd_7X.js","sources":["../../../dist/lithent.mjs","../../../helper/dist/lithentHelper.mjs","../../src/index.tsx"],"sourcesContent":["const C = (e) => typeof e == \"object\" && !(\"resolve\" in e), N = (e, t) => C(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 C(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 C(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}, G = (e, t) => C(e) && (t == null ? void 0 : t.type) === e.type, ye = (e, t) => {\n var s, c;\n return C(e) && (t == null ? void 0 : t.type) === e.type && (R(d((e.children || [])[0])) && R(d(((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}, d = (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\" && !Z(e) || typeof e == \"object\" && \"resolve\" in e, Z = (e) => typeof e == \"function\" && e === $, V = (e) => C(e) && !e.type, R = (e) => e != null, H = (e, t) => e === \"style\" && typeof t == \"object\", ve = (e, t) => e === \"ref\" && typeof t == \"object\", Ce = (e) => e.nodeType === 1 && e.tagName === \"OPTION\", ke = (e) => e.nodeType === 1 && e.tagName === \"TEXTAREA\", Re = (e) => e.nodeType === 1 && [\"radio\", \"checkbox\"].includes(e.type), Ee = (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\" : V(e) && (t = \"et\"), t;\n}, Pe = {\n c: pe,\n l: ye,\n t: G,\n e: ie,\n f: he,\n et: G\n}, i = (e) => e.getParent && e.getParent(), E = Object.entries, K = Object.keys, a = Object.assign, k = { value: \"\" }, P = { value: {} }, O = { value: !1 }, f = /* @__PURE__ */ new WeakMap(), xe = (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}, x = () => P.value, g = (e, t) => f.get(e)[t], Se = (e) => P.value = e, Ne = (e) => {\n P.value = e, xe(e);\n}, Te = (e) => {\n f.get(x()).umts.push(e);\n}, U = (e) => {\n const { compKey: t } = e;\n t && ae(t), m(e);\n}, m = (e) => {\n (e.children || []).forEach((t) => {\n t.compKey ? U(t) : m(t);\n });\n}, ae = (e) => {\n const t = f.get(e);\n t && (t.umts.forEach((s) => s()), t.umts = [], f.delete(e));\n};\nlet M = [];\nconst I = () => {\n M.forEach((e) => be(e)), M = [];\n}, Ue = (e) => {\n e.compKey && M.push(e);\n}, ft = (e) => f.get(x()).mts.push(e), be = (e) => {\n const { compKey: t } = e;\n if (t) {\n const s = f.get(t), c = s == null ? void 0 : s.mts, n = s == null ? void 0 : s.upS;\n P.value = t, n && (n.value = 0), c && (s.mts = [], c.forEach((r) => {\n const u = r();\n u && Te(u);\n }));\n }\n}, J = (e, t = () => []) => {\n const s = f.get(x()), { upD: c, upS: n } = s, r = c[n.value];\n if (r && Ae(r, t())) {\n const u = e();\n u && s.upCB.push(u);\n }\n c[n.value] = t(), n.value += 1;\n}, Fe = (e) => {\n const { compKey: t } = e;\n if (t) {\n const s = f.get(t), c = s == null ? void 0 : s.upCB, n = s == null ? void 0 : s.upS;\n P.value = t, n && (n.value = 0), e.ctor && c && (s.upCB = [], c.forEach((r) => r()));\n }\n}, Ae = (e, t) => e.length ? e.some((s, c) => s !== t[c]) : !0, Le = (e) => e === \"className\" ? \"class\" : e, w = (e) => e.replace(/^on(.*)/, (t, s) => s.toLowerCase()), _ = () => new DocumentFragment(), Y = (e) => document.createElement(e), dt = (e, t, s) => {\n t ?? (t = document.body), e.isRoot = !0, e.wrapElement = t;\n const c = F(e);\n return s ? (e.afterElement = s, t.insertBefore(c, s)) : t.appendChild(c), I(), () => {\n var r;\n const n = (r = f.get(e.compProps || {})) == null ? void 0 : r.vd.value;\n n && U(n), b(n || e), Oe(n || e);\n };\n}, W = (e) => {\n const { needRerender: t } = e;\n t && t !== \"N\" && ({\n A: X,\n D: z,\n R: Qe,\n U: B,\n CNSU: B,\n SR: te,\n SU: Me\n }[t](e), delete e.needRerender, delete e.oldChildren, delete e.oldProps);\n}, b = (e) => {\n e.props && e.el && ne(e.props, e.el), (e.children || []).forEach((t) => {\n b(t);\n });\n}, Oe = (e) => {\n D(e, e.wrapElement);\n}, z = (e) => {\n e.oldProps && e.el && ne(e.oldProps, e.el), D(\n e,\n A(i(e))\n );\n}, D = (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 && ee(e, t), delete e.el);\n}, ee = (e, t) => {\n ((e == null ? void 0 : e.oldChildren) || (e == null ? void 0 : e.children) || []).forEach((s) => {\n var n;\n const c = (n = s.el) == null ? void 0 : n.nodeType;\n c && ([1, 3].includes(c) ? t.removeChild(s == null ? void 0 : s.el) : c === 11 && ee(s, t));\n });\n}, te = (e) => {\n z(e), X(e);\n}, Me = (e) => {\n if (B(e), i(e).needRerender !== \"CNSU\") {\n const s = se(e);\n X(e, s);\n }\n}, X = (e, t) => {\n t || (t = F(e));\n const s = i(e);\n if (s.type) {\n const c = A(s), r = s.type === \"loop\" && s.needRerender && s.needRerender !== \"CNSU\" ? Q(s, i(s)) : Q(e, s);\n t && c && (r ? c.insertBefore(t, r) : c.appendChild(t), I());\n }\n}, se = (e) => v(e.type) ? ((e == null ? void 0 : e.children) || []).reduce((t, s) => {\n const c = se(s);\n return c && t.appendChild(c), t;\n}, _()) : e.el, Q = (e, t) => {\n const s = t.children || [], n = s.indexOf(e) + 1, r = s.slice(n), u = ce(r), l = t.type || \"\";\n if (u)\n return u;\n if (!t.isRoot && v(l))\n return Q(t, i(t));\n if (t.isRoot && v(l) && t.afterElement)\n return t.afterElement;\n}, ce = (e) => e.reduce(\n (t, s) => {\n const c = s.type, n = s.el, r = c && v(c);\n return t || (r ? ce(s.children || []) : n && n.nodeType !== 11 ? n : t);\n },\n void 0\n), Qe = (e) => {\n const t = i(e), s = e.el;\n if (t.type && s)\n if (s.nodeType === 11)\n te(e);\n else {\n const c = A(t), n = F(e);\n c && c.replaceChild(n, s), I();\n }\n}, ne = (e, t) => {\n E(e || {}).forEach(([s, c]) => {\n s.match(/^on/) && t.removeEventListener(\n w(s),\n c\n );\n });\n}, B = (e) => {\n var s;\n const t = e.el;\n if (e.type === \"text\") {\n Be(e);\n return;\n }\n if (t) {\n const { oldProps: c, props: n } = e;\n re(n, 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) => W(c)), Fe(e);\n}, Be = (e) => {\n const t = e.el;\n t && (t.nodeValue = String(e.text));\n}, re = (e, t, s) => {\n const c = { ...s };\n E(e || {}).forEach(([n, r]) => {\n let u = !0;\n n === \"key\" || r === c[n] || (n === \"innerHTML\" && typeof r == \"string\" ? t.innerHTML = r : H(n, r) ? ze(\n r,\n H(n, c.style) ? c.style : {},\n t\n ) : ve(n, r) ? r.value = t : n.match(/^on/) ? _e(\n t,\n n,\n r,\n c[n]\n ) : Re(t) && n === \"checked\" ? t.checked = !!r : ke(t) && n === \"value\" ? t.value = r : Ce(t) && n === \"selected\" ? t.selected = !!r : n && ([u, r] = qe(r), u && je(\n Le(n),\n t,\n r\n ))), u && delete c[n];\n }), K(c).forEach(\n (n) => t.removeAttribute(n)\n );\n}, je = (e, t, s) => {\n k.value && e !== \"xmlns\" ? t.setAttributeNS(null, e, s) : t.setAttribute(e, s);\n}, qe = (e) => {\n let t = !0;\n return typeof e == \"boolean\" && (e || (t = !1), e = \"\"), [t, String(e)];\n}, F = (e) => {\n let t;\n const { type: s, tag: c, text: n, props: r, children: u = [] } = e, l = v(s);\n return c === \"svg\" && (k.value = String(r == null ? void 0 : r.xmlns)), l ? t = _() : s === \"element\" && c ? t = k.value ? document.createElementNS(k.value, c) : Y(c) : s === \"text\" && R(n) ? t = document.createTextNode(String(n)) : t = Y(\"e\"), Ie(u, t), re(r, t), e.el = t, Ue(e), c === \"svg\" && (k.value = \"\"), t;\n}, Ie = (e, t) => {\n const s = e.reduce(\n (c, n) => (n.type && c.appendChild(F(n)), c),\n _()\n );\n t && s.hasChildNodes() && t.appendChild(s);\n}, _e = (e, t, s, c) => {\n const n = w(t);\n c !== s && (c && e.removeEventListener(n, c), s && e.addEventListener(n, s));\n}, ze = (e, t, s) => {\n const c = { ...t }, n = s == null ? void 0 : s.style;\n n && (E(e).forEach(([r, u]) => {\n n[r] = u, delete c[r];\n }), E(c).forEach(\n ([r]) => n[r] = \"\"\n ));\n}, A = (e) => {\n const t = v(e.type);\n return e.isRoot && t ? e.wrapElement : t ? A(i(e)) : e.el;\n}, L = (e, t) => Xe(\n e,\n Pe[Ee(e)](e, t),\n t\n), Xe = (e, t, s) => {\n const c = Ve(e, t, s), n = [\n c,\n t,\n s\n ], r = Ge(...n), u = r === \"N\";\n return u || (c.children = Ke(...n)), c.needRerender = r, $e(c, s, r), !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), b(t)), e.oldChildren = t == null ? void 0 : t.children), e.oldProps = t == null ? void 0 : t.props;\n}, Ge = (e, t, s) => {\n const c = s && s.type, n = V(e), r = e.isRoot, u = s && i(s), l = !r && (u == null ? void 0 : u.type), h = d(e), o = l === \"loop\" && R(h), y = e.type === \"text\" && t && e.text === (s == null ? void 0 : s.text), S = e === s;\n let p;\n return n ? p = \"D\" : y || S ? p = \"N\" : c ? t ? p = o ? \"SU\" : \"U\" : p = o ? \"SR\" : \"R\" : p = \"A\", e.type === \"loop\" && p === \"U\" && s && He(e, s) && (p = \"CNSU\"), p;\n}, He = (e, t) => {\n const s = [...(t == null ? void 0 : t.children) || []], c = [...(e == null ? void 0 : e.children) || []].filter(\n (u) => s.find((l) => d(u) === d(l))\n ), n = s.filter(\n (u) => c.find((l) => d(u) === d(l))\n );\n let r = n.length === c.length;\n return r && (r = n.every(\n (u, l) => d(u) === d(c[l])\n )), r;\n}, Je = (e, t) => {\n e && t !== e && (K(e).forEach((s) => delete e[s]), E(t || {}).forEach(([s, c]) => e[s] = c));\n}, Ye = (e, t) => {\n e && t !== e && (e.splice(0, e.length), t && t.forEach((s) => e.push(s)));\n}, Ze = (e, t) => {\n const { compProps: s, compChild: c } = e, { props: n, children: r } = t;\n return s && Je(s, n), c && Ye(c, r), e.reRender && e.reRender();\n}, Ve = (e, t, s) => T(e) ? t && s ? Ze(s, e) : e.resolve() : e, Ke = (e, t, s) => t && s ? me(e, s) : ge(e), ge = (e) => (e.children || []).map(\n (t) => a(L(t), { getParent: () => e })\n), me = (e, t) => e.type === \"loop\" && R(d((e.children || [])[0])) ? we(e, t) : (e.children || []).map(\n (s, c) => a(L(s, (t.children || [])[c]), {\n getParent: () => e\n })\n), we = (e, t) => {\n const [s, c] = We(\n e,\n t\n );\n return c.forEach((n) => {\n U(n), b(n), z(n);\n }), s;\n}, We = (e, t) => {\n const s = [...e.children || []], c = [...t.children || []];\n return [s.map((r) => {\n const u = De(r, c), l = L(r, u);\n return u && c.splice(c.indexOf(u), 1), l.getParent = () => e, l;\n }), c];\n}, De = (e, t) => t.find(\n (s) => d(s) === d(e)\n);\nlet j = [], q = !1;\nconst ue = (e, t) => {\n f.get(e).up = () => {\n j.push({\n compKey: e,\n exec: t\n }), q || (q = !0, queueMicrotask(tt));\n };\n}, et = (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}, tt = () => {\n j.forEach((e) => {\n e.exec();\n }), j = [], q = !1;\n}, ot = (e, t = () => []) => {\n f.get(x()).upR.push(() => J(e, t)), J(e, t);\n}, st = () => {\n var t;\n const e = (t = f.get(x())) == null ? void 0 : t.upR;\n e != null && e.length && e.forEach((s) => s());\n}, $ = (e, ...t) => ({\n type: \"fragment\",\n children: t\n}), pt = (e, t, ...s) => {\n const c = { value: void 0 }, n = t || {}, r = oe(c, s), u = ut(e, n, r);\n return T(u) || (c.value = u), u;\n}, ht = (e) => (t, s) => e, le = (e, t, s, c) => {\n var y;\n if (c.isLegacy)\n return;\n O.value = !0;\n const n = fe(e, t, s), r = L(n, c), { isRoot: u, getParent: l, wrapElement: h, afterElement: o } = c;\n if (r.getParent = l, !u && l) {\n const S = ((y = l()) == null ? void 0 : y.children) || [], p = S.indexOf(c);\n S.splice(p, 1, r);\n } else\n r.isRoot = !0, r.wrapElement = h, r.afterElement = o;\n O.value = !1, W(r);\n}, fe = (e, t, s) => ({ tagName: e.name, ctor: e, props: t, children: s, resolve: (u = t) => {\n Ne(u);\n const h = e(t, s)(et(u), t, s), o = ct(\n h,\n u,\n e,\n t,\n s\n ), y = o;\n return ue(\n u,\n () => le(e, t, s, y)\n ), g(u, \"vd\").value = o, o;\n} }), ct = (e, t, s, c, n) => {\n let r = e, u = e(c);\n return u.reRender && (r = (l) => {\n const h = e(l), o = $({}, h);\n return h.getParent = () => o, o;\n }, u = r(c)), de(\n u,\n t,\n s,\n c,\n n,\n nt(r, t, s, c, n)\n ), u;\n}, nt = (e, t, s, c, n) => {\n const r = () => rt(e, t, s, c, n, r);\n return r;\n}, rt = (e, t, s, c, n, r) => {\n Se(t), st();\n const u = e(c);\n return ue(\n t,\n () => le(s, c, n, u)\n ), de(u, t, s, c, n, r), g(t, \"vd\").value = u, u;\n}, de = (e, t, s, c, n, r) => {\n a(e, {\n compProps: c,\n compChild: n,\n ctor: s,\n tagName: s.name,\n compKey: t,\n reRender: r\n });\n}, ut = (e, t, s) => {\n if (Z(e))\n return $(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 tag: e,\n props: t,\n children: s\n };\n}, oe = (e, t) => t.map(\n (s) => a(lt(s), { getParent: () => e.value })\n), lt = (e) => {\n if (e == null || e === !1)\n return { type: null };\n if (Array.isArray(e)) {\n const t = { value: void 0 }, c = {\n type: \"loop\",\n children: oe(t, e)\n };\n return t.value = c, c;\n } else if (typeof e == \"string\" || typeof e == \"number\")\n return { type: \"text\", text: e };\n return e;\n}, it = (e) => ({ value: e }), yt = () => Promise.resolve();\nexport {\n $ as Fragment,\n pt as h,\n ht as mount,\n ft as mountCallback,\n yt as nextTick,\n it as ref,\n dt as render,\n ot as updateCallback\n};\n//# sourceMappingURL=lithent.mjs.map\n","import { mountCallback as v, updateCallback as g, nextTick as x, render as m } from \"lithent\";\nconst T = (e, t) => {\n let s = e;\n return {\n get value() {\n return s;\n },\n get v() {\n return s;\n },\n set value(n) {\n s = n, t();\n },\n set v(n) {\n s = n, t();\n }\n };\n}, j = (e) => {\n let t = e;\n return {\n get value() {\n return t();\n },\n get v() {\n return t();\n },\n set value(s) {\n throw new Error(\"You can't change 'computed'\");\n },\n set v(s) {\n throw new Error(\"You can't change 'computed'\");\n }\n };\n}, U = (e, t = () => {\n}, s = () => []) => {\n v(() => (e(), t)), g(() => (t && t(), e), s);\n}, b = (e) => {\n const t = { value: !1 }, n = typeof e == \"object\" && e !== null ? e : { value: e };\n let l = [];\n const u = [];\n return (o, r) => {\n const a = {};\n let c = null;\n return u.push(a), o && r && (c = i(\n n,\n t,\n l,\n () => o(c),\n a,\n u\n ), t.value = !0, r(c), t.value = !1), c || (c = i(n, t, l), o && l.push(() => o(c))), o && y(\n () => o(c),\n l,\n a\n ), c;\n };\n}, i = (e, t, s, n, l, u) => {\n const o = [], r = new Proxy(e, {\n get(a, c) {\n return n && l && t.value && (l[c] ?? (l[c] = []), l[c].includes(n) || (l[c].push(n), o.push(c))), o.includes(c) || !n ? a[c] : null;\n },\n set(a, c, d) {\n if (o.includes(c) || !n)\n a[c] = d;\n else\n return !0;\n return E(\n r,\n s,\n u,\n c,\n n\n ), !0;\n }\n });\n return r;\n}, E = (e, t, s = [], n, l) => {\n const u = [];\n u.push(...h(t, e)), (s || []).forEach((o) => {\n const r = l ? o[n] || [] : [];\n u.push(\n ...h(r, e)\n ), f(u, r);\n }), f(u, t);\n}, f = (e, t) => {\n e.forEach((s) => {\n t.splice(t.indexOf(s), 1);\n });\n}, h = (e, t) => {\n const s = [];\n return e.forEach((n) => {\n n(t) === !1 && s.push(n);\n }), s;\n}, y = (e, t, s) => {\n const n = e();\n n instanceof AbortSignal && n.addEventListener(\"abort\", () => {\n const l = s || {};\n t.splice(t.indexOf(e), 1), Object.values(l).forEach((u) => {\n u.splice(u.indexOf(e), 1);\n });\n });\n}, k = (e, t) => {\n let s = [], n = null;\n return (l) => {\n const u = e(), o = s.every((a, c) => a === u[c]);\n if (s = u, o && n)\n return n;\n const r = t(l);\n return n = r, r;\n };\n}, D = (e, t, s) => {\n let n = () => {\n };\n return x().then(() => {\n n = m(e(), t, s);\n }), () => n();\n};\nexport {\n k as cacheUpdate,\n j as computed,\n U as effect,\n D as nextTickRender,\n T as state,\n b 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":["C","N","pe","he","s","c","ie","G","ye","R","d","v","T","Z","$","V","H","ve","Ce","ke","Re","Ee","Pe","i","E","K","a","k","P","O","f","xe","g","Se","Ne","Te","U","ae","m","M","I","be","Ue","ft","n","J","Ae","Fe","Le","w","_","Y","dt","F","r","b","Oe","W","X","z","Qe","B","te","Me","ne","D","A","ee","se","Q","u","ce","l","t","Be","re","ze","_e","qe","je","Ie","L","Xe","Ve","Ge","Ke","$e","h","o","y","S","He","Je","Ye","Ze","me","ge","we","We","De","j","q","ue","tt","et","ot","st","e","pt","oe","ut","ht","le","fe","ct","de","nt","rt","lt","it","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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"}
|
package/examples/dist/index.html
CHANGED
|
@@ -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-
|
|
7
|
+
<script type="module" crossorigin src="/assets/index-DIuCd_7X.js"></script>
|
|
8
8
|
</head>
|
|
9
9
|
<body>
|
|
10
10
|
<section id="root"></section>
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* DataStore
|
|
3
3
|
*/
|
|
4
|
+
type Renew<T> = (store: T) => boolean | AbortSignal | void;
|
|
4
5
|
type StoreType<V> = V extends {
|
|
5
6
|
[key: string]: unknown;
|
|
6
7
|
} ? V : {
|
|
7
8
|
value: V;
|
|
8
9
|
};
|
|
9
|
-
type Renew<T> = (store: T) => boolean | AbortSignal | void;
|
|
10
10
|
export declare const store: <V>(initialValue: V) => (renew?: Renew<StoreType<V>> | undefined, makeObserver?: ((store: StoreType<V>) => unknown[]) | undefined) => StoreType<V>;
|
|
11
11
|
export {};
|
|
@@ -1,116 +1,126 @@
|
|
|
1
|
-
import { mountCallback as
|
|
2
|
-
const
|
|
3
|
-
let
|
|
1
|
+
import { mountCallback as v, updateCallback as g, nextTick as x, render as m } from "lithent";
|
|
2
|
+
const T = (e, t) => {
|
|
3
|
+
let s = e;
|
|
4
4
|
return {
|
|
5
5
|
get value() {
|
|
6
|
-
return
|
|
6
|
+
return s;
|
|
7
7
|
},
|
|
8
8
|
get v() {
|
|
9
|
-
return
|
|
9
|
+
return s;
|
|
10
10
|
},
|
|
11
|
-
set value(
|
|
12
|
-
|
|
11
|
+
set value(n) {
|
|
12
|
+
s = n, t();
|
|
13
13
|
},
|
|
14
|
-
set v(
|
|
15
|
-
|
|
14
|
+
set v(n) {
|
|
15
|
+
s = n, t();
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
|
-
},
|
|
19
|
-
let
|
|
18
|
+
}, j = (e) => {
|
|
19
|
+
let t = e;
|
|
20
20
|
return {
|
|
21
21
|
get value() {
|
|
22
|
-
return
|
|
22
|
+
return t();
|
|
23
23
|
},
|
|
24
24
|
get v() {
|
|
25
|
-
return
|
|
25
|
+
return t();
|
|
26
26
|
},
|
|
27
|
-
set value(
|
|
27
|
+
set value(s) {
|
|
28
28
|
throw new Error("You can't change 'computed'");
|
|
29
29
|
},
|
|
30
|
-
set v(
|
|
30
|
+
set v(s) {
|
|
31
31
|
throw new Error("You can't change 'computed'");
|
|
32
32
|
}
|
|
33
33
|
};
|
|
34
|
-
},
|
|
35
|
-
},
|
|
36
|
-
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
const
|
|
41
|
-
return
|
|
42
|
-
const
|
|
34
|
+
}, U = (e, t = () => {
|
|
35
|
+
}, s = () => []) => {
|
|
36
|
+
v(() => (e(), t)), g(() => (t && t(), e), s);
|
|
37
|
+
}, b = (e) => {
|
|
38
|
+
const t = { value: !1 }, n = typeof e == "object" && e !== null ? e : { value: e };
|
|
39
|
+
let l = [];
|
|
40
|
+
const u = [];
|
|
41
|
+
return (o, r) => {
|
|
42
|
+
const a = {};
|
|
43
43
|
let c = null;
|
|
44
|
-
return
|
|
44
|
+
return u.push(a), o && r && (c = i(
|
|
45
|
+
n,
|
|
45
46
|
t,
|
|
46
|
-
|
|
47
|
-
() =>
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
),
|
|
51
|
-
() =>
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
s
|
|
47
|
+
l,
|
|
48
|
+
() => o(c),
|
|
49
|
+
a,
|
|
50
|
+
u
|
|
51
|
+
), t.value = !0, r(c), t.value = !1), c || (c = i(n, t, l), o && l.push(() => o(c))), o && y(
|
|
52
|
+
() => o(c),
|
|
53
|
+
l,
|
|
54
|
+
a
|
|
55
55
|
), c;
|
|
56
56
|
};
|
|
57
|
-
},
|
|
58
|
-
const
|
|
59
|
-
get(
|
|
60
|
-
|
|
61
|
-
return t && e && v.value && (e[n] ?? (e[n] = {}), (a = e[n])[c] ?? (a[c] = []), e[n][c].includes(t) || (e[n][c].push(t), u.push(c))), u.includes(c) || !t ? s[c] : null;
|
|
57
|
+
}, i = (e, t, s, n, l, u) => {
|
|
58
|
+
const o = [], r = new Proxy(e, {
|
|
59
|
+
get(a, c) {
|
|
60
|
+
return n && l && t.value && (l[c] ?? (l[c] = []), l[c].includes(n) || (l[c].push(n), o.push(c))), o.includes(c) || !n ? a[c] : null;
|
|
62
61
|
},
|
|
63
|
-
set(
|
|
64
|
-
if (
|
|
65
|
-
|
|
62
|
+
set(a, c, d) {
|
|
63
|
+
if (o.includes(c) || !n)
|
|
64
|
+
a[c] = d;
|
|
66
65
|
else
|
|
67
66
|
return !0;
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
}), r.forEach((h) => {
|
|
76
|
-
g.splice(g.indexOf(h), 1);
|
|
77
|
-
});
|
|
78
|
-
}), r.forEach((o) => {
|
|
79
|
-
d.splice(d.indexOf(o), 1);
|
|
80
|
-
}), !0;
|
|
67
|
+
return E(
|
|
68
|
+
r,
|
|
69
|
+
s,
|
|
70
|
+
u,
|
|
71
|
+
c,
|
|
72
|
+
n
|
|
73
|
+
), !0;
|
|
81
74
|
}
|
|
82
75
|
});
|
|
83
|
-
return
|
|
84
|
-
},
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
const
|
|
88
|
-
u.
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
}),
|
|
92
|
-
},
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
76
|
+
return r;
|
|
77
|
+
}, E = (e, t, s = [], n, l) => {
|
|
78
|
+
const u = [];
|
|
79
|
+
u.push(...h(t, e)), (s || []).forEach((o) => {
|
|
80
|
+
const r = l ? o[n] || [] : [];
|
|
81
|
+
u.push(
|
|
82
|
+
...h(r, e)
|
|
83
|
+
), f(u, r);
|
|
84
|
+
}), f(u, t);
|
|
85
|
+
}, f = (e, t) => {
|
|
86
|
+
e.forEach((s) => {
|
|
87
|
+
t.splice(t.indexOf(s), 1);
|
|
88
|
+
});
|
|
89
|
+
}, h = (e, t) => {
|
|
90
|
+
const s = [];
|
|
91
|
+
return e.forEach((n) => {
|
|
92
|
+
n(t) === !1 && s.push(n);
|
|
93
|
+
}), s;
|
|
94
|
+
}, y = (e, t, s) => {
|
|
95
|
+
const n = e();
|
|
96
|
+
n instanceof AbortSignal && n.addEventListener("abort", () => {
|
|
97
|
+
const l = s || {};
|
|
98
|
+
t.splice(t.indexOf(e), 1), Object.values(l).forEach((u) => {
|
|
99
|
+
u.splice(u.indexOf(e), 1);
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
}, k = (e, t) => {
|
|
103
|
+
let s = [], n = null;
|
|
104
|
+
return (l) => {
|
|
105
|
+
const u = e(), o = s.every((a, c) => a === u[c]);
|
|
106
|
+
if (s = u, o && n)
|
|
107
|
+
return n;
|
|
108
|
+
const r = t(l);
|
|
109
|
+
return n = r, r;
|
|
100
110
|
};
|
|
101
|
-
},
|
|
102
|
-
let
|
|
111
|
+
}, D = (e, t, s) => {
|
|
112
|
+
let n = () => {
|
|
103
113
|
};
|
|
104
|
-
return
|
|
105
|
-
|
|
106
|
-
}), () =>
|
|
114
|
+
return x().then(() => {
|
|
115
|
+
n = m(e(), t, s);
|
|
116
|
+
}), () => n();
|
|
107
117
|
};
|
|
108
118
|
export {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
119
|
+
k as cacheUpdate,
|
|
120
|
+
j as computed,
|
|
121
|
+
U as effect,
|
|
122
|
+
D as nextTickRender,
|
|
123
|
+
T as state,
|
|
124
|
+
b as store
|
|
115
125
|
};
|
|
116
126
|
//# sourceMappingURL=lithentHelper.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lithentHelper.mjs","sources":["../src/hook/state.ts","../src/hook/computed.ts","../src/hook/effect.ts","../src/hook/store.ts","../src/hook/cacheUpdate.ts","../src/hook/nextTickRender.ts"],"sourcesContent":["export const state = <T>(\n value: T,\n renew: () => boolean\n): {\n value: T;\n v: T;\n} => {\n let result = value;\n\n return {\n get value() {\n return result;\n },\n get v() {\n return result;\n },\n set value(newValue: T) {\n result = newValue;\n renew();\n },\n set v(newValue: T) {\n result = newValue;\n renew();\n },\n };\n};\n","export const computed = <T>(\n value: () => T\n): {\n value: T;\n v: T;\n} => {\n let result = value;\n\n return {\n get value() {\n return result();\n },\n get v() {\n return result();\n },\n set value(_newValue: T) {\n throw new Error(`You can't change 'computed'`);\n },\n set v(_newValue: T) {\n throw new Error(`You can't change 'computed'`);\n },\n };\n};\n","import { updateCallback, mountCallback } from 'lithent';\n\nexport const effect = (\n forward: () => (() => void) | void,\n backward: () => (() => void) | void = () => {},\n dependencies: () => any[] = () => []\n) => {\n mountCallback(() => {\n forward();\n\n return backward;\n });\n\n updateCallback(() => {\n if (backward) {\n backward();\n }\n\n return forward;\n }, dependencies);\n};\n","/**\n * DataStore\n */\ntype StoreType<V> = V extends { [key: string]: unknown } ? V : { value: V };\n\ntype Renew<T> = (store: T) => boolean | AbortSignal | void;\ntype StoreValue<T> = {\n [key: string | symbol]: Renew<T>[];\n};\ntype StoreRenderObserveMap<T> = { [key: string | symbol]: StoreValue<T> };\nconst storeGroup = new Map<string | symbol, unknown>();\nconst abortSignalSets = new WeakSet<AbortSignal>();\nconst allowInitSetting = { value: false };\n\nexport const store = <V>(initialValue: V) => {\n type T = StoreType<V>;\n\n let value = null;\n if (typeof initialValue === 'object' && initialValue !== null) {\n value = initialValue;\n } else {\n value = { value: initialValue };\n }\n\n const storeKey = Symbol();\n const storeRenderList: StoreValue<T> = {};\n const storeRenderObserveList: StoreRenderObserveMap<T>[] = [];\n\n storeGroup.set(storeKey, value);\n\n return (renew?: Renew<T>, makeObserver?: (store: T) => unknown[]) => {\n const storeRenderObserveMap: StoreRenderObserveMap<T> = {};\n let makedProxy: null | T = null;\n\n storeRenderObserveList.push(storeRenderObserveMap);\n\n if (renew && makeObserver) {\n makedProxy = updater<T>(\n storeKey,\n storeRenderList,\n () => renew(makedProxy!),\n storeRenderObserveMap,\n storeRenderObserveList\n );\n allowInitSetting.value = true;\n makeObserver(makedProxy);\n allowInitSetting.value = false;\n } else if (renew) {\n storeRenderList[storeKey] ??= [];\n }\n\n if (!makedProxy) {\n makedProxy = updater<T>(storeKey, storeRenderList);\n\n if (renew) {\n storeRenderList[storeKey].push(() => renew(makedProxy!));\n }\n }\n\n if (renew) {\n runFirstEmit<T>(\n () => renew(makedProxy!),\n storeKey,\n storeRenderList,\n storeRenderObserveMap\n );\n }\n\n return makedProxy;\n };\n};\n\nconst updater = <T extends { [key: string | symbol]: unknown }>(\n storeKey: string | symbol,\n storeRenderList: StoreValue<T>,\n run?: () => boolean | AbortSignal | void,\n storeRenderObserveMap?: { [key: string | symbol]: StoreValue<T> },\n storeRenderObserveList?: StoreRenderObserveMap<T>[]\n) => {\n const allowedAccessProp: (keyof T)[] = [];\n\n const result = new Proxy(storeGroup.get(storeKey) as T, {\n get(target: T, prop: keyof T) {\n if (run && storeRenderObserveMap && allowInitSetting.value) {\n storeRenderObserveMap[storeKey] ??= {};\n storeRenderObserveMap[storeKey][prop] ??= [];\n\n if (!storeRenderObserveMap[storeKey][prop].includes(run)) {\n storeRenderObserveMap[storeKey][prop].push(run);\n allowedAccessProp.push(prop);\n }\n }\n\n if (allowedAccessProp.includes(prop) || !run) {\n return target[prop];\n }\n\n return null;\n },\n set(target, prop: keyof T, value) {\n if (allowedAccessProp.includes(prop) || !run) {\n target[prop] = value;\n } else {\n return true;\n }\n\n const renderList = storeRenderList[storeKey] || [];\n const trashCollections: Renew<T>[] = [];\n\n renderList.forEach(renew => {\n if (!renew(result)) {\n trashCollections.push(renew);\n }\n });\n\n (storeRenderObserveList || []).forEach(storeRenderObserveMap => {\n const renderObserveList: Renew<T>[] = run\n ? (storeRenderObserveMap && storeRenderObserveMap[storeKey][prop]) ||\n []\n : [];\n renderObserveList.forEach(renew => {\n if (!renew(result)) {\n trashCollections.push(renew);\n }\n });\n trashCollections.forEach(deleteTarget => {\n renderObserveList.splice(renderObserveList.indexOf(deleteTarget), 1);\n });\n });\n\n trashCollections.forEach(deleteTarget => {\n renderList.splice(renderList.indexOf(deleteTarget), 1);\n });\n\n return true;\n },\n });\n\n return result;\n};\n\nconst runFirstEmit = <T>(\n run: () => boolean | void | AbortSignal,\n storeKey: symbol,\n storeRenderList: StoreValue<T>,\n storeRenderObserveMap: { [key: string | symbol]: StoreValue<T> }\n) => {\n const renewResult = run();\n\n if (renewResult instanceof AbortSignal) {\n renewResult.addEventListener('abort', () => {\n const renderList = storeRenderList[storeKey] || [];\n const renderObserveList: StoreValue<T> =\n storeRenderObserveMap[storeKey] || {};\n\n renderList.splice(renderList.indexOf(run), 1);\n Object.values(renderObserveList).forEach(item => {\n item.splice(item.indexOf(run), 1);\n });\n abortSignalSets.delete(renewResult);\n });\n abortSignalSets.add(renewResult);\n }\n};\n","import { WDom, Props } from 'lithent';\n\nexport const cacheUpdate = (\n checkFunction: () => unknown[],\n updater: (props: Props) => WDom\n) => {\n let originalDefs: unknown[] = [];\n let originalUpdater: WDom | null = null;\n\n return (props: Props) => {\n const newDefs = checkFunction();\n const isSame = originalDefs.every((def, index) => def === newDefs[index]);\n\n originalDefs = newDefs;\n\n if (isSame && originalUpdater) {\n return originalUpdater;\n }\n\n const newUpdater = updater(props);\n originalUpdater = newUpdater;\n\n return newUpdater;\n };\n};\n","import { render, WDom, nextTick } from 'lithent';\n\nexport const nextTickRender = (\n wDomMaker: () => WDom,\n wrapElement: HTMLElement | null,\n afterElement?: HTMLElement | null\n) => {\n let destroy = () => {};\n\n nextTick().then(() => {\n destroy = render(wDomMaker(), wrapElement, afterElement);\n });\n\n return () => destroy();\n};\n"],"names":["state","value","renew","result","newValue","computed","_newValue","effect","forward","backward","dependencies","mountCallback","updateCallback","storeGroup","abortSignalSets","allowInitSetting","store","initialValue","storeKey","storeRenderList","storeRenderObserveList","makeObserver","storeRenderObserveMap","makedProxy","updater","runFirstEmit","run","allowedAccessProp","target","prop","_a","renderList","trashCollections","renderObserveList","deleteTarget","renewResult","item","cacheUpdate","checkFunction","originalDefs","originalUpdater","props","newDefs","isSame","def","index","newUpdater","nextTickRender","wDomMaker","wrapElement","afterElement","destroy","nextTick","render"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lithentHelper.mjs","sources":["../src/hook/state.ts","../src/hook/computed.ts","../src/hook/effect.ts","../src/hook/store.ts","../src/hook/cacheUpdate.ts","../src/hook/nextTickRender.ts"],"sourcesContent":["export const state = <T>(\n value: T,\n renew: () => boolean\n): {\n value: T;\n v: T;\n} => {\n let result = value;\n\n return {\n get value() {\n return result;\n },\n get v() {\n return result;\n },\n set value(newValue: T) {\n result = newValue;\n renew();\n },\n set v(newValue: T) {\n result = newValue;\n renew();\n },\n };\n};\n","export const computed = <T>(\n value: () => T\n): {\n value: T;\n v: T;\n} => {\n let result = value;\n\n return {\n get value() {\n return result();\n },\n get v() {\n return result();\n },\n set value(_newValue: T) {\n throw new Error(`You can't change 'computed'`);\n },\n set v(_newValue: T) {\n throw new Error(`You can't change 'computed'`);\n },\n };\n};\n","import { updateCallback, mountCallback } from 'lithent';\n\nexport const effect = (\n forward: () => (() => void) | void,\n backward: () => (() => void) | void = () => {},\n dependencies: () => any[] = () => []\n) => {\n mountCallback(() => {\n forward();\n\n return backward;\n });\n\n updateCallback(() => {\n if (backward) {\n backward();\n }\n\n return forward;\n }, dependencies);\n};\n","/**\n * DataStore\n */\ntype Renew<T> = (store: T) => boolean | AbortSignal | void;\ntype StoreType<V> = V extends { [key: string]: unknown } ? V : { value: V };\ntype StoreValue<T> = {\n [key: string | symbol]: Renew<T>[];\n};\ntype StoreRenderObserveSubList<T> = StoreValue<T>;\n\nexport const store = <V>(initialValue: V) => {\n type T = StoreType<V>;\n\n const allowInitSetting = { value: false };\n const isObjectTypeValue =\n typeof initialValue === 'object' && initialValue !== null;\n const value: T = isObjectTypeValue\n ? (initialValue as T)\n : ({ value: initialValue } as T);\n\n let storeRenderList: Renew<T>[] = [];\n const storeRenderObserveList: StoreRenderObserveSubList<T>[] = [];\n\n return (renew?: Renew<T>, makeObserver?: (store: T) => unknown[]) => {\n const storeRenderObserveMap: StoreRenderObserveSubList<T> = {};\n let makedProxy: null | T = null;\n\n storeRenderObserveList.push(storeRenderObserveMap);\n\n if (renew && makeObserver) {\n makedProxy = updater<T>(\n value,\n allowInitSetting,\n storeRenderList,\n () => renew(makedProxy!),\n storeRenderObserveMap,\n storeRenderObserveList\n );\n allowInitSetting.value = true;\n makeObserver(makedProxy);\n allowInitSetting.value = false;\n }\n\n if (!makedProxy) {\n makedProxy = updater<T>(value, allowInitSetting, storeRenderList);\n\n if (renew) {\n storeRenderList.push(() => renew(makedProxy!));\n }\n }\n\n if (renew) {\n runFirstEmit<T>(\n () => renew(makedProxy!),\n storeRenderList,\n storeRenderObserveMap\n );\n }\n\n return makedProxy;\n };\n};\n\nconst updater = <T extends { [key: string | symbol]: unknown }>(\n value: T,\n allowInitSetting: { value: boolean },\n storeRenderList: Renew<T>[],\n run?: () => boolean | AbortSignal | void,\n storeRenderObserveMap?: StoreValue<T>,\n storeRenderObserveList?: StoreRenderObserveSubList<T>[]\n) => {\n const allowedAccessProp: (keyof T)[] = [];\n\n const result = new Proxy(value, {\n get(target: T, prop: keyof T) {\n if (run && storeRenderObserveMap && allowInitSetting.value) {\n storeRenderObserveMap[prop] ??= [];\n\n if (!storeRenderObserveMap[prop].includes(run)) {\n storeRenderObserveMap[prop].push(run);\n allowedAccessProp.push(prop);\n }\n }\n\n if (allowedAccessProp.includes(prop) || !run) {\n return target[prop];\n }\n\n return null;\n },\n set(target, prop: keyof T, value) {\n if (allowedAccessProp.includes(prop) || !run) {\n target[prop] = value;\n } else {\n return true;\n }\n\n execDependentCallbacks(\n result,\n storeRenderList,\n storeRenderObserveList,\n prop,\n run\n );\n\n return true;\n },\n });\n\n return result;\n};\n\nconst execDependentCallbacks = <T>(\n result: T,\n storeRenderList: Renew<T>[],\n storeRenderObserveList: StoreRenderObserveSubList<T>[] = [],\n prop: keyof T,\n run?: () => boolean | AbortSignal | void\n) => {\n const trashCollections: Renew<T>[] = [];\n\n trashCollections.push(...runWithtrashCollectUnit(storeRenderList, result));\n\n (storeRenderObserveList || []).forEach(storeRenderObserveMap => {\n const renderObserveList: Renew<T>[] = run\n ? storeRenderObserveMap[prop] || []\n : [];\n\n trashCollections.push(\n ...runWithtrashCollectUnit(renderObserveList, result)\n );\n\n removeTrashCollect(trashCollections, renderObserveList);\n });\n\n removeTrashCollect(trashCollections, storeRenderList);\n};\n\nconst removeTrashCollect = <T>(\n trashCollections: Renew<T>[],\n targetList: Renew<T>[]\n) => {\n trashCollections.forEach(deleteTarget => {\n targetList.splice(targetList.indexOf(deleteTarget), 1);\n });\n};\n\nconst runWithtrashCollectUnit = <T>(storeRenderList: Renew<T>[], result: T) => {\n const trashes: Renew<T>[] = [];\n storeRenderList.forEach(renew => {\n if (renew(result) === false) {\n trashes.push(renew);\n }\n });\n return trashes;\n};\n\nconst runFirstEmit = <T>(\n run: () => boolean | void | AbortSignal,\n storeRenderList: Renew<T>[],\n storeRenderObserveMap: StoreValue<T>\n) => {\n const renewResult = run();\n\n if (renewResult instanceof AbortSignal) {\n renewResult.addEventListener('abort', () => {\n const renderObserveList: StoreValue<T> = storeRenderObserveMap || {};\n\n storeRenderList.splice(storeRenderList.indexOf(run), 1);\n Object.values(renderObserveList).forEach(item => {\n item.splice(item.indexOf(run), 1);\n });\n });\n }\n};\n","import { WDom, Props } from 'lithent';\n\nexport const cacheUpdate = (\n checkFunction: () => unknown[],\n updater: (props: Props) => WDom\n) => {\n let originalDefs: unknown[] = [];\n let originalUpdater: WDom | null = null;\n\n return (props: Props) => {\n const newDefs = checkFunction();\n const isSame = originalDefs.every((def, index) => def === newDefs[index]);\n\n originalDefs = newDefs;\n\n if (isSame && originalUpdater) {\n return originalUpdater;\n }\n\n const newUpdater = updater(props);\n originalUpdater = newUpdater;\n\n return newUpdater;\n };\n};\n","import { render, WDom, nextTick } from 'lithent';\n\nexport const nextTickRender = (\n wDomMaker: () => WDom,\n wrapElement: HTMLElement | null,\n afterElement?: HTMLElement | null\n) => {\n let destroy = () => {};\n\n nextTick().then(() => {\n destroy = render(wDomMaker(), wrapElement, afterElement);\n });\n\n return () => destroy();\n};\n"],"names":["state","value","renew","result","newValue","computed","_newValue","effect","forward","backward","dependencies","mountCallback","updateCallback","store","initialValue","allowInitSetting","storeRenderList","storeRenderObserveList","makeObserver","storeRenderObserveMap","makedProxy","updater","runFirstEmit","run","allowedAccessProp","target","prop","execDependentCallbacks","trashCollections","runWithtrashCollectUnit","renderObserveList","removeTrashCollect","targetList","deleteTarget","trashes","renewResult","item","cacheUpdate","checkFunction","originalDefs","originalUpdater","props","newDefs","isSame","def","index","newUpdater","nextTickRender","wDomMaker","wrapElement","afterElement","destroy","nextTick","render"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(
|
|
1
|
+
(function(i,a){typeof exports=="object"&&typeof module<"u"?a(exports,require("lithent")):typeof define=="function"&&define.amd?define(["exports","lithent"],a):(i=typeof globalThis<"u"?globalThis:i||self,a(i.lithentHelper={},i.lithent))})(this,function(i,a){"use strict";const g=(t,e)=>{let c=t;return{get value(){return c},get v(){return c},set value(n){c=n,e()},set v(n){c=n,e()}}},y=t=>{let e=t;return{get value(){return e()},get v(){return e()},set value(c){throw new Error("You can't change 'computed'")},set v(c){throw new Error("You can't change 'computed'")}}},m=(t,e=()=>{},c=()=>[])=>{a.mountCallback(()=>(t(),e)),a.updateCallback(()=>(e&&e(),t),c)},T=t=>{const e={value:!1},n=typeof t=="object"&&t!==null?t:{value:t};let u=[];const l=[];return(o,r)=>{const f={};let s=null;return l.push(f),o&&r&&(s=d(n,e,u,()=>o(s),f,l),e.value=!0,r(s),e.value=!1),s||(s=d(n,e,u),o&&u.push(()=>o(s))),o&&j(()=>o(s),u,f),s}},d=(t,e,c,n,u,l)=>{const o=[],r=new Proxy(t,{get(f,s){return n&&u&&e.value&&(u[s]??(u[s]=[]),u[s].includes(n)||(u[s].push(n),o.push(s))),o.includes(s)||!n?f[s]:null},set(f,s,b){if(o.includes(s)||!n)f[s]=b;else return!0;return E(r,c,l,s,n),!0}});return r},E=(t,e,c=[],n,u)=>{const l=[];l.push(...v(e,t)),(c||[]).forEach(o=>{const r=u?o[n]||[]:[];l.push(...v(r,t)),h(l,r)}),h(l,e)},h=(t,e)=>{t.forEach(c=>{e.splice(e.indexOf(c),1)})},v=(t,e)=>{const c=[];return t.forEach(n=>{n(e)===!1&&c.push(n)}),c},j=(t,e,c)=>{const n=t();n instanceof AbortSignal&&n.addEventListener("abort",()=>{const u=c||{};e.splice(e.indexOf(t),1),Object.values(u).forEach(l=>{l.splice(l.indexOf(t),1)})})},x=(t,e)=>{let c=[],n=null;return u=>{const l=t(),o=c.every((f,s)=>f===l[s]);if(c=l,o&&n)return n;const r=e(u);return n=r,r}},C=(t,e,c)=>{let n=()=>{};return a.nextTick().then(()=>{n=a.render(t(),e,c)}),()=>n()};i.cacheUpdate=x,i.computed=y,i.effect=m,i.nextTickRender=C,i.state=g,i.store=T,Object.defineProperty(i,Symbol.toStringTag,{value:"Module"})});
|
|
2
2
|
//# sourceMappingURL=lithentHelper.umd.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lithentHelper.umd.js","sources":["../src/hook/state.ts","../src/hook/computed.ts","../src/hook/effect.ts","../src/hook/store.ts","../src/hook/cacheUpdate.ts","../src/hook/nextTickRender.ts"],"sourcesContent":["export const state = <T>(\n value: T,\n renew: () => boolean\n): {\n value: T;\n v: T;\n} => {\n let result = value;\n\n return {\n get value() {\n return result;\n },\n get v() {\n return result;\n },\n set value(newValue: T) {\n result = newValue;\n renew();\n },\n set v(newValue: T) {\n result = newValue;\n renew();\n },\n };\n};\n","export const computed = <T>(\n value: () => T\n): {\n value: T;\n v: T;\n} => {\n let result = value;\n\n return {\n get value() {\n return result();\n },\n get v() {\n return result();\n },\n set value(_newValue: T) {\n throw new Error(`You can't change 'computed'`);\n },\n set v(_newValue: T) {\n throw new Error(`You can't change 'computed'`);\n },\n };\n};\n","import { updateCallback, mountCallback } from 'lithent';\n\nexport const effect = (\n forward: () => (() => void) | void,\n backward: () => (() => void) | void = () => {},\n dependencies: () => any[] = () => []\n) => {\n mountCallback(() => {\n forward();\n\n return backward;\n });\n\n updateCallback(() => {\n if (backward) {\n backward();\n }\n\n return forward;\n }, dependencies);\n};\n","/**\n * DataStore\n */\ntype StoreType<V> = V extends { [key: string]: unknown } ? V : { value: V };\n\ntype Renew<T> = (store: T) => boolean | AbortSignal | void;\ntype StoreValue<T> = {\n [key: string | symbol]: Renew<T>[];\n};\ntype StoreRenderObserveMap<T> = { [key: string | symbol]: StoreValue<T> };\nconst storeGroup = new Map<string | symbol, unknown>();\nconst abortSignalSets = new WeakSet<AbortSignal>();\nconst allowInitSetting = { value: false };\n\nexport const store = <V>(initialValue: V) => {\n type T = StoreType<V>;\n\n let value = null;\n if (typeof initialValue === 'object' && initialValue !== null) {\n value = initialValue;\n } else {\n value = { value: initialValue };\n }\n\n const storeKey = Symbol();\n const storeRenderList: StoreValue<T> = {};\n const storeRenderObserveList: StoreRenderObserveMap<T>[] = [];\n\n storeGroup.set(storeKey, value);\n\n return (renew?: Renew<T>, makeObserver?: (store: T) => unknown[]) => {\n const storeRenderObserveMap: StoreRenderObserveMap<T> = {};\n let makedProxy: null | T = null;\n\n storeRenderObserveList.push(storeRenderObserveMap);\n\n if (renew && makeObserver) {\n makedProxy = updater<T>(\n storeKey,\n storeRenderList,\n () => renew(makedProxy!),\n storeRenderObserveMap,\n storeRenderObserveList\n );\n allowInitSetting.value = true;\n makeObserver(makedProxy);\n allowInitSetting.value = false;\n } else if (renew) {\n storeRenderList[storeKey] ??= [];\n }\n\n if (!makedProxy) {\n makedProxy = updater<T>(storeKey, storeRenderList);\n\n if (renew) {\n storeRenderList[storeKey].push(() => renew(makedProxy!));\n }\n }\n\n if (renew) {\n runFirstEmit<T>(\n () => renew(makedProxy!),\n storeKey,\n storeRenderList,\n storeRenderObserveMap\n );\n }\n\n return makedProxy;\n };\n};\n\nconst updater = <T extends { [key: string | symbol]: unknown }>(\n storeKey: string | symbol,\n storeRenderList: StoreValue<T>,\n run?: () => boolean | AbortSignal | void,\n storeRenderObserveMap?: { [key: string | symbol]: StoreValue<T> },\n storeRenderObserveList?: StoreRenderObserveMap<T>[]\n) => {\n const allowedAccessProp: (keyof T)[] = [];\n\n const result = new Proxy(storeGroup.get(storeKey) as T, {\n get(target: T, prop: keyof T) {\n if (run && storeRenderObserveMap && allowInitSetting.value) {\n storeRenderObserveMap[storeKey] ??= {};\n storeRenderObserveMap[storeKey][prop] ??= [];\n\n if (!storeRenderObserveMap[storeKey][prop].includes(run)) {\n storeRenderObserveMap[storeKey][prop].push(run);\n allowedAccessProp.push(prop);\n }\n }\n\n if (allowedAccessProp.includes(prop) || !run) {\n return target[prop];\n }\n\n return null;\n },\n set(target, prop: keyof T, value) {\n if (allowedAccessProp.includes(prop) || !run) {\n target[prop] = value;\n } else {\n return true;\n }\n\n const renderList = storeRenderList[storeKey] || [];\n const trashCollections: Renew<T>[] = [];\n\n renderList.forEach(renew => {\n if (!renew(result)) {\n trashCollections.push(renew);\n }\n });\n\n (storeRenderObserveList || []).forEach(storeRenderObserveMap => {\n const renderObserveList: Renew<T>[] = run\n ? (storeRenderObserveMap && storeRenderObserveMap[storeKey][prop]) ||\n []\n : [];\n renderObserveList.forEach(renew => {\n if (!renew(result)) {\n trashCollections.push(renew);\n }\n });\n trashCollections.forEach(deleteTarget => {\n renderObserveList.splice(renderObserveList.indexOf(deleteTarget), 1);\n });\n });\n\n trashCollections.forEach(deleteTarget => {\n renderList.splice(renderList.indexOf(deleteTarget), 1);\n });\n\n return true;\n },\n });\n\n return result;\n};\n\nconst runFirstEmit = <T>(\n run: () => boolean | void | AbortSignal,\n storeKey: symbol,\n storeRenderList: StoreValue<T>,\n storeRenderObserveMap: { [key: string | symbol]: StoreValue<T> }\n) => {\n const renewResult = run();\n\n if (renewResult instanceof AbortSignal) {\n renewResult.addEventListener('abort', () => {\n const renderList = storeRenderList[storeKey] || [];\n const renderObserveList: StoreValue<T> =\n storeRenderObserveMap[storeKey] || {};\n\n renderList.splice(renderList.indexOf(run), 1);\n Object.values(renderObserveList).forEach(item => {\n item.splice(item.indexOf(run), 1);\n });\n abortSignalSets.delete(renewResult);\n });\n abortSignalSets.add(renewResult);\n }\n};\n","import { WDom, Props } from 'lithent';\n\nexport const cacheUpdate = (\n checkFunction: () => unknown[],\n updater: (props: Props) => WDom\n) => {\n let originalDefs: unknown[] = [];\n let originalUpdater: WDom | null = null;\n\n return (props: Props) => {\n const newDefs = checkFunction();\n const isSame = originalDefs.every((def, index) => def === newDefs[index]);\n\n originalDefs = newDefs;\n\n if (isSame && originalUpdater) {\n return originalUpdater;\n }\n\n const newUpdater = updater(props);\n originalUpdater = newUpdater;\n\n return newUpdater;\n };\n};\n","import { render, WDom, nextTick } from 'lithent';\n\nexport const nextTickRender = (\n wDomMaker: () => WDom,\n wrapElement: HTMLElement | null,\n afterElement?: HTMLElement | null\n) => {\n let destroy = () => {};\n\n nextTick().then(() => {\n destroy = render(wDomMaker(), wrapElement, afterElement);\n });\n\n return () => destroy();\n};\n"],"names":["state","value","renew","result","newValue","computed","_newValue","effect","forward","backward","dependencies","mountCallback","updateCallback","storeGroup","abortSignalSets","allowInitSetting","store","initialValue","storeKey","storeRenderList","storeRenderObserveList","makeObserver","storeRenderObserveMap","makedProxy","updater","runFirstEmit","run","allowedAccessProp","target","prop","_a","renderList","trashCollections","renderObserveList","deleteTarget","renewResult","item","cacheUpdate","checkFunction","originalDefs","originalUpdater","props","newDefs","isSame","def","index","newUpdater","nextTickRender","wDomMaker","wrapElement","afterElement","destroy","nextTick","render"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lithentHelper.umd.js","sources":["../src/hook/state.ts","../src/hook/computed.ts","../src/hook/effect.ts","../src/hook/store.ts","../src/hook/cacheUpdate.ts","../src/hook/nextTickRender.ts"],"sourcesContent":["export const state = <T>(\n value: T,\n renew: () => boolean\n): {\n value: T;\n v: T;\n} => {\n let result = value;\n\n return {\n get value() {\n return result;\n },\n get v() {\n return result;\n },\n set value(newValue: T) {\n result = newValue;\n renew();\n },\n set v(newValue: T) {\n result = newValue;\n renew();\n },\n };\n};\n","export const computed = <T>(\n value: () => T\n): {\n value: T;\n v: T;\n} => {\n let result = value;\n\n return {\n get value() {\n return result();\n },\n get v() {\n return result();\n },\n set value(_newValue: T) {\n throw new Error(`You can't change 'computed'`);\n },\n set v(_newValue: T) {\n throw new Error(`You can't change 'computed'`);\n },\n };\n};\n","import { updateCallback, mountCallback } from 'lithent';\n\nexport const effect = (\n forward: () => (() => void) | void,\n backward: () => (() => void) | void = () => {},\n dependencies: () => any[] = () => []\n) => {\n mountCallback(() => {\n forward();\n\n return backward;\n });\n\n updateCallback(() => {\n if (backward) {\n backward();\n }\n\n return forward;\n }, dependencies);\n};\n","/**\n * DataStore\n */\ntype Renew<T> = (store: T) => boolean | AbortSignal | void;\ntype StoreType<V> = V extends { [key: string]: unknown } ? V : { value: V };\ntype StoreValue<T> = {\n [key: string | symbol]: Renew<T>[];\n};\ntype StoreRenderObserveSubList<T> = StoreValue<T>;\n\nexport const store = <V>(initialValue: V) => {\n type T = StoreType<V>;\n\n const allowInitSetting = { value: false };\n const isObjectTypeValue =\n typeof initialValue === 'object' && initialValue !== null;\n const value: T = isObjectTypeValue\n ? (initialValue as T)\n : ({ value: initialValue } as T);\n\n let storeRenderList: Renew<T>[] = [];\n const storeRenderObserveList: StoreRenderObserveSubList<T>[] = [];\n\n return (renew?: Renew<T>, makeObserver?: (store: T) => unknown[]) => {\n const storeRenderObserveMap: StoreRenderObserveSubList<T> = {};\n let makedProxy: null | T = null;\n\n storeRenderObserveList.push(storeRenderObserveMap);\n\n if (renew && makeObserver) {\n makedProxy = updater<T>(\n value,\n allowInitSetting,\n storeRenderList,\n () => renew(makedProxy!),\n storeRenderObserveMap,\n storeRenderObserveList\n );\n allowInitSetting.value = true;\n makeObserver(makedProxy);\n allowInitSetting.value = false;\n }\n\n if (!makedProxy) {\n makedProxy = updater<T>(value, allowInitSetting, storeRenderList);\n\n if (renew) {\n storeRenderList.push(() => renew(makedProxy!));\n }\n }\n\n if (renew) {\n runFirstEmit<T>(\n () => renew(makedProxy!),\n storeRenderList,\n storeRenderObserveMap\n );\n }\n\n return makedProxy;\n };\n};\n\nconst updater = <T extends { [key: string | symbol]: unknown }>(\n value: T,\n allowInitSetting: { value: boolean },\n storeRenderList: Renew<T>[],\n run?: () => boolean | AbortSignal | void,\n storeRenderObserveMap?: StoreValue<T>,\n storeRenderObserveList?: StoreRenderObserveSubList<T>[]\n) => {\n const allowedAccessProp: (keyof T)[] = [];\n\n const result = new Proxy(value, {\n get(target: T, prop: keyof T) {\n if (run && storeRenderObserveMap && allowInitSetting.value) {\n storeRenderObserveMap[prop] ??= [];\n\n if (!storeRenderObserveMap[prop].includes(run)) {\n storeRenderObserveMap[prop].push(run);\n allowedAccessProp.push(prop);\n }\n }\n\n if (allowedAccessProp.includes(prop) || !run) {\n return target[prop];\n }\n\n return null;\n },\n set(target, prop: keyof T, value) {\n if (allowedAccessProp.includes(prop) || !run) {\n target[prop] = value;\n } else {\n return true;\n }\n\n execDependentCallbacks(\n result,\n storeRenderList,\n storeRenderObserveList,\n prop,\n run\n );\n\n return true;\n },\n });\n\n return result;\n};\n\nconst execDependentCallbacks = <T>(\n result: T,\n storeRenderList: Renew<T>[],\n storeRenderObserveList: StoreRenderObserveSubList<T>[] = [],\n prop: keyof T,\n run?: () => boolean | AbortSignal | void\n) => {\n const trashCollections: Renew<T>[] = [];\n\n trashCollections.push(...runWithtrashCollectUnit(storeRenderList, result));\n\n (storeRenderObserveList || []).forEach(storeRenderObserveMap => {\n const renderObserveList: Renew<T>[] = run\n ? storeRenderObserveMap[prop] || []\n : [];\n\n trashCollections.push(\n ...runWithtrashCollectUnit(renderObserveList, result)\n );\n\n removeTrashCollect(trashCollections, renderObserveList);\n });\n\n removeTrashCollect(trashCollections, storeRenderList);\n};\n\nconst removeTrashCollect = <T>(\n trashCollections: Renew<T>[],\n targetList: Renew<T>[]\n) => {\n trashCollections.forEach(deleteTarget => {\n targetList.splice(targetList.indexOf(deleteTarget), 1);\n });\n};\n\nconst runWithtrashCollectUnit = <T>(storeRenderList: Renew<T>[], result: T) => {\n const trashes: Renew<T>[] = [];\n storeRenderList.forEach(renew => {\n if (renew(result) === false) {\n trashes.push(renew);\n }\n });\n return trashes;\n};\n\nconst runFirstEmit = <T>(\n run: () => boolean | void | AbortSignal,\n storeRenderList: Renew<T>[],\n storeRenderObserveMap: StoreValue<T>\n) => {\n const renewResult = run();\n\n if (renewResult instanceof AbortSignal) {\n renewResult.addEventListener('abort', () => {\n const renderObserveList: StoreValue<T> = storeRenderObserveMap || {};\n\n storeRenderList.splice(storeRenderList.indexOf(run), 1);\n Object.values(renderObserveList).forEach(item => {\n item.splice(item.indexOf(run), 1);\n });\n });\n }\n};\n","import { WDom, Props } from 'lithent';\n\nexport const cacheUpdate = (\n checkFunction: () => unknown[],\n updater: (props: Props) => WDom\n) => {\n let originalDefs: unknown[] = [];\n let originalUpdater: WDom | null = null;\n\n return (props: Props) => {\n const newDefs = checkFunction();\n const isSame = originalDefs.every((def, index) => def === newDefs[index]);\n\n originalDefs = newDefs;\n\n if (isSame && originalUpdater) {\n return originalUpdater;\n }\n\n const newUpdater = updater(props);\n originalUpdater = newUpdater;\n\n return newUpdater;\n };\n};\n","import { render, WDom, nextTick } from 'lithent';\n\nexport const nextTickRender = (\n wDomMaker: () => WDom,\n wrapElement: HTMLElement | null,\n afterElement?: HTMLElement | null\n) => {\n let destroy = () => {};\n\n nextTick().then(() => {\n destroy = render(wDomMaker(), wrapElement, afterElement);\n });\n\n return () => destroy();\n};\n"],"names":["state","value","renew","result","newValue","computed","_newValue","effect","forward","backward","dependencies","mountCallback","updateCallback","store","initialValue","allowInitSetting","storeRenderList","storeRenderObserveList","makeObserver","storeRenderObserveMap","makedProxy","updater","runFirstEmit","run","allowedAccessProp","target","prop","execDependentCallbacks","trashCollections","runWithtrashCollectUnit","renderObserveList","removeTrashCollect","targetList","deleteTarget","trashes","renewResult","item","cacheUpdate","checkFunction","originalDefs","originalUpdater","props","newDefs","isSame","def","index","newUpdater","nextTickRender","wDomMaker","wrapElement","afterElement","destroy","nextTick","render"],"mappings":"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"}
|
package/helper/src/hook/store.ts
CHANGED
|
@@ -1,42 +1,36 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* DataStore
|
|
3
3
|
*/
|
|
4
|
-
type StoreType<V> = V extends { [key: string]: unknown } ? V : { value: V };
|
|
5
|
-
|
|
6
4
|
type Renew<T> = (store: T) => boolean | AbortSignal | void;
|
|
5
|
+
type StoreType<V> = V extends { [key: string]: unknown } ? V : { value: V };
|
|
7
6
|
type StoreValue<T> = {
|
|
8
7
|
[key: string | symbol]: Renew<T>[];
|
|
9
8
|
};
|
|
10
|
-
type
|
|
11
|
-
const storeGroup = new Map<string | symbol, unknown>();
|
|
12
|
-
const abortSignalSets = new WeakSet<AbortSignal>();
|
|
13
|
-
const allowInitSetting = { value: false };
|
|
9
|
+
type StoreRenderObserveSubList<T> = StoreValue<T>;
|
|
14
10
|
|
|
15
11
|
export const store = <V>(initialValue: V) => {
|
|
16
12
|
type T = StoreType<V>;
|
|
17
13
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
const storeKey = Symbol();
|
|
26
|
-
const storeRenderList: StoreValue<T> = {};
|
|
27
|
-
const storeRenderObserveList: StoreRenderObserveMap<T>[] = [];
|
|
14
|
+
const allowInitSetting = { value: false };
|
|
15
|
+
const isObjectTypeValue =
|
|
16
|
+
typeof initialValue === 'object' && initialValue !== null;
|
|
17
|
+
const value: T = isObjectTypeValue
|
|
18
|
+
? (initialValue as T)
|
|
19
|
+
: ({ value: initialValue } as T);
|
|
28
20
|
|
|
29
|
-
|
|
21
|
+
let storeRenderList: Renew<T>[] = [];
|
|
22
|
+
const storeRenderObserveList: StoreRenderObserveSubList<T>[] = [];
|
|
30
23
|
|
|
31
24
|
return (renew?: Renew<T>, makeObserver?: (store: T) => unknown[]) => {
|
|
32
|
-
const storeRenderObserveMap:
|
|
25
|
+
const storeRenderObserveMap: StoreRenderObserveSubList<T> = {};
|
|
33
26
|
let makedProxy: null | T = null;
|
|
34
27
|
|
|
35
28
|
storeRenderObserveList.push(storeRenderObserveMap);
|
|
36
29
|
|
|
37
30
|
if (renew && makeObserver) {
|
|
38
31
|
makedProxy = updater<T>(
|
|
39
|
-
|
|
32
|
+
value,
|
|
33
|
+
allowInitSetting,
|
|
40
34
|
storeRenderList,
|
|
41
35
|
() => renew(makedProxy!),
|
|
42
36
|
storeRenderObserveMap,
|
|
@@ -45,22 +39,19 @@ export const store = <V>(initialValue: V) => {
|
|
|
45
39
|
allowInitSetting.value = true;
|
|
46
40
|
makeObserver(makedProxy);
|
|
47
41
|
allowInitSetting.value = false;
|
|
48
|
-
} else if (renew) {
|
|
49
|
-
storeRenderList[storeKey] ??= [];
|
|
50
42
|
}
|
|
51
43
|
|
|
52
44
|
if (!makedProxy) {
|
|
53
|
-
makedProxy = updater<T>(
|
|
45
|
+
makedProxy = updater<T>(value, allowInitSetting, storeRenderList);
|
|
54
46
|
|
|
55
47
|
if (renew) {
|
|
56
|
-
storeRenderList
|
|
48
|
+
storeRenderList.push(() => renew(makedProxy!));
|
|
57
49
|
}
|
|
58
50
|
}
|
|
59
51
|
|
|
60
52
|
if (renew) {
|
|
61
53
|
runFirstEmit<T>(
|
|
62
54
|
() => renew(makedProxy!),
|
|
63
|
-
storeKey,
|
|
64
55
|
storeRenderList,
|
|
65
56
|
storeRenderObserveMap
|
|
66
57
|
);
|
|
@@ -71,22 +62,22 @@ export const store = <V>(initialValue: V) => {
|
|
|
71
62
|
};
|
|
72
63
|
|
|
73
64
|
const updater = <T extends { [key: string | symbol]: unknown }>(
|
|
74
|
-
|
|
75
|
-
|
|
65
|
+
value: T,
|
|
66
|
+
allowInitSetting: { value: boolean },
|
|
67
|
+
storeRenderList: Renew<T>[],
|
|
76
68
|
run?: () => boolean | AbortSignal | void,
|
|
77
|
-
storeRenderObserveMap?:
|
|
78
|
-
storeRenderObserveList?:
|
|
69
|
+
storeRenderObserveMap?: StoreValue<T>,
|
|
70
|
+
storeRenderObserveList?: StoreRenderObserveSubList<T>[]
|
|
79
71
|
) => {
|
|
80
72
|
const allowedAccessProp: (keyof T)[] = [];
|
|
81
73
|
|
|
82
|
-
const result = new Proxy(
|
|
74
|
+
const result = new Proxy(value, {
|
|
83
75
|
get(target: T, prop: keyof T) {
|
|
84
76
|
if (run && storeRenderObserveMap && allowInitSetting.value) {
|
|
85
|
-
storeRenderObserveMap[
|
|
86
|
-
storeRenderObserveMap[storeKey][prop] ??= [];
|
|
77
|
+
storeRenderObserveMap[prop] ??= [];
|
|
87
78
|
|
|
88
|
-
if (!storeRenderObserveMap[
|
|
89
|
-
storeRenderObserveMap[
|
|
79
|
+
if (!storeRenderObserveMap[prop].includes(run)) {
|
|
80
|
+
storeRenderObserveMap[prop].push(run);
|
|
90
81
|
allowedAccessProp.push(prop);
|
|
91
82
|
}
|
|
92
83
|
}
|
|
@@ -104,33 +95,13 @@ const updater = <T extends { [key: string | symbol]: unknown }>(
|
|
|
104
95
|
return true;
|
|
105
96
|
}
|
|
106
97
|
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
(storeRenderObserveList || []).forEach(storeRenderObserveMap => {
|
|
117
|
-
const renderObserveList: Renew<T>[] = run
|
|
118
|
-
? (storeRenderObserveMap && storeRenderObserveMap[storeKey][prop]) ||
|
|
119
|
-
[]
|
|
120
|
-
: [];
|
|
121
|
-
renderObserveList.forEach(renew => {
|
|
122
|
-
if (!renew(result)) {
|
|
123
|
-
trashCollections.push(renew);
|
|
124
|
-
}
|
|
125
|
-
});
|
|
126
|
-
trashCollections.forEach(deleteTarget => {
|
|
127
|
-
renderObserveList.splice(renderObserveList.indexOf(deleteTarget), 1);
|
|
128
|
-
});
|
|
129
|
-
});
|
|
130
|
-
|
|
131
|
-
trashCollections.forEach(deleteTarget => {
|
|
132
|
-
renderList.splice(renderList.indexOf(deleteTarget), 1);
|
|
133
|
-
});
|
|
98
|
+
execDependentCallbacks(
|
|
99
|
+
result,
|
|
100
|
+
storeRenderList,
|
|
101
|
+
storeRenderObserveList,
|
|
102
|
+
prop,
|
|
103
|
+
run
|
|
104
|
+
);
|
|
134
105
|
|
|
135
106
|
return true;
|
|
136
107
|
},
|
|
@@ -139,26 +110,66 @@ const updater = <T extends { [key: string | symbol]: unknown }>(
|
|
|
139
110
|
return result;
|
|
140
111
|
};
|
|
141
112
|
|
|
113
|
+
const execDependentCallbacks = <T>(
|
|
114
|
+
result: T,
|
|
115
|
+
storeRenderList: Renew<T>[],
|
|
116
|
+
storeRenderObserveList: StoreRenderObserveSubList<T>[] = [],
|
|
117
|
+
prop: keyof T,
|
|
118
|
+
run?: () => boolean | AbortSignal | void
|
|
119
|
+
) => {
|
|
120
|
+
const trashCollections: Renew<T>[] = [];
|
|
121
|
+
|
|
122
|
+
trashCollections.push(...runWithtrashCollectUnit(storeRenderList, result));
|
|
123
|
+
|
|
124
|
+
(storeRenderObserveList || []).forEach(storeRenderObserveMap => {
|
|
125
|
+
const renderObserveList: Renew<T>[] = run
|
|
126
|
+
? storeRenderObserveMap[prop] || []
|
|
127
|
+
: [];
|
|
128
|
+
|
|
129
|
+
trashCollections.push(
|
|
130
|
+
...runWithtrashCollectUnit(renderObserveList, result)
|
|
131
|
+
);
|
|
132
|
+
|
|
133
|
+
removeTrashCollect(trashCollections, renderObserveList);
|
|
134
|
+
});
|
|
135
|
+
|
|
136
|
+
removeTrashCollect(trashCollections, storeRenderList);
|
|
137
|
+
};
|
|
138
|
+
|
|
139
|
+
const removeTrashCollect = <T>(
|
|
140
|
+
trashCollections: Renew<T>[],
|
|
141
|
+
targetList: Renew<T>[]
|
|
142
|
+
) => {
|
|
143
|
+
trashCollections.forEach(deleteTarget => {
|
|
144
|
+
targetList.splice(targetList.indexOf(deleteTarget), 1);
|
|
145
|
+
});
|
|
146
|
+
};
|
|
147
|
+
|
|
148
|
+
const runWithtrashCollectUnit = <T>(storeRenderList: Renew<T>[], result: T) => {
|
|
149
|
+
const trashes: Renew<T>[] = [];
|
|
150
|
+
storeRenderList.forEach(renew => {
|
|
151
|
+
if (renew(result) === false) {
|
|
152
|
+
trashes.push(renew);
|
|
153
|
+
}
|
|
154
|
+
});
|
|
155
|
+
return trashes;
|
|
156
|
+
};
|
|
157
|
+
|
|
142
158
|
const runFirstEmit = <T>(
|
|
143
159
|
run: () => boolean | void | AbortSignal,
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
storeRenderObserveMap: { [key: string | symbol]: StoreValue<T> }
|
|
160
|
+
storeRenderList: Renew<T>[],
|
|
161
|
+
storeRenderObserveMap: StoreValue<T>
|
|
147
162
|
) => {
|
|
148
163
|
const renewResult = run();
|
|
149
164
|
|
|
150
165
|
if (renewResult instanceof AbortSignal) {
|
|
151
166
|
renewResult.addEventListener('abort', () => {
|
|
152
|
-
const
|
|
153
|
-
const renderObserveList: StoreValue<T> =
|
|
154
|
-
storeRenderObserveMap[storeKey] || {};
|
|
167
|
+
const renderObserveList: StoreValue<T> = storeRenderObserveMap || {};
|
|
155
168
|
|
|
156
|
-
|
|
169
|
+
storeRenderList.splice(storeRenderList.indexOf(run), 1);
|
|
157
170
|
Object.values(renderObserveList).forEach(item => {
|
|
158
171
|
item.splice(item.indexOf(run), 1);
|
|
159
172
|
});
|
|
160
|
-
abortSignalSets.delete(renewResult);
|
|
161
173
|
});
|
|
162
|
-
abortSignalSets.add(renewResult);
|
|
163
174
|
}
|
|
164
175
|
};
|
package/package.json
CHANGED
|
@@ -1,37 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"type": "module",
|
|
3
3
|
"name": "lithent",
|
|
4
|
-
"version": "1.11.
|
|
4
|
+
"version": "1.11.2",
|
|
5
5
|
"description": "An extensible virtual DOM library for lightweight use in a variety of environments.",
|
|
6
6
|
"packageManager": "pnpm@7.6.0",
|
|
7
7
|
"main": "./dist/lithent.umd.js",
|
|
8
8
|
"module": "./dist/lithent.mjs",
|
|
9
|
-
"scripts": {
|
|
10
|
-
"dev:core": "vite",
|
|
11
|
-
"dev": "vite",
|
|
12
|
-
"dev:examples": "pnpm watch:core & pnpm watch:helper & pnpm --filter lithent-examples dev",
|
|
13
|
-
"dev:helper": "pnpm watch:core & pnpm --filter lithent-helper dev",
|
|
14
|
-
"dev:docs": "pnpm watch:core & pnpm watch:helper & pnpm --filter lithent-docs dev",
|
|
15
|
-
"build:core": "vite build",
|
|
16
|
-
"build:helper": "pnpm --filter lithent-helper build",
|
|
17
|
-
"build:!helper": "pnpm --filter '!lithent-helper' build",
|
|
18
|
-
"build:tag": "pnpm --filter lithent-tag build",
|
|
19
|
-
"build:ftags": "pnpm --filter lithent-ftags build",
|
|
20
|
-
"build:examples": "pnpm --filter lithent-examples build",
|
|
21
|
-
"build:docs": "pnpm --filter lithent-docs build",
|
|
22
|
-
"watch:core": "vite build --watch",
|
|
23
|
-
"watch:helper": "pnpm --filter lithent-helper watch",
|
|
24
|
-
"build:sequence": "pnpm build:core && pnpm build:helper",
|
|
25
|
-
"build:parallel": "pnpm build:!helper",
|
|
26
|
-
"build": "pnpm run build:sequence && pnpm run build:parallel",
|
|
27
|
-
"test:core": "vitest run --reporter verbose",
|
|
28
|
-
"test": "pnpm test:core && pnpm --filter lithent-helper test",
|
|
29
|
-
"test:dev": "vitest",
|
|
30
|
-
"coverage": "vitest run --coverage",
|
|
31
|
-
"clean": "pnpm clean:dist && pnpm clean:module",
|
|
32
|
-
"clean:dist": "pnpm -r exec rm -rf dist && rm -rf dist",
|
|
33
|
-
"clean:module": "pnpm -r exec rm -rf dist node_modules && rm -rf node_modules"
|
|
34
|
-
},
|
|
35
9
|
"exports": {
|
|
36
10
|
".": {
|
|
37
11
|
"types": "./dist/index.d.ts",
|
|
@@ -101,5 +75,31 @@
|
|
|
101
75
|
},
|
|
102
76
|
"volta": {
|
|
103
77
|
"node": "20.3.0"
|
|
78
|
+
},
|
|
79
|
+
"scripts": {
|
|
80
|
+
"dev:core": "vite",
|
|
81
|
+
"dev": "vite",
|
|
82
|
+
"dev:examples": "pnpm watch:core & pnpm watch:helper & pnpm --filter lithent-examples dev",
|
|
83
|
+
"dev:helper": "pnpm watch:core & pnpm --filter lithent-helper dev",
|
|
84
|
+
"dev:docs": "pnpm watch:core & pnpm watch:helper & pnpm --filter lithent-docs dev",
|
|
85
|
+
"build:core": "vite build",
|
|
86
|
+
"build:helper": "pnpm --filter lithent-helper build",
|
|
87
|
+
"build:!helper": "pnpm --filter '!lithent-helper' build",
|
|
88
|
+
"build:tag": "pnpm --filter lithent-tag build",
|
|
89
|
+
"build:ftags": "pnpm --filter lithent-ftags build",
|
|
90
|
+
"build:examples": "pnpm --filter lithent-examples build",
|
|
91
|
+
"build:docs": "pnpm --filter lithent-docs build",
|
|
92
|
+
"watch:core": "vite build --watch",
|
|
93
|
+
"watch:helper": "pnpm --filter lithent-helper watch",
|
|
94
|
+
"build:sequence": "pnpm build:core && pnpm build:helper",
|
|
95
|
+
"build:parallel": "pnpm build:!helper",
|
|
96
|
+
"build": "pnpm run build:sequence && pnpm run build:parallel",
|
|
97
|
+
"test:core": "vitest run --reporter verbose",
|
|
98
|
+
"test": "pnpm test:core && pnpm --filter lithent-helper test",
|
|
99
|
+
"test:dev": "vitest",
|
|
100
|
+
"coverage": "vitest run --coverage",
|
|
101
|
+
"clean": "pnpm clean:dist && pnpm clean:module",
|
|
102
|
+
"clean:dist": "pnpm -r exec rm -rf dist && rm -rf dist",
|
|
103
|
+
"clean:module": "pnpm -r exec rm -rf dist node_modules && rm -rf node_modules"
|
|
104
104
|
}
|
|
105
|
-
}
|
|
105
|
+
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))l(o);new MutationObserver(o=>{for(const r of o)if(r.type==="childList")for(const u of r.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&l(u)}).observe(document,{childList:!0,subtree:!0});function n(o){const r={};return o.integrity&&(r.integrity=o.integrity),o.referrerPolicy&&(r.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?r.credentials="include":o.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function l(o){if(o.ep)return;o.ep=!0;const r=n(o);fetch(o.href,r)}})();const E=e=>typeof e=="object"&&!("resolve"in e),w=(e,t)=>E(e)&&e.type===t,be=(e,t)=>"ctor"in e?e.ctor===(t==null?void 0:t.ctor):e===(t==null?void 0:t.ctor),Se=(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)},Ne=(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)},X=(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&&(C(v((e.children||[])[0]))&&C(v(((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))},v=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),O=e=>typeof e=="function"&&!ee(e)||typeof e=="object"&&"resolve"in e,ee=e=>typeof e=="function"&&e===N,te=e=>E(e)&&!e.type,C=e=>e!=null,_=(e,t)=>e==="style"&&typeof t=="object",Oe=(e,t)=>e==="ref"&&typeof t=="object",Te=e=>e.nodeType===1&&e.tagName==="OPTION",Ue=e=>e.nodeType===1&&e.tagName==="TEXTAREA",Ve=e=>e.nodeType===1&&["radio","checkbox"].includes(e.type),Ae=e=>{let t="et";return O(e)?t="c":w(e,"fragment")?t="f":w(e,"element")?t="e":w(e,"loop")?t="l":w(e,"text")?t="t":te(e)&&(t="et"),t},Le={c:be,l:we,t:X,e:Ne,f:Se,et:X},m=e=>e.getParent&&e.getParent(),R=Object.entries,ne=Object.keys,T=Object.assign,x={value:""},b={value:{}},M={value:!1},p=new WeakMap,De=e=>{p.set(e,{vd:{value:null},up:()=>{},upR:[],upS:{value:0},upD:[],upCB:[],mts:[],umts:[]})},S=()=>b.value,le=(e,t)=>p.get(e)[t],ke=e=>b.value=e,Me=e=>{b.value=e,De(e)},je=e=>{p.get(S()).umts.push(e)},U=e=>{const{compKey:t}=e;t&&$e(t),oe(e)},oe=e=>{(e.children||[]).forEach(t=>{t.compKey?U(t):oe(t)})},$e=e=>{const t=p.get(e);t&&(t.umts.forEach(n=>n()),t.umts=[],p.delete(e))};let j=[];const H=()=>{j.forEach(e=>Ie(e)),j=[]},Fe=e=>{e.compKey&&j.push(e)},re=e=>p.get(S()).mts.push(e),Ie=e=>{const{compKey:t}=e;if(t){const n=p.get(t),l=n==null?void 0:n.mts,o=n==null?void 0:n.upS;b.value=t,o&&(o.value=0),l&&(n.mts=[],l.forEach(r=>{const u=r();u&&je(u)}))}},z=(e,t=()=>[])=>{const n=p.get(S()),{upD:l,upS:o}=n,r=l[o.value];if(r&&Be(r,t())){const u=e();u&&n.upCB.push(u)}l[o.value]=t(),o.value+=1},Ke=e=>{const{compKey:t}=e;if(t){const n=p.get(t),l=n==null?void 0:n.upCB,o=n==null?void 0:n.upS;b.value=t,o&&(o.value=0),e.ctor&&l&&(n.upCB=[],l.forEach(r=>r()))}},Be=(e,t)=>e.length?e.some((n,l)=>n!==t[l]):!0,qe=e=>e==="className"?"class":e,ue=e=>e.replace(/^on(.*)/,(t,n)=>n.toLowerCase()),W=()=>new DocumentFragment,G=e=>document.createElement(e),He=(e,t,n)=>{t??(t=document.body),e.isRoot=!0,e.wrapElement=t;const l=A(e);return t.appendChild(l),H(),()=>{var o;const r=(o=p.get(e.compProps||{}))==null?void 0:o.vd.value;r&&U(r),V(r||e),We(r||e)}},ce=e=>{const{needRerender:t}=e;t&&t!=="N"&&({A:J,D:Y,R:Je,U:F,CNSU:F,SR:ae,SU:Ye}[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)})},We=e=>{ie(e,e.wrapElement)},Y=e=>{e.oldProps&&e.el&&ve(e.oldProps,e.el),ie(e,L(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&&de(e,t),delete e.el)},de=(e,t)=>{((e==null?void 0:e.oldChildren)||(e==null?void 0:e.children)||[]).forEach(n=>{var l;const o=(l=n.el)==null?void 0:l.nodeType;o&&([1,3].includes(o)?t.removeChild(n==null?void 0:n.el):o===11&&de(n,t))})},ae=e=>{Y(e),J(e)},Ye=e=>{if(F(e),m(e).needRerender!=="CNSU"){const t=se(e);J(e,t)}},J=(e,t)=>{t||(t=A(e));const n=m(e);if(n.type){const l=L(n),o=n.type==="loop"&&n.needRerender&&n.needRerender!=="CNSU"?$(n,m(n)):$(e,n);t&&l&&(o?l.insertBefore(t,o):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,o=n.slice(l),r=pe(o),u=t.type||"";if(r)return r;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,o=n.el,r=l&&y(l);return t||(r?pe(n.children||[]):o&&o.nodeType!==11?o:t)},void 0),Je=e=>{const t=m(e),n=e.el;if(t.type&&n)if(n.nodeType===11)ae(e);else{const l=L(t),o=A(e);l&&l.replaceChild(o,n),H()}},ve=(e,t)=>{R(e||{}).forEach(([n,l])=>{n.match(/^on/)&&t.removeEventListener(ue(n),l)})},F=e=>{var t;const n=e.el;if(e.type==="text"){Xe(e);return}if(n){const{oldProps:l,props:o}=e;he(o,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)},Xe=e=>{const t=e.el;t&&(t.nodeValue=String(e.text))},he=(e,t,n)=>{const l={...n};R(e||{}).forEach(([o,r])=>{let u=!0;o==="key"||r===l[o]||(o==="innerHTML"&&typeof r=="string"?t.innerHTML=r:_(o,r)?Ze(r,_(o,l.style)?l.style:{},t):Oe(o,r)?r.value=t:o.match(/^on/)?Qe(t,o,r,l[o]):Ve(t)&&o==="checked"?t.checked=!!r:Ue(t)&&o==="value"?t.value=r:Te(t)&&o==="selected"?t.selected=!!r:o&&([u,r]=ze(r),u&&_e(qe(o),t,r))),u&&delete l[o]}),ne(l).forEach(o=>t.removeAttribute(o))},_e=(e,t,n)=>{x.value&&e!=="xmlns"?t.setAttributeNS(null,e,n):t.setAttribute(e,n)},ze=e=>{let t=!0;return typeof e=="boolean"&&(e||(t=!1),e=""),[t,String(e)]},A=e=>{let t;const{type:n,tag:l,text:o,props:r,children:u=[]}=e,i=y(n);return l==="svg"&&(x.value=String(r==null?void 0:r.xmlns)),i?t=W():n==="element"&&l?t=x.value?document.createElementNS(x.value,l):G(l):n==="text"&&C(o)?t=document.createTextNode(String(o)):t=G("e"),Ge(u,t),he(r,t),e.el=t,Fe(e),l==="svg"&&(x.value=""),t},Ge=(e,t)=>{const n=e.reduce((l,o)=>(o.type&&l.appendChild(A(o)),l),W());t&&n.hasChildNodes()&&t.appendChild(n)},Qe=(e,t,n,l)=>{const o=ue(t);l!==n&&(l&&e.removeEventListener(o,l),n&&e.addEventListener(o,n))},Ze=(e,t,n)=>{const l={...t},o=n==null?void 0:n.style;o&&(R(e).forEach(([r,u])=>{o[r]=u,delete l[r]}),R(l).forEach(([r])=>o[r]=""))},L=e=>{const t=y(e.type);return e.isRoot&&t?e.wrapElement:t?L(m(e)):e.el},D=(e,t)=>et(e,Le[Ae(e)](e,t),t),et=(e,t,n)=>{const l=ct(e,t,n),o=[l,t,n],r=nt(...o),u=r==="N";return u||(l.children=it(...o)),l.needRerender=r,tt(l,n,r),!u&&n&&(n.isLegacy=!0,delete n.children),l},tt=(e,t,n)=>{n!=="A"&&t&&(e.el=t.el),n&&["D","R","SR"].includes(n)&&(t&&(U(t),V(t)),e.oldChildren=t==null?void 0:t.children),e.oldProps=t==null?void 0:t.props},nt=(e,t,n)=>{const l=n&&n.type,o=te(e),r=e.isRoot,u=n&&m(n),i=!r&&(u==null?void 0:u.type),c=v(e),s=i==="loop"&&C(c),f=e.type==="text"&&t&&e.text===(n==null?void 0:n.text),h=e===n;let a;return o?a="D":f||h?a="N":l?t?a=s?"SU":"U":a=s?"SR":"R":a="A",e.type==="loop"&&a==="U"&&n&<(e,n)&&(a="CNSU"),a},lt=(e,t)=>{const n=[...(t==null?void 0:t.children)||[]],l=[...(e==null?void 0:e.children)||[]].filter(u=>n.find(i=>v(u)===v(i))),o=n.filter(u=>l.find(i=>v(u)===v(i)));let r=o.length===l.length;return r&&(r=o.every((u,i)=>v(u)===v(l[i]))),r},ot=(e,t)=>{e&&t!==e&&(ne(e).forEach(n=>delete e[n]),R(t||{}).forEach(([n,l])=>e[n]=l))},rt=(e,t)=>{e&&t!==e&&(e.splice(0,e.length),t&&t.forEach(n=>e.push(n)))},ut=(e,t)=>{const{compProps:n,compChild:l}=e,{props:o,children:r}=t;return n&&ot(n,o),l&&rt(l,r),e.reRender&&e.reRender()},ct=(e,t,n)=>O(e)?t&&n?ut(n,e):e.resolve():e,it=(e,t,n)=>t&&n?at(e,n):dt(e),dt=e=>(e.children||[]).map(t=>T(D(t),{getParent:()=>e})),at=(e,t)=>e.type==="loop"&&C(v((e.children||[])[0]))?st(e,t):(e.children||[]).map((n,l)=>T(D(n,(t.children||[])[l]),{getParent:()=>e})),st=(e,t)=>{const[n,l]=pt(e,t);return l.forEach(o=>{U(o),V(o),Y(o)}),n},pt=(e,t)=>{const n=[...e.children||[]],l=[...t.children||[]];return[n.map(o=>{const r=vt(o,l),u=D(o,r);return r&&l.splice(l.indexOf(r),1),u.getParent=()=>e,u}),l]},vt=(e,t)=>t.find(n=>v(n)===v(e));let I=[],K=!1;const fe=(e,t)=>{p.get(e).up=()=>{I.push({compKey:e,exec:t}),K||(K=!0,queueMicrotask(ft))}},ht=e=>()=>{var t;const n=(t=p.get(e))==null?void 0:t.up;let l=!1;return n&&(n(),l=!0),l},ft=()=>{I.forEach(e=>{e.exec()}),I=[],K=!1},me=(e,t=()=>[])=>{p.get(S()).upR.push(()=>z(e,t)),z(e,t)},mt=()=>{var e;const t=(e=p.get(S()))==null?void 0:e.upR;t!=null&&t.length&&t.forEach(n=>n())},N=(e,...t)=>({type:"fragment",children:t}),d=(e,t,...n)=>{const l={value:void 0},o=t||{},r=xe(l,n),u=Pt(e,o,r);return O(u)||(l.value=u),u},ge=e=>(t,n)=>e,ye=(e,t,n,l)=>{var o;if(l.isLegacy)return;M.value=!0;const r=Ee(e,t,n),u=D(r,l),{isRoot:i,getParent:c,wrapElement:s,afterElement:f}=l;if(u.getParent=c,!i&&c){const h=((o=c())==null?void 0:o.children)||[],a=h.indexOf(l);h.splice(a,1,u)}else u.isRoot=!0,u.wrapElement=s,u.afterElement=f;M.value=!1,ce(u)},Ee=(e,t,n)=>({tagName:e.name,ctor:e,props:t,children:n,resolve:(l=t)=>{Me(l);const o=e(t,n)(ht(l),t,n),r=gt(o,l,e,t,n),u=r;return fe(l,()=>ye(e,t,n,u)),le(l,"vd").value=r,r}}),gt=(e,t,n,l,o)=>{let r=e,u=e(l);return u.reRender&&(r=i=>{const c=e(i),s=N({},c);return c.getParent=()=>s,s},u=r(l)),Pe(u,t,n,l,o,yt(r,t,n,l,o)),u},yt=(e,t,n,l,o)=>{const r=()=>Et(e,t,n,l,o,r);return r},Et=(e,t,n,l,o,r)=>{ke(t),mt();const u=e(l);return fe(t,()=>ye(n,l,o,u)),Pe(u,t,n,l,o,r),le(t,"vd").value=u,u},Pe=(e,t,n,l,o,r)=>{T(e,{compProps:l,compChild:o,ctor:n,tagName:n.name,compKey:t,reRender:r})},Pt=(e,t,n)=>{if(ee(e))return N(t,...n);if(O(e)){const l=Ee(e,t,n);return M.value?l:l.resolve()}return{type:"element",tag:e,props:t,children:n}},xe=(e,t)=>t.map(n=>T(xt(n),{getParent:()=>e.value})),xt=e=>{if(e==null||e===!1)return{type:null};if(Array.isArray(e)){const t={value:void 0},n={type:"loop",children:xe(t,e)};return t.value=n,n}else if(typeof e=="string"||typeof e=="number")return{type:"text",text:e};return e},Ct=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()}}},Rt=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'")}}},bt=(e,t=()=>{},n=()=>[])=>{re(()=>(e(),t)),me(()=>(t&&t(),e),n)},Ce=new Map,Q=new WeakSet,q={value:!1},St=e=>{let t=null;typeof e=="object"&&e!==null?t=e:t={value:e};const n=Symbol(),l={},o=[];return Ce.set(n,t),(r,u)=>{const i={};let c=null;return o.push(i),r&&u?(c=Z(n,l,()=>r(c),i,o),q.value=!0,u(c),q.value=!1):r&&(l[n]??(l[n]=[])),c||(c=Z(n,l),r&&l[n].push(()=>r(c))),r&&Nt(()=>r(c),n,l,i),c}},Z=(e,t,n,l,o)=>{const r=[],u=new Proxy(Ce.get(e),{get(i,c){var s;return n&&l&&q.value&&(l[e]??(l[e]={}),(s=l[e])[c]??(s[c]=[]),l[e][c].includes(n)||(l[e][c].push(n),r.push(c))),r.includes(c)||!n?i[c]:null},set(i,c,s){if(r.includes(c)||!n)i[c]=s;else return!0;const f=t[e]||[],h=[];return f.forEach(a=>{a(u)||h.push(a)}),(o||[]).forEach(a=>{const P=n?a&&a[e][c]||[]:[];P.forEach(g=>{g(u)||h.push(g)}),h.forEach(g=>{P.splice(P.indexOf(g),1)})}),h.forEach(a=>{f.splice(f.indexOf(a),1)}),!0}});return u},Nt=(e,t,n,l)=>{const o=e();o instanceof AbortSignal&&(o.addEventListener("abort",()=>{const r=n[t]||[],u=l[t]||{};r.splice(r.indexOf(e),1),Object.values(u).forEach(i=>{i.splice(i.indexOf(e),1)}),Q.delete(o)}),Q.add(o))},wt=ge((e,t,n)=>{const l=B(1,e),o=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),r=()=>t.parentValue,u=t.parentValue,i=Rt(()=>l.v+s+t.parentValue),c=St({text:"s",count:0})(e);let s=t.parentValue;const f=Ct(null),h=()=>{l.v=l.v+1,s+=1},a=k=>{o.v=k.target.value},P=()=>{c.count+=1,c.text+="1"},g=()=>(console.log("MOUNTED",f),()=>console.log("UNMOUNT")),Re=()=>(console.log("UPDATE - parentValue"),()=>console.log("UPDATED"));return re(g),me(Re,()=>[t.parentValue]),bt(()=>console.log("INJECT"),()=>console.log("CLEAN_UP"),()=>[l.v]),({parentValue:k})=>d(N,null,d("div",null,d("textarea",{value:o.v,onInput:a,style:{width:"300px",height:"100px"}})),d("div",null,o.v),d("div",null,d("div",{style:{color:"blue"}},"parentValueFromRef: ",t.parentValue," (working)"),d("div",{style:{color:"blue"}},"parentValueFromFunction: ",r()," (working)"),d("div",{style:{color:"blue"}},"parentValueFromUpdaterDestructuring: ",k," (working)"),d("div",{style:{color:"red"}},"parentValueFromMounterDestructuring: ",u," (not working)")),d("div",null,d("div",{ref:f},"count: ",l.v),d("div",null,"sum: ",l.v+s+t.parentValue),d("div",null,"sum(computed): ",i.v),d("div",null,"notRefValue: ",s),d("div",null,"localStore(text): ",c.text),d("div",null,"localStore(count): ",c.count)),d("button",{onClick:h},"Increase"),d("button",{onClick:P},"localStoreUpdate"),n)}),Ot=ge(e=>{const t=B(7,e),n=()=>{t.v=t.v+1},l=()=>{t.v=t.v-1};return()=>d(N,null,d(wt,{parentValue:t.v},d("button",{onClick:n},"Increase - Parent")),d("button",{onClick:l},"Decrease - Parent"))}),Tt=d(Ot,null);He(Tt,document.getElementById("root"));
|
|
2
|
-
//# sourceMappingURL=index-gAvzjQ3v.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-gAvzjQ3v.js","sources":["../../../dist/lithent.mjs","../../../helper/dist/lithentHelper.mjs","../../src/index.tsx"],"sourcesContent":["const C = (e) => typeof e == \"object\" && !(\"resolve\" in e), N = (e, t) => C(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 C(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 C(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}, G = (e, t) => C(e) && (t == null ? void 0 : t.type) === e.type, ye = (e, t) => {\n var s, c;\n return C(e) && (t == null ? void 0 : t.type) === e.type && (R(d((e.children || [])[0])) && R(d(((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}, d = (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\" && !Z(e) || typeof e == \"object\" && \"resolve\" in e, Z = (e) => typeof e == \"function\" && e === $, V = (e) => C(e) && !e.type, R = (e) => e != null, H = (e, t) => e === \"style\" && typeof t == \"object\", ve = (e, t) => e === \"ref\" && typeof t == \"object\", Ce = (e) => e.nodeType === 1 && e.tagName === \"OPTION\", ke = (e) => e.nodeType === 1 && e.tagName === \"TEXTAREA\", Re = (e) => e.nodeType === 1 && [\"radio\", \"checkbox\"].includes(e.type), Ee = (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\" : V(e) && (t = \"et\"), t;\n}, Pe = {\n c: pe,\n l: ye,\n t: G,\n e: ie,\n f: he,\n et: G\n}, i = (e) => e.getParent && e.getParent(), E = Object.entries, K = Object.keys, a = Object.assign, k = { value: \"\" }, P = { value: {} }, O = { value: !1 }, f = /* @__PURE__ */ new WeakMap(), xe = (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}, x = () => P.value, g = (e, t) => f.get(e)[t], Se = (e) => P.value = e, Ne = (e) => {\n P.value = e, xe(e);\n}, Te = (e) => {\n f.get(x()).umts.push(e);\n}, U = (e) => {\n const { compKey: t } = e;\n t && ae(t), m(e);\n}, m = (e) => {\n (e.children || []).forEach((t) => {\n t.compKey ? U(t) : m(t);\n });\n}, ae = (e) => {\n const t = f.get(e);\n t && (t.umts.forEach((s) => s()), t.umts = [], f.delete(e));\n};\nlet M = [];\nconst I = () => {\n M.forEach((e) => be(e)), M = [];\n}, Ue = (e) => {\n e.compKey && M.push(e);\n}, ft = (e) => f.get(x()).mts.push(e), be = (e) => {\n const { compKey: t } = e;\n if (t) {\n const s = f.get(t), c = s == null ? void 0 : s.mts, n = s == null ? void 0 : s.upS;\n P.value = t, n && (n.value = 0), c && (s.mts = [], c.forEach((r) => {\n const u = r();\n u && Te(u);\n }));\n }\n}, J = (e, t = () => []) => {\n const s = f.get(x()), { upD: c, upS: n } = s, r = c[n.value];\n if (r && Ae(r, t())) {\n const u = e();\n u && s.upCB.push(u);\n }\n c[n.value] = t(), n.value += 1;\n}, Fe = (e) => {\n const { compKey: t } = e;\n if (t) {\n const s = f.get(t), c = s == null ? void 0 : s.upCB, n = s == null ? void 0 : s.upS;\n P.value = t, n && (n.value = 0), e.ctor && c && (s.upCB = [], c.forEach((r) => r()));\n }\n}, Ae = (e, t) => e.length ? e.some((s, c) => s !== t[c]) : !0, Le = (e) => e === \"className\" ? \"class\" : e, w = (e) => e.replace(/^on(.*)/, (t, s) => s.toLowerCase()), _ = () => new DocumentFragment(), Y = (e) => document.createElement(e), dt = (e, t, s) => {\n t ?? (t = document.body), e.isRoot = !0, e.wrapElement = t;\n const c = F(e);\n return s ? (e.afterElement = s, t.insertBefore(c, s)) : t.appendChild(c), I(), () => {\n var r;\n const n = (r = f.get(e.compProps || {})) == null ? void 0 : r.vd.value;\n n && U(n), b(n || e), Oe(n || e);\n };\n}, W = (e) => {\n const { needRerender: t } = e;\n t && t !== \"N\" && ({\n A: X,\n D: z,\n R: Qe,\n U: B,\n CNSU: B,\n SR: te,\n SU: Me\n }[t](e), delete e.needRerender, delete e.oldChildren, delete e.oldProps);\n}, b = (e) => {\n e.props && e.el && ne(e.props, e.el), (e.children || []).forEach((t) => {\n b(t);\n });\n}, Oe = (e) => {\n D(e, e.wrapElement);\n}, z = (e) => {\n e.oldProps && e.el && ne(e.oldProps, e.el), D(\n e,\n A(i(e))\n );\n}, D = (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 && ee(e, t), delete e.el);\n}, ee = (e, t) => {\n ((e == null ? void 0 : e.oldChildren) || (e == null ? void 0 : e.children) || []).forEach((s) => {\n var n;\n const c = (n = s.el) == null ? void 0 : n.nodeType;\n c && ([1, 3].includes(c) ? t.removeChild(s == null ? void 0 : s.el) : c === 11 && ee(s, t));\n });\n}, te = (e) => {\n z(e), X(e);\n}, Me = (e) => {\n if (B(e), i(e).needRerender !== \"CNSU\") {\n const s = se(e);\n X(e, s);\n }\n}, X = (e, t) => {\n t || (t = F(e));\n const s = i(e);\n if (s.type) {\n const c = A(s), r = s.type === \"loop\" && s.needRerender && s.needRerender !== \"CNSU\" ? Q(s, i(s)) : Q(e, s);\n t && c && (r ? c.insertBefore(t, r) : c.appendChild(t), I());\n }\n}, se = (e) => v(e.type) ? ((e == null ? void 0 : e.children) || []).reduce((t, s) => {\n const c = se(s);\n return c && t.appendChild(c), t;\n}, _()) : e.el, Q = (e, t) => {\n const s = t.children || [], n = s.indexOf(e) + 1, r = s.slice(n), u = ce(r), l = t.type || \"\";\n if (u)\n return u;\n if (!t.isRoot && v(l))\n return Q(t, i(t));\n if (t.isRoot && v(l) && t.afterElement)\n return t.afterElement;\n}, ce = (e) => e.reduce(\n (t, s) => {\n const c = s.type, n = s.el, r = c && v(c);\n return t || (r ? ce(s.children || []) : n && n.nodeType !== 11 ? n : t);\n },\n void 0\n), Qe = (e) => {\n const t = i(e), s = e.el;\n if (t.type && s)\n if (s.nodeType === 11)\n te(e);\n else {\n const c = A(t), n = F(e);\n c && c.replaceChild(n, s), I();\n }\n}, ne = (e, t) => {\n E(e || {}).forEach(([s, c]) => {\n s.match(/^on/) && t.removeEventListener(\n w(s),\n c\n );\n });\n}, B = (e) => {\n var s;\n const t = e.el;\n if (e.type === \"text\") {\n Be(e);\n return;\n }\n if (t) {\n const { oldProps: c, props: n } = e;\n re(n, 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) => W(c)), Fe(e);\n}, Be = (e) => {\n const t = e.el;\n t && (t.nodeValue = String(e.text));\n}, re = (e, t, s) => {\n const c = { ...s };\n E(e || {}).forEach(([n, r]) => {\n let u = !0;\n n === \"key\" || r === c[n] || (n === \"innerHTML\" && typeof r == \"string\" ? t.innerHTML = r : H(n, r) ? ze(\n r,\n H(n, c.style) ? c.style : {},\n t\n ) : ve(n, r) ? r.value = t : n.match(/^on/) ? _e(\n t,\n n,\n r,\n c[n]\n ) : Re(t) && n === \"checked\" ? t.checked = !!r : ke(t) && n === \"value\" ? t.value = r : Ce(t) && n === \"selected\" ? t.selected = !!r : n && ([u, r] = qe(r), u && je(\n Le(n),\n t,\n r\n ))), u && delete c[n];\n }), K(c).forEach(\n (n) => t.removeAttribute(n)\n );\n}, je = (e, t, s) => {\n k.value && e !== \"xmlns\" ? t.setAttributeNS(null, e, s) : t.setAttribute(e, s);\n}, qe = (e) => {\n let t = !0;\n return typeof e == \"boolean\" && (e || (t = !1), e = \"\"), [t, String(e)];\n}, F = (e) => {\n let t;\n const { type: s, tag: c, text: n, props: r, children: u = [] } = e, l = v(s);\n return c === \"svg\" && (k.value = String(r == null ? void 0 : r.xmlns)), l ? t = _() : s === \"element\" && c ? t = k.value ? document.createElementNS(k.value, c) : Y(c) : s === \"text\" && R(n) ? t = document.createTextNode(String(n)) : t = Y(\"e\"), Ie(u, t), re(r, t), e.el = t, Ue(e), c === \"svg\" && (k.value = \"\"), t;\n}, Ie = (e, t) => {\n const s = e.reduce(\n (c, n) => (n.type && c.appendChild(F(n)), c),\n _()\n );\n t && s.hasChildNodes() && t.appendChild(s);\n}, _e = (e, t, s, c) => {\n const n = w(t);\n c !== s && (c && e.removeEventListener(n, c), s && e.addEventListener(n, s));\n}, ze = (e, t, s) => {\n const c = { ...t }, n = s == null ? void 0 : s.style;\n n && (E(e).forEach(([r, u]) => {\n n[r] = u, delete c[r];\n }), E(c).forEach(\n ([r]) => n[r] = \"\"\n ));\n}, A = (e) => {\n const t = v(e.type);\n return e.isRoot && t ? e.wrapElement : t ? A(i(e)) : e.el;\n}, L = (e, t) => Xe(\n e,\n Pe[Ee(e)](e, t),\n t\n), Xe = (e, t, s) => {\n const c = Ve(e, t, s), n = [\n c,\n t,\n s\n ], r = Ge(...n), u = r === \"N\";\n return u || (c.children = Ke(...n)), c.needRerender = r, $e(c, s, r), !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), b(t)), e.oldChildren = t == null ? void 0 : t.children), e.oldProps = t == null ? void 0 : t.props;\n}, Ge = (e, t, s) => {\n const c = s && s.type, n = V(e), r = e.isRoot, u = s && i(s), l = !r && (u == null ? void 0 : u.type), h = d(e), o = l === \"loop\" && R(h), y = e.type === \"text\" && t && e.text === (s == null ? void 0 : s.text), S = e === s;\n let p;\n return n ? p = \"D\" : y || S ? p = \"N\" : c ? t ? p = o ? \"SU\" : \"U\" : p = o ? \"SR\" : \"R\" : p = \"A\", e.type === \"loop\" && p === \"U\" && s && He(e, s) && (p = \"CNSU\"), p;\n}, He = (e, t) => {\n const s = [...(t == null ? void 0 : t.children) || []], c = [...(e == null ? void 0 : e.children) || []].filter(\n (u) => s.find((l) => d(u) === d(l))\n ), n = s.filter(\n (u) => c.find((l) => d(u) === d(l))\n );\n let r = n.length === c.length;\n return r && (r = n.every(\n (u, l) => d(u) === d(c[l])\n )), r;\n}, Je = (e, t) => {\n e && t !== e && (K(e).forEach((s) => delete e[s]), E(t || {}).forEach(([s, c]) => e[s] = c));\n}, Ye = (e, t) => {\n e && t !== e && (e.splice(0, e.length), t && t.forEach((s) => e.push(s)));\n}, Ze = (e, t) => {\n const { compProps: s, compChild: c } = e, { props: n, children: r } = t;\n return s && Je(s, n), c && Ye(c, r), e.reRender && e.reRender();\n}, Ve = (e, t, s) => T(e) ? t && s ? Ze(s, e) : e.resolve() : e, Ke = (e, t, s) => t && s ? me(e, s) : ge(e), ge = (e) => (e.children || []).map(\n (t) => a(L(t), { getParent: () => e })\n), me = (e, t) => e.type === \"loop\" && R(d((e.children || [])[0])) ? we(e, t) : (e.children || []).map(\n (s, c) => a(L(s, (t.children || [])[c]), {\n getParent: () => e\n })\n), we = (e, t) => {\n const [s, c] = We(\n e,\n t\n );\n return c.forEach((n) => {\n U(n), b(n), z(n);\n }), s;\n}, We = (e, t) => {\n const s = [...e.children || []], c = [...t.children || []];\n return [s.map((r) => {\n const u = De(r, c), l = L(r, u);\n return u && c.splice(c.indexOf(u), 1), l.getParent = () => e, l;\n }), c];\n}, De = (e, t) => t.find(\n (s) => d(s) === d(e)\n);\nlet j = [], q = !1;\nconst ue = (e, t) => {\n f.get(e).up = () => {\n j.push({\n compKey: e,\n exec: t\n }), q || (q = !0, queueMicrotask(tt));\n };\n}, et = (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}, tt = () => {\n j.forEach((e) => {\n e.exec();\n }), j = [], q = !1;\n}, ot = (e, t = () => []) => {\n f.get(x()).upR.push(() => J(e, t)), J(e, t);\n}, st = () => {\n var t;\n const e = (t = f.get(x())) == null ? void 0 : t.upR;\n e != null && e.length && e.forEach((s) => s());\n}, $ = (e, ...t) => ({\n type: \"fragment\",\n children: t\n}), pt = (e, t, ...s) => {\n const c = { value: void 0 }, n = t || {}, r = oe(c, s), u = ut(e, n, r);\n return T(u) || (c.value = u), u;\n}, ht = (e) => (t, s) => e, le = (e, t, s, c) => {\n var y;\n if (c.isLegacy)\n return;\n O.value = !0;\n const n = fe(e, t, s), r = L(n, c), { isRoot: u, getParent: l, wrapElement: h, afterElement: o } = c;\n if (r.getParent = l, !u && l) {\n const S = ((y = l()) == null ? void 0 : y.children) || [], p = S.indexOf(c);\n S.splice(p, 1, r);\n } else\n r.isRoot = !0, r.wrapElement = h, r.afterElement = o;\n O.value = !1, W(r);\n}, fe = (e, t, s) => ({ tagName: e.name, ctor: e, props: t, children: s, resolve: (u = t) => {\n Ne(u);\n const h = e(t, s)(et(u), t, s), o = ct(\n h,\n u,\n e,\n t,\n s\n ), y = o;\n return ue(\n u,\n () => le(e, t, s, y)\n ), g(u, \"vd\").value = o, o;\n} }), ct = (e, t, s, c, n) => {\n let r = e, u = e(c);\n return u.reRender && (r = (l) => {\n const h = e(l), o = $({}, h);\n return h.getParent = () => o, o;\n }, u = r(c)), de(\n u,\n t,\n s,\n c,\n n,\n nt(r, t, s, c, n)\n ), u;\n}, nt = (e, t, s, c, n) => {\n const r = () => rt(e, t, s, c, n, r);\n return r;\n}, rt = (e, t, s, c, n, r) => {\n Se(t), st();\n const u = e(c);\n return ue(\n t,\n () => le(s, c, n, u)\n ), de(u, t, s, c, n, r), g(t, \"vd\").value = u, u;\n}, de = (e, t, s, c, n, r) => {\n a(e, {\n compProps: c,\n compChild: n,\n ctor: s,\n tagName: s.name,\n compKey: t,\n reRender: r\n });\n}, ut = (e, t, s) => {\n if (Z(e))\n return $(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 tag: e,\n props: t,\n children: s\n };\n}, oe = (e, t) => t.map(\n (s) => a(lt(s), { getParent: () => e.value })\n), lt = (e) => {\n if (e == null || e === !1)\n return { type: null };\n if (Array.isArray(e)) {\n const t = { value: void 0 }, c = {\n type: \"loop\",\n children: oe(t, e)\n };\n return t.value = c, c;\n } else if (typeof e == \"string\" || typeof e == \"number\")\n return { type: \"text\", text: e };\n return e;\n}, it = (e) => ({ value: e }), yt = () => Promise.resolve();\nexport {\n $ as Fragment,\n pt as h,\n ht as mount,\n ft as mountCallback,\n yt as nextTick,\n it as ref,\n dt as render,\n ot as updateCallback\n};\n//# sourceMappingURL=lithent.mjs.map\n","import { mountCallback as S, updateCallback as L, nextTick as k, render as C } from \"lithent\";\nconst j = (n, l) => {\n let t = n;\n return {\n get value() {\n return t;\n },\n get v() {\n return t;\n },\n set value(e) {\n t = e, l();\n },\n set v(e) {\n t = e, l();\n }\n };\n}, w = (n) => {\n let l = n;\n return {\n get value() {\n return l();\n },\n get v() {\n return l();\n },\n set value(t) {\n throw new Error(\"You can't change 'computed'\");\n },\n set v(t) {\n throw new Error(\"You can't change 'computed'\");\n }\n };\n}, A = (n, l = () => {\n}, t = () => []) => {\n S(() => (n(), l)), L(() => (l && l(), n), t);\n}, m = /* @__PURE__ */ new Map(), E = /* @__PURE__ */ new WeakSet(), v = { value: !1 }, D = (n) => {\n let l = null;\n typeof n == \"object\" && n !== null ? l = n : l = { value: n };\n const t = Symbol(), e = {}, i = [];\n return m.set(t, l), (u, f) => {\n const s = {};\n let c = null;\n return i.push(s), u && f ? (c = x(\n t,\n e,\n () => u(c),\n s,\n i\n ), v.value = !0, f(c), v.value = !1) : u && (e[t] ?? (e[t] = [])), c || (c = x(t, e), u && e[t].push(() => u(c))), u && P(\n () => u(c),\n t,\n e,\n s\n ), c;\n };\n}, x = (n, l, t, e, i) => {\n const u = [], f = new Proxy(m.get(n), {\n get(s, c) {\n var a;\n return t && e && v.value && (e[n] ?? (e[n] = {}), (a = e[n])[c] ?? (a[c] = []), e[n][c].includes(t) || (e[n][c].push(t), u.push(c))), u.includes(c) || !t ? s[c] : null;\n },\n set(s, c, a) {\n if (u.includes(c) || !t)\n s[c] = a;\n else\n return !0;\n const d = l[n] || [], r = [];\n return d.forEach((o) => {\n o(f) || r.push(o);\n }), (i || []).forEach((o) => {\n const g = t ? o && o[n][c] || [] : [];\n g.forEach((h) => {\n h(f) || r.push(h);\n }), r.forEach((h) => {\n g.splice(g.indexOf(h), 1);\n });\n }), r.forEach((o) => {\n d.splice(d.indexOf(o), 1);\n }), !0;\n }\n });\n return f;\n}, P = (n, l, t, e) => {\n const i = n();\n i instanceof AbortSignal && (i.addEventListener(\"abort\", () => {\n const u = t[l] || [], f = e[l] || {};\n u.splice(u.indexOf(n), 1), Object.values(f).forEach((s) => {\n s.splice(s.indexOf(n), 1);\n }), E.delete(i);\n }), E.add(i));\n}, T = (n, l) => {\n let t = [], e = null;\n return (i) => {\n const u = n(), f = t.every((c, a) => c === u[a]);\n if (t = u, f && e)\n return e;\n const s = l(i);\n return e = s, s;\n };\n}, Y = (n, l, t) => {\n let e = () => {\n };\n return k().then(() => {\n e = C(n(), l, t);\n }), () => e();\n};\nexport {\n T as cacheUpdate,\n w as computed,\n A as effect,\n Y as nextTickRender,\n j as state,\n D 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":["C","N","pe","he","s","c","ie","G","ye","R","d","v","T","Z","$","V","H","ve","Ce","ke","Re","Ee","Pe","i","E","K","a","k","P","O","f","xe","x","g","Se","Ne","Te","ae","m","M","I","be","Ue","ft","n","J","Ae","Fe","Le","w","_","Y","dt","F","r","b","Oe","W","X","z","Qe","B","te","Me","ne","D","A","ee","Q","u","ce","l","t","Be","re","ze","_e","qe","je","Ie","L","Xe","Ve","Ge","Ke","$e","h","o","y","S","p","He","Je","Ye","Ze","me","ge","we","We","De","j","q","ue","tt","et","ot","st","e","pt","oe","ut","ht","le","fe","ct","de","nt","rt","lt","it","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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"}
|