fundus 0.23.0 → 0.24.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +92 -26
- package/build/client/_app/immutable/chunks/CCIxsMRK.js +1 -0
- package/build/client/_app/immutable/chunks/CCIxsMRK.js.br +0 -0
- package/build/client/_app/immutable/chunks/CCIxsMRK.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DWHqxOBm.js → CIZHDrUF.js} +1 -1
- package/build/client/_app/immutable/chunks/CIZHDrUF.js.br +0 -0
- package/build/client/_app/immutable/chunks/CIZHDrUF.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{CVeOwywf.js → CnnMN4wM.js} +2 -2
- package/build/client/_app/immutable/chunks/CnnMN4wM.js.br +0 -0
- package/build/client/_app/immutable/chunks/CnnMN4wM.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.BvNykvNA.js → app.BPBGxhbo.js} +2 -2
- package/build/client/_app/immutable/entry/app.BPBGxhbo.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BPBGxhbo.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CTftTL5f.js +1 -0
- package/build/client/_app/immutable/entry/start.CTftTL5f.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CTftTL5f.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.C-TKgrGP.js → 0.CquXHiCP.js} +1 -1
- package/build/client/_app/immutable/nodes/0.CquXHiCP.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.CquXHiCP.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.q-uG--Ye.js → 1.xSi5hUiK.js} +1 -1
- package/build/client/_app/immutable/nodes/1.xSi5hUiK.js.br +1 -0
- package/build/client/_app/immutable/nodes/1.xSi5hUiK.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.EtCNRoA2.js → 2.CgzHO6l0.js} +1 -1
- package/build/client/_app/immutable/nodes/2.CgzHO6l0.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.CgzHO6l0.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{3.D7nMxWez.js → 3.B-HZ9QO3.js} +1 -1
- package/build/client/_app/immutable/nodes/3.B-HZ9QO3.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.B-HZ9QO3.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.B3M1zSBU.js → 4._rTlKXDo.js} +1 -1
- package/build/client/_app/immutable/nodes/4._rTlKXDo.js.br +0 -0
- package/build/client/_app/immutable/nodes/4._rTlKXDo.js.gz +0 -0
- package/build/client/_app/version.json +1 -1
- package/build/client/_app/version.json.br +0 -0
- package/build/client/_app/version.json.gz +0 -0
- package/build/handler.js +7 -7
- package/build/index.js +7 -7
- package/build/server/chunks/chunks/{exports.js-BmD4UbfP.js → exports.js-CcnW-JJJ.js} +2 -2
- package/build/server/chunks/chunks/{exports.js-BmD4UbfP.js.map → exports.js-CcnW-JJJ.js.map} +1 -1
- package/build/server/chunks/chunks/{internal.js-CamOhpYX.js → internal.js-ByBTomBV.js} +2 -2
- package/build/server/chunks/chunks/{internal.js-CamOhpYX.js.map → internal.js-ByBTomBV.js.map} +1 -1
- package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
- package/build/server/chunks/chunks/{shared.js-z20dV9L6.js → shared.js-CCqNepI3.js} +2 -2
- package/build/server/chunks/chunks/{shared.js-z20dV9L6.js.map → shared.js-CCqNepI3.js.map} +1 -1
- package/build/server/chunks/chunks/{utils.js-CCdpL1Io.js → utils.js-GaDYRoLP.js} +3 -3
- package/build/server/chunks/chunks/{utils.js-CCdpL1Io.js.map → utils.js-GaDYRoLP.js.map} +1 -1
- package/build/server/chunks/{handler-B2BaQ6Ml.js → handler-DegMVxhC.js} +5 -5
- package/build/server/chunks/{handler-B2BaQ6Ml.js.map → handler-DegMVxhC.js.map} +1 -1
- package/build/server/chunks/{index.js-B77LinCI.js → index.js-BrCnc8Gq.js} +5 -5
- package/build/server/chunks/{index.js-B77LinCI.js.map → index.js-BrCnc8Gq.js.map} +1 -1
- package/build/server/chunks/{manifest.js-DBhPPiGl.js → manifest.js-mKxXvxuB.js} +7 -7
- package/build/server/chunks/{manifest.js-DBhPPiGl.js.map → manifest.js-mKxXvxuB.js.map} +1 -1
- package/build/server/chunks/nodes/{0.js-bzZzX1Nn.js → 0.js-Bnw_8E4c.js} +2 -2
- package/build/server/chunks/nodes/{0.js-bzZzX1Nn.js.map → 0.js-Bnw_8E4c.js.map} +1 -1
- package/build/server/chunks/nodes/1.js-DpvNtg1z.js +7 -0
- package/build/server/chunks/nodes/{1.js-CQ-mFntC.js.map → 1.js-DpvNtg1z.js.map} +1 -1
- package/build/server/chunks/nodes/{2.js-BSGPEoRK.js → 2.js-h7fLpCKT.js} +2 -2
- package/build/server/chunks/nodes/{2.js-BSGPEoRK.js.map → 2.js-h7fLpCKT.js.map} +1 -1
- package/build/server/chunks/nodes/3.js-XlL1_Sjt.js +7 -0
- package/build/server/chunks/nodes/{3.js-BzUyw6Q9.js.map → 3.js-XlL1_Sjt.js.map} +1 -1
- package/build/server/chunks/nodes/{4.js-vMj7JX0_.js → 4.js-BRkm0s7e.js} +2 -2
- package/build/server/chunks/nodes/{4.js-vMj7JX0_.js.map → 4.js-BRkm0s7e.js.map} +1 -1
- package/dist/core/manifest-entry.d.ts +6 -7
- package/dist/runtime/canvas.d.ts +18 -17
- package/dist/runtime/canvas.js +35 -36
- package/dist/runtime/components/Slice.svelte +4 -4
- package/dist/runtime/geometry.d.ts +61 -33
- package/dist/runtime/geometry.js +54 -38
- package/dist/runtime/index.d.ts +4 -4
- package/dist/runtime/index.js +2 -3
- package/dist/runtime/kind-handlers.d.ts +1 -26
- package/dist/runtime/kind-handlers.js +13 -29
- package/dist/runtime/manifest.d.ts +13 -15
- package/dist/runtime/manifest.js +23 -23
- package/dist/runtime/preload-registry.d.ts +4 -23
- package/dist/runtime/preload-registry.js +24 -5
- package/dist/runtime/retained-entry.d.ts +48 -0
- package/dist/runtime/retained-entry.js +61 -0
- package/package.json +1 -1
- package/build/client/_app/immutable/chunks/CVeOwywf.js.br +0 -0
- package/build/client/_app/immutable/chunks/CVeOwywf.js.gz +0 -0
- package/build/client/_app/immutable/chunks/Co7xGpqv.js +0 -1
- package/build/client/_app/immutable/chunks/Co7xGpqv.js.br +0 -0
- package/build/client/_app/immutable/chunks/Co7xGpqv.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DWHqxOBm.js.br +0 -0
- package/build/client/_app/immutable/chunks/DWHqxOBm.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.BvNykvNA.js.br +0 -0
- package/build/client/_app/immutable/entry/app.BvNykvNA.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DfWWrqAi.js +0 -1
- package/build/client/_app/immutable/entry/start.DfWWrqAi.js.br +0 -0
- package/build/client/_app/immutable/entry/start.DfWWrqAi.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.C-TKgrGP.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.C-TKgrGP.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.q-uG--Ye.js.br +0 -2
- package/build/client/_app/immutable/nodes/1.q-uG--Ye.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.EtCNRoA2.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.EtCNRoA2.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.D7nMxWez.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.D7nMxWez.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.B3M1zSBU.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.B3M1zSBU.js.gz +0 -0
- package/build/server/chunks/nodes/1.js-CQ-mFntC.js +0 -7
- package/build/server/chunks/nodes/3.js-BzUyw6Q9.js +0 -7
package/README.md
CHANGED
|
@@ -85,14 +85,30 @@ pixel ratio) plus a ready-made CSS `aspect-ratio` value. For the 3-slice modes
|
|
|
85
85
|
the sliced-off cross axis must be laid out at exactly that size so the end caps
|
|
86
86
|
keep their authored aspect ratio.
|
|
87
87
|
|
|
88
|
-
For
|
|
88
|
+
For changes made outside the editor:
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
npx fundus build # write current proxies and manifest modules
|
|
92
|
+
npx fundus check # verify without writing; ideal for CI
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Commit the config, library, raw originals, processed proxies, and generated
|
|
96
|
+
modules. With the default config, those live in `fundus.config.ts`, `assets/`,
|
|
97
|
+
`static/fundus/`, and `src/lib/fundus/`.
|
|
98
|
+
|
|
99
|
+
## Canvas and custom renderers
|
|
100
|
+
|
|
101
|
+
For an existing canvas, retain the entries and use the synchronous drawing
|
|
89
102
|
helpers. Both accept a canvas element or its 2D context:
|
|
90
103
|
|
|
91
104
|
```ts
|
|
92
|
-
import { drawImage, drawSlice } from 'fundus';
|
|
105
|
+
import { drawImage, drawSlice, retainEntry } from 'fundus';
|
|
93
106
|
import { main } from '$lib/fundus/main.generated';
|
|
94
107
|
|
|
95
|
-
await
|
|
108
|
+
const [dialogFrame, logo] = await Promise.all([
|
|
109
|
+
retainEntry(main.dialogFrame),
|
|
110
|
+
retainEntry(main.logo)
|
|
111
|
+
]);
|
|
96
112
|
|
|
97
113
|
// Set up the backing store once; resizing a canvas clears its contents.
|
|
98
114
|
const width = 640;
|
|
@@ -105,11 +121,12 @@ canvas.style.height = `${height}px`;
|
|
|
105
121
|
const ctx = canvas.getContext('2d')!;
|
|
106
122
|
ctx.setTransform(canvas.width / width, 0, 0, canvas.height / height, 0, 0);
|
|
107
123
|
|
|
108
|
-
drawSlice(ctx,
|
|
109
|
-
drawImage(ctx,
|
|
124
|
+
drawSlice(ctx, dialogFrame, 20, 30, 300, 180);
|
|
125
|
+
drawImage(ctx, logo, 40, 50, 120, 60);
|
|
110
126
|
|
|
111
|
-
// Release when finished
|
|
112
|
-
|
|
127
|
+
// Release when finished, after the last draw or animation frame.
|
|
128
|
+
dialogFrame.release();
|
|
129
|
+
logo.release();
|
|
113
130
|
```
|
|
114
131
|
|
|
115
132
|
`x`, `y`, `width`, and `height` use the context's current coordinate system;
|
|
@@ -125,32 +142,81 @@ transforms, clipping, alpha, compositing, and image smoothing. Slice painting
|
|
|
125
142
|
shares the component's geometry and drawing routine; the caller controls the
|
|
126
143
|
backing store and transforms, so fractional pixel placement can antialias cell
|
|
127
144
|
edges. Use integer backing-pixel boundaries when crisp slice edges matter.
|
|
128
|
-
Non-positive sizes are no-ops; non-finite coordinates throw
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
145
|
+
Non-positive sizes are no-ops; non-finite coordinates throw, and so does
|
|
146
|
+
drawing with a released handle. The `<Slice>` component still loads
|
|
147
|
+
automatically.
|
|
148
|
+
|
|
149
|
+
`Promise.all` rejects on the first failed load while the other handles keep
|
|
150
|
+
their holds. When a failure must not leak, release the fulfilled handles, for
|
|
151
|
+
example after `Promise.allSettled`.
|
|
152
|
+
|
|
153
|
+
### Retained entries
|
|
154
|
+
|
|
155
|
+
`retainEntry(entry)` takes one hold on the entry's own file and resolves with a
|
|
156
|
+
handle once it is loaded: decoded pixels (`HTMLImageElement | ImageBitmap`) for
|
|
157
|
+
images and slices, a playable URL (an object URL over the fully fetched file)
|
|
158
|
+
for video, chroma-key video, and audio. Loads are shared with manifests and
|
|
159
|
+
other handles, so after `await main.preload()` a handle resolves without
|
|
160
|
+
loading, but it is still a separate hold that needs `release()`. A
|
|
161
|
+
chroma-key video retains only its video; its mask and fallback are entries of
|
|
162
|
+
their own.
|
|
163
|
+
|
|
164
|
+
Keep a handle for as long as anything may read its source: renderers that
|
|
165
|
+
upload lazily or re-upload after a lost WebGL context, and media elements
|
|
166
|
+
playing the object URL. The source object is the same across handles only
|
|
167
|
+
while some holder keeps it loaded; after the last release a new handle loads a
|
|
168
|
+
new one. `release` is idempotent and safe to pass unbound. A `retainEntry`
|
|
169
|
+
promise nobody awaits still takes its hold and leaks it, so a component torn
|
|
170
|
+
down mid-load releases the handle once it arrives:
|
|
133
171
|
|
|
134
|
-
|
|
172
|
+
```svelte
|
|
173
|
+
<script lang="ts">
|
|
174
|
+
import { retainEntry, type RetainedEntry } from 'fundus';
|
|
175
|
+
import { main } from '$lib/fundus/main.generated';
|
|
135
176
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
177
|
+
let chime = $state.raw<RetainedEntry<typeof main.chime>>();
|
|
178
|
+
|
|
179
|
+
$effect(() => {
|
|
180
|
+
let cancelled = false;
|
|
181
|
+
let handle: RetainedEntry<typeof main.chime> | undefined;
|
|
182
|
+
retainEntry(main.chime).then(
|
|
183
|
+
(retained) => {
|
|
184
|
+
if (cancelled) retained.release();
|
|
185
|
+
else chime = handle = retained;
|
|
186
|
+
},
|
|
187
|
+
// A rejected retain leaves no hold behind.
|
|
188
|
+
(error) => console.error(error)
|
|
189
|
+
);
|
|
190
|
+
return () => {
|
|
191
|
+
cancelled = true;
|
|
192
|
+
handle?.release();
|
|
193
|
+
chime = undefined;
|
|
194
|
+
};
|
|
195
|
+
});
|
|
196
|
+
</script>
|
|
139
197
|
```
|
|
140
198
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
199
|
+
For WebGL, Pixi, or other renderers, combine `retainEntry` with
|
|
200
|
+
`sliceGrid(entry, x, y, width, height)`: four source edges (in source pixels)
|
|
201
|
+
and four destination edges per axis for the 3×3 grid, identical to what
|
|
202
|
+
`drawSlice` paints. Paint cell `(c, r)` only when all four spans are positive
|
|
203
|
+
(`sourceX[c + 1] > sourceX[c]`, likewise for `sourceY`, `destX`, and `destY`);
|
|
204
|
+
texture coordinates are the source edges divided by `sourceWidth` and
|
|
205
|
+
`sourceHeight`. Pass device-pixel units for seam-free edges. Always upload with
|
|
206
|
+
`UNPACK_PREMULTIPLY_ALPHA_WEBGL` set to `true`: image elements honor it, and
|
|
207
|
+
slice bitmaps ignore it because they are already premultiplied, so every texture
|
|
208
|
+
ends up premultiplied. Retained elements carry no `crossOrigin`, so proxies
|
|
209
|
+
hosted on another origin cannot be uploaded to WebGL from images or one-slices.
|
|
144
210
|
|
|
145
211
|
## Supported assets
|
|
146
212
|
|
|
147
|
-
| Type | Processing | Runtime
|
|
148
|
-
| ---------------- | ------------------------------------------------ |
|
|
149
|
-
| Image | WebP, PNG, AVIF, or JPEG; optional width | `<Image>`, `drawImage()`
|
|
150
|
-
| Slice | 1-, 3-, or 9-slice; optional stretch compression | `<Slice>`, `drawSlice()`
|
|
151
|
-
| Video | H.264 MP4; optional width cap | `<Video>`
|
|
152
|
-
| Chroma-key video | H.264 MP4 with WebGL2 keying, mask, and fallback | `<ChromaKeyVideo>`
|
|
153
|
-
| Audio | Opus/WebM or AAC/M4A | Your audio engine via `
|
|
213
|
+
| Type | Processing | Runtime |
|
|
214
|
+
| ---------------- | ------------------------------------------------ | ------------------------------------- |
|
|
215
|
+
| Image | WebP, PNG, AVIF, or JPEG; optional width | `<Image>`, `drawImage()` |
|
|
216
|
+
| Slice | 1-, 3-, or 9-slice; optional stretch compression | `<Slice>`, `drawSlice()` |
|
|
217
|
+
| Video | H.264 MP4; optional width cap | `<Video>` |
|
|
218
|
+
| Chroma-key video | H.264 MP4 with WebGL2 keying, mask, and fallback | `<ChromaKeyVideo>` |
|
|
219
|
+
| Audio | Opus/WebM or AAC/M4A | Your audio engine via `retainEntry()` |
|
|
154
220
|
|
|
155
221
|
Named presets in `fundus.config.ts` keep encoding choices consistent. Each asset
|
|
156
222
|
currently produces one processed proxy, which is often exactly what an app wants
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{H as e,U as t,V as n,it as r,nt as i,r as a,t as o,tt as s}from"./DLEDBLL1.js";var c=class{constructor(e,t){this.status=e,typeof t==`string`?this.body={message:t}:t?this.body=t:this.body={message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}},l=class{constructor(e,t){try{new Headers({location:t})}catch{throw Error(`Invalid redirect location ${JSON.stringify(t)}: this string contains characters that cannot be used in HTTP headers`)}this.status=e,this.location=t}},u=class extends Error{constructor(e,t,n){super(n),this.status=e,this.text=t}};new URL(`sveltekit-internal://`);function d(e,t){return e===`/`||t===`ignore`?e:t===`never`?e.endsWith(`/`)?e.slice(0,-1):e:t===`always`&&!e.endsWith(`/`)?e+`/`:e}function f(e){return e.split(`%25`).map(decodeURI).join(`%25`)}function p(e){for(let t in e)e[t]=decodeURIComponent(e[t]);return e}function m({href:e}){return e.split(`#`)[0]}function h(){}function ee(...e){let t=5381;for(let n of e)if(typeof n==`string`){let e=n.length;for(;e;)t=t*33^n.charCodeAt(--e)}else if(ArrayBuffer.isView(n)){let e=new Uint8Array(n.buffer,n.byteOffset,n.byteLength),r=e.length;for(;r;)t=t*33^e[--r]}else throw TypeError(`value must be a string or TypedArray`);return(t>>>0).toString(36)}new TextEncoder;function g(e){let t=atob(e),n=new Uint8Array(t.length);for(let e=0;e<t.length;e++)n[e]=t.charCodeAt(e);return n}var _=window.fetch;window.fetch=(e,t)=>((e instanceof Request?e.method:t?.method||`GET`)!==`GET`&&v.delete(b(e)),_(e,t));var v=new Map;function te(e,t){let n=b(e,t),r=document.querySelector(n);if(r?.textContent){r.remove();let{body:e,...t}=JSON.parse(r.textContent);r.getAttribute(`data-b64`)!==null&&(e=g(e));let i=r.getAttribute(`data-ttl`);return i&&v.set(n,{body:e,init:t,ttl:1e3*Number(i)}),Promise.resolve(new Response(e,t))}return window.fetch(e,t)}function y(e,t,n){if(v.size>0){let t=b(e,n),r=v.get(t);if(r){if(performance.now()<r.ttl&&[`default`,`force-cache`,`only-if-cached`,void 0].includes(n?.cache))return new Response(r.body,r.init);v.delete(t)}}return window.fetch(t,n)}function b(e,t){let n=`script[data-sveltekit-fetched][data-url=${JSON.stringify(e instanceof Request?e.url:e)}]`;if(t?.headers||t?.body){let e=[];t.headers&&e.push([...new Headers(t.headers)].join(`,`)),t.body&&(typeof t.body==`string`||ArrayBuffer.isView(t.body))&&e.push(t.body),n+=`[data-hash="${ee(...e)}"]`}return n}var ne=/^(\[)?(\.\.\.)?(\w+)(?:=(\w+))?(\])?$/,re=/^\/\((?:[^)]+)\)$/;function x(e){let t=[];return{pattern:e===`/`||re.test(e)?/^\/$/:RegExp(`^${ae(e).map(e=>{let n=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(e);if(n)return t.push({name:n[1],matcher:n[2],optional:!1,rest:!0,chained:!0}),`(?:/([^]*))?`;let r=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(e);if(r)return t.push({name:r[1],matcher:r[2],optional:!0,rest:!1,chained:!0}),`(?:/([^/]+))?`;if(!e)return;let i=e.split(/\[(.+?)\](?!\])/);return`/`+i.map((e,n)=>{if(n%2){if(e.startsWith(`x+`))return se(String.fromCharCode(parseInt(e.slice(2),16)));if(e.startsWith(`u+`))return se(String.fromCharCode(...e.slice(2).split(`-`).map(e=>parseInt(e,16))));let[,r,a,o,s]=ne.exec(e);return t.push({name:o,matcher:s,optional:!!r,rest:!!a,chained:a?n===1&&i[0]===``:!1}),a?`([^]*?)`:r?`([^/]*)?`:`([^/]+?)`}return se(e)}).join(``)}).join(``)}/?$`),params:t}}function ie(e){return e!==``&&!/^\([^)]+\)$/.test(e)}function ae(e){return e.slice(1).split(`/`).filter(ie)}function oe(e,t,n){let r={},i=e.slice(1),a=i.filter(e=>e!==void 0),o=0;for(let e=0;e<t.length;e+=1){let s=t[e],c=i[e-o];if(s.chained&&s.rest&&o&&(c=i.slice(e-o,e+1).filter(e=>e).join(`/`),o=0),c===void 0)if(s.rest)c=``;else continue;if(!s.matcher||n[s.matcher](c)){r[s.name]=c;let n=t[e+1],l=i[e+1];n&&!n.rest&&n.optional&&l&&s.chained&&(o=0),!n&&!l&&Object.keys(r).length===a.length&&(o=0);continue}if(s.optional&&s.chained){o++;continue}return}if(!o)return r}function se(e){return e.normalize().replace(/[[\]]/g,`\\$&`).replace(/%/g,`%25`).replace(/\//g,`%2[Ff]`).replace(/\?/g,`%3[Ff]`).replace(/#/g,`%23`).replace(/[.*+?^${}()|\\]/g,`\\$&`)}var ce=/\[(\[)?(\.\.\.)?(\w+?)(?:=(\w+))?\]\]?/g;function le(e,t){let n=ae(e),r=e!=`/`&&e.endsWith(`/`);return`/`+n.map(n=>n.replace(ce,(n,r,i,a)=>{let o=t[a];if(!o){if(r||i&&o!==void 0)return``;throw Error(`Missing parameter '${a}' in route ${e}`)}if(o.startsWith(`/`)||o.endsWith(`/`))throw Error(`Parameter '${a}' in route ${e} cannot start or end with a slash -- this would cause an invalid route like foo//bar`);return o})).filter(Boolean).join(`/`)+(r?`/`:``)}function ue({nodes:e,server_loads:t,dictionary:n,matchers:r}){let i=new Set(t);return Object.entries(n).map(([t,[n,i,s]])=>{let{pattern:c,params:l}=x(t),u={id:t,exec:e=>{let t=c.exec(e);if(t)return oe(t,l,r)},errors:[1,...s||[]].map(t=>e[t]),layouts:[0,...i||[]].map(o),leaf:a(n)};return u.errors.length=u.layouts.length=Math.max(u.errors.length,u.layouts.length),u});function a(t){let n=t<0;return n&&(t=~t),[n,e[t]]}function o(t){return t===void 0?t:[i.has(t),e[t]]}}function de(e,t=JSON.parse){try{return t(sessionStorage[e])}catch{}}function fe(e,t,n=JSON.stringify){let r=n(t);try{sessionStorage[e]=r}catch{}}var S=globalThis.__sveltekit_1ep40k3?.base??``,pe=globalThis.__sveltekit_1ep40k3?.assets??S??``,me=``;function he(...e){if(!e[0].startsWith(`/`))throw Error(`Cannot use \`resolve(...)\` with a non-absolute pathname or route ID (got "${e[0]}"). \`resolve\` is only for internal pathnames and route IDs; external URLs should be used directly.`);return S+me+le(e[0],e[1])}var ge=`1790248285787`,_e=`sveltekit:snapshot`,ve=`sveltekit:scroll`,ye=`sveltekit:states`,C=`sveltekit:history`,w=`sveltekit:navigation`,T={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},E=location.origin;function be(e){if(e instanceof URL)return e;let t=document.baseURI;if(!t){let e=document.getElementsByTagName(`base`);t=e.length?e[0].href:document.URL}return new URL(e,t)}function D(){return{x:pageXOffset,y:pageYOffset}}function O(e,t){return e.getAttribute(`data-sveltekit-${t}`)}var xe={...T,"":T.hover};function Se(e){let t=e.assignedSlot??e.parentNode;return t?.nodeType===11&&(t=t.host),t}function Ce(e,t){for(;e&&e!==t;){if(e.nodeName.toUpperCase()===`A`&&e.hasAttribute(`href`))return e;e=Se(e)}}function we(e,t,n){let r;try{if(r=new URL(e instanceof SVGAElement?e.href.baseVal:e.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){let e=location.hash.split(`#`)[1]||`/`;r.hash=`#${e}${r.hash}`}}catch{}let i=e instanceof SVGAElement?e.target.baseVal:e.target,a=!r||!!i||A(r,t,n)||(e.getAttribute(`rel`)||``).split(/\s+/).includes(`external`),o=r?.origin===E&&e.hasAttribute(`download`);return{url:r,external:a,target:i,download:o}}function k(e){let t=null,n=null,r=null,i=null,a=null,o=null,s=e;for(;s&&s!==document.documentElement;)r===null&&(r=O(s,`preload-code`)),i===null&&(i=O(s,`preload-data`)),t===null&&(t=O(s,`keepfocus`)),n===null&&(n=O(s,`noscroll`)),a===null&&(a=O(s,`reload`)),o===null&&(o=O(s,`replacestate`)),s=Se(s);function c(e){switch(e){case``:case`true`:return!0;case`off`:case`false`:return!1;default:return}}return{preload_code:xe[r??`off`],preload_data:xe[i??`off`],keepfocus:c(t),noscroll:c(n),reload:c(a),replace_state:c(o)}}function Te(e){let t=r(e),n=!0;function i(){n=!0,t.update(e=>e)}function a(e){n=!1,t.set(e)}function o(e){let r;return t.subscribe(t=>{(r===void 0||n&&t!==r)&&e(r=t)})}return{notify:i,set:a,subscribe:o}}var Ee={v:h};function De(){let{set:e,subscribe:t}=r(!1);async function n(){clearTimeout(void 0);try{let t=await fetch(`${pe}/_app/version.json`,{headers:{pragma:`no-cache`,"cache-control":`no-cache`}});if(!t.ok)return!1;let n=(await t.json()).version!==ge;return n&&(e(!0),Ee.v(),clearTimeout(void 0)),n}catch{return!1}}return{subscribe:t,check:n}}function A(e,t,n){return e.origin!==E||!e.pathname.startsWith(t)?!0:n?e.pathname!==location.pathname:!1}function Oe(e){}var ke=new Set([`load`,`prerender`,`csr`,`ssr`,`trailingSlash`,`config`]);[...ke],[...new Set([...ke])];function Ae(e){return e.filter(e=>e!=null)}function j(e,t){return e+`/`+t}function je(e){return e instanceof c||e instanceof u?e.status:500}function Me(e){return e instanceof u?e.text:`Internal Error`}var M,N,P,Ne=a.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(a.toString()),Pe=`a:`;Ne?(M={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL(Pe)},N={current:null},P={current:!1}):(M=new class{#e=i({});get data(){return n(this.#e)}set data(e){s(this.#e,e)}#t=i(null);get form(){return n(this.#t)}set form(e){s(this.#t,e)}#n=i(null);get error(){return n(this.#n)}set error(e){s(this.#n,e)}#r=i({});get params(){return n(this.#r)}set params(e){s(this.#r,e)}#i=i({id:null});get route(){return n(this.#i)}set route(e){s(this.#i,e)}#a=i({});get state(){return n(this.#a)}set state(e){s(this.#a,e)}#o=i(-1);get status(){return n(this.#o)}set status(e){s(this.#o,e)}#s=i(new URL(Pe));get url(){return n(this.#s)}set url(e){s(this.#s,e)}},N=new class{#e=i(null);get current(){return n(this.#e)}set current(e){s(this.#e,e)}},P=new class{#e=i(!1);get current(){return n(this.#e)}set current(e){s(this.#e,e)}},Ee.v=()=>P.current=!0);function Fe(e){Object.assign(M,e)}var{onMount:Ie,tick:Le}=o,Re=new Set([`icon`,`shortcut icon`,`apple-touch-icon`]),F=null,I=de(`sveltekit:scroll`)??{},L=de(`sveltekit:snapshot`)??{},R={url:Te({}),page:Te({}),navigating:r(null),updated:De()};function ze(e){I[e]=D()}function Be(e,t){let n=e+1;for(;I[n];)delete I[n],n+=1;for(n=t+1;L[n];)delete L[n],n+=1}function z(e,t=!1){return t?location.replace(e.href):location.href=e.href,new Promise(h)}async function Ve(){if(`serviceWorker`in navigator){let e=await navigator.serviceWorker.getRegistration(S||`/`);e&&await e.update()}}var He,Ue,We,B,Ge,V,Ke={},qe={},Je=[],Ye=[],H=null;function Xe(){H?.fork?.then(e=>e?.discard()),H=null,Q={element:void 0,href:void 0}}var Ze=new Map,Qe=new Set,$e=new Set,U=new Set,W={branch:[],error:null,url:null,nav:null},et=!1,tt=!1,nt=!0,G=!1,K=!1,rt=!1,it=!1,at,q,J,Y,ot=new Set,st=new Map,ct=new Map;async function lt(e,t,n){if(globalThis.__sveltekit_1ep40k3.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_1ep40k3.data;for(let t in e)Ke[t]=e[t];for(let e in n)Ke[e]=n[e];for(let e in r)Ke[e]=r[e];for(let e in t)qe[e]=t[e]}document.URL!==location.href&&(location.href=location.href),V=e,await e.hooks.init?.(),He=ue(e),B=document.documentElement,Ge=t,Ue=e.nodes[0],We=e.nodes[1],Ue(),We(),q=history.state?.[C],J=history.state?.[w],q||(q=J=Date.now(),history.replaceState({...history.state,[C]:q,[w]:J},``));let r=I[q];function i(){r&&(history.scrollRestoration=`manual`,scrollTo(r.x,r.y))}n?(i(),await zt(Ge,n)):(await Z({type:`enter`,url:be(V.hash?Gt(new URL(location.href)):location.href),replace_state:!0}),i()),Rt()}function ut(){Je.length=0,it=!1}function dt(e){Ye.some(e=>e?.snapshot)&&(L[e]=Ye.map(e=>e?.snapshot?.capture()))}function ft(e){L[e]?.forEach((e,t)=>{Ye[t]?.snapshot?.restore(e)})}function pt(){ze(q),fe(ve,I),dt(J),fe(_e,L)}async function mt(e,n,r,i){let a,o;n.invalidateAll&&Xe(),await Z({type:`goto`,url:be(e),keepfocus:n.keepFocus,noscroll:n.noScroll,replace_state:n.replaceState,state:n.state,redirect_count:r,nav_token:i,accept:()=>{if(n.invalidateAll){it=!0,a=new Set;for(let[e,t]of st)for(let[n,r]of t)r.resource?.reset(),a.add(j(e,n));o=new Set;for(let[e,t]of ct)for(let n of t.keys())o.add(j(e,n))}n.invalidate&&n.invalidate.forEach(Lt)}}),n.invalidateAll&&t().then(t).then(()=>{for(let[e,t]of st)for(let[n,{resource:r}]of t)a?.has(j(e,n))&&r.start();for(let[e,t]of ct)for(let[n,{resource:r}]of t)o?.has(j(e,n))&&r.reconnect()})}async function ht(e){if(e.id!==H?.id){Xe();let t={};ot.add(t),H={id:e.id,token:t,promise:Tt({...e,preload:t}).then(e=>(ot.delete(t),e.type===`loaded`&&e.state.error&&Xe(),e)),fork:null}}return H.promise}async function gt(e){let t=(await X(e,!1))?.route;t&&await Promise.all([...t.layouts,t.leaf].filter(Boolean).map(e=>e[1]()))}async function _t(e,t,n){let r={params:W.params,route:{id:W.route?.id??null},url:new URL(location.href)};if(W={...e.state,nav:r},Fe(e.props.page),at=new V.root({target:t,props:{...e.props,stores:R,components:Ye},hydrate:n,sync:!1,transformError:void 0}),await Promise.resolve(),n){let e={from:null,to:{...r,scroll:I[q]??D()},willUnload:!1,type:`enter`,complete:Promise.resolve()};U.forEach(t=>t(e))}ft(J),tt=!0}async function vt({url:e,params:t,branch:n,errors:r,status:i,error:a,route:o,form:s}){let c=`never`;if(S&&(e.pathname===S||e.pathname===S+`/`))c=`always`;else for(let e of n)e?.slash!==void 0&&(c=e.slash);e.pathname=d(e.pathname,c),e.search=e.search;let l={type:`loaded`,state:{url:e,params:t,branch:n,error:a,route:o},props:{constructors:Ae(n).map(e=>e.node.component),page:Wt(M)}};s!==void 0&&(l.props.form=s);let u={},f=!M,p=0;for(let e=0;e<Math.max(n.length,W.branch.length);e+=1){let t=n[e],r=W.branch[e];t?.data!==r?.data&&(f=!0),t&&(u={...u,...t.data},f&&(l.props[`data_${p}`]=u),p+=1)}return(!W.url||e.href!==W.url.href||W.error!==a||s!==void 0&&s!==M.form||f)&&(l.props.page={error:a,params:t,route:{id:o?.id??null},state:{},status:i,url:new URL(e),form:s??null,data:f?u:M.data}),l}async function yt({loader:e,parent:t,url:n,params:r,route:i,server_data_node:a}){let o={dependencies:new Set,params:new Set,parent:!1,route:!1,url:!1,search_params:new Set},s=await e();return{node:s,loader:e,server:a,universal:s.universal?.load?{type:`data`,data:null,uses:o}:null,data:a?.data??null,slash:s.universal?.trailingSlash??a?.slash}}function bt(e,t,n){let r=e instanceof Request?e.url:e,i=new URL(r,n);return i.origin===n.origin&&(r=i.href.slice(n.origin.length)),{resolved:i,promise:tt?y(r,i.href,t):te(r,t)}}function xt(e,t,n,r,i,a){if(it)return!0;if(!i)return!1;if(i.parent&&e||i.route&&t||i.url&&n)return!0;for(let e of i.search_params)if(r.has(e))return!0;for(let e of i.params)if(a[e]!==W.params[e])return!0;for(let e of i.dependencies)if(Je.some(t=>t(new URL(e))))return!0;return!1}function St(e,t){return e?.type===`data`?e:e?.type===`skip`?t??null:null}function Ct(e,t){if(!e)return new Set(t.searchParams.keys());let n=new Set([...e.searchParams.keys(),...t.searchParams.keys()]);for(let r of n){let i=e.searchParams.getAll(r),a=t.searchParams.getAll(r);i.every(e=>a.includes(e))&&a.every(e=>i.includes(e))&&n.delete(r)}return n}function wt({error:e,url:t,route:n,params:r}){return{type:`loaded`,state:{error:e,url:t,route:n,params:r,branch:[]},props:{page:Wt(M),constructors:[]}}}async function Tt({id:e,invalidating:t,url:n,params:r,route:i,preload:a}){if(H?.id===e)return ot.delete(H.token),H.promise;let{errors:o,layouts:s,leaf:u}=i,d=[...s,u];o.forEach(e=>e?.().catch(h)),d.forEach(e=>e?.[1]().catch(h));let f=W.url?e!==At(W.url):!1,p=W.route?i.id!==W.route.id:!1,m=Ct(W.url,n),ee=!1,g=d.map(async(e,t)=>{if(!e)return;let a=W.branch[t];return e[1]===a?.loader&&!xt(ee,p,f,m,a.universal?.uses,r)?a:(ee=!0,yt({loader:e[1],url:n,params:r,route:i,parent:async()=>{let e={};for(let n=0;n<t;n+=1)Object.assign(e,(await g[n])?.data);return e},server_data_node:St(e[0]?{type:`skip`}:null,e[0]?a?.server:void 0)}))});for(let e of g)e.catch(h);let _=[];for(let e=0;e<d.length;e+=1)if(d[e])try{_.push(await g[e])}catch(t){if(t instanceof l)return{type:`redirect`,location:t.location};if(a&&ot.has(a))return wt({error:await $(t,{params:r,url:n,route:{id:i.id}}),url:n,params:r,route:i});let s=je(t),u;if(t instanceof c)u=t.body;else{if(await R.updated.check())return await Ve(),await z(n);u=await $(t,{params:r,url:n,route:{id:i.id}})}let d=await Et(e,_,o);return d?vt({url:n,params:r,branch:_.slice(0,d.idx).concat(d.node),errors:o,status:s,error:u,route:i}):await Mt(n,{id:i.id},u,s)}else _.push(void 0);return vt({url:n,params:r,branch:_,errors:o,status:200,error:null,route:i,form:t?void 0:null})}async function Et(e,t,n){for(;e--;)if(n[e]){let r=e;for(;!t[r];)--r;try{return{idx:r+1,node:{node:await n[e](),loader:n[e],data:{},server:null,universal:null}}}catch{continue}}}async function Dt({status:e,error:t,url:n,route:r}){let i={};try{return vt({url:n,params:i,branch:[await yt({loader:Ue,url:n,params:i,route:r,parent:()=>Promise.resolve({}),server_data_node:St(null)}),{node:await We(),loader:We,universal:null,server:null,data:null}],status:e,error:t,errors:[],route:null})}catch(t){if(t instanceof l){await mt(new URL(t.location,location.href),{},0);return}let a=await V.get_error_template(),o=await $(t,{url:n,params:i,route:r}),s=a({status:e,message:String(o?.message??``).replace(/&/g,`&`).replace(/</g,`<`).replace(/>/g,`>`)}),c=new DOMParser().parseFromString(s,`text/html`);throw document.documentElement.replaceChild(document.adoptNode(c.head),document.head),document.documentElement.replaceChild(document.adoptNode(c.body),document.body),t}}async function Ot(e){let t=e.href;if(Ze.has(t))return Ze.get(t);let n;try{let r=(async()=>{let t=await V.hooks.reroute({url:new URL(e),fetch:async(t,n)=>bt(t,n,e).promise})??e;if(typeof t==`string`){let n=new URL(e);V.hash?n.hash=t:n.pathname=t,t=n}return t})();Ze.set(t,r),n=await r}catch{Ze.delete(t);return}return n}async function X(e,t){if(e&&!A(e,S,V.hash)){let n=await Ot(e);if(!n)return;let r=kt(n);for(let n of He){let i=n.exec(r);if(i)return{id:At(e),invalidating:t,route:n,params:p(i),url:e}}}}function kt(e){return f(V.hash?e.hash.replace(/^#/,``).replace(/[?#].+/,``):e.pathname.slice(S.length))||`/`}function At(e){return(V.hash?e.hash.replace(/^#/,``):e.pathname)+e.search}function jt({url:e,type:t,intent:n,delta:r,event:i,scroll:a}){let o=!1,s=Ut(W,n,e,t,a??null);r!==void 0&&(s.navigation.delta=r),i!==void 0&&(s.navigation.event=i);let c={...s.navigation,cancel:()=>{o=!0,s.reject(Error(`navigation cancelled`))}};return G||Qe.forEach(e=>e(c)),o?null:s}async function Z({type:n,url:r,popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c={},redirect_count:l=0,nav_token:d={},accept:f=h,block:p=h,event:m}){let ee=Y;Y=d;let g=await X(r,!1),_=n===`enter`?Ut(W,g,r,n):jt({url:r,type:n,delta:i?.delta,intent:g,scroll:i?.scroll,event:m});if(!_){p(),Y===d&&(Y=ee);return}let v=q,te=J;f(),G=!0,tt&&_.navigation.type!==`enter`&&R.navigating.set(N.current=_.navigation);let y=g&&await Tt(g);if(!y){if(A(r,S,V.hash))return await z(r,s);y=await Mt(r,{id:null},await $(new u(404,`Not Found`,`Not found: ${r.pathname}`),{url:r,params:{},route:{id:null}}),404,s)}if(r=g?.url||r,Y!==d){_.reject(Error(`navigation aborted`));return}if(!y)return;if(y.type===`redirect`){if(l<20){await Z({type:n,url:new URL(y.location,r),popped:i,keepfocus:a,noscroll:o,replace_state:s,state:c,redirect_count:l+1,nav_token:d}),_.fulfil(void 0);return}if(y=await Dt({status:500,error:await $(Error(`Redirect loop`),{url:r,params:{},route:{id:null}}),url:r,route:{id:null}}),!y)return}else if(y.props.page.status>=400&&await R.updated.check())return await Ve(),await z(r,s);if(ut(),ze(v),dt(te),y.props.page.url.pathname!==r.pathname&&(r.pathname=y.props.page.url.pathname),c=i?i.state:c,!i){let e=+!s,t={[C]:q+=e,[w]:J+=e,[ye]:c};(s?history.replaceState:history.pushState).call(history,t,``,r),s||Be(q,J)}let b=g&&H?.id===g.id?H.fork:null;H?.fork&&!b?Xe():(H=null,Q={element:void 0,href:void 0}),y.props.page.state=c;let ne;if(tt){let t=(await Promise.all(Array.from($e,e=>e(_.navigation)))).filter(e=>typeof e==`function`);if(t.length>0){function e(){t.forEach(e=>{U.delete(e)})}t.push(e),t.forEach(e=>{U.add(e)})}let n=_.navigation.to;W={...y.state,nav:{params:n.params,route:n.route,url:n.url}},y.props.page&&(y.props.page.url=r),!a&&document.activeElement instanceof HTMLElement&&document.activeElement!==document.body&&document.activeElement.blur();let i=b&&await b;i?ne=i.commit():(F=null,at.$set(y.props),F&&Object.assign(y.props.page,F),Fe(y.props.page),ne=e?.()),rt=!0}else await _t(y,Ge,!1);let{activeElement:re}=document;if(await ne,await t(),await t(),Y!==d){_.reject(Error(`navigation aborted`));return}y.props.page&&F&&Object.assign(y.props.page,F);let x=null;if(nt){let e=i?i.scroll:o?D():null;e?scrollTo(e.x,e.y):(x=r.hash&&document.getElementById(Kt(r)))?x.scrollIntoView():scrollTo(0,0)}let ie=document.activeElement!==re&&document.activeElement!==document.body;!a&&!ie&&Ht(r,!x),nt=!0,G=!1,_.fulfil(void 0),_.navigation.to&&(_.navigation.to.scroll=D()),U.forEach(e=>e(_.navigation)),n===`popstate`&&ft(J),R.navigating.set(N.current=null)}async function Mt(e,t,n,r,i){return e.origin===E&&e.pathname===location.pathname&&!et?await Dt({status:r,error:n,url:e,route:t}):await z(e,i)}var Q={element:void 0,href:void 0};function Nt(){let e,t;B.addEventListener(`mousemove`,t=>{let n=t.target;clearTimeout(e),e=setTimeout(()=>{i(n,T.hover)},20)});function n(e){e.defaultPrevented||i(e.composedPath()[0],T.tap)}B.addEventListener(`mousedown`,n),B.addEventListener(`touchstart`,n,{passive:!0});let r=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&(gt(new URL(t.target.href)),r.unobserve(t.target))},{threshold:0});async function i(e,n){let r=Ce(e,B),i=r===Q.element&&r?.href===Q.href&&n>=t;if(!r||i)return;let{url:a,external:o,download:s}=we(r,S,V.hash);if(o||s)return;let c=k(r),l=a&&At(W.url)===At(a);if(!(c.reload||l))if(n<=c.preload_data){Q={element:r,href:r.href},t=T.tap;let e=await X(a,!1);if(!e)return;ht(e)}else n<=c.preload_code&&(Q={element:r,href:r.href},t=n,gt(a))}function a(){r.disconnect();for(let e of B.querySelectorAll(`a`)){let{url:t,external:n,download:i}=we(e,S,V.hash);if(n||i)continue;let a=k(e);a.reload||(a.preload_code===T.viewport&&r.observe(e),a.preload_code===T.eager&>(t))}}U.add(a),a()}function $(e,t){if(e instanceof c)return e.body;let n=je(e),r=Me(e);return V.hooks.handleError({error:e,event:t,status:n,message:r})??{message:r}}function Pt(e,t){Ie(()=>(e.add(t),()=>{e.delete(t)}))}function Ft(e){Pt(U,e)}function It(e,t={}){return e=new URL(be(e)),e.origin===E?mt(e,t,0):Promise.reject(Error(`goto: invalid URL`))}function Lt(e){if(typeof e==`function`)Je.push(e);else{let{href:t}=new URL(e,location.href);Je.push(e=>e.href===t)}}function Rt(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(pt(),!G){let e=Ut(W,void 0,null,`leave`),n={...e.navigation,cancel:()=>{t=!0,e.reject(Error(`navigation cancelled`))}};Qe.forEach(e=>e(n))}t?(e.preventDefault(),e.returnValue=``):history.scrollRestoration=`auto`}),addEventListener(`visibilitychange`,()=>{document.visibilityState===`hidden`&&pt()}),navigator.connection?.saveData||Nt(),B.addEventListener(`click`,async t=>{if(t.button||t.which!==1||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.defaultPrevented)return;let n=Ce(t.composedPath()[0],B);if(!n)return;let{url:r,external:i,target:a,download:o}=we(n,S,V.hash);if(!r)return;if(a===`_parent`||a===`_top`){if(window.parent!==window)return}else if(a&&a!==`_self`)return;let s=k(n);if(!(n instanceof SVGAElement)&&r.protocol!==location.protocol&&!(r.protocol===`https:`||r.protocol===`http:`)||o)return;let[c,l]=(V.hash?r.hash.replace(/^#/,``):r.href).split(`#`),u=c===m(location);if(i||s.reload&&(!u||!l)){jt({url:r,type:`link`,event:t})?G=!0:t.preventDefault();return}if(l!==void 0&&u){let[,i]=W.url.href.split(`#`);if(i===l){if(t.preventDefault(),l===``||l===`top`&&n.ownerDocument.getElementById(`top`)===null)scrollTo({top:0});else{let e=n.ownerDocument.getElementById(decodeURIComponent(l));e&&(e.scrollIntoView(),e.focus())}return}if(K=!0,ze(q),e(r),!s.replace_state)return;K=!1}t.preventDefault(),await new Promise(e=>{requestAnimationFrame(()=>{setTimeout(e,0)}),setTimeout(e,100)}),await Z({type:`link`,url:r,keepfocus:s.keepfocus,noscroll:s.noscroll,replace_state:s.replace_state??r.href===location.href,event:t})}),B.addEventListener(`submit`,e=>{if(e.defaultPrevented)return;let t=HTMLFormElement.prototype.cloneNode.call(e.target),n=e.submitter;if((n?.formTarget||t.target)===`_blank`||(n?.formMethod||t.method)!==`get`)return;let r=new URL(n?.hasAttribute(`formaction`)&&n?.formAction||t.action);if(A(r,S,!1))return;let i=e.target,a=k(i);if(a.reload)return;e.preventDefault(),e.stopPropagation();let o=new FormData(i,n);r.search=new URLSearchParams(o).toString(),Z({type:`form`,url:r,keepfocus:a.keepfocus,noscroll:a.noscroll,replace_state:a.replace_state??r.href===location.href,event:e})}),addEventListener(`popstate`,async t=>{if(!Vt)if(t.state?.[`sveltekit:history`]){let n=t.state[C];if(Y={},n===q)return;let r=I[n],i=t.state[`sveltekit:states`]??{},a=new URL(t.state[`sveltekit:pageurl`]??location.href),o=t.state[w],s=W.url?m(location)===m(W.url):!1;if(o===J&&(rt||s)){i!==M.state&&(M.state=i),e(a),I[q]=D(),r&&scrollTo(r.x,r.y),q=n;return}let c=n-q;await Z({type:`popstate`,url:a,popped:{state:i,scroll:r,delta:c},accept:()=>{q=n,J=o},block:()=>{history.go(-c)},nav_token:Y,event:t})}else K||(e(new URL(location.href)),V.hash&&location.reload())}),addEventListener(`hashchange`,()=>{K&&(K=!1,history.replaceState({...history.state,[C]:++q,[w]:J},``,location.href))});for(let e of document.querySelectorAll(`link`))Re.has(e.rel)&&(e.href=e.href);addEventListener(`pageshow`,e=>{e.persisted&&R.navigating.set(N.current=null)});function e(e){W.url=M.url=e,R.page.set(Wt(M)),R.page.notify()}}async function zt(e,{status:t=200,error:n,node_ids:r,params:i,route:a,server_route:o,data:s,form:c}){et=!0;let u=new URL(location.href),d;({params:i={},route:a={id:null}}=await X(u,!1)||{}),d=He.find(({id:e})=>e===a.id);let f,p=!0;try{let e=r.map(async(t,n)=>{let r=s[n];return r?.uses&&(r.uses=Bt(r.uses)),yt({loader:V.nodes[t],url:u,params:i,route:a,parent:async()=>{let t={};for(let r=0;r<n;r+=1)Object.assign(t,(await e[r]).data);return t},server_data_node:St(r)})}),o=await Promise.all(e);if(d){let e=d.layouts;for(let t=0;t<e.length;t++)e[t]||o.splice(t,0,void 0)}f=await vt({url:u,params:i,branch:o,status:t,error:n,errors:d?.errors,form:c,route:d??null})}catch(t){if(t instanceof l)return await z(new URL(t.location,location.href));f=await Dt({status:je(t),error:await $(t,{url:u,params:i,route:a}),url:u,route:a}),e.textContent=``,p=!1}f&&(f.props.page&&(f.props.page.state={}),await _t(f,e,p))}function Bt(e){return{dependencies:new Set(e?.dependencies??[]),params:new Set(e?.params??[]),parent:!!e?.parent,route:!!e?.route,url:!!e?.url,search_params:new Set(e?.search_params??[])}}var Vt=!1;function Ht(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=Kt(e);if(n&&document.getElementById(n)){let{x:r,y:i}=D();setTimeout(()=>{let a=history.state;Vt=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),Vt=!1})}else{let e=document.body,t=e.getAttribute(`tabindex`);e.tabIndex=-1,e.focus({preventScroll:!0,focusVisible:!1}),t===null?e.removeAttribute(`tabindex`):e.setAttribute(`tabindex`,t)}let r=getSelection();if(r&&r.type!==`None`){let e=[];for(let t=0;t<r.rangeCount;t+=1)e.push(r.getRangeAt(t));setTimeout(()=>{if(r.rangeCount===e.length){for(let t=0;t<r.rangeCount;t+=1){let n=e[t],i=r.getRangeAt(t);if(n.commonAncestorContainer!==i.commonAncestorContainer||n.startContainer!==i.startContainer||n.endContainer!==i.endContainer||n.startOffset!==i.startOffset||n.endOffset!==i.endOffset)return}r.removeAllRanges()}})}}}function Ut(e,t,n,r,i=null){let a,o,s=new Promise((e,t)=>{a=e,o=t});return s.catch(h),{navigation:{from:{params:e.params,route:{id:e.route?.id??null},url:e.url,scroll:D()},to:n&&{params:t?.params??null,route:{id:t?.route?.id??null},url:n,scroll:i},willUnload:!t,type:r,complete:s},fulfil:a,reject:o}}function Wt(e){return{data:e.data,error:e.error,form:e.form,params:e.params,route:e.route,state:e.state,status:e.status,url:e.url}}function Gt(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function Kt(e){let t;if(V.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{N as a,Oe as c,R as i,he as l,It as n,M as o,lt as r,P as s,Ft as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./DLEDBLL1.js";import{i as e,o as t}from"./
|
|
1
|
+
import"./DLEDBLL1.js";import{i as e,o as t}from"./CCIxsMRK.js";var n={get data(){return t.data},get error(){return t.error},get form(){return t.form},get params(){return t.params},get route(){return t.route},get state(){return t.state},get status(){return t.status},get url(){return t.url}};e.updated.check;var r=n;export{r as t};
|
|
Binary file
|
|
Binary file
|