fundus 0.0.4 → 0.1.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 +18 -8
- package/build/client/_app/immutable/assets/{3.JwgtcTEd.css → 3.C-toFWI4.css} +1 -1
- package/build/client/_app/immutable/assets/3.C-toFWI4.css.br +0 -0
- package/build/client/_app/immutable/assets/3.C-toFWI4.css.gz +0 -0
- package/build/client/_app/immutable/chunks/BA62n9FX.js +108 -0
- package/build/client/_app/immutable/chunks/BA62n9FX.js.br +0 -0
- package/build/client/_app/immutable/chunks/BA62n9FX.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DkADHpZF.js → CQsKwm8E.js} +1 -1
- package/build/client/_app/immutable/chunks/CQsKwm8E.js.br +0 -0
- package/build/client/_app/immutable/chunks/CQsKwm8E.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DVEQFclp.js → D9-155C9.js} +1 -1
- package/build/client/_app/immutable/chunks/D9-155C9.js.br +0 -0
- package/build/client/_app/immutable/chunks/D9-155C9.js.gz +0 -0
- package/build/client/_app/immutable/chunks/{DiFoWL2c.js → DVEDrSOn.js} +1 -1
- package/build/client/_app/immutable/chunks/DVEDrSOn.js.br +0 -0
- package/build/client/_app/immutable/chunks/DVEDrSOn.js.gz +0 -0
- package/build/client/_app/immutable/chunks/cznBUb-E.js +1 -0
- package/build/client/_app/immutable/chunks/cznBUb-E.js.br +0 -0
- package/build/client/_app/immutable/chunks/cznBUb-E.js.gz +0 -0
- package/build/client/_app/immutable/entry/{app.CKgtYXQb.js → app.DwQWZs1F.js} +2 -2
- package/build/client/_app/immutable/entry/app.DwQWZs1F.js.br +0 -0
- package/build/client/_app/immutable/entry/app.DwQWZs1F.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.DEpAL_8Q.js +1 -0
- package/build/client/_app/immutable/entry/start.DEpAL_8Q.js.br +0 -0
- package/build/client/_app/immutable/entry/start.DEpAL_8Q.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{0.I_1SApYQ.js → 0.Sr1WDgiY.js} +1 -1
- package/build/client/_app/immutable/nodes/0.Sr1WDgiY.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.Sr1WDgiY.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{1.v6eUTnWq.js → 1.BwHqv728.js} +1 -1
- package/build/client/_app/immutable/nodes/1.BwHqv728.js.br +2 -0
- package/build/client/_app/immutable/nodes/1.BwHqv728.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{2.DoA7Dfl-.js → 2.DidxYIU-.js} +1 -1
- package/build/client/_app/immutable/nodes/2.DidxYIU-.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DidxYIU-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.C1AavoTf.js +1 -0
- package/build/client/_app/immutable/nodes/3.C1AavoTf.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.C1AavoTf.js.gz +0 -0
- package/build/client/_app/immutable/nodes/{4.CALOuSyz.js → 4.D8UoOONM.js} +2 -2
- package/build/client/_app/immutable/nodes/4.D8UoOONM.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.D8UoOONM.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/{context.js-BUZqFfWG.js → context.js-CGD-b_vR.js} +7 -3
- package/build/server/chunks/chunks/context.js-CGD-b_vR.js.map +1 -0
- package/build/server/chunks/chunks/core.js-xfrkaQpS.js.map +1 -1
- package/build/server/chunks/chunks/{exports.js-C0rwMMtk.js → exports.js-B4E0NJIt.js} +2 -2
- package/build/server/chunks/chunks/{exports.js-C0rwMMtk.js.map → exports.js-B4E0NJIt.js.map} +1 -1
- package/build/server/chunks/chunks/{http.js-DvopzwKh.js → http.js-Bu-Ao0Vk.js} +2 -2
- package/build/server/chunks/chunks/{http.js-DvopzwKh.js.map → http.js-Bu-Ao0Vk.js.map} +1 -1
- package/build/server/chunks/chunks/{internal.js-DGo2jPcg.js → internal.js-ClSxY3uX.js} +3 -3
- package/build/server/chunks/chunks/{internal.js-DGo2jPcg.js.map → internal.js-ClSxY3uX.js.map} +1 -1
- package/build/server/chunks/chunks/internal2.js-BlXt2rfE.js.map +1 -1
- package/build/server/chunks/chunks/{library-store.js-ZLudCJlT.js → library-store.js-CZCDpai0.js} +53 -2
- package/build/server/chunks/chunks/library-store.js-CZCDpai0.js.map +1 -0
- package/build/server/chunks/chunks/{shared.js-B1gC9MiJ.js → shared.js-CHQOW_GN.js} +2 -2
- package/build/server/chunks/chunks/{shared.js-B1gC9MiJ.js.map → shared.js-CHQOW_GN.js.map} +1 -1
- package/build/server/chunks/chunks/{utils.js-DnEJ3UjO.js → utils.js-B9L6I-_K.js} +3 -3
- package/build/server/chunks/chunks/{utils.js-DnEJ3UjO.js.map → utils.js-B9L6I-_K.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-Cq5gXVQT.js → _server.ts.js-PO5RpNzP.js} +3 -3
- package/build/server/chunks/entries/endpoints/api/_...path_/{_server.ts.js-Cq5gXVQT.js.map → _server.ts.js-PO5RpNzP.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-RXbedi8q.js → _server.ts.js-BmgqGEXs.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/assets/_id_/{_server.ts.js-RXbedi8q.js.map → _server.ts.js-BmgqGEXs.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/_server.ts.js-DnTOlfHs.js +35 -0
- package/build/server/chunks/entries/endpoints/api/assets/_id_/raw/_server.ts.js-DnTOlfHs.js.map +1 -0
- package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-D7Qae9vU.js → _server.ts.js-DzdC6OJE.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/assets/{_server.ts.js-D7Qae9vU.js.map → _server.ts.js-DzdC6OJE.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-DtO20kgB.js → _server.ts.js-DXJNoYAs.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/assets/delete/{_server.ts.js-DtO20kgB.js.map → _server.ts.js-DXJNoYAs.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-BUebPbd5.js → _server.ts.js-CqdKXoZL.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/assets/move/{_server.ts.js-BUebPbd5.js.map → _server.ts.js-CqdKXoZL.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-BjT2qPMT.js → _server.ts.js-DIuY66jG.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/folders/_path_/{_server.ts.js-BjT2qPMT.js.map → _server.ts.js-DIuY66jG.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-DYRLsoT7.js → _server.ts.js-D9p-cdJQ.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/folders/{_server.ts.js-DYRLsoT7.js.map → _server.ts.js-D9p-cdJQ.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-BbN2fGNN.js → _server.ts.js-DP1x-xAW.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/manifests/_name_/{_server.ts.js-BbN2fGNN.js.map → _server.ts.js-DP1x-xAW.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-b_MKZ41b.js → _server.ts.js-r1eNMvPd.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/manifests/{_server.ts.js-b_MKZ41b.js.map → _server.ts.js-r1eNMvPd.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-evEfMpvn.js → _server.ts.js-D-m3BwRj.js} +4 -4
- package/build/server/chunks/entries/endpoints/api/state/{_server.ts.js-evEfMpvn.js.map → _server.ts.js-D-m3BwRj.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-C04XE_1w.js → _server.ts.js-3nyAQ3f0.js} +3 -3
- package/build/server/chunks/entries/endpoints/files/_...path_/{_server.ts.js-C04XE_1w.js.map → _server.ts.js-3nyAQ3f0.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-DB8TdoEv.js → _server.ts.js-Ba285FiJ.js} +4 -4
- package/build/server/chunks/entries/endpoints/files/proxy/_...path_/{_server.ts.js-DB8TdoEv.js.map → _server.ts.js-Ba285FiJ.js.map} +1 -1
- package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-BrpaijZO.js → _server.ts.js-X354l2NP.js} +4 -4
- package/build/server/chunks/entries/endpoints/files/raw/_...path_/{_server.ts.js-BrpaijZO.js.map → _server.ts.js-X354l2NP.js.map} +1 -1
- package/build/server/chunks/entries/{hooks.server.js-BJJwZW_I.js → hooks.server.js-eZ7H27L4.js} +3 -3
- package/build/server/chunks/entries/{hooks.server.js-BJJwZW_I.js.map → hooks.server.js-eZ7H27L4.js.map} +1 -1
- package/build/server/chunks/{handler-DnbS2t1B.js → handler-Dcc_-rVh.js} +5 -5
- package/build/server/chunks/{handler-DnbS2t1B.js.map → handler-Dcc_-rVh.js.map} +1 -1
- package/build/server/chunks/{index.js-g77q3Boj.js → index.js-DoVHd4mf.js} +5 -5
- package/build/server/chunks/{index.js-g77q3Boj.js.map → index.js-DoVHd4mf.js.map} +1 -1
- package/build/server/chunks/{manifest.js-qmEXbstS.js → manifest.js-C_MsDhaa.js} +27 -20
- package/build/server/chunks/manifest.js-C_MsDhaa.js.map +1 -0
- package/build/server/chunks/nodes/0.js-BP6hHAK9.js +11 -0
- package/build/server/chunks/nodes/{0.js-Bk6IZ-vD.js.map → 0.js-BP6hHAK9.js.map} +1 -1
- package/build/server/chunks/nodes/1.js-DKlcrAQP.js +7 -0
- package/build/server/chunks/nodes/{1.js-H-qwo4GJ.js.map → 1.js-DKlcrAQP.js.map} +1 -1
- package/build/server/chunks/nodes/2.js-B-8TTZH_.js +7 -0
- package/build/server/chunks/nodes/{2.js-DRpXVLwp.js.map → 2.js-B-8TTZH_.js.map} +1 -1
- package/build/server/chunks/nodes/3.js-Cf7H6K5p.js +7 -0
- package/build/server/chunks/nodes/3.js-Cf7H6K5p.js.map +1 -0
- package/build/server/chunks/nodes/4.js-JQQZnHWZ.js +7 -0
- package/build/server/chunks/nodes/{4.js-BKL7LSSm.js.map → 4.js-JQQZnHWZ.js.map} +1 -1
- package/dist/cli.js +32 -9
- package/dist/core/api-types.d.ts +1 -1
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/ingest.d.ts +2 -0
- package/dist/core/ingest.js +7 -0
- package/dist/server/cli-commands.d.ts +2 -1
- package/dist/server/cli-commands.js +42 -1
- package/dist/server/cli-init.d.ts +1 -1
- package/dist/server/cli-init.js +23 -5
- package/dist/server/index.d.ts +1 -1
- package/dist/server/library-store.d.ts +11 -0
- package/dist/server/library-store.js +57 -0
- package/dist/server/operations.d.ts +3 -1
- package/dist/server/operations.js +5 -1
- package/dist/server/start.d.ts +4 -2
- package/dist/server/start.js +43 -11
- package/package.json +1 -1
- package/build/client/_app/immutable/assets/3.JwgtcTEd.css.br +0 -0
- package/build/client/_app/immutable/assets/3.JwgtcTEd.css.gz +0 -0
- package/build/client/_app/immutable/chunks/CO4RBJfa.js +0 -1
- package/build/client/_app/immutable/chunks/CO4RBJfa.js.br +0 -0
- package/build/client/_app/immutable/chunks/CO4RBJfa.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DOpBpjxS.js +0 -108
- package/build/client/_app/immutable/chunks/DOpBpjxS.js.br +0 -0
- package/build/client/_app/immutable/chunks/DOpBpjxS.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DVEQFclp.js.br +0 -1
- package/build/client/_app/immutable/chunks/DVEQFclp.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DiFoWL2c.js.br +0 -0
- package/build/client/_app/immutable/chunks/DiFoWL2c.js.gz +0 -0
- package/build/client/_app/immutable/chunks/DkADHpZF.js.br +0 -0
- package/build/client/_app/immutable/chunks/DkADHpZF.js.gz +0 -0
- package/build/client/_app/immutable/entry/app.CKgtYXQb.js.br +0 -0
- package/build/client/_app/immutable/entry/app.CKgtYXQb.js.gz +0 -0
- package/build/client/_app/immutable/entry/start.CYZu5qE1.js +0 -1
- package/build/client/_app/immutable/entry/start.CYZu5qE1.js.br +0 -0
- package/build/client/_app/immutable/entry/start.CYZu5qE1.js.gz +0 -0
- package/build/client/_app/immutable/nodes/0.I_1SApYQ.js.br +0 -0
- package/build/client/_app/immutable/nodes/0.I_1SApYQ.js.gz +0 -0
- package/build/client/_app/immutable/nodes/1.v6eUTnWq.js.br +0 -2
- package/build/client/_app/immutable/nodes/1.v6eUTnWq.js.gz +0 -0
- package/build/client/_app/immutable/nodes/2.DoA7Dfl-.js.br +0 -0
- package/build/client/_app/immutable/nodes/2.DoA7Dfl-.js.gz +0 -0
- package/build/client/_app/immutable/nodes/3.C-DO70Bs.js +0 -1
- package/build/client/_app/immutable/nodes/3.C-DO70Bs.js.br +0 -0
- package/build/client/_app/immutable/nodes/3.C-DO70Bs.js.gz +0 -0
- package/build/client/_app/immutable/nodes/4.CALOuSyz.js.br +0 -0
- package/build/client/_app/immutable/nodes/4.CALOuSyz.js.gz +0 -0
- package/build/server/chunks/chunks/context.js-BUZqFfWG.js.map +0 -1
- package/build/server/chunks/chunks/library-store.js-ZLudCJlT.js.map +0 -1
- package/build/server/chunks/manifest.js-qmEXbstS.js.map +0 -1
- package/build/server/chunks/nodes/0.js-Bk6IZ-vD.js +0 -11
- package/build/server/chunks/nodes/1.js-H-qwo4GJ.js +0 -7
- package/build/server/chunks/nodes/2.js-DRpXVLwp.js +0 -7
- package/build/server/chunks/nodes/3.js-CDEzNFeU.js +0 -7
- package/build/server/chunks/nodes/3.js-CDEzNFeU.js.map +0 -1
- package/build/server/chunks/nodes/4.js-BKL7LSSm.js +0 -7
package/README.md
CHANGED
|
@@ -24,11 +24,13 @@ npx fundus init
|
|
|
24
24
|
npx fundus start
|
|
25
25
|
```
|
|
26
26
|
|
|
27
|
-
`fundus init` creates `fundus.config.ts
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
27
|
+
`fundus init` creates `fundus.config.ts` and an asset library with a default
|
|
28
|
+
`main` manifest. It refuses to run if a Fundus config already exists. `fundus
|
|
29
|
+
start` launches the packaged SvelteKit Node application on
|
|
30
|
+
`http://127.0.0.1:7583`; the client-rendered editor, asset API, and raw/proxy file
|
|
31
|
+
endpoints share one local origin. Fundus opens the editor in your default browser
|
|
32
|
+
once the server is ready. Pass `--port 8080` to choose another port, or
|
|
33
|
+
`--no-open` to start without opening a browser.
|
|
32
34
|
|
|
33
35
|
For editor development against a host project, provide its absolute path:
|
|
34
36
|
|
|
@@ -45,9 +47,10 @@ npm run smoke:e2e
|
|
|
45
47
|
|
|
46
48
|
This uses the current `sv` CLI, installs a locally packed Fundus artifact, runs
|
|
47
49
|
`fundus init`, checks and builds both projects, boots the generated host, and
|
|
48
|
-
boots the packaged editor and API
|
|
49
|
-
|
|
50
|
-
`
|
|
50
|
+
boots the packaged editor and API, opens the editor in your default browser, and
|
|
51
|
+
keeps it running until you press Ctrl+C. The generated host remains under the
|
|
52
|
+
gitignored `.fundus-e2e/app` directory for inspection and is recreated on every
|
|
53
|
+
run. Set `SV_VERSION` to test a specific CLI release instead of `latest`.
|
|
51
54
|
|
|
52
55
|
Build optimized assets and generated manifests, then verify everything is in
|
|
53
56
|
sync:
|
|
@@ -57,6 +60,13 @@ npx fundus build
|
|
|
57
60
|
npx fundus check
|
|
58
61
|
```
|
|
59
62
|
|
|
63
|
+
Replace an asset's source file without changing its id, type, parameters,
|
|
64
|
+
folder, or manifest memberships from the editor's asset inspector, or via CLI:
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
npx fundus asset replace navigationPanel ./exports/navigation-panel-v2.png
|
|
68
|
+
```
|
|
69
|
+
|
|
60
70
|
Use the generated manifests with Fundus runtime components:
|
|
61
71
|
|
|
62
72
|
```svelte
|
|
@@ -1 +1 @@
|
|
|
1
|
-
.manifest-selector.svelte-151zph4{flex-direction:column;gap:4px;width:100%;display:flex}.manifest-option.svelte-151zph4{border-color:var(--border-soft);width:100%;height:28px;color:var(--text-dim);cursor:pointer;border-radius:4px;align-items:center;gap:7px;padding:2px 7px;display:flex}.manifest-option.svelte-151zph4:hover{border-color:var(--manifest-color);background:color-mix(in srgb, var(--manifest-color) 10%, var(--panel-raised));color:var(--text)}.manifest-option.svelte-151zph4:focus-within{border-color:var(--manifest-color)}.manifest-option.selected.svelte-151zph4{border-color:var(--manifest-color);background:color-mix(in srgb, var(--manifest-color) 20%, var(--panel-raised));color:var(--text)}.manifest-option.passive.svelte-151zph4{border-color:var(--manifest-color);border-style:dashed}input.svelte-151zph4{width:14px;height:14px;accent-color:var(--manifest-color);flex:none;margin:0}.marker.svelte-151zph4{border:1px solid color-mix(in srgb, var(--manifest-color) 70%, var(--border));background:color-mix(in srgb, var(--manifest-color) 24%, var(--panel));border-radius:3px;flex:none;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;display:inline-flex}.color-dot.svelte-151zph4{background:var(--manifest-color);border-radius:50%;width:8px;height:8px}.name.svelte-151zph4,.via.svelte-151zph4{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.name.svelte-151zph4{font-size:11px;font-weight:500}.via.svelte-151zph4{color:var(--text-faint);margin-left:auto;font-size:9px}.detail.svelte-xy8zsr{flex:1;grid-template-columns:224px 1fr 280px;min-height:0;display:grid}.center.svelte-xy8zsr{flex-direction:column;min-width:0;min-height:0;padding:12px 16px;display:flex}.center.empty.svelte-xy8zsr,.empty.svelte-xy8zsr{color:var(--text-dim);flex:1;justify-content:center;align-items:center;display:flex}.inspector.svelte-xy8zsr{background:var(--panel);border-left:1px solid var(--border);overflow-y:auto}.inspector.svelte-xy8zsr section:where(.svelte-xy8zsr){border-bottom:1px solid var(--border-soft);padding:12px}.inspector.svelte-xy8zsr h2:where(.svelte-xy8zsr){word-break:break-all;margin:0;font-size:13px}.raw.svelte-xy8zsr{color:var(--text-dim);word-break:break-all;margin:4px 0 0}.warning.svelte-xy8zsr{color:var(--warning);margin:8px 0 0;font-size:11px}.hint.svelte-xy8zsr{color:var(--text-faint);margin:0;font-size:11px}.inspector.svelte-xy8zsr h4:where(.svelte-xy8zsr){text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin:8px 0 4px;font-size:10px}.reference-row.svelte-xy8zsr{border-radius:var(--radius);color:var(--text-dim);align-items:center;gap:6px;min-width:0;padding:3px 4px;display:flex}.reference-row.svelte-xy8zsr:hover{background:var(--panel-raised);color:var(--text)}.reference-field.svelte-xy8zsr{color:var(--text-faint);font-size:11px}.reference-arrow.svelte-xy8zsr{color:var(--text-faint);flex:none}.reference-asset.svelte-xy8zsr{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.rename.svelte-xy8zsr{gap:8px;margin-bottom:8px;display:flex}.rename.svelte-xy8zsr input:where(.svelte-xy8zsr){flex:1;min-width:0}.danger.svelte-xy8zsr{width:100%}
|
|
1
|
+
.manifest-selector.svelte-151zph4{flex-direction:column;gap:4px;width:100%;display:flex}.manifest-option.svelte-151zph4{border-color:var(--border-soft);width:100%;height:28px;color:var(--text-dim);cursor:pointer;border-radius:4px;align-items:center;gap:7px;padding:2px 7px;display:flex}.manifest-option.svelte-151zph4:hover{border-color:var(--manifest-color);background:color-mix(in srgb, var(--manifest-color) 10%, var(--panel-raised));color:var(--text)}.manifest-option.svelte-151zph4:focus-within{border-color:var(--manifest-color)}.manifest-option.selected.svelte-151zph4{border-color:var(--manifest-color);background:color-mix(in srgb, var(--manifest-color) 20%, var(--panel-raised));color:var(--text)}.manifest-option.passive.svelte-151zph4{border-color:var(--manifest-color);border-style:dashed}input.svelte-151zph4{width:14px;height:14px;accent-color:var(--manifest-color);flex:none;margin:0}.marker.svelte-151zph4{border:1px solid color-mix(in srgb, var(--manifest-color) 70%, var(--border));background:color-mix(in srgb, var(--manifest-color) 24%, var(--panel));border-radius:3px;flex:none;justify-content:center;align-items:center;width:18px;height:18px;font-size:12px;display:inline-flex}.color-dot.svelte-151zph4{background:var(--manifest-color);border-radius:50%;width:8px;height:8px}.name.svelte-151zph4,.via.svelte-151zph4{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.name.svelte-151zph4{font-size:11px;font-weight:500}.via.svelte-151zph4{color:var(--text-faint);margin-left:auto;font-size:9px}.detail.svelte-xy8zsr{flex:1;grid-template-columns:224px 1fr 280px;min-height:0;display:grid}.center.svelte-xy8zsr{flex-direction:column;min-width:0;min-height:0;padding:12px 16px;display:flex}.center.empty.svelte-xy8zsr,.empty.svelte-xy8zsr{color:var(--text-dim);flex:1;justify-content:center;align-items:center;display:flex}.inspector.svelte-xy8zsr{background:var(--panel);border-left:1px solid var(--border);overflow-y:auto}.inspector.svelte-xy8zsr section:where(.svelte-xy8zsr){border-bottom:1px solid var(--border-soft);padding:12px}.inspector.svelte-xy8zsr h2:where(.svelte-xy8zsr){word-break:break-all;margin:0;font-size:13px}.raw.svelte-xy8zsr{color:var(--text-dim);word-break:break-all;margin:4px 0 0}.warning.svelte-xy8zsr{color:var(--warning);margin:8px 0 0;font-size:11px}.hint.svelte-xy8zsr{color:var(--text-faint);margin:0;font-size:11px}.inspector.svelte-xy8zsr h4:where(.svelte-xy8zsr){text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);margin:8px 0 4px;font-size:10px}.reference-row.svelte-xy8zsr{border-radius:var(--radius);color:var(--text-dim);align-items:center;gap:6px;min-width:0;padding:3px 4px;display:flex}.reference-row.svelte-xy8zsr:hover{background:var(--panel-raised);color:var(--text)}.reference-field.svelte-xy8zsr{color:var(--text-faint);font-size:11px}.reference-arrow.svelte-xy8zsr{color:var(--text-faint);flex:none}.reference-asset.svelte-xy8zsr{color:var(--accent);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.rename.svelte-xy8zsr{gap:8px;margin-bottom:8px;display:flex}.replace-raw.svelte-xy8zsr{width:100%;margin-bottom:8px}.rename.svelte-xy8zsr input:where(.svelte-xy8zsr){flex:1;min-width:0}.danger.svelte-xy8zsr{width:100%}
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import{$ as e,A as t,B as n,C as r,D as i,E as a,G as o,I as s,J as c,K as l,L as u,M as d,N as f,O as p,P as m,S as h,T as g,U as _,W as v,X as y,Y as b,_ as x,a as S,b as C,c as w,d as T,et as E,g as D,h as O,i as k,it as A,j,k as M,l as N,m as P,n as F,p as I,q as L,rt as R,s as z,w as B,x as V,z as H}from"./CNRz3sSw.js";import"./DVEDrSOn.js";import"./xihTtKlq.js";import{f as U,l as W,m as G,n as ee,o as te,t as K}from"./cznBUb-E.js";import{_ as ne,c as re,d as ie,f as q,g as J,h as Y,i as X,l as Z,m as ae,n as oe,p as se,r as ce,s as le,t as ue,u as de,v as fe,y as pe}from"./CQsKwm8E.js";var me=/[\u0000-\u001f\u007f]/,he=/[<>:"|?*]/,ge=/^(con|prn|aux|nul|com[1-9]|lpt[1-9])(?:\..*)?$/i;function _e(e){return e.length===0?`Folder names must not be empty.`:e===e.trim()?e===`.`||e===`..`?`"${e}" is not a valid folder name.`:e.includes(`/`)||e.includes(`\\`)?`Folder names must not contain path separators.`:me.test(e)?`Folder names must not contain control characters.`:he.test(e)?`Folder names must not contain Windows-reserved characters (: * ? " < > |).`:e.endsWith(`.`)?`Folder names must not end with a dot.`:e.toLocaleLowerCase(`en-US`)===`root`?`"${e}" is reserved for the implicit Fundus root folder.`:e.toLocaleLowerCase(`en-US`)===`.gitkeep`?`"${e}" is reserved for Fundus folder management.`:ge.test(e)?`"${e}" is a reserved filesystem name.`:null:`Folder names must not start or end with whitespace.`}function ve(e){return e.split(`/`).map(e=>e.normalize(`NFC`)).join(`/`)}function ye(e){return ve(e).toLocaleLowerCase(`en-US`)}function be(e){let t=e.lastIndexOf(`/`);return t===-1?``:e.slice(0,t)}function xe(e){let t=e.lastIndexOf(`/`);return t===-1?e:e.slice(t+1)}function Se(e,t){return e===``?t:`${e}/${t}`}function Ce(e,t){return e===t||e.startsWith(`${t}/`)}function we(e){let t=Number.isFinite(e)&&e>0?Math.floor(e):0;return`${Math.floor(t/60)}:${(t%60).toString().padStart(2,`0`)}`}var Te=M(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><rect x="4.5" y="3.5" width="2.5" height="9" fill="currentColor"></rect><rect x="9" y="3.5" width="2.5" height="9" fill="currentColor"></rect></svg>`),Ee=M(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><path d="M5 3.3v9.4l7-4.7z" fill="currentColor"></path></svg>`),De=p(`<span class="time svelte-nchstv"> </span> <input class="range scrub svelte-nchstv" type="range" min="0" step="0.01" aria-label="Seek"/> <span class="time svelte-nchstv"> </span>`,1),Oe=p(`<span class="time svelte-nchstv"> </span>`),ke=M(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><path d="M2.5 6h2l3-2.5v9l-3-2.5h-2z" fill="currentColor"></path><path d="M10 6l3.5 4M13.5 6 10 10" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"></path></svg>`),Ae=M(`<svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><path d="M2.5 6h2l3-2.5v9l-3-2.5h-2z" fill="currentColor"></path><path d="M10 5.6a3.4 3.4 0 0 1 0 4.8" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"></path><path d="M11.8 3.9a6 6 0 0 1 0 8.2" fill="none" stroke="currentColor" stroke-width="1.2" stroke-linecap="round"></path></svg>`),je=p(`<div class="volume-group svelte-nchstv"><button class="btn svelte-nchstv" type="button"><!></button> <input class="range volume svelte-nchstv" type="range" min="0" max="1" step="0.01" aria-label="Volume"/></div>`),Me=p(`<div><button class="btn svelte-nchstv" type="button"><!></button> <button class="btn svelte-nchstv" type="button" aria-label="Stop"><svg viewBox="0 0 16 16" aria-hidden="true" class="svelte-nchstv"><rect x="4" y="4" width="8" height="8" rx="1" fill="currentColor"></rect></svg></button> <button type="button" aria-label="Loop"><svg viewBox="0 0 16 16" aria-hidden="true" fill="none" stroke="currentColor" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round" class="svelte-nchstv"><path d="M4.4 4.5H9A3.5 3.5 0 0 1 12.5 8"></path><path d="M2.4 6.4 4.3 4.4 6.3 6.1"></path><path d="M11.6 11.5H7A3.5 3.5 0 0 1 3.5 8"></path><path d="M13.6 9.6 11.7 11.6 9.7 9.9"></path></svg></button> <!> <!></div>`);function Ne(t,r){E(r,!0);let i=k(r,`media`,7),s=k(r,`showScrub`,3,!1),u=k(r,`showVolume`,3,!0),f=b(!1),p=b(0),h=b(0),_=b(!1),x=b(1),S=b(!1),C=b(!1),O=!1,j=null,M=y(()=>we(m(p))),P=y(()=>we(m(h))),F=y(()=>m(h)>0),I=y(()=>m(S)?0:m(x));n(()=>{if(!i()){c(f,!1);return}let e=i();c(f,!e.paused),c(p,e.currentTime,!0),c(h,Number.isFinite(e.duration)?e.duration:0,!0),c(_,e.loop,!0),c(x,e.volume,!0),c(S,e.muted,!0);function t(){c(f,!0)}function n(){c(f,!1)}function r(){m(C)||c(p,e.currentTime,!0)}function a(){c(h,Number.isFinite(e.duration)?e.duration:0,!0)}function o(){c(x,e.volume,!0),c(S,e.muted,!0)}return e.addEventListener(`play`,t),e.addEventListener(`playing`,t),e.addEventListener(`pause`,n),e.addEventListener(`ended`,n),e.addEventListener(`timeupdate`,r),e.addEventListener(`seeked`,r),e.addEventListener(`loadedmetadata`,a),e.addEventListener(`durationchange`,a),e.addEventListener(`volumechange`,o),()=>{j===e&&(c(C,!1),O=!1,j=null),e.removeEventListener(`play`,t),e.removeEventListener(`playing`,t),e.removeEventListener(`pause`,n),e.removeEventListener(`ended`,n),e.removeEventListener(`timeupdate`,r),e.removeEventListener(`seeked`,r),e.removeEventListener(`loadedmetadata`,a),e.removeEventListener(`durationchange`,a),e.removeEventListener(`volumechange`,o)}});function L(){i()&&(i().paused?i().play():i().pause())}function R(){i()&&(i().pause(),i().currentTime=0)}function z(){i()&&(i().loop=!i().loop,c(_,i().loop,!0))}function V(){i()&&(i().muted=!i().muted)}function U(e){if(!i())return;let t=e.currentTarget.valueAsNumber;i().volume=t,i().muted=t===0}function W(){!i()||m(C)||(c(C,!0),O=!i().paused,j=i(),i().pause())}function G(e){let t=j??i();if(!t)return;let n=e.currentTarget.valueAsNumber;Number.isFinite(t.duration)&&(t.currentTime=n),c(p,n,!0)}function ee(){if(!m(C))return;let e=j;c(C,!1),O&&e&&i()===e&&e.play(),O=!1,j=null}n(()=>{if(m(C))return window.addEventListener(`pointerup`,ee),window.addEventListener(`pointercancel`,ee),()=>{window.removeEventListener(`pointerup`,ee),window.removeEventListener(`pointercancel`,ee)}});var te=Me(),K=v(te),ne=v(K),re=e=>{a(e,Te())},ie=e=>{a(e,Ee())};B(ne,e=>{m(f)?e(re):e(ie,-1)}),A(K);var q=l(K,2),J=l(q,2);let Y;var X=l(J,2),Z=e=>{var t=De(),n=o(t),r=v(n,!0);A(n);var s=l(n,2);w(s);var c=l(s,2),u=v(c,!0);A(c),H(()=>{g(r,m(M)),N(s,`max`,m(F)?m(h):0),T(s,m(p)),s.disabled=!i()||!m(F),g(u,m(P))}),d(`pointerdown`,s,W),d(`input`,s,G),a(e,t)},ae=e=>{var t=Oe(),n=v(t);A(t),H(()=>g(n,`${m(M)??``} / ${m(P)??``}`)),a(e,t)};B(X,e=>{s()?e(Z):m(F)&&e(ae,1)});var oe=l(X,2),se=e=>{var t=je(),n=v(t),r=v(n),o=e=>{a(e,ke())},s=e=>{a(e,Ae())};B(r,e=>{m(S)||m(x)===0?e(o):e(s,-1)}),A(n);var c=l(n,2);w(c),A(t),H(()=>{n.disabled=!i(),N(n,`aria-label`,m(S)?`Unmute`:`Mute`),T(c,m(I)),c.disabled=!i()}),d(`click`,n,V),d(`input`,c,U),a(e,t)};B(oe,e=>{u()&&e(se)}),A(te),H(()=>{D(te,1,`playback ${r.class??``??``}`,`svelte-nchstv`),K.disabled=!i(),N(K,`aria-label`,m(f)?`Pause`:`Play`),q.disabled=!i(),Y=D(J,1,`btn svelte-nchstv`,null,Y,{active:m(_)}),J.disabled=!i(),N(J,`aria-pressed`,m(_))}),d(`click`,K,L),d(`click`,q,R),d(`click`,J,z),a(t,te),e()}j([`click`,`pointerdown`,`input`]);var Pe=null;function Fe(){return Pe||=new AudioContext,Pe}var Q=null;function Ie(e){let t=e.numberOfChannels;if(t===1)return e.getChannelData(0);let n=e.length,r=new Float32Array(n);for(let i=0;i<t;i++){let t=e.getChannelData(i);for(let e=0;e<n;e++)r[e]+=t[e]}for(let e=0;e<n;e++)r[e]/=t;return r}function Le(e,t){let n=new Float32Array(t),r=new Float32Array(t),i=e.length/t;for(let a=0;a<t;a++){let t=Math.floor(a*i),o=Math.min(e.length,Math.floor((a+1)*i)),s=0,c=0;for(let n=t;n<o;n++){let t=e[n];t<s&&(s=t),t>c&&(c=t)}n[a]=s,r[a]=c}return{min:n,max:r}}function Re(e,t,n){return Math.min(n,Math.max(t,e))}var ze=p(`<div class="footer svelte-1liihyn"><!></div>`),$=p(`<div><canvas class="wave svelte-1liihyn" role="button" tabindex="0" aria-label="Audio waveform — click or press Enter to play; arrow keys scrub"></canvas> <!></div>`);function Be(t,r){E(r,!0);let i=k(r,`loop`,3,!1),o=k(r,`showControls`,3,!1),s=b(void 0),f=b(null),p=b(!1),h=b(0),g=b(0),_=`idle`,y=null,x=null,C=0,w=1,T=`#0d99ff`,O=`#7a7a7a`,j=`#f24822`,M=0;function N(){if(!m(s))return;let e=getComputedStyle(m(s));T=e.getPropertyValue(`--accent`).trim()||T,O=e.getPropertyValue(`--text-faint`).trim()||O,j=e.getPropertyValue(`--danger`).trim()||j}function P(){if(!m(s))return;let e=m(s).getBoundingClientRect();w=window.devicePixelRatio||1;let t=Math.max(1,Math.round(e.width*w)),n=Math.max(1,Math.round(e.height*w));(m(s).width!==t||m(s).height!==n)&&(m(s).width=t,m(s).height=n,x=null),N()}function F(){if(!m(s))return;let e=m(s).getContext(`2d`);if(!e)return;let t=m(s).width,n=m(s).height,r=n/2;if(e.clearRect(0,0,t,n),_!==`ready`||!y){e.strokeStyle=_===`error`?j:O,e.lineWidth=Math.max(1,w),e.beginPath(),e.moveTo(0,r),e.lineTo(t,r),e.stroke();return}let i=Math.max(1,Math.floor(t));(!x||C!==i)&&(x=Le(y,i),C=i);let a=m(g)>0?Re(m(h)/m(g),0,1):0,o=a*t,c=r*.9,l=t/i;e.lineWidth=1;for(let t=0;t<i;t++){let n=t*l,i=r-x.max[t]*c,a=r-x.min[t]*c;e.strokeStyle=n<=o?T:O,e.beginPath(),e.moveTo(n+.5,Math.min(i,r-.5)),e.lineTo(n+.5,Math.max(a,r+.5)),e.stroke()}a>0&&(e.strokeStyle=T,e.lineWidth=Math.max(1,w),e.beginPath(),e.moveTo(o,0),e.lineTo(o,n),e.stroke())}function I(){M&&=(cancelAnimationFrame(M),0)}function L(){m(f)&&c(h,m(f).currentTime,!0),F(),m(p)&&(M=requestAnimationFrame(L))}async function R(e){_=`loading`,F();try{let t=await(await fetch(e)).arrayBuffer(),n=await Fe().decodeAudioData(t);if(e!==r.src)return;y=Ie(n),m(g)||c(g,n.duration,!0),_=`ready`,x=null,F()}catch{if(e!==r.src)return;_=`error`,F()}}function z(e){if(e.preventDefault(),e.stopPropagation(),!m(s)||!m(f))return;let t=m(s).getBoundingClientRect(),n=Re((e.clientX-t.left)/t.width,0,1),r=m(f).duration;Number.isFinite(r)&&r>0&&(m(f).currentTime=n*r),m(f).play()}function V(){m(f)&&(m(f).paused?m(f).play():m(f).pause())}function U(e){if(m(f)){if(e.key===`Enter`||e.key===` `){e.preventDefault(),V();return}if(e.key===`ArrowRight`||e.key===`ArrowLeft`){let t=m(f).duration;if(!Number.isFinite(t)||t<=0)return;e.preventDefault();let n=e.key===`ArrowRight`?5:-5;m(f).currentTime=Re(m(f).currentTime+n,0,t)}}}n(()=>{let e=m(f);e&&(e.loop=i())}),n(()=>{let e=r.src,t=m(s);if(!t)return;_=`idle`,y=null,x=null,C=0,c(h,0),c(g,0),c(p,!1);let n=new Audio(e);n.preload=`metadata`,n.loop=u(()=>i());function a(){Q&&Q!==n&&Q.pause(),Q=n,c(p,!0),I(),M=requestAnimationFrame(L)}function o(){Q===n&&(Q=null),c(p,!1),I(),F()}function l(){Q===n&&(Q=null),c(p,!1),I(),F()}function d(){c(h,n.currentTime,!0),m(p)||F()}function v(){Number.isFinite(n.duration)&&c(g,n.duration,!0),F()}n.addEventListener(`play`,a),n.addEventListener(`pause`,o),n.addEventListener(`ended`,l),n.addEventListener(`timeupdate`,d),n.addEventListener(`loadedmetadata`,v),n.addEventListener(`durationchange`,v),n.addEventListener(`seeked`,d),c(f,n,!0);let b=new ResizeObserver(()=>{P(),F()});b.observe(t);let S=new IntersectionObserver(t=>{t.some(e=>e.isIntersecting)&&(S.disconnect(),R(e))});return S.observe(t),P(),F(),()=>{I(),b.disconnect(),S.disconnect(),n.removeEventListener(`play`,a),n.removeEventListener(`pause`,o),n.removeEventListener(`ended`,l),n.removeEventListener(`timeupdate`,d),n.removeEventListener(`loadedmetadata`,v),n.removeEventListener(`durationchange`,v),n.removeEventListener(`seeked`,d),n.pause(),Q===n&&(Q=null),n.removeAttribute(`src`),n.load(),c(f,null)}});var W=$(),G=v(W);S(G,e=>c(s,e),()=>m(s));var ee=l(G,2),te=e=>{var t=ze();Ne(v(t),{get media(){return m(f)}}),A(t),a(e,t)};B(ee,e=>{o()&&e(te)}),A(W),H(()=>D(W,1,`audio-waveform ${r.class??``??``}`,`svelte-1liihyn`)),d(`click`,G,z),d(`keydown`,G,U),a(t,W),e()}j([`click`,`keydown`]);var Ve=p(`<div class="audio-frame svelte-1ww4cvx"><!></div>`),He=p(`<p class="svelte-1ww4cvx">No proxy yet — add the asset to a manifest to process it.</p>`),Ue=p(`<div class="stage checkerboard svelte-1ww4cvx"><!></div>`);function We(t,n){E(n,!0);var i=Ue(),o=v(i),s=e=>{var t=Ve();r(v(t),()=>n.asset.proxy.url,e=>{Be(e,{get src(){return n.asset.proxy.url},showControls:!0})}),A(t),a(e,t)},c=e=>{a(e,He())};B(o,e=>{n.asset.proxy?e(s):e(c,-1)}),A(i),a(t,i),e()}var Ge={"arrow-up":`<path d="M12 19V5"/><path d="M6 11l6-6 6 6"/>`,"arrow-right":`<path d="M5 12h14"/><path d="M13 6l6 6-6 6"/>`,"arrow-down":`<path d="M12 5v14"/><path d="M6 13l6 6 6-6"/>`,"arrow-left":`<path d="M19 12H5"/><path d="M11 6l-6 6 6 6"/>`,width:`<path d="M3 12h18"/><path d="M7 8l-4 4 4 4"/><path d="M17 8l4 4-4 4"/>`,ratio:`<rect x="4" y="4" width="7" height="7" rx="1"/><rect x="13" y="4" width="7" height="7" rx="1"/><rect x="4" y="13" width="7" height="7" rx="1"/><rect x="13" y="13" width="7" height="7" rx="1"/>`,preset:`<path d="M4 7h10"/><circle cx="17" cy="7" r="2"/><path d="M20 17H10"/><circle cx="7" cy="17" r="2"/>`,cutoff:`<circle cx="12" cy="12" r="8"/><path d="M12 4a8 8 0 0 1 0 16z" fill="currentColor" stroke="none"/>`,"color-feather":`<circle cx="12" cy="12" r="8" stroke-dasharray="1.5 3"/><circle cx="12" cy="12" r="3.5"/>`,"mask-feather":`<rect x="4" y="4" width="16" height="16" rx="3" stroke-dasharray="1.5 3"/><circle cx="12" cy="12" r="3.5"/>`,sharpen:`<path d="M4 18l8-12 8 12"/><path d="M4 18h16"/>`,despill:`<path d="M12 3s6 6 6 11a6 6 0 0 1-12 0c0-5 6-11 6-11z"/>`,"despill-lum":`<path d="M12 3s5.5 5.5 5.5 10a5.5 5.5 0 0 1-11 0c0-4.5 5.5-10 5.5-10z"/><path d="M12 10v5M9.5 12.5h5"/>`},Ke=M(`<svg class="icon svelte-jamecx" viewBox="0 0 24 24" width="16" height="16" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" aria-hidden="true"></svg>`);function qe(e,t){var n=Ke();V(n,()=>Ge[t.name],!0),A(n),a(e,n)}function Je(e){if(e.scrubbedValue===null)return{};let t=e.startValue??e.min??0;return e.scrubbedValue===t?{rollbackTo:e.startValue}:{commit:e.scrubbedValue}}function Ye(e,t){return t.coarse?e*10:t.fine?e*.1:e}function Xe(e){if(!Number.isFinite(e))return 0;let t=0,n=Math.abs(e);for(;t<10&&Math.abs(Math.round(n)-n)>1e-9;)n*=10,t+=1;return t}function Ze(e,t){let n=10**t;return Math.round(e*n)/n}function Qe(e){let t=Ye(e.step,e.modifiers),n=Ze(e.startValue+e.deltaX*t,Xe(t));return e.min!==void 0&&(n=Math.max(e.min,n)),e.max!==void 0&&(n=Math.min(e.max,n)),n}function $e(e,t){t.buttons!==0&&!e.hasPointerCapture(t.pointerId)&&e.setPointerCapture(t.pointerId)}function et(e,t){e.hasPointerCapture(t)&&e.releasePointerCapture(t)}var tt=p(`<span class="scrub-surface svelte-nhap92" title="Drag to change — Shift: ×10, Alt: ×0.1" role="presentation" aria-hidden="true"></span>`),nt=p(`<span><input class="input svelte-nhap92" type="number"/> <!></span>`);function rt(t,r){E(r,!0);let i=k(r,`step`,3,1),o=k(r,`placeholder`,3,``),s=k(r,`allowNull`,3,!1),u=k(r,`align`,3,`left`),p=b(null),h=b(!1),g=b(null),x=y(()=>m(p)?.activated?m(p).currentValue:r.value);function C(e){return{coarse:e.shiftKey,fine:e.altKey}}function O(e){e.preventDefault(),$e(e.currentTarget,e),c(p,{pointerId:e.pointerId,startX:e.clientX,startValue:r.value,currentValue:null,activated:!1},!0)}function j(e){if(!m(p)||e.pointerId!==m(p).pointerId)return;let t=e.clientX-m(p).startX;if(!m(p).activated){if(Math.abs(t)<3)return;m(p).activated=!0,document.body.style.cursor=`ew-resize`}let n=Qe({startValue:m(p).startValue??r.min??0,deltaX:t,step:i(),modifiers:C(e),min:r.min,max:r.max});n!==m(p).currentValue&&(m(p).currentValue=n,r.onChange?.(n))}function M(e){if(!m(p)||e.pointerId!==m(p).pointerId)return;et(e.currentTarget,e.pointerId);let t=m(p).activated,n=m(p).startValue,i=m(p).currentValue;if(c(p,null),document.body.style.cursor=``,!t){I();return}let a=Je({startValue:n,scrubbedValue:i,min:r.min});a.commit===void 0?`rollbackTo`in a&&r.onChange?.(a.rollbackTo??null):r.onCommit(a.commit)}function P(){if(!m(p))return;let e=m(p).startValue,t=m(p).activated;c(p,null),document.body.style.cursor=``,t&&r.onChange?.(e)}function F(e){m(p)&&e.key===`Escape`&&(e.preventDefault(),P())}n(()=>()=>{m(p)&&(document.body.style.cursor=``)});function I(){c(h,!0),queueMicrotask(()=>{m(g)?.focus(),m(g)?.select()})}function L(e){let t=e.currentTarget.valueAsNumber;Number.isFinite(t)?r.onCommit(t):r.onCommit(s()?null:r.min??0)}function R(e){e.key===`Enter`?e.currentTarget.blur():e.key===`Escape`&&(e.currentTarget.value=m(x)===null?``:String(m(x)),e.currentTarget.blur())}var z=nt();f(`keydown`,_,F);let V;var U=v(z);w(U),S(U,e=>c(g,e),()=>m(g));var W=l(U,2),G=e=>{var t=tt();d(`pointerdown`,t,O),d(`pointermove`,t,j),d(`pointerup`,t,M),f(`pointercancel`,t,P),a(e,t)};B(W,e=>{m(h)||e(G)}),A(z),H(()=>{V=D(z,1,`scrub-number svelte-nhap92`,null,V,{right:u()===`right`}),N(U,`aria-label`,r.ariaLabel),N(U,`min`,r.min),N(U,`max`,r.max),N(U,`step`,i()),N(U,`placeholder`,o()),T(U,m(x)??``)}),f(`focus`,U,()=>c(h,!0)),f(`blur`,U,()=>c(h,!1)),d(`change`,U,L),d(`keydown`,U,R),a(t,z),e()}j([`change`,`keydown`,`pointerdown`,`pointermove`,`pointerup`]);var it=p(`<span class="caption svelte-368zap"> </span>`),at=p(`<span class="fill svelte-368zap"></span>`),ot=p(`<div class="number-field svelte-368zap"><!> <div class="number-input control svelte-368zap"><!> <span class="icon-slot svelte-368zap"><!></span> <!></div></div>`);function st(e,n){let r=k(n,`step`,3,1),s=k(n,`placeholder`,3,``),c=k(n,`rangeFill`,3,!0),u=y(()=>!c()||n.min===void 0||n.max===void 0||n.value===null||n.max<=n.min?null:Math.max(0,Math.min(100,(n.value-n.min)/(n.max-n.min)*100)));var d=ot(),f=v(d),p=e=>{var t=it(),r=v(t,!0);A(t),H(()=>g(r,n.caption)),a(e,t)};B(f,e=>{n.caption&&e(p)});var h=l(f,2),_=v(h),b=e=>{var t=at();H(()=>O(t,`width: ${m(u)??``}%`)),a(e,t)};B(_,e=>{m(u)!==null&&e(b)});var x=l(_,2),S=v(x),w=e=>{var t=i();C(o(t),()=>n.icon),a(e,t)},T=e=>{var r=t();H(()=>g(r,n.label)),a(e,r)};B(S,e=>{n.icon?e(w):e(T,-1)}),A(x),rt(l(x,2),{get value(){return n.value},get min(){return n.min},get max(){return n.max},get step(){return r()},get placeholder(){return s()},allowNull:!0,get ariaLabel(){return n.label},get onChange(){return n.onChange},get onCommit(){return n.onCommit}}),A(h),A(d),H(()=>N(x,`title`,n.label)),a(e,d)}var ct=p(`<h3 class="svelte-1ol624f"><!></h3>`);function lt(e,t){var n=ct();C(v(n),()=>t.children),A(n),a(e,n)}var ut=p(`<span class="caption svelte-bczi6w"> </span>`),dt=p(`<option> </option>`),ft=p(`<div class="select-field svelte-bczi6w"><!> <div class="select-input control svelte-bczi6w"><span class="icon-slot svelte-bczi6w"><!></span> <select class="svelte-bczi6w"></select></div></div>`);function pt(n,r){E(r,!0);var s=ft(),c=v(s),u=e=>{var t=ut(),n=v(t,!0);A(t),H(()=>g(n,r.caption)),a(e,t)};B(c,e=>{r.caption&&e(u)});var f=l(c,2),p=v(f),m=v(p),_=e=>{var t=i();C(o(t),()=>r.icon),a(e,t)},y=e=>{var n=t();H(e=>g(n,e),[()=>r.label.slice(0,1)]),a(e,n)};B(m,e=>{r.icon?e(_):e(y,-1)}),A(p);var b=l(p,2);h(b,20,()=>r.options,e=>e,(e,t)=>{var n=dt(),r=v(n,!0);A(n);var i={};H(()=>{g(r,t),i!==(i=t)&&(n.value=(n.__value=t)??``)}),a(e,n)}),A(b);var x;I(b),A(f),A(s),H(()=>{N(p,`title`,r.label),N(b,`aria-label`,r.label),x!==(x=r.value)&&(b.value=(b.__value=r.value)??``,P(b,r.value))}),d(`change`,b,e=>r.onChange(e.currentTarget.value)),a(n,s),e()}j([`change`]);var mt=p(`<p class="info svelte-m9vwwu"><!> <!> <br/> <span class="file svelte-m9vwwu"> </span></p>`),ht=p(`<p class="hint svelte-m9vwwu">No proxy yet — add the asset to a manifest to process it.</p>`),gt=p(`<section class="svelte-m9vwwu"><!> <!></section>`);function _t(n,r){E(r,!0);let i=k(r,`showDimensions`,3,!1),o=k(r,`showDuration`,3,!1);var s=gt(),c=v(s);lt(c,{children:(e,n)=>{R(),a(e,t(`Output`))},$$slots:{default:!0}});var u=l(c,2),d=e=>{var n=mt(),s=v(n),c=e=>{var n=t();H(()=>g(n,`${r.proxy.width??``} × ${r.proxy.height??``} px ·`)),a(e,n)};B(s,e=>{i()&&r.proxy.width!==void 0&&r.proxy.height!==void 0&&e(c)});var u=l(s,2),d=e=>{var n=t();H(e=>g(n,`${e??``} ·`),[()=>ce(r.proxy.durationMs)]),a(e,n)};B(u,e=>{o()&&r.proxy.durationMs!==void 0&&e(d)});var f=l(u),p=l(f,3),m=v(p,!0);A(p),A(n),H(e=>{g(f,` ${e??``} `),g(m,r.proxy.fileName)},[()=>oe(r.proxy.fileSize)]),a(e,n)},f=e=>{a(e,ht())};B(u,e=>{r.proxy?e(d):e(f,-1)}),A(s),a(n,s),e()}var vt=p(`<section class="svelte-1by8n8t"><!> <div class="field svelte-1by8n8t"><!></div> <div class="field svelte-1by8n8t"><!></div></section> <!>`,1);function yt(n,r){E(r,!0);let i=y(()=>Y.validateParameters(r.parameters));function s(e){r.onParametersCommit(e)}function c(e){s({...m(i),preset:e})}function u(e){let{targetWidth:t,...n}=m(i);return e===null||!Number.isFinite(e)||e<=0?n:{...n,targetWidth:Math.round(e)}}function d(e,t){let n=u(e);t?s(n):r.onParametersChange(n)}var f=vt(),p=o(f),h=v(p);lt(h,{children:(e,n)=>{R(),a(e,t(`Image`))},$$slots:{default:!0}});var g=l(h,2);pt(v(g),{label:`Preset`,caption:`Preset`,get value(){return m(i).preset},get options(){return r.presetNames},onChange:c,icon:e=>{qe(e,{name:`preset`})},$$slots:{icon:!0}}),A(g);var _=l(g,2),b=v(_);{let e=e=>{qe(e,{name:`width`})},t=y(()=>m(i).targetWidth??null);st(b,{label:`Target width`,caption:`Target width`,min:1,placeholder:`source`,get value(){return m(t)},onChange:e=>d(e,!1),onCommit:e=>d(e,!0),icon:e,$$slots:{icon:!0}})}A(_),A(p),_t(l(p,2),{get proxy(){return r.asset.proxy},showDimensions:!0}),a(n,f),e()}var bt=new Set([`image`,`slice`]);new Set([...new Set([`video`,`chroma-key-video`,`audio`])].filter(e=>Z.has(e)));function xt(e,t){return bt.has(e)?t[e]?.decode??!0:!1}async function St(e){let t=await fetch(e);if(!t.ok)throw Error(`Preloading "${e}" failed: ${t.status} ${t.statusText}.`);return t}function Ct(e){return{async preload(t,n){if(await(await St(t)).arrayBuffer(),xt(e,n)&&typeof globalThis.Image==`function`){let e=new globalThis.Image;e.src=t,await e.decode()}return{}}}}var wt={async preload(e){let t=await(await St(e)).blob();return typeof URL.createObjectURL==`function`?{objectUrl:URL.createObjectURL(t)}:{}},release(e){e.objectUrl!==void 0&&typeof URL.revokeObjectURL==`function`&&URL.revokeObjectURL(e.objectUrl)}},Tt={image:Ct(`image`),slice:Ct(`slice`),video:wt,"chroma-key-video":wt,audio:wt};new Map(Object.entries(Z.project(Tt,`runtime handler`)));var Et=new Map;function Dt(e){return Et.get(e)?.resources?.objectUrl??e}var Ot=p(`<img/>`);function kt(t,n){E(n,!0);let r=k(n,`alt`,3,``),i=k(n,`class`,3,``);var o=Ot();H(()=>{N(o,`src`,n.src.src),N(o,`width`,n.src.width),N(o,`height`,n.src.height),N(o,`alt`,r()),D(o,1,x(i()))}),a(t,o),e()}function At(e,t,n){return Math.max(t,Math.min(n,e))}function jt(e){let{mode:t,insets:n}=e.slicing,r=ae(t);return{top:r.vertical?n.top:0,bottom:r.vertical?n.bottom:0,left:r.horizontal?n.left:0,right:r.horizontal?n.right:0}}function Mt(e){let t=e.slicing.overdraw;if(!t)return ie();let n=e.sourceWidth,r=e.sourceHeight,i=At(t.left,0,Math.max(0,n-1)),a=At(t.right,0,Math.max(0,n-i-1)),o=At(t.top,0,Math.max(0,r-1));return{top:o,right:a,bottom:At(t.bottom,0,Math.max(0,r-o-1)),left:i}}function Nt(e){let t=Mt(e);return{width:Math.max(1,e.sourceWidth-t.left-t.right),height:Math.max(1,e.sourceHeight-t.top-t.bottom)}}function Pt(e,t,n){let r=Mt(e);if(r.top===0&&r.right===0&&r.bottom===0&&r.left===0)return r;let i=e.slicing.pixelRatio>0?e.slicing.pixelRatio:1,a=Nt(e),o,s;return e.slicing.mode===`three-horizontal`?o=s=n/a.height:e.slicing.mode===`three-vertical`?o=s=t/a.width:e.slicing.mode===`one`?(o=t/a.width,s=n/a.height):o=s=1/i,{top:Math.round(r.top*s),right:Math.round(r.right*o),bottom:Math.round(r.bottom*s),left:Math.round(r.left*o)}}function Ft(e,t,n,r){let i=Pt(e,t,n),a=t+i.left+i.right,o=n+i.top+i.bottom;return{cssLeft:-i.left+0,cssTop:-i.top+0,cssWidth:a,cssHeight:o,backingWidth:Math.round(a*r),backingHeight:Math.round(o*r),originX:i.left*r,originY:i.top*r}}function It(e){let t=0,n=[0];for(let r of e)t+=r,n.push(Math.round(t));return n}function Lt(e,t,n){if(t<=0||n<=0)return[];let r=Pt(e,t,n),i=t+r.left+r.right,a=n+r.top+r.bottom,o=e.sourceWidth,s=e.sourceHeight,c=e.slicing.pixelRatio>0?e.slicing.pixelRatio:1,l=e.slicing.mode,u=jt(e),d=At(u.left,0,o),f=At(u.right,0,Math.max(0,o-d)),p=At(u.top,0,s),m=At(u.bottom,0,Math.max(0,s-p)),h=Math.max(0,o-d-f),g=Math.max(0,s-p-m),_,v;if(l===`three-horizontal`){let e=a/s;_=d*e,v=f*e}else _=d/c,v=f/c;let y=Math.max(0,i-_-v),b,x;if(l===`three-vertical`){let e=i/o;b=p*e,x=m*e}else b=p/c,x=m/c;let S=Math.max(0,a-b-x),C=[d,h,f],w=[p,g,m],T=[0,d,d+h],E=[0,p,p+g],D=It([_,y,v]),O=It([b,S,x]),k=[];for(let e=0;e<3;e++)for(let t=0;t<3;t++){let n=C[t],i=w[e];if(n<=0||i<=0)continue;let a=D[t],o=D[t+1]-a,s=O[e],c=O[e+1]-s;o<=0||c<=0||k.push({key:`${e}-${t}`,sx:T[t],sy:E[e],sw:n,sh:i,dx:a-r.left,dy:s-r.top,dw:o,dh:c})}return k}function Rt(e,t){let n=new ResizeObserver(n=>{let r=n[0]?.borderBoxSize?.[0];t(Math.round(r?.inlineSize??e.offsetWidth),Math.round(r?.blockSize??e.offsetHeight))});return n.observe(e),()=>n.disconnect()}var zt=p(`<div class="fundus-slice__cell svelte-1820t2z"><img alt="" draggable="false" class="svelte-1820t2z"/></div>`),Bt=p(`<div></div>`);function Vt(t,r){E(r,!0);let i=k(r,`alt`,3,``),o=k(r,`class`,3,``),s=b(void 0),l=b(0),u=b(0);n(()=>{let e=m(s);if(e)return Rt(e,(e,t)=>{c(l,e,!0),c(u,t,!0)})});let d=y(()=>Lt(r.src,m(l),m(u))),f=y(()=>{let e=Mt(r.src);return e.top>0||e.right>0||e.bottom>0||e.left>0});var p=Bt();let g;h(p,21,()=>m(d),e=>e.key,(e,t)=>{var n=zt();let i;var o=v(n);let s;A(n),H(()=>{i=O(n,``,i,{left:`${m(t).dx??``}px`,top:`${m(t).dy??``}px`,width:`${m(t).dw??``}px`,height:`${m(t).dh??``}px`}),N(o,`src`,r.src.src),s=O(o,``,s,{width:`${r.src.sourceWidth/m(t).sw*100}%`,height:`${r.src.sourceHeight/m(t).sh*100}%`,left:`${-m(t).sx/m(t).sw*100}%`,top:`${-m(t).sy/m(t).sh*100}%`})}),a(e,n)}),A(p),S(p,e=>c(s,e),()=>m(s)),H(()=>{g=D(p,1,`fundus-slice ${o()??``}`,`svelte-1820t2z`,g,{"fundus-slice--overdraw":m(f)}),N(p,`role`,i()?`img`:void 0),N(p,`aria-label`,i()||void 0)}),a(t,p),e()}var Ht=p(`<div><canvas class="svelte-xdsbrz"></canvas></div>`);function Ut(t,r){E(r,!0);let i=k(r,`alt`,3,``),o=k(r,`class`,3,``),s=b(void 0),l=b(void 0),u=b(void 0),d=b(0),p=b(0),h=b(1),g=b(0);n(()=>{let e=r.src.src,t=new Image,n=!1;return t.onload=()=>{n||c(u,t,!0)},t.src=e,()=>{n=!0,t.onload=null}}),n(()=>{let e=m(h),t=window.matchMedia(`(resolution: ${e}dppx)`),n=()=>{c(h,window.devicePixelRatio||1,!0)};return n(),t.addEventListener(`change`,n),()=>t.removeEventListener(`change`,n)}),n(()=>{let e=m(s);if(e)return Rt(e,(e,t)=>{c(d,e,!0),c(p,t,!0)})});let x=y(()=>Ft(r.src,m(d),m(p),m(h)));n(()=>{m(u),r.src,m(x),m(g),C()});function C(){let e=m(l),t=m(u);if(!e||!t)return;if(m(d)===0||m(p)===0){e.width=0,e.height=0;return}e.width=m(x).backingWidth,e.height=m(x).backingHeight;let n=e.getContext(`2d`);if(n){n.setTransform(m(h),0,0,m(h),m(x).originX,m(x).originY),n.clearRect(m(x).cssLeft,m(x).cssTop,m(x).cssWidth,m(x).cssHeight);for(let e of Lt(r.src,m(d),m(p)))n.drawImage(t,e.sx,e.sy,e.sw,e.sh,e.dx,e.dy,e.dw,e.dh)}}var w=Ht();f(`resize`,_,()=>c(g,m(g)+1));var T=v(w);let j;S(T,e=>c(l,e),()=>m(l)),A(w),S(w,e=>c(s,e),()=>m(s)),H(()=>{D(w,1,`fundus-slice-canvas ${o()??``}`,`svelte-xdsbrz`),N(w,`role`,i()?`img`:void 0),N(w,`aria-label`,i()||void 0),j=O(T,``,j,{left:`${m(x).cssLeft??``}px`,top:`${m(x).cssTop??``}px`,width:`${m(x).cssWidth??``}px`,height:`${m(x).cssHeight??``}px`})}),a(t,w),e()}function Wt(e,t){let n=k(t,`backend`,3,`dom`),r=k(t,`alt`,3,``),s=k(t,`class`,3,``);var c=i(),l=o(c),u=e=>{Ut(e,{get src(){return t.src},get alt(){return r()},get class(){return s()}})},d=e=>{Vt(e,{get src(){return t.src},get alt(){return r()},get class(){return s()}})};B(l,e=>{n()===`canvas`?e(u):e(d,-1)}),a(e,c)}var Gt=p(`<video playsinline="" preload="auto"></video>`,2);function Kt(t,r){E(r,!0);let i=k(r,`loop`,3,!1),o=k(r,`playing`,3,!0),s=k(r,`muted`,3,!0),c=k(r,`controls`,3,!1),l=k(r,`videoElement`,15),u=k(r,`class`,3,``),d=y(()=>Dt(r.src.src));n(()=>{let e=l();e&&(o()?e.play().catch(()=>{}):e.pause())});var f=Gt();S(f,e=>l(e),()=>l()),H(()=>{N(f,`src`,m(d)),N(f,`width`,r.src.width),N(f,`height`,r.src.height),f.loop=i(),f.muted=s(),f.controls=c(),D(f,1,x(u()))}),a(t,f),e()}var qt=`#version 300 es
|
|
2
|
+
in vec2 a_pos;
|
|
3
|
+
out vec2 v_uv;
|
|
4
|
+
void main() {
|
|
5
|
+
// Fullscreen clip-space triangle pair; v flipped so the video isn't mirrored on Y
|
|
6
|
+
// (GL texture rows are bottom-up, and flipping here beats a per-frame UNPACK flip).
|
|
7
|
+
v_uv = vec2(a_pos.x * 0.5 + 0.5, 0.5 - a_pos.y * 0.5);
|
|
8
|
+
gl_Position = vec4(a_pos, 0.0, 1.0);
|
|
9
|
+
}`,Jt=`#version 300 es
|
|
10
|
+
precision highp float;
|
|
11
|
+
|
|
12
|
+
in vec2 v_uv;
|
|
13
|
+
out vec4 fragColor;
|
|
14
|
+
|
|
15
|
+
uniform sampler2D u_texture;
|
|
16
|
+
uniform sampler2D u_mask;
|
|
17
|
+
uniform vec2 u_texelSize;
|
|
18
|
+
uniform vec3 u_keyColor;
|
|
19
|
+
uniform vec4 u_tintColor;
|
|
20
|
+
uniform float u_colorCutoff;
|
|
21
|
+
uniform float u_colorFeathering;
|
|
22
|
+
uniform float u_maskFeathering;
|
|
23
|
+
uniform float u_sharpening;
|
|
24
|
+
uniform float u_despill;
|
|
25
|
+
uniform float u_despillLuminanceAdd;
|
|
26
|
+
|
|
27
|
+
float rgb2y(vec3 c) {
|
|
28
|
+
return 0.299 * c.r + 0.587 * c.g + 0.114 * c.b;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
float rgb2cb(vec3 c) {
|
|
32
|
+
return 0.5 - 0.168736 * c.r - 0.331264 * c.g + 0.5 * c.b;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
float rgb2cr(vec3 c) {
|
|
36
|
+
return 0.5 + 0.5 * c.r - 0.418688 * c.g - 0.081312 * c.b;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
float colorclose(float Cb_p, float Cr_p, float Cb_key, float Cr_key, float tola, float tolb) {
|
|
40
|
+
float temp = (Cb_key - Cb_p) * (Cb_key - Cb_p) + (Cr_key - Cr_p) * (Cr_key - Cr_p);
|
|
41
|
+
float tola2 = tola * tola;
|
|
42
|
+
float tolb2 = tolb * tolb;
|
|
43
|
+
if (temp < tola2) return 0.0;
|
|
44
|
+
if (temp < tolb2) return (temp - tola2) / (tolb2 - tola2);
|
|
45
|
+
return 1.0;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
float maskedTex2D(sampler2D tex, vec2 uv) {
|
|
49
|
+
vec4 color = texture(tex, uv);
|
|
50
|
+
|
|
51
|
+
float key_cb = rgb2cb(u_keyColor);
|
|
52
|
+
float key_cr = rgb2cr(u_keyColor);
|
|
53
|
+
float pix_cb = rgb2cb(color.rgb);
|
|
54
|
+
float pix_cr = rgb2cr(color.rgb);
|
|
55
|
+
|
|
56
|
+
return colorclose(pix_cb, pix_cr, key_cb, key_cr, u_colorCutoff, u_colorFeathering);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
void main() {
|
|
60
|
+
vec2 pixelWidth = vec2(u_texelSize.x, 0.0);
|
|
61
|
+
vec2 pixelHeight = vec2(0.0, u_texelSize.y);
|
|
62
|
+
|
|
63
|
+
// Unmodified MainTex
|
|
64
|
+
vec4 color = texture(u_texture, v_uv);
|
|
65
|
+
|
|
66
|
+
// Unfeathered mask
|
|
67
|
+
float mask = maskedTex2D(u_texture, v_uv);
|
|
68
|
+
|
|
69
|
+
// Feathering & smoothing
|
|
70
|
+
float c = mask;
|
|
71
|
+
float r = maskedTex2D(u_texture, v_uv + pixelWidth);
|
|
72
|
+
float l = maskedTex2D(u_texture, v_uv - pixelWidth);
|
|
73
|
+
float d = maskedTex2D(u_texture, v_uv + pixelHeight);
|
|
74
|
+
float u = maskedTex2D(u_texture, v_uv - pixelHeight);
|
|
75
|
+
float rd = maskedTex2D(u_texture, v_uv + pixelWidth + pixelHeight) * 0.707;
|
|
76
|
+
float dl = maskedTex2D(u_texture, v_uv - pixelWidth + pixelHeight) * 0.707;
|
|
77
|
+
float lu = maskedTex2D(u_texture, v_uv - pixelHeight - pixelWidth) * 0.707;
|
|
78
|
+
float ur = maskedTex2D(u_texture, v_uv + pixelWidth - pixelHeight) * 0.707;
|
|
79
|
+
float blurContribution = (r + l + d + u + rd + dl + lu + ur + c) * 0.12774655;
|
|
80
|
+
float smoothedMask = smoothstep(u_sharpening, 1.0, mix(c, blurContribution, u_maskFeathering));
|
|
81
|
+
vec4 result = color * smoothedMask;
|
|
82
|
+
|
|
83
|
+
// Despill
|
|
84
|
+
float v = (2.0 * result.b + result.r) / 4.0;
|
|
85
|
+
if (result.g > v) result.g = mix(result.g, v, u_despill);
|
|
86
|
+
vec4 dif = color - result;
|
|
87
|
+
float desaturatedDif = rgb2y(dif.xyz);
|
|
88
|
+
result += mix(0.0, desaturatedDif, u_despillLuminanceAdd);
|
|
89
|
+
|
|
90
|
+
// Fundus mask pass: a grayscale shape mask multiplies
|
|
91
|
+
// the keyed alpha.
|
|
92
|
+
float shapeMask = texture(u_mask, v_uv).r;
|
|
93
|
+
vec4 keyed = vec4(result.xyz, smoothedMask * shapeMask) * u_tintColor;
|
|
94
|
+
|
|
95
|
+
// Premultiplied output: keyed matches the upstream SrcAlpha/OneMinusSrcAlpha
|
|
96
|
+
// blending; multiplying rgb by alpha is that blend's exact premultiplied
|
|
97
|
+
// equivalent. Straight-alpha output (premultipliedAlpha: false) is NOT an option:
|
|
98
|
+
// iOS WKWebView composites the WebGL canvas as premultiplied regardless of the
|
|
99
|
+
// flag, and the despill luminance-add above leaves fully-transparent background
|
|
100
|
+
// pixels with nonzero rgb (the upstream blend ignores rgb
|
|
101
|
+
// at alpha 0) which then composite additively — a visible bright veil over the
|
|
102
|
+
// whole canvas rect on iOS.
|
|
103
|
+
fragColor = vec4(keyed.rgb * keyed.a, keyed.a);
|
|
104
|
+
}`;function Yt(e){let t=(t,n)=>{let r=e.createShader(t);if(e.shaderSource(r,n),e.compileShader(r),!e.getShaderParameter(r,e.COMPILE_STATUS)){let t=e.getShaderInfoLog(r);throw e.deleteShader(r),Error(`Chroma-key shader compilation failed: ${t}.`)}return r},n=e.createProgram();if(e.attachShader(n,t(e.VERTEX_SHADER,qt)),e.attachShader(n,t(e.FRAGMENT_SHADER,Jt)),e.linkProgram(n),!e.getProgramParameter(n,e.LINK_STATUS)){let t=e.getProgramInfoLog(n);throw e.deleteProgram(n),Error(`Chroma-key program linking failed: ${t}.`)}return n}var Xt=class e{#e;#t;#n;#r;#i;#a;#o;#s=null;#c=!1;static create(t){let n=t.getContext(`webgl2`,{premultipliedAlpha:!0,alpha:!0,depth:!1,stencil:!1,antialias:!1});if(!n)return null;try{return new e(n,t)}catch{return null}}constructor(e,t){this.#e=e,this.#t=t,t.addEventListener(`webglcontextlost`,this.#l),t.addEventListener(`webglcontextrestored`,this.#u),this.#d()}#l=e=>{e.preventDefault(),this.#c=!0};#u=()=>{try{this.#d(),this.#c=!1}catch{this.#c=!0}};#d(){let e=this.#e;this.#n=Yt(e),e.useProgram(this.#n);let t=t=>e.getUniformLocation(this.#n,t);this.#a={texelSize:t(`u_texelSize`),keyColor:t(`u_keyColor`),tintColor:t(`u_tintColor`),colorCutoff:t(`u_colorCutoff`),colorFeathering:t(`u_colorFeathering`),maskFeathering:t(`u_maskFeathering`),sharpening:t(`u_sharpening`),despill:t(`u_despill`),despillLuminanceAdd:t(`u_despillLuminanceAdd`)},e.uniform1i(e.getUniformLocation(this.#n,`u_texture`),0),e.uniform1i(e.getUniformLocation(this.#n,`u_mask`),1),e.uniform4f(this.#a.tintColor,1,1,1,1),this.#r=e.createBuffer(),e.bindBuffer(e.ARRAY_BUFFER,this.#r),e.bufferData(e.ARRAY_BUFFER,new Float32Array([-1,-1,1,-1,-1,1,1,1]),e.STATIC_DRAW);let n=e.getAttribLocation(this.#n,`a_pos`);e.enableVertexAttribArray(n),e.vertexAttribPointer(n,2,e.FLOAT,!1,0,0),this.#i=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.#i),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),this.#o=e.createTexture(),e.bindTexture(e.TEXTURE_2D,this.#o),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),this.#f(),e.disable(e.DEPTH_TEST),e.disable(e.BLEND),e.clearColor(0,0,0,0)}setMask(e){this.#s=e,this.#c||this.#f()}#f(){let e=this.#e;e.bindTexture(e.TEXTURE_2D,this.#o),this.#s?e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,this.#s):e.texImage2D(e.TEXTURE_2D,0,e.RGBA,1,1,0,e.RGBA,e.UNSIGNED_BYTE,new Uint8Array([255,255,255,255]))}draw(e,t){if(this.#c||e.videoWidth===0)return;let n=this.#e;(this.#t.width!==e.videoWidth||this.#t.height!==e.videoHeight)&&(this.#t.width=e.videoWidth,this.#t.height=e.videoHeight,n.viewport(0,0,e.videoWidth,e.videoHeight)),n.activeTexture(n.TEXTURE1),n.bindTexture(n.TEXTURE_2D,this.#o),n.activeTexture(n.TEXTURE0),n.bindTexture(n.TEXTURE_2D,this.#i),n.texImage2D(n.TEXTURE_2D,0,n.RGBA,n.RGBA,n.UNSIGNED_BYTE,e),n.useProgram(this.#n),n.uniform2f(this.#a.texelSize,1/e.videoWidth,1/e.videoHeight),n.uniform3fv(this.#a.keyColor,t.keyColor),n.uniform1f(this.#a.colorCutoff,t.colorCutoff),n.uniform1f(this.#a.colorFeathering,t.colorFeathering),n.uniform1f(this.#a.maskFeathering,t.maskFeathering),n.uniform1f(this.#a.sharpening,t.sharpening),n.uniform1f(this.#a.despill,t.despill),n.uniform1f(this.#a.despillLuminanceAdd,t.despillLuminanceAdd),n.clear(n.COLOR_BUFFER_BIT),n.drawArrays(n.TRIANGLE_STRIP,0,4)}dispose(){this.#t.removeEventListener(`webglcontextlost`,this.#l),this.#t.removeEventListener(`webglcontextrestored`,this.#u);let e=this.#e;e.deleteBuffer(this.#r),e.deleteTexture(this.#i),e.deleteTexture(this.#o),e.deleteProgram(this.#n),e.getExtension(`WEBGL_lose_context`)?.loseContext()}},Zt=p(`<img alt="" class="svelte-r30mxh"/>`),Qt=p(`<canvas class="svelte-r30mxh"></canvas> <video playsinline="" preload="auto" class="svelte-r30mxh"></video>`,3),$t=p(`<div><!></div>`);function en(t,r){E(r,!0);let s=k(r,`loop`,3,!0),u=k(r,`playing`,3,!0),d=k(r,`videoElement`,15),f=k(r,`class`,3,``),p=b(void 0),h=b(!1),g=null,_=0,y=!1;function x(){let e=d();g&&e&&e.readyState>=HTMLMediaElement.HAVE_CURRENT_DATA&&g.draw(e,r.src.chromaKey)}function w(){x(),y&&T()}function T(){let e=d();_=e.requestVideoFrameCallback?e.requestVideoFrameCallback(w):requestAnimationFrame(w)}function O(){y||(y=!0,T())}function j(){if(!y)return;y=!1;let e=d();e?.cancelVideoFrameCallback?e.cancelVideoFrameCallback(_):cancelAnimationFrame(_)}function M(){!u()||m(h)||d()?.play().catch(()=>{})}function P(){d()?.pause()}F(()=>{if(g=Xt.create(m(p)),!g){c(h,!0);return}let e=g,t=r.src.mask?.src;if(t){let n=new Image;n.src=t,n.decode().then(()=>{g===e&&e.setMask(n)}).catch(()=>{console.warn(`Failed to load chroma-key mask "${t}".`)})}return()=>{j(),e.dispose(),g=null}}),n(()=>{let e=d();if(!e)return;function t(){O()}function n(){j(),x()}function r(){y||x()}return e.addEventListener(`play`,t),e.addEventListener(`pause`,n),e.addEventListener(`ended`,n),e.addEventListener(`seeked`,r),()=>{e.removeEventListener(`play`,t),e.removeEventListener(`pause`,n),e.removeEventListener(`ended`,n),e.removeEventListener(`seeked`,r)}}),n(()=>{m(h)||(u()?M():P())}),n(()=>{let e=r.src.chromaKey;e.keyColor,e.colorCutoff,e.colorFeathering,e.maskFeathering,e.sharpening,e.despill,e.despillLuminanceAdd,y||x()});var I=$t(),L=v(I),R=e=>{var t=i(),n=o(t),s=e=>{var t=i();C(o(t),()=>r.fallback),a(e,t)},c=e=>{var t=Zt();H(()=>N(t,`src`,r.src.fallback.src)),a(e,t)};B(n,e=>{r.fallback?e(s):r.src.fallback&&e(c,1)}),a(e,t)},z=e=>{var t=Qt(),n=o(t);S(n,e=>c(p,e),()=>m(p));var i=l(n,2);i.muted=!0,S(i,e=>d(e),()=>d()),H(e=>{N(i,`src`,e),i.loop=s()},[()=>Dt(r.src.src)]),a(e,t)};B(L,e=>{m(h)?e(R):e(z,-1)}),A(I),H(()=>D(I,1,`fundus-chroma-key-video ${f()??``}`,`svelte-r30mxh`)),a(t,I),e()}var tn=p(`<img/>`),nn=p(`<div class="stage checkerboard svelte-10eps7e"><!></div>`);function rn(t,n){E(n,!0);let r=y(()=>!n.asset.proxy||n.asset.proxy.width===void 0||n.asset.proxy.height===void 0?null:{kind:`image`,src:n.asset.proxy.url,width:n.asset.proxy.width,height:n.asset.proxy.height});var i=nn(),o=v(i),s=e=>{kt(e,{get src(){return m(r)},get alt(){return n.asset.id}})},c=e=>{var t=tn();H(()=>{N(t,`src`,n.asset.rawUrl),N(t,`alt`,n.asset.id)}),a(e,t)};B(o,e=>{m(r)?e(s):e(c,-1)}),A(i),a(t,i),e()}var an=p(`<img loading="lazy" class="svelte-gdduef"/>`);function on(t,n){E(n,!0);var r=an();H(()=>{N(r,`src`,n.asset.proxy?.url??n.asset.rawUrl),N(r,`alt`,n.asset.id)}),a(t,r),e()}var sn=p(`<button> </button>`),cn=p(`<section class="svelte-1yd7n22"><!> <div class="insets svelte-1yd7n22"></div></section>`),ln=p(`<section class="svelte-1yd7n22"><!> <!></section>`),un=p(`<section class="svelte-1yd7n22"><!> <div class="modes svelte-1yd7n22"></div></section> <!> <section class="svelte-1yd7n22"><!> <div class="insets svelte-1yd7n22"></div></section> <!> <section class="svelte-1yd7n22"><!> <div class="field"><!></div></section> <!>`,1);function dn(n,r){E(r,!0);let s=y(()=>de.validateParameters(r.parameters)),c=y(()=>m(s).overdraw??ie()),u=[{value:`nine`,label:`9-slice`},{value:`three-horizontal`,label:`3-slice horizontal`},{value:`three-vertical`,label:`3-slice vertical`},{value:`one`,label:`No slicing`}],f=[{key:`top`,label:`Top`,icon:`arrow-up`,axis:`y`},{key:`right`,label:`Right`,icon:`arrow-right`,axis:`x`},{key:`bottom`,label:`Bottom`,icon:`arrow-down`,axis:`y`},{key:`left`,label:`Left`,icon:`arrow-left`,axis:`x`}];function p(e,t){let n=ae(t);return e===`x`?n.horizontal:n.vertical}let _=y(()=>r.asset.proxy?.width??2**53-1),b=y(()=>r.asset.proxy?.height??2**53-1);function x(e){r.onParametersCommit(e)}function S(e){x({...m(s),mode:e})}function C(e){return q(m(s).insets,e,m(_),m(b))}function w(e,t,n){let i=Math.max(0,Math.min(C(e),Math.round(t??0))),a={...m(s),insets:{...m(s).insets,[e]:i}};n?x(a):r.onParametersChange(a)}function T(e){return se(m(c),e,m(_),m(b))}function O(e,t,n){let i=Math.max(0,Math.min(T(e),Math.round(t??0))),a={...m(s),overdraw:{...m(c),[e]:i}};n?x(a):r.onParametersChange(a)}function k(e,t){let n={...m(s),pixelRatio:Math.max(1,Math.round(e??1))};t?x(n):r.onParametersChange(n)}function j(e){x({...m(s),preset:e})}var M=un(),N=o(M),P=v(N);lt(P,{children:(e,n)=>{R(),a(e,t(`Mode`))},$$slots:{default:!0}});var F=l(P,2);h(F,21,()=>u,e=>e.value,(e,t)=>{var n=sn();let r;var i=v(n,!0);A(n),H(()=>{r=D(n,1,`svelte-1yd7n22`,null,r,{on:m(s).mode===m(t).value}),g(i,m(t).label)}),d(`click`,n,()=>S(m(t).value)),a(e,n)}),A(F),A(N);var I=l(N,2),L=e=>{var n=cn(),r=v(n);lt(r,{children:(e,n)=>{R(),a(e,t(`Insets (px)`))},$$slots:{default:!0}});var c=l(r,2);h(c,21,()=>f,e=>e.key,(e,t)=>{var n=i(),r=o(n),c=e=>{{let n=e=>{qe(e,{get name(){return m(t).icon}})},r=y(()=>C(m(t).key));st(e,{get label(){return m(t).label},min:0,get max(){return m(r)},rangeFill:!1,get value(){return m(s).insets[m(t).key]},onChange:e=>w(m(t).key,e,!1),onCommit:e=>w(m(t).key,e,!0),icon:n,$$slots:{icon:!0}})}},l=y(()=>p(m(t).axis,m(s).mode));B(r,e=>{m(l)&&e(c)}),a(e,n)}),A(c),A(n),a(e,n)};B(I,e=>{m(s).mode!==`one`&&e(L)});var z=l(I,2),V=v(z);lt(V,{children:(e,n)=>{R(),a(e,t(`Overdraw (px)`))},$$slots:{default:!0}});var U=l(V,2);h(U,21,()=>f,e=>e.key,(e,t)=>{{let n=e=>{qe(e,{get name(){return m(t).icon}})},r=y(()=>T(m(t).key));st(e,{get label(){return m(t).label},min:0,get max(){return m(r)},rangeFill:!1,get value(){return m(c)[m(t).key]},onChange:e=>O(m(t).key,e,!1),onCommit:e=>O(m(t).key,e,!0),icon:n,$$slots:{icon:!0}})}}),A(U),A(z);var W=l(z,2),G=e=>{var n=ln(),r=v(n);lt(r,{children:(e,n)=>{R(),a(e,t(`Pixel ratio`))},$$slots:{default:!0}}),st(l(r,2),{label:`Factor`,min:1,get value(){return m(s).pixelRatio},onChange:e=>k(e,!1),onCommit:e=>k(e,!0),icon:e=>{qe(e,{name:`ratio`})},$$slots:{icon:!0}}),A(n),a(e,n)};B(W,e=>{m(s).mode===`nine`&&e(G)});var ee=l(W,2),te=v(ee);lt(te,{children:(e,n)=>{R(),a(e,t(`Output`))},$$slots:{default:!0}});var K=l(te,2);pt(v(K),{label:`Preset`,caption:`Preset`,get value(){return m(s).preset},get options(){return r.presetNames},onChange:j,icon:e=>{qe(e,{name:`preset`})},$$slots:{icon:!0}}),A(K),A(ee),_t(l(ee,2),{get proxy(){return r.asset.proxy},showDimensions:!0}),a(n,M),e()}j([`click`]);var fn=b(`dom`),pn=p(`<div class="preview-panel svelte-1mjaycs"><div class="bar svelte-1mjaycs"><span class="size svelte-1mjaycs"> </span> <div class="backends svelte-1mjaycs" role="group" aria-label="Rendering backend"><button>DOM</button> <button>Canvas</button></div> <button class="reset svelte-1mjaycs">Reset</button></div> <div class="stage checkerboard svelte-1mjaycs"><div class="box svelte-1mjaycs"><!> <div class="handle edge-right svelte-1mjaycs" role="separator" aria-label="Drag width" aria-orientation="vertical"></div> <div class="handle edge-bottom svelte-1mjaycs" role="separator" aria-label="Drag height" aria-orientation="horizontal"></div> <div class="handle corner svelte-1mjaycs" role="separator" aria-label="Drag size"></div></div></div></div>`);function mn(t,n){E(n,!0);function r(){return Math.round(Math.min(360,Math.max(80,n.entry.sourceWidth*2)))}function i(){return Math.round(r()*n.entry.sourceHeight/Math.max(1,n.entry.sourceWidth))}let o=b(L(u(()=>r()))),s=b(L(u(()=>i()))),p=b(null),h={pointerX:0,pointerY:0,width:0,height:0};function _(e,t){t.preventDefault(),c(p,e,!0),h={pointerX:t.clientX,pointerY:t.clientY,width:m(o),height:m(s)},$e(t.currentTarget,t)}function y(e){m(p)&&(m(p)!==`y`&&c(o,Math.max(16,Math.round(h.width+(e.clientX-h.pointerX))),!0),m(p)!==`x`&&c(s,Math.max(16,Math.round(h.height+(e.clientY-h.pointerY))),!0))}function x(e){m(p)&&et(e.currentTarget,e.pointerId),c(p,null)}function S(){c(o,r(),!0),c(s,i(),!0)}var C=pn(),w=v(C),T=v(w),k=v(T);A(T);var j=l(T,2),M=v(j);let N;var P=l(M,2);let F;A(j);var I=l(j,2);A(w);var R=l(w,2),z=v(R);let B;var V=v(z);Wt(V,{get src(){return n.entry},get backend(){return m(fn)},class:`fill`});var U=l(V,2),W=l(U,2),G=l(W,2);A(z),A(R),A(C),H(()=>{g(k,`${m(o)??``} × ${m(s)??``} px`),N=D(M,1,`svelte-1mjaycs`,null,N,{on:m(fn)===`dom`}),F=D(P,1,`svelte-1mjaycs`,null,F,{on:m(fn)===`canvas`}),B=O(z,``,B,{width:`${m(o)??``}px`,height:`${m(s)??``}px`})}),d(`click`,M,()=>c(fn,`dom`)),d(`click`,P,()=>c(fn,`canvas`)),d(`click`,I,S),d(`pointerdown`,U,e=>_(`x`,e)),d(`pointermove`,U,y),d(`pointerup`,U,x),f(`pointercancel`,U,x),d(`pointerdown`,W,e=>_(`y`,e)),d(`pointermove`,W,y),d(`pointerup`,W,x),f(`pointercancel`,W,x),d(`pointerdown`,G,e=>_(`both`,e)),d(`pointermove`,G,y),d(`pointerup`,G,x),f(`pointercancel`,G,x),a(t,C),e()}j([`click`,`pointerdown`,`pointermove`,`pointerup`]);var hn=p(`<div></div>`),gn=p(`<div class="overdraw-band svelte-1jfrg6d"></div>`),_n=p(`<div role="slider" aria-label="Left slice line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Right slice line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div>`,1),vn=p(`<div role="slider" aria-label="Top slice line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Bottom slice line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div>`,1),yn=p(`<div class="canvas svelte-1jfrg6d"><div class="toolbar svelte-1jfrg6d"><button title="Zoom out" class="svelte-1jfrg6d">−</button> <span class="zoom svelte-1jfrg6d"> </span> <button title="Zoom in" class="svelte-1jfrg6d">+</button> <button title="100%">1:1</button> <button>Fit</button> <span class="dims svelte-1jfrg6d"> </span></div> <div role="application" aria-label="Slice canvas — drag to pan, pinch/⌘+scroll to zoom"><div class="image-wrap svelte-1jfrg6d"><img alt="" draggable="false" class="svelte-1jfrg6d"/> <!> <!> <!> <!> <!> <div role="slider" aria-label="Left overdraw line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Right overdraw line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Top overdraw line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <div role="slider" aria-label="Bottom overdraw line" tabindex="0"><span class="tag svelte-1jfrg6d"> </span></div> <!> <!></div></div></div>`);function bn(t,r){E(r,!0);let i=b(void 0),s=b(void 0),u=b(null),p=y(()=>ae(r.mode)),h=y(()=>m(p).horizontal),_=y(()=>m(p).vertical);function x(e,t){return m(u)?.target===e&&m(u).side===t}let C=b(`fit`),w=b(1),T=b(0),k=b(0),j=b(0),M=b(0),P=b(!1),F=new Map,I=null;function L(e){return Math.max(.05,Math.min(8,e))}n(()=>{let e=m(i);if(!e)return;let t=new ResizeObserver(()=>{c(j,e.clientWidth,!0),c(M,e.clientHeight,!0)});return t.observe(e),()=>t.disconnect()}),n(()=>{if(m(C)===`free`||r.width===0||r.height===0||m(j)===0||m(M)===0)return;let e=L(Math.min((m(j)-32)/r.width,(m(M)-32)/r.height));R(m(C)===`one`?1:e)});function R(e){c(w,e,!0),c(T,(m(j)-r.width*e)/2),c(k,(m(M)-r.height*e)/2)}function z(e,t){if(!m(i))return{x:e,y:t};let n=m(i).getBoundingClientRect();return{x:e-n.left-m(i).clientLeft,y:t-n.top-m(i).clientTop}}function V(e,t,n){let r=L(e);c(T,t-(t-m(T))*(r/m(w))),c(k,n-(n-m(k))*(r/m(w))),c(w,r,!0),c(C,`free`)}function U(e,t,n){return Math.max(t,Math.min(n,Math.round(e)))}function W(){c(C,`fit`)}function G(){c(C,`one`)}function ee(e){V(m(w)*e,m(j)/2,m(M)/2)}function te(){let[e,t]=[...F.values()];return{distance:Math.hypot(e.x-t.x,e.y-t.y),midX:(e.x+t.x)/2,midY:(e.y+t.y)/2}}function K(e){try{m(i)&&$e(m(i),e)}catch{}F.set(e.pointerId,{x:e.clientX,y:e.clientY}),F.size===2?I=te():F.size===1&&c(P,!0)}function ne(e){let t=F.get(e.pointerId);if(t)if(F.set(e.pointerId,{x:e.clientX,y:e.clientY}),F.size>=2&&I){let e=te(),t=z(I.midX,I.midY);V(m(w)*(e.distance/I.distance),t.x,t.y),c(T,m(T)+(e.midX-I.midX)),c(k,m(k)+(e.midY-I.midY)),I=e}else F.size===1&&(c(T,m(T)+(e.clientX-t.x)),c(k,m(k)+(e.clientY-t.y)),c(C,`free`))}function re(e){F.delete(e.pointerId),F.size<2&&(I=null),F.size===0&&c(P,!1)}function ie(e){if(e.preventDefault(),e.ctrlKey||e.metaKey){let t=z(e.clientX,e.clientY);V(m(w)*Math.exp(-e.deltaY*.01),t.x,t.y)}else c(T,m(T)-e.deltaX),c(k,m(k)-e.deltaY),c(C,`free`)}function J(e,t,n){n.preventDefault(),n.stopPropagation(),c(u,{target:e,side:t},!0),$e(n.currentTarget,n)}function Y(e){if(!m(u)||!m(s))return;let t=m(s).getBoundingClientRect(),n=(e.clientX-t.left)/m(w),i=(e.clientY-t.top)/m(w),{target:a,side:o}=m(u),c={...a===`inset`?r.insets:r.overdraw};o===`left`?c.left=U(n,0,Z(a,`left`)):o===`right`?c.right=U(r.width-n,0,Z(a,`right`)):o===`top`?c.top=U(i,0,Z(a,`top`)):o===`bottom`&&(c.bottom=U(r.height-i,0,Z(a,`bottom`))),a===`inset`?r.onChange(c):r.onOverdrawChange(c)}function X(e){let t=m(u)!==null;m(u)&&et(e.currentTarget,e.pointerId),c(u,null),t&&r.onCommit()}function Z(e,t){let n=e===`inset`?r.insets:r.overdraw;return e===`inset`?q(n,t,r.width,r.height):se(n,t,r.width,r.height)}function oe(e,t,n){let i=e===`inset`?r.insets:r.overdraw,a={...i};a[t]=U(i[t]+n,0,Z(e,t)),a[t]!==i[t]&&(e===`inset`?r.onChange(a):r.onOverdrawChange(a),r.onCommit())}function ce(e,t,n,r){let i=r.shiftKey?10:1,a=n===`x`?`ArrowRight`:`ArrowUp`,o=n===`x`?`ArrowLeft`:`ArrowDown`;if(r.key===a)oe(e,t,i);else if(r.key===o)oe(e,t,-i);else return;r.preventDefault()}var le=yn(),ue=v(le),de=v(ue),fe=l(de,2),pe=v(fe);A(fe);var me=l(fe,2),he=l(me,2);let ge;var _e=l(he,2);let ve;var ye=l(_e,2),be=v(ye);A(ye),A(ue);var xe=l(ue,2);let Se;var Ce=v(xe);let we;var Te=v(Ce),Ee=l(Te,2),De=e=>{var t=hn();let n,i;H(()=>{n=D(t,1,`center-rect svelte-1jfrg6d`,null,n,{"side-edges":!m(h),"cap-edges":!m(_)}),i=O(t,``,i,{left:`${(m(h)?r.insets.left:0)*m(w)}px`,top:`${(m(_)?r.insets.top:0)*m(w)}px`,right:`${(m(h)?r.insets.right:0)*m(w)}px`,bottom:`${(m(_)?r.insets.bottom:0)*m(w)}px`})}),a(e,t)};B(Ee,e=>{(m(h)||m(_))&&e(De)});var Oe=l(Ee,2),ke=e=>{var t=gn();let n;H(()=>n=O(t,``,n,{left:`0`,top:`0`,bottom:`0`,width:`${r.overdraw.left*m(w)}px`})),a(e,t)};B(Oe,e=>{r.overdraw.left>0&&e(ke)});var Ae=l(Oe,2),je=e=>{var t=gn();let n;H(()=>n=O(t,``,n,{right:`0`,top:`0`,bottom:`0`,width:`${r.overdraw.right*m(w)}px`})),a(e,t)};B(Ae,e=>{r.overdraw.right>0&&e(je)});var Me=l(Ae,2),Ne=e=>{var t=gn();let n;H(()=>n=O(t,``,n,{top:`0`,left:`${r.overdraw.left*m(w)}px`,right:`${r.overdraw.right*m(w)}px`,height:`${r.overdraw.top*m(w)}px`})),a(e,t)};B(Me,e=>{r.overdraw.top>0&&e(Ne)});var Pe=l(Me,2),Fe=e=>{var t=gn();let n;H(()=>n=O(t,``,n,{bottom:`0`,left:`${r.overdraw.left*m(w)}px`,right:`${r.overdraw.right*m(w)}px`,height:`${r.overdraw.bottom*m(w)}px`})),a(e,t)};B(Pe,e=>{r.overdraw.bottom>0&&e(Fe)});var Q=l(Pe,2);let Ie;N(Q,`aria-valuemin`,0);let Le;var Re=v(Q),ze=v(Re,!0);A(Re),A(Q);var $=l(Q,2);let Be;N($,`aria-valuemin`,0);let Ve;var He=v($),Ue=v(He,!0);A(He),A($);var We=l($,2);let Ge;N(We,`aria-valuemin`,0);let Ke;var qe=v(We),Je=v(qe,!0);A(qe),A(We);var Ye=l(We,2);let Xe;N(Ye,`aria-valuemin`,0);let Ze;var Qe=v(Ye),tt=v(Qe,!0);A(Qe),A(Ye);var nt=l(Ye,2),rt=e=>{var t=_n(),n=o(t);let i;N(n,`aria-valuemin`,0);let s;var c=v(n),u=v(c,!0);A(c),A(n);var p=l(n,2);let h;N(p,`aria-valuemin`,0);let _;var y=v(p),b=v(y,!0);A(y),A(p),H((e,t,a,o)=>{i=D(n,1,`line v svelte-1jfrg6d`,null,i,e),N(n,`aria-valuenow`,r.insets.left),N(n,`aria-valuemax`,t),s=O(n,``,s,{left:`${r.insets.left*m(w)}px`}),g(u,r.insets.left),h=D(p,1,`line v svelte-1jfrg6d`,null,h,a),N(p,`aria-valuenow`,r.insets.right),N(p,`aria-valuemax`,o),_=O(p,``,_,{left:`${(r.width-r.insets.right)*m(w)}px`}),g(b,r.insets.right)},[()=>({active:x(`inset`,`left`)}),()=>Z(`inset`,`left`),()=>({active:x(`inset`,`right`)}),()=>Z(`inset`,`right`)]),d(`pointerdown`,n,e=>J(`inset`,`left`,e)),d(`pointermove`,n,Y),d(`pointerup`,n,X),f(`pointercancel`,n,X),d(`keydown`,n,e=>ce(`inset`,`left`,`x`,e)),d(`pointerdown`,p,e=>J(`inset`,`right`,e)),d(`pointermove`,p,Y),d(`pointerup`,p,X),f(`pointercancel`,p,X),d(`keydown`,p,e=>ce(`inset`,`right`,`x`,e)),a(e,t)};B(nt,e=>{m(h)&&e(rt)});var it=l(nt,2),at=e=>{var t=vn(),n=o(t);let i;N(n,`aria-valuemin`,0);let s;var c=v(n),u=v(c,!0);A(c),A(n);var p=l(n,2);let h;N(p,`aria-valuemin`,0);let _;var y=v(p),b=v(y,!0);A(y),A(p),H((e,t,a,o)=>{i=D(n,1,`line h svelte-1jfrg6d`,null,i,e),N(n,`aria-valuenow`,r.insets.top),N(n,`aria-valuemax`,t),s=O(n,``,s,{top:`${r.insets.top*m(w)}px`}),g(u,r.insets.top),h=D(p,1,`line h svelte-1jfrg6d`,null,h,a),N(p,`aria-valuenow`,r.insets.bottom),N(p,`aria-valuemax`,o),_=O(p,``,_,{top:`${(r.height-r.insets.bottom)*m(w)}px`}),g(b,r.insets.bottom)},[()=>({active:x(`inset`,`top`)}),()=>Z(`inset`,`top`),()=>({active:x(`inset`,`bottom`)}),()=>Z(`inset`,`bottom`)]),d(`pointerdown`,n,e=>J(`inset`,`top`,e)),d(`pointermove`,n,Y),d(`pointerup`,n,X),f(`pointercancel`,n,X),d(`keydown`,n,e=>ce(`inset`,`top`,`y`,e)),d(`pointerdown`,p,e=>J(`inset`,`bottom`,e)),d(`pointermove`,p,Y),d(`pointerup`,p,X),f(`pointercancel`,p,X),d(`keydown`,p,e=>ce(`inset`,`bottom`,`y`,e)),a(e,t)};B(it,e=>{m(_)&&e(at)}),A(Ce),S(Ce,e=>c(s,e),()=>m(s)),A(xe),S(xe,e=>c(i,e),()=>m(i)),A(le),H((e,t,n,i,a,o,s,c,l)=>{g(pe,`${e??``}%`),ge=D(he,1,`svelte-1jfrg6d`,null,ge,{active:m(C)===`one`}),ve=D(_e,1,`svelte-1jfrg6d`,null,ve,{active:m(C)===`fit`}),g(be,`${r.width??``} × ${r.height??``} px`),Se=D(xe,1,`viewport checkerboard svelte-1jfrg6d`,null,Se,{panning:m(P)}),we=O(Ce,``,we,{width:`${r.width*m(w)}px`,height:`${r.height*m(w)}px`,transform:`translate(${m(T)??``}px, ${m(k)??``}px)`}),N(Te,`src`,r.src),Ie=D(Q,1,`line v overdraw-line svelte-1jfrg6d`,null,Ie,t),N(Q,`aria-valuenow`,r.overdraw.left),N(Q,`aria-valuemax`,n),Le=O(Q,``,Le,{left:`${r.overdraw.left*m(w)}px`}),g(ze,r.overdraw.left),Be=D($,1,`line v overdraw-line svelte-1jfrg6d`,null,Be,i),N($,`aria-valuenow`,r.overdraw.right),N($,`aria-valuemax`,a),Ve=O($,``,Ve,{left:`${(r.width-r.overdraw.right)*m(w)}px`}),g(Ue,r.overdraw.right),Ge=D(We,1,`line h overdraw-line svelte-1jfrg6d`,null,Ge,o),N(We,`aria-valuenow`,r.overdraw.top),N(We,`aria-valuemax`,s),Ke=O(We,``,Ke,{top:`${r.overdraw.top*m(w)}px`}),g(Je,r.overdraw.top),Xe=D(Ye,1,`line h overdraw-line svelte-1jfrg6d`,null,Xe,c),N(Ye,`aria-valuenow`,r.overdraw.bottom),N(Ye,`aria-valuemax`,l),Ze=O(Ye,``,Ze,{top:`${(r.height-r.overdraw.bottom)*m(w)}px`}),g(tt,r.overdraw.bottom)},[()=>Math.round(m(w)*100),()=>({active:x(`overdraw`,`left`)}),()=>Z(`overdraw`,`left`),()=>({active:x(`overdraw`,`right`)}),()=>Z(`overdraw`,`right`),()=>({active:x(`overdraw`,`top`)}),()=>Z(`overdraw`,`top`),()=>({active:x(`overdraw`,`bottom`)}),()=>Z(`overdraw`,`bottom`)]),d(`click`,de,()=>ee(1/1.25)),d(`click`,me,()=>ee(1.25)),d(`click`,he,G),d(`click`,_e,W),d(`pointerdown`,xe,K),d(`pointermove`,xe,ne),d(`pointerup`,xe,re),f(`pointercancel`,xe,re),f(`wheel`,xe,ie),d(`pointerdown`,Q,e=>J(`overdraw`,`left`,e)),d(`pointermove`,Q,Y),d(`pointerup`,Q,X),f(`pointercancel`,Q,X),d(`keydown`,Q,e=>ce(`overdraw`,`left`,`x`,e)),d(`pointerdown`,$,e=>J(`overdraw`,`right`,e)),d(`pointermove`,$,Y),d(`pointerup`,$,X),f(`pointercancel`,$,X),d(`keydown`,$,e=>ce(`overdraw`,`right`,`x`,e)),d(`pointerdown`,We,e=>J(`overdraw`,`top`,e)),d(`pointermove`,We,Y),d(`pointerup`,We,X),f(`pointercancel`,We,X),d(`keydown`,We,e=>ce(`overdraw`,`top`,`y`,e)),d(`pointerdown`,Ye,e=>J(`overdraw`,`bottom`,e)),d(`pointermove`,Ye,Y),d(`pointerup`,Ye,X),f(`pointercancel`,Ye,X),d(`keydown`,Ye,e=>ce(`overdraw`,`bottom`,`y`,e)),a(t,le),e()}j([`click`,`pointerdown`,`pointermove`,`pointerup`,`keydown`]);var xn=p(`<div class="empty error svelte-1ea2lvt"> </div>`),Sn=p(`<div class="empty svelte-1ea2lvt">Loading image…</div>`),Cn=p(`<div class="pane svelte-1ea2lvt"><!></div>`),wn=p(`<div class="editor svelte-1ea2lvt"><div class="tabs svelte-1ea2lvt"><button>Slicing</button> <button>Preview</button></div> <!></div>`);function Tn(t,i){E(i,!0);let o=b(`slicing`),s=b(null),u=b(null);n(()=>{let e=i.asset.rawUrl;c(s,null),c(u,null);let t=!1,n=new window.Image;return n.onload=()=>{t||c(s,{width:n.naturalWidth,height:n.naturalHeight},!0)},n.onerror=()=>{t||c(u,`Could not load image dimensions.`)},n.src=e,()=>{t=!0}});let f=y(()=>{try{return de.validateParameters(i.parameters)}catch{return null}}),p=y(()=>!m(f)||!m(s)?null:{kind:`slice`,src:i.asset.proxy?.url??i.asset.rawUrl,slicing:{mode:m(f).mode,insets:m(f).insets,pixelRatio:m(f).pixelRatio,...m(f).overdraw?{overdraw:m(f).overdraw}:{}},sourceWidth:m(s).width,sourceHeight:m(s).height});var h=wn(),_=v(h),x=v(_);let S;var C=l(x,2);let w;A(_);var T=l(_,2),O=e=>{var t=xn(),n=v(t,!0);A(t),H(()=>g(n,m(u))),a(e,t)},k=e=>{a(e,Sn())},j=e=>{var t=Cn(),n=v(t);{let e=y(()=>m(f).overdraw??ie());bn(n,{get src(){return i.asset.rawUrl},get width(){return m(s).width},get height(){return m(s).height},get mode(){return m(f).mode},get insets(){return m(f).insets},get overdraw(){return m(e)},onChange:e=>i.onParametersChange({...m(f),insets:e}),onOverdrawChange:e=>i.onParametersChange({...m(f),overdraw:e}),onCommit:()=>i.onParametersCommit(i.parameters)})}A(t),a(e,t)},M=e=>{var t=Cn();r(v(t),()=>i.asset.id,e=>{mn(e,{get entry(){return m(p)}})}),A(t),a(e,t)};B(T,e=>{m(u)?e(O):!m(f)||!m(s)?e(k,1):m(o)===`slicing`?e(j,2):m(p)&&e(M,3)}),A(h),H(()=>{S=D(x,1,`svelte-1ea2lvt`,null,S,{on:m(o)===`slicing`}),w=D(C,1,`svelte-1ea2lvt`,null,w,{on:m(o)===`preview`})}),d(`click`,x,()=>c(o,`slicing`)),d(`click`,C,()=>c(o,`preview`)),a(t,h),e()}j([`click`]);var En=p(`<section class="svelte-ij1927"><!> <div class="field svelte-ij1927"><!></div> <div class="field svelte-ij1927"><!></div></section> <!>`,1);function Dn(n,r){E(r,!0);let i=y(()=>ne.validateParameters(r.parameters));function s(e){r.onParametersCommit(e)}function c(e){s({...m(i),preset:e})}function u(e,t){let n=X(m(i),e);t?s(n):r.onParametersChange(n)}var d=En(),f=o(d),p=v(f);lt(p,{children:(e,n)=>{R(),a(e,t(`Video`))},$$slots:{default:!0}});var h=l(p,2);pt(v(h),{label:`Preset`,caption:`Preset`,get value(){return m(i).preset},get options(){return r.presetNames},onChange:c,icon:e=>{qe(e,{name:`preset`})},$$slots:{icon:!0}}),A(h);var g=l(h,2),_=v(g);{let e=e=>{qe(e,{name:`width`})},t=y(()=>m(i).maxWidth??null);st(_,{label:`Max width`,caption:`Max width`,min:1,placeholder:`source`,get value(){return m(t)},onChange:e=>u(e,!1),onCommit:e=>u(e,!0),icon:e,$$slots:{icon:!0}})}A(g),A(f),_t(l(f,2),{get proxy(){return r.asset.proxy},showDimensions:!0,showDuration:!0}),a(n,d),e()}var On=p(`<div class="preview-column svelte-qls820"><div class="video-frame svelte-qls820"><!></div> <!></div>`),kn=p(`<p class="svelte-qls820">No proxy yet — add the asset to a manifest to process it.</p>`),An=p(`<div class="stage checkerboard svelte-qls820"><!></div>`);function jn(t,n){E(n,!0);let i=b(void 0),o=y(()=>!n.asset.proxy||n.asset.proxy.width===void 0||n.asset.proxy.height===void 0||n.asset.proxy.durationMs===void 0?null:{kind:`video`,src:n.asset.proxy.url,width:n.asset.proxy.width,height:n.asset.proxy.height,durationMs:n.asset.proxy.durationMs});var s=An(),u=v(s),d=e=>{var t=On(),n=v(t);let s;r(v(n),()=>m(o).src,e=>{Kt(e,{get src(){return m(o)},loop:!0,get videoElement(){return m(i)},set videoElement(e){c(i,e,!0)}})}),A(n),Ne(l(n,2),{get media(){return m(i)},showScrub:!0,showVolume:!0}),A(t),H(()=>s=O(n,``,s,{"aspect-ratio":`${m(o).width??``} / ${m(o).height??``}`})),a(e,t)},f=e=>{a(e,kn())};B(u,e=>{m(o)?e(d):e(f,-1)}),A(s),a(t,s),e()}var Mn=p(`<video playsinline="" preload="metadata" class="svelte-ejgo9x"></video>`,2);function Nn(t,n){E(n,!0);function r(e){e.currentTime=0,e.play().catch(()=>{})}function i(e){e.pause(),e.currentTime=0}var o=Mn();o.muted=!0,H(()=>N(o,`src`,n.asset.proxy?.url??n.asset.rawUrl)),f(`pointerenter`,o,e=>r(e.currentTarget)),f(`pointerleave`,o,e=>i(e.currentTarget)),a(t,o),e()}var Pn=p(`<span class="caption svelte-56kutb"> </span>`),Fn=p(`<img class="preview svelte-56kutb" alt=""/>`),In=p(`<span class="missing-preview svelte-56kutb" title="References an unknown asset">!</span>`),Ln=p(`<span class="id svelte-56kutb"> </span>`),Rn=p(`<span class="id dangling svelte-56kutb" title="References an unknown asset"> </span>`),zn=p(`<span class="placeholder svelte-56kutb"> </span>`),Bn=p(`<button class="clear svelte-56kutb">×</button>`),Vn=p(`<p class="hint svelte-56kutb"> </p>`),Hn=p(`<button><img class="thumbnail svelte-56kutb" alt=""/> <span class="id svelte-56kutb"> </span></button>`),Un=p(`<div class="dropdown svelte-56kutb"><!></div>`),Wn=p(`<div class="picker svelte-56kutb"><!> <div class="reference-input control svelte-56kutb"><button><span class="preview-slot svelte-56kutb"><!></span> <!></button> <!> <!></div></div>`);function Gn(t,n){E(n,!0);let r=b(!1),s=y(()=>(K.state?.assets??[]).filter(e=>n.expectedTypes.includes(e.type)&&e.id!==n.excludeAssetId)),u=y(()=>n.value?K.assetById(n.value.$asset):null);function f(e){c(r,!1),n.onChange({$asset:e})}function p(){c(r,!1),n.onChange(void 0)}var _=Wn(),x=v(_),S=e=>{var t=Pn(),r=v(t,!0);A(t),H(()=>g(r,n.caption)),a(e,t)};B(x,e=>{n.caption&&e(S)});var C=l(x,2),w=v(C);let T;var O=v(w),k=v(O),j=e=>{var t=Fn();H(()=>N(t,`src`,m(u).rawUrl)),a(e,t)},M=e=>{a(e,In())};B(k,e=>{n.value&&m(u)?e(j):n.value&&e(M,1)}),A(O);var P=l(O,2),F=e=>{var t=i(),r=o(t),s=e=>{var t=Ln(),n=v(t,!0);A(t),H(()=>g(n,m(u).id)),a(e,t)},c=e=>{var t=Rn(),r=v(t,!0);A(t),H(()=>g(r,n.value.$asset)),a(e,t)};B(r,e=>{m(u)?e(s):e(c,-1)}),a(e,t)},I=e=>{var t=zn(),r=v(t);A(t),H(e=>g(r,`Select ${e??``}...`),[()=>n.expectedTypes.join(`/`)]),a(e,t)};B(P,e=>{n.value?e(F):e(I,-1)}),A(w);var L=l(w,2),R=e=>{var t=Bn();H(()=>N(t,`title`,`Clear ${n.label??``}`)),d(`click`,t,p),a(e,t)};B(L,e=>{n.value&&e(R)});var z=l(L,2),V=e=>{var t=Un(),r=v(t),c=e=>{var t=Vn(),r=v(t);A(t),H(e=>g(r,`No ${e??``} assets in the library.`),[()=>n.expectedTypes.join(`/`)]),a(e,t)},u=e=>{var t=i();h(o(t),17,()=>m(s),e=>e.id,(e,t)=>{var r=Hn();let i;var o=v(r),s=l(o,2),c=v(s,!0);A(s),A(r),H(()=>{i=D(r,1,`option svelte-56kutb`,null,i,{selected:n.value?.$asset===m(t).id}),N(o,`src`,m(t).rawUrl),g(c,m(t).id)}),d(`click`,r,()=>f(m(t).id)),a(e,r)}),a(e,t)};B(r,e=>{m(s).length===0?e(c):e(u,-1)}),A(t),a(e,t)};B(z,e=>{m(r)&&e(V)}),A(C),A(_),H(()=>{T=D(w,1,`current svelte-56kutb`,null,T,{empty:!n.value}),N(w,`title`,n.value?`Change ${n.label}`:`Select ${n.label}`)}),d(`click`,w,()=>c(r,!m(r))),a(t,_),e()}j([`click`]);var Kn=p(`<span class="caption svelte-gjs979"> </span>`),qn=p(`<div class="color-field svelte-gjs979"><!> <div class="color-input control svelte-gjs979"><span class="swatch-slot svelte-gjs979"><input class="swatch svelte-gjs979" type="color" title="Open color picker"/></span> <input class="hex-input svelte-gjs979" type="text" maxlength="7" spellcheck="false"/></div></div>`);function Jn(t,n){E(n,!0);let r=b(null),i=/^#[0-9a-f]{6}$/i;function o(e){let t=e.startsWith(`#`)?e:`#${e}`;return i.test(t)?t.toUpperCase():null}function s(e){let t=e.currentTarget.value.toUpperCase();c(r,t,!0),n.onChange?.(t)}function u(e){let t=e.currentTarget.value.toUpperCase();c(r,t,!0),n.onCommit(t)}function p(e){c(r,e.currentTarget.value,!0);let t=o(m(r));t&&n.onChange?.(t)}function h(){let e=o(m(r)??n.value);e&&n.onCommit(e),c(r,null)}function _(e){e.key===`Enter`?e.currentTarget.blur():e.key===`Escape`&&(c(r,null),e.currentTarget.value=n.value,e.currentTarget.blur())}var y=qn(),x=v(y),S=e=>{var t=Kn(),r=v(t,!0);A(t),H(()=>g(r,n.caption)),a(e,t)};B(x,e=>{n.caption&&e(S)});var C=l(x,2),D=v(C),O=v(D);w(O),A(D);var k=l(D,2);w(k),A(C),A(y),H(()=>{T(O,n.value),N(O,`aria-label`,`${n.label} color picker`),T(k,m(r)??n.value),N(k,`aria-label`,`${n.label} hex value`)}),d(`input`,O,s),d(`change`,O,u),f(`focus`,k,()=>c(r,n.value,!0)),d(`input`,k,p),f(`blur`,k,h),d(`keydown`,k,_),a(t,y),e()}j([`input`,`change`,`keydown`]);var Yn=p(`<div class="field svelte-rsjkek"><!></div>`),Xn=p(`<section class="svelte-rsjkek"><!> <div class="field svelte-rsjkek"><!></div> <div class="field svelte-rsjkek"><!></div></section> <section class="svelte-rsjkek"><!> <div class="field svelte-rsjkek"><!></div> <!></section> <section class="svelte-rsjkek"><!> <!> <!></section> <!>`,1);function Zn(n,r){E(r,!0);let i=y(()=>J.validateParameters(r.parameters));function s(e){r.onParametersCommit(e)}function c(e){s({...m(i),preset:e})}function u(e,t){let n=X(m(i),e);t?s(n):r.onParametersChange(n)}function d(e){return{...m(i),chromaKey:e}}let f=[{key:`colorCutoff`,label:`Color cutoff`,icon:`cutoff`,min:0,max:.6,step:.005},{key:`colorFeathering`,label:`Color feathering`,icon:`color-feather`,min:0,max:.8,step:.005},{key:`maskFeathering`,label:`Mask feathering`,icon:`mask-feather`,min:0,max:1,step:.01},{key:`sharpening`,label:`Sharpening`,icon:`sharpen`,min:0,max:1,step:.01},{key:`despill`,label:`Despill`,icon:`despill`,min:0,max:1,step:.01},{key:`despillLuminanceAdd`,label:`Despill lum. add`,icon:`despill-lum`,min:0,max:1,step:.01}];function p(e,t,n){let a=d({...m(i).chromaKey,[e]:t});n?s(a):r.onParametersChange(a)}function g(e){return Math.round(Math.min(1,Math.max(0,e))*255).toString(16).padStart(2,`0`)}function _(e){return`#${g(e[0])}${g(e[1])}${g(e[2])}`}function b(e){let t=parseInt(e.slice(1),16);return[(t>>16&255)/255,(t>>8&255)/255,(t&255)/255]}function x(e,t){let n=d({...m(i).chromaKey,keyColor:b(e)});t?s(n):r.onParametersChange(n)}function S(e,t){let{[e]:n,...r}=m(i);s(t?{...r,[e]:t}:r)}var C=Xn(),w=o(C),T=v(w);lt(T,{children:(e,n)=>{R(),a(e,t(`Video`))},$$slots:{default:!0}});var D=l(T,2);pt(v(D),{label:`Preset`,caption:`Preset`,get value(){return m(i).preset},get options(){return r.presetNames},onChange:c,icon:e=>{qe(e,{name:`preset`})},$$slots:{icon:!0}}),A(D);var O=l(D,2),k=v(O);{let e=e=>{qe(e,{name:`width`})},t=y(()=>m(i).maxWidth??null);st(k,{label:`Max width`,caption:`Max width`,min:1,placeholder:`source`,get value(){return m(t)},onChange:e=>u(e,!1),onCommit:e=>u(e,!0),icon:e,$$slots:{icon:!0}})}A(O),A(w);var j=l(w,2),M=v(j);lt(M,{children:(e,n)=>{R(),a(e,t(`Chroma key`))},$$slots:{default:!0}});var N=l(M,2),P=v(N);{let e=y(()=>_(m(i).chromaKey.keyColor));Jn(P,{label:`Key color`,caption:`Key color`,get value(){return m(e)},onChange:e=>x(e,!1),onCommit:e=>x(e,!0)})}A(N),h(l(N,2),17,()=>f,e=>e.key,(e,t)=>{var n=Yn();st(v(n),{get label(){return m(t).label},get caption(){return m(t).label},get min(){return m(t).min},get max(){return m(t).max},get step(){return m(t).step},get value(){return m(i).chromaKey[m(t).key]},onChange:e=>p(m(t).key,e??m(t).min,!1),onCommit:e=>p(m(t).key,e??m(t).min,!0),icon:e=>{qe(e,{get name(){return m(t).icon}})},$$slots:{icon:!0}}),A(n),a(e,n)}),A(j);var F=l(j,2),I=v(F);lt(I,{children:(e,n)=>{R(),a(e,t(`References`))},$$slots:{default:!0}});var L=l(I,2);Gn(L,{label:`Mask`,caption:`Mask`,get value(){return m(i).mask},expectedTypes:[`image`],get excludeAssetId(){return r.asset.id},onChange:e=>S(`mask`,e)}),Gn(l(L,2),{label:`Fallback`,caption:`Fallback`,get value(){return m(i).fallback},expectedTypes:[`image`],get excludeAssetId(){return r.asset.id},onChange:e=>S(`fallback`,e)}),A(F),_t(l(F,2),{get proxy(){return r.asset.proxy},showDimensions:!0,showDuration:!0}),a(n,C),e()}var Qn=p(`<div class="preview-column svelte-1y3xro5"><div class="compare-row svelte-1y3xro5"><figure class="svelte-1y3xro5"><figcaption class="svelte-1y3xro5">Input</figcaption> <div class="video-frame svelte-1y3xro5"><!></div></figure> <figure class="svelte-1y3xro5"><figcaption class="svelte-1y3xro5">Keyed</figcaption> <div class="video-frame checkerboard svelte-1y3xro5"><!></div></figure></div> <!></div>`),$n=p(`<p class="svelte-1y3xro5">No proxy yet — add the asset to a manifest to process it.</p>`),er=p(`<div class="stage svelte-1y3xro5"><!></div>`);function tr(t,i){E(i,!0);let o=b(void 0),s=b(void 0);function u(e){if(!e)return;let t=K.assetById(e);if(!(!t?.proxy||t.proxy.width===void 0||t.proxy.height===void 0))return{kind:`image`,src:t.proxy.url,width:t.proxy.width,height:t.proxy.height}}let d=y(()=>{if(!i.asset.proxy||i.asset.proxy.width===void 0||i.asset.proxy.height===void 0||i.asset.proxy.durationMs===void 0)return null;try{let e=J.validateParameters(i.parameters),t=u(e.mask?.$asset),n=u(e.fallback?.$asset);return{kind:`chroma-key-video`,src:i.asset.proxy.url,width:i.asset.proxy.width,height:i.asset.proxy.height,durationMs:i.asset.proxy.durationMs,chromaKey:e.chromaKey,...t?{mask:t}:{},...n?{fallback:n}:{}}}catch{return null}}),f=y(()=>m(d)?{kind:`video`,src:m(d).src,width:m(d).width,height:m(d).height,durationMs:m(d).durationMs}:null);n(()=>{let e=m(o),t=m(s);if(!e||!t)return;function n(){Math.abs(t.currentTime-e.currentTime)>.25&&(t.currentTime=e.currentTime)}function r(){n(),t.play().catch(()=>{})}function i(){t.pause(),t.currentTime=e.currentTime}function a(){t.currentTime=e.currentTime}return e.addEventListener(`play`,r),e.addEventListener(`playing`,r),e.addEventListener(`pause`,i),e.addEventListener(`ended`,i),e.addEventListener(`seeked`,a),e.addEventListener(`timeupdate`,n),a(),e.paused||t.play().catch(()=>{}),()=>{e.removeEventListener(`play`,r),e.removeEventListener(`playing`,r),e.removeEventListener(`pause`,i),e.removeEventListener(`ended`,i),e.removeEventListener(`seeked`,a),e.removeEventListener(`timeupdate`,n)}});var p=er(),h=v(p),g=e=>{var t=Qn(),n=v(t),i=v(n),u=l(v(i),2);let p;r(v(u),()=>m(f).src,e=>{Kt(e,{get src(){return m(f)},loop:!0,get videoElement(){return m(s)},set videoElement(e){c(s,e,!0)}})}),A(u),A(i);var h=l(i,2),g=l(v(h),2);let _;r(v(g),()=>`${m(d).src}|${m(d).mask?.src??``}`,e=>{en(e,{get src(){return m(d)},get videoElement(){return m(o)},set videoElement(e){c(o,e,!0)}})}),A(g),A(h),A(n),Ne(l(n,2),{get media(){return m(o)},showScrub:!0,showVolume:!1}),A(t),H(()=>{p=O(u,``,p,{"aspect-ratio":`${m(f).width??``} / ${m(f).height??``}`}),_=O(g,``,_,{"aspect-ratio":`${m(d).width??``} / ${m(d).height??``}`})}),a(e,t)},_=e=>{a(e,$n())};B(h,e=>{m(d)&&m(f)?e(g):e(_,-1)}),A(p),a(t,p),e()}var nr=p(`<section class="svelte-3jblpy"><!> <div class="field svelte-3jblpy"><!></div></section> <!>`,1);function rr(n,r){E(r,!0);let i=y(()=>fe.validateParameters(r.parameters));function s(e){let t={...m(i),preset:e};r.onParametersCommit(t)}var c=nr(),u=o(c),d=v(u);lt(d,{children:(e,n)=>{R(),a(e,t(`Audio`))},$$slots:{default:!0}});var f=l(d,2);pt(v(f),{label:`Preset`,caption:`Preset`,get value(){return m(i).preset},get options(){return r.presetNames},onChange:s,icon:e=>{qe(e,{name:`preset`})},$$slots:{icon:!0}}),A(f),A(u),_t(l(u,2),{get proxy(){return r.asset.proxy},showDuration:!0}),a(n,c),e()}function ir(t,n){E(n,!0);{let e=y(()=>n.asset.proxy?.url??n.asset.rawUrl);Be(t,{get src(){return m(e)}})}e()}var ar={[Y.type]:{panel:yt,editor:rn,thumbnail:on},[de.type]:{panel:dn,editor:Tn,thumbnail:on},[ne.type]:{panel:Dn,editor:jn,thumbnail:Nn},[J.type]:{panel:Zn,editor:tr,thumbnail:Nn},[fe.type]:{panel:rr,editor:We,thumbnail:ir}},or=Z.project(ar,`editor implementation`),sr=p(`<p class="error svelte-1f5yh58">This file type is not supported (raster images, video, or audio).</p>`),cr=p(`<button> </button>`),lr=p(`<p class="hint warn svelte-1f5yh58"> </p>`),ur=p(`<p class="hint warn svelte-1f5yh58">An asset with this id already exists.</p>`),dr=p(`<div class="row svelte-1f5yh58"><span class="label svelte-1f5yh58">Type</span> <div class="segmented svelte-1f5yh58"></div></div> <label class="row svelte-1f5yh58"><span class="label svelte-1f5yh58">Id</span> <input class="control svelte-1f5yh58" type="text" spellcheck="false"/></label> <!> <!>`,1),fr=p(`<div class="backdrop svelte-1f5yh58" role="presentation"><div class="dialog svelte-1f5yh58" role="dialog" aria-label="Import asset" tabindex="-1"><h2 class="svelte-1f5yh58">Import asset</h2> <p class="file-name svelte-1f5yh58"> </p> <p class="destination svelte-1f5yh58"> </p> <!> <div class="actions svelte-1f5yh58"><button class="control">Cancel</button> <button class="control primary"> </button></div></div></div>`);function pr(t,r){E(r,!0);let i=y(()=>re(r.file.name)),s=b(`image`),u=b(`asset`),f=b(!1),p=b(null);n(()=>{c(s,re(r.file.name)[0]??`image`,!0),c(u,le(r.file.name),!0)});let _=y(()=>K.state?.assets.some(e=>e.id===m(u))??!1),x=y(()=>pe(m(u))),S=y(()=>m(x)===null),C=y(()=>m(S)&&!m(_)&&m(i).length>0&&!m(f));async function T(){if(!m(C))return;let e=m(u),t=m(s);c(f,!0),c(p,null);try{await K.mutate(()=>G(r.file,t,e,r.folder)),r.onDone(e)}catch(e){c(p,e instanceof Error?e.message:String(e),!0)}finally{c(f,!1)}}var O=fr(),k=v(O),j=l(v(k),2),M=v(j,!0);A(j);var N=l(j,2),P=v(N);A(N);var F=l(N,2),I=e=>{a(e,sr())},L=e=>{var t=dr(),n=o(t),r=l(v(n),2);h(r,20,()=>m(i),e=>e,(e,t)=>{var n=cr();let r;var i=v(n,!0);A(n),H(()=>{n.disabled=m(f),r=D(n,1,`svelte-1f5yh58`,null,r,{on:m(s)===t}),g(i,t)}),d(`click`,n,()=>c(s,t,!0)),a(e,n)}),A(r),A(n);var y=l(n,2),b=l(v(y),2);w(b),A(y);var C=l(y,2),T=e=>{var t=lr(),n=v(t,!0);A(t),H(()=>g(n,m(x))),a(e,t)},E=e=>{a(e,ur())};B(C,e=>{m(S)?m(_)&&e(E,1):e(T)});var O=l(C,2),k=e=>{var t=lr(),n=v(t,!0);A(t),H(()=>g(n,m(p))),a(e,t)};B(O,e=>{m(p)&&e(k)}),H(()=>b.disabled=m(f)),z(b,()=>m(u),e=>c(u,e)),a(e,t)};B(F,e=>{m(i).length===0?e(I):e(L,-1)});var R=l(F,2),V=v(R),U=l(V,2),W=v(U,!0);A(U),A(R),A(k),A(O),H(()=>{g(M,r.file.name),g(P,`Destination: ${(r.folder||`Root`)??``}`),U.disabled=!m(C),g(W,m(f)?`Importing…`:`Import`)}),d(`click`,O,function(...e){r.onCancel?.apply(this,e)}),d(`click`,k,e=>e.stopPropagation()),d(`keydown`,k,e=>{e.key===`Escape`&&r.onCancel()}),d(`click`,V,function(...e){r.onCancel?.apply(this,e)}),d(`click`,U,()=>void T()),a(t,O),e()}j([`click`,`keydown`]);function mr(e,t){return e!==t&&!Ce(t,e)&&be(e)!==t}function hr(e,t,n){return e&&t!==null&&mr(t,n)}var gr=M(`<svg viewBox="0 0 16 16" fill="none" aria-hidden="true" focusable="false"><path d="M1.25 4.25A1.75 1.75 0 0 1 3 2.5h2.45c.55 0 1.06.26 1.39.7l.6.8H13a1.75 1.75 0 0 1 1.75 1.75v5.5A1.75 1.75 0 0 1 13 13H3a1.75 1.75 0 0 1-1.75-1.75v-7Z" fill="currentColor"></path><path d="M1.75 6h12.5" stroke="currentColor" stroke-opacity="0.35"></path></svg>`);function _r(e,t){let n=k(t,`size`,3,14);var r=gr();H(()=>{N(r,`width`,n()),N(r,`height`,n())}),a(e,r)}var vr=p(`<span class="asset-warning svelte-ftwms1">⚠</span>`),yr=p(`<div class="asset-row svelte-ftwms1"><button class="row asset current svelte-ftwms1" draggable="true" aria-current="page"><span class="glyph asset-glyph svelte-ftwms1">◆</span> <span class="label svelte-ftwms1"> </span> <!></button></div>`),br=p(`<div class="folder-row svelte-ftwms1"><button draggable="true"><span class="glyph svelte-ftwms1"><!></span><span class="label svelte-ftwms1"> </span><span class="count svelte-ftwms1"> </span></button></div> <!>`,1),xr=p(`<p class="dialog-warning svelte-ftwms1"> </p>`),Sr=p(`<p class="dialog-warning svelte-ftwms1">A sibling folder with this name already exists.</p>`),Cr=p(`<label class="dialog-row svelte-ftwms1"><span class="svelte-ftwms1">Name</span> <input class="control svelte-ftwms1" spellcheck="false"/></label> <p class="dialog-path svelte-ftwms1"> </p> <!> <!> <!>`,1),wr=p(`<p class="dialog-text svelte-ftwms1">Delete <strong> </strong> </p> <!> <!>`,1),Tr=p(`<aside class="directory svelte-ftwms1" aria-label="Asset folders"><header class="svelte-ftwms1"><strong class="svelte-ftwms1">Folders</strong> <div class="actions svelte-ftwms1"><button class="icon-button svelte-ftwms1">+</button> <button class="icon-button svelte-ftwms1">✎</button> <button class="icon-button danger svelte-ftwms1">×</button></div></header> <div class="tree svelte-ftwms1"><button><span class="glyph svelte-ftwms1">▦</span><span class="label svelte-ftwms1">All Assets</span><span class="count svelte-ftwms1"> </span></button> <button><span class="glyph svelte-ftwms1">⌂</span><span class="label svelte-ftwms1">Root</span><span class="count svelte-ftwms1"> </span></button> <!> <!></div></aside> <!> <!>`,1);function Er(t,r){E(r,!0);let i=k(r,`activeAsset`,3,null),u=k(r,`sharedDraggedFolder`,3,null),p=b(null),_=b(null),x=y(()=>u()??m(_)),C=y(()=>K.state?.library.folders??[]),T=y(()=>K.state?.assets??[]),j=y(()=>[...m(C)].sort((e,t)=>e.localeCompare(t)));function M(e){return m(T).filter(t=>t.folder===e).length}function P(e,t){let n=e.dataTransfer?.types.includes(`application/x-fundus-assets`)??!1,r=hr(e.dataTransfer?.types.includes(`application/x-fundus-folder`)??!1,m(x),t);!n&&!r||(e.preventDefault(),e.dataTransfer&&(e.dataTransfer.dropEffect=`move`),c(p,t,!0))}function F(e,t){e.preventDefault(),c(p,null);let n=e.dataTransfer?.getData(`application/x-fundus-assets`);if(n){try{let e=JSON.parse(n);Array.isArray(e)&&e.every(e=>typeof e==`string`)&&r.onMoveAssets(e,t)}catch{}return}let i=e.dataTransfer?.getData(`application/x-fundus-folder`)||m(x);i&&mr(i,t)&&L(i,t)}function I(e,t){i()||r.selectedFolder!==null&&Ce(r.selectedFolder,e)&&r.onSelect(`${t}${r.selectedFolder.slice(e.length)}`)}async function L(e,t){let n=Se(t,xe(e));try{await K.mutate(()=>W(e,t)),I(e,n)}catch{}finally{c(_,null),r.onFolderDragEnd?.()}}let R=b(null),V=b(``),G=b(null),ne=b(null),re=b(``),ie=b(void 0),q=b(!1),J=b(null),Y=y(()=>r.selectedFolder!==null&&r.selectedFolder!==``?r.selectedFolder:null),X=y(()=>m(re)===``?null:_e(m(re))),Z=y(()=>Se(m(R)===`rename`?be(m(G)??``):m(V),m(re).normalize(`NFC`))),ae=y(()=>m(re)!==``&&m(C).some(e=>e!==(m(R)===`rename`?m(G):null)&&ye(e)===ye(m(Z)))),oe=y(()=>m(re)!==``&&!m(X)&&!m(ae)&&!m(q));function se(e=r.selectedFolder??``){c(V,e,!0),c(re,``),c(J,null),c(R,`create`),s().then(()=>m(ie)?.focus())}let ce=0;n(()=>{r.createRequest!==null&&r.createRequest.id!==ce&&(ce=r.createRequest.id,se(r.createRequest.parent))});function le(e,t,n=null){e.preventDefault(),e.stopPropagation(),r.onContextMenu(e.clientX,e.clientY,t,n)}function de(e){e!==null&&(c(G,e,!0),c(re,xe(e),!0),c(J,null),c(R,`rename`),s().then(()=>m(ie)?.focus()))}let fe=0;n(()=>{r.renameRequest!==null&&r.renameRequest.id!==fe&&(fe=r.renameRequest.id,de(r.renameRequest.path))});function pe(e){e!==null&&(c(ne,e,!0),c(J,null),c(R,`delete`))}let me=0;n(()=>{r.deleteRequest!==null&&r.deleteRequest.id!==me&&(me=r.deleteRequest.id,pe(r.deleteRequest.path))});function he(){m(q)||(c(R,null),c(J,null))}async function ge(){if(m(oe)){c(q,!0),c(J,null);try{if(m(R)===`create`){let e=m(Z);await K.mutate(()=>ee(e)),i()||r.onSelect(e)}else if(m(R)===`rename`&&m(G)!==null){let e=m(G),t=m(Z);await K.mutate(()=>U(e,m(re))),I(e,t)}c(R,null)}catch(e){c(J,e instanceof Error?e.message:String(e),!0)}finally{c(q,!1)}}}let ve=y(()=>m(ne)===null?[]:m(C).filter(e=>Ce(e,m(ne)??``))),we=y(()=>m(ne)===null?[]:m(T).filter(e=>Ce(e.folder,m(ne)??``))),Te=y(()=>new Set(m(we).map(e=>e.id))),Ee=y(()=>m(we).flatMap(e=>e.references.incoming.filter(e=>!m(Te).has(e.assetId)).map(t=>`${t.assetId}.${t.field} → ${e.id}`)));async function De(){if(m(ne)===null)return;let e=m(ne),t=be(e),n=i()!==null&&Ce(i().folder,e);c(q,!0),c(J,null);try{await K.mutate(()=>te(e)),n?r.onActiveAssetDeleted?.(t):!i()&&r.selectedFolder!==null&&Ce(r.selectedFolder,e)&&r.onSelect(t),c(R,null)}catch(e){c(J,e instanceof Error?e.message:String(e),!0)}finally{c(q,!1)}}function Oe(e){i()&&(e.dataTransfer?.setData(`application/x-fundus-assets`,JSON.stringify([i().id])),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`))}var ke=Tr(),Ae=o(ke),je=v(Ae),Me=l(v(je),2),Ne=v(Me),Pe=l(Ne,2),Fe=l(Pe,2);A(Me),A(je);var Q=l(je,2),Ie=v(Q);let Le;var Re=l(v(Ie),2),ze=v(Re,!0);A(Re),A(Ie);var $=l(Ie,2);let Be;var Ve=l(v($),2),He=v(Ve,!0);A(Ve),A($);var Ue=l($,2),We=e=>{var t=yr();O(t,``,{},{"--depth":0});var n=v(t),r=l(v(n),2),o=v(r,!0);A(r);var s=l(r,2),c=e=>{var t=vr();H(e=>N(t,`title`,e),[()=>i().warnings.join(`
|
|
105
|
+
`)]),a(e,t)};B(s,e=>{i().warnings.length>0&&e(c)}),A(n),A(t),H(()=>{N(n,`title`,i().id),g(o,i().id)}),f(`dragstart`,n,Oe),a(e,t)};B(Ue,e=>{i()?.folder===``&&e(We)}),h(l(Ue,2),16,()=>m(j),e=>e,(e,t)=>{let n=y(()=>t.split(`/`).length-1);var s=br(),u=o(s);let h;var b=v(u);let x;var S=v(b);_r(v(S),{}),A(S);var C=l(S),w=v(C,!0);A(C);var T=l(C),E=v(T,!0);A(T),A(b),A(u);var k=l(u,2),j=e=>{var t=yr();let r;var o=v(t),s=l(v(o),2),c=v(s,!0);A(s);var u=l(s,2),d=e=>{var t=vr();H(e=>N(t,`title`,e),[()=>i().warnings.join(`
|
|
106
|
+
`)]),a(e,t)};B(u,e=>{i().warnings.length>0&&e(d)}),A(o),A(t),H(()=>{r=O(t,``,r,{"--depth":m(n)+1}),N(o,`title`,i().id),g(c,i().id)}),f(`dragstart`,o,Oe),a(e,t)};B(k,e=>{i()?.folder===t&&e(j)}),H((e,a)=>{h=O(u,``,h,{"--depth":m(n)}),x=D(b,1,`row folder svelte-ftwms1`,null,x,{selected:!i()&&r.selectedFolder===t,"drop-target":m(p)===t}),N(C,`title`,t),g(w,e),g(E,a)},[()=>xe(t),()=>M(t)]),d(`click`,b,()=>r.onSelect(t)),d(`contextmenu`,b,e=>le(e,t,t)),f(`dragstart`,b,e=>{c(_,t,!0),r.onFolderDragStart?.(t),e.dataTransfer?.setData(`application/x-fundus-folder`,t),e.dataTransfer&&(e.dataTransfer.effectAllowed=`move`)}),f(`dragend`,b,()=>{c(_,null),r.onFolderDragEnd?.(),c(p,null)}),f(`dragover`,b,e=>P(e,t)),f(`dragleave`,b,()=>c(p,null)),f(`drop`,b,e=>F(e,t)),a(e,s)}),A(Q),A(Ae);var Ge=l(Ae,2),Ke=e=>{{let t=y(()=>m(R)===`create`?`Create folder`:`Rename folder`),n=y(()=>m(q)?`Saving…`:m(R)===`create`?`Create`:`Rename`),r=y(()=>!m(oe));ue(e,{get title(){return m(t)},get confirmLabel(){return m(n)},get confirmDisabled(){return m(r)},get busy(){return m(q)},onConfirm:()=>void ge(),onCancel:he,children:(e,t)=>{var n=Cr(),r=o(n),i=l(v(r),2);w(i),S(i,e=>c(ie,e),()=>m(ie)),A(r);var s=l(r,2),u=v(s,!0);A(s);var f=l(s,2),p=e=>{var t=xr(),n=v(t,!0);A(t),H(()=>g(n,m(X))),a(e,t)};B(f,e=>{m(X)&&e(p)});var h=l(f,2),_=e=>{a(e,Sr())};B(h,e=>{m(ae)&&e(_)});var y=l(h,2),b=e=>{var t=xr(),n=v(t,!0);A(t),H(()=>g(n,m(J))),a(e,t)};B(y,e=>{m(J)&&e(b)}),H(()=>{i.disabled=m(q),g(u,m(Z)||`Root`)}),d(`keydown`,i,e=>e.key===`Enter`&&void ge()),z(i,()=>m(re),e=>c(re,e)),a(e,n)},$$slots:{default:!0}})}};B(Ge,e=>{(m(R)===`create`||m(R)===`rename`)&&e(Ke)});var qe=l(Ge,2),Je=e=>{{let t=y(()=>m(q)?`Deleting…`:`Delete recursively`);ue(e,{title:`Delete folder`,get confirmLabel(){return m(t)},danger:!0,get busy(){return m(q)},onConfirm:()=>void De(),onCancel:he,children:(e,t)=>{var n=wr(),r=o(n),i=l(v(r)),s=v(i,!0);A(i);var c=l(i);A(r);var u=l(r,2),d=e=>{var t=xr(),n=v(t);A(t),H(e=>g(n,`This leaves ${m(Ee).length??``} external reference(s) dangling:
|
|
107
|
+
${e??``}`),[()=>m(Ee).join(`, `)]),a(e,t)};B(u,e=>{m(Ee).length>0&&e(d)});var f=l(u,2),p=e=>{var t=xr(),n=v(t,!0);A(t),H(()=>g(n,m(J))),a(e,t)};B(f,e=>{m(J)&&e(p)}),H(()=>{g(s,m(ne)),g(c,`, ${m(ve).length-1} descendant folder(s),
|
|
108
|
+
and ${m(we).length??``} asset(s)? Raw and proxy files are removed.`)}),a(e,n)},$$slots:{default:!0}})}};B(qe,e=>{m(R)===`delete`&&m(ne)!==null&&e(Je)}),H(e=>{N(Ne,`title`,i()?`Create folder beside the current asset`:`Create child folder`),N(Pe,`title`,i()?`Rename the current asset folder`:`Rename selected folder`),Pe.disabled=m(Y)===null,N(Fe,`title`,i()?`Delete the current asset folder`:`Delete selected folder`),Fe.disabled=m(Y)===null,Le=D(Ie,1,`row special svelte-ftwms1`,null,Le,{selected:!i()&&r.selectedFolder===null}),g(ze,m(T).length),Be=D($,1,`row special svelte-ftwms1`,null,Be,{selected:!i()&&r.selectedFolder===``,"drop-target":m(p)===``}),g(He,e)},[()=>M(``)]),d(`contextmenu`,Ae,e=>le(e,``)),d(`click`,Ne,()=>se()),d(`click`,Pe,()=>de(m(Y))),d(`click`,Fe,()=>pe(m(Y))),d(`click`,Ie,()=>r.onSelect(null)),d(`click`,$,()=>r.onSelect(``)),f(`dragover`,$,e=>P(e,``)),f(`dragleave`,$,()=>c(p,null)),f(`drop`,$,e=>F(e,``)),a(t,ke),e()}j([`contextmenu`,`click`,`keydown`]);var Dr=p(`<button role="menuitem" class="svelte-10jgqdh">Rename</button>`),Or=p(`<button class="danger svelte-10jgqdh" role="menuitem">Delete Directory</button>`),kr=p(`<div class="context-menu svelte-10jgqdh" role="menu" aria-label="Library actions" tabindex="-1"><button role="menuitem" class="svelte-10jgqdh">New Directory</button> <!> <button role="menuitem" class="svelte-10jgqdh">Import File</button> <!></div>`);function Ar(t,n){E(n,!0);let r=y(()=>Math.max(8,Math.min(n.x,window.innerWidth-176))),i=y(()=>2+ +!!n.onRenameDirectory+ +!!n.onDeleteDirectory),o=y(()=>Math.max(8,Math.min(n.y,window.innerHeight-(m(i)*32+8))));function s(e){e(),n.onClose()}var c=kr();f(`click`,_,function(...e){n.onClose?.apply(this,e)}),f(`blur`,_,function(...e){n.onClose?.apply(this,e)}),f(`keydown`,_,e=>e.key===`Escape`&&n.onClose()),f(`resize`,_,function(...e){n.onClose?.apply(this,e)}),f(`scroll`,_,function(...e){n.onClose?.apply(this,e)});let u;var p=v(c),h=l(p,2),g=e=>{var t=Dr();d(`click`,t,()=>s(n.onRenameDirectory)),a(e,t)};B(h,e=>{n.onRenameDirectory&&e(g)});var b=l(h,2),x=l(b,2),S=e=>{var t=Or();d(`click`,t,()=>s(n.onDeleteDirectory)),a(e,t)};B(x,e=>{n.onDeleteDirectory&&e(S)}),A(c),H(()=>u=O(c,``,u,{left:`${m(r)}px`,top:`${m(o)}px`})),d(`contextmenu`,c,e=>e.preventDefault()),d(`click`,p,()=>s(n.onNewDirectory)),d(`click`,b,()=>s(n.onImportFile)),a(t,c),e()}j([`contextmenu`,`click`]);export{mr as a,lt as c,Se as d,be as f,hr as i,xe as l,Er as n,pr as o,_r as r,or as s,Ar as t,Ce as u};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{$ as e,E as t,K as n,M as r,O as i,T as a,W as o,b as s,et as c,g as l,i as u,it as d,j as f,l as p,z as m}from"./CNRz3sSw.js";import"./xihTtKlq.js";var h=[`preload`,`release`,`entries`,`constructor`,`prototype`,`hasOwnProperty`,`isPrototypeOf`,`propertyIsEnumerable`,`toLocaleString`,`toString`,`valueOf`],g=/^[a-z][A-Za-z0-9]*$/;function _(e){return g.test(e)?h.includes(e)?`"${e}" is reserved (it collides with a Manifest member name).`:null:`"${e}" is not a valid asset id — use a camelCase identifier starting with a lowercase letter (e.g. "navigationPanel").`}function v(e){return g.test(e)?h.includes(e)?`"${e}" is reserved (it collides with a Manifest member name).`:null:`"${e}" is not a valid manifest name — use a camelCase identifier starting with a lowercase letter (e.g. "mainCatalog").`}var y={type:`audio`,accepts:[`mp3`,`wav`,`m4a`,`ogg`,`flac`],defaultParameters:()=>({preset:`default`}),validateParameters(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Audio parameters must be an object.`);let t=e;if(typeof t.preset!=`string`||t.preset.length===0)throw Error(`Audio parameters need a non-empty string "preset".`);return{preset:t.preset}}};function b(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&typeof e.$asset==`string`&&e.$asset!==``}var x={keyColor:[0,1,0],colorCutoff:.2,colorFeathering:.33,maskFeathering:1,sharpening:.5,despill:1,despillLuminanceAdd:.2},S=[`colorCutoff`,`colorFeathering`,`maskFeathering`,`sharpening`,`despill`,`despillLuminanceAdd`];function C(e){return Math.min(1,Math.max(0,e))}function w(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`"chromaKey" must be an object.`);let t=e,n=t.keyColor;if(!Array.isArray(n)||n.length!==3||n.some(e=>typeof e!=`number`||!Number.isFinite(e)))throw Error(`"chromaKey.keyColor" must be an array of three numbers (RGB, 0–1 each).`);let r={keyColor:[C(n[0]),C(n[1]),C(n[2])]};for(let e of S){let n=t[e];if(typeof n!=`number`||!Number.isFinite(n))throw Error(`"chromaKey.${e}" must be a number (0–1).`);r[e]=C(n)}return r}var T=[`mp4`,`mov`,`webm`,`m4v`];function E(e,t){if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`${e} parameters must be an object.`);let n=t;if(typeof n.preset!=`string`||n.preset.length===0)throw Error(`${e} parameters need a non-empty string "preset".`);if(n.maxWidth!==void 0&&(typeof n.maxWidth!=`number`||!Number.isInteger(n.maxWidth)||n.maxWidth<=0))throw Error(`${e} "maxWidth" must be a positive integer when set.`);return{preset:n.preset,...n.maxWidth===void 0?{}:{maxWidth:n.maxWidth}}}var D={type:`video`,accepts:[...T],defaultParameters:()=>({preset:`default`}),validateParameters(e){return E(`Video`,e)}};function O(e,t){if(t!==void 0){if(!b(t))throw Error(`"${e}" must be an asset reference ({ "$asset": "<id>" }).`);return{$asset:t.$asset}}}var k={type:`chroma-key-video`,accepts:[...T],defaultParameters:()=>({preset:`default`,chromaKey:{...x,keyColor:[...x.keyColor]}}),validateParameters(e){let t=E(`Chroma-key-video`,e),n=e,r=w(n.chromaKey),i=O(`mask`,n.mask),a=O(`fallback`,n.fallback);return{...t,chromaKey:r,...i===void 0?{}:{mask:i},...a===void 0?{}:{fallback:a}}},collectReferences(e){let t=[];return e.mask&&t.push({field:`mask`,assetId:e.mask.$asset,expectedTypes:[`image`]}),e.fallback&&t.push({field:`fallback`,assetId:e.fallback.$asset,expectedTypes:[`image`]}),t},processingParameters(e){return{preset:e.preset,...e.maxWidth===void 0?{}:{maxWidth:e.maxWidth}}}},A=[`png`,`jpg`,`jpeg`,`webp`,`avif`],j={type:`image`,accepts:[...A],defaultParameters:()=>({preset:`default`}),validateParameters(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Image parameters must be an object.`);let t=e;if(typeof t.preset!=`string`||t.preset.length===0)throw Error(`Image parameters need a non-empty string "preset".`);if(t.targetWidth!==void 0&&(typeof t.targetWidth!=`number`||!Number.isInteger(t.targetWidth)||t.targetWidth<=0))throw Error(`Image "targetWidth" must be a positive integer when set.`);return{preset:t.preset,...t.targetWidth===void 0?{}:{targetWidth:t.targetWidth}}}},M=[`nine`,`three-horizontal`,`three-vertical`,`one`];function N(){return{top:0,right:0,bottom:0,left:0}}function P(e){return{horizontal:e===`nine`||e===`three-horizontal`,vertical:e===`nine`||e===`three-vertical`}}function F(e,t,n,r){return t===`left`?n-e.right:t===`right`?n-e.left:t===`top`?r-e.bottom:r-e.top}function I(e,t,n,r){return F(e,t,n,r)-1}function L(e,t){if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`Slice ${e} must be an object with top/right/bottom/left.`);let n=t,r=[`top`,`right`,`bottom`,`left`],i=N();for(let t of r){let r=n[t];if(typeof r!=`number`||!Number.isInteger(r)||r<0)throw Error(`Slice ${e}.${t} must be a non-negative integer.`);i[t]=r}return i}var R={type:`slice`,accepts:[...A],defaultParameters:()=>({mode:`nine`,insets:N(),pixelRatio:1,preset:`default`}),validateParameters(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Slice parameters must be an object.`);let t=e;if(typeof t.mode!=`string`||!M.includes(t.mode))throw Error(`Slice "mode" must be one of ${M.map(e=>`'${e}'`).join(` | `)}.`);let n=L(`insets`,t.insets);if(typeof t.pixelRatio!=`number`||!Number.isInteger(t.pixelRatio)||t.pixelRatio<1)throw Error(`Slice "pixelRatio" must be an integer ≥ 1.`);let r=t.overdraw===void 0?void 0:L(`overdraw`,t.overdraw);if(typeof t.preset!=`string`||t.preset.length===0)throw Error(`Slice parameters need a non-empty string "preset".`);return{mode:t.mode,insets:n,pixelRatio:t.pixelRatio,...r===void 0?{}:{overdraw:r},preset:t.preset}}},z=new class{#e=new Map;register(e){if(this.#e.has(e.type))throw Error(`Plugin type "${e.type}" is already registered.`);this.#e.set(e.type,e)}has(e){return this.#e.has(e)}values(){return[...this.#e.values()]}types(){return[...this.#e.keys()]}project(e,t){let n=Object.create(null);for(let r of this.#e.keys()){if(!Object.hasOwn(e,r))throw Error(`Registered plugin "${r}" has no ${t}.`);n[r]=e[r]}return n}};z.register(j),z.register(R),z.register(D),z.register(k),z.register(y);var B=z.values();function V(e=B){return[...new Set(e.flatMap(e=>e.accepts))].sort().map(e=>`.${e}`)}function H(e,t=B){let n=e.slice(e.lastIndexOf(`.`)+1).toLowerCase();return t.filter(e=>e.accepts.includes(n)).map(e=>e.type)}function
|
|
1
|
+
import{$ as e,E as t,K as n,M as r,O as i,T as a,W as o,b as s,et as c,g as l,i as u,it as d,j as f,l as p,z as m}from"./CNRz3sSw.js";import"./xihTtKlq.js";var h=[`preload`,`release`,`entries`,`constructor`,`prototype`,`hasOwnProperty`,`isPrototypeOf`,`propertyIsEnumerable`,`toLocaleString`,`toString`,`valueOf`],g=/^[a-z][A-Za-z0-9]*$/;function _(e){return g.test(e)?h.includes(e)?`"${e}" is reserved (it collides with a Manifest member name).`:null:`"${e}" is not a valid asset id — use a camelCase identifier starting with a lowercase letter (e.g. "navigationPanel").`}function v(e){return g.test(e)?h.includes(e)?`"${e}" is reserved (it collides with a Manifest member name).`:null:`"${e}" is not a valid manifest name — use a camelCase identifier starting with a lowercase letter (e.g. "mainCatalog").`}var y={type:`audio`,accepts:[`mp3`,`wav`,`m4a`,`ogg`,`flac`],defaultParameters:()=>({preset:`default`}),validateParameters(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Audio parameters must be an object.`);let t=e;if(typeof t.preset!=`string`||t.preset.length===0)throw Error(`Audio parameters need a non-empty string "preset".`);return{preset:t.preset}}};function b(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&typeof e.$asset==`string`&&e.$asset!==``}var x={keyColor:[0,1,0],colorCutoff:.2,colorFeathering:.33,maskFeathering:1,sharpening:.5,despill:1,despillLuminanceAdd:.2},S=[`colorCutoff`,`colorFeathering`,`maskFeathering`,`sharpening`,`despill`,`despillLuminanceAdd`];function C(e){return Math.min(1,Math.max(0,e))}function w(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`"chromaKey" must be an object.`);let t=e,n=t.keyColor;if(!Array.isArray(n)||n.length!==3||n.some(e=>typeof e!=`number`||!Number.isFinite(e)))throw Error(`"chromaKey.keyColor" must be an array of three numbers (RGB, 0–1 each).`);let r={keyColor:[C(n[0]),C(n[1]),C(n[2])]};for(let e of S){let n=t[e];if(typeof n!=`number`||!Number.isFinite(n))throw Error(`"chromaKey.${e}" must be a number (0–1).`);r[e]=C(n)}return r}var T=[`mp4`,`mov`,`webm`,`m4v`];function E(e,t){if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`${e} parameters must be an object.`);let n=t;if(typeof n.preset!=`string`||n.preset.length===0)throw Error(`${e} parameters need a non-empty string "preset".`);if(n.maxWidth!==void 0&&(typeof n.maxWidth!=`number`||!Number.isInteger(n.maxWidth)||n.maxWidth<=0))throw Error(`${e} "maxWidth" must be a positive integer when set.`);return{preset:n.preset,...n.maxWidth===void 0?{}:{maxWidth:n.maxWidth}}}var D={type:`video`,accepts:[...T],defaultParameters:()=>({preset:`default`}),validateParameters(e){return E(`Video`,e)}};function O(e,t){if(t!==void 0){if(!b(t))throw Error(`"${e}" must be an asset reference ({ "$asset": "<id>" }).`);return{$asset:t.$asset}}}var k={type:`chroma-key-video`,accepts:[...T],defaultParameters:()=>({preset:`default`,chromaKey:{...x,keyColor:[...x.keyColor]}}),validateParameters(e){let t=E(`Chroma-key-video`,e),n=e,r=w(n.chromaKey),i=O(`mask`,n.mask),a=O(`fallback`,n.fallback);return{...t,chromaKey:r,...i===void 0?{}:{mask:i},...a===void 0?{}:{fallback:a}}},collectReferences(e){let t=[];return e.mask&&t.push({field:`mask`,assetId:e.mask.$asset,expectedTypes:[`image`]}),e.fallback&&t.push({field:`fallback`,assetId:e.fallback.$asset,expectedTypes:[`image`]}),t},processingParameters(e){return{preset:e.preset,...e.maxWidth===void 0?{}:{maxWidth:e.maxWidth}}}},A=[`png`,`jpg`,`jpeg`,`webp`,`avif`],j={type:`image`,accepts:[...A],defaultParameters:()=>({preset:`default`}),validateParameters(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Image parameters must be an object.`);let t=e;if(typeof t.preset!=`string`||t.preset.length===0)throw Error(`Image parameters need a non-empty string "preset".`);if(t.targetWidth!==void 0&&(typeof t.targetWidth!=`number`||!Number.isInteger(t.targetWidth)||t.targetWidth<=0))throw Error(`Image "targetWidth" must be a positive integer when set.`);return{preset:t.preset,...t.targetWidth===void 0?{}:{targetWidth:t.targetWidth}}}},M=[`nine`,`three-horizontal`,`three-vertical`,`one`];function N(){return{top:0,right:0,bottom:0,left:0}}function P(e){return{horizontal:e===`nine`||e===`three-horizontal`,vertical:e===`nine`||e===`three-vertical`}}function F(e,t,n,r){return t===`left`?n-e.right:t===`right`?n-e.left:t===`top`?r-e.bottom:r-e.top}function I(e,t,n,r){return F(e,t,n,r)-1}function L(e,t){if(typeof t!=`object`||!t||Array.isArray(t))throw Error(`Slice ${e} must be an object with top/right/bottom/left.`);let n=t,r=[`top`,`right`,`bottom`,`left`],i=N();for(let t of r){let r=n[t];if(typeof r!=`number`||!Number.isInteger(r)||r<0)throw Error(`Slice ${e}.${t} must be a non-negative integer.`);i[t]=r}return i}var R={type:`slice`,accepts:[...A],defaultParameters:()=>({mode:`nine`,insets:N(),pixelRatio:1,preset:`default`}),validateParameters(e){if(typeof e!=`object`||!e||Array.isArray(e))throw Error(`Slice parameters must be an object.`);let t=e;if(typeof t.mode!=`string`||!M.includes(t.mode))throw Error(`Slice "mode" must be one of ${M.map(e=>`'${e}'`).join(` | `)}.`);let n=L(`insets`,t.insets);if(typeof t.pixelRatio!=`number`||!Number.isInteger(t.pixelRatio)||t.pixelRatio<1)throw Error(`Slice "pixelRatio" must be an integer ≥ 1.`);let r=t.overdraw===void 0?void 0:L(`overdraw`,t.overdraw);if(typeof t.preset!=`string`||t.preset.length===0)throw Error(`Slice parameters need a non-empty string "preset".`);return{mode:t.mode,insets:n,pixelRatio:t.pixelRatio,...r===void 0?{}:{overdraw:r},preset:t.preset}}},z=new class{#e=new Map;register(e){if(this.#e.has(e.type))throw Error(`Plugin type "${e.type}" is already registered.`);this.#e.set(e.type,e)}has(e){return this.#e.has(e)}values(){return[...this.#e.values()]}types(){return[...this.#e.keys()]}project(e,t){let n=Object.create(null);for(let r of this.#e.keys()){if(!Object.hasOwn(e,r))throw Error(`Registered plugin "${r}" has no ${t}.`);n[r]=e[r]}return n}};z.register(j),z.register(R),z.register(D),z.register(k),z.register(y);var B=z.values();function V(e=B){return[...new Set(e.flatMap(e=>e.accepts))].sort().map(e=>`.${e}`)}function H(e,t=B){return t.find(t=>t.type===e)?.accepts.map(e=>`.${e}`).sort()??[]}function U(e,t=B){let n=e.slice(e.lastIndexOf(`.`)+1).toLowerCase();return t.filter(e=>e.accepts.includes(n)).map(e=>e.type)}function W(e){let t=e.replace(/\.[^.]+$/,``).replace(/(?:@|[-_])\dx$/i,``).replace(/([a-z0-9])([A-Z])/g,`$1 $2`).split(/[^a-zA-Z0-9]+/).filter(Boolean);if(t.length===0)return`asset`;let n=t.map((e,t)=>t===0?e.toLowerCase():e.charAt(0).toUpperCase()+e.slice(1).toLowerCase()).join(``).replace(/^[0-9]+/,``);return n?n.charAt(0).toLowerCase()+n.slice(1):`asset`}function G(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} kB`:`${(e/(1024*1024)).toFixed(2)} MB`}function K(e){return`${(e/1e3).toFixed(2)} s`}function q(e,t){let{maxWidth:n,...r}=e;return t===null||!Number.isFinite(t)||t<=0?r:{...r,maxWidth:Math.round(t)}}var J=i(`<div class="backdrop svelte-oozc38" role="presentation"><div class="dialog svelte-oozc38" role="dialog" tabindex="-1"><h2 class="svelte-oozc38"> </h2> <!> <div class="actions svelte-oozc38"><button class="control">Cancel</button> <button> </button></div></div></div>`);function Y(i,f){c(f,!0);let h=u(f,`danger`,3,!1),g=u(f,`confirmDisabled`,3,!1),_=u(f,`busy`,3,!1);var v=J(),y=o(v),b=o(y),x=o(b,!0);d(b);var S=n(b,2);s(S,()=>f.children);var C=n(S,2),w=o(C),T=n(w,2);let E;var D=o(T,!0);d(T),d(C),d(y),d(v),m(()=>{p(y,`aria-label`,f.title),a(x,f.title),w.disabled=_(),E=l(T,1,`control`,null,E,{primary:!h(),danger:h()}),T.disabled=g()||_(),a(D,f.confirmLabel)}),r(`click`,v,()=>_()?void 0:f.onCancel()),r(`click`,y,e=>e.stopPropagation()),r(`keydown`,y,e=>{e.key===`Escape`&&!_()&&f.onCancel()}),r(`click`,w,function(...e){f.onCancel?.apply(this,e)}),r(`click`,T,function(...e){f.onConfirm?.apply(this,e)}),t(i,v),e()}f([`click`,`keydown`]);export{D as _,V as a,v as b,U as c,N as d,F as f,k as g,j as h,q as i,z as l,P as m,G as n,H as o,I as p,K as r,W as s,Y as t,R as u,y as v,_ as y};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./CNRz3sSw.js";import{a as e,r as t}from"./
|
|
1
|
+
import"./CNRz3sSw.js";import{a as e,r as t}from"./DVEDrSOn.js";var n={get data(){return e.data},get error(){return e.error},get form(){return e.form},get params(){return e.params},get route(){return e.route},get state(){return e.state},get status(){return e.status},get url(){return e.url}};t.updated.check;var r=n;export{r as t};
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{F as e,I as t,J as n,P as r,Y as i,Z as a,n as o,t as s}from"./CNRz3sSw.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_uqw7n4?.base??``,pe=globalThis.__sveltekit_uqw7n4?.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=`1783982340628`,_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=a(e),n=!0;function r(){n=!0,t.update(e=>e)}function i(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:r,set:i,subscribe:o}}var Ee={v:h};function De(){let{set:e,subscribe:t}=a(!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=o.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(o.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 r(this.#e)}set data(e){n(this.#e,e)}#t=i(null);get form(){return r(this.#t)}set form(e){n(this.#t,e)}#n=i(null);get error(){return r(this.#n)}set error(e){n(this.#n,e)}#r=i({});get params(){return r(this.#r)}set params(e){n(this.#r,e)}#i=i({id:null});get route(){return r(this.#i)}set route(e){n(this.#i,e)}#a=i({});get state(){return r(this.#a)}set state(e){n(this.#a,e)}#o=i(-1);get status(){return r(this.#o)}set status(e){n(this.#o,e)}#s=i(new URL(Pe));get url(){return r(this.#s)}set url(e){n(this.#s,e)}},N=new class{#e=i(null);get current(){return r(this.#e)}set current(e){n(this.#e,e)}},P=new class{#e=i(!1);get current(){return r(this.#e)}set current(e){n(this.#e,e)}},Ee.v=()=>P.current=!0);function Fe(e){Object.assign(M,e)}var{onMount:Ie,tick:Le}=s,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:a(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_uqw7n4.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_uqw7n4.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 Lt(Ge,n)):(await Z({type:`enter`,url:be(V.hash?Ut(new URL(location.href)):location.href),replace_state:!0}),i()),It()}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(Ft)}}),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:Ht(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:Ht(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=Vt(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`?Vt(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(Wt(r)))?x.scrollIntoView():scrollTo(0,0)}let ie=document.activeElement!==re&&document.activeElement!==document.body;!a&&!ie&&Bt(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={}){return e=new URL(be(e)),e.origin===E?mt(e,t,0):Promise.reject(Error(`goto: invalid URL`))}function Ft(e){if(typeof e==`function`)Je.push(e);else{let{href:t}=new URL(e,location.href);Je.push(e=>e.href===t)}}function It(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(pt(),!G){let e=Vt(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(!zt)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(Ht(M)),R.page.notify()}}async function Lt(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=Rt(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 Rt(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 zt=!1;function Bt(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=Wt(e);if(n&&document.getElementById(n)){let{x:r,y:i}=D();setTimeout(()=>{let a=history.state;zt=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),zt=!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 Vt(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 Ht(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 Ut(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function Wt(e){let t;if(V.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{M as a,he as c,N as i,lt as n,P as o,R as r,Oe as s,Pt as t};
|
|
1
|
+
import{F as e,I as t,J as n,P as r,Y as i,Z as a,n as o,t as s}from"./CNRz3sSw.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_czqu0j?.base??``,pe=globalThis.__sveltekit_czqu0j?.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=`1784016204951`,_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=a(e),n=!0;function r(){n=!0,t.update(e=>e)}function i(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:r,set:i,subscribe:o}}var Ee={v:h};function De(){let{set:e,subscribe:t}=a(!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=o.toString().includes(`$$`)||/function \w+\(\) \{\}/.test(o.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 r(this.#e)}set data(e){n(this.#e,e)}#t=i(null);get form(){return r(this.#t)}set form(e){n(this.#t,e)}#n=i(null);get error(){return r(this.#n)}set error(e){n(this.#n,e)}#r=i({});get params(){return r(this.#r)}set params(e){n(this.#r,e)}#i=i({id:null});get route(){return r(this.#i)}set route(e){n(this.#i,e)}#a=i({});get state(){return r(this.#a)}set state(e){n(this.#a,e)}#o=i(-1);get status(){return r(this.#o)}set status(e){n(this.#o,e)}#s=i(new URL(Pe));get url(){return r(this.#s)}set url(e){n(this.#s,e)}},N=new class{#e=i(null);get current(){return r(this.#e)}set current(e){n(this.#e,e)}},P=new class{#e=i(!1);get current(){return r(this.#e)}set current(e){n(this.#e,e)}},Ee.v=()=>P.current=!0);function Fe(e){Object.assign(M,e)}var{onMount:Ie,tick:Le}=s,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:a(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_czqu0j.data){let{q:e={},p:t={},l:n={},f:r={}}=globalThis.__sveltekit_czqu0j.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 Lt(Ge,n)):(await Z({type:`enter`,url:be(V.hash?Ut(new URL(location.href)):location.href),replace_state:!0}),i()),It()}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(Ft)}}),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:Ht(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:Ht(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=Vt(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`?Vt(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(Wt(r)))?x.scrollIntoView():scrollTo(0,0)}let ie=document.activeElement!==re&&document.activeElement!==document.body;!a&&!ie&&Bt(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={}){return e=new URL(be(e)),e.origin===E?mt(e,t,0):Promise.reject(Error(`goto: invalid URL`))}function Ft(e){if(typeof e==`function`)Je.push(e);else{let{href:t}=new URL(e,location.href);Je.push(e=>e.href===t)}}function It(){history.scrollRestoration=`manual`,addEventListener(`beforeunload`,e=>{let t=!1;if(pt(),!G){let e=Vt(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(!zt)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(Ht(M)),R.page.notify()}}async function Lt(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=Rt(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 Rt(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 zt=!1;function Bt(e,t=!0){let n=document.querySelector(`[autofocus]`);if(n)n.focus();else{let n=Wt(e);if(n&&document.getElementById(n)){let{x:r,y:i}=D();setTimeout(()=>{let a=history.state;zt=!0,location.replace(new URL(`#${n}`,location.href)),history.replaceState(a,``,e),t&&scrollTo(r,i),zt=!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 Vt(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 Ht(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 Ut(e){let t=new URL(e);return t.hash=decodeURIComponent(e.hash),t}function Wt(e){let t;if(V.hash){let[,,n]=e.hash.split(`#`,3);t=n??``}else t=e.hash.slice(1);return decodeURIComponent(t)}export{M as a,he as c,N as i,lt as n,P as o,R as r,Oe as s,Pt as t};
|
|
Binary file
|
|
Binary file
|