lithent 1.13.0 → 1.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -15
- package/examples/dist/assets/{index-Bd9Pg33S.js → index-lX3XWOlo.js} +2 -2
- package/examples/dist/assets/index-lX3XWOlo.js.map +1 -0
- package/examples/dist/index.html +1 -1
- package/helper/dist/lithentHelper.mjs +67 -63
- 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 +15 -7
- package/package.json +1 -1
- package/examples/dist/assets/index-Bd9Pg33S.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.13.
|
|
82
|
-
* UMD-HELPER: https://cdn.jsdelivr.net/npm/lithent@1.13.
|
|
83
|
-
* UMD-FTAGS: https://cdn.jsdelivr.net/npm/lithent@1.13.
|
|
84
|
-
* UMD-TAG: https://cdn.jsdelivr.net/npm/lithent@1.13.
|
|
85
|
-
* ESM : https://cdn.jsdelivr.net/npm/lithent@1.13.
|
|
86
|
-
* ESM-HELPER: https://cdn.jsdelivr.net/npm/lithent@1.13.
|
|
87
|
-
* ESM-FTAGS: https://cdn.jsdelivr.net/npm/lithent@1.13.
|
|
88
|
-
* ESM-TAG: https://cdn.jsdelivr.net/npm/lithent@1.13.
|
|
81
|
+
* UMD : https://cdn.jsdelivr.net/npm/lithent@1.13.1/dist/lithent.umd.js
|
|
82
|
+
* UMD-HELPER: https://cdn.jsdelivr.net/npm/lithent@1.13.1/helper/dist/lithentHelper.umd.js
|
|
83
|
+
* UMD-FTAGS: https://cdn.jsdelivr.net/npm/lithent@1.13.1/ftags/dist/lithentFTags.umd.js
|
|
84
|
+
* UMD-TAG: https://cdn.jsdelivr.net/npm/lithent@1.13.1/tag/dist/lithentTag.umd.js
|
|
85
|
+
* ESM : https://cdn.jsdelivr.net/npm/lithent@1.13.1/dist/lithent.mjs
|
|
86
|
+
* ESM-HELPER: https://cdn.jsdelivr.net/npm/lithent@1.13.1/helper/dist/lithentHelper.mjs
|
|
87
|
+
* ESM-FTAGS: https://cdn.jsdelivr.net/npm/lithent@1.13.1/ftags/dist/lithentFTags.mjs
|
|
88
|
+
* ESM-TAG: https://cdn.jsdelivr.net/npm/lithent@1.13.1/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.13.
|
|
114
|
-
<script src="https://cdn.jsdelivr.net/npm/lithent@1.13.
|
|
115
|
-
<script src="https://cdn.jsdelivr.net/npm/lithent@1.13.
|
|
113
|
+
<script src="https://cdn.jsdelivr.net/npm/lithent@1.13.1/dist/lithent.umd.js"></script>
|
|
114
|
+
<script src="https://cdn.jsdelivr.net/npm/lithent@1.13.1/helper/dist/lithentHelper.umd.js"></script>
|
|
115
|
+
<script src="https://cdn.jsdelivr.net/npm/lithent@1.13.1/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.13.
|
|
188
|
-
<!--script src="https://cdn.jsdelivr.net/npm/lithent@1.13.
|
|
189
|
-
<script src="https://cdn.jsdelivr.net/npm/lithent@1.13.
|
|
190
|
-
<!--script src="https://cdn.jsdelivr.net/npm/lithent@1.13.
|
|
187
|
+
<script src="https://cdn.jsdelivr.net/npm/lithent@1.13.1/dist/lithent.umd.js"></script>
|
|
188
|
+
<!--script src="https://cdn.jsdelivr.net/npm/lithent@1.13.1/helper/dist/lithentHelper.umd.js"></script-->
|
|
189
|
+
<script src="https://cdn.jsdelivr.net/npm/lithent@1.13.1/tag/dist/lithentTag.umd.js"></script>
|
|
190
|
+
<!--script src="https://cdn.jsdelivr.net/npm/lithent@1.13.1/ftags/dist/lithentFTags.umd.js"></script-->
|
|
191
191
|
|
|
192
192
|
<div id="root"></div>
|
|
193
193
|
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))l(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const u of o.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&l(u)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function l(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();const E=e=>typeof e=="object"&&!("resolve"in e),w=(e,t)=>E(e)&&e.type===t,Re=(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 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)},xe=(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)},Y=(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&&(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)},y=e=>e&&["fragment","loop"].includes(e),N=e=>typeof e=="function"&&!Z(e)||typeof e=="object"&&"resolve"in e,Z=e=>typeof e=="function"&&e===x,ee=e=>E(e)&&!e.type,P=e=>e!=null,J=(e,t)=>e==="style"&&typeof t=="object",Ne=(e,t)=>e==="ref"&&typeof t=="object",Ue=e=>e.nodeType===1&&e.tagName==="OPTION",Oe=e=>e.nodeType===1&&e.tagName==="TEXTAREA",Te=e=>e.nodeType===1&&["radio","checkbox"].includes(e.type),Ve=e=>{let t="et";return N(e)?t="c":w(e,"fragment")?t="f":w(e,"element")?t="e":w(e,"loop")?t="l":w(e,"text")?t="t":ee(e)&&(t="et"),t},Ae={c:Re,l:we,t:Y,e:xe,f:be,et:Y},m=e=>e.getParent&&e.getParent(),S=Object.entries,te=Object.keys,U=Object.assign,C={value:""},R={value:{}},D={value:!1},p=new WeakMap,Le=e=>{p.set(e,{vd:{value:null},up:()=>{},upR:[],upS:{value:0},upD:[],upCB:[],mts:[],umts:[]})},b=()=>R.value,ne=(e,t)=>p.get(e)[t],ke=e=>R.value=e,De=e=>{R.value=e,Le(e)},je=e=>{p.get(b()).umts.push(e)},O=e=>{const{compKey:t}=e;t&&Me(t),le(e)},le=e=>{(e.children||[]).forEach(t=>{t.compKey?O(t):le(t)})},Me=e=>{const t=p.get(e);t&&(t.umts.forEach(n=>n()),t.umts=[],p.delete(e))};let j=[];const B=()=>{j.forEach(e=>Fe(e)),j=[]},$e=e=>{e.compKey&&j.push(e)},re=e=>p.get(b()).mts.push(e),Fe=e=>{const{compKey:t}=e;if(t){const n=p.get(t),l=n==null?void 0:n.mts,r=n==null?void 0:n.upS;R.value=t,r&&(r.value=0),l&&(n.mts=[],l.forEach(o=>{const u=o();u&&je(u)}))}},X=(e,t=()=>[])=>{const n=p.get(b()),{upD:l,upS:r}=n,o=l[r.value];if(o&&Ke(o,t())){const u=e();u&&n.upCB.push(u)}l[r.value]=t(),r.value+=1},Ie=e=>{const{compKey:t}=e;if(t){const n=p.get(t),l=n==null?void 0:n.upCB,r=n==null?void 0:n.upS;R.value=t,r&&(r.value=0),e.ctor&&l&&(n.upCB=[],l.forEach(o=>o()))}},Ke=(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()),q=()=>new DocumentFragment,_=e=>document.createElement(e),qe=(e,t,n)=>{t??(t=document.body),e.isRoot=!0,e.wrapElement=t;const l=V(e);return t.appendChild(l),B(),()=>{var r;const o=(r=p.get(e.compProps||{}))==null?void 0:r.vd.value;o&&O(o),T(o||e),He(o||e)}},ue=e=>{const{needRerender:t}=e;t&&t!=="N"&&({A:W,D:H,R:Ye,U:$,CNSU:$,SR:ie,SU:We}[t](e),delete e.needRerender,delete e.oldChildren,delete e.oldProps)},T=e=>{e.props&&e.el&&pe(e.props,e.el),(e.children||[]).forEach(t=>{T(t)})},He=e=>{ce(e,e.wrapElement)},H=e=>{e.oldProps&&e.el&&pe(e.oldProps,e.el),ce(e,A(m(e)))},ce=(e,t)=>{var n,l;t&&e.el&&([1,3].includes((n=e.el)==null?void 0:n.nodeType)?t.removeChild(e.el):((l=e.el)==null?void 0:l.nodeType)===11&&ae(e,t),delete e.el)},ae=(e,t)=>{((e==null?void 0:e.oldChildren)||(e==null?void 0:e.children)||[]).forEach(n=>{var l;const r=(l=n.el)==null?void 0:l.nodeType;r&&([1,3].includes(r)?t.removeChild(n==null?void 0:n.el):r===11&&ae(n,t))})},ie=e=>{H(e),W(e)},We=e=>{if($(e),m(e).needRerender!=="CNSU"){const t=de(e);W(e,t)}},W=(e,t)=>{t||(t=V(e));const n=m(e);if(n.type){const l=A(n),r=n.type==="loop"&&n.needRerender&&n.needRerender!=="CNSU"?M(n,m(n)):M(e,n);t&&l&&(e.tag!=="portal"&&(r?l.insertBefore(t,r):l.appendChild(t)),B())}},de=e=>y(e.type)?((e==null?void 0:e.children)||[]).reduce((t,n)=>{const l=de(n);return l&&t.appendChild(l),t},q()):e.el,M=(e,t)=>{const n=t.children||[],l=n.indexOf(e)+1,r=n.slice(l),o=se(r),u=t.type||"";if(o)return o;if(!t.isRoot&&y(u))return M(t,m(t));if(t.isRoot&&y(u)&&t.afterElement)return t.afterElement},se=e=>e.reduce((t,n)=>{const l=n.type,r=n.el,o=l&&y(l);return t||(o?se(n.children||[]):r&&r.nodeType!==11?r:t)},void 0),Ye=e=>{const t=m(e),n=e.el;if(t.type&&n)if(n.nodeType===11)ie(e);else{const l=A(t),r=V(e);l&&e.tag!=="portal"&&l.replaceChild(r,n),B()}},pe=(e,t)=>{S(e||{}).forEach(([n,l])=>{n.match(/^on/)&&t.removeEventListener(oe(n),l)})},$=e=>{var t;const n=e.el;if(e.type==="text"){Je(e);return}if(n){const{oldProps:l,props:r}=e;ve(r,n,l),delete e.oldProps,e.tag==="input"&&(n.value=String(((t=e==null?void 0:e.props)==null?void 0:t.value)||""))}(e.children||[]).forEach(l=>ue(l)),Ie(e)},Je=e=>{const t=e.el;t&&(t.nodeValue=String(e.text))},ve=(e,t,n)=>{const l={...n};S(e||{}).forEach(([r,o])=>{let u=!0;r==="key"||o===l[r]||r==="portal"&&typeof o=="object"||(r==="innerHTML"&&typeof o=="string"?t.innerHTML=o:J(r,o)?Qe(o,J(r,l.style)?l.style:{},t):Ne(r,o)?o.value=t:r.match(/^on/)?Ge(t,r,o,l[r]):Te(t)&&r==="checked"?t.checked=!!o:Oe(t)&&r==="value"?t.value=o:Ue(t)&&r==="selected"?t.selected=!!o:r&&([u,o]=_e(o),u&&Xe(Be(r),t,o))),u&&delete l[r]}),te(l).forEach(r=>t.removeAttribute(r))},Xe=(e,t,n)=>{C.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)]},V=e=>{let t;const{type:n,tag:l,text:r,props:o,children:u=[]}=e,a=y(n);return l==="svg"&&(C.value=String(o==null?void 0:o.xmlns)),a?t=q():n==="element"&&l?l==="portal"&&o!=null&&o.portal?t=o.portal:t=C.value?document.createElementNS(C.value,l):_(l):n==="text"&&P(r)?t=document.createTextNode(String(r)):t=_("e"),ze(u,t),ve(o,t),e.el=t,$e(e),l==="svg"&&(C.value=""),t},ze=(e,t)=>{const n=e.reduce((l,r)=>{if(r.type){const o=V(r);r.tag!=="portal"&&l.appendChild(o)}return l},q());t&&n.hasChildNodes()&&t.appendChild(n)},Ge=(e,t,n,l)=>{const r=oe(t);l!==n&&(l&&e.removeEventListener(r,l),n&&e.addEventListener(r,n))},Qe=(e,t,n)=>{const l={...t},r=n==null?void 0:n.style;r&&(S(e).forEach(([o,u])=>{r[o]=u,delete l[o]}),S(l).forEach(([o])=>r[o]=""))},A=e=>{const t=y(e.type);return e.isRoot&&t?e.wrapElement:t?A(m(e)):e.el},L=(e,t)=>Ze(e,Ae[Ve(e)](e,t),t),Ze=(e,t,n)=>{const l=ut(e,t,n),r=[l,t,n],o=tt(...r),u=o==="N";return u||(l.children=ct(...r)),l.needRerender=o,et(l,n,o),!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&&(O(t),T(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,r=ee(e),o=e.isRoot,u=n&&m(n),a=!o&&(u==null?void 0:u.type),c=v(e),s=a==="loop"&&P(c),h=e.type==="text"&&t&&e.text===(n==null?void 0:n.text),f=e===n;let d;return r?d="D":h||f?d="N":l?t?d=s?"SU":"U":d=s?"SR":"R":d="A",e.type==="loop"&&d==="U"&&n&&nt(e,n)&&(d="CNSU"),d},nt=(e,t)=>{const n=[...(t==null?void 0:t.children)||[]],l=[...(e==null?void 0:e.children)||[]].filter(u=>n.find(a=>v(u)===v(a))),r=n.filter(u=>l.find(a=>v(u)===v(a)));let o=r.length===l.length;return o&&(o=r.every((u,a)=>v(u)===v(l[a]))),o},lt=(e,t)=>{e&&t!==e&&(te(e).forEach(n=>delete e[n]),S(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)))},ot=(e,t)=>{const{compProps:n,compChild:l}=e,{props:r,children:o}=t;return n&<(n,r),l&&rt(l,o),e.reRender&&e.reRender()},ut=(e,t,n)=>N(e)?t&&n?ot(n,e):e.resolve():e,ct=(e,t,n)=>t&&n?it(e,n):at(e),at=e=>(e.children||[]).map(t=>U(L(t),{getParent:()=>e})),it=(e,t)=>e.type==="loop"&&P(v((e.children||[])[0]))?dt(e,t):(e.children||[]).map((n,l)=>U(L(n,(t.children||[])[l]),{getParent:()=>e})),dt=(e,t)=>{const[n,l]=st(e,t);return l.forEach(r=>{O(r),T(r),H(r)}),n},st=(e,t)=>{const n=[...e.children||[]],l=[...t.children||[]];return[n.map(r=>{const o=pt(r,l),u=L(r,o);return o&&l.splice(l.indexOf(o),1),u.getParent=()=>e,u}),l]},pt=(e,t)=>t.find(n=>v(n)===v(e));let F=[],I=!1;const he=(e,t)=>{p.get(e).up=()=>{F.push({compKey:e,exec:t}),I||(I=!0,queueMicrotask(ht))}},vt=e=>()=>{var t;const n=(t=p.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},fe=(e,t=()=>[])=>{p.get(b()).upR.push(()=>X(e,t)),X(e,t)},ft=()=>{var e;const t=(e=p.get(b()))==null?void 0:e.upR;t!=null&&t.length&&t.forEach(n=>n())},x=(e,...t)=>({type:"fragment",children:t}),i=(e,t,...n)=>{const l={value:void 0},r=t||{},o=Ce(l,n),u=Et(e,r,o);return N(u)||(l.value=u),u},me=e=>(t,n)=>e,ge=(e,t,n,l)=>{var r;if(l.isLegacy)return;D.value=!0;const o=ye(e,t,n),u=L(o,l),{isRoot:a,getParent:c,wrapElement:s,afterElement:h}=l;if(u.getParent=c,!a&&c){const f=((r=c())==null?void 0:r.children)||[],d=f.indexOf(l);f.splice(d,1,u)}else u.isRoot=!0,u.wrapElement=s,u.afterElement=h;D.value=!1,ue(u)},ye=(e,t,n)=>({tagName:e.name,ctor:e,props:t,children:n,resolve:(l=t)=>{De(l);const r=e(t,n)(vt(l),t,n),o=mt(r,l,e,t,n),u=o;return he(l,()=>ge(e,t,n,u)),ne(l,"vd").value=o,o}}),mt=(e,t,n,l,r)=>{let o=e,u=e(l);return u.reRender&&(o=a=>{const c=e(a),s=x({},c);return c.getParent=()=>s,s},u=o(l)),Ee(u,t,n,l,r,gt(o,t,n,l,r)),u},gt=(e,t,n,l,r)=>{const o=()=>yt(e,t,n,l,r,o);return o},yt=(e,t,n,l,r,o)=>{ke(t),ft();const u=e(l);return he(t,()=>ge(n,l,r,u)),Ee(u,t,n,l,r,o),ne(t,"vd").value=u,u},Ee=(e,t,n,l,r,o)=>{U(e,{compProps:l,compChild:r,ctor:n,tagName:n.name,compKey:t,reRender:o})},Et=(e,t,n)=>{if(Z(e))return x(t,...n);if(N(e)){const l=ye(e,t,n);return D.value?l:l.resolve()}return{type:"element",tag:e,props:t,children:n}},Ce=(e,t)=>t.map(n=>U(Ct(n),{getParent:()=>e.value})),Ct=e=>{if(e==null||e===!1)return{type:null};if(Array.isArray(e)){const t={value:void 0},n={type:"loop",children:Ce(t,e)};return t.value=n,n}else if(typeof e=="string"||typeof e=="number")return{type:"text",text:e};return e},Pt=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()}}},St=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'")}}},Rt=(e,t=()=>{},n=()=>[])=>{re(()=>(e(),t)),fe(()=>(t&&t(),e),n)},bt={cache:!0},xt=e=>{const t={value:!1},n=!Array.isArray(e)&&typeof e=="object"&&e!==null?e:{value:e},l=new Set,r=[],o=new WeakMap;return(u,a,c)=>{const{cache:s}=Object.assign({},bt,c||{});if(s&&u&&o.has(u))return o.get(u);const h={},f=new Set;let d={value:null},g=()=>{};return r.push(h),u&&a&&(g=()=>u(d.value),d.value=z(n,t,l,f,g,h,r),t.value=!0,a(d.value),t.value=!1),d.value||(d.value=z(n,t,l,f),u&&(g=()=>u(d.value),l.add(g))),u&&(Nt(g,l,h,f),o.set(u,d.value)),d.value}},z=(e,t,n,l,r,o,u)=>new Proxy(e,{get(a,c){return r&&o&&t.value&&(o[c]??(o[c]=new Set),o[c].has(r)||(o[c].add(r),l.add(c))),l.has(c)||!r?a[c]:null},set(a,c,s){if(a[c]===s)return!0;if(l.has(c)||!r)a[c]=s;else return!0;return wt(n,u,c,r),!0}}),wt=(e,t=[],n,l)=>{const r=[];r.push(...Q(e)),(t||[]).forEach(o=>{const u=l?o[n]||new Set:new Set;r.push(...Q(u)),G(r,[...u.values()])}),G(r,[...e.values()])},G=(e,t)=>{e.forEach(n=>{t.splice(t.indexOf(n),1)})},Q=e=>{const t=[];return e.forEach(n=>{n()===!1&&t.push(n)}),t},Nt=(e,t,n,l)=>{const r=e();r instanceof AbortSignal&&r.addEventListener("abort",()=>{const o=n||{};t.delete(e),Object.entries(o).forEach(([u,a])=>{a.delete(e),l.delete(u)})})},Ut=me((e,t,n)=>{const l=K(1,e),r=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),o=()=>t.parentValue,u=t.parentValue,a=St(()=>l.v+s+t.parentValue),c=xt({text:"s",count:0})(e);let s=t.parentValue;const h=Pt(null),f=()=>{l.v=l.v+1,s+=1},d=k=>{r.v=k.target.value},g=()=>{c.count+=1,c.text+="1"},Pe=()=>(console.log("MOUNTED",h),()=>console.log("UNMOUNT")),Se=()=>(console.log("UPDATE - parentValue"),()=>console.log("UPDATED"));return re(Pe),fe(Se,()=>[t.parentValue]),Rt(()=>console.log("INJECT"),()=>console.log("CLEAN_UP"),()=>[l.v]),({parentValue:k})=>i(x,null,i("div",null,i("textarea",{value:r.v,onInput:d,style:{width:"300px",height:"100px"}})),i("div",null,r.v),i("div",null,i("div",{style:{color:"blue"}},"parentValueFromRef: ",t.parentValue," (working)"),i("div",{style:{color:"blue"}},"parentValueFromFunction: ",o()," (working)"),i("div",{style:{color:"blue"}},"parentValueFromUpdaterDestructuring: ",k," (working)"),i("div",{style:{color:"red"}},"parentValueFromMounterDestructuring: ",u," (not working)")),i("div",null,i("div",{ref:h},"count: ",l.v),i("div",null,"sum: ",l.v+s+t.parentValue),i("div",null,"sum(computed): ",a.v),i("div",null,"notRefValue: ",s),i("div",null,"localStore(text): ",c.text),i("div",null,"localStore(count): ",c.count)),i("button",{onClick:f},"Increase"),i("button",{onClick:g},"localStoreUpdate"),n)}),Ot=me(e=>{const t=K(7,e),n=()=>{t.v=t.v+1},l=()=>{t.v=t.v-1};return()=>i(x,null,i(Ut,{parentValue:t.v},i("button",{onClick:n},"Increase - Parent")),i("button",{onClick:l},"Decrease - Parent"))}),Tt=i(Ot,null);qe(Tt,document.getElementById("root"));
|
|
2
|
-
//# sourceMappingURL=index-
|
|
1
|
+
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const r of document.querySelectorAll('link[rel="modulepreload"]'))l(r);new MutationObserver(r=>{for(const o of r)if(o.type==="childList")for(const u of o.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&l(u)}).observe(document,{childList:!0,subtree:!0});function n(r){const o={};return r.integrity&&(o.integrity=r.integrity),r.referrerPolicy&&(o.referrerPolicy=r.referrerPolicy),r.crossOrigin==="use-credentials"?o.credentials="include":r.crossOrigin==="anonymous"?o.credentials="omit":o.credentials="same-origin",o}function l(r){if(r.ep)return;r.ep=!0;const o=n(r);fetch(r.href,o)}})();const E=e=>typeof e=="object"&&!("resolve"in e),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),Re=(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)},xe=(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)},Y=(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),N=e=>typeof e=="function"&&!Z(e)||typeof e=="object"&&"resolve"in e,Z=e=>typeof e=="function"&&e===x,ee=e=>E(e)&&!e.type,C=e=>e!=null,J=(e,t)=>e==="style"&&typeof t=="object",Ne=(e,t)=>e==="ref"&&typeof t=="object",Ue=e=>e.nodeType===1&&e.tagName==="OPTION",Te=e=>e.nodeType===1&&e.tagName==="TEXTAREA",Oe=e=>e.nodeType===1&&["radio","checkbox"].includes(e.type),Ve=e=>{let t="et";return N(e)?t="c":w(e,"fragment")?t="f":w(e,"element")?t="e":w(e,"loop")?t="l":w(e,"text")?t="t":ee(e)&&(t="et"),t},Ae={c:be,l:we,t:Y,e:xe,f:Re,et:Y},m=e=>e.getParent&&e.getParent(),P=Object.entries,te=Object.keys,U=Object.assign,S={value:""},b={value:{}},D={value:!1},p=new WeakMap,Le=e=>{p.set(e,{vd:{value:null},up:()=>{},upR:[],upS:{value:0},upD:[],upCB:[],mts:[],umts:[]})},R=()=>b.value,ne=(e,t)=>p.get(e)[t],ke=e=>b.value=e,De=e=>{b.value=e,Le(e)},je=e=>{p.get(R()).umts.push(e)},T=e=>{const{compKey:t}=e;t&&Me(t),le(e)},le=e=>{(e.children||[]).forEach(t=>{t.compKey?T(t):le(t)})},Me=e=>{const t=p.get(e);t&&(t.umts.forEach(n=>n()),t.umts=[],p.delete(e))};let j=[];const B=()=>{j.forEach(e=>Fe(e)),j=[]},$e=e=>{e.compKey&&j.push(e)},re=e=>p.get(R()).mts.push(e),Fe=e=>{const{compKey:t}=e;if(t){const n=p.get(t),l=n==null?void 0:n.mts,r=n==null?void 0:n.upS;b.value=t,r&&(r.value=0),l&&(n.mts=[],l.forEach(o=>{const u=o();u&&je(u)}))}},X=(e,t=()=>[])=>{const n=p.get(R()),{upD:l,upS:r}=n,o=l[r.value];if(o&&Ke(o,t())){const u=e();u&&n.upCB.push(u)}l[r.value]=t(),r.value+=1},Ie=e=>{const{compKey:t}=e;if(t){const n=p.get(t),l=n==null?void 0:n.upCB,r=n==null?void 0:n.upS;b.value=t,r&&(r.value=0),e.ctor&&l&&(n.upCB=[],l.forEach(o=>o()))}},Ke=(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()),q=()=>new DocumentFragment,_=e=>document.createElement(e),qe=(e,t,n)=>{t??(t=document.body),e.isRoot=!0,e.wrapElement=t;const l=V(e);return t.appendChild(l),B(),()=>{var r;const o=(r=p.get(e.compProps||{}))==null?void 0:r.vd.value;o&&T(o),O(o||e),He(o||e)}},ue=e=>{const{needRerender:t}=e;t&&t!=="N"&&({A:W,D:H,R:Ye,U:$,CNSU:$,SR:ie,SU:We}[t](e),delete e.needRerender,delete e.oldChildren,delete e.oldProps)},O=e=>{e.props&&e.el&&pe(e.props,e.el),(e.children||[]).forEach(t=>{O(t)})},He=e=>{ce(e,e.wrapElement)},H=e=>{e.oldProps&&e.el&&pe(e.oldProps,e.el),ce(e,A(m(e)))},ce=(e,t)=>{var n,l;t&&e.el&&([1,3].includes((n=e.el)==null?void 0:n.nodeType)?t.removeChild(e.el):((l=e.el)==null?void 0:l.nodeType)===11&&ae(e,t),delete e.el)},ae=(e,t)=>{((e==null?void 0:e.oldChildren)||(e==null?void 0:e.children)||[]).forEach(n=>{var l;const r=(l=n.el)==null?void 0:l.nodeType;r&&([1,3].includes(r)?t.removeChild(n==null?void 0:n.el):r===11&&ae(n,t))})},ie=e=>{H(e),W(e)},We=e=>{if($(e),m(e).needRerender!=="CNSU"){const t=de(e);W(e,t)}},W=(e,t)=>{t||(t=V(e));const n=m(e);if(n.type){const l=A(n),r=n.type==="loop"&&n.needRerender&&n.needRerender!=="CNSU"?M(n,m(n)):M(e,n);t&&l&&(e.tag!=="portal"&&(r?l.insertBefore(t,r):l.appendChild(t)),B())}},de=e=>y(e.type)?((e==null?void 0:e.children)||[]).reduce((t,n)=>{const l=de(n);return l&&t.appendChild(l),t},q()):e.el,M=(e,t)=>{const n=t.children||[],l=n.indexOf(e)+1,r=n.slice(l),o=se(r),u=t.type||"";if(o)return o;if(!t.isRoot&&y(u))return M(t,m(t));if(t.isRoot&&y(u)&&t.afterElement)return t.afterElement},se=e=>e.reduce((t,n)=>{const l=n.type,r=n.el,o=l&&y(l);return t||(o?se(n.children||[]):r&&r.nodeType!==11?r:t)},void 0),Ye=e=>{const t=m(e),n=e.el;if(t.type&&n)if(n.nodeType===11)ie(e);else{const l=A(t),r=V(e);l&&e.tag!=="portal"&&l.replaceChild(r,n),B()}},pe=(e,t)=>{P(e||{}).forEach(([n,l])=>{n.match(/^on/)&&t.removeEventListener(oe(n),l)})},$=e=>{var t;const n=e.el;if(e.type==="text"){Je(e);return}if(n){const{oldProps:l,props:r}=e;ve(r,n,l),delete e.oldProps,e.tag==="input"&&(n.value=String(((t=e==null?void 0:e.props)==null?void 0:t.value)||""))}(e.children||[]).forEach(l=>ue(l)),Ie(e)},Je=e=>{const t=e.el;t&&(t.nodeValue=String(e.text))},ve=(e,t,n)=>{const l={...n};P(e||{}).forEach(([r,o])=>{let u=!0;r==="key"||o===l[r]||r==="portal"&&typeof o=="object"||(r==="innerHTML"&&typeof o=="string"?t.innerHTML=o:J(r,o)?Qe(o,J(r,l.style)?l.style:{},t):Ne(r,o)?o.value=t:r.match(/^on/)?Ge(t,r,o,l[r]):Oe(t)&&r==="checked"?t.checked=!!o:Te(t)&&r==="value"?t.value=o:Ue(t)&&r==="selected"?t.selected=!!o:r&&([u,o]=_e(o),u&&Xe(Be(r),t,o))),u&&delete l[r]}),te(l).forEach(r=>t.removeAttribute(r))},Xe=(e,t,n)=>{S.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)]},V=e=>{let t;const{type:n,tag:l,text:r,props:o,children:u=[]}=e,a=y(n);return l==="svg"&&(S.value=String(o==null?void 0:o.xmlns)),a?t=q():n==="element"&&l?l==="portal"&&o!=null&&o.portal?t=o.portal:t=S.value?document.createElementNS(S.value,l):_(l):n==="text"&&C(r)?t=document.createTextNode(String(r)):t=_("e"),ze(u,t),ve(o,t),e.el=t,$e(e),l==="svg"&&(S.value=""),t},ze=(e,t)=>{const n=e.reduce((l,r)=>{if(r.type){const o=V(r);r.tag!=="portal"&&l.appendChild(o)}return l},q());t&&n.hasChildNodes()&&t.appendChild(n)},Ge=(e,t,n,l)=>{const r=oe(t);l!==n&&(l&&e.removeEventListener(r,l),n&&e.addEventListener(r,n))},Qe=(e,t,n)=>{const l={...t},r=n==null?void 0:n.style;r&&(P(e).forEach(([o,u])=>{r[o]=u,delete l[o]}),P(l).forEach(([o])=>r[o]=""))},A=e=>{const t=y(e.type);return e.isRoot&&t?e.wrapElement:t?A(m(e)):e.el},L=(e,t)=>Ze(e,Ae[Ve(e)](e,t),t),Ze=(e,t,n)=>{const l=ut(e,t,n),r=[l,t,n],o=tt(...r),u=o==="N";return u||(l.children=ct(...r)),l.needRerender=o,et(l,n,o),!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),O(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,r=ee(e),o=e.isRoot,u=n&&m(n),a=!o&&(u==null?void 0:u.type),c=v(e),s=a==="loop"&&C(c),h=e.type==="text"&&t&&e.text===(n==null?void 0:n.text),f=e===n;let d;return r?d="D":h||f?d="N":l?t?d=s?"SU":"U":d=s?"SR":"R":d="A",e.type==="loop"&&d==="U"&&n&&nt(e,n)&&(d="CNSU"),d},nt=(e,t)=>{const n=[...(t==null?void 0:t.children)||[]],l=[...(e==null?void 0:e.children)||[]].filter(u=>n.find(a=>v(u)===v(a))),r=n.filter(u=>l.find(a=>v(u)===v(a)));let o=r.length===l.length;return o&&(o=r.every((u,a)=>v(u)===v(l[a]))),o},lt=(e,t)=>{e&&t!==e&&(te(e).forEach(n=>delete e[n]),P(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)))},ot=(e,t)=>{const{compProps:n,compChild:l}=e,{props:r,children:o}=t;return n&<(n,r),l&&rt(l,o),e.reRender&&e.reRender()},ut=(e,t,n)=>N(e)?t&&n?ot(n,e):e.resolve():e,ct=(e,t,n)=>t&&n?it(e,n):at(e),at=e=>(e.children||[]).map(t=>U(L(t),{getParent:()=>e})),it=(e,t)=>e.type==="loop"&&C(v((e.children||[])[0]))?dt(e,t):(e.children||[]).map((n,l)=>U(L(n,(t.children||[])[l]),{getParent:()=>e})),dt=(e,t)=>{const[n,l]=st(e,t);return l.forEach(r=>{T(r),O(r),H(r)}),n},st=(e,t)=>{const n=[...e.children||[]],l=[...t.children||[]];return[n.map(r=>{const o=pt(r,l),u=L(r,o);return o&&l.splice(l.indexOf(o),1),u.getParent=()=>e,u}),l]},pt=(e,t)=>t.find(n=>v(n)===v(e));let F=[],I=!1;const he=(e,t)=>{p.get(e).up=()=>{F.push({compKey:e,exec:t}),I||(I=!0,queueMicrotask(ht))}},vt=e=>()=>{var t;const n=(t=p.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},fe=(e,t=()=>[])=>{p.get(R()).upR.push(()=>X(e,t)),X(e,t)},ft=()=>{var e;const t=(e=p.get(R()))==null?void 0:e.upR;t!=null&&t.length&&t.forEach(n=>n())},x=(e,...t)=>({type:"fragment",children:t}),i=(e,t,...n)=>{const l={value:void 0},r=t||{},o=Se(l,n),u=Et(e,r,o);return N(u)||(l.value=u),u},me=e=>(t,n)=>e,ge=(e,t,n,l)=>{var r;if(l.isLegacy)return;D.value=!0;const o=ye(e,t,n),u=L(o,l),{isRoot:a,getParent:c,wrapElement:s,afterElement:h}=l;if(u.getParent=c,!a&&c){const f=((r=c())==null?void 0:r.children)||[],d=f.indexOf(l);f.splice(d,1,u)}else u.isRoot=!0,u.wrapElement=s,u.afterElement=h;D.value=!1,ue(u)},ye=(e,t,n)=>({tagName:e.name,ctor:e,props:t,children:n,resolve:(l=t)=>{De(l);const r=e(t,n)(vt(l),t,n),o=mt(r,l,e,t,n),u=o;return he(l,()=>ge(e,t,n,u)),ne(l,"vd").value=o,o}}),mt=(e,t,n,l,r)=>{let o=e,u=e(l);return u.reRender&&(o=a=>{const c=e(a),s=x({},c);return c.getParent=()=>s,s},u=o(l)),Ee(u,t,n,l,r,gt(o,t,n,l,r)),u},gt=(e,t,n,l,r)=>{const o=()=>yt(e,t,n,l,r,o);return o},yt=(e,t,n,l,r,o)=>{ke(t),ft();const u=e(l);return he(t,()=>ge(n,l,r,u)),Ee(u,t,n,l,r,o),ne(t,"vd").value=u,u},Ee=(e,t,n,l,r,o)=>{U(e,{compProps:l,compChild:r,ctor:n,tagName:n.name,compKey:t,reRender:o})},Et=(e,t,n)=>{if(Z(e))return x(t,...n);if(N(e)){const l=ye(e,t,n);return D.value?l:l.resolve()}return{type:"element",tag:e,props:t,children:n}},Se=(e,t)=>t.map(n=>U(St(n),{getParent:()=>e.value})),St=e=>{if(e==null||e===!1)return{type:null};if(Array.isArray(e)){const t={value:void 0},n={type:"loop",children:Se(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()}}},Pt=e=>{let t=e;return{get value(){return t()},get v(){return t()},set value(n){throw new Error("You can't change 'computed'")},set v(n){throw new Error("You can't change 'computed'")}}},bt=(e,t=()=>{},n=()=>[])=>{re(()=>(e(),t)),fe(()=>(t&&t(),e),n)},Rt={cache:!0},xt=e=>{const t={value:!1},n=!Array.isArray(e)&&typeof e=="object"&&e!==null?e:{value:e},l=new Set,r=[],o=new WeakMap;return(u,a,c)=>{const{cache:s}=Object.assign({},Rt,c||{});if(s&&u&&o.has(u))return o.get(u);const h={},f=new Set;let d={value:null},g=()=>{};return r.push(h),u&&a&&(g=()=>u(d.value),d.value=z(n,t,l,f,g,h,r),t.value=!0,a(d.value),t.value=!1),d.value||(d.value=z(n,t,l,f),u&&(g=()=>u(d.value),l.add(g))),u&&(Nt(g,l,h,f),o.set(u,d.value)),d.value}},z=(e,t,n,l,r,o,u)=>new Proxy(e,{get(a,c){return r&&o&&t.value&&(o[c]??(o[c]=new Set),o[c].has(r)||(o[c].add(r),l.add(c))),l.has(c)||!r?a[c]:null},set(a,c,s){if(a[c]===s)return!0;if(l.has(c)||!r)a[c]=s;else return!0;return wt(n,u,c,r),!0}}),wt=(e,t=[],n,l)=>{const r=new Set;Q(e).forEach(o=>r.add(o)),(t||[]).forEach(o=>{const u=l?o[n]||new Set:new Set;Q(u).forEach(a=>r.add(a)),G(r,u)}),G(r,e)},G=(e,t)=>{e.forEach(n=>{t.delete(n)})},Q=e=>{const t=[];return e.forEach(n=>{n()===!1&&t.push(n)}),t},Nt=(e,t,n,l)=>{const r=e();r instanceof AbortSignal&&r.addEventListener("abort",()=>{const o=n||{};t.delete(e),Object.entries(o).forEach(([u,a])=>{a.delete(e),l.delete(u)})})},Ut=me((e,t,n)=>{const l=K(1,e),r=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),o=()=>t.parentValue,u=t.parentValue,a=Pt(()=>l.v+s+t.parentValue),c=xt({text:"s",count:0})(e);let s=t.parentValue;const h=Ct(null),f=()=>{l.v=l.v+1,s+=1},d=k=>{r.v=k.target.value},g=()=>{c.count+=1,c.text+="1"},Ce=()=>(console.log("MOUNTED",h),()=>console.log("UNMOUNT")),Pe=()=>(console.log("UPDATE - parentValue"),()=>console.log("UPDATED"));return re(Ce),fe(Pe,()=>[t.parentValue]),bt(()=>console.log("INJECT"),()=>console.log("CLEAN_UP"),()=>[l.v]),({parentValue:k})=>i(x,null,i("div",null,i("textarea",{value:r.v,onInput:d,style:{width:"300px",height:"100px"}})),i("div",null,r.v),i("div",null,i("div",{style:{color:"blue"}},"parentValueFromRef: ",t.parentValue," (working)"),i("div",{style:{color:"blue"}},"parentValueFromFunction: ",o()," (working)"),i("div",{style:{color:"blue"}},"parentValueFromUpdaterDestructuring: ",k," (working)"),i("div",{style:{color:"red"}},"parentValueFromMounterDestructuring: ",u," (not working)")),i("div",null,i("div",{ref:h},"count: ",l.v),i("div",null,"sum: ",l.v+s+t.parentValue),i("div",null,"sum(computed): ",a.v),i("div",null,"notRefValue: ",s),i("div",null,"localStore(text): ",c.text),i("div",null,"localStore(count): ",c.count)),i("button",{onClick:f},"Increase"),i("button",{onClick:g},"localStoreUpdate"),n)}),Tt=me(e=>{const t=K(7,e),n=()=>{t.v=t.v+1},l=()=>{t.v=t.v-1};return()=>i(x,null,i(Ut,{parentValue:t.v},i("button",{onClick:n},"Increase - Parent")),i("button",{onClick:l},"Decrease - Parent"))}),Ot=i(Tt,null);qe(Ot,document.getElementById("root"));
|
|
2
|
+
//# sourceMappingURL=index-lX3XWOlo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-lX3XWOlo.js","sources":["../../../dist/lithent.mjs","../../../helper/dist/lithentHelper.mjs","../../src/index.tsx"],"sourcesContent":["const C = (e) => typeof e == \"object\" && !(\"resolve\" in e), a = (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), N = (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 N(e) ? t = \"c\" : a(e, \"fragment\") ? t = \"f\" : a(e, \"element\") ? t = \"e\" : a(e, \"loop\") ? t = \"l\" : a(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, T = 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, ae = (e) => {\n P.value = e, xe(e);\n}, Ne = (e) => {\n f.get(x()).umts.push(e);\n}, b = (e) => {\n const { compKey: t } = e;\n t && Te(t), m(e);\n}, m = (e) => {\n (e.children || []).forEach((t) => {\n t.compKey ? b(t) : m(t);\n });\n}, Te = (e) => {\n const t = f.get(e);\n t && (t.umts.forEach((s) => s()), t.umts = [], f.delete(e));\n};\nlet M = [];\nconst _ = () => {\n M.forEach((e) => Ue(e)), M = [];\n}, be = (e) => {\n e.compKey && M.push(e);\n}, dt = (e) => f.get(x()).mts.push(e), Ue = (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 && Ne(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()), I = () => new DocumentFragment(), Y = (e) => document.createElement(e), ot = (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), _(), () => {\n var r;\n const n = (r = f.get(e.compProps || {})) == null ? void 0 : r.vd.value;\n n && b(n), U(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: j,\n CNSU: j,\n SR: te,\n SU: Me\n }[t](e), delete e.needRerender, delete e.oldChildren, delete e.oldProps);\n}, U = (e) => {\n e.props && e.el && ne(e.props, e.el), (e.children || []).forEach((t) => {\n U(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 (j(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 && (e.tag !== \"portal\" && (r ? c.insertBefore(t, r) : c.appendChild(t)), _());\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}, I()) : 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 && e.tag !== \"portal\" && c.replaceChild(n, s), _();\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}, j = (e) => {\n var s;\n const t = e.el;\n if (e.type === \"text\") {\n je(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}, je = (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 === \"portal\" && typeof r == \"object\" || (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/) ? Ie(\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 && Be(\n Le(n),\n t,\n r\n ))), u && delete c[n];\n }), K(c).forEach(\n (n) => t.removeAttribute(n)\n );\n}, Be = (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 = I() : s === \"element\" && c ? c === \"portal\" && (r != null && r.portal) ? t = r.portal : t = k.value ? document.createElementNS(k.value, c) : Y(c) : s === \"text\" && R(n) ? t = document.createTextNode(String(n)) : t = Y(\"e\"), _e(u, t), re(r, t), e.el = t, be(e), c === \"svg\" && (k.value = \"\"), t;\n}, _e = (e, t) => {\n const s = e.reduce(\n (c, n) => {\n if (n.type) {\n const r = F(n);\n n.tag !== \"portal\" && c.appendChild(r);\n }\n return c;\n },\n I()\n );\n t && s.hasChildNodes() && t.appendChild(s);\n}, Ie = (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 && (b(t), U(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) => N(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) => T(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) => T(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 b(n), U(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 B = [], q = !1;\nconst ue = (e, t) => {\n f.get(e).up = () => {\n B.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 B.forEach((e) => {\n e.exec();\n }), B = [], q = !1;\n}, pt = (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}), ct = (e, t, ...s) => {\n const c = { value: void 0 }, n = t || {}, r = oe(c, s), u = lt(e, n, r);\n return N(u) || (c.value = u), u;\n}, ht = (e, t) => ct(\"portal\", { portal: t }, e), it = (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 ae(u);\n const h = e(t, s)(et(u), t, s), o = nt(\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} }), nt = (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 rt(r, t, s, c, n)\n ), u;\n}, rt = (e, t, s, c, n) => {\n const r = () => ut(e, t, s, c, n, r);\n return r;\n}, ut = (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 T(e, {\n compProps: c,\n compChild: n,\n ctor: s,\n tagName: s.name,\n compKey: t,\n reRender: r\n });\n}, lt = (e, t, s) => {\n if (Z(e))\n return $(t, ...s);\n if (N(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) => T(ft(s), { getParent: () => e.value })\n), ft = (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}, yt = (e) => ({ value: e }), vt = () => Promise.resolve();\nexport {\n $ as Fragment,\n ct as h,\n it as mount,\n dt as mountCallback,\n vt as nextTick,\n ht as portal,\n yt as ref,\n ot as render,\n pt as updateCallback\n};\n//# sourceMappingURL=lithent.mjs.map\n","import { mountCallback as y, updateCallback as S, nextTick as T, render as x } from \"lithent\";\nconst U = (t, e) => {\n let n = t;\n return {\n get value() {\n return n;\n },\n get v() {\n return n;\n },\n set value(s) {\n n = s, e();\n },\n set v(s) {\n n = s, e();\n }\n };\n}, b = (t) => {\n let e = t;\n return {\n get value() {\n return e();\n },\n get v() {\n return e();\n },\n set value(n) {\n throw new Error(\"You can't change 'computed'\");\n },\n set v(n) {\n throw new Error(\"You can't change 'computed'\");\n }\n };\n}, k = (t, e = () => {\n}, n = () => []) => {\n y(() => (t(), e)), S(() => (e && e(), t), n);\n}, C = { cache: !0 }, D = (t) => {\n const e = { value: !1 }, s = !Array.isArray(t) && typeof t == \"object\" && t !== null ? t : { value: t }, c = /* @__PURE__ */ new Set(), u = [], r = /* @__PURE__ */ new WeakMap();\n return (l, o, a) => {\n const { cache: h } = Object.assign({}, C, a || {});\n if (h && l && r.has(l))\n return r.get(l);\n const d = {}, v = /* @__PURE__ */ new Set();\n let f = { value: null }, i = () => {\n };\n return u.push(d), l && o && (i = () => l(f.value), f.value = g(\n s,\n e,\n c,\n v,\n i,\n d,\n u\n ), e.value = !0, o(f.value), e.value = !1), f.value || (f.value = g(\n s,\n e,\n c,\n v\n ), l && (i = () => l(f.value), c.add(i))), l && (w(\n i,\n c,\n d,\n v\n ), r.set(l, f.value)), f.value;\n };\n}, g = (t, e, n, s, c, u, r) => new Proxy(t, {\n get(o, a) {\n return c && u && e.value && (u[a] ?? (u[a] = /* @__PURE__ */ new Set()), u[a].has(c) || (u[a].add(c), s.add(a))), s.has(a) || !c ? o[a] : null;\n },\n set(o, a, h) {\n if (o[a] === h)\n return !0;\n if (s.has(a) || !c)\n o[a] = h;\n else\n return !0;\n return j(\n n,\n r,\n a,\n c\n ), !0;\n }\n}), j = (t, e = [], n, s) => {\n const c = /* @__PURE__ */ new Set();\n m(t).forEach(\n (u) => c.add(u)\n ), (e || []).forEach((u) => {\n const r = s ? u[n] || /* @__PURE__ */ new Set() : /* @__PURE__ */ new Set();\n m(r).forEach(\n (l) => c.add(l)\n ), E(c, r);\n }), E(c, t);\n}, E = (t, e) => {\n t.forEach((n) => {\n e.delete(n);\n });\n}, m = (t) => {\n const e = [];\n return t.forEach((n) => {\n n() === !1 && e.push(n);\n }), e;\n}, w = (t, e, n, s) => {\n const c = t();\n c instanceof AbortSignal && c.addEventListener(\"abort\", () => {\n const u = n || {};\n e.delete(t), Object.entries(u).forEach(([r, l]) => {\n l.delete(t), s.delete(r);\n });\n });\n}, A = (t, e) => {\n let n = [], s = null;\n return (c) => {\n const u = t(), r = n.every((o, a) => o === u[a]);\n if (n = u, r && s)\n return s;\n const l = e(c);\n return s = l, l;\n };\n}, _ = (t, e, n) => {\n let s = () => {\n };\n return T().then(() => {\n s = x(t(), e, n);\n }), () => s();\n};\nexport {\n A as cacheUpdate,\n b as computed,\n k as effect,\n _ as nextTickRender,\n U 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","a","pe","he","s","c","ie","G","ye","R","d","v","$","V","H","ve","Ce","ke","Re","Ee","Pe","i","E","K","T","k","P","O","f","xe","x","g","Se","ae","Ne","b","Te","m","M","_","Ue","be","dt","n","r","J","Ae","Fe","Le","w","I","Y","ot","F","U","Oe","W","X","z","Qe","j","te","Me","ne","D","ee","se","Q","u","ce","l","t","je","re","ze","Ie","qe","Be","_e","Xe","Ve","Ge","Ke","$e","h","o","y","S","p","He","Je","Ye","Ze","me","ge","we","We","De","B","q","ue","tt","et","pt","st","e","ct","oe","lt","it","le","fe","nt","de","rt","ut","ft","yt","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-lX3XWOlo.js"></script>
|
|
8
8
|
</head>
|
|
9
9
|
<body>
|
|
10
10
|
<section id="root"></section>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { mountCallback as
|
|
2
|
-
const
|
|
1
|
+
import { mountCallback as y, updateCallback as S, nextTick as T, render as x } from "lithent";
|
|
2
|
+
const U = (t, e) => {
|
|
3
3
|
let n = t;
|
|
4
4
|
return {
|
|
5
5
|
get value() {
|
|
@@ -15,7 +15,7 @@ const k = (t, e) => {
|
|
|
15
15
|
n = s, e();
|
|
16
16
|
}
|
|
17
17
|
};
|
|
18
|
-
},
|
|
18
|
+
}, b = (t) => {
|
|
19
19
|
let e = t;
|
|
20
20
|
return {
|
|
21
21
|
get value() {
|
|
@@ -31,101 +31,105 @@ const k = (t, e) => {
|
|
|
31
31
|
throw new Error("You can't change 'computed'");
|
|
32
32
|
}
|
|
33
33
|
};
|
|
34
|
-
},
|
|
34
|
+
}, k = (t, e = () => {
|
|
35
35
|
}, n = () => []) => {
|
|
36
|
-
|
|
37
|
-
}, C = { cache: !0 },
|
|
38
|
-
const e = { value: !1 }, s = !Array.isArray(t) && typeof t == "object" && t !== null ? t : { value: t },
|
|
39
|
-
return (
|
|
40
|
-
const { cache: h } = Object.assign({}, C,
|
|
41
|
-
if (h &&
|
|
42
|
-
return r.get(
|
|
43
|
-
const
|
|
44
|
-
let
|
|
36
|
+
y(() => (t(), e)), S(() => (e && e(), t), n);
|
|
37
|
+
}, C = { cache: !0 }, D = (t) => {
|
|
38
|
+
const e = { value: !1 }, s = !Array.isArray(t) && typeof t == "object" && t !== null ? t : { value: t }, c = /* @__PURE__ */ new Set(), u = [], r = /* @__PURE__ */ new WeakMap();
|
|
39
|
+
return (l, o, a) => {
|
|
40
|
+
const { cache: h } = Object.assign({}, C, a || {});
|
|
41
|
+
if (h && l && r.has(l))
|
|
42
|
+
return r.get(l);
|
|
43
|
+
const d = {}, v = /* @__PURE__ */ new Set();
|
|
44
|
+
let f = { value: null }, i = () => {
|
|
45
45
|
};
|
|
46
|
-
return
|
|
46
|
+
return u.push(d), l && o && (i = () => l(f.value), f.value = g(
|
|
47
47
|
s,
|
|
48
48
|
e,
|
|
49
|
-
|
|
50
|
-
d,
|
|
51
|
-
f,
|
|
49
|
+
c,
|
|
52
50
|
v,
|
|
53
|
-
|
|
54
|
-
|
|
51
|
+
i,
|
|
52
|
+
d,
|
|
53
|
+
u
|
|
54
|
+
), e.value = !0, o(f.value), e.value = !1), f.value || (f.value = g(
|
|
55
55
|
s,
|
|
56
56
|
e,
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
),
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
), r.set(
|
|
57
|
+
c,
|
|
58
|
+
v
|
|
59
|
+
), l && (i = () => l(f.value), c.add(i))), l && (w(
|
|
60
|
+
i,
|
|
61
|
+
c,
|
|
62
|
+
d,
|
|
63
|
+
v
|
|
64
|
+
), r.set(l, f.value)), f.value;
|
|
65
65
|
};
|
|
66
|
-
}, g = (t, e, n, s,
|
|
67
|
-
get(o,
|
|
68
|
-
return
|
|
66
|
+
}, g = (t, e, n, s, c, u, r) => new Proxy(t, {
|
|
67
|
+
get(o, a) {
|
|
68
|
+
return c && u && e.value && (u[a] ?? (u[a] = /* @__PURE__ */ new Set()), u[a].has(c) || (u[a].add(c), s.add(a))), s.has(a) || !c ? o[a] : null;
|
|
69
69
|
},
|
|
70
|
-
set(o,
|
|
71
|
-
if (o[
|
|
70
|
+
set(o, a, h) {
|
|
71
|
+
if (o[a] === h)
|
|
72
72
|
return !0;
|
|
73
|
-
if (s.has(
|
|
74
|
-
o[
|
|
73
|
+
if (s.has(a) || !c)
|
|
74
|
+
o[a] = h;
|
|
75
75
|
else
|
|
76
76
|
return !0;
|
|
77
77
|
return j(
|
|
78
78
|
n,
|
|
79
79
|
r,
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
a,
|
|
81
|
+
c
|
|
82
82
|
), !0;
|
|
83
83
|
}
|
|
84
84
|
}), j = (t, e = [], n, s) => {
|
|
85
|
-
const
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
85
|
+
const c = /* @__PURE__ */ new Set();
|
|
86
|
+
m(t).forEach(
|
|
87
|
+
(u) => c.add(u)
|
|
88
|
+
), (e || []).forEach((u) => {
|
|
89
|
+
const r = s ? u[n] || /* @__PURE__ */ new Set() : /* @__PURE__ */ new Set();
|
|
90
|
+
m(r).forEach(
|
|
91
|
+
(l) => c.add(l)
|
|
92
|
+
), E(c, r);
|
|
93
|
+
}), E(c, t);
|
|
94
|
+
}, E = (t, e) => {
|
|
91
95
|
t.forEach((n) => {
|
|
92
|
-
e.
|
|
96
|
+
e.delete(n);
|
|
93
97
|
});
|
|
94
|
-
},
|
|
98
|
+
}, m = (t) => {
|
|
95
99
|
const e = [];
|
|
96
100
|
return t.forEach((n) => {
|
|
97
101
|
n() === !1 && e.push(n);
|
|
98
102
|
}), e;
|
|
99
|
-
},
|
|
100
|
-
const
|
|
101
|
-
|
|
102
|
-
const
|
|
103
|
-
e.delete(t), Object.entries(
|
|
104
|
-
|
|
103
|
+
}, w = (t, e, n, s) => {
|
|
104
|
+
const c = t();
|
|
105
|
+
c instanceof AbortSignal && c.addEventListener("abort", () => {
|
|
106
|
+
const u = n || {};
|
|
107
|
+
e.delete(t), Object.entries(u).forEach(([r, l]) => {
|
|
108
|
+
l.delete(t), s.delete(r);
|
|
105
109
|
});
|
|
106
110
|
});
|
|
107
111
|
}, A = (t, e) => {
|
|
108
112
|
let n = [], s = null;
|
|
109
|
-
return (
|
|
110
|
-
const
|
|
111
|
-
if (n =
|
|
113
|
+
return (c) => {
|
|
114
|
+
const u = t(), r = n.every((o, a) => o === u[a]);
|
|
115
|
+
if (n = u, r && s)
|
|
112
116
|
return s;
|
|
113
|
-
const
|
|
114
|
-
return s =
|
|
117
|
+
const l = e(c);
|
|
118
|
+
return s = l, l;
|
|
115
119
|
};
|
|
116
|
-
},
|
|
120
|
+
}, _ = (t, e, n) => {
|
|
117
121
|
let s = () => {
|
|
118
122
|
};
|
|
119
|
-
return
|
|
120
|
-
s =
|
|
123
|
+
return T().then(() => {
|
|
124
|
+
s = x(t(), e, n);
|
|
121
125
|
}), () => s();
|
|
122
126
|
};
|
|
123
127
|
export {
|
|
124
128
|
A as cacheUpdate,
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
129
|
+
b as computed,
|
|
130
|
+
k as effect,
|
|
131
|
+
_ as nextTickRender,
|
|
132
|
+
U as state,
|
|
133
|
+
D as store
|
|
130
134
|
};
|
|
131
135
|
//# 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 Renew<T> = (store: T) => boolean | AbortSignal | void;\ntype Run = () => boolean | AbortSignal | void;\ntype StoreType<V> = V extends { [key: string]: unknown } ? V : { value: V };\ntype StoreValue = {\n [key: string | symbol]: Set<Run>;\n};\n\nconst DEFAULT_OPTION = { cache: true };\n\nexport const store = <V>(initialValue: V) => {\n type T = StoreType<V>;\n\n const allowInitSetting = { value: false };\n const isObjectTypeValue =\n !Array.isArray(initialValue) &&\n typeof initialValue === 'object' &&\n initialValue !== null;\n const value: T = isObjectTypeValue\n ? (initialValue as T)\n : ({ value: initialValue } as T);\n\n const storeRenderList: Set<Run> = new Set();\n const storeRenderObserveList: StoreValue[] = [];\n const cacheMap = new WeakMap<Renew<T>, T>();\n\n return (\n renew?: Renew<T>,\n makeObserver?: ((store: T) => unknown[]) | null,\n userOption?: { cache?: boolean }\n ) => {\n const { cache } = Object.assign({}, DEFAULT_OPTION, userOption || {});\n\n if (cache && renew && cacheMap.has(renew)) {\n return cacheMap.get(renew)!;\n }\n\n const storeRenderObserveMap: StoreValue = {};\n // const allowedAccessProp: (keyof T)[] = [];\n const allowedAccessProp: Set<keyof T> = new Set();\n\n let makedProxy: { value: null | T } = { value: null };\n let run: Run = () => {};\n\n storeRenderObserveList.push(storeRenderObserveMap);\n\n if (renew && makeObserver) {\n run = () => renew(makedProxy.value!);\n makedProxy.value = updater<T>(\n value,\n allowInitSetting,\n storeRenderList,\n allowedAccessProp,\n run,\n storeRenderObserveMap,\n storeRenderObserveList\n );\n allowInitSetting.value = true;\n makeObserver(makedProxy.value);\n allowInitSetting.value = false;\n }\n\n if (!makedProxy.value) {\n makedProxy.value = updater<T>(\n value,\n allowInitSetting,\n storeRenderList,\n allowedAccessProp\n );\n\n if (renew) {\n run = () => renew(makedProxy.value!);\n storeRenderList.add(run);\n }\n }\n\n if (renew) {\n runFirstEmit<T>(\n run,\n storeRenderList,\n storeRenderObserveMap,\n allowedAccessProp\n );\n cacheMap.set(renew, makedProxy.value);\n }\n\n return makedProxy.value;\n };\n};\n\nconst updater = <T extends { [key: string | symbol]: unknown }>(\n value: T,\n allowInitSetting: { value: boolean },\n storeRenderList: Set<Run>,\n allowedAccessProp: Set<keyof T>,\n run?: Run,\n storeRenderObserveMap?: StoreValue,\n storeRenderObserveList?: StoreValue[]\n) => {\n const result = new Proxy(value, {\n get(target: T, prop: keyof T) {\n if (run && storeRenderObserveMap && allowInitSetting.value) {\n storeRenderObserveMap[prop] ??= new Set();\n\n if (!storeRenderObserveMap[prop].has(run)) {\n storeRenderObserveMap[prop].add(run);\n allowedAccessProp.add(prop);\n }\n }\n\n if (allowedAccessProp.has(prop) || !run) {\n return target[prop];\n }\n\n return null;\n },\n set(target, prop: keyof T, value) {\n if (target[prop] === value) {\n return true;\n } else if (allowedAccessProp.has(prop) || !run) {\n target[prop] = value;\n } else {\n return true;\n }\n\n execDependentCallbacks(\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 storeRenderList: Set<Run>,\n storeRenderObserveList: StoreValue[] = [],\n prop: keyof T,\n run?: () => boolean | AbortSignal | void\n) => {\n const trashCollections: Run[] = [];\n\n trashCollections.push(...runWithtrashCollectUnit(storeRenderList));\n\n (storeRenderObserveList || []).forEach(storeRenderObserveMap => {\n const renderObserveList: Set<Run> = run\n ? storeRenderObserveMap[prop] || new Set<Run>()\n : new Set<Run>();\n\n trashCollections.push(...runWithtrashCollectUnit(renderObserveList));\n\n removeTrashCollect(trashCollections, [...renderObserveList.values()]);\n });\n\n removeTrashCollect(trashCollections, [...storeRenderList.values()]);\n};\n\nconst removeTrashCollect = (trashCollections: Run[], targetList: Run[]) => {\n trashCollections.forEach(deleteTarget => {\n targetList.splice(targetList.indexOf(deleteTarget), 1);\n });\n};\n\nconst runWithtrashCollectUnit = (storeRenderList: Set<Run>) => {\n const trashes: Run[] = [];\n storeRenderList.forEach(run => {\n if (run() === false) {\n trashes.push(run);\n }\n });\n return trashes;\n};\n\nconst runFirstEmit = <T>(\n run: () => boolean | void | AbortSignal,\n storeRenderList: Set<Run>,\n storeRenderObserveMap: StoreValue,\n allowedAccessProp: Set<keyof T>\n) => {\n const renewResult = run();\n\n if (renewResult instanceof AbortSignal) {\n renewResult.addEventListener('abort', () => {\n const renderObserveList: StoreValue = storeRenderObserveMap || {};\n\n storeRenderList.delete(run);\n\n Object.entries(renderObserveList).forEach(([key, item]) => {\n item.delete(run);\n allowedAccessProp.delete(key as keyof T);\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","DEFAULT_OPTION","store","initialValue","allowInitSetting","storeRenderList","storeRenderObserveList","cacheMap","makeObserver","userOption","cache","storeRenderObserveMap","allowedAccessProp","makedProxy","run","updater","runFirstEmit","target","prop","execDependentCallbacks","trashCollections","runWithtrashCollectUnit","renderObserveList","removeTrashCollect","targetList","deleteTarget","trashes","renewResult","key","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 Run = () => boolean | AbortSignal | void;\ntype StoreType<V> = V extends { [key: string]: unknown } ? V : { value: V };\ntype StoreValue = {\n [key: string | symbol]: Set<Run>;\n};\n\nconst DEFAULT_OPTION = { cache: true };\n\nexport const store = <V>(initialValue: V) => {\n type T = StoreType<V>;\n\n const allowInitSetting = { value: false };\n const isObjectTypeValue =\n !Array.isArray(initialValue) &&\n typeof initialValue === 'object' &&\n initialValue !== null;\n const value: T = isObjectTypeValue\n ? (initialValue as T)\n : ({ value: initialValue } as T);\n\n const storeRenderList: Set<Run> = new Set();\n const storeRenderObserveList: StoreValue[] = [];\n const cacheMap = new WeakMap<Renew<T>, T>();\n\n return (\n renew?: Renew<T>,\n makeObserver?: ((store: T) => unknown[]) | null,\n userOption?: { cache?: boolean }\n ) => {\n const { cache } = Object.assign({}, DEFAULT_OPTION, userOption || {});\n\n if (cache && renew && cacheMap.has(renew)) {\n return cacheMap.get(renew)!;\n }\n\n const storeRenderObserveMap: StoreValue = {};\n // const allowedAccessProp: (keyof T)[] = [];\n const allowedAccessProp: Set<keyof T> = new Set();\n\n let makedProxy: { value: null | T } = { value: null };\n let run: Run = () => {};\n\n storeRenderObserveList.push(storeRenderObserveMap);\n\n if (renew && makeObserver) {\n run = () => renew(makedProxy.value!);\n makedProxy.value = updater<T>(\n value,\n allowInitSetting,\n storeRenderList,\n allowedAccessProp,\n run,\n storeRenderObserveMap,\n storeRenderObserveList\n );\n allowInitSetting.value = true;\n makeObserver(makedProxy.value);\n allowInitSetting.value = false;\n }\n\n if (!makedProxy.value) {\n makedProxy.value = updater<T>(\n value,\n allowInitSetting,\n storeRenderList,\n allowedAccessProp\n );\n\n if (renew) {\n run = () => renew(makedProxy.value!);\n storeRenderList.add(run);\n }\n }\n\n if (renew) {\n runFirstEmit<T>(\n run,\n storeRenderList,\n storeRenderObserveMap,\n allowedAccessProp\n );\n cacheMap.set(renew, makedProxy.value);\n }\n\n return makedProxy.value;\n };\n};\n\nconst updater = <T extends { [key: string | symbol]: unknown }>(\n value: T,\n allowInitSetting: { value: boolean },\n storeRenderList: Set<Run>,\n allowedAccessProp: Set<keyof T>,\n run?: Run,\n storeRenderObserveMap?: StoreValue,\n storeRenderObserveList?: StoreValue[]\n) => {\n const result = new Proxy(value, {\n get(target: T, prop: keyof T) {\n if (run && storeRenderObserveMap && allowInitSetting.value) {\n storeRenderObserveMap[prop] ??= new Set();\n\n if (!storeRenderObserveMap[prop].has(run)) {\n storeRenderObserveMap[prop].add(run);\n allowedAccessProp.add(prop);\n }\n }\n\n if (allowedAccessProp.has(prop) || !run) {\n return target[prop];\n }\n\n return null;\n },\n set(target, prop: keyof T, value) {\n if (target[prop] === value) {\n return true;\n } else if (allowedAccessProp.has(prop) || !run) {\n target[prop] = value;\n } else {\n return true;\n }\n\n execDependentCallbacks(\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 storeRenderList: Set<Run>,\n storeRenderObserveList: StoreValue[] = [],\n prop: keyof T,\n run?: () => boolean | AbortSignal | void\n) => {\n const trashCollections: Set<Run> = new Set();\n\n // trashCollections.push(...runWithtrashCollectUnit(storeRenderList));\n runWithtrashCollectUnit(storeRenderList).forEach(value =>\n trashCollections.add(value)\n );\n\n (storeRenderObserveList || []).forEach(storeRenderObserveMap => {\n const renderObserveList: Set<Run> = run\n ? storeRenderObserveMap[prop] || new Set<Run>()\n : new Set<Run>();\n\n runWithtrashCollectUnit(renderObserveList).forEach(value =>\n trashCollections.add(value)\n );\n\n removeTrashCollect(trashCollections, renderObserveList);\n });\n\n removeTrashCollect(trashCollections, storeRenderList);\n};\n\nconst removeTrashCollect = (\n trashCollections: Set<Run>,\n targetList: Set<Run>\n) => {\n trashCollections.forEach(deleteTarget => {\n targetList.delete(deleteTarget);\n });\n};\n\nconst runWithtrashCollectUnit = (storeRenderList: Set<Run>) => {\n const trashes: Run[] = [];\n storeRenderList.forEach(run => {\n if (run() === false) {\n trashes.push(run);\n }\n });\n return trashes;\n};\n\nconst runFirstEmit = <T>(\n run: () => boolean | void | AbortSignal,\n storeRenderList: Set<Run>,\n storeRenderObserveMap: StoreValue,\n allowedAccessProp: Set<keyof T>\n) => {\n const renewResult = run();\n\n if (renewResult instanceof AbortSignal) {\n renewResult.addEventListener('abort', () => {\n const renderObserveList: StoreValue = storeRenderObserveMap || {};\n\n storeRenderList.delete(run);\n\n Object.entries(renderObserveList).forEach(([key, item]) => {\n item.delete(run);\n allowedAccessProp.delete(key as keyof T);\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","DEFAULT_OPTION","store","initialValue","allowInitSetting","storeRenderList","storeRenderObserveList","cacheMap","makeObserver","userOption","cache","storeRenderObserveMap","allowedAccessProp","makedProxy","run","updater","runFirstEmit","target","prop","execDependentCallbacks","trashCollections","runWithtrashCollectUnit","renderObserveList","removeTrashCollect","targetList","deleteTarget","trashes","renewResult","key","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(r,f){typeof exports=="object"&&typeof module<"u"?f(exports,require("lithent")):typeof define=="function"&&define.amd?define(["exports","lithent"],f):(r=typeof globalThis<"u"?globalThis:r||self,f(r.lithentHelper={},r.lithent))})(this,function(r,f){"use strict";const
|
|
1
|
+
(function(r,f){typeof exports=="object"&&typeof module<"u"?f(exports,require("lithent")):typeof define=="function"&&define.amd?define(["exports","lithent"],f):(r=typeof globalThis<"u"?globalThis:r||self,f(r.lithentHelper={},r.lithent))})(this,function(r,f){"use strict";const T=(e,t)=>{let n=e;return{get value(){return n},get v(){return n},set value(c){n=c,t()},set v(c){n=c,t()}}},j=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'")}}},b=(e,t=()=>{},n=()=>[])=>{f.mountCallback(()=>(e(),t)),f.updateCallback(()=>(t&&t(),e),n)},C={cache:!0},U=e=>{const t={value:!1},c=!Array.isArray(e)&&typeof e=="object"&&e!==null?e:{value:e},s=new Set,u=[],o=new WeakMap;return(l,i,a)=>{const{cache:v}=Object.assign({},C,a||{});if(v&&l&&o.has(l))return o.get(l);const g={},y=new Set;let d={value:null},h=()=>{};return u.push(g),l&&i&&(h=()=>l(d.value),d.value=m(c,t,s,y,h,g,u),t.value=!0,i(d.value),t.value=!1),d.value||(d.value=m(c,t,s,y),l&&(h=()=>l(d.value),s.add(h))),l&&(w(h,s,g,y),o.set(l,d.value)),d.value}},m=(e,t,n,c,s,u,o)=>new Proxy(e,{get(i,a){return s&&u&&t.value&&(u[a]??(u[a]=new Set),u[a].has(s)||(u[a].add(s),c.add(a))),c.has(a)||!s?i[a]:null},set(i,a,v){if(i[a]===v)return!0;if(c.has(a)||!s)i[a]=v;else return!0;return k(n,o,a,s),!0}}),k=(e,t=[],n,c)=>{const s=new Set;S(e).forEach(u=>s.add(u)),(t||[]).forEach(u=>{const o=c?u[n]||new Set:new Set;S(o).forEach(l=>s.add(l)),E(s,o)}),E(s,e)},E=(e,t)=>{e.forEach(n=>{t.delete(n)})},S=e=>{const t=[];return e.forEach(n=>{n()===!1&&t.push(n)}),t},w=(e,t,n,c)=>{const s=e();s instanceof AbortSignal&&s.addEventListener("abort",()=>{const u=n||{};t.delete(e),Object.entries(u).forEach(([o,l])=>{l.delete(e),c.delete(o)})})},L=(e,t)=>{let n=[],c=null;return s=>{const u=e(),o=n.every((i,a)=>i===u[a]);if(n=u,o&&c)return c;const l=t(s);return c=l,l}},D=(e,t,n)=>{let c=()=>{};return f.nextTick().then(()=>{c=f.render(e(),t,n)}),()=>c()};r.cacheUpdate=L,r.computed=j,r.effect=b,r.nextTickRender=D,r.state=T,r.store=U,Object.defineProperty(r,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 Renew<T> = (store: T) => boolean | AbortSignal | void;\ntype Run = () => boolean | AbortSignal | void;\ntype StoreType<V> = V extends { [key: string]: unknown } ? V : { value: V };\ntype StoreValue = {\n [key: string | symbol]: Set<Run>;\n};\n\nconst DEFAULT_OPTION = { cache: true };\n\nexport const store = <V>(initialValue: V) => {\n type T = StoreType<V>;\n\n const allowInitSetting = { value: false };\n const isObjectTypeValue =\n !Array.isArray(initialValue) &&\n typeof initialValue === 'object' &&\n initialValue !== null;\n const value: T = isObjectTypeValue\n ? (initialValue as T)\n : ({ value: initialValue } as T);\n\n const storeRenderList: Set<Run> = new Set();\n const storeRenderObserveList: StoreValue[] = [];\n const cacheMap = new WeakMap<Renew<T>, T>();\n\n return (\n renew?: Renew<T>,\n makeObserver?: ((store: T) => unknown[]) | null,\n userOption?: { cache?: boolean }\n ) => {\n const { cache } = Object.assign({}, DEFAULT_OPTION, userOption || {});\n\n if (cache && renew && cacheMap.has(renew)) {\n return cacheMap.get(renew)!;\n }\n\n const storeRenderObserveMap: StoreValue = {};\n // const allowedAccessProp: (keyof T)[] = [];\n const allowedAccessProp: Set<keyof T> = new Set();\n\n let makedProxy: { value: null | T } = { value: null };\n let run: Run = () => {};\n\n storeRenderObserveList.push(storeRenderObserveMap);\n\n if (renew && makeObserver) {\n run = () => renew(makedProxy.value!);\n makedProxy.value = updater<T>(\n value,\n allowInitSetting,\n storeRenderList,\n allowedAccessProp,\n run,\n storeRenderObserveMap,\n storeRenderObserveList\n );\n allowInitSetting.value = true;\n makeObserver(makedProxy.value);\n allowInitSetting.value = false;\n }\n\n if (!makedProxy.value) {\n makedProxy.value = updater<T>(\n value,\n allowInitSetting,\n storeRenderList,\n allowedAccessProp\n );\n\n if (renew) {\n run = () => renew(makedProxy.value!);\n storeRenderList.add(run);\n }\n }\n\n if (renew) {\n runFirstEmit<T>(\n run,\n storeRenderList,\n storeRenderObserveMap,\n allowedAccessProp\n );\n cacheMap.set(renew, makedProxy.value);\n }\n\n return makedProxy.value;\n };\n};\n\nconst updater = <T extends { [key: string | symbol]: unknown }>(\n value: T,\n allowInitSetting: { value: boolean },\n storeRenderList: Set<Run>,\n allowedAccessProp: Set<keyof T>,\n run?: Run,\n storeRenderObserveMap?: StoreValue,\n storeRenderObserveList?: StoreValue[]\n) => {\n const result = new Proxy(value, {\n get(target: T, prop: keyof T) {\n if (run && storeRenderObserveMap && allowInitSetting.value) {\n storeRenderObserveMap[prop] ??= new Set();\n\n if (!storeRenderObserveMap[prop].has(run)) {\n storeRenderObserveMap[prop].add(run);\n allowedAccessProp.add(prop);\n }\n }\n\n if (allowedAccessProp.has(prop) || !run) {\n return target[prop];\n }\n\n return null;\n },\n set(target, prop: keyof T, value) {\n if (target[prop] === value) {\n return true;\n } else if (allowedAccessProp.has(prop) || !run) {\n target[prop] = value;\n } else {\n return true;\n }\n\n execDependentCallbacks(\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 storeRenderList: Set<Run>,\n storeRenderObserveList: StoreValue[] = [],\n prop: keyof T,\n run?: () => boolean | AbortSignal | void\n) => {\n const trashCollections: Run[] = [];\n\n trashCollections.push(...runWithtrashCollectUnit(storeRenderList));\n\n (storeRenderObserveList || []).forEach(storeRenderObserveMap => {\n const renderObserveList: Set<Run> = run\n ? storeRenderObserveMap[prop] || new Set<Run>()\n : new Set<Run>();\n\n trashCollections.push(...runWithtrashCollectUnit(renderObserveList));\n\n removeTrashCollect(trashCollections, [...renderObserveList.values()]);\n });\n\n removeTrashCollect(trashCollections, [...storeRenderList.values()]);\n};\n\nconst removeTrashCollect = (trashCollections: Run[], targetList: Run[]) => {\n trashCollections.forEach(deleteTarget => {\n targetList.splice(targetList.indexOf(deleteTarget), 1);\n });\n};\n\nconst runWithtrashCollectUnit = (storeRenderList: Set<Run>) => {\n const trashes: Run[] = [];\n storeRenderList.forEach(run => {\n if (run() === false) {\n trashes.push(run);\n }\n });\n return trashes;\n};\n\nconst runFirstEmit = <T>(\n run: () => boolean | void | AbortSignal,\n storeRenderList: Set<Run>,\n storeRenderObserveMap: StoreValue,\n allowedAccessProp: Set<keyof T>\n) => {\n const renewResult = run();\n\n if (renewResult instanceof AbortSignal) {\n renewResult.addEventListener('abort', () => {\n const renderObserveList: StoreValue = storeRenderObserveMap || {};\n\n storeRenderList.delete(run);\n\n Object.entries(renderObserveList).forEach(([key, item]) => {\n item.delete(run);\n allowedAccessProp.delete(key as keyof T);\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","DEFAULT_OPTION","store","initialValue","allowInitSetting","storeRenderList","storeRenderObserveList","cacheMap","makeObserver","userOption","cache","storeRenderObserveMap","allowedAccessProp","makedProxy","run","updater","runFirstEmit","target","prop","execDependentCallbacks","trashCollections","runWithtrashCollectUnit","renderObserveList","removeTrashCollect","targetList","deleteTarget","trashes","renewResult","key","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 Run = () => boolean | AbortSignal | void;\ntype StoreType<V> = V extends { [key: string]: unknown } ? V : { value: V };\ntype StoreValue = {\n [key: string | symbol]: Set<Run>;\n};\n\nconst DEFAULT_OPTION = { cache: true };\n\nexport const store = <V>(initialValue: V) => {\n type T = StoreType<V>;\n\n const allowInitSetting = { value: false };\n const isObjectTypeValue =\n !Array.isArray(initialValue) &&\n typeof initialValue === 'object' &&\n initialValue !== null;\n const value: T = isObjectTypeValue\n ? (initialValue as T)\n : ({ value: initialValue } as T);\n\n const storeRenderList: Set<Run> = new Set();\n const storeRenderObserveList: StoreValue[] = [];\n const cacheMap = new WeakMap<Renew<T>, T>();\n\n return (\n renew?: Renew<T>,\n makeObserver?: ((store: T) => unknown[]) | null,\n userOption?: { cache?: boolean }\n ) => {\n const { cache } = Object.assign({}, DEFAULT_OPTION, userOption || {});\n\n if (cache && renew && cacheMap.has(renew)) {\n return cacheMap.get(renew)!;\n }\n\n const storeRenderObserveMap: StoreValue = {};\n // const allowedAccessProp: (keyof T)[] = [];\n const allowedAccessProp: Set<keyof T> = new Set();\n\n let makedProxy: { value: null | T } = { value: null };\n let run: Run = () => {};\n\n storeRenderObserveList.push(storeRenderObserveMap);\n\n if (renew && makeObserver) {\n run = () => renew(makedProxy.value!);\n makedProxy.value = updater<T>(\n value,\n allowInitSetting,\n storeRenderList,\n allowedAccessProp,\n run,\n storeRenderObserveMap,\n storeRenderObserveList\n );\n allowInitSetting.value = true;\n makeObserver(makedProxy.value);\n allowInitSetting.value = false;\n }\n\n if (!makedProxy.value) {\n makedProxy.value = updater<T>(\n value,\n allowInitSetting,\n storeRenderList,\n allowedAccessProp\n );\n\n if (renew) {\n run = () => renew(makedProxy.value!);\n storeRenderList.add(run);\n }\n }\n\n if (renew) {\n runFirstEmit<T>(\n run,\n storeRenderList,\n storeRenderObserveMap,\n allowedAccessProp\n );\n cacheMap.set(renew, makedProxy.value);\n }\n\n return makedProxy.value;\n };\n};\n\nconst updater = <T extends { [key: string | symbol]: unknown }>(\n value: T,\n allowInitSetting: { value: boolean },\n storeRenderList: Set<Run>,\n allowedAccessProp: Set<keyof T>,\n run?: Run,\n storeRenderObserveMap?: StoreValue,\n storeRenderObserveList?: StoreValue[]\n) => {\n const result = new Proxy(value, {\n get(target: T, prop: keyof T) {\n if (run && storeRenderObserveMap && allowInitSetting.value) {\n storeRenderObserveMap[prop] ??= new Set();\n\n if (!storeRenderObserveMap[prop].has(run)) {\n storeRenderObserveMap[prop].add(run);\n allowedAccessProp.add(prop);\n }\n }\n\n if (allowedAccessProp.has(prop) || !run) {\n return target[prop];\n }\n\n return null;\n },\n set(target, prop: keyof T, value) {\n if (target[prop] === value) {\n return true;\n } else if (allowedAccessProp.has(prop) || !run) {\n target[prop] = value;\n } else {\n return true;\n }\n\n execDependentCallbacks(\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 storeRenderList: Set<Run>,\n storeRenderObserveList: StoreValue[] = [],\n prop: keyof T,\n run?: () => boolean | AbortSignal | void\n) => {\n const trashCollections: Set<Run> = new Set();\n\n // trashCollections.push(...runWithtrashCollectUnit(storeRenderList));\n runWithtrashCollectUnit(storeRenderList).forEach(value =>\n trashCollections.add(value)\n );\n\n (storeRenderObserveList || []).forEach(storeRenderObserveMap => {\n const renderObserveList: Set<Run> = run\n ? storeRenderObserveMap[prop] || new Set<Run>()\n : new Set<Run>();\n\n runWithtrashCollectUnit(renderObserveList).forEach(value =>\n trashCollections.add(value)\n );\n\n removeTrashCollect(trashCollections, renderObserveList);\n });\n\n removeTrashCollect(trashCollections, storeRenderList);\n};\n\nconst removeTrashCollect = (\n trashCollections: Set<Run>,\n targetList: Set<Run>\n) => {\n trashCollections.forEach(deleteTarget => {\n targetList.delete(deleteTarget);\n });\n};\n\nconst runWithtrashCollectUnit = (storeRenderList: Set<Run>) => {\n const trashes: Run[] = [];\n storeRenderList.forEach(run => {\n if (run() === false) {\n trashes.push(run);\n }\n });\n return trashes;\n};\n\nconst runFirstEmit = <T>(\n run: () => boolean | void | AbortSignal,\n storeRenderList: Set<Run>,\n storeRenderObserveMap: StoreValue,\n allowedAccessProp: Set<keyof T>\n) => {\n const renewResult = run();\n\n if (renewResult instanceof AbortSignal) {\n renewResult.addEventListener('abort', () => {\n const renderObserveList: StoreValue = storeRenderObserveMap || {};\n\n storeRenderList.delete(run);\n\n Object.entries(renderObserveList).forEach(([key, item]) => {\n item.delete(run);\n allowedAccessProp.delete(key as keyof T);\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","DEFAULT_OPTION","store","initialValue","allowInitSetting","storeRenderList","storeRenderObserveList","cacheMap","makeObserver","userOption","cache","storeRenderObserveMap","allowedAccessProp","makedProxy","run","updater","runFirstEmit","target","prop","execDependentCallbacks","trashCollections","runWithtrashCollectUnit","renderObserveList","removeTrashCollect","targetList","deleteTarget","trashes","renewResult","key","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
|
@@ -145,26 +145,34 @@ const execDependentCallbacks = <T>(
|
|
|
145
145
|
prop: keyof T,
|
|
146
146
|
run?: () => boolean | AbortSignal | void
|
|
147
147
|
) => {
|
|
148
|
-
const trashCollections: Run
|
|
148
|
+
const trashCollections: Set<Run> = new Set();
|
|
149
149
|
|
|
150
|
-
trashCollections.push(...runWithtrashCollectUnit(storeRenderList));
|
|
150
|
+
// trashCollections.push(...runWithtrashCollectUnit(storeRenderList));
|
|
151
|
+
runWithtrashCollectUnit(storeRenderList).forEach(value =>
|
|
152
|
+
trashCollections.add(value)
|
|
153
|
+
);
|
|
151
154
|
|
|
152
155
|
(storeRenderObserveList || []).forEach(storeRenderObserveMap => {
|
|
153
156
|
const renderObserveList: Set<Run> = run
|
|
154
157
|
? storeRenderObserveMap[prop] || new Set<Run>()
|
|
155
158
|
: new Set<Run>();
|
|
156
159
|
|
|
157
|
-
|
|
160
|
+
runWithtrashCollectUnit(renderObserveList).forEach(value =>
|
|
161
|
+
trashCollections.add(value)
|
|
162
|
+
);
|
|
158
163
|
|
|
159
|
-
removeTrashCollect(trashCollections,
|
|
164
|
+
removeTrashCollect(trashCollections, renderObserveList);
|
|
160
165
|
});
|
|
161
166
|
|
|
162
|
-
removeTrashCollect(trashCollections,
|
|
167
|
+
removeTrashCollect(trashCollections, storeRenderList);
|
|
163
168
|
};
|
|
164
169
|
|
|
165
|
-
const removeTrashCollect = (
|
|
170
|
+
const removeTrashCollect = (
|
|
171
|
+
trashCollections: Set<Run>,
|
|
172
|
+
targetList: Set<Run>
|
|
173
|
+
) => {
|
|
166
174
|
trashCollections.forEach(deleteTarget => {
|
|
167
|
-
targetList.
|
|
175
|
+
targetList.delete(deleteTarget);
|
|
168
176
|
});
|
|
169
177
|
};
|
|
170
178
|
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-Bd9Pg33S.js","sources":["../../../dist/lithent.mjs","../../../helper/dist/lithentHelper.mjs","../../src/index.tsx"],"sourcesContent":["const C = (e) => typeof e == \"object\" && !(\"resolve\" in e), a = (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), N = (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 N(e) ? t = \"c\" : a(e, \"fragment\") ? t = \"f\" : a(e, \"element\") ? t = \"e\" : a(e, \"loop\") ? t = \"l\" : a(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, T = 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, ae = (e) => {\n P.value = e, xe(e);\n}, Ne = (e) => {\n f.get(x()).umts.push(e);\n}, b = (e) => {\n const { compKey: t } = e;\n t && Te(t), m(e);\n}, m = (e) => {\n (e.children || []).forEach((t) => {\n t.compKey ? b(t) : m(t);\n });\n}, Te = (e) => {\n const t = f.get(e);\n t && (t.umts.forEach((s) => s()), t.umts = [], f.delete(e));\n};\nlet M = [];\nconst _ = () => {\n M.forEach((e) => Ue(e)), M = [];\n}, be = (e) => {\n e.compKey && M.push(e);\n}, dt = (e) => f.get(x()).mts.push(e), Ue = (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 && Ne(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()), I = () => new DocumentFragment(), Y = (e) => document.createElement(e), ot = (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), _(), () => {\n var r;\n const n = (r = f.get(e.compProps || {})) == null ? void 0 : r.vd.value;\n n && b(n), U(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: j,\n CNSU: j,\n SR: te,\n SU: Me\n }[t](e), delete e.needRerender, delete e.oldChildren, delete e.oldProps);\n}, U = (e) => {\n e.props && e.el && ne(e.props, e.el), (e.children || []).forEach((t) => {\n U(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 (j(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 && (e.tag !== \"portal\" && (r ? c.insertBefore(t, r) : c.appendChild(t)), _());\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}, I()) : 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 && e.tag !== \"portal\" && c.replaceChild(n, s), _();\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}, j = (e) => {\n var s;\n const t = e.el;\n if (e.type === \"text\") {\n je(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}, je = (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 === \"portal\" && typeof r == \"object\" || (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/) ? Ie(\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 && Be(\n Le(n),\n t,\n r\n ))), u && delete c[n];\n }), K(c).forEach(\n (n) => t.removeAttribute(n)\n );\n}, Be = (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 = I() : s === \"element\" && c ? c === \"portal\" && (r != null && r.portal) ? t = r.portal : t = k.value ? document.createElementNS(k.value, c) : Y(c) : s === \"text\" && R(n) ? t = document.createTextNode(String(n)) : t = Y(\"e\"), _e(u, t), re(r, t), e.el = t, be(e), c === \"svg\" && (k.value = \"\"), t;\n}, _e = (e, t) => {\n const s = e.reduce(\n (c, n) => {\n if (n.type) {\n const r = F(n);\n n.tag !== \"portal\" && c.appendChild(r);\n }\n return c;\n },\n I()\n );\n t && s.hasChildNodes() && t.appendChild(s);\n}, Ie = (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 && (b(t), U(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) => N(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) => T(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) => T(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 b(n), U(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 B = [], q = !1;\nconst ue = (e, t) => {\n f.get(e).up = () => {\n B.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 B.forEach((e) => {\n e.exec();\n }), B = [], q = !1;\n}, pt = (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}), ct = (e, t, ...s) => {\n const c = { value: void 0 }, n = t || {}, r = oe(c, s), u = lt(e, n, r);\n return N(u) || (c.value = u), u;\n}, ht = (e, t) => ct(\"portal\", { portal: t }, e), it = (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 ae(u);\n const h = e(t, s)(et(u), t, s), o = nt(\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} }), nt = (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 rt(r, t, s, c, n)\n ), u;\n}, rt = (e, t, s, c, n) => {\n const r = () => ut(e, t, s, c, n, r);\n return r;\n}, ut = (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 T(e, {\n compProps: c,\n compChild: n,\n ctor: s,\n tagName: s.name,\n compKey: t,\n reRender: r\n });\n}, lt = (e, t, s) => {\n if (Z(e))\n return $(t, ...s);\n if (N(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) => T(ft(s), { getParent: () => e.value })\n), ft = (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}, yt = (e) => ({ value: e }), vt = () => Promise.resolve();\nexport {\n $ as Fragment,\n ct as h,\n it as mount,\n dt as mountCallback,\n vt as nextTick,\n ht as portal,\n yt as ref,\n ot as render,\n pt as updateCallback\n};\n//# sourceMappingURL=lithent.mjs.map\n","import { mountCallback as E, updateCallback as S, nextTick as x, render as T } from \"lithent\";\nconst k = (t, e) => {\n let n = t;\n return {\n get value() {\n return n;\n },\n get v() {\n return n;\n },\n set value(s) {\n n = s, e();\n },\n set v(s) {\n n = s, e();\n }\n };\n}, w = (t) => {\n let e = t;\n return {\n get value() {\n return e();\n },\n get v() {\n return e();\n },\n set value(n) {\n throw new Error(\"You can't change 'computed'\");\n },\n set v(n) {\n throw new Error(\"You can't change 'computed'\");\n }\n };\n}, D = (t, e = () => {\n}, n = () => []) => {\n E(() => (t(), e)), S(() => (e && e(), t), n);\n}, C = { cache: !0 }, L = (t) => {\n const e = { value: !1 }, s = !Array.isArray(t) && typeof t == \"object\" && t !== null ? t : { value: t }, u = /* @__PURE__ */ new Set(), l = [], r = /* @__PURE__ */ new WeakMap();\n return (a, o, c) => {\n const { cache: h } = Object.assign({}, C, c || {});\n if (h && a && r.has(a))\n return r.get(a);\n const v = {}, d = /* @__PURE__ */ new Set();\n let i = { value: null }, f = () => {\n };\n return l.push(v), a && o && (f = () => a(i.value), i.value = g(\n s,\n e,\n u,\n d,\n f,\n v,\n l\n ), e.value = !0, o(i.value), e.value = !1), i.value || (i.value = g(\n s,\n e,\n u,\n d\n ), a && (f = () => a(i.value), u.add(f))), a && (U(\n f,\n u,\n v,\n d\n ), r.set(a, i.value)), i.value;\n };\n}, g = (t, e, n, s, u, l, r) => new Proxy(t, {\n get(o, c) {\n return u && l && e.value && (l[c] ?? (l[c] = /* @__PURE__ */ new Set()), l[c].has(u) || (l[c].add(u), s.add(c))), s.has(c) || !u ? o[c] : null;\n },\n set(o, c, h) {\n if (o[c] === h)\n return !0;\n if (s.has(c) || !u)\n o[c] = h;\n else\n return !0;\n return j(\n n,\n r,\n c,\n u\n ), !0;\n }\n}), j = (t, e = [], n, s) => {\n const u = [];\n u.push(...y(t)), (e || []).forEach((l) => {\n const r = s ? l[n] || /* @__PURE__ */ new Set() : /* @__PURE__ */ new Set();\n u.push(...y(r)), m(u, [...r.values()]);\n }), m(u, [...t.values()]);\n}, m = (t, e) => {\n t.forEach((n) => {\n e.splice(e.indexOf(n), 1);\n });\n}, y = (t) => {\n const e = [];\n return t.forEach((n) => {\n n() === !1 && e.push(n);\n }), e;\n}, U = (t, e, n, s) => {\n const u = t();\n u instanceof AbortSignal && u.addEventListener(\"abort\", () => {\n const l = n || {};\n e.delete(t), Object.entries(l).forEach(([r, a]) => {\n a.delete(t), s.delete(r);\n });\n });\n}, A = (t, e) => {\n let n = [], s = null;\n return (u) => {\n const l = t(), r = n.every((o, c) => o === l[c]);\n if (n = l, r && s)\n return s;\n const a = e(u);\n return s = a, a;\n };\n}, O = (t, e, n) => {\n let s = () => {\n };\n return x().then(() => {\n s = T(t(), e, n);\n }), () => s();\n};\nexport {\n A as cacheUpdate,\n w as computed,\n D as effect,\n O as nextTickRender,\n k as state,\n L 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","a","pe","he","s","c","ie","G","ye","R","d","v","$","V","H","ve","Ce","ke","Re","Ee","Pe","i","E","K","T","k","P","O","f","xe","x","g","Se","ae","Ne","b","Te","m","M","_","Ue","be","dt","n","r","J","Ae","Fe","Le","w","I","Y","ot","F","U","Oe","W","X","z","Qe","j","te","Me","ne","D","ee","se","Q","u","ce","l","t","je","re","ze","Ie","qe","Be","_e","L","Xe","Ve","Ge","Ke","$e","h","o","y","S","p","He","Je","Ye","Ze","me","ge","we","We","De","B","q","ue","tt","et","pt","st","e","ct","oe","lt","it","le","fe","nt","de","rt","ut","ft","yt","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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"}
|