@domphy/app 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/app.global.js +3 -3
- package/dist/app.global.js.map +1 -1
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +83 -2
- package/dist/index.d.ts +83 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/app.global.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var Domphy=(()=>{var z=Object.defineProperty,Dt=Object.defineProperties,jt=Object.getOwnPropertyDescriptor,Ht=Object.getOwnPropertyDescriptors,$t=Object.getOwnPropertyNames,ut=Object.getOwnPropertySymbols;var dt=Object.prototype.hasOwnProperty,Ut=Object.prototype.propertyIsEnumerable;var ct=(e,t,n)=>t in e?z(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,k=(e,t)=>{for(var n in t||(t={}))dt.call(t,n)&&ct(e,n,t[n]);if(ut)for(var n of ut(t))Ut.call(t,n)&&ct(e,n,t[n]);return e},x=(e,t)=>Dt(e,Ht(t));var pt=(e,t)=>{for(var n in t)z(e,n,{get:t[n],enumerable:!0})},Ft=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of $t(t))!dt.call(e,s)&&s!==n&&z(e,s,{get:()=>t[s],enumerable:!(r=jt(t,s))||r.enumerable});return e};var zt=e=>Ft(z({},"__esModule",{value:!0}),e);var b=(e,t,n)=>new Promise((r,s)=>{var i=l=>{try{a(n.next(l))}catch(h){s(h)}},o=l=>{try{a(n.throw(l))}catch(h){s(h)}},a=l=>l.done?r(l.value):Promise.resolve(l.value).then(i,o);a((n=n.apply(e,t)).next())});var Ce={};pt(Ce,{app:()=>Y});var Y={};pt(Y,{AppRouter:()=>A,DataCache:()=>U,DomphyApp:()=>V,NotFoundSignal:()=>T,PREFETCH_LIFETIME:()=>Ye,RedirectSignal:()=>S,applyHeadTags:()=>K,buildHref:()=>Wt,buildNotFoundTree:()=>at,buildTree:()=>q,compareSpecificity:()=>ft,compileRoutes:()=>I,createApiHandler:()=>Jt,createApp:()=>_e,createBrowserHistory:()=>nt,createMemoryHistory:()=>we,defaultErrorBlock:()=>it,defaultNotFoundBlock:()=>ot,defineRoutes:()=>Me,getRouter:()=>lt,isRewrite:()=>G,json:()=>D,matchPath:()=>gt,matchRoute:()=>O,metadataToHeadTags:()=>$,navLink:()=>Se,notFound:()=>qt,optimizedImage:()=>ke,parseSegment:()=>J,permanentRedirect:()=>Kt,redirect:()=>Gt,renderHeadTags:()=>et,resetScripts:()=>Ee,resolveMetadata:()=>tt,rewrite:()=>Vt,script:()=>Te,splitPath:()=>W});function J(e){return e.startsWith("(")&&e.endsWith(")")?{kind:"group",value:e.slice(1,-1)}:e.startsWith("[[...")&&e.endsWith("]]")?{kind:"optional-catchall",value:e.slice(5,-2)}:e.startsWith("[...")&&e.endsWith("]")?{kind:"catchall",value:e.slice(4,-1)}:e.startsWith("[")&&e.endsWith("]")?{kind:"dynamic",value:e.slice(1,-1)}:{kind:"static",value:e}}function W(e){return e.split("/").filter(t=>t.length>0)}function I(e){let t=[];function n(r,s,i,o,a){for(let l of r){let h=W(l.path),u=h.map(J),c=[...s,...u.filter(f=>f.kind!=="group")],p=`${a}/${h.join("/")}`.replace(/\/+/g,"/"),m=[...i,l],g=[...o,p===""?"/":p];(l.page||l.redirect)&&t.push({id:p===""?"/":p,segments:c,chain:m,chainIds:g}),l.children&&n(l.children,c,m,g,p)}}return n(e,[],[],[],""),t.sort(ft),t}var mt={static:0,dynamic:1,catchall:2,"optional-catchall":3,group:0};function ft(e,t){let n=Math.max(e.segments.length,t.segments.length);for(let r=0;r<n;r++){let s=e.segments[r],i=t.segments[r];if(!s)return-1;if(!i)return 1;let o=mt[s.kind]-mt[i.kind];if(o!==0)return o}return 0}function gt(e,t){let n=W(t).map(i=>decodeURIComponent(i)),r={},s=0;for(let i=0;i<e.length;i++){let o=e[i],a=i===e.length-1;if(o.kind==="static"){if(n[s]!==o.value)return null;s++;continue}if(o.kind==="dynamic"){if(s>=n.length)return null;r[o.value]=n[s],s++;continue}if(o.kind==="catchall")return!a||s>=n.length?null:(r[o.value]=n.slice(s),r);if(o.kind==="optional-catchall")return a?(r[o.value]=n.slice(s),r):null}return s!==n.length?null:r}function O(e,t){for(let n of e){let r=gt(n.segments,t);if(r)return{route:n,params:r,pathname:t}}return null}function Wt(e,t={}){return`/${W(e).map(J).filter(r=>r.kind!=="group").flatMap(r=>{if(r.kind==="static")return[r.value];let s=t[r.value];if(s===void 0){if(r.kind==="optional-catchall")return[];throw new Error(`Missing param "${r.value}" for pattern "${e}".`)}return(Array.isArray(s)?s:[s]).map(o=>encodeURIComponent(o))}).join("/")}`}var S=class extends Error{constructor(t,n){super(`Redirect to ${t}`),this.name="RedirectSignal",this.to=t,this.permanent=n}},T=class extends Error{constructor(){super("Not found"),this.name="NotFoundSignal"}};function Gt(e){throw new S(e,!1)}function Kt(e){throw new S(e,!0)}function qt(){throw new T}function Vt(e){return{__domphyRewrite:e}}function G(e){return typeof e=="object"&&e!==null&&typeof e.__domphyRewrite=="string"}var Yt=["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"];function D(e,t={}){let n=new Headers(t.headers);return n.has("content-type")||n.set("content-type","application/json; charset=utf-8"),new Response(JSON.stringify(e),x(k({},t),{headers:n}))}function Jt(e){let t=e.map(s=>({apiRoute:s,routeNode:{path:s.path,page:()=>({div:""})}})),n=I(t.map(s=>s.routeNode)),r=new Map(t.map(s=>[s.routeNode,s.apiRoute]));return s=>b(null,null,function*(){let i=new URL(s.url),o=O(n,i.pathname);if(!o)return D({error:"Not Found"},{status:404});let a=r.get(o.route.chain[o.route.chain.length-1]),l=Yt.filter(c=>a[c]),h=s.method.toUpperCase(),u=a[h];if(!u&&h==="HEAD"&&a.GET&&(u=a.GET),!u&&h==="OPTIONS")return new Response(null,{status:204,headers:{allow:l.join(", ")}});if(!u)return D({error:"Method Not Allowed"},{status:405,headers:{allow:l.join(", ")}});try{let c=yield u(s,{params:o.params});return h==="HEAD"?new Response(null,{status:c.status,headers:c.headers}):c}catch(c){return c instanceof S?new Response(null,{status:c.permanent?308:307,headers:{location:c.to}}):c instanceof T?D({error:"Not Found"},{status:404}):D({error:"Internal Server Error"},{status:500})}})}var Xt=Object.defineProperty,yt=Object.getOwnPropertySymbols,Zt=Object.prototype.hasOwnProperty,Qt=Object.prototype.propertyIsEnumerable,vt=(e,t,n)=>t in e?Xt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,wt=(e,t)=>{for(var n in t||(t={}))Zt.call(t,n)&&vt(e,n,t[n]);if(yt)for(var n of yt(t))Qt.call(t,n)&&vt(e,n,t[n]);return e},te=["onAbort","onAuxClick","onBeforeMatch","onBeforeToggle","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLoad","onLoadedData","onLoadedMetadata","onLoadStart","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onPaste","onPause","onPlay","onPlaying","onProgress","onRateChange","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onSubmit","onSuspend","onTimeUpdate","onToggle","onVolumeChange","onWaiting","onWheel","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","onPointerEnter","onPointerLeave","onPointerOver","onPointerOut","onGotPointerCapture","onLostPointerCapture","onCompositionStart","onCompositionUpdate","onCompositionEnd","onTransitionEnd","onTransitionStart","onAnimationStart","onAnimationEnd","onAnimationIteration","onFullscreenChange","onFullscreenError","onFocusIn","onFocusOut"],ee=te.reduce((e,t)=>{let n=t.slice(2).toLowerCase();return e[n]=t,e},{}),kt=["a","abbr","address","article","aside","audio","b","base","blockquote","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","i","iframe","img","input","ins","kbd","label","legend","li","main","map","mark","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","slot","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","bdi","bdo","math","menu","search","area","embed","hr","animate","animateMotion","animateTransform","circle","clipPath","cursor","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","image","line","linearGradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","prefetch","radialGradient","rect","set","solidColor","stop","svg","switch","symbol","tbreak","text","textPath","tspan","use","view"],E=[],ne=typeof queueMicrotask=="function"?queueMicrotask:e=>{Promise.resolve().then(e).catch(t=>{setTimeout(()=>{throw t},0)})},bt=100,j=class{constructor(){this._listeners={},this._pending=new Map,this._scheduled=!1,this._flushing=new Map,this._selfDepth=0}_dispose(){if(this._listeners)for(let e in this._listeners)this._listeners[e].clear();this._listeners=null}addListener(e,t){if(!this._listeners)return()=>{};if(typeof e!="string"||typeof t!="function")throw new Error("Event name must be a string, listener must be a function");this._listeners[e]||(this._listeners[e]=new Set);let n=()=>this.removeListener(e,t);return this._listeners[e].has(t)||(this._listeners[e].add(t),typeof t.onSubscribe=="function"&&t.onSubscribe(n)),n}removeListener(e,t){if(!this._listeners)return;let n=this._listeners[e];n&&n.has(t)&&(n.delete(t),n.size===0&&delete this._listeners[e])}notify(e,...t){if(!this._listeners||!this._listeners[e])return;let n=E.length?E[E.length-1]:null;if(n&&n[0]===this&&n[1]===e){let r=this._flushing.get(e);if(r&&r[0]===t[0])return;if(this._selfDepth>=bt){console.error(`[Domphy] Runaway self-update on "${e}" \u2014 stopped after ${bt} iterations`);return}this._selfDepth++,this._pending.set(e,{args:t,chain:[]})}else{if(this._isCircular(e))return;this._pending.set(e,{args:t,chain:[...E]})}this._scheduled||(this._scheduled=!0,ne(()=>this._flushAll()))}_isCircular(e){let t=E.findIndex(([r,s])=>r===this&&s===e);if(t===-1)return!1;let n=[...E.slice(t).map(([,r])=>r),e];return console.error(`[Domphy] Circular dependency detected:
|
|
2
|
-
${n.join(" \u2192 ")}`),!0}_flushAll(){this._scheduled=!1;let e=this._pending;this._pending=new Map;for(let[t,{args:n,chain:r}]of e)E=r,this._flush(t,n);E=[],this._pending.size===0&&(this._selfDepth=0)}_flush(e,t){if(!this._listeners)return;let n=this._listeners[e];if(n){E.push([this,e]),this._flushing.set(e,t);for(let r of[...n])if(n.has(r))try{r(...t)}catch(s){console.error(s)}this._flushing.delete(e),E.pop()}}},_t=class{constructor(e,t=typeof e){this.name=t,this._isState=!0,this._notifier=new j,this.initialValue=e,this._value=e}get(e){return e&&this.addListener(e),this._value}set(e){this._notifier&&(this._value=e,this._notifier.notify(this.name,e))}reset(){this.set(this.initialValue)}addListener(e){return this._notifier?this._notifier.addListener(this.name,e):()=>{}}removeListener(e){this._notifier&&this._notifier.removeListener(this.name,e)}_dispose(){this._notifier&&(this._notifier._dispose(),this._notifier=null)}};function L(e={},t={}){let n=["animation","transition","boxShadow","textShadow","background","fontFamily"],r=["class","rel","transform","acceptCharset","sandbox"],s=["content"];Object.prototype.toString.call(t)==="[object Object]"&&Object.getPrototypeOf(t)===Object.prototype&&(t=M(t));for(let i in t){let o=t[i];if(!(o==null||o===""))if(typeof o=="object"&&!Array.isArray(o))typeof e[i]=="object"?e[i]=L(e[i],o):e[i]=o;else if(n.includes(i))if(typeof e[i]=="function"||typeof o=="function"){let a=e[i];e[i]=l=>{let h=typeof a=="function"?a(l):a,u=typeof o=="function"?o(l):o;return[h,u].filter(c=>c).join(", ")}}else e[i]=[e[i],o].filter(a=>a).join(", ");else if(s.includes(i))if(typeof e[i]=="function"||typeof o=="function"){let a=e[i];e[i]=l=>{let h=typeof a=="function"?a(l):a,u=typeof o=="function"?o(l):o;return[h,u].filter(c=>c).join("")}}else e[i]=[e[i],o].filter(a=>a).join("");else if(r.includes(i))if(typeof e[i]=="function"||typeof o=="function"){let a=e[i];e[i]=l=>{let h=typeof a=="function"?a(l):a,u=typeof o=="function"?o(l):o;return[h,u].filter(c=>c).join(" ")}}else e[i]=[e[i],o].filter(a=>a).join(" ");else if(i.startsWith("on")){let a=i.replace("on","").toLowerCase();ie(e,a,o)}else if(i.startsWith("_on")){let a=i.replace("_on","");se(e,a,o)}else e[i]=o}return e}function re(e=""){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=t*16777619>>>0;return String.fromCharCode(97+t%26)+t.toString(16)}function xt(e,t){return e instanceof _t||e!=null&&e._isState?e:new _t(e,t)}function se(e,t,n){let r=`_on${t}`,s=e[r];typeof s=="function"?e[r]=(...i)=>{s(...i),n(...i)}:e[r]=n}function ie(e,t,n){let r=ee[t];if(!r)throw Error(`invalid event name "${t}"`);let s=e[r];typeof s=="function"?e[r]=(i,o)=>{s(i,o),n(i,o)}:e[r]=n}function M(e,t=new WeakMap){if(e===null||typeof e!="object"||typeof e=="function")return e;if(t.has(e))return t.get(e);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&!Array.isArray(e))return e;let r;if(Array.isArray(e)){r=[],t.set(e,r);for(let s of e)r.push(M(s,t));return r}if(e instanceof Date)return new Date(e);if(e instanceof RegExp)return new RegExp(e);if(e instanceof Map){r=new Map,t.set(e,r);for(let[s,i]of e)r.set(M(s,t),M(i,t));return r}if(e instanceof Set){r=new Set,t.set(e,r);for(let s of e)r.add(M(s,t));return r}if(ArrayBuffer.isView(e))return new e.constructor(e);if(e instanceof ArrayBuffer)return e.slice(0);r=Object.create(n),t.set(e,r);for(let s of Reflect.ownKeys(e))r[s]=M(e[s],t);return r}function St(e,t=!1){if(Object.prototype.toString.call(e)!=="[object Object]")throw Error(`typeof ${e} is invalid DomphyElement`);let n=Object.keys(e);for(let r=0;r<n.length;r++){let s=n[r],i=e[s];if(r==0&&!kt.includes(s)&&!s.includes("-")&&!t)throw Error(`key ${s} is not valid HTML tag name`);if(s=="style"&&i&&Object.prototype.toString.call(i)!=="[object Object]")throw Error('"style" must be a object');if(s=="$")e.$.forEach(o=>St(o,!0));else{if(s.startsWith("_on")&&typeof i!="function")throw Error(`hook ${s} value "${i}" must be a function `);if(s.startsWith("on")&&typeof i!="function")throw Error(`event ${s} value "${i}" must be a function `);if(s=="_portal"&&typeof i!="function")throw Error('"_portal" must be a function return HTMLElement');if(s=="_context"&&Object.prototype.toString.call(i)!=="[object Object]")throw Error('"_context" must be a object');if(s=="_metadata"&&Object.prototype.toString.call(i)!=="[object Object]")throw Error('"_metadata" must be a object');if(s=="_key"&&typeof i!="string"&&typeof i!="number")throw Error('"_key" must be a string or number')}}return!0}function Rt(e){return/<([a-z][\w-]*)(\s[^>]*)?>.*<\/\1>|<([a-z][\w-]*)(\s[^>]*)?\/>/i.test(e.trim())}function Et(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Tt(e){return Object.keys(e).find(t=>kt.includes(t))}function Mt(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}function oe(e){if(e.indexOf("@")===0)return[e];for(var t=[],n=0,r=0,s="",i=0,o=e.length;i<o;i++){var a=e[i];if(a==="(")n+=1;else if(a===")")n-=1;else if(a==="[")r+=1;else if(a==="]")r-=1;else if(a===","&&!n&&!r){t.push(s.trim()),s="";continue}s+=a}return t.push(s.trim()),t}function X(e){let t=e.trim();return t.startsWith("@")?t.replace(/\s+/g,""):t.replace(/\s*([>+~,])\s*/g,"$1").replace(/\s+/g," ").replace(/\(\s*odd\s*\)/g,"(2n+1)").replace(/\(\s*even\s*\)/g,"(2n)").trim()}function ae(e,t){for(let n=0;n<e.length;n++){let r=e[n],s=null;typeof r.selectorText=="string"?s=X(r.selectorText):typeof r.cssText=="string"&&r.cssText.startsWith("@")&&(s=X(r.cssText.split("{")[0])),s&&!t.has(s)&&t.set(s,r)}return t}function Ct(e){var t;let n=e.querySelector("#domphy-style");return n||(n=document.createElement("style"),n.id="domphy-style",e.appendChild(n)),n.dataset.domphyBase!=="true"&&((t=n.sheet)==null||t.insertRule("[hidden] { display: none !important; }",0),n.dataset.domphyBase="true"),n}var Z=e=>{if(Array.isArray(e.$)){let t={};return e.$.forEach(n=>L(t,Z(n))),delete e.$,L(t,e),t}else return e},le=["area","base","br","col","embed","hr","img","input","link","meta","source","track","wbr"],he=["svg","circle","path","rect","ellipse","line","polyline","polygon","g","defs","use","symbol","linearGradient","radialGradient","stop","clipPath","mask","filter","text","tspan","textPath","image","pattern","marker","animate","animateTransform","animateMotion","feGaussianBlur","feComposite","feColorMatrix","feMerge","feMergeNode","feOffset","feFlood","feBlend","foreignObject"],Lt=["allowFullScreen","async","autoFocus","autoPlay","checked","compact","contentEditable","controls","declare","default","defer","disabled","formNoValidate","hidden","isMap","itemScope","loop","multiple","muted","noHref","noShade","noValidate","open","playsInline","readonly","required","reversed","scoped","selected","sortable","trueSpeed","typeMustMatch","wmode","autoCapitalize","translate","spellCheck","inert","download","noModule","paused","autoPictureInPicture"],B={transform:["webkit","ms"],transition:["webkit","ms"],animation:["webkit"],userSelect:["webkit","ms"],flexDirection:["webkit","ms"],flexWrap:["webkit","ms"],justifyContent:["webkit","ms"],alignItems:["webkit","ms"],alignSelf:["webkit","ms"],order:["webkit","ms"],flexGrow:["webkit","ms"],flexShrink:["webkit","ms"],flexBasis:["webkit","ms"],columns:["webkit"],columnCount:["webkit"],columnGap:["webkit"],columnRule:["webkit"],columnWidth:["webkit"],boxSizing:["webkit"],appearance:["webkit","moz"],filter:["webkit"],backdropFilter:["webkit"],clipPath:["webkit"],mask:["webkit"],maskImage:["webkit"],textSizeAdjust:["webkit","ms"],hyphens:["webkit","ms"],writingMode:["webkit","ms"],gridTemplateColumns:["ms"],gridTemplateRows:["ms"],gridAutoColumns:["ms"],gridAutoRows:["ms"],gridColumn:["ms"],gridRow:["ms"],marginInlineStart:["webkit"],marginInlineEnd:["webkit"],paddingInlineStart:["webkit"],paddingInlineEnd:["webkit"],minInlineSize:["webkit"],maxInlineSize:["webkit"],minBlockSize:["webkit"],maxBlockSize:["webkit"],inlineSize:["webkit"],blockSize:["webkit"],tabSize:["moz"],overscrollBehavior:["webkit","ms"],touchAction:["ms"],resize:["webkit"],printColorAdjust:["webkit"],backgroundClip:["webkit"],boxDecorationBreak:["webkit"],overflowScrolling:["webkit"]},ue=["viewBox","preserveAspectRatio","gradientTransform","gradientUnits","spreadMethod","markerStart","markerMid","markerEnd","markerHeight","markerWidth","markerUnits","refX","refY","patternContentUnits","patternTransform","patternUnits","filterUnits","primitiveUnits","kernelUnitLength","clipPathUnits","maskContentUnits","maskUnits"],ce=class{constructor(e,t,n){this._notifier=new j,this._releases=[],this.parent=n,this.isBoolean=Lt.includes(e),ue.includes(e)?this.name=e:this.name=Mt(e),this.value=void 0,this.set(t)}render(){if(!this.parent||!this.parent.domElement)return;let e=this.parent.domElement,t=["value"];this.isBoolean?this.value===!1||this.value==null?e.removeAttribute(this.name):e.setAttribute(this.name,this.value===!0?"":this.value):this.value==null?e.removeAttribute(this.name):t.includes(this.name)?e[this.name]=this.value:e.setAttribute(this.name,this.value)}set(e){var t,n;let r=this.value;if(this._releases.length){for(let s of this._releases)s();this._releases=[]}if(e==null)this.value=null;else if(typeof e=="function"){let s=()=>{if(!this.parent||this.parent._disposed)return;let i=this.value;this.value=this.isBoolean?!!e(s):e(s),this.render(),i!==this.value&&this._notifier.notify(this.name,this.value)};s.elementNode=this.parent,s.debug=`class:${(t=this.parent)==null?void 0:t.tagName}_${(n=this.parent)==null?void 0:n.nodeId} attribute:${this.name}`,s.onSubscribe=i=>{this._releases.push(i),this.parent&&this.parent.addHook("BeforeRemove",()=>{i(),s=null})},this.value=this.isBoolean?!!e(s):e(s)}else this.value=this.isBoolean?!!e:e;this.render(),r!==this.value&&this._notifier.notify(this.name,this.value)}addListener(e){let t=e;t.onSubscribe=n=>{var r;return(r=this.parent)==null?void 0:r.addHook("BeforeRemove",n)},this._notifier.addListener(this.name,t)}remove(){this.parent&&this.parent.attributes&&this.parent.attributes.remove(this.name),this._dispose()}_dispose(){this._notifier._dispose(),this.value=null,this.parent=null}generateHTML(){let{name:e,value:t}=this;if(this.isBoolean)return t?`${e}`:"";{let n=Array.isArray(t)?JSON.stringify(t):t;return`${e}="${Et(String(n))}"`}}},de=class{constructor(e){this.items={},this.parent=e}generateHTML(){if(!this.items)return"";let e=Object.values(this.items).map(t=>t.generateHTML()).join(" ");return e?` ${e}`:""}get(e){var t;if(this.items)return(t=this.items[e])==null?void 0:t.value}set(e,t){!this.items||!this.parent||(this.items[e]?this.items[e].set(t):this.items[e]=new ce(e,t,this.parent))}addListener(e,t){this.has(e)&&this.items[e].addListener(t)}has(e){return this.items?Object.prototype.hasOwnProperty.call(this.items,e):!1}remove(e){this.items&&(this.items[e]&&(this.items[e]._dispose(),delete this.items[e]),this.parent&&this.parent.domElement&&this.parent.domElement instanceof Element&&this.parent.domElement.removeAttribute(e))}_dispose(){if(this.items)for(let e in this.items)this.items[e]._dispose();this.items=null,this.parent=null}toggle(e,t){if(!Lt.includes(e))throw Error(`${e} is not a boolean attribute`);t===!0?this.set(e,!0):t===!1?this.remove(e):this.has(e)?this.remove(e):this.set(e,!0)}addClass(e){if(!e||typeof e!="string")return;let t=(r,s)=>{let i=(r||"").split(" ").filter(o=>o);return!i.includes(s)&&i.push(e),i.join(" ")},n=this.get("class");typeof n=="function"?this.set("class",()=>t(n(),e)):this.set("class",t(n,e))}hasClass(e){return!e||typeof e!="string"?!1:(this.get("class")||"").split(" ").filter(t=>t).includes(e)}toggleClass(e){!e||typeof e!="string"||(this.hasClass(e)?this.removeClass(e):this.addClass(e))}removeClass(e){if(!e||typeof e!="string")return;let t=(this.get("class")||"").split(" ").filter(n=>n).filter(n=>n!==e);t.length>0?this.set("class",t.join(" ")):this.remove("class")}replaceClass(e,t){!e||!t||typeof e!="string"||typeof t!="string"||this.hasClass(e)&&(this.removeClass(e),this.addClass(t))}},pe=class{constructor(e,t){this.type="TextNode",this.parent=t,this.text=e===""?"\u200B":String(e)}_createDOMNode(){let e;if(Rt(this.text)){let t=document.createElement("template");t.innerHTML=this.text.trim(),e=t.content.firstChild||document.createTextNode("")}else e=document.createTextNode(this.text);return this.domText=e,e}_dispose(){this.domText=void 0,this.text=""}generateHTML(){return this.text==="\u200B"?"​":Rt(this.text)?this.text:Et(this.text)}render(e){let t=this._createDOMNode();e.appendChild(t)}},me=class{constructor(e){this.items=[],this._nextKey=0,this.owner=e}_createNode(e){return typeof e=="object"&&e!==null?new R(e,this.owner,this._nextKey++):new pe(e==null?"":String(e),this.owner)}_moveDomElement(e,t){if(!this.owner||!this.owner.domElement)return;let n=this.owner.domElement,r=e instanceof R?e.domElement:e.domText;if(r){let s=n.childNodes[t]||null;r!==s&&n.insertBefore(r,s)}}_swapDomElement(e,t){if(!this.owner||!this.owner.domElement)return;let n=this.owner.domElement,r=e instanceof R?e.domElement:e.domText,s=t instanceof R?t.domElement:t.domText;if(!r||!s)return;let i=r.nextSibling,o=s.nextSibling;n.insertBefore(r,o),n.insertBefore(s,i)}update(e,t=!0,n=!1){var r,s,i,o;let a=this.items.slice(),l=new Map;for(let p of a)p instanceof R&&p.key!==null&&p.key!==void 0&&l.set(p.key,p);!n&&this.owner.domElement&&((s=(r=this.owner._hooks)==null?void 0:r.BeforeUpdate)==null||s.call(r,this.owner,e));let h=new Set(a),u=new Set;for(let p=0;p<e.length;p++){let m=e[p],g=typeof m=="object"&&m!==null,f=g?m._key:void 0,v=g?Tt(m):void 0;if(f!==void 0){let y=l.get(f);if(y instanceof R&&y.tagName===v){l.delete(f);let _=this.items.indexOf(y);if(_!==p&&_>=0){let d=!!y._portal;this.move(_,p,d?!1:t,!0)}y.parent=this.owner,y.patch(m),u.add(y);continue}}else if(g){let y=this.items[p];if(y instanceof R&&y.key==null&&y.tagName===v&&h.has(y)&&!u.has(y)){y.parent=this.owner,y.patch(m),u.add(y);continue}}u.add(this.insert(m,p,t,!0))}let c=this.items.slice(e.length);for(let p of c)this.remove(p,t,!0);l.forEach(p=>this.remove(p,t,!0)),n||(o=(i=this.owner._hooks)==null?void 0:i.Update)==null||o.call(i,this.owner)}insert(e,t,n=!0,r=!1){var s,i;let o=this.items.length,a=typeof t!="number"||isNaN(t)||t<0||t>o?o:t,l=this._createNode(e);if(this.items.splice(a,0,l),l instanceof R){l._hooks.Insert&&l._hooks.Insert(l);let h=this.owner.domElement;if(n&&h)if(l._portal){let u=l._portal(this.owner.getRoot());u&&l.render(u)}else{let u=l._createDOMNode(),c=(s=h.childNodes[a])!=null?s:null;h.insertBefore(u,c);let p=h.getRootNode(),m=p instanceof ShadowRoot?p:document.head,g=Ct(m);l.styles.render(g),l._hooks.Mount&&l._hooks.Mount(l),l.children.items.forEach(f=>{if(f instanceof R&&f._portal){let v=f._portal(f.getRoot());v&&f.render(v)}else f.render(u)})}}else{let h=this.owner.domElement;if(n&&h){let u=l._createDOMNode(),c=(i=h.childNodes[a])!=null?i:null;h.insertBefore(u,c)}}return!r&&this.owner.domElement&&this.owner._hooks.Update&&this.owner._hooks.Update(this.owner),l}remove(e,t=!0,n=!1){let r=this.items.indexOf(e);if(!(r<0)){if(e instanceof R){if(e._beforeRemoveFired)return;let s=()=>{let i=e.domElement,o=this.items.indexOf(e);o>=0&&this.items.splice(o,1),t&&i&&i.remove(),e._dispose()};if(e._hooks.BeforeRemove&&e.domElement){let i=!1,o=()=>{i||(i=!0,s())};e._beforeRemoveFired=!0,e._hooks.BeforeRemove(e,o),e._hooks.BeforeRemove.length<2&&!i&&o()}else s()}else{let s=e.domText;this.items.splice(r,1),t&&s&&s.remove(),e._dispose()}!n&&this.owner.domElement&&this.owner._hooks.Update&&this.owner._hooks.Update(this.owner)}}clear(e=!0,t=!1){if(this.items.length===0)return;let n=this.items.slice();for(let r of n)this.remove(r,e,!0);!t&&this.owner.domElement&&this.owner._hooks.Update&&this.owner._hooks.Update(this.owner)}_dispose(){this.items.forEach(e=>e._dispose()),this.items=[]}swap(e,t,n=!0,r=!1){if(e<0||t<0||e>=this.items.length||t>=this.items.length||e===t)return;let s=this.items[e],i=this.items[t];this.items[e]=i,this.items[t]=s,n&&this._swapDomElement(s,i),!r&&this.owner.domElement&&this.owner._hooks.Update&&this.owner._hooks.Update(this.owner)}move(e,t,n=!0,r=!1){if(e<0||e>=this.items.length||t<0||t>=this.items.length||e===t)return;let s=this.items[e];this.items.splice(e,1),this.items.splice(t,0,s),n&&this._moveDomElement(s,t),!r&&this.owner.domElement&&this.owner._hooks.Update&&this.owner._hooks.Update(this.owner)}generateHTML(){let e="";for(let t of this.items)e+=t.generateHTML();return e}},fe=class{constructor(e,t,n){this.value="",this.name=e,this.cssName=Mt(e),this.parentRule=n,this.set(t)}_domUpdate(){if(!this.parentRule)return;let e=this.parentRule.domRule;if(e&&e.style){let t=e.style;t.setProperty(this.cssName,String(this.value)),B[this.name]&&B[this.name].forEach(n=>{t.setProperty(`-${n}-${this.cssName}`,String(this.value))})}}_dispose(){this.value="",this.parentRule=null}set(e){var t,n,r,s;if(typeof e=="function"){let i=(()=>{var o;!this.parentRule||(o=this.parentRule.parentNode)!=null&&o._disposed||(this.value=e(i),this._domUpdate())});i.onSubscribe=o=>{var a;(a=this.parentRule.parentNode)==null||a.addHook("BeforeRemove",()=>{o(),i=null})},i.elementNode=this.parentRule.root,i.debug=`class:${(n=(t=this.parentRule)==null?void 0:t.root)==null?void 0:n.tagName}_${(s=(r=this.parentRule)==null?void 0:r.root)==null?void 0:s.nodeId} style:${this.name}`,this.value=e(i)}else this.value=e;this._domUpdate()}remove(){if(this.parentRule){if(this.parentRule.domRule instanceof CSSStyleRule){let e=this.parentRule.domRule.style;e.removeProperty(this.cssName),B[this.name]&&B[this.name].forEach(t=>{e.removeProperty(`-${t}-${this.cssName}`)})}delete this.parentRule.styleBlock[this.name],this._dispose()}}cssText(){let e=`${this.cssName}: ${this.value}`;return B[this.name]&&B[this.name].forEach(t=>{e+=`; -${t}-${this.cssName}: ${this.value}`}),e}},C=class Q{constructor(t,n){this.domRule=null,this.styleBlock={},this.selectorText=t,this.styleList=new Pt(this),this.parent=n}_dispose(){if(this.styleBlock)for(let t of Object.values(this.styleBlock))t._dispose();this.styleList&&this.styleList._dispose(),this.styleBlock=null,this.styleList=null,this.domRule=null,this.parent=null}get root(){let t=this.parent;for(;t instanceof Q;)t=t.parent;return t}get parentNode(){let t=this.parent;for(;t&&t instanceof Q;)t=t.parent;return t}insertStyle(t,n){this.styleBlock&&(this.styleBlock[t]?this.styleBlock[t].set(n):this.styleBlock[t]=new fe(t,n,this))}removeStyle(t){this.styleBlock&&this.styleBlock[t]&&this.styleBlock[t].remove()}cssText(){if(!this.styleBlock||!this.styleList)return"";let t=Object.values(this.styleBlock).map(r=>r.cssText()).join(";"),n=this.styleList.cssText();return`${this.selectorText} { ${t} ${n} } `}mount(t){!t||!this.styleList||(this.domRule=t,"cssRules"in t&&this.styleList.mount(t.cssRules))}remove(){if(this.domRule&&this.domRule.parentStyleSheet){let t=this.domRule.parentStyleSheet,n=t.cssRules;for(let r=0;r<n.length;r++)if(n[r]===this.domRule){t.deleteRule(r);break}}this._dispose()}render(t){if(!this.styleBlock||!this.styleList)return;let n=Object.values(this.styleBlock).map(r=>r.cssText()).join(";");try{if(this.selectorText.startsWith("@")){if(/^@(media|supports|container|layer)\b/.test(this.selectorText)){let r=t.insertRule(`${this.selectorText} {}`,t.cssRules.length),s=t.cssRules[r];"cssRules"in s&&(this.mount(s),this.styleList.render(s))}else if(this.selectorText.startsWith("@keyframes")||this.selectorText.startsWith("@font-face")){let r=this.cssText(),s=t.insertRule(r,t.cssRules.length),i=t.cssRules[s];this.mount(i)}}else{let r=`${this.selectorText} { ${n} }`,s=t.insertRule(r,t.cssRules.length),i=t.cssRules[s];i&&"selectorText"in i&&this.mount(i)}}catch(r){console.warn("Failed to insert rule:",this.selectorText,r)}}},Pt=class{constructor(e){this.items=[],this.domStyle=null,this.parent=e}get parentNode(){let e=this.parent;for(;e&&e instanceof C;)e=e.parent;return e}addCSS(e,t=""){if(!this.items||!this.parent)return;let n={};function r(s,i){return s.startsWith("&")?`${i}${s.slice(1)}`:`${i} ${s}`}for(let s in e){let i=e[s],o=oe(s);for(let a of o){let l=r(a,t);if(/^@(container|layer|supports|media)\b/.test(a)){if(typeof i=="object"&&i!=null){let h=new C(a,this.parent);h.styleList.addCSS(i,t),this.items.push(h)}}else if(a.startsWith("@keyframes")){let h=new C(a,this.parent);h.styleList.addCSS(i,""),this.items.push(h)}else if(a.startsWith("@font-face")){let h=new C(a,this.parent);for(let u in i)h.insertStyle(u,i[u]);this.items.push(h)}else if(typeof i=="object"&&i!=null){let h=new C(l,this.parent);this.items.push(h);for(let[u,c]of Object.entries(i))if(typeof c=="object"&&c!=null){let p=r(u,l);u.startsWith("&")?this.addCSS(c,p):h.styleList.insertRule(p).styleList.addCSS(c,p)}else h.insertStyle(u,c)}else n[a]=i}}if(Object.keys(n).length){let s=new C(t,this.parent);for(let i in n)s.insertStyle(i,n[i]);this.items.push(s)}}cssText(){return this.items?this.items.map(e=>e.cssText()).join(""):""}insertRule(e){if(!this.items||!this.parent)return null;let t=this.items.find(n=>n.selectorText===e);return t||(t=new C(e,this.parent),this.items.push(t)),t}hydrate(e){if(this.items)for(let t of this.items){let n=e.get(X(t.selectorText));n&&t.mount(n)}}mount(e){if(!this.items)return;if(!e)throw Error("Require domRuleList argument");let t=0,n=r=>r.replace("(odd)","(2n+1)").replace("(even)","(2n)");this.items.forEach((r,s)=>{let i=s-t,o=e[i];o&&(r.selectorText.startsWith("@")&&o instanceof CSSKeyframesRule||"keyText"in o?r.mount(o):"selectorText"in o?o.selectorText!==n(r.selectorText)?t+=1:r.mount(o):"cssRules"in o&&r.mount(o))})}render(e){e instanceof HTMLStyleElement?(this.domStyle=e,this.items.forEach(t=>t.render(e.sheet))):e instanceof CSSGroupingRule&&this.items.forEach(t=>t.render(e))}_dispose(){if(this.items)for(let e=0;e<this.items.length;e++)this.items[e]._dispose();this.items=[],this.parent=null,this.domStyle=null}},R=class N{constructor(t,n=null,r=0){this._disposed=!1,this._beforeRemoveFired=!1,this.type="ElementNode",this.parent=null,this.children=new me(this),this.styles=new Pt(this),this.attributes=new de(this),this.domElement=null,this._hooks={},this._events=null,this._boundEvents=new Set,this._context={},this._metadata={},this.key=null;var s,i;t=M(t),St(t),t.style=t.style||{},this.parent=n,this.tagName=Tt(t),t=Z(t),this.key=(s=t._key)!=null?s:null,this._context=t._context||{},this._metadata=t._metadata||{};let o=`${(i=this.parent)==null?void 0:i.nodeId}.${r}`,a=JSON.stringify(t.style||{},(h,u)=>typeof u=="function"?o:u);this.nodeId=re(o+a),this.attributes.addClass(`${this.tagName}_${this.nodeId}`),t._onSchedule&&t._onSchedule(this,t),this.merge(t);let l=t[this.tagName];if(l!=null&&l!=null)if(typeof l=="function"){let h=()=>{if(this._disposed)return;let u=l(h);this.children.update(Array.isArray(u)?u:[u])};h.elementNode=this,h.debug=`class:${this.tagName}_${this.nodeId} children`,h.onSubscribe=u=>this.addHook("BeforeRemove",()=>{u(),h=null}),h&&h()}else this.children.update(Array.isArray(l)?l:[l]);this._hooks.Init&&this._hooks.Init(this)}_createDOMNode(){let t=he.includes(this.tagName)?document.createElementNS("http://www.w3.org/2000/svg",this.tagName):document.createElement(this.tagName);if(this.domElement=t,this._events)for(let n in this._events)this._bindEvent(n);return this.attributes&&Object.values(this.attributes.items).forEach(n=>n.render()),t}_bindEvent(t){if(!this.domElement||this._boundEvents.has(t))return;this._boundEvents.add(t);let n=r=>{var s,i;return(i=(s=this._events)==null?void 0:s[t])==null?void 0:i.call(s,r,this)};this.domElement.addEventListener(t,n),this.addHook("BeforeRemove",r=>{var s;(s=r.domElement)==null||s.removeEventListener(t,n),n=null})}_dispose(){var t,n,r,s;this._disposed||(this._disposed=!0,this._beforeRemoveFired||(this._beforeRemoveFired=!0,(n=(t=this._hooks).BeforeRemove)==null||n.call(t,this,()=>{})),this.children&&this.children._dispose(),this.styles&&(this.styles.items.forEach(i=>i.remove()),this.styles._dispose()),this.attributes&&this.attributes._dispose(),(s=(r=this._hooks).Remove)==null||s.call(r,this),this.domElement=null,this._hooks={},this._events=null,this._context={},this._metadata={},this.parent=null)}merge(t){L(this._context,t._context),L(this._metadata,t._metadata);let n=Object.keys(t);for(let r=0;r<n.length;r++){let s=n[r],i=t[s];["$","_onSchedule","_key","_context","_metadata","style",this.tagName].includes(s)||(["_onInit","_onInsert","_onMount","_onBeforeUpdate","_onUpdate","_onBeforeRemove","_onRemove"].includes(s)?this.addHook(s.substring(3),i):s.startsWith("on")?this.addEvent(s.substring(2).toLowerCase(),i):s=="_portal"?this._portal=i:s=="class"&&typeof i=="string"?this.attributes.addClass(i):this.attributes.set(s,i))}t.style&&this.styles.addCSS(t.style||{},`.${`${this.tagName}_${this.nodeId}`}`)}patch(t){let n=M(t);n.style=n.style||{},n=Z(n);let r=n[this.tagName];if(typeof r!="function"){let h=r==null?[]:Array.isArray(r)?r:[r];this.children.update(h,!!this.domElement,!0)}n._context&&L(this._context,n._context),n._metadata&&L(this._metadata,n._metadata);let s=`${this.tagName}_${this.nodeId}`,i=["$","_onSchedule","_key","_context","_metadata","style",this.tagName],o=["_onInit","_onInsert","_onMount","_onBeforeUpdate","_onUpdate","_onBeforeRemove","_onRemove"],a=new Set(["class"]),l=null;this._events={};for(let h of Object.keys(n)){if(i.includes(h)||o.includes(h)||h==="_portal")continue;let u=n[h];h.startsWith("on")&&typeof u=="function"?this.addEvent(h.substring(2).toLowerCase(),u):h==="class"&&typeof u=="string"?l=u:(this.attributes.set(h,u),a.add(h))}if(this.attributes.set("class",l?`${s} ${l}`:s),this.attributes.items)for(let h of Object.keys(this.attributes.items))a.has(h)||this.attributes.remove(h);if(this._events)for(let h in this._events)this._bindEvent(h)}addEvent(t,n){this._events=this._events||{};let r=this._events[t];typeof r=="function"?this._events[t]=(s,i)=>{r(s,i),n(s,i)}:this._events[t]=n}addHook(t,n){let r=this._hooks[t];if(typeof r=="function"){let s=((...i)=>{r(...i),n(...i)});try{Object.defineProperty(s,"length",{value:Math.max(r.length,n.length),configurable:!0})}catch(i){}this._hooks[t]=s}else this._hooks[t]=n}getRoot(){let t=this;for(;t&&t instanceof N&&t.parent;)t=t.parent;return t}getContext(t){let n=this;for(;n&&(!n._context||!Object.prototype.hasOwnProperty.call(n._context,t));)n=n.parent;return n&&n._context?n._context[t]:void 0}setContext(t,n){this._context=this._context||{},this._context[t]=n}getMetadata(t){return this._metadata?this._metadata[t]:void 0}setMetadata(t,n){this._metadata=this._metadata||{},this._metadata[t]=n}generateCSS(){if(!this.styles||!this.children)return"";let t=this.styles.cssText();return t+=this.children.items.map(n=>n instanceof N?n.generateCSS():"").join(""),t}generateHTML(){if(!this.children||!this.attributes)return"";let t=this.attributes.generateHTML();if(le.includes(this.tagName))return`<${this.tagName}${t}>`;let n=this.children.generateHTML();return`<${this.tagName}${t}>${n}</${this.tagName}>`}mount(t,n){if(!t)throw new Error("Missing dom node on bind");if(this.domElement=t,this._events)for(let r in this._events)this._bindEvent(r);if(this.children&&this.children.items.forEach((r,s)=>{let i=t.childNodes[s];i&&(r instanceof N?r.mount(i):r.domText=i)}),n){let r=n.sheet;r&&this._hydrateStyles(ae(r.cssRules,new Map))}this._hooks.Mount&&this._hooks.Mount(this)}_hydrateStyles(t){var n;if((n=this.styles)==null||n.hydrate(t),this.children)for(let r of this.children.items)r instanceof N&&r._hydrateStyles(t)}render(t){let n=this._createDOMNode();t.appendChild(n),this._hooks.Mount&&this._hooks.Mount(this);let r=this.getRoot().styles.domStyle,s=t.getRootNode(),i=s instanceof ShadowRoot?s:document.head;return r||(r=Ct(i)),this.styles.render(r),this.children.items.forEach(o=>{if(o instanceof N&&o._portal){let a=o._portal(this.getRoot());a&&o.render(a)}else o.render(n)}),n}remove(){if(this.parent)this.parent.children.remove(this);else{let t=()=>{var n;(n=this.domElement)==null||n.remove(),this._dispose()};if(this._hooks.BeforeRemove&&this.domElement){let n=!1,r=()=>{n||(n=!0,t())};this._beforeRemoveFired=!0,this._hooks.BeforeRemove(this,r),this._hooks.BeforeRemove.length<2&&!n&&r()}else t()}}},Ot=class{constructor(e){this._notifier=new j,this.initialRecord=wt({},e),this._record=wt({},e)}get(e,t){return t&&this._notifier.addListener(e,t),this._record[e]}set(e,t){this._record[e]=t,this._notifier.notify(e)}addListener(e,t){return this._notifier.addListener(e,t)}removeListener(e,t){this._notifier.removeListener(e,t)}reset(e){this.set(e,this.initialRecord[e])}_dispose(){this._notifier._dispose()}};function tt(e,t){return b(this,null,function*(){let n={},r=null;for(let s of e){if(!s)continue;let i=typeof s=="function"?yield s(t):s;for(let a of Object.keys(i)){if(a==="title")continue;let l=i[a];l!==void 0&&(n[a]=l)}let o=i.title;if(o!==void 0){if(typeof o=="string"){n.title=r?r.replace("%s",o):o;continue}o.absolute!==void 0?n.title=o.absolute:o.default!==void 0&&(n.title=r?r.replace("%s",o.default):o.default),o.template!==void 0&&(r=o.template)}}return n})}function H(e,t){return!t||/^[a-z][a-z0-9+.-]*:/i.test(e)?e:new URL(e,t).toString()}function ge(e){if(typeof e=="string")return e;let t=[];return t.push(e.index===!1?"noindex":"index"),t.push(e.follow===!1?"nofollow":"follow"),e.noarchive&&t.push("noarchive"),e.nosnippet&&t.push("nosnippet"),e.noimageindex&&t.push("noimageindex"),t.join(", ")}function $(e){var l,h,u,c,p,m,g,f,v,y,_;let t=[],n=e.metadataBase,r=(d,w)=>{w!==void 0&&t.push({tag:"meta",attributes:{name:d,content:w}})},s=(d,w)=>{w!==void 0&&t.push({tag:"meta",attributes:{property:d,content:w}})};e.title!==void 0&&t.push({tag:"title",attributes:{},content:e.title}),r("description",e.description),r("application-name",e.applicationName),r("generator",e.generator),r("keywords",(l=e.keywords)==null?void 0:l.join(", ")),r("referrer",e.referrer),r("theme-color",e.themeColor),r("color-scheme",e.colorScheme),r("viewport",e.viewport),e.robots!==void 0&&r("robots",ge(e.robots));for(let d of(h=e.authors)!=null?h:[])r("author",d.name),d.url&&t.push({tag:"link",attributes:{rel:"author",href:d.url}});if(e.icons!==void 0){let d=typeof e.icons=="string"?{icon:e.icons}:e.icons;d.icon&&t.push({tag:"link",attributes:{rel:"icon",href:d.icon}}),d.shortcut&&t.push({tag:"link",attributes:{rel:"shortcut icon",href:d.shortcut}}),d.apple&&t.push({tag:"link",attributes:{rel:"apple-touch-icon",href:d.apple}})}let i=e.openGraph;if(i){s("og:title",(u=i.title)!=null?u:e.title),s("og:description",(c=i.description)!=null?c:e.description),s("og:url",i.url?H(i.url,n):void 0),s("og:site_name",i.siteName),s("og:type",i.type),s("og:locale",i.locale);for(let d of(p=i.images)!=null?p:[]){let w=typeof d=="string"?{url:d}:d;s("og:image",H(w.url,n)),w.width!==void 0&&s("og:image:width",String(w.width)),w.height!==void 0&&s("og:image:height",String(w.height)),w.alt!==void 0&&s("og:image:alt",w.alt)}}let o=e.twitter;if(o){r("twitter:card",(m=o.card)!=null?m:"summary"),r("twitter:title",(g=o.title)!=null?g:e.title),r("twitter:description",(f=o.description)!=null?f:e.description),r("twitter:site",o.site),r("twitter:creator",o.creator);for(let d of(v=o.images)!=null?v:[])r("twitter:image",H(d,n))}let a=e.alternates;if(a){a.canonical&&t.push({tag:"link",attributes:{rel:"canonical",href:H(a.canonical,n)}});for(let d of Object.keys((y=a.languages)!=null?y:{}))t.push({tag:"link",attributes:{rel:"alternate",hreflang:d,href:H(a.languages[d],n)}})}for(let d of Object.keys((_=e.other)!=null?_:{}))r(d,e.other[d]);return t}function ye(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<")}function ve(e){return e.replace(/&/g,"&").replace(/</g,"<")}function et(e){return e.map(t=>{var r;let n=Object.keys(t.attributes).map(s=>` ${s}="${ye(t.attributes[s])}"`).join("");return t.tag==="title"?`<title>${ve((r=t.content)!=null?r:"")}</title>`:`<${t.tag}${n}>`}).join(`
|
|
3
|
-
`)}var Bt="data-domphy-head";function K(e){var t;if(typeof document!="undefined"){for(let n of Array.from(document.head.querySelectorAll(`[${Bt}]`)))n.remove();for(let n of e){if(n.tag==="title"){document.title=(t=n.content)!=null?t:"";continue}let r=document.createElement(n.tag);for(let s of Object.keys(n.attributes))r.setAttribute(s,n.attributes[s]);r.setAttribute(Bt,""),document.head.appendChild(r)}}}var Ye=3e4,U=class{constructor(){this.entries=new Map;this.inflight=new Map}seed(t){for(let n of Object.keys(t))this.entries.set(n,{data:t[n],timestamp:Date.now(),consumable:!0})}snapshot(t){let n={};for(let r of t){let s=this.entries.get(r);s&&(n[r]=s.data)}return n}invalidate(t){if(t===void 0){this.entries.clear();return}for(let n of this.entries.keys())n.startsWith(t)&&this.entries.delete(n)}load(t,n,r,s){return b(this,null,function*(){let i=this.entries.get(t);if(i){let l=s!==void 0?s*1e3:0,h=Date.now()-i.timestamp<=l,u=i.consumable&&Date.now()-i.timestamp<=3e4;if(h||u)return i.consumable&&!h&&this.entries.delete(t),i.data;this.entries.delete(t)}let o=this.inflight.get(t);if(o)return o;let a=Promise.resolve(n(r)).then(l=>(this.inflight.delete(t),s!==void 0&&s>0&&this.entries.set(t,{data:l,timestamp:Date.now(),consumable:!1}),l),l=>{throw this.inflight.delete(t),l});return this.inflight.set(t,a),a})}prefetch(t,n,r,s){return b(this,null,function*(){if(s!==void 0){yield this.load(t,n,r,s);return}let i=this.entries.get(t);if(i&&Date.now()-i.timestamp<=3e4||this.inflight.has(t))return;let o=yield n(r);this.entries.set(t,{data:o,timestamp:Date.now(),consumable:!0})})}};function nt(){var n,r,s;let e=new Map,t=(r=(n=window.history.state)==null?void 0:n.__domphyIndex)!=null?r:0;return((s=window.history.state)==null?void 0:s.__domphyIndex)===void 0&&window.history.replaceState({__domphyIndex:t},""),"scrollRestoration"in window.history&&(window.history.scrollRestoration="manual"),{url:()=>new URL(window.location.href),push:i=>{t++,window.history.pushState({__domphyIndex:t},"",i)},replace:i=>{window.history.replaceState({__domphyIndex:t},"",i)},go:i=>window.history.go(i),listen:i=>{let o=()=>{var a,l;t=(l=(a=window.history.state)==null?void 0:a.__domphyIndex)!=null?l:0,i(new URL(window.location.href))};return window.addEventListener("popstate",o),()=>window.removeEventListener("popstate",o)},saveScroll:i=>e.set(t,i),readScroll:()=>{var i;return(i=e.get(t))!=null?i:null}}}var Nt="http://localhost";function we(e="/"){let t=[e],n=0,r=new Set;return{url:()=>new URL(t[n],Nt),push:s=>{t.splice(n+1),t.push(s),n++},replace:s=>{t[n]=s},go:s=>{let i=Math.min(Math.max(n+s,0),t.length-1);if(i===n)return;n=i;let o=new URL(t[n],Nt);for(let a of r)a(o)},listen:s=>(r.add(s),()=>r.delete(s))}}function it(e){return{div:[{h2:"Application error"},{p:e.message}]}}function ot(){return{div:[{h2:"404"},{p:"This page could not be found."}]}}function rt(e,t){return e.findIndex(n=>n.status===t)}function q(e){var _;let{match:t,baseContext:n,results:r,retry:s,defaultError:i,defaultNotFound:o}=e,{chain:a,chainIds:l}=t.route,h={};for(let d=0;d<a.length;d++)h[l[d]]=(_=r[d])==null?void 0:_.data;let u=a.map((d,w)=>{var P;return x(k({},n),{data:(P=r[w])==null?void 0:P.data,segmentData:h})}),c=rt(r,"error"),p=rt(r,"notfound"),m=rt(r,"pending"),g,f,v;if(c!==-1){let d=st(a,c,P=>!!P.error);g=(d===-1?i:a[d].error)(r[c].error,s),g._key=`${l[Math.max(d,0)]}:error`,f=Math.min(d,c-1),v="error"}else if(p!==-1){let d=st(a,p,P=>!!P.notFound);g=(d===-1?o:a[d].notFound)(),g._key=`${l[Math.max(d,0)]}:notfound`,f=Math.min(d,p-1),v="notfound"}else if(m!==-1){let d=st(a,m,w=>!!w.loading);if(d===-1)return{element:{div:""},status:"loading"};g=a[d].loading(u[d]),g._key=`${l[d]}:loading`,f=Math.min(d,m-1),v="loading"}else g=a[a.length-1].page(u[a.length-1]),g._key=`${t.route.id}:page`,f=a.length-1,v="idle";let y=g;for(let d=f;d>=0;d--){let w=a[d].layout;w&&(y=w(y,u[d]),y._key===void 0&&(y._key=`${l[d]}:layout`))}return{element:y,status:v}}function st(e,t,n){for(let r=t;r>=0;r--)if(n(e[r]))return r;return-1}function at(e){let t=e();return t._key===void 0&&(t._key="app:notfound"),{element:t,status:"notfound"}}var F=null;function lt(){if(!F)throw new Error("No router created yet. Call createApp() or new AppRouter() first.");return F}var A=class{constructor(t,n={}){this.events=new j;this.cache=new U;this.navigationToken=0;this.releaseHistory=null;this.currentMatch=null;this.metadata={};this.lastRedirect=null;this.lastData={};var r,s,i;this.routes=I(t),this.middleware=(r=n.middleware)!=null?r:[],this.notFoundBlock=(s=n.notFound)!=null?s:ot,this.errorBlock=(i=n.error)!=null?i:(o=>it(o)),this.headers=n.headers,this.history=n.history!==void 0?n.history:typeof window!="undefined"?nt():null,this.state=new Ot({pathname:"/",search:"",hash:"",params:{},status:"idle",error:null}),this.tree=xt({div:""}),F=this}start(){return b(this,null,function*(){this.history&&!this.releaseHistory&&(this.releaseHistory=this.history.listen(n=>{this.transition(n,{fromHistory:!0})}));let t=this.history?this.history.url():new URL("/","http://localhost");yield this.transition(t,{initial:!0})})}destroy(){var t;(t=this.releaseHistory)==null||t.call(this),this.releaseHistory=null,F===this&&(F=null)}currentUrl(){if(this.history)return this.history.url();let t=this.state.get("search");return new URL(`${this.state.get("pathname")}${t}`,"http://localhost")}resolve(t){return new URL(t,this.currentUrl())}navigate(r){return b(this,arguments,function*(t,n={}){let s=this.resolve(t);if(typeof window!="undefined"&&s.origin!==this.currentUrl().origin){window.location.assign(s.href);return}yield this.transition(s,n)})}push(t,n={}){return this.navigate(t,n)}replace(t,n={}){return this.navigate(t,x(k({},n),{replace:!0}))}back(){var t;(t=this.history)==null||t.go(-1)}forward(){var t;(t=this.history)==null||t.go(1)}refresh(){return b(this,null,function*(){this.cache.invalidate(),yield this.transition(this.currentUrl(),{replace:!0,scroll:!1})})}prefetch(t){return b(this,null,function*(){try{let n=this.resolve(t),r=O(this.routes,n.pathname);if(!r)return;let s=this.loaderContext(n,r);yield Promise.all(r.route.chain.map((i,o)=>{if(!i.loader)return Promise.resolve();let a=this.cacheKey(r.route.chainIds[o],n);return this.cache.prefetch(a,i.loader,s,i.revalidate)}))}catch(n){}})}searchParams(t){return new URLSearchParams(this.state.get("search",t))}addEventListener(t,n){return this.events.addListener(t,n)}getMatch(){return this.currentMatch}cacheKey(t,n){return`${t}|${n.pathname}${n.search}`}loaderContext(t,n){return{pathname:n.pathname,url:t.pathname+t.search,params:n.params,searchParams:t.searchParams,headers:this.headers}}transition(r){return b(this,arguments,function*(t,n={}){var o,a;let s=++this.navigationToken,i=t.pathname+t.search+t.hash;n.fromHistory||(this.lastRedirect=null),this.events.notify("routeChangeStart",i),this.saveScroll();try{let l=t.pathname,h={url:t,pathname:t.pathname,searchParams:t.searchParams,headers:this.headers};for(let c of this.middleware){let p=yield c(h);G(p)&&(l=p.__domphyRewrite)}if(s!==this.navigationToken)return;let u=O(this.routes,l);if(u){let c=u.route.chain[u.route.chain.length-1];if(c.redirect)throw new S(c.redirect,(o=c.permanent)!=null?o:!1);for(let p of u.route.chain)for(let m of(a=p.middleware)!=null?a:[]){let g=yield m(h);if(G(g)){yield this.transition(new URL(g.__domphyRewrite,t),n);return}}if(s!==this.navigationToken)return;yield this.renderMatch(t,u,s,n)}else yield this.renderNotFound(t,s,n)}catch(l){if(s!==this.navigationToken)return;if(l instanceof S){yield this.transition(this.resolve(l.to),x(k({},n),{replace:!0})),this.lastRedirect={to:l.to,permanent:l.permanent};return}if(l instanceof T){yield this.renderNotFound(t,s,n);return}let h=l instanceof Error?l:new Error(String(l));this.tree.set(this.errorBlock(h,()=>{this.refresh()})),this.state.set("status","error"),this.state.set("error",h),this.events.notify("routeChangeError",h,i);return}s===this.navigationToken&&this.events.notify("routeChangeComplete",i)})}renderMatch(t,n,r,s){return b(this,null,function*(){let{chain:i,chainIds:o}=n.route,a=this.loaderContext(t,n),l=i.map(()=>({status:"pending"})),h=null,u=i.map((f,v)=>{if(!f.loader)return l[v]={status:"success",data:void 0},Promise.resolve();let y=this.cacheKey(o[v],t);return this.cache.load(y,f.loader,a,f.revalidate).then(_=>{l[v]={status:"success",data:_}},_=>{_ instanceof S?h=h!=null?h:_:_ instanceof T?l[v]={status:"notfound"}:l[v]={status:"error",error:_ instanceof Error?_:new Error(String(_))}})}),c=!1,p=Promise.all(u).then(()=>{c=!0});if(yield new Promise(f=>setTimeout(f,0)),!c&&i.some(f=>f.loading)){let f=q({match:n,baseContext:this.baseContext(t,n),results:l.map(v=>k({},v)),retry:()=>{this.refresh()},defaultError:this.errorBlock,defaultNotFound:this.notFoundBlock});r===this.navigationToken&&f.status==="loading"&&(this.state.set("status","loading"),this.tree.set(f.element))}if(yield p,r!==this.navigationToken)return;if(h)throw h;let m=q({match:n,baseContext:this.baseContext(t,n),results:l,retry:()=>{this.refresh()},defaultError:this.errorBlock,defaultNotFound:this.notFoundBlock}),g={};i.forEach((f,v)=>{f.loader&&l[v].status==="success"&&(g[this.cacheKey(o[v],t)]=l[v].data)}),this.lastData=g,this.currentMatch=n,yield this.applyMetadata(n,a),r===this.navigationToken&&this.commit(t,n,m.element,m.status,s)})}renderNotFound(t,n,r){return b(this,null,function*(){let s=at(this.notFoundBlock);this.currentMatch=null,this.metadata={},K([]),n===this.navigationToken&&this.commit(t,null,s.element,"notfound",r)})}baseContext(t,n){return{pathname:n.pathname,url:t.pathname+t.search,params:n.params,searchParams:t.searchParams,hash:t.hash,headers:this.headers}}applyMetadata(t,n){return b(this,null,function*(){try{this.metadata=yield tt(t.route.chain.map(r=>r.metadata),n)}catch(r){this.metadata={}}K($(this.metadata))})}commit(t,n,r,s,i){var o;if(this.history&&!i.fromHistory&&!i.initial){let a=t.pathname+t.search+t.hash;i.replace?this.history.replace(a):this.history.push(a)}this.state.set("pathname",t.pathname),this.state.set("search",t.search),this.state.set("hash",t.hash),this.state.set("params",(o=n==null?void 0:n.params)!=null?o:{}),this.state.set("error",null),this.state.set("status",s),this.tree.set(r),this.restoreScroll(t,i)}saveScroll(){var t,n;typeof window!="undefined"&&((n=(t=this.history)==null?void 0:t.saveScroll)==null||n.call(t,{x:window.scrollX,y:window.scrollY}))}restoreScroll(t,n){var r,s,i,o;if(!(typeof window=="undefined"||n.scroll===!1||n.initial)){if(n.fromHistory){let a=(s=(r=this.history)==null?void 0:r.readScroll)==null?void 0:s.call(r);window.scrollTo((i=a==null?void 0:a.x)!=null?i:0,(o=a==null?void 0:a.y)!=null?o:0);return}if(t.hash){let a=document.getElementById(t.hash.slice(1));if(a){a.scrollIntoView();return}}window.scrollTo(0,0)}}};var At="__DOMPHY_APP_DATA__",V=class{constructor(t,n={}){this.node=null;this.routes=t,this.options=n,this.router=new A(t,n)}element(){let t=this.router;return{div:n=>[t.tree.get(n)],style:{display:"contents"}}}render(t){return b(this,null,function*(){return yield this.router.start(),this.node=new R(this.element()),this.node.render(t),this.node})}hydrate(t,n){return b(this,null,function*(){let r=globalThis[At];return r&&typeof r=="object"&&this.router.cache.seed(r),yield this.router.start(),this.node=new R(this.element()),this.node.mount(t,n),this.node})}destroy(){var t;(t=this.node)==null||t.remove(),this.node=null,this.router.destroy()}renderToString(r){return b(this,arguments,function*(t,n={}){let s=typeof t=="string"?new URL(t,"http://localhost"):t,i=new A(this.routes,x(k({},this.options),{history:null,headers:n.headers}));yield i.transition(s,{initial:!0});let o=i.state.get("status"),a=i.lastRedirect,l=new R({div:[i.tree.get()],style:{display:"contents"}}),h=i.lastData,u={html:l.generateHTML(),css:l.generateCSS(),head:et($(i.metadata)),status:a?a.permanent?308:307:o==="notfound"?404:200,redirect:a==null?void 0:a.to,data:h,bootstrapScript:`<script>window.${At} = ${be(h)};</script>`};return i.destroy(),u})}};function be(e){return JSON.stringify(e).replace(/</g,"\\u003c")}function _e(e,t={}){return new V(e,t)}var Re=[640,750,828,1080,1200,1920,2048,3840];function ke(e){let{src:t,alt:n="",width:r,height:s,fill:i=!1,sizes:o,quality:a=75,priority:l=!1,placeholder:h="empty",blurDataURL:u,loader:c,deviceSizes:p=Re}=e,m={src:c?c({src:t,width:r!=null?r:p[p.length-1],quality:a}):t,alt:n,loading:l?"eager":"lazy",decoding:"async",fetchPriority:l?"high":"auto",style:{}};return c&&(m.srcSet=p.map(g=>`${c({src:t,width:g,quality:a})} ${g}w`).join(", "),o&&(m.sizes=o)),r!==void 0&&(m.width=r),s!==void 0&&(m.height=s),i&&(m.style=x(k({},m.style),{position:"absolute",inset:"0",width:"100%",height:"100%",objectFit:"cover"})),h==="blur"&&u&&(m.style=x(k({},m.style),{backgroundImage:`url("${u}")`,backgroundSize:"cover",backgroundPosition:"center"}),m.onLoad=g=>{let f=g.target;f.style.backgroundImage=""}),m}function xe(e){return e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey}function Se(e){let{href:t,replace:n=!1,scroll:r=!0,prefetch:s="hover",exact:i=!1}=e,o=()=>{var u;return(u=e.router)!=null?u:lt()},a=u=>{let c=new URL(t,"http://localhost").pathname;return i||c==="/"?u===c:u===c||u.startsWith(`${c}/`)},l=!1,h=()=>{l||(l=!0,o().prefetch(t))};return{href:t,ariaCurrent:u=>a(o().state.get("pathname",u))?"page":null,dataActive:u=>a(o().state.get("pathname",u))?"":null,onClick:u=>{let c=u,p=c.currentTarget;xe(c)||p.target&&p.target!=="_self"||p.hasAttribute("download")||new URL(p.href,window.location.href).origin===window.location.origin&&(c.preventDefault(),o().navigate(t,{replace:n,scroll:r}))},onMouseEnter:()=>{s==="hover"&&h()},onFocus:()=>{s==="hover"&&h()},_onMount:u=>{if(s!=="visible")return;if(typeof IntersectionObserver=="undefined"){h();return}let c=new IntersectionObserver(p=>{p.some(m=>m.isIntersecting)&&(h(),c.disconnect())});c.observe(u.domElement),u.setMetadata("navLinkObserver",c)},_onRemove:u=>{let c=u.getMetadata("navLinkObserver");c==null||c.disconnect()}}}var ht=new Set;function Ee(){ht.clear()}function It(e){let t=globalThis.requestIdleCallback;t?t(e):setTimeout(e,0)}function Te(e){let{src:t,strategy:n="afterInteractive",id:r,async:s=!0,onLoad:i,onError:o}=e,a=r!=null?r:t,l=u=>{ht.has(a)||(ht.add(a),u.src=t)},h={script:"",async:s,onLoad:()=>i==null?void 0:i(),onError:()=>o==null?void 0:o(),_onMount:u=>{let c=u.domElement;if(n==="afterInteractive"){l(c);return}document.readyState==="complete"?It(()=>l(c)):window.addEventListener("load",()=>It(()=>l(c)),{once:!0})}};return r!==void 0&&(h.id=r),h}function Me(e){return e}return zt(Ce);})();
|
|
1
|
+
"use strict";var Domphy=(()=>{var Y=Object.defineProperty,zt=Object.defineProperties,Wt=Object.getOwnPropertyDescriptor,Gt=Object.getOwnPropertyDescriptors,Kt=Object.getOwnPropertyNames,gt=Object.getOwnPropertySymbols;var vt=Object.prototype.hasOwnProperty,qt=Object.prototype.propertyIsEnumerable;var yt=(e,t,n)=>t in e?Y(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,k=(e,t)=>{for(var n in t||(t={}))vt.call(t,n)&&yt(e,n,t[n]);if(gt)for(var n of gt(t))qt.call(t,n)&&yt(e,n,t[n]);return e},S=(e,t)=>zt(e,Gt(t));var wt=(e,t)=>{for(var n in t)Y(e,n,{get:t[n],enumerable:!0})},Vt=(e,t,n,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let r of Kt(t))!vt.call(e,r)&&r!==n&&Y(e,r,{get:()=>t[r],enumerable:!(s=Wt(t,r))||s.enumerable});return e};var Yt=e=>Vt(Y({},"__esModule",{value:!0}),e);var R=(e,t,n)=>new Promise((s,r)=>{var i=l=>{try{a(n.next(l))}catch(h){r(h)}},o=l=>{try{a(n.throw(l))}catch(h){r(h)}},a=l=>l.done?s(l.value):Promise.resolve(l.value).then(i,o);a((n=n.apply(e,t)).next())});var Ae={};wt(Ae,{app:()=>et});var et={};wt(et,{AppRouter:()=>I,DataCache:()=>q,DomphyApp:()=>tt,NotFoundSignal:()=>M,PREFETCH_LIFETIME:()=>at,RedirectSignal:()=>T,applyHeadTags:()=>Z,buildHref:()=>Jt,buildNotFoundTree:()=>Q,buildTree:()=>$,compareSpecificity:()=>Rt,compileRoutes:()=>O,createApiHandler:()=>ne,createApp:()=>Te,createBrowserHistory:()=>lt,createMemoryHistory:()=>Se,defaultErrorBlock:()=>ct,defaultNotFoundBlock:()=>ut,defineRoutes:()=>Ne,getRouter:()=>pt,isRewrite:()=>z,json:()=>W,matchPath:()=>_t,matchRoute:()=>P,matchRouteSuffix:()=>st,metadataToHeadTags:()=>F,navLink:()=>Pe,notFound:()=>Qt,optimizedImage:()=>Ce,parseSegment:()=>J,permanentRedirect:()=>Zt,redirect:()=>Xt,renderHeadTags:()=>K,resetScripts:()=>Be,resolveMetadata:()=>X,rewrite:()=>te,script:()=>Oe,splitPath:()=>j,urlPartCount:()=>nt});function J(e){return e.startsWith("(")&&e.endsWith(")")?{kind:"group",value:e.slice(1,-1)}:e.startsWith("[[...")&&e.endsWith("]]")?{kind:"optional-catchall",value:e.slice(5,-2)}:e.startsWith("[...")&&e.endsWith("]")?{kind:"catchall",value:e.slice(4,-1)}:e.startsWith("[")&&e.endsWith("]")?{kind:"dynamic",value:e.slice(1,-1)}:{kind:"static",value:e}}function j(e){return e.split("/").filter(t=>t.length>0)}function nt(e){return j(e).map(J).filter(t=>t.kind!=="group").length}function st(e,t,n){let s=`/${j(t).slice(n).join("/")}`;return P(e,s)}function O(e){let t=[];function n(s,r,i,o,a){for(let l of s){let h=j(l.path),d=h.map(J),c=[...r,...d.filter(g=>g.kind!=="group")],u=`${a}/${h.join("/")}`.replace(/\/+/g,"/"),p=[...i,l],f=[...o,u===""?"/":u];(l.page||l.redirect)&&t.push({id:u===""?"/":u,segments:c,chain:p,chainIds:f}),l.children&&n(l.children,c,p,f,u)}}return n(e,[],[],[],""),t.sort(Rt),t}var bt={static:0,dynamic:1,catchall:2,"optional-catchall":3,group:0};function Rt(e,t){let n=Math.max(e.segments.length,t.segments.length);for(let s=0;s<n;s++){let r=e.segments[s],i=t.segments[s];if(!r)return-1;if(!i)return 1;let o=bt[r.kind]-bt[i.kind];if(o!==0)return o}return 0}function _t(e,t){let n=j(t).map(i=>decodeURIComponent(i)),s={},r=0;for(let i=0;i<e.length;i++){let o=e[i],a=i===e.length-1;if(o.kind==="static"){if(n[r]!==o.value)return null;r++;continue}if(o.kind==="dynamic"){if(r>=n.length)return null;s[o.value]=n[r],r++;continue}if(o.kind==="catchall")return!a||r>=n.length?null:(s[o.value]=n.slice(r),s);if(o.kind==="optional-catchall")return a?(s[o.value]=n.slice(r),s):null}return r!==n.length?null:s}function P(e,t){for(let n of e){let s=_t(n.segments,t);if(s)return{route:n,params:s,pathname:t}}return null}function Jt(e,t={}){return`/${j(e).map(J).filter(s=>s.kind!=="group").flatMap(s=>{if(s.kind==="static")return[s.value];let r=t[s.value];if(r===void 0){if(s.kind==="optional-catchall")return[];throw new Error(`Missing param "${s.value}" for pattern "${e}".`)}return(Array.isArray(r)?r:[r]).map(o=>encodeURIComponent(o))}).join("/")}`}var T=class extends Error{constructor(t,n){super(`Redirect to ${t}`),this.name="RedirectSignal",this.to=t,this.permanent=n}},M=class extends Error{constructor(){super("Not found"),this.name="NotFoundSignal"}};function Xt(e){throw new T(e,!1)}function Zt(e){throw new T(e,!0)}function Qt(){throw new M}function te(e){return{__domphyRewrite:e}}function z(e){return typeof e=="object"&&e!==null&&typeof e.__domphyRewrite=="string"}var ee=["GET","POST","PUT","PATCH","DELETE","HEAD","OPTIONS"];function W(e,t={}){let n=new Headers(t.headers);return n.has("content-type")||n.set("content-type","application/json; charset=utf-8"),new Response(JSON.stringify(e),S(k({},t),{headers:n}))}function ne(e){let t=e.map(r=>({apiRoute:r,routeNode:{path:r.path,page:()=>({div:""})}})),n=O(t.map(r=>r.routeNode)),s=new Map(t.map(r=>[r.routeNode,r.apiRoute]));return r=>R(null,null,function*(){let i=new URL(r.url),o=P(n,i.pathname);if(!o)return W({error:"Not Found"},{status:404});let a=s.get(o.route.chain[o.route.chain.length-1]),l=ee.filter(c=>a[c]),h=r.method.toUpperCase(),d=a[h];if(!d&&h==="HEAD"&&a.GET&&(d=a.GET),!d&&h==="OPTIONS")return new Response(null,{status:204,headers:{allow:l.join(", ")}});if(!d)return W({error:"Method Not Allowed"},{status:405,headers:{allow:l.join(", ")}});try{let c=yield d(r,{params:o.params});return h==="HEAD"?new Response(null,{status:c.status,headers:c.headers}):c}catch(c){return c instanceof T?new Response(null,{status:c.permanent?308:307,headers:{location:c.to}}):c instanceof M?W({error:"Not Found"},{status:404}):W({error:"Internal Server Error"},{status:500})}})}var se=Object.defineProperty,kt=Object.getOwnPropertySymbols,re=Object.prototype.hasOwnProperty,ie=Object.prototype.propertyIsEnumerable,xt=(e,t,n)=>t in e?se(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,St=(e,t)=>{for(var n in t||(t={}))re.call(t,n)&&xt(e,n,t[n]);if(kt)for(var n of kt(t))ie.call(t,n)&&xt(e,n,t[n]);return e},oe=["onAbort","onAuxClick","onBeforeMatch","onBeforeToggle","onBlur","onCancel","onCanPlay","onCanPlayThrough","onChange","onClick","onClose","onContextLost","onContextMenu","onContextRestored","onCopy","onCueChange","onCut","onDblClick","onDrag","onDragEnd","onDragEnter","onDragLeave","onDragOver","onDragStart","onDrop","onDurationChange","onEmptied","onEnded","onError","onFocus","onFormData","onInput","onInvalid","onKeyDown","onKeyPress","onKeyUp","onLoad","onLoadedData","onLoadedMetadata","onLoadStart","onMouseDown","onMouseEnter","onMouseLeave","onMouseMove","onMouseOut","onMouseOver","onMouseUp","onPaste","onPause","onPlay","onPlaying","onProgress","onRateChange","onReset","onResize","onScroll","onScrollEnd","onSecurityPolicyViolation","onSeeked","onSeeking","onSelect","onSlotChange","onStalled","onSubmit","onSuspend","onTimeUpdate","onToggle","onVolumeChange","onWaiting","onWheel","onTouchStart","onTouchMove","onTouchEnd","onTouchCancel","onPointerDown","onPointerMove","onPointerUp","onPointerCancel","onPointerEnter","onPointerLeave","onPointerOver","onPointerOut","onGotPointerCapture","onLostPointerCapture","onCompositionStart","onCompositionUpdate","onCompositionEnd","onTransitionEnd","onTransitionStart","onAnimationStart","onAnimationEnd","onAnimationIteration","onFullscreenChange","onFullscreenError","onFocusIn","onFocusOut"],ae=oe.reduce((e,t)=>{let n=t.slice(2).toLowerCase();return e[n]=t,e},{}),Ct=["a","abbr","address","article","aside","audio","b","base","blockquote","br","button","canvas","caption","cite","code","col","colgroup","data","datalist","dd","del","details","dfn","dialog","div","dl","dt","em","fieldset","figcaption","figure","footer","form","h1","h2","h3","h4","h5","h6","header","hgroup","i","iframe","img","input","ins","kbd","label","legend","li","main","map","mark","meta","meter","nav","noscript","object","ol","optgroup","option","output","p","param","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","slot","small","source","span","strong","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","title","tr","track","u","ul","var","video","wbr","bdi","bdo","math","menu","search","area","embed","hr","animate","animateMotion","animateTransform","circle","clipPath","cursor","defs","desc","ellipse","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","filter","foreignObject","g","image","line","linearGradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","prefetch","radialGradient","rect","set","solidColor","stop","svg","switch","symbol","tbreak","text","textPath","tspan","use","view"],C=[],le=typeof queueMicrotask=="function"?queueMicrotask:e=>{Promise.resolve().then(e).catch(t=>{setTimeout(()=>{throw t},0)})},Et=100,D=class{constructor(){this._listeners={},this._pending=new Map,this._scheduled=!1,this._flushing=new Map,this._selfDepth=0}_dispose(){if(this._listeners)for(let e in this._listeners)this._listeners[e].clear();this._listeners=null}addListener(e,t){if(!this._listeners)return()=>{};if(typeof e!="string"||typeof t!="function")throw new Error("Event name must be a string, listener must be a function");this._listeners[e]||(this._listeners[e]=new Set);let n=()=>this.removeListener(e,t);return this._listeners[e].has(t)||(this._listeners[e].add(t),typeof t.onSubscribe=="function"&&t.onSubscribe(n)),n}removeListener(e,t){if(!this._listeners)return;let n=this._listeners[e];n&&n.has(t)&&(n.delete(t),n.size===0&&delete this._listeners[e])}notify(e,...t){if(!this._listeners||!this._listeners[e])return;let n=C.length?C[C.length-1]:null;if(n&&n[0]===this&&n[1]===e){let s=this._flushing.get(e);if(s&&s[0]===t[0])return;if(this._selfDepth>=Et){console.error(`[Domphy] Runaway self-update on "${e}" \u2014 stopped after ${Et} iterations`);return}this._selfDepth++,this._pending.set(e,{args:t,chain:[]})}else{if(this._isCircular(e))return;this._pending.set(e,{args:t,chain:[...C]})}this._scheduled||(this._scheduled=!0,le(()=>this._flushAll()))}_isCircular(e){let t=C.findIndex(([s,r])=>s===this&&r===e);if(t===-1)return!1;let n=[...C.slice(t).map(([,s])=>s),e];return console.error(`[Domphy] Circular dependency detected:
|
|
2
|
+
${n.join(" \u2192 ")}`),!0}_flushAll(){this._scheduled=!1;let e=this._pending;this._pending=new Map;for(let[t,{args:n,chain:s}]of e)C=s,this._flush(t,n);C=[],this._pending.size===0&&(this._selfDepth=0)}_flush(e,t){if(!this._listeners)return;let n=this._listeners[e];if(n){C.push([this,e]),this._flushing.set(e,t);for(let s of[...n])if(n.has(s))try{s(...t)}catch(r){console.error(r)}this._flushing.delete(e),C.pop()}}},Tt=class{constructor(e,t=typeof e){this.name=t,this._isState=!0,this._notifier=new D,this.initialValue=e,this._value=e}get(e){return e&&this.addListener(e),this._value}set(e){this._notifier&&(this._value=e,this._notifier.notify(this.name,e))}reset(){this.set(this.initialValue)}addListener(e){return this._notifier?this._notifier.addListener(this.name,e):()=>{}}removeListener(e){this._notifier&&this._notifier.removeListener(this.name,e)}_dispose(){this._notifier&&(this._notifier._dispose(),this._notifier=null)}};function A(e={},t={}){let n=["animation","transition","boxShadow","textShadow","background","fontFamily"],s=["class","rel","transform","acceptCharset","sandbox"],r=["content"];Object.prototype.toString.call(t)==="[object Object]"&&Object.getPrototypeOf(t)===Object.prototype&&(t=B(t));for(let i in t){let o=t[i];if(!(o==null||o===""))if(typeof o=="object"&&!Array.isArray(o))typeof e[i]=="object"?e[i]=A(e[i],o):e[i]=o;else if(n.includes(i))if(typeof e[i]=="function"||typeof o=="function"){let a=e[i];e[i]=l=>{let h=typeof a=="function"?a(l):a,d=typeof o=="function"?o(l):o;return[h,d].filter(c=>c).join(", ")}}else e[i]=[e[i],o].filter(a=>a).join(", ");else if(r.includes(i))if(typeof e[i]=="function"||typeof o=="function"){let a=e[i];e[i]=l=>{let h=typeof a=="function"?a(l):a,d=typeof o=="function"?o(l):o;return[h,d].filter(c=>c).join("")}}else e[i]=[e[i],o].filter(a=>a).join("");else if(s.includes(i))if(typeof e[i]=="function"||typeof o=="function"){let a=e[i];e[i]=l=>{let h=typeof a=="function"?a(l):a,d=typeof o=="function"?o(l):o;return[h,d].filter(c=>c).join(" ")}}else e[i]=[e[i],o].filter(a=>a).join(" ");else if(i.startsWith("on")){let a=i.replace("on","").toLowerCase();ce(e,a,o)}else if(i.startsWith("_on")){let a=i.replace("_on","");de(e,a,o)}else e[i]=o}return e}function he(e=""){let t=2166136261;for(let n=0;n<e.length;n++)t^=e.charCodeAt(n),t=t*16777619>>>0;return String.fromCharCode(97+t%26)+t.toString(16)}function Lt(e,t){return e instanceof Tt||e!=null&&e._isState?e:new Tt(e,t)}function de(e,t,n){let s=`_on${t}`,r=e[s];typeof r=="function"?e[s]=(...i)=>{r(...i),n(...i)}:e[s]=n}function ce(e,t,n){let s=ae[t];if(!s)throw Error(`invalid event name "${t}"`);let r=e[s];typeof r=="function"?e[s]=(i,o)=>{r(i,o),n(i,o)}:e[s]=n}function B(e,t=new WeakMap){if(e===null||typeof e!="object"||typeof e=="function")return e;if(t.has(e))return t.get(e);let n=Object.getPrototypeOf(e);if(n!==Object.prototype&&!Array.isArray(e))return e;let s;if(Array.isArray(e)){s=[],t.set(e,s);for(let r of e)s.push(B(r,t));return s}if(e instanceof Date)return new Date(e);if(e instanceof RegExp)return new RegExp(e);if(e instanceof Map){s=new Map,t.set(e,s);for(let[r,i]of e)s.set(B(r,t),B(i,t));return s}if(e instanceof Set){s=new Set,t.set(e,s);for(let r of e)s.add(B(r,t));return s}if(ArrayBuffer.isView(e))return new e.constructor(e);if(e instanceof ArrayBuffer)return e.slice(0);s=Object.create(n),t.set(e,s);for(let r of Reflect.ownKeys(e))s[r]=B(e[r],t);return s}function Pt(e,t=!1){if(Object.prototype.toString.call(e)!=="[object Object]")throw Error(`typeof ${e} is invalid DomphyElement`);let n=Object.keys(e);for(let s=0;s<n.length;s++){let r=n[s],i=e[r];if(s==0&&!Ct.includes(r)&&!r.includes("-")&&!t)throw Error(`key ${r} is not valid HTML tag name`);if(r=="style"&&i&&Object.prototype.toString.call(i)!=="[object Object]")throw Error('"style" must be a object');if(r=="$")e.$.forEach(o=>Pt(o,!0));else{if(r.startsWith("_on")&&typeof i!="function")throw Error(`hook ${r} value "${i}" must be a function `);if(r.startsWith("on")&&typeof i!="function")throw Error(`event ${r} value "${i}" must be a function `);if(r=="_portal"&&typeof i!="function")throw Error('"_portal" must be a function return HTMLElement');if(r=="_context"&&Object.prototype.toString.call(i)!=="[object Object]")throw Error('"_context" must be a object');if(r=="_metadata"&&Object.prototype.toString.call(i)!=="[object Object]")throw Error('"_metadata" must be a object');if(r=="_key"&&typeof i!="string"&&typeof i!="number")throw Error('"_key" must be a string or number')}}return!0}function Mt(e){return/<([a-z][\w-]*)(\s[^>]*)?>.*<\/\1>|<([a-z][\w-]*)(\s[^>]*)?\/>/i.test(e.trim())}function Bt(e){return e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Ot(e){return Object.keys(e).find(t=>Ct.includes(t))}function Nt(e){return e.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase()}function ue(e){if(e.indexOf("@")===0)return[e];for(var t=[],n=0,s=0,r="",i=0,o=e.length;i<o;i++){var a=e[i];if(a==="(")n+=1;else if(a===")")n-=1;else if(a==="[")s+=1;else if(a==="]")s-=1;else if(a===","&&!n&&!s){t.push(r.trim()),r="";continue}r+=a}return t.push(r.trim()),t}function rt(e){let t=e.trim();return t.startsWith("@")?t.replace(/\s+/g,""):t.replace(/\s*([>+~,])\s*/g,"$1").replace(/\s+/g," ").replace(/\(\s*odd\s*\)/g,"(2n+1)").replace(/\(\s*even\s*\)/g,"(2n)").trim()}function pe(e,t){for(let n=0;n<e.length;n++){let s=e[n],r=null;typeof s.selectorText=="string"?r=rt(s.selectorText):typeof s.cssText=="string"&&s.cssText.startsWith("@")&&(r=rt(s.cssText.split("{")[0])),r&&!t.has(r)&&t.set(r,s)}return t}function At(e){var t;let n=e.querySelector("#domphy-style");return n||(n=document.createElement("style"),n.id="domphy-style",e.appendChild(n)),n.dataset.domphyBase!=="true"&&((t=n.sheet)==null||t.insertRule("[hidden] { display: none !important; }",0),n.dataset.domphyBase="true"),n}var it=e=>{if(Array.isArray(e.$)){let t={};return e.$.forEach(n=>A(t,it(n))),delete e.$,A(t,e),t}else return e},me=["area","base","br","col","embed","hr","img","input","link","meta","source","track","wbr"],fe=["svg","circle","path","rect","ellipse","line","polyline","polygon","g","defs","use","symbol","linearGradient","radialGradient","stop","clipPath","mask","filter","text","tspan","textPath","image","pattern","marker","animate","animateTransform","animateMotion","feGaussianBlur","feComposite","feColorMatrix","feMerge","feMergeNode","feOffset","feFlood","feBlend","foreignObject"],Dt=["allowFullScreen","async","autoFocus","autoPlay","checked","compact","contentEditable","controls","declare","default","defer","disabled","formNoValidate","hidden","isMap","itemScope","loop","multiple","muted","noHref","noShade","noValidate","open","playsInline","readonly","required","reversed","scoped","selected","sortable","trueSpeed","typeMustMatch","wmode","autoCapitalize","translate","spellCheck","inert","download","noModule","paused","autoPictureInPicture"],H={transform:["webkit","ms"],transition:["webkit","ms"],animation:["webkit"],userSelect:["webkit","ms"],flexDirection:["webkit","ms"],flexWrap:["webkit","ms"],justifyContent:["webkit","ms"],alignItems:["webkit","ms"],alignSelf:["webkit","ms"],order:["webkit","ms"],flexGrow:["webkit","ms"],flexShrink:["webkit","ms"],flexBasis:["webkit","ms"],columns:["webkit"],columnCount:["webkit"],columnGap:["webkit"],columnRule:["webkit"],columnWidth:["webkit"],boxSizing:["webkit"],appearance:["webkit","moz"],filter:["webkit"],backdropFilter:["webkit"],clipPath:["webkit"],mask:["webkit"],maskImage:["webkit"],textSizeAdjust:["webkit","ms"],hyphens:["webkit","ms"],writingMode:["webkit","ms"],gridTemplateColumns:["ms"],gridTemplateRows:["ms"],gridAutoColumns:["ms"],gridAutoRows:["ms"],gridColumn:["ms"],gridRow:["ms"],marginInlineStart:["webkit"],marginInlineEnd:["webkit"],paddingInlineStart:["webkit"],paddingInlineEnd:["webkit"],minInlineSize:["webkit"],maxInlineSize:["webkit"],minBlockSize:["webkit"],maxBlockSize:["webkit"],inlineSize:["webkit"],blockSize:["webkit"],tabSize:["moz"],overscrollBehavior:["webkit","ms"],touchAction:["ms"],resize:["webkit"],printColorAdjust:["webkit"],backgroundClip:["webkit"],boxDecorationBreak:["webkit"],overflowScrolling:["webkit"]},ge=["viewBox","preserveAspectRatio","gradientTransform","gradientUnits","spreadMethod","markerStart","markerMid","markerEnd","markerHeight","markerWidth","markerUnits","refX","refY","patternContentUnits","patternTransform","patternUnits","filterUnits","primitiveUnits","kernelUnitLength","clipPathUnits","maskContentUnits","maskUnits"],ye=class{constructor(e,t,n){this._notifier=new D,this._releases=[],this.parent=n,this.isBoolean=Dt.includes(e),ge.includes(e)?this.name=e:this.name=Nt(e),this.value=void 0,this.set(t)}render(){if(!this.parent||!this.parent.domElement)return;let e=this.parent.domElement,t=["value"];this.isBoolean?this.value===!1||this.value==null?e.removeAttribute(this.name):e.setAttribute(this.name,this.value===!0?"":this.value):this.value==null?e.removeAttribute(this.name):t.includes(this.name)?e[this.name]=this.value:e.setAttribute(this.name,this.value)}set(e){var t,n;let s=this.value;if(this._releases.length){for(let r of this._releases)r();this._releases=[]}if(e==null)this.value=null;else if(typeof e=="function"){let r=()=>{if(!this.parent||this.parent._disposed)return;let i=this.value;this.value=this.isBoolean?!!e(r):e(r),this.render(),i!==this.value&&this._notifier.notify(this.name,this.value)};r.elementNode=this.parent,r.debug=`class:${(t=this.parent)==null?void 0:t.tagName}_${(n=this.parent)==null?void 0:n.nodeId} attribute:${this.name}`,r.onSubscribe=i=>{this._releases.push(i),this.parent&&this.parent.addHook("BeforeRemove",()=>{i(),r=null})},this.value=this.isBoolean?!!e(r):e(r)}else this.value=this.isBoolean?!!e:e;this.render(),s!==this.value&&this._notifier.notify(this.name,this.value)}addListener(e){let t=e;t.onSubscribe=n=>{var s;return(s=this.parent)==null?void 0:s.addHook("BeforeRemove",n)},this._notifier.addListener(this.name,t)}remove(){this.parent&&this.parent.attributes&&this.parent.attributes.remove(this.name),this._dispose()}_dispose(){this._notifier._dispose(),this.value=null,this.parent=null}generateHTML(){let{name:e,value:t}=this;if(this.isBoolean)return t?`${e}`:"";{let n=Array.isArray(t)?JSON.stringify(t):t;return`${e}="${Bt(String(n))}"`}}},ve=class{constructor(e){this.items={},this.parent=e}generateHTML(){if(!this.items)return"";let e=Object.values(this.items).map(t=>t.generateHTML()).join(" ");return e?` ${e}`:""}get(e){var t;if(this.items)return(t=this.items[e])==null?void 0:t.value}set(e,t){!this.items||!this.parent||(this.items[e]?this.items[e].set(t):this.items[e]=new ye(e,t,this.parent))}addListener(e,t){this.has(e)&&this.items[e].addListener(t)}has(e){return this.items?Object.prototype.hasOwnProperty.call(this.items,e):!1}remove(e){this.items&&(this.items[e]&&(this.items[e]._dispose(),delete this.items[e]),this.parent&&this.parent.domElement&&this.parent.domElement instanceof Element&&this.parent.domElement.removeAttribute(e))}_dispose(){if(this.items)for(let e in this.items)this.items[e]._dispose();this.items=null,this.parent=null}toggle(e,t){if(!Dt.includes(e))throw Error(`${e} is not a boolean attribute`);t===!0?this.set(e,!0):t===!1?this.remove(e):this.has(e)?this.remove(e):this.set(e,!0)}addClass(e){if(!e||typeof e!="string")return;let t=(s,r)=>{let i=(s||"").split(" ").filter(o=>o);return!i.includes(r)&&i.push(e),i.join(" ")},n=this.get("class");typeof n=="function"?this.set("class",()=>t(n(),e)):this.set("class",t(n,e))}hasClass(e){return!e||typeof e!="string"?!1:(this.get("class")||"").split(" ").filter(t=>t).includes(e)}toggleClass(e){!e||typeof e!="string"||(this.hasClass(e)?this.removeClass(e):this.addClass(e))}removeClass(e){if(!e||typeof e!="string")return;let t=(this.get("class")||"").split(" ").filter(n=>n).filter(n=>n!==e);t.length>0?this.set("class",t.join(" ")):this.remove("class")}replaceClass(e,t){!e||!t||typeof e!="string"||typeof t!="string"||this.hasClass(e)&&(this.removeClass(e),this.addClass(t))}},we=class{constructor(e,t){this.type="TextNode",this.parent=t,this.text=e===""?"\u200B":String(e)}_createDOMNode(){let e;if(Mt(this.text)){let t=document.createElement("template");t.innerHTML=this.text.trim(),e=t.content.firstChild||document.createTextNode("")}else e=document.createTextNode(this.text);return this.domText=e,e}_dispose(){this.domText=void 0,this.text=""}generateHTML(){return this.text==="\u200B"?"​":Mt(this.text)?this.text:Bt(this.text)}render(e){let t=this._createDOMNode();e.appendChild(t)}},be=class{constructor(e){this.items=[],this._nextKey=0,this.owner=e}_createNode(e){return typeof e=="object"&&e!==null?new x(e,this.owner,this._nextKey++):new we(e==null?"":String(e),this.owner)}_moveDomElement(e,t){if(!this.owner||!this.owner.domElement)return;let n=this.owner.domElement,s=e instanceof x?e.domElement:e.domText;if(s){let r=n.childNodes[t]||null;s!==r&&n.insertBefore(s,r)}}_swapDomElement(e,t){if(!this.owner||!this.owner.domElement)return;let n=this.owner.domElement,s=e instanceof x?e.domElement:e.domText,r=t instanceof x?t.domElement:t.domText;if(!s||!r)return;let i=s.nextSibling,o=r.nextSibling;n.insertBefore(s,o),n.insertBefore(r,i)}update(e,t=!0,n=!1){var s,r,i,o;let a=this.items.slice(),l=new Map;for(let u of a)u instanceof x&&u.key!==null&&u.key!==void 0&&l.set(u.key,u);!n&&this.owner.domElement&&((r=(s=this.owner._hooks)==null?void 0:s.BeforeUpdate)==null||r.call(s,this.owner,e));let h=new Set(a),d=new Set;for(let u=0;u<e.length;u++){let p=e[u],f=typeof p=="object"&&p!==null,g=f?p._key:void 0,w=f?Ot(p):void 0;if(g!==void 0){let m=l.get(g);if(m instanceof x&&m.tagName===w){l.delete(g);let b=this.items.indexOf(m);if(b!==u&&b>=0){let y=!!m._portal;this.move(b,u,y?!1:t,!0)}m.parent=this.owner,m.patch(p),d.add(m);continue}}else if(f){let m=this.items[u];if(m instanceof x&&m.key==null&&m.tagName===w&&h.has(m)&&!d.has(m)){m.parent=this.owner,m.patch(p),d.add(m);continue}}d.add(this.insert(p,u,t,!0))}let c=this.items.slice(e.length);for(let u of c)this.remove(u,t,!0);l.forEach(u=>this.remove(u,t,!0)),n||(o=(i=this.owner._hooks)==null?void 0:i.Update)==null||o.call(i,this.owner)}insert(e,t,n=!0,s=!1){var r,i;let o=this.items.length,a=typeof t!="number"||isNaN(t)||t<0||t>o?o:t,l=this._createNode(e);if(this.items.splice(a,0,l),l instanceof x){l._hooks.Insert&&l._hooks.Insert(l);let h=this.owner.domElement;if(n&&h)if(l._portal){let d=l._portal(this.owner.getRoot());d&&l.render(d)}else{let d=l._createDOMNode(),c=(r=h.childNodes[a])!=null?r:null;h.insertBefore(d,c);let u=h.getRootNode(),p=u instanceof ShadowRoot?u:document.head,f=At(p);l.styles.render(f),l._hooks.Mount&&l._hooks.Mount(l),l.children.items.forEach(g=>{if(g instanceof x&&g._portal){let w=g._portal(g.getRoot());w&&g.render(w)}else g.render(d)})}}else{let h=this.owner.domElement;if(n&&h){let d=l._createDOMNode(),c=(i=h.childNodes[a])!=null?i:null;h.insertBefore(d,c)}}return!s&&this.owner.domElement&&this.owner._hooks.Update&&this.owner._hooks.Update(this.owner),l}remove(e,t=!0,n=!1){let s=this.items.indexOf(e);if(!(s<0)){if(e instanceof x){if(e._beforeRemoveFired)return;let r=()=>{let i=e.domElement,o=this.items.indexOf(e);o>=0&&this.items.splice(o,1),t&&i&&i.remove(),e._dispose()};if(e._hooks.BeforeRemove&&e.domElement){let i=!1,o=()=>{i||(i=!0,r())};e._beforeRemoveFired=!0,e._hooks.BeforeRemove(e,o),e._hooks.BeforeRemove.length<2&&!i&&o()}else r()}else{let r=e.domText;this.items.splice(s,1),t&&r&&r.remove(),e._dispose()}!n&&this.owner.domElement&&this.owner._hooks.Update&&this.owner._hooks.Update(this.owner)}}clear(e=!0,t=!1){if(this.items.length===0)return;let n=this.items.slice();for(let s of n)this.remove(s,e,!0);!t&&this.owner.domElement&&this.owner._hooks.Update&&this.owner._hooks.Update(this.owner)}_dispose(){this.items.forEach(e=>e._dispose()),this.items=[]}swap(e,t,n=!0,s=!1){if(e<0||t<0||e>=this.items.length||t>=this.items.length||e===t)return;let r=this.items[e],i=this.items[t];this.items[e]=i,this.items[t]=r,n&&this._swapDomElement(r,i),!s&&this.owner.domElement&&this.owner._hooks.Update&&this.owner._hooks.Update(this.owner)}move(e,t,n=!0,s=!1){if(e<0||e>=this.items.length||t<0||t>=this.items.length||e===t)return;let r=this.items[e];this.items.splice(e,1),this.items.splice(t,0,r),n&&this._moveDomElement(r,t),!s&&this.owner.domElement&&this.owner._hooks.Update&&this.owner._hooks.Update(this.owner)}generateHTML(){let e="";for(let t of this.items)e+=t.generateHTML();return e}},Re=class{constructor(e,t,n){this.value="",this.name=e,this.cssName=Nt(e),this.parentRule=n,this.set(t)}_domUpdate(){if(!this.parentRule)return;let e=this.parentRule.domRule;if(e&&e.style){let t=e.style;t.setProperty(this.cssName,String(this.value)),H[this.name]&&H[this.name].forEach(n=>{t.setProperty(`-${n}-${this.cssName}`,String(this.value))})}}_dispose(){this.value="",this.parentRule=null}set(e){var t,n,s,r;if(typeof e=="function"){let i=(()=>{var o;!this.parentRule||(o=this.parentRule.parentNode)!=null&&o._disposed||(this.value=e(i),this._domUpdate())});i.onSubscribe=o=>{var a;(a=this.parentRule.parentNode)==null||a.addHook("BeforeRemove",()=>{o(),i=null})},i.elementNode=this.parentRule.root,i.debug=`class:${(n=(t=this.parentRule)==null?void 0:t.root)==null?void 0:n.tagName}_${(r=(s=this.parentRule)==null?void 0:s.root)==null?void 0:r.nodeId} style:${this.name}`,this.value=e(i)}else this.value=e;this._domUpdate()}remove(){if(this.parentRule){if(this.parentRule.domRule instanceof CSSStyleRule){let e=this.parentRule.domRule.style;e.removeProperty(this.cssName),H[this.name]&&H[this.name].forEach(t=>{e.removeProperty(`-${t}-${this.cssName}`)})}delete this.parentRule.styleBlock[this.name],this._dispose()}}cssText(){let e=`${this.cssName}: ${this.value}`;return H[this.name]&&H[this.name].forEach(t=>{e+=`; -${t}-${this.cssName}: ${this.value}`}),e}},N=class ot{constructor(t,n){this.domRule=null,this.styleBlock={},this.selectorText=t,this.styleList=new $t(this),this.parent=n}_dispose(){if(this.styleBlock)for(let t of Object.values(this.styleBlock))t._dispose();this.styleList&&this.styleList._dispose(),this.styleBlock=null,this.styleList=null,this.domRule=null,this.parent=null}get root(){let t=this.parent;for(;t instanceof ot;)t=t.parent;return t}get parentNode(){let t=this.parent;for(;t&&t instanceof ot;)t=t.parent;return t}insertStyle(t,n){this.styleBlock&&(this.styleBlock[t]?this.styleBlock[t].set(n):this.styleBlock[t]=new Re(t,n,this))}removeStyle(t){this.styleBlock&&this.styleBlock[t]&&this.styleBlock[t].remove()}cssText(){if(!this.styleBlock||!this.styleList)return"";let t=Object.values(this.styleBlock).map(s=>s.cssText()).join(";"),n=this.styleList.cssText();return`${this.selectorText} { ${t} ${n} } `}mount(t){!t||!this.styleList||(this.domRule=t,"cssRules"in t&&this.styleList.mount(t.cssRules))}remove(){if(this.domRule&&this.domRule.parentStyleSheet){let t=this.domRule.parentStyleSheet,n=t.cssRules;for(let s=0;s<n.length;s++)if(n[s]===this.domRule){t.deleteRule(s);break}}this._dispose()}render(t){if(!this.styleBlock||!this.styleList)return;let n=Object.values(this.styleBlock).map(s=>s.cssText()).join(";");try{if(this.selectorText.startsWith("@")){if(/^@(media|supports|container|layer)\b/.test(this.selectorText)){let s=t.insertRule(`${this.selectorText} {}`,t.cssRules.length),r=t.cssRules[s];"cssRules"in r&&(this.mount(r),this.styleList.render(r))}else if(this.selectorText.startsWith("@keyframes")||this.selectorText.startsWith("@font-face")){let s=this.cssText(),r=t.insertRule(s,t.cssRules.length),i=t.cssRules[r];this.mount(i)}}else{let s=`${this.selectorText} { ${n} }`,r=t.insertRule(s,t.cssRules.length),i=t.cssRules[r];i&&"selectorText"in i&&this.mount(i)}}catch(s){console.warn("Failed to insert rule:",this.selectorText,s)}}},$t=class{constructor(e){this.items=[],this.domStyle=null,this.parent=e}get parentNode(){let e=this.parent;for(;e&&e instanceof N;)e=e.parent;return e}addCSS(e,t=""){if(!this.items||!this.parent)return;let n={};function s(r,i){return r.startsWith("&")?`${i}${r.slice(1)}`:`${i} ${r}`}for(let r in e){let i=e[r],o=ue(r);for(let a of o){let l=s(a,t);if(/^@(container|layer|supports|media)\b/.test(a)){if(typeof i=="object"&&i!=null){let h=new N(a,this.parent);h.styleList.addCSS(i,t),this.items.push(h)}}else if(a.startsWith("@keyframes")){let h=new N(a,this.parent);h.styleList.addCSS(i,""),this.items.push(h)}else if(a.startsWith("@font-face")){let h=new N(a,this.parent);for(let d in i)h.insertStyle(d,i[d]);this.items.push(h)}else if(typeof i=="object"&&i!=null){let h=new N(l,this.parent);this.items.push(h);for(let[d,c]of Object.entries(i))if(typeof c=="object"&&c!=null){let u=s(d,l);d.startsWith("&")?this.addCSS(c,u):h.styleList.insertRule(u).styleList.addCSS(c,u)}else h.insertStyle(d,c)}else n[a]=i}}if(Object.keys(n).length){let r=new N(t,this.parent);for(let i in n)r.insertStyle(i,n[i]);this.items.push(r)}}cssText(){return this.items?this.items.map(e=>e.cssText()).join(""):""}insertRule(e){if(!this.items||!this.parent)return null;let t=this.items.find(n=>n.selectorText===e);return t||(t=new N(e,this.parent),this.items.push(t)),t}hydrate(e){if(this.items)for(let t of this.items){let n=e.get(rt(t.selectorText));n&&t.mount(n)}}mount(e){if(!this.items)return;if(!e)throw Error("Require domRuleList argument");let t=0,n=s=>s.replace("(odd)","(2n+1)").replace("(even)","(2n)");this.items.forEach((s,r)=>{let i=r-t,o=e[i];o&&(s.selectorText.startsWith("@")&&o instanceof CSSKeyframesRule||"keyText"in o?s.mount(o):"selectorText"in o?o.selectorText!==n(s.selectorText)?t+=1:s.mount(o):"cssRules"in o&&s.mount(o))})}render(e){e instanceof HTMLStyleElement?(this.domStyle=e,this.items.forEach(t=>t.render(e.sheet))):e instanceof CSSGroupingRule&&this.items.forEach(t=>t.render(e))}_dispose(){if(this.items)for(let e=0;e<this.items.length;e++)this.items[e]._dispose();this.items=[],this.parent=null,this.domStyle=null}},x=class U{constructor(t,n=null,s=0){this._disposed=!1,this._beforeRemoveFired=!1,this.type="ElementNode",this.parent=null,this.children=new be(this),this.styles=new $t(this),this.attributes=new ve(this),this.domElement=null,this._hooks={},this._events=null,this._boundEvents=new Set,this._context={},this._metadata={},this.key=null;var r,i;t=B(t),Pt(t),t.style=t.style||{},this.parent=n,this.tagName=Ot(t),t=it(t),this.key=(r=t._key)!=null?r:null,this._context=t._context||{},this._metadata=t._metadata||{};let o=`${(i=this.parent)==null?void 0:i.nodeId}.${s}`,a=JSON.stringify(t.style||{},(h,d)=>typeof d=="function"?o:d);this.nodeId=he(o+a),this.attributes.addClass(`${this.tagName}_${this.nodeId}`),t._onSchedule&&t._onSchedule(this,t),this.merge(t);let l=t[this.tagName];if(l!=null&&l!=null)if(typeof l=="function"){let h=()=>{if(this._disposed)return;let d=l(h);this.children.update(Array.isArray(d)?d:[d])};h.elementNode=this,h.debug=`class:${this.tagName}_${this.nodeId} children`,h.onSubscribe=d=>this.addHook("BeforeRemove",()=>{d(),h=null}),h&&h()}else this.children.update(Array.isArray(l)?l:[l]);this._hooks.Init&&this._hooks.Init(this)}_createDOMNode(){let t=fe.includes(this.tagName)?document.createElementNS("http://www.w3.org/2000/svg",this.tagName):document.createElement(this.tagName);if(this.domElement=t,this._events)for(let n in this._events)this._bindEvent(n);return this.attributes&&Object.values(this.attributes.items).forEach(n=>n.render()),t}_bindEvent(t){if(!this.domElement||this._boundEvents.has(t))return;this._boundEvents.add(t);let n=s=>{var r,i;return(i=(r=this._events)==null?void 0:r[t])==null?void 0:i.call(r,s,this)};this.domElement.addEventListener(t,n),this.addHook("BeforeRemove",s=>{var r;(r=s.domElement)==null||r.removeEventListener(t,n),n=null})}_dispose(){var t,n,s,r;this._disposed||(this._disposed=!0,this._beforeRemoveFired||(this._beforeRemoveFired=!0,(n=(t=this._hooks).BeforeRemove)==null||n.call(t,this,()=>{})),this.children&&this.children._dispose(),this.styles&&(this.styles.items.forEach(i=>i.remove()),this.styles._dispose()),this.attributes&&this.attributes._dispose(),(r=(s=this._hooks).Remove)==null||r.call(s,this),this.domElement=null,this._hooks={},this._events=null,this._context={},this._metadata={},this.parent=null)}merge(t){A(this._context,t._context),A(this._metadata,t._metadata);let n=Object.keys(t);for(let s=0;s<n.length;s++){let r=n[s],i=t[r];["$","_onSchedule","_key","_context","_metadata","style",this.tagName].includes(r)||(["_onInit","_onInsert","_onMount","_onBeforeUpdate","_onUpdate","_onBeforeRemove","_onRemove"].includes(r)?this.addHook(r.substring(3),i):r.startsWith("on")?this.addEvent(r.substring(2).toLowerCase(),i):r=="_portal"?this._portal=i:r=="class"&&typeof i=="string"?this.attributes.addClass(i):this.attributes.set(r,i))}t.style&&this.styles.addCSS(t.style||{},`.${`${this.tagName}_${this.nodeId}`}`)}patch(t){let n=B(t);n.style=n.style||{},n=it(n);let s=n[this.tagName];if(typeof s!="function"){let h=s==null?[]:Array.isArray(s)?s:[s];this.children.update(h,!!this.domElement,!0)}n._context&&A(this._context,n._context),n._metadata&&A(this._metadata,n._metadata);let r=`${this.tagName}_${this.nodeId}`,i=["$","_onSchedule","_key","_context","_metadata","style",this.tagName],o=["_onInit","_onInsert","_onMount","_onBeforeUpdate","_onUpdate","_onBeforeRemove","_onRemove"],a=new Set(["class"]),l=null;this._events={};for(let h of Object.keys(n)){if(i.includes(h)||o.includes(h)||h==="_portal")continue;let d=n[h];h.startsWith("on")&&typeof d=="function"?this.addEvent(h.substring(2).toLowerCase(),d):h==="class"&&typeof d=="string"?l=d:(this.attributes.set(h,d),a.add(h))}if(this.attributes.set("class",l?`${r} ${l}`:r),this.attributes.items)for(let h of Object.keys(this.attributes.items))a.has(h)||this.attributes.remove(h);if(this._events)for(let h in this._events)this._bindEvent(h)}addEvent(t,n){this._events=this._events||{};let s=this._events[t];typeof s=="function"?this._events[t]=(r,i)=>{s(r,i),n(r,i)}:this._events[t]=n}addHook(t,n){let s=this._hooks[t];if(typeof s=="function"){let r=((...i)=>{s(...i),n(...i)});try{Object.defineProperty(r,"length",{value:Math.max(s.length,n.length),configurable:!0})}catch(i){}this._hooks[t]=r}else this._hooks[t]=n}getRoot(){let t=this;for(;t&&t instanceof U&&t.parent;)t=t.parent;return t}getContext(t){let n=this;for(;n&&(!n._context||!Object.prototype.hasOwnProperty.call(n._context,t));)n=n.parent;return n&&n._context?n._context[t]:void 0}setContext(t,n){this._context=this._context||{},this._context[t]=n}getMetadata(t){return this._metadata?this._metadata[t]:void 0}setMetadata(t,n){this._metadata=this._metadata||{},this._metadata[t]=n}generateCSS(){if(!this.styles||!this.children)return"";let t=this.styles.cssText();return t+=this.children.items.map(n=>n instanceof U?n.generateCSS():"").join(""),t}generateHTML(){if(!this.children||!this.attributes)return"";let t=this.attributes.generateHTML();if(me.includes(this.tagName))return`<${this.tagName}${t}>`;let n=this.children.generateHTML();return`<${this.tagName}${t}>${n}</${this.tagName}>`}mount(t,n){if(!t)throw new Error("Missing dom node on bind");if(this.domElement=t,this._events)for(let s in this._events)this._bindEvent(s);if(this.children&&this.children.items.forEach((s,r)=>{let i=t.childNodes[r];i&&(s instanceof U?s.mount(i):s.domText=i)}),n){let s=n.sheet;s&&this._hydrateStyles(pe(s.cssRules,new Map))}this._hooks.Mount&&this._hooks.Mount(this)}_hydrateStyles(t){var n;if((n=this.styles)==null||n.hydrate(t),this.children)for(let s of this.children.items)s instanceof U&&s._hydrateStyles(t)}render(t){let n=this._createDOMNode();t.appendChild(n),this._hooks.Mount&&this._hooks.Mount(this);let s=this.getRoot().styles.domStyle,r=t.getRootNode(),i=r instanceof ShadowRoot?r:document.head;return s||(s=At(i)),this.styles.render(s),this.children.items.forEach(o=>{if(o instanceof U&&o._portal){let a=o._portal(this.getRoot());a&&o.render(a)}else o.render(n)}),n}remove(){if(this.parent)this.parent.children.remove(this);else{let t=()=>{var n;(n=this.domElement)==null||n.remove(),this._dispose()};if(this._hooks.BeforeRemove&&this.domElement){let n=!1,s=()=>{n||(n=!0,t())};this._beforeRemoveFired=!0,this._hooks.BeforeRemove(this,s),this._hooks.BeforeRemove.length<2&&!n&&s()}else t()}}},It=class{constructor(e){this._notifier=new D,this.initialRecord=St({},e),this._record=St({},e)}get(e,t){return t&&this._notifier.addListener(e,t),this._record[e]}set(e,t){this._record[e]=t,this._notifier.notify(e)}addListener(e,t){return this._notifier.addListener(e,t)}removeListener(e,t){this._notifier.removeListener(e,t)}reset(e){this.set(e,this.initialRecord[e])}_dispose(){this._notifier._dispose()}};function X(e,t){return R(this,null,function*(){let n={},s=null;for(let r of e){if(!r)continue;let i=typeof r=="function"?yield r(t):r;for(let a of Object.keys(i)){if(a==="title")continue;let l=i[a];l!==void 0&&(n[a]=l)}let o=i.title;if(o!==void 0){if(typeof o=="string"){n.title=s?s.replace("%s",o):o;continue}o.absolute!==void 0?n.title=o.absolute:o.default!==void 0&&(n.title=s?s.replace("%s",o.default):o.default),o.template!==void 0&&(s=o.template)}}return n})}function G(e,t){return!t||/^[a-z][a-z0-9+.-]*:/i.test(e)?e:new URL(e,t).toString()}function _e(e){if(typeof e=="string")return e;let t=[];return t.push(e.index===!1?"noindex":"index"),t.push(e.follow===!1?"nofollow":"follow"),e.noarchive&&t.push("noarchive"),e.nosnippet&&t.push("nosnippet"),e.noimageindex&&t.push("noimageindex"),t.join(", ")}function F(e){var l,h,d,c,u,p,f,g,w,m,b;let t=[],n=e.metadataBase,s=(y,_)=>{_!==void 0&&t.push({tag:"meta",attributes:{name:y,content:_}})},r=(y,_)=>{_!==void 0&&t.push({tag:"meta",attributes:{property:y,content:_}})};e.title!==void 0&&t.push({tag:"title",attributes:{},content:e.title}),s("description",e.description),s("application-name",e.applicationName),s("generator",e.generator),s("keywords",(l=e.keywords)==null?void 0:l.join(", ")),s("referrer",e.referrer),s("theme-color",e.themeColor),s("color-scheme",e.colorScheme),s("viewport",e.viewport),e.robots!==void 0&&s("robots",_e(e.robots));for(let y of(h=e.authors)!=null?h:[])s("author",y.name),y.url&&t.push({tag:"link",attributes:{rel:"author",href:y.url}});if(e.icons!==void 0){let y=typeof e.icons=="string"?{icon:e.icons}:e.icons;y.icon&&t.push({tag:"link",attributes:{rel:"icon",href:y.icon}}),y.shortcut&&t.push({tag:"link",attributes:{rel:"shortcut icon",href:y.shortcut}}),y.apple&&t.push({tag:"link",attributes:{rel:"apple-touch-icon",href:y.apple}})}let i=e.openGraph;if(i){r("og:title",(d=i.title)!=null?d:e.title),r("og:description",(c=i.description)!=null?c:e.description),r("og:url",i.url?G(i.url,n):void 0),r("og:site_name",i.siteName),r("og:type",i.type),r("og:locale",i.locale);for(let y of(u=i.images)!=null?u:[]){let _=typeof y=="string"?{url:y}:y;r("og:image",G(_.url,n)),_.width!==void 0&&r("og:image:width",String(_.width)),_.height!==void 0&&r("og:image:height",String(_.height)),_.alt!==void 0&&r("og:image:alt",_.alt)}}let o=e.twitter;if(o){s("twitter:card",(p=o.card)!=null?p:"summary"),s("twitter:title",(f=o.title)!=null?f:e.title),s("twitter:description",(g=o.description)!=null?g:e.description),s("twitter:site",o.site),s("twitter:creator",o.creator);for(let y of(w=o.images)!=null?w:[])s("twitter:image",G(y,n))}let a=e.alternates;if(a){a.canonical&&t.push({tag:"link",attributes:{rel:"canonical",href:G(a.canonical,n)}});for(let y of Object.keys((m=a.languages)!=null?m:{}))t.push({tag:"link",attributes:{rel:"alternate",hreflang:y,href:G(a.languages[y],n)}})}for(let y of Object.keys((b=e.other)!=null?b:{}))s(y,e.other[y]);return t}function ke(e){return e.replace(/&/g,"&").replace(/"/g,""").replace(/</g,"<")}function xe(e){return e.replace(/&/g,"&").replace(/</g,"<")}function K(e){return e.map(t=>{var s;let n=Object.keys(t.attributes).map(r=>` ${r}="${ke(t.attributes[r])}"`).join("");return t.tag==="title"?`<title>${xe((s=t.content)!=null?s:"")}</title>`:`<${t.tag}${n}>`}).join(`
|
|
3
|
+
`)}var jt="data-domphy-head";function Z(e){var t;if(typeof document!="undefined"){for(let n of Array.from(document.head.querySelectorAll(`[${jt}]`)))n.remove();for(let n of e){if(n.tag==="title"){document.title=(t=n.content)!=null?t:"";continue}let s=document.createElement(n.tag);for(let r of Object.keys(n.attributes))s.setAttribute(r,n.attributes[r]);s.setAttribute(jt,""),document.head.appendChild(s)}}}var at=3e4,q=class{constructor(){this.entries=new Map;this.inflight=new Map;this.notifier=new D;this.pending=new Map}onRevalidated(t){return this.notifier.addListener("revalidated",t)}seed(t){for(let n of Object.keys(t))this.entries.set(n,{data:t[n],timestamp:Date.now(),consumable:!0})}snapshot(t){let n={};for(let s of t){let r=this.entries.get(s);r&&(n[s]=r.data)}return n}invalidate(t){if(t===void 0){this.entries.clear();return}for(let n of this.entries.keys())n.startsWith(t)&&this.entries.delete(n)}load(t,n,s,r){return R(this,null,function*(){let i=this.entries.get(t);if(i){let l=r!==void 0?r*1e3:0,h=Date.now()-i.timestamp<=l,d=i.consumable&&Date.now()-i.timestamp<=at;if(h||d)return i.consumable&&!h&&this.entries.delete(t),i.data;if(r!==void 0&&r>0)return this.pending.set(t,()=>this.revalidate(t,n,s)),i.data;this.entries.delete(t)}let o=this.inflight.get(t);if(o)return o;let a=Promise.resolve(n(s)).then(l=>(this.inflight.delete(t),r!==void 0&&r>0&&this.entries.set(t,{data:l,timestamp:Date.now(),consumable:!1}),l),l=>{throw this.inflight.delete(t),l});return this.inflight.set(t,a),a})}flushRevalidations(){if(this.pending.size===0)return;let t=[...this.pending.values()];this.pending.clear();for(let n of t)n()}revalidate(t,n,s){if(this.inflight.has(t))return;let r=Promise.resolve(n(s)).then(i=>(this.inflight.delete(t),this.entries.set(t,{data:i,timestamp:Date.now(),consumable:!1}),this.notifier.notify("revalidated",t),i),i=>{throw this.inflight.delete(t),i});r.catch(()=>{}),this.inflight.set(t,r)}prefetch(t,n,s,r){return R(this,null,function*(){if(r!==void 0){yield this.load(t,n,s,r);return}let i=this.entries.get(t);if(i&&Date.now()-i.timestamp<=at||this.inflight.has(t))return;let o=yield n(s);this.entries.set(t,{data:o,timestamp:Date.now(),consumable:!0})})}};function lt(){var n,s,r;let e=new Map,t=(s=(n=window.history.state)==null?void 0:n.__domphyIndex)!=null?s:0;return((r=window.history.state)==null?void 0:r.__domphyIndex)===void 0&&window.history.replaceState({__domphyIndex:t},""),"scrollRestoration"in window.history&&(window.history.scrollRestoration="manual"),{url:()=>new URL(window.location.href),push:i=>{t++,window.history.pushState({__domphyIndex:t},"",i)},replace:i=>{window.history.replaceState({__domphyIndex:t},"",i)},go:i=>window.history.go(i),listen:i=>{let o=()=>{var a,l;t=(l=(a=window.history.state)==null?void 0:a.__domphyIndex)!=null?l:0,i(new URL(window.location.href))};return window.addEventListener("popstate",o),()=>window.removeEventListener("popstate",o)},saveScroll:i=>e.set(t,i),readScroll:()=>{var i;return(i=e.get(t))!=null?i:null}}}var Ht="http://localhost";function Se(e="/"){let t=[e],n=0,s=new Set;return{url:()=>new URL(t[n],Ht),push:r=>{t.splice(n+1),t.push(r),n++},replace:r=>{t[n]=r},go:r=>{let i=Math.min(Math.max(n+r,0),t.length-1);if(i===n)return;n=i;let o=new URL(t[n],Ht);for(let a of s)a(o)},listen:r=>(s.add(r),()=>s.delete(r))}}function ct(e){return{div:[{h2:"Application error"},{p:e.message}]}}function ut(){return{div:[{h2:"404"},{p:"This page could not be found."}]}}function ht(e,t){return e.findIndex(n=>n.status===t)}function $(e){var b,y,_;let{match:t,baseContext:n,results:s,retry:r,defaultError:i,defaultNotFound:o}=e,{chain:a,chainIds:l}=t.route,h={};for(let v=0;v<a.length;v++)h[l[v]]=(b=s[v])==null?void 0:b.data;let d=a.map((v,E)=>{var L;return S(k({},n),{data:(L=s[E])==null?void 0:L.data,segmentData:h})}),c=ht(s,"error"),u=ht(s,"notfound"),p=ht(s,"pending"),f,g,w;if(c!==-1){let v=dt(a,c,L=>!!L.error);f=(v===-1?i:a[v].error)(s[c].error,r),f._key=`${l[Math.max(v,0)]}:error`,g=Math.min(v,c-1),w="error"}else if(u!==-1){let v=dt(a,u,L=>!!L.notFound);f=(v===-1?o:a[v].notFound)(),f._key=`${l[Math.max(v,0)]}:notfound`,g=Math.min(v,u-1),w="notfound"}else if(p!==-1){let v=dt(a,p,E=>!!E.loading);if(v===-1)return{element:{div:""},status:"loading"};f=a[v].loading(d[v]),f._key=`${l[v]}:loading`,g=Math.min(v,p-1),w="loading"}else f=a[a.length-1].page(d[a.length-1]),f._key=`${t.route.id}:page`,g=a.length-1,w="idle";let m=f;for(let v=g;v>=0;v--){let E=a[v].layout;E&&(m=E(m,d[v],(_=(y=e.slots)==null?void 0:y[v])!=null?_:{}),m._key===void 0&&(m._key=`${l[v]}:layout`))}return{element:m,status:w}}function dt(e,t,n){for(let s=t;s>=0;s--)if(n(e[s]))return s;return-1}function Q(e){let t=e();return t._key===void 0&&(t._key="app:notfound"),{element:t,status:"notfound"}}var V=null;function pt(){if(!V)throw new Error("No router created yet. Call createApp() or new AppRouter() first.");return V}var I=class{constructor(t,n={}){this.events=new D;this.cache=new q;this.navigationToken=0;this.releaseHistory=null;this.currentMatch=null;this.currentRenderKeys=new Set;this.slotCompiled=new Map;this.metadata={};this.lastRedirect=null;this.lastData={};var s,r,i;this.routes=O(t),this.compileSlots(t),this.middleware=(s=n.middleware)!=null?s:[],this.notFoundBlock=(r=n.notFound)!=null?r:ut,this.errorBlock=(i=n.error)!=null?i:(o=>ct(o)),this.headers=n.headers,this.history=n.history!==void 0?n.history:typeof window!="undefined"?lt():null,this.state=new It({pathname:"/",search:"",hash:"",params:{},status:"idle",error:null}),this.tree=Lt({div:""}),this.cache.onRevalidated(o=>this.onRevalidated(o)),V=this}compileSlots(t){for(let n of t){if(n.slots){let s={};for(let r of Object.keys(n.slots)){let i=n.slots[r];s[r]={soft:O(i),hard:O(i.filter(o=>!o.intercept))},this.compileSlots(i)}this.slotCompiled.set(n,s)}n.children&&this.compileSlots(n.children)}}loadMatch(t,n){return R(this,null,function*(){let{chain:s,chainIds:r}=t.route,i=this.loaderContext(n,t),o=s.map(()=>({status:"pending"}));return yield Promise.all(s.map((a,l)=>{if(!a.loader)return o[l]={status:"success",data:void 0},Promise.resolve();let h=this.cacheKey(r[l],n);return this.cache.load(h,a.loader,i,a.revalidate).then(d=>{o[l]={status:"success",data:d}},d=>{d instanceof M?o[l]={status:"notfound"}:o[l]={status:"error",error:d instanceof Error?d:new Error(String(d))}})})),o})}renderSlots(t,n,s,r){return R(this,null,function*(){let i=n.route.chain[t],o=this.slotCompiled.get(i);if(!o)return{};let a=0;for(let h=0;h<=t;h++)a+=nt(n.route.chain[h].path);let l={};for(let h of Object.keys(o)){let d=r?o[h].soft:o[h].hard,c=st(d,s.pathname,a);if(!c)continue;c.pathname=s.pathname,c.params=k(k({},n.params),c.params);let u=yield this.loadMatch(c,s);l[h]=$({match:c,baseContext:this.baseContext(s,c),results:u,retry:()=>{this.refresh()},defaultError:this.errorBlock,defaultNotFound:this.notFoundBlock}).element}return l})}onRevalidated(t){!this.history||!this.currentRenderKeys.has(t)||this.transition(this.currentUrl(),{replace:!0,scroll:!1,fromHistory:!0})}start(){return R(this,null,function*(){this.history&&!this.releaseHistory&&(this.releaseHistory=this.history.listen(n=>{this.transition(n,{fromHistory:!0})}));let t=this.history?this.history.url():new URL("/","http://localhost");yield this.transition(t,{initial:!0})})}destroy(){var t;(t=this.releaseHistory)==null||t.call(this),this.releaseHistory=null,V===this&&(V=null)}currentUrl(){if(this.history)return this.history.url();let t=this.state.get("search");return new URL(`${this.state.get("pathname")}${t}`,"http://localhost")}resolve(t){return new URL(t,this.currentUrl())}navigate(s){return R(this,arguments,function*(t,n={}){let r=this.resolve(t);if(typeof window!="undefined"&&r.origin!==this.currentUrl().origin){window.location.assign(r.href);return}yield this.transition(r,n)})}push(t,n={}){return this.navigate(t,n)}replace(t,n={}){return this.navigate(t,S(k({},n),{replace:!0}))}back(){var t;(t=this.history)==null||t.go(-1)}forward(){var t;(t=this.history)==null||t.go(1)}refresh(){return R(this,null,function*(){this.cache.invalidate(),yield this.transition(this.currentUrl(),{replace:!0,scroll:!1})})}prefetch(t){return R(this,null,function*(){try{let n=this.resolve(t),s=P(this.routes,n.pathname);if(!s)return;let r=this.loaderContext(n,s);yield Promise.all(s.route.chain.map((i,o)=>{if(!i.loader)return Promise.resolve();let a=this.cacheKey(s.route.chainIds[o],n);return this.cache.prefetch(a,i.loader,r,i.revalidate)}))}catch(n){}})}searchParams(t){return new URLSearchParams(this.state.get("search",t))}addEventListener(t,n){return this.events.addListener(t,n)}getMatch(){return this.currentMatch}renderStream(t){return R(this,null,function*(){let n=t.pathname,s={url:t,pathname:t.pathname,searchParams:t.searchParams,headers:this.headers};for(let d of this.middleware){let c=yield d(s);z(c)&&(n=c.__domphyRewrite)}let r=P(this.routes,n);if(!r){let d=Q(this.notFoundBlock);return{shell:d.element,status:404,redirect:null,rest:Promise.resolve({content:d.element,data:{},head:""})}}let i=r.route.chain[r.route.chain.length-1];if(i.redirect)return{shell:{div:""},status:i.permanent?308:307,redirect:i.redirect,rest:Promise.resolve({content:{div:""},data:{},head:""})};let o=this.baseContext(t,r),a=r.route.chain.map(d=>d.loader?{status:"pending"}:{status:"success",data:void 0}),l=$({match:r,baseContext:o,results:a,retry:()=>{},defaultError:this.errorBlock,defaultNotFound:this.notFoundBlock}).element,h=R(this,null,function*(){let d=yield this.loadMatch(r,t),c={};yield Promise.all(r.route.chain.map((g,w)=>R(this,null,function*(){this.slotCompiled.has(g)&&(c[w]=yield this.renderSlots(w,r,t,!1))})));let u=$({match:r,baseContext:o,results:d,retry:()=>{},defaultError:this.errorBlock,defaultNotFound:this.notFoundBlock,slots:c}).element,p={};r.route.chain.forEach((g,w)=>{g.loader&&d[w].status==="success"&&(p[this.cacheKey(r.route.chainIds[w],t)]=d[w].data)});let f="";try{let g=yield X(r.route.chain.map(w=>w.metadata),this.loaderContext(t,r));f=K(F(g))}catch(g){f=""}return{content:u,data:p,head:f}});return{shell:l,status:200,redirect:null,rest:h}})}cacheKey(t,n){return`${t}|${n.pathname}${n.search}`}loaderContext(t,n){return{pathname:n.pathname,url:t.pathname+t.search,params:n.params,searchParams:t.searchParams,headers:this.headers}}transition(s){return R(this,arguments,function*(t,n={}){var o,a;let r=++this.navigationToken,i=t.pathname+t.search+t.hash;n.fromHistory||(this.lastRedirect=null),this.events.notify("routeChangeStart",i),this.saveScroll();try{let l=t.pathname,h={url:t,pathname:t.pathname,searchParams:t.searchParams,headers:this.headers};for(let c of this.middleware){let u=yield c(h);z(u)&&(l=u.__domphyRewrite)}if(r!==this.navigationToken)return;let d=P(this.routes,l);if(d){let c=d.route.chain[d.route.chain.length-1];if(c.redirect)throw new T(c.redirect,(o=c.permanent)!=null?o:!1);for(let u of d.route.chain)for(let p of(a=u.middleware)!=null?a:[]){let f=yield p(h);if(z(f)){yield this.transition(new URL(f.__domphyRewrite,t),n);return}}if(r!==this.navigationToken)return;yield this.renderMatch(t,d,r,n)}else yield this.renderNotFound(t,r,n)}catch(l){if(r!==this.navigationToken)return;if(l instanceof T){yield this.transition(this.resolve(l.to),S(k({},n),{replace:!0})),this.lastRedirect={to:l.to,permanent:l.permanent};return}if(l instanceof M){yield this.renderNotFound(t,r,n);return}let h=l instanceof Error?l:new Error(String(l));this.tree.set(this.errorBlock(h,()=>{this.refresh()})),this.state.set("status","error"),this.state.set("error",h),this.events.notify("routeChangeError",h,i);return}r===this.navigationToken&&this.events.notify("routeChangeComplete",i)})}renderMatch(t,n,s,r){return R(this,null,function*(){let{chain:i,chainIds:o}=n.route,a=this.loaderContext(t,n),l=i.map(()=>({status:"pending"})),h=null,d=i.map((m,b)=>{if(!m.loader)return l[b]={status:"success",data:void 0},Promise.resolve();let y=this.cacheKey(o[b],t);return this.cache.load(y,m.loader,a,m.revalidate).then(_=>{l[b]={status:"success",data:_}},_=>{_ instanceof T?h=h!=null?h:_:_ instanceof M?l[b]={status:"notfound"}:l[b]={status:"error",error:_ instanceof Error?_:new Error(String(_))}})}),c=!1,u=Promise.all(d).then(()=>{c=!0});if(yield new Promise(m=>setTimeout(m,0)),!c&&i.some(m=>m.loading)){let m=$({match:n,baseContext:this.baseContext(t,n),results:l.map(b=>k({},b)),retry:()=>{this.refresh()},defaultError:this.errorBlock,defaultNotFound:this.notFoundBlock});s===this.navigationToken&&m.status==="loading"&&(this.state.set("status","loading"),this.tree.set(m.element))}if(yield u,s!==this.navigationToken)return;if(h)throw h;let p=!r.initial,f={};if(yield Promise.all(i.map((m,b)=>R(this,null,function*(){this.slotCompiled.has(m)&&(f[b]=yield this.renderSlots(b,n,t,p))}))),s!==this.navigationToken)return;let g=$({match:n,baseContext:this.baseContext(t,n),results:l,retry:()=>{this.refresh()},defaultError:this.errorBlock,defaultNotFound:this.notFoundBlock,slots:f}),w={};i.forEach((m,b)=>{m.loader&&l[b].status==="success"&&(w[this.cacheKey(o[b],t)]=l[b].data)}),this.lastData=w,this.currentRenderKeys=new Set(Object.keys(w)),this.currentMatch=n,yield this.applyMetadata(n,a),s===this.navigationToken&&(this.commit(t,n,g.element,g.status,r),this.cache.flushRevalidations())})}renderNotFound(t,n,s){return R(this,null,function*(){let r=Q(this.notFoundBlock);this.currentMatch=null,this.metadata={},Z([]),n===this.navigationToken&&this.commit(t,null,r.element,"notfound",s)})}baseContext(t,n){return{pathname:n.pathname,url:t.pathname+t.search,params:n.params,searchParams:t.searchParams,hash:t.hash,headers:this.headers}}applyMetadata(t,n){return R(this,null,function*(){try{this.metadata=yield X(t.route.chain.map(s=>s.metadata),n)}catch(s){this.metadata={}}Z(F(this.metadata))})}commit(t,n,s,r,i){var o;if(this.history&&!i.fromHistory&&!i.initial){let a=t.pathname+t.search+t.hash;i.replace?this.history.replace(a):this.history.push(a)}this.state.set("pathname",t.pathname),this.state.set("search",t.search),this.state.set("hash",t.hash),this.state.set("params",(o=n==null?void 0:n.params)!=null?o:{}),this.state.set("error",null),this.state.set("status",r),this.tree.set(s),this.restoreScroll(t,i)}saveScroll(){var t,n;typeof window!="undefined"&&((n=(t=this.history)==null?void 0:t.saveScroll)==null||n.call(t,{x:window.scrollX,y:window.scrollY}))}restoreScroll(t,n){var s,r,i,o;if(!(typeof window=="undefined"||n.scroll===!1||n.initial)){if(n.fromHistory){let a=(r=(s=this.history)==null?void 0:s.readScroll)==null?void 0:r.call(s);window.scrollTo((i=a==null?void 0:a.x)!=null?i:0,(o=a==null?void 0:a.y)!=null?o:0);return}if(t.hash){let a=document.getElementById(t.hash.slice(1));if(a){a.scrollIntoView();return}}window.scrollTo(0,0)}}};var Ee="(function(){var h=document.getElementById('domphy-head');if(h){document.head.appendChild(h.content.cloneNode(true));h.remove();}var c=document.getElementById('domphy-content'),a=document.getElementById('domphy-app');if(c&&a){a.replaceChildren(c.content.cloneNode(true));c.remove();}})();",mt="__DOMPHY_APP_DATA__",tt=class{constructor(t,n={}){this.node=null;this.routes=t,this.options=n,this.router=new I(t,n)}element(){let t=this.router;return{div:n=>[t.tree.get(n)],style:{display:"contents"}}}render(t){return R(this,null,function*(){return yield this.router.start(),this.node=new x(this.element()),this.node.render(t),this.node})}hydrate(t,n){return R(this,null,function*(){let s=globalThis[mt];return s&&typeof s=="object"&&this.router.cache.seed(s),yield this.router.start(),this.node=new x(this.element()),this.node.mount(t,n),this.node})}destroy(){var t;(t=this.node)==null||t.remove(),this.node=null,this.router.destroy()}renderToString(s){return R(this,arguments,function*(t,n={}){let r=typeof t=="string"?new URL(t,"http://localhost"):t,i=new I(this.routes,S(k({},this.options),{history:null,headers:n.headers}));yield i.transition(r,{initial:!0});let o=i.state.get("status"),a=i.lastRedirect,l=new x({div:[i.tree.get()],style:{display:"contents"}}),h=i.lastData,d={html:l.generateHTML(),css:l.generateCSS(),head:K(F(i.metadata)),status:a?a.permanent?308:307:o==="notfound"?404:200,redirect:a==null?void 0:a.to,data:h,bootstrapScript:`<script>window.${mt} = ${Ut(h)};</script>`};return i.destroy(),d})}renderToStream(s){return R(this,arguments,function*(t,n={}){var g,w;let r=typeof t=="string"?new URL(t,"http://localhost"):t,i=new I(this.routes,S(k({},this.options),{history:null,headers:n.headers})),{shell:o,status:a,redirect:l,rest:h}=yield i.renderStream(r),d=new TextEncoder,c=new x({div:[o],style:{display:"contents"}}),u=`<!DOCTYPE html><html><head>${(g=n.head)!=null?g:""}<style id="domphy-style">${c.generateCSS()}</style></head><body><div id="domphy-app">${c.generateHTML()}</div>`,p=(w=n.bootstrap)!=null?w:"";return{stream:new ReadableStream({start(b){return R(this,null,function*(){b.enqueue(d.encode(u));let{content:y,data:_,head:v}=yield h,E=new x({div:[y],style:{display:"contents"}}),L=`<style>${E.generateCSS()}</style><template id="domphy-head">${v}</template><template id="domphy-content">${E.generateHTML()}</template><script>${Ee}</script><script>window.${mt} = ${Ut(_)};</script>${p}</body></html>`;b.enqueue(d.encode(L)),b.close(),i.destroy()})}}),status:a,redirect:l!=null?l:void 0}})}};function Ut(e){return JSON.stringify(e).replace(/</g,"\\u003c")}function Te(e,t={}){return new tt(e,t)}var Me=[640,750,828,1080,1200,1920,2048,3840];function Ce(e){let{src:t,alt:n="",width:s,height:r,fill:i=!1,sizes:o,quality:a=75,priority:l=!1,placeholder:h="empty",blurDataURL:d,loader:c,deviceSizes:u=Me}=e,p={src:c?c({src:t,width:s!=null?s:u[u.length-1],quality:a}):t,alt:n,loading:l?"eager":"lazy",decoding:"async",fetchPriority:l?"high":"auto",style:{}};return c&&(p.srcSet=u.map(f=>`${c({src:t,width:f,quality:a})} ${f}w`).join(", "),o&&(p.sizes=o)),s!==void 0&&(p.width=s),r!==void 0&&(p.height=r),i&&(p.style=S(k({},p.style),{position:"absolute",inset:"0",width:"100%",height:"100%",objectFit:"cover"})),h==="blur"&&d&&(p.style=S(k({},p.style),{backgroundImage:`url("${d}")`,backgroundSize:"cover",backgroundPosition:"center"}),p.onLoad=f=>{let g=f.target;g.style.backgroundImage=""}),p}function Le(e){return e.defaultPrevented||e.button!==0||e.metaKey||e.ctrlKey||e.shiftKey||e.altKey}function Pe(e){let{href:t,replace:n=!1,scroll:s=!0,prefetch:r="hover",exact:i=!1}=e,o=()=>{var d;return(d=e.router)!=null?d:pt()},a=d=>{let c=new URL(t,"http://localhost").pathname;return i||c==="/"?d===c:d===c||d.startsWith(`${c}/`)},l=!1,h=()=>{l||(l=!0,o().prefetch(t))};return{href:t,ariaCurrent:d=>a(o().state.get("pathname",d))?"page":null,dataActive:d=>a(o().state.get("pathname",d))?"":null,onClick:d=>{let c=d,u=c.currentTarget;Le(c)||u.target&&u.target!=="_self"||u.hasAttribute("download")||new URL(u.href,window.location.href).origin===window.location.origin&&(c.preventDefault(),o().navigate(t,{replace:n,scroll:s}))},onMouseEnter:()=>{r==="hover"&&h()},onFocus:()=>{r==="hover"&&h()},_onMount:d=>{if(r!=="visible")return;if(typeof IntersectionObserver=="undefined"){h();return}let c=new IntersectionObserver(u=>{u.some(p=>p.isIntersecting)&&(h(),c.disconnect())});c.observe(d.domElement),d.setMetadata("navLinkObserver",c)},_onRemove:d=>{let c=d.getMetadata("navLinkObserver");c==null||c.disconnect()}}}var ft=new Set;function Be(){ft.clear()}function Ft(e){let t=globalThis.requestIdleCallback;t?t(e):setTimeout(e,0)}function Oe(e){let{src:t,strategy:n="afterInteractive",id:s,async:r=!0,onLoad:i,onError:o}=e,a=s!=null?s:t,l=d=>{ft.has(a)||(ft.add(a),d.src=t)},h={script:"",async:r,onLoad:()=>i==null?void 0:i(),onError:()=>o==null?void 0:o(),_onMount:d=>{let c=d.domElement;if(n==="afterInteractive"){l(c);return}document.readyState==="complete"?Ft(()=>l(c)):window.addEventListener("load",()=>Ft(()=>l(c)),{once:!0})}};return s!==void 0&&(h.id=s),h}function Ne(e){return e}return Yt(Ae);})();
|
|
4
4
|
//# sourceMappingURL=app.global.js.map
|