lithent 1.2.2 → 1.2.3
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 +10 -12
- package/dist/lithent.mjs +793 -360
- package/dist/lithent.mjs.map +1 -1
- package/dist/lithent.umd.js +1 -1
- package/dist/lithent.umd.js.map +1 -1
- package/dist/render.d.ts +1 -0
- package/examples/dist/assets/index-d0c2c397.js +2 -0
- package/examples/dist/assets/index-d0c2c397.js.map +1 -0
- package/examples/dist/index.html +1 -1
- package/package.json +1 -1
- package/src/diff.ts +6 -11
- package/src/render.ts +6 -4
- package/src/tests/loop2.tsx +77 -0
- package/examples/dist/assets/index-35f93159.js +0 -2
- package/examples/dist/assets/index-35f93159.js.map +0 -1
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
import { mount, render, Fragment, h, ref, nextTick } from '@/index';
|
|
2
|
+
|
|
3
|
+
const testChangeRef = ref<null | (() => void)>(null);
|
|
4
|
+
const testChangeRef2 = ref<null | (() => void)>(null);
|
|
5
|
+
|
|
6
|
+
const Item = mount<{ key: number; value: string }>((r, { key }) => {
|
|
7
|
+
let c = 0;
|
|
8
|
+
const handle = () => {
|
|
9
|
+
c += 1;
|
|
10
|
+
r();
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
if (key === 2) {
|
|
14
|
+
testChangeRef2.value = handle;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return ({ value }) => (
|
|
18
|
+
<Fragment>
|
|
19
|
+
<button onClick={handle}>handle</button>
|
|
20
|
+
<div>
|
|
21
|
+
{value} = {c}
|
|
22
|
+
</div>
|
|
23
|
+
</Fragment>
|
|
24
|
+
);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
const Loop = mount(function (renew) {
|
|
28
|
+
let list: { key: number; value: string }[] = [
|
|
29
|
+
{ key: 1, value: '일' },
|
|
30
|
+
{ key: 2, value: '이' },
|
|
31
|
+
{ key: 3, value: '삼' },
|
|
32
|
+
{ key: 4, value: '사' },
|
|
33
|
+
];
|
|
34
|
+
const handle = () => {
|
|
35
|
+
list = [
|
|
36
|
+
{ key: 3, value: '삼삼' },
|
|
37
|
+
{ key: 2, value: '이이' },
|
|
38
|
+
];
|
|
39
|
+
renew();
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
testChangeRef.value = handle;
|
|
43
|
+
|
|
44
|
+
return () => (
|
|
45
|
+
<Fragment>
|
|
46
|
+
<button onClick={handle}>exec</button>
|
|
47
|
+
{list.map(item => (
|
|
48
|
+
<Item key={item.key} value={item.value} />
|
|
49
|
+
))}
|
|
50
|
+
</Fragment>
|
|
51
|
+
);
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
const testWrap =
|
|
55
|
+
document.getElementById('root') || document.createElement('div');
|
|
56
|
+
|
|
57
|
+
render(<Loop />, testWrap);
|
|
58
|
+
|
|
59
|
+
if (import.meta.vitest) {
|
|
60
|
+
const { it, expect } = import.meta.vitest;
|
|
61
|
+
it('If it is a component of a looped item, it should be output as expected.', () => {
|
|
62
|
+
expect(testWrap.outerHTML).toBe(
|
|
63
|
+
'<div><button>exec</button><button>handle</button><div>일 = 0</div><button>handle</button><div>이 = 0</div><button>handle</button><div>삼 = 0</div><button>handle</button><div>사 = 0</div></div>'
|
|
64
|
+
);
|
|
65
|
+
});
|
|
66
|
+
it("If it's a component of a recurring item, it needs to be updated while maintaining the state of the item for each.", () => {
|
|
67
|
+
if (testChangeRef.value && testChangeRef2.value) {
|
|
68
|
+
testChangeRef2.value();
|
|
69
|
+
testChangeRef.value();
|
|
70
|
+
}
|
|
71
|
+
nextTick().then(() => {
|
|
72
|
+
expect(testWrap.outerHTML).toBe(
|
|
73
|
+
'<div><button>exec</button><button>handle</button><div>삼삼 = 0</div><button>handle</button><div>이이 = 1</div></div>'
|
|
74
|
+
);
|
|
75
|
+
});
|
|
76
|
+
});
|
|
77
|
+
}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))o(l);new MutationObserver(l=>{for(const r of l)if(r.type==="childList")for(const u of r.addedNodes)u.tagName==="LINK"&&u.rel==="modulepreload"&&o(u)}).observe(document,{childList:!0,subtree:!0});function n(l){const r={};return l.integrity&&(r.integrity=l.integrity),l.referrerPolicy&&(r.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?r.credentials="include":l.crossOrigin==="anonymous"?r.credentials="omit":r.credentials="same-origin",r}function o(l){if(l.ep)return;l.ep=!0;const r=n(l);fetch(l.href,r)}})();const y=e=>typeof e=="object"&&!("resolve"in e),R=(e,t)=>y(e)&&e.type===t,Ce=(e,t)=>"ctor"in e?e.ctor===(t==null?void 0:t.ctor):e===(t==null?void 0:t.ctor),Re=(e,t)=>{var n,o;return y(e)&&(t==null?void 0:t.type)==="fragment"&&((n=t==null?void 0:t.children)==null?void 0:n.length)===((o=e==null?void 0:e.children)==null?void 0:o.length)},be=(e,t)=>{var n,o;return y(e)&&(t==null?void 0:t.type)==="element"&&(t==null?void 0:t.tag)===e.tag&&((n=t==null?void 0:t.children)==null?void 0:n.length)===((o=e==null?void 0:e.children)==null?void 0:o.length)},D=(e,t)=>y(e)&&(t==null?void 0:t.type)===e.type&&(e.type!=="loop"||e.type==="loop"&&f(v((e.children||[])[0]))&&f(v((t.children||[])[0]))),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)},m=e=>e&&["fragment","loop"].includes(e),N=e=>typeof e=="function"&&!_(e)||typeof e=="object"&&"resolve"in e,_=e=>typeof e=="function"&&e===A,z=e=>y(e)&&!e.type,f=e=>e!=null,Y=(e,t)=>e==="style"&&typeof t=="object",we=(e,t)=>e==="ref"&&typeof t=="object",Ne=e=>e.nodeType===1&&e.tagName==="OPTION",Se=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":R(e,"fragment")?t="f":R(e,"element")?t="e":R(e,"loop")?t="l":R(e,"text")?t="t":z(e)&&(t="et"),t},Oe={c:Ce,l:D,t:D,e:be,f:Re,et:D},p=e=>e.getParent&&e.getParent(),g=Object.entries,G=Object.keys,S=Object.assign,h={value:""},E={value:{}},K={value:!1},i=new WeakMap,Ae=e=>{i.set(e,{vd:{value:null},up:()=>{},upR:[],upS:{value:0},upD:[],upCB:[],mts:[],umts:[]})},P=()=>E.value,Q=(e,t)=>i.get(e)[t],Ue=e=>E.value=e,ke=e=>{E.value=e,Ae(e)},De=e=>{i.get(P()).umts.push(e)},j=e=>{const{compKey:t}=e;t&&Ke(t),Z(e)},Z=e=>{(e.children||[]).forEach(t=>{t.compKey?j(t):Z(t)})},Ke=e=>{const t=i.get(e);t&&(t.umts.forEach(n=>n()),t.umts=[],i.delete(e))};let L=[];const B=()=>{L.forEach(e=>Me(e)),L=[]},Le=e=>{e.compKey&&L.push(e)},ee=e=>i.get(P()).mts.push(e),Me=e=>{const{compKey:t}=e;if(t){const n=i.get(t),o=n==null?void 0:n.mts,l=n==null?void 0:n.upS;E.value=t,l&&(l.value=0),o&&(n.mts=[],o.forEach(r=>{const u=r();u&&De(u)}))}},J=(e,t=()=>[])=>{const n=i.get(P()),{upD:o,upS:l}=n,r=o[l.value];if(r&&Ie(r,t())){const u=e();u&&n.upCB.push(u)}o[l.value]=t(),l.value+=1},Fe=e=>{const{compKey:t}=e;if(t){const n=i.get(t),o=n==null?void 0:n.upCB,l=n==null?void 0:n.upS;E.value=t,l&&(l.value=0),e.ctor&&o&&(n.upCB=[],o.forEach(r=>r()))}},Ie=(e,t)=>e.length?e.some((n,o)=>n!==t[o]):!0,W=e=>e==="className"?"class":e,te=e=>e.replace(/^on(.*)/,(t,n)=>n.toLowerCase()),ne=()=>new DocumentFragment,X=e=>document.createElement(e),je=(e,t,n)=>{t??(t=document.body),e.isRoot=!0,e.wrapElement=t;const o=T(e);return n?(e.afterElement=n,t.insertBefore(o,n)):t.appendChild(o),B(),()=>{var l;const r=(l=i.get(e.compProps||{}))==null?void 0:l.vd.value;r&&(j(r),$(r),Be(r))}},oe=e=>{const{needRerender:t}=e;t&&t!=="N"&&{A:H,D:q,R:qe,U:He,SR:ue,SU:$e}[t](e)},$=e=>{e.props&&e.el&&ie(e.props,e.el),(e.children||[]).forEach(t=>{$(t)})},Be=e=>{le(e,e.wrapElement)},q=e=>{e.oldProps&&e.el&&ie(e.oldProps,e.el),le(e,V(p(e)))},le=(e,t)=>{var n,o;t&&e.el&&(((n=e.el)==null?void 0:n.nodeType)===1?t.removeChild(e.el):((o=e.el)==null?void 0:o.nodeType)===11&&re(e,t),delete e.el)},re=(e,t)=>{((e==null?void 0:e.oldChildren)||(e==null?void 0:e.children)||[]).forEach(n=>{var o,l;((o=n.el)==null?void 0:o.nodeType)===1?t.removeChild(n==null?void 0:n.el):((l=n.el)==null?void 0:l.nodeType)===11&&re(n,t)})},ue=e=>{q(e),H(e)},$e=e=>{q(e),H(e,e.el)},H=(e,t)=>{t||(t=T(e));const n=p(e);if(n.type){const o=V(n),l=n.type==="loop"?M(n,p(n)):M(e,n);t&&o&&(l?o.insertBefore(t,l):o.appendChild(t),B())}},M=(e,t)=>{const n=t.children||[],o=n.indexOf(e)+1,l=n.slice(o),r=ce(l),u=t.type||"";if(r)return r;if(!t.isRoot&&m(u))return M(t,p(t));if(t.isRoot&&m(u)&&t.afterElement)return t.afterElement},ce=e=>e.reduce((t,n)=>{const o=n.type,l=n.el,r=o&&m(o);return t||(r?ce(n.children||[]):l&&l.nodeType!==11?l:t)},void 0),qe=e=>{const t=p(e),n=e.el;if(t.type&&n)if(n.nodeType===11)ue(e);else{const o=V(t),l=T(e);o&&o.replaceChild(l,n),B()}},ie=(e,t)=>{g(e||{}).forEach(([n,o])=>{n.match(/^on/)&&t.removeEventListener(te(n),o)})},He=e=>{var t;const n=e.el;if(e.type==="text"){Ye(e);return}if(n){const{oldProps:o,props:l}=e;ae(l,n,o),delete e.oldProps,e.tag==="input"&&(n.value=String(((t=e==null?void 0:e.props)==null?void 0:t.value)||""))}(e.children||[]).forEach(o=>oe(o)),Fe(e)},Ye=e=>{const t=e.el;t&&(t.nodeValue=String(e.text))},ae=(e,t,n)=>{const o={...n};g(e||{}).forEach(([l,r])=>{let u=!0;l==="key"||(l==="innerHTML"&&typeof r=="string"?t.innerHTML=r:Y(l,r)?_e(r,Y(l,o.style)?o.style:{},t):we(l,r)?r.value=t:l.match(/^on/)?Xe(t,l,r,o[l]):Te(t)&&l==="checked"?t.checked=!!r:Se(t)&&l==="value"?t.value=r:Ne(t)&&l==="selected"?t.selected=!!r:l&&([u,r]=Je(r),u&&(h.value&&l!=="xmlns"?t.setAttributeNS(null,W(l),r):t.setAttribute(W(l),r)))),u&&delete o[l]}),G(o).forEach(l=>t.removeAttribute(l))},Je=e=>{let t=!0;return typeof e=="boolean"&&(e||(t=!1),e=""),[t,String(e)]},T=e=>{let t;const{type:n,tag:o,text:l,props:r,children:u=[]}=e,d=m(n);return o==="svg"&&(h.value=String(r==null?void 0:r.xmlns)),d?t=ne():n==="element"&&o?t=h.value?document.createElementNS(h.value,o):X(o):n==="text"&&f(l)?t=document.createTextNode(String(l)):t=X("e"),We(u,t),ae(r,t),e.el=t,Le(e),o==="svg"&&(h.value=""),t},We=(e,t)=>{const n=e.reduce((o,l)=>(l.type&&o.appendChild(T(l)),o),ne());t&&n.hasChildNodes()&&t.appendChild(n)},Xe=(e,t,n,o)=>{const l=te(t);o!==n&&(o&&e.removeEventListener(l,o),n&&e.addEventListener(l,n))},_e=(e,t,n)=>{const o={...t},l=n==null?void 0:n.style;l&&(g(e).forEach(([r,u])=>{l[r]=u,delete o[r]}),g(o).forEach(([r])=>l[r]=""))},V=e=>{const t=m(e.type);return e.isRoot&&t?e.wrapElement:t?V(p(e)):e.el},O=(e,t)=>ze(e,Oe[Ve(e)](e,t),t),ze=(e,t,n)=>{const o=nt(e,t,n),l=[o,t,n],r=Qe(...l);return o.children=ot(...l),o.needRerender=r,Ge(o,n,r),o},Ge=(e,t,n)=>{n!=="A"&&t&&(e.el=t.el),n&&["D","R","SR"].includes(n)&&(t!=null&&t.compKey&&(j(t),$(t)),e.oldChildren=t==null?void 0:t.children),e.oldProps=t==null?void 0:t.props},Qe=(e,t,n)=>{const o=n&&n.type,l=z(e),r=!!e.getParent&&p(e).type,u=v(e),d=r==="loop"&&f(u),s=e.type==="text"&&t&&e.text===(n==null?void 0:n.text);let a;return l?a="D":s?a="N":o?t?a=d?"SU":"U":a=d?"SR":"R":a="A",a},Ze=(e,t)=>{e&&t!==e&&(G(e).forEach(n=>delete e[n]),g(t||{}).forEach(([n,o])=>e[n]=o))},et=(e,t)=>{e&&t!==e&&(e.splice(0,e.length),t&&t.forEach(n=>e.push(n)))},tt=(e,t)=>{const{compProps:n,compChild:o}=e,{props:l,children:r}=t;return n&&Ze(n,l),o&&et(o,r),e.reRender&&e.reRender()},nt=(e,t,n)=>N(e)?t&&n?tt(n,e):e.resolve():e,ot=(e,t,n)=>t&&n?rt(e,n):lt(e),lt=e=>(e.children||[]).map(t=>S(O(t),{getParent:()=>e})),rt=(e,t)=>e.type==="loop"&&f(v((e.children||[])[0]))?ut(e,t):(e.children||[]).map((n,o)=>S(O(n,(t.children||[])[o]),{getParent:()=>e})),ut=(e,t)=>{const[n,o]=ct(e,t);return o.map(l=>{const r=l.el;r!=null&&r.parentNode&&r.parentNode.removeChild(r)}),n},ct=(e,t)=>{const n=[...e.children||[]],o=[...t.children||[]];return[n.map(l=>{const r=it(l,o),u=O(l,r);return r&&o.splice(o.indexOf(r),1),u.getParent=()=>e,u}),o]},it=(e,t)=>t.find(n=>v(n)===v(e));let b=[],F=!1;const se=(e,t)=>{i.get(e).up=()=>{b.push({compKey:e,exec:t}),F||(F=!0,queueMicrotask(st))}},at=e=>()=>{var t;const n=(t=i.get(e))==null?void 0:t.up;let o=!1;return n&&(n(),o=!0),o},de=(e,t)=>{(e.children||[]).forEach(n=>{const o=n.compKey;o&&t.push(o),de(n,t)})},st=()=>{let e=[];b.forEach(o=>{var l,r;const u=(r=(l=i.get(o.compKey))==null?void 0:l.vd)==null?void 0:r.value;u&&de(u,e)});const t=[],n=b.reduce((o,l)=>{const{compKey:r}=l;return e.includes(r)||t.includes(r)||(t.push(r),o.push(l)),o},[]);for(;n.length;){const o=n.shift();o&&o.exec()}b=[],F=!1},pe=(e,t=()=>[])=>{i.get(P()).upR.push(()=>J(e,t)),J(e,t)},dt=()=>{var e;const t=(e=i.get(P()))==null?void 0:e.upR;t!=null&&t.length&&t.forEach(n=>n())},A=(e,...t)=>({type:"fragment",children:t}),c=(e,t,...n)=>{const o={value:void 0},l=t||{},r=ge(o,n),u=mt(e,l,r);return N(u)||(o.value=u),u},ve=e=>(t,n)=>e,he=(e,t,n,o)=>{var l;K.value=!0;const r=me(e,t,n),u=O(r,o),{isRoot:d,getParent:s,wrapElement:a,afterElement:x}=o;if(u.getParent=s,!d&&s){const C=((l=s())==null?void 0:l.children)||[],U=C.indexOf(o);C.splice(U,1,u)}else u.isRoot=!0,u.wrapElement=a,u.afterElement=x;K.value=!1,oe(u)},me=(e,t,n)=>({tagName:e.name,ctor:e,props:t,children:n,resolve:(o=t)=>{ke(o);const l=e(t,n)(at(o),t,n),r=pt(l,o,e,t,n),u=r;return se(o,()=>he(e,t,n,u)),Q(o,"vd").value=r,r}}),pt=(e,t,n,o,l)=>{const r=e(o);if(r.reRender)throw new Error('Avoid the case where the first element of a component is a component. Instead of "mount(()=>()=><Component />)" replace it with something like "mount(()=>()=><Fragment><Component /></Fragment>)".');return fe(r,t,n,o,l,vt(e,t,n,o,l)),r},vt=(e,t,n,o,l)=>{const r=()=>ht(e,t,n,o,l,r);return r},ht=(e,t,n,o,l,r)=>{Ue(t),dt();const u=e(o);return se(t,()=>he(n,o,l,u)),fe(u,t,n,o,l,r),Q(t,"vd").value=u,u},fe=(e,t,n,o,l,r)=>{S(e,{compProps:o,compChild:l,ctor:n,tagName:n.name,compKey:t,reRender:r})},mt=(e,t,n)=>{if(_(e))return A(t,...n);if(N(e)){const o=me(e,t,n);return K.value?o:o.resolve()}return{type:"element",tag:e,props:t,children:n}},ge=(e,t)=>t.map(n=>S(ft(n),{getParent:()=>e.value})),ft=e=>{if(e==null||e===!1)return{type:null};if(Array.isArray(e)){const t={value:void 0},n={type:"loop",children:ge(t,e)};return t.value=n,n}else if(typeof e=="string"||typeof e=="number")return{type:"text",text:e};return e},gt=e=>({value:e}),I=(e,t)=>{let n=e;return{get value(){return n},get v(){return n},set value(o){n=o,t()},set v(o){n=o,t()}}},yt=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'")}}},Et=(e,t=()=>{},n=()=>[])=>{ee(()=>(e(),t)),pe(()=>(t&&t(),e),n)},ye=new Map,w={},Pt=e=>{const t=Symbol();return ye.set(t,e),n=>(w[t]??(w[t]=[]),w[t].push(n),xt(t))},xt=e=>new Proxy(ye.get(e),{get(t,n){return t[n]},set(t,n,o){t[n]=o;const l=w[e],r=[];return l.forEach(u=>{u()||r.push(u)}),r.forEach(u=>l.splice(l.indexOf(u),1)),!0}}),Ct=ve((e,t,n)=>{const o=I(1,e),l=I('"destructuring" the "props" value directly from the mount function will cause referencing issues, so if you want to use it, you need to "destructuring" it from the internal function (updater).',e),r=()=>t.parentValue,u=t.parentValue,d=yt(()=>o.v+a+t.parentValue),s=Pt({text:"s",count:0})(e);let a=t.parentValue;const x=gt(null),C=()=>{o.v=o.v+1,a+=1},U=k=>{l.v=k.target.value},Ee=()=>{s.count+=1,s.text+="1"},Pe=()=>(console.log("MOUNTED",x),()=>console.log("UNMOUNT")),xe=()=>(console.log("UPDATE - parentValue"),()=>console.log("UPDATED"));return ee(Pe),pe(xe,()=>[t.parentValue]),Et(()=>console.log("INJECT"),()=>console.log("CLEAN_UP"),()=>[o.v]),({parentValue:k})=>c(A,null,c("div",null,c("textarea",{value:l.v,onInput:U,style:{width:"300px",height:"100px"}})),c("div",null,l.v),c("div",null,c("div",{style:{color:"blue"}},"parentValueFromRef: ",t.parentValue," (working)"),c("div",{style:{color:"blue"}},"parentValueFromFunction: ",r()," (working)"),c("div",{style:{color:"blue"}},"parentValueFromUpdaterDestructuring: ",k," (working)"),c("div",{style:{color:"red"}},"parentValueFromMounterDestructuring: ",u," (not working)")),c("div",null,c("div",{ref:x},"count: ",o.v),c("div",null,"sum: ",o.v+a+t.parentValue),c("div",null,"sum(computed): ",d.v),c("div",null,"notRefValue: ",a),c("div",null,"localStore(text): ",s.text),c("div",null,"localStore(count): ",s.count)),c("button",{onClick:C},"Increase"),c("button",{onClick:Ee},"localStoreUpdate"),n)}),Rt=ve(e=>{const t=I(7,e),n=()=>{t.v=t.v+1},o=()=>{t.v=t.v-1};return()=>c(A,null,c(Ct,{parentValue:t.v},c("button",{onClick:n},"Increase - Parent")),c("button",{onClick:o},"Decrease - Parent"))}),bt=c(Rt,null);je(bt,document.getElementById("root"));
|
|
2
|
-
//# sourceMappingURL=index-35f93159.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-35f93159.js","sources":["../../../dist/lithent.mjs","../../../helper/dist/lithentHelper.mjs","../../src/index.tsx"],"sourcesContent":["const k = (e) => typeof e == \"object\" && !(\"resolve\" in e), x = (e, t) => k(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 k(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 k(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}, U = (e, t) => k(e) && (t == null ? void 0 : t.type) === e.type && (e.type !== \"loop\" || e.type === \"loop\" && C(i((e.children || [])[0])) && C(i((t.children || [])[0]))), i = (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}, y = (e) => e && [\"fragment\", \"loop\"].includes(e), T = (e) => typeof e == \"function\" && !H(e) || typeof e == \"object\" && \"resolve\" in e, H = (e) => typeof e == \"function\" && e === re, J = (e) => k(e) && !e.type, C = (e) => e != null, z = (e, t) => e === \"style\" && typeof t == \"object\", ve = (e, t) => e === \"ref\" && typeof t == \"object\", ye = (e) => e.nodeType === 1 && e.tagName === \"OPTION\", Ce = (e) => e.nodeType === 1 && e.tagName === \"TEXTAREA\", ae = (e) => e.nodeType === 1 && [\"radio\", \"checkbox\"].includes(e.type), ke = (e) => {\n let t = \"et\";\n return T(e) ? t = \"c\" : x(e, \"fragment\") ? t = \"f\" : x(e, \"element\") ? t = \"e\" : x(e, \"loop\") ? t = \"l\" : x(e, \"text\") ? t = \"t\" : J(e) && (t = \"et\"), t;\n}, Re = {\n c: pe,\n l: U,\n t: U,\n e: ie,\n f: he,\n et: U\n}, p = (e) => e.getParent && e.getParent(), a = Object.entries, Y = Object.keys, S = Object.assign, v = { value: \"\" }, R = { value: {} }, A = { value: !1 }, u = /* @__PURE__ */ new WeakMap(), Ee = (e) => {\n u.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}, E = () => R.value, Z = (e, t) => u.get(e)[t], xe = (e) => R.value = e, Pe = (e) => {\n R.value = e, Ee(e);\n}, Te = (e) => {\n u.get(E()).umts.push(e);\n}, Q = (e) => {\n const { compKey: t } = e;\n t && Se(t), K(e);\n}, K = (e) => {\n (e.children || []).forEach((t) => {\n t.compKey ? Q(t) : K(t);\n });\n}, Se = (e) => {\n const t = u.get(e);\n t && (t.umts.forEach((s) => s()), t.umts = [], u.delete(e));\n};\nlet O = [];\nconst B = () => {\n O.forEach((e) => be(e)), O = [];\n}, Ne = (e) => {\n e.compKey && O.push(e);\n}, rt = (e) => u.get(E()).mts.push(e), be = (e) => {\n const { compKey: t } = e;\n if (t) {\n const s = u.get(t), c = s == null ? void 0 : s.mts, n = s == null ? void 0 : s.upS;\n R.value = t, n && (n.value = 0), c && (s.mts = [], c.forEach((r) => {\n const o = r();\n o && Te(o);\n }));\n }\n}, G = (e, t = () => []) => {\n const s = u.get(E()), { upD: c, upS: n } = s, r = c[n.value];\n if (r && Ue(r, t())) {\n const o = e();\n o && s.upCB.push(o);\n }\n c[n.value] = t(), n.value += 1;\n}, Fe = (e) => {\n const { compKey: t } = e;\n if (t) {\n const s = u.get(t), c = s == null ? void 0 : s.upCB, n = s == null ? void 0 : s.upS;\n R.value = t, n && (n.value = 0), e.ctor && c && (s.upCB = [], c.forEach((r) => r()));\n }\n}, Ue = (e, t) => e.length ? e.some((s, c) => s !== t[c]) : !0, X = (e) => e === \"className\" ? \"class\" : e, V = (e) => e.replace(/^on(.*)/, (t, s) => s.toLowerCase()), g = () => new DocumentFragment(), $ = (e) => document.createElement(e), ot = (e, t, s) => {\n t ?? (t = document.body), e.isRoot = !0, e.wrapElement = t;\n const c = N(e);\n return s ? (e.afterElement = s, t.insertBefore(c, s)) : t.appendChild(c), B(), () => {\n var r;\n const n = (r = u.get(e.compProps || {})) == null ? void 0 : r.vd.value;\n n && (Q(n), I(n), Ae(n));\n };\n}, m = (e) => {\n const { needRerender: t } = e;\n t && t !== \"N\" && {\n A: q,\n D: j,\n R: Le,\n U: Me,\n SR: D,\n SU: Oe\n }[t](e);\n}, I = (e) => {\n e.props && e.el && te(e.props, e.el), (e.children || []).forEach((t) => {\n I(t);\n });\n}, Ae = (e) => {\n w(e, e.wrapElement);\n}, j = (e) => {\n e.oldProps && e.el && te(e.oldProps, e.el), w(\n e,\n b(p(e))\n );\n}, w = (e, t) => {\n var s, c;\n t && e.el && (((s = e.el) == null ? void 0 : s.nodeType) === 1 ? t.removeChild(e.el) : ((c = e.el) == null ? void 0 : c.nodeType) === 11 && W(e, t), delete e.el);\n}, W = (e, t) => {\n ((e == null ? void 0 : e.oldChildren) || (e == null ? void 0 : e.children) || []).forEach((s) => {\n var c, n;\n ((c = s.el) == null ? void 0 : c.nodeType) === 1 ? t.removeChild(s == null ? void 0 : s.el) : ((n = s.el) == null ? void 0 : n.nodeType) === 11 && W(s, t);\n });\n}, D = (e) => {\n j(e), q(e);\n}, Oe = (e) => {\n j(e), q(e, e.el);\n}, q = (e, t) => {\n t || (t = N(e));\n const s = p(e);\n if (s.type) {\n const c = b(s), r = s.type === \"loop\" ? L(s, p(s)) : L(e, s);\n t && c && (r ? c.insertBefore(t, r) : c.appendChild(t), B());\n }\n}, L = (e, t) => {\n const s = t.children || [], n = s.indexOf(e) + 1, r = s.slice(n), o = ee(r), l = t.type || \"\";\n if (o)\n return o;\n if (!t.isRoot && y(l))\n return L(t, p(t));\n if (t.isRoot && y(l) && t.afterElement)\n return t.afterElement;\n}, ee = (e) => e.reduce(\n (t, s) => {\n const c = s.type, n = s.el, r = c && y(c);\n return t || (r ? ee(s.children || []) : n && n.nodeType !== 11 ? n : t);\n },\n void 0\n), Le = (e) => {\n const t = p(e), s = e.el;\n if (t.type && s)\n if (s.nodeType === 11)\n D(e);\n else {\n const c = b(t), n = N(e);\n c && c.replaceChild(n, s), B();\n }\n}, te = (e, t) => {\n a(e || {}).forEach(([s, c]) => {\n s.match(/^on/) && t.removeEventListener(\n V(s),\n c\n );\n });\n}, Me = (e) => {\n var s;\n const t = e.el;\n if (e.type === \"text\") {\n Qe(e);\n return;\n }\n if (t) {\n const { oldProps: c, props: n } = e;\n se(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) => m(c)), Fe(e);\n}, Qe = (e) => {\n const t = e.el;\n t && (t.nodeValue = String(e.text));\n}, se = (e, t, s) => {\n const c = { ...s };\n a(e || {}).forEach(([n, r]) => {\n let o = !0;\n n === \"key\" || (n === \"innerHTML\" && typeof r == \"string\" ? t.innerHTML = r : z(n, r) ? qe(\n r,\n z(n, c.style) ? c.style : {},\n t\n ) : ve(n, r) ? r.value = t : n.match(/^on/) ? je(\n t,\n n,\n r,\n c[n]\n ) : ae(t) && n === \"checked\" ? t.checked = !!r : Ce(t) && n === \"value\" ? t.value = r : ye(t) && n === \"selected\" ? t.selected = !!r : n && ([o, r] = Be(r), o && (v.value && n !== \"xmlns\" ? t.setAttributeNS(\n null,\n X(n),\n r\n ) : t.setAttribute(\n X(n),\n r\n )))), o && delete c[n];\n }), Y(c).forEach(\n (n) => t.removeAttribute(n)\n );\n}, Be = (e) => {\n let t = !0;\n return typeof e == \"boolean\" && (e || (t = !1), e = \"\"), [t, String(e)];\n}, N = (e) => {\n let t;\n const { type: s, tag: c, text: n, props: r, children: o = [] } = e, l = y(s);\n return c === \"svg\" && (v.value = String(r == null ? void 0 : r.xmlns)), l ? t = g() : s === \"element\" && c ? t = v.value ? document.createElementNS(v.value, c) : $(c) : s === \"text\" && C(n) ? t = document.createTextNode(String(n)) : t = $(\"e\"), Ie(o, t), se(r, t), e.el = t, Ne(e), c === \"svg\" && (v.value = \"\"), t;\n}, Ie = (e, t) => {\n const s = e.reduce(\n (c, n) => (n.type && c.appendChild(N(n)), c),\n g()\n );\n t && s.hasChildNodes() && t.appendChild(s);\n}, je = (e, t, s, c) => {\n const n = V(t);\n c !== s && (c && e.removeEventListener(n, c), s && e.addEventListener(n, s));\n}, qe = (e, t, s) => {\n const c = { ...t }, n = s == null ? void 0 : s.style;\n n && (a(e).forEach(([r, o]) => {\n n[r] = o, delete c[r];\n }), a(c).forEach(\n ([r]) => n[r] = \"\"\n ));\n}, b = (e) => {\n const t = y(e.type);\n return e.isRoot && t ? e.wrapElement : t ? b(p(e)) : e.el;\n}, F = (e, t) => _e(\n e,\n Re[ke(e)](e, t),\n t\n), _e = (e, t, s) => {\n const c = Je(e, t, s), n = [\n c,\n t,\n s\n ], r = Ge(...n);\n return c.children = Ye(...n), c.needRerender = r, ze(c, s, r), c;\n}, ze = (e, t, s) => {\n s !== \"A\" && t && (e.el = t.el), s && [\"D\", \"R\", \"SR\"].includes(s) && (t != null && t.compKey && (Q(t), I(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 = J(e), o = !!e.getParent && p(e).type, l = i(e), h = o === \"loop\" && C(l), d = e.type === \"text\" && t && e.text === (s == null ? void 0 : s.text);\n let f;\n return n ? f = \"D\" : d ? f = \"N\" : c ? t ? f = h ? \"SU\" : \"U\" : f = h ? \"SR\" : \"R\" : f = \"A\", f;\n}, Xe = (e, t) => {\n e && t !== e && (Y(e).forEach((s) => delete e[s]), a(t || {}).forEach(([s, c]) => e[s] = c));\n}, $e = (e, t) => {\n e && t !== e && (e.splice(0, e.length), t && t.forEach((s) => e.push(s)));\n}, He = (e, t) => {\n const { compProps: s, compChild: c } = e, { props: n, children: r } = t;\n return s && Xe(s, n), c && $e(c, r), e.reRender && e.reRender();\n}, Je = (e, t, s) => T(e) ? t && s ? He(s, e) : e.resolve() : e, Ye = (e, t, s) => t && s ? Ke(e, s) : Ze(e), Ze = (e) => (e.children || []).map(\n (t) => S(F(t), { getParent: () => e })\n), Ke = (e, t) => e.type === \"loop\" && C(i((e.children || [])[0])) ? Ve(e, t) : (e.children || []).map(\n (s, c) => S(F(s, (t.children || [])[c]), {\n getParent: () => e\n })\n), Ve = (e, t) => {\n const [s, c] = ge(\n e,\n t\n );\n return c.map((n) => {\n const r = n.el;\n r != null && r.parentNode && r.parentNode.removeChild(r);\n }), s;\n}, ge = (e, t) => {\n const s = [...e.children || []], c = [...t.children || []];\n return [s.map((r) => {\n const o = me(r, c), l = F(r, o);\n return o && c.splice(c.indexOf(o), 1), l.getParent = () => e, l;\n }), c];\n}, me = (e, t) => t.find(\n (s) => i(s) === i(e)\n);\nlet P = [], M = !1;\nconst ce = (e, t) => {\n u.get(e).up = () => {\n P.push({\n compKey: e,\n exec: t\n }), M || (M = !0, queueMicrotask(We));\n };\n}, we = (e) => () => {\n var c;\n const t = (c = u.get(e)) == null ? void 0 : c.up;\n let s = !1;\n return t && (t(), s = !0), s;\n}, ne = (e, t) => {\n (e.children || []).forEach((s) => {\n const c = s.compKey;\n c && t.push(c), ne(s, t);\n });\n}, We = () => {\n let e = [];\n P.forEach((c) => {\n var r, o;\n const n = (o = (r = u.get(c.compKey)) == null ? void 0 : r.vd) == null ? void 0 : o.value;\n n && ne(n, e);\n });\n const t = [], s = P.reduce((c, n) => {\n const { compKey: r } = n;\n return e.includes(r) || t.includes(r) || (t.push(r), c.push(n)), c;\n }, []);\n for (; s.length; ) {\n const c = s.shift();\n c && c.exec();\n }\n P = [], M = !1;\n}, ut = (e, t = () => []) => {\n u.get(E()).upR.push(() => G(e, t)), G(e, t);\n}, De = () => {\n var t;\n const e = (t = u.get(E())) == null ? void 0 : t.upR;\n e != null && e.length && e.forEach((s) => s());\n}, re = (e, ...t) => ({\n type: \"fragment\",\n children: t\n}), lt = (e, t, ...s) => {\n const c = { value: void 0 }, n = t || {}, r = fe(c, s), o = ct(e, n, r);\n return T(o) || (c.value = o), o;\n}, ft = (e) => (t, s) => e, oe = (e, t, s, c) => {\n var f;\n A.value = !0;\n const n = ue(e, t, s), r = F(n, c), { isRoot: o, getParent: l, wrapElement: h, afterElement: d } = c;\n if (r.getParent = l, !o && l) {\n const _ = ((f = l()) == null ? void 0 : f.children) || [], de = _.indexOf(c);\n _.splice(de, 1, r);\n } else\n r.isRoot = !0, r.wrapElement = h, r.afterElement = d;\n A.value = !1, m(r);\n}, ue = (e, t, s) => ({ tagName: e.name, ctor: e, props: t, children: s, resolve: (o = t) => {\n Pe(o);\n const h = e(t, s)(we(o), t, s), d = et(\n h,\n o,\n e,\n t,\n s\n ), f = d;\n return ce(\n o,\n () => oe(e, t, s, f)\n ), Z(o, \"vd\").value = d, d;\n} }), et = (e, t, s, c, n) => {\n const r = e(c);\n if (r.reRender)\n throw new Error(\n 'Avoid the case where the first element of a component is a component. Instead of \"mount(()=>()=><Component />)\" replace it with something like \"mount(()=>()=><Fragment><Component /></Fragment>)\".'\n );\n return le(\n r,\n t,\n s,\n c,\n n,\n tt(e, t, s, c, n)\n ), r;\n}, tt = (e, t, s, c, n) => {\n const r = () => st(e, t, s, c, n, r);\n return r;\n}, st = (e, t, s, c, n, r) => {\n xe(t), De();\n const o = e(c);\n return ce(\n t,\n () => oe(s, c, n, o)\n ), le(o, t, s, c, n, r), Z(t, \"vd\").value = o, o;\n}, le = (e, t, s, c, n, r) => {\n S(e, {\n compProps: c,\n compChild: n,\n ctor: s,\n tagName: s.name,\n compKey: t,\n reRender: r\n });\n}, ct = (e, t, s) => {\n if (H(e))\n return re(t, ...s);\n if (T(e)) {\n const c = ue(e, t, s);\n return A.value ? c : c.resolve();\n }\n return {\n type: \"element\",\n tag: e,\n props: t,\n children: s\n };\n}, fe = (e, t) => t.map(\n (s) => S(nt(s), { getParent: () => e.value })\n), nt = (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: fe(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}, dt = (e) => ({ value: e }), pt = () => Promise.resolve();\nexport {\n re as Fragment,\n lt as h,\n ft as mount,\n rt as mountCallback,\n pt as nextTick,\n dt as ref,\n ot as render,\n ut as updateCallback\n};\n//# sourceMappingURL=lithent.mjs.map\n","import { mountCallback as a, updateCallback as p, nextTick as h, render as g } from \"lithent\";\nconst f = (r, t) => {\n let e = r;\n return {\n get value() {\n return e;\n },\n get v() {\n return e;\n },\n set value(n) {\n e = n, t();\n },\n set v(n) {\n e = n, t();\n }\n };\n}, m = (r) => {\n let t = r;\n return {\n get value() {\n return t();\n },\n get v() {\n return t();\n },\n set value(e) {\n throw new Error(\"You can't change 'computed'\");\n },\n set v(e) {\n throw new Error(\"You can't change 'computed'\");\n }\n };\n}, d = (r, t = () => {\n}, e = () => []) => {\n a(() => (r(), t)), p(() => (t && t(), r), e);\n}, l = /* @__PURE__ */ new Map(), u = {}, x = (r) => {\n const t = Symbol();\n return l.set(t, r), (e) => (u[t] ?? (u[t] = []), u[t].push(e), i(t));\n}, i = (r) => new Proxy(l.get(r), {\n get(t, e) {\n return t[e];\n },\n set(t, e, n) {\n t[e] = n;\n const c = u[r], s = [];\n return c.forEach((o) => {\n o() || s.push(o);\n }), s.forEach(\n (o) => c.splice(c.indexOf(o), 1)\n ), !0;\n }\n}), E = (r, t, e) => {\n let n = () => {\n };\n return h().then(() => {\n n = g(r(), t, e);\n }), () => n();\n};\nexport {\n m as computed,\n d as effect,\n E as nextTickRender,\n f as state,\n x 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":["k","x","pe","he","s","c","ie","U","C","i","y","T","H","re","J","z","ve","ye","Ce","ae","ke","Re","a","Y","v","R","A","u","Ee","E","Z","xe","Pe","Te","Q","Se","K","O","be","Ne","rt","n","o","G","Ue","X","V","g","$","ot","N","r","I","Ae","m","q","j","Le","Me","D","Oe","te","w","b","W","L","ee","l","t","Qe","se","qe","je","Be","Ie","F","_e","Je","Ge","Ye","ze","h","d","f","Xe","$e","He","Ke","Ze","Ve","ge","me","P","M","ce","We","we","ne","ut","De","e","lt","fe","ct","ft","oe","ue","_","de","et","le","tt","st","nt","dt","p","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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"}
|