Socket
Socket
Sign inDemoInstall

forgo

Package Overview
Dependencies
Maintainers
2
Versions
140
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

forgo - npm Package Compare versions

Comparing version 3.1.1 to 3.1.2-beta.0

4

CHANGELOG.md

@@ -0,1 +1,5 @@

# Unreleased
- Fix #62: ensure that a child component's `mount()` lifecycle method is only called after its parent has completely finished rendering
# 3.0.0

@@ -2,0 +6,0 @@

2

dist/forgo.min.js

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

var me=Object.defineProperty,pe=Object.defineProperties;var ce=Object.getOwnPropertyDescriptors;var K=Object.getOwnPropertySymbols;var Te=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable;var Y=(s,l,p)=>l in s?me(s,l,{enumerable:!0,configurable:!0,writable:!0,value:p}):s[l]=p,M=(s,l)=>{for(var p in l||(l={}))Te.call(l,p)&&Y(s,p,l[p]);if(K)for(var p of K(l))be.call(l,p)&&Y(s,p,l[p]);return s},v=(s,l)=>pe(s,ce(l));var N={};var Ee=["ref","dangerouslySetInnerHTML"],fe=Symbol.for("FORGO_FRAGMENT");var He="http://www.w3.org/2000/svg",$=1;var _=3;function F(s,l){var h;l=l!=null?l:{},l.children=arguments.length>3?A(Array.from(arguments).slice(2)):arguments.length===3?A(arguments[2]):void 0;let p=(h=l.key)!=null?h:void 0;return{type:s,props:l,key:p,__is_forgo_element__:!0}}var Se=F;function he(s,l){return p=>{var h;if(!((h=s.__forgo)!=null&&h.deleted))return l(p)}}function ee(s){var X;let l=s;l.__internal=(X=l.__internal)!=null?X:{Text:l.window.Text,HTMLElement:l.window.HTMLElement};function p(t,e,r,a){return Array.isArray(t)?O(t,e,r,a):D(t)?Me(t)?L(t,e,r,a):U(t)?ne(t,e,r,a):te(t,e,r,a):t==null?h(t,e,r,a):P(t,e,r,a)}function h(t,e,r,a){return{nodes:[]}}function P(t,e,r,a){var m;let i=l.document.createTextNode(ye(t)),u;if(e.type==="search"){let o=e.parentElement.childNodes;if(e.length){let n=o[e.currentNodeIndex];if(n.nodeType===_)n.replaceWith(i),u=(m=H(n))==null?void 0:m.components;else{let d=o[e.currentNodeIndex];e.parentElement.insertBefore(i,d)}}else if(o.length===0||e.currentNodeIndex===0)e.parentElement.prepend(i);else{let n=o[e.currentNodeIndex];e.parentElement.insertBefore(i,n)}}return k(t,i,!0,r,u),{nodes:[i]}}function L(t,e,r,a){if(e.type==="detached")return m(void 0,null);{let o=e.parentElement.childNodes;if(e.length){let n=re(t,e.parentElement,e.currentNodeIndex,e.length);if(n.found)return u(n.index,o,e)}return m(e.parentElement,o[e.currentNodeIndex])}function i(o){if(t.props.dangerouslySetInnerHTML)o.innerHTML=t.props.dangerouslySetInnerHTML.__html;else{let n=A([t.props.children]).filter(c=>c!=null),d=Array.from(o.childNodes).findIndex(c=>H(c)),g=d===-1?0:d;for(let c of n){let{nodes:T}=p(c,{type:"search",parentElement:o,currentNodeIndex:g,length:o.childNodes.length-g},[],a);if(T.length){for(;o.childNodes[g]!==T[T.length-1];)g+=1;for(g+=1;g<o.childNodes.length&&!H(o.childNodes[g]);)g+=1}}x(o.childNodes,g,o.childNodes.length)}}function u(o,n,d){var T;x(n,d.currentNodeIndex,o);let g=n[d.currentNodeIndex],c=(T=H(g))==null?void 0:T.components;return i(g),j(g,r),k(t,g,!1,r,c),{nodes:[g]}}function m(o,n){let d=de(t,o);return o&&o.insertBefore(d,n),t.props.ref&&(t.props.ref.value=d),i(d),k(t,d,!0,r,void 0),{nodes:[d]}}}function te(t,e,r,a){let i=r.length;if(e.type!=="detached"&&e.length&&!a){let n=e.parentElement.childNodes,d=oe(t,e.parentElement,e.currentNodeIndex,e.length,r.length);if(d.found)return u(d.index,n,e)}return m();function u(n,d,g){let c=d[n],b=w(c).components[i];if(x(d,g.currentNodeIndex,n),!b.component.shouldUpdate||!b.component.shouldUpdate(t.props,b.props)){let E=v(M({},b),{props:t.props}),f=E.component.render(t.props,E.args),y=r.concat(E),V=b.args.element.node,le=E.component.error?E.component:void 0,ue=o(t.props,E.args,y,le,()=>{let ge={type:"search",currentNodeIndex:g.currentNodeIndex,length:E.nodes.length,parentElement:g.parentElement};return B(f,ge,y,E,a)});return E.component.afterRender&&E.component.afterRender(t.props,v(M({},E.args),{previousNode:V})),ue}else{let E=I(g.parentElement.childNodes,b.args.element.node);return{nodes:C(g.parentElement.childNodes,E,E+b.nodes.length)}}}function m(){let n={element:{componentIndex:i},update:E=>W(n.element,E)},d=t.type,g=d(t.props,{environment:l});Le(d,g);let c=g.error?g:void 0,T={key:t.key,ctor:d,component:g,props:t.props,args:n,nodes:[],isMounted:!1},b=r.concat(T);return o(t.props,n,b,c,()=>{let E=g.render(t.props,n),f=e.type==="detached"?e:{type:"search",currentNodeIndex:e.currentNodeIndex,length:a?e.length:0,parentElement:e.parentElement},y=p(E,f,b,a);return T.nodes=y.nodes,T.args.element.node=y.nodes[0],g.afterRender&&g.afterRender(t.props,n),y})}function o(n,d,g,c,T){try{return T()}catch(b){if(c&&c.error){let E=v(M({},d),{error:b}),f=c.error(n,E);return p(f,e,g,a)}else throw b}}}function B(t,e,r,a,i){let u=e.parentElement.childNodes.length,m=p(t,e,r,i),o=e.parentElement.childNodes.length,n=u+m.nodes.length-o,d=e.currentNodeIndex+m.nodes.length,g=x(e.parentElement.childNodes,d,d+a.nodes.length-n),c=m.nodes.length>0?r:[];for(let T of g){let b=H(T);if(b){let E=R(c,b.components);b.components=b.components.slice(E)}}return a.nodes=m.nodes,a.args.element.node=m.nodes[0],m}function O(t,e,r,a){let i=A(t);if(e.type==="detached")throw new Error("Arrays and fragments cannot be rendered at the top level.");{let u=[],m=e.currentNodeIndex,o=e.length;for(let n of i){let d=e.parentElement.childNodes.length,g=v(M({},e),{currentNodeIndex:m,length:o}),{nodes:c}=p(n,g,r,a);u=u.concat(c);let T=e.parentElement.childNodes.length,b=d+c.length-T;m+=c.length,o-=b}return{nodes:u}}}function ne(t,e,r,a){return O(A(t),e,r,a)}function k(t,e,r,a,i){if(se(t,e,r,a),i){let u=R(a,i);q(i,u),z(a,u)}else z(a,0)}function x(t,e,r){let a=[],i=C(t,e,r);if(i.length){let u=i[0].parentElement,m=S(u);for(let o of i)!H(o)||(o.remove(),a.push(o),m.push({node:o}))}return a}function j(t,e){let r=S(t);for(let{node:a}of r){let i=H(a);if(i){i.deleted=!0;let u=i.components,m=R(e,u);q(i.components,m)}}ve(t)}function R(t,e){let r=0;for(let a of t)if(e.length>r){if(e[r].component!==a.component)break;r++}else break;return r}function q(t,e){var a;let r=!1;for(let i=e;i<t.length;i++){let u=t[i],m=u.component;m.unmount&&(r||u.nodes.every(o=>{if(o.isConnected){let n=w(o);return!n.components[i]||n.components[i].component!==u.component}else return!0}))&&((a=m.__forgo)!=null&&a.unmounted||(m.unmount(u.props,u.args),m.__forgo||(m.__forgo={}),m.__forgo.unmounted=!0),r=!0)}}function z(t,e){for(let r=e;r<t.length;r++){let a=t[r];a.component.mount&&!a.isMounted&&(a.isMounted=!0,a.component.mount(a.props,a.args))}}function re(t,e,r,a){let i=e.childNodes;for(let u=r;u<r+a;u++){let m=i[u];if(Z(m)){let o=H(m);if(!o)continue;if(t.key!==void 0&&(o==null?void 0:o.key)===t.key)return{found:!0,index:u};if(m.tagName.toLowerCase()===t.type&&!(o!=null&&o.key))return{found:!0,index:u}}}if(t.key!==void 0){let u=S(e);for(let m=0;m<u.length;m++){let{node:o}=u[m],n=H(o);if((n==null?void 0:n.key)===t.key){u.splice(m,1);let d=i[r];return d?e.insertBefore(o,d):e.appendChild(o),{found:!0,index:r}}}}return{found:!1}}function oe(t,e,r,a,i){let u=e.childNodes;for(let o=r;o<r+a;o++){let n=u[o],d=H(n);if(d&&d.components.length>i){if(t.key!==void 0){if(d.components[i].ctor===t.type&&d.components[i].key===t.key)return{found:!0,index:o}}else if(d.components[i].ctor===t.type)return{found:!0,index:o}}}function m(o,n,d){let g=H(o);return!!(g&&g.components.length>d&&g.components[d].ctor===n.type&&g.components[d].key===n.key)}if(t.key!==void 0){let o=S(e);for(let n=0;n<o.length;n++){let{node:d}=o[n];if(m(d,t,i)){let g=[d];for(let T=n+1;T<o.length;T++){let{node:b}=o[T];m(b,t,i)&&g.push(b)}o.splice(n,g.length);let c=u[r];if(c)for(let T of g)e.insertBefore(T,c);else for(let T of g)e.appendChild(T);return{found:!0,index:r}}}}return{found:!1}}function se(t,e,r,a){var i;if(a.length>0&&(a[a.length-1].args.element.node=e),D(t)){let u=H(e);if(u&&u.props)for(let n in u.props)n in t.props||n!=="children"&&n!=="xmlns"&&(e.nodeType===_||e instanceof l.__internal.HTMLElement&&n in e?delete e[n]:e.removeAttribute(n));else if(!r&&Z(e)&&e.hasAttributes()){let n=Array.from(e.attributes);for(let d of n){let g=d.name;g in t.props||e.removeAttribute(g)}}let m=Object.entries(t.props);for(let[n,d]of m)if(!Ee.includes(n)&&((i=u==null?void 0:u.props)==null?void 0:i[n])!==d&&n!=="children"&&n!=="xmlns")if(e.nodeType===_)e[n]=d;else if(e instanceof l.__internal.HTMLElement)if(n==="style"){if(u===void 0||u.style===void 0||u.style!==t.props.style){let g=xe(t.props.style);e.style.cssText!==g&&(e.style.cssText=g)}}else n==="onblur"?e[n]=he(e,d):n in e?e[n]=d:e.setAttribute(n,d);else typeof d=="string"?e.setAttribute(n,d):e[n]=d;let o={key:t.key,props:t.props,components:a};Q(e,o)}else Q(e,{components:a})}function ie(t,e){let r=Ae(e)?l.document.querySelector(e):e;if(r)if(r.nodeType===$){let a=r.childNodes.length>0,i=p(t,{type:"search",currentNodeIndex:0,length:r.childNodes.length,parentElement:r},[],a);if(i.nodes.length<r.childNodes.length){let u=C(r.childNodes,i.nodes.length,r.childNodes.length);for(let m of u)m.remove()}return i}else throw new Error("The container argument to the mount() function should be an HTML element.");else throw new Error(`The mount() function was called on a non-element (${typeof e=="string"?e:e==null?void 0:e.tagName}).`)}function ae(t){let e=p(t,{type:"detached"},[],!1);return{node:e.nodes[0],nodes:e.nodes}}function W(t,e){if(t&&t.node){let r=t.node.parentElement;if(r!==null){let a=w(t.node),i=a.components[t.componentIndex],u=e!=null?e:i.props;if(!i.component.shouldUpdate||i.component.shouldUpdate(u,i.props)){let m=v(M({},i),{props:u}),o=a.components.slice(0,t.componentIndex),n=o.concat(m),d=i.args.element.node,g=i.component.render(u,i.args),c=I(r.childNodes,t.node),T={type:"search",currentNodeIndex:c,length:i.nodes.length,parentElement:r},b=B(g,T,n,m,!1);for(let E=0;E<o.length;E++){let f=o[E],y=f.nodes.findIndex(V=>V===i.nodes[0]);f.nodes=f.nodes.slice(0,y).concat(b.nodes).concat(f.nodes.slice(y+i.nodes.length)),f.nodes.length>0&&(f.args.element.node=f.nodes[0])}return j(r,b.nodes.length>0?n:[]),i.component.afterRender&&i.component.afterRender(u,v(M({},i.args),{previousNode:d})),b}else{let m=I(r.childNodes,t.node);return{nodes:C(r.childNodes,m,m+i.nodes.length)}}}else return{nodes:[]}}else throw new Error("Missing node information in rerender() argument.")}function de(t,e){var a;let r=((a=t.props.xmlns)!=null?a:t.type==="svg")?He:e&&e.namespaceURI;return t.props.is?r?l.document.createElementNS(r,t.type,{is:t.props.is}):l.document.createElement(t.type,{is:t.props.is}):r?l.document.createElementNS(r,t.type):l.document.createElement(t.type)}return{mount:ie,render:ae,rerender:W}}var J=globalThis||window,G=ee({window:J,document:J.document});function Ce(s){G=ee(s)}function Fe(s,l){return G.mount(s,l)}function Ge(s){return G.render(s)}function Pe(s,l){return G.rerender(s,l)}function A(s){function l(p,h=[]){let P=Array.isArray(p)?p:U(p)?Array.isArray(p.props.children)?p.props.children:p.props.children!==void 0&&p.props.children!==null?[p.props.children]:[]:[p];for(let L of P)Array.isArray(L)||U(L)?l(L,h):h.push(L);return h}return l(s,[])}function ye(s){return s.toString()}function D(s){return s!=null&&s.__is_forgo_element__===!0}function Me(s){return D(s)&&typeof s.type=="string"}function U(s){return s!=null&&s.type===fe}function H(s){return s.__forgo}function w(s){if(s.__forgo)return s.__forgo;throw new Error("Missing forgo state on node.")}function Q(s,l){s.__forgo=l}function S(s){return s.__forgo_deletedNodes||(s.__forgo_deletedNodes=[]),s.__forgo_deletedNodes}function ve(s){s.__forgo_deletedNodes&&(s.__forgo_deletedNodes=[])}function Le(s,l){if(!l.render)throw new Error(`${s.name||"Unnamed"} component constructor must return an object having a render() function.`)}function Ae(s){return typeof s=="string"}function Z(s){return s.nodeType===$}function xe(s){return typeof s=="string"?s:s==null?"":Object.keys(s).reduce((l,p)=>l+p.split(/(?=[A-Z])/).join("-").toLowerCase()+":"+s[p]+";","")}function C(s,l,p){return Array.from(s).slice(l,p)}function I(s,l){return l?Array.from(s).indexOf(l):-1}(l=>l.JSX=N)(F||(F={}));export{fe as Fragment,N as JSX,F as createElement,ee as createForgoInstance,H as getForgoState,Se as h,Fe as mount,Ge as render,Pe as rerender,Ce as setCustomEnv,Q as setForgoState};
var me=Object.defineProperty,pe=Object.defineProperties;var ce=Object.getOwnPropertyDescriptors;var Y=Object.getOwnPropertySymbols;var Te=Object.prototype.hasOwnProperty,be=Object.prototype.propertyIsEnumerable;var J=(s,l,p)=>l in s?me(s,l,{enumerable:!0,configurable:!0,writable:!0,value:p}):s[l]=p,M=(s,l)=>{for(var p in l||(l={}))Te.call(l,p)&&J(s,p,l[p]);if(Y)for(var p of Y(l))be.call(l,p)&&J(s,p,l[p]);return s},v=(s,l)=>pe(s,ce(l));var N={};var Ee=["ref","dangerouslySetInnerHTML"],fe=Symbol.for("FORGO_FRAGMENT");var He="http://www.w3.org/2000/svg",ee=1;var w=3;function F(s,l){var h;l=l!=null?l:{},l.children=arguments.length>3?A(Array.from(arguments).slice(2)):arguments.length===3?A(arguments[2]):void 0;let p=(h=l.key)!=null?h:void 0;return{type:s,props:l,key:p,__is_forgo_element__:!0}}var Se=F;function he(s,l){return p=>{var h;if(!((h=s.__forgo)!=null&&h.deleted))return l(p)}}function te(s){var K;let l=s;l.__internal=(K=l.__internal)!=null?K:{Text:l.window.Text,HTMLElement:l.window.HTMLElement};function p(t,e,n,a){return Array.isArray(t)?j(t,e,n,a):U(t)?Me(t)?L(t,e,n,a):B(t)?re(t,e,n,a):ne(t,e,n,a):t==null?h(t,e,n,a):P(t,e,n,a)}function h(t,e,n,a){return{nodes:[]}}function P(t,e,n,a){var m;let i=l.document.createTextNode(ye(t)),u;if(e.type==="search"){let o=e.parentElement.childNodes;if(e.length){let r=o[e.currentNodeIndex];if(r.nodeType===w)r.replaceWith(i),u=(m=H(r))==null?void 0:m.components;else{let d=o[e.currentNodeIndex];e.parentElement.insertBefore(i,d)}}else if(o.length===0||e.currentNodeIndex===0)e.parentElement.prepend(i);else{let r=o[e.currentNodeIndex];e.parentElement.insertBefore(i,r)}}return V(t,i,!0,n),k(n,u),{nodes:[i]}}function L(t,e,n,a){if(e.type==="detached")return m(void 0,null);{let o=e.parentElement.childNodes;if(e.length){let r=oe(t,e.parentElement,e.currentNodeIndex,e.length);if(r.found)return u(r.index,o,e)}return m(e.parentElement,o[e.currentNodeIndex])}function i(o){if(t.props.dangerouslySetInnerHTML)o.innerHTML=t.props.dangerouslySetInnerHTML.__html;else{let r=A([t.props.children]).filter(c=>c!=null),d=Array.from(o.childNodes).findIndex(c=>H(c)),g=d===-1?0:d;for(let c of r){let{nodes:T}=p(c,{type:"search",parentElement:o,currentNodeIndex:g,length:o.childNodes.length-g},[],a);if(T.length){for(;o.childNodes[g]!==T[T.length-1];)g+=1;for(g+=1;g<o.childNodes.length&&!H(o.childNodes[g]);)g+=1}}x(o.childNodes,g,o.childNodes.length)}}function u(o,r,d){var T;x(r,d.currentNodeIndex,o);let g=r[d.currentNodeIndex],c=(T=H(g))==null?void 0:T.components;return V(t,g,!1,n),i(g),q(g,n),k(n,c),{nodes:[g]}}function m(o,r){let d=de(t,o);return o&&o.insertBefore(d,r),t.props.ref&&(t.props.ref.value=d),V(t,d,!0,n),i(d),k(n,void 0),{nodes:[d]}}}function ne(t,e,n,a){let i=n.length;if(e.type!=="detached"&&e.length&&!a){let r=e.parentElement.childNodes,d=se(t,e.parentElement,e.currentNodeIndex,e.length,n.length);if(d.found)return u(d.index,r,e)}return m();function u(r,d,g){let c=d[r],b=I(c).components[i];if(x(d,g.currentNodeIndex,r),!b.component.shouldUpdate||!b.component.shouldUpdate(t.props,b.props)){let E=v(M({},b),{props:t.props}),f=E.component.render(t.props,E.args),y=n.concat(E),_=b.args.element.node,le=E.component.error?E.component:void 0,ue=o(t.props,E.args,y,le,()=>{let ge={type:"search",currentNodeIndex:g.currentNodeIndex,length:E.nodes.length,parentElement:g.parentElement};return O(f,ge,y,E,a)});return E.component.afterRender&&E.component.afterRender(t.props,v(M({},E.args),{previousNode:_})),ue}else{let E=D(g.parentElement.childNodes,b.args.element.node);return{nodes:C(g.parentElement.childNodes,E,E+b.nodes.length)}}}function m(){let r={element:{componentIndex:i},update:E=>X(r.element,E)},d=t.type,g=d(t.props,{environment:l});Le(d,g);let c=g.error?g:void 0,T={key:t.key,ctor:d,component:g,props:t.props,args:r,nodes:[],isMounted:!1},b=n.concat(T);return o(t.props,r,b,c,()=>{let E=g.render(t.props,r),f=e.type==="detached"?e:{type:"search",currentNodeIndex:e.currentNodeIndex,length:a?e.length:0,parentElement:e.parentElement},y=p(E,f,b,a);return T.nodes=y.nodes,T.args.element.node=y.nodes[0],g.afterRender&&g.afterRender(t.props,r),y})}function o(r,d,g,c,T){try{return T()}catch(b){if(c&&c.error){let E=v(M({},d),{error:b}),f=c.error(r,E);return p(f,e,g,a)}else throw b}}}function O(t,e,n,a,i){let u=e.parentElement.childNodes.length,m=p(t,e,n,i),o=e.parentElement.childNodes.length,r=u+m.nodes.length-o,d=e.currentNodeIndex+m.nodes.length,g=x(e.parentElement.childNodes,d,d+a.nodes.length-r),c=m.nodes.length>0?n:[];for(let T of g){let b=H(T);if(b){let E=R(c,b.components);b.components=b.components.slice(E)}}return a.nodes=m.nodes,a.args.element.node=m.nodes[0],m}function j(t,e,n,a){let i=A(t);if(e.type==="detached")throw new Error("Arrays and fragments cannot be rendered at the top level.");{let u=[],m=e.currentNodeIndex,o=e.length;for(let r of i){let d=e.parentElement.childNodes.length,g=v(M({},e),{currentNodeIndex:m,length:o}),{nodes:c}=p(r,g,n,a);u=u.concat(c);let T=e.parentElement.childNodes.length,b=d+c.length-T;m+=c.length,o-=b}return{nodes:u}}}function re(t,e,n,a){return j(A(t),e,n,a)}function k(t,e){if(e){let n=R(t,e);z(e,n),W(t,n)}else W(t,0)}function x(t,e,n){let a=[],i=C(t,e,n);if(i.length){let u=i[0].parentElement,m=S(u);for(let o of i)!H(o)||(o.remove(),a.push(o),m.push({node:o}))}return a}function q(t,e){let n=S(t);for(let{node:a}of n){let i=H(a);if(i){i.deleted=!0;let u=i.components,m=R(e,u);z(i.components,m)}}ve(t)}function R(t,e){let n=0;for(let a of t)if(e.length>n){if(e[n].component!==a.component)break;n++}else break;return n}function z(t,e){var a;let n=!1;for(let i=e;i<t.length;i++){let u=t[i],m=u.component;m.unmount&&(n||u.nodes.every(o=>{if(o.isConnected){let r=I(o);return!r.components[i]||r.components[i].component!==u.component}else return!0}))&&((a=m.__forgo)!=null&&a.unmounted||(m.unmount(u.props,u.args),m.__forgo||(m.__forgo={}),m.__forgo.unmounted=!0),n=!0)}}function W(t,e){for(let n=e;n<t.length;n++){let a=t[n];a.component.mount&&!a.isMounted&&(a.isMounted=!0,a.component.mount(a.props,a.args))}}function oe(t,e,n,a){let i=e.childNodes;for(let u=n;u<n+a;u++){let m=i[u];if($(m)){let o=H(m);if(!o)continue;if(t.key!==void 0&&(o==null?void 0:o.key)===t.key)return{found:!0,index:u};if(m.tagName.toLowerCase()===t.type&&!(o!=null&&o.key))return{found:!0,index:u}}}if(t.key!==void 0){let u=S(e);for(let m=0;m<u.length;m++){let{node:o}=u[m],r=H(o);if((r==null?void 0:r.key)===t.key){u.splice(m,1);let d=i[n];return d?e.insertBefore(o,d):e.appendChild(o),{found:!0,index:n}}}}return{found:!1}}function se(t,e,n,a,i){let u=e.childNodes;for(let o=n;o<n+a;o++){let r=u[o],d=H(r);if(d&&d.components.length>i){if(t.key!==void 0){if(d.components[i].ctor===t.type&&d.components[i].key===t.key)return{found:!0,index:o}}else if(d.components[i].ctor===t.type)return{found:!0,index:o}}}function m(o,r,d){let g=H(o);return!!(g&&g.components.length>d&&g.components[d].ctor===r.type&&g.components[d].key===r.key)}if(t.key!==void 0){let o=S(e);for(let r=0;r<o.length;r++){let{node:d}=o[r];if(m(d,t,i)){let g=[d];for(let T=r+1;T<o.length;T++){let{node:b}=o[T];m(b,t,i)&&g.push(b)}o.splice(r,g.length);let c=u[n];if(c)for(let T of g)e.insertBefore(T,c);else for(let T of g)e.appendChild(T);return{found:!0,index:n}}}}return{found:!1}}function V(t,e,n,a){var i;if(a.length>0&&(a[a.length-1].args.element.node=e),U(t)){let u=H(e);if(u&&u.props)for(let r in u.props)r in t.props||r!=="children"&&r!=="xmlns"&&(e.nodeType===w||e instanceof l.__internal.HTMLElement&&r in e?delete e[r]:e.removeAttribute(r));else if(!n&&$(e)&&e.hasAttributes()){let r=Array.from(e.attributes);for(let d of r){let g=d.name;g in t.props||e.removeAttribute(g)}}let m=Object.entries(t.props);for(let[r,d]of m)if(!Ee.includes(r)&&((i=u==null?void 0:u.props)==null?void 0:i[r])!==d&&r!=="children"&&r!=="xmlns")if(e.nodeType===w)e[r]=d;else if(e instanceof l.__internal.HTMLElement)if(r==="style"){if(u===void 0||u.style===void 0||u.style!==t.props.style){let g=xe(t.props.style);e.style.cssText!==g&&(e.style.cssText=g)}}else r==="onblur"?e[r]=he(e,d):r in e?e[r]=d:e.setAttribute(r,d);else typeof d=="string"?e.setAttribute(r,d):e[r]=d;let o={key:t.key,props:t.props,components:a};Z(e,o)}else Z(e,{components:a})}function ie(t,e){let n=Ae(e)?l.document.querySelector(e):e;if(n)if(n.nodeType===ee){let a=n.childNodes.length>0,i=p(t,{type:"search",currentNodeIndex:0,length:n.childNodes.length,parentElement:n},[],a);if(i.nodes.length<n.childNodes.length){let u=C(n.childNodes,i.nodes.length,n.childNodes.length);for(let m of u)m.remove()}return i}else throw new Error("The container argument to the mount() function should be an HTML element.");else throw new Error(`The mount() function was called on a non-element (${typeof e=="string"?e:e==null?void 0:e.tagName}).`)}function ae(t){let e=p(t,{type:"detached"},[],!1);return{node:e.nodes[0],nodes:e.nodes}}function X(t,e){if(t&&t.node){let n=t.node.parentElement;if(n!==null){let a=I(t.node),i=a.components[t.componentIndex],u=e!=null?e:i.props;if(!i.component.shouldUpdate||i.component.shouldUpdate(u,i.props)){let m=v(M({},i),{props:u}),o=a.components.slice(0,t.componentIndex),r=o.concat(m),d=i.args.element.node,g=i.component.render(u,i.args),c=D(n.childNodes,t.node),T={type:"search",currentNodeIndex:c,length:i.nodes.length,parentElement:n},b=O(g,T,r,m,!1);for(let E=0;E<o.length;E++){let f=o[E],y=f.nodes.findIndex(_=>_===i.nodes[0]);f.nodes=f.nodes.slice(0,y).concat(b.nodes).concat(f.nodes.slice(y+i.nodes.length)),f.nodes.length>0&&(f.args.element.node=f.nodes[0])}return q(n,b.nodes.length>0?r:[]),i.component.afterRender&&i.component.afterRender(u,v(M({},i.args),{previousNode:d})),b}else{let m=D(n.childNodes,t.node);return{nodes:C(n.childNodes,m,m+i.nodes.length)}}}else return{nodes:[]}}else throw new Error("Missing node information in rerender() argument.")}function de(t,e){var a;let n=((a=t.props.xmlns)!=null?a:t.type==="svg")?He:e&&e.namespaceURI;return t.props.is?n?l.document.createElementNS(n,t.type,{is:t.props.is}):l.document.createElement(t.type,{is:t.props.is}):n?l.document.createElementNS(n,t.type):l.document.createElement(t.type)}return{mount:ie,render:ae,rerender:X}}var Q=globalThis||window,G=te({window:Q,document:Q.document});function Ce(s){G=te(s)}function Fe(s,l){return G.mount(s,l)}function Ge(s){return G.render(s)}function Pe(s,l){return G.rerender(s,l)}function A(s){function l(p,h=[]){let P=Array.isArray(p)?p:B(p)?Array.isArray(p.props.children)?p.props.children:p.props.children!==void 0&&p.props.children!==null?[p.props.children]:[]:[p];for(let L of P)Array.isArray(L)||B(L)?l(L,h):h.push(L);return h}return l(s,[])}function ye(s){return s.toString()}function U(s){return s!=null&&s.__is_forgo_element__===!0}function Me(s){return U(s)&&typeof s.type=="string"}function B(s){return s!=null&&s.type===fe}function H(s){return s.__forgo}function I(s){if(s.__forgo)return s.__forgo;throw new Error("Missing forgo state on node.")}function Z(s,l){s.__forgo=l}function S(s){return s.__forgo_deletedNodes||(s.__forgo_deletedNodes=[]),s.__forgo_deletedNodes}function ve(s){s.__forgo_deletedNodes&&(s.__forgo_deletedNodes=[])}function Le(s,l){if(!l.render)throw new Error(`${s.name||"Unnamed"} component constructor must return an object having a render() function.`)}function Ae(s){return typeof s=="string"}function $(s){return s.nodeType===ee}function xe(s){return typeof s=="string"?s:s==null?"":Object.keys(s).reduce((l,p)=>l+p.split(/(?=[A-Z])/).join("-").toLowerCase()+":"+s[p]+";","")}function C(s,l,p){return Array.from(s).slice(l,p)}function D(s,l){return l?Array.from(s).indexOf(l):-1}(l=>l.JSX=N)(F||(F={}));export{fe as Fragment,N as JSX,F as createElement,te as createForgoInstance,H as getForgoState,Se as h,Fe as mount,Ge as render,Pe as rerender,Ce as setCustomEnv,Z as setForgoState};
//# sourceMappingURL=forgo.min.js.map
{
"name": "forgo",
"version": "3.1.1",
"version": "3.1.2-beta.0",
"main": "./dist/index.js",

@@ -5,0 +5,0 @@ "type": "module",

@@ -474,9 +474,4 @@ /*

syncStateAndProps(
forgoNode,
textNode,
true,
pendingAttachStates,
oldComponentState
);
syncAttrsAndState(forgoNode, textNode, true, pendingAttachStates);
remountComponents(pendingAttachStates, oldComponentState);
return { nodes: [textNode] };

@@ -639,13 +634,14 @@ }

renderChildNodes(targetElement);
unloadMarkedNodes(targetElement, pendingAttachStates);
syncStateAndProps(
syncAttrsAndState(
forgoElement,
targetElement,
false,
pendingAttachStates,
oldComponentState
pendingAttachStates
);
renderChildNodes(targetElement);
unloadMarkedNodes(targetElement, pendingAttachStates);
remountComponents(pendingAttachStates, oldComponentState);
return { nodes: [targetElement] };

@@ -668,11 +664,7 @@ }

syncAttrsAndState(forgoElement, newElement, true, pendingAttachStates);
renderChildNodes(newElement);
syncStateAndProps(
forgoElement,
newElement,
true,
pendingAttachStates,
undefined
);
remountComponents(pendingAttachStates, undefined);

@@ -1058,14 +1050,10 @@ return { nodes: [newElement] };

/*
Sync component states and props between a newNode and an oldNode.
*/
function syncStateAndProps(
forgoNode: ForgoNode,
node: ChildNode,
isNewNode: boolean,
/**
* Attach component states to DOM nodes and call unmount/mount lifecycle
* methods
*/
function remountComponents(
pendingAttachStates: NodeAttachedComponentState<any>[],
oldComponentStates: NodeAttachedComponentState<any>[] | undefined
) {
attachProps(forgoNode, node, isNewNode, pendingAttachStates);
if (oldComponentStates) {

@@ -1415,3 +1403,3 @@ const indexOfFirstIncompatibleState = findIndexOfFirstIncompatibleState(

*/
function attachProps(
function syncAttrsAndState(
forgoNode: ForgoNode,

@@ -1418,0 +1406,0 @@ node: ChildNode,

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