@erickxavier/no-js 1.10.1 → 1.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/cjs/no.js CHANGED
@@ -1,15 +1,15 @@
1
1
  /**
2
- * No.JS v1.10.1 — The HTML-First Reactive Framework
2
+ * No.JS v1.11.0 — The HTML-First Reactive Framework
3
3
  * No more JavaScript. Just HTML attributes with superpowers.
4
4
  * @author exs.dev
5
5
  * @homepage https://no-js.dev
6
6
  * @license MIT
7
7
  * @see https://github.com/ErickXavier/no-js
8
8
  */
9
- var Xe=Object.defineProperty;var or=Object.getOwnPropertyDescriptor;var sr=Object.getOwnPropertyNames;var ar=Object.prototype.hasOwnProperty;var bt=(e,n)=>()=>(e&&(n=e(e=0)),n);var vt=(e,n)=>{for(var r in n)Xe(e,r,{get:n[r],enumerable:!0})},cr=(e,n,r,t)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of sr(n))!ar.call(e,i)&&i!==r&&Xe(e,i,{get:()=>n[i],enumerable:!(t=or(n,i))||t.enumerable});return e};var lr=e=>cr(Xe({},"__esModule",{value:!0}),e);function Ye(e){de=e}function _t(e){Z=e}function te(...e){C.debug&&console.log("[No.JS]",...e)}function K(...e){console.warn("[No.JS]",...e)}function Ee(){for(let e of Ce){if(e._el&&!e._el.isConnected){Ce.delete(e);continue}e()}}function Q(e,n,r){let t=n.$watch(r);if(q(()=>{t(),Ce.delete(r)}),typeof e=="string"&&e.includes("$store")){Ce.add(r),r._el=de;let i=de;if(i&&i.parentElement){let o=new MutationObserver(()=>{i.isConnected||(Ce.delete(r),t(),o.disconnect())});o.observe(i.parentElement,{childList:!0,subtree:!1}),q(()=>o.disconnect())}}}function q(e){de&&(de.__disposers=de.__disposers||[],de.__disposers.push(e))}function we(e,n){(ge[e]||[]).forEach(r=>r(n))}var C,Oe,ge,G,Ce,F,he,me,ye,Z,de,re=bt(()=>{C={baseApiUrl:"",headers:{},timeout:1e4,retries:0,retryDelay:1e3,credentials:"same-origin",csrf:null,cache:{strategy:"none",ttl:3e5},templates:{cache:!0},router:{useHash:!1,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,sanitize:!0,dangerouslyDisableSanitize:!1,sanitizeHtml:null,exprCacheSize:500,maxEventListeners:100},Oe={request:[],response:[]},ge={},G={},Ce=new Set,F={},he={},me=new Map,ye={},Z=null,de=null});var At={};vt(At,{_i18n:()=>Y,_i18nListeners:()=>Se,_loadI18nForLocale:()=>Ge,_loadI18nNamespace:()=>Qe,_notifyI18n:()=>je,_watchI18n:()=>Me});function Me(e){return Se.add(e),()=>Se.delete(e)}function je(){for(let e of Se){if(e._el&&!e._el.isConnected){Se.delete(e);continue}e()}}function wt(e,n){let r={...e};for(let t of Object.keys(n))n[t]&&typeof n[t]=="object"&&!Array.isArray(n[t])&&e[t]&&typeof e[t]=="object"&&!Array.isArray(e[t])?r[t]=wt(e[t],n[t]):r[t]=n[t];return r}async function Re(e,n){let r=n?`${e}:${n}`:e;if(C.i18n.cache&&Et.has(r))return;let t=C.i18n.loadPath.replace("{locale}",e);if(n)t=t.replace("{ns}",n);else if(t.includes("{ns}"))return;try{let i=await fetch(t);if(!i.ok){K(`i18n: failed to load ${t} (${i.status})`);return}let o=await i.json();Y.locales[e]=wt(Y.locales[e]||{},o),C.i18n.cache&&Et.set(r,o)}catch(i){K(`i18n: error loading ${t}`,i)}}async function Ge(e){if(!C.i18n.loadPath)return;let n=C.i18n.ns;!n.length||!C.i18n.loadPath.includes("{ns}")?await Re(e,null):await Promise.all(n.map(r=>Re(e,r)))}async function Qe(e){if(!C.i18n.loadPath)return;xt.add(e);let n=new Set([Y.locale,C.i18n.fallbackLocale]);await Promise.all([...n].map(r=>Re(r,e)))}var Se,Et,xt,Y,be=bt(()=>{re();Se=new Set;Et=new Map,xt=new Set;Y={_locale:"en",locales:{},get locale(){return this._locale},set locale(e){if(this._locale!==e){if(this._locale=e,C.i18n.persist&&typeof localStorage<"u")try{localStorage.setItem("nojs-locale",e)}catch{}if(C.i18n.loadPath){let n=new Set([...C.i18n.ns,...xt]);Promise.all([...n].map(r=>Re(e,r))).then(()=>je())}else je()}},t(e,n={}){let r=Y.locales[Y.locale]||Y.locales[C.i18n.fallbackLocale]||{},t=e.split(".").reduce((i,o)=>i?.[o],r);if(t==null)return e;if(typeof t=="string"&&t.includes("|")&&n.count!=null){let i=t.split("|").map(o=>o.trim());t=Number(n.count)===1?i[0]:i[1]||i[0]}return typeof t=="string"&&(t=t.replace(/\{(\w+)\}/g,(i,o)=>n[o]!=null?n[o]:"")),t}}});var Jr={};vt(Jr,{default:()=>Vr});module.exports=lr(Jr);re();be();re();be();re();be();var ke=new Map;function ur(e){return e===void 0&&(e=typeof window<"u"&&window.location?window.location.hostname:""),e===""||e==="localhost"||e==="127.0.0.1"||e==="::1"||e==="0.0.0.0"||e.endsWith(".localhost")}function oe(e,n){!C.devtools||typeof window>"u"||window.dispatchEvent(new CustomEvent("nojs:devtools",{detail:{type:e,data:n,timestamp:Date.now()}}))}function Ze(e){if(!e||!e.__isProxy)return null;let n=e.__raw,r={};for(let t of Object.keys(n)){if(t.startsWith("__"))continue;let i=n[t];if(i&&typeof i=="object"&&i.__isProxy)r[t]=Ze(i);else try{JSON.stringify(i),r[t]=i}catch{r[t]=String(i)}}return r}function Lt(e){if(!e||!e.tagName)return null;let n=e.tagName.toLowerCase(),r=e.id?`#${e.id}`:"",t=e.className&&typeof e.className=="string"?"."+e.className.trim().split(/\s+/).join("."):"";return n+r+t}function Ct(e){let n=document.querySelector(e);if(!n)return{error:"Element not found",selector:e};let r=n.__ctx;return{selector:e,tag:Lt(n),hasContext:!!r,contextId:r?.__raw?.__devtoolsId??null,data:r?Ze(r):null,directives:[...n.attributes].filter(t=>!["class","id","style"].includes(t.name)).map(t=>({name:t.name,value:t.value}))}}function St(e){let n=G[e];return n?{name:e,contextId:n.__raw?.__devtoolsId??null,data:Ze(n)}:{error:"Store not found",name:e}}function Tt(e){let n=e?document.querySelector(e):document.body;if(!n)return{error:"Root not found",selector:e};function r(t){let i=t.__ctx,o={tag:Lt(t),contextId:i?.__raw?.__devtoolsId??null,children:[]};for(let s of t.children)s.tagName==="TEMPLATE"||s.tagName==="SCRIPT"||(s.__ctx||s.__declared)&&o.children.push(r(s));return o}return r(n)}function kt(e,n,r){let t=ke.get(e);return t?(t[n]=r,{ok:!0,id:e,key:n}):{error:"Context not found",id:e}}function It(e,n,r){let t=G[e];return t?(t[n]=r,{ok:!0,name:e,key:n}):{error:"Store not found",name:e}}function $t(){let e=0;for(let[,n]of ke)n.__listeners&&(e+=n.__listeners.size);return{contexts:ke.size,stores:Object.keys(G).length,listeners:e,refs:Object.keys(ye).length,hasRouter:!!Z,locale:Y.locale}}var Te=null;function Nt(e){et();let n=document.querySelector(e);if(!n)return;let r=n.getBoundingClientRect();Te=document.createElement("div"),Te.id="__nojs_devtools_highlight__",Object.assign(Te.style,{position:"fixed",top:r.top+"px",left:r.left+"px",width:r.width+"px",height:r.height+"px",background:"rgba(66, 133, 244, 0.25)",border:"2px solid rgba(66, 133, 244, 0.8)",pointerEvents:"none",zIndex:"2147483647",borderRadius:"3px"}),document.body.appendChild(Te)}function et(){Te&&(Te.remove(),Te=null)}function dr(e){let{command:n,args:r={}}=e.detail||{},t;switch(n){case"inspect:element":t=Ct(r.selector);break;case"inspect:store":t=St(r.name);break;case"inspect:tree":t=Tt(r.selector);break;case"mutate:context":t=kt(r.id,r.key,r.value);break;case"mutate:store":t=It(r.name,r.key,r.value);break;case"get:config":t={...C},t.csrf&&(t.csrf={...t.csrf,token:"[REDACTED]"}),t.headers&&(t.headers="[REDACTED]");break;case"get:routes":t=Z?Z.routes||[]:[];break;case"get:stats":t=$t();break;case"highlight:element":Nt(r.selector),t={ok:!0};break;case"unhighlight":et(),t={ok:!0};break;default:t={error:"Unknown command",command:n}}window.dispatchEvent(new CustomEvent("nojs:devtools:response",{detail:{command:n,result:t,timestamp:Date.now()}}))}function Ot(e){if(!(!C.devtools||typeof window>"u")){if(!ur()){console.warn("[No.JS] devtools: true is ignored outside local environments. Remove devtools: true before deploying to production.");return}window.addEventListener("nojs:devtools:cmd",dr),window.__NOJS_DEVTOOLS__={stores:G,config:C,refs:ye,router:Z,version:e.version,inspect:n=>Ct(n),inspectStore:n=>St(n),inspectTree:n=>Tt(n),stats:()=>$t(),mutate:(n,r,t)=>kt(n,r,t),mutateStore:(n,r,t)=>It(n,r,t),highlight:n=>Nt(n),unhighlight:()=>et(),on:(n,r)=>{let t=i=>{(!n||i.detail.type===n)&&r(i.detail)};return window.addEventListener("nojs:devtools",t),()=>window.removeEventListener("nojs:devtools",t)}},console.log("[No.JS DevTools] enabled \u2014 access via window.__NOJS_DEVTOOLS__")}}var fr=0,pr=new Set,mr=0,tt=0;function R(e={},n=null){let r=new Set,t={};Object.assign(t,e),C.devtools&&(t.__devtoolsId=++mr);let i=!1;function o(){if(!i){i=!0;try{if(fr>0)for(let l of r){if(l._el&&!l._el.isConnected){r.delete(l);continue}pr.add(l)}else for(let l of r){if(l._el&&!l._el.isConnected){r.delete(l);continue}l()}}finally{i=!1}}}let s={get(l,u){if(u==="__isProxy")return!0;if(u==="__raw")return l;if(u==="__listeners")return r;if(u==="$watch")return d=>(de&&(d._el=de),r.add(d),()=>r.delete(d));if(u==="$notify")return o;if(u==="$set")return(d,p)=>{let _=d.split(".");if(_.length===1)a[d]=p;else{let f=a;for(let g=0;g<_.length-1;g++)if(f=f[_[g]],f==null)return;let v=_[_.length-1],y=f[v];f[v]=p,y!==p&&o()}};if(u==="$parent")return n;if(u==="$refs")return ye;if(u==="$store")return G;if(u==="$route")return Z?Z.current:{};if(u==="$router")return Z;if(u==="$i18n")return Y;if(u==="$form")return l.$form||null;if(u in l)return l[u];if(n&&n.__isProxy)return n[u]},set(l,u,d){let p=l[u];return l[u]=d,p!==d&&(tt++,o(),oe("ctx:updated",{id:l.__devtoolsId,key:u,oldValue:p,newValue:d})),!0},has(l,u){return u in l?!0:n&&n.__isProxy?u in n:!1}},a=new Proxy(t,s);return C.devtools&&t.__devtoolsId&&(ke.set(t.__devtoolsId,a),oe("ctx:created",{id:t.__devtoolsId,parentId:n?.__raw?.__devtoolsId??null,keys:Object.keys(e),elementTag:de?.tagName?.toLowerCase()??null})),a}function rt(e){let n=e.__raw.__collectKeysCache;if(n&&n.gen===tt)return n.result;let r=new Set,t={},i=e;for(;i&&i.__isProxy;){let s=i.__raw;for(let a of Object.keys(s))r.has(a)||(r.add(a),t[a]=s[a]);i=i.$parent}let o={keys:[...r],vals:t};return e.__raw.__collectKeysCache={gen:tt,result:o},o}re();be();function Bt(){let e=new Map;return{get(n){if(!e.has(n))return;let r=e.get(n);return e.delete(n),e.set(n,r),r},has(n){return e.has(n)},set(n,r){let t=C.exprCacheSize;e.has(n)?e.delete(n):e.size>=t&&e.delete(e.keys().next().value),e.set(n,r)},get size(){return e.size}}}var Dt=Bt(),nt=Bt(),gr=new Set(["true","false","null","undefined","typeof","in","instanceof"]),hr=new Set(["__proto__","constructor","prototype"]),Pt=["===","!==","...","??","?.","==","!=",">=","<=","&&","||","+=","-=","*=","/=","%=","++","--","=>"],yr=new Set(["+","-","*","/","%",">","<","!","=","|"]),br=new Set(["(",")","[","]","{","}",".",",",":",";","?"]);function ut(e){if(typeof e!="string")return[];let n=[],r=e.length,t=0;for(;t<r;){let i=e[t];if(i===" "||i===" "||i===`
10
- `||i==="\r"){t++;continue}if(i==="'"||i==='"'){let s=t,a=i;t++;let l="";for(;t<r&&e[t]!==a;)if(e[t]==="\\"){if(t++,t<r){let u=e[t];u==="n"?l+=`
11
- `:u==="t"?l+=" ":u==="r"?l+="\r":l+=u,t++}}else l+=e[t++];t<r&&t++,n.push({type:"String",value:l,pos:s});continue}if(i==="`"){let s=t;t++;let a=[],l=[],u="";for(;t<r&&e[t]!=="`";)if(e[t]==="\\"&&t+1<r){let d=e[t+1];d==="n"?u+=`
12
- `:d==="t"?u+=" ":d==="r"?u+="\r":u+=d,t+=2}else if(e[t]==="$"&&t+1<r&&e[t+1]==="{"){a.push(u),u="",t+=2;let d=1,p="";for(;t<r&&d>0;){if(e[t]==="{")d++;else if(e[t]==="}"){if(d--,d===0)break}else if(e[t]==="'"||e[t]==='"'||e[t]==="`"){let _=e[t];for(p+=_,t++;t<r&&e[t]!==_;)e[t]==="\\"?(p+=e[t++],t<r&&(p+=e[t++])):p+=e[t++];t<r&&(p+=e[t],t++);continue}p+=e[t++]}t<r&&t++,l.push(ut(p))}else u+=e[t++];t<r&&t++,a.push(u),n.push({type:"Template",parts:a,exprs:l,pos:s});continue}if(i>="0"&&i<="9"||i==="."&&t+1<r&&e[t+1]>="0"&&e[t+1]<="9"){let s=t,a="";for(;t<r&&(e[t]>="0"&&e[t]<="9"||e[t]===".");)a+=e[t++];n.push({type:"Number",value:a,pos:s});continue}if(i>="a"&&i<="z"||i>="A"&&i<="Z"||i==="_"||i==="$"){let s=t,a="";for(;t<r;){let l=e[t];if(l>="a"&&l<="z"||l>="A"&&l<="Z"||l>="0"&&l<="9"||l==="_"||l==="$")a+=l,t++;else break}hr.has(a)?n.push({type:"Forbidden",value:a,pos:s}):gr.has(a)?n.push({type:"Keyword",value:a,pos:s}):n.push({type:"Ident",value:a,pos:s});continue}let o=!1;for(let s=0;s<Pt.length;s++){let a=Pt[s];if(e.startsWith(a,t)){let l=a==="..."||a==="?.";n.push({type:l?"Punc":"Op",value:a,pos:t}),t+=a.length,o=!0;break}}if(!o){if(yr.has(i)){n.push({type:"Op",value:i,pos:t}),t++;continue}if(br.has(i)){n.push({type:"Punc",value:i,pos:t}),t++;continue}t++}}return n}function dt(e){if(!e||e.length===0)return{type:"Literal",value:void 0};let n=0;function r(){return e[n]}function t(){return e[n++]}function i(c,m){let h=e[n];return h?m!==void 0?h.type===c&&h.value===m:h.type===c:!1}function o(c,m){let h=e[n];return h&&h.type===c&&(m===void 0||h.value===m)?(n++,h):null}function s(){return a()}function a(){let c=l();if(i("Punc","?")){t();let m=a();o("Punc",":");let h=a();c={type:"ConditionalExpr",test:c,consequent:m,alternate:h}}return c}function l(){let c=u();if(i("Op","??")){t();let m=l();c={type:"BinaryExpr",op:"??",left:c,right:m}}return c}function u(){let c=d();for(;i("Op","||");){t();let m=d();c={type:"BinaryExpr",op:"||",left:c,right:m}}return c}function d(){let c=p();for(;i("Op","&&");){t();let m=p();c={type:"BinaryExpr",op:"&&",left:c,right:m}}return c}function p(){let c=_();for(;r()&&r().type==="Op"&&r().value==="|"&&(!e[n+1]||e[n+1].value!=="|");){t();let m=_();c={type:"BinaryExpr",op:"|",left:c,right:m}}return c}function _(){let c=f(),m=r();if(!m)return c;let h=["===","!==","==","!=",">=","<=",">","<"];if(m.type==="Op"&&h.indexOf(m.value)!==-1||m.type==="Keyword"&&(m.value==="in"||m.value==="instanceof")){let D=t().value,N=f();c={type:"BinaryExpr",op:D,left:c,right:N}}return c}function f(){let c=v();for(;r()&&r().type==="Op"&&(r().value==="+"||r().value==="-");){let m=t().value,h=v();c={type:"BinaryExpr",op:m,left:c,right:h}}return c}function v(){let c=y();for(;r()&&r().type==="Op"&&(r().value==="*"||r().value==="/"||r().value==="%");){let m=t().value,h=y();c={type:"BinaryExpr",op:m,left:c,right:h}}return c}function y(){let c=r();return c?c.type==="Keyword"&&c.value==="typeof"?(t(),{type:"UnaryExpr",op:"typeof",argument:y()}):c.type==="Op"&&(c.value==="!"||c.value==="-"||c.value==="+")?(t(),{type:"UnaryExpr",op:c.value,argument:y()}):c.type==="Op"&&(c.value==="++"||c.value==="--")?(t(),{type:"UnaryExpr",op:c.value,argument:y(),prefix:!0}):g():{type:"Literal",value:void 0}}function g(){let c=E(),m=r();return m&&m.type==="Op"&&(m.value==="++"||m.value==="--")&&(t(),c={type:"PostfixExpr",op:m.value,argument:c}),c}function E(){let c=b();for(;;){let m=r();if(!m)break;if(m.type==="Punc"&&m.value==="."){t();let h=r();if(h&&(h.type==="Ident"||h.type==="Keyword"))t(),c={type:"MemberExpr",object:c,property:{type:"Identifier",name:h.value},computed:!1};else if(h&&h.type==="Forbidden")t(),c={type:"Forbidden"};else break;continue}if(m.type==="Punc"&&m.value==="?."){t();let h=r();if(h&&h.type==="Punc"&&h.value==="("){t();let D=L();o("Punc",")"),c={type:"OptionalCallExpr",callee:c,args:D}}else if(h&&(h.type==="Ident"||h.type==="Keyword"))t(),c={type:"OptionalMemberExpr",object:c,property:{type:"Identifier",name:h.value},computed:!1};else if(h&&h.type==="Punc"&&h.value==="["){t();let D=s();o("Punc","]"),c={type:"OptionalMemberExpr",object:c,property:D,computed:!0}}else break;continue}if(m.type==="Punc"&&m.value==="["){t();let h=s();o("Punc","]"),c={type:"MemberExpr",object:c,property:h,computed:!0};continue}if(m.type==="Punc"&&m.value==="("){t();let h=L();o("Punc",")"),c={type:"CallExpr",callee:c,args:h};continue}break}return c}function L(){let c=[];if(i("Punc",")"))return c;for(c.push(w());i("Punc",",")&&(t(),!i("Punc",")"));)c.push(w());return c}function w(){return i("Punc","...")?(t(),{type:"SpreadElement",argument:s()}):s()}function x(){let c=n;if(i("Punc",")")){let m=e[n+1];return m&&m.type==="Op"&&m.value==="=>"?(n=c,!0):(n=c,!1)}for(;n<e.length;){let m=r();if(!m)break;if(m.type==="Ident"){if(t(),i("Punc",",")){t();continue}if(i("Punc",")")){let h=e[n+1];return h&&h.type==="Op"&&h.value==="=>"?(n=c,!0):(n=c,!1)}return n=c,!1}if(m.type==="Punc"&&m.value==="..."){if(t(),i("Ident")&&t(),i("Punc",")")){let h=e[n+1];if(h&&h.type==="Op"&&h.value==="=>")return n=c,!0}return n=c,!1}return n=c,!1}return n=c,!1}function A(){let c=[];if(i("Punc",")"))return c;for(i("Punc","...")?(t(),i("Ident")&&c.push("..."+t().value)):i("Ident")&&c.push(t().value);i("Punc",",")&&(t(),!i("Punc",")"));)i("Punc","...")?(t(),i("Ident")&&c.push("..."+t().value)):i("Ident")&&c.push(t().value);return c}function b(){let c=r();if(!c)return{type:"Literal",value:void 0};if(c.type==="Forbidden")return t(),{type:"Forbidden"};if(c.type==="Number")return t(),{type:"Literal",value:Number(c.value)};if(c.type==="String")return t(),{type:"Literal",value:c.value};if(c.type==="Template")return t(),{type:"TemplateLiteral",parts:c.parts,expressions:c.exprs.map(function(m){return dt(m)})};if(c.type==="Keyword"){if(c.value==="true")return t(),{type:"Literal",value:!0};if(c.value==="false")return t(),{type:"Literal",value:!1};if(c.value==="null")return t(),{type:"Literal",value:null};if(c.value==="undefined")return t(),{type:"Literal",value:void 0}}if(c.type==="Punc"&&c.value==="["){t();let m=[];for(;!i("Punc","]")&&n<e.length;)m.push(w()),i("Punc",",")&&t();return o("Punc","]"),{type:"ArrayExpr",elements:m}}if(c.type==="Punc"&&c.value==="{")return T();if(c.type==="Punc"&&c.value==="("){if(t(),x()){let h=A();o("Punc",")"),o("Op","=>");let D=s();return{type:"ArrowFunction",params:h,body:D}}let m=s();return o("Punc",")"),m}if(c.type==="Ident"){if(t(),i("Op","=>")){t();let m=s();return{type:"ArrowFunction",params:[c.value],body:m}}return{type:"Identifier",name:c.value}}return c.type==="Op"&&(c.value==="="||c.value==="+="||c.value==="-="||c.value==="*="||c.value==="/="||c.value==="%=")?(t(),{type:"Literal",value:void 0}):c.type==="Punc"&&c.value==="..."?(t(),{type:"SpreadElement",argument:s()}):(t(),{type:"Literal",value:void 0})}function T(){t();let c=[];for(;!i("Punc","}")&&n<e.length;){if(i("Punc","...")){t(),c.push({key:null,value:s(),computed:!1,spread:!0}),i("Punc",",")&&t();continue}if(i("Punc","[")){t();let m=s();o("Punc","]"),o("Punc",":");let h=s();c.push({key:m,value:h,computed:!0,spread:!1}),i("Punc",",")&&t();continue}if(i("String")){let m=t();if(i("Punc",":")){t();let h=s();c.push({key:m.value,value:h,computed:!1,spread:!1})}i("Punc",",")&&t();continue}if(i("Ident")||i("Keyword")){let m=t();if(i("Punc",":")){t();let h=s();c.push({key:m.value,value:h,computed:!1,spread:!1})}else c.push({key:m.value,value:{type:"Identifier",name:m.value},computed:!1,spread:!1});i("Punc",",")&&t();continue}if(i("Number")){let m=t();if(i("Punc",":")){t();let h=s();c.push({key:m.value,value:h,computed:!1,spread:!1})}i("Punc",",")&&t();continue}t()}return o("Punc","}"),{type:"ObjectExpr",properties:c}}function $(){let c=s(),m=r();if(m&&m.type==="Op"&&(m.value==="="||m.value==="+="||m.value==="-="||m.value==="*="||m.value==="/="||m.value==="%=")){let h=t().value,D=s();return{type:"AssignExpr",op:h,left:c,right:D}}return c}return $()}var Be={__proto__:1,constructor:1,prototype:1},ot={Array,Object,String,Number,Boolean,Math,Date,RegExp,Map,Set,JSON,parseInt,parseFloat,isNaN,isFinite,Infinity:1/0,NaN:NaN,undefined:void 0,Error,Symbol,console},jt=new Set(["fetch","XMLHttpRequest","localStorage","sessionStorage","WebSocket","indexedDB","eval","Function","importScripts","open","postMessage"]),De={},Mt=new Set(["cookie","domain","write","writeln","execCommand"]),Ht=typeof globalThis<"u"&&typeof globalThis.window<"u"?new Proxy(globalThis.window,{get(e,n,r){if(!(typeof n=="string"&&jt.has(n)))return typeof n=="string"&&n in De?De[n]:Reflect.get(e,n,r)},set(e,n,r){return typeof n=="string"&&jt.has(n)||n==="name"||n==="status"||(e[n]=r),!0}}):void 0,st=typeof globalThis<"u"&&typeof globalThis.document<"u"?new Proxy(globalThis.document,{get(e,n,r){if(!(typeof n=="string"&&Mt.has(n)))return n==="defaultView"?Ht:Reflect.get(e,n,r)},set(e,n,r){return typeof n=="string"&&Mt.has(n)||(e[n]=r),!0}}):void 0,vr=["href","pathname","search","hash","origin","hostname","port","protocol","host"],xe=()=>{},at=typeof globalThis<"u"&&typeof globalThis.location<"u"?(()=>{let e={};for(let n of vr)Object.defineProperty(e,n,{get(){return globalThis.location[n]},set(){},enumerable:!0,configurable:!1});return e.assign=xe,e.replace=xe,e.reload=xe,e.toString=()=>globalThis.location.href,Object.freeze(e)})():void 0,_r=["length","state","scrollRestoration"],ct=typeof globalThis<"u"&&typeof globalThis.history<"u"?(()=>{let e={};for(let n of _r)Object.defineProperty(e,n,{get(){return globalThis.history[n]},enumerable:!0,configurable:!1});return e.pushState=xe,e.replaceState=xe,e.back=xe,e.forward=xe,e.go=xe,Object.freeze(e)})():void 0,Er=new Set(["sendBeacon","credentials"]),lt=typeof globalThis<"u"&&typeof globalThis.navigator<"u"?new Proxy(globalThis.navigator,{get(e,n,r){if(!(typeof n=="string"&&Er.has(n)))return Reflect.get(e,n,r)},set(){return!0}}):void 0;at&&(De.location=at);st&&(De.document=st);ct&&(De.history=ct);lt&&(De.navigator=lt);var Rt=new Set(["window","document","console","location","history","navigator","screen","performance","crypto","setTimeout","clearTimeout","setInterval","clearInterval","requestAnimationFrame","cancelAnimationFrame","alert","confirm","prompt","CustomEvent","Event","URL","URLSearchParams","FormData","FileReader","Blob","Promise"]);function H(e,n){try{if(!e)return;switch(e.type){case"Literal":return e.value;case"Identifier":return e.name in n?n[e.name]:e.name in ot?ot[e.name]:Rt.has(e.name)&&typeof globalThis<"u"?e.name==="window"?Ht:e.name==="document"?st:e.name==="location"?at:e.name==="history"?ct:e.name==="navigator"?lt:globalThis[e.name]:void 0;case"Forbidden":return;case"BinaryExpr":{if(e.op==="&&"){let i=H(e.left,n);return i&&H(e.right,n)}if(e.op==="||"){let i=H(e.left,n);return i||H(e.right,n)}if(e.op==="??"){let i=H(e.left,n);return i??H(e.right,n)}let r=H(e.left,n),t=H(e.right,n);switch(e.op){case"+":return r+t;case"-":return r-t;case"*":return r*t;case"/":return r/t;case"%":return r%t;case"**":return r**t;case"===":return r===t;case"!==":return r!==t;case"==":return r==t;case"!=":return r!=t;case">":return r>t;case"<":return r<t;case">=":return r>=t;case"<=":return r<=t;case"in":return t&&typeof t=="object"?r in t:void 0;case"instanceof":return r instanceof t;case"&":return r&t;case"|":return r|t;case"^":return r^t;case"<<":return r<<t;case">>":return r>>t;case">>>":return r>>>t;default:return}}case"UnaryExpr":{if(e.op==="typeof")return e.argument&&e.argument.type==="Identifier"&&!(e.argument.name in n)?"undefined":typeof H(e.argument,n);if(e.op==="++"||e.op==="--"){let t=H(e.argument,n),i=e.op==="++"?t+1:t-1;return e.prefix?i:t}let r=H(e.argument,n);switch(e.op){case"!":return!r;case"-":return-r;case"+":return+r;case"~":return~r;case"void":return;default:return}}case"ConditionalExpr":return H(e.test,n)?H(e.consequent,n):H(e.alternate,n);case"MemberExpr":case"OptionalMemberExpr":{let r=H(e.object,n);if(r==null)return;let t=e.computed?H(e.property,n):e.property.name||e.property.value;return Be[t]?void 0:r[t]}case"CallExpr":case"OptionalCallExpr":{let r=i=>{let o=[];for(let s=0;s<i.length;s++)if(i[s].type==="SpreadElement"){let a=H(i[s].argument,n);a&&typeof a[Symbol.iterator]=="function"&&o.push(...a)}else o.push(H(i[s],n));return o};if(e.callee.type==="MemberExpr"||e.callee.type==="OptionalMemberExpr"){let i=H(e.callee.object,n);if(i==null)return e.type==="OptionalCallExpr"||e.callee.type==="OptionalMemberExpr",void 0;let o=e.callee.computed?H(e.callee.property,n):e.callee.property.name;if(Be[o])return;let s=i[o];return typeof s!="function"?void 0:s.apply(i,r(e.args))}let t=H(e.callee,n);return t==null&&e.type==="OptionalCallExpr"||typeof t!="function"?void 0:t.apply(void 0,r(e.args))}case"ArrayExpr":{let r=[];for(let t=0;t<e.elements.length;t++){let i=e.elements[t];if(i.type==="SpreadElement"){let o=H(i.argument,n);o&&typeof o[Symbol.iterator]=="function"&&r.push(...o)}else r.push(H(i,n))}return r}case"ObjectExpr":{let r={};for(let t=0;t<e.properties.length;t++){let i=e.properties[t];if(i.spread){let o=H(i.value,n);if(o&&typeof o=="object")for(let s of Object.keys(o))Be[s]||(r[s]=o[s])}else{let o=i.computed?H(i.key,n):i.key;if(Be[o])continue;r[o]=H(i.value,n)}}return r}case"SpreadElement":return H(e.argument,n);case"ArrowFunction":return function(...r){let t=Object.create(n);for(let i=0;i<e.params.length;i++){let o=e.params[i];if(typeof o=="string"&&o.startsWith("...")){t[o.slice(3)]=r.slice(i);break}t[o]=r[i]}return H(e.body,t)};case"TemplateLiteral":{let r=e.parts[0];for(let t=0;t<e.expressions.length;t++)r+=String(H(e.expressions[t],n)),r+=e.parts[t+1];return r}case"PostfixExpr":return H(e.argument,n);case"AssignExpr":return H(e.right,n);default:return}}catch{return}}function wr(e){if(nt.has(e))return nt.get(e);let n=ut(e),r=[],t=0;for(let i=0;i<=n.length;i++)if(i===n.length||n[i].type==="Punc"&&n[i].value===";"){let o=n.slice(t,i);o.length>0&&r.push(dt(o)),t=i+1}return nt.set(e,r),r}function it(e,n,r){if(e.type==="Identifier")r[e.name]=n;else if(e.type==="MemberExpr"||e.type==="OptionalMemberExpr"){let t=H(e.object,r);if(t==null)return;let i=e.computed?H(e.property,r):e.property.name||e.property.value;if(Be[i])return;t[i]=n}}function xr(e,n){if(e)switch(e.type){case"AssignExpr":{let r=H(e.right,n),t;if(e.op==="=")t=r;else{let i=H(e.left,n);switch(e.op){case"+=":t=i+r;break;case"-=":t=i-r;break;case"*=":t=i*r;break;case"/=":t=i/r;break;case"%=":t=i%r;break;default:t=r}}return it(e.left,t,n),t}case"PostfixExpr":{let r=H(e.argument,n),t=e.op==="++"?r+1:r-1;return it(e.argument,t,n),r}case"UnaryExpr":{if(e.op==="++"||e.op==="--"){let r=H(e.argument,n),t=e.op==="++"?r+1:r-1;return it(e.argument,t,n),t}return H(e,n)}default:{if(e.type==="CallExpr"&&e.callee.type==="Identifier"){let r=e.callee.name;if(!(r in n)&&!(r in ot)&&!Rt.has(r))throw new ReferenceError(r+" is not defined")}return H(e,n)}}}function Ar(e){let n=[],r="",t=0,i=!1,o="";for(let s=0;s<e.length;s++){let a=e[s];if(i){r+=a,a===o&&e[s-1]!=="\\"&&(i=!1);continue}if(a==="'"||a==='"'||a==="`"){i=!0,o=a,r+=a;continue}if(a==="("||a==="["||a==="{"){t++,r+=a;continue}if(a===")"||a==="]"||a==="}"){t--,r+=a;continue}if(a==="|"&&t===0&&e[s+1]!=="|"&&e[s-1]!=="|"){n.push(r.trim()),r="";continue}r+=a}return n.push(r.trim()),n}function Lr(e,n){let r=n.indexOf(":"),t,i;r===-1?(t=n.trim(),i=null):(t=n.substring(0,r).trim(),i=n.substring(r+1).trim());let o=F[t];if(!o)return K(`Unknown filter: ${t}`),e;let s=i?Cr(i):[];return o(e,...s)}function Cr(e){let n=[],r="",t=!1,i="";for(let o of e){if(t){if(o===i){t=!1;continue}r+=o;continue}if(o==="'"||o==='"'){t=!0,i=o;continue}if(o===","){n.push(r.trim()),r="";continue}r+=o}return r.trim()&&n.push(r.trim()),n.map(o=>{let s=Number(o);return isNaN(s)?o:s})}function I(e,n){if(!(e==null||e===""))try{let r=Ar(e),t=r[0],{keys:i,vals:o}=rt(n),s={};for(let u=0;u<i.length;u++)s[i[u]]=o[i[u]];"$store"in s||(s.$store=G),"$route"in s||(s.$route=Z?.current),"$router"in s||(s.$router=Z),"$i18n"in s||(s.$i18n=Y),"$refs"in s||(s.$refs=n.$refs),"$form"in s||(s.$form=n.$form||null);let a=Dt.get(t);a||(a=dt(ut(t)),Dt.set(t,a));let l=H(a,s);for(let u=1;u<r.length;u++)l=Lr(l,r[u]);return l}catch(r){K("Expression error:",e,r.message);return}}function se(e,n,r={}){try{let{keys:t,vals:i}=rt(n),o={};for(let d=0;d<t.length;d++)o[t[d]]=i[t[d]];"$store"in o||(o.$store=G),"$route"in o||(o.$route=Z?.current),"$router"in o||(o.$router=Z),"$i18n"in o||(o.$i18n=Y),"$refs"in o||(o.$refs=n.$refs),Object.assign(o,r);let s=new Set,a=n;for(;a&&a.__isProxy;){for(let d of Object.keys(a.__raw))s.add(d);a=a.$parent}let l={};for(let d of s)!d.startsWith("$")&&d in o&&(l[d]=o[d]);let u=wr(e);for(let d=0;d<u.length;d++)xr(u[d],o);for(let d of s){if(d.startsWith("$")||!(d in o))continue;let p=o[d],_=l[d];if(p!==_){let f=n;for(;f&&f.__isProxy;){if(d in f.__raw){f.$set(d,p);break}f=f.$parent}}else if(typeof p=="object"&&p!==null){let f=n;for(;f&&f.__isProxy;){if(d in f.__raw){f.$notify();break}f=f.$parent}}}for(let d in o)d.startsWith("$")||s.has(d)||d in r||n.$set(d,o[d]);typeof e=="string"&&e.includes("$store")&&Ee()}catch(t){K("Expression error:",e,t.message),r.$el&&r.$el.dispatchEvent(new CustomEvent("nojs:error",{bubbles:!0,detail:{message:t.message,error:t}}))}}function ce(e,n){return e.split(".").reduce((r,t)=>r?.[t],n)}function Ae(e,n){return e.replace(/\{([^}]+)\}/g,(r,t)=>{let i=I(t.trim(),n);return i==null?"":encodeURIComponent(String(i))})}re();re();var Sr=200;function ft(e,n){if(e.startsWith("http://")||e.startsWith("https://")||e.startsWith("//"))return e;let r=n;for(;r;){let t=r.getAttribute?.("base");if(t)return t.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,"");r=r.parentElement}return C.baseApiUrl?C.baseApiUrl.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):e}async function Fe(e,n="GET",r=null,t={},i=null,o=null,s=void 0,a=void 0){let l=ft(e,i),u={method:n.toUpperCase(),headers:{...C.headers||{},...t},credentials:C.credentials};if(r&&n!=="GET")if(typeof r=="string")try{JSON.parse(r),u.headers["Content-Type"]="application/json",u.body=r}catch{u.body=r}else r instanceof FormData?u.body=r:(u.headers["Content-Type"]="application/json",u.body=JSON.stringify(r));C.csrf&&n!=="GET"&&(u.headers[C.csrf.header||"X-CSRF-Token"]=C.csrf.token||"");for(let _ of Oe.request)u=_(l,u)||u;let d=s!==void 0?s:C.retries||0,p;for(let _=0;_<=d;_++)try{let f=new AbortController,v=setTimeout(()=>f.abort(),C.timeout||1e4);if(o){if(o.aborted)throw clearTimeout(v),new DOMException("Aborted","AbortError");o.addEventListener("abort",()=>f.abort(),{once:!0})}u.signal=f.signal;let y=await fetch(l,u);clearTimeout(v);for(let E of Oe.response)y=E(y,l)||y;if(!y.ok){let E=await y.json().catch(()=>({})),L=new Error(E.message||`HTTP ${y.status}`);throw L.status=y.status,L.body=E,L}let g=await y.text();try{return JSON.parse(g)}catch{return g}}catch(f){if(f.name==="AbortError")throw f;p=f,_<d&&await new Promise(v=>setTimeout(v,a!==void 0?a:C.retryDelay||1e3))}throw p}function Ft(e,n){if(n==="none")return null;if(n==="memory"){let t=me.get(e);return t&&Date.now()-t.time<(C.cache.ttl||3e5)?(me.delete(e),me.set(e,t),t.data):null}let r=n==="local"?localStorage:n==="session"?sessionStorage:null;if(!r)return null;try{let t=r.getItem("nojs_cache_"+e);if(!t)return null;let i=JSON.parse(t);if(Date.now()-i.time<(C.cache.ttl||3e5))return i.data;r.removeItem("nojs_cache_"+e)}catch{}return null}function zt(e,n,r){if(r==="none")return;let t={data:n,time:Date.now()};if(r==="memory"){me.has(e)?me.delete(e):me.size>=Sr&&me.delete(me.keys().next().value),me.set(e,t);return}let i=r==="local"?localStorage:r==="session"?sessionStorage:null;if(i)try{i.setItem("nojs_cache_"+e,JSON.stringify(t))}catch{}}var Le=new Map;function M(e){let n=e;for(;n;){if(n.__ctx)return n.__ctx;n=n.parentElement}return R()}function _e(e){let n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);for(;n.nextNode();)n.currentNode.__declared=!1}function ee(e){if(!e)return null;let n=e.startsWith("#")?e.slice(1):e,r=document.getElementById(n);return r&&r.content?r.content.cloneNode(!0):null}var Tr=new Set(["script","style","iframe","object","embed","base","form","meta","link","noscript"]);function ze(e){if(C.dangerouslyDisableSanitize||!C.sanitize)return K("HTML sanitization is DISABLED. This exposes your app to XSS attacks. Only disable for trusted content."),e;if(typeof C.sanitizeHtml=="function")return C.sanitizeHtml(e);let n=new DOMParser().parseFromString(e,"text/html");function r(t){for(let i of[...t.childNodes])if(i.nodeType===1){if(Tr.has(i.tagName.toLowerCase())){i.remove();continue}for(let o of[...i.attributes]){let s=o.name.toLowerCase(),a=o.value.toLowerCase().trimStart(),l=s==="href"||s==="src"||s==="action"||s==="xlink:href",u=a.startsWith("javascript:")||a.startsWith("vbscript:"),d=l&&a.startsWith("data:")&&!/^data:image\//.test(a);(s.startsWith("on")||u||d)&&i.removeAttribute(o.name)}r(i)}}return r(n.body),n.body.innerHTML}function pt(e,n){if(e.startsWith("./")){let r=n.parentNode;for(;r;){if(r.__srcBase)return r.__srcBase+e.slice(2);r=r.parentNode}return e.slice(2)}return ft(e,n)}function Ut(e,n,r){let t=r!==void 0?r:typeof window<"u"&&window.location?window.location.protocol:"";e.startsWith("http://")&&t==="https:"&&K('Template "'+n+'" is loaded over insecure HTTP from an HTTPS page. Use HTTPS to prevent tampering.')}async function qt(e){let n=e||document,r=n.querySelectorAll("template[src]");if(te("[LRT] called on",n===document?"document":n.nodeName||"fragment","\u2014 found",r.length,"template[src]",[...r].map(i=>i.getAttribute("src"))),!r.length)return;let t=[...r].map(async i=>{if(i.__srcLoaded){te("[LRT] SKIP (already loaded):",i.getAttribute("src"));return}i.__srcLoaded=!0;let o=i.getAttribute("src"),s=pt(o,i);Ut(s,o);let a=s.substring(0,s.lastIndexOf("/")+1);try{let l=C.templates.cache!==!1,u;if(l&&Le.has(s))u=Le.get(s),te("[LRT] CACHE HIT:",s);else{let d=await fetch(s);if(!d.ok){K("Failed to load template:",o,"HTTP",d.status),i.__loadFailed=!0;return}u=await d.text(),l&&Le.set(s,u)}if(i.innerHTML=u,i.content&&(i.content.__srcBase=a),te("Loaded remote template:",o,"\u2192",s),await qt(i.content||i),!i.hasAttribute("route")&&i.parentNode){let p=[...i.content.childNodes],_=i.parentNode,f=i.nextSibling;_.removeChild(i);for(let v of p)v.nodeType===1&&(v.__srcBase=v.__srcBase||a),_.insertBefore(v,f)}}catch(l){K("Failed to load template:",o,l.message)}});await Promise.all(t)}async function ve(e){let n=e.getAttribute("src");if(e.__srcLoaded){te("[LTE] SKIP (already loaded):",n);return}te("[LTE] START fetch:",n,"| route:",e.hasAttribute("route"),"| inDOM:",document.contains(e),"| loading:",e.getAttribute("loading")),e.__srcLoaded=!0;let r=pt(n,e);Ut(r,n);let t=r.substring(0,r.lastIndexOf("/")+1),i=null,o=e.getAttribute("loading");if(o&&e.parentNode){let s=o.startsWith("#")?o.slice(1):o,a=document.getElementById(s);a&&a.content&&(i=document.createElement("span"),i.style.cssText="display:contents",i.appendChild(a.content.cloneNode(!0)),e.parentNode.insertBefore(i,e))}try{let s=C.templates.cache!==!1,a;if(s&&Le.has(r))a=Le.get(r),te("[LTE] CACHE HIT:",r);else{let l=await fetch(r);if(!l.ok){K("Failed to load template:",n,"HTTP",l.status),e.__loadFailed=!0,i&&i.remove();return}a=await l.text(),s&&Le.set(r,a)}if(e.innerHTML=a,e.content&&(e.content.__srcBase=t),te("Loaded remote template:",n,"\u2192",r),!e.hasAttribute("route"))await qt(e.content||e);else if(s&&e.content){let u=[...e.content.querySelectorAll("template[src]")].map(d=>{let p=d.getAttribute("src"),_=pt(p,d);if(!Le.has(_))return fetch(_).then(f=>{if(!f.ok)throw new Error("HTTP "+f.status);return f.text()}).then(f=>{Le.set(_,f)}).catch(()=>{})});Promise.all(u)}if(i&&i.remove(),!e.hasAttribute("route")&&e.parentNode){let u=[...e.content.childNodes],d=e.parentNode,p=e.nextSibling;d.removeChild(e);for(let _ of u)_.nodeType===1&&(_.__srcBase=_.__srcBase||t),d.insertBefore(_,p)}}catch(s){i&&i.remove(),K("Failed to load template:",n,s.message)}}function Ue(e){(e||document).querySelectorAll("template[include]").forEach(r=>{let t=r.getAttribute("include"),i=document.getElementById(t.startsWith("#")?t.slice(1):t);!i||!i.content||r.replaceWith(i.content.cloneNode(!0))})}async function Wt(e){let n=[...document.querySelectorAll("template[src]")],r=n.filter(i=>!i.__srcLoaded&&i.getAttribute("lazy")==="priority");await Promise.all(r.map(ve));let t=n.filter(i=>{if(i.__srcLoaded)return!1;let o=i.getAttribute("lazy");return o==="ondemand"||o==="priority"?!1:i.hasAttribute("route")?e!=null&&i.getAttribute("route")===e:!0});await Promise.all(t.map(ve))}function Kt(){let n=[...document.querySelectorAll("template[src]")].filter(r=>r.__srcLoaded||r.getAttribute("lazy")==="ondemand"?!1:r.hasAttribute("route"));return Promise.all(n.map(ve))}re();be();var He=new Map;function j(e,n){He.set(e,{priority:n.priority??50,init:n.init})}function kr(e){if(He.has(e))return{directive:He.get(e),match:e};let n=["class-*","on:*","style-*","bind-*"];for(let r of n){let t=r.replace("*","");if(e.startsWith(t)&&He.has(r))return{directive:He.get(r),match:r}}return null}function Vt(e){if(e.__declared)return;e.__declared=!0;let n=[];for(let t of[...e.attributes]){let i=kr(t.name);i&&n.push({name:t.name,value:t.value,priority:i.directive.priority,init:i.directive.init})}n.sort((t,i)=>t.priority-i.priority);let r=de;for(let t of n)Ye(e),t.init(e,t.name,t.value);Ye(r),n.length>0&&oe("directive:init",{element:e.tagName?.toLowerCase(),directives:n.map(t=>({name:t.name,value:t.value}))})}function z(e){if(!e)return;e.nodeType===1&&!e.__declared&&Vt(e);let n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);for(;n.nextNode();){let r=n.currentNode;r.tagName==="TEMPLATE"||r.tagName==="SCRIPT"||r.__declared||Vt(r)}}function mt(e){let n=e.__ctx?.__raw?.__devtoolsId;if(e.__ctx&&e.__ctx.__listeners){for(let r of e.__ctx.__listeners)Ce.delete(r),Se.delete(r);e.__ctx.__listeners.clear()}e.__disposers&&(e.__disposers.forEach(r=>r()),e.__disposers=null),e.__declared=!1,n!=null&&(ke.delete(n),oe("ctx:disposed",{id:n,elementTag:e.tagName?.toLowerCase()}))}function gt(e){if(!e)return;mt(e);let n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);for(;n.nextNode();)mt(n.currentNode)}function V(e){if(!e)return;let n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);for(;n.nextNode();)mt(n.currentNode)}re();var Jt=!1;function Xt(){if(Jt||typeof document>"u")return;Jt=!0;let e=`
9
+ var st=Object.defineProperty;var Pr=Object.getOwnPropertyDescriptor;var Dr=Object.getOwnPropertyNames;var jr=Object.prototype.hasOwnProperty;var jt=(e,n)=>()=>(e&&(n=e(e=0)),n);var Rt=(e,n)=>{for(var t in n)st(e,t,{get:n[t],enumerable:!0})},Rr=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of Dr(n))!jr.call(e,i)&&i!==t&&st(e,i,{get:()=>n[i],enumerable:!(r=Pr(n,i))||r.enumerable});return e};var Hr=e=>Rr(st({},"__esModule",{value:!0}),e);function ct(e){at=e}function lt(e){Pe=e}function ut(e){fe=e}function dt(e){ee=e}function Y(...e){C.debug&&console.log("[No.JS]",...e)}function D(...e){console.warn("[No.JS]",...e)}function xe(){for(let e of $e){if(e._el&&!e._el.isConnected){$e.delete(e);continue}e()}}function G(e,n,t){let r=n.$watch(t);if(j(()=>{r(),$e.delete(t)}),typeof e=="string"&&e.includes("$store")){$e.add(t),t._el=fe;let i=fe;if(i&&i.parentElement){let o=new MutationObserver(()=>{i.isConnected||($e.delete(t),r(),o.disconnect())});o.observe(i.parentElement,{childList:!0,subtree:!1}),j(()=>o.disconnect())}}}function j(e){fe&&(fe.__disposers=fe.__disposers||[],fe.__disposers.push(e))}function be(e,n){(_e[e]||[]).forEach(t=>t(n))}var C,he,_e,Q,$e,U,Ee,ye,we,ee,pe,ce,Oe,at,Pe,Be,Ht,fe,Ue,Fe,We,te=jt(()=>{C={baseApiUrl:"",headers:{},timeout:1e4,retries:0,retryDelay:1e3,credentials:"same-origin",csrf:null,cache:{strategy:"none",ttl:3e5},templates:{cache:!0},router:{useHash:!1,base:"/",scrollBehavior:"top",templates:"pages",ext:".tpl",focusBehavior:"none"},i18n:{defaultLocale:"en",fallbackLocale:"en",detectBrowser:!1,loadPath:null,ns:[],cache:!0,persist:!1},debug:!1,devtools:!1,sanitize:!0,dangerouslyDisableSanitize:!1,sanitizeHtml:null,exprCacheSize:500,maxEventListeners:100},he={request:[],response:[]},_e={},Q={},$e=new Set,U={},Ee={},ye=new Map,we={},ee=null,pe=new Map,ce=Object.create(null),Oe=Object.create(null),at=!1;Pe=null;Be=new Set(["authorization","x-api-key","x-auth-token","cookie","proxy-authorization","set-cookie","x-csrf-token"]),Ht=new Set(["set-cookie","x-csrf-token","x-auth-token","www-authenticate","proxy-authenticate"]),fe=null;Ue=Symbol("nojs.cancel"),Fe=Symbol("nojs.respond"),We=Symbol("nojs.replace")});var qt={};Rt(qt,{_i18n:()=>Z,_i18nListeners:()=>De,_loadI18nForLocale:()=>ft,_loadI18nNamespace:()=>pt,_notifyI18n:()=>Ke,_watchI18n:()=>Ve});function Ve(e){return De.add(e),()=>De.delete(e)}function Ke(){for(let e of De){if(e._el&&!e._el.isConnected){De.delete(e);continue}e()}}function Bt(e,n){let t={...e};for(let r of Object.keys(n))n[r]&&typeof n[r]=="object"&&!Array.isArray(n[r])&&e[r]&&typeof e[r]=="object"&&!Array.isArray(e[r])?t[r]=Bt(e[r],n[r]):t[r]=n[r];return t}async function Ye(e,n){let t=n?`${e}:${n}`:e;if(C.i18n.cache&&Mt.has(t))return;let r=C.i18n.loadPath.replace("{locale}",e);if(n)r=r.replace("{ns}",n);else if(r.includes("{ns}"))return;try{let i=await fetch(r);if(!i.ok){D(`i18n: failed to load ${r} (${i.status})`);return}let o=await i.json();Z.locales[e]=Bt(Z.locales[e]||{},o),C.i18n.cache&&Mt.set(t,o)}catch(i){D(`i18n: error loading ${r}`,i)}}async function ft(e){if(!C.i18n.loadPath)return;let n=C.i18n.ns;!n.length||!C.i18n.loadPath.includes("{ns}")?await Ye(e,null):await Promise.all(n.map(t=>Ye(e,t)))}async function pt(e){if(!C.i18n.loadPath)return;Ft.add(e);let n=new Set([Z.locale,C.i18n.fallbackLocale]);await Promise.all([...n].map(t=>Ye(t,e)))}var De,Mt,Ft,Z,Ae=jt(()=>{te();De=new Set;Mt=new Map,Ft=new Set;Z={_locale:"en",locales:{},get locale(){return this._locale},set locale(e){if(this._locale!==e){if(this._locale=e,C.i18n.persist&&typeof localStorage<"u")try{localStorage.setItem("nojs-locale",e)}catch{}if(C.i18n.loadPath){let n=new Set([...C.i18n.ns,...Ft]);Promise.all([...n].map(t=>Ye(e,t))).then(()=>Ke())}else Ke()}},t(e,n={}){let t=Z.locales[Z.locale]||Z.locales[C.i18n.fallbackLocale]||{},r=e.split(".").reduce((i,o)=>i?.[o],t);if(r==null)return e;if(typeof r=="string"&&r.includes("|")&&n.count!=null){let i=r.split("|").map(o=>o.trim());r=Number(n.count)===1?i[0]:i[1]||i[0]}return typeof r=="string"&&(r=r.replace(/\{(\w+)\}/g,(i,o)=>n[o]!=null?n[o]:"")),r}}});var Tn={};Rt(Tn,{default:()=>Cn});module.exports=Hr(Tn);te();Ae();te();Ae();te();Ae();var Re=new Map;function Mr(e){return e===void 0&&(e=typeof window<"u"&&window.location?window.location.hostname:""),e===""||e==="localhost"||e==="127.0.0.1"||e==="::1"||e==="0.0.0.0"||e.endsWith(".localhost")}function oe(e,n){!C.devtools||typeof window>"u"||window.dispatchEvent(new CustomEvent("nojs:devtools",{detail:{type:e,data:n,timestamp:Date.now()}}))}function Qe(e){if(!e||!e.__isProxy)return null;let n=e.__raw,t={};for(let r of Object.keys(n)){if(r.startsWith("__"))continue;let i=n[r];if(i&&typeof i=="object"&&i.__isProxy)t[r]=Qe(i);else try{JSON.stringify(i),t[r]=i}catch{t[r]=String(i)}}return t}function Ut(e){if(!e||!e.tagName)return null;let n=e.tagName.toLowerCase(),t=e.id?`#${e.id}`:"",r=e.className&&typeof e.className=="string"?"."+e.className.trim().split(/\s+/).join("."):"";return n+t+r}function Wt(e){let n=document.querySelector(e);if(!n)return{error:"Element not found",selector:e};let t=n.__ctx;return{selector:e,tag:Ut(n),hasContext:!!t,contextId:t?.__raw?.__devtoolsId??null,data:t?Qe(t):null,directives:[...n.attributes].filter(r=>!["class","id","style"].includes(r.name)).map(r=>({name:r.name,value:r.value}))}}function Kt(e){let n=Q[e];return n?{name:e,contextId:n.__raw?.__devtoolsId??null,data:Qe(n)}:{error:"Store not found",name:e}}function Vt(e){let n=e?document.querySelector(e):document.body;if(!n)return{error:"Root not found",selector:e};function t(r){let i=r.__ctx,o={tag:Ut(r),contextId:i?.__raw?.__devtoolsId??null,children:[]};for(let s of r.children)s.tagName==="TEMPLATE"||s.tagName==="SCRIPT"||(s.__ctx||s.__declared)&&o.children.push(t(s));return o}return t(n)}function Jt(e,n,t){let r=Re.get(e);return r?(r[n]=t,{ok:!0,id:e,key:n}):{error:"Context not found",id:e}}function Xt(e,n,t){let r=Q[e];return r?(r[n]=t,{ok:!0,name:e,key:n}):{error:"Store not found",name:e}}function Gt(){let e=0;for(let[,n]of Re)n.__listeners&&(e+=n.__listeners.size);return{contexts:Re.size,stores:Object.keys(Q).length,listeners:e,refs:Object.keys(we).length,hasRouter:!!ee,locale:Z.locale}}var je=null;function Yt(e){mt();let n=document.querySelector(e);if(!n)return;let t=n.getBoundingClientRect();je=document.createElement("div"),je.id="__nojs_devtools_highlight__",Object.assign(je.style,{position:"fixed",top:t.top+"px",left:t.left+"px",width:t.width+"px",height:t.height+"px",background:"rgba(66, 133, 244, 0.25)",border:"2px solid rgba(66, 133, 244, 0.8)",pointerEvents:"none",zIndex:"2147483647",borderRadius:"3px"}),document.body.appendChild(je)}function mt(){je&&(je.remove(),je=null)}function zt(e){let{command:n,args:t={}}=e.detail||{},r;switch(n){case"inspect:element":r=Wt(t.selector);break;case"inspect:store":r=Kt(t.name);break;case"inspect:tree":r=Vt(t.selector);break;case"mutate:context":r=Jt(t.id,t.key,t.value);break;case"mutate:store":r=Xt(t.name,t.key,t.value);break;case"get:config":r={...C},r.csrf&&(r.csrf={...r.csrf,token:"[REDACTED]"}),r.headers&&(r.headers="[REDACTED]");break;case"get:routes":r=ee?ee.routes||[]:[];break;case"get:stats":r=Gt();break;case"highlight:element":Yt(t.selector),r={ok:!0};break;case"unhighlight":mt(),r={ok:!0};break;default:r={error:"Unknown command",command:n}}window.dispatchEvent(new CustomEvent("nojs:devtools:response",{detail:{command:n,result:r,timestamp:Date.now()}}))}var Ze=null;function Zt(){Ze&&Ze()}function Qt(e){if(!(!C.devtools||typeof window>"u")){if(!Mr()){console.warn("[No.JS] devtools: true is ignored outside local environments. Remove devtools: true before deploying to production.");return}window.addEventListener("nojs:devtools:cmd",zt),Ze=()=>{window.removeEventListener("nojs:devtools:cmd",zt),delete window.__NOJS_DEVTOOLS__,Ze=null},window.__NOJS_DEVTOOLS__={get stores(){return Object.fromEntries(Object.entries(Q).map(([n,t])=>[n,Qe(t)]))},get config(){let n={...C};return n.headers&&(n.headers={...n.headers}),n.router&&(n.router={...n.router}),n.cache&&(n.cache={...n.cache}),n.csrf&&(n.csrf={...n.csrf}),n.i18n&&(n.i18n={...n.i18n}),n},get refs(){return{...we}},router:ee,version:e.version,get plugins(){return new Map(pe)},get globals(){return{...ce}},inspect:n=>Wt(n),inspectStore:n=>Kt(n),inspectTree:n=>Vt(n),stats:()=>Gt(),mutate:(n,t,r)=>Jt(n,t,r),mutateStore:(n,t,r)=>Xt(n,t,r),highlight:n=>Yt(n),unhighlight:()=>mt(),on:(n,t)=>{let r=i=>{(!n||i.detail.type===n)&&t(i.detail)};return window.addEventListener("nojs:devtools",r),()=>window.removeEventListener("nojs:devtools",r)}},console.log("[No.JS DevTools] enabled \u2014 access via window.__NOJS_DEVTOOLS__")}}var Br=0,Fr=new Set,qr=0,gt=0;function B(e={},n=null){let t=new Set,r={};Object.assign(r,e),C.devtools&&(r.__devtoolsId=++qr);let i=!1;function o(){if(!i){i=!0;try{if(Br>0)for(let c of t){if(c._el&&!c._el.isConnected){t.delete(c);continue}Fr.add(c)}else for(let c of t){if(c._el&&!c._el.isConnected){t.delete(c);continue}c()}}finally{i=!1}}}let s={get(c,u){if(u==="__isProxy")return!0;if(u==="__raw")return c;if(u==="__listeners")return t;if(u==="$watch")return d=>(fe&&(d._el=fe),t.add(d),()=>t.delete(d));if(u==="$notify")return o;if(u==="$set")return(d,f)=>{let x=d.split(".");if(x.length===1)a[d]=f;else{let v=a;for(let h=0;h<x.length-1;h++)if(v=v[x[h]],v==null)return;let A=x[x.length-1],w=v[A];v[A]=f,w!==f&&o()}};if(u==="$parent")return n;if(u==="$refs")return we;if(u==="$store")return Q;if(u==="$route")return ee?ee.current:{};if(u==="$router")return ee;if(u==="$i18n")return Z;if(u==="$form")return c.$form||null;if(u.startsWith("$")&&u.slice(1)in ce)return ce[u.slice(1)];if(u in c)return c[u];if(n&&n.__isProxy)return n[u]},set(c,u,d){let f=c[u];return c[u]=d,f!==d&&(gt++,o(),oe("ctx:updated",{id:c.__devtoolsId,key:u,oldValue:f,newValue:d})),!0},has(c,u){return u in c||typeof u=="string"&&u.startsWith("$")&&u.slice(1)in ce?!0:n&&n.__isProxy?u in n:!1}},a=new Proxy(r,s);return C.devtools&&r.__devtoolsId&&(Re.set(r.__devtoolsId,a),oe("ctx:created",{id:r.__devtoolsId,parentId:n?.__raw?.__devtoolsId??null,keys:Object.keys(e),elementTag:fe?.tagName?.toLowerCase()??null})),a}function ht(e){let n=e.__raw.__collectKeysCache;if(n&&n.gen===gt)return n.result;let t=new Set,r={},i=e;for(;i&&i.__isProxy;){let s=i.__raw;for(let a of Object.keys(s))t.has(a)||(t.add(a),r[a]=s[a]);i=i.$parent}let o={keys:[...t],vals:r};return e.__raw.__collectKeysCache={gen:gt,result:o},o}te();Ae();function ir(){let e=new Map;return{get(n){if(!e.has(n))return;let t=e.get(n);return e.delete(n),e.set(n,t),t},has(n){return e.has(n)},set(n,t){let r=C.exprCacheSize;e.has(n)?e.delete(n):e.size>=r&&e.delete(e.keys().next().value),e.set(n,t)},get size(){return e.size}}}var er=ir(),yt=ir(),zr=new Set(["true","false","null","undefined","typeof","in","instanceof"]),Ur=new Set(["__proto__","constructor","prototype"]),tr=["===","!==","...","??","?.","==","!=",">=","<=","&&","||","+=","-=","*=","/=","%=","++","--","=>"],Wr=new Set(["+","-","*","/","%",">","<","!","=","|"]),Kr=new Set(["(",")","[","]","{","}",".",",",":",";","?"]);function At(e){if(typeof e!="string")return[];let n=[],t=e.length,r=0;for(;r<t;){let i=e[r];if(i===" "||i===" "||i===`
10
+ `||i==="\r"){r++;continue}if(i==="'"||i==='"'){let s=r,a=i;r++;let c="";for(;r<t&&e[r]!==a;)if(e[r]==="\\"){if(r++,r<t){let u=e[r];u==="n"?c+=`
11
+ `:u==="t"?c+=" ":u==="r"?c+="\r":c+=u,r++}}else c+=e[r++];r<t&&r++,n.push({type:"String",value:c,pos:s});continue}if(i==="`"){let s=r;r++;let a=[],c=[],u="";for(;r<t&&e[r]!=="`";)if(e[r]==="\\"&&r+1<t){let d=e[r+1];d==="n"?u+=`
12
+ `:d==="t"?u+=" ":d==="r"?u+="\r":u+=d,r+=2}else if(e[r]==="$"&&r+1<t&&e[r+1]==="{"){a.push(u),u="",r+=2;let d=1,f="";for(;r<t&&d>0;){if(e[r]==="{")d++;else if(e[r]==="}"){if(d--,d===0)break}else if(e[r]==="'"||e[r]==='"'||e[r]==="`"){let x=e[r];for(f+=x,r++;r<t&&e[r]!==x;)e[r]==="\\"?(f+=e[r++],r<t&&(f+=e[r++])):f+=e[r++];r<t&&(f+=e[r],r++);continue}f+=e[r++]}r<t&&r++,c.push(At(f))}else u+=e[r++];r<t&&r++,a.push(u),n.push({type:"Template",parts:a,exprs:c,pos:s});continue}if(i>="0"&&i<="9"||i==="."&&r+1<t&&e[r+1]>="0"&&e[r+1]<="9"){let s=r,a="";for(;r<t&&(e[r]>="0"&&e[r]<="9"||e[r]===".");)a+=e[r++];n.push({type:"Number",value:a,pos:s});continue}if(i>="a"&&i<="z"||i>="A"&&i<="Z"||i==="_"||i==="$"){let s=r,a="";for(;r<t;){let c=e[r];if(c>="a"&&c<="z"||c>="A"&&c<="Z"||c>="0"&&c<="9"||c==="_"||c==="$")a+=c,r++;else break}Ur.has(a)?n.push({type:"Forbidden",value:a,pos:s}):zr.has(a)?n.push({type:"Keyword",value:a,pos:s}):n.push({type:"Ident",value:a,pos:s});continue}let o=!1;for(let s=0;s<tr.length;s++){let a=tr[s];if(e.startsWith(a,r)){let c=a==="..."||a==="?.";n.push({type:c?"Punc":"Op",value:a,pos:r}),r+=a.length,o=!0;break}}if(!o){if(Wr.has(i)){n.push({type:"Op",value:i,pos:r}),r++;continue}if(Kr.has(i)){n.push({type:"Punc",value:i,pos:r}),r++;continue}r++}}return n}function Lt(e){if(!e||e.length===0)return{type:"Literal",value:void 0};let n=0;function t(){return e[n]}function r(){return e[n++]}function i(l,g){let p=e[n];return p?g!==void 0?p.type===l&&p.value===g:p.type===l:!1}function o(l,g){let p=e[n];return p&&p.type===l&&(g===void 0||p.value===g)?(n++,p):null}function s(){return a()}function a(){let l=c();if(i("Punc","?")){r();let g=a();o("Punc",":");let p=a();l={type:"ConditionalExpr",test:l,consequent:g,alternate:p}}return l}function c(){let l=u();if(i("Op","??")){r();let g=c();l={type:"BinaryExpr",op:"??",left:l,right:g}}return l}function u(){let l=d();for(;i("Op","||");){r();let g=d();l={type:"BinaryExpr",op:"||",left:l,right:g}}return l}function d(){let l=f();for(;i("Op","&&");){r();let g=f();l={type:"BinaryExpr",op:"&&",left:l,right:g}}return l}function f(){let l=x();for(;t()&&t().type==="Op"&&t().value==="|"&&(!e[n+1]||e[n+1].value!=="|");){r();let g=x();l={type:"BinaryExpr",op:"|",left:l,right:g}}return l}function x(){let l=v(),g=t();if(!g)return l;let p=["===","!==","==","!=",">=","<=",">","<"];if(g.type==="Op"&&p.indexOf(g.value)!==-1||g.type==="Keyword"&&(g.value==="in"||g.value==="instanceof")){let P=r().value,O=v();l={type:"BinaryExpr",op:P,left:l,right:O}}return l}function v(){let l=A();for(;t()&&t().type==="Op"&&(t().value==="+"||t().value==="-");){let g=r().value,p=A();l={type:"BinaryExpr",op:g,left:l,right:p}}return l}function A(){let l=w();for(;t()&&t().type==="Op"&&(t().value==="*"||t().value==="/"||t().value==="%");){let g=r().value,p=w();l={type:"BinaryExpr",op:g,left:l,right:p}}return l}function w(){let l=t();return l?l.type==="Keyword"&&l.value==="typeof"?(r(),{type:"UnaryExpr",op:"typeof",argument:w()}):l.type==="Op"&&(l.value==="!"||l.value==="-"||l.value==="+")?(r(),{type:"UnaryExpr",op:l.value,argument:w()}):l.type==="Op"&&(l.value==="++"||l.value==="--")?(r(),{type:"UnaryExpr",op:l.value,argument:w(),prefix:!0}):h():{type:"Literal",value:void 0}}function h(){let l=m(),g=t();return g&&g.type==="Op"&&(g.value==="++"||g.value==="--")&&(r(),l={type:"PostfixExpr",op:g.value,argument:l}),l}function m(){let l=L();for(;;){let g=t();if(!g)break;if(g.type==="Punc"&&g.value==="."){r();let p=t();if(p&&(p.type==="Ident"||p.type==="Keyword"))r(),l={type:"MemberExpr",object:l,property:{type:"Identifier",name:p.value},computed:!1};else if(p&&p.type==="Forbidden")r(),l={type:"Forbidden"};else break;continue}if(g.type==="Punc"&&g.value==="?."){r();let p=t();if(p&&p.type==="Punc"&&p.value==="("){r();let P=_();o("Punc",")"),l={type:"OptionalCallExpr",callee:l,args:P}}else if(p&&(p.type==="Ident"||p.type==="Keyword"))r(),l={type:"OptionalMemberExpr",object:l,property:{type:"Identifier",name:p.value},computed:!1};else if(p&&p.type==="Punc"&&p.value==="["){r();let P=s();o("Punc","]"),l={type:"OptionalMemberExpr",object:l,property:P,computed:!0}}else break;continue}if(g.type==="Punc"&&g.value==="["){r();let p=s();o("Punc","]"),l={type:"MemberExpr",object:l,property:p,computed:!0};continue}if(g.type==="Punc"&&g.value==="("){r();let p=_();o("Punc",")"),l={type:"CallExpr",callee:l,args:p};continue}break}return l}function _(){let l=[];if(i("Punc",")"))return l;for(l.push(b());i("Punc",",")&&(r(),!i("Punc",")"));)l.push(b());return l}function b(){return i("Punc","...")?(r(),{type:"SpreadElement",argument:s()}):s()}function y(){let l=n;if(i("Punc",")")){let g=e[n+1];return g&&g.type==="Op"&&g.value==="=>"?(n=l,!0):(n=l,!1)}for(;n<e.length;){let g=t();if(!g)break;if(g.type==="Ident"){if(r(),i("Punc",",")){r();continue}if(i("Punc",")")){let p=e[n+1];return p&&p.type==="Op"&&p.value==="=>"?(n=l,!0):(n=l,!1)}return n=l,!1}if(g.type==="Punc"&&g.value==="..."){if(r(),i("Ident")&&r(),i("Punc",")")){let p=e[n+1];if(p&&p.type==="Op"&&p.value==="=>")return n=l,!0}return n=l,!1}return n=l,!1}return n=l,!1}function T(){let l=[];if(i("Punc",")"))return l;for(i("Punc","...")?(r(),i("Ident")&&l.push("..."+r().value)):i("Ident")&&l.push(r().value);i("Punc",",")&&(r(),!i("Punc",")"));)i("Punc","...")?(r(),i("Ident")&&l.push("..."+r().value)):i("Ident")&&l.push(r().value);return l}function L(){let l=t();if(!l)return{type:"Literal",value:void 0};if(l.type==="Forbidden")return r(),{type:"Forbidden"};if(l.type==="Number")return r(),{type:"Literal",value:Number(l.value)};if(l.type==="String")return r(),{type:"Literal",value:l.value};if(l.type==="Template")return r(),{type:"TemplateLiteral",parts:l.parts,expressions:l.exprs.map(function(g){return Lt(g)})};if(l.type==="Keyword"){if(l.value==="true")return r(),{type:"Literal",value:!0};if(l.value==="false")return r(),{type:"Literal",value:!1};if(l.value==="null")return r(),{type:"Literal",value:null};if(l.value==="undefined")return r(),{type:"Literal",value:void 0}}if(l.type==="Punc"&&l.value==="["){r();let g=[];for(;!i("Punc","]")&&n<e.length;)g.push(b()),i("Punc",",")&&r();return o("Punc","]"),{type:"ArrayExpr",elements:g}}if(l.type==="Punc"&&l.value==="{")return E();if(l.type==="Punc"&&l.value==="("){if(r(),y()){let p=T();o("Punc",")"),o("Op","=>");let P=s();return{type:"ArrowFunction",params:p,body:P}}let g=s();return o("Punc",")"),g}if(l.type==="Ident"){if(r(),i("Op","=>")){r();let g=s();return{type:"ArrowFunction",params:[l.value],body:g}}return{type:"Identifier",name:l.value}}return l.type==="Op"&&(l.value==="="||l.value==="+="||l.value==="-="||l.value==="*="||l.value==="/="||l.value==="%=")?(r(),{type:"Literal",value:void 0}):l.type==="Punc"&&l.value==="..."?(r(),{type:"SpreadElement",argument:s()}):(r(),{type:"Literal",value:void 0})}function E(){r();let l=[];for(;!i("Punc","}")&&n<e.length;){if(i("Punc","...")){r(),l.push({key:null,value:s(),computed:!1,spread:!0}),i("Punc",",")&&r();continue}if(i("Punc","[")){r();let g=s();o("Punc","]"),o("Punc",":");let p=s();l.push({key:g,value:p,computed:!0,spread:!1}),i("Punc",",")&&r();continue}if(i("String")){let g=r();if(i("Punc",":")){r();let p=s();l.push({key:g.value,value:p,computed:!1,spread:!1})}i("Punc",",")&&r();continue}if(i("Ident")||i("Keyword")){let g=r();if(i("Punc",":")){r();let p=s();l.push({key:g.value,value:p,computed:!1,spread:!1})}else l.push({key:g.value,value:{type:"Identifier",name:g.value},computed:!1,spread:!1});i("Punc",",")&&r();continue}if(i("Number")){let g=r();if(i("Punc",":")){r();let p=s();l.push({key:g.value,value:p,computed:!1,spread:!1})}i("Punc",",")&&r();continue}r()}return o("Punc","}"),{type:"ObjectExpr",properties:l}}function N(){let l=s(),g=t();if(g&&g.type==="Op"&&(g.value==="="||g.value==="+="||g.value==="-="||g.value==="*="||g.value==="/="||g.value==="%=")){let p=r().value,P=s();return{type:"AssignExpr",op:p,left:l,right:P}}return l}return N()}var Je={__proto__:1,constructor:1,prototype:1},vt={Array,Object,String,Number,Boolean,Math,Date,RegExp,Map,Set,JSON,parseInt,parseFloat,isNaN,isFinite,Infinity:1/0,NaN:NaN,undefined:void 0,Error,Symbol,console},rr=new Set(["fetch","XMLHttpRequest","localStorage","sessionStorage","WebSocket","indexedDB","eval","Function","importScripts","open","postMessage"]),qe={},nr=new Set(["cookie","domain","write","writeln","execCommand"]),or=typeof globalThis<"u"&&typeof globalThis.window<"u"?new Proxy(globalThis.window,{get(e,n,t){if(!(typeof n=="string"&&rr.has(n)))return typeof n=="string"&&n in qe?qe[n]:Reflect.get(e,n,t)},set(e,n,t){return typeof n=="string"&&rr.has(n)||n==="name"||n==="status"||(e[n]=t),!0}}):void 0,_t=typeof globalThis<"u"&&typeof globalThis.document<"u"?new Proxy(globalThis.document,{get(e,n,t){if(!(typeof n=="string"&&nr.has(n)))return n==="defaultView"?or:Reflect.get(e,n,t)},set(e,n,t){return typeof n=="string"&&nr.has(n)||(e[n]=t),!0}}):void 0,Vr=["href","pathname","search","hash","origin","hostname","port","protocol","host"],Te=()=>{},Et=typeof globalThis<"u"&&typeof globalThis.location<"u"?(()=>{let e={};for(let n of Vr)Object.defineProperty(e,n,{get(){return globalThis.location[n]},set(){},enumerable:!0,configurable:!1});return e.assign=Te,e.replace=Te,e.reload=Te,e.toString=()=>globalThis.location.href,Object.freeze(e)})():void 0,Jr=["length","state","scrollRestoration"],wt=typeof globalThis<"u"&&typeof globalThis.history<"u"?(()=>{let e={};for(let n of Jr)Object.defineProperty(e,n,{get(){return globalThis.history[n]},enumerable:!0,configurable:!1});return e.pushState=Te,e.replaceState=Te,e.back=Te,e.forward=Te,e.go=Te,Object.freeze(e)})():void 0,Xr=new Set(["sendBeacon","credentials"]),xt=typeof globalThis<"u"&&typeof globalThis.navigator<"u"?new Proxy(globalThis.navigator,{get(e,n,t){if(!(typeof n=="string"&&Xr.has(n)))return Reflect.get(e,n,t)},set(){return!0}}):void 0;Et&&(qe.location=Et);_t&&(qe.document=_t);wt&&(qe.history=wt);xt&&(qe.navigator=xt);var sr=new Set(["window","document","console","location","history","navigator","screen","performance","crypto","setTimeout","clearTimeout","setInterval","clearInterval","requestAnimationFrame","cancelAnimationFrame","alert","confirm","prompt","CustomEvent","Event","URL","URLSearchParams","FormData","FileReader","Blob","Promise"]);function F(e,n){try{if(!e)return;switch(e.type){case"Literal":return e.value;case"Identifier":return e.name in n?n[e.name]:e.name in vt?vt[e.name]:sr.has(e.name)&&typeof globalThis<"u"?e.name==="window"?or:e.name==="document"?_t:e.name==="location"?Et:e.name==="history"?wt:e.name==="navigator"?xt:globalThis[e.name]:void 0;case"Forbidden":return;case"BinaryExpr":{if(e.op==="&&"){let i=F(e.left,n);return i&&F(e.right,n)}if(e.op==="||"){let i=F(e.left,n);return i||F(e.right,n)}if(e.op==="??"){let i=F(e.left,n);return i??F(e.right,n)}let t=F(e.left,n),r=F(e.right,n);switch(e.op){case"+":return t+r;case"-":return t-r;case"*":return t*r;case"/":return t/r;case"%":return t%r;case"**":return t**r;case"===":return t===r;case"!==":return t!==r;case"==":return t==r;case"!=":return t!=r;case">":return t>r;case"<":return t<r;case">=":return t>=r;case"<=":return t<=r;case"in":return r&&typeof r=="object"?t in r:void 0;case"instanceof":return t instanceof r;case"&":return t&r;case"|":return t|r;case"^":return t^r;case"<<":return t<<r;case">>":return t>>r;case">>>":return t>>>r;default:return}}case"UnaryExpr":{if(e.op==="typeof")return e.argument&&e.argument.type==="Identifier"&&!(e.argument.name in n)?"undefined":typeof F(e.argument,n);if(e.op==="++"||e.op==="--"){let r=F(e.argument,n),i=e.op==="++"?r+1:r-1;return e.prefix?i:r}let t=F(e.argument,n);switch(e.op){case"!":return!t;case"-":return-t;case"+":return+t;case"~":return~t;case"void":return;default:return}}case"ConditionalExpr":return F(e.test,n)?F(e.consequent,n):F(e.alternate,n);case"MemberExpr":case"OptionalMemberExpr":{let t=F(e.object,n);if(t==null)return;let r=e.computed?F(e.property,n):e.property.name||e.property.value;return Je[r]?void 0:t[r]}case"CallExpr":case"OptionalCallExpr":{let t=i=>{let o=[];for(let s=0;s<i.length;s++)if(i[s].type==="SpreadElement"){let a=F(i[s].argument,n);a&&typeof a[Symbol.iterator]=="function"&&o.push(...a)}else o.push(F(i[s],n));return o};if(e.callee.type==="MemberExpr"||e.callee.type==="OptionalMemberExpr"){let i=F(e.callee.object,n);if(i==null)return e.type==="OptionalCallExpr"||e.callee.type==="OptionalMemberExpr",void 0;let o=e.callee.computed?F(e.callee.property,n):e.callee.property.name;if(Je[o])return;let s=i[o];return typeof s!="function"?void 0:s.apply(i,t(e.args))}let r=F(e.callee,n);return r==null&&e.type==="OptionalCallExpr"||typeof r!="function"?void 0:r.apply(void 0,t(e.args))}case"ArrayExpr":{let t=[];for(let r=0;r<e.elements.length;r++){let i=e.elements[r];if(i.type==="SpreadElement"){let o=F(i.argument,n);o&&typeof o[Symbol.iterator]=="function"&&t.push(...o)}else t.push(F(i,n))}return t}case"ObjectExpr":{let t={};for(let r=0;r<e.properties.length;r++){let i=e.properties[r];if(i.spread){let o=F(i.value,n);if(o&&typeof o=="object")for(let s of Object.keys(o))Je[s]||(t[s]=o[s])}else{let o=i.computed?F(i.key,n):i.key;if(Je[o])continue;t[o]=F(i.value,n)}}return t}case"SpreadElement":return F(e.argument,n);case"ArrowFunction":return function(...t){let r=Object.create(n);for(let i=0;i<e.params.length;i++){let o=e.params[i];if(typeof o=="string"&&o.startsWith("...")){r[o.slice(3)]=t.slice(i);break}r[o]=t[i]}return F(e.body,r)};case"TemplateLiteral":{let t=e.parts[0];for(let r=0;r<e.expressions.length;r++)t+=String(F(e.expressions[r],n)),t+=e.parts[r+1];return t}case"PostfixExpr":return F(e.argument,n);case"AssignExpr":return F(e.right,n);default:return}}catch{return}}function Gr(e){if(yt.has(e))return yt.get(e);let n=At(e),t=[],r=0;for(let i=0;i<=n.length;i++)if(i===n.length||n[i].type==="Punc"&&n[i].value===";"){let o=n.slice(r,i);o.length>0&&t.push(Lt(o)),r=i+1}return yt.set(e,t),t}function bt(e,n,t){if(e.type==="Identifier")t[e.name]=n;else if(e.type==="MemberExpr"||e.type==="OptionalMemberExpr"){let r=F(e.object,t);if(r==null)return;let i=e.computed?F(e.property,t):e.property.name||e.property.value;if(Je[i])return;r[i]=n}}function Yr(e,n){if(e)switch(e.type){case"AssignExpr":{let t=F(e.right,n),r;if(e.op==="=")r=t;else{let i=F(e.left,n);switch(e.op){case"+=":r=i+t;break;case"-=":r=i-t;break;case"*=":r=i*t;break;case"/=":r=i/t;break;case"%=":r=i%t;break;default:r=t}}return bt(e.left,r,n),r}case"PostfixExpr":{let t=F(e.argument,n),r=e.op==="++"?t+1:t-1;return bt(e.argument,r,n),t}case"UnaryExpr":{if(e.op==="++"||e.op==="--"){let t=F(e.argument,n),r=e.op==="++"?t+1:t-1;return bt(e.argument,r,n),r}return F(e,n)}default:{if(e.type==="CallExpr"&&e.callee.type==="Identifier"){let t=e.callee.name;if(!(t in n)&&!(t in vt)&&!sr.has(t))throw new ReferenceError(t+" is not defined")}return F(e,n)}}}function Zr(e){let n=[],t="",r=0,i=!1,o="";for(let s=0;s<e.length;s++){let a=e[s];if(i){t+=a,a===o&&e[s-1]!=="\\"&&(i=!1);continue}if(a==="'"||a==='"'||a==="`"){i=!0,o=a,t+=a;continue}if(a==="("||a==="["||a==="{"){r++,t+=a;continue}if(a===")"||a==="]"||a==="}"){r--,t+=a;continue}if(a==="|"&&r===0&&e[s+1]!=="|"&&e[s-1]!=="|"){n.push(t.trim()),t="";continue}t+=a}return n.push(t.trim()),n}function Qr(e,n){let t=n.indexOf(":"),r,i;t===-1?(r=n.trim(),i=null):(r=n.substring(0,t).trim(),i=n.substring(t+1).trim());let o=U[r];if(!o)return D(`Unknown filter: ${r}`),e;let s=i?en(i):[];return o(e,...s)}function en(e){let n=[],t="",r=!1,i="";for(let o of e){if(r){if(o===i){r=!1;continue}t+=o;continue}if(o==="'"||o==='"'){r=!0,i=o;continue}if(o===","){n.push(t.trim()),t="";continue}t+=o}return t.trim()&&n.push(t.trim()),n.map(o=>{let s=Number(o);return isNaN(s)?o:s})}function I(e,n){if(!(e==null||e===""))try{let t=Zr(e),r=t[0],{keys:i,vals:o}=ht(n),s={};for(let u=0;u<i.length;u++)s[i[u]]=o[i[u]];"$store"in s||(s.$store=Q),"$route"in s||(s.$route=ee?.current),"$router"in s||(s.$router=ee),"$i18n"in s||(s.$i18n=Z),"$refs"in s||(s.$refs=n.$refs),"$form"in s||(s.$form=n.$form||null);for(let u in ce){let d="$"+u;d in s||(s[d]=ce[u])}let a=er.get(r);a||(a=Lt(At(r)),er.set(r,a));let c=F(a,s);for(let u=1;u<t.length;u++)c=Qr(c,t[u]);return c}catch(t){D("Expression error:",e,t.message);return}}function se(e,n,t={}){try{let{keys:r,vals:i}=ht(n),o={};for(let d=0;d<r.length;d++)o[r[d]]=i[r[d]];"$store"in o||(o.$store=Q),"$route"in o||(o.$route=ee?.current),"$router"in o||(o.$router=ee),"$i18n"in o||(o.$i18n=Z),"$refs"in o||(o.$refs=n.$refs);for(let d in ce){let f="$"+d;f in o||(o[f]=ce[d])}Object.assign(o,t);let s=new Set,a=n;for(;a&&a.__isProxy;){for(let d of Object.keys(a.__raw))s.add(d);a=a.$parent}let c={};for(let d of s)!d.startsWith("$")&&d in o&&(c[d]=o[d]);let u=Gr(e);for(let d=0;d<u.length;d++)Yr(u[d],o);for(let d of s){if(d.startsWith("$")||!(d in o))continue;let f=o[d],x=c[d];if(f!==x){let v=n;for(;v&&v.__isProxy;){if(d in v.__raw){v.$set(d,f);break}v=v.$parent}}else if(typeof f=="object"&&f!==null){let v=n;for(;v&&v.__isProxy;){if(d in v.__raw){v.$notify();break}v=v.$parent}}}for(let d in o)d.startsWith("$")||s.has(d)||d in t||n.$set(d,o[d]);typeof e=="string"&&e.includes("$store")&&xe()}catch(r){D("Expression error:",e,r.message),t.$el&&t.$el.dispatchEvent(new CustomEvent("nojs:error",{bubbles:!0,detail:{message:r.message,error:r}}))}}function le(e,n){return e.split(".").reduce((t,r)=>t?.[r],n)}function ke(e,n){return e.replace(/\{([^}]+)\}/g,(t,r)=>{let i=I(r.trim(),n);return i==null?"":encodeURIComponent(String(i))})}te();te();var tn=200,ar=5e3,St=0,rn=1,Ct=new WeakMap;function cr(e,n,t){let r;return Promise.race([e.finally(()=>clearTimeout(r)),new Promise((i,o)=>{r=setTimeout(()=>o(new Error(t)),n)})])}function lr(e){return Be.has(e.toLowerCase())||/^x-(auth|api)-/i.test(e)}function ur(e){try{let n=new URL(e,"http://localhost");for(let t of[...n.searchParams.keys()])/token|key|secret|auth|password|credential/i.test(t)&&n.searchParams.set(t,"[REDACTED]");return e.startsWith("http")?n.href:n.pathname+n.search}catch{return e}}function nn(e){let n=new Headers(e.headers);for(let i of Ht)n.delete(i);let t=ur(e.url),r=Object.freeze({status:e.status,ok:e.ok,statusText:e.statusText,headers:n,url:t});return Ct.set(r,e),r}function Tt(e,n){if(e.startsWith("http://")||e.startsWith("https://")||e.startsWith("//"))return e;let t=n;for(;t;){let r=t.getAttribute?.("base");if(r)return r.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,"");t=t.parentElement}return C.baseApiUrl?C.baseApiUrl.replace(/\/+$/,"")+"/"+e.replace(/^\/+/,""):e}async function et(e,n="GET",t=null,r={},i=null,o=null,s=void 0,a=void 0){let c=Tt(e,i),u={method:n.toUpperCase(),headers:{...C.headers||{},...r},credentials:C.credentials};if(t&&n!=="GET")if(typeof t=="string")try{JSON.parse(t),u.headers["Content-Type"]="application/json",u.body=t}catch{u.body=t}else t instanceof FormData?u.body=t:(u.headers["Content-Type"]="application/json",u.body=JSON.stringify(t));C.csrf&&n!=="GET"&&(u.headers[C.csrf.header||"X-CSRF-Token"]=C.csrf.token||"");let d={};for(let v of Object.keys(u.headers))lr(v)&&(d[v]=u.headers[v],delete u.headers[v]);St++;try{if(St<=rn)for(let v=0;v<he.request.length;v++){let A=he.request[v],w=A.fn??A,m=A.pluginName&&pe.get(A.pluginName)?.options?.trusted===!0?{...u,headers:{...u.headers,...d}}:{...u,headers:{...u.headers}},_=await cr(Promise.resolve(w(c,m)),ar,"Interceptor timeout").catch(b=>{D(`Request interceptor [${v}] error:`,b.message)});if(_&&_[Ue])throw Y("Request cancelled by interceptor",v),new DOMException("Request cancelled by interceptor","AbortError");if(_&&_[Fe]!==void 0)return Y("Request short-circuited by interceptor",v),_[Fe];if(_&&typeof _=="object"&&!_[Ue]&&_[Fe]===void 0&&_.headers&&typeof _.headers=="object"){let b={...u.headers};for(let[y,T]of Object.entries(_.headers))lr(y)||(b[y]=T);u.headers=b}}}finally{St--}Object.assign(u.headers,d);let f=s!==void 0?s:C.retries||0,x;for(let v=0;v<=f;v++)try{let A=new AbortController,w=setTimeout(()=>A.abort(),C.timeout||1e4);if(o){if(o.aborted)throw clearTimeout(w),new DOMException("Aborted","AbortError");o.addEventListener("abort",()=>A.abort(),{once:!0})}u.signal=A.signal;let h=await fetch(c,u);clearTimeout(w);for(let _=0;_<he.response.length;_++){let b=he.response[_],y=b.fn??b,T=b.pluginName&&pe.get(b.pluginName)?.options?.trusted===!0,L=T?h:nn(h),E=T?c:ur(c),N=await cr(Promise.resolve(y(L,E)),ar,"Response interceptor timeout").catch(S=>{D(`Response interceptor [${_}] error:`,S.message)});if(N&&N[We]!==void 0)return Y("Response replaced by interceptor",_),N[We];N&&(h=N)}if(Ct.has(h)&&(h=Ct.get(h)),!h.ok){let _=await h.json().catch(()=>({})),b=new Error(_.message||`HTTP ${h.status}`);throw b.status=h.status,b.body=_,b}let m=await h.text();try{return JSON.parse(m)}catch{return m}}catch(A){if(A.name==="AbortError")throw A;x=A,v<f&&await new Promise(w=>setTimeout(w,a!==void 0?a:C.retryDelay||1e3))}throw x}function dr(e,n){if(n==="none")return null;if(n==="memory"){let r=ye.get(e);return r&&Date.now()-r.time<(C.cache.ttl||3e5)?(ye.delete(e),ye.set(e,r),r.data):null}let t=n==="local"?localStorage:n==="session"?sessionStorage:null;if(!t)return null;try{let r=t.getItem("nojs_cache_"+e);if(!r)return null;let i=JSON.parse(r);if(Date.now()-i.time<(C.cache.ttl||3e5))return i.data;t.removeItem("nojs_cache_"+e)}catch{}return null}function fr(e,n,t){if(t==="none")return;let r={data:n,time:Date.now()};if(t==="memory"){ye.has(e)?ye.delete(e):ye.size>=tn&&ye.delete(ye.keys().next().value),ye.set(e,r);return}let i=t==="local"?localStorage:t==="session"?sessionStorage:null;if(i)try{i.setItem("nojs_cache_"+e,JSON.stringify(r))}catch{}}var Ie=new Map;function H(e){let n=e;for(;n;){if(n.__ctx)return n.__ctx;n=n.parentElement}return B()}function Se(e){let n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);for(;n.nextNode();)n.currentNode.__declared=!1}function re(e){if(!e)return null;let n=e.startsWith("#")?e.slice(1):e,t=document.getElementById(n);return t&&t.content?t.content.cloneNode(!0):null}function pr(e){let t=new DOMParser().parseFromString(e,"image/svg+xml").documentElement;if(t.querySelector("parsererror")||t.nodeName!=="svg"||t.getElementsByTagNameNS("http://www.mozilla.org/newlayout/xml/parsererror.xml","parsererror").length)return"<svg></svg>";function r(i){for(let o of[...i.attributes]){let s=o.name.toLowerCase();if(s.startsWith("on")){i.removeAttribute(o.name);continue}(s==="href"||s==="xlink:href")&&o.value.trim().toLowerCase().startsWith("javascript:")&&i.removeAttribute(o.name)}}for(let i of[...t.querySelectorAll("script")])i.remove();r(t);for(let i of t.querySelectorAll("*"))r(i);return new XMLSerializer().serializeToString(t)}function on(e){try{let n=e.match(/^data:image\/svg\+xml;base64,(.+)$/i);if(n){let o=pr(atob(n[1]));return"data:image/svg+xml;base64,"+btoa(o)}let t=e.indexOf(",");if(t===-1)return"#";let r=e.slice(0,t+1),i=pr(decodeURIComponent(e.slice(t+1)));return r+encodeURIComponent(i)}catch{return"#"}}var sn=new Set(["script","style","iframe","object","embed","base","form","meta","link","noscript"]);function tt(e){if(C.dangerouslyDisableSanitize||!C.sanitize)return D("HTML sanitization is DISABLED. This exposes your app to XSS attacks. Only disable for trusted content."),e;if(typeof C.sanitizeHtml=="function")return C.sanitizeHtml(e);let n=new DOMParser().parseFromString(e,"text/html");function t(r){for(let i of[...r.childNodes])if(i.nodeType===1){if(sn.has(i.tagName.toLowerCase())){i.remove();continue}for(let o of[...i.attributes]){let s=o.name.toLowerCase(),a=o.value.toLowerCase().trimStart(),c=s==="href"||s==="src"||s==="action"||s==="xlink:href"||s==="formaction"||s==="poster"||s==="data",u=a.startsWith("javascript:")||a.startsWith("vbscript:"),d=c&&a.startsWith("data:")&&!/^data:image\//.test(a);s.startsWith("on")||u||d?i.removeAttribute(o.name):c&&a.startsWith("data:image/svg+xml")&&i.setAttribute(o.name,on(o.value))}t(i)}}return t(n.body),n.body.innerHTML}function kt(e,n){if(e.startsWith("./")){let t=n.parentNode;for(;t;){if(t.__srcBase)return t.__srcBase+e.slice(2);t=t.parentNode}return e.slice(2)}return Tt(e,n)}function mr(e,n,t){let r=t!==void 0?t:typeof window<"u"&&window.location?window.location.protocol:"";e.startsWith("http://")&&r==="https:"&&D('Template "'+n+'" is loaded over insecure HTTP from an HTTPS page. Use HTTPS to prevent tampering.')}async function gr(e){let n=e||document,t=n.querySelectorAll("template[src]");if(Y("[LRT] called on",n===document?"document":n.nodeName||"fragment","\u2014 found",t.length,"template[src]",[...t].map(i=>i.getAttribute("src"))),!t.length)return;let r=[...t].map(async i=>{if(i.__srcLoaded){Y("[LRT] SKIP (already loaded):",i.getAttribute("src"));return}i.__srcLoaded=!0;let o=i.getAttribute("src"),s=kt(o,i);mr(s,o);let a=s.substring(0,s.lastIndexOf("/")+1);try{let c=C.templates.cache!==!1,u;if(c&&Ie.has(s))u=Ie.get(s),Y("[LRT] CACHE HIT:",s);else{let d=await fetch(s);if(!d.ok){D("Failed to load template:",o,"HTTP",d.status),i.__loadFailed=!0;return}u=await d.text(),c&&Ie.set(s,u)}if(i.innerHTML=u,i.content&&(i.content.__srcBase=a),Y("Loaded remote template:",o,"\u2192",s),await gr(i.content||i),!i.hasAttribute("route")&&i.parentNode){let f=[...i.content.childNodes],x=i.parentNode,v=i.nextSibling;x.removeChild(i);for(let A of f)A.nodeType===1&&(A.__srcBase=A.__srcBase||a),x.insertBefore(A,v)}}catch(c){D("Failed to load template:",o,c.message)}});await Promise.all(r)}async function Le(e){let n=e.getAttribute("src");if(e.__srcLoaded){Y("[LTE] SKIP (already loaded):",n);return}Y("[LTE] START fetch:",n,"| route:",e.hasAttribute("route"),"| inDOM:",document.contains(e),"| loading:",e.getAttribute("loading")),e.__srcLoaded=!0;let t=kt(n,e);mr(t,n);let r=t.substring(0,t.lastIndexOf("/")+1),i=null,o=e.getAttribute("loading");if(o&&e.parentNode){let s=o.startsWith("#")?o.slice(1):o,a=document.getElementById(s);a&&a.content&&(i=document.createElement("span"),i.style.cssText="display:contents",i.appendChild(a.content.cloneNode(!0)),e.parentNode.insertBefore(i,e))}try{let s=C.templates.cache!==!1,a;if(s&&Ie.has(t))a=Ie.get(t),Y("[LTE] CACHE HIT:",t);else{let c=await fetch(t);if(!c.ok){D("Failed to load template:",n,"HTTP",c.status),e.__loadFailed=!0,i&&i.remove();return}a=await c.text(),s&&Ie.set(t,a)}if(e.innerHTML=a,e.content&&(e.content.__srcBase=r),Y("Loaded remote template:",n,"\u2192",t),!e.hasAttribute("route"))await gr(e.content||e);else if(s&&e.content){let u=[...e.content.querySelectorAll("template[src]")].map(d=>{let f=d.getAttribute("src"),x=kt(f,d);if(!Ie.has(x))return fetch(x).then(v=>{if(!v.ok)throw new Error("HTTP "+v.status);return v.text()}).then(v=>{Ie.set(x,v)}).catch(()=>{})});Promise.all(u)}if(i&&i.remove(),!e.hasAttribute("route")&&e.parentNode){let u=[...e.content.childNodes],d=e.parentNode,f=e.nextSibling;d.removeChild(e);for(let x of u)x.nodeType===1&&(x.__srcBase=x.__srcBase||r),d.insertBefore(x,f)}}catch(s){i&&i.remove(),D("Failed to load template:",n,s.message)}}function rt(e){(e||document).querySelectorAll("template[include]").forEach(t=>{let r=t.getAttribute("include"),i=document.getElementById(r.startsWith("#")?r.slice(1):r);!i||!i.content||t.replaceWith(i.content.cloneNode(!0))})}async function hr(e){let n=[...document.querySelectorAll("template[src]")],t=n.filter(i=>!i.__srcLoaded&&i.getAttribute("lazy")==="priority");await Promise.all(t.map(Le));let r=n.filter(i=>{if(i.__srcLoaded)return!1;let o=i.getAttribute("lazy");return o==="ondemand"||o==="priority"?!1:i.hasAttribute("route")?e!=null&&i.getAttribute("route")===e:!0});await Promise.all(r.map(Le))}function yr(){let n=[...document.querySelectorAll("template[src]")].filter(t=>t.__srcLoaded||t.getAttribute("lazy")==="ondemand"?!1:t.hasAttribute("route"));return Promise.all(n.map(Le))}te();Ae();var Xe=new Map,It=!1,br=new Set;function R(e,n){if(It&&br.has(e)){D(`Cannot override core directive "${e}".`);return}Xe.set(e,{priority:n.priority??50,init:n.init}),It||br.add(e)}function _r(){It=!0}function an(e){if(Xe.has(e))return{directive:Xe.get(e),match:e};let n=["class-*","on:*","style-*","bind-*"];for(let t of n){let r=t.replace("*","");if(e.startsWith(r)&&Xe.has(t))return{directive:Xe.get(t),match:t}}return null}function vr(e){if(e.__declared)return;e.__declared=!0;let n=[];for(let r of[...e.attributes]){let i=an(r.name);i&&n.push({name:r.name,value:r.value,priority:i.directive.priority,init:i.directive.init})}n.sort((r,i)=>r.priority-i.priority);let t=fe;for(let r of n)ut(e),r.init(e,r.name,r.value);ut(t),n.length>0&&oe("directive:init",{element:e.tagName?.toLowerCase(),directives:n.map(r=>({name:r.name,value:r.value}))})}function W(e){if(!e)return;e.nodeType===1&&!e.__declared&&vr(e);let n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);for(;n.nextNode();){let t=n.currentNode;t.tagName==="TEMPLATE"||t.tagName==="SCRIPT"||t.__declared||vr(t)}}function Nt(e){let n=e.__ctx?.__raw?.__devtoolsId;if(e.__ctx&&e.__ctx.__listeners){for(let t of e.__ctx.__listeners)$e.delete(t),De.delete(t);e.__ctx.__listeners.clear()}e.__disposers&&(e.__disposers.forEach(t=>t()),e.__disposers=null),e.__declared=!1,n!=null&&(Re.delete(n),oe("ctx:disposed",{id:n,elementTag:e.tagName?.toLowerCase()}))}function $t(e){if(!e)return;Nt(e);let n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);for(;n.nextNode();)Nt(n.currentNode)}function q(e){if(!e)return;let n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT);for(;n.nextNode();)Nt(n.currentNode)}te();var Er=!1;function wr(){if(Er||typeof document>"u")return;Er=!0;let e=`
13
13
  @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
14
14
  @keyframes fadeOut { from { opacity: 1; } to { opacity: 0; } }
15
15
  @keyframes fadeInUp { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@@ -24,7 +24,7 @@ var Xe=Object.defineProperty;var or=Object.getOwnPropertyDescriptor;var sr=Objec
24
24
  @keyframes zoomOut { from { opacity: 1; transform: scale(1); } to { opacity: 0; transform: scale(0.5); } }
25
25
  @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); } }
26
26
  @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); } }
27
- `.trim(),n=document.createElement("style");n.setAttribute("data-nojs-animations",""),n.textContent=e,document.head.appendChild(n)}function Pe(e,n,r,t){Xt();let i=t||1e3;if(n){let o=e.firstElementChild||e;o.classList.add(n),t&&(o.style.animationDuration=t+"ms"),o.addEventListener("animationend",()=>o.classList.remove(n),{once:!0})}if(r){let o=e.firstElementChild||e;o.classList.add(r+"-enter",r+"-enter-active"),requestAnimationFrame(()=>{o.classList.remove(r+"-enter"),o.classList.add(r+"-enter-to");let s=()=>{o.classList.remove(r+"-enter-active",r+"-enter-to")};o.addEventListener("transitionend",s,{once:!0}),setTimeout(s,i)})}}function qe(e,n,r,t,i){Xt();let o=i||2e3;if(!e.firstElementChild&&!e.childNodes.length)return t(),()=>{};if(n){let s=e.firstElementChild||e;s.classList.add(n),i&&(s.style.animationDuration=i+"ms");let a=!1,l=()=>{a||(a=!0,s.classList.remove(n),t())};s.addEventListener("animationend",l,{once:!0});let u=setTimeout(l,o);return()=>{a=!0,clearTimeout(u),s.removeEventListener("animationend",l)}}if(r){let s=e.firstElementChild||e;s.classList.add(r+"-leave",r+"-leave-active");let a=!1,l,u=requestAnimationFrame(()=>{s.classList.remove(r+"-leave"),s.classList.add(r+"-leave-to");let d=()=>{a||(a=!0,s.classList.remove(r+"-leave-active",r+"-leave-to"),t())};s.addEventListener("transitionend",d,{once:!0}),l=setTimeout(d,o)});return()=>{a=!0,cancelAnimationFrame(u),clearTimeout(l),s.classList.remove(r+"-leave",r+"-leave-active",r+"-leave-to")}}return t(),()=>{}}var Yt='<div style="text-align:center;padding:3rem 1rem;font-family:system-ui,sans-serif"><h1 style="font-size:4rem;margin:0;opacity:.3">404</h1><p style="font-size:1.25rem;color:#666">Page not found</p></div>';function Gt(){for(let e of document.querySelectorAll("[route-view]"))gt(e),e.innerHTML=""}function Qt(e){let n=(C.router.base||"/").replace(/\/$/,"");if(!n)return e||"/";let r=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp("^"+r),"")||"/"}function Zt(){let e=[],n=new Map,r={path:"",params:{},query:{},hash:""},t=new Set,i=new Map;function o(f){let v=e.find(y=>y.path===f);return v||(v={path:f,outlets:{}},e.push(v)),v}function s(f){let v={};return new URLSearchParams(f).forEach((y,g)=>{v[g]=y}),v}function a(f){for(let v of e){let y=[],g=v.path.replace(/:(\w+)/g,(w,x)=>(y.push(x),"([^/]+)")),E=new RegExp("^"+g+"$"),L=f.match(E);if(L){let w={};return y.forEach((x,A)=>{w[x]=L[A+1]}),{route:v,params:w}}}return null}async function l(f,v=!1){let y=f.indexOf("#"),g=y>=0?f.slice(y+1):"",E=y>=0?f.slice(0,y):f,[L,w=""]=E.split("?");r={path:L,params:{},query:s(w),hash:g?"#"+g:""};let x=a(L);if(x){r.matched=!0,r.params=x.params;let A=x.route.outlets?.default,b=A?.getAttribute("guard"),T=A?.getAttribute("redirect");if(b){let $=R({},null);if($.__raw.$store=G,$.__raw.$route=r,!I(b,$)){T?await l(T,!0):(K(`Route guard failed for "${f}" but no redirect is defined. The route will not render.`),Gt());return}}}else{r.matched=!1;let A=n.get("default");if(A){let b=A.getAttribute("guard"),T=A.getAttribute("redirect");if(b){let $=R({},null);if($.__raw.$store=G,$.__raw.$route=r,!I(b,$)){T?await l(T,!0):(K(`Route guard failed for "${f}" but no redirect is defined. The route will not render.`),Gt());return}}}}if(C.router.useHash){let A="#"+f;v?window.location.replace(A):window.location.hash=f}else{let A=(C.router.base||"/").replace(/\/$/,"")+f;v?window.history.replaceState({},"",A):window.history.pushState({},"",A)}if(await u(x),t.forEach(A=>A(r)),oe("route:navigate",{path:r.path,params:r.params,query:r.query,hash:r.hash}),r.hash){let A=r.hash.slice(1);requestAnimationFrame(()=>{let b=document.getElementById(A);b&&b.scrollIntoView({behavior:"smooth"})})}}async function u(f){let v=document.querySelectorAll("[route-view]");for(let g of v){let E=g.getAttribute("route-view"),L=E&&E.trim()!==""?E.trim():"default",w=f?.route?.outlets?.[L],x=C.router.templates||"";if(!w&&(g.hasAttribute("src")||x)){let b=(g.getAttribute("src")||x).replace(/\/?$/,"/"),T=g.getAttribute("ext")||C.router.ext||".html",$=g.getAttribute("route-index")||"index",k=r.path==="/"?$:r.path.replace(/^\//,""),c=b+k+T,m=L+":"+c;i.has(m)?w=i.get(m):(w=document.createElement("template"),w.setAttribute("src",c),w.setAttribute("route",r.path),document.body.appendChild(w),i.set(m,w),te("[ROUTER] File-based route:",r.path,"\u2192",c)),g.hasAttribute("i18n-ns")&&!w.getAttribute("i18n-ns")&&w.setAttribute("i18n-ns",k)}if((!w||w.__loadFailed)&&(!f||w?.__loadFailed)){let A=n.get(L)||(L!=="default"?n.get("default"):null);A&&(w=A)}if(gt(g),g.innerHTML="",w&&!w.__loadFailed){if(w.getAttribute("src")&&!w.__srcLoaded&&(te("Loading route template on demand:",w.getAttribute("src")),await ve(w)),w.__loadFailed){let m=n.get(L)||(L!=="default"?n.get("default"):null);if(m&&!m.__loadFailed&&(w=m,w.getAttribute("src")&&!w.__srcLoaded&&await ve(w)),!w||w.__loadFailed){g.innerHTML=Yt;continue}}let A=w.getAttribute("i18n-ns");if(A){let{_loadI18nNamespace:m}=await Promise.resolve().then(()=>(be(),At));await m(A)}let b=w.content.cloneNode(!0),T=R({$route:r},M(g)),$=document.createElement("div");$.style.display="contents",$.__ctx=T,w.content.__srcBase&&($.__srcBase=w.content.__srcBase),$.appendChild(b),g.appendChild($),Ue($);let k=[...$.querySelectorAll("template[src]")];te("[ROUTER] nested templates found in wrapper:",k.length,k.map(m=>m.getAttribute("src")+(m.__srcLoaded?"[LOADED]":"[NEW]"))),await Promise.all(k.map(ve)),te("[ROUTER] all nested loads done for route:",r.path);let c=g.getAttribute("transition");c&&Pe($,null,c),_e($),z($)}else(!f||w?.__loadFailed)&&(g.innerHTML=Yt)}document.querySelectorAll("[route]").forEach(g=>{let E=g.getAttribute("route"),L=g.getAttribute("route-active")||"active",w=g.getAttribute("route-active-exact");if(w)g.classList.toggle(w,r.path===E);else if(L&&!g.hasAttribute("route-active-exact")){let x=E==="/"?r.path==="/":r.path.startsWith(E);g.classList.toggle(L,x)}});let y=C.router.scrollBehavior;y==="top"?window.scrollTo(0,0):y==="smooth"&&window.scrollTo({top:0,behavior:"smooth"})}function d(f,v){v.scrollIntoView({behavior:"smooth"});let y='a[href="#'+f+'"]';document.querySelectorAll('a[href^="#"]').forEach(g=>{g.hasAttribute("route")||g.classList.toggle("active",g.matches(y))})}function p(){let f=document.querySelectorAll("[route-view]");for(let v of f){let y=v.getAttribute("src")||C.router.templates||"";if(!y)continue;let g=y.replace(/\/?$/,"/"),E=v.getAttribute("ext")||C.router.ext||".html",L=v.getAttribute("route-index")||"index",w=(v.getAttribute("route-view")||"").trim()||"default",x=new Map;document.querySelectorAll("[route]:not([route-view])").forEach(T=>{let $=T.getAttribute("route");if(!$)return;let k=$.split("?")[0].split("#")[0],c=T.getAttribute("lazy"),m=x.get(k);(!x.has(k)||c==="priority"||m==="ondemand"&&c!=="ondemand")&&x.set(k,c)});let A=[],b=[];for(let[T,$]of x){if($==="ondemand"||T===r.path||T==="*")continue;let k=T==="/"?L:T.replace(/^\//,""),c=g+k+E,m=w+":"+c;if(i.has(m))continue;let h=document.createElement("template");h.setAttribute("src",c),h.setAttribute("route",T),document.body.appendChild(h),i.set(m,h),te("[ROUTER] Prefetch:",T,"\u2192",c,$==="priority"?"(priority)":"(background)"),v.hasAttribute("i18n-ns")&&h.setAttribute("i18n-ns",k),$==="priority"?A.push(h):b.push(h)}(A.length||b.length)&&Promise.all(A.map(ve)).then(()=>{b.forEach(ve)})}}return{get current(){return r},push(f){return l(f)},replace(f){return l(f,!0)},back(){window.history.back()},forward(){window.history.forward()},on(f){return t.add(f),()=>t.delete(f)},register(f,v,y="default"){if(f==="*"){n.set(y,v);return}let g=o(f);g.outlets[y]=v},async init(){if(document.querySelectorAll("template[route]").forEach(f=>{let v=f.getAttribute("route"),y=f.getAttribute("outlet")||"default";if(v==="*"){n.set(y,f);return}let g=o(v);g.outlets[y]=f}),document.addEventListener("click",f=>{let v=f.target.closest("[route]");if(v&&!v.hasAttribute("route-view")){f.preventDefault();let g=v.getAttribute("route");l(g);return}let y=f.target.closest('a[href^="#"]');if(y&&!y.hasAttribute("route")){let E=y.getAttribute("href").slice(1);if(E&&!E.startsWith("/")){let L=document.getElementById(E);L&&(f.preventDefault(),d(E,L),C.router.useHash||window.history.replaceState(null,"","#"+E))}}}),C.router.useHash){window.addEventListener("hashchange",()=>{let v=window.location.hash.slice(1)||"/";if(!v.startsWith("/")){let g=document.getElementById(v);g&&(d(v,g),window.history.replaceState(null,"","#"+r.path));return}let[y]=v.split("?");y!==r.path&&l(v,!0)});let f=window.location.hash.slice(1)||"/";await l(f,!0)}else{window.addEventListener("popstate",()=>{let v=Qt(window.location.pathname);if(v===r.path){let y=window.location.hash.slice(1);if(y){let g=document.getElementById(y);g&&d(y,g)}return}l(v,!0)});let f=Qt(window.location.pathname);await l(f,!0)}p()}}}re();F.uppercase=e=>String(e??"").toUpperCase();F.lowercase=e=>String(e??"").toLowerCase();F.capitalize=e=>String(e??"").replace(/\b\w/g,n=>n.toUpperCase());F.truncate=(e,n=100)=>{let r=String(e??"");return r.length>n?r.slice(0,n)+"...":r};F.trim=e=>String(e??"").trim();F.stripHtml=e=>String(e??"").replace(/<[^>]*>/g,"");F.slugify=e=>String(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");F.nl2br=e=>String(e??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\n/g,"<br>");F.encodeUri=e=>encodeURIComponent(String(e??""));F.number=(e,n=0)=>{let r=Number(e);return isNaN(r)?e:r.toLocaleString(void 0,{minimumFractionDigits:n,maximumFractionDigits:n})};F.currency=(e,n="USD")=>{let r=Number(e);if(isNaN(r))return e;try{return r.toLocaleString(void 0,{style:"currency",currency:n})}catch{return`${n} ${r.toFixed(2)}`}};F.percent=(e,n=0)=>{let r=Number(e);return isNaN(r)?e:(r*100).toFixed(n)+"%"};F.filesize=e=>{let n=Number(e);if(isNaN(n))return e;let r=["B","KB","MB","GB","TB"],t=0,i=n;for(;i>=1024&&t<r.length-1;)i/=1024,t++;return i.toFixed(t>0?1:0)+" "+r[t]};F.ordinal=e=>{let n=Number(e);if(isNaN(n))return e;let r=["th","st","nd","rd"],t=n%100;return n+(r[(t-20)%10]||r[t]||r[0])};F.count=e=>Array.isArray(e)?e.length:0;F.first=e=>Array.isArray(e)?e[0]:e;F.last=e=>Array.isArray(e)?e[e.length-1]:e;F.join=(e,n=", ")=>Array.isArray(e)?e.join(n):e;F.reverse=e=>Array.isArray(e)?[...e].reverse():e;F.unique=e=>Array.isArray(e)?[...new Set(e)]:e;F.pluck=(e,n)=>Array.isArray(e)?e.map(r=>r?.[n]):e;F.sortBy=(e,n)=>{if(!Array.isArray(e))return e;let r=n?.startsWith("-"),t=r?n.slice(1):n;return[...e].sort((i,o)=>{let s=i?.[t],a=o?.[t],l=s<a?-1:s>a?1:0;return r?-l:l})};F.where=(e,n,r)=>Array.isArray(e)?e.filter(t=>t?.[n]===r):e;F.date=(e,n="short")=>{let r=new Date(e);if(isNaN(r))return e;let t=n==="long"?{dateStyle:"long"}:n==="full"?{dateStyle:"full"}:{dateStyle:"short"};return r.toLocaleDateString(void 0,t)};F.datetime=e=>{let n=new Date(e);return isNaN(n)?e:n.toLocaleString()};F.relative=e=>{let n=new Date(e);if(isNaN(n))return e;let r=(Date.now()-n.getTime())/1e3;return r<60?"just now":r<3600?Math.floor(r/60)+"m ago":r<86400?Math.floor(r/3600)+"h ago":r<2592e3?Math.floor(r/86400)+"d ago":n.toLocaleDateString()};F.fromNow=e=>{let n=new Date(e);if(isNaN(n))return e;let r=(n.getTime()-Date.now())/1e3;return r<0?F.relative(e):r<60?"in a moment":r<3600?"in "+Math.floor(r/60)+"m":r<86400?"in "+Math.floor(r/3600)+"h":"in "+Math.floor(r/86400)+"d"};F.default=(e,n="")=>e==null||e===""?n:e;F.json=(e,n=2)=>JSON.stringify(e,null,n);F.debug=e=>(console.log("[No.JS debug]",e),e);F.keys=e=>e&&typeof e=="object"?Object.keys(e):[];F.values=e=>e&&typeof e=="object"?Object.values(e):[];re();j("state",{priority:0,init(e,n,r){let t=I(r,R())||{},i=e.parentElement?M(e.parentElement):null,o=R(t,i);e.__ctx=o;let s=e.getAttribute("persist"),a=e.getAttribute("persist-key");if(s&&!a){K(`persist="${s}" requires a persist-key attribute. State will not be persisted.`);return}if(s&&a){let l=s==="localStorage"?localStorage:s==="sessionStorage"?sessionStorage:null;if(l){let u=e.getAttribute("persist-fields"),d=u?new Set(u.split(",").map(v=>v.trim())):null;try{let v=l.getItem("nojs_state_"+a);if(v){let y=JSON.parse(v),g=e.hasAttribute("persist-schema");for(let[E,L]of Object.entries(y))if(!d||d.has(E)){if(g){if(!(E in t)){K('persist-schema: ignoring unknown key "'+E+'"');continue}if(t[E]!==null&&L!==null&&typeof L!=typeof t[E]){K('persist-schema: type mismatch for "'+E+'" (expected '+typeof t[E]+", got "+typeof L+")");continue}}o.$set(E,L)}}}catch{}let p=["token","password","secret","key","auth","credential","session"],f=Object.keys(t).filter(v=>p.some(y=>v.toLowerCase().includes(y)));f.length>0&&K("State key(s) "+f.map(v=>'"'+v+'"').join(", ")+" may contain sensitive data. Consider using persist-fields to exclude them."),o.$watch(()=>{try{let v=o.__raw,y=d?Object.fromEntries(Object.entries(v).filter(([g])=>d.has(g))):v;l.setItem("nojs_state_"+a,JSON.stringify(y))}catch{}})}}te("state",t)}});j("store",{priority:0,init(e,n,r){let t=e.getAttribute("value");if(r){if(!G[r]){let i=t?I(t,R())||{}:{};G[r]=R(i),oe("store:created",{name:r,keys:Object.keys(i)})}te("store",r)}}});j("computed",{priority:2,init(e,n,r){let t=e.getAttribute("expr");if(!r||!t)return;let i=M(e);function o(){let s=I(t,i);i.$set(r,s)}Q(t,i,o),o()}});j("watch",{priority:2,init(e,n,r){let t=M(e),i=e.getAttribute("on:change"),o=I(r,t);Q(r,t,()=>{let s=I(r,t);if(s!==o){let a=o;o=s,i&&se(i,t,{$old:a,$new:s})}})}});re();var Ir=["get","post","put","patch","delete"],$r=new Set(["authorization","x-api-key","x-auth-token","cookie","proxy-authorization","set-cookie","x-csrf-token"]);for(let e of Ir)j(e,{priority:1,init(n,r,t){let i=n.getAttribute("as")||"data",o=n.getAttribute("loading"),s=n.getAttribute("error"),a=n.getAttribute("empty"),l=n.getAttribute("success"),u=n.getAttribute("then"),d=n.getAttribute("redirect"),p=n.getAttribute("confirm"),_=parseInt(n.getAttribute("refresh"))||0,f=n.getAttribute("cached"),v=n.hasAttribute("cached")?f||"memory":"none",y=n.getAttribute("body"),g=n.getAttribute("headers"),E=n.getAttribute("var"),L=n.getAttribute("into"),w=parseInt(n.getAttribute("retry"))||C.retries,x=parseInt(n.getAttribute("retry-delay"))||C.retryDelay||1e3,A=n.getAttribute("params"),b=n.parentElement?M(n.parentElement):R(),T=n.__ctx||R({},b);n.__ctx=T;let $=[...n.childNodes].map(h=>h.cloneNode(!0)),k=null;async function c(){if(k&&k.abort(),k=new AbortController,p&&!window.confirm(p))return;let h=Ae(t,T);if(A){let N=I(A,T);if(N&&typeof N=="object"){let B=h.includes("?")?"&":"?",O=new URLSearchParams(N).toString();O&&(h+=B+O)}}let D=e+":"+h;if(e==="get"){let N=Ft(D,v);if(N!=null){T.$set(i,N),_e(n),z(n);return}}if(o){let N=ee(o);N&&(V(n),n.innerHTML="",n.appendChild(N),z(n))}try{let N=null;if(y){let P=Ae(y,T);try{N=JSON.parse(P)}catch{N=P}}if(n.tagName==="FORM"){let P=new FormData(n);N=Object.fromEntries(P.entries())}let B=g?JSON.parse(g):{};if(g)for(let P of Object.keys(B)){let X=P.toLowerCase();($r.has(X)||/^x-(auth|api)-/.test(X))&&K(`Sensitive header "${P}" is set inline on a headers attribute. Use NoJS.config({ headers }) or an interceptor to avoid exposing credentials in HTML source.`)}let O=await Fe(h,e,N,B,n,k.signal,w,x);if(e==="get"&&zt(D,O,v),a&&(O==null||Array.isArray(O)&&O.length===0)){let P=ee(a);P&&(V(n),n.innerHTML="",n.appendChild(P),z(n));return}if(T.$set(i,O),L&&(G[L]||(G[L]=R({})),G[L].$set(i,O),Ee()),l){let P=ee(l);if(P){V(n),n.innerHTML="";let W=document.getElementById(l.replace("#",""))?.getAttribute("var")||E||"result",U=R({[W]:O},T),ne=document.createElement("div");ne.style.display="contents",ne.__ctx=U,ne.appendChild(P),n.appendChild(ne),z(ne)}}else{V(n),n.innerHTML="";for(let P of $)n.appendChild(P.cloneNode(!0));_e(n),z(n)}u&&se(u,T,{result:O}),d&&Z&&Z.push(d),we("fetch:success",{url:h,data:O}),oe("fetch:success",{method:e,url:h})}catch(N){if(N.name==="AbortError")return;if(K(`${e.toUpperCase()} ${h} failed:`,N.message),we("fetch:error",{url:h,error:N}),we("error",{url:h,error:N}),oe("fetch:error",{method:e,url:h,error:N.message}),s){let B=ee(s);if(B){V(n),n.innerHTML="";let P=document.getElementById(s.replace("#",""))?.getAttribute("var")||"err",X=R({[P]:{message:N.message,status:N.status,body:N.body}},T),W=document.createElement("div");W.style.display="contents",W.__ctx=X,W.appendChild(B),n.appendChild(W),z(W)}}}}if(n.tagName==="FORM"&&e!=="get"){let h=D=>{D.preventDefault(),c()};n.addEventListener("submit",h),q(()=>n.removeEventListener("submit",h))}else if(e==="get")n.isConnected&&c();else{let h=D=>{D.preventDefault(),c()};n.addEventListener("click",h),q(()=>n.removeEventListener("click",h))}if(/\{[^}]+\}/.test(t)){let B=function(){let P=Ae(t,T);P!==D&&(D=P,N&&clearTimeout(N),h>0?N=setTimeout(c,h):c())},h=parseInt(n.getAttribute("debounce"))||0,D=Ae(t,T),N=null;q(()=>{N&&clearTimeout(N)});let O=b;for(;O&&O.__isProxy;){let P=O.$watch(B);q(P),O=O.$parent}}if(n.refresh=c,q(()=>{delete n.refresh}),_>0){let h=setInterval(()=>{if(!n.isConnected){clearInterval(h);return}c()},_);q(()=>clearInterval(h))}}});re();j("bind",{priority:20,init(e,n,r){let t=M(e);function i(){let o=I(r,t);e.textContent=o!=null?String(o):""}Q(r,t,i),i()}});j("bind-html",{priority:20,init(e,n,r){let t=M(e);function i(){let o=I(r,t);o!=null&&(e.innerHTML=ze(String(o)))}Q(r,t,i),i()}});var Nr=new Set(["href","src","action","formaction","poster","data"]);function er(e){let r=new DOMParser().parseFromString(e,"image/svg+xml").documentElement;if(r.querySelector("parsererror")||r.nodeName!=="svg"||r.getElementsByTagNameNS("http://www.mozilla.org/newlayout/xml/parsererror.xml","parsererror").length)return"<svg></svg>";function t(i){for(let o of[...i.attributes]){let s=o.name.toLowerCase();if(s.startsWith("on")){i.removeAttribute(o.name);continue}(s==="href"||s==="xlink:href")&&o.value.trim().toLowerCase().startsWith("javascript:")&&i.removeAttribute(o.name)}}for(let i of[...r.querySelectorAll("script")])i.remove();t(r);for(let i of r.querySelectorAll("*"))t(i);return new XMLSerializer().serializeToString(r)}function Or(e){try{let n=e.match(/^data:image\/svg\+xml;base64,(.+)$/i);if(n){let o=er(atob(n[1]));return"data:image/svg+xml;base64,"+btoa(o)}let r=e.indexOf(",");if(r===-1)return"#";let t=e.slice(0,r+1),i=er(decodeURIComponent(e.slice(r+1)));return t+encodeURIComponent(i)}catch{return"#"}}function Dr(e,n){if(Nr.has(e)){let r=String(n).trimStart();if(/^(javascript|vbscript):/i.test(r))return"#";if(/^data:/i.test(r)){if(/^data:image\/svg\+xml/i.test(r))return Or(r);if(!/^data:image\//i.test(r))return"#"}}return n}j("bind-*",{priority:20,init(e,n,r){let t=n.replace("bind-",""),i=M(e);if(t==="value"&&(e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.tagName==="SELECT")){let s=()=>{let a=e.type==="number"?Number(e.value):e.value;se(`${r} = ${JSON.stringify(a)}`,i)};e.addEventListener("input",s),q(()=>e.removeEventListener("input",s))}function o(){let s=I(r,i);if(["disabled","readonly","checked","selected","hidden","required"].includes(t)){s?e.setAttribute(t,""):e.removeAttribute(t),t in e&&(e[t]=!!s);return}s!=null?e.setAttribute(t,String(Dr(t,s))):e.removeAttribute(t)}Q(r,i,o),o()}});j("model",{priority:20,init(e,n,r){let t=M(e),i=e.tagName,o=e.type;function s(){let u=I(r,t);i==="INPUT"&&o==="checkbox"?e.checked=!!u:i==="INPUT"&&o==="radio"?e.checked=e.value===String(u):e.value=u!=null?String(u):""}let a=i==="SELECT"||o==="checkbox"||o==="radio"?"change":"input",l=()=>{let u;o==="checkbox"?u=e.checked:o==="number"||o==="range"?u=Number(e.value):u=e.value,se(`${r} = __val`,t,{__val:u})};e.addEventListener(a,l),q(()=>e.removeEventListener(a,l)),Q(r,t,s),s()}});re();j("if",{priority:10,init(e,n,r){let t=M(e),i=e.getAttribute("then"),o=e.getAttribute("else"),s=e.getAttribute("animate-enter")||e.getAttribute("animate"),a=e.getAttribute("animate-leave"),l=e.getAttribute("transition"),u=parseInt(e.getAttribute("animate-duration"))||0,d=[...e.childNodes].map(y=>y.cloneNode(!0)),p,_=null;q(()=>{_&&(_(),_=null)});function f(){let y=!!I(r,t);y!==p&&(p=y,a||l?(_&&(_(),_=null),_=qe(e,a,l,()=>{_=null,v(y)},u)):v(y))}function v(y){if(V(e),y)if(i){let g=ee(i);g&&(e.innerHTML="",e.appendChild(g))}else{e.innerHTML="";for(let g of d)e.appendChild(g.cloneNode(!0))}else if(o){let g=ee(o);g&&(e.innerHTML="",e.appendChild(g))}else e.innerHTML="";_e(e),z(e),(s||l)&&Pe(e,s,l,u)}Q(r,t,f),f()}});j("else-if",{priority:10,init(e,n,r){let t=M(e),i=e.getAttribute("then"),o=[...e.childNodes].map(a=>a.cloneNode(!0));function s(){let a=e.previousElementSibling;for(;a;){let u=a.getAttribute("if")||a.getAttribute("else-if");if(u){if(I(u,t)){V(e),e.innerHTML="",e.style.display="none";return}}else break;a=a.previousElementSibling}let l=!!I(r,t);if(e.style.display="",l){if(i){let u=ee(i);u&&(V(e),e.innerHTML="",e.appendChild(u))}else{V(e),e.innerHTML="";for(let u of o)e.appendChild(u.cloneNode(!0))}_e(e),z(e)}else V(e),e.innerHTML=""}Q(r,t,s),s()}});j("else",{priority:10,init(e){if(e.hasAttribute("if"))return;let n=M(e),r=e.getAttribute("then"),t=[...e.childNodes].map(o=>o.cloneNode(!0));function i(){let o=e.previousElementSibling;for(;o;){let s=o.getAttribute("if")||o.getAttribute("else-if");if(s){if(I(s,n)){V(e),e.innerHTML="",e.style.display="none";return}}else break;o=o.previousElementSibling}if(e.style.display="",r){let s=ee(r);s&&(V(e),e.innerHTML="",e.appendChild(s))}else{V(e),e.innerHTML="";for(let s of t)e.appendChild(s.cloneNode(!0))}_e(e),z(e)}Q("",n,i),i()}});j("show",{priority:20,init(e,n,r){let t=M(e),i=e.getAttribute("animate-enter")||e.getAttribute("animate"),o=e.getAttribute("animate-leave"),s=e.getAttribute("transition"),a=parseInt(e.getAttribute("animate-duration"))||0,l;function u(){let d=!!I(r,t);d!==l&&(l=d,d?(e.style.display="",(i||s)&&Pe(e,i,s,a)):o||s?qe(e,o,s,()=>{e.style.display="none"},a):e.style.display="none")}Q(r,t,u),u()}});j("hide",{priority:20,init(e,n,r){let t=M(e),i=e.getAttribute("animate-enter")||e.getAttribute("animate"),o=e.getAttribute("animate-leave"),s=e.getAttribute("transition"),a=parseInt(e.getAttribute("animate-duration"))||0,l;function u(){let d=!I(r,t);d!==l&&(l=d,d?(e.style.display="",(i||s)&&Pe(e,i,s,a)):o||s?qe(e,o,s,()=>{e.style.display="none"},a):e.style.display="none")}Q(r,t,u),u()}});j("switch",{priority:10,init(e,n,r){let t=M(e);function i(){let o=I(r,t),s=!1;for(let a of[...e.children]){let l=a.getAttribute("case"),u=a.hasAttribute("default"),d=a.getAttribute("then");if(l){let p=l.split(",").map(_=>I(_.trim(),t));if(!s&&p.includes(o)){if(s=!0,a.style.display="",d){let _=ee(d);_&&(V(a),a.innerHTML="",a.appendChild(_)),a.__declared=!1,z(a)}}else a.style.display="none"}else if(u&&(a.style.display=s?"none":"",!s&&d)){let p=ee(d);p&&(V(a),a.innerHTML="",a.appendChild(p)),a.__declared=!1,z(a)}}}Q(r,t,i),i()}});re();j("each",{priority:10,init(e,n,r){let t=M(e),i=r.match(/^(\w+)\s+in\s+(\S+)$/);if(!i)return;let[,o,s]=i,a=e.getAttribute("template"),l=e.getAttribute("else"),u=e.getAttribute("key"),d=e.getAttribute("animate-enter")||e.getAttribute("animate"),p=e.getAttribute("animate-leave"),_=parseInt(e.getAttribute("animate-stagger"))||0,f=parseInt(e.getAttribute("animate-duration"))||0,v=null,y=new Map;function g(){let x=/[\[\]()\s+\-*\/!?:&|]/.test(s)?I(s,t):ce(s,t);if(!Array.isArray(x))return;if(x===v&&x.length>0&&e.children.length>0){for(let b of e.children)b.__ctx&&b.__ctx.$notify&&b.__ctx.$notify();return}if(v=x,x.length===0&&l){let b=ee(l);b&&(V(e),y.clear(),e.innerHTML="",e.appendChild(b),z(e));return}let A=a?document.getElementById(a):null;if(A)if(p&&e.children.length>0){let b=[...e.children],T=b.length;b.forEach($=>{let k=$.firstElementChild||$;k.classList.add(p);let c=()=>{k.classList.remove(p),T--,T<=0&&E(A,x)};k.addEventListener("animationend",c,{once:!0}),setTimeout(c,f||2e3)})}else E(A,x)}function E(x,A){u?L(x,A):w(x,A)}function L(x,A){let b=A.length,T=A.map((k,c)=>{let m=R({[o]:k,$index:c},t);return{key:I(u,m),item:k,i:c}}),$=new Set(T.map(k=>k.key));for(let[k,c]of y)$.has(k)||(V(c),c.remove(),y.delete(k));T.forEach(({key:k,item:c,i:m})=>{let h={[o]:c,$index:m,$count:b,$first:m===0,$last:m===b-1,$even:m%2===0,$odd:m%2!==0};if(y.has(k))Object.assign(y.get(k).__ctx.__raw,h),y.get(k).__ctx.$notify();else{let D=x.content.cloneNode(!0),N=document.createElement("div");if(N.style.display="contents",N.__ctx=R(h,t),N.appendChild(D),y.set(k,N),e.appendChild(N),z(N),d){let B=N.firstElementChild;B&&(B.classList.add(d),B.addEventListener("animationend",()=>B.classList.remove(d),{once:!0}),_&&(B.style.animationDelay=m*_+"ms"))}}});for(let k=0;k<T.length;k++){let c=y.get(T[k].key);c!==e.children[k]&&e.insertBefore(c,e.children[k]??null)}}function w(x,A){let b=A.length;V(e),e.innerHTML="",A.forEach((T,$)=>{let k={[o]:T,$index:$,$count:b,$first:$===0,$last:$===b-1,$even:$%2===0,$odd:$%2!==0},c=R(k,t),m=x.content.cloneNode(!0),h=document.createElement("div");if(h.style.display="contents",h.__ctx=c,h.appendChild(m),e.appendChild(h),z(h),d){let D=h.firstElementChild;D&&(D.classList.add(d),D.addEventListener("animationend",()=>D.classList.remove(d),{once:!0}),_&&(D.style.animationDelay=$*_+"ms"))}})}Q(r,t,g),g()}});j("foreach",{priority:10,init(e,n,r){let t=M(e),i=e.getAttribute("from"),o=e.getAttribute("index")||"$index",s=e.getAttribute("else"),a=e.getAttribute("filter"),l=e.getAttribute("sort"),u=parseInt(e.getAttribute("limit"))||1/0,d=parseInt(e.getAttribute("offset"))||0,p=e.getAttribute("template"),_=e.getAttribute("key"),f=e.getAttribute("animate-enter")||e.getAttribute("animate"),v=e.getAttribute("animate-leave"),y=parseInt(e.getAttribute("animate-stagger"))||0,g=parseInt(e.getAttribute("animate-duration"))||0;if(!i||!r)return;let E=p?null:e.cloneNode(!0);E&&(E.removeAttribute("foreach"),E.removeAttribute("from"),E.removeAttribute("index"),E.removeAttribute("filter"),E.removeAttribute("sort"),E.removeAttribute("limit"),E.removeAttribute("offset"),E.removeAttribute("else"),E.removeAttribute("template"),E.removeAttribute("key"),E.removeAttribute("animate-enter"),E.removeAttribute("animate"),E.removeAttribute("animate-leave"),E.removeAttribute("animate-stagger"),E.removeAttribute("animate-duration"));let L=new Map;function w(){let A=ce(i,t);if(!Array.isArray(A))return;if(a&&(A=A.filter((k,c)=>{let m=R({[r]:k,[o]:c},t);return!!I(a,m)})),l){let k=l.startsWith("-"),c=k?l.slice(1):l;A=[...A].sort((m,h)=>{let D=ce(c,m)??m?.[c],N=ce(c,h)??h?.[c],B=D<N?-1:D>N?1:0;return k?-B:B})}if(A=A.slice(d,d+u),A.length===0&&s){let k=ee(s);k&&(V(e),L.clear(),e.innerHTML="",e.appendChild(k),z(e));return}let b=p?document.getElementById(p):null,T=A.length;if(_){x(b,A,T);return}function $(){V(e),e.innerHTML="",A.forEach((k,c)=>{let m={[r]:k,[o]:c,$index:c,$count:T,$first:c===0,$last:c===T-1,$even:c%2===0,$odd:c%2!==0},h=R(m,t),D;b?D=b.content.cloneNode(!0):D=E.cloneNode(!0);let N=document.createElement("div");if(N.style.display="contents",N.__ctx=h,N.appendChild(D),e.appendChild(N),z(N),f){let B=N.firstElementChild;B&&(B.classList.add(f),B.addEventListener("animationend",()=>B.classList.remove(f),{once:!0}),y&&(B.style.animationDelay=c*y+"ms"))}})}if(v&&e.children.length>0){let k=[...e.children],c=k.length;k.forEach(m=>{let h=m.firstElementChild||m;h.classList.add(v);let D=()=>{h.classList.remove(v),c--,c<=0&&$()};h.addEventListener("animationend",D,{once:!0}),setTimeout(D,g||2e3)})}else $()}function x(A,b,T){L.size===0&&(e.innerHTML="");let $=b.map((c,m)=>{let h=R({[r]:c,[o]:m},t);return{key:I(_,h),item:c,i:m}}),k=new Set($.map(c=>c.key));for(let[c,m]of L)k.has(c)||(V(m),m.remove(),L.delete(c));$.forEach(({key:c,item:m,i:h})=>{let D={[r]:m,[o]:h,$index:h,$count:T,$first:h===0,$last:h===T-1,$even:h%2===0,$odd:h%2!==0};if(L.has(c))Object.assign(L.get(c).__ctx.__raw,D),L.get(c).__ctx.$notify();else{let N;A?N=A.content.cloneNode(!0):N=E.cloneNode(!0);let B=document.createElement("div");if(B.style.display="contents",B.__ctx=R(D,t),B.appendChild(N),L.set(c,B),e.appendChild(B),z(B),f){let O=B.firstElementChild;O&&(O.classList.add(f),O.addEventListener("animationend",()=>O.classList.remove(f),{once:!0}),y&&(O.style.animationDelay=h*y+"ms"))}}});for(let c=0;c<$.length;c++){let m=L.get($[c].key);m!==e.children[c]&&e.insertBefore(m,e.children[c]??null)}}Q(i,t,w),w()}});re();be();j("class-*",{priority:20,init(e,n,r){let t=n.replace("class-",""),i=M(e);if(t==="map"){let s=function(){let a=I(r,i);if(a&&typeof a=="object")for(let[l,u]of Object.entries(a))l.split(/\s+/).filter(Boolean).forEach(p=>e.classList.toggle(p,!!u))};Q(r,i,s),s();return}if(t==="list"){let a=function(){let l=I(r,i);if(Array.isArray(l)){s.forEach(d=>{d&&e.classList.remove(d)});let u=l.filter(Boolean);u.forEach(d=>e.classList.add(d)),s=u}},s=[];Q(r,i,a),a();return}function o(){e.classList.toggle(t,!!I(r,i))}Q(r,i,o),(r.includes("$i18n")||r.includes("NoJS.locale")||r.includes("window.NoJS.locale"))&&Me(o),o()}});j("style-*",{priority:20,init(e,n,r){let t=n.replace("style-",""),i=M(e);if(t==="map"){let a=function(){let l=I(r,i);if(l&&typeof l=="object")for(let[u,d]of Object.entries(l))e.style[u]=d??""};Q(r,i,a),a();return}let o=t.replace(/-([a-z])/g,(a,l)=>l.toUpperCase());function s(){let a=I(r,i);e.style[o]=a!=null?String(a):""}Q(r,i,s),s()}});re();j("on:*",{priority:20,init(e,n,r){let t=M(e),i=n.replace("on:","").split("."),o=i[0],s=new Set(i.slice(1));if(o==="mounted"){requestAnimationFrame(()=>se(r,t,{$el:e}));return}if(o==="init"){se(r,t,{$el:e});return}if(o==="updated"){let p=new MutationObserver(()=>{if(!e.isConnected){p.disconnect();return}se(r,t,{$el:e})});p.observe(e,{childList:!0,subtree:!0,characterData:!0,attributes:!0}),q(()=>p.disconnect());return}if(o==="error"){let p=_=>{(e.contains(_.target)||_.target===e)&&se(r,t,{$el:e,$error:_.error||_.message})};window.addEventListener("error",p),q(()=>window.removeEventListener("error",p));return}if(o==="unmounted"){let p=new MutationObserver(_=>{for(let f of _)for(let v of f.removedNodes)if(v===e||v.contains?.(e)){se(r,t,{$el:e}),p.disconnect();return}});e.parentElement&&p.observe(e.parentElement,{childList:!0,subtree:!0}),q(()=>p.disconnect());return}let a=0,l=0;for(let p of s)/^\d+$/.test(p)&&(s.has("debounce")?a=parseInt(p):s.has("throttle")&&(l=parseInt(p)));let u=p=>{if(o==="keydown"||o==="keyup"||o==="keypress"){let _=["enter","escape","tab","space","delete","backspace","up","down","left","right","ctrl","alt","shift","meta"];for(let f of s)if(_.includes(f)&&(f==="enter"&&p.key!=="Enter"||f==="escape"&&p.key!=="Escape"||f==="tab"&&p.key!=="Tab"||f==="space"&&p.key!==" "||f==="delete"&&p.key!=="Delete"&&p.key!=="Backspace"||f==="up"&&p.key!=="ArrowUp"||f==="down"&&p.key!=="ArrowDown"||f==="left"&&p.key!=="ArrowLeft"||f==="right"&&p.key!=="ArrowRight"||f==="ctrl"&&!p.ctrlKey||f==="alt"&&!p.altKey||f==="shift"&&!p.shiftKey||f==="meta"&&!p.metaKey))return}s.has("prevent")&&p.preventDefault(),s.has("stop")&&p.stopPropagation(),!(s.has("self")&&p.target!==e)&&se(r,t,{$event:p,$el:e})};if(a>0){let p=u,_;u=f=>{clearTimeout(_),_=setTimeout(()=>p(f),a)}}if(l>0){let p=u,_=0;u=f=>{let v=Date.now();v-_>=l&&(_=v,p(f))}}let d={};s.has("once")&&(d.once=!0),e.addEventListener(o,u,d),d.once||q(()=>e.removeEventListener(o,u,d))}});j("trigger",{priority:20,init(e,n,r){let t=M(e),i=e.getAttribute("trigger-data"),o=()=>{let s=i?I(i,t):null;e.dispatchEvent(new CustomEvent(r,{detail:s,bubbles:!0}))};e.addEventListener("click",o),q(()=>e.removeEventListener("click",o))}});re();j("ref",{priority:5,init(e,n,r){ye[r]=e,q(()=>{ye[r]===e&&delete ye[r]})}});j("use",{priority:10,init(e,n,r){let t=M(e),i=ee(r);if(!i)return;let o={};for(let d of[...e.attributes])if(d.name.startsWith("var-")){let p=d.name.replace("var-","");o[p]=I(d.value,t)}let s=R(o,t),a={};for(let d of[...e.children]){let p=d.getAttribute("slot")||"default";a[p]||(a[p]=document.createDocumentFragment()),a[p].appendChild(d.cloneNode(!0))}let l=i.querySelectorAll("slot");for(let d of l){let p=d.getAttribute("name")||"default";a[p]&&d.replaceWith(a[p])}V(e),e.innerHTML="";let u=document.createElement("div");u.style.display="contents",u.__ctx=s,u.appendChild(i),e.appendChild(u),z(u)}});j("call",{priority:20,init(e,n,r){let t=M(e),i=e.getAttribute("method")||"get",o=e.getAttribute("as")||"data",s=e.getAttribute("into"),a=e.getAttribute("success"),l=e.getAttribute("error"),u=e.getAttribute("loading"),d=e.getAttribute("then"),p=e.getAttribute("confirm"),_=e.getAttribute("body"),f=e.getAttribute("redirect"),v=e.getAttribute("headers"),y=[...e.childNodes].map(L=>L.cloneNode(!0)),g=null,E=async L=>{if(L.preventDefault(),p&&!window.confirm(p))return;g&&g.abort(),g=new AbortController;let w=Ae(r,t);if(u){let x=ee(u);x&&(V(e),e.innerHTML="",e.appendChild(x),z(e),e.disabled=!0)}try{let x=null;if(_){let T=Ae(_,t);try{x=JSON.parse(T)}catch{x=T}}let A=v?JSON.parse(v):{},b=await Fe(w,i,x,A,e,g.signal);if(u){V(e),e.innerHTML="";for(let T of y)e.appendChild(T.cloneNode(!0));e.disabled=!1}if(o&&t.$set(o,b),s&&(G[s]||(G[s]=R({})),G[s].$set(o,b),Ee()),d&&se(d,t,{result:b}),a){let T=ee(a);if(T){let k=document.getElementById(a.replace("#",""))?.getAttribute("var")||"result",c=R({[k]:b},t),m=e.closest("[route-view]")||e.parentElement,h=document.createElement("div");h.style.display="contents",h.__ctx=c,h.appendChild(T),m.appendChild(h),z(h)}}f&&Z&&Z.push(f),we("fetch:success",{url:w,data:b}),oe("fetch:success",{method:i,url:w})}catch(x){if(x.name==="AbortError")return;if(K(`call ${i.toUpperCase()} ${w} failed:`,x.message),u){V(e),e.innerHTML="";for(let A of y)e.appendChild(A.cloneNode(!0));e.disabled=!1}if(we("fetch:error",{url:w,error:x}),we("error",{url:w,error:x}),oe("fetch:error",{method:i,url:w,error:x.message}),l){let A=ee(l);if(A){let T=document.getElementById(l.replace("#",""))?.getAttribute("var")||"err",$=R({[T]:{message:x.message,status:x.status,body:x.body}},t),k=e.parentElement,c=document.createElement("div");c.style.display="contents",c.__ctx=$,c.appendChild(A),k.appendChild(c),z(c)}}}};e.addEventListener("click",E),q(()=>e.removeEventListener("click",E))}});re();var Pr=[["valueMissing","required"],["typeMismatch",null],["tooShort","minlength"],["tooLong","maxlength"],["patternMismatch","pattern"],["rangeUnderflow","min"],["rangeOverflow","max"],["stepMismatch","step"]],tr=["required","email","url","number","date","time","datetime-local","month","week","tel","minlength","maxlength","pattern","min","max","step"];function jr(e){return(e.getAttribute("type")||"text").toLowerCase()}function Mr(e,n){let r=[],t=new Set,i=e.getAttribute("validate");if(i){let s=i.split("|").map(a=>a.trim());for(let a of s){let[l,...u]=a.split(":"),d=he[l];if(d){let p=d(e.value,...u,n);p!==!0&&p&&(r.push({rule:l,message:p}),t.add(l))}else{let p=e.value,_=null;switch(l){case"required":(p==null||String(p).trim()==="")&&(_="Required");break;case"email":p&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(p)&&(_="Invalid email");break;case"url":try{new URL(p)}catch{_="Invalid URL"}break;case"min":Number(p)<Number(u[0])&&(_=`Minimum value is ${u[0]}`);break;case"max":Number(p)>Number(u[0])&&(_=`Maximum value is ${u[0]}`);break;case"custom":if(u[0]&&he[u[0]]){let f=he[u[0]](p,n);f!==!0&&f&&(_=f)}break}_&&(r.push({rule:l,message:_}),t.add(l))}}}let o=e.validity;if(o&&!o.valid){for(let[s,a]of Pr)if(o[s]){let l=a||jr(e);t.has(l)||(r.push({rule:l,message:e.validationMessage}),t.add(l))}}return r}function Br(e,n,r){let t=e.getAttribute(`error-${n}`);if(t)return t;let i=e.getAttribute("error");return i&&!i.startsWith("#")?i:r}function Hr(e,n){if(!e.length)return null;let t=[...e].sort((i,o)=>{let s=tr.indexOf(i.rule),a=tr.indexOf(o.rule);return(s===-1?999:s)-(a===-1?999:a)})[0];return{rule:t.rule,message:Br(n,t.rule,t.message)}}function Rr(e,n,r,t,i){ht(t);let o=document.querySelector(e);if(!o)return;let s=o.content.cloneNode(!0),a=document.createElement("div");a.style.display="contents",a.__errorTemplateFor=t;let l=R({$error:n,$rule:r},i);a.__ctx=l,a.appendChild(s),o.parentNode.insertBefore(a,o.nextSibling),z(a)}function ht(e){let n=document.querySelector('div[style="display: contents;"]'),r=document.querySelectorAll('div[style="display: contents;"]');for(let t of r)t.__errorTemplateFor===e&&t.remove()}function Fr(e,n){let r=e.getAttribute("validate-if");if(!r)return!0;try{return!!I(r,n)}catch{return!0}}function zr(e,n){let r=e.getAttribute("validate-on");if(r)return r.split(/\s+/);let t=n?n.getAttribute("validate-on"):null;return t?t.split(/\s+/):["input","focusout"]}function Ur(e,n,r){let t=n.split("|").map(i=>i.trim());for(let i of t){let[o,...s]=i.split(":"),a=he[o];if(a){let l=a(e,...s,r);if(l!==!0&&l)return l}else switch(o){case"required":if(e==null||String(e).trim()==="")return"Required";break;case"email":if(e&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e))return"Invalid email";break;case"url":try{new URL(e)}catch{return"Invalid URL"}break;case"min":if(Number(e)<Number(s[0]))return`Minimum value is ${s[0]}`;break;case"max":if(Number(e)>Number(s[0]))return`Maximum value is ${s[0]}`;break;case"custom":if(s[0]&&he[s[0]]){let l=he[s[0]](e,r);if(l!==!0&&l)return l}break}}return null}j("validate",{priority:30,init(e,n,r){let t=M(e);if(e.tagName==="FORM"){let u=function(){return e.querySelectorAll("input, textarea, select")},d=function(){let y={},g={},E={},L=!0,w=null,x=0,A=!1;for(let b of u())b.name&&(b.type==="checkbox"?g[b.name]=b.checked:b.type==="radio"?b.checked?g[b.name]=b.value:b.name in g||(g[b.name]=""):g[b.name]=b.value);for(let b of u()){if(!b.name)continue;let T=o.has(b.name),$=s.has(b.name);if(!Fr(b,t)){E[b.name]={valid:!0,dirty:$,touched:T,error:null,value:g[b.name]};continue}let k=Mr(b,g),c=Hr(k,b),m=!c,h=T||$;m||(L=!1),!m&&h&&(y[b.name]=c.message,x++,w||(w=c.message)),E[b.name]={valid:m,dirty:$,touched:T,error:c?c.message:null,value:g[b.name]};let D=b.getAttribute("error-class")||i;if(D){let B=D.split(/\s+/);!m&&h?b.classList.add(...B):b.classList.remove(...B)}if(c&&h){let B=b.getAttribute(`error-${c.rule}`),O=b.getAttribute("error"),P=(B&&B.startsWith("#")?B:null)||(O&&O.startsWith("#")?O:null);P?Rr(P,c.message,c.rule,b,t):ht(b)}else ht(b);let N=b.getAttribute("as");N&&t.$set(N,E[b.name])}a.size>0&&(A=!0),l.valid=L,l.errors=y,l.values=g,l.fields=E,l.firstError=w,l.errorCount=x,l.pending=A,t.$set("$form",{...l}),p(e,L&&!A)},p=function(y,g){let E=y.querySelectorAll('button:not([type="button"]), input[type="submit"]');for(let L of E){if(L.hasAttribute("disabled")&&L.getAttribute("disabled")!==""){let w=L.getAttribute("disabled");if(w!=="disabled"&&w!=="true"&&w!=="false")continue}L.disabled=!g,L.__autoDisabled=!0}},_=function(y){if(!y.name)return;let g=zr(y,e),E=()=>{s.add(y.name),l.dirty=!0,d()},L=()=>{o.add(y.name),l.touched=!0,d()};g.includes("input")?y.addEventListener("input",E):y.addEventListener("input",()=>{s.add(y.name),l.dirty=!0,d()}),g.includes("blur")||g.includes("focusout")?y.addEventListener("focusout",w=>{L(),g.includes("blur")&&E()}):y.addEventListener("focusout",L),g.includes("submit")&&y.addEventListener("focusout",L)};e.setAttribute("novalidate","");let i=e.getAttribute("error-class"),o=new Set,s=new Set,a=new Map,l={valid:!1,dirty:!1,touched:!1,submitting:!1,pending:!1,errors:{},values:{},firstError:null,errorCount:0,fields:{},reset:()=>{l.dirty=!1,l.touched=!1,l.pending=!1,o.clear(),s.clear(),e.reset(),d()}};t.$set("$form",l);let f=e.hasAttribute("validate-on"),v=[...u()].some(y=>y.hasAttribute("validate-on"));if(!f&&!v){let y=g=>{let E=g.target;E&&E.name&&s.add(E.name),l.dirty=!0,d()};e.addEventListener("input",y),e.addEventListener("change",y),e.addEventListener("focusout",g=>{g.target&&g.target.name&&o.add(g.target.name),l.touched=!0,d()})}else for(let y of u())_(y);e.addEventListener("submit",y=>{l.submitting=!0;for(let g of u())g.name&&o.add(g.name);l.touched=!0,d(),t.$set("$form",{...l}),requestAnimationFrame(()=>{l.submitting=!1,t.$set("$form",{...l})})}),requestAnimationFrame(d);return}if(r&&(e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.tagName==="SELECT")){let i=e.getAttribute("error");e.addEventListener("input",()=>{let o=Ur(e.value,r,{});if(o&&i){let s=e.nextElementSibling?.__validationError?e.nextElementSibling:null;s||(s=document.createElement("div"),s.__validationError=!0,s.style.display="contents",e.parentNode.insertBefore(s,e.nextSibling));let a=ee(i);if(a){let l=R({err:{message:o}},t);s.innerHTML="",s.__ctx=l,s.appendChild(a),z(s)}}else{let s=e.nextElementSibling?.__validationError?e.nextElementSibling:null;s&&(s.innerHTML="")}})}}});j("error-boundary",{priority:1,init(e,n,r){let t=M(e);function i(s){let a=ee(r);if(a){let l=R({err:{message:s}},t);V(e),e.innerHTML="";let u=document.createElement("div");u.style.display="contents",u.__ctx=l,u.appendChild(a),e.appendChild(u),z(u)}}e.addEventListener("nojs:error",s=>{i(s.detail?.message||"An error occurred")});let o=s=>{(e.contains(s.target)||e===s.target)&&i(s.message||"An error occurred")};window.addEventListener("error",o),q(()=>window.removeEventListener("error",o))}});be();re();j("t",{priority:20,init(e,n,r){let t=M(e),i=e.hasAttribute("t-html");function o(){let s={};for(let l of[...e.attributes])if(l.name.startsWith("t-")&&l.name!=="t"&&l.name!=="t-html"){let u=l.name.replace("t-","");s[u]=I(l.value,t)??l.value}let a=Y.t(r,s);i?e.innerHTML=ze(a):e.textContent=a}Q(r,t,o),Me(o),o()}});j("i18n-ns",{priority:1,init(e,n,r){if(!r)return;let t=document.createDocumentFragment();for(;e.firstChild;)t.appendChild(e.firstChild);Qe(r).then(()=>{e.appendChild(t),z(e),je()})}});re();var S={dragging:null,selected:new Map,placeholder:null};function We(e){let n=0;for(let r of e.children){if(r.classList.contains("nojs-drop-placeholder"))continue;(r.style||{}).display==="contents"?n+=We(r):n++}return n}function yt(){if(typeof document>"u"||document.querySelector("style[data-nojs-dnd]"))return;let e=`
27
+ `.trim(),n=document.createElement("style");n.setAttribute("data-nojs-animations",""),n.textContent=e,document.head.appendChild(n)}function ze(e,n,t,r){wr();let i=r||0;if(n){let o=e.firstElementChild||e;o.classList.add(n),r&&(o.style.animationDuration=r+"ms");let s=()=>o.classList.remove(n);o.addEventListener("animationend",s,{once:!0}),setTimeout(s,i)}if(t){let o=e.firstElementChild||e;o.classList.add(t+"-enter",t+"-enter-active"),requestAnimationFrame(()=>{o.classList.remove(t+"-enter"),o.classList.add(t+"-enter-to");let s=()=>{o.classList.remove(t+"-enter-active",t+"-enter-to")};o.addEventListener("transitionend",s,{once:!0}),setTimeout(s,i)})}}function nt(e,n,t,r,i){wr();let o=i||0;if(!e.firstElementChild&&!e.childNodes.length)return r(),()=>{};if(n){let s=e.firstElementChild||e;s.classList.add(n),i&&(s.style.animationDuration=i+"ms");let a=!1,c=()=>{a||(a=!0,s.classList.remove(n),r())};s.addEventListener("animationend",c,{once:!0});let u=setTimeout(c,o);return()=>{a=!0,clearTimeout(u),s.removeEventListener("animationend",c)}}if(t){let s=e.firstElementChild||e;s.classList.add(t+"-leave",t+"-leave-active");let a=!1,c,u=requestAnimationFrame(()=>{s.classList.remove(t+"-leave"),s.classList.add(t+"-leave-to");let d=()=>{a||(a=!0,s.classList.remove(t+"-leave-active",t+"-leave-to"),r())};s.addEventListener("transitionend",d,{once:!0}),c=setTimeout(d,o)});return()=>{a=!0,cancelAnimationFrame(u),clearTimeout(c),s.classList.remove(t+"-leave",t+"-leave-active",t+"-leave-to")}}return r(),()=>{}}var xr='<div style="text-align:center;padding:3rem 1rem;font-family:system-ui,sans-serif"><h1 style="font-size:4rem;margin:0;opacity:.3">404</h1><p style="font-size:1.25rem;color:#666">Page not found</p></div>';function Ar(){for(let e of document.querySelectorAll("[route-view]"))$t(e),e.innerHTML=""}function Lr(e){let n=(C.router.base||"/").replace(/\/$/,"");if(!n)return e||"/";let t=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp("^"+t),"")||"/"}function Sr(){let e=[],n=new Map,t={path:"",params:{},query:{},hash:""},r=new Set,i=new Map,o=[];function s(A){let w=e.find(h=>h.path===A);return w||(w={path:A,outlets:{}},e.push(w)),w}function a(A){let w={};return new URLSearchParams(A).forEach((h,m)=>{w[m]=h}),w}function c(A){for(let w of e){let h=[],m=w.path.replace(/:(\w+)/g,(y,T)=>(h.push(T),"([^/]+)")),_=new RegExp("^"+m+"$"),b=A.match(_);if(b){let y={};return h.forEach((T,L)=>{y[T]=b[L+1]}),{route:w,params:y}}}return null}async function u(A,w=!1){let h=A.indexOf("#"),m=h>=0?A.slice(h+1):"",_=h>=0?A.slice(0,h):A,[b,y=""]=_.split("?");t={path:b,params:{},query:a(y),hash:m?"#"+m:""};let T=c(b);if(T){t.matched=!0,t.params=T.params;let L=T.route.outlets?.default,E=L?.getAttribute("guard"),N=L?.getAttribute("redirect");if(E){let S=B({},null);if(S.__raw.$store=Q,S.__raw.$route=t,!I(E,S)){N?await u(N,!0):(D(`Route guard failed for "${A}" but no redirect is defined. The route will not render.`),Ar());return}}}else{t.matched=!1;let L=n.get("default");if(L){let E=L.getAttribute("guard"),N=L.getAttribute("redirect");if(E){let S=B({},null);if(S.__raw.$store=Q,S.__raw.$route=t,!I(E,S)){N?await u(N,!0):(D(`Route guard failed for "${A}" but no redirect is defined. The route will not render.`),Ar());return}}}}if(C.router.useHash){let L="#"+A;w?window.location.replace(L):window.location.hash=A}else{let L=(C.router.base||"/").replace(/\/$/,"")+A;w?window.history.replaceState({},"",L):window.history.pushState({},"",L)}if(await d(T),r.forEach(L=>L(t)),oe("route:navigate",{path:t.path,params:t.params,query:t.query,hash:t.hash}),t.hash){let L=t.hash.slice(1);requestAnimationFrame(()=>{let E=document.getElementById(L);E&&E.scrollIntoView({behavior:"smooth"})})}}async function d(A){let w=document.querySelectorAll("[route-view]");for(let m of w){let _=m.getAttribute("route-view"),b=_&&_.trim()!==""?_.trim():"default",y=A?.route?.outlets?.[b],T=C.router.templates||"";if(!y&&(m.hasAttribute("src")||T)){let E=(m.getAttribute("src")||T).replace(/\/?$/,"/"),N=m.getAttribute("ext")||C.router.ext||".tpl",S=m.getAttribute("route-index")||"index",l=t.path==="/"?S:t.path.replace(/^\//,""),g=E+l+N,p=b+":"+g;i.has(p)?y=i.get(p):(y=document.createElement("template"),y.setAttribute("src",g),y.setAttribute("route",t.path),document.body.appendChild(y),i.set(p,y),Y("[ROUTER] File-based route:",t.path,"\u2192",g)),m.hasAttribute("i18n-ns")&&!y.getAttribute("i18n-ns")&&y.setAttribute("i18n-ns",l)}if((!y||y.__loadFailed)&&(!A||y?.__loadFailed)){let L=n.get(b)||(b!=="default"?n.get("default"):null);L&&(y=L)}if($t(m),m.innerHTML="",y&&!y.__loadFailed){if(y.getAttribute("src")&&!y.__srcLoaded&&(Y("Loading route template on demand:",y.getAttribute("src")),await Le(y)),y.__loadFailed){let p=n.get(b)||(b!=="default"?n.get("default"):null);if(p&&!p.__loadFailed&&(y=p,y.getAttribute("src")&&!y.__srcLoaded&&await Le(y)),!y||y.__loadFailed){m.innerHTML=xr;continue}}let L=y.getAttribute("i18n-ns");if(L){let{_loadI18nNamespace:p}=await Promise.resolve().then(()=>(Ae(),qt));await p(L)}let E=y.content.cloneNode(!0),N=B({$route:t},H(m)),S=document.createElement("div");S.style.display="contents",S.__ctx=N,y.content.__srcBase&&(S.__srcBase=y.content.__srcBase),S.appendChild(E),m.appendChild(S),rt(S);let l=[...S.querySelectorAll("template[src]")];Y("[ROUTER] nested templates found in wrapper:",l.length,l.map(p=>p.getAttribute("src")+(p.__srcLoaded?"[LOADED]":"[NEW]"))),await Promise.all(l.map(Le)),Y("[ROUTER] all nested loads done for route:",t.path);let g=m.getAttribute("transition");g&&ze(S,null,g),Se(S),W(S),b==="default"&&C.router.focusBehavior==="auto"&&requestAnimationFrame(()=>{let p=m.querySelector("[autofocus]")||m.querySelector('[tabindex="-1"]')||m.querySelector("h1")||m;p.hasAttribute("tabindex")||p.setAttribute("tabindex","-1"),p.focus({preventScroll:!0})})}else(!A||y?.__loadFailed)&&(m.innerHTML=xr)}document.querySelectorAll("[route]").forEach(m=>{let _=m.getAttribute("route"),b=m.getAttribute("route-active")||"active",y=m.getAttribute("route-active-exact");if(y)m.classList.toggle(y,t.path===_);else if(b&&!m.hasAttribute("route-active-exact")){let T=_==="/"?t.path==="/":t.path.startsWith(_);m.classList.toggle(b,T)}});let h=C.router.scrollBehavior;h==="top"?window.scrollTo(0,0):h==="smooth"&&window.scrollTo({top:0,behavior:"smooth"})}function f(A,w){w.scrollIntoView({behavior:"smooth"});let h='a[href="#'+A+'"]';document.querySelectorAll('a[href^="#"]').forEach(m=>{m.hasAttribute("route")||m.classList.toggle("active",m.matches(h))})}function x(){let A=document.querySelectorAll("[route-view]");for(let w of A){let h=w.getAttribute("src")||C.router.templates||"";if(!h)continue;let m=h.replace(/\/?$/,"/"),_=w.getAttribute("ext")||C.router.ext||".tpl",b=w.getAttribute("route-index")||"index",y=(w.getAttribute("route-view")||"").trim()||"default",T=new Map;document.querySelectorAll("[route]:not([route-view])").forEach(N=>{let S=N.getAttribute("route");if(!S)return;let l=S.split("?")[0].split("#")[0],g=N.getAttribute("lazy"),p=T.get(l);(!T.has(l)||g==="priority"||p==="ondemand"&&g!=="ondemand")&&T.set(l,g)});let L=[],E=[];for(let[N,S]of T){if(S==="ondemand"||N===t.path||N==="*")continue;let l=N==="/"?b:N.replace(/^\//,""),g=m+l+_,p=y+":"+g;if(i.has(p))continue;let P=document.createElement("template");P.setAttribute("src",g),P.setAttribute("route",N),document.body.appendChild(P),i.set(p,P),Y("[ROUTER] Prefetch:",N,"\u2192",g,S==="priority"?"(priority)":"(background)"),w.hasAttribute("i18n-ns")&&P.setAttribute("i18n-ns",l),S==="priority"?L.push(P):E.push(P)}(L.length||E.length)&&Promise.all(L.map(Le)).then(()=>{E.forEach(Le)})}}return{get current(){return t},push(A){return u(A)},replace(A){return u(A,!0)},back(){window.history.back()},forward(){window.history.forward()},on(A){return r.add(A),()=>r.delete(A)},register(A,w,h="default"){if(A==="*"){n.set(h,w);return}let m=s(A);m.outlets[h]=w},async init(){document.querySelectorAll("template[route]").forEach(w=>{let h=w.getAttribute("route"),m=w.getAttribute("outlet")||"default";if(h==="*"){n.set(m,w);return}let _=s(h);_.outlets[m]=w});let A=w=>{let h=w.target.closest("[route]");if(h&&!h.hasAttribute("route-view")){w.preventDefault();let _=h.getAttribute("route");u(_);return}let m=w.target.closest('a[href^="#"]');if(m&&!m.hasAttribute("route")){let b=m.getAttribute("href").slice(1);if(b&&!b.startsWith("/")){let y=document.getElementById(b);y&&(w.preventDefault(),f(b,y),C.router.useHash||window.history.replaceState(null,"","#"+b))}}};if(document.addEventListener("click",A),o.push(()=>document.removeEventListener("click",A)),C.router.useHash){let w=()=>{let m=window.location.hash.slice(1)||"/";if(!m.startsWith("/")){let b=document.getElementById(m);b&&(f(m,b),window.history.replaceState(null,"","#"+t.path));return}let[_]=m.split("?");_!==t.path&&u(m,!0)};window.addEventListener("hashchange",w),o.push(()=>window.removeEventListener("hashchange",w));let h=window.location.hash.slice(1)||"/";await u(h,!0)}else{let w=()=>{let m=Lr(window.location.pathname);if(m===t.path){let _=window.location.hash.slice(1);if(_){let b=document.getElementById(_);b&&f(_,b)}return}u(m,!0)};window.addEventListener("popstate",w),o.push(()=>window.removeEventListener("popstate",w));let h=Lr(window.location.pathname);await u(h,!0)}x()},destroy(){o.forEach(A=>A()),o.length=0,r.clear()}}}te();U.uppercase=e=>String(e??"").toUpperCase();U.lowercase=e=>String(e??"").toLowerCase();U.capitalize=e=>String(e??"").replace(/\b\w/g,n=>n.toUpperCase());U.truncate=(e,n=100)=>{let t=String(e??"");return t.length>n?t.slice(0,n)+"...":t};U.trim=e=>String(e??"").trim();U.stripHtml=e=>String(e??"").replace(/<[^>]*>/g,"");U.slugify=e=>String(e??"").toLowerCase().replace(/[^a-z0-9]+/g,"-").replace(/^-|-$/g,"");U.nl2br=e=>String(e??"").replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/\n/g,"<br>");U.encodeUri=e=>encodeURIComponent(String(e??""));U.number=(e,n=0)=>{let t=Number(e);return isNaN(t)?e:t.toLocaleString(void 0,{minimumFractionDigits:n,maximumFractionDigits:n})};U.currency=(e,n="USD")=>{let t=Number(e);if(isNaN(t))return e;try{return t.toLocaleString(void 0,{style:"currency",currency:n})}catch{return`${n} ${t.toFixed(2)}`}};U.percent=(e,n=0)=>{let t=Number(e);return isNaN(t)?e:(t*100).toFixed(n)+"%"};U.filesize=e=>{let n=Number(e);if(isNaN(n))return e;let t=["B","KB","MB","GB","TB"],r=0,i=n;for(;i>=1024&&r<t.length-1;)i/=1024,r++;return i.toFixed(r>0?1:0)+" "+t[r]};U.ordinal=e=>{let n=Number(e);if(isNaN(n))return e;let t=["th","st","nd","rd"],r=n%100;return n+(t[(r-20)%10]||t[r]||t[0])};U.count=e=>Array.isArray(e)?e.length:0;U.first=e=>Array.isArray(e)?e[0]:e;U.last=e=>Array.isArray(e)?e[e.length-1]:e;U.join=(e,n=", ")=>Array.isArray(e)?e.join(n):e;U.reverse=e=>Array.isArray(e)?[...e].reverse():e;U.unique=e=>Array.isArray(e)?[...new Set(e)]:e;U.pluck=(e,n)=>Array.isArray(e)?e.map(t=>t?.[n]):e;U.sortBy=(e,n)=>{if(!Array.isArray(e))return e;let t=n?.startsWith("-"),r=t?n.slice(1):n;return[...e].sort((i,o)=>{let s=i?.[r],a=o?.[r],c=s<a?-1:s>a?1:0;return t?-c:c})};U.where=(e,n,t)=>Array.isArray(e)?e.filter(r=>r?.[n]===t):e;U.date=(e,n="short")=>{let t=new Date(e);if(isNaN(t))return e;let r=n==="long"?{dateStyle:"long"}:n==="full"?{dateStyle:"full"}:{dateStyle:"short"};return t.toLocaleDateString(void 0,r)};U.datetime=e=>{let n=new Date(e);return isNaN(n)?e:n.toLocaleString()};U.relative=e=>{let n=new Date(e);if(isNaN(n))return e;let t=(Date.now()-n.getTime())/1e3;return t<60?"just now":t<3600?Math.floor(t/60)+"m ago":t<86400?Math.floor(t/3600)+"h ago":t<2592e3?Math.floor(t/86400)+"d ago":n.toLocaleDateString()};U.fromNow=e=>{let n=new Date(e);if(isNaN(n))return e;let t=(n.getTime()-Date.now())/1e3;return t<0?U.relative(e):t<60?"in a moment":t<3600?"in "+Math.floor(t/60)+"m":t<86400?"in "+Math.floor(t/3600)+"h":"in "+Math.floor(t/86400)+"d"};U.default=(e,n="")=>e==null||e===""?n:e;U.json=(e,n=2)=>JSON.stringify(e,null,n);U.debug=e=>(console.log("[No.JS debug]",e),e);U.keys=e=>e&&typeof e=="object"?Object.keys(e):[];U.values=e=>e&&typeof e=="object"?Object.values(e):[];te();R("state",{priority:0,init(e,n,t){let r=I(t,B())||{},i=e.parentElement?H(e.parentElement):null,o=B(r,i);e.__ctx=o;let s=e.getAttribute("persist"),a=e.getAttribute("persist-key");if(s&&!a){D(`persist="${s}" requires a persist-key attribute. State will not be persisted.`);return}if(s&&a){let c=s==="localStorage"?localStorage:s==="sessionStorage"?sessionStorage:null;if(c){let u=e.getAttribute("persist-fields"),d=u?new Set(u.split(",").map(w=>w.trim())):null;try{let w=c.getItem("nojs_state_"+a);if(w){let h=JSON.parse(w),m=e.hasAttribute("persist-schema");for(let[_,b]of Object.entries(h))if(!d||d.has(_)){if(m){if(!(_ in r)){D('persist-schema: ignoring unknown key "'+_+'"');continue}if(r[_]!==null&&b!==null&&typeof b!=typeof r[_]){D('persist-schema: type mismatch for "'+_+'" (expected '+typeof r[_]+", got "+typeof b+")");continue}}o.$set(_,b)}}}catch{}let f=["token","password","secret","key","auth","credential","session"],v=Object.keys(r).filter(w=>f.some(h=>w.toLowerCase().includes(h)));v.length>0&&D("State key(s) "+v.map(w=>'"'+w+'"').join(", ")+" may contain sensitive data. Consider using persist-fields to exclude them.");let A=o.$watch(()=>{try{let w=o.__raw,h=d?Object.fromEntries(Object.entries(w).filter(([m])=>d.has(m))):w;c.setItem("nojs_state_"+a,JSON.stringify(h))}catch{}});j(()=>{A&&A()})}}Y("state",r)}});R("store",{priority:0,init(e,n,t){let r=e.getAttribute("value");if(t){if(!Q[t]){let i=r?I(r,B())||{}:{};Q[t]=B(i),oe("store:created",{name:t,keys:Object.keys(i)})}Y("store",t)}}});R("computed",{priority:2,init(e,n,t){let r=e.getAttribute("expr");if(!t||!r)return;let i=H(e);function o(){let s=I(r,i);i.$set(t,s)}G(r,i,o),o()}});R("watch",{priority:2,init(e,n,t){let r=H(e),i=e.getAttribute("on:change"),o=I(t,r);G(t,r,()=>{let s=I(t,r);if(s!==o){let a=o;o=s,i&&se(i,r,{$old:a,$new:s})}})}});te();var cn=["get","post","put","patch","delete"];for(let e of cn)R(e,{priority:1,init(n,t,r){let i=n.getAttribute("as")||"data",o=n.getAttribute("loading"),s=n.getAttribute("error"),a=n.getAttribute("empty"),c=n.getAttribute("success"),u=n.getAttribute("then"),d=n.getAttribute("redirect"),f=n.getAttribute("confirm"),x=parseInt(n.getAttribute("refresh"))||0,v=n.getAttribute("cached"),A=n.hasAttribute("cached")?v||"memory":"none",w=n.getAttribute("body"),h=n.getAttribute("headers"),m=n.getAttribute("var"),_=n.getAttribute("into"),b=parseInt(n.getAttribute("retry"))||C.retries,y=parseInt(n.getAttribute("retry-delay"))||C.retryDelay||1e3,T=n.getAttribute("params"),L=n.parentElement?H(n.parentElement):B(),E=n.__ctx||B({},L);n.__ctx=E;let N=[...n.childNodes].map(p=>p.cloneNode(!0)),S=null;async function l(){if(S&&S.abort(),S=new AbortController,f&&!window.confirm(f))return;let p=ke(r,E);if(T){let O=I(T,E);if(O&&typeof O=="object"){let K=p.includes("?")?"&":"?",$=new URLSearchParams(O).toString();$&&(p+=K+$)}}let P=e+":"+p;if(e==="get"){let O=dr(P,A);if(O!=null){E.$set(i,O),Se(n),W(n);return}}if(o){let O=re(o);O&&(q(n),n.innerHTML="",n.appendChild(O),W(n))}try{let O=null;if(w){let M=ke(w,E);try{O=JSON.parse(M)}catch{O=M}}if(n.tagName==="FORM"){let M=new FormData(n);O=Object.fromEntries(M.entries())}let K=h?JSON.parse(h):{};if(h)for(let M of Object.keys(K)){let X=M.toLowerCase();(Be.has(X)||/^x-(auth|api)-/.test(X))&&D(`Sensitive header "${M}" is set inline on a headers attribute. Use NoJS.config({ headers }) or an interceptor to avoid exposing credentials in HTML source.`)}let $=await et(p,e,O,K,n,S.signal,b,y);if(e==="get"&&fr(P,$,A),a&&($==null||Array.isArray($)&&$.length===0)){let M=re(a);M&&(q(n),n.innerHTML="",n.appendChild(M),W(n));return}if(E.$set(i,$),_&&(Q[_]||(Q[_]=B({})),Q[_].$set(i,$),xe()),c){let M=re(c);if(M){q(n),n.innerHTML="";let J=document.getElementById(c.replace("#",""))?.getAttribute("var")||m||"result",V=B({[J]:$},E),ne=document.createElement("div");ne.style.display="contents",ne.__ctx=V,ne.appendChild(M),n.appendChild(ne),W(ne)}}else{q(n),n.innerHTML="";for(let M of N)n.appendChild(M.cloneNode(!0));Se(n),W(n)}u&&se(u,E,{result:$}),d&&ee&&ee.push(d),be("fetch:success",{url:p,data:$}),oe("fetch:success",{method:e,url:p})}catch(O){if(O.name==="AbortError")return;if(D(`${e.toUpperCase()} ${p} failed:`,O.message),be("fetch:error",{url:p,error:O}),be("error",{url:p,error:O}),oe("fetch:error",{method:e,url:p,error:O.message}),s){let K=re(s);if(K){q(n),n.innerHTML="";let M=document.getElementById(s.replace("#",""))?.getAttribute("var")||"err",X=B({[M]:{message:O.message,status:O.status,body:O.body}},E),J=document.createElement("div");J.style.display="contents",J.__ctx=X,J.appendChild(K),n.appendChild(J),W(J)}}}}if(n.tagName==="FORM"&&e!=="get"){let p=P=>{P.preventDefault(),l()};n.addEventListener("submit",p),j(()=>n.removeEventListener("submit",p))}else if(e==="get")n.isConnected&&l();else{let p=P=>{P.preventDefault(),l()};n.addEventListener("click",p),j(()=>n.removeEventListener("click",p))}if(/\{[^}]+\}/.test(r)){let K=function(){let M=ke(r,E);M!==P&&(P=M,O&&clearTimeout(O),p>0?O=setTimeout(l,p):l())},p=parseInt(n.getAttribute("debounce"))||0,P=ke(r,E),O=null;j(()=>{O&&clearTimeout(O)});let $=L;for(;$&&$.__isProxy;){let M=$.$watch(K);j(M),$=$.$parent}}if(n.refresh=l,j(()=>{delete n.refresh}),x>0){let p=setInterval(()=>{if(!n.isConnected){clearInterval(p);return}l()},x);j(()=>clearInterval(p))}}});te();R("bind",{priority:20,init(e,n,t){let r=H(e);function i(){let o=I(t,r);e.textContent=o!=null?String(o):""}G(t,r,i),i()}});R("bind-html",{priority:20,init(e,n,t){let r=H(e);(C.debug||C.devtools)&&!/^['"`]/.test(t.trim())&&D(`[Security] bind-html used with dynamic expression: "${t}". Ensure the value is trusted or sanitized \u2014 use bind for plain text.`,e);function i(){let o=I(t,r);o!=null&&(q(e),e.innerHTML=tt(String(o)))}G(t,r,i),i()}});var ln=new Set(["href","src","action","formaction","poster","data"]);function Cr(e){let t=new DOMParser().parseFromString(e,"image/svg+xml").documentElement;if(t.querySelector("parsererror")||t.nodeName!=="svg"||t.getElementsByTagNameNS("http://www.mozilla.org/newlayout/xml/parsererror.xml","parsererror").length)return"<svg></svg>";function r(i){for(let o of[...i.attributes]){let s=o.name.toLowerCase();if(s.startsWith("on")){i.removeAttribute(o.name);continue}(s==="href"||s==="xlink:href")&&o.value.trim().toLowerCase().startsWith("javascript:")&&i.removeAttribute(o.name)}}for(let i of[...t.querySelectorAll("script")])i.remove();r(t);for(let i of t.querySelectorAll("*"))r(i);return new XMLSerializer().serializeToString(t)}function un(e){try{let n=e.match(/^data:image\/svg\+xml;base64,(.+)$/i);if(n){let o=Cr(atob(n[1]));return"data:image/svg+xml;base64,"+btoa(o)}let t=e.indexOf(",");if(t===-1)return"#";let r=e.slice(0,t+1),i=Cr(decodeURIComponent(e.slice(t+1)));return r+encodeURIComponent(i)}catch{return"#"}}function dn(e,n){if(ln.has(e)){let t=String(n).trimStart();if(/^(javascript|vbscript):/i.test(t))return"#";if(/^data:/i.test(t)){if(/^data:image\/svg\+xml/i.test(t))return un(t);if(!/^data:image\//i.test(t))return"#"}}return n}R("bind-*",{priority:20,init(e,n,t){let r=n.replace("bind-",""),i=H(e);if(r==="value"&&(e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.tagName==="SELECT")){let s=()=>{let a=e.type==="number"?Number(e.value):e.value;se(`${t} = ${JSON.stringify(a)}`,i)};e.addEventListener("input",s),j(()=>e.removeEventListener("input",s))}function o(){let s=I(t,i);if(["disabled","readonly","checked","selected","hidden","required"].includes(r)){s?e.setAttribute(r,""):e.removeAttribute(r),r in e&&(e[r]=!!s);return}s!=null?e.setAttribute(r,String(dn(r,s))):e.removeAttribute(r)}G(t,i,o),o()}});R("model",{priority:20,init(e,n,t){let r=H(e),i=e.tagName,o=e.type;function s(){let u=I(t,r);i==="INPUT"&&o==="checkbox"?e.checked=!!u:i==="INPUT"&&o==="radio"?e.checked=e.value===String(u):e.value=u!=null?String(u):""}let a=i==="SELECT"||o==="checkbox"||o==="radio"?"change":"input",c=()=>{let u;o==="checkbox"?u=e.checked:o==="number"||o==="range"?u=Number(e.value):u=e.value,se(`${t} = __val`,r,{__val:u})};e.addEventListener(a,c),j(()=>e.removeEventListener(a,c)),G(t,r,s),s()}});te();R("if",{priority:10,init(e,n,t){let r=H(e),i=e.getAttribute("then"),o=e.getAttribute("else"),s=e.getAttribute("animate-enter")||e.getAttribute("animate"),a=e.getAttribute("animate-leave"),c=e.getAttribute("transition"),u=parseInt(e.getAttribute("animate-duration"))||0,d=[...e.childNodes].map(w=>w.cloneNode(!0)),f,x=null;j(()=>{x&&(x(),x=null)});function v(){let w=!!I(t,r);w!==f&&(f=w,a||c?(x&&(x(),x=null),x=nt(e,a,c,()=>{x=null,A(w)},u)):A(w))}function A(w){if(q(e),w)if(i){let h=re(i);h&&(e.innerHTML="",e.appendChild(h))}else{e.innerHTML="";for(let h of d)e.appendChild(h.cloneNode(!0))}else if(o){let h=re(o);h&&(e.innerHTML="",e.appendChild(h))}else e.innerHTML="";Se(e),W(e),(s||c)&&ze(e,s,c,u)}G(t,r,v),v()}});R("else-if",{priority:10,init(e,n,t){let r=H(e),i=e.getAttribute("then"),o=[...e.childNodes].map(a=>a.cloneNode(!0));function s(){let a=e.previousElementSibling;for(;a;){let u=a.getAttribute("if")||a.getAttribute("else-if");if(u){if(I(u,r)){q(e),e.innerHTML="",e.style.display="none";return}}else break;a=a.previousElementSibling}let c=!!I(t,r);if(e.style.display="",c){if(i){let u=re(i);u&&(q(e),e.innerHTML="",e.appendChild(u))}else{q(e),e.innerHTML="";for(let u of o)e.appendChild(u.cloneNode(!0))}Se(e),W(e)}else q(e),e.innerHTML=""}G(t,r,s),s()}});R("else",{priority:10,init(e){if(e.hasAttribute("if"))return;let n=H(e),t=e.getAttribute("then"),r=[...e.childNodes].map(o=>o.cloneNode(!0));function i(){let o=e.previousElementSibling;for(;o;){let s=o.getAttribute("if")||o.getAttribute("else-if");if(s){if(I(s,n)){q(e),e.innerHTML="",e.style.display="none";return}}else break;o=o.previousElementSibling}if(e.style.display="",t){let s=re(t);s&&(q(e),e.innerHTML="",e.appendChild(s))}else{q(e),e.innerHTML="";for(let s of r)e.appendChild(s.cloneNode(!0))}Se(e),W(e)}G("",n,i),i()}});R("show",{priority:20,init(e,n,t){let r=H(e),i=e.getAttribute("animate-enter")||e.getAttribute("animate"),o=e.getAttribute("animate-leave"),s=e.getAttribute("transition"),a=parseInt(e.getAttribute("animate-duration"))||0,c;function u(){let d=!!I(t,r);d!==c&&(c=d,d?(e.style.display="",(i||s)&&ze(e,i,s,a)):o||s?nt(e,o,s,()=>{e.style.display="none"},a):e.style.display="none")}G(t,r,u),u()}});R("hide",{priority:20,init(e,n,t){let r=H(e),i=e.getAttribute("animate-enter")||e.getAttribute("animate"),o=e.getAttribute("animate-leave"),s=e.getAttribute("transition"),a=parseInt(e.getAttribute("animate-duration"))||0,c;function u(){let d=!I(t,r);d!==c&&(c=d,d?(e.style.display="",(i||s)&&ze(e,i,s,a)):o||s?nt(e,o,s,()=>{e.style.display="none"},a):e.style.display="none")}G(t,r,u),u()}});R("switch",{priority:10,init(e,n,t){let r=H(e);function i(){let o=I(t,r),s=!1;for(let a of[...e.children]){let c=a.getAttribute("case"),u=a.hasAttribute("default"),d=a.getAttribute("then");if(c){let f=c.split(",").map(x=>I(x.trim(),r));if(!s&&f.includes(o)){if(s=!0,a.style.display="",d){let x=re(d);x&&(q(a),a.innerHTML="",a.appendChild(x)),a.__declared=!1,W(a)}}else a.style.display="none"}else if(u&&(a.style.display=s?"none":"",!s&&d)){let f=re(d);f&&(q(a),a.innerHTML="",a.appendChild(f)),a.__declared=!1,W(a)}}}G(t,r,i),i()}});te();R("each",{priority:10,init(e,n,t){let r=H(e),i=t.match(/^(\w+)\s+in\s+(\S+)$/);if(!i)return;let[,o,s]=i,a=e.getAttribute("template"),c=e.getAttribute("else"),u=e.getAttribute("key"),d=e.getAttribute("animate-enter")||e.getAttribute("animate"),f=e.getAttribute("animate-leave"),x=parseInt(e.getAttribute("animate-stagger"))||0,v=parseInt(e.getAttribute("animate-duration"))||0,A=null,w=new Map;function h(){let y=/[\[\]()\s+\-*\/!?:&|]/.test(s)?I(s,r):le(s,r);if(!Array.isArray(y))return;if(y===A&&y.length>0&&e.children.length>0){for(let L of e.children)L.__ctx&&L.__ctx.$notify&&L.__ctx.$notify();return}if(A=y,y.length===0&&c){let L=re(c);L&&(q(e),w.clear(),e.innerHTML="",e.appendChild(L),W(e));return}let T=a?document.getElementById(a):null;if(T)if(f&&e.children.length>0){let L=[...e.children],E=L.length;L.forEach(N=>{let S=N.firstElementChild||N;S.classList.add(f);let l=()=>{S.classList.remove(f),E--,E<=0&&m(T,y)};S.addEventListener("animationend",l,{once:!0}),setTimeout(l,v||0)})}else m(T,y)}function m(y,T){u?_(y,T):b(y,T)}function _(y,T){let L=T.length,E=T.map((S,l)=>{let g=B({[o]:S,$index:l},r);return{key:I(u,g),item:S,i:l}}),N=new Set(E.map(S=>S.key));for(let[S,l]of w)N.has(S)||(q(l),l.remove(),w.delete(S));E.forEach(({key:S,item:l,i:g})=>{let p={[o]:l,$index:g,$count:L,$first:g===0,$last:g===L-1,$even:g%2===0,$odd:g%2!==0};if(w.has(S))Object.assign(w.get(S).__ctx.__raw,p),w.get(S).__ctx.$notify();else{let P=y.content.cloneNode(!0),O=document.createElement("div");if(O.style.display="contents",O.__ctx=B(p,r),O.appendChild(P),w.set(S,O),e.appendChild(O),W(O),d){let K=O.firstElementChild;K&&(K.classList.add(d),K.addEventListener("animationend",()=>K.classList.remove(d),{once:!0}),x&&(K.style.animationDelay=g*x+"ms"))}}});for(let S=0;S<E.length;S++){let l=w.get(E[S].key);l!==e.children[S]&&e.insertBefore(l,e.children[S]??null)}}function b(y,T){let L=T.length;q(e),e.innerHTML="",T.forEach((E,N)=>{let S={[o]:E,$index:N,$count:L,$first:N===0,$last:N===L-1,$even:N%2===0,$odd:N%2!==0},l=B(S,r),g=y.content.cloneNode(!0),p=document.createElement("div");if(p.style.display="contents",p.__ctx=l,p.appendChild(g),e.appendChild(p),W(p),d){let P=p.firstElementChild;P&&(P.classList.add(d),P.addEventListener("animationend",()=>P.classList.remove(d),{once:!0}),x&&(P.style.animationDelay=N*x+"ms"))}})}G(t,r,h),h()}});R("foreach",{priority:10,init(e,n,t){let r=H(e),i=e.getAttribute("from"),o=e.getAttribute("index")||"$index",s=e.getAttribute("else"),a=e.getAttribute("filter"),c=e.getAttribute("sort"),u=parseInt(e.getAttribute("limit"))||1/0,d=parseInt(e.getAttribute("offset"))||0,f=e.getAttribute("template"),x=e.getAttribute("key"),v=e.getAttribute("animate-enter")||e.getAttribute("animate"),A=e.getAttribute("animate-leave"),w=parseInt(e.getAttribute("animate-stagger"))||0,h=parseInt(e.getAttribute("animate-duration"))||0;if(!i||!t)return;let m=f?null:e.cloneNode(!0);m&&(m.removeAttribute("foreach"),m.removeAttribute("from"),m.removeAttribute("index"),m.removeAttribute("filter"),m.removeAttribute("sort"),m.removeAttribute("limit"),m.removeAttribute("offset"),m.removeAttribute("else"),m.removeAttribute("template"),m.removeAttribute("key"),m.removeAttribute("animate-enter"),m.removeAttribute("animate"),m.removeAttribute("animate-leave"),m.removeAttribute("animate-stagger"),m.removeAttribute("animate-duration"));let _=new Map;function b(){let T=le(i,r);if(!Array.isArray(T))return;if(a&&(T=T.filter((S,l)=>{let g=B({[t]:S,[o]:l},r);return!!I(a,g)})),c){let S=c.startsWith("-"),l=S?c.slice(1):c;T=[...T].sort((g,p)=>{let P=le(l,g)??g?.[l],O=le(l,p)??p?.[l],K=P<O?-1:P>O?1:0;return S?-K:K})}if(T=T.slice(d,d+u),T.length===0&&s){let S=re(s);S&&(q(e),_.clear(),e.innerHTML="",e.appendChild(S),W(e));return}let L=f?document.getElementById(f):null,E=T.length;if(x){y(L,T,E);return}function N(){q(e),e.innerHTML="",T.forEach((S,l)=>{let g={[t]:S,[o]:l,$index:l,$count:E,$first:l===0,$last:l===E-1,$even:l%2===0,$odd:l%2!==0},p=B(g,r),P;L?P=L.content.cloneNode(!0):P=m.cloneNode(!0);let O=document.createElement("div");if(O.style.display="contents",O.__ctx=p,O.appendChild(P),e.appendChild(O),W(O),v){let K=O.firstElementChild;K&&(K.classList.add(v),K.addEventListener("animationend",()=>K.classList.remove(v),{once:!0}),w&&(K.style.animationDelay=l*w+"ms"))}})}if(A&&e.children.length>0){let S=[...e.children],l=S.length;S.forEach(g=>{let p=g.firstElementChild||g;p.classList.add(A);let P=()=>{p.classList.remove(A),l--,l<=0&&N()};p.addEventListener("animationend",P,{once:!0}),setTimeout(P,h||0)})}else N()}function y(T,L,E){_.size===0&&(e.innerHTML="");let N=L.map((l,g)=>{let p=B({[t]:l,[o]:g},r);return{key:I(x,p),item:l,i:g}}),S=new Set(N.map(l=>l.key));for(let[l,g]of _)S.has(l)||(q(g),g.remove(),_.delete(l));N.forEach(({key:l,item:g,i:p})=>{let P={[t]:g,[o]:p,$index:p,$count:E,$first:p===0,$last:p===E-1,$even:p%2===0,$odd:p%2!==0};if(_.has(l))Object.assign(_.get(l).__ctx.__raw,P),_.get(l).__ctx.$notify();else{let O;T?O=T.content.cloneNode(!0):O=m.cloneNode(!0);let K=document.createElement("div");if(K.style.display="contents",K.__ctx=B(P,r),K.appendChild(O),_.set(l,K),e.appendChild(K),W(K),v){let $=K.firstElementChild;$&&($.classList.add(v),$.addEventListener("animationend",()=>$.classList.remove(v),{once:!0}),w&&($.style.animationDelay=p*w+"ms"))}}});for(let l=0;l<N.length;l++){let g=_.get(N[l].key);g!==e.children[l]&&e.insertBefore(g,e.children[l]??null)}}G(i,r,b),b()}});te();Ae();R("class-*",{priority:20,init(e,n,t){let r=n.replace("class-",""),i=H(e);if(r==="map"){let s=function(){let a=I(t,i);if(a&&typeof a=="object")for(let[c,u]of Object.entries(a))c.split(/\s+/).filter(Boolean).forEach(f=>e.classList.toggle(f,!!u))};G(t,i,s),s();return}if(r==="list"){let a=function(){let c=I(t,i);if(Array.isArray(c)){s.forEach(d=>{d&&e.classList.remove(d)});let u=c.filter(Boolean);u.forEach(d=>e.classList.add(d)),s=u}},s=[];G(t,i,a),a();return}function o(){e.classList.toggle(r,!!I(t,i))}G(t,i,o),(t.includes("$i18n")||t.includes("NoJS.locale")||t.includes("window.NoJS.locale"))&&Ve(o),o()}});R("style-*",{priority:20,init(e,n,t){let r=n.replace("style-",""),i=H(e);if(r==="map"){let a=function(){let c=I(t,i);if(c&&typeof c=="object")for(let[u,d]of Object.entries(c))e.style[u]=d??""};G(t,i,a),a();return}let o=r.replace(/-([a-z])/g,(a,c)=>c.toUpperCase());function s(){let a=I(t,i);e.style[o]=a!=null?String(a):""}G(t,i,s),s()}});te();R("on:*",{priority:20,init(e,n,t){let r=H(e),i=n.replace("on:","").split("."),o=i[0],s=new Set(i.slice(1));if(o==="mounted"){requestAnimationFrame(()=>se(t,r,{$el:e}));return}if(o==="init"){se(t,r,{$el:e});return}if(o==="updated"){let f=new MutationObserver(()=>{if(!e.isConnected){f.disconnect();return}se(t,r,{$el:e})});f.observe(e,{childList:!0,subtree:!0,characterData:!0,attributes:!0}),j(()=>f.disconnect());return}if(o==="error"){let f=x=>{(e.contains(x.target)||x.target===e)&&se(t,r,{$el:e,$error:x.error||x.message})};window.addEventListener("error",f),j(()=>window.removeEventListener("error",f));return}if(o==="unmounted"){let f=new MutationObserver(x=>{for(let v of x)for(let A of v.removedNodes)if(A===e||A.contains?.(e)){se(t,r,{$el:e}),f.disconnect();return}});e.parentElement&&f.observe(e.parentElement,{childList:!0,subtree:!0}),j(()=>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 u=f=>{if(o==="keydown"||o==="keyup"||o==="keypress"){let x=["enter","escape","tab","space","delete","backspace","up","down","left","right","ctrl","alt","shift","meta"];for(let v of s)if(x.includes(v)&&(v==="enter"&&f.key!=="Enter"||v==="escape"&&f.key!=="Escape"||v==="tab"&&f.key!=="Tab"||v==="space"&&f.key!==" "||v==="delete"&&f.key!=="Delete"&&f.key!=="Backspace"||v==="up"&&f.key!=="ArrowUp"||v==="down"&&f.key!=="ArrowDown"||v==="left"&&f.key!=="ArrowLeft"||v==="right"&&f.key!=="ArrowRight"||v==="ctrl"&&!f.ctrlKey||v==="alt"&&!f.altKey||v==="shift"&&!f.shiftKey||v==="meta"&&!f.metaKey))return}s.has("prevent")&&f.preventDefault(),s.has("stop")&&f.stopPropagation(),!(s.has("self")&&f.target!==e)&&se(t,r,{$event:f,$el:e})};if(a>0){let f=u,x;u=v=>{clearTimeout(x),x=setTimeout(()=>f(v),a)},j(()=>clearTimeout(x))}if(c>0){let f=u,x=0;u=v=>{let A=Date.now();A-x>=c&&(x=A,f(v))}}let d={};s.has("once")&&(d.once=!0),e.addEventListener(o,u,d),d.once||j(()=>e.removeEventListener(o,u,d))}});R("trigger",{priority:20,init(e,n,t){let r=H(e),i=e.getAttribute("trigger-data"),o=()=>{let s=i?I(i,r):null;e.dispatchEvent(new CustomEvent(t,{detail:s,bubbles:!0}))};e.addEventListener("click",o),j(()=>e.removeEventListener("click",o))}});te();R("ref",{priority:5,init(e,n,t){we[t]=e,j(()=>{we[t]===e&&delete we[t]})}});R("use",{priority:10,init(e,n,t){let r=H(e),i=re(t);if(!i)return;let o={};for(let d of[...e.attributes])if(d.name.startsWith("var-")){let f=d.name.replace("var-","");o[f]=I(d.value,r)}let s=B(o,r),a={};for(let d of[...e.children]){let f=d.getAttribute("slot")||"default";a[f]||(a[f]=document.createDocumentFragment()),a[f].appendChild(d.cloneNode(!0))}let c=i.querySelectorAll("slot");for(let d of c){let f=d.getAttribute("name")||"default";a[f]&&d.replaceWith(a[f])}q(e),e.innerHTML="";let u=document.createElement("div");u.style.display="contents",u.__ctx=s,u.appendChild(i),e.appendChild(u),W(u)}});R("call",{priority:20,init(e,n,t){let r=H(e),i=e.getAttribute("method")||"get",o=e.getAttribute("as")||"data",s=e.getAttribute("into"),a=e.getAttribute("success"),c=e.getAttribute("error"),u=e.getAttribute("loading"),d=e.getAttribute("then"),f=e.getAttribute("confirm"),x=e.getAttribute("body"),v=e.getAttribute("redirect"),A=e.getAttribute("headers"),w=[...e.childNodes].map(_=>_.cloneNode(!0)),h=null,m=async _=>{if(_.preventDefault(),f&&!window.confirm(f))return;h&&h.abort(),h=new AbortController;let b=ke(t,r);if(u){let y=re(u);y&&(q(e),e.innerHTML="",e.appendChild(y),W(e),e.disabled=!0)}try{let y=null;if(x){let E=ke(x,r);try{y=JSON.parse(E)}catch{y=E}}let T=A?JSON.parse(A):{};if(A)for(let E of Object.keys(T)){let N=E.toLowerCase();(Be.has(N)||/^x-(auth|api)-/.test(N))&&D(`Sensitive header "${E}" is set inline on a headers attribute. Use NoJS.config({ headers }) or an interceptor to avoid exposing credentials in HTML source.`)}let L=await et(b,i,y,T,e,h.signal);if(u){q(e),e.innerHTML="";for(let E of w)e.appendChild(E.cloneNode(!0));e.disabled=!1}if(o&&r.$set(o,L),s&&(Q[s]||(Q[s]=B({})),Q[s].$set(o,L),xe()),d&&se(d,r,{result:L}),a){let E=re(a);if(E){let S=document.getElementById(a.replace("#",""))?.getAttribute("var")||"result",l=B({[S]:L},r),g=e.closest("[route-view]")||e.parentElement,p=document.createElement("div");p.style.display="contents",p.__ctx=l,p.appendChild(E),g.appendChild(p),W(p)}}v&&ee&&ee.push(v),be("fetch:success",{url:b,data:L}),oe("fetch:success",{method:i,url:b})}catch(y){if(y.name==="AbortError")return;if(D(`call ${i.toUpperCase()} ${b} failed:`,y.message),u){q(e),e.innerHTML="";for(let T of w)e.appendChild(T.cloneNode(!0));e.disabled=!1}if(be("fetch:error",{url:b,error:y}),be("error",{url:b,error:y}),oe("fetch:error",{method:i,url:b,error:y.message}),c){let T=re(c);if(T){let E=document.getElementById(c.replace("#",""))?.getAttribute("var")||"err",N=B({[E]:{message:y.message,status:y.status,body:y.body}},r),S=e.parentElement,l=document.createElement("div");l.style.display="contents",l.__ctx=N,l.appendChild(T),S.appendChild(l),W(l)}}}};e.addEventListener("click",m),j(()=>e.removeEventListener("click",m))}});te();var fn=[["valueMissing","required"],["typeMismatch",null],["tooShort","minlength"],["tooLong","maxlength"],["patternMismatch","pattern"],["rangeUnderflow","min"],["rangeOverflow","max"],["stepMismatch","step"]],Tr=["required","email","url","number","date","time","datetime-local","month","week","tel","minlength","maxlength","pattern","min","max","step"];function pn(e){return(e.getAttribute("type")||"text").toLowerCase()}function mn(e,n){let t=[],r=new Set,i=e.getAttribute("validate");if(i){let s=i.split("|").map(a=>a.trim());for(let a of s){let[c,...u]=a.split(":"),d=Ee[c];if(d){let f=d(e.value,...u,n);f!==!0&&f&&(t.push({rule:c,message:f}),r.add(c))}else{let f=e.value,x=null;switch(c){case"required":(f==null||String(f).trim()==="")&&(x="Required");break;case"email":f&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(f)&&(x="Invalid email");break;case"url":try{new URL(f)}catch{x="Invalid URL"}break;case"min":Number(f)<Number(u[0])&&(x=`Minimum value is ${u[0]}`);break;case"max":Number(f)>Number(u[0])&&(x=`Maximum value is ${u[0]}`);break;case"custom":if(u[0]&&Ee[u[0]]){let v=Ee[u[0]](f,n);v!==!0&&v&&(x=v)}break}x&&(t.push({rule:c,message:x}),r.add(c))}}}let o=e.validity;if(o&&!o.valid){for(let[s,a]of fn)if(o[s]){let c=a||pn(e);r.has(c)||(t.push({rule:c,message:e.validationMessage}),r.add(c))}}return t}function gn(e,n,t){let r=e.getAttribute(`error-${n}`);if(r)return r;let i=e.getAttribute("error");return i&&!i.startsWith("#")?i:t}function hn(e,n){if(!e.length)return null;let r=[...e].sort((i,o)=>{let s=Tr.indexOf(i.rule),a=Tr.indexOf(o.rule);return(s===-1?999:s)-(a===-1?999:a)})[0];return{rule:r.rule,message:gn(n,r.rule,r.message)}}function yn(e,n,t,r,i){Ot(r);let o=document.querySelector(e);if(!o)return;let s=o.content.cloneNode(!0),a=document.createElement("div");a.style.display="contents",a.__errorTemplateFor=r;let c=B({$error:n,$rule:t},i);a.__ctx=c,a.appendChild(s),o.parentNode.insertBefore(a,o.nextSibling),W(a)}function Ot(e){let n=document.querySelector('div[style="display: contents;"]'),t=document.querySelectorAll('div[style="display: contents;"]');for(let r of t)r.__errorTemplateFor===e&&r.remove()}function bn(e,n){let t=e.getAttribute("validate-if");if(!t)return!0;try{return!!I(t,n)}catch{return!0}}function vn(e,n){let t=e.getAttribute("validate-on");if(t)return t.split(/\s+/);let r=n?n.getAttribute("validate-on"):null;return r?r.split(/\s+/):["input","focusout"]}function _n(e,n,t){let r=n.split("|").map(i=>i.trim());for(let i of r){let[o,...s]=i.split(":"),a=Ee[o];if(a){let c=a(e,...s,t);if(c!==!0&&c)return c}else switch(o){case"required":if(e==null||String(e).trim()==="")return"Required";break;case"email":if(e&&!/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(e))return"Invalid email";break;case"url":try{new URL(e)}catch{return"Invalid URL"}break;case"min":if(Number(e)<Number(s[0]))return`Minimum value is ${s[0]}`;break;case"max":if(Number(e)>Number(s[0]))return`Maximum value is ${s[0]}`;break;case"custom":if(s[0]&&Ee[s[0]]){let c=Ee[s[0]](e,t);if(c!==!0&&c)return c}break}}return null}R("validate",{priority:30,init(e,n,t){let r=H(e);if(e.tagName==="FORM"){let u=function(){return e.querySelectorAll("input, textarea, select")},d=function(){let h={},m={},_={},b=!0,y=null,T=0,L=!1;for(let E of u())E.name&&(E.type==="checkbox"?m[E.name]=E.checked:E.type==="radio"?E.checked?m[E.name]=E.value:E.name in m||(m[E.name]=""):m[E.name]=E.value);for(let E of u()){if(!E.name)continue;let N=o.has(E.name),S=s.has(E.name);if(!bn(E,r)){_[E.name]={valid:!0,dirty:S,touched:N,error:null,value:m[E.name]};continue}let l=mn(E,m),g=hn(l,E),p=!g,P=N||S;p||(b=!1),!p&&P&&(h[E.name]=g.message,T++,y||(y=g.message)),_[E.name]={valid:p,dirty:S,touched:N,error:g?g.message:null,value:m[E.name]};let O=E.getAttribute("error-class")||i;if(O){let $=O.split(/\s+/);!p&&P?E.classList.add(...$):E.classList.remove(...$)}if(g&&P){let $=E.getAttribute(`error-${g.rule}`),M=E.getAttribute("error"),X=($&&$.startsWith("#")?$:null)||(M&&M.startsWith("#")?M:null);X?yn(X,g.message,g.rule,E,r):Ot(E)}else Ot(E);let K=E.getAttribute("as");K&&r.$set(K,_[E.name])}a.size>0&&(L=!0),c.valid=b,c.errors=h,c.values=m,c.fields=_,c.firstError=y,c.errorCount=T,c.pending=L,r.$set("$form",{...c}),f(e,b&&!L)},f=function(h,m){let _=h.querySelectorAll('button:not([type="button"]), input[type="submit"]');for(let b of _){if(b.hasAttribute("disabled")&&b.getAttribute("disabled")!==""){let y=b.getAttribute("disabled");if(y!=="disabled"&&y!=="true"&&y!=="false")continue}b.disabled=!m,b.__autoDisabled=!0}},x=function(h){if(!h.name)return;let m=vn(h,e),_=()=>{s.add(h.name),c.dirty=!0,d()},b=()=>{o.add(h.name),c.touched=!0,d()};if(m.includes("input"))h.addEventListener("input",_),j(()=>h.removeEventListener("input",_));else{let y=()=>{s.add(h.name),c.dirty=!0,d()};h.addEventListener("input",y),j(()=>h.removeEventListener("input",y))}if(m.includes("blur")||m.includes("focusout")){let y=T=>{b(),m.includes("blur")&&_()};h.addEventListener("focusout",y),j(()=>h.removeEventListener("focusout",y))}else h.addEventListener("focusout",b),j(()=>h.removeEventListener("focusout",b));m.includes("submit")&&(h.addEventListener("focusout",b),j(()=>h.removeEventListener("focusout",b)))};e.setAttribute("novalidate","");let i=e.getAttribute("error-class"),o=new Set,s=new Set,a=new Map,c={valid:!1,dirty:!1,touched:!1,submitting:!1,pending:!1,errors:{},values:{},firstError:null,errorCount:0,fields:{},reset:()=>{c.dirty=!1,c.touched=!1,c.pending=!1,o.clear(),s.clear(),e.reset(),d()}};r.$set("$form",c);let v=e.hasAttribute("validate-on"),A=[...u()].some(h=>h.hasAttribute("validate-on"));if(!v&&!A){let h=_=>{let b=_.target;b&&b.name&&s.add(b.name),c.dirty=!0,d()};e.addEventListener("input",h),j(()=>e.removeEventListener("input",h)),e.addEventListener("change",h),j(()=>e.removeEventListener("change",h));let m=_=>{_.target&&_.target.name&&o.add(_.target.name),c.touched=!0,d()};e.addEventListener("focusout",m),j(()=>e.removeEventListener("focusout",m))}else for(let h of u())x(h);let w=h=>{c.submitting=!0;for(let m of u())m.name&&o.add(m.name);c.touched=!0,d(),r.$set("$form",{...c}),requestAnimationFrame(()=>{c.submitting=!1,r.$set("$form",{...c})})};e.addEventListener("submit",w),j(()=>e.removeEventListener("submit",w)),requestAnimationFrame(d);return}if(t&&(e.tagName==="INPUT"||e.tagName==="TEXTAREA"||e.tagName==="SELECT")){let i=e.getAttribute("error"),o=()=>{let s=_n(e.value,t,{});if(s&&i){let a=e.nextElementSibling?.__validationError?e.nextElementSibling:null;a||(a=document.createElement("div"),a.__validationError=!0,a.style.display="contents",e.parentNode.insertBefore(a,e.nextSibling));let c=re(i);if(c){let u=B({err:{message:s}},r);q(a),a.innerHTML="",a.__ctx=u,a.appendChild(c),W(a)}}else{let a=e.nextElementSibling?.__validationError?e.nextElementSibling:null;a&&(q(a),a.innerHTML="")}};e.addEventListener("input",o),j(()=>e.removeEventListener("input",o))}}});R("error-boundary",{priority:1,init(e,n,t){let r=H(e);function i(a){let c=re(t);if(c){let u=B({err:{message:a}},r);q(e),e.innerHTML="";let d=document.createElement("div");d.style.display="contents",d.__ctx=u,d.appendChild(c),e.appendChild(d),W(d)}}let o=a=>{i(a.detail?.message||"An error occurred")};e.addEventListener("nojs:error",o),j(()=>e.removeEventListener("nojs:error",o));let s=a=>{(e.contains(a.target)||e===a.target)&&i(a.message||"An error occurred")};window.addEventListener("error",s),j(()=>window.removeEventListener("error",s))}});Ae();te();R("t",{priority:20,init(e,n,t){let r=H(e),i=e.hasAttribute("t-html");function o(){let s={};for(let c of[...e.attributes])if(c.name.startsWith("t-")&&c.name!=="t"&&c.name!=="t-html"){let u=c.name.replace("t-","");s[u]=I(c.value,r)??c.value}let a=Z.t(t,s);i?(q(e),e.innerHTML=tt(a)):e.textContent=a}G(t,r,o),Ve(o),o()}});R("i18n-ns",{priority:1,init(e,n,t){if(!t)return;let r=document.createDocumentFragment();for(;e.firstChild;)r.appendChild(e.firstChild);pt(t).then(()=>{e.appendChild(r),W(e),Ke()})}});te();var k={dragging:null,selected:new Map,placeholder:null};function it(e){let n=0;for(let t of e.children){if(t.classList.contains("nojs-drop-placeholder"))continue;(t.style||{}).display==="contents"?n+=it(t):n++}return n}function Pt(){if(typeof document>"u"||document.querySelector("style[data-nojs-dnd]"))return;let e=`
28
28
  .nojs-dragging {
29
29
  opacity: 0.5;
30
30
  cursor: grabbing !important;
@@ -63,5 +63,5 @@ var Xe=Object.defineProperty;var or=Object.getOwnPropertyDescriptor;var sr=Objec
63
63
  .nojs-drag-list-empty {
64
64
  min-height: 3rem;
65
65
  }
66
- `.trim(),n=document.createElement("style");n.setAttribute("data-nojs-dnd",""),n.textContent=e,document.head.appendChild(n)}function Ke(e,n,r,t){let i=[...e.children].filter(o=>!o.classList.contains("nojs-drop-placeholder"));if(i.length===0)return 0;for(let o=0;o<i.length;o++){let a=(i[o].style&&i[o].style.display==="contents"&&i[o].firstElementChild||i[o]).getBoundingClientRect();if(t==="horizontal"){let l=a.left+a.width/2;if(n<l)return o}else if(t==="grid"){let l=a.left+a.width/2,u=a.top+a.height/2;if(r<u&&n<l||r<a.top+a.height&&n<l)return o}else{let l=a.top+a.height/2;if(r<l)return o}}return i.length}function nr(e,n,r,t){pe();let i;if(r==="auto"){if(i=document.createElement("div"),i.className=t||"nojs-drop-placeholder",S.dragging&&S.dragging.sourceEl){let a=(S.dragging.sourceEl.firstElementChild||S.dragging.sourceEl).getBoundingClientRect();a.height>0&&(i.style.height=a.height+"px"),a.width>0&&(i.style.width=a.width+"px")}}else{let s=document.getElementById(r.startsWith("#")?r.slice(1):r);s&&s.content?(i=document.createElement("div"),i.style.display="contents",i.className=t||"nojs-drop-placeholder",i.appendChild(s.content.cloneNode(!0))):(i=document.createElement("div"),i.className=t||"nojs-drop-placeholder")}i.classList.add("nojs-drop-placeholder");let o=[...e.children].filter(s=>!s.classList.contains("nojs-drop-placeholder"));n>=o.length?e.appendChild(i):e.insertBefore(i,o[n]),S.placeholder=i}function pe(){S.placeholder&&(S.placeholder.remove(),S.placeholder=null)}function Ie(e,n){return!n||n==="*"?!0:n.split(",").map(t=>t.trim()).includes(e)}function qr(e,n){let r=document.createElement("div");r.style.cssText="position:fixed;top:-9999px;left:-9999px;pointer-events:none;z-index:99999;";let t=e.style&&e.style.display==="contents"&&e.firstElementChild||e,i=t.getBoundingClientRect(),o=i.width,s=i.height,a=getComputedStyle(t),l=Math.min(n,3);for(let d=l-1;d>=0;d--){let p=document.createElement("div"),_=d*4;p.style.cssText="position:absolute;top:"+_+"px;left:"+_+"px;width:"+o+"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?(p.innerHTML=t.innerHTML,p.style.background=a.backgroundColor||"#fff",p.style.border=a.border,p.style.padding=a.padding,p.style.fontSize=a.fontSize,p.style.color=a.color,p.style.fontFamily=a.fontFamily):(p.style.background=a.backgroundColor||"#fff",p.style.border=a.border||"1px solid #ddd"),r.appendChild(p)}let u=document.createElement("div");return u.textContent=n,u.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);",r.appendChild(u),r.style.width=o+(l-1)*4+"px",r.style.height=s+(l-1)*4+"px",r}j("drag",{priority:15,init(e,n,r){yt();let t=M(e),i=e.getAttribute("drag-type")||"default",o=e.getAttribute("drag-effect")||"move",s=e.getAttribute("drag-handle"),a=e.getAttribute("drag-image"),l=e.getAttribute("drag-image-offset")||"0,0",u=e.getAttribute("drag-disabled"),d=e.getAttribute("drag-class")||"nojs-dragging",p=e.getAttribute("drag-ghost-class");e.draggable=!0,e.setAttribute("aria-grabbed","false"),e.getAttribute("tabindex")||e.setAttribute("tabindex","0");let _=!0;if(s){let g=E=>{_=!!E.target.closest(s)};e.addEventListener("mousedown",g),q(()=>e.removeEventListener("mousedown",g))}let f=g=>{if(s&&!_){g.preventDefault();return}if(u&&I(u,t)){g.preventDefault();return}let E=I(r,t),L=e.getAttribute("drag-group"),w=E;if(L&&S.selected.has(L)){let x=S.selected.get(L);x.size>0&&[...x].some(b=>b.el===e)&&(w=[...x].map(b=>b.item))}if(S.dragging={item:w,type:i,effect:o,sourceEl:e,sourceCtx:t,sourceList:null,sourceIndex:null,listDirective:null},g.dataTransfer){if(g.dataTransfer.effectAllowed=o,g.dataTransfer.setData("text/plain",""),Array.isArray(w)&&w.length>1&&g.dataTransfer.setDragImage){let x=qr(e,w.length);document.body.appendChild(x);let A=e.getBoundingClientRect();g.dataTransfer.setDragImage(x,A.width/2,A.height/2),requestAnimationFrame(()=>x.remove())}else if(a&&g.dataTransfer.setDragImage)if(a==="none"){let x=document.createElement("div");x.style.cssText="width:1px;height:1px;opacity:0;position:fixed;top:-999px",document.body.appendChild(x);let[A,b]=l.split(",").map(Number);g.dataTransfer.setDragImage(x,A||0,b||0),requestAnimationFrame(()=>x.remove())}else{let x=e.querySelector(a);if(x){let[A,b]=l.split(",").map(Number);p&&x.classList.add(p),g.dataTransfer.setDragImage(x,A||0,b||0)}}}if(d.split(/\s+/).filter(Boolean).forEach(x=>e.classList.add(x)),Array.isArray(w)&&L&&S.selected.has(L))for(let x of S.selected.get(L))x.el!==e&&d.split(/\s+/).filter(Boolean).forEach(A=>x.el.classList.add(A));e.setAttribute("aria-grabbed","true"),e.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:w,index:S.dragging.sourceIndex,el:e}}))},v=()=>{d.split(/\s+/).filter(Boolean).forEach(E=>e.classList.remove(E));let g=e.getAttribute("drag-group");if(g&&S.selected.has(g))for(let E of S.selected.get(g))d.split(/\s+/).filter(Boolean).forEach(L=>E.el.classList.remove(L));if(e.setAttribute("aria-grabbed","false"),p&&a&&a!=="none"){let E=e.querySelector(a);E&&E.classList.remove(p)}e.dispatchEvent(new CustomEvent("drag-end",{bubbles:!0,detail:{item:S.dragging?.item,index:S.dragging?.sourceIndex,dropped:S.dragging===null}})),S.dragging=null,pe()};if(e.addEventListener("dragstart",f),e.addEventListener("dragend",v),q(()=>{e.removeEventListener("dragstart",f),e.removeEventListener("dragend",v)}),u){let g=function(){let L=!!I(u,t);e.draggable=!L,L?e.removeAttribute("aria-grabbed"):e.setAttribute("aria-grabbed","false")},E=t.$watch(g);q(E)}let y=g=>{if(S.dragging&&!S.dragging.sourceEl.isConnected&&(S.dragging=null),g.key===" "&&!S.dragging){g.preventDefault();let E=I(r,t);S.dragging={item:E,type:i,effect:o,sourceEl:e,sourceCtx:t,sourceList:null,sourceIndex:null,listDirective:null},d.split(/\s+/).filter(Boolean).forEach(L=>e.classList.add(L)),e.setAttribute("aria-grabbed","true"),e.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:E,index:null,el:e}}))}else g.key==="Escape"&&S.dragging&&S.dragging.sourceEl===e&&(g.preventDefault(),d.split(/\s+/).filter(Boolean).forEach(E=>e.classList.remove(E)),e.setAttribute("aria-grabbed","false"),S.dragging=null,pe())};e.addEventListener("keydown",y),q(()=>e.removeEventListener("keydown",y))}});j("drop",{priority:15,init(e,n,r){yt();let t=M(e),i=e.getAttribute("drop-accept")||"default",o=e.getAttribute("drop-effect")||"move",s=e.getAttribute("drop-class")||"nojs-drag-over",a=e.getAttribute("drop-reject-class")||"nojs-drop-reject",l=e.getAttribute("drop-disabled"),u=e.getAttribute("drop-max"),d=e.getAttribute("drop-sort"),p=e.getAttribute("drop-placeholder"),_=e.getAttribute("drop-placeholder-class");e.setAttribute("aria-dropeffect",o);let f=0,v=w=>{if(!S.dragging||l&&I(l,t))return;let x=Ie(S.dragging.type,i),A=!0;if(u){let b=I(u,t),T=We(e);typeof b=="number"&&T>=b&&(A=!1)}if(!x||!A){a.split(/\s+/).filter(Boolean).forEach(b=>e.classList.add(b)),s.split(/\s+/).filter(Boolean).forEach(b=>e.classList.remove(b)),pe();return}if(a.split(/\s+/).filter(Boolean).forEach(b=>e.classList.remove(b)),w.preventDefault(),w.dataTransfer&&(w.dataTransfer.dropEffect=o),d){let b=Ke(e,w.clientX,w.clientY,d);p&&nr(e,b,p,_),e.dispatchEvent(new CustomEvent("drag-over",{bubbles:!1,detail:{item:S.dragging.item,index:b}}))}},y=w=>{if(S.dragging&&!(l&&I(l,t))&&(f++,f===1)){let x=Ie(S.dragging.type,i),A=!0;if(u){let b=I(u,t),T=We(e);typeof b=="number"&&T>=b&&(A=!1)}x&&A?(s.split(/\s+/).filter(Boolean).forEach(b=>e.classList.add(b)),e.dispatchEvent(new CustomEvent("drag-enter",{bubbles:!1,detail:{item:S.dragging.item,type:S.dragging.type}}))):a.split(/\s+/).filter(Boolean).forEach(b=>e.classList.add(b))}},g=w=>{S.dragging&&(f--,f<=0&&(f=0,s.split(/\s+/).filter(Boolean).forEach(x=>e.classList.remove(x)),a.split(/\s+/).filter(Boolean).forEach(x=>e.classList.remove(x)),pe(),e.dispatchEvent(new CustomEvent("drag-leave",{bubbles:!1,detail:{item:S.dragging.item}}))))},E=w=>{if(w.preventDefault(),w.stopPropagation(),f=0,!S.dragging||l&&I(l,t)||!Ie(S.dragging.type,i))return;if(u){let k=I(u,t),c=We(e);if(typeof k=="number"&&c>=k)return}let x=S.dragging.item,A=S.dragging.type,b=S.dragging.effect,T=0;d&&(T=Ke(e,w.clientX,w.clientY,d)),s.split(/\s+/).filter(Boolean).forEach(k=>e.classList.remove(k)),a.split(/\s+/).filter(Boolean).forEach(k=>e.classList.remove(k)),pe();let $={$drag:x,$dragType:A,$dragEffect:b,$dropIndex:T,$source:{list:S.dragging.sourceList,index:S.dragging.sourceIndex,el:S.dragging.sourceEl},$target:{list:null,index:T,el:e},$el:e};se(r,t,$),S.dragging=null,e.dispatchEvent(new CustomEvent("drop",{bubbles:!1,detail:{item:x,index:T,source:$.$source,target:$.$target,effect:b}}))},L=w=>{S.dragging&&(w.key==="Enter"||w.key===" ")&&(w.preventDefault(),E(w))};e.addEventListener("dragover",v),e.addEventListener("dragenter",y),e.addEventListener("dragleave",g),e.addEventListener("drop",E),e.addEventListener("keydown",L),q(()=>{e.removeEventListener("dragover",v),e.removeEventListener("dragenter",y),e.removeEventListener("dragleave",g),e.removeEventListener("drop",E),e.removeEventListener("keydown",L)})}});var rr=new Map;j("drag-list",{priority:10,init(e,n,r){yt();let t=M(e),i=e.getAttribute("template"),o=e.getAttribute("drag-list-key"),s=e.getAttribute("drag-list-item")||"item",a=e.getAttribute("drop-sort")||"vertical",l=e.getAttribute("drag-type")||"__draglist_"+r,u=e.getAttribute("drop-accept")||l,d=e.hasAttribute("drag-list-copy"),p=e.hasAttribute("drag-list-remove"),_=e.getAttribute("drag-disabled"),f=e.getAttribute("drop-disabled"),v=e.getAttribute("drop-max"),y=e.getAttribute("drop-placeholder"),g=e.getAttribute("drop-placeholder-class"),E=e.getAttribute("drag-class")||"nojs-dragging",L=e.getAttribute("drop-class")||"nojs-drag-over",w=e.getAttribute("drop-reject-class")||"nojs-drop-reject",x=e.getAttribute("drop-settle-class")||"nojs-drop-settle",A=e.getAttribute("drop-empty-class")||"nojs-drag-list-empty";e.setAttribute("role","listbox"),e.setAttribute("aria-dropeffect",d?"copy":"move");let b={listPath:r,ctx:t,el:e};rr.set(e,b),q(()=>rr.delete(e));let T=0,$=null;function k(){let O=ce(r,t);if(!Array.isArray(O))return;if(O===$&&O.length>0&&e.children.length>0){for(let U of e.children)U.__ctx&&U.__ctx.$notify&&U.__ctx.$notify();return}$=O;let P=i?document.getElementById(i):null;if(!P)return;V(e),e.innerHTML="";let X=O.length;O.forEach((U,ne)=>{let $e={[s]:U,$index:ne,$count:X,$first:ne===0,$last:ne===X-1,$even:ne%2===0,$odd:ne%2!==0},fe=R($e,t),le=P.content.cloneNode(!0),J=document.createElement("div");J.style.display="contents",J.__ctx=fe,J.setAttribute("role","option"),J.appendChild(le),e.appendChild(J);let ie=J.firstElementChild||J;ie.draggable=!0,ie.setAttribute("aria-grabbed","false"),ie.getAttribute("tabindex")||ie.setAttribute("tabindex","0");let Ne=ae=>{if(_&&I(_,t)){ae.preventDefault();return}S.dragging={item:U,type:l,effect:d?"copy":"move",sourceEl:J,sourceCtx:fe,sourceList:O,sourceIndex:ne,listDirective:{el:e,listPath:r,ctx:t,keyProp:o,copyMode:d,removeMode:p}},ae.dataTransfer&&(ae.dataTransfer.effectAllowed=d?"copy":"move",ae.dataTransfer.setData("text/plain","")),E.split(/\s+/).filter(Boolean).forEach(ue=>ie.classList.add(ue)),ie.setAttribute("aria-grabbed","true"),e.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:U,index:ne,el:ie}}))},Je=()=>{E.split(/\s+/).filter(Boolean).forEach(ae=>ie.classList.remove(ae)),ie.setAttribute("aria-grabbed","false"),S.dragging&&S.dragging.sourceEl===J&&(S.dragging=null),pe()};J.addEventListener("dragstart",Ne),J.addEventListener("dragend",Je),J.addEventListener("keydown",ae=>{if(ae.key===" "&&!S.dragging)ae.preventDefault(),S.dragging={item:U,type:l,effect:d?"copy":"move",sourceEl:J,sourceCtx:fe,sourceList:O,sourceIndex:ne,listDirective:{el:e,listPath:r,ctx:t,keyProp:o,copyMode:d,removeMode:p}},E.split(/\s+/).filter(Boolean).forEach(ue=>ie.classList.add(ue)),ie.setAttribute("aria-grabbed","true");else if(ae.key==="Escape"&&S.dragging&&S.dragging.sourceEl===J)ae.preventDefault(),E.split(/\s+/).filter(Boolean).forEach(ue=>ie.classList.remove(ue)),ie.setAttribute("aria-grabbed","false"),S.dragging=null,pe();else if((ae.key==="ArrowDown"||ae.key==="ArrowRight")&&S.dragging&&S.dragging.sourceEl===J){ae.preventDefault();let ue=J.nextElementSibling;ue&&(ue.firstElementChild||ue).focus()}else if((ae.key==="ArrowUp"||ae.key==="ArrowLeft")&&S.dragging&&S.dragging.sourceEl===J){ae.preventDefault();let ue=J.previousElementSibling;ue&&(ue.firstElementChild||ue).focus()}}),z(J)});let W=O.length===0;A.split(/\s+/).filter(Boolean).forEach(U=>e.classList.toggle(U,W))}let c=O=>{if(!S.dragging||f&&I(f,t))return;let P=Ie(S.dragging.type,u),X=!0;if(v){let U=I(v,t),ne=ce(r,t);typeof U=="number"&&Array.isArray(ne)&&ne.length>=U&&(X=!1)}if(!P||!X){w.split(/\s+/).filter(Boolean).forEach(U=>e.classList.add(U)),L.split(/\s+/).filter(Boolean).forEach(U=>e.classList.remove(U)),pe();return}w.split(/\s+/).filter(Boolean).forEach(U=>e.classList.remove(U)),O.preventDefault(),O.dataTransfer&&(O.dataTransfer.dropEffect=d?"copy":"move");let W=Ke(e,O.clientX,O.clientY,a);y&&nr(e,W,y,g)},m=O=>{if(S.dragging&&!(f&&I(f,t))&&(T++,T===1)){let P=Ie(S.dragging.type,u),X=!0;if(v){let W=I(v,t),U=ce(r,t);typeof W=="number"&&Array.isArray(U)&&U.length>=W&&(X=!1)}P&&X?(L.split(/\s+/).filter(Boolean).forEach(W=>e.classList.add(W)),e.dispatchEvent(new CustomEvent("drag-enter",{bubbles:!1,detail:{item:S.dragging.item,type:S.dragging.type}}))):w.split(/\s+/).filter(Boolean).forEach(W=>e.classList.add(W))}},h=()=>{S.dragging&&(T--,T<=0&&(T=0,L.split(/\s+/).filter(Boolean).forEach(O=>e.classList.remove(O)),w.split(/\s+/).filter(Boolean).forEach(O=>e.classList.remove(O)),pe(),e.dispatchEvent(new CustomEvent("drag-leave",{bubbles:!1,detail:{item:S.dragging?.item}}))))},D=O=>{if(O.preventDefault(),O.stopPropagation(),T=0,!S.dragging||f&&I(f,t)||!Ie(S.dragging.type,u))return;if(v){let le=I(v,t),J=ce(r,t);if(typeof le=="number"&&Array.isArray(J)&&J.length>=le)return}let P=S.dragging.item,X=S.dragging.listDirective,W=S.dragging.sourceIndex,U=Ke(e,O.clientX,O.clientY,a);L.split(/\s+/).filter(Boolean).forEach(le=>e.classList.remove(le)),w.split(/\s+/).filter(Boolean).forEach(le=>e.classList.remove(le)),pe();let ne=ce(r,t);if(!Array.isArray(ne))return;let $e=X&&X.el===e;if($e&&W===U){S.dragging=null;return}if($e&&W+1===U){S.dragging=null;return}let fe=[...ne];if($e){let[le]=fe.splice(W,1),J=W<U?U-1:U;fe.splice(J,0,le),t.$set(r,fe),e.dispatchEvent(new CustomEvent("reorder",{bubbles:!0,detail:{list:fe,item:P,from:W,to:J}}))}else{let le=d&&typeof P=="object"?{...P}:P;if(fe.splice(U,0,le),t.$set(r,fe),X&&!X.copyMode&&(p||X.removeMode)){let J=ce(X.listPath,X.ctx);if(Array.isArray(J)&&W!=null){let ie=J.filter((Ne,Je)=>Je!==W);X.ctx.$set(X.listPath,ie),X.el.dispatchEvent(new CustomEvent("remove",{bubbles:!0,detail:{list:ie,item:P,index:W}}))}}e.dispatchEvent(new CustomEvent("receive",{bubbles:!0,detail:{list:fe,item:P,from:W,fromList:X?ce(X.listPath,X.ctx):null}}))}requestAnimationFrame(()=>{let J=[...e.children][$e&&W<U?U-1:U];if(J){let ie=J.firstElementChild||J;x.split(/\s+/).filter(Boolean).forEach(Ne=>ie.classList.add(Ne)),ie.addEventListener("animationend",()=>{x.split(/\s+/).filter(Boolean).forEach(Ne=>ie.classList.remove(Ne))},{once:!0})}}),S.dragging=null},N=O=>{if(S.dragging&&Ie(S.dragging.type,u)&&(O.key==="Enter"||O.key===" ")){O.preventDefault();let P=e.querySelector(":focus");if(P){let W=(P.style?.display==="contents"&&P.firstElementChild||P).getBoundingClientRect(),U={preventDefault(){},stopPropagation(){},clientX:W.left+W.width/2,clientY:W.top+W.height+1,dataTransfer:null};D(U)}}};e.addEventListener("dragover",c),e.addEventListener("dragenter",m),e.addEventListener("dragleave",h),e.addEventListener("drop",D),e.addEventListener("keydown",N),q(()=>{e.removeEventListener("dragover",c),e.removeEventListener("dragenter",m),e.removeEventListener("dragleave",h),e.removeEventListener("drop",D),e.removeEventListener("keydown",N)});let B=t.$watch(k);q(B),k()}});j("drag-multiple",{priority:16,init(e,n){let r=M(e),t=e.getAttribute("drag-group"),i=e.getAttribute("drag-multiple-class")||"nojs-selected";if(!t){K("drag-multiple requires drag-group attribute");return}S.selected.has(t)||S.selected.set(t,new Set);let o=S.selected.get(t),s=l=>{let u=e.getAttribute("drag"),p={item:u?I(u,r):null,el:e,ctx:r};if(l.ctrlKey||l.metaKey){let _=[...o].find(f=>f.el===e);_?(o.delete(_),i.split(/\s+/).filter(Boolean).forEach(f=>e.classList.remove(f))):(o.add(p),i.split(/\s+/).filter(Boolean).forEach(f=>e.classList.add(f)))}else{for(let _ of o)i.split(/\s+/).filter(Boolean).forEach(f=>_.el.classList.remove(f));o.clear(),o.add(p),i.split(/\s+/).filter(Boolean).forEach(_=>e.classList.add(_))}};e.addEventListener("click",s),q(()=>{e.removeEventListener("click",s);let l=[...o].find(u=>u.el===e);l&&o.delete(l)});let a=l=>{if(l.key==="Escape"){for(let u of o)i.split(/\s+/).filter(Boolean).forEach(d=>u.el.classList.remove(d));o.clear()}};window.addEventListener("keydown",a),q(()=>window.removeEventListener("keydown",a))}});function Wr(e){let n=(C.router.base||"/").replace(/\/$/,"");if(!n)return e||"/";let r=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp("^"+r),"")||"/"}function Kr(){return typeof window>"u"?null:(C.router||{}).useHash?window.location.hash.slice(1)||"/":Wr(window.location.pathname)}var Ve={get baseApiUrl(){return C.baseApiUrl},set baseApiUrl(e){C.baseApiUrl=e},get locale(){return Y.locale},set locale(e){Y.locale=e},config(e={}){let n={...C.headers},r={...C.cache},t={...C.templates},i={...C.router},o={...C.i18n};if("csp"in e&&(K("csp config option removed \u2014 No.JS is now CSP-safe by default"),delete e.csp),e.exprCacheSize!==void 0){let s=parseInt(e.exprCacheSize);e.exprCacheSize=Number.isFinite(s)&&s>0?s:500}if(Object.assign(C,e),e.sanitize===!1&&K("sanitize:false is deprecated \u2014 use dangerouslyDisableSanitize:true to make the risk explicit."),e.headers&&(C.headers={...n,...e.headers}),e.csrf&&(C.csrf=e.csrf),e.cache&&(C.cache={...r,...e.cache}),e.templates&&(C.templates={...t,...e.templates}),e.router&&("mode"in e.router&&!("useHash"in e.router)&&(te('router.mode is deprecated. Use router.useHash instead: mode: "hash" \u2192 useHash: true, mode: "history" \u2192 useHash: false',"warn"),e.router.useHash=e.router.mode==="hash",delete e.router.mode),C.router={...i,...e.router}),e.i18n&&(C.i18n={...o,...e.i18n},Y.locale=e.i18n.defaultLocale||Y.locale),e.stores){for(let[s,a]of Object.entries(e.stores))G[s]||(G[s]=R(a||{}),oe("store:created",{name:s,keys:Object.keys(a||{})}));delete C.stores}},async init(e){if(typeof document>"u"||Ve._initialized)return;if(Ve._initialized=!0,e=e||document.body,te("Initializing..."),C.i18n.loadPath){let r=new Set([Y.locale,C.i18n.fallbackLocale]);await Promise.all([...r].map(t=>Ge(t)))}Ue(e);let n=Kr();await Wt(n),document.querySelector("[route-view]")&&_t(Zt()),z(e),Z&&await Z.init(),te("Initialized."),Kt(),Ot(Ve)},directive(e,n){j(e,n)},filter(e,n){F[e]=n},validator(e,n){he[e]=n},i18n(e){if(e.loadPath!=null&&(C.i18n.loadPath=e.loadPath),e.ns&&(C.i18n.ns=e.ns),e.cache!=null&&(C.i18n.cache=e.cache),e.persist!=null&&(C.i18n.persist=e.persist),e.locales&&(Y.locales=e.locales),e.fallbackLocale&&(C.i18n.fallbackLocale=e.fallbackLocale),e.defaultLocale&&(Y._locale=e.defaultLocale),C.i18n.persist&&typeof localStorage<"u")try{let n=localStorage.getItem("nojs-locale");if(n){Y._locale=n;return}}catch{}if(e.detectBrowser){let n=typeof navigator<"u"?navigator.language:"en",r=n.split("-")[0];Y.locales[n]?Y._locale=n:Y.locales[r]&&(Y._locale=r)}},on(e,n){return ge[e]||(ge[e]=[]),ge[e].length>=C.maxEventListeners&&K('MaxListenersExceeded: event "'+e+'" has '+ge[e].length+" listeners (max "+C.maxEventListeners+"). Possible memory leak."),ge[e].push(n),()=>{ge[e]=ge[e].filter(r=>r!==n)}},interceptor(e,n){Oe[e]&&Oe[e].push(n)},get store(){return G},notify(){Ee()},get router(){return Z},createContext:R,evaluate:I,findContext:M,processTree:z,resolve:ce,version:"1.10.1"},Vr=Ve;
66
+ `.trim(),n=document.createElement("style");n.setAttribute("data-nojs-dnd",""),n.textContent=e,document.head.appendChild(n)}function ot(e,n,t,r){let i=[...e.children].filter(o=>!o.classList.contains("nojs-drop-placeholder"));if(i.length===0)return 0;for(let o=0;o<i.length;o++){let a=(i[o].style&&i[o].style.display==="contents"&&i[o].firstElementChild||i[o]).getBoundingClientRect();if(r==="horizontal"){let c=a.left+a.width/2;if(n<c)return o}else if(r==="grid"){let c=a.left+a.width/2,u=a.top+a.height/2;if(t<u&&n<c||t<a.top+a.height&&n<c)return o}else{let c=a.top+a.height/2;if(t<c)return o}}return i.length}function Ir(e,n,t,r){ge();let i;if(t==="auto"){if(i=document.createElement("div"),i.className=r||"nojs-drop-placeholder",k.dragging&&k.dragging.sourceEl){let a=(k.dragging.sourceEl.firstElementChild||k.dragging.sourceEl).getBoundingClientRect();a.height>0&&(i.style.height=a.height+"px"),a.width>0&&(i.style.width=a.width+"px")}}else{let s=document.getElementById(t.startsWith("#")?t.slice(1):t);s&&s.content?(i=document.createElement("div"),i.style.display="contents",i.className=r||"nojs-drop-placeholder",i.appendChild(s.content.cloneNode(!0))):(i=document.createElement("div"),i.className=r||"nojs-drop-placeholder")}i.classList.add("nojs-drop-placeholder");let o=[...e.children].filter(s=>!s.classList.contains("nojs-drop-placeholder"));n>=o.length?e.appendChild(i):e.insertBefore(i,o[n]),k.placeholder=i}function ge(){k.placeholder&&(k.placeholder.remove(),k.placeholder=null)}function He(e,n){return!n||n==="*"?!0:n.split(",").map(r=>r.trim()).includes(e)}function En(e,n){let t=document.createElement("div");t.style.cssText="position:fixed;top:-9999px;left:-9999px;pointer-events:none;z-index:99999;";let r=e.style&&e.style.display==="contents"&&e.firstElementChild||e,i=r.getBoundingClientRect(),o=i.width,s=i.height,a=getComputedStyle(r),c=Math.min(n,3);for(let d=c-1;d>=0;d--){let f=document.createElement("div"),x=d*4;f.style.cssText="position:absolute;top:"+x+"px;left:"+x+"px;width:"+o+"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=r.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"),t.appendChild(f)}let u=document.createElement("div");return u.textContent=n,u.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);",t.appendChild(u),t.style.width=o+(c-1)*4+"px",t.style.height=s+(c-1)*4+"px",t}R("drag",{priority:15,init(e,n,t){Pt();let r=H(e),i=e.getAttribute("drag-type")||"default",o=e.getAttribute("drag-effect")||"move",s=e.getAttribute("drag-handle"),a=e.getAttribute("drag-image"),c=e.getAttribute("drag-image-offset")||"0,0",u=e.getAttribute("drag-disabled"),d=e.getAttribute("drag-class")||"nojs-dragging",f=e.getAttribute("drag-ghost-class");e.draggable=!0,e.setAttribute("aria-grabbed","false"),e.getAttribute("tabindex")||e.setAttribute("tabindex","0");let x=!0;if(s){let h=m=>{x=!!m.target.closest(s)};e.addEventListener("mousedown",h),j(()=>e.removeEventListener("mousedown",h))}let v=h=>{if(s&&!x){h.preventDefault();return}if(u&&I(u,r)){h.preventDefault();return}let m=I(t,r),_=e.getAttribute("drag-group"),b=m;if(_&&k.selected.has(_)){let y=k.selected.get(_);y.size>0&&[...y].some(L=>L.el===e)&&(b=[...y].map(L=>L.item))}if(k.dragging={item:b,type:i,effect:o,sourceEl:e,sourceCtx:r,sourceList:null,sourceIndex:null,listDirective:null},h.dataTransfer){if(h.dataTransfer.effectAllowed=o,h.dataTransfer.setData("text/plain",""),Array.isArray(b)&&b.length>1&&h.dataTransfer.setDragImage){let y=En(e,b.length);document.body.appendChild(y);let T=e.getBoundingClientRect();h.dataTransfer.setDragImage(y,T.width/2,T.height/2),requestAnimationFrame(()=>y.remove())}else if(a&&h.dataTransfer.setDragImage)if(a==="none"){let y=document.createElement("div");y.style.cssText="width:1px;height:1px;opacity:0;position:fixed;top:-999px",document.body.appendChild(y);let[T,L]=c.split(",").map(Number);h.dataTransfer.setDragImage(y,T||0,L||0),requestAnimationFrame(()=>y.remove())}else{let y=e.querySelector(a);if(y){let[T,L]=c.split(",").map(Number);f&&y.classList.add(f),h.dataTransfer.setDragImage(y,T||0,L||0)}}}if(d.split(/\s+/).filter(Boolean).forEach(y=>e.classList.add(y)),Array.isArray(b)&&_&&k.selected.has(_))for(let y of k.selected.get(_))y.el!==e&&d.split(/\s+/).filter(Boolean).forEach(T=>y.el.classList.add(T));e.setAttribute("aria-grabbed","true"),e.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:b,index:k.dragging.sourceIndex,el:e}}))},A=()=>{d.split(/\s+/).filter(Boolean).forEach(m=>e.classList.remove(m));let h=e.getAttribute("drag-group");if(h&&k.selected.has(h))for(let m of k.selected.get(h))d.split(/\s+/).filter(Boolean).forEach(_=>m.el.classList.remove(_));if(e.setAttribute("aria-grabbed","false"),f&&a&&a!=="none"){let m=e.querySelector(a);m&&m.classList.remove(f)}e.dispatchEvent(new CustomEvent("drag-end",{bubbles:!0,detail:{item:k.dragging?.item,index:k.dragging?.sourceIndex,dropped:k.dragging===null}})),k.dragging=null,ge()};if(e.addEventListener("dragstart",v),e.addEventListener("dragend",A),j(()=>{e.removeEventListener("dragstart",v),e.removeEventListener("dragend",A)}),u){let h=function(){let _=!!I(u,r);e.draggable=!_,_?e.removeAttribute("aria-grabbed"):e.setAttribute("aria-grabbed","false")},m=r.$watch(h);j(m)}let w=h=>{if(k.dragging&&!k.dragging.sourceEl.isConnected&&(k.dragging=null),h.key===" "&&!k.dragging){h.preventDefault();let m=I(t,r);k.dragging={item:m,type:i,effect:o,sourceEl:e,sourceCtx:r,sourceList:null,sourceIndex:null,listDirective:null},d.split(/\s+/).filter(Boolean).forEach(_=>e.classList.add(_)),e.setAttribute("aria-grabbed","true"),e.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:m,index:null,el:e}}))}else h.key==="Escape"&&k.dragging&&k.dragging.sourceEl===e&&(h.preventDefault(),d.split(/\s+/).filter(Boolean).forEach(m=>e.classList.remove(m)),e.setAttribute("aria-grabbed","false"),k.dragging=null,ge())};e.addEventListener("keydown",w),j(()=>e.removeEventListener("keydown",w))}});R("drop",{priority:15,init(e,n,t){Pt();let r=H(e),i=e.getAttribute("drop-accept")||"default",o=e.getAttribute("drop-effect")||"move",s=e.getAttribute("drop-class")||"nojs-drag-over",a=e.getAttribute("drop-reject-class")||"nojs-drop-reject",c=e.getAttribute("drop-disabled"),u=e.getAttribute("drop-max"),d=e.getAttribute("drop-sort"),f=e.getAttribute("drop-placeholder"),x=e.getAttribute("drop-placeholder-class");e.setAttribute("aria-dropeffect",o);let v=0,A=b=>{if(!k.dragging||c&&I(c,r))return;let y=He(k.dragging.type,i),T=!0;if(u){let L=I(u,r),E=it(e);typeof L=="number"&&E>=L&&(T=!1)}if(!y||!T){a.split(/\s+/).filter(Boolean).forEach(L=>e.classList.add(L)),s.split(/\s+/).filter(Boolean).forEach(L=>e.classList.remove(L)),ge();return}if(a.split(/\s+/).filter(Boolean).forEach(L=>e.classList.remove(L)),b.preventDefault(),b.dataTransfer&&(b.dataTransfer.dropEffect=o),d){let L=ot(e,b.clientX,b.clientY,d);f&&Ir(e,L,f,x),e.dispatchEvent(new CustomEvent("drag-over",{bubbles:!1,detail:{item:k.dragging.item,index:L}}))}},w=b=>{if(k.dragging&&!(c&&I(c,r))&&(v++,v===1)){let y=He(k.dragging.type,i),T=!0;if(u){let L=I(u,r),E=it(e);typeof L=="number"&&E>=L&&(T=!1)}y&&T?(s.split(/\s+/).filter(Boolean).forEach(L=>e.classList.add(L)),e.dispatchEvent(new CustomEvent("drag-enter",{bubbles:!1,detail:{item:k.dragging.item,type:k.dragging.type}}))):a.split(/\s+/).filter(Boolean).forEach(L=>e.classList.add(L))}},h=b=>{k.dragging&&(v--,v<=0&&(v=0,s.split(/\s+/).filter(Boolean).forEach(y=>e.classList.remove(y)),a.split(/\s+/).filter(Boolean).forEach(y=>e.classList.remove(y)),ge(),e.dispatchEvent(new CustomEvent("drag-leave",{bubbles:!1,detail:{item:k.dragging.item}}))))},m=b=>{if(b.preventDefault(),b.stopPropagation(),v=0,!k.dragging||c&&I(c,r)||!He(k.dragging.type,i))return;if(u){let S=I(u,r),l=it(e);if(typeof S=="number"&&l>=S)return}let y=k.dragging.item,T=k.dragging.type,L=k.dragging.effect,E=0;d&&(E=ot(e,b.clientX,b.clientY,d)),s.split(/\s+/).filter(Boolean).forEach(S=>e.classList.remove(S)),a.split(/\s+/).filter(Boolean).forEach(S=>e.classList.remove(S)),ge();let N={$drag:y,$dragType:T,$dragEffect:L,$dropIndex:E,$source:{list:k.dragging.sourceList,index:k.dragging.sourceIndex,el:k.dragging.sourceEl},$target:{list:null,index:E,el:e},$el:e};se(t,r,N),k.dragging=null,e.dispatchEvent(new CustomEvent("drop",{bubbles:!1,detail:{item:y,index:E,source:N.$source,target:N.$target,effect:L}}))},_=b=>{k.dragging&&(b.key==="Enter"||b.key===" ")&&(b.preventDefault(),m(b))};e.addEventListener("dragover",A),e.addEventListener("dragenter",w),e.addEventListener("dragleave",h),e.addEventListener("drop",m),e.addEventListener("keydown",_),j(()=>{e.removeEventListener("dragover",A),e.removeEventListener("dragenter",w),e.removeEventListener("dragleave",h),e.removeEventListener("drop",m),e.removeEventListener("keydown",_)})}});var kr=new Map;R("drag-list",{priority:10,init(e,n,t){Pt();let r=H(e),i=e.getAttribute("template"),o=e.getAttribute("drag-list-key"),s=e.getAttribute("drag-list-item")||"item",a=e.getAttribute("drop-sort")||"vertical",c=e.getAttribute("drag-type")||"__draglist_"+t,u=e.getAttribute("drop-accept")||c,d=e.hasAttribute("drag-list-copy"),f=e.hasAttribute("drag-list-remove"),x=e.getAttribute("drag-disabled"),v=e.getAttribute("drop-disabled"),A=e.getAttribute("drop-max"),w=e.getAttribute("drop-placeholder"),h=e.getAttribute("drop-placeholder-class"),m=e.getAttribute("drag-class")||"nojs-dragging",_=e.getAttribute("drop-class")||"nojs-drag-over",b=e.getAttribute("drop-reject-class")||"nojs-drop-reject",y=e.getAttribute("drop-settle-class")||"nojs-drop-settle",T=e.getAttribute("drop-empty-class")||"nojs-drag-list-empty";e.setAttribute("role","listbox"),e.setAttribute("aria-dropeffect",d?"copy":"move");let L={listPath:t,ctx:r,el:e};kr.set(e,L),j(()=>kr.delete(e));let E=0,N=null;function S(){let $=le(t,r);if(!Array.isArray($))return;if($===N&&$.length>0&&e.children.length>0){for(let V of e.children)V.__ctx&&V.__ctx.$notify&&V.__ctx.$notify();return}N=$;let M=i?document.getElementById(i):null;if(!M)return;q(e),e.innerHTML="";let X=$.length;$.forEach((V,ne)=>{let Me={[s]:V,$index:ne,$count:X,$first:ne===0,$last:ne===X-1,$even:ne%2===0,$odd:ne%2!==0},me=B(Me,r),ue=M.content.cloneNode(!0),z=document.createElement("div");z.style.display="contents",z.__ctx=me,z.setAttribute("role","option"),z.appendChild(ue),e.appendChild(z);let ie=z.firstElementChild||z;ie.draggable=!0,ie.setAttribute("aria-grabbed","false"),ie.getAttribute("tabindex")||ie.setAttribute("tabindex","0");let Ne=ae=>{if(x&&I(x,r)){ae.preventDefault();return}k.dragging={item:V,type:c,effect:d?"copy":"move",sourceEl:z,sourceCtx:me,sourceList:$,sourceIndex:ne,listDirective:{el:e,listPath:t,ctx:r,keyProp:o,copyMode:d,removeMode:f}},ae.dataTransfer&&(ae.dataTransfer.effectAllowed=d?"copy":"move",ae.dataTransfer.setData("text/plain","")),m.split(/\s+/).filter(Boolean).forEach(de=>ie.classList.add(de)),ie.setAttribute("aria-grabbed","true"),e.dispatchEvent(new CustomEvent("drag-start",{bubbles:!0,detail:{item:V,index:ne,el:ie}}))},Ge=()=>{m.split(/\s+/).filter(Boolean).forEach(ae=>ie.classList.remove(ae)),ie.setAttribute("aria-grabbed","false"),k.dragging&&k.dragging.sourceEl===z&&(k.dragging=null),ge()};z.addEventListener("dragstart",Ne),z.addEventListener("dragend",Ge);let Dt=ae=>{if(ae.key===" "&&!k.dragging)ae.preventDefault(),k.dragging={item:V,type:c,effect:d?"copy":"move",sourceEl:z,sourceCtx:me,sourceList:$,sourceIndex:ne,listDirective:{el:e,listPath:t,ctx:r,keyProp:o,copyMode:d,removeMode:f}},m.split(/\s+/).filter(Boolean).forEach(de=>ie.classList.add(de)),ie.setAttribute("aria-grabbed","true");else if(ae.key==="Escape"&&k.dragging&&k.dragging.sourceEl===z)ae.preventDefault(),m.split(/\s+/).filter(Boolean).forEach(de=>ie.classList.remove(de)),ie.setAttribute("aria-grabbed","false"),k.dragging=null,ge();else if((ae.key==="ArrowDown"||ae.key==="ArrowRight")&&k.dragging&&k.dragging.sourceEl===z){ae.preventDefault();let de=z.nextElementSibling;de&&(de.firstElementChild||de).focus()}else if((ae.key==="ArrowUp"||ae.key==="ArrowLeft")&&k.dragging&&k.dragging.sourceEl===z){ae.preventDefault();let de=z.previousElementSibling;de&&(de.firstElementChild||de).focus()}};z.addEventListener("keydown",Dt),z.__disposers=z.__disposers||[],z.__disposers.push(()=>z.removeEventListener("dragstart",Ne),()=>z.removeEventListener("dragend",Ge),()=>z.removeEventListener("keydown",Dt)),W(z)});let J=$.length===0;T.split(/\s+/).filter(Boolean).forEach(V=>e.classList.toggle(V,J))}let l=$=>{if(!k.dragging||v&&I(v,r))return;let M=He(k.dragging.type,u),X=!0;if(A){let V=I(A,r),ne=le(t,r);typeof V=="number"&&Array.isArray(ne)&&ne.length>=V&&(X=!1)}if(!M||!X){b.split(/\s+/).filter(Boolean).forEach(V=>e.classList.add(V)),_.split(/\s+/).filter(Boolean).forEach(V=>e.classList.remove(V)),ge();return}b.split(/\s+/).filter(Boolean).forEach(V=>e.classList.remove(V)),$.preventDefault(),$.dataTransfer&&($.dataTransfer.dropEffect=d?"copy":"move");let J=ot(e,$.clientX,$.clientY,a);w&&Ir(e,J,w,h)},g=$=>{if(k.dragging&&!(v&&I(v,r))&&(E++,E===1)){let M=He(k.dragging.type,u),X=!0;if(A){let J=I(A,r),V=le(t,r);typeof J=="number"&&Array.isArray(V)&&V.length>=J&&(X=!1)}M&&X?(_.split(/\s+/).filter(Boolean).forEach(J=>e.classList.add(J)),e.dispatchEvent(new CustomEvent("drag-enter",{bubbles:!1,detail:{item:k.dragging.item,type:k.dragging.type}}))):b.split(/\s+/).filter(Boolean).forEach(J=>e.classList.add(J))}},p=()=>{k.dragging&&(E--,E<=0&&(E=0,_.split(/\s+/).filter(Boolean).forEach($=>e.classList.remove($)),b.split(/\s+/).filter(Boolean).forEach($=>e.classList.remove($)),ge(),e.dispatchEvent(new CustomEvent("drag-leave",{bubbles:!1,detail:{item:k.dragging?.item}}))))},P=$=>{if($.preventDefault(),$.stopPropagation(),E=0,!k.dragging||v&&I(v,r)||!He(k.dragging.type,u))return;if(A){let ue=I(A,r),z=le(t,r);if(typeof ue=="number"&&Array.isArray(z)&&z.length>=ue)return}let M=k.dragging.item,X=k.dragging.listDirective,J=k.dragging.sourceIndex,V=ot(e,$.clientX,$.clientY,a);_.split(/\s+/).filter(Boolean).forEach(ue=>e.classList.remove(ue)),b.split(/\s+/).filter(Boolean).forEach(ue=>e.classList.remove(ue)),ge();let ne=le(t,r);if(!Array.isArray(ne))return;let Me=X&&X.el===e;if(Me&&J===V){k.dragging=null;return}if(Me&&J+1===V){k.dragging=null;return}let me=[...ne];if(Me){let[ue]=me.splice(J,1),z=J<V?V-1:V;me.splice(z,0,ue),r.$set(t,me),e.dispatchEvent(new CustomEvent("reorder",{bubbles:!0,detail:{list:me,item:M,from:J,to:z}}))}else{let ue=d&&typeof M=="object"?{...M}:M;if(me.splice(V,0,ue),r.$set(t,me),X&&!X.copyMode&&(f||X.removeMode)){let z=le(X.listPath,X.ctx);if(Array.isArray(z)&&J!=null){let ie=z.filter((Ne,Ge)=>Ge!==J);X.ctx.$set(X.listPath,ie),X.el.dispatchEvent(new CustomEvent("remove",{bubbles:!0,detail:{list:ie,item:M,index:J}}))}}e.dispatchEvent(new CustomEvent("receive",{bubbles:!0,detail:{list:me,item:M,from:J,fromList:X?le(X.listPath,X.ctx):null}}))}requestAnimationFrame(()=>{let z=[...e.children][Me&&J<V?V-1:V];if(z){let ie=z.firstElementChild||z;y.split(/\s+/).filter(Boolean).forEach(Ne=>ie.classList.add(Ne)),ie.addEventListener("animationend",()=>{y.split(/\s+/).filter(Boolean).forEach(Ne=>ie.classList.remove(Ne))},{once:!0})}}),k.dragging=null},O=$=>{if(k.dragging&&He(k.dragging.type,u)&&($.key==="Enter"||$.key===" ")){$.preventDefault();let M=e.querySelector(":focus");if(M){let J=(M.style?.display==="contents"&&M.firstElementChild||M).getBoundingClientRect(),V={preventDefault(){},stopPropagation(){},clientX:J.left+J.width/2,clientY:J.top+J.height+1,dataTransfer:null};P(V)}}};e.addEventListener("dragover",l),e.addEventListener("dragenter",g),e.addEventListener("dragleave",p),e.addEventListener("drop",P),e.addEventListener("keydown",O),j(()=>{e.removeEventListener("dragover",l),e.removeEventListener("dragenter",g),e.removeEventListener("dragleave",p),e.removeEventListener("drop",P),e.removeEventListener("keydown",O)});let K=r.$watch(S);j(K),S()}});R("drag-multiple",{priority:16,init(e,n){let t=H(e),r=e.getAttribute("drag-group"),i=e.getAttribute("drag-multiple-class")||"nojs-selected";if(!r){D("drag-multiple requires drag-group attribute");return}k.selected.has(r)||k.selected.set(r,new Set);let o=k.selected.get(r),s=c=>{let u=e.getAttribute("drag"),f={item:u?I(u,t):null,el:e,ctx:t};if(c.ctrlKey||c.metaKey){let x=[...o].find(v=>v.el===e);x?(o.delete(x),i.split(/\s+/).filter(Boolean).forEach(v=>e.classList.remove(v))):(o.add(f),i.split(/\s+/).filter(Boolean).forEach(v=>e.classList.add(v)))}else{for(let x of o)i.split(/\s+/).filter(Boolean).forEach(v=>x.el.classList.remove(v));o.clear(),o.add(f),i.split(/\s+/).filter(Boolean).forEach(x=>e.classList.add(x))}};e.addEventListener("click",s),j(()=>{e.removeEventListener("click",s);let c=[...o].find(u=>u.el===e);c&&o.delete(c)});let a=c=>{if(c.key==="Escape"){for(let u of o)i.split(/\s+/).filter(Boolean).forEach(d=>u.el.classList.remove(d));o.clear()}};window.addEventListener("keydown",a),j(()=>window.removeEventListener("keydown",a))}});te();function wn(e,n){return e.replace(/\{([^}"'{][^}]*)\}/g,(t,r)=>{try{let i=I(r.trim(),n);return i!=null?String(i):""}catch{return""}})}R("page-title",{priority:1,init(e,n,t){let r=H(e);function i(){let o=I(t,r);o!=null&&(document.title=String(o))}G(t,r,i),i()}});R("page-description",{priority:1,init(e,n,t){let r=H(e);function i(){let o=I(t,r);if(o==null)return;let s=document.querySelector('meta[name="description"]');s||(s=document.createElement("meta"),s.name="description",document.head.appendChild(s)),s.content=String(o)}G(t,r,i),i()}});R("page-canonical",{priority:1,init(e,n,t){let r=H(e);function i(){let o=I(t,r);if(o==null)return;let s=document.querySelector('link[rel="canonical"]');s||(s=document.createElement("link"),s.rel="canonical",document.head.appendChild(s)),s.href=String(o)}G(t,r,i),i()}});R("page-jsonld",{priority:1,init(e,n,t){let r=H(e),i=(e.textContent||e.innerHTML).trim();if(!i)return;function o(){let s=wn(i,r);if(!s)return;let a=document.querySelector('script[type="application/ld+json"][data-nojs]');a||(a=document.createElement("script"),a.type="application/ld+json",a.setAttribute("data-nojs",""),document.head.appendChild(a)),a.textContent=s}G(i,r,o),o()}});_r();var Ce=null,xn=new Set(["store","route","router","i18n","refs","form","parent","watch","set","notify","raw","isProxy","listeners","app","config","env","debug","version","plugins","globals","el","event","self","this","super","window","document","toString","valueOf","hasOwnProperty"]),An=typeof window<"u"?new Set([eval,Function,window.eval,window.Function].filter(Boolean)):new Set;function Nr(e){return An.has(e)}function $r(e,n=new Set){if(!(!e||typeof e!="object"||n.has(e))){n.add(e);for(let t of Object.values(e)){if(Nr(t))throw D("NoJS.global(): value contains a forbidden reference (eval/Function)."),new Error("unsafe_global");t&&typeof t=="object"&&$r(t,n)}}}function Ln(e){let n=(C.router.base||"/").replace(/\/$/,"");if(!n)return e||"/";let t=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");return e.replace(new RegExp("^"+t),"")||"/"}function Sn(){return typeof window>"u"?null:(C.router||{}).useHash?window.location.hash.slice(1)||"/":Ln(window.location.pathname)}var ve={get baseApiUrl(){return C.baseApiUrl},set baseApiUrl(e){C.baseApiUrl=e},get locale(){return Z.locale},set locale(e){Z.locale=e},config(e={}){let n={...C.headers},t={...C.cache},r={...C.templates},i={...C.router},o={...C.i18n};if("csp"in e&&(D("csp config option removed \u2014 No.JS is now CSP-safe by default"),delete e.csp),e.exprCacheSize!==void 0){let s=parseInt(e.exprCacheSize);e.exprCacheSize=Number.isFinite(s)&&s>0?s:500}if(Object.assign(C,e),e.sanitize===!1&&D("sanitize:false is deprecated \u2014 use dangerouslyDisableSanitize:true to make the risk explicit."),e.headers&&(C.headers={...n,...e.headers}),e.csrf&&(C.csrf=e.csrf),e.cache&&(C.cache={...t,...e.cache}),e.templates&&(C.templates={...r,...e.templates}),e.router&&("mode"in e.router&&!("useHash"in e.router)&&(Y('router.mode is deprecated. Use router.useHash instead: mode: "hash" \u2192 useHash: true, mode: "history" \u2192 useHash: false',"warn"),e.router.useHash=e.router.mode==="hash",delete e.router.mode),C.router={...i,...e.router}),e.i18n&&(C.i18n={...o,...e.i18n},Z.locale=e.i18n.defaultLocale||Z.locale),e.stores){for(let[s,a]of Object.entries(e.stores))Q[s]||(Q[s]=B(a||{}),oe("store:created",{name:s,keys:Object.keys(a||{})}));delete C.stores}},use(e,n={}){if(at){D("Cannot install plugins during dispose.");return}if(typeof e=="function"){if(!e.name||e.name==="anonymous"){D('Plugin must have a unique, non-empty name. Use { name: "my-plugin", install: fn }.');return}e={name:e.name,install:e}}if(!e.name||typeof e.name!="string"||e.name==="anonymous"){D("Plugin must have a unique, non-empty name.");return}if(pe.has(e.name)){pe.get(e.name).plugin!==e&&D(`Plugin "${e.name}" name collision: a different plugin with this name is already installed.`);return}e.capabilities&&C.debug&&Y(`Plugin "${e.name}" declares capabilities:`,e.capabilities),n.trusted===!0&&D(`WARNING: Plugin "${e.name}" installed with trusted access to sensitive HTTP headers.`),lt(e.name);try{e.install(ve,n)}finally{lt(null)}pe.set(e.name,{plugin:e,options:n}),Ce&&e.init&&Ce.then(()=>e.init(ve)).catch(t=>D(`Plugin "${e.name}" init error:`,t.message)),Y(`Plugin "${e.name}" installed.`)},global(e,n){if(typeof e!="string"||!e){D("NoJS.global() requires a non-empty string name.");return}if(e==="__proto__"||e==="constructor"||e==="prototype"){D(`NoJS.global(): "${e}" is a forbidden name.`);return}if(xn.has(e)){D(`NoJS.global(): "${e}" is reserved and cannot be used.`);return}if(!/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(e)){D(`NoJS.global(): "${e}" is not a valid identifier.`);return}if(Nr(n)){D(`NoJS.global(): value for "${e}" is a forbidden reference (eval/Function).`);return}if(e in ce&&Oe[e]&&Oe[e]!==Pe&&D(`Global "$${e}" owned by "${Oe[e]}" is being overwritten.`),n&&typeof n=="object"&&!n.__isProxy){try{n=JSON.parse(JSON.stringify(n))}catch{try{$r(n)}catch(t){if(t.message==="unsafe_global")return}}n=B(n)}ce[e]=n,Pe&&(Oe[e]=Pe),xe(),oe("global:set",{name:e,hasValue:n!=null}),Y(`Global "$${e}" registered.`)},async dispose(){ct(!0);try{let e=[...pe.entries()].reverse();for(let[n,{plugin:t}]of e)if(t.dispose)try{let r;await Promise.race([Promise.resolve(t.dispose(ve)).finally(()=>clearTimeout(r)),new Promise((i,o)=>{r=setTimeout(()=>o(new Error("Dispose timeout")),3e3)})])}catch(r){D(`Plugin "${n}" dispose error:`,r.message)}pe.clear();for(let n in ce)delete ce[n];for(let n in Oe)delete Oe[n];he.request.length=0,he.response.length=0,ee&&ee.destroy&&ee.destroy(),dt(null),Zt(),Ce=null,Y("Disposed.")}finally{ct(!1)}},async init(e){if(!(typeof document>"u"))return Ce||(Ce=(async()=>{if(e=e||document.body,Y("Initializing..."),C.i18n.loadPath){let t=new Set([Z.locale,C.i18n.fallbackLocale]);await Promise.all([...t].map(r=>ft(r)))}rt(e);let n=Sn();await hr(n),document.querySelector("[route-view]")&&dt(Sr()),W(e),ee&&await ee.init(),Y("Initialized."),yr(),Qt(ve);for(let[,{plugin:t}]of pe)t.init&&await t.init(ve);be("plugins:ready")})(),Ce)},directive(e,n){R(e,n)},filter(e,n){U[e]=n},validator(e,n){Ee[e]=n},i18n(e){if(e.loadPath!=null&&(C.i18n.loadPath=e.loadPath),e.ns&&(C.i18n.ns=e.ns),e.cache!=null&&(C.i18n.cache=e.cache),e.persist!=null&&(C.i18n.persist=e.persist),e.locales&&(Z.locales=e.locales),e.fallbackLocale&&(C.i18n.fallbackLocale=e.fallbackLocale),e.defaultLocale&&(Z._locale=e.defaultLocale),C.i18n.persist&&typeof localStorage<"u")try{let n=localStorage.getItem("nojs-locale");if(n){Z._locale=n;return}}catch{}if(e.detectBrowser){let n=typeof navigator<"u"?navigator.language:"en",t=n.split("-")[0];Z.locales[n]?Z._locale=n:Z.locales[t]&&(Z._locale=t)}},on(e,n){return _e[e]||(_e[e]=[]),_e[e].length>=C.maxEventListeners&&D('MaxListenersExceeded: event "'+e+'" has '+_e[e].length+" listeners (max "+C.maxEventListeners+"). Possible memory leak."),_e[e].push(n),()=>{_e[e]=_e[e].filter(t=>t!==n)}},interceptor(e,n){he[e]&&he[e].push(Pe?{fn:n,pluginName:Pe}:n)},get store(){return Q},notify(){xe()},get router(){return ee},createContext:B,evaluate:I,findContext:H,processTree:W,resolve:le,version:"1.11.0"};Object.defineProperty(ve,"CANCEL",{value:Ue,writable:!1,configurable:!1});Object.defineProperty(ve,"RESPOND",{value:Fe,writable:!1,configurable:!1});Object.defineProperty(ve,"REPLACE",{value:We,writable:!1,configurable:!1});Object.defineProperty(ve,"_initialized",{get(){return Ce!==null},set(e){e||(Ce=null)},configurable:!0});var Cn=ve;
67
67
  //# sourceMappingURL=no.js.map