Files
sigpro/dist/sigpro.esm.min.js
natxocc 99780e8399
All checks were successful
Deploy Docs to Synology / deploy (push) Successful in 3s
New modular Sigpro
2026-04-27 15:22:57 +02:00

2 lines
7.0 KiB
JavaScript

var m=(e)=>typeof e==="function",j=(e)=>e&&typeof e==="object",N=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,_=null,b=!1,C=0,R=new Set,I=new WeakMap,O=Symbol("iter"),L=new WeakMap,K="http://www.w3.org/2000/svg",P="http://www.w3.org/1999/xlink",W=new Set("svg,path,circle,rect,line,polyline,polygon,g,defs,text,textPath,tspan,use,symbol,image,marker,ellipse".split(",")),v=null,q=(e)=>{v=e},S=(e)=>{if(!e||e._disposed)return;e._disposed=!0;let r=[e];while(r.length){let n=r.pop();if(n._cleanups)n._cleanups.forEach((o)=>o()),n._cleanups.clear();if(n._children)n._children.forEach((o)=>r.push(o)),n._children.clear();if(n._deps)n._deps.forEach((o)=>o.delete(n)),n._deps.clear()}},g=(e)=>{if(_)(_._cleanups||=new Set).add(e)},D=(e)=>{let r=d;d=null;try{return e()}finally{d=r}},x=(e,r=!1)=>{let n=()=>{if(n._disposed)return;if(n._deps)n._deps.forEach((c)=>c.delete(n));if(n._cleanups)n._cleanups.forEach((c)=>c()),n._cleanups.clear();let o=d,s=_;d=_=n;try{return n._result=e()}catch(c){console.error("[SigPro]",c)}finally{d=o,_=s}};if(n._deps=n._cleanups=n._children=null,n._disposed=!1,n._isComputed=r,n._depth=d?d._depth+1:0,n._mounts=[],n._parent=_,_)(_._children||=new Set).add(n);return n},$=()=>{if(b)return;b=!0;let e=Array.from(R).sort((r,n)=>r._depth-n._depth);R.clear();for(let r of e)if(!r._disposed)r();b=!1},z=(e)=>{C++;try{return e()}finally{if(C--,C===0&&R.size>0&&!b)$()}},w=(e,r=!1)=>{if(!r&&d&&!d._disposed)e.add(d),(d._deps||=new Set).add(e);else if(r&&e.size>0){let n=!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 R.add(o),n=!0}if(n&&!b&&C===0)queueMicrotask($)}},U=(e,r=null)=>{let n=new Set;if(m(e)){let o,s=()=>{if(s._dirty){let c=d;d=s;try{let t=e();if(!Object.is(o,t))o=t,w(n,!0)}finally{d=c}s._dirty=!1}return w(n),o};return s._isComputed=!0,s._subs=n,s._dirty=!0,s._deps=null,s._disposed=!1,s}if(r)try{e=JSON.parse(localStorage.getItem(r))??e}catch(o){}return(...o)=>{if(o.length){let s=m(o[0])?o[0](e):o[0];if(!Object.is(e,s)){if(e=s,r)localStorage.setItem(r,JSON.stringify(e));w(n,!0)}}return w(n),e}},X=(e)=>{if(!j(e))return e;let r=I.get(e);if(r)return r;let n=new Map,o=(c)=>{let t=n.get(c);if(!t)n.set(c,t=new Set);return t},s=new Proxy(e,{get(c,t,i){if(typeof t!=="symbol")w(o(t));return X(Reflect.get(c,t,i))},set(c,t,i,l){let u=Reflect.has(c,t),a=Reflect.get(c,t,l),f=Reflect.set(c,t,i,l);if(f&&!Object.is(a,i)){if(w(o(t),!0),!u)w(o(O),!0)}return f},deleteProperty(c,t){let i=Reflect.deleteProperty(c,t);if(i)w(o(t),!0),w(o(O),!0);return i},ownKeys(c){return w(o(O)),Reflect.ownKeys(c)}});return I.set(e,s),s},k=(e,r)=>{if(r===void 0){let o=x(e);return o(),()=>S(o)}let n=x(()=>{let o=Array.isArray(e)?e.map((s)=>s()):e();D(()=>r(o))});return n(),()=>S(n)},B=(e)=>{if(!e)return;if(e._cleanups)e._cleanups.forEach((r)=>r()),e._cleanups.clear();if(e._ownerEffect)S(e._ownerEffect);if(e.childNodes)e.childNodes.forEach((r)=>B(r))},M=(e,r={},n=[])=>{if(r instanceof Node||N(r)||!j(r))n=r,r={};if(m(e)){let t=x(()=>{let a=e(r,{children:n,emit:(f,...h)=>r[`on${f[0].toUpperCase()}${f.slice(1)}`]?.(...h)});return t._result=a,a});t();let i=t._result;if(i==null)return null;let l=i instanceof Node||N(i)&&i.every((a)=>a instanceof Node)?i:E.createTextNode(String(i)),u=(a)=>{if(j(a)&&!a._isRuntime)a._mounts=t._mounts||[],a._cleanups=t._cleanups||new Set,a._ownerEffect=t};return N(l)?l.forEach(u):u(l),l}let o=W.has(e),s=o?E.createElementNS(K,e):E.createElement(e);s._cleanups=new Set;for(let t of Object.keys(r)){let i=r[t];if(t==="ref"){m(i)?i(s):i.current=s;continue}let l=v?v(t,i):i;if(o&&t.startsWith("xlink:")){l==null?s.removeAttributeNS(P,t.slice(6)):s.setAttributeNS(P,t.slice(6),l);continue}if(t.startsWith("on")){let u=t.slice(2).toLowerCase();s.addEventListener(u,l);let a=()=>s.removeEventListener(u,l);s._cleanups.add(a),g(a)}else if(m(l)){let u=x(()=>{let a=l(),f=v?v(t,a):a;if(t==="class")s.className=f||"";else if(f==null)s.removeAttribute(t);else if(t in s&&!o)s[t]=f;else s.setAttribute(t,f===!0?"":f)});if(u(),s._cleanups.add(()=>S(u)),g(()=>S(u)),/^(INPUT|TEXTAREA|SELECT)$/.test(s.tagName)&&(t==="value"||t==="checked")){let a=t==="checked"?"change":"input";s.addEventListener(a,(f)=>l(f.target[t]))}}else if(l!=null)if(t in s&&!o)s[t]=l;else s.setAttribute(t,l===!0?"":l)}let c=(t)=>{if(N(t))return t.forEach(c);if(m(t)){let i=E.createTextNode("");s.appendChild(i);let l=[],u=x(()=>{let a=t(),f=(N(a)?a:[a]).map(V);l.forEach((p)=>{if(p._isRuntime)p.destroy();else B(p);if(p.parentNode)p.remove()});let h=i;for(let p=f.length-1;p>=0;p--){let y=f[p];if(y.parentNode!==h.parentNode)h.parentNode?.insertBefore(y,h);if(y._mounts)y._mounts.forEach((G)=>G());h=y}l=f});u(),s._cleanups.add(()=>S(u)),g(()=>S(u))}else{let i=V(t);if(s.appendChild(i),i._mounts)i._mounts.forEach((l)=>l())}};return c(n),s},T=(e)=>{let r=new Set,n=_,o=d,s=E.createElement("div");s.style.display="contents",s.setAttribute("role","presentation"),_={_cleanups:r},d=null;let c=(t)=>{if(!t)return;if(t._isRuntime)r.add(t.destroy),s.appendChild(t.container);else if(N(t))t.forEach(c);else s.appendChild(t instanceof Node?t:E.createTextNode(String(t==null?"":t)))};try{c(e({onCleanup:(t)=>r.add(t)}))}finally{_=n,d=o}return{_isRuntime:!0,container:s,destroy:()=>{r.forEach((t)=>t()),B(s),s.remove()}}},F=(e,r,n=null)=>{let o=E.createTextNode(""),s=M("div",{style:"display:contents"},[o]),c=null;return k(()=>!!(m(e)?e():e),(t)=>{if(c)c.destroy(),c=null;let i=t?r:n;if(i)c=T(()=>m(i)?i():i),s.insertBefore(c.container,o)}),g(()=>c?.destroy()),s},J=(e,r,n)=>{let o=E.createTextNode(""),s=M("div",{style:"display:contents"},[o]),c=new Map;return k(()=>(m(e)?e():e)||[],(t)=>{let i=new Map,l=[],u=t||[];for(let f=0;f<u.length;f++){let h=u[f],p=n?h?.[n]??f:h?.id??f,y=c.get(p);if(!y)y=T(()=>r(h,f));else c.delete(p);i.set(p,y),l.push(y)}c.forEach((f)=>f.destroy());let a=o;for(let f=l.length-1;f>=0;f--){let p=l[f].container;if(p.nextSibling!==a)s.insertBefore(p,a);a=p}c=i}),s},A=(e)=>{let r=()=>window.location.hash.slice(1)||"/",n=U(r()),o=()=>n(r());window.addEventListener("hashchange",o),g(()=>window.removeEventListener("hashchange",o));let s=M("div",{class:"router-hook"}),c=null;return k([n],()=>{let t=n(),i=e.find((l)=>{let u=l.path.split("/").filter(Boolean),a=t.split("/").filter(Boolean);return u.length===a.length&&u.every((f,h)=>f[0]===":"||f===a[h])})||e.find((l)=>l.path==="*");if(i){c?.destroy();let l={};i.path.split("/").filter(Boolean).forEach((u,a)=>{if(u[0]===":")l[u.slice(1)]=t.split("/").filter(Boolean)[a]}),A.params(l),c=T(()=>m(i.component)?i.component(l):i.component),s.replaceChildren(c.container)}}),s};A.params=U({});A.to=(e)=>window.location.hash=e.replace(/^#?\/?/,"#/");A.back=()=>window.history.back();A.path=()=>window.location.hash.replace(/^#/,"")||"/";var Q=(e,r)=>{let n=typeof r==="string"?E.querySelector(r):r;if(!n)return;if(L.has(n))L.get(n).destroy();let o=T(m(e)?e:()=>e);return n.replaceChildren(o.container),L.set(n,o),o};export{F as when,k as watch,A as router,Q as mount,M as h,q as filterXSS,J as each,z as batch,X as $$,U as $};