From 1800b16940c87f637cbaf2d6043b6680a30f5309 Mon Sep 17 00:00:00 2001 From: natxocc Date: Sun, 10 May 2026 02:37:57 +0200 Subject: [PATCH] minify --- dist/sigpro.js | 395 --------------------------------------------- dist/sigpro.min.js | 1 + docs/index.html | 2 +- docs/sigpro.min.js | 1 + package.json | 16 +- 5 files changed, 11 insertions(+), 404 deletions(-) delete mode 100644 dist/sigpro.js create mode 100644 dist/sigpro.min.js create mode 100644 docs/sigpro.min.js diff --git a/dist/sigpro.js b/dist/sigpro.js deleted file mode 100644 index 26623bb..0000000 --- a/dist/sigpro.js +++ /dev/null @@ -1,395 +0,0 @@ -// src/sigpro.js -var isF = (f) => typeof f == "function"; -var isO = (o) => o && typeof o == "object"; -var isA = Array.isArray; -var doc = typeof document < "u" ? document : null; -var txt = (s) => doc.createTextNode(s == null ? "" : String(s)); -var toNd = (n) => n?._rt ? n._cnt : n instanceof Node ? n : txt(n); -var Fragment = (p) => p.children; -var val = (v) => isF(v) ? v() : v; -var aEff = null; -var aOwn = null; -var isFlushing = 0; -var bDepth = 0; -var eQ = new Set; -var MOUNTED = new WeakMap; -var SVG_NS = "http://www.w3.org/2000/svg"; -var XLINK = "http://www.w3.org/1999/xlink"; -var SVG_TAGS = new Set("svg,path,circle,rect,line,polyline,polygon,g,defs,text,textPath,tspan,use,symbol,image,marker,ellipse".split(",")); -var DANG_ATTR = new Set(["src", "href", "formaction", "action", "background", "code", "archive"]); -var clr = (s) => { - if (s) { - s.forEach((f) => f()); - s.clear(); - } -}; -var dispose = (e) => { - if (!e || e._x) - return; - e._x = 1; - let st = [e], c; - while (c = st.pop()) { - clr(c._c); - if (c._ch) { - c._ch.forEach((x) => st.push(x)); - c._ch.clear(); - } - if (c._d) { - c._d.forEach((d) => d.delete(c)); - c._d.clear(); - } - } -}; -var onUnmount = (f) => aOwn && (aOwn._c ||= new Set).add(f); -var untrack = (f) => { - let p = aEff; - aEff = null; - try { - return f(); - } finally { - aEff = p; - } -}; -var createEffect = (f, isC = 0) => { - const e = () => { - if (e._x) - return; - if (e._d) - e._d.forEach((s) => s.delete(e)); - clr(e._c); - let pE = aEff, pO = aOwn; - aEff = aOwn = e; - try { - return e._res = f(); - } catch (err) { - console.error("[SigPro]", err); - } finally { - aEff = pE; - aOwn = pO; - } - }; - e._d = e._c = e._ch = null; - e._x = 0; - e._iC = isC; - e._dp = aEff ? aEff._dp + 1 : 0; - e._m = []; - e._p = aOwn; - if (aOwn) - (aOwn._ch ||= new Set).add(e); - return e; -}; -var flush = () => { - if (isFlushing) - return; - isFlushing = 1; - let q = [...eQ].sort((a, b) => a._dp - b._dp); - eQ.clear(); - for (let e of q) - if (!e._x) - e(); - isFlushing = 0; -}; -var batch = (f) => { - bDepth++; - try { - return f(); - } finally { - if (!--bDepth && eQ.size && !isFlushing) - flush(); - } -}; -var trkUpd = (s, trg = 0) => { - if (!trg && aEff && !aEff._x) { - s.add(aEff); - (aEff._d ||= new Set).add(s); - } else if (trg && s.size) { - let q = 0; - for (let e of s) { - if (e === aEff || e._x) - continue; - if (e._iC) { - e._dt = 1; - if (e._sb) - trkUpd(e._sb, 1); - } else { - eQ.add(e); - q = 1; - } - } - if (q && !isFlushing && !bDepth) - queueMicrotask(flush); - } -}; -var $ = (v, k = null) => { - let s = new Set; - if (isF(v)) { - let c, cp = () => { - if (cp._dt) { - let p = aEff; - aEff = cp; - try { - let n = v(); - if (!Object.is(c, n)) { - c = n; - trkUpd(s, 1); - } - } finally { - aEff = p; - } - cp._dt = 0; - } - trkUpd(s); - return c; - }; - cp._iC = cp._dt = 1; - cp._sb = s; - cp._d = null; - cp._x = 0; - return cp; - } - if (k) - try { - v = JSON.parse(localStorage.getItem(k)) ?? v; - } catch (e) {} - return (...a) => { - if (a.length) { - let n = isF(a[0]) ? a[0](v) : a[0]; - if (!Object.is(v, n)) { - v = n; - if (k) - localStorage.setItem(k, JSON.stringify(v)); - trkUpd(s, 1); - } - } - trkUpd(s); - return v; - }; -}; -var watch = (src, cb) => { - let e = createEffect(cb ? () => { - let v = isA(src) ? src.map((s) => s()) : src(); - untrack(() => cb(v)); - } : src); - e(); - return () => dispose(e); -}; -var clnNd = (n) => { - if (!n) - return; - clr(n._c); - if (n._oE) - dispose(n._oE); - if (n.childNodes) - n.childNodes.forEach(clnNd); -}; -var valAtt = (k, v) => v == null || v === false ? null : (DANG_ATTR.has(k) || k.startsWith("on")) && /^\s*(javascript|data|vbscript):/i.test(String(v)) ? "#" : v; -var h = (tag, prp = {}, ch = []) => { - if (prp instanceof Node || isA(prp) || !isO(prp)) { - ch = prp; - prp = {}; - } - if (isF(tag)) { - let e = createEffect(() => e._res = tag(prp, { children: ch, emit: (ev, ...a) => prp[`on${ev[0].toUpperCase()}${ev.slice(1)}`]?.(...a) })); - e(); - if (e._res == null) - return null; - let nd = e._res instanceof Node || isA(e._res) && e._res.every((n) => n instanceof Node) ? e._res : txt(e._res); - let att = (n) => { - if (isO(n) && !n._rt) { - n._m = e._m || []; - n._c = e._c || new Set; - n._oE = e; - } - }; - isA(nd) ? nd.forEach(att) : att(nd); - return nd; - } - let isS = SVG_TAGS.has(tag), el = isS ? doc.createElementNS(SVG_NS, tag) : doc.createElement(tag); - el._c = new Set; - for (let k in prp) { - let v = prp[k]; - if (k === "ref") { - isF(v) ? v(el) : v.current = el; - continue; - } - if (isS && k.startsWith("xlink:")) { - let cv = valAtt(k.slice(6), v); - cv == null ? el.removeAttributeNS(XLINK, k.slice(6)) : el.setAttributeNS(XLINK, k.slice(6), cv); - continue; - } - if (k.startsWith("on")) { - let ev = k.slice(2).toLowerCase(); - el.addEventListener(ev, v); - let off = () => el.removeEventListener(ev, v); - el._c.add(off); - onUnmount(off); - } else if (isF(v)) { - let e = createEffect(() => { - let r = valAtt(k, v()); - if (k === "class") - el.className = r || ""; - else if (r == null) - el.removeAttribute(k); - else if (k === "style" && typeof r == "string") - el.setAttribute("style", r); - else if (k in el && !isS) - el[k] = r; - else - el.setAttribute(k, r === true ? "" : r); - }); - e(); - el._c.add(() => dispose(e)); - onUnmount(() => dispose(e)); - if (/^(INPUT|TEXTAREA|SELECT)$/.test(el.tagName) && (k === "value" || k === "checked")) { - el.addEventListener(k === "checked" ? "change" : "input", (ev) => v(ev.target[k])); - } - } else { - let r = valAtt(k, v); - if (r != null) { - if (k === "style" && typeof r == "string") - el.setAttribute("style", r); - else if (k in el && !isS) - el[k] = r; - else - el.setAttribute(k, r === true ? "" : r); - } - } - } - const app = (c) => { - if (isA(c)) - return c.forEach(app); - if (isF(c)) { - let anc = txt(""), cur = []; - el.appendChild(anc); - let e = createEffect(() => { - let r = c(), nxt = (isA(r) ? r : [r]).map(toNd), ref = anc; - cur.forEach((n) => { - n._rt ? n._del() : clnNd(n); - if (n.parentNode) - n.remove(); - }); - for (let i = nxt.length - 1;i >= 0; i--) { - let nd = nxt[i]; - if (nd.parentNode !== ref.parentNode) - ref.parentNode?.insertBefore(nd, ref); - if (nd._m) - nd._m.forEach((f) => f()); - ref = nd; - } - cur = nxt; - }); - e(); - el._c.add(() => dispose(e)); - onUnmount(() => dispose(e)); - } else { - let nd = toNd(c); - el.appendChild(nd); - if (nd._m) - nd._m.forEach((f) => f()); - } - }; - app(ch); - return el; -}; -var render = (rFn) => { - let c = new Set, pO = aOwn, pE = aEff, cnt = doc.createElement("div"); - cnt.style.display = "contents"; - cnt.setAttribute("role", "presentation"); - aOwn = { _c: c }; - aEff = null; - const pRes = (r) => { - if (!r) - return; - if (r._rt) { - c.add(r._del); - cnt.appendChild(r._cnt); - } else if (isA(r)) - r.forEach(pRes); - else - cnt.appendChild(r instanceof Node ? r : txt(r)); - }; - try { - pRes(rFn({ onCleanup: (f) => c.add(f) })); - } finally { - aOwn = pO; - aEff = pE; - } - return { _rt: 1, _cnt: cnt, _del: () => { - clr(c); - clnNd(cnt); - cnt.remove(); - } }; -}; -var when = (c, Y, N = null) => { - let anc = txt(""), rt = h("div", { style: "display:contents" }, [anc]), v; - watch(() => !!val(c), (s) => { - if (v) { - v._del(); - v = null; - } - let ct = s ? Y : N; - if (ct) { - v = render(() => val(ct)); - rt.insertBefore(v._cnt, anc); - } - }); - onUnmount(() => v?._del()); - return rt; -}; -var each = (s, fn, kF) => { - let anc = txt(""), rt = h("div", { style: "display:contents" }, [anc]), cch = new Map; - watch(() => val(s) || [], (it) => { - let nCc = new Map, nOd = []; - for (let i = 0, l = (it || []).length;i < l; i++) { - let t = it[i], k = kF ? t?.[kF] ?? i : t?.id ?? i, v = cch.get(k); - if (!v) - v = render(() => fn(t, i)); - else - cch.delete(k); - nCc.set(k, v); - nOd.push(v); - } - cch.forEach((v) => v._del()); - let ref = anc; - for (let i = nOd.length - 1;i >= 0; i--) { - let nd = nOd[i]._cnt; - if (nd.nextSibling !== ref) - rt.insertBefore(nd, ref); - ref = nd; - } - cch = nCc; - }); - return rt; -}; -var mount = (c, tgt) => { - let t = typeof tgt == "string" ? doc.querySelector(tgt) : tgt; - if (!t) - return; - if (MOUNTED.has(t)) - MOUNTED.get(t)._del(); - let i = render(isF(c) ? c : () => c); - t.replaceChildren(i._cnt); - MOUNTED.set(t, i); - return i; -}; -var SigPro = { $, watch, batch, h, Fragment, render, mount, when, each, onUnmount, val, isA, isF, isO }; -if (typeof window !== "undefined") { - window.SigPro = SigPro; - "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((t) => window[t] = (p, c) => h(t, p, c)); -} -export { - watch, - val, - render, - onUnmount, - mount, - isO, - isF, - isA, - h, - each, - batch, - SigPro, - Fragment, - $ -}; diff --git a/dist/sigpro.min.js b/dist/sigpro.min.js new file mode 100644 index 0000000..27b73a4 --- /dev/null +++ b/dist/sigpro.min.js @@ -0,0 +1 @@ +var m=(e)=>typeof e=="function",q=(e)=>e&&typeof e=="object",g=Array.isArray,N=typeof document<"u"?document:null,w=(e)=>N.createTextNode(e==null?"":String(e)),G=(e)=>e?._rt?e._cnt:e instanceof Node?e:w(e),B=(e)=>e.children,A=(e)=>m(e)?e():e,d=null,_=null,E=0,M=0,C=new Set,L=new WeakMap,D="http://www.w3.org/2000/svg",I="http://www.w3.org/1999/xlink",R=new Set("svg,path,circle,rect,line,polyline,polygon,g,defs,text,textPath,tspan,use,symbol,image,marker,ellipse".split(",")),z=new Set(["src","href","formaction","action","background","code","archive"]),k=(e)=>{if(e)e.forEach((r)=>r()),e.clear()},b=(e)=>{if(!e||e._x)return;e._x=1;let r=[e],n;while(n=r.pop()){if(k(n._c),n._ch)n._ch.forEach((i)=>r.push(i)),n._ch.clear();if(n._d)n._d.forEach((i)=>i.delete(n)),n._d.clear()}},S=(e)=>_&&(_._c||=new Set).add(e),F=(e)=>{let r=d;d=null;try{return e()}finally{d=r}},v=(e,r=0)=>{let n=()=>{if(n._x)return;if(n._d)n._d.forEach((a)=>a.delete(n));k(n._c);let i=d,l=_;d=_=n;try{return n._res=e()}catch(a){console.error("[SigPro]",a)}finally{d=i,_=l}};if(n._d=n._c=n._ch=null,n._x=0,n._iC=r,n._dp=d?d._dp+1:0,n._m=[],n._p=_,_)(_._ch||=new Set).add(n);return n},W=()=>{if(E)return;E=1;let e=[...C].sort((r,n)=>r._dp-n._dp);C.clear();for(let r of e)if(!r._x)r();E=0},J=(e)=>{M++;try{return e()}finally{if(!--M&&C.size&&!E)W()}},x=(e,r=0)=>{if(!r&&d&&!d._x)e.add(d),(d._d||=new Set).add(e);else if(r&&e.size){let n=0;for(let i of e){if(i===d||i._x)continue;if(i._iC){if(i._dt=1,i._sb)x(i._sb,1)}else C.add(i),n=1}if(n&&!E&&!M)queueMicrotask(W)}},V=(e,r=null)=>{let n=new Set;if(m(e)){let i,l=()=>{if(l._dt){let a=d;d=l;try{let t=e();if(!Object.is(i,t))i=t,x(n,1)}finally{d=a}l._dt=0}return x(n),i};return l._iC=l._dt=1,l._sb=n,l._d=null,l._x=0,l}if(r)try{e=JSON.parse(localStorage.getItem(r))??e}catch(i){}return(...i)=>{if(i.length){let l=m(i[0])?i[0](e):i[0];if(!Object.is(e,l)){if(e=l,r)localStorage.setItem(r,JSON.stringify(e));x(n,1)}}return x(n),e}},P=(e,r)=>{let n=v(r?()=>{let i=g(e)?e.map((l)=>l()):e();F(()=>r(i))}:e);return n(),()=>b(n)},U=(e)=>{if(!e)return;if(k(e._c),e._oE)b(e._oE);if(e.childNodes)e.childNodes.forEach(U)},j=(e,r)=>r==null||r===!1?null:(z.has(e)||e.startsWith("on"))&&/^\s*(javascript|data|vbscript):/i.test(String(r))?"#":r,O=(e,r={},n=[])=>{if(r instanceof Node||g(r)||!q(r))n=r,r={};if(m(e)){let t=v(()=>t._res=e(r,{children:n,emit:(o,...f)=>r[`on${o[0].toUpperCase()}${o.slice(1)}`]?.(...f)}));if(t(),t._res==null)return null;let s=t._res instanceof Node||g(t._res)&&t._res.every((o)=>o instanceof Node)?t._res:w(t._res),c=(o)=>{if(q(o)&&!o._rt)o._m=t._m||[],o._c=t._c||new Set,o._oE=t};return g(s)?s.forEach(c):c(s),s}let i=R.has(e),l=i?N.createElementNS(D,e):N.createElement(e);l._c=new Set;for(let t in r){let s=r[t];if(t==="ref"){m(s)?s(l):s.current=l;continue}if(i&&t.startsWith("xlink:")){let c=j(t.slice(6),s);c==null?l.removeAttributeNS(I,t.slice(6)):l.setAttributeNS(I,t.slice(6),c);continue}if(t.startsWith("on")){let c=t.slice(2).toLowerCase();l.addEventListener(c,s);let o=()=>l.removeEventListener(c,s);l._c.add(o),S(o)}else if(m(s)){let c=v(()=>{let o=j(t,s());if(t==="class")l.className=o||"";else if(o==null)l.removeAttribute(t);else if(t==="style"&&typeof o=="string")l.setAttribute("style",o);else if(t in l&&!i)l[t]=o;else l.setAttribute(t,o===!0?"":o)});if(c(),l._c.add(()=>b(c)),S(()=>b(c)),/^(INPUT|TEXTAREA|SELECT)$/.test(l.tagName)&&(t==="value"||t==="checked"))l.addEventListener(t==="checked"?"change":"input",(o)=>s(o.target[t]))}else{let c=j(t,s);if(c!=null)if(t==="style"&&typeof c=="string")l.setAttribute("style",c);else if(t in l&&!i)l[t]=c;else l.setAttribute(t,c===!0?"":c)}}let a=(t)=>{if(g(t))return t.forEach(a);if(m(t)){let s=w(""),c=[];l.appendChild(s);let o=v(()=>{let f=t(),h=(g(f)?f:[f]).map(G),y=s;c.forEach((u)=>{if(u._rt?u._del():U(u),u.parentNode)u.remove()});for(let u=h.length-1;u>=0;u--){let p=h[u];if(p.parentNode!==y.parentNode)y.parentNode?.insertBefore(p,y);if(p._m)p._m.forEach(($)=>$());y=p}c=h});o(),l._c.add(()=>b(o)),S(()=>b(o))}else{let s=G(t);if(l.appendChild(s),s._m)s._m.forEach((c)=>c())}};return a(n),l},T=(e)=>{let r=new Set,n=_,i=d,l=N.createElement("div");l.style.display="contents",l.setAttribute("role","presentation"),_={_c:r},d=null;let a=(t)=>{if(!t)return;if(t._rt)r.add(t._del),l.appendChild(t._cnt);else if(g(t))t.forEach(a);else l.appendChild(t instanceof Node?t:w(t))};try{a(e({onCleanup:(t)=>r.add(t)}))}finally{_=n,d=i}return{_rt:1,_cnt:l,_del:()=>{k(r),U(l),l.remove()}}},X=(e,r,n=null)=>{let i=w(""),l=O("div",{style:"display:contents"},[i]),a;return P(()=>!!A(e),(t)=>{if(a)a._del(),a=null;let s=t?r:n;if(s)a=T(()=>A(s)),l.insertBefore(a._cnt,i)}),S(()=>a?._del()),l},K=(e,r,n)=>{let i=w(""),l=O("div",{style:"display:contents"},[i]),a=new Map;return P(()=>A(e)||[],(t)=>{let s=new Map,c=[];for(let f=0,h=(t||[]).length;fr(y,f));else a.delete(u);s.set(u,p),c.push(p)}a.forEach((f)=>f._del());let o=i;for(let f=c.length-1;f>=0;f--){let h=c[f]._cnt;if(h.nextSibling!==o)l.insertBefore(h,o);o=h}a=s}),l},Q=(e,r)=>{let n=typeof r=="string"?N.querySelector(r):r;if(!n)return;if(L.has(n))L.get(n)._del();let i=T(m(e)?e:()=>e);return n.replaceChildren(i._cnt),L.set(n,i),i},H={$:V,watch:P,batch:J,h:O,Fragment:B,render:T,mount:Q,when:X,each:K,onUnmount:S,val:A,isA:g,isF:m,isO:q};if(typeof window<"u")window.SigPro=H,"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]=(r,n)=>O(e,r,n));export{P as watch,A as val,T as render,S as onUnmount,Q as mount,q as isO,m as isF,g as isA,O as h,K as each,J as batch,H as SigPro,B as Fragment,V as $}; diff --git a/docs/index.html b/docs/index.html index 3dde2ca..14f6751 100644 --- a/docs/index.html +++ b/docs/index.html @@ -65,7 +65,7 @@