@erickxavier/no-js 1.0.2 → 1.1.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/README.md +2 -2
- package/dist/cjs/no.js +4 -4
- package/dist/cjs/no.js.map +4 -4
- package/dist/esm/no.js +4 -4
- package/dist/esm/no.js.map +4 -4
- package/dist/iife/no.js +4 -4
- package/dist/iife/no.js.map +4 -4
- package/package.json +2 -2
- package/src/context.js +14 -4
- package/src/directives/events.js +6 -2
- package/src/directives/http.js +3 -1
- package/src/directives/i18n.js +26 -4
- package/src/directives/styling.js +2 -0
- package/src/directives/validation.js +5 -3
- package/src/globals.js +27 -3
- package/src/i18n.js +79 -2
- package/src/index.js +36 -4
- package/src/registry.js +30 -0
- package/src/router.js +44 -7
package/dist/iife/no.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* No.JS v1.0
|
|
2
|
+
* No.JS v1.1.0 — The HTML-First Reactive Framework
|
|
3
3
|
* No more JavaScript. Just HTML attributes with superpowers.
|
|
4
4
|
* @license MIT
|
|
5
5
|
* @see https://github.com/erickillian/nojs
|
|
6
6
|
*/
|
|
7
|
-
(()=>{var
|
|
7
|
+
(()=>{var ee=Object.defineProperty;var Ot=(t,e)=>()=>(t&&(e=t(t=0)),e);var re=(t,e)=>{for(var r in e)ee(t,r,{get:e[r],enumerable:!0})};function Ct(t){X=t}function kt(t){U=t}function H(...t){m.debug&&console.log("[No.JS]",...t)}function K(...t){console.warn("[No.JS]",...t)}function lt(){for(let t of ht){if(t._el&&!t._el.isConnected){ht.delete(t);continue}t()}}function rt(t,e,r){e.$watch(r),typeof t=="string"&&t.includes("$store")&&ht.add(r)}function nt(t){X&&(X.__disposers=X.__disposers||[],X.__disposers.push(t))}function wt(t,e){(tt[t]||[]).forEach(r=>r(e))}var m,at,tt,R,ht,v,et,Lt,ct,U,X,B=Ot(()=>{m={baseApiUrl:"",headers:{},timeout:1e4,retries:0,retryDelay:1e3,credentials:"same-origin",csrf:null,cache:{strategy:"none",ttl:3e5},templates:{cache:!0},router:{mode:"history",base:"/",scrollBehavior:"top",templates:"pages",ext:".tpl"},i18n:{defaultLocale:"en",fallbackLocale:"en",detectBrowser:!1,loadPath:null,ns:[],cache:!0,persist:!1},debug:!1,devtools:!1,csp:null,sanitize:!0},at={request:[],response:[]},tt={},R={},ht=new Set,v={},et={},Lt=new Map,ct={},U=null,X=null});var Pt={};re(Pt,{_deepMerge:()=>St,_i18n:()=>N,_i18nCache:()=>Tt,_i18nListeners:()=>ot,_loadI18nForLocale:()=>Nt,_loadI18nNamespace:()=>It,_loadLocale:()=>_t,_loadedNs:()=>$t,_notifyI18n:()=>gt,_watchI18n:()=>yt});function yt(t){return ot.add(t),()=>ot.delete(t)}function gt(){for(let t of ot){if(t._el&&!t._el.isConnected){ot.delete(t);continue}t()}}function St(t,e){let r={...t};for(let n of Object.keys(e))e[n]&&typeof e[n]=="object"&&!Array.isArray(e[n])&&t[n]&&typeof t[n]=="object"&&!Array.isArray(t[n])?r[n]=St(t[n],e[n]):r[n]=e[n];return r}async function _t(t,e){let r=e?`${t}:${e}`:t;if(m.i18n.cache&&Tt.has(r))return;let n=m.i18n.loadPath.replace("{locale}",t);e&&(n=n.replace("{ns}",e));try{let o=await fetch(n);if(!o.ok){K(`i18n: failed to load ${n} (${o.status})`);return}let s=await o.json(),i=e?{[e]:s}:s;N.locales[t]=St(N.locales[t]||{},i),m.i18n.cache&&Tt.set(r,s)}catch(o){K(`i18n: error loading ${n}`,o)}}async function Nt(t){if(!m.i18n.loadPath)return;let e=m.i18n.ns;!e.length||!m.i18n.loadPath.includes("{ns}")?await _t(t,null):await Promise.all(e.map(r=>_t(t,r)))}async function It(t){if(!m.i18n.loadPath)return;$t.add(t);let e=new Set([N.locale,m.i18n.fallbackLocale]);await Promise.all([...e].map(r=>_t(r,t)))}var ot,Tt,$t,N,G=Ot(()=>{B();ot=new Set;Tt=new Map,$t=new Set;N={_locale:"en",locales:{},get locale(){return this._locale},set locale(t){if(this._locale!==t){if(this._locale=t,m.i18n.persist&&typeof localStorage<"u")try{localStorage.setItem("nojs-locale",t)}catch{}if(m.i18n.loadPath){let e=new Set([...m.i18n.ns,...$t]);Promise.all([...e].map(r=>_t(t,r))).then(()=>gt())}else gt()}},t(t,e={}){let r=N.locales[N.locale]||N.locales[m.i18n.fallbackLocale]||{},n=t.split(".").reduce((o,s)=>o?.[s],r);if(n==null)return t;if(typeof n=="string"&&n.includes("|")&&e.count!=null){let o=n.split("|").map(s=>s.trim());n=Number(e.count)===1?o[0]:o[1]||o[0]}return typeof n=="string"&&(n=n.replace(/\{(\w+)\}/g,(o,s)=>e[s]!=null?e[s]:"")),n}}});B();G();B();G();var ne=0,oe=new Set;function $(t={},e=null){let r=new Set,n={};Object.assign(n,t);let o=!1;function s(){if(!o){o=!0;try{if(ne>0)for(let u of r){if(u._el&&!u._el.isConnected){r.delete(u);continue}oe.add(u)}else for(let u of r){if(u._el&&!u._el.isConnected){r.delete(u);continue}u()}}finally{o=!1}}}let i={get(u,c){if(c==="__isProxy")return!0;if(c==="__raw")return u;if(c==="__listeners")return r;if(c==="$watch")return f=>(X&&(f._el=X),r.add(f),()=>r.delete(f));if(c==="$notify")return s;if(c==="$set")return(f,l)=>{a[f]=l};if(c==="$parent")return e;if(c==="$refs")return ct;if(c==="$store")return R;if(c==="$route")return U?U.current:{};if(c==="$router")return U;if(c==="$i18n")return N;if(c==="$form")return u.$form||null;if(c in u)return u[c];if(e&&e.__isProxy)return e[c]},set(u,c,f){let l=u[c];return u[c]=f,l!==f&&s(),!0},has(u,c){return c in u?!0:e&&e.__isProxy?c in e:!1}},a=new Proxy(n,i);return a}function Dt(t){let e=new Set,r={},n=t;for(;n&&n.__isProxy;){let o=n.__raw;for(let s of Object.keys(o))e.has(s)||(e.add(s),r[s]=o[s]);n=n.$parent}return{keys:[...e],vals:r}}B();G();var Ht=new Map;function Q(t,e,r){let n={};for(let c=0;c<e.length;c++)n[e[c]]=r[c];function o(c,f){return c.split(".").reduce((l,d)=>l?.[d],f)}function s(c){let f=c.trim();if(f==="true")return!0;if(f==="false")return!1;if(f==="null")return null;if(f!=="undefined")return/^-?\d+(\.\d+)?$/.test(f)?Number(f):/^(['"`]).*\1$/.test(f)?f.slice(1,-1):o(f,n)}let i=t.trim(),a=i.match(/^(.+?)\s*\?\s*(.+?)\s*:\s*(.+)$/);if(a){let c=Q(a[1].trim(),e,r);return Q(c?a[2].trim():a[3].trim(),e,r)}if(i.includes("||")){let c=i.split("||");for(let f of c){let l=Q(f.trim(),e,r);if(l)return l}return Q(c[c.length-1].trim(),e,r)}if(i.includes("&&")){let c=i.split("&&"),f;for(let l of c)if(f=Q(l.trim(),e,r),!f)return f;return f}let u=i.match(/^(.+?)\s*(===|!==|==|!=|>=|<=|>|<)\s*(.+)$/);if(u){let c=s(u[1]),f=s(u[3]);switch(u[2]){case"===":return c===f;case"!==":return c!==f;case"==":return c==f;case"!=":return c!=f;case">=":return c>=f;case"<=":return c<=f;case">":return c>f;case"<":return c<f}}return i.startsWith("!")?!Q(i.slice(1).trim(),e,r):s(i)}function ie(t){let e=[],r="",n=0,o=!1,s="";for(let i=0;i<t.length;i++){let a=t[i];if(o){r+=a,a===s&&t[i-1]!=="\\"&&(o=!1);continue}if(a==="'"||a==='"'||a==="`"){o=!0,s=a,r+=a;continue}if(a==="("||a==="["||a==="{"){n++,r+=a;continue}if(a===")"||a==="]"||a==="}"){n--,r+=a;continue}if(a==="|"&&n===0&&t[i+1]!=="|"&&t[i-1]!=="|"){e.push(r.trim()),r="";continue}r+=a}return e.push(r.trim()),e}function se(t,e){let r=e.indexOf(":"),n,o;r===-1?(n=e.trim(),o=null):(n=e.substring(0,r).trim(),o=e.substring(r+1).trim());let s=v[n];if(!s)return K(`Unknown filter: ${n}`),t;let i=o?ae(o):[];return s(t,...i)}function ae(t){let e=[],r="",n=!1,o="";for(let s of t){if(n){if(s===o){n=!1;continue}r+=s;continue}if(s==="'"||s==='"'){n=!0,o=s;continue}if(s===","){e.push(r.trim()),r="";continue}r+=s}return r.trim()&&e.push(r.trim()),e.map(s=>{let i=Number(s);return isNaN(i)?s:i})}function b(t,e){if(!(t==null||t===""))try{let r=ie(t),n=r[0],{keys:o,vals:s}=Dt(e),i=["$store","$route","$router","$i18n","$refs","$form"];for(let f of i)o.includes(f)||(o.push(f),s[f]=e[f]);let a=o,u=a.map(f=>s[f]),c;if(m.csp==="strict")c=Q(n,a,u);else{let f=n+"|"+a.join(","),l=Ht.get(f);l||(l=new Function(...a,`return (${n})`),Ht.set(f,l)),c=l(...u)}for(let f=1;f<r.length;f++)c=se(c,r[f]);return c}catch{return}}function W(t,e,r={}){try{let{keys:n,vals:o}=Dt(e),s={$store:R,$route:U?.current,$router:U,$i18n:N,$refs:e.$refs};Object.assign(s,r);for(let[d,p]of Object.entries(s))n.includes(d)||(n.push(d),o[d]=p);let i=[...n],a=i.map(d=>o[d]),u=new Set,c=e;for(;c&&c.__isProxy;){for(let d of Object.keys(c.__raw))u.add(d);c=c.$parent}let f=[...u].filter(d=>!d.startsWith("$")).map(d=>`{let _c=__ctx;while(_c&&_c.__isProxy){if('${d}'in _c.__raw){_c.$set('${d}',typeof ${d}!=='undefined'?${d}:_c.__raw['${d}']);break;}_c=_c.$parent;}}`).join(`
|
|
8
8
|
`);new Function("__ctx",...i,`${t};
|
|
9
|
-
${
|
|
9
|
+
${f}`)(e,...a),typeof t=="string"&&t.includes("$store")&<()}catch(n){K("Expression error:",t,n.message),r.$el&&r.$el.dispatchEvent(new CustomEvent("nojs:error",{bubbles:!0,detail:{message:n.message,error:n}}))}}function it(t,e){return t.split(".").reduce((r,n)=>r?.[n],e)}function Z(t,e){return t.replace(/\{([^}]+)\}/g,(r,n)=>{let o=b(n.trim(),e);return o??""})}B();B();function Mt(t,e){if(t.startsWith("http://")||t.startsWith("https://")||t.startsWith("//"))return t;let r=e;for(;r;){let n=r.getAttribute?.("base");if(n)return n.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,"");r=r.parentElement}return m.baseApiUrl?m.baseApiUrl.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):t}async function At(t,e="GET",r=null,n={},o=null,s=null){let i=Mt(t,o),a={method:e.toUpperCase(),headers:{...m.headers||{},...n},credentials:m.credentials};if(r&&e!=="GET")if(typeof r=="string")try{JSON.parse(r),a.headers["Content-Type"]="application/json",a.body=r}catch{a.body=r}else r instanceof FormData?a.body=r:(a.headers["Content-Type"]="application/json",a.body=JSON.stringify(r));m.csrf&&e!=="GET"&&(a.headers[m.csrf.header||"X-CSRF-Token"]=m.csrf.token||"");for(let f of at.request)a=f(i,a)||a;let u=m.retries||0,c;for(let f=0;f<=u;f++)try{let l=new AbortController,d=setTimeout(()=>l.abort(),m.timeout||1e4);if(s){if(s.aborted)throw clearTimeout(d),new DOMException("Aborted","AbortError");s.addEventListener("abort",()=>l.abort(),{once:!0})}a.signal=l.signal;let p=await fetch(i,a);clearTimeout(d);for(let g of at.response)p=g(p,i)||p;if(!p.ok){let g=await p.json().catch(()=>({})),E=new Error(g.message||`HTTP ${p.status}`);throw E.status=p.status,E.body=g,E}let h=await p.text();try{return JSON.parse(h)}catch{return h}}catch(l){if(l.name==="AbortError")throw l;c=l,f<u&&await new Promise(d=>setTimeout(d,m.retryDelay||1e3))}throw c}function Rt(t,e){if(e==="none")return null;if(e==="memory"){let n=Lt.get(t);return n&&Date.now()-n.time<(m.cache.ttl||3e5)?n.data:null}let r=e==="local"?localStorage:e==="session"?sessionStorage:null;if(!r)return null;try{let n=r.getItem("nojs_cache_"+t);if(!n)return null;let o=JSON.parse(n);if(Date.now()-o.time<(m.cache.ttl||3e5))return o.data;r.removeItem("nojs_cache_"+t)}catch{}return null}function jt(t,e,r){if(r==="none")return;let n={data:e,time:Date.now()};if(r==="memory"){Lt.set(t,n);return}let o=r==="local"?localStorage:r==="session"?sessionStorage:null;if(o)try{o.setItem("nojs_cache_"+t,JSON.stringify(n))}catch{}}var ut=new Map;function x(t){let e=t;for(;e;){if(e.__ctx)return e.__ctx;e=e.parentElement}return $()}function V(t){let e=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(;e.nextNode();)e.currentNode.__declared=!1}function P(t){if(!t)return null;let e=t.startsWith("#")?t.slice(1):t,r=document.getElementById(e);return r&&r.content?r.content.cloneNode(!0):null}function Bt(t){return m.sanitize?t.replace(/<script[\s\S]*?<\/script>/gi,"").replace(/on\w+\s*=/gi,"data-blocked=").replace(/javascript:/gi,""):t}function Ft(t,e){if(t.startsWith("./")){let r=e.parentNode;for(;r;){if(r.__srcBase)return r.__srcBase+t.slice(2);r=r.parentNode}return t.slice(2)}return Mt(t,e)}async function Ut(t){let e=t||document,r=e.querySelectorAll("template[src]");if(H("[LRT] called on",e===document?"document":e.nodeName||"fragment","\u2014 found",r.length,"template[src]",[...r].map(o=>o.getAttribute("src"))),!r.length)return;let n=[...r].map(async o=>{if(o.__srcLoaded){H("[LRT] SKIP (already loaded):",o.getAttribute("src"));return}o.__srcLoaded=!0;let s=o.getAttribute("src"),i=Ft(s,o),a=i.substring(0,i.lastIndexOf("/")+1);try{let u=m.templates.cache!==!1,c;if(u&&ut.has(i)?(c=ut.get(i),H("[LRT] CACHE HIT:",i)):(c=await(await fetch(i)).text(),u&&ut.set(i,c)),o.innerHTML=c,o.content&&(o.content.__srcBase=a),H("Loaded remote template:",s,"\u2192",i),await Ut(o.content||o),!o.hasAttribute("route")&&o.parentNode){let l=[...o.content.childNodes],d=o.parentNode,p=o.nextSibling;d.removeChild(o);for(let h of l)h.nodeType===1&&(h.__srcBase=h.__srcBase||a),d.insertBefore(h,p)}}catch(u){K("Failed to load template:",s,u.message)}});await Promise.all(n)}async function ft(t){let e=t.getAttribute("src");if(t.__srcLoaded){H("[LTE] SKIP (already loaded):",e);return}H("[LTE] START fetch:",e,"| route:",t.hasAttribute("route"),"| inDOM:",document.contains(t),"| loading:",t.getAttribute("loading")),t.__srcLoaded=!0;let r=Ft(e,t),n=r.substring(0,r.lastIndexOf("/")+1),o=null,s=t.getAttribute("loading");if(s&&t.parentNode){let i=s.startsWith("#")?s.slice(1):s,a=document.getElementById(i);a&&a.content&&(o=document.createElement("span"),o.style.cssText="display:contents",o.appendChild(a.content.cloneNode(!0)),t.parentNode.insertBefore(o,t))}try{let i=m.templates.cache!==!1,a;if(i&&ut.has(r)?(a=ut.get(r),H("[LTE] CACHE HIT:",r)):(a=await(await fetch(r)).text(),i&&ut.set(r,a)),t.innerHTML=a,t.content&&(t.content.__srcBase=n),H("Loaded remote template:",e,"\u2192",r),t.hasAttribute("route")||await Ut(t.content||t),o&&o.remove(),!t.hasAttribute("route")&&t.parentNode){let c=[...t.content.childNodes],f=t.parentNode,l=t.nextSibling;f.removeChild(t);for(let d of c)d.nodeType===1&&(d.__srcBase=d.__srcBase||n),f.insertBefore(d,l)}}catch(i){o&&o.remove(),K("Failed to load template:",e,i.message)}}function vt(t){(t||document).querySelectorAll("template[include]").forEach(r=>{let n=r.getAttribute("include"),o=document.getElementById(n.startsWith("#")?n.slice(1):n);!o||!o.content||r.replaceWith(o.content.cloneNode(!0))})}async function Wt(t){let e=[...document.querySelectorAll("template[src]")],r=e.filter(o=>!o.__srcLoaded&&o.getAttribute("lazy")==="priority");await Promise.all(r.map(ft));let n=e.filter(o=>{if(o.__srcLoaded)return!1;let s=o.getAttribute("lazy");return s==="ondemand"||s==="priority"?!1:o.hasAttribute("route")?t!=null&&o.getAttribute("route")===t:!0});await Promise.all(n.map(ft))}function qt(){let e=[...document.querySelectorAll("template[src]")].filter(r=>r.__srcLoaded||r.getAttribute("lazy")==="ondemand"?!1:r.hasAttribute("route"));return Promise.all(e.map(ft))}B();G();var bt=new Map;function w(t,e){bt.set(t,{priority:e.priority??50,init:e.init})}function ce(t){if(bt.has(t))return{directive:bt.get(t),match:t};let e=["class-*","on:*","style-*","bind-*"];for(let r of e){let n=r.replace("*","");if(t.startsWith(n)&&bt.has(r))return{directive:bt.get(r),match:r}}return null}function Jt(t){if(t.__declared)return;t.__declared=!0;let e=[];for(let n of[...t.attributes]){let o=ce(n.name);o&&e.push({name:n.name,value:n.value,priority:o.directive.priority,init:o.directive.init})}e.sort((n,o)=>n.priority-o.priority);let r=X;for(let n of e)Ct(t),n.init(t,n.name,n.value);Ct(r)}function T(t){if(!t)return;t.nodeType===1&&!t.__declared&&Jt(t);let e=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(;e.nextNode();){let r=e.currentNode;r.tagName==="TEMPLATE"||r.tagName==="SCRIPT"||r.__declared||Jt(r)}}function Kt(t){if(t.__ctx&&t.__ctx.__listeners){for(let e of t.__ctx.__listeners)ht.delete(e),ot.delete(e);t.__ctx.__listeners.clear()}t.__disposers&&(t.__disposers.forEach(e=>e()),t.__disposers=null),t.__declared=!1}function zt(t){if(!t)return;Kt(t);let e=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(;e.nextNode();)Kt(e.currentNode)}B();var Xt=!1;function Vt(){if(Xt||typeof document>"u")return;Xt=!0;let t=`
|
|
10
10
|
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
|
|
11
11
|
@keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } }
|
|
12
12
|
@keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
|
|
@@ -21,5 +21,5 @@ ${c}`)(e,...a),typeof t=="string"&&t.includes("$store")&&ot()}catch(n){X("Expres
|
|
|
21
21
|
@keyframes zoomOut { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(0.5); } }
|
|
22
22
|
@keyframes bounceIn { 0% { opacity: 0; transform: scale(0.3); } 50% { opacity: 1; transform: scale(1.05); } 70% { transform: scale(0.9); } 100% { opacity: 1; transform: scale(1); } }
|
|
23
23
|
@keyframes bounceOut { 0% { opacity: 1; transform: scale(1); } 20% { transform: scale(0.9); } 50%,55% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0; transform: scale(0.3); } }
|
|
24
|
-
`.trim(),e=document.createElement("style");e.setAttribute("data-nojs-animations",""),e.textContent=t,document.head.appendChild(e)}function at(t,e,r,n){Mt();let o=n||1e3;if(e){let s=t.firstElementChild||t;s.classList.add(e),n&&(s.style.animationDuration=n+"ms"),s.addEventListener("animationend",()=>s.classList.remove(e),{once:!0})}if(r){let s=t.firstElementChild||t;s.classList.add(r+"-enter",r+"-enter-active"),requestAnimationFrame(()=>{s.classList.remove(r+"-enter"),s.classList.add(r+"-enter-to");let i=()=>{s.classList.remove(r+"-enter-active",r+"-enter-to")};s.addEventListener("transitionend",i,{once:!0}),setTimeout(i,o)})}}function pt(t,e,r,n,o){Mt();let s=o||2e3;if(!t.firstElementChild&&!t.childNodes.length){n();return}if(e){let i=t.firstElementChild||t;i.classList.add(e),o&&(i.style.animationDuration=o+"ms"),i.addEventListener("animationend",()=>{i.classList.remove(e),n()},{once:!0}),setTimeout(n,s);return}if(r){let i=t.firstElementChild||t;i.classList.add(r+"-leave",r+"-leave-active"),requestAnimationFrame(()=>{i.classList.remove(r+"-leave"),i.classList.add(r+"-leave-to");let a=()=>{i.classList.remove(r+"-leave-active",r+"-leave-to"),n()};i.addEventListener("transitionend",a,{once:!0}),setTimeout(a,s)});return}n()}function Ot(){let t=[],e={path:"",params:{},query:{},hash:""},r=new Set;function n(c){let l=t.find(d=>d.path===c);return l||(l={path:c,outlets:{}},t.push(l)),l}function o(c){let l={};return new URLSearchParams(c).forEach((d,m)=>{l[m]=d}),l}function s(c){for(let l of t){let d=[],m=l.path.replace(/:(\w+)/g,(b,S)=>(d.push(S),"([^/]+)")),h=new RegExp("^"+m+"$"),y=c.match(h);if(y){let b={};return d.forEach((S,g)=>{b[S]=y[g+1]}),{route:l,params:b}}}return null}async function i(c,l=!1){let d=c.indexOf("#"),m=d>=0?c.slice(d+1):"",h=d>=0?c.slice(0,d):c,[y,b=""]=h.split("?");e={path:y,params:{},query:o(b),hash:m?"#"+m:""};let S=s(y);if(S){e.params=S.params;let g=S.route.outlets?.default,x=g?.getAttribute("guard"),C=g?.getAttribute("redirect");if(x){let N=L({},null);if(N.__raw.$store=O,N.__raw.$route=e,!_(x,N)&&C){await i(C,!0);return}}}if(p.router.mode==="hash"){let g="#"+c;l?window.location.replace(g):window.location.hash=c}else{let g=p.router.base.replace(/\/$/,"")+c;l?window.history.replaceState({},"",g):window.history.pushState({},"",g)}if(await a(S),r.forEach(g=>g(e)),e.hash){let g=e.hash.slice(1);requestAnimationFrame(()=>{let x=document.getElementById(g);x&&x.scrollIntoView({behavior:"smooth"})})}}async function a(c){let l=document.querySelectorAll("[route-view]");for(let m of l){let h=m.getAttribute("route-view"),y=h&&h.trim()!==""?h.trim():"default",b=c?.route?.outlets?.[y];if(m.innerHTML="",b){b.getAttribute("src")&&!b.__srcLoaded&&(k("Loading route template on demand:",b.getAttribute("src")),await st(b));let S=b.content.cloneNode(!0),g=L({$route:e},v(m)),x=document.createElement("div");x.style.display="contents",x.__ctx=g,b.content.__srcBase&&(x.__srcBase=b.content.__srcBase),x.appendChild(S),m.appendChild(x),mt(x);let C=[...x.querySelectorAll("template[src]")];k("[ROUTER] nested templates found in wrapper:",C.length,C.map(I=>I.getAttribute("src")+(I.__srcLoaded?"[LOADED]":"[NEW]"))),await Promise.all(C.map(st)),k("[ROUTER] all nested loads done for route:",e.path);let N=m.getAttribute("transition");N&&at(x,null,N),z(x),T(x)}}document.querySelectorAll("[route]").forEach(m=>{let h=m.getAttribute("route"),y=m.getAttribute("route-active")||"active",b=m.getAttribute("route-active-exact");b?m.classList.toggle(b,e.path===h):y&&!m.hasAttribute("route-active-exact")&&m.classList.toggle(y,e.path.startsWith(h))});let d=p.router.scrollBehavior;d==="top"?window.scrollTo(0,0):d==="smooth"&&window.scrollTo({top:0,behavior:"smooth"})}function f(c,l){l.scrollIntoView({behavior:"smooth"});let d='a[href="#'+c+'"]';document.querySelectorAll('a[href^="#"]').forEach(m=>{m.hasAttribute("route")||m.classList.toggle("active",m.matches(d))})}return{get current(){return e},push(c){return i(c)},replace(c){return i(c,!0)},back(){window.history.back()},forward(){window.history.forward()},on(c){return r.add(c),()=>r.delete(c)},register(c,l,d="default"){let m=n(c);m.outlets[d]=l},async init(){if(document.querySelectorAll("template[route]").forEach(c=>{let l=c.getAttribute("route"),d=c.getAttribute("outlet")||"default",m=n(l);m.outlets[d]=c}),document.addEventListener("click",c=>{let l=c.target.closest("[route]");if(l&&!l.hasAttribute("route-view")){c.preventDefault();let d=l.getAttribute("route");i(d);return}if(p.router.mode==="hash"){let d=c.target.closest('a[href^="#"]');if(d&&!d.hasAttribute("route")){let h=d.getAttribute("href").slice(1);if(h&&!h.startsWith("/")){let y=document.getElementById(h);y&&(c.preventDefault(),f(h,y))}}}}),p.router.mode==="hash"){window.addEventListener("hashchange",()=>{let l=window.location.hash.slice(1)||"/";if(!l.startsWith("/")){let d=document.getElementById(l);d&&(f(l,d),window.history.replaceState(null,"","#"+e.path));return}i(l,!0)});let c=window.location.hash.slice(1)||"/";await i(c,!0)}else{window.addEventListener("popstate",()=>{let l=window.location.pathname.replace(p.router.base,"")||"/";i(l,!0)});let c=window.location.pathname.replace(p.router.base,"")||"/";await i(c,!0)}}}}w.uppercase=t=>String(t??"").toUpperCase();w.lowercase=t=>String(t??"").toLowerCase();w.capitalize=t=>String(t??"").replace(/\b\w/g,e=>e.toUpperCase());w.truncate=(t,e=100)=>{let r=String(t??"");return r.length>e?r.slice(0,e)+"...":r};w.trim=t=>String(t??"").trim();w.stripHtml=t=>String(t??"").replace(/<[^>]*>/g,"");w.slugify=t=>String(t??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");w.nl2br=t=>String(t??"").replace(/\n/g,"<br>");w.encodeUri=t=>encodeURIComponent(String(t??""));w.number=(t,e=0)=>{let r=Number(t);return isNaN(r)?t:r.toLocaleString(void 0,{minimumFractionDigits:e,maximumFractionDigits:e})};w.currency=(t,e="USD")=>{let r=Number(t);if(isNaN(r))return t;try{return r.toLocaleString(void 0,{style:"currency",currency:e})}catch{return`${e} ${r.toFixed(2)}`}};w.percent=(t,e=0)=>{let r=Number(t);return isNaN(r)?t:(r*100).toFixed(e)+"%"};w.filesize=t=>{let e=Number(t);if(isNaN(e))return t;let r=["B","KB","MB","GB","TB"],n=0,o=e;for(;o>=1024&&n<r.length-1;)o/=1024,n++;return o.toFixed(n>0?1:0)+" "+r[n]};w.ordinal=t=>{let e=Number(t);if(isNaN(e))return t;let r=["th","st","nd","rd"],n=e%100;return e+(r[(n-20)%10]||r[n]||r[0])};w.count=t=>Array.isArray(t)?t.length:0;w.first=t=>Array.isArray(t)?t[0]:t;w.last=t=>Array.isArray(t)?t[t.length-1]:t;w.join=(t,e=", ")=>Array.isArray(t)?t.join(e):t;w.reverse=t=>Array.isArray(t)?[...t].reverse():t;w.unique=t=>Array.isArray(t)?[...new Set(t)]:t;w.pluck=(t,e)=>Array.isArray(t)?t.map(r=>r?.[e]):t;w.sortBy=(t,e)=>{if(!Array.isArray(t))return t;let r=e?.startsWith("-"),n=r?e.slice(1):e;return[...t].sort((o,s)=>{let i=o?.[n],a=s?.[n],f=i<a?-1:i>a?1:0;return r?-f:f})};w.where=(t,e,r)=>Array.isArray(t)?t.filter(n=>n?.[e]===r):t;w.date=(t,e="short")=>{let r=new Date(t);if(isNaN(r))return t;let n=e==="long"?{dateStyle:"long"}:e==="full"?{dateStyle:"full"}:{dateStyle:"short"};return r.toLocaleDateString(void 0,n)};w.datetime=t=>{let e=new Date(t);return isNaN(e)?t:e.toLocaleString()};w.relative=t=>{let e=new Date(t);if(isNaN(e))return t;let r=(Date.now()-e.getTime())/1e3;return r<60?"just now":r<3600?Math.floor(r/60)+"m ago":r<86400?Math.floor(r/3600)+"h ago":r<2592e3?Math.floor(r/86400)+"d ago":e.toLocaleDateString()};w.fromNow=t=>{let e=new Date(t);if(isNaN(e))return t;let r=(e.getTime()-Date.now())/1e3;return r<0?w.relative(t):r<60?"in a moment":r<3600?"in "+Math.floor(r/60)+"m":r<86400?"in "+Math.floor(r/3600)+"h":"in "+Math.floor(r/86400)+"d"};w.default=(t,e="")=>t==null||t===""?e:t;w.json=(t,e=2)=>JSON.stringify(t,null,e);w.debug=t=>(console.log("[No.JS debug]",t),t);w.keys=t=>t&&typeof t=="object"?Object.keys(t):[];w.values=t=>t&&typeof t=="object"?Object.values(t):[];A("state",{priority:0,init(t,e,r){let n=_(r,L())||{},o=t.parentElement?v(t.parentElement):null,s=L(n,o);t.__ctx=s;let i=t.getAttribute("persist"),a=t.getAttribute("persist-key");if(i&&a){let f=i==="localStorage"?localStorage:i==="sessionStorage"?sessionStorage:null;if(f){try{let u=f.getItem("nojs_state_"+a);if(u){let c=JSON.parse(u);for(let[l,d]of Object.entries(c))s.$set(l,d)}}catch{}s.$watch(()=>{try{f.setItem("nojs_state_"+a,JSON.stringify(s.__raw))}catch{}})}}k("state",n)}});A("store",{priority:0,init(t,e,r){let n=t.getAttribute("value");if(r){if(!O[r]){let o=n?_(n,L())||{}:{};O[r]=L(o)}k("store",r)}}});A("computed",{priority:2,init(t,e,r){let n=t.getAttribute("expr");if(!r||!n)return;let o=v(t);function s(){let i=_(n,o);o.$set(r,i)}o.$watch(s),s()}});A("watch",{priority:2,init(t,e,r){let n=v(t),o=t.getAttribute("on:change"),s=_(r,n);n.$watch(()=>{let i=_(r,n);if(i!==s){let a=s;s=i,o&&F(o,n,{$old:a,$new:i})}})}});var Jt=["get","post","put","patch","delete"];for(let t of Jt)A(t,{priority:1,init(e,r,n){let o=e.getAttribute("as")||"data",s=e.getAttribute("loading"),i=e.getAttribute("error"),a=e.getAttribute("empty"),f=e.getAttribute("success"),u=e.getAttribute("then"),c=e.getAttribute("redirect"),l=e.getAttribute("confirm"),d=parseInt(e.getAttribute("refresh"))||0,m=e.getAttribute("cached"),h=e.hasAttribute("cached")?m||"memory":"none",y=e.getAttribute("body"),b=e.getAttribute("headers"),S=e.getAttribute("var"),g=e.getAttribute("into"),x=parseInt(e.getAttribute("retry"))||p.retries,C=parseInt(e.getAttribute("retry-delay"))||p.retryDelay||1e3,N=e.getAttribute("params"),I=e.parentElement?v(e.parentElement):L(),E=e.__ctx||L({},I);e.__ctx=E;let B=[...e.childNodes].map(D=>D.cloneNode(!0)),R=null;async function P(){if(R&&R.abort(),R=new AbortController,l&&!window.confirm(l))return;let D=Y(n,E);if(N){let $=_(N,E);if($&&typeof $=="object"){let K=D.includes("?")?"&":"?",q=new URLSearchParams($).toString();q&&(D+=K+q)}}let ct=t+":"+D;if(t==="get"){let $=xt(ct,h);if($!=null){E.$set(o,$),z(e),T(e);return}}if(s){let $=M(s);$&&(e.innerHTML="",e.appendChild($),T(e))}try{let $=null;if(y){let H=Y(y,E);try{$=JSON.parse(H)}catch{$=H}}if(e.tagName==="FORM"){let H=new FormData(e);$=Object.fromEntries(H.entries())}let K=b?JSON.parse(b):{},q=p.retries,et=p.retryDelay;p.retries=x,p.retryDelay=C;let W=await dt(D,t,$,K,e,R.signal);if(p.retries=q,p.retryDelay=et,t==="get"&&Lt(ct,W,h),a&&(W==null||Array.isArray(W)&&W.length===0)){let H=M(a);H&&(e.innerHTML="",e.appendChild(H),T(e));return}if(E.$set(o,W),g&&(O[g]||(O[g]=L({})),O[g].$set(o,W),ot()),f){let H=M(f);if(H){e.innerHTML="";let Ht=document.getElementById(f.replace("#",""))?.getAttribute("var")||S||"result",Rt=L({[Ht]:W},E),lt=document.createElement("div");lt.style.display="contents",lt.__ctx=Rt,lt.appendChild(H),e.appendChild(lt),T(lt)}}else{e.innerHTML="";for(let H of B)e.appendChild(H.cloneNode(!0));z(e),T(e)}u&&F(u,E,{result:W}),c&&j&&j.push(c),ft("fetch:success",{url:D,data:W})}catch($){if($.name==="AbortError")return;if(X(`${t.toUpperCase()} ${D} failed:`,$.message),ft("fetch:error",{url:D,error:$}),ft("error",{url:D,error:$}),i){let K=M(i);if(K){e.innerHTML="";let et=document.getElementById(i.replace("#",""))?.getAttribute("var")||"err",W=L({[et]:{message:$.message,status:$.status,body:$.body}},E),H=document.createElement("div");H.style.display="contents",H.__ctx=W,H.appendChild(K),e.appendChild(H),T(H)}}}}if(e.tagName==="FORM"&&t!=="get"?e.addEventListener("submit",D=>{D.preventDefault(),P()}):t==="get"?P():e.addEventListener("click",D=>{D.preventDefault(),P()}),/\{[^}]+\}/.test(n)){let K=function(){let et=Y(n,E);et!==ct&&(ct=et,$&&clearTimeout($),D>0?$=setTimeout(P,D):P())},D=parseInt(e.getAttribute("debounce"))||0,ct=Y(n,E),$=null,q=I;for(;q&&q.__isProxy;)q.$watch(K),q=q.$parent}d>0&&setInterval(P,d)}});A("bind",{priority:20,init(t,e,r){let n=v(t);function o(){let s=_(r,n);t.textContent=s!=null?String(s):""}Z(r,n,o),o()}});A("bind-html",{priority:20,init(t,e,r){let n=v(t);function o(){let s=_(r,n);s!=null&&(t.innerHTML=Tt(String(s)))}Z(r,n,o),o()}});A("bind-*",{priority:20,init(t,e,r){let n=e.replace("bind-",""),o=v(t);n==="value"&&(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.tagName==="SELECT")&&t.addEventListener("input",()=>{let i=t.type==="number"?Number(t.value):t.value;F(`${r} = ${JSON.stringify(i)}`,o)});function s(){let i=_(r,o);if(["disabled","readonly","checked","selected","hidden","required"].includes(n)){i?t.setAttribute(n,""):t.removeAttribute(n),n in t&&(t[n]=!!i);return}i!=null?t.setAttribute(n,String(i)):t.removeAttribute(n)}Z(r,o,s),s()}});A("model",{priority:20,init(t,e,r){let n=v(t),o=t.tagName,s=t.type;function i(){let f=_(r,n);o==="INPUT"&&s==="checkbox"?t.checked=!!f:o==="INPUT"&&s==="radio"?t.checked=t.value===String(f):t.value=f!=null?String(f):""}let a=o==="SELECT"||s==="checkbox"||s==="radio"?"change":"input";t.addEventListener(a,()=>{let f;s==="checkbox"?f=t.checked:s==="number"||s==="range"?f=Number(t.value):f=t.value,F(`${r} = __val`,n,{__val:f})}),n.$watch(i),i()}});A("if",{priority:10,init(t,e,r){let n=v(t),o=t.getAttribute("then"),s=t.getAttribute("else"),i=t.getAttribute("animate-enter")||t.getAttribute("animate"),a=t.getAttribute("animate-leave"),f=t.getAttribute("transition"),u=parseInt(t.getAttribute("animate-duration"))||0,c=[...t.childNodes].map(h=>h.cloneNode(!0)),l;function d(){let h=!!_(r,n);h!==l&&(l=h,a||f?pt(t,a,f,()=>m(h),u):m(h))}function m(h){if(h)if(o){let y=M(o);y&&(t.innerHTML="",t.appendChild(y))}else{t.innerHTML="";for(let y of c)t.appendChild(y.cloneNode(!0))}else if(s){let y=M(s);y&&(t.innerHTML="",t.appendChild(y))}else t.innerHTML="";z(t),T(t),(i||f)&&at(t,i,f,u)}n.$watch(d),d()}});A("else-if",{priority:10,init(t,e,r){let n=v(t),o=t.getAttribute("then"),s=[...t.childNodes].map(a=>a.cloneNode(!0));function i(){let a=t.previousElementSibling;for(;a;){let u=a.getAttribute("if")||a.getAttribute("else-if");if(u){if(_(u,n)){t.innerHTML="",t.style.display="none";return}}else break;a=a.previousElementSibling}let f=!!_(r,n);if(t.style.display="",f){if(o){let u=M(o);u&&(t.innerHTML="",t.appendChild(u))}else{t.innerHTML="";for(let u of s)t.appendChild(u.cloneNode(!0))}z(t),T(t)}else t.innerHTML=""}n.$watch(i),i()}});A("else",{priority:10,init(t){if(t.hasAttribute("if"))return;let e=v(t),r=t.getAttribute("then"),n=[...t.childNodes].map(s=>s.cloneNode(!0));function o(){let s=t.previousElementSibling;for(;s;){let i=s.getAttribute("if")||s.getAttribute("else-if");if(i){if(_(i,e)){t.innerHTML="",t.style.display="none";return}}else break;s=s.previousElementSibling}if(t.style.display="",r){let i=M(r);i&&(t.innerHTML="",t.appendChild(i))}else{t.innerHTML="";for(let i of n)t.appendChild(i.cloneNode(!0))}z(t),T(t)}e.$watch(o),o()}});A("show",{priority:20,init(t,e,r){let n=v(t),o=t.getAttribute("animate-enter")||t.getAttribute("animate"),s=t.getAttribute("animate-leave"),i=t.getAttribute("transition"),a=parseInt(t.getAttribute("animate-duration"))||0,f;function u(){let c=!!_(r,n);c!==f&&(f=c,c?(t.style.display="",(o||i)&&at(t,o,i,a)):s||i?pt(t,s,i,()=>{t.style.display="none"},a):t.style.display="none")}Z(r,n,u),u()}});A("hide",{priority:20,init(t,e,r){let n=v(t),o=t.getAttribute("animate-enter")||t.getAttribute("animate"),s=t.getAttribute("animate-leave"),i=t.getAttribute("transition"),a=parseInt(t.getAttribute("animate-duration"))||0,f;function u(){let c=!_(r,n);c!==f&&(f=c,c?(t.style.display="",(o||i)&&at(t,o,i,a)):s||i?pt(t,s,i,()=>{t.style.display="none"},a):t.style.display="none")}Z(r,n,u),u()}});A("switch",{priority:10,init(t,e,r){let n=v(t);function o(){let s=_(r,n),i=!1;for(let a of[...t.children]){let f=a.getAttribute("case"),u=a.hasAttribute("default"),c=a.getAttribute("then");if(f){let l=f.split(",").map(d=>_(d.trim(),n));if(!i&&l.includes(s)){if(i=!0,a.style.display="",c){let d=M(c);d&&(a.innerHTML="",a.appendChild(d)),a.__declared=!1,T(a)}}else a.style.display="none"}else if(u&&(a.style.display=i?"none":"",!i&&c)){let l=M(c);l&&(a.innerHTML="",a.appendChild(l)),a.__declared=!1,T(a)}}}n.$watch(o),o()}});A("each",{priority:10,init(t,e,r){let n=v(t),o=r.match(/^(\w+)\s+in\s+(\S+)$/);if(!o)return;let[,s,i]=o,a=t.getAttribute("template"),f=t.getAttribute("else"),u=t.getAttribute("key"),c=t.getAttribute("animate-enter")||t.getAttribute("animate"),l=t.getAttribute("animate-leave"),d=parseInt(t.getAttribute("animate-stagger"))||0,m=parseInt(t.getAttribute("animate-duration"))||0;function h(){let b=tt(i,n);if(!Array.isArray(b))return;if(b.length===0&&f){let g=M(f);g&&(t.innerHTML="",t.appendChild(g),T(t));return}let S=a?document.getElementById(a):null;if(S)if(l&&t.children.length>0){let g=[...t.children],x=g.length;g.forEach(C=>{let N=C.firstElementChild||C;N.classList.add(l);let I=()=>{N.classList.remove(l),x--,x<=0&&y(S,b)};N.addEventListener("animationend",I,{once:!0}),setTimeout(I,m||2e3)})}else y(S,b)}function y(b,S){let g=S.length;t.innerHTML="",S.forEach((x,C)=>{let N={[s]:x,$index:C,$count:g,$first:C===0,$last:C===g-1,$even:C%2===0,$odd:C%2!==0},I=L(N,n),E=b.content.cloneNode(!0),B=document.createElement("div");if(B.style.display="contents",B.__ctx=I,B.appendChild(E),t.appendChild(B),T(B),c){let R=B.firstElementChild;R&&(R.classList.add(c),d&&(R.style.animationDelay=C*d+"ms"))}})}n.$watch(h),h()}});A("foreach",{priority:10,init(t,e,r){let n=v(t),o=t.getAttribute("from"),s=t.getAttribute("index")||"$index",i=t.getAttribute("else"),a=t.getAttribute("filter"),f=t.getAttribute("sort"),u=parseInt(t.getAttribute("limit"))||1/0,c=parseInt(t.getAttribute("offset"))||0,l=t.getAttribute("template"),d=t.getAttribute("animate-enter")||t.getAttribute("animate"),m=t.getAttribute("animate-leave"),h=parseInt(t.getAttribute("animate-stagger"))||0,y=parseInt(t.getAttribute("animate-duration"))||0;if(!o||!r)return;let b=l?null:t.cloneNode(!0);function S(){let g=tt(o,n);if(!Array.isArray(g))return;if(a&&(g=g.filter((I,E)=>{let B=L({[r]:I,[s]:E},n);return!!_(a,B)})),f){let I=f.startsWith("-"),E=I?f.slice(1):f;g=[...g].sort((B,R)=>{let P=tt(E,B)??B?.[E],J=tt(E,R)??R?.[E],D=P<J?-1:P>J?1:0;return I?-D:D})}if(g=g.slice(c,c+u),g.length===0&&i){let I=M(i);I&&(t.innerHTML="",t.appendChild(I),T(t));return}let x=l?document.getElementById(l):null,C=g.length;function N(){t.innerHTML="",g.forEach((I,E)=>{let B={[r]:I,[s]:E,$index:E,$count:C,$first:E===0,$last:E===C-1,$even:E%2===0,$odd:E%2!==0},R=L(B,n),P;x?P=x.content.cloneNode(!0):P=b.cloneNode(!0);let J=document.createElement("div");if(J.style.display="contents",J.__ctx=R,J.appendChild(P),t.appendChild(J),T(J),d){let D=J.firstElementChild;D&&(D.classList.add(d),h&&(D.style.animationDelay=E*h+"ms"))}})}if(m&&t.children.length>0){let I=[...t.children],E=I.length;I.forEach(B=>{let R=B.firstElementChild||B;R.classList.add(m);let P=()=>{R.classList.remove(m),E--,E<=0&&N()};R.addEventListener("animationend",P,{once:!0}),setTimeout(P,y||2e3)})}else N()}n.$watch(S),S()}});A("class-*",{priority:20,init(t,e,r){let n=e.replace("class-",""),o=v(t);if(n==="map"){let i=function(){let a=_(r,o);if(a&&typeof a=="object")for(let[f,u]of Object.entries(a))t.classList.toggle(f,!!u)};o.$watch(i),i();return}if(n==="list"){let a=function(){let f=_(r,o);if(Array.isArray(f)){i.forEach(c=>{c&&t.classList.remove(c)});let u=f.filter(Boolean);u.forEach(c=>t.classList.add(c)),i=u}},i=[];o.$watch(a),a();return}function s(){t.classList.toggle(n,!!_(r,o))}o.$watch(s),s()}});A("style-*",{priority:20,init(t,e,r){let n=e.replace("style-",""),o=v(t);if(n==="map"){let a=function(){let f=_(r,o);if(f&&typeof f=="object")for(let[u,c]of Object.entries(f))t.style[u]=c??""};o.$watch(a),a();return}let s=n.replace(/-([a-z])/g,(a,f)=>f.toUpperCase());function i(){let a=_(r,o);t.style[s]=a!=null?String(a):""}o.$watch(i),i()}});A("on:*",{priority:20,init(t,e,r){let n=v(t),o=e.replace("on:","").split("."),s=o[0],i=new Set(o.slice(1));if(s==="mounted"){requestAnimationFrame(()=>F(r,n,{$el:t}));return}if(s==="init"){F(r,n,{$el:t});return}if(s==="updated"){new MutationObserver(()=>{F(r,n,{$el:t})}).observe(t,{childList:!0,subtree:!0,characterData:!0,attributes:!0});return}if(s==="error"){window.addEventListener("error",l=>{(t.contains(l.target)||l.target===t)&&F(r,n,{$el:t,$error:l.error||l.message})});return}if(s==="unmounted"){let l=new MutationObserver(d=>{for(let m of d)for(let h of m.removedNodes)if(h===t||h.contains?.(t)){F(r,n,{$el:t}),l.disconnect();return}});t.parentElement&&l.observe(t.parentElement,{childList:!0});return}let a=0,f=0;for(let l of i)/^\d+$/.test(l)&&(i.has("debounce")?a=parseInt(l):i.has("throttle")&&(f=parseInt(l)));let u=l=>{if(s==="keydown"||s==="keyup"||s==="keypress"){let d=["enter","escape","tab","space","delete","backspace","up","down","left","right","ctrl","alt","shift","meta"];for(let m of i)if(d.includes(m)&&(m==="enter"&&l.key!=="Enter"||m==="escape"&&l.key!=="Escape"||m==="tab"&&l.key!=="Tab"||m==="space"&&l.key!==" "||m==="delete"&&l.key!=="Delete"&&l.key!=="Backspace"||m==="up"&&l.key!=="ArrowUp"||m==="down"&&l.key!=="ArrowDown"||m==="left"&&l.key!=="ArrowLeft"||m==="right"&&l.key!=="ArrowRight"||m==="ctrl"&&!l.ctrlKey||m==="alt"&&!l.altKey||m==="shift"&&!l.shiftKey||m==="meta"&&!l.metaKey))return}i.has("prevent")&&l.preventDefault(),i.has("stop")&&l.stopPropagation(),!(i.has("self")&&l.target!==t)&&F(r,n,{$event:l,$el:t})};if(a>0){let l=u,d;u=m=>{clearTimeout(d),d=setTimeout(()=>l(m),a)}}if(f>0){let l=u,d=0;u=m=>{let h=Date.now();h-d>=f&&(d=h,l(m))}}let c={};i.has("once")&&(c.once=!0),t.addEventListener(s,u,c)}});A("trigger",{priority:20,init(t,e,r){let n=v(t),o=t.getAttribute("trigger-data");t.addEventListener("click",()=>{let s=o?_(o,n):null;t.dispatchEvent(new CustomEvent(r,{detail:s,bubbles:!0}))})}});A("ref",{priority:5,init(t,e,r){nt[r]=t}});A("use",{priority:10,init(t,e,r){let n=v(t),o=M(r);if(!o)return;let s={};for(let c of[...t.attributes])if(c.name.startsWith("var-")){let l=c.name.replace("var-","");s[l]=_(c.value,n)}let i=L(s,n),a={};for(let c of[...t.children]){let l=c.getAttribute("slot")||"default";a[l]||(a[l]=document.createDocumentFragment()),a[l].appendChild(c.cloneNode(!0))}let f=o.querySelectorAll("slot");for(let c of f){let l=c.getAttribute("name")||"default";a[l]&&c.replaceWith(a[l])}t.innerHTML="";let u=document.createElement("div");u.style.display="contents",u.__ctx=i,u.appendChild(o),t.appendChild(u),T(u)}});A("call",{priority:20,init(t,e,r){let n=v(t),o=t.getAttribute("method")||"get",s=t.getAttribute("as"),i=t.getAttribute("into"),a=t.getAttribute("success"),f=t.getAttribute("error"),u=t.getAttribute("then"),c=t.getAttribute("confirm"),l=t.getAttribute("body");t.addEventListener("click",async d=>{if(d.preventDefault(),c&&!window.confirm(c))return;let m=Y(r,n);try{let h=null;if(l){let b=Y(l,n);try{h=JSON.parse(b)}catch{h=b}}let y=await dt(m,o,h,{},t);if(s&&n.$set(s,y),s&&i&&(O[i]||(O[i]=L({})),O[i].$set(s,y),ot()),u&&F(u,n,{result:y}),a){let b=M(a);if(b){let g=document.getElementById(a.replace("#",""))?.getAttribute("var")||"result",x=L({[g]:y},n),C=t.closest("[route-view]")||t.parentElement,N=document.createElement("div");N.style.display="contents",N.__ctx=x,N.appendChild(b),C.appendChild(N),T(N)}}}catch(h){if(f){let y=M(f);if(y){let S=document.getElementById(f.replace("#",""))?.getAttribute("var")||"err",g=L({[S]:{message:h.message,status:h.status}},n),x=t.parentElement,C=document.createElement("div");C.style.display="contents",C.__ctx=g,C.appendChild(y),x.appendChild(C),T(C)}}}})}});function kt(t,e,r){let n=e.split("|").map(o=>o.trim());for(let o of n){let[s,...i]=o.split(":"),a=Q[s];if(a){let f=a(t,...i,r);if(f!==!0&&f)return f}else switch(s){case"required":if(t==null||String(t).trim()==="")return"Required";break;case"email":if(t&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t))return"Invalid email";break;case"url":try{new URL(t)}catch{return"Invalid URL"}break;case"min":if(Number(t)<Number(i[0]))return`Minimum value is ${i[0]}`;break;case"max":if(Number(t)>Number(i[0]))return`Maximum value is ${i[0]}`;break;case"between":{let f=Number(t);if(f<Number(i[0])||f>Number(i[1]))return`Must be between ${i[0]} and ${i[1]}`;break}case"match":if(t!==r[i[0]])return`Must match ${i[0]}`;break;case"phone":if(!/^[\d\s\-+()]{7,15}$/.test(t))return"Invalid phone number";break;case"cpf":if(!/^\d{3}\.?\d{3}\.?\d{3}-?\d{2}$/.test(t))return"Invalid CPF";break;case"cnpj":if(!/^\d{2}\.?\d{3}\.?\d{3}\/?\d{4}-?\d{2}$/.test(t))return"Invalid CNPJ";break;case"creditcard":if(!/^\d{13,19}$/.test(t.replace(/\s|-/g,"")))return"Invalid card number";break;case"custom":if(i[0]&&Q[i[0]]){let f=Q[i[0]](t,r);if(f!==!0&&f)return f}break}}return null}A("validate",{priority:30,init(t,e,r){let n=v(t);if(t.tagName==="FORM"){let s=function(){let i={},a={},f=!0;for(let u of t.querySelectorAll("input, textarea, select")){if(!u.name)continue;a[u.name]=u.value;let c=u.getAttribute("validate");if(c){let l=kt(u.value,c,a);l&&(i[u.name]=l,f=!1)}u.checkValidity()||(i[u.name]=i[u.name]||u.validationMessage,f=!1)}o.valid=f,o.errors=i,o.values=a,n.$set("$form",{...o})},o={valid:!1,dirty:!1,touched:!1,submitting:!1,errors:{},values:{},reset:()=>{o.dirty=!1,o.touched=!1,t.reset(),s()}};n.$set("$form",o),t.addEventListener("input",()=>{o.dirty=!0,s()}),t.addEventListener("focusout",()=>{o.touched=!0,s()}),t.addEventListener("submit",()=>{o.submitting=!0,n.$set("$form",{...o}),requestAnimationFrame(()=>{o.submitting=!1,n.$set("$form",{...o})})}),requestAnimationFrame(s);return}if(r&&(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.tagName==="SELECT")){let o=t.getAttribute("error");t.addEventListener("input",()=>{let s=kt(t.value,r,{});if(s&&o){let i=t.nextElementSibling?.__validationError?t.nextElementSibling:null;i||(i=document.createElement("div"),i.__validationError=!0,i.style.display="contents",t.parentNode.insertBefore(i,t.nextSibling));let a=M(o);if(a){let f=L({err:{message:s}},n);i.innerHTML="",i.__ctx=f,i.appendChild(a),T(i)}}else{let i=t.nextElementSibling?.__validationError?t.nextElementSibling:null;i&&(i.innerHTML="")}})}}});A("error-boundary",{priority:1,init(t,e,r){let n=v(t);function o(s){let i=M(r);if(i){let a=L({err:{message:s}},n);t.innerHTML="";let f=document.createElement("div");f.style.display="contents",f.__ctx=a,f.appendChild(i),t.appendChild(f),T(f)}}t.addEventListener("nojs:error",s=>{o(s.detail?.message||"An error occurred")}),window.addEventListener("error",s=>{(t.contains(s.target)||t===s.target)&&o(s.message||"An error occurred")})}});A("t",{priority:20,init(t,e,r){let n=v(t);function o(){let s={};for(let i of[...t.attributes])if(i.name.startsWith("t-")&&i.name!=="t"){let a=i.name.replace("t-","");s[a]=_(i.value,n)??i.value}t.textContent=U.t(r,s)}n.$watch(o),At(o),o()}});function zt(){if(typeof window>"u")return null;let t=p.router||{};if(t.mode==="hash")return window.location.hash.slice(1)||"/";let e=(t.base||"/").replace(/\/$/,"");return window.location.pathname.replace(e,"")||"/"}var Bt={get baseApiUrl(){return p.baseApiUrl},set baseApiUrl(t){p.baseApiUrl=t},config(t={}){let e={...p.headers},r={...p.cache},n={...p.templates},o={...p.router},s={...p.i18n};Object.assign(p,t),t.headers&&(p.headers={...e,...t.headers}),t.csrf&&(p.csrf=t.csrf),t.cache&&(p.cache={...r,...t.cache}),t.templates&&(p.templates={...n,...t.templates}),t.router&&(p.router={...o,...t.router}),t.i18n&&(p.i18n={...s,...t.i18n},U.locale=t.i18n.defaultLocale||U.locale)},async init(t){if(typeof document>"u")return;t=t||document.body,k("Initializing..."),mt(t);let e=zt();await St(e),document.querySelector("[route-view]")&&vt(Ot()),T(t),j&&await j.init(),k("Initialized."),Nt(),p.devtools&&typeof window<"u"&&(window.__NOJS_DEVTOOLS__={stores:O,config:p,refs:nt,router:j,filters:Object.keys(w),validators:Object.keys(Q),version:Bt.version},k("DevTools enabled \u2014 access via window.__NOJS_DEVTOOLS__"))},directive(t,e){A(t,e)},filter(t,e){w[t]=e},validator(t,e){Q[t]=e},i18n(t){if(t.locales&&(U.locales=t.locales),t.defaultLocale&&(U.locale=t.defaultLocale),t.fallbackLocale&&(p.i18n.fallbackLocale=t.fallbackLocale),t.detectBrowser){let e=typeof navigator<"u"?navigator.language:"en";U.locales[e]&&(U.locale=e)}},on(t,e){return G[t]||(G[t]=[]),G[t].push(e),()=>{G[t]=G[t].filter(r=>r!==e)}},interceptor(t,e){rt[t]&&rt[t].push(e)},get store(){return O},get router(){return j},createContext:L,evaluate:_,findContext:v,processTree:T,resolve:tt,version:"1.0.2"},ht=Bt;window.NoJS=ht;document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>ht.init()):ht.init();})();
|
|
24
|
+
`.trim(),e=document.createElement("style");e.setAttribute("data-nojs-animations",""),e.textContent=t,document.head.appendChild(e)}function dt(t,e,r,n){Vt();let o=n||1e3;if(e){let s=t.firstElementChild||t;s.classList.add(e),n&&(s.style.animationDuration=n+"ms"),s.addEventListener("animationend",()=>s.classList.remove(e),{once:!0})}if(r){let s=t.firstElementChild||t;s.classList.add(r+"-enter",r+"-enter-active"),requestAnimationFrame(()=>{s.classList.remove(r+"-enter"),s.classList.add(r+"-enter-to");let i=()=>{s.classList.remove(r+"-enter-active",r+"-enter-to")};s.addEventListener("transitionend",i,{once:!0}),setTimeout(i,o)})}}function xt(t,e,r,n,o){Vt();let s=o||2e3;if(!t.firstElementChild&&!t.childNodes.length){n();return}if(e){let i=t.firstElementChild||t;i.classList.add(e),o&&(i.style.animationDuration=o+"ms"),i.addEventListener("animationend",()=>{i.classList.remove(e),n()},{once:!0}),setTimeout(n,s);return}if(r){let i=t.firstElementChild||t;i.classList.add(r+"-leave",r+"-leave-active"),requestAnimationFrame(()=>{i.classList.remove(r+"-leave"),i.classList.add(r+"-leave-to");let a=()=>{i.classList.remove(r+"-leave-active",r+"-leave-to"),n()};i.addEventListener("transitionend",a,{once:!0}),setTimeout(a,s)});return}n()}function Yt(){let t=[],e={path:"",params:{},query:{},hash:""},r=new Set,n=new Map;function o(l){let d=t.find(p=>p.path===l);return d||(d={path:l,outlets:{}},t.push(d)),d}function s(l){let d={};return new URLSearchParams(l).forEach((p,h)=>{d[h]=p}),d}function i(l){for(let d of t){let p=[],h=d.path.replace(/:(\w+)/g,(_,y)=>(p.push(y),"([^/]+)")),g=new RegExp("^"+h+"$"),E=l.match(g);if(E){let _={};return p.forEach((y,S)=>{_[y]=E[S+1]}),{route:d,params:_}}}return null}async function a(l,d=!1){let p=l.indexOf("#"),h=p>=0?l.slice(p+1):"",g=p>=0?l.slice(0,p):l,[E,_=""]=g.split("?");e={path:E,params:{},query:s(_),hash:h?"#"+h:""};let y=i(E);if(y){e.params=y.params;let S=y.route.outlets?.default,C=S?.getAttribute("guard"),k=S?.getAttribute("redirect");if(C){let L=$({},null);if(L.__raw.$store=R,L.__raw.$route=e,!b(C,L)&&k){await a(k,!0);return}}}if(m.router.mode==="hash"){let S="#"+l;d?window.location.replace(S):window.location.hash=l}else{let S=m.router.base.replace(/\/$/,"")+l;d?window.history.replaceState({},"",S):window.history.pushState({},"",S)}if(await u(y),r.forEach(S=>S(e)),e.hash){let S=e.hash.slice(1);requestAnimationFrame(()=>{let C=document.getElementById(S);C&&C.scrollIntoView({behavior:"smooth"})})}}async function u(l){let d=document.querySelectorAll("[route-view]");for(let h of d){let g=h.getAttribute("route-view"),E=g&&g.trim()!==""?g.trim():"default",_=l?.route?.outlets?.[E],y=m.router.templates||"";if(!_&&(h.hasAttribute("src")||y)){let C=(h.getAttribute("src")||y).replace(/\/?$/,"/"),k=h.getAttribute("ext")||m.router.ext||".html",L=h.getAttribute("route-index")||"index",A=e.path==="/"?L:e.path.replace(/^\//,""),O=C+A+k,I=E+":"+O;n.has(I)?_=n.get(I):(_=document.createElement("template"),_.setAttribute("src",O),_.setAttribute("route",e.path),document.body.appendChild(_),n.set(I,_),H("[ROUTER] File-based route:",e.path,"\u2192",O)),h.hasAttribute("i18n-ns")&&!_.getAttribute("i18n-ns")&&_.setAttribute("i18n-ns",A)}if(zt(h),h.innerHTML="",_){_.getAttribute("src")&&!_.__srcLoaded&&(H("Loading route template on demand:",_.getAttribute("src")),await ft(_));let S=_.getAttribute("i18n-ns");if(S){let{_loadI18nNamespace:I}=await Promise.resolve().then(()=>(G(),Pt));await I(S)}let C=_.content.cloneNode(!0),k=$({$route:e},x(h)),L=document.createElement("div");L.style.display="contents",L.__ctx=k,_.content.__srcBase&&(L.__srcBase=_.content.__srcBase),L.appendChild(C),h.appendChild(L),vt(L);let A=[...L.querySelectorAll("template[src]")];H("[ROUTER] nested templates found in wrapper:",A.length,A.map(I=>I.getAttribute("src")+(I.__srcLoaded?"[LOADED]":"[NEW]"))),await Promise.all(A.map(ft)),H("[ROUTER] all nested loads done for route:",e.path);let O=h.getAttribute("transition");O&&dt(L,null,O),V(L),T(L)}}document.querySelectorAll("[route]").forEach(h=>{let g=h.getAttribute("route"),E=h.getAttribute("route-active")||"active",_=h.getAttribute("route-active-exact");if(_)h.classList.toggle(_,e.path===g);else if(E&&!h.hasAttribute("route-active-exact")){let y=g==="/"?e.path==="/":e.path.startsWith(g);h.classList.toggle(E,y)}});let p=m.router.scrollBehavior;p==="top"?window.scrollTo(0,0):p==="smooth"&&window.scrollTo({top:0,behavior:"smooth"})}function c(l,d){d.scrollIntoView({behavior:"smooth"});let p='a[href="#'+l+'"]';document.querySelectorAll('a[href^="#"]').forEach(h=>{h.hasAttribute("route")||h.classList.toggle("active",h.matches(p))})}return{get current(){return e},push(l){return a(l)},replace(l){return a(l,!0)},back(){window.history.back()},forward(){window.history.forward()},on(l){return r.add(l),()=>r.delete(l)},register(l,d,p="default"){let h=o(l);h.outlets[p]=d},async init(){if(document.querySelectorAll("template[route]").forEach(l=>{let d=l.getAttribute("route"),p=l.getAttribute("outlet")||"default",h=o(d);h.outlets[p]=l}),document.addEventListener("click",l=>{let d=l.target.closest("[route]");if(d&&!d.hasAttribute("route-view")){l.preventDefault();let p=d.getAttribute("route");a(p);return}if(m.router.mode==="hash"){let p=l.target.closest('a[href^="#"]');if(p&&!p.hasAttribute("route")){let g=p.getAttribute("href").slice(1);if(g&&!g.startsWith("/")){let E=document.getElementById(g);E&&(l.preventDefault(),c(g,E))}}}}),m.router.mode==="hash"){window.addEventListener("hashchange",()=>{let d=window.location.hash.slice(1)||"/";if(!d.startsWith("/")){let p=document.getElementById(d);p&&(c(d,p),window.history.replaceState(null,"","#"+e.path));return}a(d,!0)});let l=window.location.hash.slice(1)||"/";await a(l,!0)}else{window.addEventListener("popstate",()=>{let d=window.location.pathname.replace(m.router.base,"")||"/";a(d,!0)});let l=window.location.pathname.replace(m.router.base,"")||"/";await a(l,!0)}}}}B();v.uppercase=t=>String(t??"").toUpperCase();v.lowercase=t=>String(t??"").toLowerCase();v.capitalize=t=>String(t??"").replace(/\b\w/g,e=>e.toUpperCase());v.truncate=(t,e=100)=>{let r=String(t??"");return r.length>e?r.slice(0,e)+"...":r};v.trim=t=>String(t??"").trim();v.stripHtml=t=>String(t??"").replace(/<[^>]*>/g,"");v.slugify=t=>String(t??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");v.nl2br=t=>String(t??"").replace(/\n/g,"<br>");v.encodeUri=t=>encodeURIComponent(String(t??""));v.number=(t,e=0)=>{let r=Number(t);return isNaN(r)?t:r.toLocaleString(void 0,{minimumFractionDigits:e,maximumFractionDigits:e})};v.currency=(t,e="USD")=>{let r=Number(t);if(isNaN(r))return t;try{return r.toLocaleString(void 0,{style:"currency",currency:e})}catch{return`${e} ${r.toFixed(2)}`}};v.percent=(t,e=0)=>{let r=Number(t);return isNaN(r)?t:(r*100).toFixed(e)+"%"};v.filesize=t=>{let e=Number(t);if(isNaN(e))return t;let r=["B","KB","MB","GB","TB"],n=0,o=e;for(;o>=1024&&n<r.length-1;)o/=1024,n++;return o.toFixed(n>0?1:0)+" "+r[n]};v.ordinal=t=>{let e=Number(t);if(isNaN(e))return t;let r=["th","st","nd","rd"],n=e%100;return e+(r[(n-20)%10]||r[n]||r[0])};v.count=t=>Array.isArray(t)?t.length:0;v.first=t=>Array.isArray(t)?t[0]:t;v.last=t=>Array.isArray(t)?t[t.length-1]:t;v.join=(t,e=", ")=>Array.isArray(t)?t.join(e):t;v.reverse=t=>Array.isArray(t)?[...t].reverse():t;v.unique=t=>Array.isArray(t)?[...new Set(t)]:t;v.pluck=(t,e)=>Array.isArray(t)?t.map(r=>r?.[e]):t;v.sortBy=(t,e)=>{if(!Array.isArray(t))return t;let r=e?.startsWith("-"),n=r?e.slice(1):e;return[...t].sort((o,s)=>{let i=o?.[n],a=s?.[n],u=i<a?-1:i>a?1:0;return r?-u:u})};v.where=(t,e,r)=>Array.isArray(t)?t.filter(n=>n?.[e]===r):t;v.date=(t,e="short")=>{let r=new Date(t);if(isNaN(r))return t;let n=e==="long"?{dateStyle:"long"}:e==="full"?{dateStyle:"full"}:{dateStyle:"short"};return r.toLocaleDateString(void 0,n)};v.datetime=t=>{let e=new Date(t);return isNaN(e)?t:e.toLocaleString()};v.relative=t=>{let e=new Date(t);if(isNaN(e))return t;let r=(Date.now()-e.getTime())/1e3;return r<60?"just now":r<3600?Math.floor(r/60)+"m ago":r<86400?Math.floor(r/3600)+"h ago":r<2592e3?Math.floor(r/86400)+"d ago":e.toLocaleDateString()};v.fromNow=t=>{let e=new Date(t);if(isNaN(e))return t;let r=(e.getTime()-Date.now())/1e3;return r<0?v.relative(t):r<60?"in a moment":r<3600?"in "+Math.floor(r/60)+"m":r<86400?"in "+Math.floor(r/3600)+"h":"in "+Math.floor(r/86400)+"d"};v.default=(t,e="")=>t==null||t===""?e:t;v.json=(t,e=2)=>JSON.stringify(t,null,e);v.debug=t=>(console.log("[No.JS debug]",t),t);v.keys=t=>t&&typeof t=="object"?Object.keys(t):[];v.values=t=>t&&typeof t=="object"?Object.values(t):[];B();w("state",{priority:0,init(t,e,r){let n=b(r,$())||{},o=t.parentElement?x(t.parentElement):null,s=$(n,o);t.__ctx=s;let i=t.getAttribute("persist"),a=t.getAttribute("persist-key");if(i&&a){let u=i==="localStorage"?localStorage:i==="sessionStorage"?sessionStorage:null;if(u){try{let c=u.getItem("nojs_state_"+a);if(c){let f=JSON.parse(c);for(let[l,d]of Object.entries(f))s.$set(l,d)}}catch{}s.$watch(()=>{try{u.setItem("nojs_state_"+a,JSON.stringify(s.__raw))}catch{}})}}H("state",n)}});w("store",{priority:0,init(t,e,r){let n=t.getAttribute("value");if(r){if(!R[r]){let o=n?b(n,$())||{}:{};R[r]=$(o)}H("store",r)}}});w("computed",{priority:2,init(t,e,r){let n=t.getAttribute("expr");if(!r||!n)return;let o=x(t);function s(){let i=b(n,o);o.$set(r,i)}o.$watch(s),s()}});w("watch",{priority:2,init(t,e,r){let n=x(t),o=t.getAttribute("on:change"),s=b(r,n);n.$watch(()=>{let i=b(r,n);if(i!==s){let a=s;s=i,o&&W(o,n,{$old:a,$new:i})}})}});B();var le=["get","post","put","patch","delete"];for(let t of le)w(t,{priority:1,init(e,r,n){let o=e.getAttribute("as")||"data",s=e.getAttribute("loading"),i=e.getAttribute("error"),a=e.getAttribute("empty"),u=e.getAttribute("success"),c=e.getAttribute("then"),f=e.getAttribute("redirect"),l=e.getAttribute("confirm"),d=parseInt(e.getAttribute("refresh"))||0,p=e.getAttribute("cached"),h=e.hasAttribute("cached")?p||"memory":"none",g=e.getAttribute("body"),E=e.getAttribute("headers"),_=e.getAttribute("var"),y=e.getAttribute("into"),S=parseInt(e.getAttribute("retry"))||m.retries,C=parseInt(e.getAttribute("retry-delay"))||m.retryDelay||1e3,k=e.getAttribute("params"),L=e.parentElement?x(e.parentElement):$(),A=e.__ctx||$({},L);e.__ctx=A;let O=[...e.childNodes].map(D=>D.cloneNode(!0)),I=null;async function F(){if(I&&I.abort(),I=new AbortController,l&&!window.confirm(l))return;let D=Z(n,A);if(k){let M=b(k,A);if(M&&typeof M=="object"){let Y=D.includes("?")?"&":"?",q=new URLSearchParams(M).toString();q&&(D+=Y+q)}}let mt=t+":"+D;if(t==="get"){let M=Rt(mt,h);if(M!=null){A.$set(o,M),V(e),T(e);return}}if(s){let M=P(s);M&&(e.innerHTML="",e.appendChild(M),T(e))}try{let M=null;if(g){let j=Z(g,A);try{M=JSON.parse(j)}catch{M=j}}if(e.tagName==="FORM"){let j=new FormData(e);M=Object.fromEntries(j.entries())}let Y=E?JSON.parse(E):{},q=m.retries,st=m.retryDelay;m.retries=S,m.retryDelay=C;let J=await At(D,t,M,Y,e,I.signal);if(m.retries=q,m.retryDelay=st,t==="get"&&jt(mt,J,h),a&&(J==null||Array.isArray(J)&&J.length===0)){let j=P(a);j&&(e.innerHTML="",e.appendChild(j),T(e));return}if(A.$set(o,J),y&&(R[y]||(R[y]=$({})),R[y].$set(o,J),lt()),u){let j=P(u);if(j){e.innerHTML="";let Zt=document.getElementById(u.replace("#",""))?.getAttribute("var")||_||"result",te=$({[Zt]:J},A),pt=document.createElement("div");pt.style.display="contents",pt.__ctx=te,pt.appendChild(j),e.appendChild(pt),T(pt)}}else{e.innerHTML="";for(let j of O)e.appendChild(j.cloneNode(!0));V(e),T(e)}c&&W(c,A,{result:J}),f&&U&&U.push(f),wt("fetch:success",{url:D,data:J})}catch(M){if(M.name==="AbortError")return;if(K(`${t.toUpperCase()} ${D} failed:`,M.message),wt("fetch:error",{url:D,error:M}),wt("error",{url:D,error:M}),i){let Y=P(i);if(Y){e.innerHTML="";let st=document.getElementById(i.replace("#",""))?.getAttribute("var")||"err",J=$({[st]:{message:M.message,status:M.status,body:M.body}},A),j=document.createElement("div");j.style.display="contents",j.__ctx=J,j.appendChild(Y),e.appendChild(j),T(j)}}}}if(e.tagName==="FORM"&&t!=="get"?e.addEventListener("submit",D=>{D.preventDefault(),F()}):t==="get"?F():e.addEventListener("click",D=>{D.preventDefault(),F()}),/\{[^}]+\}/.test(n)){let Y=function(){let st=Z(n,A);st!==mt&&(mt=st,M&&clearTimeout(M),D>0?M=setTimeout(F,D):F())},D=parseInt(e.getAttribute("debounce"))||0,mt=Z(n,A),M=null,q=L;for(;q&&q.__isProxy;)q.$watch(Y),q=q.$parent}if(d>0){let D=setInterval(F,d);nt(()=>clearInterval(D))}}});B();w("bind",{priority:20,init(t,e,r){let n=x(t);function o(){let s=b(r,n);t.textContent=s!=null?String(s):""}rt(r,n,o),o()}});w("bind-html",{priority:20,init(t,e,r){let n=x(t);function o(){let s=b(r,n);s!=null&&(t.innerHTML=Bt(String(s)))}rt(r,n,o),o()}});w("bind-*",{priority:20,init(t,e,r){let n=e.replace("bind-",""),o=x(t);n==="value"&&(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.tagName==="SELECT")&&t.addEventListener("input",()=>{let i=t.type==="number"?Number(t.value):t.value;W(`${r} = ${JSON.stringify(i)}`,o)});function s(){let i=b(r,o);if(["disabled","readonly","checked","selected","hidden","required"].includes(n)){i?t.setAttribute(n,""):t.removeAttribute(n),n in t&&(t[n]=!!i);return}i!=null?t.setAttribute(n,String(i)):t.removeAttribute(n)}rt(r,o,s),s()}});w("model",{priority:20,init(t,e,r){let n=x(t),o=t.tagName,s=t.type;function i(){let u=b(r,n);o==="INPUT"&&s==="checkbox"?t.checked=!!u:o==="INPUT"&&s==="radio"?t.checked=t.value===String(u):t.value=u!=null?String(u):""}let a=o==="SELECT"||s==="checkbox"||s==="radio"?"change":"input";t.addEventListener(a,()=>{let u;s==="checkbox"?u=t.checked:s==="number"||s==="range"?u=Number(t.value):u=t.value,W(`${r} = __val`,n,{__val:u})}),n.$watch(i),i()}});B();w("if",{priority:10,init(t,e,r){let n=x(t),o=t.getAttribute("then"),s=t.getAttribute("else"),i=t.getAttribute("animate-enter")||t.getAttribute("animate"),a=t.getAttribute("animate-leave"),u=t.getAttribute("transition"),c=parseInt(t.getAttribute("animate-duration"))||0,f=[...t.childNodes].map(h=>h.cloneNode(!0)),l;function d(){let h=!!b(r,n);h!==l&&(l=h,a||u?xt(t,a,u,()=>p(h),c):p(h))}function p(h){if(h)if(o){let g=P(o);g&&(t.innerHTML="",t.appendChild(g))}else{t.innerHTML="";for(let g of f)t.appendChild(g.cloneNode(!0))}else if(s){let g=P(s);g&&(t.innerHTML="",t.appendChild(g))}else t.innerHTML="";V(t),T(t),(i||u)&&dt(t,i,u,c)}n.$watch(d),d()}});w("else-if",{priority:10,init(t,e,r){let n=x(t),o=t.getAttribute("then"),s=[...t.childNodes].map(a=>a.cloneNode(!0));function i(){let a=t.previousElementSibling;for(;a;){let c=a.getAttribute("if")||a.getAttribute("else-if");if(c){if(b(c,n)){t.innerHTML="",t.style.display="none";return}}else break;a=a.previousElementSibling}let u=!!b(r,n);if(t.style.display="",u){if(o){let c=P(o);c&&(t.innerHTML="",t.appendChild(c))}else{t.innerHTML="";for(let c of s)t.appendChild(c.cloneNode(!0))}V(t),T(t)}else t.innerHTML=""}n.$watch(i),i()}});w("else",{priority:10,init(t){if(t.hasAttribute("if"))return;let e=x(t),r=t.getAttribute("then"),n=[...t.childNodes].map(s=>s.cloneNode(!0));function o(){let s=t.previousElementSibling;for(;s;){let i=s.getAttribute("if")||s.getAttribute("else-if");if(i){if(b(i,e)){t.innerHTML="",t.style.display="none";return}}else break;s=s.previousElementSibling}if(t.style.display="",r){let i=P(r);i&&(t.innerHTML="",t.appendChild(i))}else{t.innerHTML="";for(let i of n)t.appendChild(i.cloneNode(!0))}V(t),T(t)}e.$watch(o),o()}});w("show",{priority:20,init(t,e,r){let n=x(t),o=t.getAttribute("animate-enter")||t.getAttribute("animate"),s=t.getAttribute("animate-leave"),i=t.getAttribute("transition"),a=parseInt(t.getAttribute("animate-duration"))||0,u;function c(){let f=!!b(r,n);f!==u&&(u=f,f?(t.style.display="",(o||i)&&dt(t,o,i,a)):s||i?xt(t,s,i,()=>{t.style.display="none"},a):t.style.display="none")}rt(r,n,c),c()}});w("hide",{priority:20,init(t,e,r){let n=x(t),o=t.getAttribute("animate-enter")||t.getAttribute("animate"),s=t.getAttribute("animate-leave"),i=t.getAttribute("transition"),a=parseInt(t.getAttribute("animate-duration"))||0,u;function c(){let f=!b(r,n);f!==u&&(u=f,f?(t.style.display="",(o||i)&&dt(t,o,i,a)):s||i?xt(t,s,i,()=>{t.style.display="none"},a):t.style.display="none")}rt(r,n,c),c()}});w("switch",{priority:10,init(t,e,r){let n=x(t);function o(){let s=b(r,n),i=!1;for(let a of[...t.children]){let u=a.getAttribute("case"),c=a.hasAttribute("default"),f=a.getAttribute("then");if(u){let l=u.split(",").map(d=>b(d.trim(),n));if(!i&&l.includes(s)){if(i=!0,a.style.display="",f){let d=P(f);d&&(a.innerHTML="",a.appendChild(d)),a.__declared=!1,T(a)}}else a.style.display="none"}else if(c&&(a.style.display=i?"none":"",!i&&f)){let l=P(f);l&&(a.innerHTML="",a.appendChild(l)),a.__declared=!1,T(a)}}}n.$watch(o),o()}});w("each",{priority:10,init(t,e,r){let n=x(t),o=r.match(/^(\w+)\s+in\s+(\S+)$/);if(!o)return;let[,s,i]=o,a=t.getAttribute("template"),u=t.getAttribute("else"),c=t.getAttribute("key"),f=t.getAttribute("animate-enter")||t.getAttribute("animate"),l=t.getAttribute("animate-leave"),d=parseInt(t.getAttribute("animate-stagger"))||0,p=parseInt(t.getAttribute("animate-duration"))||0;function h(){let E=it(i,n);if(!Array.isArray(E))return;if(E.length===0&&u){let y=P(u);y&&(t.innerHTML="",t.appendChild(y),T(t));return}let _=a?document.getElementById(a):null;if(_)if(l&&t.children.length>0){let y=[...t.children],S=y.length;y.forEach(C=>{let k=C.firstElementChild||C;k.classList.add(l);let L=()=>{k.classList.remove(l),S--,S<=0&&g(_,E)};k.addEventListener("animationend",L,{once:!0}),setTimeout(L,p||2e3)})}else g(_,E)}function g(E,_){let y=_.length;t.innerHTML="",_.forEach((S,C)=>{let k={[s]:S,$index:C,$count:y,$first:C===0,$last:C===y-1,$even:C%2===0,$odd:C%2!==0},L=$(k,n),A=E.content.cloneNode(!0),O=document.createElement("div");if(O.style.display="contents",O.__ctx=L,O.appendChild(A),t.appendChild(O),T(O),f){let I=O.firstElementChild;I&&(I.classList.add(f),d&&(I.style.animationDelay=C*d+"ms"))}})}n.$watch(h),h()}});w("foreach",{priority:10,init(t,e,r){let n=x(t),o=t.getAttribute("from"),s=t.getAttribute("index")||"$index",i=t.getAttribute("else"),a=t.getAttribute("filter"),u=t.getAttribute("sort"),c=parseInt(t.getAttribute("limit"))||1/0,f=parseInt(t.getAttribute("offset"))||0,l=t.getAttribute("template"),d=t.getAttribute("animate-enter")||t.getAttribute("animate"),p=t.getAttribute("animate-leave"),h=parseInt(t.getAttribute("animate-stagger"))||0,g=parseInt(t.getAttribute("animate-duration"))||0;if(!o||!r)return;let E=l?null:t.cloneNode(!0);function _(){let y=it(o,n);if(!Array.isArray(y))return;if(a&&(y=y.filter((L,A)=>{let O=$({[r]:L,[s]:A},n);return!!b(a,O)})),u){let L=u.startsWith("-"),A=L?u.slice(1):u;y=[...y].sort((O,I)=>{let F=it(A,O)??O?.[A],z=it(A,I)??I?.[A],D=F<z?-1:F>z?1:0;return L?-D:D})}if(y=y.slice(f,f+c),y.length===0&&i){let L=P(i);L&&(t.innerHTML="",t.appendChild(L),T(t));return}let S=l?document.getElementById(l):null,C=y.length;function k(){t.innerHTML="",y.forEach((L,A)=>{let O={[r]:L,[s]:A,$index:A,$count:C,$first:A===0,$last:A===C-1,$even:A%2===0,$odd:A%2!==0},I=$(O,n),F;S?F=S.content.cloneNode(!0):F=E.cloneNode(!0);let z=document.createElement("div");if(z.style.display="contents",z.__ctx=I,z.appendChild(F),t.appendChild(z),T(z),d){let D=z.firstElementChild;D&&(D.classList.add(d),h&&(D.style.animationDelay=A*h+"ms"))}})}if(p&&t.children.length>0){let L=[...t.children],A=L.length;L.forEach(O=>{let I=O.firstElementChild||O;I.classList.add(p);let F=()=>{I.classList.remove(p),A--,A<=0&&k()};I.addEventListener("animationend",F,{once:!0}),setTimeout(F,g||2e3)})}else k()}n.$watch(_),_()}});G();w("class-*",{priority:20,init(t,e,r){let n=e.replace("class-",""),o=x(t);if(n==="map"){let i=function(){let a=b(r,o);if(a&&typeof a=="object")for(let[u,c]of Object.entries(a))t.classList.toggle(u,!!c)};o.$watch(i),i();return}if(n==="list"){let a=function(){let u=b(r,o);if(Array.isArray(u)){i.forEach(f=>{f&&t.classList.remove(f)});let c=u.filter(Boolean);c.forEach(f=>t.classList.add(f)),i=c}},i=[];o.$watch(a),a();return}function s(){t.classList.toggle(n,!!b(r,o))}o.$watch(s),r.includes("NoJS.locale")&&yt(s),s()}});w("style-*",{priority:20,init(t,e,r){let n=e.replace("style-",""),o=x(t);if(n==="map"){let a=function(){let u=b(r,o);if(u&&typeof u=="object")for(let[c,f]of Object.entries(u))t.style[c]=f??""};o.$watch(a),a();return}let s=n.replace(/-([a-z])/g,(a,u)=>u.toUpperCase());function i(){let a=b(r,o);t.style[s]=a!=null?String(a):""}o.$watch(i),i()}});B();w("on:*",{priority:20,init(t,e,r){let n=x(t),o=e.replace("on:","").split("."),s=o[0],i=new Set(o.slice(1));if(s==="mounted"){requestAnimationFrame(()=>W(r,n,{$el:t}));return}if(s==="init"){W(r,n,{$el:t});return}if(s==="updated"){let l=new MutationObserver(()=>{W(r,n,{$el:t})});l.observe(t,{childList:!0,subtree:!0,characterData:!0,attributes:!0}),nt(()=>l.disconnect());return}if(s==="error"){let l=d=>{(t.contains(d.target)||d.target===t)&&W(r,n,{$el:t,$error:d.error||d.message})};window.addEventListener("error",l),nt(()=>window.removeEventListener("error",l));return}if(s==="unmounted"){let l=new MutationObserver(d=>{for(let p of d)for(let h of p.removedNodes)if(h===t||h.contains?.(t)){W(r,n,{$el:t}),l.disconnect();return}});t.parentElement&&l.observe(t.parentElement,{childList:!0});return}let a=0,u=0;for(let l of i)/^\d+$/.test(l)&&(i.has("debounce")?a=parseInt(l):i.has("throttle")&&(u=parseInt(l)));let c=l=>{if(s==="keydown"||s==="keyup"||s==="keypress"){let d=["enter","escape","tab","space","delete","backspace","up","down","left","right","ctrl","alt","shift","meta"];for(let p of i)if(d.includes(p)&&(p==="enter"&&l.key!=="Enter"||p==="escape"&&l.key!=="Escape"||p==="tab"&&l.key!=="Tab"||p==="space"&&l.key!==" "||p==="delete"&&l.key!=="Delete"&&l.key!=="Backspace"||p==="up"&&l.key!=="ArrowUp"||p==="down"&&l.key!=="ArrowDown"||p==="left"&&l.key!=="ArrowLeft"||p==="right"&&l.key!=="ArrowRight"||p==="ctrl"&&!l.ctrlKey||p==="alt"&&!l.altKey||p==="shift"&&!l.shiftKey||p==="meta"&&!l.metaKey))return}i.has("prevent")&&l.preventDefault(),i.has("stop")&&l.stopPropagation(),!(i.has("self")&&l.target!==t)&&W(r,n,{$event:l,$el:t})};if(a>0){let l=c,d;c=p=>{clearTimeout(d),d=setTimeout(()=>l(p),a)}}if(u>0){let l=c,d=0;c=p=>{let h=Date.now();h-d>=u&&(d=h,l(p))}}let f={};i.has("once")&&(f.once=!0),t.addEventListener(s,c,f)}});w("trigger",{priority:20,init(t,e,r){let n=x(t),o=t.getAttribute("trigger-data");t.addEventListener("click",()=>{let s=o?b(o,n):null;t.dispatchEvent(new CustomEvent(r,{detail:s,bubbles:!0}))})}});B();w("ref",{priority:5,init(t,e,r){ct[r]=t}});w("use",{priority:10,init(t,e,r){let n=x(t),o=P(r);if(!o)return;let s={};for(let f of[...t.attributes])if(f.name.startsWith("var-")){let l=f.name.replace("var-","");s[l]=b(f.value,n)}let i=$(s,n),a={};for(let f of[...t.children]){let l=f.getAttribute("slot")||"default";a[l]||(a[l]=document.createDocumentFragment()),a[l].appendChild(f.cloneNode(!0))}let u=o.querySelectorAll("slot");for(let f of u){let l=f.getAttribute("name")||"default";a[l]&&f.replaceWith(a[l])}t.innerHTML="";let c=document.createElement("div");c.style.display="contents",c.__ctx=i,c.appendChild(o),t.appendChild(c),T(c)}});w("call",{priority:20,init(t,e,r){let n=x(t),o=t.getAttribute("method")||"get",s=t.getAttribute("as"),i=t.getAttribute("into"),a=t.getAttribute("success"),u=t.getAttribute("error"),c=t.getAttribute("then"),f=t.getAttribute("confirm"),l=t.getAttribute("body");t.addEventListener("click",async d=>{if(d.preventDefault(),f&&!window.confirm(f))return;let p=Z(r,n);try{let h=null;if(l){let E=Z(l,n);try{h=JSON.parse(E)}catch{h=E}}let g=await At(p,o,h,{},t);if(s&&n.$set(s,g),s&&i&&(R[i]||(R[i]=$({})),R[i].$set(s,g),lt()),c&&W(c,n,{result:g}),a){let E=P(a);if(E){let y=document.getElementById(a.replace("#",""))?.getAttribute("var")||"result",S=$({[y]:g},n),C=t.closest("[route-view]")||t.parentElement,k=document.createElement("div");k.style.display="contents",k.__ctx=S,k.appendChild(E),C.appendChild(k),T(k)}}}catch(h){if(u){let g=P(u);if(g){let _=document.getElementById(u.replace("#",""))?.getAttribute("var")||"err",y=$({[_]:{message:h.message,status:h.status}},n),S=t.parentElement,C=document.createElement("div");C.style.display="contents",C.__ctx=y,C.appendChild(g),S.appendChild(C),T(C)}}}})}});B();function Gt(t,e,r){let n=e.split("|").map(o=>o.trim());for(let o of n){let[s,...i]=o.split(":"),a=et[s];if(a){let u=a(t,...i,r);if(u!==!0&&u)return u}else switch(s){case"required":if(t==null||String(t).trim()==="")return"Required";break;case"email":if(t&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(t))return"Invalid email";break;case"url":try{new URL(t)}catch{return"Invalid URL"}break;case"min":if(Number(t)<Number(i[0]))return`Minimum value is ${i[0]}`;break;case"max":if(Number(t)>Number(i[0]))return`Maximum value is ${i[0]}`;break;case"between":{let u=Number(t);if(u<Number(i[0])||u>Number(i[1]))return`Must be between ${i[0]} and ${i[1]}`;break}case"match":if(t!==r[i[0]])return`Must match ${i[0]}`;break;case"phone":if(!/^[\d\s\-+()]{7,15}$/.test(t))return"Invalid phone number";break;case"cpf":if(!/^\d{3}\.?\d{3}\.?\d{3}-?\d{2}$/.test(t))return"Invalid CPF";break;case"cnpj":if(!/^\d{2}\.?\d{3}\.?\d{3}\/?\d{4}-?\d{2}$/.test(t))return"Invalid CNPJ";break;case"creditcard":if(!/^\d{13,19}$/.test(t.replace(/\s|-/g,"")))return"Invalid card number";break;case"custom":if(i[0]&&et[i[0]]){let u=et[i[0]](t,r);if(u!==!0&&u)return u}break}}return null}w("validate",{priority:30,init(t,e,r){let n=x(t);if(t.tagName==="FORM"){let s=function(){let i={},a={},u=!0;for(let c of t.querySelectorAll("input, textarea, select")){if(!c.name)continue;a[c.name]=c.value;let f=c.getAttribute("validate");if(f){let l=Gt(c.value,f,a);l&&(i[c.name]=l,u=!1)}c.checkValidity()||(i[c.name]=i[c.name]||c.validationMessage,u=!1)}o.valid=u,o.errors=i,o.values=a,n.$set("$form",{...o})},o={valid:!1,dirty:!1,touched:!1,submitting:!1,errors:{},values:{},reset:()=>{o.dirty=!1,o.touched=!1,t.reset(),s()}};n.$set("$form",o),t.addEventListener("input",()=>{o.dirty=!0,s()}),t.addEventListener("focusout",()=>{o.touched=!0,s()}),t.addEventListener("submit",()=>{o.submitting=!0,n.$set("$form",{...o}),requestAnimationFrame(()=>{o.submitting=!1,n.$set("$form",{...o})})}),requestAnimationFrame(s);return}if(r&&(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.tagName==="SELECT")){let o=t.getAttribute("error");t.addEventListener("input",()=>{let s=Gt(t.value,r,{});if(s&&o){let i=t.nextElementSibling?.__validationError?t.nextElementSibling:null;i||(i=document.createElement("div"),i.__validationError=!0,i.style.display="contents",t.parentNode.insertBefore(i,t.nextSibling));let a=P(o);if(a){let u=$({err:{message:s}},n);i.innerHTML="",i.__ctx=u,i.appendChild(a),T(i)}}else{let i=t.nextElementSibling?.__validationError?t.nextElementSibling:null;i&&(i.innerHTML="")}})}}});w("error-boundary",{priority:1,init(t,e,r){let n=x(t);function o(i){let a=P(r);if(a){let u=$({err:{message:i}},n);t.innerHTML="";let c=document.createElement("div");c.style.display="contents",c.__ctx=u,c.appendChild(a),t.appendChild(c),T(c)}}t.addEventListener("nojs:error",i=>{o(i.detail?.message||"An error occurred")});let s=i=>{(t.contains(i.target)||t===i.target)&&o(i.message||"An error occurred")};window.addEventListener("error",s),nt(()=>window.removeEventListener("error",s))}});G();w("t",{priority:20,init(t,e,r){let n=x(t),o=t.hasAttribute("t-html");function s(){let i={};for(let u of[...t.attributes])if(u.name.startsWith("t-")&&u.name!=="t"&&u.name!=="t-html"){let c=u.name.replace("t-","");i[c]=b(u.value,n)??u.value}let a=N.t(r,i);o?t.innerHTML=a:t.textContent=a}n.$watch(s),yt(s),s()}});w("i18n-ns",{priority:1,init(t,e,r){let n=document.createDocumentFragment();for(;t.firstChild;)n.appendChild(t.firstChild);It(r).then(()=>{t.appendChild(n),T(t),gt()})}});function ue(){if(typeof window>"u")return null;let t=m.router||{};if(t.mode==="hash")return window.location.hash.slice(1)||"/";let e=(t.base||"/").replace(/\/$/,"");return window.location.pathname.replace(e,"")||"/"}var Qt={get baseApiUrl(){return m.baseApiUrl},set baseApiUrl(t){m.baseApiUrl=t},get locale(){return N.locale},set locale(t){N.locale=t},config(t={}){let e={...m.headers},r={...m.cache},n={...m.templates},o={...m.router},s={...m.i18n};Object.assign(m,t),t.headers&&(m.headers={...e,...t.headers}),t.csrf&&(m.csrf=t.csrf),t.cache&&(m.cache={...r,...t.cache}),t.templates&&(m.templates={...n,...t.templates}),t.router&&(m.router={...o,...t.router}),t.i18n&&(m.i18n={...s,...t.i18n},N.locale=t.i18n.defaultLocale||N.locale)},async init(t){if(typeof document>"u")return;if(t=t||document.body,H("Initializing..."),m.i18n.loadPath){let r=new Set([N.locale,m.i18n.fallbackLocale]);await Promise.all([...r].map(n=>Nt(n)))}vt(t);let e=ue();await Wt(e),document.querySelector("[route-view]")&&kt(Yt()),T(t),U&&await U.init(),H("Initialized."),qt(),m.devtools&&typeof window<"u"&&(window.__NOJS_DEVTOOLS__={stores:R,config:m,refs:ct,router:U,filters:Object.keys(v),validators:Object.keys(et),version:Qt.version},H("DevTools enabled \u2014 access via window.__NOJS_DEVTOOLS__"))},directive(t,e){w(t,e)},filter(t,e){v[t]=e},validator(t,e){et[t]=e},i18n(t){if(t.loadPath!=null&&(m.i18n.loadPath=t.loadPath),t.ns&&(m.i18n.ns=t.ns),t.cache!=null&&(m.i18n.cache=t.cache),t.persist!=null&&(m.i18n.persist=t.persist),t.locales&&(N.locales=t.locales),t.fallbackLocale&&(m.i18n.fallbackLocale=t.fallbackLocale),t.defaultLocale&&(N._locale=t.defaultLocale),m.i18n.persist&&typeof localStorage<"u")try{let e=localStorage.getItem("nojs-locale");if(e&&N.locales[e]){N._locale=e;return}}catch{}if(t.detectBrowser){let e=typeof navigator<"u"?navigator.language:"en",r=e.split("-")[0];N.locales[e]?N._locale=e:N.locales[r]&&(N._locale=r)}},on(t,e){return tt[t]||(tt[t]=[]),tt[t].push(e),()=>{tt[t]=tt[t].filter(r=>r!==e)}},interceptor(t,e){at[t]&&at[t].push(e)},get store(){return R},get router(){return U},createContext:$,evaluate:b,findContext:x,processTree:T,resolve:it,version:"1.1.0"},Et=Qt;window.NoJS=Et;document.readyState==="loading"?document.addEventListener("DOMContentLoaded",()=>Et.init()):Et.init();})();
|
|
25
25
|
//# sourceMappingURL=no.js.map
|