sigment 1.3.9 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +5 -5
- package/package.json +14 -6
- package/throw-on-require.js +1 -1
- package/types/index.d.ts +56 -34
package/dist/index.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
var
|
|
2
|
-
Available components: ${
|
|
1
|
+
var ge=Object.defineProperty;var a=(e,t)=>ge(e,"name",{value:t,configurable:!0});var _={cleanHtml:Ae,cleanhtml:!0,setMaxCacheSize:_e,maxCacheSize:10,setloadAtRunTime:Ce,loadAtRunTime:null,setRoute:xe,route:null,setStopPropagation:Se,stopPropagation:!1},A={funcname:[],dataMap:new Map},H=null,M={},z=new Map,k=new Map,G=new Map,L=new Map,be=null,P=null,K=new Map;var W="",v=typeof window>"u",V=0;v||(W=window.location.href.replace(/^https?:\/\//,"").replace(/\/$/,""));function Ee(){try{let e=import.meta.glob("/src/components/*.js"),t=Object.fromEntries(Object.entries(e).map(([n,r])=>[n.split("/").pop().replace(".js",""),r]));t.defaultKey="/",_.loadAtRunTime=t}catch{_.loadAtRunTime={}}}a(Ee,"initLoadAtRunTime");globalThis.__CURRENT_COMPONENT__=null;var j=0,ce=new Map;v&&(globalThis.__HANDLER_REGISTRY__||(globalThis.__HANDLER_REGISTRY__={}),globalThis.__HANDLER_ELEMENT_MAP__||(globalThis.__HANDLER_ELEMENT_MAP__=new Map));var E={innerHTMLElements:["div","p","span","h1","h2","h3","h4","h5","h6","a","ul","ol","li","table","tr","td","th","thead","tbody","tfoot","form","label","button","section","article","header","footer","nav","aside","main","figure","figcaption","blockquote","cite","code","pre","em","strong","i","b","u","s","small","mark","time","abbr","q","dl","dt","dd","fieldset","legend","textarea","output","progress","meter","fragment","details","summary","dialog","menu","slot","svg","defs","linearGradient","text","template"],valueElements:["input","textarea","select","button","option","progress","meter"],srcElements:["img","script","iframe","audio","video","source","track","embed","frame","input"],hrefElements:["a","link","area","base"],voidElements:["area","base","br","col","embed","hr","img","input","link","meta","param","source","track","path","circle","rect","wbr","polygon","ellipse","stop","canvas","frame"]};Object.values(E).flat().forEach(e=>{globalThis[e]||(globalThis[e]=(...t)=>I(e,...t),Object.defineProperty(globalThis,e,{writable:!1,configurable:!1}))});var Y=new Set(E.valueElements),re=new Set(E.srcElements),oe=new Set(E.hrefElements),J=new Set(E.voidElements);function qe(e,t){M[e]||(M[e]=pe(t))}a(qe,"createGlobalSignal");function Ue(e){return M[e]}a(Ue,"getGlobalSignal");function X(e,t){A.dataMap.has(e)&&A.dataMap.delete(e),A.dataMap.set(e,t)}a(X,"addEntry");var R={destroy:a(function(){var n;let e=(n=this.parentNode)==null?void 0:n.iid,t=A.dataMap.get(e);if(this.parentNode&&this.remove(),t&&t.rows&&t.indexOrder){let r=t.indexOrder,s=r.indexOf(this.iid);s!==-1&&r.splice(s,1),t.rows.delete(this.iid)}},"destroy"),swapWith:a(function(e){var f;let t=(f=this.parentNode)==null?void 0:f.iid,n=A.dataMap.get(t);if(!n||!n.rows||!n.indexOrder)return this;let r=n.indexOrder,s=n.rows,i=r.indexOf(this.iid);if(i===-1||e<0||e>=r.length||i===e)return this;let c=r[e],o=s.get(c);if(!o||!o.value)return this;let u=o.value;[r[i],r[e]]=[r[e],r[i]],this.idx=e,u.idx=i;let d=document.createTextNode("");return u.before(d),this.before(u),d.replaceWith(this),this},"swapWith"),updateVal:a(function(e,t){var n;return(n=this.nodes)!=null&&n[e]&&(this.nodes[e].nodeValue=t),this},"updateVal"),addVal:a(function(e,t){var n;return(n=this.nodes)!=null&&n[e]&&(this.nodes[e].nodeValue+=t),this},"addVal"),clear:a(function(){if(this._map){let e=this._map.get(this.iid);e&&e.rows&&e.rows.clear(),e&&e.indexOrder&&(e.indexOrder.length=0)}this.replaceChildren()},"clear")},q=a((e,t,n,r)=>(e.destroy&&e.clear||(e.iid=e.iid||t.id,e._map=n,e._order=r,e.destroy=R.destroy,e.swapWith=R.swapWith,e.updateVal=R.updateVal,e.addVal=R.addVal,(t.rows||e.tagName==="TBODY")&&(e.clear=R.clear,e.get=s=>{var u;let i=e._map.get(e.iid);if(!i)return null;let c=typeof s=="number"?i.indexOrder[s]:s,o=(u=i.rows)==null?void 0:u.get(c);return o?D(o.value):null})),e),"upgradeElement");function D(e){var i,c;let t=e&&e.nodeType,n=t?e.iid:e,r=A.dataMap.get(n);if(t){let o=(i=e.parentNode)==null?void 0:i.id,u=A.dataMap.get(o),d=u&&u.rows?u.rows:A.dataMap,f=u&&u.indexOrder?u.indexOrder:null;return q(e,{nodes:e.nodes},d,f)}if(!r)return null;let s=(c=r.value)!=null&&c.hydrate?document.getElementById(n):r.value;return s?q(s,r,A.dataMap,null):null}a(D,"gve");var Ie=a(e=>{let t=[],n=e.content?e.content.firstElementChild:e;if(!n)return console.error("Sigment: Blueprint is invalid",e),null;let r=document.createTreeWalker(n,NodeFilter.SHOW_TEXT),s,i=0;for(;s=r.nextNode();)s.nodeValue.trim()==="?"&&t.push({type:"text",index:i}),i++;return{element:n,paths:t}},"createTemplate"),ze=a((e,t,n,r=1e3,s=!1)=>{let i=A.dataMap.get(n);if(!i)return;let c=i.value,o=i.rows||(i.rows=new Map),u=i.indexOrder||(i.indexOrder=[]);q(c,i,A.dataMap,u);let d=A.dataMap;s||c.clear();let{element:f,paths:p}=t,h=0,y=a(()=>{A.dataMap=o;let g=document.createDocumentFragment(),l=Math.min(h+r,e.length);for(;h<l;h++){let m=e[h],b=m[0],S=f.cloneNode(!0);q(S,{id:b,idx:h},o,u);let w=document.createTreeWalker(S,NodeFilter.SHOW_TEXT),x=0,O=0,T,N=[];for(;T=w.nextNode();)x<p.length&&O===p[x].index&&(T.nodeValue=m[x],N[x]=T,x++),O++;S.nodes=N,u.push(b),X(b,{value:S,nodes:N}),g.appendChild(S)}A.dataMap=d,c.appendChild(g),h<e.length&&requestAnimationFrame(y)},"renderChunk");y()},"batch");function Z(e,t=void 0){$(Z.name),A.createInstance=Z.name;let n="";t===void 0?n=e():n=e(t)}a(Z,"createInstance");function ie(e,t){$(ie.name),A.rpc=ie.name;let n={};for(let[r,s]of Object.entries(t))e[r]?n[r]=e[r].apply(null,s):(console.error(`Function ${r} not found!`),n[r]=null);return n}a(ie,"rpc");function se(e,t=!1,n){$(se.name),A.gvec=se.name;let r=Object.keys(e),s=r[0],i=r[1],c=r[2];var o=e[s];o=o.name;var u=e[i];let d=e[i];var f=D(i)===null;if(f||t===!1){var p=""+i;A.dataMap.delete(p),Z(u,e[c])}u=D(i);var h=D(s);if(h===null)throw new Error(` source id '${s} is not found in source component `);if(u===null)throw new Error(` target id '${i} is not found in target component `);if(h.replaceWith(u),n!==void 0)for(let l in d){let m=l.toString();if(typeof n=="object"){for(var y in n)if(m===y){var g=n[y];typeof g=="object"?d[l].apply(null,g):d[l].apply(null,[])}}else if(n.indexOf(",">-1)){let b=n.split(",");for(let S=0;S<b.length;S++)m===b[S]&&d[l].apply(null,[])}else m===n&&d[l].apply(null,[])}}a(se,"gvec");async function Be(e,t={}){let{passRestriction:n=[]}=t,r=window.location.pathname.replace(/^\/|\/$/g,"").toLowerCase(),s=e.replace(/^\/|\/$/g,"").toLowerCase();if(!new RegExp("^"+s.replace(/:[^\/]+/g,"[^/]+")+"$").test(r))return!1;let c=Array.isArray(n)?n:[n];for(let o of c)try{let u=typeof o=="function"?o():o;if(u instanceof Promise){if(!await u)return!1}else if(!u)return!1}catch(u){return console.error("Route check failed:",u),!1}return!0}a(Be,"Route");function Ge(e){return e==null||e===""}a(Ge,"IsEmpty");function we(e){let t=e.startsWith("/")?e:"/"+e;window.history.pushState({},"",t)}a(we,"Navigate");function _e(e){_.maxCacheSize=e}a(_e,"setMaxCacheSize");function Ae(e){_.cleanhtml=e}a(Ae,"cleanHtml");function xe(e){_.route=e}a(xe,"setRoute");function Ce(e){if(e===!0){Ee();return}if(typeof e=="object"&&e!==null&&!Array.isArray(e)){_.loadAtRunTime=e;return}throw new Error("setloadAtRunTime expects true or an object of dynamic modules")}a(Ce,"setloadAtRunTime");function Se(e){_.stopPropagation=e}a(Se,"setStopPropagation");async function Ke(e,t){let n;t==="/"?n=t:n=t.replace(/\//g,"").toLowerCase();let r=Object.keys(e).find(s=>s.toLowerCase()===n.toLowerCase());if(!r){let s=Object.keys(e).join(", ");throw new Error(`Unknown component: "${t}".
|
|
2
|
+
Available components: ${s}
|
|
3
3
|
|
|
4
4
|
To add this component:
|
|
5
5
|
|
|
6
6
|
const loadAsyncComponents = {
|
|
7
7
|
...existingComponents,
|
|
8
8
|
"${t}": () => import('./${t}.js')
|
|
9
|
-
};`)}if(
|
|
10
|
-
`);for(let c=0;c<n.length;c++){var
|
|
11
|
-
`);if(r===-1)continue;o=n[c].slice(r+1),o===""?(r=n[c].lastIndexOf("/")+1,r>-1&&(o=n[c].substr(r),o=o.substr(0,o.indexOf(".")))):o.indexOf("/")>-1&&(o=o.substr(0,o.indexOf("/")))}else o=(s=n[c])==null?void 0:s.trim().split(" ")[1];if(!C.funcname.includes(o)&&!(o===void 0||o==="")&&!(o.indexOf("http://")>-1||o.indexOf("https://")>-1)){if(C.gvec!==void 0&&o.indexOf(C.gvec)>-1)break;t.indexOf("|"+o)>-1||(t+="|"+o.replace(".","|"))}}return e+t}a(Z,"buildRoadMap");function j(e){!C.funcname.includes(e)&&C.funcname.push(e)}a(j,"setFuncName");function ue(e){let t=typeof e=="object"&&e!==null&&!Array.isArray(e),n=!(typeof process<"u");t&&n&&console.warn("[Sigment] createSignal() is deprecated for objects. Use signal()."),t&&!n&&console.warn("[Sigment] createSignal() is deprecated for objects. Use signal().");let o=e,i=new Set;function s(){return I&&i.add(I),o}a(s,"get"),s.__isSignal=!0,s.__isPrimitiveSignal=!0;function c(m,f=!1){(f||o!==m)&&(o=m,i.forEach(u=>u()))}return a(c,"set"),[new Proxy(s,{get(m,f){if(f==="valueOf")return()=>o;if(f==="toString")return()=>String(o);if(f in m)return m[f]}}),c]}a(ue,"createSignal");function Te(e){return typeof e=="object"&&e!==null}a(Te,"isObject");function Qe(e){return de(e)[0]}a(Qe,"store");function fe(e){let t=e,n=new Map,o=a(r=>Te(r)?fe(r)[0]:r,"wrap"),i=a(r=>{if(!n.has(r)){let[m,f]=ue(o(t[r])),u=new Proxy(m,{get(d,y){return y==="valueOf"?()=>m():y==="toString"?()=>String(m()):d[y]}});n.set(r,[u,f])}return n.get(r)},"getSignal"),s=new Proxy(t,{get(r,m){if(typeof m=="symbol")return t[m];let[f]=i(m);return f()},set(r,m,f){t[m]=f;let[,u]=i(m);return u(o(f)),!0}});function c(r){let m=typeof r=="function"?r(s):r;for(let f in m)s[f]=m[f]}return a(c,"setState"),[s,c]}a(fe,"signalObject");function de(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?fe(e):ue(e)}a(de,"signal");function X(e){function t(){I=t,e(),I=null}a(t,"wrapped"),t()}a(X,"createEffect");function ke(e){e=e.toLowerCase(),E.innerHTMLElements.includes(e)||(E.innerHTMLElements.push(e),globalThis[e]=(...t)=>z(e,...t))}a(ke,"createTypeElement");function pe(e){return e.replace(/-+/g,"-").replace(/-([a-z])/g,(t,n)=>n.toUpperCase())}a(pe,"dashToCamel");function et(e,t=null){me(e,t)}a(et,"createSigment");function tt(e,t=null){me(e,t)}a(tt,"addSigment");function nt(e,...t){if(ke(e),t.length!==0)return globalThis[e](...t)}a(nt,"createElement");function ve(e){let t=document.createTextNode("");return X(()=>{if(typeof N!="object"||N===null){t.nodeValue=e;return}let n=e.replace(/{{(.*?)}}/g,(o,i)=>{let s=i.trim();if(N.hasOwnProperty(s)){let c=N[s];if(c&&typeof c[0]=="function")return c[0]()??""}return""});t.nodeValue=n}),t}a(ve,"interpolateReactiveText");function ot(e,t=5e3,n={}){let o=JSON.stringify([e,n,t]);if(!U.has(o)){let i=Ne(async()=>{let s=await fetch(e,n);if(!s.ok)throw new Error(`Fetch failed: ${s.status}`);return s.json()},t);U.set(o,i)}return U.get(o)()}a(ot,"fetchCache");function Q(e){if(Array.isArray(e))return e.map(Q);if(e&&typeof e=="object"){let t={};return Object.keys(e).sort().forEach(n=>{t[n]=Q(e[n])}),t}return e}a(Q,"sortObjectDeep");function Oe(e){if(e&&typeof e=="object"&&!Array.isArray(e)){let t={};return Object.keys(e).sort().forEach(n=>{t[n]=e[n]}),t}return e}a(Oe,"sortObjectShallow");function Ne(e,t=null,n={}){let o=new Map,i=a((...s)=>{let{deepSort:c}=n,r;c===!0?r=s.map(h=>h&&typeof h=="object"?Q(h):h):c===!1?r=s.map(h=>h&&typeof h=="object"?Oe(h):h):r=s;let m=JSON.stringify(r),f=Date.now();m.length===2&&(m=e.name);let d=o.get(m);if(d&&(t===null||f-d.timestamp<t))return d.value;let y=e(...s);return o.set(m,{value:y,timestamp:f}),y instanceof Promise&&y.catch(()=>o.delete(m)),y},"wrapped");return i.clear=()=>o.clear(),i}a(Ne,"memoizeFunc");function V(e){let t={"&":"&","<":"<",">":">",'"':""","'":"'"};return e.replace(/[&<>"']/g,n=>t[n])}a(V,"escapeHtml");function Le(e){let t="";function n(o,i=0){let s=" ".repeat(i);if(o==null||o===!1||o===!0)return;if(Array.isArray(o)){o.forEach(r=>n(r,i+1));return}let c=o;typeof c=="function"&&(c=c()),typeof c=="function"&&c.__isSignal&&(c=c()),!(c==null||c===!1||c===!0)&&(t+=String(c))}return a(n,"process"),e.forEach(o=>n(o)),t}a(Le,"renderChildren");function Pe(e){let t=[];for(let n=0;n<e.length;n++){let o=e[n],i=e[n+1];typeof o=="string"&&typeof i=="function"?(t.push(()=>o+i()),n++):t.push(o)}return t}a(Pe,"normalizeChildren");function z(e,...t){var g;let n={},o=[];if(t[0]&&typeof t[0]=="object"&&!Array.isArray(t[0])&&t[0]!==null&&!(t[0]instanceof String)&&(x||!(t[0]instanceof Node))?(n=t[0],o=t.slice(1)):o=t,x&&typeof document>"u"){let l=globalThis.__CURRENT_COMPONENT__;globalThis.__HANDLER_REGISTRY__||(globalThis.__HANDLER_REGISTRY__={}),(g=globalThis.__HANDLER_REGISTRY__)[l]||(g[l]=[]);let p=[];for(let[v,k]of Object.entries(n))if(v==="style"&&typeof k=="object"){let $=Object.entries(k).map(([A,he])=>`${A.replace(/([A-Z])/g,"-$1").toLowerCase()}:${he}`).join(";");p.push(` style="${V($)}"`)}else v!=="className"&&v!=="class"&&!v.startsWith("on")&&p.push(` ${v}="${V(String(k))}"`);(n.className||n.class)&&p.push(` class="${V(n.className||n.class)}"`);let b=Le(o);if(["input","img","br","hr","meta","link"].includes(e))return`<${e}${p.join("")} />`;if(e==="fragment")return b;var i;let _=B.get(e);return _&&(i=_.tagName,_.nativeTag!==null&&(i=_.nativeTag)),i!==void 0&&(e=i),`<${e}${p.join("")}>${b}</${e}>`}j(z.name);var s="";s=Z();var c=s.split("|");if(c.includes(C.rpc))return;let r=null,m=e.toLowerCase()==="fragment";if(m)r=document.createDocumentFragment();else{var i;let p=B.get(e);p&&(i=p.tagName,p.nativeTag!==null&&(i=p.nativeTag)),i!==void 0&&(e=i),r=document.createElement(e)}if(globalThis.__CURRENT_COMPONENT__){q++;let l=q;r.dataIndex=l,r.realtedComponent=globalThis.__CURRENT_COMPONENT__,r.cmpNbr=M}let f=[];for(let[l,p]of Object.entries(n))if(l.startsWith("on")&&typeof p=="function"){let b=l.slice(2).toLowerCase();f.push({type:b,val:p})}f.length&&(r._handlers=f);let u=K.has(e),d=J.has(pe(e)),y=e==="input"||e==="option",h=e==="option";if(!m)for(let l in n){let p=n[l];if(l.startsWith("on")&&typeof p=="function"){let b=l.slice(2).toLowerCase();r.addEventListener(b,O=>{w.stopPropagation&&O.stopPropagation(),p(O)})}else typeof p=="function"&&l!=="children"?X(()=>{let b=p();b==null||b===!1?(r.removeAttribute(l),l==="value"&&d&&(r.value="",w.cleanhtml||r.removeAttribute("value")),l==="checked"&&y&&(r.checked=!1,w.cleanhtml||r.removeAttribute("checked")),l==="selected"&&h&&(r.selected=!1,w.cleanhtml||r.removeAttribute("selected")),l==="id"&&(r.iid="",w.cleanhtml||r.removeAttribute("id"))):l==="id"?(r.iid=b,w.cleanhtml?r.removeAttribute("id"):r.setAttribute("id",b),oe(b,{name:b,caller:b+s,value:r})):l==="value"&&d?(r.value=b,w.cleanhtml?r.removeAttribute("value"):r.setAttribute("value",b)):l==="checked"&&y?(r.checked=b,w.cleanhtml?r.removeAttribute("checked"):b?r.setAttribute("checked",""):r.removeAttribute("checked")):l==="selected"&&h?(r.selected=b,w.cleanhtml?r.removeAttribute("selected"):b?r.setAttribute("selected",""):r.removeAttribute("selected")):r.setAttribute(l,b)}):p!=null&&p!==!1&&(l==="id"?(r.iid=p,w.cleanhtml?r.removeAttribute("id"):r.setAttribute("id",p),oe(p,{name:p,caller:p+s,value:r})):l==="value"&&d?(r.value=p,w.cleanhtml?r.removeAttribute("value"):r.setAttribute("value",p)):l==="checked"&&y?(r.checked=p,w.cleanhtml?r.removeAttribute("checked"):r.setAttribute("checked","")):l==="selected"&&h?(r.selected=p,w.cleanhtml?r.removeAttribute("selected"):r.setAttribute("selected","")):r.setAttribute(l,p))}return u?o.length===1&&(typeof o[0]=="string"||typeof o[0]=="number")?d&&(r.value=o[0],w.cleanhtml?r.removeAttribute("value"):r.setAttribute("value",o[0])):o.length>0&&console.warn(`Void element <${e}> should not have children.`):(o=Pe(o),o.flat().forEach((l,p)=>{if(l&&l.__isSignal&&l.__isPrimitiveSignal&&!l.__isWrapped){let b=l;b.__isWrapped=!0,l=a(()=>b(),"child")}if(typeof l=="function"){let b=l(),_=b===!1||b===null||b===!0?document.createComment(""):document.createTextNode("");r.appendChild(_),X(()=>{let T=l();if(Array.isArray(T)){let k=_.parentNode;if(!k)return;_._insertedNodes&&(_._insertedNodes.forEach(A=>A.remove()),_._insertedNodes=null);let $=T.flat().filter(Boolean).map(A=>A instanceof Node?A:typeof A=="string"||typeof A=="number"?document.createTextNode(String(A)):typeof A=="object"?A.__isNode?A:div(A.name??JSON.stringify(A)):null).filter(Boolean);$.forEach(A=>k.insertBefore(A,_)),_._insertedNodes=$,_.nodeValue="";return}if(T instanceof Node){let k=_.parentNode;if(!k)return;_._insertedNode&&(_._insertedNode._boundNode&&_._insertedNode._boundNode.remove(),_._insertedNode.remove(),_._insertedNode=null),k.insertBefore(T,_),_._insertedNode=T;return}let v=T==null||T===!1||T===!0?"":String(T);if(_._insertedNode&&(_._insertedNode._boundNode&&_._insertedNode._boundNode.remove(),_._insertedNode.remove(),_._insertedNode=null),_.nodeValue!==v){if(!_.parentNode)return;_!=null&&_._boundNode?_._boundNode.nodeValue=v:_.nodeValue=v}})}else if(typeof l=="string"&&l.includes("{{")&&!l.includes("function"))r.appendChild(ve(l));else if(typeof l=="string"||typeof l=="number"){if(typeof l=="string"&&(l.includes("function get(")||l.includes("function (")||l.includes("[native code]")))throw new Error("Detected reactive getter function used inside a template string. Use a function instead like: div(() => `Your text is: ${someState()}`)");r.appendChild(document.createTextNode(l))}else(l instanceof DocumentFragment||l instanceof Node)&&r.appendChild(l)})),r}a(z,"h");function je(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/-+/g,"-").toLowerCase()}a(je,"camelToDash");function me(e,t=null){if(E.innerHTMLElements.includes(e)||E.valueElements.includes(e)||E.srcElements.includes(e)||E.hrefElements.includes(e)||E.voidElements.includes(e))return;let o=/[A-Z]/.test(e)?je(e):e.toLowerCase();o.includes("-")||(o="s-"+o),e.includes("-")&&(o=e,e=pe(e)),B.set(e,{tagName:o,nativeTag:t}),!E.innerHTMLElements.includes(e)&&t===null?E.innerHTMLElements.push(e):!E.innerHTMLElements.includes(e)&&t!==null&&(E.innerHTMLElements.includes(t)||E.innerHTMLElements.push(e)),!E.valueElements.includes(e)&&t===null?(E.valueElements.push(e),J.add(e)):!E.valueElements.includes(e)&&t!==null&&(E.valueElements.includes(t)||(E.valueElements.push(e),J.add(e))),!E.srcElements.includes(e)&&t===null?(E.srcElements.push(e),te.add(e)):!E.srcElements.includes(e)&&t!==null&&(E.srcElements.includes(t)||(E.srcElements.push(e),te.add(e))),!E.hrefElements.includes(e)&&t===null?(E.hrefElements.push(e),ne.add(e)):!E.hrefElements.includes(e)&&t!==null&&(E.hrefElements.includes(t)||(E.hrefElements.push(e),ne.add(e))),!E.voidElements.includes(e)&&t===null?(E.voidElements.push(e),K.add(e)):!E.voidElements.includes(e)&&t!==null&&(E.voidElements.includes(t)||(E.voidElements.push(e),K.add(e))),globalThis[e]=(...i)=>z(e,...i)}a(me,"defineElement");function Me(e){x||requestAnimationFrame(()=>{requestAnimationFrame(e)})}a(Me,"onPaint");function rt(e){if(x)return;let t=!1;Me(()=>{t||(t=!0,e())})}a(rt,"paintFinish");function se(e){let t={};for(let n of e.attributes)if(n.name.startsWith("data-")&&n.name!=="data-component"){let o=n.name.slice(5);try{t[o]=JSON.parse(n.value)}catch{t[o]=n.value}}return t}a(se,"getPropsFromDataAttributes");async function $e(){let e=document.querySelector("layout[data-layout]");if(!e)return!1;let t=e.getAttribute("data-layout");if(!t)return!1;try{x||(t="/"+t);let n=await fetch(t);if(!n.ok)throw new Error("Failed to load layout");let o=await n.text(),s=new DOMParser().parseFromString(o,"text/html"),c=document.querySelector("description[data-description]");if(c){let f=s.querySelector('meta[name="description"]');f||(f=s.createElement("meta"),f.name="description",s.head.appendChild(f)),f.content=c.getAttribute("data-description")}let r=document.querySelector("keywords[data-keywords]");if(r){let f=s.querySelector('meta[name="keywords"]');f||(f=s.createElement("meta"),f.name="keywords",s.head.appendChild(f)),f.content=r.getAttribute("data-keywords")}return document.querySelectorAll("[data-part]").forEach(f=>{let u=f.getAttribute("data-part"),d=s.querySelector(`[data-part="${u}"]`);d&&(d.innerHTML="",[...f.childNodes].forEach(y=>{d.appendChild(y.cloneNode(!0))}))}),document.documentElement.innerHTML=s.documentElement.innerHTML,!0}catch(n){return console.error("Failed to inject layout:",n),!1}}a($e,"injectLayout");function W(e,t){if(!t)return;let n=t.trim();if(e[n])return e[n];let o=n[0].toUpperCase()+n.slice(1).toLowerCase();if(e[o])return e[o];let i=n.toUpperCase();if(e[i])return e[i];let s=n.toLowerCase(),c=Object.entries(e).find(([r,m])=>r.toLowerCase()===s);if(c)return c[1]}a(W,"lookupComponent");async function Re(e,t){let n=t.trim();for(let[o,i]of Object.entries(e))if(i.loader)try{let s=await i.loader(),c=s.default||Object.values(s)[0];if(typeof c=="function"&&c.name===n)return i._componentName=c.name,i}catch(s){console.warn(`Failed to load route "${o}":`,s);continue}}a(Re,"findRouteByComponentName");async function le(e){var f;let t=e||w.route;await $e();let{componentKey:n,componentNme:o,params:i}=ce(t),s=new Set,c=await i._componentNamePromise,r=n,m=document.querySelectorAll("[data-component]");for(let u of m){let d=u.getAttribute("data-component"),y=d==null?void 0:d.toLowerCase();if(typeof rvs_map_sigment<"u"&&rvs_map_sigment!==null?r=W(rvs_map_sigment,d):r=y,!r||s.has(r))continue;let h=W(t,r);h===void 0&&(h=await Re(t,r));try{u.hasChildNodes()&&(globalThis.__CURRENT_COMPONENT__=d);let g=h?await Fe(h):await He(w.loadAtRunTime,r),l=h?{...i,...se(u)}:se(u),p=g.default(l);p.funcName=c.toLowerCase();let b=(f=u.closest("[data-part]"))==null?void 0:f.getAttribute("data-part");p.datapart=b,p.setAttribute("data-component",d),p.hydrate=!0,u.cmpNbr=M,ee(u,p),ae.set(r,M),M++,q=0}catch(g){console.warn(`Component "${y}" failed to load`,g)}}}a(le,"hydrateComponent");async function Fe(e){if(!P.has(e)){let t=await e.loader();P.set(e,t)}return P.get(e)}a(Fe,"loadModule");async function He(e,t){let n=W(e,t);if(n){if(P.has(n))return P.get(n);try{let o=await n();return P.set(n,o),o}catch(o){console.error(`Component "${t}" failed to load`,o)}}}a(He,"loadModuleFromFile");function it(e,t){if(e===void 0){le();return}if(typeof e=="object"&&t===void 0){le(e);return}let n=typeof e=="string"?document.getElementById(e):e;if(!n)throw new Error("Mount target not found: "+e);n.hasChildNodes()?ee(n,t):n.replaceChildren(t)}a(it,"mount");function ee(e,t){(async()=>{try{if(!e||!t)return;if(t._boundNode=e,e.nodeName!==t.nodeName){e.replaceWith(t);return}if(e.nodeType===Node.TEXT_NODE||e.nodeType===Node.COMMENT_NODE){e.nodeValue!==t.nodeValue&&(e.nodeValue=t.nodeValue);return}if(e.nodeType===Node.ELEMENT_NODE&&t.nodeType===Node.ELEMENT_NODE){for(let i of Array.from(t.attributes))e.setAttribute(i.name,i.value);for(let i of Array.from(e.attributes))t.hasAttribute(i.name)||e.removeAttribute(i.name);t._handlers&&t._handlers.forEach(({type:i,val:s})=>{e.addEventListener(i,c=>{w.stopPropagation&&c.stopPropagation(),s(c)})})}let n=Array.from(t.childNodes),o=Array.from(e.childNodes);for(let i=0;i<Math.max(n.length,o.length);i++){let s=o[i],c=n[i];s&&c?ee(s,c):c?e.appendChild(c):s&&e.removeChild(s)}}catch(n){console.error("Hydration failed:",n)}})()}a(ee,"hydrate");export{Je as IsEmpty,w as MyApp,Ee as Navigate,Ye as NavigateTo,Ge as Route,tt as addSigment,Xe as clearComponentCache,X as createEffect,nt as createElement,qe as createGlobalSignal,et as createSigment,ue as createSignal,ot as fetchCache,Ue as getCookie,We as getGlobalSignal,Be as getStorage,H as getVirtualElementById,qe as globalSignal,H as gve,ie as gvec,z as h,le as hydrateComponent,Ie as initLoadAtRunTime,Ke as loadFunc,xe as loadRunFunc,Ne as memoizeFunc,it as mount,Me as onPaint,rt as paintFinish,ce as parsePath,re as rpc,ze as setCookie,Ve as setStorage,de as sig,de as signal,Qe as store,Ze as updateNodeIfNeeded,We as useGlobalSignal};
|
|
9
|
+
};`)}if(k.has(r))return k.get(r);try{let i=(await e[r]()).default;return k.set(r,i),i}catch(s){throw new Error(`Failed to load component "${r}": ${s.message}`)}}a(Ke,"loadFunc");function Te(e){let t=null,n=-1;if(typeof e=="string")return{partName:e,index:n};let r=(e==null?void 0:e.target)instanceof Element?e.target.closest("[data-component]"):null;if(r){let s=r.closest("[data-part]");if(t=s==null?void 0:s.getAttribute("data-part"),s){let i=r.getAttribute("data-component");i&&s.querySelectorAll(`[data-component="${i}"]`).forEach((o,u)=>{o===r&&(n=u)})}}return{partName:t,index:n}}a(Te,"getTargetPartAndIndex");async function Ye(e,t,n,r,s=null){if(v)return;let i=null,{partName:c,index:o}=Te(s);c&&(i=c);let u=window.location.host+"/"+e;if(i===null){if(W===u)return;W=u}let d;typeof t=="boolean"||typeof t=="string"?(n=t,t=_.route):t===void 0&&(t=_.route,n=!1),we(e);let{componentKey:f,params:p}=ue(t);(f===void 0||f==="")&&console.warn(`current path "${e}" not match in route map file , check if param path is match`);let h=Object.keys(t);if(typeof n=="string")f=n,d=!!r;else if(typeof n=="boolean"){if(h.length===1)f=h[0];else if(h.includes(f))f=f;else throw new Error(`Ambiguous component map: multiple components exist and no matching key for path '${e}' found. Provide component key explicitly.`);d=n}else{if(h.length===1)f=h[0];else if(h.includes(f))f=f;else throw new Error(`Ambiguous component map: multiple components exist and no matching key for path '${e}' found. Provide component key explicitly.`);d=!1}let y=await Oe(t,f,p,null,!1);i&&(e=e+i+o);let g=K.get(e);if((!g||!d)&&(typeof y=="function"?(j=ce.get(y.name),V=0,Array.isArray(p)?g=y(...p):typeof p=="object"&&p!==null?g=y(p):g=y(),K.set(e,g)):g=y),P&&P.isConnected){var l=P.contains(g);l||P.replaceWith(g)}else{typeof rvs_map_sigment<"u"&&rvs_map_sigment!==null&&(f=U(rvs_map_sigment,f));let m=document.querySelectorAll('[data-part="'+i+'"] [data-component="'+f+'"]');g.setAttribute("data-component",f),m&&m.length===1?m[0].replaceWith(g):m&&m.length>1?m[o].replaceWith(g):document.body.replaceChildren(g)}i===null&&(P=g,be=e),W=u}a(Ye,"NavigateTo");function ue(e){if(v)return;let t=window.location.pathname.replace(/\/{2,}/g,"/");t.length>1&&t.endsWith("/")&&(t=t.slice(0,-1));let n=t.replace(/^\//,"").split("/").filter(Boolean);n[0]===void 0&&(n[0]="/");let r={},s=null,i=null,c=0;function o(f){return f.length>1&&f.endsWith("/")&&(f=f.slice(0,-1)),f.replace(/^\//,"").split("/").map(p=>{let h=p.startsWith(":"),y=h&&p.endsWith("?"),g=h?p.slice(1).replace("?",""):p;return g===""&&(g="/"),{isParam:h,isOptional:y,name:g}})}a(o,"parseRouteSegments");for(let[f,p]of Object.entries(e)){let h=p.path||`/${f}`,y=o(h),g=!0;for(let l=0;l<y.length;l++){let m=y[l],b=n[l];if(m.isParam){if(!b&&!m.isOptional){g=!1;break}}else if(m.name!==b){g=!1;break}}if(n.length<y.length){for(let l=n.length;l<y.length;l++)if(!y[l].isOptional){g=!1;break}}if(g){s=f,i=p,c=y.length,y.forEach((l,m)=>{if(l.isParam){let b=n[m];b!==void 0&&b!==""&&(r[l.name]=b)}});break}}s||(s="",i=e[s]),i!=null&&i.urlParam&&i.urlParam.split("/").map(p=>p.replace(/[{}]/g,"")).forEach((p,h)=>{let y=n[c+h];y!==void 0&&y!==""&&(r[p]=y)}),new URL(window.location.href).searchParams.forEach((f,p)=>{r[p]=f});let d=s;return i!=null&&i.loader&&(Object.defineProperty(r,"_componentNamePromise",{value:i.loader().then(f=>{let p=f.default||Object.values(f)[0];return typeof p=="function"&&p.name?p.name:s})}),Object.defineProperty(r,"componentName",{get(){return d}})),{componentKey:s,componentName:d,params:r}}a(ue,"parsePath");function F(e){return new DOMParser().parseFromString(e,"text/html").body.firstChild}a(F,"parseHTML");async function Oe(e,t,n=null,r=null,s=!0){if(v)return;let i=e[t.toLowerCase()];if(i||(typeof e.fallback=="string"?i=e[e.fallback]:i=e.fallback),!i)return F("<h1>404 - Component not found</h1>");let{loader:c,guard:o,cacheExpiration:u=null,...d}=i;if(r===null&&typeof i.logic=="function"&&(r=i.logic),typeof o=="function"&&!await o(n))return F("<h1>403 - Forbidden</h1><p>You do not have access to this page.</p>");for(let f in d){let p=d[f];if(typeof p=="function")try{await p()}catch(h){console.error(h)}}try{let f=Date.now(),p=k.get(t);p&&u!==null&&f-p.cachedAt>u&&(k.delete(t),p=null);let h;if(p)h=p.component,k.set(t,{component:h,cachedAt:f});else{if(h=(await c()).default,k.size>=_.maxCacheSize){let m=k.keys().next().value;k.delete(m)}k.set(t,{component:h,cachedAt:f})}if(typeof h!="function")return F("<h1>Invalid component</h1>");if(!s)return h;let y;Array.isArray(n)?y=h(...n):typeof n=="object"&&n!==null?y=h(n):y=h();let g="/";try{g=window.location.pathname.slice(1)+window.location.hash,g=g.endsWith("/")&&g!=="/"?g.slice(0,-1):g,g===""&&(g="/")}catch{g=t}return K.set(g,y),P=y,y}catch(f){return console.error(f),F("<h1>Error loading component</h1>")}}a(Oe,"loadRunFunc");function Q(e=""){var s,i;if(v)return"";$(Q.name),A.buildRoadMap=Q.name;var t="";let n=(s=new Error().stack)==null?void 0:s.toString();navigator.userAgent.toLowerCase().indexOf("firefox")>0?n=n.split("@"):n=n.split(`
|
|
10
|
+
`);for(let c=0;c<n.length;c++){var r="";if(navigator.userAgent.indexOf("Firefox")>0){let o=n[c].lastIndexOf(`
|
|
11
|
+
`);if(o===-1)continue;r=n[c].slice(o+1),r===""?(o=n[c].lastIndexOf("/")+1,o>-1&&(r=n[c].substr(o),r=r.substr(0,r.indexOf(".")))):r.indexOf("/")>-1&&(r=r.substr(0,r.indexOf("/")))}else r=(i=n[c])==null?void 0:i.trim().split(" ")[1];if(!A.funcname.includes(r)&&!(r===void 0||r==="")&&!(r.indexOf("http://")>-1||r.indexOf("https://")>-1)){if(A.gvec!==void 0&&r.indexOf(A.gvec)>-1)break;t.indexOf("|"+r)>-1||(t+="|"+r.replace(".","|"))}}return e+t}a(Q,"buildRoadMap");function $(e){!A.funcname.includes(e)&&A.funcname.push(e)}a($,"setFuncName");function fe(e){let t=typeof e=="object"&&e!==null&&!Array.isArray(e),n=!(typeof process<"u");t&&n&&console.warn("[Sigment] createSignal() is deprecated for objects. Use signal()."),t&&!n&&console.warn("[Sigment] createSignal() is deprecated for objects. Use signal().");let r=e,s=new Set;function i(){return H&&s.add(H),r}a(i,"get"),i.__isSignal=!0,i.__isPrimitiveSignal=!0;function c(u,d=!1){(d||r!==u)&&(r=u,s.forEach(f=>f()))}return a(c,"set"),[new Proxy(i,{get(u,d){if(d==="valueOf")return()=>r;if(d==="toString")return()=>String(r);if(d in u)return u[d]}}),c]}a(fe,"createSignal");function ve(e){return typeof e=="object"&&e!==null}a(ve,"isObject");function Je(e){return pe(e)[0]}a(Je,"store");function de(e){let t=e,n=new Map,r=a(o=>ve(o)?de(o)[0]:o,"wrap"),s=a(o=>{if(!n.has(o)){let[u,d]=fe(r(t[o])),f=new Proxy(u,{get(p,h){return h==="valueOf"?()=>u():h==="toString"?()=>String(u()):p[h]}});n.set(o,[f,d])}return n.get(o)},"getSignal"),i=new Proxy(t,{get(o,u){if(typeof u=="symbol")return t[u];let[d]=s(u);return d()},set(o,u,d){t[u]=d;let[,f]=s(u);return f(r(d)),!0}});function c(o){let u=typeof o=="function"?o(i):o;for(let d in u)i[d]=u[d]}return a(c,"setState"),[i,c]}a(de,"signalObject");function pe(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)?de(e):fe(e)}a(pe,"signal");function ee(e){function t(){H=t,e(),H=null}a(t,"wrapped"),t()}a(ee,"createEffect");function ke(e){e=e.toLowerCase(),E.innerHTMLElements.includes(e)||(E.innerHTMLElements.push(e),globalThis[e]=(...t)=>I(e,...t))}a(ke,"createTypeElement");function me(e){return e.replace(/-+/g,"-").replace(/-([a-z])/g,(t,n)=>n.toUpperCase())}a(me,"dashToCamel");function Xe(e,t=null){he(e,t)}a(Xe,"createSigment");function Ze(e,t=null){he(e,t)}a(Ze,"addSigment");function Qe(e,...t){if(ke(e),t.length!==0)return globalThis[e](...t)}a(Qe,"createElement");function Ne(e){let t=document.createTextNode("");return ee(()=>{if(typeof M!="object"||M===null){t.nodeValue=e;return}let n=e.replace(/{{(.*?)}}/g,(r,s)=>{let i=s.trim();if(M.hasOwnProperty(i)){let c=M[i];if(c&&typeof c[0]=="function")return c[0]()??""}return""});t.nodeValue=n}),t}a(Ne,"interpolateReactiveText");function et(e,t=5e3,n={}){let r=JSON.stringify([e,n,t]);if(!z.has(r)){let s=Pe(async()=>{let i=await fetch(e,n);if(!i.ok)throw new Error(`Fetch failed: ${i.status}`);return i.json()},t);z.set(r,s)}return z.get(r)()}a(et,"fetchCache");function te(e){if(Array.isArray(e))return e.map(te);if(e&&typeof e=="object"){let t={};return Object.keys(e).sort().forEach(n=>{t[n]=te(e[n])}),t}return e}a(te,"sortObjectDeep");function Me(e){if(e&&typeof e=="object"&&!Array.isArray(e)){let t={};return Object.keys(e).sort().forEach(n=>{t[n]=e[n]}),t}return e}a(Me,"sortObjectShallow");function Pe(e,t=null,n={}){let r=new Map,s=a((...i)=>{let{deepSort:c}=n,o;c===!0?o=i.map(y=>y&&typeof y=="object"?te(y):y):c===!1?o=i.map(y=>y&&typeof y=="object"?Me(y):y):o=i;let u=JSON.stringify(o),d=Date.now();u.length===2&&(u=e.name);let p=r.get(u);if(p&&(t===null||d-p.timestamp<t))return p.value;let h=e(...i);return r.set(u,{value:h,timestamp:d}),h instanceof Promise&&h.catch(()=>r.delete(u)),h},"wrapped");return s.clear=()=>r.clear(),s}a(Pe,"memoizeFunc");function B(e){let t={"&":"&","<":"<",">":">",'"':""","'":"'"};return e.replace(/[&<>"']/g,n=>t[n])}a(B,"escapeHtml");function Le(e){let t="";function n(r,s=0){let i=" ".repeat(s);if(r==null||r===!1||r===!0)return;if(Array.isArray(r)){r.forEach(o=>n(o,s+1));return}let c=r;typeof c=="function"&&(c=c()),typeof c=="function"&&c.__isSignal&&(c=c()),!(c==null||c===!1||c===!0)&&(t+=String(c))}return a(n,"process"),e.forEach(r=>n(r)),t}a(Le,"renderChildren");function Re(e){let t=[];for(let n=0;n<e.length;n++){let r=e[n],s=e[n+1];typeof r=="string"&&typeof s=="function"?(t.push(()=>r+s()),n++):t.push(r)}return t}a(Re,"normalizeChildren");function I(e,...t){var g;let n={},r=[];if(t[0]&&typeof t[0]=="object"&&!Array.isArray(t[0])&&t[0]!==null&&!(t[0]instanceof String)&&(v||!(t[0]instanceof Node))?(n=t[0],r=t.slice(1)):r=t,v&&typeof document>"u"){let l=globalThis.__CURRENT_COMPONENT__;globalThis.__HANDLER_REGISTRY__||(globalThis.__HANDLER_REGISTRY__={}),(g=globalThis.__HANDLER_REGISTRY__)[l]||(g[l]=[]);let m=[];for(let[O,T]of Object.entries(n))if(O==="style"&&typeof T=="object"){let N=Object.entries(T).map(([C,ye])=>`${C.replace(/([A-Z])/g,"-$1").toLowerCase()}:${ye}`).join(";");m.push(` style="${B(N)}"`)}else O!=="className"&&O!=="class"&&!O.startsWith("on")&&m.push(` ${O}="${B(String(T))}"`);(n.className||n.class)&&m.push(` class="${B(n.className||n.class)}"`);let b=Le(r);if(["input","img","br","hr","meta","link"].includes(e))return`<${e}${m.join("")} />`;if(e==="fragment")return b;var s;let w=G.get(e);return w&&(s=w.tagName,w.nativeTag!==null&&(s=w.nativeTag)),s!==void 0&&(e=s),`<${e}${m.join("")}>${b}</${e}>`}$(I.name);var i="";i=Q();var c=i.split("|");if(c.includes(A.rpc))return;let o=null,u=e.toLowerCase()==="fragment";if(u)o=document.createDocumentFragment();else{var s;let m=G.get(e);m&&(s=m.tagName,m.nativeTag!==null&&(s=m.nativeTag)),s!==void 0&&(e=s),o=document.createElement(e)}if(globalThis.__CURRENT_COMPONENT__){V++;let l=V;o.dataIndex=l,o.realtedComponent=globalThis.__CURRENT_COMPONENT__,o.cmpNbr=j}let d=[];for(let[l,m]of Object.entries(n))if(l.startsWith("on")&&typeof m=="function"){let b=l.slice(2).toLowerCase();d.push({type:b,val:m})}d.length&&(o._handlers=d);let f=J.has(e),p=Y.has(me(e)),h=e==="input"||e==="option",y=e==="option";if(!u)for(let l in n){let m=n[l];if(l.startsWith("on")&&typeof m=="function"){let b=l.slice(2).toLowerCase();o.addEventListener(b,S=>{_.stopPropagation&&S.stopPropagation(),m(S)})}else typeof m=="function"&&l!=="children"?ee(()=>{let b=m();b==null||b===!1?(o.removeAttribute(l),l==="value"&&p&&(o.value="",_.cleanhtml||o.removeAttribute("value")),l==="checked"&&h&&(o.checked=!1,_.cleanhtml||o.removeAttribute("checked")),l==="selected"&&y&&(o.selected=!1,_.cleanhtml||o.removeAttribute("selected")),l==="id"&&(o.iid="",_.cleanhtml||o.removeAttribute("id"))):l==="id"?(o.iid=b,_.cleanhtml?o.removeAttribute("id"):o.setAttribute("id",b),X(b,{name:b,caller:b+i,value:o})):l==="value"&&p?(o.value=b,_.cleanhtml?o.removeAttribute("value"):o.setAttribute("value",b)):l==="checked"&&h?(o.checked=b,_.cleanhtml?o.removeAttribute("checked"):b?o.setAttribute("checked",""):o.removeAttribute("checked")):l==="selected"&&y?(o.selected=b,_.cleanhtml?o.removeAttribute("selected"):b?o.setAttribute("selected",""):o.removeAttribute("selected")):o.setAttribute(l,b)}):m!=null&&m!==!1&&(l==="id"?(o.iid=m,_.cleanhtml?o.removeAttribute("id"):o.setAttribute("id",m),X(m,{name:m,caller:m+i,value:o})):l==="value"&&p?(o.value=m,_.cleanhtml?o.removeAttribute("value"):o.setAttribute("value",m)):l==="checked"&&h?(o.checked=m,_.cleanhtml?o.removeAttribute("checked"):o.setAttribute("checked","")):l==="selected"&&y?(o.selected=m,_.cleanhtml?o.removeAttribute("selected"):o.setAttribute("selected","")):o.setAttribute(l,m))}return f?r.length===1&&(typeof r[0]=="string"||typeof r[0]=="number")?p&&(o.value=r[0],_.cleanhtml?o.removeAttribute("value"):o.setAttribute("value",r[0])):r.length>0&&console.warn(`Void element <${e}> should not have children.`):(r=Re(r),r.flat().forEach((l,m)=>{if(l&&l.__isSignal&&l.__isPrimitiveSignal&&!l.__isWrapped){let b=l;b.__isWrapped=!0,l=a(()=>b(),"child")}if(typeof l=="function"){let b=l(),w=b===!1||b===null||b===!0?document.createComment(""):document.createTextNode("");o.appendChild(w),ee(()=>{let x=l();if(Array.isArray(x)){let T=w.parentNode;if(!T)return;w._insertedNodes&&(w._insertedNodes.forEach(C=>C.remove()),w._insertedNodes=null);let N=x.flat().filter(Boolean).map(C=>C instanceof Node?C:typeof C=="string"||typeof C=="number"?document.createTextNode(String(C)):typeof C=="object"?C.__isNode?C:div(C.name??JSON.stringify(C)):null).filter(Boolean);N.forEach(C=>T.insertBefore(C,w)),w._insertedNodes=N,w.nodeValue="";return}if(x instanceof Node){let T=w.parentNode;if(!T)return;w._insertedNode&&(w._insertedNode._boundNode&&w._insertedNode._boundNode.remove(),w._insertedNode.remove(),w._insertedNode=null),T.insertBefore(x,w),w._insertedNode=x;return}let O=x==null||x===!1||x===!0?"":String(x);if(w._insertedNode&&(w._insertedNode._boundNode&&w._insertedNode._boundNode.remove(),w._insertedNode.remove(),w._insertedNode=null),w.nodeValue!==O){if(!w.parentNode)return;w!=null&&w._boundNode?w._boundNode.nodeValue=O:w.nodeValue=O}})}else if(typeof l=="string"&&l.includes("{{")&&!l.includes("function"))o.appendChild(Ne(l));else if(typeof l=="string"||typeof l=="number"){if(typeof l=="string"&&(l.includes("function get(")||l.includes("function (")||l.includes("[native code]")))throw new Error("Detected reactive getter function used inside a template string. Use a function instead like: div(() => `Your text is: ${someState()}`)");o.appendChild(document.createTextNode(l))}else(l instanceof DocumentFragment||l instanceof Node)&&o.appendChild(l)})),o}a(I,"h");function je(e){return e.replace(/([a-z])([A-Z])/g,"$1-$2").replace(/-+/g,"-").toLowerCase()}a(je,"camelToDash");function he(e,t=null){if(E.innerHTMLElements.includes(e)||E.valueElements.includes(e)||E.srcElements.includes(e)||E.hrefElements.includes(e)||E.voidElements.includes(e))return;let r=/[A-Z]/.test(e)?je(e):e.toLowerCase();r.includes("-")||(r="s-"+r),e.includes("-")&&(r=e,e=me(e)),G.set(e,{tagName:r,nativeTag:t}),!E.innerHTMLElements.includes(e)&&t===null?E.innerHTMLElements.push(e):!E.innerHTMLElements.includes(e)&&t!==null&&(E.innerHTMLElements.includes(t)||E.innerHTMLElements.push(e)),!E.valueElements.includes(e)&&t===null?(E.valueElements.push(e),Y.add(e)):!E.valueElements.includes(e)&&t!==null&&(E.valueElements.includes(t)||(E.valueElements.push(e),Y.add(e))),!E.srcElements.includes(e)&&t===null?(E.srcElements.push(e),re.add(e)):!E.srcElements.includes(e)&&t!==null&&(E.srcElements.includes(t)||(E.srcElements.push(e),re.add(e))),!E.hrefElements.includes(e)&&t===null?(E.hrefElements.push(e),oe.add(e)):!E.hrefElements.includes(e)&&t!==null&&(E.hrefElements.includes(t)||(E.hrefElements.push(e),oe.add(e))),!E.voidElements.includes(e)&&t===null?(E.voidElements.push(e),J.add(e)):!E.voidElements.includes(e)&&t!==null&&(E.voidElements.includes(t)||(E.voidElements.push(e),J.add(e))),globalThis[e]=(...s)=>I(e,...s)}a(he,"defineElement");function $e(e){v||requestAnimationFrame(()=>{requestAnimationFrame(e)})}a($e,"onPaint");function tt(e){if(v)return;let t=!1;$e(()=>{t||(t=!0,e())})}a(tt,"paintFinish");function le(e){let t={};for(let n of e.attributes)if(n.name.startsWith("data-")&&n.name!=="data-component"){let r=n.name.slice(5);try{t[r]=JSON.parse(n.value)}catch{t[r]=n.value}}return t}a(le,"getPropsFromDataAttributes");async function Fe(){let e=document.querySelector("layout[data-layout]");if(!e)return!1;let t=e.getAttribute("data-layout");if(!t)return!1;try{v||(t="/"+t);let n=await fetch(t);if(!n.ok)throw new Error("Failed to load layout");let r=await n.text(),i=new DOMParser().parseFromString(r,"text/html"),c=document.querySelector("description[data-description]");if(c){let d=i.querySelector('meta[name="description"]');d||(d=i.createElement("meta"),d.name="description",i.head.appendChild(d)),d.content=c.getAttribute("data-description")}let o=document.querySelector("keywords[data-keywords]");if(o){let d=i.querySelector('meta[name="keywords"]');d||(d=i.createElement("meta"),d.name="keywords",i.head.appendChild(d)),d.content=o.getAttribute("data-keywords")}return document.querySelectorAll("[data-part]").forEach(d=>{let f=d.getAttribute("data-part"),p=i.querySelector(`[data-part="${f}"]`);p&&(p.innerHTML="",[...d.childNodes].forEach(h=>{p.appendChild(h.cloneNode(!0))}))}),document.documentElement.innerHTML=i.documentElement.innerHTML,!0}catch(n){return console.error("Failed to inject layout:",n),!1}}a(Fe,"injectLayout");function U(e,t){if(!t)return;let n=t.trim();if(e[n])return e[n];let r=n[0].toUpperCase()+n.slice(1).toLowerCase();if(e[r])return e[r];let s=n.toUpperCase();if(e[s])return e[s];let i=n.toLowerCase(),c=Object.entries(e).find(([o,u])=>o.toLowerCase()===i);if(c)return c[1]}a(U,"lookupComponent");async function We(e,t){let n=t.trim();for(let[r,s]of Object.entries(e))if(s.loader)try{let i=await s.loader(),c=i.default||Object.values(i)[0];if(typeof c=="function"&&c.name===n)return s._componentName=c.name,s}catch(i){console.warn(`Failed to load route "${r}":`,i);continue}}a(We,"findRouteByComponentName");async function ae(e){var d;let t=e||_.route;await Fe();let{componentKey:n,componentNme:r,params:s}=ue(t),i=new Set,c=await s._componentNamePromise,o=n,u=document.querySelectorAll("[data-component]");for(let f of u){let p=f.getAttribute("data-component"),h=p==null?void 0:p.toLowerCase();if(typeof rvs_map_sigment<"u"&&rvs_map_sigment!==null?o=U(rvs_map_sigment,p):o=h,!o||i.has(o))continue;let y=U(t,o);y===void 0&&(y=await We(t,o));try{f.hasChildNodes()&&(globalThis.__CURRENT_COMPONENT__=p);let g=y?await De(y):await He(_.loadAtRunTime,o),l=y?{...s,...le(f)}:le(f),m=g.default(l);m.funcName=c.toLowerCase();let b=(d=f.closest("[data-part]"))==null?void 0:d.getAttribute("data-part");m.datapart=b,m.setAttribute("data-component",p),m.hydrate=!0,f.cmpNbr=j,ne(f,m),ce.set(o,j),j++,V=0}catch(g){console.warn(`Component "${h}" failed to load`,g)}}}a(ae,"hydrateComponent");async function De(e){if(!L.has(e)){let t=await e.loader();L.set(e,t)}return L.get(e)}a(De,"loadModule");async function He(e,t){let n=U(e,t);if(n){if(L.has(n))return L.get(n);try{let r=await n();return L.set(n,r),r}catch(r){console.error(`Component "${t}" failed to load`,r)}}}a(He,"loadModuleFromFile");function nt(e,t){if(e===void 0){ae();return}if(typeof e=="object"&&t===void 0){ae(e);return}let n=typeof e=="string"?document.getElementById(e):e;if(!n)throw new Error("Mount target not found: "+e);n.hasChildNodes()?ne(n,t):n.replaceChildren(t)}a(nt,"mount");function ne(e,t){(async()=>{try{if(!e||!t)return;if(t._boundNode=e,e.nodeName!==t.nodeName){e.replaceWith(t);return}if(e.nodeType===Node.TEXT_NODE||e.nodeType===Node.COMMENT_NODE){e.nodeValue!==t.nodeValue&&(e.nodeValue=t.nodeValue);return}if(e.nodeType===Node.ELEMENT_NODE&&t.nodeType===Node.ELEMENT_NODE){for(let s of Array.from(t.attributes))e.setAttribute(s.name,s.value);for(let s of Array.from(e.attributes))t.hasAttribute(s.name)||e.removeAttribute(s.name);t._handlers&&t._handlers.forEach(({type:s,val:i})=>{e.addEventListener(s,c=>{_.stopPropagation&&c.stopPropagation(),i(c)})})}let n=Array.from(t.childNodes),r=Array.from(e.childNodes);for(let s=0;s<Math.max(n.length,r.length);s++){let i=r[s],c=n[s];i&&c?ne(i,c):c?e.appendChild(c):i&&e.removeChild(i)}}catch(n){console.error("Hydration failed:",n)}})()}a(ne,"hydrate");export{Ge as IsEmpty,_ as MyApp,we as Navigate,Ye as NavigateTo,Be as Route,Ze as addSigment,ze as batch,ee as createEffect,Qe as createElement,qe as createGlobalSignal,Xe as createSigment,fe as createSignal,Ie as createTemplate,et as fetchCache,Ue as getGlobalSignal,D as getVirtualElementById,qe as globalSignal,D as gve,se as gvec,I as h,ae as hydrateComponent,Ke as loadFunc,Oe as loadRunFunc,Pe as memoizeFunc,nt as mount,$e as onPaint,tt as paintFinish,ue as parsePath,ie as rpc,pe as sig,pe as signal,Je as store,Ue as useGlobalSignal};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sigment",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "A lightweight reactive JavaScript framework built with signals and vanilla JS — no virtual DOM, no JSX, no transpilation.",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"repository": {
|
|
@@ -38,11 +38,19 @@
|
|
|
38
38
|
"engines": {
|
|
39
39
|
"node": ">=14.8.0"
|
|
40
40
|
},
|
|
41
|
-
|
|
42
|
-
"
|
|
43
|
-
"
|
|
44
|
-
|
|
45
|
-
|
|
41
|
+
"keywords": [
|
|
42
|
+
"javascript",
|
|
43
|
+
"vanilla",
|
|
44
|
+
"reactive",
|
|
45
|
+
"signals",
|
|
46
|
+
"state-management",
|
|
47
|
+
"dom-performance",
|
|
48
|
+
"no-vdom",
|
|
49
|
+
"lightweight-framework",
|
|
50
|
+
"batch-rendering",
|
|
51
|
+
"sigment",
|
|
52
|
+
"ui-engine",
|
|
53
|
+
"fast-dom"
|
|
46
54
|
],
|
|
47
55
|
"bugs": {
|
|
48
56
|
"url": "https://github.com/sigmentjs/basic-sigment-typescript-vite/issues"
|
package/throw-on-require.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
throw new Error('
|
|
1
|
+
throw new Error('sigment is ESM-only. Use import instead of require.');
|
package/types/index.d.ts
CHANGED
|
@@ -38,7 +38,7 @@ export declare const MyApp: {
|
|
|
38
38
|
maxCacheSize: number;
|
|
39
39
|
setRoute: (routes: RoutesMap) => void;
|
|
40
40
|
route: RoutesMap | null;
|
|
41
|
-
setloadAtRunTime: (loadAtRunTime: LoadAtRunTime) => void;
|
|
41
|
+
setloadAtRunTime: (loadAtRunTime: true | LoadAtRunTime) => void; // updated
|
|
42
42
|
loadAtRunTime: LoadAtRunTime | null;
|
|
43
43
|
setStopPropagation: (flag: boolean) => void;
|
|
44
44
|
stopPropagation: boolean;
|
|
@@ -53,7 +53,6 @@ export type LoadAtRunTime = {
|
|
|
53
53
|
|
|
54
54
|
|
|
55
55
|
|
|
56
|
-
|
|
57
56
|
/**
|
|
58
57
|
* Creates a reactive effect that runs the given function and tracks dependencies.
|
|
59
58
|
*/
|
|
@@ -144,10 +143,7 @@ export declare function parsePath(
|
|
|
144
143
|
): Promise<HTMLElement>;
|
|
145
144
|
|
|
146
145
|
|
|
147
|
-
|
|
148
|
-
* Clears cached component for a given component name.
|
|
149
|
-
*/
|
|
150
|
-
export declare function clearComponentCache(componentName: string): void;
|
|
146
|
+
|
|
151
147
|
|
|
152
148
|
export declare function createGlobalSignal<T>(key: string, initialValue: T): [() => T, (v: T) => void];
|
|
153
149
|
|
|
@@ -218,40 +214,75 @@ export { signal as sig };
|
|
|
218
214
|
export declare function store<T extends object>(value: T): T;
|
|
219
215
|
|
|
220
216
|
|
|
221
|
-
|
|
222
217
|
/**
|
|
223
|
-
*
|
|
218
|
+
* Sigment UI Engine - Type Definitions
|
|
224
219
|
*/
|
|
225
|
-
export declare function gve(name: string): HTMLElement | null;
|
|
226
|
-
export { gve as getVirtualElementById };
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
export function gve(name: string): HTMLElement | null;
|
|
231
|
-
|
|
232
|
-
export { gve as getVirtualElementById };
|
|
233
220
|
|
|
221
|
+
/**
|
|
222
|
+
* Result of the createTemplate processing.
|
|
223
|
+
* Acts as a blueprint for high-speed batch rendering.
|
|
224
|
+
*/
|
|
225
|
+
export interface SigmentTemplate {
|
|
226
|
+
element: HTMLElement;
|
|
227
|
+
paths: { type: string; index: number }[];
|
|
228
|
+
}
|
|
234
229
|
|
|
230
|
+
/**
|
|
231
|
+
* SigmentElement
|
|
232
|
+
* A standard HTMLElement enhanced with Sigment's high-performance methods.
|
|
233
|
+
*/
|
|
234
|
+
export type SigmentElement = HTMLElement & {
|
|
235
|
+
|
|
236
|
+
/** Removes the element from the DOM and clears it from Sigment's internal data maps. */
|
|
237
|
+
destroy(): void;
|
|
238
|
+
|
|
239
|
+
/** Swaps positions with another element in the same container by target index. */
|
|
240
|
+
swapWith(targetIdx: number): SigmentElement;
|
|
241
|
+
|
|
242
|
+
/** Updates the content of a specific Node (TextNode) within the element. */
|
|
243
|
+
updateVal(nodeIdx: number, value: string | number): void;
|
|
244
|
+
|
|
245
|
+
/** Appends text to the existing content of a specific Node within the element. */
|
|
246
|
+
addVal(nodeIdx: number, value: string | number): void;
|
|
247
|
+
|
|
248
|
+
/** (For containers) Removes all children and clears associated internal data maps. */
|
|
249
|
+
clear(): void;
|
|
250
|
+
|
|
251
|
+
/** (For containers) Retrieves a child element by its ID (string) or current index (number). */
|
|
252
|
+
get(idOrIdx: string | number): SigmentElement | null;
|
|
253
|
+
};
|
|
235
254
|
|
|
236
255
|
/**
|
|
237
|
-
*
|
|
256
|
+
* Core Functions
|
|
238
257
|
*/
|
|
239
|
-
export declare function setCookie(k: string, v: any, t?: number): void;
|
|
240
258
|
|
|
241
259
|
/**
|
|
242
|
-
*
|
|
260
|
+
* Scans an element or template and creates a Blueprint for fast row generation.
|
|
261
|
+
* It maps all "?" placeholders found in TextNodes.
|
|
243
262
|
*/
|
|
244
|
-
export
|
|
263
|
+
export function createTemplate(el: HTMLElement | HTMLTemplateElement): SigmentTemplate | null;
|
|
245
264
|
|
|
246
265
|
/**
|
|
247
|
-
*
|
|
266
|
+
* Selects an element from the DOM and upgrades it with Sigment capabilities.
|
|
248
267
|
*/
|
|
249
|
-
export
|
|
268
|
+
export function gve(id: string | HTMLElement): SigmentElement | null;
|
|
250
269
|
|
|
251
270
|
/**
|
|
252
|
-
*
|
|
271
|
+
* Performs high-speed, chunked rendering of large datasets into a container.
|
|
272
|
+
* @param data - The raw data array.
|
|
273
|
+
* @param templateStructure - The blueprint object returned by createTemplate.
|
|
274
|
+
* @param containerId - The ID of the target container element (e.g., 'tbody').
|
|
275
|
+
* @param chunkSize - Number of elements to render per frame (default: 1000).
|
|
276
|
+
* @param mode - 'false' to clear container before rendering, 'true' to append.
|
|
253
277
|
*/
|
|
254
|
-
export
|
|
278
|
+
export function batch(
|
|
279
|
+
data: any[],
|
|
280
|
+
templateStructure: SigmentTemplate,
|
|
281
|
+
containerId: string,
|
|
282
|
+
chunkSize?: number,
|
|
283
|
+
mode?: boolean
|
|
284
|
+
): void;
|
|
285
|
+
|
|
255
286
|
|
|
256
287
|
/**
|
|
257
288
|
* Hyperscript-style function to create elements or components.
|
|
@@ -616,16 +647,7 @@ export function onPaint(fn: () => void): void;
|
|
|
616
647
|
*/
|
|
617
648
|
export function paintFinish(fn: () => void): void;
|
|
618
649
|
|
|
619
|
-
|
|
620
|
-
* Updates the DOM element matching the selector with the given node,
|
|
621
|
-
* only if needed.
|
|
622
|
-
* @param target - A CSS selector string for the target element.
|
|
623
|
-
* @param node - The new DOM Node to compare or replace.
|
|
624
|
-
*/
|
|
625
|
-
export function updateNodeIfNeeded(
|
|
626
|
-
target: string,
|
|
627
|
-
node: Node
|
|
628
|
-
): void;
|
|
650
|
+
|
|
629
651
|
|
|
630
652
|
|
|
631
653
|
|