2 lines
8.0 KiB
JavaScript
2 lines
8.0 KiB
JavaScript
(()=>{var{defineProperty:j,getOwnPropertyNames:H,getOwnPropertyDescriptor:X}=Object,Y=Object.prototype.hasOwnProperty;var I=new WeakMap,Z=(e)=>{var n=I.get(e),t;if(n)return n;if(n=j({},"__esModule",{value:!0}),e&&typeof e==="object"||typeof e==="function")H(e).map((o)=>!Y.call(n,o)&&j(n,o,{get:()=>e[o],enumerable:!(t=X(e,o))||t.enumerable}));return I.set(e,n),n};var ee=(e,n)=>{for(var t in n)j(e,t,{get:n[t],enumerable:!0,configurable:!0,set:(o)=>n[t]=()=>o})};var oe={};ee(oe,{onUnmount:()=>g,onMount:()=>k,Watch:()=>C,Tag:()=>T,Router:()=>S,Render:()=>b,Mount:()=>K,If:()=>G,For:()=>J,Batch:()=>F,$$:()=>U,$:()=>M});var m=(e)=>typeof e==="function",$=(e)=>e&&typeof e==="object",v=Array.isArray,E=typeof document<"u"?document:null,W=(e)=>e?._isRuntime?e.container:e instanceof Node?e:E.createTextNode(e==null?"":String(e)),d=null,_=null,x=!1,A=0,R=new Set,B=new WeakMap,P=Symbol("iter"),L=new WeakMap,N=(e)=>{if(!e||e._disposed)return;e._disposed=!0;let n=[e];while(n.length){let t=n.pop();if(t._cleanups)t._cleanups.forEach((o)=>o()),t._cleanups.clear();if(t._children)t._children.forEach((o)=>n.push(o)),t._children.clear();if(t._deps)t._deps.forEach((o)=>o.delete(t)),t._deps.clear()}},k=(e)=>{if(_)(_._mounts||=[]).push(e)},g=(e)=>{if(_)(_._cleanups||=new Set).add(e)},te=(e)=>{let n=d;d=null;try{return e()}finally{d=n}},O=(e,n=!1)=>{let t=()=>{if(t._disposed)return;if(t._deps)t._deps.forEach((s)=>s.delete(t));if(t._cleanups)t._cleanups.forEach((s)=>s()),t._cleanups.clear();let o=d,c=_;d=_=t;try{return t._result=e()}catch(s){console.error("[SigPro]",s)}finally{d=o,_=c}};if(t._deps=t._cleanups=t._children=null,t._disposed=!1,t._isComputed=n,t._depth=d?d._depth+1:0,t._mounts=[],t._parent=_,_)(_._children||=new Set).add(t);return t},z=()=>{if(x)return;x=!0;let e=Array.from(R).sort((n,t)=>n._depth-t._depth);R.clear();for(let n of e)if(!n._disposed)n();x=!1},F=(e)=>{A++;try{return e()}finally{if(A--,A===0&&R.size>0&&!x)z()}},w=(e,n=!1)=>{if(!n&&d&&!d._disposed)e.add(d),(d._deps||=new Set).add(e);else if(n){let t=!1;if(e.forEach((o)=>{if(o===d||o._disposed)return;if(o._isComputed){if(o._dirty=!0,o._subs)w(o._subs,!0)}else R.add(o),t=!0}),t&&!x&&A===0)queueMicrotask(z)}},M=(e,n=null)=>{let t=new Set;if(m(e)){let o,c=!0,s=()=>{if(c){let i=d;d=s;try{let r=e();if(!Object.is(o,r))o=r,c=!1,w(t,!0)}finally{d=i}}return w(t),o};if(s._isComputed=!0,s._subs=t,s._dirty=!0,s._deps=null,s._disposed=!1,s.markDirty=()=>{c=!0},s.stop=()=>{if(s._disposed=!0,s._deps)s._deps.forEach((i)=>i.delete(s)),s._deps.clear();t.clear()},_)g(s.stop);return s}if(n)try{e=JSON.parse(localStorage.getItem(n))??e}catch(o){}return(...o)=>{if(o.length){let c=m(o[0])?o[0](e):o[0];if(!Object.is(e,c)){if(e=c,n)localStorage.setItem(n,JSON.stringify(e));w(t,!0)}}return w(t),e}},U=(e)=>{if(!$(e))return e;if(B.has(e))return B.get(e);let n=new Map,t=(c)=>{let s=n.get(c);if(!s)n.set(c,s=new Set);return s},o=new Proxy(e,{get(c,s){return w(t(s)),U(c[s])},set(c,s,i){let r=!(s in c);if(!Object.is(c[s],i)){if(c[s]=i,w(t(s),!0),r)w(t(P),!0)}return!0},deleteProperty(c,s){let i=Reflect.deleteProperty(c,s);if(i)w(t(s),!0),w(t(P),!0);return i},ownKeys(c){return w(t(P)),Reflect.ownKeys(c)}});return B.set(e,o),o},C=(e,n)=>{if(n===void 0){let o=O(e);return o(),()=>N(o)}let t=O(()=>{let o=Array.isArray(e)?e.map((c)=>c()):e();te(()=>n(o))});return t(),()=>N(t)},D=(e)=>{if(e._cleanups)e._cleanups.forEach((n)=>n()),e._cleanups.clear();if(e._ownerEffect)N(e._ownerEffect);if(e.childNodes)e.childNodes.forEach(D)},ne=/^\s*(javascript|data|vbscript):/i,se=(e)=>e==="src"||e==="href"||e.startsWith("on"),V=(e,n)=>{if(n==null||n===!1)return null;if(se(e)){let t=String(n);if(ne.test(t))return console.warn(`[SigPro] Bloqueado protocolo peligroso en ${e}`),"#"}return n},T=(e,n={},t=[])=>{if(n instanceof Node||v(n)||!$(n))t=n,n={};if(m(e)){let i={_mounts:[],_cleanups:new Set},r=O(()=>{let l=e(n,{children:t,emit:(h,...u)=>n[`on${h[0].toUpperCase()}${h.slice(1)}`]?.(...u)});return r._result=l,l});r();let a=r._result;if(a==null)return null;let f=a instanceof Node||v(a)&&a.every((l)=>l instanceof Node)?a:E.createTextNode(String(a)),p=(l)=>{if($(l)&&!l._isRuntime)l._mounts=r._mounts||[],l._cleanups=r._cleanups||new Set,l._ownerEffect=r};return v(f)?f.forEach(p):p(f),f}let o=/^(svg|path|circle|rect|line|polyline|polygon|g|defs|text|tspan|use)$/.test(e),c=o?E.createElementNS("http://www.w3.org/2000/svg",e):E.createElement(e);c._cleanups=new Set;for(let i in n){if(!n.hasOwnProperty(i))continue;let r=n[i];if(i==="ref"){m(r)?r(c):r.current=c;continue}if(i.startsWith("on")){let a=i.slice(2).toLowerCase();c.addEventListener(a,r);let f=()=>c.removeEventListener(a,r);c._cleanups.add(f),g(f)}else if(m(r)){let a=O(()=>{let f=V(i,r());if(i==="class")c.className=f||"";else if(f==null)c.removeAttribute(i);else if(i in c&&!o)c[i]=f;else c.setAttribute(i,f===!0?"":f)});if(a(),c._cleanups.add(()=>N(a)),g(()=>N(a)),/^(INPUT|TEXTAREA|SELECT)$/.test(c.tagName)&&(i==="value"||i==="checked")){let f=i==="checked"?"change":"input";c.addEventListener(f,(p)=>r(p.target[i]))}}else{let a=V(i,r);if(a!=null)if(i in c&&!o)c[i]=a;else c.setAttribute(i,a===!0?"":a)}}let s=(i)=>{if(v(i))return i.forEach(s);if(m(i)){let r=E.createTextNode("");c.appendChild(r);let a=[],f=O(()=>{let p=i(),l=(v(p)?p:[p]).map(W);a.forEach((u)=>{if(u._isRuntime)u.destroy();else D(u);if(u.parentNode)u.remove()});let h=r;for(let u=l.length-1;u>=0;u--){let y=l[u];if(y.parentNode!==h.parentNode)h.parentNode?.insertBefore(y,h);if(y._mounts)y._mounts.forEach((Q)=>Q());h=y}a=l});f(),c._cleanups.add(()=>N(f)),g(()=>N(f))}else{let r=W(i);if(c.appendChild(r),r._mounts)r._mounts.forEach((a)=>a())}};return s(t),c},b=(e)=>{let n=new Set,t=[],o=_,c=d,s=E.createElement("div");s.style.display="contents",s.setAttribute("role","presentation"),_={_cleanups:n,_mounts:t},d=null;let i=(r)=>{if(!r)return;if(r._isRuntime)n.add(r.destroy),s.appendChild(r.container);else if(v(r))r.forEach(i);else s.appendChild(r instanceof Node?r:E.createTextNode(String(r==null?"":r)))};try{i(e({onCleanup:(r)=>n.add(r)}))}finally{_=o,d=c}return t.forEach((r)=>r()),{_isRuntime:!0,container:s,destroy:()=>{n.forEach((r)=>r()),D(s),s.remove()}}},G=(e,n,t=null)=>{let o=E.createTextNode(""),c=T("div",{style:"display:contents"},[o]),s=null;return C(()=>!!(m(e)?e():e),(i)=>{if(s)s.destroy(),s=null;let r=i?n:t;if(r)s=b(()=>m(r)?r():r),c.insertBefore(s.container,o)}),g(()=>s?.destroy()),c},J=(e,n,t)=>{let o=E.createTextNode(""),c=T("div",{style:"display:contents"},[o]),s=new Map;return C(()=>(m(e)?e():e)||[],(i)=>{let r=new Map,a=[],f=i||[];for(let l=0;l<f.length;l++){let h=f[l],u=t?t(h,l):h?.id??l,y=s.get(u);if(!y)y=b(()=>n(h,l));else s.delete(u);r.set(u,y),a.push(y)}s.forEach((l)=>l.destroy());let p=o;for(let l=a.length-1;l>=0;l--){let u=a[l].container;if(u.nextSibling!==p)c.insertBefore(u,p);p=u}s=r}),c},S=(e)=>{let n=()=>window.location.hash.slice(1)||"/",t=M(n()),o=()=>t(n());window.addEventListener("hashchange",o),g(()=>window.removeEventListener("hashchange",o));let c=T("div",{class:"router-hook"}),s=null;return C([t],()=>{let i=t(),r=e.find((a)=>{let f=a.path.split("/").filter(Boolean),p=i.split("/").filter(Boolean);return f.length===p.length&&f.every((l,h)=>l[0]===":"||l===p[h])})||e.find((a)=>a.path==="*");if(r){s?.destroy();let a={};r.path.split("/").filter(Boolean).forEach((f,p)=>{if(f[0]===":")a[f.slice(1)]=i.split("/").filter(Boolean)[p]}),S.params(a),s=b(()=>m(r.component)?r.component(a):r.component),c.replaceChildren(s.container)}}),c};S.params=M({});S.to=(e)=>window.location.hash=e.replace(/^#?\/?/,"#/");S.back=()=>window.history.back();S.path=()=>window.location.hash.replace(/^#/,"")||"/";var K=(e,n)=>{let t=typeof n==="string"?E.querySelector(n):n;if(!t)return;if(L.has(t))L.get(t).destroy();let o=b(m(e)?e:()=>e);return t.replaceChildren(o.container),L.set(t,o),o},q=Object.freeze({$:M,$$:U,Watch:C,Tag:T,Render:b,If:G,For:J,Router:S,Mount:K,onMount:k,onUnmount:g,Batch:F});if(typeof window<"u")Object.assign(window,q),"div span p h1 h2 h3 h4 h5 h6 br hr section article aside nav main header footer ul ol li a em strong pre code form label input textarea select button img svg".split(" ").forEach((e)=>window[e[0].toUpperCase()+e.slice(1)]=(n,t)=>q.Tag(e,n,t));})();
|