From f3fb26354c4c97e28f0a6bb21198814086af61c9 Mon Sep 17 00:00:00 2001 From: natxocc Date: Fri, 1 May 2026 23:11:47 +0200 Subject: [PATCH] Separate ESM IIFE in dual files --- dist/sigpro.esm.js | 5 +++- dist/sigpro.esm.min.js | 2 +- dist/sigpro.js | 61 +++--------------------------------------- dist/sigpro.min.js | 2 +- docs/sigpro.js | 61 +++--------------------------------------- package.json | 21 +++++++-------- sigpro.js | 7 ----- sigpro_ESM.js | 7 +++++ sigpro_IIFE.js | 8 ++++++ 9 files changed, 39 insertions(+), 135 deletions(-) create mode 100644 sigpro_ESM.js create mode 100644 sigpro_IIFE.js diff --git a/dist/sigpro.esm.js b/dist/sigpro.esm.js index f72f82b..5271529 100644 --- a/dist/sigpro.esm.js +++ b/dist/sigpro.esm.js @@ -502,6 +502,7 @@ router.params = $({}); router.to = (p) => window.location.hash = p.replace(/^#?\/?/, "#/"); router.back = () => window.history.back(); router.path = () => window.location.hash.replace(/^#/, "") || "/"; +var Fragment = (props) => props.children; var mount = (comp, target) => { const t = typeof target === "string" ? doc.querySelector(target) : target; if (!t) @@ -513,8 +514,9 @@ var mount = (comp, target) => { MOUNTED_NODES.set(t, inst); return inst; }; + +// sigpro_ESM.js if (typeof window !== "undefined") { - Object.assign(window, { $, $$, watch, h, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj }); "a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((tag) => { window[tag] = (props, children) => h(tag, props, children); }); @@ -531,6 +533,7 @@ export { h, each, batch, + Fragment, $$, $ }; diff --git a/dist/sigpro.esm.min.js b/dist/sigpro.esm.min.js index d2f1c8e..220db39 100644 --- a/dist/sigpro.esm.min.js +++ b/dist/sigpro.esm.min.js @@ -1 +1 @@ -var _=(e)=>typeof e==="function",O=(e)=>e&&typeof e==="object",b=Array.isArray,E=typeof document<"u"?document:null,V=(e)=>e?._isRuntime?e.container:e instanceof Node?e:E.createTextNode(e==null?"":String(e)),d=null,m=null,v=!1,R=0,T=new Set,I=new WeakMap,k=Symbol("iter"),L=new WeakMap,W="http://www.w3.org/2000/svg",M="http://www.w3.org/1999/xlink",q=new Set("svg,path,circle,rect,line,polyline,polygon,g,defs,text,textPath,tspan,use,symbol,image,marker,ellipse".split(",")),g=(e)=>{if(!e||e._disposed)return;e._disposed=!0;let s=[e];while(s.length){let n=s.pop();if(n._cleanups)n._cleanups.forEach((r)=>r()),n._cleanups.clear();if(n._children)n._children.forEach((r)=>s.push(r)),n._children.clear();if(n._deps)n._deps.forEach((r)=>r.delete(n)),n._deps.clear()}},S=(e)=>{if(m)(m._cleanups||=new Set).add(e)},K=(e)=>{let s=d;d=null;try{return e()}finally{d=s}},x=(e,s=!1)=>{let n=()=>{if(n._disposed)return;if(n._deps)n._deps.forEach((i)=>i.delete(n));if(n._cleanups)n._cleanups.forEach((i)=>i()),n._cleanups.clear();let r=d,o=m;d=m=n;try{return n._result=e()}catch(i){console.error("[SigPro]",i)}finally{d=r,m=o}};if(n._deps=n._cleanups=n._children=null,n._disposed=!1,n._isComputed=s,n._depth=d?d._depth+1:0,n._mounts=[],n._parent=m,m)(m._children||=new Set).add(n);return n},$=()=>{if(v)return;v=!0;let e=Array.from(T).sort((s,n)=>s._depth-n._depth);T.clear();for(let s of e)if(!s._disposed)s();v=!1},z=(e)=>{R++;try{return e()}finally{if(R--,R===0&&T.size>0&&!v)$()}},w=(e,s=!1)=>{if(!s&&d&&!d._disposed)e.add(d),(d._deps||=new Set).add(e);else if(s&&e.size>0){let n=!1;for(let r of e){if(r===d||r._disposed)continue;if(r._isComputed){if(r._dirty=!0,r._subs)w(r._subs,!0)}else T.add(r),n=!0}if(n&&!v&&R===0)queueMicrotask($)}},P=(e,s=null)=>{let n=new Set;if(_(e)){let r,o=()=>{if(o._dirty){let i=d;d=o;try{let t=e();if(!Object.is(r,t))r=t,w(n,!0)}finally{d=i}o._dirty=!1}return w(n),r};return o._isComputed=!0,o._subs=n,o._dirty=!0,o._deps=null,o._disposed=!1,o}if(s)try{e=JSON.parse(localStorage.getItem(s))??e}catch(r){}return(...r)=>{if(r.length){let o=_(r[0])?r[0](e):r[0];if(!Object.is(e,o)){if(e=o,s)localStorage.setItem(s,JSON.stringify(e));w(n,!0)}}return w(n),e}},D=(e)=>{if(!O(e))return e;let s=I.get(e);if(s)return s;let n=new Map,r=(i)=>{let t=n.get(i);if(!t)n.set(i,t=new Set);return t},o=new Proxy(e,{get(i,t,c){if(typeof t!=="symbol")w(r(t));return D(Reflect.get(i,t,c))},set(i,t,c,l){let a=Reflect.has(i,t),f=Reflect.get(i,t,l),u=Reflect.set(i,t,c,l);if(u&&!Object.is(f,c)){if(w(r(t),!0),!a)w(r(k),!0)}return u},deleteProperty(i,t){let c=Reflect.deleteProperty(i,t);if(c)w(r(t),!0),w(r(k),!0);return c},ownKeys(i){return w(r(k)),Reflect.ownKeys(i)}});return I.set(e,o),o},C=(e,s)=>{if(s===void 0){let r=x(e);return r(),()=>g(r)}let n=x(()=>{let r=Array.isArray(e)?e.map((o)=>o()):e();K(()=>s(r))});return n(),()=>g(n)},U=(e)=>{if(!e)return;if(e._cleanups)e._cleanups.forEach((s)=>s()),e._cleanups.clear();if(e._ownerEffect)g(e._ownerEffect);if(e.childNodes)e.childNodes.forEach((s)=>U(s))},J=/^\s*(javascript|data|vbscript):/i,Q=new Set(["src","href","formaction","action","background","code","archive"]),X=(e)=>Q.has(e)||e.startsWith("on"),B=(e,s)=>{if(s==null||s===!1)return null;if(X(e)){let n=String(s);if(J.test(n))return console.warn(`[SigPro] Bloqueado protocolo peligroso en ${e}`),"#"}return s},A=(e,s={},n=[])=>{if(s instanceof Node||b(s)||!O(s))n=s,s={};if(_(e)){let t=x(()=>{let f=e(s,{children:n,emit:(u,...h)=>s[`on${u[0].toUpperCase()}${u.slice(1)}`]?.(...h)});return t._result=f,f});t();let c=t._result;if(c==null)return null;let l=c instanceof Node||b(c)&&c.every((f)=>f instanceof Node)?c:E.createTextNode(String(c)),a=(f)=>{if(O(f)&&!f._isRuntime)f._mounts=t._mounts||[],f._cleanups=t._cleanups||new Set,f._ownerEffect=t};return b(l)?l.forEach(a):a(l),l}let r=q.has(e),o=r?E.createElementNS(W,e):E.createElement(e);o._cleanups=new Set;for(let t of Object.keys(s)){let c=s[t];if(t==="ref"){_(c)?c(o):c.current=o;continue}if(r&&t.startsWith("xlink:")){let l=B(t.slice(6),c);l==null?o.removeAttributeNS(M,t.slice(6)):o.setAttributeNS(M,t.slice(6),l);continue}if(t.startsWith("on")){let l=t.slice(2).toLowerCase();o.addEventListener(l,c);let a=()=>o.removeEventListener(l,c);o._cleanups.add(a),S(a)}else if(_(c)){let l=x(()=>{let a=B(t,c());if(t==="class")o.className=a||"";else if(a==null)o.removeAttribute(t);else if(t==="style"&&typeof a==="string")o.setAttribute("style",a);else if(t in o&&!r)o[t]=a;else o.setAttribute(t,a===!0?"":a)});if(l(),o._cleanups.add(()=>g(l)),S(()=>g(l)),/^(INPUT|TEXTAREA|SELECT)$/.test(o.tagName)&&(t==="value"||t==="checked")){let a=t==="checked"?"change":"input";o.addEventListener(a,(f)=>c(f.target[t]))}}else{let l=B(t,c);if(l!=null)if(t==="style"&&typeof l==="string")o.setAttribute("style",l);else if(t in o&&!r)o[t]=l;else o.setAttribute(t,l===!0?"":l)}}let i=(t)=>{if(b(t))return t.forEach(i);if(_(t)){let c=E.createTextNode("");o.appendChild(c);let l=[],a=x(()=>{let f=t(),u=(b(f)?f:[f]).map(V);l.forEach((p)=>{if(p._isRuntime)p.destroy();else U(p);if(p.parentNode)p.remove()});let h=c;for(let p=u.length-1;p>=0;p--){let y=u[p];if(y.parentNode!==h.parentNode)h.parentNode?.insertBefore(y,h);if(y._mounts)y._mounts.forEach((G)=>G());h=y}l=u});a(),o._cleanups.add(()=>g(a)),S(()=>g(a))}else{let c=V(t);if(o.appendChild(c),c._mounts)c._mounts.forEach((l)=>l())}};return i(n),o},j=(e)=>{let s=new Set,n=m,r=d,o=E.createElement("div");o.style.display="contents",o.setAttribute("role","presentation"),m={_cleanups:s},d=null;let i=(t)=>{if(!t)return;if(t._isRuntime)s.add(t.destroy),o.appendChild(t.container);else if(b(t))t.forEach(i);else o.appendChild(t instanceof Node?t:E.createTextNode(String(t==null?"":t)))};try{i(e({onCleanup:(t)=>s.add(t)}))}finally{m=n,d=r}return{_isRuntime:!0,container:o,destroy:()=>{s.forEach((t)=>t()),U(o),o.remove()}}},F=(e,s,n=null)=>{let r=E.createTextNode(""),o=A("div",{style:"display:contents"},[r]),i=null;return C(()=>!!(_(e)?e():e),(t)=>{if(i)i.destroy(),i=null;let c=t?s:n;if(c)i=j(()=>_(c)?c():c),o.insertBefore(i.container,r)}),S(()=>i?.destroy()),o},H=(e,s,n)=>{let r=E.createTextNode(""),o=A("div",{style:"display:contents"},[r]),i=new Map;return C(()=>(_(e)?e():e)||[],(t)=>{let c=new Map,l=[],a=t||[];for(let u=0;us(h,u));else i.delete(p);c.set(p,y),l.push(y)}i.forEach((u)=>u.destroy());let f=r;for(let u=l.length-1;u>=0;u--){let p=l[u].container;if(p.nextSibling!==f)o.insertBefore(p,f);f=p}i=c}),o},N=(e)=>{let s=()=>window.location.hash.slice(1)||"/",n=P(s()),r=()=>n(s());window.addEventListener("hashchange",r),S(()=>window.removeEventListener("hashchange",r));let o=A("div",{class:"router-hook"}),i=null;return C([n],()=>{let t=n(),c=e.find((l)=>{let a=l.path.split("/").filter(Boolean),f=t.split("/").filter(Boolean);return a.length===f.length&&a.every((u,h)=>u[0]===":"||u===f[h])})||e.find((l)=>l.path==="*");if(c){i?.destroy();let l={};c.path.split("/").filter(Boolean).forEach((a,f)=>{if(a[0]===":")l[a.slice(1)]=t.split("/").filter(Boolean)[f]}),N.params(l),i=j(()=>_(c.component)?c.component(l):c.component),o.replaceChildren(i.container)}}),o};N.params=P({});N.to=(e)=>window.location.hash=e.replace(/^#?\/?/,"#/");N.back=()=>window.history.back();N.path=()=>window.location.hash.replace(/^#/,"")||"/";var Y=(e,s)=>{let n=typeof s==="string"?E.querySelector(s):s;if(!n)return;if(L.has(n))L.get(n).destroy();let r=j(_(e)?e:()=>e);return n.replaceChildren(r.container),L.set(n,r),r};if(typeof window<"u")Object.assign(window,{$:P,$$:D,watch:C,h:A,when:F,each:H,router:N,mount:Y,batch:z,onUnmount:S,isArr:b,isFunc:_,isObj:O}),"a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((e)=>{window[e]=(s,n)=>A(e,s,n)});export{F as when,C as watch,N as router,S as onUnmount,Y as mount,O as isObj,_ as isFunc,b as isArr,A as h,H as each,z as batch,D as $$,P as $}; +var _=(e)=>typeof e==="function",O=(e)=>e&&typeof e==="object",E=Array.isArray,b=typeof document<"u"?document:null,P=(e)=>e?._isRuntime?e.container:e instanceof Node?e:b.createTextNode(e==null?"":String(e)),d=null,m=null,v=!1,R=0,T=new Set,V=new WeakMap,j=Symbol("iter"),k=new WeakMap,W="http://www.w3.org/2000/svg",I="http://www.w3.org/1999/xlink",q=new Set("svg,path,circle,rect,line,polyline,polygon,g,defs,text,textPath,tspan,use,symbol,image,marker,ellipse".split(",")),g=(e)=>{if(!e||e._disposed)return;e._disposed=!0;let o=[e];while(o.length){let n=o.pop();if(n._cleanups)n._cleanups.forEach((r)=>r()),n._cleanups.clear();if(n._children)n._children.forEach((r)=>o.push(r)),n._children.clear();if(n._deps)n._deps.forEach((r)=>r.delete(n)),n._deps.clear()}},S=(e)=>{if(m)(m._cleanups||=new Set).add(e)},F=(e)=>{let o=d;d=null;try{return e()}finally{d=o}},A=(e,o=!1)=>{let n=()=>{if(n._disposed)return;if(n._deps)n._deps.forEach((i)=>i.delete(n));if(n._cleanups)n._cleanups.forEach((i)=>i()),n._cleanups.clear();let r=d,s=m;d=m=n;try{return n._result=e()}catch(i){console.error("[SigPro]",i)}finally{d=r,m=s}};if(n._deps=n._cleanups=n._children=null,n._disposed=!1,n._isComputed=o,n._depth=d?d._depth+1:0,n._mounts=[],n._parent=m,m)(m._children||=new Set).add(n);return n},M=()=>{if(v)return;v=!0;let e=Array.from(T).sort((o,n)=>o._depth-n._depth);T.clear();for(let o of e)if(!o._disposed)o();v=!1},K=(e)=>{R++;try{return e()}finally{if(R--,R===0&&T.size>0&&!v)M()}},w=(e,o=!1)=>{if(!o&&d&&!d._disposed)e.add(d),(d._deps||=new Set).add(e);else if(o&&e.size>0){let n=!1;for(let r of e){if(r===d||r._disposed)continue;if(r._isComputed){if(r._dirty=!0,r._subs)w(r._subs,!0)}else T.add(r),n=!0}if(n&&!v&&R===0)queueMicrotask(M)}},U=(e,o=null)=>{let n=new Set;if(_(e)){let r,s=()=>{if(s._dirty){let i=d;d=s;try{let t=e();if(!Object.is(r,t))r=t,w(n,!0)}finally{d=i}s._dirty=!1}return w(n),r};return s._isComputed=!0,s._subs=n,s._dirty=!0,s._deps=null,s._disposed=!1,s}if(o)try{e=JSON.parse(localStorage.getItem(o))??e}catch(r){}return(...r)=>{if(r.length){let s=_(r[0])?r[0](e):r[0];if(!Object.is(e,s)){if(e=s,o)localStorage.setItem(o,JSON.stringify(e));w(n,!0)}}return w(n),e}},D=(e)=>{if(!O(e))return e;let o=V.get(e);if(o)return o;let n=new Map,r=(i)=>{let t=n.get(i);if(!t)n.set(i,t=new Set);return t},s=new Proxy(e,{get(i,t,c){if(typeof t!=="symbol")w(r(t));return D(Reflect.get(i,t,c))},set(i,t,c,l){let a=Reflect.has(i,t),f=Reflect.get(i,t,l),u=Reflect.set(i,t,c,l);if(u&&!Object.is(f,c)){if(w(r(t),!0),!a)w(r(j),!0)}return u},deleteProperty(i,t){let c=Reflect.deleteProperty(i,t);if(c)w(r(t),!0),w(r(j),!0);return c},ownKeys(i){return w(r(j)),Reflect.ownKeys(i)}});return V.set(e,s),s},C=(e,o)=>{if(o===void 0){let r=A(e);return r(),()=>g(r)}let n=A(()=>{let r=Array.isArray(e)?e.map((s)=>s()):e();F(()=>o(r))});return n(),()=>g(n)},B=(e)=>{if(!e)return;if(e._cleanups)e._cleanups.forEach((o)=>o()),e._cleanups.clear();if(e._ownerEffect)g(e._ownerEffect);if(e.childNodes)e.childNodes.forEach((o)=>B(o))},z=/^\s*(javascript|data|vbscript):/i,J=new Set(["src","href","formaction","action","background","code","archive"]),Q=(e)=>J.has(e)||e.startsWith("on"),L=(e,o)=>{if(o==null||o===!1)return null;if(Q(e)){let n=String(o);if(z.test(n))return console.warn(`[SigPro] Bloqueado protocolo peligroso en ${e}`),"#"}return o},x=(e,o={},n=[])=>{if(o instanceof Node||E(o)||!O(o))n=o,o={};if(_(e)){let t=A(()=>{let f=e(o,{children:n,emit:(u,...h)=>o[`on${u[0].toUpperCase()}${u.slice(1)}`]?.(...h)});return t._result=f,f});t();let c=t._result;if(c==null)return null;let l=c instanceof Node||E(c)&&c.every((f)=>f instanceof Node)?c:b.createTextNode(String(c)),a=(f)=>{if(O(f)&&!f._isRuntime)f._mounts=t._mounts||[],f._cleanups=t._cleanups||new Set,f._ownerEffect=t};return E(l)?l.forEach(a):a(l),l}let r=q.has(e),s=r?b.createElementNS(W,e):b.createElement(e);s._cleanups=new Set;for(let t of Object.keys(o)){let c=o[t];if(t==="ref"){_(c)?c(s):c.current=s;continue}if(r&&t.startsWith("xlink:")){let l=L(t.slice(6),c);l==null?s.removeAttributeNS(I,t.slice(6)):s.setAttributeNS(I,t.slice(6),l);continue}if(t.startsWith("on")){let l=t.slice(2).toLowerCase();s.addEventListener(l,c);let a=()=>s.removeEventListener(l,c);s._cleanups.add(a),S(a)}else if(_(c)){let l=A(()=>{let a=L(t,c());if(t==="class")s.className=a||"";else if(a==null)s.removeAttribute(t);else if(t==="style"&&typeof a==="string")s.setAttribute("style",a);else if(t in s&&!r)s[t]=a;else s.setAttribute(t,a===!0?"":a)});if(l(),s._cleanups.add(()=>g(l)),S(()=>g(l)),/^(INPUT|TEXTAREA|SELECT)$/.test(s.tagName)&&(t==="value"||t==="checked")){let a=t==="checked"?"change":"input";s.addEventListener(a,(f)=>c(f.target[t]))}}else{let l=L(t,c);if(l!=null)if(t==="style"&&typeof l==="string")s.setAttribute("style",l);else if(t in s&&!r)s[t]=l;else s.setAttribute(t,l===!0?"":l)}}let i=(t)=>{if(E(t))return t.forEach(i);if(_(t)){let c=b.createTextNode("");s.appendChild(c);let l=[],a=A(()=>{let f=t(),u=(E(f)?f:[f]).map(P);l.forEach((p)=>{if(p._isRuntime)p.destroy();else B(p);if(p.parentNode)p.remove()});let h=c;for(let p=u.length-1;p>=0;p--){let y=u[p];if(y.parentNode!==h.parentNode)h.parentNode?.insertBefore(y,h);if(y._mounts)y._mounts.forEach((G)=>G());h=y}l=u});a(),s._cleanups.add(()=>g(a)),S(()=>g(a))}else{let c=P(t);if(s.appendChild(c),c._mounts)c._mounts.forEach((l)=>l())}};return i(n),s},$=(e)=>{let o=new Set,n=m,r=d,s=b.createElement("div");s.style.display="contents",s.setAttribute("role","presentation"),m={_cleanups:o},d=null;let i=(t)=>{if(!t)return;if(t._isRuntime)o.add(t.destroy),s.appendChild(t.container);else if(E(t))t.forEach(i);else s.appendChild(t instanceof Node?t:b.createTextNode(String(t==null?"":t)))};try{i(e({onCleanup:(t)=>o.add(t)}))}finally{m=n,d=r}return{_isRuntime:!0,container:s,destroy:()=>{o.forEach((t)=>t()),B(s),s.remove()}}},X=(e,o,n=null)=>{let r=b.createTextNode(""),s=x("div",{style:"display:contents"},[r]),i=null;return C(()=>!!(_(e)?e():e),(t)=>{if(i)i.destroy(),i=null;let c=t?o:n;if(c)i=$(()=>_(c)?c():c),s.insertBefore(i.container,r)}),S(()=>i?.destroy()),s},H=(e,o,n)=>{let r=b.createTextNode(""),s=x("div",{style:"display:contents"},[r]),i=new Map;return C(()=>(_(e)?e():e)||[],(t)=>{let c=new Map,l=[],a=t||[];for(let u=0;uo(h,u));else i.delete(p);c.set(p,y),l.push(y)}i.forEach((u)=>u.destroy());let f=r;for(let u=l.length-1;u>=0;u--){let p=l[u].container;if(p.nextSibling!==f)s.insertBefore(p,f);f=p}i=c}),s},N=(e)=>{let o=()=>window.location.hash.slice(1)||"/",n=U(o()),r=()=>n(o());window.addEventListener("hashchange",r),S(()=>window.removeEventListener("hashchange",r));let s=x("div",{class:"router-hook"}),i=null;return C([n],()=>{let t=n(),c=e.find((l)=>{let a=l.path.split("/").filter(Boolean),f=t.split("/").filter(Boolean);return a.length===f.length&&a.every((u,h)=>u[0]===":"||u===f[h])})||e.find((l)=>l.path==="*");if(c){i?.destroy();let l={};c.path.split("/").filter(Boolean).forEach((a,f)=>{if(a[0]===":")l[a.slice(1)]=t.split("/").filter(Boolean)[f]}),N.params(l),i=$(()=>_(c.component)?c.component(l):c.component),s.replaceChildren(i.container)}}),s};N.params=U({});N.to=(e)=>window.location.hash=e.replace(/^#?\/?/,"#/");N.back=()=>window.history.back();N.path=()=>window.location.hash.replace(/^#/,"")||"/";var Y=(e)=>e.children,Z=(e,o)=>{let n=typeof o==="string"?b.querySelector(o):o;if(!n)return;if(k.has(n))k.get(n).destroy();let r=$(_(e)?e:()=>e);return n.replaceChildren(r.container),k.set(n,r),r};if(typeof window<"u")"a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((e)=>{window[e]=(o,n)=>x(e,o,n)});export{X as when,C as watch,N as router,S as onUnmount,Z as mount,O as isObj,_ as isFunc,E as isArr,x as h,H as each,K as batch,Y as Fragment,D as $$,U as $}; diff --git a/dist/sigpro.js b/dist/sigpro.js index 9738d8c..4b85778 100644 --- a/dist/sigpro.js +++ b/dist/sigpro.js @@ -1,60 +1,4 @@ (() => { - var __defProp = Object.defineProperty; - var __getOwnPropNames = Object.getOwnPropertyNames; - var __getOwnPropDesc = Object.getOwnPropertyDescriptor; - var __hasOwnProp = Object.prototype.hasOwnProperty; - function __accessProp(key) { - return this[key]; - } - var __toCommonJS = (from) => { - var entry = (__moduleCache ??= new WeakMap).get(from), desc; - if (entry) - return entry; - entry = __defProp({}, "__esModule", { value: true }); - if (from && typeof from === "object" || typeof from === "function") { - for (var key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(entry, key)) - __defProp(entry, key, { - get: __accessProp.bind(from, key), - enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable - }); - } - __moduleCache.set(from, entry); - return entry; - }; - var __moduleCache; - var __returnValue = (v) => v; - function __exportSetter(name, newValue) { - this[name] = __returnValue.bind(null, newValue); - } - var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { - get: all[name], - enumerable: true, - configurable: true, - set: __exportSetter.bind(all, name) - }); - }; - - // index.js - var exports_sigpro = {}; - __export(exports_sigpro, { - when: () => when, - watch: () => watch, - router: () => router, - onUnmount: () => onUnmount, - mount: () => mount, - isObj: () => isObj, - isFunc: () => isFunc, - isArr: () => isArr, - h: () => h, - each: () => each, - batch: () => batch, - $$: () => $$, - $: () => $ - }); - // sigpro.js var isFunc = (f) => typeof f === "function"; var isObj = (o) => o && typeof o === "object"; @@ -559,6 +503,7 @@ router.to = (p) => window.location.hash = p.replace(/^#?\/?/, "#/"); router.back = () => window.history.back(); router.path = () => window.location.hash.replace(/^#/, "") || "/"; + var Fragment = (props) => props.children; var mount = (comp, target) => { const t = typeof target === "string" ? doc.querySelector(target) : target; if (!t) @@ -570,8 +515,10 @@ MOUNTED_NODES.set(t, inst); return inst; }; + + // sigpro_IIFE.js if (typeof window !== "undefined") { - Object.assign(window, { $, $$, watch, h, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj }); + Object.assign(window, { $, $$, watch, h, Fragment, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj }); "a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((tag) => { window[tag] = (props, children) => h(tag, props, children); }); diff --git a/dist/sigpro.min.js b/dist/sigpro.min.js index b0a0304..311d1c4 100644 --- a/dist/sigpro.min.js +++ b/dist/sigpro.min.js @@ -1 +1 @@ -(()=>{var{defineProperty:L,getOwnPropertyNames:X,getOwnPropertyDescriptor:F}=Object,H=Object.prototype.hasOwnProperty;function Y(e){return this[e]}var Z=(e)=>{var s=(M??=new WeakMap).get(e),t;if(s)return s;if(s=L({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function"){for(var o of X(e))if(!H.call(s,o))L(s,o,{get:Y.bind(e,o),enumerable:!(t=F(e,o))||t.enumerable})}return M.set(e,s),s},M;var ee=(e)=>e;function te(e,s){this[e]=ee.bind(null,s)}var ne=(e,s)=>{for(var t in s)L(e,t,{get:s[t],enumerable:!0,configurable:!0,set:te.bind(s,t)})};var ae={};ne(ae,{when:()=>K,watch:()=>O,router:()=>N,onUnmount:()=>S,mount:()=>J,isObj:()=>R,isFunc:()=>_,isArr:()=>b,h:()=>v,each:()=>z,batch:()=>q,$$:()=>V,$:()=>j});var _=(e)=>typeof e==="function",R=(e)=>e&&typeof e==="object",b=Array.isArray,E=typeof document<"u"?document:null,$=(e)=>e?._isRuntime?e.container:e instanceof Node?e:E.createTextNode(e==null?"":String(e)),d=null,m=null,x=!1,T=0,C=new Set,D=new WeakMap,B=Symbol("iter"),P=new WeakMap,se="http://www.w3.org/2000/svg",G="http://www.w3.org/1999/xlink",oe=new Set("svg,path,circle,rect,line,polyline,polygon,g,defs,text,textPath,tspan,use,symbol,image,marker,ellipse".split(",")),g=(e)=>{if(!e||e._disposed)return;e._disposed=!0;let s=[e];while(s.length){let t=s.pop();if(t._cleanups)t._cleanups.forEach((o)=>o()),t._cleanups.clear();if(t._children)t._children.forEach((o)=>s.push(o)),t._children.clear();if(t._deps)t._deps.forEach((o)=>o.delete(t)),t._deps.clear()}},S=(e)=>{if(m)(m._cleanups||=new Set).add(e)},re=(e)=>{let s=d;d=null;try{return e()}finally{d=s}},A=(e,s=!1)=>{let t=()=>{if(t._disposed)return;if(t._deps)t._deps.forEach((i)=>i.delete(t));if(t._cleanups)t._cleanups.forEach((i)=>i()),t._cleanups.clear();let o=d,r=m;d=m=t;try{return t._result=e()}catch(i){console.error("[SigPro]",i)}finally{d=o,m=r}};if(t._deps=t._cleanups=t._children=null,t._disposed=!1,t._isComputed=s,t._depth=d?d._depth+1:0,t._mounts=[],t._parent=m,m)(m._children||=new Set).add(t);return t},W=()=>{if(x)return;x=!0;let e=Array.from(C).sort((s,t)=>s._depth-t._depth);C.clear();for(let s of e)if(!s._disposed)s();x=!1},q=(e)=>{T++;try{return e()}finally{if(T--,T===0&&C.size>0&&!x)W()}},w=(e,s=!1)=>{if(!s&&d&&!d._disposed)e.add(d),(d._deps||=new Set).add(e);else if(s&&e.size>0){let t=!1;for(let o of e){if(o===d||o._disposed)continue;if(o._isComputed){if(o._dirty=!0,o._subs)w(o._subs,!0)}else C.add(o),t=!0}if(t&&!x&&T===0)queueMicrotask(W)}},j=(e,s=null)=>{let t=new Set;if(_(e)){let o,r=()=>{if(r._dirty){let i=d;d=r;try{let n=e();if(!Object.is(o,n))o=n,w(t,!0)}finally{d=i}r._dirty=!1}return w(t),o};return r._isComputed=!0,r._subs=t,r._dirty=!0,r._deps=null,r._disposed=!1,r}if(s)try{e=JSON.parse(localStorage.getItem(s))??e}catch(o){}return(...o)=>{if(o.length){let r=_(o[0])?o[0](e):o[0];if(!Object.is(e,r)){if(e=r,s)localStorage.setItem(s,JSON.stringify(e));w(t,!0)}}return w(t),e}},V=(e)=>{if(!R(e))return e;let s=D.get(e);if(s)return s;let t=new Map,o=(i)=>{let n=t.get(i);if(!n)t.set(i,n=new Set);return n},r=new Proxy(e,{get(i,n,c){if(typeof n!=="symbol")w(o(n));return V(Reflect.get(i,n,c))},set(i,n,c,l){let a=Reflect.has(i,n),f=Reflect.get(i,n,l),u=Reflect.set(i,n,c,l);if(u&&!Object.is(f,c)){if(w(o(n),!0),!a)w(o(B),!0)}return u},deleteProperty(i,n){let c=Reflect.deleteProperty(i,n);if(c)w(o(n),!0),w(o(B),!0);return c},ownKeys(i){return w(o(B)),Reflect.ownKeys(i)}});return D.set(e,r),r},O=(e,s)=>{if(s===void 0){let o=A(e);return o(),()=>g(o)}let t=A(()=>{let o=Array.isArray(e)?e.map((r)=>r()):e();re(()=>s(o))});return t(),()=>g(t)},I=(e)=>{if(!e)return;if(e._cleanups)e._cleanups.forEach((s)=>s()),e._cleanups.clear();if(e._ownerEffect)g(e._ownerEffect);if(e.childNodes)e.childNodes.forEach((s)=>I(s))},ce=/^\s*(javascript|data|vbscript):/i,ie=new Set(["src","href","formaction","action","background","code","archive"]),le=(e)=>ie.has(e)||e.startsWith("on"),U=(e,s)=>{if(s==null||s===!1)return null;if(le(e)){let t=String(s);if(ce.test(t))return console.warn(`[SigPro] Bloqueado protocolo peligroso en ${e}`),"#"}return s},v=(e,s={},t=[])=>{if(s instanceof Node||b(s)||!R(s))t=s,s={};if(_(e)){let n=A(()=>{let f=e(s,{children:t,emit:(u,...h)=>s[`on${u[0].toUpperCase()}${u.slice(1)}`]?.(...h)});return n._result=f,f});n();let c=n._result;if(c==null)return null;let l=c instanceof Node||b(c)&&c.every((f)=>f instanceof Node)?c:E.createTextNode(String(c)),a=(f)=>{if(R(f)&&!f._isRuntime)f._mounts=n._mounts||[],f._cleanups=n._cleanups||new Set,f._ownerEffect=n};return b(l)?l.forEach(a):a(l),l}let o=oe.has(e),r=o?E.createElementNS(se,e):E.createElement(e);r._cleanups=new Set;for(let n of Object.keys(s)){let c=s[n];if(n==="ref"){_(c)?c(r):c.current=r;continue}if(o&&n.startsWith("xlink:")){let l=U(n.slice(6),c);l==null?r.removeAttributeNS(G,n.slice(6)):r.setAttributeNS(G,n.slice(6),l);continue}if(n.startsWith("on")){let l=n.slice(2).toLowerCase();r.addEventListener(l,c);let a=()=>r.removeEventListener(l,c);r._cleanups.add(a),S(a)}else if(_(c)){let l=A(()=>{let a=U(n,c());if(n==="class")r.className=a||"";else if(a==null)r.removeAttribute(n);else if(n==="style"&&typeof a==="string")r.setAttribute("style",a);else if(n in r&&!o)r[n]=a;else r.setAttribute(n,a===!0?"":a)});if(l(),r._cleanups.add(()=>g(l)),S(()=>g(l)),/^(INPUT|TEXTAREA|SELECT)$/.test(r.tagName)&&(n==="value"||n==="checked")){let a=n==="checked"?"change":"input";r.addEventListener(a,(f)=>c(f.target[n]))}}else{let l=U(n,c);if(l!=null)if(n==="style"&&typeof l==="string")r.setAttribute("style",l);else if(n in r&&!o)r[n]=l;else r.setAttribute(n,l===!0?"":l)}}let i=(n)=>{if(b(n))return n.forEach(i);if(_(n)){let c=E.createTextNode("");r.appendChild(c);let l=[],a=A(()=>{let f=n(),u=(b(f)?f:[f]).map($);l.forEach((p)=>{if(p._isRuntime)p.destroy();else I(p);if(p.parentNode)p.remove()});let h=c;for(let p=u.length-1;p>=0;p--){let y=u[p];if(y.parentNode!==h.parentNode)h.parentNode?.insertBefore(y,h);if(y._mounts)y._mounts.forEach((Q)=>Q());h=y}l=u});a(),r._cleanups.add(()=>g(a)),S(()=>g(a))}else{let c=$(n);if(r.appendChild(c),c._mounts)c._mounts.forEach((l)=>l())}};return i(t),r},k=(e)=>{let s=new Set,t=m,o=d,r=E.createElement("div");r.style.display="contents",r.setAttribute("role","presentation"),m={_cleanups:s},d=null;let i=(n)=>{if(!n)return;if(n._isRuntime)s.add(n.destroy),r.appendChild(n.container);else if(b(n))n.forEach(i);else r.appendChild(n instanceof Node?n:E.createTextNode(String(n==null?"":n)))};try{i(e({onCleanup:(n)=>s.add(n)}))}finally{m=t,d=o}return{_isRuntime:!0,container:r,destroy:()=>{s.forEach((n)=>n()),I(r),r.remove()}}},K=(e,s,t=null)=>{let o=E.createTextNode(""),r=v("div",{style:"display:contents"},[o]),i=null;return O(()=>!!(_(e)?e():e),(n)=>{if(i)i.destroy(),i=null;let c=n?s:t;if(c)i=k(()=>_(c)?c():c),r.insertBefore(i.container,o)}),S(()=>i?.destroy()),r},z=(e,s,t)=>{let o=E.createTextNode(""),r=v("div",{style:"display:contents"},[o]),i=new Map;return O(()=>(_(e)?e():e)||[],(n)=>{let c=new Map,l=[],a=n||[];for(let u=0;us(h,u));else i.delete(p);c.set(p,y),l.push(y)}i.forEach((u)=>u.destroy());let f=o;for(let u=l.length-1;u>=0;u--){let p=l[u].container;if(p.nextSibling!==f)r.insertBefore(p,f);f=p}i=c}),r},N=(e)=>{let s=()=>window.location.hash.slice(1)||"/",t=j(s()),o=()=>t(s());window.addEventListener("hashchange",o),S(()=>window.removeEventListener("hashchange",o));let r=v("div",{class:"router-hook"}),i=null;return O([t],()=>{let n=t(),c=e.find((l)=>{let a=l.path.split("/").filter(Boolean),f=n.split("/").filter(Boolean);return a.length===f.length&&a.every((u,h)=>u[0]===":"||u===f[h])})||e.find((l)=>l.path==="*");if(c){i?.destroy();let l={};c.path.split("/").filter(Boolean).forEach((a,f)=>{if(a[0]===":")l[a.slice(1)]=n.split("/").filter(Boolean)[f]}),N.params(l),i=k(()=>_(c.component)?c.component(l):c.component),r.replaceChildren(i.container)}}),r};N.params=j({});N.to=(e)=>window.location.hash=e.replace(/^#?\/?/,"#/");N.back=()=>window.history.back();N.path=()=>window.location.hash.replace(/^#/,"")||"/";var J=(e,s)=>{let t=typeof s==="string"?E.querySelector(s):s;if(!t)return;if(P.has(t))P.get(t).destroy();let o=k(_(e)?e:()=>e);return t.replaceChildren(o.container),P.set(t,o),o};if(typeof window<"u")Object.assign(window,{$:j,$$:V,watch:O,h:v,when:K,each:z,router:N,mount:J,batch:q,onUnmount:S,isArr:b,isFunc:_,isObj:R}),"a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((e)=>{window[e]=(s,t)=>v(e,s,t)});})(); +(()=>{var _=(e)=>typeof e==="function",O=(e)=>e&&typeof e==="object",g=Array.isArray,b=typeof document<"u"?document:null,V=(e)=>e?._isRuntime?e.container:e instanceof Node?e:b.createTextNode(e==null?"":String(e)),d=null,m=null,A=!1,T=0,C=new Set,I=new WeakMap,k=Symbol("iter"),L=new WeakMap,J="http://www.w3.org/2000/svg",M="http://www.w3.org/1999/xlink",Q=new Set("svg,path,circle,rect,line,polyline,polygon,g,defs,text,textPath,tspan,use,symbol,image,marker,ellipse".split(",")),E=(e)=>{if(!e||e._disposed)return;e._disposed=!0;let s=[e];while(s.length){let n=s.pop();if(n._cleanups)n._cleanups.forEach((r)=>r()),n._cleanups.clear();if(n._children)n._children.forEach((r)=>s.push(r)),n._children.clear();if(n._deps)n._deps.forEach((r)=>r.delete(n)),n._deps.clear()}},S=(e)=>{if(m)(m._cleanups||=new Set).add(e)},X=(e)=>{let s=d;d=null;try{return e()}finally{d=s}},x=(e,s=!1)=>{let n=()=>{if(n._disposed)return;if(n._deps)n._deps.forEach((i)=>i.delete(n));if(n._cleanups)n._cleanups.forEach((i)=>i()),n._cleanups.clear();let r=d,o=m;d=m=n;try{return n._result=e()}catch(i){console.error("[SigPro]",i)}finally{d=r,m=o}};if(n._deps=n._cleanups=n._children=null,n._disposed=!1,n._isComputed=s,n._depth=d?d._depth+1:0,n._mounts=[],n._parent=m,m)(m._children||=new Set).add(n);return n},D=()=>{if(A)return;A=!0;let e=Array.from(C).sort((s,n)=>s._depth-n._depth);C.clear();for(let s of e)if(!s._disposed)s();A=!1},G=(e)=>{T++;try{return e()}finally{if(T--,T===0&&C.size>0&&!A)D()}},w=(e,s=!1)=>{if(!s&&d&&!d._disposed)e.add(d),(d._deps||=new Set).add(e);else if(s&&e.size>0){let n=!1;for(let r of e){if(r===d||r._disposed)continue;if(r._isComputed){if(r._dirty=!0,r._subs)w(r._subs,!0)}else C.add(r),n=!0}if(n&&!A&&T===0)queueMicrotask(D)}},j=(e,s=null)=>{let n=new Set;if(_(e)){let r,o=()=>{if(o._dirty){let i=d;d=o;try{let t=e();if(!Object.is(r,t))r=t,w(n,!0)}finally{d=i}o._dirty=!1}return w(n),r};return o._isComputed=!0,o._subs=n,o._dirty=!0,o._deps=null,o._disposed=!1,o}if(s)try{e=JSON.parse(localStorage.getItem(s))??e}catch(r){}return(...r)=>{if(r.length){let o=_(r[0])?r[0](e):r[0];if(!Object.is(e,o)){if(e=o,s)localStorage.setItem(s,JSON.stringify(e));w(n,!0)}}return w(n),e}},B=(e)=>{if(!O(e))return e;let s=I.get(e);if(s)return s;let n=new Map,r=(i)=>{let t=n.get(i);if(!t)n.set(i,t=new Set);return t},o=new Proxy(e,{get(i,t,c){if(typeof t!=="symbol")w(r(t));return B(Reflect.get(i,t,c))},set(i,t,c,l){let a=Reflect.has(i,t),f=Reflect.get(i,t,l),u=Reflect.set(i,t,c,l);if(u&&!Object.is(f,c)){if(w(r(t),!0),!a)w(r(k),!0)}return u},deleteProperty(i,t){let c=Reflect.deleteProperty(i,t);if(c)w(r(t),!0),w(r(k),!0);return c},ownKeys(i){return w(r(k)),Reflect.ownKeys(i)}});return I.set(e,o),o},R=(e,s)=>{if(s===void 0){let r=x(e);return r(),()=>E(r)}let n=x(()=>{let r=Array.isArray(e)?e.map((o)=>o()):e();X(()=>s(r))});return n(),()=>E(n)},P=(e)=>{if(!e)return;if(e._cleanups)e._cleanups.forEach((s)=>s()),e._cleanups.clear();if(e._ownerEffect)E(e._ownerEffect);if(e.childNodes)e.childNodes.forEach((s)=>P(s))},H=/^\s*(javascript|data|vbscript):/i,Y=new Set(["src","href","formaction","action","background","code","archive"]),Z=(e)=>Y.has(e)||e.startsWith("on"),U=(e,s)=>{if(s==null||s===!1)return null;if(Z(e)){let n=String(s);if(H.test(n))return console.warn(`[SigPro] Bloqueado protocolo peligroso en ${e}`),"#"}return s},v=(e,s={},n=[])=>{if(s instanceof Node||g(s)||!O(s))n=s,s={};if(_(e)){let t=x(()=>{let f=e(s,{children:n,emit:(u,...h)=>s[`on${u[0].toUpperCase()}${u.slice(1)}`]?.(...h)});return t._result=f,f});t();let c=t._result;if(c==null)return null;let l=c instanceof Node||g(c)&&c.every((f)=>f instanceof Node)?c:b.createTextNode(String(c)),a=(f)=>{if(O(f)&&!f._isRuntime)f._mounts=t._mounts||[],f._cleanups=t._cleanups||new Set,f._ownerEffect=t};return g(l)?l.forEach(a):a(l),l}let r=Q.has(e),o=r?b.createElementNS(J,e):b.createElement(e);o._cleanups=new Set;for(let t of Object.keys(s)){let c=s[t];if(t==="ref"){_(c)?c(o):c.current=o;continue}if(r&&t.startsWith("xlink:")){let l=U(t.slice(6),c);l==null?o.removeAttributeNS(M,t.slice(6)):o.setAttributeNS(M,t.slice(6),l);continue}if(t.startsWith("on")){let l=t.slice(2).toLowerCase();o.addEventListener(l,c);let a=()=>o.removeEventListener(l,c);o._cleanups.add(a),S(a)}else if(_(c)){let l=x(()=>{let a=U(t,c());if(t==="class")o.className=a||"";else if(a==null)o.removeAttribute(t);else if(t==="style"&&typeof a==="string")o.setAttribute("style",a);else if(t in o&&!r)o[t]=a;else o.setAttribute(t,a===!0?"":a)});if(l(),o._cleanups.add(()=>E(l)),S(()=>E(l)),/^(INPUT|TEXTAREA|SELECT)$/.test(o.tagName)&&(t==="value"||t==="checked")){let a=t==="checked"?"change":"input";o.addEventListener(a,(f)=>c(f.target[t]))}}else{let l=U(t,c);if(l!=null)if(t==="style"&&typeof l==="string")o.setAttribute("style",l);else if(t in o&&!r)o[t]=l;else o.setAttribute(t,l===!0?"":l)}}let i=(t)=>{if(g(t))return t.forEach(i);if(_(t)){let c=b.createTextNode("");o.appendChild(c);let l=[],a=x(()=>{let f=t(),u=(g(f)?f:[f]).map(V);l.forEach((p)=>{if(p._isRuntime)p.destroy();else P(p);if(p.parentNode)p.remove()});let h=c;for(let p=u.length-1;p>=0;p--){let y=u[p];if(y.parentNode!==h.parentNode)h.parentNode?.insertBefore(y,h);if(y._mounts)y._mounts.forEach((z)=>z());h=y}l=u});a(),o._cleanups.add(()=>E(a)),S(()=>E(a))}else{let c=V(t);if(o.appendChild(c),c._mounts)c._mounts.forEach((l)=>l())}};return i(n),o},$=(e)=>{let s=new Set,n=m,r=d,o=b.createElement("div");o.style.display="contents",o.setAttribute("role","presentation"),m={_cleanups:s},d=null;let i=(t)=>{if(!t)return;if(t._isRuntime)s.add(t.destroy),o.appendChild(t.container);else if(g(t))t.forEach(i);else o.appendChild(t instanceof Node?t:b.createTextNode(String(t==null?"":t)))};try{i(e({onCleanup:(t)=>s.add(t)}))}finally{m=n,d=r}return{_isRuntime:!0,container:o,destroy:()=>{s.forEach((t)=>t()),P(o),o.remove()}}},W=(e,s,n=null)=>{let r=b.createTextNode(""),o=v("div",{style:"display:contents"},[r]),i=null;return R(()=>!!(_(e)?e():e),(t)=>{if(i)i.destroy(),i=null;let c=t?s:n;if(c)i=$(()=>_(c)?c():c),o.insertBefore(i.container,r)}),S(()=>i?.destroy()),o},q=(e,s,n)=>{let r=b.createTextNode(""),o=v("div",{style:"display:contents"},[r]),i=new Map;return R(()=>(_(e)?e():e)||[],(t)=>{let c=new Map,l=[],a=t||[];for(let u=0;us(h,u));else i.delete(p);c.set(p,y),l.push(y)}i.forEach((u)=>u.destroy());let f=r;for(let u=l.length-1;u>=0;u--){let p=l[u].container;if(p.nextSibling!==f)o.insertBefore(p,f);f=p}i=c}),o},N=(e)=>{let s=()=>window.location.hash.slice(1)||"/",n=j(s()),r=()=>n(s());window.addEventListener("hashchange",r),S(()=>window.removeEventListener("hashchange",r));let o=v("div",{class:"router-hook"}),i=null;return R([n],()=>{let t=n(),c=e.find((l)=>{let a=l.path.split("/").filter(Boolean),f=t.split("/").filter(Boolean);return a.length===f.length&&a.every((u,h)=>u[0]===":"||u===f[h])})||e.find((l)=>l.path==="*");if(c){i?.destroy();let l={};c.path.split("/").filter(Boolean).forEach((a,f)=>{if(a[0]===":")l[a.slice(1)]=t.split("/").filter(Boolean)[f]}),N.params(l),i=$(()=>_(c.component)?c.component(l):c.component),o.replaceChildren(i.container)}}),o};N.params=j({});N.to=(e)=>window.location.hash=e.replace(/^#?\/?/,"#/");N.back=()=>window.history.back();N.path=()=>window.location.hash.replace(/^#/,"")||"/";var F=(e)=>e.children,K=(e,s)=>{let n=typeof s==="string"?b.querySelector(s):s;if(!n)return;if(L.has(n))L.get(n).destroy();let r=$(_(e)?e:()=>e);return n.replaceChildren(r.container),L.set(n,r),r};if(typeof window<"u")Object.assign(window,{$:j,$$:B,watch:R,h:v,Fragment:F,when:W,each:q,router:N,mount:K,batch:G,onUnmount:S,isArr:g,isFunc:_,isObj:O}),"a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((e)=>{window[e]=(s,n)=>v(e,s,n)});})(); diff --git a/docs/sigpro.js b/docs/sigpro.js index 9738d8c..4b85778 100644 --- a/docs/sigpro.js +++ b/docs/sigpro.js @@ -1,60 +1,4 @@ (() => { - var __defProp = Object.defineProperty; - var __getOwnPropNames = Object.getOwnPropertyNames; - var __getOwnPropDesc = Object.getOwnPropertyDescriptor; - var __hasOwnProp = Object.prototype.hasOwnProperty; - function __accessProp(key) { - return this[key]; - } - var __toCommonJS = (from) => { - var entry = (__moduleCache ??= new WeakMap).get(from), desc; - if (entry) - return entry; - entry = __defProp({}, "__esModule", { value: true }); - if (from && typeof from === "object" || typeof from === "function") { - for (var key of __getOwnPropNames(from)) - if (!__hasOwnProp.call(entry, key)) - __defProp(entry, key, { - get: __accessProp.bind(from, key), - enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable - }); - } - __moduleCache.set(from, entry); - return entry; - }; - var __moduleCache; - var __returnValue = (v) => v; - function __exportSetter(name, newValue) { - this[name] = __returnValue.bind(null, newValue); - } - var __export = (target, all) => { - for (var name in all) - __defProp(target, name, { - get: all[name], - enumerable: true, - configurable: true, - set: __exportSetter.bind(all, name) - }); - }; - - // index.js - var exports_sigpro = {}; - __export(exports_sigpro, { - when: () => when, - watch: () => watch, - router: () => router, - onUnmount: () => onUnmount, - mount: () => mount, - isObj: () => isObj, - isFunc: () => isFunc, - isArr: () => isArr, - h: () => h, - each: () => each, - batch: () => batch, - $$: () => $$, - $: () => $ - }); - // sigpro.js var isFunc = (f) => typeof f === "function"; var isObj = (o) => o && typeof o === "object"; @@ -559,6 +503,7 @@ router.to = (p) => window.location.hash = p.replace(/^#?\/?/, "#/"); router.back = () => window.history.back(); router.path = () => window.location.hash.replace(/^#/, "") || "/"; + var Fragment = (props) => props.children; var mount = (comp, target) => { const t = typeof target === "string" ? doc.querySelector(target) : target; if (!t) @@ -570,8 +515,10 @@ MOUNTED_NODES.set(t, inst); return inst; }; + + // sigpro_IIFE.js if (typeof window !== "undefined") { - Object.assign(window, { $, $$, watch, h, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj }); + Object.assign(window, { $, $$, watch, h, Fragment, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj }); "a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video".split(" ").forEach((tag) => { window[tag] = (props, children) => h(tag, props, children); }); diff --git a/package.json b/package.json index d75d419..1e51f12 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sigpro", - "version": "1.2.30", + "version": "1.2.31", "type": "module", "license": "MIT", "author": { @@ -8,14 +8,14 @@ "email": "sigpro@natxocc.com", "url": "https://sigpro.natxocc.com" }, - "main": "./dist/sigpro.esm.min.js", + "main": "./dist/sigpro.esm.js", "module": "./dist/sigpro.esm.min.js", "unpkg": "./dist/sigpro.min.js", "jsdelivr": "./dist/sigpro.min.js", "types": "./sigpro.d.ts", "exports": { ".": { - "import": "./dist/sigpro.esm.min.js", + "import": "./dist/sigpro.esm.js", "script": "./dist/sigpro.min.js", "types": "./sigpro.d.ts" }, @@ -23,12 +23,11 @@ "./vite/*": "./vite/*.js" }, "files": [ - "index.js", - "sigpro.js", "dist/", "vite/", "README.md", - "LICENSE" + "LICENSE", + "sigpro.d.ts" ], "homepage": "https://sigpro.natxocc.com/#/", "repository": { @@ -42,11 +41,11 @@ "scripts": { "clean": "rm -rf dist", "prebuild": "npm run clean", - "build:iife": "bun build ./index.js --bundle --outfile=./dist/sigpro.js --format=iife --global-name=SigPro", - "build:docs": "bun build ./index.js --bundle --outfile=./docs/sigpro.js --format=iife --global-name=SigPro", - "build:iife:min": "bun build ./index.js --bundle --outfile=./dist/sigpro.min.js --format=iife --global-name=SigPro --minify", - "build:esm": "bun build ./index.js --bundle --outfile=./dist/sigpro.esm.js --format=esm", - "build:esm:min": "bun build ./index.js --bundle --outfile=./dist/sigpro.esm.min.js --format=esm --minify", + "build:iife": "bun build ./sigpro_IIFE.js --bundle --outfile=./dist/sigpro.js --format=iife --global-name=SigPro", + "build:iife:min": "bun build ./sigpro_IIFE.js --bundle --outfile=./dist/sigpro.min.js --format=iife --global-name=SigPro --minify", + "build:esm": "bun build ./sigpro_ESM.js --bundle --outfile=./dist/sigpro.esm.js --format=esm", + "build:esm:min": "bun build ./sigpro_ESM.js --bundle --outfile=./dist/sigpro.esm.min.js --format=esm --minify", + "build:docs": "bun build ./sigpro_IIFE.js --bundle --outfile=./docs/sigpro.js --format=iife --global-name=SigPro", "build": "bun run build:iife && bun run build:iife:min && bun run build:esm && bun run build:esm:min && bun run build:docs", "docs": "bun x serve docs", "prepublishOnly": "npm run build" diff --git a/sigpro.js b/sigpro.js index 6d5b47e..0842690 100644 --- a/sigpro.js +++ b/sigpro.js @@ -509,11 +509,4 @@ const mount = (comp, target) => { return inst } -if (typeof window !== "undefined") { - Object.assign(window, { $, $$, watch, h, Fragment, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj }) - "a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video" - .split(" ") - .forEach(tag => { window[tag] = (props, children) => h(tag, props, children) }) -} - export { $, $$, watch, batch, h, Fragment, mount, when, each, router, onUnmount, isArr, isFunc, isObj } \ No newline at end of file diff --git a/sigpro_ESM.js b/sigpro_ESM.js new file mode 100644 index 0000000..05192ce --- /dev/null +++ b/sigpro_ESM.js @@ -0,0 +1,7 @@ +import { $, $$, watch, batch, h, Fragment, mount, when, each, router, onUnmount, isArr, isFunc, isObj } from "./sigpro.js" +if (typeof window !== "undefined") { + "a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video" + .split(" ") + .forEach(tag => { window[tag] = (props, children) => h(tag, props, children) }) +} +export { $, $$, watch, batch, h, Fragment, mount, when, each, router, onUnmount, isArr, isFunc, isObj } \ No newline at end of file diff --git a/sigpro_IIFE.js b/sigpro_IIFE.js new file mode 100644 index 0000000..f08c625 --- /dev/null +++ b/sigpro_IIFE.js @@ -0,0 +1,8 @@ +import { $, $$, watch, batch, h, Fragment, mount, when, each, router, onUnmount, isArr, isFunc, isObj } from "./sigpro.js" + +if (typeof window !== "undefined") { + Object.assign(window, { $, $$, watch, h, Fragment, when, each, router, mount, batch, onUnmount, isArr, isFunc, isObj }) + "a abbr article aside audio b blockquote br button canvas caption cite code col colgroup datalist dd del details dfn dialog div dl dt em embed fieldset figcaption figure footer form h1 h2 h3 h4 h5 h6 header hr i iframe img input ins kbd label legend li main mark meter nav object ol optgroup option output p picture pre progress section select slot small source span strong sub summary sup svg table tbody td template textarea tfoot th thead time tr u ul video" + .split(" ") + .forEach(tag => { window[tag] = (props, children) => h(tag, props, children) }) +} \ No newline at end of file