@erickxavier/no-js 1.4.0 → 1.4.3

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/esm/no.js CHANGED
@@ -1,12 +1,12 @@
1
1
  /**
2
- * No.JS v1.4.0 — The HTML-First Reactive Framework
2
+ * No.JS v1.4.3 — 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/ErickXavier/no-js
6
6
  */
7
- var he=Object.defineProperty;var Yt=(t,r)=>()=>(t&&(r=t(t=0)),r);var be=(t,r)=>{for(var e in r)he(t,e,{get:r[e],enumerable:!0})};function Pt(t){ct=t}function Vt(t){et=t}function z(...t){h.debug&&console.log("[No.JS]",...t)}function st(...t){console.warn("[No.JS]",...t)}function wt(){for(let t of Ct){if(t._el&&!t._el.isConnected){Ct.delete(t);continue}t()}}function W(t,r,e){r.$watch(e),typeof t=="string"&&t.includes("$store")&&Ct.add(e)}function Q(t){ct&&(ct.__disposers=ct.__disposers||[],ct.__disposers.push(t))}function Dt(t,r){(yt[t]||[]).forEach(e=>e(r))}var h,At,yt,V,Ct,k,_t,Ht,ft,et,ct,X=Yt(()=>{h={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:[]},yt={},V={},Ct=new Set,k={},_t={},Ht=new Map,ft={},et=null,ct=null});var Gt={};be(Gt,{_deepMerge:()=>Ft,_i18n:()=>q,_i18nCache:()=>Rt,_i18nListeners:()=>vt,_loadI18nForLocale:()=>qt,_loadI18nNamespace:()=>Wt,_loadLocale:()=>St,_loadedNs:()=>Ut,_notifyI18n:()=>Tt,_watchI18n:()=>$t});function $t(t){return vt.add(t),()=>vt.delete(t)}function Tt(){for(let t of vt){if(t._el&&!t._el.isConnected){vt.delete(t);continue}t()}}function Ft(t,r){let e={...t};for(let n of Object.keys(r))r[n]&&typeof r[n]=="object"&&!Array.isArray(r[n])&&t[n]&&typeof t[n]=="object"&&!Array.isArray(t[n])?e[n]=Ft(t[n],r[n]):e[n]=r[n];return e}async function St(t,r){let e=r?`${t}:${r}`:t;if(h.i18n.cache&&Rt.has(e))return;let n=h.i18n.loadPath.replace("{locale}",t);if(r)n=n.replace("{ns}",r);else if(n.includes("{ns}"))return;try{let o=await fetch(n);if(!o.ok){st(`i18n: failed to load ${n} (${o.status})`);return}let i=await o.json();q.locales[t]=Ft(q.locales[t]||{},i),h.i18n.cache&&Rt.set(e,i)}catch(o){st(`i18n: error loading ${n}`,o)}}async function qt(t){if(!h.i18n.loadPath)return;let r=h.i18n.ns;!r.length||!h.i18n.loadPath.includes("{ns}")?await St(t,null):await Promise.all(r.map(e=>St(t,e)))}async function Wt(t){if(!h.i18n.loadPath)return;Ut.add(t);let r=new Set([q.locale,h.i18n.fallbackLocale]);await Promise.all([...r].map(e=>St(e,t)))}var vt,Rt,Ut,q,pt=Yt(()=>{X();vt=new Set;Rt=new Map,Ut=new Set;q={_locale:"en",locales:{},get locale(){return this._locale},set locale(t){if(this._locale!==t){if(this._locale=t,h.i18n.persist&&typeof localStorage<"u")try{localStorage.setItem("nojs-locale",t)}catch{}if(h.i18n.loadPath){let r=new Set([...h.i18n.ns,...Ut]);Promise.all([...r].map(e=>St(t,e))).then(()=>Tt())}else Tt()}},t(t,r={}){let e=q.locales[q.locale]||q.locales[h.i18n.fallbackLocale]||{},n=t.split(".").reduce((o,i)=>o?.[i],e);if(n==null)return t;if(typeof n=="string"&&n.includes("|")&&r.count!=null){let o=n.split("|").map(i=>i.trim());n=Number(r.count)===1?o[0]:o[1]||o[0]}return typeof n=="string"&&(n=n.replace(/\{(\w+)\}/g,(o,i)=>r[i]!=null?r[i]:"")),n}}});X();pt();X();pt();var ye=0,_e=new Set;function P(t={},r=null){let e=new Set,n={};Object.assign(n,t);let o=!1;function i(){if(!o){o=!0;try{if(ye>0)for(let c of e){if(c._el&&!c._el.isConnected){e.delete(c);continue}_e.add(c)}else for(let c of e){if(c._el&&!c._el.isConnected){e.delete(c);continue}c()}}finally{o=!1}}}let s={get(c,l){if(l==="__isProxy")return!0;if(l==="__raw")return c;if(l==="__listeners")return e;if(l==="$watch")return d=>(ct&&(d._el=ct),e.add(d),()=>e.delete(d));if(l==="$notify")return i;if(l==="$set")return(d,f)=>{let p=d.split(".");if(p.length===1)a[d]=f;else{let u=a;for(let x=0;x<p.length-1;x++)if(u=u[p[x]],u==null)return;let m=p[p.length-1],b=u[m];u[m]=f,b!==f&&i()}};if(l==="$parent")return r;if(l==="$refs")return ft;if(l==="$store")return V;if(l==="$route")return et?et.current:{};if(l==="$router")return et;if(l==="$i18n")return q;if(l==="$form")return c.$form||null;if(l in c)return c[l];if(r&&r.__isProxy)return r[l]},set(c,l,d){let f=c[l];return c[l]=d,f!==d&&i(),!0},has(c,l){return l in c?!0:r&&r.__isProxy?l in r:!1}},a=new Proxy(n,s);return a}function zt(t){let r=new Set,e={},n=t;for(;n&&n.__isProxy;){let o=n.__raw;for(let i of Object.keys(o))r.has(i)||(r.add(i),e[i]=o[i]);n=n.$parent}return{keys:[...r],vals:e}}X();pt();var Qt=new Map;function mt(t,r,e){let n={};for(let l=0;l<r.length;l++)n[r[l]]=e[l];function o(l,d){return l.split(".").reduce((f,p)=>f?.[p],d)}function i(l){let d=l.trim();if(d==="true")return!0;if(d==="false")return!1;if(d==="null")return null;if(d!=="undefined")return/^-?\d+(\.\d+)?$/.test(d)?Number(d):/^(['"`]).*\1$/.test(d)?d.slice(1,-1):o(d,n)}let s=t.trim(),a=s.match(/^(.+?)\s*\?\s*(.+?)\s*:\s*(.+)$/);if(a){let l=mt(a[1].trim(),r,e);return mt(l?a[2].trim():a[3].trim(),r,e)}if(s.includes("||")){let l=s.split("||");for(let d of l){let f=mt(d.trim(),r,e);if(f)return f}return mt(l[l.length-1].trim(),r,e)}if(s.includes("&&")){let l=s.split("&&"),d;for(let f of l)if(d=mt(f.trim(),r,e),!d)return d;return d}let c=s.match(/^(.+?)\s*(===|!==|==|!=|>=|<=|>|<)\s*(.+)$/);if(c){let l=i(c[1]),d=i(c[3]);switch(c[2]){case"===":return l===d;case"!==":return l!==d;case"==":return l==d;case"!=":return l!=d;case">=":return l>=d;case"<=":return l<=d;case">":return l>d;case"<":return l<d}}return s.startsWith("!")?!mt(s.slice(1).trim(),r,e):i(s)}function ve(t){let r=[],e="",n=0,o=!1,i="";for(let s=0;s<t.length;s++){let a=t[s];if(o){e+=a,a===i&&t[s-1]!=="\\"&&(o=!1);continue}if(a==="'"||a==='"'||a==="`"){o=!0,i=a,e+=a;continue}if(a==="("||a==="["||a==="{"){n++,e+=a;continue}if(a===")"||a==="]"||a==="}"){n--,e+=a;continue}if(a==="|"&&n===0&&t[s+1]!=="|"&&t[s-1]!=="|"){r.push(e.trim()),e="";continue}e+=a}return r.push(e.trim()),r}function Ee(t,r){let e=r.indexOf(":"),n,o;e===-1?(n=r.trim(),o=null):(n=r.substring(0,e).trim(),o=r.substring(e+1).trim());let i=k[n];if(!i)return st(`Unknown filter: ${n}`),t;let s=o?xe(o):[];return i(t,...s)}function xe(t){let r=[],e="",n=!1,o="";for(let i of t){if(n){if(i===o){n=!1;continue}e+=i;continue}if(i==="'"||i==='"'){n=!0,o=i;continue}if(i===","){r.push(e.trim()),e="";continue}e+=i}return e.trim()&&r.push(e.trim()),r.map(i=>{let s=Number(i);return isNaN(s)?i:s})}function L(t,r){if(!(t==null||t===""))try{let e=ve(t),n=e[0],{keys:o,vals:i}=zt(r),s=["$store","$route","$router","$i18n","$refs","$form"];for(let d of s)o.includes(d)||(o.push(d),i[d]=r[d]);let a=o,c=a.map(d=>i[d]),l;if(h.csp==="strict")l=mt(n,a,c);else{let d=n+"|"+a.join(","),f=Qt.get(d);f||(f=new Function(...a,`return (${n})`),Qt.set(d,f)),l=f(...c)}for(let d=1;d<e.length;d++)l=Ee(l,e[d]);return l}catch{return}}function Z(t,r,e={}){try{let{keys:n,vals:o}=zt(r),i={$store:V,$route:et?.current,$router:et,$i18n:q,$refs:r.$refs};Object.assign(i,e);for(let[u,m]of Object.entries(i))n.includes(u)||(n.push(u),o[u]=m);let s=[...n],a=s.map(u=>o[u]),c=new Set,l=r;for(;l&&l.__isProxy;){for(let u of Object.keys(l.__raw))c.add(u);l=l.$parent}let d={};for(let u of c)!u.startsWith("$")&&u in o&&(d[u]=o[u]);let f=[...c].filter(u=>!u.startsWith("$")).map(u=>`{let _c=__ctx;while(_c&&_c.__isProxy){if('${u}'in _c.__raw){if(typeof ${u}!=='undefined'){if(${u}!==__orig['${u}'])_c.$set('${u}',${u});else if(typeof ${u}==='object'&&${u}!==null)_c.$notify();}break;}_c=_c.$parent;}}`).join(`
7
+ var he=Object.defineProperty;var Vt=(t,r)=>()=>(t&&(r=t(t=0)),r);var be=(t,r)=>{for(var e in r)he(t,e,{get:r[e],enumerable:!0})};function Rt(t){ct=t}function Gt(t){et=t}function z(...t){h.debug&&console.log("[No.JS]",...t)}function st(...t){console.warn("[No.JS]",...t)}function wt(){for(let t of Ct){if(t._el&&!t._el.isConnected){Ct.delete(t);continue}t()}}function q(t,r,e){r.$watch(e),typeof t=="string"&&t.includes("$store")&&Ct.add(e)}function Q(t){ct&&(ct.__disposers=ct.__disposers||[],ct.__disposers.push(t))}function Dt(t,r){(yt[t]||[]).forEach(e=>e(r))}var h,At,yt,V,Ct,k,_t,Pt,ft,et,ct,X=Vt(()=>{h={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:[]},yt={},V={},Ct=new Set,k={},_t={},Pt=new Map,ft={},et=null,ct=null});var Qt={};be(Qt,{_deepMerge:()=>Ut,_i18n:()=>W,_i18nCache:()=>Ft,_i18nListeners:()=>vt,_loadI18nForLocale:()=>Wt,_loadI18nNamespace:()=>zt,_loadLocale:()=>St,_loadedNs:()=>qt,_notifyI18n:()=>Tt,_watchI18n:()=>$t});function $t(t){return vt.add(t),()=>vt.delete(t)}function Tt(){for(let t of vt){if(t._el&&!t._el.isConnected){vt.delete(t);continue}t()}}function Ut(t,r){let e={...t};for(let n of Object.keys(r))r[n]&&typeof r[n]=="object"&&!Array.isArray(r[n])&&t[n]&&typeof t[n]=="object"&&!Array.isArray(t[n])?e[n]=Ut(t[n],r[n]):e[n]=r[n];return e}async function St(t,r){let e=r?`${t}:${r}`:t;if(h.i18n.cache&&Ft.has(e))return;let n=h.i18n.loadPath.replace("{locale}",t);if(r)n=n.replace("{ns}",r);else if(n.includes("{ns}"))return;try{let o=await fetch(n);if(!o.ok){st(`i18n: failed to load ${n} (${o.status})`);return}let i=await o.json();W.locales[t]=Ut(W.locales[t]||{},i),h.i18n.cache&&Ft.set(e,i)}catch(o){st(`i18n: error loading ${n}`,o)}}async function Wt(t){if(!h.i18n.loadPath)return;let r=h.i18n.ns;!r.length||!h.i18n.loadPath.includes("{ns}")?await St(t,null):await Promise.all(r.map(e=>St(t,e)))}async function zt(t){if(!h.i18n.loadPath)return;qt.add(t);let r=new Set([W.locale,h.i18n.fallbackLocale]);await Promise.all([...r].map(e=>St(e,t)))}var vt,Ft,qt,W,pt=Vt(()=>{X();vt=new Set;Ft=new Map,qt=new Set;W={_locale:"en",locales:{},get locale(){return this._locale},set locale(t){if(this._locale!==t){if(this._locale=t,h.i18n.persist&&typeof localStorage<"u")try{localStorage.setItem("nojs-locale",t)}catch{}if(h.i18n.loadPath){let r=new Set([...h.i18n.ns,...qt]);Promise.all([...r].map(e=>St(t,e))).then(()=>Tt())}else Tt()}},t(t,r={}){let e=W.locales[W.locale]||W.locales[h.i18n.fallbackLocale]||{},n=t.split(".").reduce((o,i)=>o?.[i],e);if(n==null)return t;if(typeof n=="string"&&n.includes("|")&&r.count!=null){let o=n.split("|").map(i=>i.trim());n=Number(r.count)===1?o[0]:o[1]||o[0]}return typeof n=="string"&&(n=n.replace(/\{(\w+)\}/g,(o,i)=>r[i]!=null?r[i]:"")),n}}});X();pt();X();pt();var ye=0,_e=new Set;function P(t={},r=null){let e=new Set,n={};Object.assign(n,t);let o=!1;function i(){if(!o){o=!0;try{if(ye>0)for(let c of e){if(c._el&&!c._el.isConnected){e.delete(c);continue}_e.add(c)}else for(let c of e){if(c._el&&!c._el.isConnected){e.delete(c);continue}c()}}finally{o=!1}}}let s={get(c,l){if(l==="__isProxy")return!0;if(l==="__raw")return c;if(l==="__listeners")return e;if(l==="$watch")return d=>(ct&&(d._el=ct),e.add(d),()=>e.delete(d));if(l==="$notify")return i;if(l==="$set")return(d,f)=>{let p=d.split(".");if(p.length===1)a[d]=f;else{let u=a;for(let x=0;x<p.length-1;x++)if(u=u[p[x]],u==null)return;let m=p[p.length-1],b=u[m];u[m]=f,b!==f&&i()}};if(l==="$parent")return r;if(l==="$refs")return ft;if(l==="$store")return V;if(l==="$route")return et?et.current:{};if(l==="$router")return et;if(l==="$i18n")return W;if(l==="$form")return c.$form||null;if(l in c)return c[l];if(r&&r.__isProxy)return r[l]},set(c,l,d){let f=c[l];return c[l]=d,f!==d&&i(),!0},has(c,l){return l in c?!0:r&&r.__isProxy?l in r:!1}},a=new Proxy(n,s);return a}function Kt(t){let r=new Set,e={},n=t;for(;n&&n.__isProxy;){let o=n.__raw;for(let i of Object.keys(o))r.has(i)||(r.add(i),e[i]=o[i]);n=n.$parent}return{keys:[...r],vals:e}}X();pt();var Zt=new Map;function mt(t,r,e){let n={};for(let l=0;l<r.length;l++)n[r[l]]=e[l];function o(l,d){return l.split(".").reduce((f,p)=>f?.[p],d)}function i(l){let d=l.trim();if(d==="true")return!0;if(d==="false")return!1;if(d==="null")return null;if(d!=="undefined")return/^-?\d+(\.\d+)?$/.test(d)?Number(d):/^(['"`]).*\1$/.test(d)?d.slice(1,-1):o(d,n)}let s=t.trim(),a=s.match(/^(.+?)\s*\?\s*(.+?)\s*:\s*(.+)$/);if(a){let l=mt(a[1].trim(),r,e);return mt(l?a[2].trim():a[3].trim(),r,e)}if(s.includes("||")){let l=s.split("||");for(let d of l){let f=mt(d.trim(),r,e);if(f)return f}return mt(l[l.length-1].trim(),r,e)}if(s.includes("&&")){let l=s.split("&&"),d;for(let f of l)if(d=mt(f.trim(),r,e),!d)return d;return d}let c=s.match(/^(.+?)\s*(===|!==|==|!=|>=|<=|>|<)\s*(.+)$/);if(c){let l=i(c[1]),d=i(c[3]);switch(c[2]){case"===":return l===d;case"!==":return l!==d;case"==":return l==d;case"!=":return l!=d;case">=":return l>=d;case"<=":return l<=d;case">":return l>d;case"<":return l<d}}return s.startsWith("!")?!mt(s.slice(1).trim(),r,e):i(s)}function ve(t){let r=[],e="",n=0,o=!1,i="";for(let s=0;s<t.length;s++){let a=t[s];if(o){e+=a,a===i&&t[s-1]!=="\\"&&(o=!1);continue}if(a==="'"||a==='"'||a==="`"){o=!0,i=a,e+=a;continue}if(a==="("||a==="["||a==="{"){n++,e+=a;continue}if(a===")"||a==="]"||a==="}"){n--,e+=a;continue}if(a==="|"&&n===0&&t[s+1]!=="|"&&t[s-1]!=="|"){r.push(e.trim()),e="";continue}e+=a}return r.push(e.trim()),r}function Ee(t,r){let e=r.indexOf(":"),n,o;e===-1?(n=r.trim(),o=null):(n=r.substring(0,e).trim(),o=r.substring(e+1).trim());let i=k[n];if(!i)return st(`Unknown filter: ${n}`),t;let s=o?xe(o):[];return i(t,...s)}function xe(t){let r=[],e="",n=!1,o="";for(let i of t){if(n){if(i===o){n=!1;continue}e+=i;continue}if(i==="'"||i==='"'){n=!0,o=i;continue}if(i===","){r.push(e.trim()),e="";continue}e+=i}return e.trim()&&r.push(e.trim()),r.map(i=>{let s=Number(i);return isNaN(s)?i:s})}function L(t,r){if(!(t==null||t===""))try{let e=ve(t),n=e[0],{keys:o,vals:i}=Kt(r),s=["$store","$route","$router","$i18n","$refs","$form"];for(let d of s)o.includes(d)||(o.push(d),i[d]=r[d]);let a=o,c=a.map(d=>i[d]),l;if(h.csp==="strict")l=mt(n,a,c);else{let d=n+"|"+a.join(","),f=Zt.get(d);f||(f=new Function(...a,`return (${n})`),Zt.set(d,f)),l=f(...c)}for(let d=1;d<e.length;d++)l=Ee(l,e[d]);return l}catch{return}}function Z(t,r,e={}){try{let{keys:n,vals:o}=Kt(r),i={$store:V,$route:et?.current,$router:et,$i18n:W,$refs:r.$refs};Object.assign(i,e);for(let[u,m]of Object.entries(i))n.includes(u)||(n.push(u),o[u]=m);let s=[...n],a=s.map(u=>o[u]),c=new Set,l=r;for(;l&&l.__isProxy;){for(let u of Object.keys(l.__raw))c.add(u);l=l.$parent}let d={};for(let u of c)!u.startsWith("$")&&u in o&&(d[u]=o[u]);let f=[...c].filter(u=>!u.startsWith("$")).map(u=>`{let _c=__ctx;while(_c&&_c.__isProxy){if('${u}'in _c.__raw){if(typeof ${u}!=='undefined'){if(${u}!==__orig['${u}'])_c.$set('${u}',${u});else if(typeof ${u}==='object'&&${u}!==null)_c.$notify();}break;}_c=_c.$parent;}}`).join(`
8
8
  `);new Function("__ctx","__orig",...s,`${t};
9
- ${f}`)(r,d,...a),typeof t=="string"&&t.includes("$store")&&wt()}catch(n){st("Expression error:",t,n.message),e.$el&&e.$el.dispatchEvent(new CustomEvent("nojs:error",{bubbles:!0,detail:{message:n.message,error:n}}))}}function nt(t,r){return t.split(".").reduce((e,n)=>e?.[n],r)}function gt(t,r){return t.replace(/\{([^}]+)\}/g,(e,n)=>{let o=L(n.trim(),r);return o??""})}X();X();function Kt(t,r){if(t.startsWith("http://")||t.startsWith("https://")||t.startsWith("//"))return t;let e=r;for(;e;){let n=e.getAttribute?.("base");if(n)return n.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,"");e=e.parentElement}return h.baseApiUrl?h.baseApiUrl.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):t}async function Nt(t,r="GET",e=null,n={},o=null,i=null){let s=Kt(t,o),a={method:r.toUpperCase(),headers:{...h.headers||{},...n},credentials:h.credentials};if(e&&r!=="GET")if(typeof e=="string")try{JSON.parse(e),a.headers["Content-Type"]="application/json",a.body=e}catch{a.body=e}else e instanceof FormData?a.body=e:(a.headers["Content-Type"]="application/json",a.body=JSON.stringify(e));h.csrf&&r!=="GET"&&(a.headers[h.csrf.header||"X-CSRF-Token"]=h.csrf.token||"");for(let d of At.request)a=d(s,a)||a;let c=h.retries||0,l;for(let d=0;d<=c;d++)try{let f=new AbortController,p=setTimeout(()=>f.abort(),h.timeout||1e4);if(i){if(i.aborted)throw clearTimeout(p),new DOMException("Aborted","AbortError");i.addEventListener("abort",()=>f.abort(),{once:!0})}a.signal=f.signal;let u=await fetch(s,a);clearTimeout(p);for(let b of At.response)u=b(u,s)||u;if(!u.ok){let b=await u.json().catch(()=>({})),x=new Error(b.message||`HTTP ${u.status}`);throw x.status=u.status,x.body=b,x}let m=await u.text();try{return JSON.parse(m)}catch{return m}}catch(f){if(f.name==="AbortError")throw f;l=f,d<c&&await new Promise(p=>setTimeout(p,h.retryDelay||1e3))}throw l}function Zt(t,r){if(r==="none")return null;if(r==="memory"){let n=Ht.get(t);return n&&Date.now()-n.time<(h.cache.ttl||3e5)?n.data:null}let e=r==="local"?localStorage:r==="session"?sessionStorage:null;if(!e)return null;try{let n=e.getItem("nojs_cache_"+t);if(!n)return null;let o=JSON.parse(n);if(Date.now()-o.time<(h.cache.ttl||3e5))return o.data;e.removeItem("nojs_cache_"+t)}catch{}return null}function te(t,r,e){if(e==="none")return;let n={data:r,time:Date.now()};if(e==="memory"){Ht.set(t,n);return}let o=e==="local"?localStorage:e==="session"?sessionStorage:null;if(o)try{o.setItem("nojs_cache_"+t,JSON.stringify(n))}catch{}}var ht=new Map;function I(t){let r=t;for(;r;){if(r.__ctx)return r.__ctx;r=r.parentElement}return P()}function dt(t){let r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(;r.nextNode();)r.currentNode.__declared=!1}function K(t){if(!t)return null;let r=t.startsWith("#")?t.slice(1):t,e=document.getElementById(r);return e&&e.content?e.content.cloneNode(!0):null}function ee(t){return h.sanitize?t.replace(/<script[\s\S]*?<\/script>/gi,"").replace(/on\w+\s*=/gi,"data-blocked=").replace(/javascript:/gi,""):t}function Jt(t,r){if(t.startsWith("./")){let e=r.parentNode;for(;e;){if(e.__srcBase)return e.__srcBase+t.slice(2);e=e.parentNode}return t.slice(2)}return Kt(t,r)}async function re(t){let r=t||document,e=r.querySelectorAll("template[src]");if(z("[LRT] called on",r===document?"document":r.nodeName||"fragment","\u2014 found",e.length,"template[src]",[...e].map(o=>o.getAttribute("src"))),!e.length)return;let n=[...e].map(async o=>{if(o.__srcLoaded){z("[LRT] SKIP (already loaded):",o.getAttribute("src"));return}o.__srcLoaded=!0;let i=o.getAttribute("src"),s=Jt(i,o),a=s.substring(0,s.lastIndexOf("/")+1);try{let c=h.templates.cache!==!1,l;if(c&&ht.has(s)?(l=ht.get(s),z("[LRT] CACHE HIT:",s)):(l=await(await fetch(s)).text(),c&&ht.set(s,l)),o.innerHTML=l,o.content&&(o.content.__srcBase=a),z("Loaded remote template:",i,"\u2192",s),await re(o.content||o),!o.hasAttribute("route")&&o.parentNode){let f=[...o.content.childNodes],p=o.parentNode,u=o.nextSibling;p.removeChild(o);for(let m of f)m.nodeType===1&&(m.__srcBase=m.__srcBase||a),p.insertBefore(m,u)}}catch(c){st("Failed to load template:",i,c.message)}});await Promise.all(n)}async function bt(t){let r=t.getAttribute("src");if(t.__srcLoaded){z("[LTE] SKIP (already loaded):",r);return}z("[LTE] START fetch:",r,"| route:",t.hasAttribute("route"),"| inDOM:",document.contains(t),"| loading:",t.getAttribute("loading")),t.__srcLoaded=!0;let e=Jt(r,t),n=e.substring(0,e.lastIndexOf("/")+1),o=null,i=t.getAttribute("loading");if(i&&t.parentNode){let s=i.startsWith("#")?i.slice(1):i,a=document.getElementById(s);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 s=h.templates.cache!==!1,a;if(s&&ht.has(e)?(a=ht.get(e),z("[LTE] CACHE HIT:",e)):(a=await(await fetch(e)).text(),s&&ht.set(e,a)),t.innerHTML=a,t.content&&(t.content.__srcBase=n),z("Loaded remote template:",r,"\u2192",e),!t.hasAttribute("route"))await re(t.content||t);else if(s&&t.content){let l=[...t.content.querySelectorAll("template[src]")].map(d=>{let f=d.getAttribute("src"),p=Jt(f,d);if(!ht.has(p))return fetch(p).then(u=>u.text()).then(u=>{ht.set(p,u)}).catch(()=>{})});Promise.all(l)}if(o&&o.remove(),!t.hasAttribute("route")&&t.parentNode){let l=[...t.content.childNodes],d=t.parentNode,f=t.nextSibling;d.removeChild(t);for(let p of l)p.nodeType===1&&(p.__srcBase=p.__srcBase||n),d.insertBefore(p,f)}}catch(s){o&&o.remove(),st("Failed to load template:",r,s.message)}}function kt(t){(t||document).querySelectorAll("template[include]").forEach(e=>{let n=e.getAttribute("include"),o=document.getElementById(n.startsWith("#")?n.slice(1):n);!o||!o.content||e.replaceWith(o.content.cloneNode(!0))})}async function ne(t){let r=[...document.querySelectorAll("template[src]")],e=r.filter(o=>!o.__srcLoaded&&o.getAttribute("lazy")==="priority");await Promise.all(e.map(bt));let n=r.filter(o=>{if(o.__srcLoaded)return!1;let i=o.getAttribute("lazy");return i==="ondemand"||i==="priority"?!1:o.hasAttribute("route")?t!=null&&o.getAttribute("route")===t:!0});await Promise.all(n.map(bt))}function oe(){let r=[...document.querySelectorAll("template[src]")].filter(e=>e.__srcLoaded||e.getAttribute("lazy")==="ondemand"?!1:e.hasAttribute("route"));return Promise.all(r.map(bt))}X();pt();var It=new Map;function $(t,r){It.set(t,{priority:r.priority??50,init:r.init})}function Ae(t){if(It.has(t))return{directive:It.get(t),match:t};let r=["class-*","on:*","style-*","bind-*"];for(let e of r){let n=e.replace("*","");if(t.startsWith(n)&&It.has(e))return{directive:It.get(e),match:e}}return null}function ie(t){if(t.__declared)return;t.__declared=!0;let r=[];for(let n of[...t.attributes]){let o=Ae(n.name);o&&r.push({name:n.name,value:n.value,priority:o.directive.priority,init:o.directive.init})}r.sort((n,o)=>n.priority-o.priority);let e=ct;for(let n of r)Pt(t),n.init(t,n.name,n.value);Pt(e)}function M(t){if(!t)return;t.nodeType===1&&!t.__declared&&ie(t);let r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(;r.nextNode();){let e=r.currentNode;e.tagName==="TEMPLATE"||e.tagName==="SCRIPT"||e.__declared||ie(e)}}function se(t){if(t.__ctx&&t.__ctx.__listeners){for(let r of t.__ctx.__listeners)Ct.delete(r),vt.delete(r);t.__ctx.__listeners.clear()}t.__disposers&&(t.__disposers.forEach(r=>r()),t.__disposers=null),t.__declared=!1}function ae(t){if(!t)return;se(t);let r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(;r.nextNode();)se(r.currentNode)}X();var ce=!1;function le(){if(ce||typeof document>"u")return;ce=!0;let t=`
9
+ ${f}`)(r,d,...a),typeof t=="string"&&t.includes("$store")&&wt()}catch(n){st("Expression error:",t,n.message),e.$el&&e.$el.dispatchEvent(new CustomEvent("nojs:error",{bubbles:!0,detail:{message:n.message,error:n}}))}}function nt(t,r){return t.split(".").reduce((e,n)=>e?.[n],r)}function gt(t,r){return t.replace(/\{([^}]+)\}/g,(e,n)=>{let o=L(n.trim(),r);return o??""})}X();X();function Jt(t,r){if(t.startsWith("http://")||t.startsWith("https://")||t.startsWith("//"))return t;let e=r;for(;e;){let n=e.getAttribute?.("base");if(n)return n.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,"");e=e.parentElement}return h.baseApiUrl?h.baseApiUrl.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):t}async function Nt(t,r="GET",e=null,n={},o=null,i=null){let s=Jt(t,o),a={method:r.toUpperCase(),headers:{...h.headers||{},...n},credentials:h.credentials};if(e&&r!=="GET")if(typeof e=="string")try{JSON.parse(e),a.headers["Content-Type"]="application/json",a.body=e}catch{a.body=e}else e instanceof FormData?a.body=e:(a.headers["Content-Type"]="application/json",a.body=JSON.stringify(e));h.csrf&&r!=="GET"&&(a.headers[h.csrf.header||"X-CSRF-Token"]=h.csrf.token||"");for(let d of At.request)a=d(s,a)||a;let c=h.retries||0,l;for(let d=0;d<=c;d++)try{let f=new AbortController,p=setTimeout(()=>f.abort(),h.timeout||1e4);if(i){if(i.aborted)throw clearTimeout(p),new DOMException("Aborted","AbortError");i.addEventListener("abort",()=>f.abort(),{once:!0})}a.signal=f.signal;let u=await fetch(s,a);clearTimeout(p);for(let b of At.response)u=b(u,s)||u;if(!u.ok){let b=await u.json().catch(()=>({})),x=new Error(b.message||`HTTP ${u.status}`);throw x.status=u.status,x.body=b,x}let m=await u.text();try{return JSON.parse(m)}catch{return m}}catch(f){if(f.name==="AbortError")throw f;l=f,d<c&&await new Promise(p=>setTimeout(p,h.retryDelay||1e3))}throw l}function te(t,r){if(r==="none")return null;if(r==="memory"){let n=Pt.get(t);return n&&Date.now()-n.time<(h.cache.ttl||3e5)?n.data:null}let e=r==="local"?localStorage:r==="session"?sessionStorage:null;if(!e)return null;try{let n=e.getItem("nojs_cache_"+t);if(!n)return null;let o=JSON.parse(n);if(Date.now()-o.time<(h.cache.ttl||3e5))return o.data;e.removeItem("nojs_cache_"+t)}catch{}return null}function ee(t,r,e){if(e==="none")return;let n={data:r,time:Date.now()};if(e==="memory"){Pt.set(t,n);return}let o=e==="local"?localStorage:e==="session"?sessionStorage:null;if(o)try{o.setItem("nojs_cache_"+t,JSON.stringify(n))}catch{}}var ht=new Map;function I(t){let r=t;for(;r;){if(r.__ctx)return r.__ctx;r=r.parentElement}return P()}function dt(t){let r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(;r.nextNode();)r.currentNode.__declared=!1}function K(t){if(!t)return null;let r=t.startsWith("#")?t.slice(1):t,e=document.getElementById(r);return e&&e.content?e.content.cloneNode(!0):null}function re(t){return h.sanitize?t.replace(/<script[\s\S]*?<\/script>/gi,"").replace(/on\w+\s*=/gi,"data-blocked=").replace(/javascript:/gi,""):t}function Xt(t,r){if(t.startsWith("./")){let e=r.parentNode;for(;e;){if(e.__srcBase)return e.__srcBase+t.slice(2);e=e.parentNode}return t.slice(2)}return Jt(t,r)}async function ne(t){let r=t||document,e=r.querySelectorAll("template[src]");if(z("[LRT] called on",r===document?"document":r.nodeName||"fragment","\u2014 found",e.length,"template[src]",[...e].map(o=>o.getAttribute("src"))),!e.length)return;let n=[...e].map(async o=>{if(o.__srcLoaded){z("[LRT] SKIP (already loaded):",o.getAttribute("src"));return}o.__srcLoaded=!0;let i=o.getAttribute("src"),s=Xt(i,o),a=s.substring(0,s.lastIndexOf("/")+1);try{let c=h.templates.cache!==!1,l;if(c&&ht.has(s)?(l=ht.get(s),z("[LRT] CACHE HIT:",s)):(l=await(await fetch(s)).text(),c&&ht.set(s,l)),o.innerHTML=l,o.content&&(o.content.__srcBase=a),z("Loaded remote template:",i,"\u2192",s),await ne(o.content||o),!o.hasAttribute("route")&&o.parentNode){let f=[...o.content.childNodes],p=o.parentNode,u=o.nextSibling;p.removeChild(o);for(let m of f)m.nodeType===1&&(m.__srcBase=m.__srcBase||a),p.insertBefore(m,u)}}catch(c){st("Failed to load template:",i,c.message)}});await Promise.all(n)}async function bt(t){let r=t.getAttribute("src");if(t.__srcLoaded){z("[LTE] SKIP (already loaded):",r);return}z("[LTE] START fetch:",r,"| route:",t.hasAttribute("route"),"| inDOM:",document.contains(t),"| loading:",t.getAttribute("loading")),t.__srcLoaded=!0;let e=Xt(r,t),n=e.substring(0,e.lastIndexOf("/")+1),o=null,i=t.getAttribute("loading");if(i&&t.parentNode){let s=i.startsWith("#")?i.slice(1):i,a=document.getElementById(s);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 s=h.templates.cache!==!1,a;if(s&&ht.has(e)?(a=ht.get(e),z("[LTE] CACHE HIT:",e)):(a=await(await fetch(e)).text(),s&&ht.set(e,a)),t.innerHTML=a,t.content&&(t.content.__srcBase=n),z("Loaded remote template:",r,"\u2192",e),!t.hasAttribute("route"))await ne(t.content||t);else if(s&&t.content){let l=[...t.content.querySelectorAll("template[src]")].map(d=>{let f=d.getAttribute("src"),p=Xt(f,d);if(!ht.has(p))return fetch(p).then(u=>u.text()).then(u=>{ht.set(p,u)}).catch(()=>{})});Promise.all(l)}if(o&&o.remove(),!t.hasAttribute("route")&&t.parentNode){let l=[...t.content.childNodes],d=t.parentNode,f=t.nextSibling;d.removeChild(t);for(let p of l)p.nodeType===1&&(p.__srcBase=p.__srcBase||n),d.insertBefore(p,f)}}catch(s){o&&o.remove(),st("Failed to load template:",r,s.message)}}function kt(t){(t||document).querySelectorAll("template[include]").forEach(e=>{let n=e.getAttribute("include"),o=document.getElementById(n.startsWith("#")?n.slice(1):n);!o||!o.content||e.replaceWith(o.content.cloneNode(!0))})}async function oe(t){let r=[...document.querySelectorAll("template[src]")],e=r.filter(o=>!o.__srcLoaded&&o.getAttribute("lazy")==="priority");await Promise.all(e.map(bt));let n=r.filter(o=>{if(o.__srcLoaded)return!1;let i=o.getAttribute("lazy");return i==="ondemand"||i==="priority"?!1:o.hasAttribute("route")?t!=null&&o.getAttribute("route")===t:!0});await Promise.all(n.map(bt))}function ie(){let r=[...document.querySelectorAll("template[src]")].filter(e=>e.__srcLoaded||e.getAttribute("lazy")==="ondemand"?!1:e.hasAttribute("route"));return Promise.all(r.map(bt))}X();pt();var It=new Map;function $(t,r){It.set(t,{priority:r.priority??50,init:r.init})}function Ae(t){if(It.has(t))return{directive:It.get(t),match:t};let r=["class-*","on:*","style-*","bind-*"];for(let e of r){let n=e.replace("*","");if(t.startsWith(n)&&It.has(e))return{directive:It.get(e),match:e}}return null}function se(t){if(t.__declared)return;t.__declared=!0;let r=[];for(let n of[...t.attributes]){let o=Ae(n.name);o&&r.push({name:n.name,value:n.value,priority:o.directive.priority,init:o.directive.init})}r.sort((n,o)=>n.priority-o.priority);let e=ct;for(let n of r)Rt(t),n.init(t,n.name,n.value);Rt(e)}function M(t){if(!t)return;t.nodeType===1&&!t.__declared&&se(t);let r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(;r.nextNode();){let e=r.currentNode;e.tagName==="TEMPLATE"||e.tagName==="SCRIPT"||e.__declared||se(e)}}function ae(t){if(t.__ctx&&t.__ctx.__listeners){for(let r of t.__ctx.__listeners)Ct.delete(r),vt.delete(r);t.__ctx.__listeners.clear()}t.__disposers&&(t.__disposers.forEach(r=>r()),t.__disposers=null),t.__declared=!1}function ce(t){if(!t)return;ae(t);let r=document.createTreeWalker(t,NodeFilter.SHOW_ELEMENT);for(;r.nextNode();)ae(r.currentNode)}X();var le=!1;function de(){if(le||typeof document>"u")return;le=!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,7 +21,7 @@ ${f}`)(r,d,...a),typeof t=="string"&&t.includes("$store")&&wt()}catch(n){st("Exp
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(),r=document.createElement("style");r.setAttribute("data-nojs-animations",""),r.textContent=t,document.head.appendChild(r)}function Lt(t,r,e,n){le();let o=n||1e3;if(r){let i=t.firstElementChild||t;i.classList.add(r),n&&(i.style.animationDuration=n+"ms"),i.addEventListener("animationend",()=>i.classList.remove(r),{once:!0})}if(e){let i=t.firstElementChild||t;i.classList.add(e+"-enter",e+"-enter-active"),requestAnimationFrame(()=>{i.classList.remove(e+"-enter"),i.classList.add(e+"-enter-to");let s=()=>{i.classList.remove(e+"-enter-active",e+"-enter-to")};i.addEventListener("transitionend",s,{once:!0}),setTimeout(s,o)})}}function Bt(t,r,e,n,o){le();let i=o||2e3;if(!t.firstElementChild&&!t.childNodes.length){n();return}if(r){let s=t.firstElementChild||t;s.classList.add(r),o&&(s.style.animationDuration=o+"ms");let a=!1,c=()=>{a||(a=!0,s.classList.remove(r),n())};s.addEventListener("animationend",c,{once:!0}),setTimeout(c,i);return}if(e){let s=t.firstElementChild||t;s.classList.add(e+"-leave",e+"-leave-active"),requestAnimationFrame(()=>{s.classList.remove(e+"-leave"),s.classList.add(e+"-leave-to");let a=!1,c=()=>{a||(a=!0,s.classList.remove(e+"-leave-active",e+"-leave-to"),n())};s.addEventListener("transitionend",c,{once:!0}),setTimeout(c,i)});return}n()}function de(){let t=[],r={path:"",params:{},query:{},hash:""},e=new Set,n=new Map;function o(p){let u=t.find(m=>m.path===p);return u||(u={path:p,outlets:{}},t.push(u)),u}function i(p){let u={};return new URLSearchParams(p).forEach((m,b)=>{u[b]=m}),u}function s(p){for(let u of t){let m=[],b=u.path.replace(/:(\w+)/g,(y,E)=>(m.push(E),"([^/]+)")),x=new RegExp("^"+b+"$"),w=p.match(x);if(w){let y={};return m.forEach((E,_)=>{y[E]=w[_+1]}),{route:u,params:y}}}return null}async function a(p,u=!1){let m=p.indexOf("#"),b=m>=0?p.slice(m+1):"",x=m>=0?p.slice(0,m):p,[w,y=""]=x.split("?");r={path:w,params:{},query:i(y),hash:b?"#"+b:""};let E=s(w);if(E){r.params=E.params;let _=E.route.outlets?.default,C=_?.getAttribute("guard"),A=_?.getAttribute("redirect");if(C){let v=P({},null);if(v.__raw.$store=V,v.__raw.$route=r,!L(C,v)&&A){await a(A,!0);return}}}if(h.router.mode==="hash"){let _="#"+p;u?window.location.replace(_):window.location.hash=p}else{let _=h.router.base.replace(/\/$/,"")+p;u?window.history.replaceState({},"",_):window.history.pushState({},"",_)}if(await c(E),e.forEach(_=>_(r)),r.hash){let _=r.hash.slice(1);requestAnimationFrame(()=>{let C=document.getElementById(_);C&&C.scrollIntoView({behavior:"smooth"})})}}async function c(p){let u=document.querySelectorAll("[route-view]");for(let b of u){let x=b.getAttribute("route-view"),w=x&&x.trim()!==""?x.trim():"default",y=p?.route?.outlets?.[w],E=h.router.templates||"";if(!y&&(b.hasAttribute("src")||E)){let C=(b.getAttribute("src")||E).replace(/\/?$/,"/"),A=b.getAttribute("ext")||h.router.ext||".html",v=b.getAttribute("route-index")||"index",j=r.path==="/"?v:r.path.replace(/^\//,""),S=C+j+A,D=w+":"+S;n.has(D)?y=n.get(D):(y=document.createElement("template"),y.setAttribute("src",S),y.setAttribute("route",r.path),document.body.appendChild(y),n.set(D,y),z("[ROUTER] File-based route:",r.path,"\u2192",S)),b.hasAttribute("i18n-ns")&&!y.getAttribute("i18n-ns")&&y.setAttribute("i18n-ns",j)}if(ae(b),b.innerHTML="",y){y.getAttribute("src")&&!y.__srcLoaded&&(z("Loading route template on demand:",y.getAttribute("src")),await bt(y));let _=y.getAttribute("i18n-ns");if(_){let{_loadI18nNamespace:D}=await Promise.resolve().then(()=>(pt(),Gt));await D(_)}let C=y.content.cloneNode(!0),A=P({$route:r},I(b)),v=document.createElement("div");v.style.display="contents",v.__ctx=A,y.content.__srcBase&&(v.__srcBase=y.content.__srcBase),v.appendChild(C),b.appendChild(v),kt(v);let j=[...v.querySelectorAll("template[src]")];z("[ROUTER] nested templates found in wrapper:",j.length,j.map(D=>D.getAttribute("src")+(D.__srcLoaded?"[LOADED]":"[NEW]"))),await Promise.all(j.map(bt)),z("[ROUTER] all nested loads done for route:",r.path);let S=b.getAttribute("transition");S&&Lt(v,null,S),dt(v),M(v)}}document.querySelectorAll("[route]").forEach(b=>{let x=b.getAttribute("route"),w=b.getAttribute("route-active")||"active",y=b.getAttribute("route-active-exact");if(y)b.classList.toggle(y,r.path===x);else if(w&&!b.hasAttribute("route-active-exact")){let E=x==="/"?r.path==="/":r.path.startsWith(x);b.classList.toggle(w,E)}});let m=h.router.scrollBehavior;m==="top"?window.scrollTo(0,0):m==="smooth"&&window.scrollTo({top:0,behavior:"smooth"})}function l(p,u){u.scrollIntoView({behavior:"smooth"});let m='a[href="#'+p+'"]';document.querySelectorAll('a[href^="#"]').forEach(b=>{b.hasAttribute("route")||b.classList.toggle("active",b.matches(m))})}function d(){let p=document.querySelectorAll("[route-view]");for(let u of p){let m=u.getAttribute("src")||h.router.templates||"";if(!m)continue;let b=m.replace(/\/?$/,"/"),x=u.getAttribute("ext")||h.router.ext||".html",w=u.getAttribute("route-index")||"index",y=(u.getAttribute("route-view")||"").trim()||"default",E=new Map;document.querySelectorAll("[route]:not([route-view])").forEach(A=>{let v=A.getAttribute("route");if(!v)return;let j=v.split("?")[0].split("#")[0],S=A.getAttribute("lazy"),D=E.get(j);(!E.has(j)||S==="priority"||D==="ondemand"&&S!=="ondemand")&&E.set(j,S)});let _=[],C=[];for(let[A,v]of E){if(v==="ondemand"||A===r.path)continue;let j=A==="/"?w:A.replace(/^\//,""),S=b+j+x,D=y+":"+S;if(n.has(D))continue;let J=document.createElement("template");J.setAttribute("src",S),J.setAttribute("route",A),document.body.appendChild(J),n.set(D,J),z("[ROUTER] Prefetch:",A,"\u2192",S,v==="priority"?"(priority)":"(background)"),u.hasAttribute("i18n-ns")&&J.setAttribute("i18n-ns",j),v==="priority"?_.push(J):C.push(J)}(_.length||C.length)&&Promise.all(_.map(bt)).then(()=>{C.forEach(bt)})}}return{get current(){return r},push(p){return a(p)},replace(p){return a(p,!0)},back(){window.history.back()},forward(){window.history.forward()},on(p){return e.add(p),()=>e.delete(p)},register(p,u,m="default"){let b=o(p);b.outlets[m]=u},async init(){if(document.querySelectorAll("template[route]").forEach(p=>{let u=p.getAttribute("route"),m=p.getAttribute("outlet")||"default",b=o(u);b.outlets[m]=p}),document.addEventListener("click",p=>{let u=p.target.closest("[route]");if(u&&!u.hasAttribute("route-view")){p.preventDefault();let m=u.getAttribute("route");a(m);return}if(h.router.mode==="hash"){let m=p.target.closest('a[href^="#"]');if(m&&!m.hasAttribute("route")){let x=m.getAttribute("href").slice(1);if(x&&!x.startsWith("/")){let w=document.getElementById(x);w&&(p.preventDefault(),l(x,w))}}}}),h.router.mode==="hash"){window.addEventListener("hashchange",()=>{let u=window.location.hash.slice(1)||"/";if(!u.startsWith("/")){let b=document.getElementById(u);b&&(l(u,b),window.history.replaceState(null,"","#"+r.path));return}let[m]=u.split("?");m!==r.path&&a(u,!0)});let p=window.location.hash.slice(1)||"/";await a(p,!0)}else{window.addEventListener("popstate",()=>{let u=window.location.pathname.replace(h.router.base,"")||"/";a(u,!0)});let p=window.location.pathname.replace(h.router.base,"")||"/";await a(p,!0)}d()}}}X();k.uppercase=t=>String(t??"").toUpperCase();k.lowercase=t=>String(t??"").toLowerCase();k.capitalize=t=>String(t??"").replace(/\b\w/g,r=>r.toUpperCase());k.truncate=(t,r=100)=>{let e=String(t??"");return e.length>r?e.slice(0,r)+"...":e};k.trim=t=>String(t??"").trim();k.stripHtml=t=>String(t??"").replace(/<[^>]*>/g,"");k.slugify=t=>String(t??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");k.nl2br=t=>String(t??"").replace(/\n/g,"<br>");k.encodeUri=t=>encodeURIComponent(String(t??""));k.number=(t,r=0)=>{let e=Number(t);return isNaN(e)?t:e.toLocaleString(void 0,{minimumFractionDigits:r,maximumFractionDigits:r})};k.currency=(t,r="USD")=>{let e=Number(t);if(isNaN(e))return t;try{return e.toLocaleString(void 0,{style:"currency",currency:r})}catch{return`${r} ${e.toFixed(2)}`}};k.percent=(t,r=0)=>{let e=Number(t);return isNaN(e)?t:(e*100).toFixed(r)+"%"};k.filesize=t=>{let r=Number(t);if(isNaN(r))return t;let e=["B","KB","MB","GB","TB"],n=0,o=r;for(;o>=1024&&n<e.length-1;)o/=1024,n++;return o.toFixed(n>0?1:0)+" "+e[n]};k.ordinal=t=>{let r=Number(t);if(isNaN(r))return t;let e=["th","st","nd","rd"],n=r%100;return r+(e[(n-20)%10]||e[n]||e[0])};k.count=t=>Array.isArray(t)?t.length:0;k.first=t=>Array.isArray(t)?t[0]:t;k.last=t=>Array.isArray(t)?t[t.length-1]:t;k.join=(t,r=", ")=>Array.isArray(t)?t.join(r):t;k.reverse=t=>Array.isArray(t)?[...t].reverse():t;k.unique=t=>Array.isArray(t)?[...new Set(t)]:t;k.pluck=(t,r)=>Array.isArray(t)?t.map(e=>e?.[r]):t;k.sortBy=(t,r)=>{if(!Array.isArray(t))return t;let e=r?.startsWith("-"),n=e?r.slice(1):r;return[...t].sort((o,i)=>{let s=o?.[n],a=i?.[n],c=s<a?-1:s>a?1:0;return e?-c:c})};k.where=(t,r,e)=>Array.isArray(t)?t.filter(n=>n?.[r]===e):t;k.date=(t,r="short")=>{let e=new Date(t);if(isNaN(e))return t;let n=r==="long"?{dateStyle:"long"}:r==="full"?{dateStyle:"full"}:{dateStyle:"short"};return e.toLocaleDateString(void 0,n)};k.datetime=t=>{let r=new Date(t);return isNaN(r)?t:r.toLocaleString()};k.relative=t=>{let r=new Date(t);if(isNaN(r))return t;let e=(Date.now()-r.getTime())/1e3;return e<60?"just now":e<3600?Math.floor(e/60)+"m ago":e<86400?Math.floor(e/3600)+"h ago":e<2592e3?Math.floor(e/86400)+"d ago":r.toLocaleDateString()};k.fromNow=t=>{let r=new Date(t);if(isNaN(r))return t;let e=(r.getTime()-Date.now())/1e3;return e<0?k.relative(t):e<60?"in a moment":e<3600?"in "+Math.floor(e/60)+"m":e<86400?"in "+Math.floor(e/3600)+"h":"in "+Math.floor(e/86400)+"d"};k.default=(t,r="")=>t==null||t===""?r:t;k.json=(t,r=2)=>JSON.stringify(t,null,r);k.debug=t=>(console.log("[No.JS debug]",t),t);k.keys=t=>t&&typeof t=="object"?Object.keys(t):[];k.values=t=>t&&typeof t=="object"?Object.values(t):[];X();$("state",{priority:0,init(t,r,e){let n=L(e,P())||{},o=t.parentElement?I(t.parentElement):null,i=P(n,o);t.__ctx=i;let s=t.getAttribute("persist"),a=t.getAttribute("persist-key");if(s&&a){let c=s==="localStorage"?localStorage:s==="sessionStorage"?sessionStorage:null;if(c){try{let l=c.getItem("nojs_state_"+a);if(l){let d=JSON.parse(l);for(let[f,p]of Object.entries(d))i.$set(f,p)}}catch{}i.$watch(()=>{try{c.setItem("nojs_state_"+a,JSON.stringify(i.__raw))}catch{}})}}z("state",n)}});$("store",{priority:0,init(t,r,e){let n=t.getAttribute("value");if(e){if(!V[e]){let o=n?L(n,P())||{}:{};V[e]=P(o)}z("store",e)}}});$("computed",{priority:2,init(t,r,e){let n=t.getAttribute("expr");if(!e||!n)return;let o=I(t);function i(){let s=L(n,o);o.$set(e,s)}W(n,o,i),i()}});$("watch",{priority:2,init(t,r,e){let n=I(t),o=t.getAttribute("on:change"),i=L(e,n);W(e,n,()=>{let s=L(e,n);if(s!==i){let a=i;i=s,o&&Z(o,n,{$old:a,$new:s})}})}});X();var we=["get","post","put","patch","delete"];for(let t of we)$(t,{priority:1,init(r,e,n){let o=r.getAttribute("as")||"data",i=r.getAttribute("loading"),s=r.getAttribute("error"),a=r.getAttribute("empty"),c=r.getAttribute("success"),l=r.getAttribute("then"),d=r.getAttribute("redirect"),f=r.getAttribute("confirm"),p=parseInt(r.getAttribute("refresh"))||0,u=r.getAttribute("cached"),m=r.hasAttribute("cached")?u||"memory":"none",b=r.getAttribute("body"),x=r.getAttribute("headers"),w=r.getAttribute("var"),y=r.getAttribute("into"),E=parseInt(r.getAttribute("retry"))||h.retries,_=parseInt(r.getAttribute("retry-delay"))||h.retryDelay||1e3,C=r.getAttribute("params"),A=r.parentElement?I(r.parentElement):P(),v=r.__ctx||P({},A);r.__ctx=v;let j=[...r.childNodes].map(R=>R.cloneNode(!0)),S=null;async function D(){if(S&&S.abort(),S=new AbortController,f&&!window.confirm(f))return;let R=gt(n,v);if(C){let U=L(C,v);if(U&&typeof U=="object"){let B=R.includes("?")?"&":"?",O=new URLSearchParams(U).toString();O&&(R+=B+O)}}let lt=t+":"+R;if(t==="get"){let U=Zt(lt,m);if(U!=null){v.$set(o,U),dt(r),M(r);return}}if(i){let U=K(i);U&&(r.innerHTML="",r.appendChild(U),M(r))}try{let U=null;if(b){let T=gt(b,v);try{U=JSON.parse(T)}catch{U=T}}if(r.tagName==="FORM"){let T=new FormData(r);U=Object.fromEntries(T.entries())}let B=x?JSON.parse(x):{},O=h.retries,F=h.retryDelay;h.retries=E,h.retryDelay=_;let N;try{N=await Nt(R,t,U,B,r,S.signal)}finally{h.retries=O,h.retryDelay=F}if(t==="get"&&te(lt,N,m),a&&(N==null||Array.isArray(N)&&N.length===0)){let T=K(a);T&&(r.innerHTML="",r.appendChild(T),M(r));return}if(v.$set(o,N),y&&(V[y]||(V[y]=P({})),V[y].$set(o,N),wt()),c){let T=K(c);if(T){r.innerHTML="";let ut=document.getElementById(c.replace("#",""))?.getAttribute("var")||w||"result",ot=P({[ut]:N},v),G=document.createElement("div");G.style.display="contents",G.__ctx=ot,G.appendChild(T),r.appendChild(G),M(G)}}else{r.innerHTML="";for(let T of j)r.appendChild(T.cloneNode(!0));dt(r),M(r)}l&&Z(l,v,{result:N}),d&&et&&et.push(d),Dt("fetch:success",{url:R,data:N})}catch(U){if(U.name==="AbortError")return;if(st(`${t.toUpperCase()} ${R} failed:`,U.message),Dt("fetch:error",{url:R,error:U}),Dt("error",{url:R,error:U}),s){let B=K(s);if(B){r.innerHTML="";let F=document.getElementById(s.replace("#",""))?.getAttribute("var")||"err",N=P({[F]:{message:U.message,status:U.status,body:U.body}},v),T=document.createElement("div");T.style.display="contents",T.__ctx=N,T.appendChild(B),r.appendChild(T),M(T)}}}}if(r.tagName==="FORM"&&t!=="get"?r.addEventListener("submit",R=>{R.preventDefault(),D()}):t==="get"?D():r.addEventListener("click",R=>{R.preventDefault(),D()}),/\{[^}]+\}/.test(n)){let B=function(){let F=gt(n,v);F!==lt&&(lt=F,U&&clearTimeout(U),R>0?U=setTimeout(D,R):D())},R=parseInt(r.getAttribute("debounce"))||0,lt=gt(n,v),U=null,O=A;for(;O&&O.__isProxy;)O.$watch(B),O=O.$parent}if(p>0){let R=setInterval(D,p);Q(()=>clearInterval(R))}}});X();$("bind",{priority:20,init(t,r,e){let n=I(t);function o(){let i=L(e,n);t.textContent=i!=null?String(i):""}W(e,n,o),o()}});$("bind-html",{priority:20,init(t,r,e){let n=I(t);function o(){let i=L(e,n);i!=null&&(t.innerHTML=ee(String(i)))}W(e,n,o),o()}});$("bind-*",{priority:20,init(t,r,e){let n=r.replace("bind-",""),o=I(t);n==="value"&&(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.tagName==="SELECT")&&t.addEventListener("input",()=>{let s=t.type==="number"?Number(t.value):t.value;Z(`${e} = ${JSON.stringify(s)}`,o)});function i(){let s=L(e,o);if(["disabled","readonly","checked","selected","hidden","required"].includes(n)){s?t.setAttribute(n,""):t.removeAttribute(n),n in t&&(t[n]=!!s);return}s!=null?t.setAttribute(n,String(s)):t.removeAttribute(n)}W(e,o,i),i()}});$("model",{priority:20,init(t,r,e){let n=I(t),o=t.tagName,i=t.type;function s(){let c=L(e,n);o==="INPUT"&&i==="checkbox"?t.checked=!!c:o==="INPUT"&&i==="radio"?t.checked=t.value===String(c):t.value=c!=null?String(c):""}let a=o==="SELECT"||i==="checkbox"||i==="radio"?"change":"input";t.addEventListener(a,()=>{let c;i==="checkbox"?c=t.checked:i==="number"||i==="range"?c=Number(t.value):c=t.value,Z(`${e} = __val`,n,{__val:c})}),W(e,n,s),s()}});X();$("if",{priority:10,init(t,r,e){let n=I(t),o=t.getAttribute("then"),i=t.getAttribute("else"),s=t.getAttribute("animate-enter")||t.getAttribute("animate"),a=t.getAttribute("animate-leave"),c=t.getAttribute("transition"),l=parseInt(t.getAttribute("animate-duration"))||0,d=[...t.childNodes].map(m=>m.cloneNode(!0)),f;function p(){let m=!!L(e,n);m!==f&&(f=m,a||c?Bt(t,a,c,()=>u(m),l):u(m))}function u(m){if(m)if(o){let b=K(o);b&&(t.innerHTML="",t.appendChild(b))}else{t.innerHTML="";for(let b of d)t.appendChild(b.cloneNode(!0))}else if(i){let b=K(i);b&&(t.innerHTML="",t.appendChild(b))}else t.innerHTML="";dt(t),M(t),(s||c)&&Lt(t,s,c,l)}W(e,n,p),p()}});$("else-if",{priority:10,init(t,r,e){let n=I(t),o=t.getAttribute("then"),i=[...t.childNodes].map(a=>a.cloneNode(!0));function s(){let a=t.previousElementSibling;for(;a;){let l=a.getAttribute("if")||a.getAttribute("else-if");if(l){if(L(l,n)){t.innerHTML="",t.style.display="none";return}}else break;a=a.previousElementSibling}let c=!!L(e,n);if(t.style.display="",c){if(o){let l=K(o);l&&(t.innerHTML="",t.appendChild(l))}else{t.innerHTML="";for(let l of i)t.appendChild(l.cloneNode(!0))}dt(t),M(t)}else t.innerHTML=""}W(e,n,s),s()}});$("else",{priority:10,init(t){if(t.hasAttribute("if"))return;let r=I(t),e=t.getAttribute("then"),n=[...t.childNodes].map(i=>i.cloneNode(!0));function o(){let i=t.previousElementSibling;for(;i;){let s=i.getAttribute("if")||i.getAttribute("else-if");if(s){if(L(s,r)){t.innerHTML="",t.style.display="none";return}}else break;i=i.previousElementSibling}if(t.style.display="",e){let s=K(e);s&&(t.innerHTML="",t.appendChild(s))}else{t.innerHTML="";for(let s of n)t.appendChild(s.cloneNode(!0))}dt(t),M(t)}W("",r,o),o()}});$("show",{priority:20,init(t,r,e){let n=I(t),o=t.getAttribute("animate-enter")||t.getAttribute("animate"),i=t.getAttribute("animate-leave"),s=t.getAttribute("transition"),a=parseInt(t.getAttribute("animate-duration"))||0,c;function l(){let d=!!L(e,n);d!==c&&(c=d,d?(t.style.display="",(o||s)&&Lt(t,o,s,a)):i||s?Bt(t,i,s,()=>{t.style.display="none"},a):t.style.display="none")}W(e,n,l),l()}});$("hide",{priority:20,init(t,r,e){let n=I(t),o=t.getAttribute("animate-enter")||t.getAttribute("animate"),i=t.getAttribute("animate-leave"),s=t.getAttribute("transition"),a=parseInt(t.getAttribute("animate-duration"))||0,c;function l(){let d=!L(e,n);d!==c&&(c=d,d?(t.style.display="",(o||s)&&Lt(t,o,s,a)):i||s?Bt(t,i,s,()=>{t.style.display="none"},a):t.style.display="none")}W(e,n,l),l()}});$("switch",{priority:10,init(t,r,e){let n=I(t);function o(){let i=L(e,n),s=!1;for(let a of[...t.children]){let c=a.getAttribute("case"),l=a.hasAttribute("default"),d=a.getAttribute("then");if(c){let f=c.split(",").map(p=>L(p.trim(),n));if(!s&&f.includes(i)){if(s=!0,a.style.display="",d){let p=K(d);p&&(a.innerHTML="",a.appendChild(p)),a.__declared=!1,M(a)}}else a.style.display="none"}else if(l&&(a.style.display=s?"none":"",!s&&d)){let f=K(d);f&&(a.innerHTML="",a.appendChild(f)),a.__declared=!1,M(a)}}}W(e,n,o),o()}});X();$("each",{priority:10,init(t,r,e){let n=I(t),o=e.match(/^(\w+)\s+in\s+(\S+)$/);if(!o)return;let[,i,s]=o,a=t.getAttribute("template"),c=t.getAttribute("else"),l=t.getAttribute("key"),d=t.getAttribute("animate-enter")||t.getAttribute("animate"),f=t.getAttribute("animate-leave"),p=parseInt(t.getAttribute("animate-stagger"))||0,u=parseInt(t.getAttribute("animate-duration"))||0,m=null;function b(){let w=/[\[\]()\s+\-*\/!?:&|]/.test(s)?L(s,n):nt(s,n);if(!Array.isArray(w))return;if(w===m&&w.length>0&&t.children.length>0){for(let E of t.children)E.__ctx&&E.__ctx.$notify&&E.__ctx.$notify();return}if(m=w,w.length===0&&c){let E=K(c);E&&(t.innerHTML="",t.appendChild(E),M(t));return}let y=a?document.getElementById(a):null;if(y)if(f&&t.children.length>0){let E=[...t.children],_=E.length;E.forEach(C=>{let A=C.firstElementChild||C;A.classList.add(f);let v=()=>{A.classList.remove(f),_--,_<=0&&x(y,w)};A.addEventListener("animationend",v,{once:!0}),setTimeout(v,u||2e3)})}else x(y,w)}function x(w,y){let E=y.length;t.innerHTML="",y.forEach((_,C)=>{let A={[i]:_,$index:C,$count:E,$first:C===0,$last:C===E-1,$even:C%2===0,$odd:C%2!==0},v=P(A,n),j=w.content.cloneNode(!0),S=document.createElement("div");if(S.style.display="contents",S.__ctx=v,S.appendChild(j),t.appendChild(S),M(S),d){let D=S.firstElementChild;D&&(D.classList.add(d),D.addEventListener("animationend",()=>D.classList.remove(d),{once:!0}),p&&(D.style.animationDelay=C*p+"ms"))}})}W(e,n,b),b()}});$("foreach",{priority:10,init(t,r,e){let n=I(t),o=t.getAttribute("from"),i=t.getAttribute("index")||"$index",s=t.getAttribute("else"),a=t.getAttribute("filter"),c=t.getAttribute("sort"),l=parseInt(t.getAttribute("limit"))||1/0,d=parseInt(t.getAttribute("offset"))||0,f=t.getAttribute("template"),p=t.getAttribute("animate-enter")||t.getAttribute("animate"),u=t.getAttribute("animate-leave"),m=parseInt(t.getAttribute("animate-stagger"))||0,b=parseInt(t.getAttribute("animate-duration"))||0;if(!o||!e)return;let x=f?null:t.cloneNode(!0);function w(){let y=nt(o,n);if(!Array.isArray(y))return;if(a&&(y=y.filter((A,v)=>{let j=P({[e]:A,[i]:v},n);return!!L(a,j)})),c){let A=c.startsWith("-"),v=A?c.slice(1):c;y=[...y].sort((j,S)=>{let D=nt(v,j)??j?.[v],J=nt(v,S)??S?.[v],R=D<J?-1:D>J?1:0;return A?-R:R})}if(y=y.slice(d,d+l),y.length===0&&s){let A=K(s);A&&(t.innerHTML="",t.appendChild(A),M(t));return}let E=f?document.getElementById(f):null,_=y.length;function C(){t.innerHTML="",y.forEach((A,v)=>{let j={[e]:A,[i]:v,$index:v,$count:_,$first:v===0,$last:v===_-1,$even:v%2===0,$odd:v%2!==0},S=P(j,n),D;E?D=E.content.cloneNode(!0):D=x.cloneNode(!0);let J=document.createElement("div");if(J.style.display="contents",J.__ctx=S,J.appendChild(D),t.appendChild(J),M(J),p){let R=J.firstElementChild;R&&(R.classList.add(p),R.addEventListener("animationend",()=>R.classList.remove(p),{once:!0}),m&&(R.style.animationDelay=v*m+"ms"))}})}if(u&&t.children.length>0){let A=[...t.children],v=A.length;A.forEach(j=>{let S=j.firstElementChild||j;S.classList.add(u);let D=()=>{S.classList.remove(u),v--,v<=0&&C()};S.addEventListener("animationend",D,{once:!0}),setTimeout(D,b||2e3)})}else C()}W(o,n,w),w()}});X();pt();$("class-*",{priority:20,init(t,r,e){let n=r.replace("class-",""),o=I(t);if(n==="map"){let s=function(){let a=L(e,o);if(a&&typeof a=="object")for(let[c,l]of Object.entries(a))c.split(/\s+/).filter(Boolean).forEach(f=>t.classList.toggle(f,!!l))};W(e,o,s),s();return}if(n==="list"){let a=function(){let c=L(e,o);if(Array.isArray(c)){s.forEach(d=>{d&&t.classList.remove(d)});let l=c.filter(Boolean);l.forEach(d=>t.classList.add(d)),s=l}},s=[];W(e,o,a),a();return}function i(){t.classList.toggle(n,!!L(e,o))}W(e,o,i),(e.includes("$i18n")||e.includes("NoJS.locale"))&&$t(i),i()}});$("style-*",{priority:20,init(t,r,e){let n=r.replace("style-",""),o=I(t);if(n==="map"){let a=function(){let c=L(e,o);if(c&&typeof c=="object")for(let[l,d]of Object.entries(c))t.style[l]=d??""};W(e,o,a),a();return}let i=n.replace(/-([a-z])/g,(a,c)=>c.toUpperCase());function s(){let a=L(e,o);t.style[i]=a!=null?String(a):""}W(e,o,s),s()}});X();$("on:*",{priority:20,init(t,r,e){let n=I(t),o=r.replace("on:","").split("."),i=o[0],s=new Set(o.slice(1));if(i==="mounted"){requestAnimationFrame(()=>Z(e,n,{$el:t}));return}if(i==="init"){Z(e,n,{$el:t});return}if(i==="updated"){let f=new MutationObserver(()=>{Z(e,n,{$el:t})});f.observe(t,{childList:!0,subtree:!0,characterData:!0,attributes:!0}),Q(()=>f.disconnect());return}if(i==="error"){let f=p=>{(t.contains(p.target)||p.target===t)&&Z(e,n,{$el:t,$error:p.error||p.message})};window.addEventListener("error",f),Q(()=>window.removeEventListener("error",f));return}if(i==="unmounted"){let f=new MutationObserver(p=>{for(let u of p)for(let m of u.removedNodes)if(m===t||m.contains?.(t)){Z(e,n,{$el:t}),f.disconnect();return}});t.parentElement&&f.observe(t.parentElement,{childList:!0,subtree:!0}),Q(()=>f.disconnect());return}let a=0,c=0;for(let f of s)/^\d+$/.test(f)&&(s.has("debounce")?a=parseInt(f):s.has("throttle")&&(c=parseInt(f)));let l=f=>{if(i==="keydown"||i==="keyup"||i==="keypress"){let p=["enter","escape","tab","space","delete","backspace","up","down","left","right","ctrl","alt","shift","meta"];for(let u of s)if(p.includes(u)&&(u==="enter"&&f.key!=="Enter"||u==="escape"&&f.key!=="Escape"||u==="tab"&&f.key!=="Tab"||u==="space"&&f.key!==" "||u==="delete"&&f.key!=="Delete"&&f.key!=="Backspace"||u==="up"&&f.key!=="ArrowUp"||u==="down"&&f.key!=="ArrowDown"||u==="left"&&f.key!=="ArrowLeft"||u==="right"&&f.key!=="ArrowRight"||u==="ctrl"&&!f.ctrlKey||u==="alt"&&!f.altKey||u==="shift"&&!f.shiftKey||u==="meta"&&!f.metaKey))return}s.has("prevent")&&f.preventDefault(),s.has("stop")&&f.stopPropagation(),!(s.has("self")&&f.target!==t)&&Z(e,n,{$event:f,$el:t})};if(a>0){let f=l,p;l=u=>{clearTimeout(p),p=setTimeout(()=>f(u),a)}}if(c>0){let f=l,p=0;l=u=>{let m=Date.now();m-p>=c&&(p=m,f(u))}}let d={};s.has("once")&&(d.once=!0),t.addEventListener(i,l,d)}});$("trigger",{priority:20,init(t,r,e){let n=I(t),o=t.getAttribute("trigger-data");t.addEventListener("click",()=>{let i=o?L(o,n):null;t.dispatchEvent(new CustomEvent(e,{detail:i,bubbles:!0}))})}});X();$("ref",{priority:5,init(t,r,e){ft[e]=t,Q(()=>{ft[e]===t&&delete ft[e]})}});$("use",{priority:10,init(t,r,e){let n=I(t),o=K(e);if(!o)return;let i={};for(let d of[...t.attributes])if(d.name.startsWith("var-")){let f=d.name.replace("var-","");i[f]=L(d.value,n)}let s=P(i,n),a={};for(let d of[...t.children]){let f=d.getAttribute("slot")||"default";a[f]||(a[f]=document.createDocumentFragment()),a[f].appendChild(d.cloneNode(!0))}let c=o.querySelectorAll("slot");for(let d of c){let f=d.getAttribute("name")||"default";a[f]&&d.replaceWith(a[f])}t.innerHTML="";let l=document.createElement("div");l.style.display="contents",l.__ctx=s,l.appendChild(o),t.appendChild(l),M(l)}});$("call",{priority:20,init(t,r,e){let n=I(t),o=t.getAttribute("method")||"get",i=t.getAttribute("as"),s=t.getAttribute("into"),a=t.getAttribute("success"),c=t.getAttribute("error"),l=t.getAttribute("then"),d=t.getAttribute("confirm"),f=t.getAttribute("body");t.addEventListener("click",async p=>{if(p.preventDefault(),d&&!window.confirm(d))return;let u=gt(e,n);try{let m=null;if(f){let x=gt(f,n);try{m=JSON.parse(x)}catch{m=x}}let b=await Nt(u,o,m,{},t);if(i&&n.$set(i,b),i&&s&&(V[s]||(V[s]=P({})),V[s].$set(i,b),wt()),l&&Z(l,n,{result:b}),a){let x=K(a);if(x){let y=document.getElementById(a.replace("#",""))?.getAttribute("var")||"result",E=P({[y]:b},n),_=t.closest("[route-view]")||t.parentElement,C=document.createElement("div");C.style.display="contents",C.__ctx=E,C.appendChild(x),_.appendChild(C),M(C)}}}catch(m){if(c){let b=K(c);if(b){let w=document.getElementById(c.replace("#",""))?.getAttribute("var")||"err",y=P({[w]:{message:m.message,status:m.status}},n),E=t.parentElement,_=document.createElement("div");_.style.display="contents",_.__ctx=y,_.appendChild(b),E.appendChild(_),M(_)}}}})}});X();function ue(t,r,e){let n=r.split("|").map(o=>o.trim());for(let o of n){let[i,...s]=o.split(":"),a=_t[i];if(a){let c=a(t,...s,e);if(c!==!0&&c)return c}else switch(i){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(s[0]))return`Minimum value is ${s[0]}`;break;case"max":if(Number(t)>Number(s[0]))return`Maximum value is ${s[0]}`;break;case"between":{let c=Number(t);if(c<Number(s[0])||c>Number(s[1]))return`Must be between ${s[0]} and ${s[1]}`;break}case"match":if(t!==e[s[0]])return`Must match ${s[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(s[0]&&_t[s[0]]){let c=_t[s[0]](t,e);if(c!==!0&&c)return c}break}}return null}$("validate",{priority:30,init(t,r,e){let n=I(t);if(t.tagName==="FORM"){let i=function(){let s={},a={},c=!0;for(let l of t.querySelectorAll("input, textarea, select")){if(!l.name)continue;a[l.name]=l.value;let d=l.getAttribute("validate");if(d){let f=ue(l.value,d,a);f&&(s[l.name]=f,c=!1)}l.checkValidity()||(s[l.name]=s[l.name]||l.validationMessage,c=!1)}o.valid=c,o.errors=s,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(),i()}};n.$set("$form",o),t.addEventListener("input",()=>{o.dirty=!0,i()}),t.addEventListener("focusout",()=>{o.touched=!0,i()}),t.addEventListener("submit",()=>{o.submitting=!0,n.$set("$form",{...o}),requestAnimationFrame(()=>{o.submitting=!1,n.$set("$form",{...o})})}),requestAnimationFrame(i);return}if(e&&(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.tagName==="SELECT")){let o=t.getAttribute("error");t.addEventListener("input",()=>{let i=ue(t.value,e,{});if(i&&o){let s=t.nextElementSibling?.__validationError?t.nextElementSibling:null;s||(s=document.createElement("div"),s.__validationError=!0,s.style.display="contents",t.parentNode.insertBefore(s,t.nextSibling));let a=K(o);if(a){let c=P({err:{message:i}},n);s.innerHTML="",s.__ctx=c,s.appendChild(a),M(s)}}else{let s=t.nextElementSibling?.__validationError?t.nextElementSibling:null;s&&(s.innerHTML="")}})}}});$("error-boundary",{priority:1,init(t,r,e){let n=I(t);function o(s){let a=K(e);if(a){let c=P({err:{message:s}},n);t.innerHTML="";let l=document.createElement("div");l.style.display="contents",l.__ctx=c,l.appendChild(a),t.appendChild(l),M(l)}}t.addEventListener("nojs:error",s=>{o(s.detail?.message||"An error occurred")});let i=s=>{(t.contains(s.target)||t===s.target)&&o(s.message||"An error occurred")};window.addEventListener("error",i),Q(()=>window.removeEventListener("error",i))}});pt();X();$("t",{priority:20,init(t,r,e){let n=I(t),o=t.hasAttribute("t-html");function i(){let s={};for(let c of[...t.attributes])if(c.name.startsWith("t-")&&c.name!=="t"&&c.name!=="t-html"){let l=c.name.replace("t-","");s[l]=L(c.value,n)??c.value}let a=q.t(e,s);o?t.innerHTML=a:t.textContent=a}W(e,n,i),$t(i),i()}});$("i18n-ns",{priority:1,init(t,r,e){if(!e)return;let n=document.createDocumentFragment();for(;t.firstChild;)n.appendChild(t.firstChild);Wt(e).then(()=>{t.appendChild(n),M(t),Tt()})}});X();var g={dragging:null,selected:new Map,placeholder:null};function jt(t){let r=0;for(let e of t.children){if(e.classList.contains("nojs-drop-placeholder"))continue;(e.style||{}).display==="contents"?r+=jt(e):r++}return r}function Xt(){if(typeof document>"u"||document.querySelector("style[data-nojs-dnd]"))return;let t=`
24
+ `.trim(),r=document.createElement("style");r.setAttribute("data-nojs-animations",""),r.textContent=t,document.head.appendChild(r)}function Lt(t,r,e,n){de();let o=n||1e3;if(r){let i=t.firstElementChild||t;i.classList.add(r),n&&(i.style.animationDuration=n+"ms"),i.addEventListener("animationend",()=>i.classList.remove(r),{once:!0})}if(e){let i=t.firstElementChild||t;i.classList.add(e+"-enter",e+"-enter-active"),requestAnimationFrame(()=>{i.classList.remove(e+"-enter"),i.classList.add(e+"-enter-to");let s=()=>{i.classList.remove(e+"-enter-active",e+"-enter-to")};i.addEventListener("transitionend",s,{once:!0}),setTimeout(s,o)})}}function Bt(t,r,e,n,o){de();let i=o||2e3;if(!t.firstElementChild&&!t.childNodes.length){n();return}if(r){let s=t.firstElementChild||t;s.classList.add(r),o&&(s.style.animationDuration=o+"ms");let a=!1,c=()=>{a||(a=!0,s.classList.remove(r),n())};s.addEventListener("animationend",c,{once:!0}),setTimeout(c,i);return}if(e){let s=t.firstElementChild||t;s.classList.add(e+"-leave",e+"-leave-active"),requestAnimationFrame(()=>{s.classList.remove(e+"-leave"),s.classList.add(e+"-leave-to");let a=!1,c=()=>{a||(a=!0,s.classList.remove(e+"-leave-active",e+"-leave-to"),n())};s.addEventListener("transitionend",c,{once:!0}),setTimeout(c,i)});return}n()}function ue(){let t=[],r={path:"",params:{},query:{},hash:""},e=new Set,n=new Map;function o(p){let u=t.find(m=>m.path===p);return u||(u={path:p,outlets:{}},t.push(u)),u}function i(p){let u={};return new URLSearchParams(p).forEach((m,b)=>{u[b]=m}),u}function s(p){for(let u of t){let m=[],b=u.path.replace(/:(\w+)/g,(y,E)=>(m.push(E),"([^/]+)")),x=new RegExp("^"+b+"$"),w=p.match(x);if(w){let y={};return m.forEach((E,_)=>{y[E]=w[_+1]}),{route:u,params:y}}}return null}async function a(p,u=!1){let m=p.indexOf("#"),b=m>=0?p.slice(m+1):"",x=m>=0?p.slice(0,m):p,[w,y=""]=x.split("?");r={path:w,params:{},query:i(y),hash:b?"#"+b:""};let E=s(w);if(E){r.params=E.params;let _=E.route.outlets?.default,C=_?.getAttribute("guard"),A=_?.getAttribute("redirect");if(C){let v=P({},null);if(v.__raw.$store=V,v.__raw.$route=r,!L(C,v)&&A){await a(A,!0);return}}}if(h.router.mode==="hash"){let _="#"+p;u?window.location.replace(_):window.location.hash=p}else{let _=h.router.base.replace(/\/$/,"")+p;u?window.history.replaceState({},"",_):window.history.pushState({},"",_)}if(await c(E),e.forEach(_=>_(r)),r.hash){let _=r.hash.slice(1);requestAnimationFrame(()=>{let C=document.getElementById(_);C&&C.scrollIntoView({behavior:"smooth"})})}}async function c(p){let u=document.querySelectorAll("[route-view]");for(let b of u){let x=b.getAttribute("route-view"),w=x&&x.trim()!==""?x.trim():"default",y=p?.route?.outlets?.[w],E=h.router.templates||"";if(!y&&(b.hasAttribute("src")||E)){let C=(b.getAttribute("src")||E).replace(/\/?$/,"/"),A=b.getAttribute("ext")||h.router.ext||".html",v=b.getAttribute("route-index")||"index",j=r.path==="/"?v:r.path.replace(/^\//,""),S=C+j+A,D=w+":"+S;n.has(D)?y=n.get(D):(y=document.createElement("template"),y.setAttribute("src",S),y.setAttribute("route",r.path),document.body.appendChild(y),n.set(D,y),z("[ROUTER] File-based route:",r.path,"\u2192",S)),b.hasAttribute("i18n-ns")&&!y.getAttribute("i18n-ns")&&y.setAttribute("i18n-ns",j)}if(ce(b),b.innerHTML="",y){y.getAttribute("src")&&!y.__srcLoaded&&(z("Loading route template on demand:",y.getAttribute("src")),await bt(y));let _=y.getAttribute("i18n-ns");if(_){let{_loadI18nNamespace:D}=await Promise.resolve().then(()=>(pt(),Qt));await D(_)}let C=y.content.cloneNode(!0),A=P({$route:r},I(b)),v=document.createElement("div");v.style.display="contents",v.__ctx=A,y.content.__srcBase&&(v.__srcBase=y.content.__srcBase),v.appendChild(C),b.appendChild(v),kt(v);let j=[...v.querySelectorAll("template[src]")];z("[ROUTER] nested templates found in wrapper:",j.length,j.map(D=>D.getAttribute("src")+(D.__srcLoaded?"[LOADED]":"[NEW]"))),await Promise.all(j.map(bt)),z("[ROUTER] all nested loads done for route:",r.path);let S=b.getAttribute("transition");S&&Lt(v,null,S),dt(v),M(v)}}document.querySelectorAll("[route]").forEach(b=>{let x=b.getAttribute("route"),w=b.getAttribute("route-active")||"active",y=b.getAttribute("route-active-exact");if(y)b.classList.toggle(y,r.path===x);else if(w&&!b.hasAttribute("route-active-exact")){let E=x==="/"?r.path==="/":r.path.startsWith(x);b.classList.toggle(w,E)}});let m=h.router.scrollBehavior;m==="top"?window.scrollTo(0,0):m==="smooth"&&window.scrollTo({top:0,behavior:"smooth"})}function l(p,u){u.scrollIntoView({behavior:"smooth"});let m='a[href="#'+p+'"]';document.querySelectorAll('a[href^="#"]').forEach(b=>{b.hasAttribute("route")||b.classList.toggle("active",b.matches(m))})}function d(){let p=document.querySelectorAll("[route-view]");for(let u of p){let m=u.getAttribute("src")||h.router.templates||"";if(!m)continue;let b=m.replace(/\/?$/,"/"),x=u.getAttribute("ext")||h.router.ext||".html",w=u.getAttribute("route-index")||"index",y=(u.getAttribute("route-view")||"").trim()||"default",E=new Map;document.querySelectorAll("[route]:not([route-view])").forEach(A=>{let v=A.getAttribute("route");if(!v)return;let j=v.split("?")[0].split("#")[0],S=A.getAttribute("lazy"),D=E.get(j);(!E.has(j)||S==="priority"||D==="ondemand"&&S!=="ondemand")&&E.set(j,S)});let _=[],C=[];for(let[A,v]of E){if(v==="ondemand"||A===r.path)continue;let j=A==="/"?w:A.replace(/^\//,""),S=b+j+x,D=y+":"+S;if(n.has(D))continue;let J=document.createElement("template");J.setAttribute("src",S),J.setAttribute("route",A),document.body.appendChild(J),n.set(D,J),z("[ROUTER] Prefetch:",A,"\u2192",S,v==="priority"?"(priority)":"(background)"),u.hasAttribute("i18n-ns")&&J.setAttribute("i18n-ns",j),v==="priority"?_.push(J):C.push(J)}(_.length||C.length)&&Promise.all(_.map(bt)).then(()=>{C.forEach(bt)})}}return{get current(){return r},push(p){return a(p)},replace(p){return a(p,!0)},back(){window.history.back()},forward(){window.history.forward()},on(p){return e.add(p),()=>e.delete(p)},register(p,u,m="default"){let b=o(p);b.outlets[m]=u},async init(){if(document.querySelectorAll("template[route]").forEach(p=>{let u=p.getAttribute("route"),m=p.getAttribute("outlet")||"default",b=o(u);b.outlets[m]=p}),document.addEventListener("click",p=>{let u=p.target.closest("[route]");if(u&&!u.hasAttribute("route-view")){p.preventDefault();let m=u.getAttribute("route");a(m);return}if(h.router.mode==="hash"){let m=p.target.closest('a[href^="#"]');if(m&&!m.hasAttribute("route")){let x=m.getAttribute("href").slice(1);if(x&&!x.startsWith("/")){let w=document.getElementById(x);w&&(p.preventDefault(),l(x,w))}}}}),h.router.mode==="hash"){window.addEventListener("hashchange",()=>{let u=window.location.hash.slice(1)||"/";if(!u.startsWith("/")){let b=document.getElementById(u);b&&(l(u,b),window.history.replaceState(null,"","#"+r.path));return}let[m]=u.split("?");m!==r.path&&a(u,!0)});let p=window.location.hash.slice(1)||"/";await a(p,!0)}else{window.addEventListener("popstate",()=>{let u=window.location.pathname.replace(h.router.base,"")||"/";a(u,!0)});let p=window.location.pathname.replace(h.router.base,"")||"/";await a(p,!0)}d()}}}X();k.uppercase=t=>String(t??"").toUpperCase();k.lowercase=t=>String(t??"").toLowerCase();k.capitalize=t=>String(t??"").replace(/\b\w/g,r=>r.toUpperCase());k.truncate=(t,r=100)=>{let e=String(t??"");return e.length>r?e.slice(0,r)+"...":e};k.trim=t=>String(t??"").trim();k.stripHtml=t=>String(t??"").replace(/<[^>]*>/g,"");k.slugify=t=>String(t??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");k.nl2br=t=>String(t??"").replace(/\n/g,"<br>");k.encodeUri=t=>encodeURIComponent(String(t??""));k.number=(t,r=0)=>{let e=Number(t);return isNaN(e)?t:e.toLocaleString(void 0,{minimumFractionDigits:r,maximumFractionDigits:r})};k.currency=(t,r="USD")=>{let e=Number(t);if(isNaN(e))return t;try{return e.toLocaleString(void 0,{style:"currency",currency:r})}catch{return`${r} ${e.toFixed(2)}`}};k.percent=(t,r=0)=>{let e=Number(t);return isNaN(e)?t:(e*100).toFixed(r)+"%"};k.filesize=t=>{let r=Number(t);if(isNaN(r))return t;let e=["B","KB","MB","GB","TB"],n=0,o=r;for(;o>=1024&&n<e.length-1;)o/=1024,n++;return o.toFixed(n>0?1:0)+" "+e[n]};k.ordinal=t=>{let r=Number(t);if(isNaN(r))return t;let e=["th","st","nd","rd"],n=r%100;return r+(e[(n-20)%10]||e[n]||e[0])};k.count=t=>Array.isArray(t)?t.length:0;k.first=t=>Array.isArray(t)?t[0]:t;k.last=t=>Array.isArray(t)?t[t.length-1]:t;k.join=(t,r=", ")=>Array.isArray(t)?t.join(r):t;k.reverse=t=>Array.isArray(t)?[...t].reverse():t;k.unique=t=>Array.isArray(t)?[...new Set(t)]:t;k.pluck=(t,r)=>Array.isArray(t)?t.map(e=>e?.[r]):t;k.sortBy=(t,r)=>{if(!Array.isArray(t))return t;let e=r?.startsWith("-"),n=e?r.slice(1):r;return[...t].sort((o,i)=>{let s=o?.[n],a=i?.[n],c=s<a?-1:s>a?1:0;return e?-c:c})};k.where=(t,r,e)=>Array.isArray(t)?t.filter(n=>n?.[r]===e):t;k.date=(t,r="short")=>{let e=new Date(t);if(isNaN(e))return t;let n=r==="long"?{dateStyle:"long"}:r==="full"?{dateStyle:"full"}:{dateStyle:"short"};return e.toLocaleDateString(void 0,n)};k.datetime=t=>{let r=new Date(t);return isNaN(r)?t:r.toLocaleString()};k.relative=t=>{let r=new Date(t);if(isNaN(r))return t;let e=(Date.now()-r.getTime())/1e3;return e<60?"just now":e<3600?Math.floor(e/60)+"m ago":e<86400?Math.floor(e/3600)+"h ago":e<2592e3?Math.floor(e/86400)+"d ago":r.toLocaleDateString()};k.fromNow=t=>{let r=new Date(t);if(isNaN(r))return t;let e=(r.getTime()-Date.now())/1e3;return e<0?k.relative(t):e<60?"in a moment":e<3600?"in "+Math.floor(e/60)+"m":e<86400?"in "+Math.floor(e/3600)+"h":"in "+Math.floor(e/86400)+"d"};k.default=(t,r="")=>t==null||t===""?r:t;k.json=(t,r=2)=>JSON.stringify(t,null,r);k.debug=t=>(console.log("[No.JS debug]",t),t);k.keys=t=>t&&typeof t=="object"?Object.keys(t):[];k.values=t=>t&&typeof t=="object"?Object.values(t):[];X();$("state",{priority:0,init(t,r,e){let n=L(e,P())||{},o=t.parentElement?I(t.parentElement):null,i=P(n,o);t.__ctx=i;let s=t.getAttribute("persist"),a=t.getAttribute("persist-key");if(s&&a){let c=s==="localStorage"?localStorage:s==="sessionStorage"?sessionStorage:null;if(c){try{let l=c.getItem("nojs_state_"+a);if(l){let d=JSON.parse(l);for(let[f,p]of Object.entries(d))i.$set(f,p)}}catch{}i.$watch(()=>{try{c.setItem("nojs_state_"+a,JSON.stringify(i.__raw))}catch{}})}}z("state",n)}});$("store",{priority:0,init(t,r,e){let n=t.getAttribute("value");if(e){if(!V[e]){let o=n?L(n,P())||{}:{};V[e]=P(o)}z("store",e)}}});$("computed",{priority:2,init(t,r,e){let n=t.getAttribute("expr");if(!e||!n)return;let o=I(t);function i(){let s=L(n,o);o.$set(e,s)}q(n,o,i),i()}});$("watch",{priority:2,init(t,r,e){let n=I(t),o=t.getAttribute("on:change"),i=L(e,n);q(e,n,()=>{let s=L(e,n);if(s!==i){let a=i;i=s,o&&Z(o,n,{$old:a,$new:s})}})}});X();var we=["get","post","put","patch","delete"];for(let t of we)$(t,{priority:1,init(r,e,n){let o=r.getAttribute("as")||"data",i=r.getAttribute("loading"),s=r.getAttribute("error"),a=r.getAttribute("empty"),c=r.getAttribute("success"),l=r.getAttribute("then"),d=r.getAttribute("redirect"),f=r.getAttribute("confirm"),p=parseInt(r.getAttribute("refresh"))||0,u=r.getAttribute("cached"),m=r.hasAttribute("cached")?u||"memory":"none",b=r.getAttribute("body"),x=r.getAttribute("headers"),w=r.getAttribute("var"),y=r.getAttribute("into"),E=parseInt(r.getAttribute("retry"))||h.retries,_=parseInt(r.getAttribute("retry-delay"))||h.retryDelay||1e3,C=r.getAttribute("params"),A=r.parentElement?I(r.parentElement):P(),v=r.__ctx||P({},A);r.__ctx=v;let j=[...r.childNodes].map(R=>R.cloneNode(!0)),S=null;async function D(){if(S&&S.abort(),S=new AbortController,f&&!window.confirm(f))return;let R=gt(n,v);if(C){let U=L(C,v);if(U&&typeof U=="object"){let B=R.includes("?")?"&":"?",O=new URLSearchParams(U).toString();O&&(R+=B+O)}}let lt=t+":"+R;if(t==="get"){let U=te(lt,m);if(U!=null){v.$set(o,U),dt(r),M(r);return}}if(i){let U=K(i);U&&(r.innerHTML="",r.appendChild(U),M(r))}try{let U=null;if(b){let T=gt(b,v);try{U=JSON.parse(T)}catch{U=T}}if(r.tagName==="FORM"){let T=new FormData(r);U=Object.fromEntries(T.entries())}let B=x?JSON.parse(x):{},O=h.retries,F=h.retryDelay;h.retries=E,h.retryDelay=_;let N;try{N=await Nt(R,t,U,B,r,S.signal)}finally{h.retries=O,h.retryDelay=F}if(t==="get"&&ee(lt,N,m),a&&(N==null||Array.isArray(N)&&N.length===0)){let T=K(a);T&&(r.innerHTML="",r.appendChild(T),M(r));return}if(v.$set(o,N),y&&(V[y]||(V[y]=P({})),V[y].$set(o,N),wt()),c){let T=K(c);if(T){r.innerHTML="";let ut=document.getElementById(c.replace("#",""))?.getAttribute("var")||w||"result",ot=P({[ut]:N},v),G=document.createElement("div");G.style.display="contents",G.__ctx=ot,G.appendChild(T),r.appendChild(G),M(G)}}else{r.innerHTML="";for(let T of j)r.appendChild(T.cloneNode(!0));dt(r),M(r)}l&&Z(l,v,{result:N}),d&&et&&et.push(d),Dt("fetch:success",{url:R,data:N})}catch(U){if(U.name==="AbortError")return;if(st(`${t.toUpperCase()} ${R} failed:`,U.message),Dt("fetch:error",{url:R,error:U}),Dt("error",{url:R,error:U}),s){let B=K(s);if(B){r.innerHTML="";let F=document.getElementById(s.replace("#",""))?.getAttribute("var")||"err",N=P({[F]:{message:U.message,status:U.status,body:U.body}},v),T=document.createElement("div");T.style.display="contents",T.__ctx=N,T.appendChild(B),r.appendChild(T),M(T)}}}}if(r.tagName==="FORM"&&t!=="get"?r.addEventListener("submit",R=>{R.preventDefault(),D()}):t==="get"?D():r.addEventListener("click",R=>{R.preventDefault(),D()}),/\{[^}]+\}/.test(n)){let B=function(){let F=gt(n,v);F!==lt&&(lt=F,U&&clearTimeout(U),R>0?U=setTimeout(D,R):D())},R=parseInt(r.getAttribute("debounce"))||0,lt=gt(n,v),U=null,O=A;for(;O&&O.__isProxy;)O.$watch(B),O=O.$parent}if(p>0){let R=setInterval(D,p);Q(()=>clearInterval(R))}}});X();$("bind",{priority:20,init(t,r,e){let n=I(t);function o(){let i=L(e,n);t.textContent=i!=null?String(i):""}q(e,n,o),o()}});$("bind-html",{priority:20,init(t,r,e){let n=I(t);function o(){let i=L(e,n);i!=null&&(t.innerHTML=re(String(i)))}q(e,n,o),o()}});$("bind-*",{priority:20,init(t,r,e){let n=r.replace("bind-",""),o=I(t);n==="value"&&(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.tagName==="SELECT")&&t.addEventListener("input",()=>{let s=t.type==="number"?Number(t.value):t.value;Z(`${e} = ${JSON.stringify(s)}`,o)});function i(){let s=L(e,o);if(["disabled","readonly","checked","selected","hidden","required"].includes(n)){s?t.setAttribute(n,""):t.removeAttribute(n),n in t&&(t[n]=!!s);return}s!=null?t.setAttribute(n,String(s)):t.removeAttribute(n)}q(e,o,i),i()}});$("model",{priority:20,init(t,r,e){let n=I(t),o=t.tagName,i=t.type;function s(){let c=L(e,n);o==="INPUT"&&i==="checkbox"?t.checked=!!c:o==="INPUT"&&i==="radio"?t.checked=t.value===String(c):t.value=c!=null?String(c):""}let a=o==="SELECT"||i==="checkbox"||i==="radio"?"change":"input";t.addEventListener(a,()=>{let c;i==="checkbox"?c=t.checked:i==="number"||i==="range"?c=Number(t.value):c=t.value,Z(`${e} = __val`,n,{__val:c})}),q(e,n,s),s()}});X();$("if",{priority:10,init(t,r,e){let n=I(t),o=t.getAttribute("then"),i=t.getAttribute("else"),s=t.getAttribute("animate-enter")||t.getAttribute("animate"),a=t.getAttribute("animate-leave"),c=t.getAttribute("transition"),l=parseInt(t.getAttribute("animate-duration"))||0,d=[...t.childNodes].map(m=>m.cloneNode(!0)),f;function p(){let m=!!L(e,n);m!==f&&(f=m,a||c?Bt(t,a,c,()=>u(m),l):u(m))}function u(m){if(m)if(o){let b=K(o);b&&(t.innerHTML="",t.appendChild(b))}else{t.innerHTML="";for(let b of d)t.appendChild(b.cloneNode(!0))}else if(i){let b=K(i);b&&(t.innerHTML="",t.appendChild(b))}else t.innerHTML="";dt(t),M(t),(s||c)&&Lt(t,s,c,l)}q(e,n,p),p()}});$("else-if",{priority:10,init(t,r,e){let n=I(t),o=t.getAttribute("then"),i=[...t.childNodes].map(a=>a.cloneNode(!0));function s(){let a=t.previousElementSibling;for(;a;){let l=a.getAttribute("if")||a.getAttribute("else-if");if(l){if(L(l,n)){t.innerHTML="",t.style.display="none";return}}else break;a=a.previousElementSibling}let c=!!L(e,n);if(t.style.display="",c){if(o){let l=K(o);l&&(t.innerHTML="",t.appendChild(l))}else{t.innerHTML="";for(let l of i)t.appendChild(l.cloneNode(!0))}dt(t),M(t)}else t.innerHTML=""}q(e,n,s),s()}});$("else",{priority:10,init(t){if(t.hasAttribute("if"))return;let r=I(t),e=t.getAttribute("then"),n=[...t.childNodes].map(i=>i.cloneNode(!0));function o(){let i=t.previousElementSibling;for(;i;){let s=i.getAttribute("if")||i.getAttribute("else-if");if(s){if(L(s,r)){t.innerHTML="",t.style.display="none";return}}else break;i=i.previousElementSibling}if(t.style.display="",e){let s=K(e);s&&(t.innerHTML="",t.appendChild(s))}else{t.innerHTML="";for(let s of n)t.appendChild(s.cloneNode(!0))}dt(t),M(t)}q("",r,o),o()}});$("show",{priority:20,init(t,r,e){let n=I(t),o=t.getAttribute("animate-enter")||t.getAttribute("animate"),i=t.getAttribute("animate-leave"),s=t.getAttribute("transition"),a=parseInt(t.getAttribute("animate-duration"))||0,c;function l(){let d=!!L(e,n);d!==c&&(c=d,d?(t.style.display="",(o||s)&&Lt(t,o,s,a)):i||s?Bt(t,i,s,()=>{t.style.display="none"},a):t.style.display="none")}q(e,n,l),l()}});$("hide",{priority:20,init(t,r,e){let n=I(t),o=t.getAttribute("animate-enter")||t.getAttribute("animate"),i=t.getAttribute("animate-leave"),s=t.getAttribute("transition"),a=parseInt(t.getAttribute("animate-duration"))||0,c;function l(){let d=!L(e,n);d!==c&&(c=d,d?(t.style.display="",(o||s)&&Lt(t,o,s,a)):i||s?Bt(t,i,s,()=>{t.style.display="none"},a):t.style.display="none")}q(e,n,l),l()}});$("switch",{priority:10,init(t,r,e){let n=I(t);function o(){let i=L(e,n),s=!1;for(let a of[...t.children]){let c=a.getAttribute("case"),l=a.hasAttribute("default"),d=a.getAttribute("then");if(c){let f=c.split(",").map(p=>L(p.trim(),n));if(!s&&f.includes(i)){if(s=!0,a.style.display="",d){let p=K(d);p&&(a.innerHTML="",a.appendChild(p)),a.__declared=!1,M(a)}}else a.style.display="none"}else if(l&&(a.style.display=s?"none":"",!s&&d)){let f=K(d);f&&(a.innerHTML="",a.appendChild(f)),a.__declared=!1,M(a)}}}q(e,n,o),o()}});X();$("each",{priority:10,init(t,r,e){let n=I(t),o=e.match(/^(\w+)\s+in\s+(\S+)$/);if(!o)return;let[,i,s]=o,a=t.getAttribute("template"),c=t.getAttribute("else"),l=t.getAttribute("key"),d=t.getAttribute("animate-enter")||t.getAttribute("animate"),f=t.getAttribute("animate-leave"),p=parseInt(t.getAttribute("animate-stagger"))||0,u=parseInt(t.getAttribute("animate-duration"))||0,m=null;function b(){let w=/[\[\]()\s+\-*\/!?:&|]/.test(s)?L(s,n):nt(s,n);if(!Array.isArray(w))return;if(w===m&&w.length>0&&t.children.length>0){for(let E of t.children)E.__ctx&&E.__ctx.$notify&&E.__ctx.$notify();return}if(m=w,w.length===0&&c){let E=K(c);E&&(t.innerHTML="",t.appendChild(E),M(t));return}let y=a?document.getElementById(a):null;if(y)if(f&&t.children.length>0){let E=[...t.children],_=E.length;E.forEach(C=>{let A=C.firstElementChild||C;A.classList.add(f);let v=()=>{A.classList.remove(f),_--,_<=0&&x(y,w)};A.addEventListener("animationend",v,{once:!0}),setTimeout(v,u||2e3)})}else x(y,w)}function x(w,y){let E=y.length;t.innerHTML="",y.forEach((_,C)=>{let A={[i]:_,$index:C,$count:E,$first:C===0,$last:C===E-1,$even:C%2===0,$odd:C%2!==0},v=P(A,n),j=w.content.cloneNode(!0),S=document.createElement("div");if(S.style.display="contents",S.__ctx=v,S.appendChild(j),t.appendChild(S),M(S),d){let D=S.firstElementChild;D&&(D.classList.add(d),D.addEventListener("animationend",()=>D.classList.remove(d),{once:!0}),p&&(D.style.animationDelay=C*p+"ms"))}})}q(e,n,b),b()}});$("foreach",{priority:10,init(t,r,e){let n=I(t),o=t.getAttribute("from"),i=t.getAttribute("index")||"$index",s=t.getAttribute("else"),a=t.getAttribute("filter"),c=t.getAttribute("sort"),l=parseInt(t.getAttribute("limit"))||1/0,d=parseInt(t.getAttribute("offset"))||0,f=t.getAttribute("template"),p=t.getAttribute("animate-enter")||t.getAttribute("animate"),u=t.getAttribute("animate-leave"),m=parseInt(t.getAttribute("animate-stagger"))||0,b=parseInt(t.getAttribute("animate-duration"))||0;if(!o||!e)return;let x=f?null:t.cloneNode(!0);function w(){let y=nt(o,n);if(!Array.isArray(y))return;if(a&&(y=y.filter((A,v)=>{let j=P({[e]:A,[i]:v},n);return!!L(a,j)})),c){let A=c.startsWith("-"),v=A?c.slice(1):c;y=[...y].sort((j,S)=>{let D=nt(v,j)??j?.[v],J=nt(v,S)??S?.[v],R=D<J?-1:D>J?1:0;return A?-R:R})}if(y=y.slice(d,d+l),y.length===0&&s){let A=K(s);A&&(t.innerHTML="",t.appendChild(A),M(t));return}let E=f?document.getElementById(f):null,_=y.length;function C(){t.innerHTML="",y.forEach((A,v)=>{let j={[e]:A,[i]:v,$index:v,$count:_,$first:v===0,$last:v===_-1,$even:v%2===0,$odd:v%2!==0},S=P(j,n),D;E?D=E.content.cloneNode(!0):D=x.cloneNode(!0);let J=document.createElement("div");if(J.style.display="contents",J.__ctx=S,J.appendChild(D),t.appendChild(J),M(J),p){let R=J.firstElementChild;R&&(R.classList.add(p),R.addEventListener("animationend",()=>R.classList.remove(p),{once:!0}),m&&(R.style.animationDelay=v*m+"ms"))}})}if(u&&t.children.length>0){let A=[...t.children],v=A.length;A.forEach(j=>{let S=j.firstElementChild||j;S.classList.add(u);let D=()=>{S.classList.remove(u),v--,v<=0&&C()};S.addEventListener("animationend",D,{once:!0}),setTimeout(D,b||2e3)})}else C()}q(o,n,w),w()}});X();pt();$("class-*",{priority:20,init(t,r,e){let n=r.replace("class-",""),o=I(t);if(n==="map"){let s=function(){let a=L(e,o);if(a&&typeof a=="object")for(let[c,l]of Object.entries(a))c.split(/\s+/).filter(Boolean).forEach(f=>t.classList.toggle(f,!!l))};q(e,o,s),s();return}if(n==="list"){let a=function(){let c=L(e,o);if(Array.isArray(c)){s.forEach(d=>{d&&t.classList.remove(d)});let l=c.filter(Boolean);l.forEach(d=>t.classList.add(d)),s=l}},s=[];q(e,o,a),a();return}function i(){t.classList.toggle(n,!!L(e,o))}q(e,o,i),(e.includes("$i18n")||e.includes("NoJS.locale"))&&$t(i),i()}});$("style-*",{priority:20,init(t,r,e){let n=r.replace("style-",""),o=I(t);if(n==="map"){let a=function(){let c=L(e,o);if(c&&typeof c=="object")for(let[l,d]of Object.entries(c))t.style[l]=d??""};q(e,o,a),a();return}let i=n.replace(/-([a-z])/g,(a,c)=>c.toUpperCase());function s(){let a=L(e,o);t.style[i]=a!=null?String(a):""}q(e,o,s),s()}});X();$("on:*",{priority:20,init(t,r,e){let n=I(t),o=r.replace("on:","").split("."),i=o[0],s=new Set(o.slice(1));if(i==="mounted"){requestAnimationFrame(()=>Z(e,n,{$el:t}));return}if(i==="init"){Z(e,n,{$el:t});return}if(i==="updated"){let f=new MutationObserver(()=>{Z(e,n,{$el:t})});f.observe(t,{childList:!0,subtree:!0,characterData:!0,attributes:!0}),Q(()=>f.disconnect());return}if(i==="error"){let f=p=>{(t.contains(p.target)||p.target===t)&&Z(e,n,{$el:t,$error:p.error||p.message})};window.addEventListener("error",f),Q(()=>window.removeEventListener("error",f));return}if(i==="unmounted"){let f=new MutationObserver(p=>{for(let u of p)for(let m of u.removedNodes)if(m===t||m.contains?.(t)){Z(e,n,{$el:t}),f.disconnect();return}});t.parentElement&&f.observe(t.parentElement,{childList:!0,subtree:!0}),Q(()=>f.disconnect());return}let a=0,c=0;for(let f of s)/^\d+$/.test(f)&&(s.has("debounce")?a=parseInt(f):s.has("throttle")&&(c=parseInt(f)));let l=f=>{if(i==="keydown"||i==="keyup"||i==="keypress"){let p=["enter","escape","tab","space","delete","backspace","up","down","left","right","ctrl","alt","shift","meta"];for(let u of s)if(p.includes(u)&&(u==="enter"&&f.key!=="Enter"||u==="escape"&&f.key!=="Escape"||u==="tab"&&f.key!=="Tab"||u==="space"&&f.key!==" "||u==="delete"&&f.key!=="Delete"&&f.key!=="Backspace"||u==="up"&&f.key!=="ArrowUp"||u==="down"&&f.key!=="ArrowDown"||u==="left"&&f.key!=="ArrowLeft"||u==="right"&&f.key!=="ArrowRight"||u==="ctrl"&&!f.ctrlKey||u==="alt"&&!f.altKey||u==="shift"&&!f.shiftKey||u==="meta"&&!f.metaKey))return}s.has("prevent")&&f.preventDefault(),s.has("stop")&&f.stopPropagation(),!(s.has("self")&&f.target!==t)&&Z(e,n,{$event:f,$el:t})};if(a>0){let f=l,p;l=u=>{clearTimeout(p),p=setTimeout(()=>f(u),a)}}if(c>0){let f=l,p=0;l=u=>{let m=Date.now();m-p>=c&&(p=m,f(u))}}let d={};s.has("once")&&(d.once=!0),t.addEventListener(i,l,d)}});$("trigger",{priority:20,init(t,r,e){let n=I(t),o=t.getAttribute("trigger-data");t.addEventListener("click",()=>{let i=o?L(o,n):null;t.dispatchEvent(new CustomEvent(e,{detail:i,bubbles:!0}))})}});X();$("ref",{priority:5,init(t,r,e){ft[e]=t,Q(()=>{ft[e]===t&&delete ft[e]})}});$("use",{priority:10,init(t,r,e){let n=I(t),o=K(e);if(!o)return;let i={};for(let d of[...t.attributes])if(d.name.startsWith("var-")){let f=d.name.replace("var-","");i[f]=L(d.value,n)}let s=P(i,n),a={};for(let d of[...t.children]){let f=d.getAttribute("slot")||"default";a[f]||(a[f]=document.createDocumentFragment()),a[f].appendChild(d.cloneNode(!0))}let c=o.querySelectorAll("slot");for(let d of c){let f=d.getAttribute("name")||"default";a[f]&&d.replaceWith(a[f])}t.innerHTML="";let l=document.createElement("div");l.style.display="contents",l.__ctx=s,l.appendChild(o),t.appendChild(l),M(l)}});$("call",{priority:20,init(t,r,e){let n=I(t),o=t.getAttribute("method")||"get",i=t.getAttribute("as"),s=t.getAttribute("into"),a=t.getAttribute("success"),c=t.getAttribute("error"),l=t.getAttribute("then"),d=t.getAttribute("confirm"),f=t.getAttribute("body");t.addEventListener("click",async p=>{if(p.preventDefault(),d&&!window.confirm(d))return;let u=gt(e,n);try{let m=null;if(f){let x=gt(f,n);try{m=JSON.parse(x)}catch{m=x}}let b=await Nt(u,o,m,{},t);if(i&&n.$set(i,b),i&&s&&(V[s]||(V[s]=P({})),V[s].$set(i,b),wt()),l&&Z(l,n,{result:b}),a){let x=K(a);if(x){let y=document.getElementById(a.replace("#",""))?.getAttribute("var")||"result",E=P({[y]:b},n),_=t.closest("[route-view]")||t.parentElement,C=document.createElement("div");C.style.display="contents",C.__ctx=E,C.appendChild(x),_.appendChild(C),M(C)}}}catch(m){if(c){let b=K(c);if(b){let w=document.getElementById(c.replace("#",""))?.getAttribute("var")||"err",y=P({[w]:{message:m.message,status:m.status}},n),E=t.parentElement,_=document.createElement("div");_.style.display="contents",_.__ctx=y,_.appendChild(b),E.appendChild(_),M(_)}}}})}});X();function fe(t,r,e){let n=r.split("|").map(o=>o.trim());for(let o of n){let[i,...s]=o.split(":"),a=_t[i];if(a){let c=a(t,...s,e);if(c!==!0&&c)return c}else switch(i){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(s[0]))return`Minimum value is ${s[0]}`;break;case"max":if(Number(t)>Number(s[0]))return`Maximum value is ${s[0]}`;break;case"between":{let c=Number(t);if(c<Number(s[0])||c>Number(s[1]))return`Must be between ${s[0]} and ${s[1]}`;break}case"match":if(t!==e[s[0]])return`Must match ${s[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(s[0]&&_t[s[0]]){let c=_t[s[0]](t,e);if(c!==!0&&c)return c}break}}return null}$("validate",{priority:30,init(t,r,e){let n=I(t);if(t.tagName==="FORM"){let i=function(){let s={},a={},c=!0;for(let l of t.querySelectorAll("input, textarea, select")){if(!l.name)continue;a[l.name]=l.value;let d=l.getAttribute("validate");if(d){let f=fe(l.value,d,a);f&&(s[l.name]=f,c=!1)}l.checkValidity()||(s[l.name]=s[l.name]||l.validationMessage,c=!1)}o.valid=c,o.errors=s,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(),i()}};n.$set("$form",o),t.addEventListener("input",()=>{o.dirty=!0,i()}),t.addEventListener("focusout",()=>{o.touched=!0,i()}),t.addEventListener("submit",()=>{o.submitting=!0,n.$set("$form",{...o}),requestAnimationFrame(()=>{o.submitting=!1,n.$set("$form",{...o})})}),requestAnimationFrame(i);return}if(e&&(t.tagName==="INPUT"||t.tagName==="TEXTAREA"||t.tagName==="SELECT")){let o=t.getAttribute("error");t.addEventListener("input",()=>{let i=fe(t.value,e,{});if(i&&o){let s=t.nextElementSibling?.__validationError?t.nextElementSibling:null;s||(s=document.createElement("div"),s.__validationError=!0,s.style.display="contents",t.parentNode.insertBefore(s,t.nextSibling));let a=K(o);if(a){let c=P({err:{message:i}},n);s.innerHTML="",s.__ctx=c,s.appendChild(a),M(s)}}else{let s=t.nextElementSibling?.__validationError?t.nextElementSibling:null;s&&(s.innerHTML="")}})}}});$("error-boundary",{priority:1,init(t,r,e){let n=I(t);function o(s){let a=K(e);if(a){let c=P({err:{message:s}},n);t.innerHTML="";let l=document.createElement("div");l.style.display="contents",l.__ctx=c,l.appendChild(a),t.appendChild(l),M(l)}}t.addEventListener("nojs:error",s=>{o(s.detail?.message||"An error occurred")});let i=s=>{(t.contains(s.target)||t===s.target)&&o(s.message||"An error occurred")};window.addEventListener("error",i),Q(()=>window.removeEventListener("error",i))}});pt();X();$("t",{priority:20,init(t,r,e){let n=I(t),o=t.hasAttribute("t-html");function i(){let s={};for(let c of[...t.attributes])if(c.name.startsWith("t-")&&c.name!=="t"&&c.name!=="t-html"){let l=c.name.replace("t-","");s[l]=L(c.value,n)??c.value}let a=W.t(e,s);o?t.innerHTML=a:t.textContent=a}q(e,n,i),$t(i),i()}});$("i18n-ns",{priority:1,init(t,r,e){if(!e)return;let n=document.createDocumentFragment();for(;t.firstChild;)n.appendChild(t.firstChild);zt(e).then(()=>{t.appendChild(n),M(t),Tt()})}});X();var g={dragging:null,selected:new Map,placeholder:null};function jt(t){let r=0;for(let e of t.children){if(e.classList.contains("nojs-drop-placeholder"))continue;(e.style||{}).display==="contents"?r+=jt(e):r++}return r}function Yt(){if(typeof document>"u"||document.querySelector("style[data-nojs-dnd]"))return;let t=`
25
25
  .nojs-dragging {
26
26
  opacity: 0.5;
27
27
  cursor: grabbing !important;
@@ -60,5 +60,5 @@ ${f}`)(r,d,...a),typeof t=="string"&&t.includes("$store")&&wt()}catch(n){st("Exp
60
60
  .nojs-drag-list-empty {
61
61
  min-height: 3rem;
62
62
  }
63
- `.trim(),r=document.createElement("style");r.setAttribute("data-nojs-dnd",""),r.textContent=t,document.head.appendChild(r)}function Mt(t,r,e,n){let o=[...t.children].filter(i=>!i.classList.contains("nojs-drop-placeholder"));if(o.length===0)return 0;for(let i=0;i<o.length;i++){let a=(o[i].style&&o[i].style.display==="contents"&&o[i].firstElementChild||o[i]).getBoundingClientRect();if(n==="horizontal"){let c=a.left+a.width/2;if(r<c)return i}else if(n==="grid"){let c=a.left+a.width/2,l=a.top+a.height/2;if(e<l&&r<c||e<a.top+a.height&&r<c)return i}else{let c=a.top+a.height/2;if(e<c)return i}}return o.length}function pe(t,r,e,n){at();let o;if(e==="auto"){if(o=document.createElement("div"),o.className=n||"nojs-drop-placeholder",g.dragging&&g.dragging.sourceEl){let a=(g.dragging.sourceEl.firstElementChild||g.dragging.sourceEl).getBoundingClientRect();a.height>0&&(o.style.height=a.height+"px"),a.width>0&&(o.style.width=a.width+"px")}}else{let s=document.getElementById(e.startsWith("#")?e.slice(1):e);s&&s.content?(o=document.createElement("div"),o.style.display="contents",o.className=n||"nojs-drop-placeholder",o.appendChild(s.content.cloneNode(!0))):(o=document.createElement("div"),o.className=n||"nojs-drop-placeholder")}o.classList.add("nojs-drop-placeholder");let i=[...t.children].filter(s=>!s.classList.contains("nojs-drop-placeholder"));r>=i.length?t.appendChild(o):t.insertBefore(o,i[r]),g.placeholder=o}function at(){g.placeholder&&(g.placeholder.remove(),g.placeholder=null)}function Et(t,r){return!r||r==="*"?!0:r.split(",").map(n=>n.trim()).includes(t)}function Le(t,r){let e=document.createElement("div");e.style.cssText="position:fixed;top:-9999px;left:-9999px;pointer-events:none;z-index:99999;";let n=t.style&&t.style.display==="contents"&&t.firstElementChild||t,o=n.getBoundingClientRect(),i=o.width,s=o.height,a=getComputedStyle(n),c=Math.min(r,3);for(let d=c-1;d>=0;d--){let f=document.createElement("div"),p=d*4;f.style.cssText="position:absolute;top:"+p+"px;left:"+p+"px;width:"+i+"px;height:"+s+"px;border-radius:"+a.borderRadius+";box-shadow:0 1px 4px rgba(0,0,0,0.12);overflow:hidden;box-sizing:border-box;",d===0?(f.innerHTML=n.innerHTML,f.style.background=a.backgroundColor||"#fff",f.style.border=a.border,f.style.padding=a.padding,f.style.fontSize=a.fontSize,f.style.color=a.color,f.style.fontFamily=a.fontFamily):(f.style.background=a.backgroundColor||"#fff",f.style.border=a.border||"1px solid #ddd"),e.appendChild(f)}let l=document.createElement("div");return l.textContent=r,l.style.cssText="position:absolute;top:-6px;right:-6px;min-width:22px;height:22px;padding:0 5px;background:#3b82f6;color:#fff;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,0.2);",e.appendChild(l),e.style.width=i+(c-1)*4+"px",e.style.height=s+(c-1)*4+"px",e}$("drag",{priority:15,init(t,r,e){Xt();let n=I(t),o=t.getAttribute("drag-type")||"default",i=t.getAttribute("drag-effect")||"move",s=t.getAttribute("drag-handle"),a=t.getAttribute("drag-image"),c=t.getAttribute("drag-image-offset")||"0,0",l=t.getAttribute("drag-disabled"),d=t.getAttribute("drag-class")||"nojs-dragging",f=t.getAttribute("drag-ghost-class");t.draggable=!0,t.setAttribute("aria-grabbed","false"),t.getAttribute("tabindex")||t.setAttribute("tabindex","0");let p=!0;if(s){let x=w=>{p=!!w.target.closest(s)};t.addEventListener("mousedown",x),Q(()=>t.removeEventListener("mousedown",x))}let u=x=>{if(s&&!p){x.preventDefault();return}if(l&&L(l,n)){x.preventDefault();return}let w=L(e,n),y=t.getAttribute("drag-group"),E=w;if(y&&g.selected.has(y)){let _=g.selected.get(y);_.size>0&&[..._].some(A=>A.el===t)&&(E=[..._].map(A=>A.item))}if(g.dragging={item:E,type:o,effect:i,sourceEl:t,sourceCtx:n,sourceList:null,sourceIndex:null,listDirective:null},x.dataTransfer){if(x.dataTransfer.effectAllowed=i,x.dataTransfer.setData("text/plain",""),Array.isArray(E)&&E.length>1&&x.dataTransfer.setDragImage){let _=Le(t,E.length);document.body.appendChild(_);let C=t.getBoundingClientRect();x.dataTransfer.setDragImage(_,C.width/2,C.height/2),requestAnimationFrame(()=>_.remove())}else if(a&&x.dataTransfer.setDragImage)if(a==="none"){let _=document.createElement("div");_.style.cssText="width:1px;height:1px;opacity:0;position:fixed;top:-999px",document.body.appendChild(_);let[C,A]=c.split(",").map(Number);x.dataTransfer.setDragImage(_,C||0,A||0),requestAnimationFrame(()=>_.remove())}else{let _=t.querySelector(a);if(_){let[C,A]=c.split(",").map(Number);f&&_.classList.add(f),x.dataTransfer.setDragImage(_,C||0,A||0)}}}if(d.split(/\s+/).filter(Boolean).forEach(_=>t.classList.add(_)),Array.isArray(E)&&y&&g.selected.has(y))for(let _ of g.selected.get(y))_.el!==t&&d.split(/\s+/).filter(Boolean).forEach(C=>_.el.classList.add(C));t.setAttribute("aria-grabbed","true"),t.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:E,index:g.dragging.sourceIndex,el:t}}))},m=()=>{d.split(/\s+/).filter(Boolean).forEach(w=>t.classList.remove(w));let x=t.getAttribute("drag-group");if(x&&g.selected.has(x))for(let w of g.selected.get(x))d.split(/\s+/).filter(Boolean).forEach(y=>w.el.classList.remove(y));if(t.setAttribute("aria-grabbed","false"),f&&a&&a!=="none"){let w=t.querySelector(a);w&&w.classList.remove(f)}t.dispatchEvent(new CustomEvent("drag-end",{bubbles:!0,detail:{item:g.dragging?.item,index:g.dragging?.sourceIndex,dropped:g.dragging===null}})),g.dragging=null,at()};if(t.addEventListener("dragstart",u),t.addEventListener("dragend",m),Q(()=>{t.removeEventListener("dragstart",u),t.removeEventListener("dragend",m)}),l){let x=function(){let w=!!L(l,n);t.draggable=!w,w?t.removeAttribute("aria-grabbed"):t.setAttribute("aria-grabbed","false")};n.$watch(x)}let b=x=>{if(g.dragging&&!g.dragging.sourceEl.isConnected&&(g.dragging=null),x.key===" "&&!g.dragging){x.preventDefault();let w=L(e,n);g.dragging={item:w,type:o,effect:i,sourceEl:t,sourceCtx:n,sourceList:null,sourceIndex:null,listDirective:null},d.split(/\s+/).filter(Boolean).forEach(y=>t.classList.add(y)),t.setAttribute("aria-grabbed","true"),t.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:w,index:null,el:t}}))}else x.key==="Escape"&&g.dragging&&g.dragging.sourceEl===t&&(x.preventDefault(),d.split(/\s+/).filter(Boolean).forEach(w=>t.classList.remove(w)),t.setAttribute("aria-grabbed","false"),g.dragging=null,at())};t.addEventListener("keydown",b),Q(()=>t.removeEventListener("keydown",b))}});$("drop",{priority:15,init(t,r,e){Xt();let n=I(t),o=t.getAttribute("drop-accept")||"default",i=t.getAttribute("drop-effect")||"move",s=t.getAttribute("drop-class")||"nojs-drag-over",a=t.getAttribute("drop-reject-class")||"nojs-drop-reject",c=t.getAttribute("drop-disabled"),l=t.getAttribute("drop-max"),d=t.getAttribute("drop-sort"),f=t.getAttribute("drop-placeholder"),p=t.getAttribute("drop-placeholder-class");t.setAttribute("aria-dropeffect",i);let u=0,m=E=>{if(!g.dragging||c&&L(c,n))return;let _=Et(g.dragging.type,o),C=!0;if(l){let A=L(l,n),v=jt(t);typeof A=="number"&&v>=A&&(C=!1)}if(!_||!C){a.split(/\s+/).filter(Boolean).forEach(A=>t.classList.add(A)),s.split(/\s+/).filter(Boolean).forEach(A=>t.classList.remove(A)),at();return}if(a.split(/\s+/).filter(Boolean).forEach(A=>t.classList.remove(A)),E.preventDefault(),E.dataTransfer&&(E.dataTransfer.dropEffect=i),d){let A=Mt(t,E.clientX,E.clientY,d);f&&pe(t,A,f,p),t.dispatchEvent(new CustomEvent("drag-over",{bubbles:!1,detail:{item:g.dragging.item,index:A}}))}},b=E=>{if(g.dragging&&!(c&&L(c,n))&&(u++,u===1)){let _=Et(g.dragging.type,o),C=!0;if(l){let A=L(l,n),v=jt(t);typeof A=="number"&&v>=A&&(C=!1)}_&&C?(s.split(/\s+/).filter(Boolean).forEach(A=>t.classList.add(A)),t.dispatchEvent(new CustomEvent("drag-enter",{bubbles:!1,detail:{item:g.dragging.item,type:g.dragging.type}}))):a.split(/\s+/).filter(Boolean).forEach(A=>t.classList.add(A))}},x=E=>{g.dragging&&(u--,u<=0&&(u=0,s.split(/\s+/).filter(Boolean).forEach(_=>t.classList.remove(_)),a.split(/\s+/).filter(Boolean).forEach(_=>t.classList.remove(_)),at(),t.dispatchEvent(new CustomEvent("drag-leave",{bubbles:!1,detail:{item:g.dragging.item}}))))},w=E=>{if(E.preventDefault(),E.stopPropagation(),u=0,!g.dragging||c&&L(c,n)||!Et(g.dragging.type,o))return;if(l){let S=L(l,n),D=jt(t);if(typeof S=="number"&&D>=S)return}let _=g.dragging.item,C=g.dragging.type,A=g.dragging.effect,v=0;d&&(v=Mt(t,E.clientX,E.clientY,d)),s.split(/\s+/).filter(Boolean).forEach(S=>t.classList.remove(S)),a.split(/\s+/).filter(Boolean).forEach(S=>t.classList.remove(S)),at();let j={$drag:_,$dragType:C,$dragEffect:A,$dropIndex:v,$source:{list:g.dragging.sourceList,index:g.dragging.sourceIndex,el:g.dragging.sourceEl},$target:{list:null,index:v,el:t},$el:t};Z(e,n,j),g.dragging=null,t.dispatchEvent(new CustomEvent("drop",{bubbles:!1,detail:{item:_,index:v,source:j.$source,target:j.$target,effect:A}}))},y=E=>{g.dragging&&(E.key==="Enter"||E.key===" ")&&(E.preventDefault(),w(E))};t.addEventListener("dragover",m),t.addEventListener("dragenter",b),t.addEventListener("dragleave",x),t.addEventListener("drop",w),t.addEventListener("keydown",y),Q(()=>{t.removeEventListener("dragover",m),t.removeEventListener("dragenter",b),t.removeEventListener("dragleave",x),t.removeEventListener("drop",w),t.removeEventListener("keydown",y)})}});var fe=new Map;$("drag-list",{priority:10,init(t,r,e){Xt();let n=I(t),o=t.getAttribute("template"),i=t.getAttribute("drag-list-key"),s=t.getAttribute("drag-list-item")||"item",a=t.getAttribute("drop-sort")||"vertical",c=t.getAttribute("drag-type")||"__draglist_"+e,l=t.getAttribute("drop-accept")||c,d=t.hasAttribute("drag-list-copy"),f=t.hasAttribute("drag-list-remove"),p=t.getAttribute("drag-disabled"),u=t.getAttribute("drop-disabled"),m=t.getAttribute("drop-max"),b=t.getAttribute("drop-placeholder"),x=t.getAttribute("drop-placeholder-class"),w=t.getAttribute("drag-class")||"nojs-dragging",y=t.getAttribute("drop-class")||"nojs-drag-over",E=t.getAttribute("drop-reject-class")||"nojs-drop-reject",_=t.getAttribute("drop-settle-class")||"nojs-drop-settle",C=t.getAttribute("drop-empty-class")||"nojs-drag-list-empty";t.setAttribute("role","listbox"),t.setAttribute("aria-dropeffect",d?"copy":"move");let A={listPath:e,ctx:n,el:t};fe.set(t,A),Q(()=>fe.delete(t));let v=0,j=null;function S(){let B=nt(e,n);if(!Array.isArray(B))return;if(B===j&&B.length>0&&t.children.length>0){for(let T of t.children)T.__ctx&&T.__ctx.$notify&&T.__ctx.$notify();return}j=B;let O=o?document.getElementById(o):null;if(!O)return;t.innerHTML="";let F=B.length;B.forEach((T,rt)=>{let ut={[s]:T,$index:rt,$count:F,$first:rt===0,$last:rt===F-1,$even:rt%2===0,$odd:rt%2!==0},ot=P(ut,n),G=O.content.cloneNode(!0),H=document.createElement("div");H.style.display="contents",H.__ctx=ot,H.setAttribute("role","option"),H.appendChild(G),t.appendChild(H);let Y=H.firstElementChild||H;Y.draggable=!0,Y.setAttribute("aria-grabbed","false"),Y.getAttribute("tabindex")||Y.setAttribute("tabindex","0");let xt=tt=>{if(p&&L(p,n)){tt.preventDefault();return}g.dragging={item:T,type:c,effect:d?"copy":"move",sourceEl:H,sourceCtx:ot,sourceList:B,sourceIndex:rt,listDirective:{el:t,listPath:e,ctx:n,keyProp:i,copyMode:d,removeMode:f}},tt.dataTransfer&&(tt.dataTransfer.effectAllowed=d?"copy":"move",tt.dataTransfer.setData("text/plain","")),w.split(/\s+/).filter(Boolean).forEach(it=>Y.classList.add(it)),Y.setAttribute("aria-grabbed","true"),t.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:T,index:rt,el:Y}}))},Ot=()=>{w.split(/\s+/).filter(Boolean).forEach(tt=>Y.classList.remove(tt)),Y.setAttribute("aria-grabbed","false"),g.dragging&&g.dragging.sourceEl===H&&(g.dragging=null),at()};H.addEventListener("dragstart",xt),H.addEventListener("dragend",Ot),H.addEventListener("keydown",tt=>{if(tt.key===" "&&!g.dragging)tt.preventDefault(),g.dragging={item:T,type:c,effect:d?"copy":"move",sourceEl:H,sourceCtx:ot,sourceList:B,sourceIndex:rt,listDirective:{el:t,listPath:e,ctx:n,keyProp:i,copyMode:d,removeMode:f}},w.split(/\s+/).filter(Boolean).forEach(it=>Y.classList.add(it)),Y.setAttribute("aria-grabbed","true");else if(tt.key==="Escape"&&g.dragging&&g.dragging.sourceEl===H)tt.preventDefault(),w.split(/\s+/).filter(Boolean).forEach(it=>Y.classList.remove(it)),Y.setAttribute("aria-grabbed","false"),g.dragging=null,at();else if((tt.key==="ArrowDown"||tt.key==="ArrowRight")&&g.dragging&&g.dragging.sourceEl===H){tt.preventDefault();let it=H.nextElementSibling;it&&(it.firstElementChild||it).focus()}else if((tt.key==="ArrowUp"||tt.key==="ArrowLeft")&&g.dragging&&g.dragging.sourceEl===H){tt.preventDefault();let it=H.previousElementSibling;it&&(it.firstElementChild||it).focus()}}),M(H)});let N=B.length===0;C.split(/\s+/).filter(Boolean).forEach(T=>t.classList.toggle(T,N))}let D=B=>{if(!g.dragging||u&&L(u,n))return;let O=Et(g.dragging.type,l),F=!0;if(m){let T=L(m,n),rt=nt(e,n);typeof T=="number"&&Array.isArray(rt)&&rt.length>=T&&(F=!1)}if(!O||!F){E.split(/\s+/).filter(Boolean).forEach(T=>t.classList.add(T)),y.split(/\s+/).filter(Boolean).forEach(T=>t.classList.remove(T)),at();return}E.split(/\s+/).filter(Boolean).forEach(T=>t.classList.remove(T)),B.preventDefault(),B.dataTransfer&&(B.dataTransfer.dropEffect=d?"copy":"move");let N=Mt(t,B.clientX,B.clientY,a);b&&pe(t,N,b,x)},J=B=>{if(g.dragging&&!(u&&L(u,n))&&(v++,v===1)){let O=Et(g.dragging.type,l),F=!0;if(m){let N=L(m,n),T=nt(e,n);typeof N=="number"&&Array.isArray(T)&&T.length>=N&&(F=!1)}O&&F?(y.split(/\s+/).filter(Boolean).forEach(N=>t.classList.add(N)),t.dispatchEvent(new CustomEvent("drag-enter",{bubbles:!1,detail:{item:g.dragging.item,type:g.dragging.type}}))):E.split(/\s+/).filter(Boolean).forEach(N=>t.classList.add(N))}},R=()=>{g.dragging&&(v--,v<=0&&(v=0,y.split(/\s+/).filter(Boolean).forEach(B=>t.classList.remove(B)),E.split(/\s+/).filter(Boolean).forEach(B=>t.classList.remove(B)),at(),t.dispatchEvent(new CustomEvent("drag-leave",{bubbles:!1,detail:{item:g.dragging?.item}}))))},lt=B=>{if(B.preventDefault(),B.stopPropagation(),v=0,!g.dragging||u&&L(u,n)||!Et(g.dragging.type,l))return;if(m){let G=L(m,n),H=nt(e,n);if(typeof G=="number"&&Array.isArray(H)&&H.length>=G)return}let O=g.dragging.item,F=g.dragging.listDirective,N=g.dragging.sourceIndex,T=Mt(t,B.clientX,B.clientY,a);y.split(/\s+/).filter(Boolean).forEach(G=>t.classList.remove(G)),E.split(/\s+/).filter(Boolean).forEach(G=>t.classList.remove(G)),at();let rt=nt(e,n);if(!Array.isArray(rt))return;let ut=F&&F.el===t;if(ut&&N===T){g.dragging=null;return}if(ut&&N+1===T){g.dragging=null;return}let ot=[...rt];if(ut){let[G]=ot.splice(N,1),H=N<T?T-1:T;ot.splice(H,0,G),n.$set(e,ot),t.dispatchEvent(new CustomEvent("reorder",{bubbles:!0,detail:{list:ot,item:O,from:N,to:H}}))}else{let G=d&&typeof O=="object"?{...O}:O;if(ot.splice(T,0,G),n.$set(e,ot),F&&!F.copyMode&&(f||F.removeMode)){let H=nt(F.listPath,F.ctx);if(Array.isArray(H)&&N!=null){let Y=H.filter((xt,Ot)=>Ot!==N);F.ctx.$set(F.listPath,Y),F.el.dispatchEvent(new CustomEvent("remove",{bubbles:!0,detail:{list:Y,item:O,index:N}}))}}t.dispatchEvent(new CustomEvent("receive",{bubbles:!0,detail:{list:ot,item:O,from:N,fromList:F?nt(F.listPath,F.ctx):null}}))}requestAnimationFrame(()=>{let H=[...t.children][ut&&N<T?T-1:T];if(H){let Y=H.firstElementChild||H;_.split(/\s+/).filter(Boolean).forEach(xt=>Y.classList.add(xt)),Y.addEventListener("animationend",()=>{_.split(/\s+/).filter(Boolean).forEach(xt=>Y.classList.remove(xt))},{once:!0})}}),g.dragging=null},U=B=>{if(g.dragging&&Et(g.dragging.type,l)&&(B.key==="Enter"||B.key===" ")){B.preventDefault();let O=t.querySelector(":focus");if(O){let N=(O.style?.display==="contents"&&O.firstElementChild||O).getBoundingClientRect(),T={preventDefault(){},stopPropagation(){},clientX:N.left+N.width/2,clientY:N.top+N.height+1,dataTransfer:null};lt(T)}}};t.addEventListener("dragover",D),t.addEventListener("dragenter",J),t.addEventListener("dragleave",R),t.addEventListener("drop",lt),t.addEventListener("keydown",U),Q(()=>{t.removeEventListener("dragover",D),t.removeEventListener("dragenter",J),t.removeEventListener("dragleave",R),t.removeEventListener("drop",lt),t.removeEventListener("keydown",U)}),n.$watch(S),S()}});$("drag-multiple",{priority:16,init(t,r){let e=I(t),n=t.getAttribute("drag-group"),o=t.getAttribute("drag-multiple-class")||"nojs-selected";if(!n){st("drag-multiple requires drag-group attribute");return}g.selected.has(n)||g.selected.set(n,new Set);let i=g.selected.get(n),s=c=>{let l=t.getAttribute("drag"),f={item:l?L(l,e):null,el:t,ctx:e};if(c.ctrlKey||c.metaKey){let p=[...i].find(u=>u.el===t);p?(i.delete(p),o.split(/\s+/).filter(Boolean).forEach(u=>t.classList.remove(u))):(i.add(f),o.split(/\s+/).filter(Boolean).forEach(u=>t.classList.add(u)))}else{for(let p of i)o.split(/\s+/).filter(Boolean).forEach(u=>p.el.classList.remove(u));i.clear(),i.add(f),o.split(/\s+/).filter(Boolean).forEach(p=>t.classList.add(p))}};t.addEventListener("click",s),Q(()=>{t.removeEventListener("click",s);let c=[...i].find(l=>l.el===t);c&&i.delete(c)});let a=c=>{if(c.key==="Escape"){for(let l of i)o.split(/\s+/).filter(Boolean).forEach(d=>l.el.classList.remove(d));i.clear()}};window.addEventListener("keydown",a),Q(()=>window.removeEventListener("keydown",a))}});function Ce(){if(typeof window>"u")return null;let t=h.router||{};if(t.mode==="hash")return window.location.hash.slice(1)||"/";let r=(t.base||"/").replace(/\/$/,"");return window.location.pathname.replace(r,"")||"/"}var me={get baseApiUrl(){return h.baseApiUrl},set baseApiUrl(t){h.baseApiUrl=t},get locale(){return q.locale},set locale(t){q.locale=t},config(t={}){let r={...h.headers},e={...h.cache},n={...h.templates},o={...h.router},i={...h.i18n};Object.assign(h,t),t.headers&&(h.headers={...r,...t.headers}),t.csrf&&(h.csrf=t.csrf),t.cache&&(h.cache={...e,...t.cache}),t.templates&&(h.templates={...n,...t.templates}),t.router&&(h.router={...o,...t.router}),t.i18n&&(h.i18n={...i,...t.i18n},q.locale=t.i18n.defaultLocale||q.locale)},async init(t){if(typeof document>"u")return;if(t=t||document.body,z("Initializing..."),h.i18n.loadPath){let e=new Set([q.locale,h.i18n.fallbackLocale]);await Promise.all([...e].map(n=>qt(n)))}kt(t);let r=Ce();await ne(r),document.querySelector("[route-view]")&&Vt(de()),M(t),et&&await et.init(),z("Initialized."),oe(),h.devtools&&typeof window<"u"&&(window.__NOJS_DEVTOOLS__={stores:V,config:h,refs:ft,router:et,filters:Object.keys(k),validators:Object.keys(_t),version:me.version},z("DevTools enabled \u2014 access via window.__NOJS_DEVTOOLS__"))},directive(t,r){$(t,r)},filter(t,r){k[t]=r},validator(t,r){_t[t]=r},i18n(t){if(t.loadPath!=null&&(h.i18n.loadPath=t.loadPath),t.ns&&(h.i18n.ns=t.ns),t.cache!=null&&(h.i18n.cache=t.cache),t.persist!=null&&(h.i18n.persist=t.persist),t.locales&&(q.locales=t.locales),t.fallbackLocale&&(h.i18n.fallbackLocale=t.fallbackLocale),t.defaultLocale&&(q._locale=t.defaultLocale),h.i18n.persist&&typeof localStorage<"u")try{let r=localStorage.getItem("nojs-locale");if(r&&q.locales[r]){q._locale=r;return}}catch{}if(t.detectBrowser){let r=typeof navigator<"u"?navigator.language:"en",e=r.split("-")[0];q.locales[r]?q._locale=r:q.locales[e]&&(q._locale=e)}},on(t,r){return yt[t]||(yt[t]=[]),yt[t].push(r),()=>{yt[t]=yt[t].filter(e=>e!==r)}},interceptor(t,r){At[t]&&At[t].push(r)},get store(){return V},get router(){return et},createContext:P,evaluate:L,findContext:I,processTree:M,resolve:nt,version:"1.4.0"},wn=me;export{wn as default};
63
+ `.trim(),r=document.createElement("style");r.setAttribute("data-nojs-dnd",""),r.textContent=t,document.head.appendChild(r)}function Mt(t,r,e,n){let o=[...t.children].filter(i=>!i.classList.contains("nojs-drop-placeholder"));if(o.length===0)return 0;for(let i=0;i<o.length;i++){let a=(o[i].style&&o[i].style.display==="contents"&&o[i].firstElementChild||o[i]).getBoundingClientRect();if(n==="horizontal"){let c=a.left+a.width/2;if(r<c)return i}else if(n==="grid"){let c=a.left+a.width/2,l=a.top+a.height/2;if(e<l&&r<c||e<a.top+a.height&&r<c)return i}else{let c=a.top+a.height/2;if(e<c)return i}}return o.length}function me(t,r,e,n){at();let o;if(e==="auto"){if(o=document.createElement("div"),o.className=n||"nojs-drop-placeholder",g.dragging&&g.dragging.sourceEl){let a=(g.dragging.sourceEl.firstElementChild||g.dragging.sourceEl).getBoundingClientRect();a.height>0&&(o.style.height=a.height+"px"),a.width>0&&(o.style.width=a.width+"px")}}else{let s=document.getElementById(e.startsWith("#")?e.slice(1):e);s&&s.content?(o=document.createElement("div"),o.style.display="contents",o.className=n||"nojs-drop-placeholder",o.appendChild(s.content.cloneNode(!0))):(o=document.createElement("div"),o.className=n||"nojs-drop-placeholder")}o.classList.add("nojs-drop-placeholder");let i=[...t.children].filter(s=>!s.classList.contains("nojs-drop-placeholder"));r>=i.length?t.appendChild(o):t.insertBefore(o,i[r]),g.placeholder=o}function at(){g.placeholder&&(g.placeholder.remove(),g.placeholder=null)}function Et(t,r){return!r||r==="*"?!0:r.split(",").map(n=>n.trim()).includes(t)}function Le(t,r){let e=document.createElement("div");e.style.cssText="position:fixed;top:-9999px;left:-9999px;pointer-events:none;z-index:99999;";let n=t.style&&t.style.display==="contents"&&t.firstElementChild||t,o=n.getBoundingClientRect(),i=o.width,s=o.height,a=getComputedStyle(n),c=Math.min(r,3);for(let d=c-1;d>=0;d--){let f=document.createElement("div"),p=d*4;f.style.cssText="position:absolute;top:"+p+"px;left:"+p+"px;width:"+i+"px;height:"+s+"px;border-radius:"+a.borderRadius+";box-shadow:0 1px 4px rgba(0,0,0,0.12);overflow:hidden;box-sizing:border-box;",d===0?(f.innerHTML=n.innerHTML,f.style.background=a.backgroundColor||"#fff",f.style.border=a.border,f.style.padding=a.padding,f.style.fontSize=a.fontSize,f.style.color=a.color,f.style.fontFamily=a.fontFamily):(f.style.background=a.backgroundColor||"#fff",f.style.border=a.border||"1px solid #ddd"),e.appendChild(f)}let l=document.createElement("div");return l.textContent=r,l.style.cssText="position:absolute;top:-6px;right:-6px;min-width:22px;height:22px;padding:0 5px;background:#3b82f6;color:#fff;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,0.2);",e.appendChild(l),e.style.width=i+(c-1)*4+"px",e.style.height=s+(c-1)*4+"px",e}$("drag",{priority:15,init(t,r,e){Yt();let n=I(t),o=t.getAttribute("drag-type")||"default",i=t.getAttribute("drag-effect")||"move",s=t.getAttribute("drag-handle"),a=t.getAttribute("drag-image"),c=t.getAttribute("drag-image-offset")||"0,0",l=t.getAttribute("drag-disabled"),d=t.getAttribute("drag-class")||"nojs-dragging",f=t.getAttribute("drag-ghost-class");t.draggable=!0,t.setAttribute("aria-grabbed","false"),t.getAttribute("tabindex")||t.setAttribute("tabindex","0");let p=!0;if(s){let x=w=>{p=!!w.target.closest(s)};t.addEventListener("mousedown",x),Q(()=>t.removeEventListener("mousedown",x))}let u=x=>{if(s&&!p){x.preventDefault();return}if(l&&L(l,n)){x.preventDefault();return}let w=L(e,n),y=t.getAttribute("drag-group"),E=w;if(y&&g.selected.has(y)){let _=g.selected.get(y);_.size>0&&[..._].some(A=>A.el===t)&&(E=[..._].map(A=>A.item))}if(g.dragging={item:E,type:o,effect:i,sourceEl:t,sourceCtx:n,sourceList:null,sourceIndex:null,listDirective:null},x.dataTransfer){if(x.dataTransfer.effectAllowed=i,x.dataTransfer.setData("text/plain",""),Array.isArray(E)&&E.length>1&&x.dataTransfer.setDragImage){let _=Le(t,E.length);document.body.appendChild(_);let C=t.getBoundingClientRect();x.dataTransfer.setDragImage(_,C.width/2,C.height/2),requestAnimationFrame(()=>_.remove())}else if(a&&x.dataTransfer.setDragImage)if(a==="none"){let _=document.createElement("div");_.style.cssText="width:1px;height:1px;opacity:0;position:fixed;top:-999px",document.body.appendChild(_);let[C,A]=c.split(",").map(Number);x.dataTransfer.setDragImage(_,C||0,A||0),requestAnimationFrame(()=>_.remove())}else{let _=t.querySelector(a);if(_){let[C,A]=c.split(",").map(Number);f&&_.classList.add(f),x.dataTransfer.setDragImage(_,C||0,A||0)}}}if(d.split(/\s+/).filter(Boolean).forEach(_=>t.classList.add(_)),Array.isArray(E)&&y&&g.selected.has(y))for(let _ of g.selected.get(y))_.el!==t&&d.split(/\s+/).filter(Boolean).forEach(C=>_.el.classList.add(C));t.setAttribute("aria-grabbed","true"),t.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:E,index:g.dragging.sourceIndex,el:t}}))},m=()=>{d.split(/\s+/).filter(Boolean).forEach(w=>t.classList.remove(w));let x=t.getAttribute("drag-group");if(x&&g.selected.has(x))for(let w of g.selected.get(x))d.split(/\s+/).filter(Boolean).forEach(y=>w.el.classList.remove(y));if(t.setAttribute("aria-grabbed","false"),f&&a&&a!=="none"){let w=t.querySelector(a);w&&w.classList.remove(f)}t.dispatchEvent(new CustomEvent("drag-end",{bubbles:!0,detail:{item:g.dragging?.item,index:g.dragging?.sourceIndex,dropped:g.dragging===null}})),g.dragging=null,at()};if(t.addEventListener("dragstart",u),t.addEventListener("dragend",m),Q(()=>{t.removeEventListener("dragstart",u),t.removeEventListener("dragend",m)}),l){let x=function(){let w=!!L(l,n);t.draggable=!w,w?t.removeAttribute("aria-grabbed"):t.setAttribute("aria-grabbed","false")};n.$watch(x)}let b=x=>{if(g.dragging&&!g.dragging.sourceEl.isConnected&&(g.dragging=null),x.key===" "&&!g.dragging){x.preventDefault();let w=L(e,n);g.dragging={item:w,type:o,effect:i,sourceEl:t,sourceCtx:n,sourceList:null,sourceIndex:null,listDirective:null},d.split(/\s+/).filter(Boolean).forEach(y=>t.classList.add(y)),t.setAttribute("aria-grabbed","true"),t.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:w,index:null,el:t}}))}else x.key==="Escape"&&g.dragging&&g.dragging.sourceEl===t&&(x.preventDefault(),d.split(/\s+/).filter(Boolean).forEach(w=>t.classList.remove(w)),t.setAttribute("aria-grabbed","false"),g.dragging=null,at())};t.addEventListener("keydown",b),Q(()=>t.removeEventListener("keydown",b))}});$("drop",{priority:15,init(t,r,e){Yt();let n=I(t),o=t.getAttribute("drop-accept")||"default",i=t.getAttribute("drop-effect")||"move",s=t.getAttribute("drop-class")||"nojs-drag-over",a=t.getAttribute("drop-reject-class")||"nojs-drop-reject",c=t.getAttribute("drop-disabled"),l=t.getAttribute("drop-max"),d=t.getAttribute("drop-sort"),f=t.getAttribute("drop-placeholder"),p=t.getAttribute("drop-placeholder-class");t.setAttribute("aria-dropeffect",i);let u=0,m=E=>{if(!g.dragging||c&&L(c,n))return;let _=Et(g.dragging.type,o),C=!0;if(l){let A=L(l,n),v=jt(t);typeof A=="number"&&v>=A&&(C=!1)}if(!_||!C){a.split(/\s+/).filter(Boolean).forEach(A=>t.classList.add(A)),s.split(/\s+/).filter(Boolean).forEach(A=>t.classList.remove(A)),at();return}if(a.split(/\s+/).filter(Boolean).forEach(A=>t.classList.remove(A)),E.preventDefault(),E.dataTransfer&&(E.dataTransfer.dropEffect=i),d){let A=Mt(t,E.clientX,E.clientY,d);f&&me(t,A,f,p),t.dispatchEvent(new CustomEvent("drag-over",{bubbles:!1,detail:{item:g.dragging.item,index:A}}))}},b=E=>{if(g.dragging&&!(c&&L(c,n))&&(u++,u===1)){let _=Et(g.dragging.type,o),C=!0;if(l){let A=L(l,n),v=jt(t);typeof A=="number"&&v>=A&&(C=!1)}_&&C?(s.split(/\s+/).filter(Boolean).forEach(A=>t.classList.add(A)),t.dispatchEvent(new CustomEvent("drag-enter",{bubbles:!1,detail:{item:g.dragging.item,type:g.dragging.type}}))):a.split(/\s+/).filter(Boolean).forEach(A=>t.classList.add(A))}},x=E=>{g.dragging&&(u--,u<=0&&(u=0,s.split(/\s+/).filter(Boolean).forEach(_=>t.classList.remove(_)),a.split(/\s+/).filter(Boolean).forEach(_=>t.classList.remove(_)),at(),t.dispatchEvent(new CustomEvent("drag-leave",{bubbles:!1,detail:{item:g.dragging.item}}))))},w=E=>{if(E.preventDefault(),E.stopPropagation(),u=0,!g.dragging||c&&L(c,n)||!Et(g.dragging.type,o))return;if(l){let S=L(l,n),D=jt(t);if(typeof S=="number"&&D>=S)return}let _=g.dragging.item,C=g.dragging.type,A=g.dragging.effect,v=0;d&&(v=Mt(t,E.clientX,E.clientY,d)),s.split(/\s+/).filter(Boolean).forEach(S=>t.classList.remove(S)),a.split(/\s+/).filter(Boolean).forEach(S=>t.classList.remove(S)),at();let j={$drag:_,$dragType:C,$dragEffect:A,$dropIndex:v,$source:{list:g.dragging.sourceList,index:g.dragging.sourceIndex,el:g.dragging.sourceEl},$target:{list:null,index:v,el:t},$el:t};Z(e,n,j),g.dragging=null,t.dispatchEvent(new CustomEvent("drop",{bubbles:!1,detail:{item:_,index:v,source:j.$source,target:j.$target,effect:A}}))},y=E=>{g.dragging&&(E.key==="Enter"||E.key===" ")&&(E.preventDefault(),w(E))};t.addEventListener("dragover",m),t.addEventListener("dragenter",b),t.addEventListener("dragleave",x),t.addEventListener("drop",w),t.addEventListener("keydown",y),Q(()=>{t.removeEventListener("dragover",m),t.removeEventListener("dragenter",b),t.removeEventListener("dragleave",x),t.removeEventListener("drop",w),t.removeEventListener("keydown",y)})}});var pe=new Map;$("drag-list",{priority:10,init(t,r,e){Yt();let n=I(t),o=t.getAttribute("template"),i=t.getAttribute("drag-list-key"),s=t.getAttribute("drag-list-item")||"item",a=t.getAttribute("drop-sort")||"vertical",c=t.getAttribute("drag-type")||"__draglist_"+e,l=t.getAttribute("drop-accept")||c,d=t.hasAttribute("drag-list-copy"),f=t.hasAttribute("drag-list-remove"),p=t.getAttribute("drag-disabled"),u=t.getAttribute("drop-disabled"),m=t.getAttribute("drop-max"),b=t.getAttribute("drop-placeholder"),x=t.getAttribute("drop-placeholder-class"),w=t.getAttribute("drag-class")||"nojs-dragging",y=t.getAttribute("drop-class")||"nojs-drag-over",E=t.getAttribute("drop-reject-class")||"nojs-drop-reject",_=t.getAttribute("drop-settle-class")||"nojs-drop-settle",C=t.getAttribute("drop-empty-class")||"nojs-drag-list-empty";t.setAttribute("role","listbox"),t.setAttribute("aria-dropeffect",d?"copy":"move");let A={listPath:e,ctx:n,el:t};pe.set(t,A),Q(()=>pe.delete(t));let v=0,j=null;function S(){let B=nt(e,n);if(!Array.isArray(B))return;if(B===j&&B.length>0&&t.children.length>0){for(let T of t.children)T.__ctx&&T.__ctx.$notify&&T.__ctx.$notify();return}j=B;let O=o?document.getElementById(o):null;if(!O)return;t.innerHTML="";let F=B.length;B.forEach((T,rt)=>{let ut={[s]:T,$index:rt,$count:F,$first:rt===0,$last:rt===F-1,$even:rt%2===0,$odd:rt%2!==0},ot=P(ut,n),G=O.content.cloneNode(!0),H=document.createElement("div");H.style.display="contents",H.__ctx=ot,H.setAttribute("role","option"),H.appendChild(G),t.appendChild(H);let Y=H.firstElementChild||H;Y.draggable=!0,Y.setAttribute("aria-grabbed","false"),Y.getAttribute("tabindex")||Y.setAttribute("tabindex","0");let xt=tt=>{if(p&&L(p,n)){tt.preventDefault();return}g.dragging={item:T,type:c,effect:d?"copy":"move",sourceEl:H,sourceCtx:ot,sourceList:B,sourceIndex:rt,listDirective:{el:t,listPath:e,ctx:n,keyProp:i,copyMode:d,removeMode:f}},tt.dataTransfer&&(tt.dataTransfer.effectAllowed=d?"copy":"move",tt.dataTransfer.setData("text/plain","")),w.split(/\s+/).filter(Boolean).forEach(it=>Y.classList.add(it)),Y.setAttribute("aria-grabbed","true"),t.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:T,index:rt,el:Y}}))},Ht=()=>{w.split(/\s+/).filter(Boolean).forEach(tt=>Y.classList.remove(tt)),Y.setAttribute("aria-grabbed","false"),g.dragging&&g.dragging.sourceEl===H&&(g.dragging=null),at()};H.addEventListener("dragstart",xt),H.addEventListener("dragend",Ht),H.addEventListener("keydown",tt=>{if(tt.key===" "&&!g.dragging)tt.preventDefault(),g.dragging={item:T,type:c,effect:d?"copy":"move",sourceEl:H,sourceCtx:ot,sourceList:B,sourceIndex:rt,listDirective:{el:t,listPath:e,ctx:n,keyProp:i,copyMode:d,removeMode:f}},w.split(/\s+/).filter(Boolean).forEach(it=>Y.classList.add(it)),Y.setAttribute("aria-grabbed","true");else if(tt.key==="Escape"&&g.dragging&&g.dragging.sourceEl===H)tt.preventDefault(),w.split(/\s+/).filter(Boolean).forEach(it=>Y.classList.remove(it)),Y.setAttribute("aria-grabbed","false"),g.dragging=null,at();else if((tt.key==="ArrowDown"||tt.key==="ArrowRight")&&g.dragging&&g.dragging.sourceEl===H){tt.preventDefault();let it=H.nextElementSibling;it&&(it.firstElementChild||it).focus()}else if((tt.key==="ArrowUp"||tt.key==="ArrowLeft")&&g.dragging&&g.dragging.sourceEl===H){tt.preventDefault();let it=H.previousElementSibling;it&&(it.firstElementChild||it).focus()}}),M(H)});let N=B.length===0;C.split(/\s+/).filter(Boolean).forEach(T=>t.classList.toggle(T,N))}let D=B=>{if(!g.dragging||u&&L(u,n))return;let O=Et(g.dragging.type,l),F=!0;if(m){let T=L(m,n),rt=nt(e,n);typeof T=="number"&&Array.isArray(rt)&&rt.length>=T&&(F=!1)}if(!O||!F){E.split(/\s+/).filter(Boolean).forEach(T=>t.classList.add(T)),y.split(/\s+/).filter(Boolean).forEach(T=>t.classList.remove(T)),at();return}E.split(/\s+/).filter(Boolean).forEach(T=>t.classList.remove(T)),B.preventDefault(),B.dataTransfer&&(B.dataTransfer.dropEffect=d?"copy":"move");let N=Mt(t,B.clientX,B.clientY,a);b&&me(t,N,b,x)},J=B=>{if(g.dragging&&!(u&&L(u,n))&&(v++,v===1)){let O=Et(g.dragging.type,l),F=!0;if(m){let N=L(m,n),T=nt(e,n);typeof N=="number"&&Array.isArray(T)&&T.length>=N&&(F=!1)}O&&F?(y.split(/\s+/).filter(Boolean).forEach(N=>t.classList.add(N)),t.dispatchEvent(new CustomEvent("drag-enter",{bubbles:!1,detail:{item:g.dragging.item,type:g.dragging.type}}))):E.split(/\s+/).filter(Boolean).forEach(N=>t.classList.add(N))}},R=()=>{g.dragging&&(v--,v<=0&&(v=0,y.split(/\s+/).filter(Boolean).forEach(B=>t.classList.remove(B)),E.split(/\s+/).filter(Boolean).forEach(B=>t.classList.remove(B)),at(),t.dispatchEvent(new CustomEvent("drag-leave",{bubbles:!1,detail:{item:g.dragging?.item}}))))},lt=B=>{if(B.preventDefault(),B.stopPropagation(),v=0,!g.dragging||u&&L(u,n)||!Et(g.dragging.type,l))return;if(m){let G=L(m,n),H=nt(e,n);if(typeof G=="number"&&Array.isArray(H)&&H.length>=G)return}let O=g.dragging.item,F=g.dragging.listDirective,N=g.dragging.sourceIndex,T=Mt(t,B.clientX,B.clientY,a);y.split(/\s+/).filter(Boolean).forEach(G=>t.classList.remove(G)),E.split(/\s+/).filter(Boolean).forEach(G=>t.classList.remove(G)),at();let rt=nt(e,n);if(!Array.isArray(rt))return;let ut=F&&F.el===t;if(ut&&N===T){g.dragging=null;return}if(ut&&N+1===T){g.dragging=null;return}let ot=[...rt];if(ut){let[G]=ot.splice(N,1),H=N<T?T-1:T;ot.splice(H,0,G),n.$set(e,ot),t.dispatchEvent(new CustomEvent("reorder",{bubbles:!0,detail:{list:ot,item:O,from:N,to:H}}))}else{let G=d&&typeof O=="object"?{...O}:O;if(ot.splice(T,0,G),n.$set(e,ot),F&&!F.copyMode&&(f||F.removeMode)){let H=nt(F.listPath,F.ctx);if(Array.isArray(H)&&N!=null){let Y=H.filter((xt,Ht)=>Ht!==N);F.ctx.$set(F.listPath,Y),F.el.dispatchEvent(new CustomEvent("remove",{bubbles:!0,detail:{list:Y,item:O,index:N}}))}}t.dispatchEvent(new CustomEvent("receive",{bubbles:!0,detail:{list:ot,item:O,from:N,fromList:F?nt(F.listPath,F.ctx):null}}))}requestAnimationFrame(()=>{let H=[...t.children][ut&&N<T?T-1:T];if(H){let Y=H.firstElementChild||H;_.split(/\s+/).filter(Boolean).forEach(xt=>Y.classList.add(xt)),Y.addEventListener("animationend",()=>{_.split(/\s+/).filter(Boolean).forEach(xt=>Y.classList.remove(xt))},{once:!0})}}),g.dragging=null},U=B=>{if(g.dragging&&Et(g.dragging.type,l)&&(B.key==="Enter"||B.key===" ")){B.preventDefault();let O=t.querySelector(":focus");if(O){let N=(O.style?.display==="contents"&&O.firstElementChild||O).getBoundingClientRect(),T={preventDefault(){},stopPropagation(){},clientX:N.left+N.width/2,clientY:N.top+N.height+1,dataTransfer:null};lt(T)}}};t.addEventListener("dragover",D),t.addEventListener("dragenter",J),t.addEventListener("dragleave",R),t.addEventListener("drop",lt),t.addEventListener("keydown",U),Q(()=>{t.removeEventListener("dragover",D),t.removeEventListener("dragenter",J),t.removeEventListener("dragleave",R),t.removeEventListener("drop",lt),t.removeEventListener("keydown",U)}),n.$watch(S),S()}});$("drag-multiple",{priority:16,init(t,r){let e=I(t),n=t.getAttribute("drag-group"),o=t.getAttribute("drag-multiple-class")||"nojs-selected";if(!n){st("drag-multiple requires drag-group attribute");return}g.selected.has(n)||g.selected.set(n,new Set);let i=g.selected.get(n),s=c=>{let l=t.getAttribute("drag"),f={item:l?L(l,e):null,el:t,ctx:e};if(c.ctrlKey||c.metaKey){let p=[...i].find(u=>u.el===t);p?(i.delete(p),o.split(/\s+/).filter(Boolean).forEach(u=>t.classList.remove(u))):(i.add(f),o.split(/\s+/).filter(Boolean).forEach(u=>t.classList.add(u)))}else{for(let p of i)o.split(/\s+/).filter(Boolean).forEach(u=>p.el.classList.remove(u));i.clear(),i.add(f),o.split(/\s+/).filter(Boolean).forEach(p=>t.classList.add(p))}};t.addEventListener("click",s),Q(()=>{t.removeEventListener("click",s);let c=[...i].find(l=>l.el===t);c&&i.delete(c)});let a=c=>{if(c.key==="Escape"){for(let l of i)o.split(/\s+/).filter(Boolean).forEach(d=>l.el.classList.remove(d));i.clear()}};window.addEventListener("keydown",a),Q(()=>window.removeEventListener("keydown",a))}});function Ce(){if(typeof window>"u")return null;let t=h.router||{};if(t.mode==="hash")return window.location.hash.slice(1)||"/";let r=(t.base||"/").replace(/\/$/,"");return window.location.pathname.replace(r,"")||"/"}var Ot={get baseApiUrl(){return h.baseApiUrl},set baseApiUrl(t){h.baseApiUrl=t},get locale(){return W.locale},set locale(t){W.locale=t},config(t={}){let r={...h.headers},e={...h.cache},n={...h.templates},o={...h.router},i={...h.i18n};Object.assign(h,t),t.headers&&(h.headers={...r,...t.headers}),t.csrf&&(h.csrf=t.csrf),t.cache&&(h.cache={...e,...t.cache}),t.templates&&(h.templates={...n,...t.templates}),t.router&&(h.router={...o,...t.router}),t.i18n&&(h.i18n={...i,...t.i18n},W.locale=t.i18n.defaultLocale||W.locale)},async init(t){if(typeof document>"u"||Ot._initialized)return;if(Ot._initialized=!0,t=t||document.body,z("Initializing..."),h.i18n.loadPath){let e=new Set([W.locale,h.i18n.fallbackLocale]);await Promise.all([...e].map(n=>Wt(n)))}kt(t);let r=Ce();await oe(r),document.querySelector("[route-view]")&&Gt(ue()),M(t),et&&await et.init(),z("Initialized."),ie(),h.devtools&&typeof window<"u"&&(window.__NOJS_DEVTOOLS__={stores:V,config:h,refs:ft,router:et,filters:Object.keys(k),validators:Object.keys(_t),version:Ot.version},z("DevTools enabled \u2014 access via window.__NOJS_DEVTOOLS__"))},directive(t,r){$(t,r)},filter(t,r){k[t]=r},validator(t,r){_t[t]=r},i18n(t){if(t.loadPath!=null&&(h.i18n.loadPath=t.loadPath),t.ns&&(h.i18n.ns=t.ns),t.cache!=null&&(h.i18n.cache=t.cache),t.persist!=null&&(h.i18n.persist=t.persist),t.locales&&(W.locales=t.locales),t.fallbackLocale&&(h.i18n.fallbackLocale=t.fallbackLocale),t.defaultLocale&&(W._locale=t.defaultLocale),h.i18n.persist&&typeof localStorage<"u")try{let r=localStorage.getItem("nojs-locale");if(r){W._locale=r;return}}catch{}if(t.detectBrowser){let r=typeof navigator<"u"?navigator.language:"en",e=r.split("-")[0];W.locales[r]?W._locale=r:W.locales[e]&&(W._locale=e)}},on(t,r){return yt[t]||(yt[t]=[]),yt[t].push(r),()=>{yt[t]=yt[t].filter(e=>e!==r)}},interceptor(t,r){At[t]&&At[t].push(r)},get store(){return V},get router(){return et},createContext:P,evaluate:L,findContext:I,processTree:M,resolve:nt,version:"1.4.3"},wn=Ot;export{wn as default};
64
64
  //# sourceMappingURL=no.js.map