New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

@dlightjs/dlight

Package Overview
Dependencies
Maintainers
2
Versions
274
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@dlightjs/dlight - npm Package Compare versions

Comparing version 1.0.0-alpha.52 to 1.0.0-alpha.53

2

dist/index.js

@@ -1,2 +0,2 @@

import{Store as N}from"@dlightjs/store";"global"in N||(typeof window<"u"?N.global=window:typeof global<"u"?N.global=global:N.global={});"document"in N||typeof document<"u"&&(N.document=document);var i=N;function P(s){i.global=s}function T(s){i.document=s}var c={Comp:0,For:1,Cond:2,Env:3,Exp:4,Subview:5},h=class{_$dlNodeType;constructor(t){this._$dlNodeType=t}get _$el(){return h.toEls(this._$nodes)}static toEls(t){let e=[];return this.loopShallowEls(t,n=>{e.push(n)}),e}static loopShallowEls(t,e){t.forEach(n=>{if(!("_$dlNodeType"in n))return e(n);n._$nodes&&h.loopShallowEls(n._$nodes,e)})}static addParentEl(t,e){t.forEach(n=>{"_$dlNodeType"in n&&(n._$parentEl=e,n._$nodes&&h.addParentEl(n._$nodes,e))})}static getFlowIndexFromNodes(t,e){let n=0,o=[...t];for(;o.length>0;){let r=o.shift();if(r===e)break;"_$dlNodeType"in r?r._$nodes&&o.unshift(...r._$nodes):n++}return n}static appendNodesWithSibling(t,e,n){return n?this.insertNodesBefore(t,e,n):this.appendNodes(t,e)}static appendNodesWithIndex(t,e,n,o){return o=o??e.childNodes.length,o!==n?this.insertNodesBefore(t,e,e.childNodes[n]):this.appendNodes(t,e)}static insertNodesBefore(t,e,n){let o=0;return this.loopShallowEls(t,r=>{e.insertBefore(r,n),o++}),o}static appendNodes(t,e){let n=0;return this.loopShallowEls(t,o=>{e.appendChild(o),n++}),n}static addWillUnmount(t,e){let n=i.global.WillUnmountStore,o=n[n.length-1];o&&o.push(e.bind(null,t))}static addDidUnmount(t,e){let n=i.global.DidUnmountStore,o=n[n.length-1];o&&o.push(e.bind(null,t))}static addDidMount(t,e){i.global.DidMountStore.push(e.bind(null,t))}static runDidMount(){let t=i.global.DidMountStore;for(let e=t.length-1;e>=0;e--)t[e]();i.global.DidMountStore=[]}};function O(s,t){Object.assign(s.style,t)}function A(s,t){Object.assign(s.dataset,t)}function S(s,t,e){let n=`$${t}`;n in s&&s[n]===e||(s[t]=e,s[n]=e)}function C(s,t){Object.entries(t).forEach(([e,n])=>{S(s,e,n)})}function L(s,t,e){let n=`$${t}`;n in s&&s[n]===e||(s.setAttribute(t,e),s[n]=e)}function H(s,t){Object.entries(t).forEach(([e,n])=>{L(s,e,n)})}function j(s,t,e){let n=s[`$on${t}`];n&&s.removeEventListener(t,n),s.addEventListener(t,e),s[`$on${t}`]=e}function R(s){let t=i.document.createElement("template");t.innerHTML=s;let e=t.content.firstChild;return()=>e.cloneNode(!0)}function X(s){return i.document.createElement(s)}function F(s,t,e){s._$nodes||(s._$nodes=Array.from(s.childNodes)),s._$nodes.splice(e,0,t);let n=h.getFlowIndexFromNodes(s._$nodes,t);h.appendNodesWithIndex([t],s,n),h.addParentEl([t],s)}function D(s,t,e){if(t==="style"){O(s,e);return}if(t==="dataset"){A(s,e);return}if(t!=="element"){if(t==="prop"){C(s,e);return}if(t==="attr"){H(s,e);return}if(t==="innerHTML"){S(s,"innerHTML",e);return}if(t!=="forwardProp"){if(t.startsWith("on")){j(s,t.slice(2).toLowerCase(),e);return}L(s,t,e)}}}var _=class extends h{constructor(){super(c.Comp)}_$init(t,e,n,o){this._$notInitd=!0,o&&o._$addForwardProps(this),e!==null&&this._$setContent(e),t&&Object.entries(t).forEach(([r,a])=>{this._$setProp(r,a)}),n&&(this._$children=n),i.global.DLEnvStore&&Object.entries(i.global.DLEnvStore.envs).forEach(([r,[a,p]])=>{p.addNode(this),this._$initEnv(r,a,p)}),this._$callUpdatesBeforeInit(),this.didMount&&h.addDidMount(this,this.didMount.bind(this)),this.willUnmount&&h.addWillUnmount(this,this.willUnmount.bind(this)),this.didUnmount&&h.addDidUnmount(this,this.didUnmount.bind(this)),this.willMount?.(),this._$nodes=this.View?.()??[]}_$callUpdatesBeforeInit(){let t=Object.getOwnPropertyNames(Object.getPrototypeOf(this)),e=Object.getOwnPropertyNames(this);[...t,...e].forEach(o=>{if(o.startsWith("$w$"))return this[o.slice(3)]();o.startsWith("$f$")&&(this[`$${o.slice(3)}`]=this[o])}),delete this._$notInitd}_$setForwardProp(t,e){if(t in this){this[t]=e;return}this._$forwardPropsId.push(t);let n=`$${t}`;this[n]=e,Object.defineProperty(this,t,{get(){return this[n]},set(o){this[n]!==o&&(this[n]=o,this._$forwardPropsSet?.forEach(r=>{r._$dlNodeType===c.Comp&&r._$setProp(t,o),r instanceof HTMLElement&&D(r,t,o)}))}})}_$addForwardProps(t){this._$forwardPropsSet.add(t),this._$forwardPropsId.forEach(e=>{let n=this[e];this._$forwardPropsSet?.forEach(o=>{o._$dlNodeType===c.Comp&&("_$forwardProps"in o&&o._$forwardPropsId.push(e),o._$setProp(e,n)),o instanceof HTMLElement&&D(o,e,n)})}),h.addWillUnmount(t,this._$forwardPropsSet.delete.bind(this._$forwardPropsSet,t))}_$setProp(t,e){"_$forwardProps"in this&&this._$setForwardProp(t,e),`$p$${t}`in this&&(this[t]=e)}_$initEnv(t,e,n){`$e$${t}`in this&&(this[t]=e,this[`$en$${t}`]=n)}_$updateEnv(t,e,n){`$e$${t}`in this&&n===this[`$en$${t}`]&&this[t]!==e&&(this[t]=e)}_$setContent(t){let e=this._$contentKey;e&&this[e]!==t&&(this[e]=t)}_$updateProp(t,e){let n=`$${t}`;if(this[n]===e)return;let o=this[n];this[n]=e,this._$updateDerived(t),this._$updateView(t,o,e)}_$updateDerived(t){"_$notInitd"in this||this[`$s$${t}`]?.forEach(e=>{`$w$${e}`in this?this[e]():this[`$${e}`]=this[`$f$${e}`]})}_$updateView(t,e,n){let o=this[`$$${t}`];o&&this._$update?.(o,t,e,n)}},et=_;function nt(s,t){s._$updateDerived(t),s._$updateView(t)}var v=class{constructor(){this.envs={},this.currentEnvNodes=[]}addEnvNode(t){this.currentEnvNodes.push(t),this.mergeEnvs()}replaceEnvNodes(t){this.currentEnvNodes=t,this.mergeEnvs()}removeEnvNode(){this.currentEnvNodes.pop(),this.mergeEnvs()}mergeEnvs(){this.envs={},this.currentEnvNodes.forEach(t=>{Object.entries(t.envs).forEach(([e,n])=>{this.envs[e]=[n,t]})})}},I=class extends h{constructor(t){super(c.Env),"DLEnvStore"in i.global||(i.global.DLEnvStore=new v),this.envs=t,this.updateNodes=new Set,i.global.DLEnvStore.addEnvNode(this)}updateEnv(t,e){this.envs[t]=e,i.global.DLEnvStore.currentEnvNodes.includes(this)&&i.global.DLEnvStore.mergeEnvs(),this.updateNodes.forEach(n=>{n._$updateEnv(t,e,this)})}addNode(t){this.updateNodes.add(t),h.addWillUnmount(t,this.updateNodes.delete.bind(this.updateNodes,t))}initNodes(t){this._$nodes=t,i.global.DLEnvStore.removeEnvNode()}};function ht(s){return i.document.createTextNode(s)}function ut(s,t){s.textContent!==t&&(s.textContent=t)}var W=class{propViewFunc;dlUpdateFunc=new Set;constructor(t){this.propViewFunc=t}build(){let t,e=o=>{o.initd=!0,t=o,this.dlUpdateFunc.add(o)},n=this.propViewFunc(e);return n.length===0?[]:(t&&h.addWillUnmount(n[0],this.dlUpdateFunc.delete.bind(this.dlUpdateFunc,t)),n)}update(...t){this.dlUpdateFunc.forEach(e=>{if(e.initd){delete e.initd;return}e(...t)})}};var y=class extends h{constructor(){super(c.Subview)}};var l=class extends h{constructor(t){super(t),i.global.DLEnvStore&&i.global.DLEnvStore.currentEnvNodes.length>0&&(this.savedEnvNodes=[...i.global.DLEnvStore.currentEnvNodes])}initNewNodes(t){h.addParentEl(t,this._$parentEl)}geneNewNodesInEnv(t){if(!this.savedEnvNodes){let o=t();return this.initNewNodes(o),o}let e=i.global.DLEnvStore.currentEnvNodes;i.global.DLEnvStore.replaceEnvNodes(this.savedEnvNodes);let n=t();return i.global.DLEnvStore.replaceEnvNodes(e),this.initNewNodes(n),n}initUnmountStore(){i.global.WillUnmountStore.push([]),i.global.DidUnmountStore.push([])}removeNodes(t){h.loopShallowEls(t,e=>{this._$parentEl.removeChild(e)})}};var $=class extends l{array;keys;nodeFunc;depNum;nodesMap=new Map;updateMap=new Map;willUnmountMap=new Map;didUnmountMap=new Map;get _$nodes(){let t=[];for(let e=0;e<this.array.length;e++)t.push(...this.nodesMap.get(this.keys?.[e]??e));return t}constructor(t,e,n){super(c.For),this.array=[...t],this.keys=n,this.depNum=e}addNodeFunc(t){this.nodeFunc=t,this.array.forEach((e,n)=>{this.initUnmountStore();let o=this.keys?.[n]??n,r=t(e,this.updateMap,o);this.nodesMap.set(o,r),this.setUnmountMap(o)}),$.addWillUnmount(this,this.runAllWillUnmount.bind(this)),$.addDidUnmount(this,this.runAllDidUnmount.bind(this))}update(t,...e){if(!(t&this.depNum)){this.updateArgs=e;for(let n=0;n<this.array.length;n++)this.updateItem(n,t)}}updateItem(t,e){let n=this.keys?.[t]??t;this.updateMap.get(n)?.(e??this.depNum,...this.updateArgs,this.array[t])}updateArray(t,e,n,o,r){if(this.updateArgs=[e,n,o],r){this.updateWithKey(t,r);return}this.updateWithOutKey(t)}getNewNodes(t,e){this.initUnmountStore();let n=this.geneNewNodesInEnv(()=>this.nodeFunc(this.array[t],this.updateMap,e));return this.setUnmountMap(e),this.nodesMap.set(e,n),n}setUnmountMap(t){let e=i.global.WillUnmountStore.pop();e&&e.length>0&&this.willUnmountMap.set(t,e);let n=i.global.DidUnmountStore.pop();n&&n.length>0&&this.didUnmountMap.set(t,n)}runAllWillUnmount(){this.willUnmountMap.forEach(t=>{for(let e=0;e<t.length;e++)t[e]?.()})}runAllDidUnmount(){this.didUnmountMap.forEach(t=>{for(let e=t.length-1;e>=0;e--)t[e]?.()})}runWillUnmount(t){let e=this.willUnmountMap.get(t);if(e)for(let n=0;n<e.length;n++)e[n]?.()}runDidUnmount(t){let e=this.didUnmountMap.get(t);if(e)for(let n=e.length-1;n>=0;n--)e[n]?.()}removeNodes(t,e){this.runWillUnmount(e),super.removeNodes(t),this.runDidUnmount(e),this.willUnmountMap.delete(e),this.didUnmountMap.delete(e),this.updateMap.delete(e),this.nodesMap.delete(e)}updateWithOutKey(t){let e=this.array.length,n=t.length;if(this.array=[...t],e===n){for(let r=0;r<this.array.length;r++)this.updateItem(r);return}let o=this._$parentEl;if(e<n){let r=l.getFlowIndexFromNodes(o._$nodes,this),a=o.childNodes.length;for(let p=0;p<n;p++){if(p<e){r+=l.getFlowIndexFromNodes(this.nodesMap.get(p)),this.updateItem(p);continue}let f=this.getNewNodes(p,p);l.appendNodesWithIndex(f,o,r,a),l.runDidMount()}return}for(let r=0;r<n;r++)this.updateItem(r);for(let r=n;r<e;r++){let a=this.nodesMap.get(r);this.removeNodes(a,r)}}updateWithKey(t,e){if(e.length!==new Set(e).size)throw new Error("DLight: Duplicate keys in for loop are not allowed");let n=this.keys;if(this.array=[...t],this.keys=e,$.arrayEqual(n,this.keys)){for(let d=0;d<this.array.length;d++)this.updateItem(d);return}let o=this._$parentEl;if(this.keys.length===0){let d=o._$nodes??[];if(d.length===1&&d[0]===this)this.runAllWillUnmount(),o.innerHTML="",this.runAllDidUnmount();else for(let u=0;u<n.length;u++)this.removeNodes(this.nodesMap.get(u),n[u]);this.nodesMap.clear(),this.willUnmountMap.clear(),this.didUnmountMap.clear(),this.updateMap.clear();return}let r=l.getFlowIndexFromNodes(o._$nodes,this);if(n.length===0){let d=o.childNodes[r];for(let u=0;u<this.keys.length;u++){let m=this.getNewNodes(u,this.keys[u]);l.appendNodesWithSibling(m,o,d),l.runDidMount()}return}let a=[];for(let d=0;d<n.length;d++){let u=n[d];if(this.keys.includes(u)){a.push(u);continue}this.removeNodes(this.nodesMap.get(u),u)}let p=o.childNodes.length,f=r;for(let d=0;d<this.keys.length;d++){let u=this.keys[d];if(a.indexOf(u)!==-1){f+=l.getFlowIndexFromNodes(this.nodesMap.get(u)),this.updateMap.get(u)?.(this.depNum,...this.updateArgs,this.array[d]);continue}let E=this.getNewNodes(d,u);a.splice(d,0,u);let b=l.appendNodesWithIndex(E,o,f,p);l.runDidMount(),f+=b,p+=b}if($.arrayEqual(this.keys,a))return;f=r;let M=[];for(let d=0;d<this.keys.length;d++){let u=this.keys[d],m=a.indexOf(u),E=M[d];if(E){let x=l.appendNodesWithIndex(E,o,f+l.getFlowIndexFromNodes(E),p);f+=x,p+=x,M[d]=void 0}else if(m===d){f+=l.getFlowIndexFromNodes(this.nodesMap.get(u));continue}else{M[this.keys.indexOf(a[d])]=this.nodesMap.get(this.keys[m]);let x=l.appendNodesWithIndex(this.nodesMap.get(u),o,f,p);f+=x,p+=x}let b=a[d];a[d]=a[m],a[m]=b}}static arrayEqual(t,e){return t.length!==e.length?!1:t.every((n,o)=>n===e[o])}};var w=class extends l{willUnmountFuncs=[];didUnmountFuncs=[];setUnmountFuncs(){this.willUnmountFuncs=i.global.WillUnmountStore.pop(),this.didUnmountFuncs=i.global.DidUnmountStore.pop()}runWillUnmount(){for(let t=0;t<this.willUnmountFuncs.length;t++)this.willUnmountFuncs[t]()}runDidUnmount(){for(let t=this.didUnmountFuncs.length-1;t>=0;t--)this.didUnmountFuncs[t]()}removeNodes(t){this.runWillUnmount(),super.removeNodes(t),this.runDidUnmount()}geneNewNodesInEnv(t){this.initUnmountStore();let e=super.geneNewNodesInEnv(t);return this.setUnmountFuncs(),e}};var g=class extends w{nodesFunc;constructor(t){super(c.Exp),this.nodesFunc=t,this.initUnmountStore(),this._$nodes=g.formatNodes(t()),this.setUnmountFuncs(),g.addWillUnmount(this,this.runWillUnmount.bind(this)),g.addDidUnmount(this,this.runDidUnmount.bind(this))}update(){this.removeNodes(this._$nodes);let t=this.geneNewNodesInEnv(()=>g.formatNodes(this.nodesFunc()));if(t.length===0){this._$nodes=[];return}let e=this._$parentEl,n=MutableNode.getFlowIndexFromNodes(e._$nodes,this),o=e.childNodes[n];MutableNode.appendNodesWithSibling(t,e,o),MutableNode.runDidMount(),this._$nodes=t}static formatNodes(t){return Array.isArray(t)||(t=[t]),t.flat(1).filter(e=>e!=null&&typeof e!="boolean").map(e=>typeof e=="string"||typeof e=="number"||typeof e=="bigint"?i.document.createTextNode(`${e}`):"propViewFunc"in e?e.build():e).flat(1)}};var U=class extends w{condFunc;cond;depNum;constructor(t){super(c.Cond),this.depNum=t}addCondFunc(t){this.cond=-1,this.condFunc=t,this.initUnmountStore(),this._$nodes=this.condFunc(this),this.setUnmountFuncs(),U.addWillUnmount(this,this.runWillUnmount.bind(this)),U.addDidUnmount(this,this.runDidUnmount.bind(this))}updateCond(...t){let e=this.geneNewNodesInEnv(()=>this.condFunc(this));if(this.didntChange)return this.didntChange=!1,this.updateFunc?.(this.depNum,...t),this._$nodes;if(this._$nodes&&this._$nodes.length>0&&this.removeNodes(this._$nodes),e.length===0)return this._$nodes=[],this._$nodes;let n=this._$parentEl,o=MutableNode.getFlowIndexFromNodes(n._$nodes,this),r=n.childNodes[o];return MutableNode.appendNodesWithSibling(e,n,r),MutableNode.runDidMount(),this._$nodes=e,this._$nodes}update(t,...e){t&this.depNum||this.updateFunc?.(t,...e)}};function K(){i.global.DidMountStore=[],i.global.WillUnmountStore=[],i.global.DidUnmountStore=[]}function Tt(s,t){let e=s;if(typeof s=="string"){let o=i.document.getElementById(s);if(o)e=o;else throw new Error(`DLight: Element with id ${s} not found`)}K(),e.innerHTML="";let n=new t;n._$init(),F(e,n,0),h.runDidMount()}function Ot(s,t){return s()}function V(s){return s}var At=V;export{At as $,_ as CompNode,U as CondNode,I as EnvNode,v as EnvStoreClass,g as ExpNode,$ as ForNode,W as PropView,y as SubViewNode,et as View,X as createElement,R as createTemplate,ht as createTextNode,V as escape,D as forwardHTMLProp,F as insertNode,Ot as manual,Tt as render,A as setDataset,T as setDocument,j as setEvent,P as setGlobal,L as setHTMLAttr,H as setHTMLAttrs,S as setHTMLProp,C as setHTMLProps,O as setStyle,nt as update,ut as updateText};
import{Store as $}from"@dlightjs/store";"global"in $||(typeof window<"u"?$.global=window:typeof global<"u"?$.global=global:$.global={});"document"in $||typeof document<"u"&&($.document=document);var i=$;function P(s){i.global=s}function T(s){i.document=s}var c={Comp:0,For:1,Cond:2,Env:3,Exp:4,Subview:5},h=class{_$dlNodeType;constructor(t){this._$dlNodeType=t}get _$el(){return h.toEls(this._$nodes)}static toEls(t){let e=[];return this.loopShallowEls(t,n=>{e.push(n)}),e}static loopShallowEls(t,e){t.forEach(n=>{if(!("_$dlNodeType"in n))return e(n);n._$nodes&&h.loopShallowEls(n._$nodes,e)})}static addParentEl(t,e){t.forEach(n=>{"_$dlNodeType"in n&&(n._$parentEl=e,n._$nodes&&h.addParentEl(n._$nodes,e))})}static getFlowIndexFromNodes(t,e){let n=0,o=[...t];for(;o.length>0;){let r=o.shift();if(r===e)break;"_$dlNodeType"in r?r._$nodes&&o.unshift(...r._$nodes):n++}return n}static appendNodesWithSibling(t,e,n){return n?this.insertNodesBefore(t,e,n):this.appendNodes(t,e)}static appendNodesWithIndex(t,e,n,o){return o=o??e.childNodes.length,o!==n?this.insertNodesBefore(t,e,e.childNodes[n]):this.appendNodes(t,e)}static insertNodesBefore(t,e,n){let o=0;return this.loopShallowEls(t,r=>{e.insertBefore(r,n),o++}),o}static appendNodes(t,e){let n=0;return this.loopShallowEls(t,o=>{e.appendChild(o),n++}),n}static addWillUnmount(t,e){let n=i.global.WillUnmountStore,o=n[n.length-1];o&&o.push(e.bind(null,t))}static addDidUnmount(t,e){let n=i.global.DidUnmountStore,o=n[n.length-1];o&&o.push(e.bind(null,t))}static addDidMount(t,e){i.global.DidMountStore||(i.global.DidMountStore=[]),i.global.DidMountStore.push(e.bind(null,t))}static runDidMount(){let t=i.global.DidMountStore;if(!(!t||t.length===0)){for(let e=t.length-1;e>=0;e--)t[e]();i.global.DidMountStore=[]}}};function O(s,t){Object.assign(s.style,t)}function A(s,t){Object.assign(s.dataset,t)}function S(s,t,e){let n=`$${t}`;n in s&&s[n]===e||(s[t]=e,s[n]=e)}function C(s,t){Object.entries(t).forEach(([e,n])=>{S(s,e,n)})}function _(s,t,e){let n=`$${t}`;n in s&&s[n]===e||(s.setAttribute(t,e),s[n]=e)}function H(s,t){Object.entries(t).forEach(([e,n])=>{_(s,e,n)})}function K(s,t,e){let n=s[`$on${t}`];n&&s.removeEventListener(t,n),s.addEventListener(t,e),s[`$on${t}`]=e}function R(s){let t=i.document.createElement("template");t.innerHTML=s;let e=t.content.firstChild;return()=>e.cloneNode(!0)}function X(s){return i.document.createElement(s)}function L(s,t,e){s._$nodes||(s._$nodes=Array.from(s.childNodes)),s._$nodes.splice(e,0,t);let n=h.getFlowIndexFromNodes(s._$nodes,t);h.appendNodesWithIndex([t],s,n),h.addParentEl([t],s)}function b(s,t,e){if(t==="style"){O(s,e);return}if(t==="dataset"){A(s,e);return}if(t!=="element"){if(t==="prop"){C(s,e);return}if(t==="attr"){H(s,e);return}if(t==="innerHTML"){S(s,"innerHTML",e);return}if(t!=="forwardProp"){if(t.startsWith("on")){K(s,t.slice(2).toLowerCase(),e);return}_(s,t,e)}}}var D=class extends h{constructor(){super(c.Comp)}_$init(t,e,n,o){this._$notInitd=!0,o&&o._$addForwardProps(this),e!==null&&this._$setContent(e),t&&Object.entries(t).forEach(([r,a])=>{this._$setProp(r,a)}),n&&(this._$children=n),i.global.DLEnvStore&&Object.entries(i.global.DLEnvStore.envs).forEach(([r,[a,p]])=>{p.addNode(this),this._$initEnv(r,a,p)}),this._$callUpdatesBeforeInit(),this.didMount&&h.addDidMount(this,this.didMount.bind(this)),this.willUnmount&&h.addWillUnmount(this,this.willUnmount.bind(this)),this.didUnmount&&h.addDidUnmount(this,this.didUnmount.bind(this)),this.willMount?.(),this._$nodes=this.View?.()??[]}_$callUpdatesBeforeInit(){let t=Object.getOwnPropertyNames(Object.getPrototypeOf(this)),e=Object.getOwnPropertyNames(this);[...t,...e].forEach(o=>{if(o.startsWith("$w$"))return this[o.slice(3)]();o.startsWith("$f$")&&(this[`$${o.slice(3)}`]=this[o])}),delete this._$notInitd}_$setForwardProp(t,e){if(t in this){this[t]=e;return}this._$forwardPropsId.push(t);let n=`$${t}`;this[n]=e,Object.defineProperty(this,t,{get(){return this[n]},set(o){this[n]!==o&&(this[n]=o,this._$forwardPropsSet?.forEach(r=>{r._$dlNodeType===c.Comp&&r._$setProp(t,o),r instanceof HTMLElement&&b(r,t,o)}))}})}_$addForwardProps(t){this._$forwardPropsSet.add(t),this._$forwardPropsId.forEach(e=>{let n=this[e];this._$forwardPropsSet?.forEach(o=>{o._$dlNodeType===c.Comp&&("_$forwardProps"in o&&o._$forwardPropsId.push(e),o._$setProp(e,n)),o instanceof HTMLElement&&b(o,e,n)})}),h.addWillUnmount(t,this._$forwardPropsSet.delete.bind(this._$forwardPropsSet,t))}_$setProp(t,e){"_$forwardProps"in this&&this._$setForwardProp(t,e),`$p$${t}`in this&&(this[t]=e)}_$initEnv(t,e,n){`$e$${t}`in this&&(this[t]=e,this[`$en$${t}`]=n)}_$updateEnv(t,e,n){`$e$${t}`in this&&n===this[`$en$${t}`]&&this[t]!==e&&(this[t]=e)}_$setContent(t){let e=this._$contentKey;e&&this[e]!==t&&(this[e]=t)}_$updateProp(t,e){let n=`$${t}`;if(this[n]===e)return;let o=this[n];this[n]=e,this._$updateDerived(t),this._$updateView(t,o,e)}_$updateDerived(t){"_$notInitd"in this||this[`$s$${t}`]?.forEach(e=>{`$w$${e}`in this?this[e]():this[`$${e}`]=this[`$f$${e}`]})}_$updateView(t,e,n){let o=this[`$$${t}`];o&&this._$update?.(o,t,e,n)}},et=D;function nt(s,t){s._$updateDerived(t),s._$updateView(t)}var v=class{constructor(){this.envs={},this.currentEnvNodes=[]}addEnvNode(t){this.currentEnvNodes.push(t),this.mergeEnvs()}replaceEnvNodes(t){this.currentEnvNodes=t,this.mergeEnvs()}removeEnvNode(){this.currentEnvNodes.pop(),this.mergeEnvs()}mergeEnvs(){this.envs={},this.currentEnvNodes.forEach(t=>{Object.entries(t.envs).forEach(([e,n])=>{this.envs[e]=[n,t]})})}},I=class extends h{constructor(t){super(c.Env),"DLEnvStore"in i.global||(i.global.DLEnvStore=new v),this.envs=t,this.updateNodes=new Set,i.global.DLEnvStore.addEnvNode(this)}updateEnv(t,e){this.envs[t]=e,i.global.DLEnvStore.currentEnvNodes.includes(this)&&i.global.DLEnvStore.mergeEnvs(),this.updateNodes.forEach(n=>{n._$updateEnv(t,e,this)})}addNode(t){this.updateNodes.add(t),h.addWillUnmount(t,this.updateNodes.delete.bind(this.updateNodes,t))}initNodes(t){this._$nodes=t,i.global.DLEnvStore.removeEnvNode()}};function ht(s){return i.document.createTextNode(s)}function ut(s,t){s.textContent!==t&&(s.textContent=t)}var F=class{propViewFunc;dlUpdateFunc=new Set;constructor(t){this.propViewFunc=t}build(){let t,e=o=>{o.initd=!0,t=o,this.dlUpdateFunc.add(o)},n=this.propViewFunc(e);return n.length===0?[]:(t&&h.addWillUnmount(n[0],this.dlUpdateFunc.delete.bind(this.dlUpdateFunc,t)),n)}update(...t){this.dlUpdateFunc.forEach(e=>{if(e.initd){delete e.initd;return}e(...t)})}};var W=class extends h{constructor(){super(c.Subview)}};var w=class extends h{constructor(t){super(t),i.global.DLEnvStore&&i.global.DLEnvStore.currentEnvNodes.length>0&&(this.savedEnvNodes=[...i.global.DLEnvStore.currentEnvNodes])}initNewNodes(t){h.addParentEl(t,this._$parentEl)}geneNewNodesInEnv(t){if(!this.savedEnvNodes){let o=t();return this.initNewNodes(o),o}let e=i.global.DLEnvStore.currentEnvNodes;i.global.DLEnvStore.replaceEnvNodes(this.savedEnvNodes);let n=t();return i.global.DLEnvStore.replaceEnvNodes(e),this.initNewNodes(n),n}initUnmountStore(){i.global.WillUnmountStore.push([]),i.global.DidUnmountStore.push([])}removeNodes(t){h.loopShallowEls(t,e=>{this._$parentEl.removeChild(e)})}};var l=class extends w{array;nodeFunc;depNum;nodesMap=new Map;updateMap=new Map;get _$nodes(){let t=[];for(let e=0;e<this.array.length;e++)t.push(...this.nodesMap.get(this.keys?.[e]??e));return t}constructor(t,e,n){super(c.For),this.array=[...t],this.keys=n,this.depNum=e}addNodeFunc(t){this.nodeFunc=t,this.array.forEach((e,n)=>{this.initUnmountStore();let o=this.keys?.[n]??n,r=t(e,this.updateMap,o);this.nodesMap.set(o,r),this.setUnmountMap(o)}),l.addWillUnmount(this,this.runAllWillUnmount.bind(this)),l.addDidUnmount(this,this.runAllDidUnmount.bind(this))}update(t,...e){if(!(t&this.depNum)){this.updateArgs=e;for(let n=0;n<this.array.length;n++)this.updateItem(n,t)}}updateItem(t,e){let n=this.keys?.[t]??t;this.updateMap.get(n)?.(e??this.depNum,...this.updateArgs,this.array[t])}updateArray(t,e,n,o,r){if(this.updateArgs=[e,n,o],r){this.updateWithKey(t,r);return}this.updateWithOutKey(t)}getNewNodes(t,e){this.initUnmountStore();let n=this.geneNewNodesInEnv(()=>this.nodeFunc(this.array[t],this.updateMap,e));return this.setUnmountMap(e),this.nodesMap.set(e,n),n}setUnmountMap(t){let e=i.global.WillUnmountStore.pop();e&&e.length>0&&(this.willUnmountMap||(this.willUnmountMap=new Map),this.willUnmountMap.set(t,e));let n=i.global.DidUnmountStore.pop();n&&n.length>0&&(this.didUnmountMap||(this.didUnmountMap=new Map),this.didUnmountMap.set(t,n))}runAllWillUnmount(){!this.willUnmountMap||this.willUnmountMap.size===0||(this.willUnmountMap.forEach(t=>{for(let e=0;e<t.length;e++)t[e]?.()}),this.willUnmountMap.clear())}runAllDidUnmount(){!this.didUnmountMap||this.didUnmountMap.size===0||(this.didUnmountMap.forEach(t=>{for(let e=t.length-1;e>=0;e--)t[e]?.()}),this.didUnmountMap.clear())}runWillUnmount(t){if(!this.willUnmountMap||this.willUnmountMap.size===0)return;let e=this.willUnmountMap.get(t);if(e){for(let n=0;n<e.length;n++)e[n]?.();this.willUnmountMap.delete(t)}}runDidUnmount(t){if(!this.didUnmountMap||this.didUnmountMap.size===0)return;let e=this.didUnmountMap.get(t);if(e){for(let n=e.length-1;n>=0;n--)e[n]?.();this.didUnmountMap.delete(t)}}removeNodes(t,e){this.runWillUnmount(e),super.removeNodes(t),this.runDidUnmount(e),this.updateMap.delete(e),this.nodesMap.delete(e)}updateWithOutKey(t){let e=this.array.length,n=t.length;if(this.array=[...t],e===n){for(let r=0;r<this.array.length;r++)this.updateItem(r);return}let o=this._$parentEl;if(e<n){let r=l.getFlowIndexFromNodes(o._$nodes,this),a=o.childNodes.length;for(let p=0;p<n;p++){if(p<e){r+=l.getFlowIndexFromNodes(this.nodesMap.get(p)),this.updateItem(p);continue}let f=this.getNewNodes(p,p);l.appendNodesWithIndex(f,o,r,a)}l.runDidMount();return}for(let r=0;r<n;r++)this.updateItem(r);for(let r=n;r<e;r++){let a=this.nodesMap.get(r);this.removeNodes(a,r)}}updateWithKey(t,e){if(e.length!==new Set(e).size)throw new Error("DLight: Duplicate keys in for loop are not allowed");let n=this.keys;if(this.array=[...t],this.keys=e,l.arrayEqual(n,this.keys)){for(let d=0;d<this.array.length;d++)this.updateItem(d);return}let o=this._$parentEl;if(this.keys.length===0){let d=o._$nodes??[];if(d.length===1&&d[0]===this)this.runAllWillUnmount(),o.innerHTML="",this.runAllDidUnmount();else for(let u=0;u<n.length;u++){let m=n[u];this.removeNodes(this.nodesMap.get(m),m)}this.nodesMap.clear(),this.updateMap.clear();return}let r=l.getFlowIndexFromNodes(o._$nodes,this);if(n.length===0){let d=o.childNodes[r];for(let u=0;u<this.keys.length;u++){let m=this.getNewNodes(u,this.keys[u]);l.appendNodesWithSibling(m,o,d)}l.runDidMount();return}let a=[];for(let d=0;d<n.length;d++){let u=n[d];if(this.keys.includes(u)){a.push(u);continue}this.removeNodes(this.nodesMap.get(u),u)}let p=o.childNodes.length,f=r;for(let d=0;d<this.keys.length;d++){let u=this.keys[d];if(a.includes(u)){f+=l.getFlowIndexFromNodes(this.nodesMap.get(u)),this.updateItem(d);continue}let m=this.getNewNodes(d,u);a.splice(d,0,u);let N=l.appendNodesWithIndex(m,o,f,p);f+=N,p+=N}if(l.runDidMount(),l.arrayEqual(this.keys,a))return;f=r;let M=[];for(let d=0;d<this.keys.length;d++){let u=this.keys[d],m=a.indexOf(u),N=M[d];if(N){let E=l.appendNodesWithIndex(N,o,f+l.getFlowIndexFromNodes(N),p);f+=E,p+=E,M[d]=void 0}else if(m===d){f+=l.getFlowIndexFromNodes(this.nodesMap.get(u));continue}else{M[this.keys.indexOf(a[d])]=this.nodesMap.get(this.keys[m]);let E=l.appendNodesWithIndex(this.nodesMap.get(u),o,f,p);f+=E,p+=E}let y=a[d];a[d]=a[m],a[m]=y}}static arrayEqual(t,e){return t.length!==e.length?!1:t.every((n,o)=>n===e[o])}};var U=class extends w{willUnmountFuncs=[];didUnmountFuncs=[];setUnmountFuncs(){this.willUnmountFuncs=i.global.WillUnmountStore.pop(),this.didUnmountFuncs=i.global.DidUnmountStore.pop()}runWillUnmount(){for(let t=0;t<this.willUnmountFuncs.length;t++)this.willUnmountFuncs[t]()}runDidUnmount(){for(let t=this.didUnmountFuncs.length-1;t>=0;t--)this.didUnmountFuncs[t]()}removeNodes(t){this.runWillUnmount(),super.removeNodes(t),this.runDidUnmount()}geneNewNodesInEnv(t){this.initUnmountStore();let e=super.geneNewNodesInEnv(t);return this.setUnmountFuncs(),e}};var g=class extends U{nodesFunc;constructor(t){super(c.Exp),this.nodesFunc=t,this.initUnmountStore(),this._$nodes=g.formatNodes(t()),this.setUnmountFuncs(),g.addWillUnmount(this,this.runWillUnmount.bind(this)),g.addDidUnmount(this,this.runDidUnmount.bind(this))}update(){this.removeNodes(this._$nodes);let t=this.geneNewNodesInEnv(()=>g.formatNodes(this.nodesFunc()));if(t.length===0){this._$nodes=[];return}let e=this._$parentEl,n=MutableNode.getFlowIndexFromNodes(e._$nodes,this),o=e.childNodes[n];MutableNode.appendNodesWithSibling(t,e,o),MutableNode.runDidMount(),this._$nodes=t}static formatNodes(t){return Array.isArray(t)||(t=[t]),t.flat(1).filter(e=>e!=null&&typeof e!="boolean").map(e=>typeof e=="string"||typeof e=="number"||typeof e=="bigint"?i.document.createTextNode(`${e}`):"propViewFunc"in e?e.build():e).flat(1)}};var x=class extends U{condFunc;cond;depNum;constructor(t){super(c.Cond),this.depNum=t}addCondFunc(t){this.cond=-1,this.condFunc=t,this.initUnmountStore(),this._$nodes=this.condFunc(this),this.setUnmountFuncs(),x.addWillUnmount(this,this.runWillUnmount.bind(this)),x.addDidUnmount(this,this.runDidUnmount.bind(this))}updateCond(...t){let e=this.geneNewNodesInEnv(()=>this.condFunc(this));if(this.didntChange)return this.didntChange=!1,this.updateFunc?.(this.depNum,...t),this._$nodes;if(this._$nodes&&this._$nodes.length>0&&this.removeNodes(this._$nodes),e.length===0)return this._$nodes=[],this._$nodes;let n=this._$parentEl,o=MutableNode.getFlowIndexFromNodes(n._$nodes,this),r=n.childNodes[o];return MutableNode.appendNodesWithSibling(e,n,r),MutableNode.runDidMount(),this._$nodes=e,this._$nodes}update(t,...e){t&this.depNum||this.updateFunc?.(t,...e)}};function j(){i.global.WillUnmountStore=[],i.global.DidUnmountStore=[]}function Tt(s,t){let e=s;if(typeof s=="string"){let o=i.document.getElementById(s);if(o)e=o;else throw new Error(`DLight: Element with id ${s} not found`)}j(),e.innerHTML="";let n=new t;n._$init(),L(e,n,0),h.runDidMount()}function Ot(s,t){return s()}function V(s){return s}var At=V;export{At as $,D as CompNode,x as CondNode,I as EnvNode,v as EnvStoreClass,g as ExpNode,l as ForNode,F as PropView,W as SubViewNode,et as View,X as createElement,R as createTemplate,ht as createTextNode,V as escape,b as forwardHTMLProp,L as insertNode,Ot as manual,Tt as render,A as setDataset,T as setDocument,K as setEvent,P as setGlobal,_ as setHTMLAttr,H as setHTMLAttrs,S as setHTMLProp,C as setHTMLProps,O as setStyle,nt as update,ut as updateText};
//# sourceMappingURL=index.js.map
{
"name": "@dlightjs/dlight",
"version": "1.0.0-alpha.52",
"version": "1.0.0-alpha.53",
"description": "DX-first UI rendering library",

@@ -5,0 +5,0 @@ "author": {

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc