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