@cleocode/cleo 2026.8.8 → 2026.8.9
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/package.json +13 -13
- package/studio-dist/client/_app/immutable/chunks/{CDw6gs1j.js → BRRdJhEv.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/{HZAC-_X3.js → C1pi8y41.js} +1 -1
- package/studio-dist/client/_app/immutable/chunks/DRkoDkvW.js +1 -0
- package/studio-dist/client/_app/immutable/chunks/ZLuACntR.js +3 -0
- package/studio-dist/client/_app/immutable/entry/{app.BKnAOevr.js → app.DuqzMDna.js} +2 -2
- package/studio-dist/client/_app/immutable/entry/start.D6Q4k_jR.js +1 -0
- package/studio-dist/client/_app/immutable/nodes/{0.DlaggN6h.js → 0.BZ6Nsd5W.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{1.DOtw4xV7.js → 1.C_MXWQgc.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{15.DkRotmb4.js → 15.D3eIuixk.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{16.CiFR8L0O.js → 16.CE25IhcR.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{17.BMc_WVow.js → 17.BZmwoxZm.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{18.D1IModpR.js → 18.DWM4_tpq.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{20.BuMMF-e6.js → 20.B7bE4cxC.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{24.DXrUQsdu.js → 24.Bg-rjKkG.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{25.BenKEC97.js → 25.DEbqbHyD.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{26.kgWBn4SN.js → 26.Br1GdmW8.js} +1 -1
- package/studio-dist/client/_app/immutable/nodes/{3.emZKGHbc.js → 3.DCtXj-GX.js} +1 -1
- package/studio-dist/client/_app/version.json +1 -1
- package/studio-dist/server/chunks/{0-BBbJZvti.js → 0-CdXdJFeW.js} +3 -3
- package/studio-dist/server/chunks/{0-BBbJZvti.js.map → 0-CdXdJFeW.js.map} +1 -1
- package/studio-dist/server/chunks/{1-3MbA7up8.js → 1-BFA1XRsU.js} +3 -3
- package/studio-dist/server/chunks/{1-3MbA7up8.js.map → 1-BFA1XRsU.js.map} +1 -1
- package/studio-dist/server/chunks/{15-Bi7pL9bQ.js → 15-CUApcnQB.js} +3 -3
- package/studio-dist/server/chunks/{15-Bi7pL9bQ.js.map → 15-CUApcnQB.js.map} +1 -1
- package/studio-dist/server/chunks/{16-DN_IBGHH.js → 16-ahJ6Pzas.js} +3 -3
- package/studio-dist/server/chunks/{16-DN_IBGHH.js.map → 16-ahJ6Pzas.js.map} +1 -1
- package/studio-dist/server/chunks/{17-BnkAEj0w.js → 17-C_GY09QM.js} +3 -3
- package/studio-dist/server/chunks/{17-BnkAEj0w.js.map → 17-C_GY09QM.js.map} +1 -1
- package/studio-dist/server/chunks/{18-VhR6WOyn.js → 18-CoHhwijX.js} +3 -3
- package/studio-dist/server/chunks/{18-VhR6WOyn.js.map → 18-CoHhwijX.js.map} +1 -1
- package/studio-dist/server/chunks/{20-BtIGH5A0.js → 20-BYk_Uabv.js} +3 -3
- package/studio-dist/server/chunks/{20-BtIGH5A0.js.map → 20-BYk_Uabv.js.map} +1 -1
- package/studio-dist/server/chunks/{24-xIS27iRx.js → 24-CDuloKbo.js} +3 -3
- package/studio-dist/server/chunks/{24-xIS27iRx.js.map → 24-CDuloKbo.js.map} +1 -1
- package/studio-dist/server/chunks/{25-CNkyellP.js → 25-BmV5m-_n.js} +3 -3
- package/studio-dist/server/chunks/{25-CNkyellP.js.map → 25-BmV5m-_n.js.map} +1 -1
- package/studio-dist/server/chunks/{26-BDQF-j4Q.js → 26-CwJSqVK9.js} +3 -3
- package/studio-dist/server/chunks/{26-BDQF-j4Q.js.map → 26-CwJSqVK9.js.map} +1 -1
- package/studio-dist/server/chunks/{3-egmpchAV.js → 3-BEMsaZ1y.js} +3 -3
- package/studio-dist/server/chunks/{3-egmpchAV.js.map → 3-BEMsaZ1y.js.map} +1 -1
- package/studio-dist/server/chunks/{_layout.svelte-DbMbfzag.js → _layout.svelte-CV5BE3LU.js} +4 -4
- package/studio-dist/server/chunks/{_layout.svelte-DbMbfzag.js.map → _layout.svelte-CV5BE3LU.js.map} +1 -1
- package/studio-dist/server/chunks/{_page.svelte-C3liY5bM.js → _page.svelte-BE0ePGf6.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-C3liY5bM.js.map → _page.svelte-BE0ePGf6.js.map} +1 -1
- package/studio-dist/server/chunks/{_page.svelte-H7T-J_sP.js → _page.svelte-C5B7nKP0.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-H7T-J_sP.js.map → _page.svelte-C5B7nKP0.js.map} +1 -1
- package/studio-dist/server/chunks/{_page.svelte-BRcel5VD.js → _page.svelte-CGTHspcp.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-BRcel5VD.js.map → _page.svelte-CGTHspcp.js.map} +1 -1
- package/studio-dist/server/chunks/{_page.svelte-z0dc_jzC.js → _page.svelte-D3K3Pi1o.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-z0dc_jzC.js.map → _page.svelte-D3K3Pi1o.js.map} +1 -1
- package/studio-dist/server/chunks/{_page.svelte-BglEvXWF.js → _page.svelte-DNGyGIWk.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-BglEvXWF.js.map → _page.svelte-DNGyGIWk.js.map} +1 -1
- package/studio-dist/server/chunks/{_page.svelte-CrGuHMsW.js → _page.svelte-T3bMoORu.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-CrGuHMsW.js.map → _page.svelte-T3bMoORu.js.map} +1 -1
- package/studio-dist/server/chunks/{_page.svelte-CWWAq9BB.js → _page.svelte-WEHUy5WW.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-CWWAq9BB.js.map → _page.svelte-WEHUy5WW.js.map} +1 -1
- package/studio-dist/server/chunks/{_page.svelte-Bo-x7GRV.js → _page.svelte-qU3XM3Ft.js} +3 -3
- package/studio-dist/server/chunks/{_page.svelte-Bo-x7GRV.js.map → _page.svelte-qU3XM3Ft.js.map} +1 -1
- package/studio-dist/server/chunks/{_page.svelte-Ch8Uxfyw.js → _page.svelte-wP5RBhY9.js} +4 -4
- package/studio-dist/server/chunks/{_page.svelte-Ch8Uxfyw.js.map → _page.svelte-wP5RBhY9.js.map} +1 -1
- package/studio-dist/server/chunks/{client-D2qx6O3f.js → client-D6kcmtib.js} +2 -2
- package/studio-dist/server/chunks/{client-D2qx6O3f.js.map → client-D6kcmtib.js.map} +1 -1
- package/studio-dist/server/chunks/{error.svelte-BUbXraBv.js → error.svelte-WwS161rt.js} +3 -3
- package/studio-dist/server/chunks/{error.svelte-BUbXraBv.js.map → error.svelte-WwS161rt.js.map} +1 -1
- package/studio-dist/server/chunks/{internal-eLpNrc4X.js → internal-CmtLRaJG.js} +2 -2
- package/studio-dist/server/chunks/{internal-eLpNrc4X.js.map → internal-CmtLRaJG.js.map} +1 -1
- package/studio-dist/server/chunks/{stores-Cy9yrbO0.js → stores-CPDsIflz.js} +2 -2
- package/studio-dist/server/chunks/{stores-Cy9yrbO0.js.map → stores-CPDsIflz.js.map} +1 -1
- package/studio-dist/server/index.js +1 -1
- package/studio-dist/server/index.js.map +1 -1
- package/studio-dist/server/manifest.js +12 -12
- package/studio-dist/server/manifest.js.map +1 -1
- package/studio-dist/client/_app/immutable/chunks/0KY5nH0B.js +0 -1
- package/studio-dist/client/_app/immutable/chunks/CD_u6UwO.js +0 -3
- package/studio-dist/client/_app/immutable/entry/start.C9YyMpU_.js +0 -1
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { s as store_get, x as head, b as attr_class, c as escape_html, a as attr, e as ensure_array_like, d as attr_style, u as unsubscribe_stores, g as derived, f as stringify } from './dev-BNpEUZI3.js';
|
|
2
2
|
import 'node:module';
|
|
3
3
|
import { x as TASK_STATUSES } from './paths-BmiFqrkV.js';
|
|
4
|
-
import { p as page } from './stores-
|
|
5
|
-
import './client-
|
|
4
|
+
import { p as page } from './stores-CPDsIflz.js';
|
|
5
|
+
import './client-D6kcmtib.js';
|
|
6
6
|
import { T as TaskSearchBox, F as FilterChipGroup, L as LabelsFilter, H as HierarchyTab, G as GraphTab, K as KanbanTab, E as EpicProgressCard, R as RecentActivityFeed, D as DetailDrawer } from './tasks2-B1Wmksu1.js';
|
|
7
7
|
import 'node:fs';
|
|
8
8
|
import 'node:path';
|
|
@@ -23,7 +23,7 @@ import 'node:child_process';
|
|
|
23
23
|
import 'node:crypto';
|
|
24
24
|
import 'node:process';
|
|
25
25
|
import 'node:async_hooks';
|
|
26
|
-
import './internal-
|
|
26
|
+
import './internal-CmtLRaJG.js';
|
|
27
27
|
import '@sveltejs/kit/internal';
|
|
28
28
|
import './index-server-DocJvixA.js';
|
|
29
29
|
import './chunk-DDP5xfzh.js';
|
|
@@ -529,4 +529,4 @@ function _page($$renderer, $$props) {
|
|
|
529
529
|
}
|
|
530
530
|
|
|
531
531
|
export { _page as default };
|
|
532
|
-
//# sourceMappingURL=_page.svelte-
|
|
532
|
+
//# sourceMappingURL=_page.svelte-wP5RBhY9.js.map
|
package/studio-dist/server/chunks/{_page.svelte-Ch8Uxfyw.js.map → _page.svelte-wP5RBhY9.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_page.svelte-Ch8Uxfyw.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tasks/_page.svelte.js"],"sourcesContent":["import { U as escape_html, V as attr, a as derived, d as unsubscribe_stores, l as store_get, n as attr_class, o as ensure_array_like, r as attr_style, s as head, u as stringify } from \"../../../chunks/dev.js\";\nimport \"../../../chunks/index-server.js\";\nimport { Dt as TASK_STATUSES } from \"../../../chunks/dist2.js\";\nimport { t as page } from \"../../../chunks/stores.js\";\nimport \"../../../chunks/navigation.js\";\nimport { a as KanbanTab, c as GraphTab, d as DetailDrawer, i as LabelsFilter, l as FilterChipGroup, n as TaskSearchBox, r as RecentActivityFeed, s as HierarchyTab, u as EpicProgressCard } from \"../../../chunks/tasks2.js\";\n//#region src/lib/stores/task-filters.svelte.ts\nvar DEFAULT_VIEW = \"hierarchy\";\nvar VALID_VIEWS = new Set([\n\t\"hierarchy\",\n\t\"graph\",\n\t\"kanban\"\n]);\nvar VALID_PRIORITIES = new Set([\n\t\"critical\",\n\t\"high\",\n\t\"medium\",\n\t\"low\"\n]);\nvar QUERY_DEBOUNCE_MS = 150;\nvar deferredWarningEmitted = false;\nfunction parseCsv(raw, validate) {\n\tif (!raw) return [];\n\tconst tokens = raw.split(\",\").map((t) => t.trim()).filter((t) => t.length > 0);\n\tconst out = [];\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const t of tokens) if (validate(t) && !seen.has(t)) {\n\t\tout.push(t);\n\t\tseen.add(t);\n\t}\n\treturn out;\n}\n/** Type-guard for {@link TaskStatus}. */\nfunction isTaskStatus(v) {\n\treturn TASK_STATUSES.includes(v);\n}\n/** Type-guard for {@link TaskPriority}. */\nfunction isTaskPriority(v) {\n\treturn VALID_PRIORITIES.has(v);\n}\n/** Type-guard for {@link TaskView}. */\nfunction isTaskView(v) {\n\treturn VALID_VIEWS.has(v);\n}\n/** Pass-through validator for free-form label names (non-empty tokens). */\nfunction isNonEmptyLabel(v) {\n\treturn v.length > 0;\n}\n/**\n* Read a {@link TaskFilterState} from a {@link URL}.\n*\n* Honours the legacy `?deferred=1` alias for `?cancelled=1` and emits a\n* one-time `console.warn` the first time the alias is encountered.\n*\n* @param url - The URL to parse.\n* @returns A fresh {@link TaskFilterState}.\n*/\nfunction readFromUrl(url) {\n\tconst p = url.searchParams;\n\tconst cancelledFlag = p.get(\"cancelled\") === \"1\";\n\tconst deferredFlag = p.get(\"deferred\") === \"1\";\n\tif (deferredFlag && !deferredWarningEmitted) {\n\t\tdeferredWarningEmitted = true;\n\t\tconsole.warn(\"[task-filters] ?deferred=1 is deprecated; use ?cancelled=1. Alias removal tracked by T958.\");\n\t}\n\tconst viewRaw = p.get(\"view\");\n\tconst view = viewRaw && isTaskView(viewRaw) ? viewRaw : DEFAULT_VIEW;\n\treturn {\n\t\tquery: p.get(\"q\") ?? \"\",\n\t\tstatus: parseCsv(p.get(\"status\"), isTaskStatus),\n\t\tpriority: parseCsv(p.get(\"priority\"), isTaskPriority),\n\t\tlabels: parseCsv(p.get(\"labels\"), isNonEmptyLabel),\n\t\tepic: p.get(\"epic\"),\n\t\tselected: p.get(\"selected\"),\n\t\tcancelled: cancelledFlag || deferredFlag,\n\t\tview\n\t};\n}\n/**\n* Apply a {@link TaskFilterState} onto a fresh {@link URL} and return it.\n*\n* - Empty values, empty arrays, default view, and `cancelled:false` all\n* result in the corresponding param being deleted (minimal URL).\n* - CSV arrays are serialized in source order — callers should ensure\n* stable ordering if they want idempotent round-trips (setters do).\n*\n* @param base - The URL to clone and mutate (typically `window.location`).\n* @param state - The filter state to serialize.\n* @returns A new {@link URL} instance with only the relevant params set.\n*/\nfunction writeToUrl(base, state) {\n\tconst next = new URL(base.toString());\n\tconst p = next.searchParams;\n\tp.delete(\"deferred\");\n\tsetOrDelete(p, \"q\", state.query || null);\n\tsetOrDelete(p, \"status\", state.status.length ? state.status.join(\",\") : null);\n\tsetOrDelete(p, \"priority\", state.priority.length ? state.priority.join(\",\") : null);\n\tsetOrDelete(p, \"labels\", state.labels.length ? state.labels.join(\",\") : null);\n\tsetOrDelete(p, \"epic\", state.epic);\n\tsetOrDelete(p, \"selected\", state.selected);\n\tsetOrDelete(p, \"cancelled\", state.cancelled ? \"1\" : null);\n\tsetOrDelete(p, \"view\", state.view === DEFAULT_VIEW ? null : state.view);\n\treturn next;\n}\n/** Write `value` to `params[key]` if non-null/non-empty, otherwise delete. */\nfunction setOrDelete(params, key, value) {\n\tif (value === null || value === \"\") params.delete(key);\n\telse params.set(key, value);\n}\n/**\n* Create a Task Explorer filter store bound to a URL.\n*\n* The initial state is parsed from `url`. Subsequent mutations both update\n* the reactive state and write the new query string to `window.history` via\n* `replaceState`. On `popstate` (browser back/forward), state is re-read from\n* `window.location` so filters stay in sync with navigation.\n*\n* Server-side / test environments without `window` skip the browser-specific\n* hookup but remain fully reactive in memory.\n*\n* @param url - The initial URL whose query string seeds the state.\n* @returns A {@link TaskFilters} handle exposing reactive state plus setters.\n*\n* @example\n* ```ts\n* const filters = createTaskFilters($page.url);\n* filters.setQuery('pomodoro');\n* filters.toggleStatus('active');\n* // URL is now /tasks?q=pomodoro&status=active\n* ```\n*/\nfunction createTaskFilters(url) {\n\tconst state = readFromUrl(url);\n\tlet queryDebounceTimer = null;\n\tlet popstateHandler = null;\n\t/**\n\t* Write the current state to `window.history`. Called after every mutation\n\t* (debounced for `setQuery`).\n\t*/\n\tfunction syncUrl() {\n\t\tif (typeof window === \"undefined\") return;\n\t\tconst next = writeToUrl(new URL(window.location.href), state);\n\t\tif (next.search !== window.location.search) window.history.replaceState(window.history.state, \"\", next.toString());\n\t}\n\t/** Schedule or coalesce a debounced `syncUrl` call for query updates. */\n\tfunction scheduleQuerySync() {\n\t\tif (typeof window === \"undefined\") return;\n\t\tif (queryDebounceTimer !== null) clearTimeout(queryDebounceTimer);\n\t\tqueryDebounceTimer = setTimeout(() => {\n\t\t\tqueryDebounceTimer = null;\n\t\t\tsyncUrl();\n\t\t}, QUERY_DEBOUNCE_MS);\n\t}\n\t/** Re-read state from `window.location` (popstate handler). */\n\tfunction readFromWindow() {\n\t\tif (typeof window === \"undefined\") return;\n\t\tconst fresh = readFromUrl(new URL(window.location.href));\n\t\tstate.query = fresh.query;\n\t\tstate.status = fresh.status;\n\t\tstate.priority = fresh.priority;\n\t\tstate.labels = fresh.labels;\n\t\tstate.epic = fresh.epic;\n\t\tstate.selected = fresh.selected;\n\t\tstate.cancelled = fresh.cancelled;\n\t\tstate.view = fresh.view;\n\t}\n\tif (typeof window !== \"undefined\") {\n\t\tpopstateHandler = readFromWindow;\n\t\twindow.addEventListener(\"popstate\", popstateHandler);\n\t}\n\t/** Toggle membership of `value` in `arr` (mutates in place; stable order). */\n\tfunction toggleIn(arr, value) {\n\t\tconst idx = arr.indexOf(value);\n\t\tif (idx === -1) return [...arr, value];\n\t\treturn [...arr.slice(0, idx), ...arr.slice(idx + 1)];\n\t}\n\treturn {\n\t\tget state() {\n\t\t\treturn state;\n\t\t},\n\t\tsetQuery(q) {\n\t\t\tstate.query = q;\n\t\t\tscheduleQuerySync();\n\t\t},\n\t\ttoggleStatus(s) {\n\t\t\tstate.status = toggleIn(state.status, s);\n\t\t\tsyncUrl();\n\t\t},\n\t\ttogglePriority(p) {\n\t\t\tstate.priority = toggleIn(state.priority, p);\n\t\t\tsyncUrl();\n\t\t},\n\t\ttoggleLabel(l) {\n\t\t\tstate.labels = toggleIn(state.labels, l);\n\t\t\tsyncUrl();\n\t\t},\n\t\tsetEpic(id) {\n\t\t\tstate.epic = id;\n\t\t\tsyncUrl();\n\t\t},\n\t\tsetSelected(id) {\n\t\t\tstate.selected = id;\n\t\t\tsyncUrl();\n\t\t},\n\t\tsetCancelled(v) {\n\t\t\tstate.cancelled = v;\n\t\t\tsyncUrl();\n\t\t},\n\t\tsetView(v) {\n\t\t\tstate.view = v;\n\t\t\tsyncUrl();\n\t\t},\n\t\tclear() {\n\t\t\tstate.query = \"\";\n\t\t\tstate.status = [];\n\t\t\tstate.priority = [];\n\t\t\tstate.labels = [];\n\t\t\tstate.epic = null;\n\t\t\tstate.selected = null;\n\t\t\tstate.cancelled = false;\n\t\t\tstate.view = DEFAULT_VIEW;\n\t\t\tif (queryDebounceTimer !== null) {\n\t\t\t\tclearTimeout(queryDebounceTimer);\n\t\t\t\tqueryDebounceTimer = null;\n\t\t\t}\n\t\t\tsyncUrl();\n\t\t},\n\t\tdispose() {\n\t\t\tif (queryDebounceTimer !== null) {\n\t\t\t\tclearTimeout(queryDebounceTimer);\n\t\t\t\tqueryDebounceTimer = null;\n\t\t\t}\n\t\t\tif (popstateHandler !== null && typeof window !== \"undefined\") {\n\t\t\t\twindow.removeEventListener(\"popstate\", popstateHandler);\n\t\t\t\tpopstateHandler = null;\n\t\t\t}\n\t\t}\n\t};\n}\n//#endregion\n//#region src/routes/tasks/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tvar $$store_subs;\n\t\tlet { data } = $$props;\n\t\tconst stats = derived(() => data.stats);\n\t\tconst recentTasks = derived(() => data.recentTasks ?? []);\n\t\tconst epicProgress = derived(() => data.epicProgress ?? []);\n\t\tconst dashboardFilters = derived(() => data.filters ?? {\n\t\t\tshowCancelled: false,\n\t\t\tshowArchived: false\n\t\t});\n\t\t/**\n\t\t* Build a toggle URL that flips one dashboard filter flag while preserving\n\t\t* the other.\n\t\t*/\n\t\tfunction toggleUrl(flag) {\n\t\t\tconst next = new URL(store_get($$store_subs ??= {}, \"$page\", page).url);\n\t\t\tif (next.searchParams.get(flag) === \"1\") next.searchParams.delete(flag);\n\t\t\telse next.searchParams.set(flag, \"1\");\n\t\t\tif (flag === \"cancelled\") next.searchParams.delete(\"deferred\");\n\t\t\treturn next.pathname + (next.search ? next.search : \"\");\n\t\t}\n\t\tlet filters = createTaskFilters(new URL(store_get($$store_subs ??= {}, \"$page\", page).url));\n\t\tconst explorerTasks = derived(() => data.explorer?.tasks ?? []);\n\t\tconst explorerDeps = derived(() => data.explorer?.deps ?? []);\n\t\tconst explorerLabels = derived(() => data.explorer?.labels ?? []);\n\t\tconst explorerEpicProgressMap = derived(() => data.explorer?.epicProgress ?? {});\n\t\tconst selectedTask = derived(() => (() => {\n\t\t\tif (!filters) return null;\n\t\t\tconst id = filters.state.selected;\n\t\t\tif (!id) return null;\n\t\t\treturn explorerTasks().find((t) => t.id === id) ?? null;\n\t\t})());\n\t\tconst statusOptions = [\n\t\t\t{\n\t\t\t\tvalue: \"pending\",\n\t\t\t\tlabel: \"Pending\",\n\t\t\t\ttint: \"var(--status-pending)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"active\",\n\t\t\t\tlabel: \"Active\",\n\t\t\t\ttint: \"var(--status-active)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"blocked\",\n\t\t\t\tlabel: \"Blocked\",\n\t\t\t\ttint: \"var(--status-blocked)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"done\",\n\t\t\t\tlabel: \"Done\",\n\t\t\t\ttint: \"var(--status-done)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"cancelled\",\n\t\t\t\tlabel: \"Cancelled\",\n\t\t\t\ttint: \"var(--status-cancelled)\"\n\t\t\t}\n\t\t];\n\t\tconst priorityOptions = [\n\t\t\t{\n\t\t\t\tvalue: \"critical\",\n\t\t\t\tlabel: \"Critical\",\n\t\t\t\ttint: \"var(--priority-critical)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"high\",\n\t\t\t\tlabel: \"High\",\n\t\t\t\ttint: \"var(--priority-high)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"medium\",\n\t\t\t\tlabel: \"Medium\",\n\t\t\t\ttint: \"var(--priority-medium)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"low\",\n\t\t\t\tlabel: \"Low\",\n\t\t\t\ttint: \"var(--priority-low)\"\n\t\t\t}\n\t\t];\n\t\tconst labelOptions = derived(() => explorerLabels().map((label) => ({\n\t\t\tvalue: label,\n\t\t\tlabel\n\t\t})));\n\t\tfunction diffAndToggle(before, after, toggle) {\n\t\t\tconst beforeSet = new Set(before);\n\t\t\tconst afterSet = new Set(after);\n\t\t\tfor (const v of beforeSet) if (!afterSet.has(v)) toggle(v);\n\t\t\tfor (const v of afterSet) if (!beforeSet.has(v)) toggle(v);\n\t\t}\n\t\tlet searchRaw = \"\";\n\t\tlet searchLoading = false;\n\t\tfunction priorityClassLocal(p) {\n\t\t\tif (p === \"critical\") return \"priority-critical\";\n\t\t\tif (p === \"high\") return \"priority-high\";\n\t\t\tif (p === \"medium\") return \"priority-medium\";\n\t\t\treturn \"priority-low\";\n\t\t}\n\t\tlet liveConnected = false;\n\t\thead(\"1pluywh\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Tasks — CLEO Studio</title>`);\n\t\t\t});\n\t\t});\n\t\t$$renderer.push(`<div class=\"tasks-page svelte-1pluywh\"><div class=\"page-header svelte-1pluywh\"><div class=\"header-left svelte-1pluywh\"><h1 class=\"page-title svelte-1pluywh\">Tasks</h1> <nav class=\"tasks-nav svelte-1pluywh\"><a href=\"/tasks\" class=\"nav-tab active svelte-1pluywh\">Dashboard</a> <a href=\"/tasks/pipeline\" class=\"nav-tab svelte-1pluywh\">Pipeline</a> <a href=\"/tasks/sessions\" class=\"nav-tab svelte-1pluywh\">Sessions</a></nav></div> <div${attr_class(\"live-indicator svelte-1pluywh\", void 0, { \"connected\": liveConnected })}><span class=\"live-dot svelte-1pluywh\"></span> <span class=\"live-label svelte-1pluywh\">${escape_html(\"Connecting...\")}</span> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div></div> <div class=\"search-section svelte-1pluywh\"><div${attr_class(\"search-box svelte-1pluywh\", void 0, { \"loading\": searchLoading })}><span class=\"search-icon svelte-1pluywh\" aria-hidden=\"true\">⌕</span> <input class=\"search-input svelte-1pluywh\" type=\"text\" placeholder=\"Search by ID (T663, t663, 663) or title...\"${attr(\"value\", searchRaw)} autocomplete=\"off\" spellcheck=\"false\"/> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> `);\n\t\tif (filters) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<div class=\"command-surface svelte-1pluywh\"><section class=\"task-explorer svelte-1pluywh\" aria-label=\"Task Explorer\"><header class=\"explorer-header svelte-1pluywh\"><div class=\"tabs svelte-1pluywh\" role=\"tablist\" aria-label=\"Task Explorer views\"><button type=\"button\"${attr_class(\"tab svelte-1pluywh\", void 0, { \"active\": filters.state.view === \"hierarchy\" })} role=\"tab\"${attr(\"aria-selected\", filters.state.view === \"hierarchy\")}><span class=\"tab-key svelte-1pluywh\" aria-hidden=\"true\">1</span> Hierarchy</button> <button type=\"button\"${attr_class(\"tab svelte-1pluywh\", void 0, { \"active\": filters.state.view === \"graph\" })} role=\"tab\"${attr(\"aria-selected\", filters.state.view === \"graph\")}><span class=\"tab-key svelte-1pluywh\" aria-hidden=\"true\">2</span> Graph</button> <button type=\"button\"${attr_class(\"tab svelte-1pluywh\", void 0, { \"active\": filters.state.view === \"kanban\" })} role=\"tab\"${attr(\"aria-selected\", filters.state.view === \"kanban\")}><span class=\"tab-key svelte-1pluywh\" aria-hidden=\"true\">3</span> Kanban</button></div> <div class=\"toolbar svelte-1pluywh\">`);\n\t\t\tTaskSearchBox($$renderer, {\n\t\t\t\tvalue: filters.state.query,\n\t\t\t\tonChange: (q) => filters?.setQuery(q),\n\t\t\t\tplaceholder: \"Filter explorer by id or title...\",\n\t\t\t\tregisterSlashShortcut: true\n\t\t\t});\n\t\t\t$$renderer.push(`<!----> `);\n\t\t\tFilterChipGroup($$renderer, {\n\t\t\t\tlabel: \"Status\",\n\t\t\t\toptions: statusOptions,\n\t\t\t\tselected: filters.state.status,\n\t\t\t\tonChange: (next) => {\n\t\t\t\t\tif (!filters) return;\n\t\t\t\t\tdiffAndToggle(filters.state.status, next, (v) => filters?.toggleStatus(v));\n\t\t\t\t}\n\t\t\t});\n\t\t\t$$renderer.push(`<!----> `);\n\t\t\tFilterChipGroup($$renderer, {\n\t\t\t\tlabel: \"Priority\",\n\t\t\t\toptions: priorityOptions,\n\t\t\t\tselected: filters.state.priority,\n\t\t\t\tonChange: (next) => {\n\t\t\t\t\tif (!filters) return;\n\t\t\t\t\tdiffAndToggle(filters.state.priority, next, (v) => filters?.togglePriority(v));\n\t\t\t\t}\n\t\t\t});\n\t\t\t$$renderer.push(`<!----> `);\n\t\t\tif (labelOptions().length > 0) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\tLabelsFilter($$renderer, {\n\t\t\t\t\toptions: labelOptions(),\n\t\t\t\t\tselected: filters.state.labels,\n\t\t\t\t\tonChange: (next) => {\n\t\t\t\t\t\tif (!filters) return;\n\t\t\t\t\t\tdiffAndToggle(filters.state.labels, next, (v) => filters?.toggleLabel(v));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></div></header> <div class=\"explorer-body svelte-1pluywh\">`);\n\t\t\tif (filters.state.view === \"hierarchy\") {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\tHierarchyTab($$renderer, {\n\t\t\t\t\ttasks: explorerTasks(),\n\t\t\t\t\tdeps: explorerDeps(),\n\t\t\t\t\tepicProgress: explorerEpicProgressMap(),\n\t\t\t\t\tfilters\n\t\t\t\t});\n\t\t\t} else if (filters.state.view === \"graph\") {\n\t\t\t\t$$renderer.push(\"<!--[1-->\");\n\t\t\t\tGraphTab($$renderer, {\n\t\t\t\t\ttasks: explorerTasks(),\n\t\t\t\t\tdeps: explorerDeps(),\n\t\t\t\t\tfilters,\n\t\t\t\t\tlabels: explorerLabels(),\n\t\t\t\t\tactiveProjectId: store_get($$store_subs ??= {}, \"$page\", page).data.activeProjectId ?? null\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t\tKanbanTab($$renderer, {\n\t\t\t\t\ttasks: explorerTasks(),\n\t\t\t\t\tdeps: explorerDeps(),\n\t\t\t\t\tfilters\n\t\t\t\t});\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></div></section> <aside class=\"side-rail svelte-1pluywh\" aria-label=\"Dashboard summary\">`);\n\t\t\tif (stats()) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<section class=\"rail-card svelte-1pluywh\" aria-label=\"Task counts\"><header class=\"rail-head svelte-1pluywh\"><span class=\"rail-eyebrow svelte-1pluywh\">Overview</span> <span class=\"rail-total svelte-1pluywh\">${escape_html(stats().total)} <span class=\"rail-total-lbl svelte-1pluywh\">tasks</span></span></header> <div class=\"stat-grid svelte-1pluywh\"><span class=\"stat-card status-active-card svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().active)}</span> <span class=\"stat-lbl svelte-1pluywh\">Active</span></span> <span class=\"stat-card svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().pending)}</span> <span class=\"stat-lbl svelte-1pluywh\">Pending</span></span> <span class=\"stat-card status-done-card svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().done)}</span> <span class=\"stat-lbl svelte-1pluywh\">Done</span></span> <span class=\"stat-card status-cancelled-card svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().cancelled)}</span> <span class=\"stat-lbl svelte-1pluywh\">Cancelled</span></span> <span class=\"stat-card muted svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().archived)}</span> <span class=\"stat-lbl svelte-1pluywh\">Archived</span></span></div> <div class=\"priority-block svelte-1pluywh\"><div class=\"section-label svelte-1pluywh\">Priority</div> <div class=\"priority-bars svelte-1pluywh\"><!--[-->`);\n\t\t\t\tconst each_array_1 = ensure_array_like([\n\t\t\t\t\t[\"critical\", stats().critical],\n\t\t\t\t\t[\"high\", stats().high],\n\t\t\t\t\t[\"medium\", stats().medium],\n\t\t\t\t\t[\"low\", stats().low]\n\t\t\t\t]);\n\t\t\t\tfor (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n\t\t\t\t\tlet [label, count] = each_array_1[$$index_1];\n\t\t\t\t\tconst total = stats().critical + stats().high + stats().medium + stats().low;\n\t\t\t\t\tconst pct = total > 0 ? Math.round(Number(count) / total * 100) : 0;\n\t\t\t\t\t$$renderer.push(`<div class=\"priority-row svelte-1pluywh\"><span${attr_class(`priority-label ${stringify(priorityClassLocal(String(label)))}`, \"svelte-1pluywh\")}>${escape_html(label)}</span> <div class=\"priority-bar-track svelte-1pluywh\"><div${attr_class(`priority-bar-fill ${stringify(priorityClassLocal(String(label)))}`, \"svelte-1pluywh\")}${attr_style(`width:${stringify(pct)}%`)}></div></div> <span class=\"priority-count svelte-1pluywh\">${escape_html(count)}</span></div>`);\n\t\t\t\t}\n\t\t\t\t$$renderer.push(`<!--]--></div></div> <div class=\"type-block svelte-1pluywh\"><div class=\"section-label svelte-1pluywh\">Type</div> <div class=\"type-chips svelte-1pluywh\"><span class=\"type-chip svelte-1pluywh\">Epics <strong class=\"svelte-1pluywh\">${escape_html(stats().epics)}</strong></span> <span class=\"type-chip svelte-1pluywh\">Tasks <strong class=\"svelte-1pluywh\">${escape_html(stats().tasks)}</strong></span> <span class=\"type-chip svelte-1pluywh\">Subtasks <strong class=\"svelte-1pluywh\">${escape_html(stats().subtasks)}</strong></span></div></div> <div class=\"filter-bar svelte-1pluywh\" aria-label=\"Dashboard filters\"><a${attr(\"href\", toggleUrl(\"cancelled\"))}${attr_class(\"filter-chip svelte-1pluywh\", void 0, { \"active\": dashboardFilters().showCancelled })} data-sveltekit-noscroll=\"\" title=\"Include cancelled epics in the Epic Progress panel\"><span class=\"chip-check svelte-1pluywh\">${escape_html(dashboardFilters().showCancelled ? \"✓\" : \" \")}</span> Cancelled epics</a> <a${attr(\"href\", toggleUrl(\"archived\"))}${attr_class(\"filter-chip svelte-1pluywh\", void 0, { \"active\": dashboardFilters().showArchived })} data-sveltekit-noscroll=\"\" title=\"Include archived tasks in Recent Activity\"><span class=\"chip-check svelte-1pluywh\">${escape_html(dashboardFilters().showArchived ? \"✓\" : \" \")}</span> Archived</a></div></section>`);\n\t\t\t} else {\n\t\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<div class=\"no-db svelte-1pluywh\">tasks.db not found — start CLEO in the project directory</div>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (epicProgress().length > 0) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\tEpicProgressCard($$renderer, {\n\t\t\t\t\tepics: epicProgress(),\n\t\t\t\t\tincludingDeferred: dashboardFilters().showCancelled\n\t\t\t\t});\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (recentTasks().length > 0) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\tRecentActivityFeed($$renderer, { tasks: recentTasks() });\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></aside></div> `);\n\t\t\tDetailDrawer($$renderer, {\n\t\t\t\ttask: selectedTask(),\n\t\t\t\tonClose: () => filters?.setSelected(null)\n\t\t\t});\n\t\t\t$$renderer.push(`<!---->`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div>`);\n\t\tif ($$store_subs) unsubscribe_stores($$store_subs);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"_page.svelte-wP5RBhY9.js","sources":["../../../.svelte-kit/adapter-node/entries/pages/tasks/_page.svelte.js"],"sourcesContent":["import { U as escape_html, V as attr, a as derived, d as unsubscribe_stores, l as store_get, n as attr_class, o as ensure_array_like, r as attr_style, s as head, u as stringify } from \"../../../chunks/dev.js\";\nimport \"../../../chunks/index-server.js\";\nimport { Dt as TASK_STATUSES } from \"../../../chunks/dist2.js\";\nimport { t as page } from \"../../../chunks/stores.js\";\nimport \"../../../chunks/navigation.js\";\nimport { a as KanbanTab, c as GraphTab, d as DetailDrawer, i as LabelsFilter, l as FilterChipGroup, n as TaskSearchBox, r as RecentActivityFeed, s as HierarchyTab, u as EpicProgressCard } from \"../../../chunks/tasks2.js\";\n//#region src/lib/stores/task-filters.svelte.ts\nvar DEFAULT_VIEW = \"hierarchy\";\nvar VALID_VIEWS = new Set([\n\t\"hierarchy\",\n\t\"graph\",\n\t\"kanban\"\n]);\nvar VALID_PRIORITIES = new Set([\n\t\"critical\",\n\t\"high\",\n\t\"medium\",\n\t\"low\"\n]);\nvar QUERY_DEBOUNCE_MS = 150;\nvar deferredWarningEmitted = false;\nfunction parseCsv(raw, validate) {\n\tif (!raw) return [];\n\tconst tokens = raw.split(\",\").map((t) => t.trim()).filter((t) => t.length > 0);\n\tconst out = [];\n\tconst seen = /* @__PURE__ */ new Set();\n\tfor (const t of tokens) if (validate(t) && !seen.has(t)) {\n\t\tout.push(t);\n\t\tseen.add(t);\n\t}\n\treturn out;\n}\n/** Type-guard for {@link TaskStatus}. */\nfunction isTaskStatus(v) {\n\treturn TASK_STATUSES.includes(v);\n}\n/** Type-guard for {@link TaskPriority}. */\nfunction isTaskPriority(v) {\n\treturn VALID_PRIORITIES.has(v);\n}\n/** Type-guard for {@link TaskView}. */\nfunction isTaskView(v) {\n\treturn VALID_VIEWS.has(v);\n}\n/** Pass-through validator for free-form label names (non-empty tokens). */\nfunction isNonEmptyLabel(v) {\n\treturn v.length > 0;\n}\n/**\n* Read a {@link TaskFilterState} from a {@link URL}.\n*\n* Honours the legacy `?deferred=1` alias for `?cancelled=1` and emits a\n* one-time `console.warn` the first time the alias is encountered.\n*\n* @param url - The URL to parse.\n* @returns A fresh {@link TaskFilterState}.\n*/\nfunction readFromUrl(url) {\n\tconst p = url.searchParams;\n\tconst cancelledFlag = p.get(\"cancelled\") === \"1\";\n\tconst deferredFlag = p.get(\"deferred\") === \"1\";\n\tif (deferredFlag && !deferredWarningEmitted) {\n\t\tdeferredWarningEmitted = true;\n\t\tconsole.warn(\"[task-filters] ?deferred=1 is deprecated; use ?cancelled=1. Alias removal tracked by T958.\");\n\t}\n\tconst viewRaw = p.get(\"view\");\n\tconst view = viewRaw && isTaskView(viewRaw) ? viewRaw : DEFAULT_VIEW;\n\treturn {\n\t\tquery: p.get(\"q\") ?? \"\",\n\t\tstatus: parseCsv(p.get(\"status\"), isTaskStatus),\n\t\tpriority: parseCsv(p.get(\"priority\"), isTaskPriority),\n\t\tlabels: parseCsv(p.get(\"labels\"), isNonEmptyLabel),\n\t\tepic: p.get(\"epic\"),\n\t\tselected: p.get(\"selected\"),\n\t\tcancelled: cancelledFlag || deferredFlag,\n\t\tview\n\t};\n}\n/**\n* Apply a {@link TaskFilterState} onto a fresh {@link URL} and return it.\n*\n* - Empty values, empty arrays, default view, and `cancelled:false` all\n* result in the corresponding param being deleted (minimal URL).\n* - CSV arrays are serialized in source order — callers should ensure\n* stable ordering if they want idempotent round-trips (setters do).\n*\n* @param base - The URL to clone and mutate (typically `window.location`).\n* @param state - The filter state to serialize.\n* @returns A new {@link URL} instance with only the relevant params set.\n*/\nfunction writeToUrl(base, state) {\n\tconst next = new URL(base.toString());\n\tconst p = next.searchParams;\n\tp.delete(\"deferred\");\n\tsetOrDelete(p, \"q\", state.query || null);\n\tsetOrDelete(p, \"status\", state.status.length ? state.status.join(\",\") : null);\n\tsetOrDelete(p, \"priority\", state.priority.length ? state.priority.join(\",\") : null);\n\tsetOrDelete(p, \"labels\", state.labels.length ? state.labels.join(\",\") : null);\n\tsetOrDelete(p, \"epic\", state.epic);\n\tsetOrDelete(p, \"selected\", state.selected);\n\tsetOrDelete(p, \"cancelled\", state.cancelled ? \"1\" : null);\n\tsetOrDelete(p, \"view\", state.view === DEFAULT_VIEW ? null : state.view);\n\treturn next;\n}\n/** Write `value` to `params[key]` if non-null/non-empty, otherwise delete. */\nfunction setOrDelete(params, key, value) {\n\tif (value === null || value === \"\") params.delete(key);\n\telse params.set(key, value);\n}\n/**\n* Create a Task Explorer filter store bound to a URL.\n*\n* The initial state is parsed from `url`. Subsequent mutations both update\n* the reactive state and write the new query string to `window.history` via\n* `replaceState`. On `popstate` (browser back/forward), state is re-read from\n* `window.location` so filters stay in sync with navigation.\n*\n* Server-side / test environments without `window` skip the browser-specific\n* hookup but remain fully reactive in memory.\n*\n* @param url - The initial URL whose query string seeds the state.\n* @returns A {@link TaskFilters} handle exposing reactive state plus setters.\n*\n* @example\n* ```ts\n* const filters = createTaskFilters($page.url);\n* filters.setQuery('pomodoro');\n* filters.toggleStatus('active');\n* // URL is now /tasks?q=pomodoro&status=active\n* ```\n*/\nfunction createTaskFilters(url) {\n\tconst state = readFromUrl(url);\n\tlet queryDebounceTimer = null;\n\tlet popstateHandler = null;\n\t/**\n\t* Write the current state to `window.history`. Called after every mutation\n\t* (debounced for `setQuery`).\n\t*/\n\tfunction syncUrl() {\n\t\tif (typeof window === \"undefined\") return;\n\t\tconst next = writeToUrl(new URL(window.location.href), state);\n\t\tif (next.search !== window.location.search) window.history.replaceState(window.history.state, \"\", next.toString());\n\t}\n\t/** Schedule or coalesce a debounced `syncUrl` call for query updates. */\n\tfunction scheduleQuerySync() {\n\t\tif (typeof window === \"undefined\") return;\n\t\tif (queryDebounceTimer !== null) clearTimeout(queryDebounceTimer);\n\t\tqueryDebounceTimer = setTimeout(() => {\n\t\t\tqueryDebounceTimer = null;\n\t\t\tsyncUrl();\n\t\t}, QUERY_DEBOUNCE_MS);\n\t}\n\t/** Re-read state from `window.location` (popstate handler). */\n\tfunction readFromWindow() {\n\t\tif (typeof window === \"undefined\") return;\n\t\tconst fresh = readFromUrl(new URL(window.location.href));\n\t\tstate.query = fresh.query;\n\t\tstate.status = fresh.status;\n\t\tstate.priority = fresh.priority;\n\t\tstate.labels = fresh.labels;\n\t\tstate.epic = fresh.epic;\n\t\tstate.selected = fresh.selected;\n\t\tstate.cancelled = fresh.cancelled;\n\t\tstate.view = fresh.view;\n\t}\n\tif (typeof window !== \"undefined\") {\n\t\tpopstateHandler = readFromWindow;\n\t\twindow.addEventListener(\"popstate\", popstateHandler);\n\t}\n\t/** Toggle membership of `value` in `arr` (mutates in place; stable order). */\n\tfunction toggleIn(arr, value) {\n\t\tconst idx = arr.indexOf(value);\n\t\tif (idx === -1) return [...arr, value];\n\t\treturn [...arr.slice(0, idx), ...arr.slice(idx + 1)];\n\t}\n\treturn {\n\t\tget state() {\n\t\t\treturn state;\n\t\t},\n\t\tsetQuery(q) {\n\t\t\tstate.query = q;\n\t\t\tscheduleQuerySync();\n\t\t},\n\t\ttoggleStatus(s) {\n\t\t\tstate.status = toggleIn(state.status, s);\n\t\t\tsyncUrl();\n\t\t},\n\t\ttogglePriority(p) {\n\t\t\tstate.priority = toggleIn(state.priority, p);\n\t\t\tsyncUrl();\n\t\t},\n\t\ttoggleLabel(l) {\n\t\t\tstate.labels = toggleIn(state.labels, l);\n\t\t\tsyncUrl();\n\t\t},\n\t\tsetEpic(id) {\n\t\t\tstate.epic = id;\n\t\t\tsyncUrl();\n\t\t},\n\t\tsetSelected(id) {\n\t\t\tstate.selected = id;\n\t\t\tsyncUrl();\n\t\t},\n\t\tsetCancelled(v) {\n\t\t\tstate.cancelled = v;\n\t\t\tsyncUrl();\n\t\t},\n\t\tsetView(v) {\n\t\t\tstate.view = v;\n\t\t\tsyncUrl();\n\t\t},\n\t\tclear() {\n\t\t\tstate.query = \"\";\n\t\t\tstate.status = [];\n\t\t\tstate.priority = [];\n\t\t\tstate.labels = [];\n\t\t\tstate.epic = null;\n\t\t\tstate.selected = null;\n\t\t\tstate.cancelled = false;\n\t\t\tstate.view = DEFAULT_VIEW;\n\t\t\tif (queryDebounceTimer !== null) {\n\t\t\t\tclearTimeout(queryDebounceTimer);\n\t\t\t\tqueryDebounceTimer = null;\n\t\t\t}\n\t\t\tsyncUrl();\n\t\t},\n\t\tdispose() {\n\t\t\tif (queryDebounceTimer !== null) {\n\t\t\t\tclearTimeout(queryDebounceTimer);\n\t\t\t\tqueryDebounceTimer = null;\n\t\t\t}\n\t\t\tif (popstateHandler !== null && typeof window !== \"undefined\") {\n\t\t\t\twindow.removeEventListener(\"popstate\", popstateHandler);\n\t\t\t\tpopstateHandler = null;\n\t\t\t}\n\t\t}\n\t};\n}\n//#endregion\n//#region src/routes/tasks/+page.svelte\nfunction _page($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\tvar $$store_subs;\n\t\tlet { data } = $$props;\n\t\tconst stats = derived(() => data.stats);\n\t\tconst recentTasks = derived(() => data.recentTasks ?? []);\n\t\tconst epicProgress = derived(() => data.epicProgress ?? []);\n\t\tconst dashboardFilters = derived(() => data.filters ?? {\n\t\t\tshowCancelled: false,\n\t\t\tshowArchived: false\n\t\t});\n\t\t/**\n\t\t* Build a toggle URL that flips one dashboard filter flag while preserving\n\t\t* the other.\n\t\t*/\n\t\tfunction toggleUrl(flag) {\n\t\t\tconst next = new URL(store_get($$store_subs ??= {}, \"$page\", page).url);\n\t\t\tif (next.searchParams.get(flag) === \"1\") next.searchParams.delete(flag);\n\t\t\telse next.searchParams.set(flag, \"1\");\n\t\t\tif (flag === \"cancelled\") next.searchParams.delete(\"deferred\");\n\t\t\treturn next.pathname + (next.search ? next.search : \"\");\n\t\t}\n\t\tlet filters = createTaskFilters(new URL(store_get($$store_subs ??= {}, \"$page\", page).url));\n\t\tconst explorerTasks = derived(() => data.explorer?.tasks ?? []);\n\t\tconst explorerDeps = derived(() => data.explorer?.deps ?? []);\n\t\tconst explorerLabels = derived(() => data.explorer?.labels ?? []);\n\t\tconst explorerEpicProgressMap = derived(() => data.explorer?.epicProgress ?? {});\n\t\tconst selectedTask = derived(() => (() => {\n\t\t\tif (!filters) return null;\n\t\t\tconst id = filters.state.selected;\n\t\t\tif (!id) return null;\n\t\t\treturn explorerTasks().find((t) => t.id === id) ?? null;\n\t\t})());\n\t\tconst statusOptions = [\n\t\t\t{\n\t\t\t\tvalue: \"pending\",\n\t\t\t\tlabel: \"Pending\",\n\t\t\t\ttint: \"var(--status-pending)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"active\",\n\t\t\t\tlabel: \"Active\",\n\t\t\t\ttint: \"var(--status-active)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"blocked\",\n\t\t\t\tlabel: \"Blocked\",\n\t\t\t\ttint: \"var(--status-blocked)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"done\",\n\t\t\t\tlabel: \"Done\",\n\t\t\t\ttint: \"var(--status-done)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"cancelled\",\n\t\t\t\tlabel: \"Cancelled\",\n\t\t\t\ttint: \"var(--status-cancelled)\"\n\t\t\t}\n\t\t];\n\t\tconst priorityOptions = [\n\t\t\t{\n\t\t\t\tvalue: \"critical\",\n\t\t\t\tlabel: \"Critical\",\n\t\t\t\ttint: \"var(--priority-critical)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"high\",\n\t\t\t\tlabel: \"High\",\n\t\t\t\ttint: \"var(--priority-high)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"medium\",\n\t\t\t\tlabel: \"Medium\",\n\t\t\t\ttint: \"var(--priority-medium)\"\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: \"low\",\n\t\t\t\tlabel: \"Low\",\n\t\t\t\ttint: \"var(--priority-low)\"\n\t\t\t}\n\t\t];\n\t\tconst labelOptions = derived(() => explorerLabels().map((label) => ({\n\t\t\tvalue: label,\n\t\t\tlabel\n\t\t})));\n\t\tfunction diffAndToggle(before, after, toggle) {\n\t\t\tconst beforeSet = new Set(before);\n\t\t\tconst afterSet = new Set(after);\n\t\t\tfor (const v of beforeSet) if (!afterSet.has(v)) toggle(v);\n\t\t\tfor (const v of afterSet) if (!beforeSet.has(v)) toggle(v);\n\t\t}\n\t\tlet searchRaw = \"\";\n\t\tlet searchLoading = false;\n\t\tfunction priorityClassLocal(p) {\n\t\t\tif (p === \"critical\") return \"priority-critical\";\n\t\t\tif (p === \"high\") return \"priority-high\";\n\t\t\tif (p === \"medium\") return \"priority-medium\";\n\t\t\treturn \"priority-low\";\n\t\t}\n\t\tlet liveConnected = false;\n\t\thead(\"1pluywh\", $$renderer, ($$renderer) => {\n\t\t\t$$renderer.title(($$renderer) => {\n\t\t\t\t$$renderer.push(`<title>Tasks — CLEO Studio</title>`);\n\t\t\t});\n\t\t});\n\t\t$$renderer.push(`<div class=\"tasks-page svelte-1pluywh\"><div class=\"page-header svelte-1pluywh\"><div class=\"header-left svelte-1pluywh\"><h1 class=\"page-title svelte-1pluywh\">Tasks</h1> <nav class=\"tasks-nav svelte-1pluywh\"><a href=\"/tasks\" class=\"nav-tab active svelte-1pluywh\">Dashboard</a> <a href=\"/tasks/pipeline\" class=\"nav-tab svelte-1pluywh\">Pipeline</a> <a href=\"/tasks/sessions\" class=\"nav-tab svelte-1pluywh\">Sessions</a></nav></div> <div${attr_class(\"live-indicator svelte-1pluywh\", void 0, { \"connected\": liveConnected })}><span class=\"live-dot svelte-1pluywh\"></span> <span class=\"live-label svelte-1pluywh\">${escape_html(\"Connecting...\")}</span> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div></div> <div class=\"search-section svelte-1pluywh\"><div${attr_class(\"search-box svelte-1pluywh\", void 0, { \"loading\": searchLoading })}><span class=\"search-icon svelte-1pluywh\" aria-hidden=\"true\">⌕</span> <input class=\"search-input svelte-1pluywh\" type=\"text\" placeholder=\"Search by ID (T663, t663, 663) or title...\"${attr(\"value\", searchRaw)} autocomplete=\"off\" spellcheck=\"false\"/> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div> `);\n\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--> `);\n\t\tif (filters) {\n\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t$$renderer.push(`<div class=\"command-surface svelte-1pluywh\"><section class=\"task-explorer svelte-1pluywh\" aria-label=\"Task Explorer\"><header class=\"explorer-header svelte-1pluywh\"><div class=\"tabs svelte-1pluywh\" role=\"tablist\" aria-label=\"Task Explorer views\"><button type=\"button\"${attr_class(\"tab svelte-1pluywh\", void 0, { \"active\": filters.state.view === \"hierarchy\" })} role=\"tab\"${attr(\"aria-selected\", filters.state.view === \"hierarchy\")}><span class=\"tab-key svelte-1pluywh\" aria-hidden=\"true\">1</span> Hierarchy</button> <button type=\"button\"${attr_class(\"tab svelte-1pluywh\", void 0, { \"active\": filters.state.view === \"graph\" })} role=\"tab\"${attr(\"aria-selected\", filters.state.view === \"graph\")}><span class=\"tab-key svelte-1pluywh\" aria-hidden=\"true\">2</span> Graph</button> <button type=\"button\"${attr_class(\"tab svelte-1pluywh\", void 0, { \"active\": filters.state.view === \"kanban\" })} role=\"tab\"${attr(\"aria-selected\", filters.state.view === \"kanban\")}><span class=\"tab-key svelte-1pluywh\" aria-hidden=\"true\">3</span> Kanban</button></div> <div class=\"toolbar svelte-1pluywh\">`);\n\t\t\tTaskSearchBox($$renderer, {\n\t\t\t\tvalue: filters.state.query,\n\t\t\t\tonChange: (q) => filters?.setQuery(q),\n\t\t\t\tplaceholder: \"Filter explorer by id or title...\",\n\t\t\t\tregisterSlashShortcut: true\n\t\t\t});\n\t\t\t$$renderer.push(`<!----> `);\n\t\t\tFilterChipGroup($$renderer, {\n\t\t\t\tlabel: \"Status\",\n\t\t\t\toptions: statusOptions,\n\t\t\t\tselected: filters.state.status,\n\t\t\t\tonChange: (next) => {\n\t\t\t\t\tif (!filters) return;\n\t\t\t\t\tdiffAndToggle(filters.state.status, next, (v) => filters?.toggleStatus(v));\n\t\t\t\t}\n\t\t\t});\n\t\t\t$$renderer.push(`<!----> `);\n\t\t\tFilterChipGroup($$renderer, {\n\t\t\t\tlabel: \"Priority\",\n\t\t\t\toptions: priorityOptions,\n\t\t\t\tselected: filters.state.priority,\n\t\t\t\tonChange: (next) => {\n\t\t\t\t\tif (!filters) return;\n\t\t\t\t\tdiffAndToggle(filters.state.priority, next, (v) => filters?.togglePriority(v));\n\t\t\t\t}\n\t\t\t});\n\t\t\t$$renderer.push(`<!----> `);\n\t\t\tif (labelOptions().length > 0) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\tLabelsFilter($$renderer, {\n\t\t\t\t\toptions: labelOptions(),\n\t\t\t\t\tselected: filters.state.labels,\n\t\t\t\t\tonChange: (next) => {\n\t\t\t\t\t\tif (!filters) return;\n\t\t\t\t\t\tdiffAndToggle(filters.state.labels, next, (v) => filters?.toggleLabel(v));\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></div></header> <div class=\"explorer-body svelte-1pluywh\">`);\n\t\t\tif (filters.state.view === \"hierarchy\") {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\tHierarchyTab($$renderer, {\n\t\t\t\t\ttasks: explorerTasks(),\n\t\t\t\t\tdeps: explorerDeps(),\n\t\t\t\t\tepicProgress: explorerEpicProgressMap(),\n\t\t\t\t\tfilters\n\t\t\t\t});\n\t\t\t} else if (filters.state.view === \"graph\") {\n\t\t\t\t$$renderer.push(\"<!--[1-->\");\n\t\t\t\tGraphTab($$renderer, {\n\t\t\t\t\ttasks: explorerTasks(),\n\t\t\t\t\tdeps: explorerDeps(),\n\t\t\t\t\tfilters,\n\t\t\t\t\tlabels: explorerLabels(),\n\t\t\t\t\tactiveProjectId: store_get($$store_subs ??= {}, \"$page\", page).data.activeProjectId ?? null\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t\tKanbanTab($$renderer, {\n\t\t\t\t\ttasks: explorerTasks(),\n\t\t\t\t\tdeps: explorerDeps(),\n\t\t\t\t\tfilters\n\t\t\t\t});\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--></div></section> <aside class=\"side-rail svelte-1pluywh\" aria-label=\"Dashboard summary\">`);\n\t\t\tif (stats()) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\t$$renderer.push(`<section class=\"rail-card svelte-1pluywh\" aria-label=\"Task counts\"><header class=\"rail-head svelte-1pluywh\"><span class=\"rail-eyebrow svelte-1pluywh\">Overview</span> <span class=\"rail-total svelte-1pluywh\">${escape_html(stats().total)} <span class=\"rail-total-lbl svelte-1pluywh\">tasks</span></span></header> <div class=\"stat-grid svelte-1pluywh\"><span class=\"stat-card status-active-card svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().active)}</span> <span class=\"stat-lbl svelte-1pluywh\">Active</span></span> <span class=\"stat-card svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().pending)}</span> <span class=\"stat-lbl svelte-1pluywh\">Pending</span></span> <span class=\"stat-card status-done-card svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().done)}</span> <span class=\"stat-lbl svelte-1pluywh\">Done</span></span> <span class=\"stat-card status-cancelled-card svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().cancelled)}</span> <span class=\"stat-lbl svelte-1pluywh\">Cancelled</span></span> <span class=\"stat-card muted svelte-1pluywh\"><span class=\"stat-num svelte-1pluywh\">${escape_html(stats().archived)}</span> <span class=\"stat-lbl svelte-1pluywh\">Archived</span></span></div> <div class=\"priority-block svelte-1pluywh\"><div class=\"section-label svelte-1pluywh\">Priority</div> <div class=\"priority-bars svelte-1pluywh\"><!--[-->`);\n\t\t\t\tconst each_array_1 = ensure_array_like([\n\t\t\t\t\t[\"critical\", stats().critical],\n\t\t\t\t\t[\"high\", stats().high],\n\t\t\t\t\t[\"medium\", stats().medium],\n\t\t\t\t\t[\"low\", stats().low]\n\t\t\t\t]);\n\t\t\t\tfor (let $$index_1 = 0, $$length = each_array_1.length; $$index_1 < $$length; $$index_1++) {\n\t\t\t\t\tlet [label, count] = each_array_1[$$index_1];\n\t\t\t\t\tconst total = stats().critical + stats().high + stats().medium + stats().low;\n\t\t\t\t\tconst pct = total > 0 ? Math.round(Number(count) / total * 100) : 0;\n\t\t\t\t\t$$renderer.push(`<div class=\"priority-row svelte-1pluywh\"><span${attr_class(`priority-label ${stringify(priorityClassLocal(String(label)))}`, \"svelte-1pluywh\")}>${escape_html(label)}</span> <div class=\"priority-bar-track svelte-1pluywh\"><div${attr_class(`priority-bar-fill ${stringify(priorityClassLocal(String(label)))}`, \"svelte-1pluywh\")}${attr_style(`width:${stringify(pct)}%`)}></div></div> <span class=\"priority-count svelte-1pluywh\">${escape_html(count)}</span></div>`);\n\t\t\t\t}\n\t\t\t\t$$renderer.push(`<!--]--></div></div> <div class=\"type-block svelte-1pluywh\"><div class=\"section-label svelte-1pluywh\">Type</div> <div class=\"type-chips svelte-1pluywh\"><span class=\"type-chip svelte-1pluywh\">Epics <strong class=\"svelte-1pluywh\">${escape_html(stats().epics)}</strong></span> <span class=\"type-chip svelte-1pluywh\">Tasks <strong class=\"svelte-1pluywh\">${escape_html(stats().tasks)}</strong></span> <span class=\"type-chip svelte-1pluywh\">Subtasks <strong class=\"svelte-1pluywh\">${escape_html(stats().subtasks)}</strong></span></div></div> <div class=\"filter-bar svelte-1pluywh\" aria-label=\"Dashboard filters\"><a${attr(\"href\", toggleUrl(\"cancelled\"))}${attr_class(\"filter-chip svelte-1pluywh\", void 0, { \"active\": dashboardFilters().showCancelled })} data-sveltekit-noscroll=\"\" title=\"Include cancelled epics in the Epic Progress panel\"><span class=\"chip-check svelte-1pluywh\">${escape_html(dashboardFilters().showCancelled ? \"✓\" : \" \")}</span> Cancelled epics</a> <a${attr(\"href\", toggleUrl(\"archived\"))}${attr_class(\"filter-chip svelte-1pluywh\", void 0, { \"active\": dashboardFilters().showArchived })} data-sveltekit-noscroll=\"\" title=\"Include archived tasks in Recent Activity\"><span class=\"chip-check svelte-1pluywh\">${escape_html(dashboardFilters().showArchived ? \"✓\" : \" \")}</span> Archived</a></div></section>`);\n\t\t\t} else {\n\t\t\t\t$$renderer.push(\"<!--[-1-->\");\n\t\t\t\t$$renderer.push(`<div class=\"no-db svelte-1pluywh\">tasks.db not found — start CLEO in the project directory</div>`);\n\t\t\t}\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (epicProgress().length > 0) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\tEpicProgressCard($$renderer, {\n\t\t\t\t\tepics: epicProgress(),\n\t\t\t\t\tincludingDeferred: dashboardFilters().showCancelled\n\t\t\t\t});\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--> `);\n\t\t\tif (recentTasks().length > 0) {\n\t\t\t\t$$renderer.push(\"<!--[0-->\");\n\t\t\t\tRecentActivityFeed($$renderer, { tasks: recentTasks() });\n\t\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t\t$$renderer.push(`<!--]--></aside></div> `);\n\t\t\tDetailDrawer($$renderer, {\n\t\t\t\ttask: selectedTask(),\n\t\t\t\tonClose: () => filters?.setSelected(null)\n\t\t\t});\n\t\t\t$$renderer.push(`<!---->`);\n\t\t} else $$renderer.push(\"<!--[-1-->\");\n\t\t$$renderer.push(`<!--]--></div>`);\n\t\tif ($$store_subs) unsubscribe_stores($$store_subs);\n\t});\n}\n//#endregion\nexport { _page as default };\n"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import './internal-
|
|
1
|
+
import './internal-CmtLRaJG.js';
|
|
2
2
|
import { n as noop } from './dev-BNpEUZI3.js';
|
|
3
3
|
import { i as index_server_exports } from './index-server-DocJvixA.js';
|
|
4
4
|
import '@sveltejs/kit/internal';
|
|
@@ -43,4 +43,4 @@ function goto(url, opts = {}) {
|
|
|
43
43
|
}
|
|
44
44
|
|
|
45
45
|
export { goto as g };
|
|
46
|
-
//# sourceMappingURL=client-
|
|
46
|
+
//# sourceMappingURL=client-D6kcmtib.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-D2qx6O3f.js","sources":["../../../.svelte-kit/adapter-node/chunks/client.js"],"sourcesContent":["import { C as noop, S as unflatten, f as get_message, h as base64_decode, n as TRAILING_SLASH_PARAM, p as get_status, t as INVALIDATED_PARAM, v as text_decoder } from \"./shared.js\";\nimport { d as base } from \"./environment.js\";\nimport { Q as noop$1, k as writable } from \"./dev.js\";\nimport { S as compact, f as make_trackable, g as add_data_suffix, h as noop_span, l as decode_params, p as normalize_path, s as hash, u as decode_pathname } from \"./exports.js\";\nimport { i as tick$1, r as settled, t as index_server_exports } from \"./index-server.js\";\nimport \"./internal.js\";\nimport { HttpError, Redirect, SvelteKitError } from \"@sveltejs/kit/internal\";\nimport \"@sveltejs/kit/internal/server\";\nvar cache = /* @__PURE__ */ new Map();\n/**\n* Should be called on the initial run of load functions that hydrate the page.\n* Saves any requests with cache-control max-age to the cache.\n* @param {URL | string} resource\n* @param {RequestInit} [opts]\n*/\nfunction initial_fetch(resource, opts) {\n\tconst selector = build_selector(resource, opts);\n\tconst script = document.querySelector(selector);\n\tif (script?.textContent) {\n\t\tscript.remove();\n\t\tlet { body, ...init } = JSON.parse(script.textContent);\n\t\tconst ttl = script.getAttribute(\"data-ttl\");\n\t\tif (ttl) cache.set(selector, {\n\t\t\tbody,\n\t\t\tinit,\n\t\t\tttl: 1e3 * Number(ttl)\n\t\t});\n\t\tif (script.getAttribute(\"data-b64\") !== null) body = base64_decode(body);\n\t\treturn Promise.resolve(new Response(body, init));\n\t}\n\treturn window.fetch(resource, opts);\n}\n/**\n* Tries to get the response from the cache, if max-age allows it, else does a fetch.\n* @param {URL | string} resource\n* @param {string} resolved\n* @param {RequestInit} [opts]\n*/\nfunction subsequent_fetch(resource, resolved, opts) {\n\tif (cache.size > 0) {\n\t\tconst selector = build_selector(resource, opts);\n\t\tconst cached = cache.get(selector);\n\t\tif (cached) {\n\t\t\tif (performance.now() < cached.ttl && [\n\t\t\t\t\"default\",\n\t\t\t\t\"force-cache\",\n\t\t\t\t\"only-if-cached\",\n\t\t\t\tvoid 0\n\t\t\t].includes(opts?.cache)) return new Response(cached.body, cached.init);\n\t\t\tcache.delete(selector);\n\t\t}\n\t}\n\treturn window.fetch(resolved, opts);\n}\n/**\n* Build the cache key for a given request\n* @param {URL | RequestInfo} resource\n* @param {RequestInit} [opts]\n*/\nfunction build_selector(resource, opts) {\n\tlet selector = `script[data-sveltekit-fetched][data-url=${JSON.stringify(resource instanceof Request ? resource.url : resource)}]`;\n\tif (opts?.headers || opts?.body) {\n\t\t/** @type {import('types').StrictBody[]} */\n\t\tconst values = [];\n\t\tif (opts.headers) values.push([...new Headers(opts.headers)].join(\",\"));\n\t\tif (opts.body && (typeof opts.body === \"string\" || ArrayBuffer.isView(opts.body))) values.push(opts.body);\n\t\tselector += `[data-hash=\"${hash(...values)}\"]`;\n\t}\n\treturn selector;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/@sveltejs+kit@2.57.1_@opentelemetry+api@1.9.0_@sveltejs+vite-plugin-svelte@5.1.1_svelte_e94e6db60b0c5f7146157d0facbe8042/node_modules/@sveltejs/kit/src/runtime/client/session-storage.js\n/**\n* Read a value from `sessionStorage`\n* @param {string} key\n* @param {(value: string) => any} parse\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction get(key, parse = JSON.parse) {\n\ttry {\n\t\treturn parse(sessionStorage[key]);\n\t} catch {}\n}\nvar STATES_KEY = \"sveltekit:states\";\nvar HISTORY_INDEX = \"sveltekit:history\";\nvar NAVIGATION_INDEX = \"sveltekit:navigation\";\nvar PRELOAD_PRIORITIES = {\n\ttap: 1,\n\thover: 2,\n\tviewport: 3,\n\teager: 4,\n\toff: -1,\n\tfalse: -1\n};\n//#endregion\n//#region ../../node_modules/.pnpm/@sveltejs+kit@2.57.1_@opentelemetry+api@1.9.0_@sveltejs+vite-plugin-svelte@5.1.1_svelte_e94e6db60b0c5f7146157d0facbe8042/node_modules/@sveltejs/kit/src/runtime/client/utils.js\nvar origin = \"\";\n/** @param {string | URL} url */\nfunction resolve_url(url) {\n\tif (url instanceof URL) return url;\n\tlet baseURI = document.baseURI;\n\tif (!baseURI) {\n\t\tconst baseTags = document.getElementsByTagName(\"base\");\n\t\tbaseURI = baseTags.length ? baseTags[0].href : document.URL;\n\t}\n\treturn new URL(url, baseURI);\n}\nfunction scroll_state() {\n\treturn {\n\t\tx: pageXOffset,\n\t\ty: pageYOffset\n\t};\n}\n({ ...PRELOAD_PRIORITIES }), PRELOAD_PRIORITIES.hover;\n/** @param {any} value */\nfunction notifiable_store(value) {\n\tconst store = writable(value);\n\tlet ready = true;\n\tfunction notify() {\n\t\tready = true;\n\t\tstore.update((val) => val);\n\t}\n\t/** @param {any} new_value */\n\tfunction set(new_value) {\n\t\tready = false;\n\t\tstore.set(new_value);\n\t}\n\t/** @param {(value: any) => void} run */\n\tfunction subscribe(run) {\n\t\t/** @type {any} */\n\t\tlet old_value;\n\t\treturn store.subscribe((new_value) => {\n\t\t\tif (old_value === void 0 || ready && new_value !== old_value) run(old_value = new_value);\n\t\t});\n\t}\n\treturn {\n\t\tnotify,\n\t\tset,\n\t\tsubscribe\n\t};\n}\nvar updated_listener = { v: noop };\nfunction create_updated_store() {\n\tconst { set, subscribe } = writable(false);\n\treturn {\n\t\tsubscribe,\n\t\tcheck: async () => false\n\t};\n}\n/**\n* Is external if\n* - origin different\n* - path doesn't start with base\n* - uses hash router and pathname is more than base\n* @param {URL} url\n* @param {string} base\n* @param {boolean} hash_routing\n*/\nfunction is_external_url(url, base, hash_routing) {\n\tif (url.origin !== origin || !url.pathname.startsWith(base)) return true;\n\tif (hash_routing) return url.pathname !== location.pathname;\n\treturn false;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/@sveltejs+kit@2.57.1_@opentelemetry+api@1.9.0_@sveltejs+vite-plugin-svelte@5.1.1_svelte_e94e6db60b0c5f7146157d0facbe8042/node_modules/@sveltejs/kit/src/runtime/client/state.svelte.js\nvar page;\nvar navigating;\nvar updated;\nvar is_legacy = noop$1.toString().includes(\"$$\") || /function \\w+\\(\\) \\{\\}/.test(noop$1.toString());\nvar placeholder_url = \"a:\";\nif (is_legacy) {\n\tpage = {\n\t\tdata: {},\n\t\tform: null,\n\t\terror: null,\n\t\tparams: {},\n\t\troute: { id: null },\n\t\tstate: {},\n\t\tstatus: -1,\n\t\turl: new URL(placeholder_url)\n\t};\n\tnavigating = { current: null };\n\tupdated = { current: false };\n} else {\n\tpage = new class Page {\n\t\tdata = {};\n\t\tform = null;\n\t\terror = null;\n\t\tparams = {};\n\t\troute = { id: null };\n\t\tstate = {};\n\t\tstatus = -1;\n\t\turl = new URL(placeholder_url);\n\t}();\n\tnavigating = new class Navigating {\n\t\tcurrent = null;\n\t}();\n\tupdated = new class Updated {\n\t\tcurrent = false;\n\t}();\n\tupdated_listener.v = () => updated.current = true;\n}\n/**\n* @param {import('@sveltejs/kit').Page} new_page\n*/\nfunction update(new_page) {\n\tObject.assign(page, new_page);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/@sveltejs+kit@2.57.1_@opentelemetry+api@1.9.0_@sveltejs+vite-plugin-svelte@5.1.1_svelte_e94e6db60b0c5f7146157d0facbe8042/node_modules/@sveltejs/kit/src/runtime/client/client.js\n/** @import { RemoteQueryCacheEntry } from './remote-functions/query.svelte.js' */\nvar { onMount, tick } = index_server_exports;\n/**\n* Set via transformError, reset and read at the end of navigate.\n* Necessary because a navigation might succeed loading but during rendering\n* an error occurs, at which point the navigation result needs to be overridden with the error result.\n* TODO this is all very hacky, rethink for SvelteKit 3 where we can assume Svelte 5 and do an overhaul of client.js\n* @type {{ error: App.Error, status: number } | null}\n*/\nvar rendering_error = null;\n/**\n* history index -> { x, y }\n* @type {Record<number, { x: number; y: number }>}\n*/\nvar scroll_positions = /* @__PURE__ */ get(\"sveltekit:scroll\") ?? {};\n/**\n* navigation index -> any\n* @type {Record<string, any[]>}\n*/\nvar snapshots = /* @__PURE__ */ get(\"sveltekit:snapshot\") ?? {};\nvar stores = {\n\turl: /* @__PURE__ */ notifiable_store({}),\n\tpage: /* @__PURE__ */ notifiable_store({}),\n\tnavigating: /* @__PURE__ */ writable(null),\n\tupdated: /* @__PURE__ */ create_updated_store()\n};\n/** @param {number} index */\nfunction update_scroll_positions(index) {\n\tscroll_positions[index] = scroll_state();\n}\n/**\n* @param {number} current_history_index\n* @param {number} current_navigation_index\n*/\nfunction clear_onward_history(current_history_index, current_navigation_index) {\n\tlet i = current_history_index + 1;\n\twhile (scroll_positions[i]) {\n\t\tdelete scroll_positions[i];\n\t\ti += 1;\n\t}\n\ti = current_navigation_index + 1;\n\twhile (snapshots[i]) {\n\t\tdelete snapshots[i];\n\t\ti += 1;\n\t}\n}\n/**\n* Loads `href` the old-fashioned way, with a full page reload.\n* Returns a `Promise` that never resolves (to prevent any\n* subsequent work, e.g. history manipulation, from happening)\n* @param {URL} url\n* @param {boolean} [replace] If `true`, will replace the current `history` entry rather than creating a new one with `pushState`\n*/\nfunction native_navigation(url, replace = false) {\n\tif (replace) location.replace(url.href);\n\telse location.href = url.href;\n\treturn new Promise(noop);\n}\n/**\n* Checks whether a service worker is registered, and if it is,\n* tries to update it.\n*/\nasync function update_service_worker() {\n\tif (\"serviceWorker\" in navigator) {\n\t\tconst registration = await navigator.serviceWorker.getRegistration(base || \"/\");\n\t\tif (registration) await registration.update();\n\t}\n}\n/** @type {import('types').CSRRoute[]} All routes of the app. Only available when kit.router.resolution=client */\nvar routes;\n/** @type {import('types').CSRPageNodeLoader} */\nvar default_layout_loader;\n/** @type {import('types').CSRPageNodeLoader} */\nvar default_error_loader;\n/** @type {HTMLElement} */\nvar target;\n/** @type {import('./types.js').SvelteKitApp} */\nvar app;\n/** @type {Array<((url: URL) => boolean)>} */\nvar invalidated = [];\n/**\n* An array of the `+layout.svelte` and `+page.svelte` component instances\n* that currently live on the page — used for capturing and restoring snapshots.\n* It's updated/manipulated through `bind:this` in `Root.svelte`.\n* @type {import('svelte').SvelteComponent[]}\n*/\nvar components = [];\n/** @type {{id: string, token: {}, promise: Promise<import('./types.js').NavigationResult>, fork: Promise<import('svelte').Fork | null> | null} | null} */\nvar load_cache = null;\nfunction discard_load_cache() {\n\tload_cache?.fork?.then((f) => f?.discard());\n\tload_cache = null;\n}\n/**\n* @type {Map<string, Promise<URL>>}\n* Cache for client-side rerouting, since it could contain async calls which we want to\n* avoid running multiple times which would slow down navigations (e.g. else preloading\n* wouldn't help because on navigation it would be called again). Since `reroute` should be\n* a pure function (i.e. always return the same) value it's safe to cache across navigations.\n* The server reroute calls don't need to be cached because they are called using `import(...)`\n* which is cached per the JS spec.\n*/\nvar reroute_cache = /* @__PURE__ */ new Map();\n/**\n* Note on before_navigate_callbacks, on_navigate_callbacks and after_navigate_callbacks:\n* do not re-assign as some closures keep references to these Sets\n*/\n/** @type {Set<(navigation: import('@sveltejs/kit').BeforeNavigate) => void>} */\nvar before_navigate_callbacks = /* @__PURE__ */ new Set();\n/** @type {Set<(navigation: import('@sveltejs/kit').OnNavigate) => import('types').MaybePromise<(() => void) | void>>} */\nvar on_navigate_callbacks = /* @__PURE__ */ new Set();\n/** @type {Set<(navigation: import('@sveltejs/kit').AfterNavigate) => void>} */\nvar after_navigate_callbacks = /* @__PURE__ */ new Set();\n/** @type {import('./types.js').NavigationState & { nav: import('@sveltejs/kit').NavigationEvent }} */\nvar current = {\n\tbranch: [],\n\terror: null,\n\turl: null,\n\tnav: null\n};\n/** this being true means we SSR'd */\nvar hydrated = false;\nvar started = false;\nvar autoscroll = true;\nvar is_navigating = false;\nvar force_invalidation = false;\n/** @type {import('svelte').SvelteComponent} */\nvar root;\n/** @type {number} keeping track of the history index in order to prevent popstate navigation events if needed */\nvar current_history_index;\n/** @type {number} */\nvar current_navigation_index;\n/** @type {{}} */\nvar token;\n/**\n* A set of tokens which are associated to current preloads.\n* If a preload becomes a real navigation, it's removed from the set.\n* If a preload token is in the set and the preload errors, the error\n* handling logic (for example reloading) is skipped.\n*/\nvar preload_tokens = /* @__PURE__ */ new Set();\n/**\n* @type {Map<string, Map<string, RemoteQueryCacheEntry<any>>>}\n* A map of query id -> payload -> query internals for all active queries.\n*/\nvar query_map = /* @__PURE__ */ new Map();\nfunction reset_invalidation() {\n\tinvalidated.length = 0;\n\tforce_invalidation = false;\n}\n/** @param {number} index */\nfunction capture_snapshot(index) {\n\tif (components.some((c) => c?.snapshot)) snapshots[index] = components.map((c) => c?.snapshot?.capture());\n}\n/** @param {number} index */\nfunction restore_snapshot(index) {\n\tsnapshots[index]?.forEach((value, i) => {\n\t\tcomponents[i]?.snapshot?.restore(value);\n\t});\n}\n/**\n* @param {string | URL} url\n* @param {{ replaceState?: boolean; noScroll?: boolean; keepFocus?: boolean; invalidateAll?: boolean; invalidate?: Array<string | URL | ((url: URL) => boolean)>; state?: Record<string, any> }} options\n* @param {number} redirect_count\n* @param {{}} [nav_token]\n*/\nasync function _goto(url, options, redirect_count, nav_token) {\n\t/** @type {string[]} */\n\tlet query_keys;\n\tif (options.invalidateAll) discard_load_cache();\n\tawait navigate({\n\t\ttype: \"goto\",\n\t\turl: resolve_url(url),\n\t\tkeepfocus: options.keepFocus,\n\t\tnoscroll: options.noScroll,\n\t\treplace_state: options.replaceState,\n\t\tstate: options.state,\n\t\tredirect_count,\n\t\tnav_token,\n\t\taccept: () => {\n\t\t\tif (options.invalidateAll) {\n\t\t\t\tforce_invalidation = true;\n\t\t\t\tquery_keys = [];\n\t\t\t\tquery_map.forEach((entries, id) => {\n\t\t\t\t\tfor (const payload of entries.keys()) query_keys.push(id + \"/\" + payload);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (options.invalidate) options.invalidate.forEach(push_invalidated);\n\t\t}\n\t});\n\tif (options.invalidateAll) tick$1().then(tick$1).then(() => {\n\t\tquery_map.forEach((entries, id) => {\n\t\t\tentries.forEach(({ resource }, payload) => {\n\t\t\t\tif (query_keys?.includes(id + \"/\" + payload)) resource.refresh?.();\n\t\t\t});\n\t\t});\n\t});\n}\n/**\n* @param {import('./types.js').NavigationFinished} result\n* @param {HTMLElement} target\n* @param {boolean} hydrate\n*/\nasync function initialize(result, target, hydrate) {\n\t/** @type {import('@sveltejs/kit').NavigationEvent} */\n\tconst nav = {\n\t\tparams: current.params,\n\t\troute: { id: current.route?.id ?? null },\n\t\turl: new URL(location.href)\n\t};\n\tcurrent = {\n\t\t...result.state,\n\t\tnav\n\t};\n\tconst style = document.querySelector(\"style[data-sveltekit]\");\n\tif (style) style.remove();\n\tObject.assign(page, result.props.page);\n\troot = new app.root({\n\t\ttarget,\n\t\tprops: {\n\t\t\t...result.props,\n\t\t\tstores,\n\t\t\tcomponents\n\t\t},\n\t\thydrate,\n\t\tsync: false,\n\t\ttransformError: void 0\n\t});\n\tawait Promise.resolve();\n\trestore_snapshot(current_navigation_index);\n\tif (hydrate) {\n\t\t/** @type {import('@sveltejs/kit').AfterNavigate} */\n\t\tconst navigation = {\n\t\t\tfrom: null,\n\t\t\tto: {\n\t\t\t\t...nav,\n\t\t\t\tscroll: scroll_positions[current_history_index] ?? scroll_state()\n\t\t\t},\n\t\t\twillUnload: false,\n\t\t\ttype: \"enter\",\n\t\t\tcomplete: Promise.resolve()\n\t\t};\n\t\tafter_navigate_callbacks.forEach((fn) => fn(navigation));\n\t}\n\tstarted = true;\n}\n/**\n*\n* @param {{\n* url: URL;\n* params: Record<string, string>;\n* branch: Array<import('./types.js').BranchNode | undefined>;\n* errors?: Array<import('types').CSRPageNodeLoader | undefined>;\n* status: number;\n* error: App.Error | null;\n* route: import('types').CSRRoute | null;\n* form?: Record<string, any> | null;\n* }} opts\n*/\nasync function get_navigation_result_from_branch({ url, params, branch, errors, status, error, route, form }) {\n\t/** @type {import('types').TrailingSlash} */\n\tlet slash = \"never\";\n\tif (base && (url.pathname === base || url.pathname === base + \"/\")) slash = \"always\";\n\telse for (const node of branch) if (node?.slash !== void 0) slash = node.slash;\n\turl.pathname = normalize_path(url.pathname, slash);\n\turl.search = url.search;\n\t/** @type {import('./types.js').NavigationFinished} */\n\tconst result = {\n\t\ttype: \"loaded\",\n\t\tstate: {\n\t\t\turl,\n\t\t\tparams,\n\t\t\tbranch,\n\t\t\terror,\n\t\t\troute\n\t\t},\n\t\tprops: {\n\t\t\tconstructors: compact(branch).map((branch_node) => branch_node.node.component),\n\t\t\tpage: clone_page(page)\n\t\t}\n\t};\n\tif (form !== void 0) result.props.form = form;\n\tlet data = {};\n\tlet data_changed = !page;\n\tlet p = 0;\n\tfor (let i = 0; i < Math.max(branch.length, current.branch.length); i += 1) {\n\t\tconst node = branch[i];\n\t\tconst prev = current.branch[i];\n\t\tif (node?.data !== prev?.data) data_changed = true;\n\t\tif (!node) continue;\n\t\tdata = {\n\t\t\t...data,\n\t\t\t...node.data\n\t\t};\n\t\tif (data_changed) result.props[`data_${p}`] = data;\n\t\tp += 1;\n\t}\n\tif (!current.url || url.href !== current.url.href || current.error !== error || form !== void 0 && form !== page.form || data_changed) result.props.page = {\n\t\terror,\n\t\tparams,\n\t\troute: { id: route?.id ?? null },\n\t\tstate: {},\n\t\tstatus,\n\t\turl: new URL(url),\n\t\tform: form ?? null,\n\t\tdata: data_changed ? data : page.data\n\t};\n\treturn result;\n}\n/**\n* Call the universal load function of the given node, if it exists.\n*\n* @param {{\n* loader: import('types').CSRPageNodeLoader;\n* \t parent: () => Promise<Record<string, any>>;\n* url: URL;\n* params: Record<string, string>;\n* route: { id: string | null };\n* \t server_data_node: import('./types.js').DataNode | null;\n* }} options\n* @returns {Promise<import('./types.js').BranchNode>}\n*/\nasync function load_node({ loader, parent, url, params, route, server_data_node }) {\n\t/** @type {Record<string, any> | null} */\n\tlet data = null;\n\tlet is_tracking = true;\n\t/** @type {import('types').Uses} */\n\tconst uses = {\n\t\tdependencies: /* @__PURE__ */ new Set(),\n\t\tparams: /* @__PURE__ */ new Set(),\n\t\tparent: false,\n\t\troute: false,\n\t\turl: false,\n\t\tsearch_params: /* @__PURE__ */ new Set()\n\t};\n\tconst node = await loader();\n\tif (node.universal?.load) {\n\t\t/** @param {string[]} deps */\n\t\tfunction depends(...deps) {\n\t\t\tfor (const dep of deps) {\n\t\t\t\tconst { href } = new URL(dep, url);\n\t\t\t\tuses.dependencies.add(href);\n\t\t\t}\n\t\t}\n\t\t/** @type {import('@sveltejs/kit').LoadEvent} */\n\t\tconst load_input = {\n\t\t\ttracing: {\n\t\t\t\tenabled: false,\n\t\t\t\troot: noop_span,\n\t\t\t\tcurrent: noop_span\n\t\t\t},\n\t\t\troute: new Proxy(route, { get: (target, key) => {\n\t\t\t\tif (is_tracking) uses.route = true;\n\t\t\t\treturn target[key];\n\t\t\t} }),\n\t\t\tparams: new Proxy(params, { get: (target, key) => {\n\t\t\t\tif (is_tracking) uses.params.add(key);\n\t\t\t\treturn target[key];\n\t\t\t} }),\n\t\t\tdata: server_data_node?.data ?? null,\n\t\t\turl: make_trackable(url, () => {\n\t\t\t\tif (is_tracking) uses.url = true;\n\t\t\t}, (param) => {\n\t\t\t\tif (is_tracking) uses.search_params.add(param);\n\t\t\t}, app.hash),\n\t\t\tasync fetch(resource, init) {\n\t\t\t\tif (resource instanceof Request) init = {\n\t\t\t\t\tbody: resource.method === \"GET\" || resource.method === \"HEAD\" ? void 0 : await resource.blob(),\n\t\t\t\t\tcache: resource.cache,\n\t\t\t\t\tcredentials: resource.credentials,\n\t\t\t\t\theaders: [...resource.headers].length > 0 ? resource?.headers : void 0,\n\t\t\t\t\tintegrity: resource.integrity,\n\t\t\t\t\tkeepalive: resource.keepalive,\n\t\t\t\t\tmethod: resource.method,\n\t\t\t\t\tmode: resource.mode,\n\t\t\t\t\tredirect: resource.redirect,\n\t\t\t\t\treferrer: resource.referrer,\n\t\t\t\t\treferrerPolicy: resource.referrerPolicy,\n\t\t\t\t\tsignal: resource.signal,\n\t\t\t\t\t...init\n\t\t\t\t};\n\t\t\t\tconst { resolved, promise } = resolve_fetch_url(resource, init, url);\n\t\t\t\tif (is_tracking) depends(resolved.href);\n\t\t\t\treturn promise;\n\t\t\t},\n\t\t\tsetHeaders: noop,\n\t\t\tdepends,\n\t\t\tparent() {\n\t\t\t\tif (is_tracking) uses.parent = true;\n\t\t\t\treturn parent();\n\t\t\t},\n\t\t\tuntrack(fn) {\n\t\t\t\tis_tracking = false;\n\t\t\t\ttry {\n\t\t\t\t\treturn fn();\n\t\t\t\t} finally {\n\t\t\t\t\tis_tracking = true;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tdata = await node.universal.load.call(null, load_input) ?? null;\n\t}\n\treturn {\n\t\tnode,\n\t\tloader,\n\t\tserver: server_data_node,\n\t\tuniversal: node.universal?.load ? {\n\t\t\ttype: \"data\",\n\t\t\tdata,\n\t\t\tuses\n\t\t} : null,\n\t\tdata: data ?? server_data_node?.data ?? null,\n\t\tslash: node.universal?.trailingSlash ?? server_data_node?.slash\n\t};\n}\n/**\n* @param {Request | string | URL} input\n* @param {RequestInit | undefined} init\n* @param {URL} url\n*/\nfunction resolve_fetch_url(input, init, url) {\n\tlet requested = input instanceof Request ? input.url : input;\n\tconst resolved = new URL(requested, url);\n\tif (resolved.origin === url.origin) requested = resolved.href.slice(url.origin.length);\n\treturn {\n\t\tresolved,\n\t\tpromise: started ? subsequent_fetch(requested, resolved.href, init) : initial_fetch(requested, init)\n\t};\n}\n/**\n* @param {boolean} parent_changed\n* @param {boolean} route_changed\n* @param {boolean} url_changed\n* @param {Set<string>} search_params_changed\n* @param {import('types').Uses | undefined} uses\n* @param {Record<string, string>} params\n*/\nfunction has_changed(parent_changed, route_changed, url_changed, search_params_changed, uses, params) {\n\tif (force_invalidation) return true;\n\tif (!uses) return false;\n\tif (uses.parent && parent_changed) return true;\n\tif (uses.route && route_changed) return true;\n\tif (uses.url && url_changed) return true;\n\tfor (const tracked_params of uses.search_params) if (search_params_changed.has(tracked_params)) return true;\n\tfor (const param of uses.params) if (params[param] !== current.params[param]) return true;\n\tfor (const href of uses.dependencies) if (invalidated.some((fn) => fn(new URL(href)))) return true;\n\treturn false;\n}\n/**\n* @param {import('types').ServerDataNode | import('types').ServerDataSkippedNode | null} node\n* @param {import('./types.js').DataNode | null} [previous]\n* @returns {import('./types.js').DataNode | null}\n*/\nfunction create_data_node(node, previous) {\n\tif (node?.type === \"data\") return node;\n\tif (node?.type === \"skip\") return previous ?? null;\n\treturn null;\n}\n/**\n* @param {URL | null} old_url\n* @param {URL} new_url\n*/\nfunction diff_search_params(old_url, new_url) {\n\tif (!old_url) return new Set(new_url.searchParams.keys());\n\tconst changed = new Set([...old_url.searchParams.keys(), ...new_url.searchParams.keys()]);\n\tfor (const key of changed) {\n\t\tconst old_values = old_url.searchParams.getAll(key);\n\t\tconst new_values = new_url.searchParams.getAll(key);\n\t\tif (old_values.every((value) => new_values.includes(value)) && new_values.every((value) => old_values.includes(value))) changed.delete(key);\n\t}\n\treturn changed;\n}\n/**\n* @param {Omit<import('./types.js').NavigationFinished['state'], 'branch'> & { error: App.Error }} opts\n* @returns {import('./types.js').NavigationFinished}\n*/\nfunction preload_error({ error, url, route, params }) {\n\treturn {\n\t\ttype: \"loaded\",\n\t\tstate: {\n\t\t\terror,\n\t\t\turl,\n\t\t\troute,\n\t\t\tparams,\n\t\t\tbranch: []\n\t\t},\n\t\tprops: {\n\t\t\tpage: clone_page(page),\n\t\t\tconstructors: []\n\t\t}\n\t};\n}\n/**\n* @param {import('./types.js').NavigationIntent & { preload?: {} }} intent\n* @returns {Promise<import('./types.js').NavigationResult>}\n*/\nasync function load_route({ id, invalidating, url, params, route, preload }) {\n\tif (load_cache?.id === id) {\n\t\tpreload_tokens.delete(load_cache.token);\n\t\treturn load_cache.promise;\n\t}\n\tconst { errors, layouts, leaf } = route;\n\tconst loaders = [...layouts, leaf];\n\terrors.forEach((loader) => loader?.().catch(noop));\n\tloaders.forEach((loader) => loader?.[1]().catch(noop));\n\t/** @type {import('types').ServerNodesResponse | import('types').ServerRedirectNode | null} */\n\tlet server_data = null;\n\tconst url_changed = current.url ? id !== get_page_key(current.url) : false;\n\tconst route_changed = current.route ? route.id !== current.route.id : false;\n\tconst search_params_changed = diff_search_params(current.url, url);\n\tlet parent_invalid = false;\n\t{\n\t\tconst invalid_server_nodes = loaders.map((loader, i) => {\n\t\t\tconst previous = current.branch[i];\n\t\t\tconst invalid = !!loader?.[0] && (previous?.loader !== loader[1] || has_changed(parent_invalid, route_changed, url_changed, search_params_changed, previous.server?.uses, params));\n\t\t\tif (invalid) parent_invalid = true;\n\t\t\treturn invalid;\n\t\t});\n\t\tif (invalid_server_nodes.some(Boolean)) {\n\t\t\ttry {\n\t\t\t\tserver_data = await load_data(url, invalid_server_nodes);\n\t\t\t} catch (error) {\n\t\t\t\tconst handled_error = await handle_error(error, {\n\t\t\t\t\turl,\n\t\t\t\t\tparams,\n\t\t\t\t\troute: { id }\n\t\t\t\t});\n\t\t\t\tif (preload_tokens.has(preload)) return preload_error({\n\t\t\t\t\terror: handled_error,\n\t\t\t\t\turl,\n\t\t\t\t\tparams,\n\t\t\t\t\troute\n\t\t\t\t});\n\t\t\t\treturn load_root_error_page({\n\t\t\t\t\tstatus: get_status(error),\n\t\t\t\t\terror: handled_error,\n\t\t\t\t\turl,\n\t\t\t\t\troute\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (server_data.type === \"redirect\") return server_data;\n\t\t}\n\t}\n\tconst server_data_nodes = server_data?.nodes;\n\tlet parent_changed = false;\n\tconst branch_promises = loaders.map(async (loader, i) => {\n\t\tif (!loader) return;\n\t\t/** @type {import('./types.js').BranchNode | undefined} */\n\t\tconst previous = current.branch[i];\n\t\tconst server_data_node = server_data_nodes?.[i];\n\t\tif ((!server_data_node || server_data_node.type === \"skip\") && loader[1] === previous?.loader && !has_changed(parent_changed, route_changed, url_changed, search_params_changed, previous.universal?.uses, params)) return previous;\n\t\tparent_changed = true;\n\t\tif (server_data_node?.type === \"error\") throw server_data_node;\n\t\treturn load_node({\n\t\t\tloader: loader[1],\n\t\t\turl,\n\t\t\tparams,\n\t\t\troute,\n\t\t\tparent: async () => {\n\t\t\t\tconst data = {};\n\t\t\t\tfor (let j = 0; j < i; j += 1) Object.assign(data, (await branch_promises[j])?.data);\n\t\t\t\treturn data;\n\t\t\t},\n\t\t\tserver_data_node: create_data_node(server_data_node === void 0 && loader[0] ? { type: \"skip\" } : server_data_node ?? null, loader[0] ? previous?.server : void 0)\n\t\t});\n\t});\n\tfor (const p of branch_promises) p.catch(noop);\n\t/** @type {Array<import('./types.js').BranchNode | undefined>} */\n\tconst branch = [];\n\tfor (let i = 0; i < loaders.length; i += 1) if (loaders[i]) try {\n\t\tbranch.push(await branch_promises[i]);\n\t} catch (err) {\n\t\tif (err instanceof Redirect) return {\n\t\t\ttype: \"redirect\",\n\t\t\tlocation: err.location\n\t\t};\n\t\tif (preload_tokens.has(preload)) return preload_error({\n\t\t\terror: await handle_error(err, {\n\t\t\t\tparams,\n\t\t\t\turl,\n\t\t\t\troute: { id: route.id }\n\t\t\t}),\n\t\t\turl,\n\t\t\tparams,\n\t\t\troute\n\t\t});\n\t\tlet status = get_status(err);\n\t\t/** @type {App.Error} */\n\t\tlet error;\n\t\tif (server_data_nodes?.includes(err)) {\n\t\t\tstatus = err.status ?? status;\n\t\t\terror = err.error;\n\t\t} else if (err instanceof HttpError) error = err.body;\n\t\telse {\n\t\t\tif (await stores.updated.check()) {\n\t\t\t\tawait update_service_worker();\n\t\t\t\treturn await native_navigation(url);\n\t\t\t}\n\t\t\terror = await handle_error(err, {\n\t\t\t\tparams,\n\t\t\t\turl,\n\t\t\t\troute: { id: route.id }\n\t\t\t});\n\t\t}\n\t\tconst error_load = await load_nearest_error_page(i, branch, errors);\n\t\tif (error_load) return get_navigation_result_from_branch({\n\t\t\turl,\n\t\t\tparams,\n\t\t\tbranch: branch.slice(0, error_load.idx).concat(error_load.node),\n\t\t\terrors,\n\t\t\tstatus,\n\t\t\terror,\n\t\t\troute\n\t\t});\n\t\telse return await server_fallback(url, { id: route.id }, error, status);\n\t}\n\telse branch.push(void 0);\n\treturn get_navigation_result_from_branch({\n\t\turl,\n\t\tparams,\n\t\tbranch,\n\t\terrors,\n\t\tstatus: 200,\n\t\terror: null,\n\t\troute,\n\t\tform: invalidating ? void 0 : null\n\t});\n}\n/**\n* @param {number} i Start index to backtrack from\n* @param {Array<import('./types.js').BranchNode | undefined>} branch Branch to backtrack\n* @param {Array<import('types').CSRPageNodeLoader | undefined>} errors All error pages for this branch\n* @returns {Promise<{idx: number; node: import('./types.js').BranchNode} | undefined>}\n*/\nasync function load_nearest_error_page(i, branch, errors) {\n\twhile (i--) if (errors[i]) {\n\t\tlet j = i;\n\t\twhile (!branch[j]) j -= 1;\n\t\ttry {\n\t\t\treturn {\n\t\t\t\tidx: j + 1,\n\t\t\t\tnode: {\n\t\t\t\t\tnode: await errors[i](),\n\t\t\t\t\tloader: errors[i],\n\t\t\t\t\tdata: {},\n\t\t\t\t\tserver: null,\n\t\t\t\t\tuniversal: null\n\t\t\t\t}\n\t\t\t};\n\t\t} catch {\n\t\t\tcontinue;\n\t\t}\n\t}\n}\n/**\n* @param {{\n* status: number;\n* error: App.Error;\n* url: URL;\n* route: { id: string | null }\n* }} opts\n* @returns {Promise<import('./types.js').NavigationFinished>}\n*/\nasync function load_root_error_page({ status, error, url, route }) {\n\t/** @type {Record<string, string>} */\n\tconst params = {};\n\t/** @type {import('types').ServerDataNode | null} */\n\tlet server_data_node = null;\n\tif (app.server_loads[0] === 0) try {\n\t\tconst server_data = await load_data(url, [true]);\n\t\tif (server_data.type !== \"data\" || server_data.nodes[0] && server_data.nodes[0].type !== \"data\") throw 0;\n\t\tserver_data_node = server_data.nodes[0] ?? null;\n\t} catch {\n\t\tif (url.origin !== origin || url.pathname !== location.pathname || hydrated) await native_navigation(url);\n\t}\n\ttry {\n\t\treturn get_navigation_result_from_branch({\n\t\t\turl,\n\t\t\tparams,\n\t\t\tbranch: [await load_node({\n\t\t\t\tloader: default_layout_loader,\n\t\t\t\turl,\n\t\t\t\tparams,\n\t\t\t\troute,\n\t\t\t\tparent: () => Promise.resolve({}),\n\t\t\t\tserver_data_node: create_data_node(server_data_node)\n\t\t\t}), {\n\t\t\t\tnode: await default_error_loader(),\n\t\t\t\tloader: default_error_loader,\n\t\t\t\tuniversal: null,\n\t\t\t\tserver: null,\n\t\t\t\tdata: null\n\t\t\t}],\n\t\t\tstatus,\n\t\t\terror,\n\t\t\terrors: [],\n\t\t\troute: null\n\t\t});\n\t} catch (error) {\n\t\tif (error instanceof Redirect) return _goto(new URL(error.location, location.href), {}, 0);\n\t\tthrow error;\n\t}\n}\n/**\n* Resolve the relative rerouted URL for a client-side navigation\n* @param {URL} url\n* @returns {Promise<URL | undefined>}\n*/\nasync function get_rerouted_url(url) {\n\tconst href = url.href;\n\tif (reroute_cache.has(href)) return reroute_cache.get(href);\n\tlet rerouted;\n\ttry {\n\t\tconst promise = (async () => {\n\t\t\tlet rerouted = await app.hooks.reroute({\n\t\t\t\turl: new URL(url),\n\t\t\t\tfetch: async (input, init) => {\n\t\t\t\t\treturn resolve_fetch_url(input, init, url).promise;\n\t\t\t\t}\n\t\t\t}) ?? url;\n\t\t\tif (typeof rerouted === \"string\") {\n\t\t\t\tconst tmp = new URL(url);\n\t\t\t\tif (app.hash) tmp.hash = rerouted;\n\t\t\t\telse tmp.pathname = rerouted;\n\t\t\t\trerouted = tmp;\n\t\t\t}\n\t\t\treturn rerouted;\n\t\t})();\n\t\treroute_cache.set(href, promise);\n\t\trerouted = await promise;\n\t} catch (e) {\n\t\treroute_cache.delete(href);\n\t\treturn;\n\t}\n\treturn rerouted;\n}\n/**\n* Resolve the full info (which route, params, etc.) for a client-side navigation from the URL,\n* taking the reroute hook into account. If this isn't a client-side-navigation (or the URL is undefined),\n* returns undefined.\n* @param {URL | undefined} url\n* @param {boolean} invalidating\n* @returns {Promise<import('./types.js').NavigationIntent | undefined>}\n*/\nasync function get_navigation_intent(url, invalidating) {\n\tif (!url) return;\n\tif (is_external_url(url, base, app.hash)) return;\n\t{\n\t\tconst rerouted = await get_rerouted_url(url);\n\t\tif (!rerouted) return;\n\t\tconst path = get_url_path(rerouted);\n\t\tfor (const route of routes) {\n\t\t\tconst params = route.exec(path);\n\t\t\tif (params) return {\n\t\t\t\tid: get_page_key(url),\n\t\t\t\tinvalidating,\n\t\t\t\troute,\n\t\t\t\tparams: decode_params(params),\n\t\t\t\turl\n\t\t\t};\n\t\t}\n\t}\n}\n/** @param {URL} url */\nfunction get_url_path(url) {\n\treturn decode_pathname(app.hash ? url.hash.replace(/^#/, \"\").replace(/[?#].+/, \"\") : url.pathname.slice(base.length)) || \"/\";\n}\n/** @param {URL} url */\nfunction get_page_key(url) {\n\treturn (app.hash ? url.hash.replace(/^#/, \"\") : url.pathname) + url.search;\n}\n/**\n* @param {{\n* url: URL;\n* type: import('@sveltejs/kit').Navigation[\"type\"];\n* intent?: import('./types.js').NavigationIntent;\n* delta?: number;\n* event?: PopStateEvent | MouseEvent;\n* scroll?: { x: number, y: number };\n* }} opts\n*/\nfunction _before_navigate({ url, type, intent, delta, event, scroll }) {\n\tlet should_block = false;\n\tconst nav = create_navigation(current, intent, url, type, scroll ?? null);\n\tif (delta !== void 0) nav.navigation.delta = delta;\n\tif (event !== void 0) nav.navigation.event = event;\n\tconst cancellable = {\n\t\t...nav.navigation,\n\t\tcancel: () => {\n\t\t\tshould_block = true;\n\t\t\tnav.reject(/* @__PURE__ */ new Error(\"navigation cancelled\"));\n\t\t}\n\t};\n\tif (!is_navigating) before_navigate_callbacks.forEach((fn) => fn(cancellable));\n\treturn should_block ? null : nav;\n}\n/**\n* @param {{\n* type: import('@sveltejs/kit').NavigationType;\n* url: URL;\n* popped?: {\n* state: Record<string, any>;\n* scroll: { x: number, y: number };\n* delta: number;\n* };\n* keepfocus?: boolean;\n* noscroll?: boolean;\n* replace_state?: boolean;\n* state?: Record<string, any>;\n* redirect_count?: number;\n* nav_token?: {};\n* accept?: () => void;\n* block?: () => void;\n* event?: Event\n* }} opts\n*/\nasync function navigate({ type, url, popped, keepfocus, noscroll, replace_state, state = {}, redirect_count = 0, nav_token = {}, accept = noop, block = noop, event }) {\n\tconst prev_token = token;\n\ttoken = nav_token;\n\tconst intent = await get_navigation_intent(url, false);\n\tconst nav = type === \"enter\" ? create_navigation(current, intent, url, type) : _before_navigate({\n\t\turl,\n\t\ttype,\n\t\tdelta: popped?.delta,\n\t\tintent,\n\t\tscroll: popped?.scroll,\n\t\tevent\n\t});\n\tif (!nav) {\n\t\tblock();\n\t\tif (token === nav_token) token = prev_token;\n\t\treturn;\n\t}\n\tconst previous_history_index = current_history_index;\n\tconst previous_navigation_index = current_navigation_index;\n\taccept();\n\tis_navigating = true;\n\tif (started && nav.navigation.type !== \"enter\") stores.navigating.set(navigating.current = nav.navigation);\n\tlet navigation_result = intent && await load_route(intent);\n\tif (!navigation_result) if (is_external_url(url, base, app.hash)) return await native_navigation(url, replace_state);\n\telse navigation_result = await server_fallback(url, { id: null }, await handle_error(new SvelteKitError(404, \"Not Found\", `Not found: ${url.pathname}`), {\n\t\turl,\n\t\tparams: {},\n\t\troute: { id: null }\n\t}), 404, replace_state);\n\turl = intent?.url || url;\n\tif (token !== nav_token) {\n\t\tnav.reject(/* @__PURE__ */ new Error(\"navigation aborted\"));\n\t\treturn false;\n\t}\n\tif (navigation_result.type === \"redirect\") {\n\t\tif (redirect_count < 20) {\n\t\t\tawait navigate({\n\t\t\t\ttype,\n\t\t\t\turl: new URL(navigation_result.location, url),\n\t\t\t\tpopped,\n\t\t\t\tkeepfocus,\n\t\t\t\tnoscroll,\n\t\t\t\treplace_state,\n\t\t\t\tstate,\n\t\t\t\tredirect_count: redirect_count + 1,\n\t\t\t\tnav_token\n\t\t\t});\n\t\t\tnav.fulfil(void 0);\n\t\t\treturn;\n\t\t}\n\t\tnavigation_result = await load_root_error_page({\n\t\t\tstatus: 500,\n\t\t\terror: await handle_error(/* @__PURE__ */ new Error(\"Redirect loop\"), {\n\t\t\t\turl,\n\t\t\t\tparams: {},\n\t\t\t\troute: { id: null }\n\t\t\t}),\n\t\t\turl,\n\t\t\troute: { id: null }\n\t\t});\n\t} else if (navigation_result.props.page.status >= 400) {\n\t\tif (await stores.updated.check()) {\n\t\t\tawait update_service_worker();\n\t\t\tawait native_navigation(url, replace_state);\n\t\t}\n\t}\n\treset_invalidation();\n\tupdate_scroll_positions(previous_history_index);\n\tcapture_snapshot(previous_navigation_index);\n\tif (navigation_result.props.page.url.pathname !== url.pathname) url.pathname = navigation_result.props.page.url.pathname;\n\tstate = popped ? popped.state : state;\n\tif (!popped) {\n\t\tconst change = replace_state ? 0 : 1;\n\t\tconst entry = {\n\t\t\t[HISTORY_INDEX]: current_history_index += change,\n\t\t\t[NAVIGATION_INDEX]: current_navigation_index += change,\n\t\t\t[STATES_KEY]: state\n\t\t};\n\t\t(replace_state ? history.replaceState : history.pushState).call(history, entry, \"\", url);\n\t\tif (!replace_state) clear_onward_history(current_history_index, current_navigation_index);\n\t}\n\tconst load_cache_fork = intent && load_cache?.id === intent.id ? load_cache.fork : null;\n\tif (load_cache?.fork && !load_cache_fork) discard_load_cache();\n\tload_cache = null;\n\tnavigation_result.props.page.state = state;\n\t/**\n\t* @type {Promise<void> | undefined}\n\t*/\n\tlet commit_promise;\n\tif (started) {\n\t\tconst after_navigate = (await Promise.all(Array.from(on_navigate_callbacks, (fn) => fn(nav.navigation)))).filter(\n\t\t\t/** @returns {value is () => void} */\n\t\t\t(value) => typeof value === \"function\"\n\t\t);\n\t\tif (after_navigate.length > 0) {\n\t\t\tfunction cleanup() {\n\t\t\t\tafter_navigate.forEach((fn) => {\n\t\t\t\t\tafter_navigate_callbacks.delete(fn);\n\t\t\t\t});\n\t\t\t}\n\t\t\tafter_navigate.push(cleanup);\n\t\t\tafter_navigate.forEach((fn) => {\n\t\t\t\tafter_navigate_callbacks.add(fn);\n\t\t\t});\n\t\t}\n\t\tconst target = nav.navigation.to;\n\t\tcurrent = {\n\t\t\t...navigation_result.state,\n\t\t\tnav: {\n\t\t\t\tparams: target.params,\n\t\t\t\troute: target.route,\n\t\t\t\turl: target.url\n\t\t\t}\n\t\t};\n\t\tif (navigation_result.props.page) navigation_result.props.page.url = url;\n\t\tconst fork = load_cache_fork && await load_cache_fork;\n\t\tif (fork) commit_promise = fork.commit();\n\t\telse {\n\t\t\trendering_error = null;\n\t\t\troot.$set(navigation_result.props);\n\t\t\tif (rendering_error) Object.assign(navigation_result.props.page, rendering_error);\n\t\t\tupdate(navigation_result.props.page);\n\t\t\tcommit_promise = settled?.();\n\t\t}\n\t} else await initialize(navigation_result, target, false);\n\tconst { activeElement } = document;\n\tawait commit_promise;\n\tawait tick$1();\n\tawait tick$1();\n\t/** @type {Element | null | ''} */\n\tlet deep_linked = null;\n\tif (autoscroll) {\n\t\tconst scroll = popped ? popped.scroll : noscroll ? scroll_state() : null;\n\t\tif (scroll) scrollTo(scroll.x, scroll.y);\n\t\telse if (deep_linked = url.hash && document.getElementById(get_id(url))) deep_linked.scrollIntoView();\n\t\telse scrollTo(0, 0);\n\t}\n\tconst changed_focus = document.activeElement !== activeElement && document.activeElement !== document.body;\n\tif (!keepfocus && !changed_focus) reset_focus(url, !deep_linked);\n\tautoscroll = true;\n\tif (navigation_result.props.page) {\n\t\tif (rendering_error) Object.assign(navigation_result.props.page, rendering_error);\n\t\tObject.assign(page, navigation_result.props.page);\n\t}\n\tis_navigating = false;\n\tif (type === \"popstate\") restore_snapshot(current_navigation_index);\n\tnav.fulfil(void 0);\n\tif (nav.navigation.to) nav.navigation.to.scroll = scroll_state();\n\tafter_navigate_callbacks.forEach((fn) => fn(nav.navigation));\n\tstores.navigating.set(navigating.current = null);\n}\n/**\n* Does a full page reload if it wouldn't result in an endless loop in the SPA case\n* @param {URL} url\n* @param {{ id: string | null }} route\n* @param {App.Error} error\n* @param {number} status\n* @param {boolean} [replace_state]\n* @returns {Promise<import('./types.js').NavigationFinished>}\n*/\nasync function server_fallback(url, route, error, status, replace_state) {\n\tif (url.origin === origin && url.pathname === location.pathname && !hydrated) return await load_root_error_page({\n\t\tstatus,\n\t\terror,\n\t\turl,\n\t\troute\n\t});\n\treturn await native_navigation(url, replace_state);\n}\n/**\n* @param {unknown} error\n* @param {import('@sveltejs/kit').NavigationEvent} event\n* @returns {import('types').MaybePromise<App.Error>}\n*/\nfunction handle_error(error, event) {\n\tif (error instanceof HttpError) return error.body;\n\tconst status = get_status(error);\n\tconst message = get_message(error);\n\treturn app.hooks.handleError({\n\t\terror,\n\t\tevent,\n\t\tstatus,\n\t\tmessage\n\t}) ?? { message };\n}\n/**\n* Allows you to navigate programmatically to a given route, with options such as keeping the current element focused.\n* Returns a Promise that resolves when SvelteKit navigates (or fails to navigate, in which case the promise rejects) to the specified `url`.\n*\n* For external URLs, use `window.location = url` instead of calling `goto(url)`.\n*\n* @param {string | URL} url Where to navigate to. Note that if you've set [`config.kit.paths.base`](https://svelte.dev/docs/kit/configuration#paths) and the URL is root-relative, you need to prepend the base path if you want to navigate within the app.\n* @param {Object} [opts] Options related to the navigation\n* @param {boolean} [opts.replaceState] If `true`, will replace the current `history` entry rather than creating a new one with `pushState`\n* @param {boolean} [opts.noScroll] If `true`, the browser will maintain its scroll position rather than scrolling to the top of the page after navigation\n* @param {boolean} [opts.keepFocus] If `true`, the currently focused element will retain focus after navigation. Otherwise, focus will be reset to the body\n* @param {boolean} [opts.invalidateAll] If `true`, all `load` functions of the page will be rerun. See https://svelte.dev/docs/kit/load#rerunning-load-functions for more info on invalidation.\n* @param {Array<string | URL | ((url: URL) => boolean)>} [opts.invalidate] Causes any load functions to re-run if they depend on one of the urls\n* @param {App.PageState} [opts.state] An optional object that will be available as `page.state`\n* @returns {Promise<void>}\n*/\nfunction goto(url, opts = {}) {\n\tthrow new Error(\"Cannot call goto(...) on the server\");\n}\n/**\n* @param {string | URL | ((url: URL) => boolean)} resource The invalidated URL\n*/\nfunction push_invalidated(resource) {\n\tif (typeof resource === \"function\") invalidated.push(resource);\n\telse {\n\t\tconst { href } = new URL(resource, location.href);\n\t\tinvalidated.push((url) => url.href === href);\n\t}\n}\n/**\n* @param {URL} url\n* @param {boolean[]} invalid\n* @returns {Promise<import('types').ServerNodesResponse | import('types').ServerRedirectNode>}\n*/\nasync function load_data(url, invalid) {\n\tconst data_url = new URL(url);\n\tdata_url.pathname = add_data_suffix(url.pathname);\n\tif (url.pathname.endsWith(\"/\")) data_url.searchParams.append(TRAILING_SLASH_PARAM, \"1\");\n\tdata_url.searchParams.append(INVALIDATED_PARAM, invalid.map((i) => i ? \"1\" : \"0\").join(\"\"));\n\tconst res = await (0, window.fetch)(data_url.href, {});\n\tif (!res.ok) {\n\t\t/** @type {string | undefined} */\n\t\tlet message;\n\t\tif (res.headers.get(\"content-type\")?.includes(\"application/json\")) message = await res.json();\n\t\telse if (res.status === 404) message = \"Not Found\";\n\t\telse if (res.status === 500) message = \"Internal Error\";\n\t\tthrow new HttpError(res.status, message);\n\t}\n\treturn new Promise(async (resolve) => {\n\t\t/**\n\t\t* Map of deferred promises that will be resolved by a subsequent chunk of data\n\t\t* @type {Map<string, import('types').Deferred>}\n\t\t*/\n\t\tconst deferreds = /* @__PURE__ */ new Map();\n\t\tconst reader = res.body.getReader();\n\t\t/**\n\t\t* @param {any} data\n\t\t*/\n\t\tfunction deserialize(data) {\n\t\t\treturn unflatten(data, {\n\t\t\t\t...app.decoders,\n\t\t\t\tPromise: (id) => {\n\t\t\t\t\treturn new Promise((fulfil, reject) => {\n\t\t\t\t\t\tdeferreds.set(id, {\n\t\t\t\t\t\t\tfulfil,\n\t\t\t\t\t\t\treject\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tlet text = \"\";\n\t\twhile (true) {\n\t\t\tconst { done, value } = await reader.read();\n\t\t\tif (done && !text) break;\n\t\t\ttext += !value && text ? \"\\n\" : text_decoder.decode(value, { stream: true });\n\t\t\twhile (true) {\n\t\t\t\tconst split = text.indexOf(\"\\n\");\n\t\t\t\tif (split === -1) break;\n\t\t\t\tconst node = JSON.parse(text.slice(0, split));\n\t\t\t\ttext = text.slice(split + 1);\n\t\t\t\tif (node.type === \"redirect\") return resolve(node);\n\t\t\t\tif (node.type === \"data\") {\n\t\t\t\t\tnode.nodes?.forEach((node) => {\n\t\t\t\t\t\tif (node?.type === \"data\") {\n\t\t\t\t\t\t\tnode.uses = deserialize_uses(node.uses);\n\t\t\t\t\t\t\tnode.data = deserialize(node.data);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tresolve(node);\n\t\t\t\t} else if (node.type === \"chunk\") {\n\t\t\t\t\tconst { id, data, error } = node;\n\t\t\t\t\tconst deferred = deferreds.get(id);\n\t\t\t\t\tdeferreds.delete(id);\n\t\t\t\t\tif (error) deferred.reject(deserialize(error));\n\t\t\t\t\telse deferred.fulfil(deserialize(data));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}\n/**\n* @param {any} uses\n* @return {import('types').Uses}\n*/\nfunction deserialize_uses(uses) {\n\treturn {\n\t\tdependencies: new Set(uses?.dependencies ?? []),\n\t\tparams: new Set(uses?.params ?? []),\n\t\tparent: !!uses?.parent,\n\t\troute: !!uses?.route,\n\t\turl: !!uses?.url,\n\t\tsearch_params: new Set(uses?.search_params ?? [])\n\t};\n}\n/**\n* @param {URL} url\n* @param {boolean} [scroll]\n*/\nfunction reset_focus(url, scroll = true) {\n\tconst autofocus = document.querySelector(\"[autofocus]\");\n\tif (autofocus) autofocus.focus();\n\telse {\n\t\tconst id = get_id(url);\n\t\tif (id && document.getElementById(id)) {\n\t\t\tconst { x, y } = scroll_state();\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst history_state = history.state;\n\t\t\t\tlocation.replace(new URL(`#${id}`, location.href));\n\t\t\t\thistory.replaceState(history_state, \"\", url);\n\t\t\t\tif (scroll) scrollTo(x, y);\n\t\t\t});\n\t\t} else {\n\t\t\tconst root = document.body;\n\t\t\tconst tabindex = root.getAttribute(\"tabindex\");\n\t\t\troot.tabIndex = -1;\n\t\t\troot.focus({\n\t\t\t\tpreventScroll: true,\n\t\t\t\tfocusVisible: false\n\t\t\t});\n\t\t\tif (tabindex !== null) root.setAttribute(\"tabindex\", tabindex);\n\t\t\telse root.removeAttribute(\"tabindex\");\n\t\t}\n\t\tconst selection = getSelection();\n\t\tif (selection && selection.type !== \"None\") {\n\t\t\t/** @type {Range[]} */\n\t\t\tconst ranges = [];\n\t\t\tfor (let i = 0; i < selection.rangeCount; i += 1) ranges.push(selection.getRangeAt(i));\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (selection.rangeCount !== ranges.length) return;\n\t\t\t\tfor (let i = 0; i < selection.rangeCount; i += 1) {\n\t\t\t\t\tconst a = ranges[i];\n\t\t\t\t\tconst b = selection.getRangeAt(i);\n\t\t\t\t\tif (a.commonAncestorContainer !== b.commonAncestorContainer || a.startContainer !== b.startContainer || a.endContainer !== b.endContainer || a.startOffset !== b.startOffset || a.endOffset !== b.endOffset) return;\n\t\t\t\t}\n\t\t\t\tselection.removeAllRanges();\n\t\t\t});\n\t\t}\n\t}\n}\n/**\n* @template {import('@sveltejs/kit').NavigationType} T\n* @param {import('./types.js').NavigationState} current\n* @param {import('./types.js').NavigationIntent | undefined} intent\n* @param {URL | null} url\n* @param {T} type\n* @param {{ x: number, y: number } | null} [target_scroll] The scroll position for the target (for popstate navigations)\n*/\nfunction create_navigation(current, intent, url, type, target_scroll = null) {\n\t/** @type {(value: any) => void} */\n\tlet fulfil;\n\t/** @type {(error: any) => void} */\n\tlet reject;\n\tconst complete = new Promise((f, r) => {\n\t\tfulfil = f;\n\t\treject = r;\n\t});\n\tcomplete.catch(noop);\n\treturn {\n\t\tnavigation: {\n\t\t\tfrom: {\n\t\t\t\tparams: current.params,\n\t\t\t\troute: { id: current.route?.id ?? null },\n\t\t\t\turl: current.url,\n\t\t\t\tscroll: scroll_state()\n\t\t\t},\n\t\t\tto: url && {\n\t\t\t\tparams: intent?.params ?? null,\n\t\t\t\troute: { id: intent?.route?.id ?? null },\n\t\t\t\turl,\n\t\t\t\tscroll: target_scroll\n\t\t\t},\n\t\t\twillUnload: !intent,\n\t\t\ttype,\n\t\t\tcomplete\n\t\t},\n\t\tfulfil,\n\t\treject\n\t};\n}\n/**\n* TODO: remove this in 3.0 when the page store is also removed\n*\n* We need to assign a new page object so that subscribers are correctly notified.\n* However, spreading `{ ...page }` returns an empty object so we manually\n* assign to each property instead.\n*\n* @param {import('@sveltejs/kit').Page} page\n*/\nfunction clone_page(page) {\n\treturn {\n\t\tdata: page.data,\n\t\terror: page.error,\n\t\tform: page.form,\n\t\tparams: page.params,\n\t\troute: page.route,\n\t\tstate: page.state,\n\t\tstatus: page.status,\n\t\turl: page.url\n\t};\n}\n/**\n* @param {URL} url\n* @returns {string}\n*/\nfunction get_id(url) {\n\tlet id;\n\tif (app.hash) {\n\t\tconst [, , second] = url.hash.split(\"#\", 3);\n\t\tid = second ?? \"\";\n\t} else id = url.hash.slice(1);\n\treturn decodeURIComponent(id);\n}\n//#endregion\nexport { updated as a, page as i, stores as n, navigating as r, goto as t };\n"],"names":["noop$1"],"mappings":";;;;;;AAwKA,IAAI,SAAS,GAAGA,IAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAACA,IAAM,CAAC,QAAQ,EAAE,CAAC;AACnG,IAAI,eAAe,GAAG,IAAI;AAC1B,IAAI,SAAS,EAAE;AACf,EAAQ;AACR,EAAE,IAAI,EAAE,EAAE;AACV,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,EAAE;AACZ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;AACrB,EAAE,KAAK,EAAE,EAAE;AACX,EAAE,MAAM,EAAE,EAAE;AACZ,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,eAAe;AAC9B,GAAE;AAGF;AAyBA;AACA;AACA;AACA,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,oBAAoB;AAw+B5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE;AAC9B,CAAC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC;AACvD;;;;"}
|
|
1
|
+
{"version":3,"file":"client-D6kcmtib.js","sources":["../../../.svelte-kit/adapter-node/chunks/client.js"],"sourcesContent":["import { C as noop, S as unflatten, f as get_message, h as base64_decode, n as TRAILING_SLASH_PARAM, p as get_status, t as INVALIDATED_PARAM, v as text_decoder } from \"./shared.js\";\nimport { d as base } from \"./environment.js\";\nimport { Q as noop$1, k as writable } from \"./dev.js\";\nimport { S as compact, f as make_trackable, g as add_data_suffix, h as noop_span, l as decode_params, p as normalize_path, s as hash, u as decode_pathname } from \"./exports.js\";\nimport { i as tick$1, r as settled, t as index_server_exports } from \"./index-server.js\";\nimport \"./internal.js\";\nimport { HttpError, Redirect, SvelteKitError } from \"@sveltejs/kit/internal\";\nimport \"@sveltejs/kit/internal/server\";\nvar cache = /* @__PURE__ */ new Map();\n/**\n* Should be called on the initial run of load functions that hydrate the page.\n* Saves any requests with cache-control max-age to the cache.\n* @param {URL | string} resource\n* @param {RequestInit} [opts]\n*/\nfunction initial_fetch(resource, opts) {\n\tconst selector = build_selector(resource, opts);\n\tconst script = document.querySelector(selector);\n\tif (script?.textContent) {\n\t\tscript.remove();\n\t\tlet { body, ...init } = JSON.parse(script.textContent);\n\t\tconst ttl = script.getAttribute(\"data-ttl\");\n\t\tif (ttl) cache.set(selector, {\n\t\t\tbody,\n\t\t\tinit,\n\t\t\tttl: 1e3 * Number(ttl)\n\t\t});\n\t\tif (script.getAttribute(\"data-b64\") !== null) body = base64_decode(body);\n\t\treturn Promise.resolve(new Response(body, init));\n\t}\n\treturn window.fetch(resource, opts);\n}\n/**\n* Tries to get the response from the cache, if max-age allows it, else does a fetch.\n* @param {URL | string} resource\n* @param {string} resolved\n* @param {RequestInit} [opts]\n*/\nfunction subsequent_fetch(resource, resolved, opts) {\n\tif (cache.size > 0) {\n\t\tconst selector = build_selector(resource, opts);\n\t\tconst cached = cache.get(selector);\n\t\tif (cached) {\n\t\t\tif (performance.now() < cached.ttl && [\n\t\t\t\t\"default\",\n\t\t\t\t\"force-cache\",\n\t\t\t\t\"only-if-cached\",\n\t\t\t\tvoid 0\n\t\t\t].includes(opts?.cache)) return new Response(cached.body, cached.init);\n\t\t\tcache.delete(selector);\n\t\t}\n\t}\n\treturn window.fetch(resolved, opts);\n}\n/**\n* Build the cache key for a given request\n* @param {URL | RequestInfo} resource\n* @param {RequestInit} [opts]\n*/\nfunction build_selector(resource, opts) {\n\tlet selector = `script[data-sveltekit-fetched][data-url=${JSON.stringify(resource instanceof Request ? resource.url : resource)}]`;\n\tif (opts?.headers || opts?.body) {\n\t\t/** @type {import('types').StrictBody[]} */\n\t\tconst values = [];\n\t\tif (opts.headers) values.push([...new Headers(opts.headers)].join(\",\"));\n\t\tif (opts.body && (typeof opts.body === \"string\" || ArrayBuffer.isView(opts.body))) values.push(opts.body);\n\t\tselector += `[data-hash=\"${hash(...values)}\"]`;\n\t}\n\treturn selector;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/@sveltejs+kit@2.57.1_@opentelemetry+api@1.9.0_@sveltejs+vite-plugin-svelte@5.1.1_svelte_e94e6db60b0c5f7146157d0facbe8042/node_modules/@sveltejs/kit/src/runtime/client/session-storage.js\n/**\n* Read a value from `sessionStorage`\n* @param {string} key\n* @param {(value: string) => any} parse\n*/\n/* @__NO_SIDE_EFFECTS__ */\nfunction get(key, parse = JSON.parse) {\n\ttry {\n\t\treturn parse(sessionStorage[key]);\n\t} catch {}\n}\nvar STATES_KEY = \"sveltekit:states\";\nvar HISTORY_INDEX = \"sveltekit:history\";\nvar NAVIGATION_INDEX = \"sveltekit:navigation\";\nvar PRELOAD_PRIORITIES = {\n\ttap: 1,\n\thover: 2,\n\tviewport: 3,\n\teager: 4,\n\toff: -1,\n\tfalse: -1\n};\n//#endregion\n//#region ../../node_modules/.pnpm/@sveltejs+kit@2.57.1_@opentelemetry+api@1.9.0_@sveltejs+vite-plugin-svelte@5.1.1_svelte_e94e6db60b0c5f7146157d0facbe8042/node_modules/@sveltejs/kit/src/runtime/client/utils.js\nvar origin = \"\";\n/** @param {string | URL} url */\nfunction resolve_url(url) {\n\tif (url instanceof URL) return url;\n\tlet baseURI = document.baseURI;\n\tif (!baseURI) {\n\t\tconst baseTags = document.getElementsByTagName(\"base\");\n\t\tbaseURI = baseTags.length ? baseTags[0].href : document.URL;\n\t}\n\treturn new URL(url, baseURI);\n}\nfunction scroll_state() {\n\treturn {\n\t\tx: pageXOffset,\n\t\ty: pageYOffset\n\t};\n}\n({ ...PRELOAD_PRIORITIES }), PRELOAD_PRIORITIES.hover;\n/** @param {any} value */\nfunction notifiable_store(value) {\n\tconst store = writable(value);\n\tlet ready = true;\n\tfunction notify() {\n\t\tready = true;\n\t\tstore.update((val) => val);\n\t}\n\t/** @param {any} new_value */\n\tfunction set(new_value) {\n\t\tready = false;\n\t\tstore.set(new_value);\n\t}\n\t/** @param {(value: any) => void} run */\n\tfunction subscribe(run) {\n\t\t/** @type {any} */\n\t\tlet old_value;\n\t\treturn store.subscribe((new_value) => {\n\t\t\tif (old_value === void 0 || ready && new_value !== old_value) run(old_value = new_value);\n\t\t});\n\t}\n\treturn {\n\t\tnotify,\n\t\tset,\n\t\tsubscribe\n\t};\n}\nvar updated_listener = { v: noop };\nfunction create_updated_store() {\n\tconst { set, subscribe } = writable(false);\n\treturn {\n\t\tsubscribe,\n\t\tcheck: async () => false\n\t};\n}\n/**\n* Is external if\n* - origin different\n* - path doesn't start with base\n* - uses hash router and pathname is more than base\n* @param {URL} url\n* @param {string} base\n* @param {boolean} hash_routing\n*/\nfunction is_external_url(url, base, hash_routing) {\n\tif (url.origin !== origin || !url.pathname.startsWith(base)) return true;\n\tif (hash_routing) return url.pathname !== location.pathname;\n\treturn false;\n}\n//#endregion\n//#region ../../node_modules/.pnpm/@sveltejs+kit@2.57.1_@opentelemetry+api@1.9.0_@sveltejs+vite-plugin-svelte@5.1.1_svelte_e94e6db60b0c5f7146157d0facbe8042/node_modules/@sveltejs/kit/src/runtime/client/state.svelte.js\nvar page;\nvar navigating;\nvar updated;\nvar is_legacy = noop$1.toString().includes(\"$$\") || /function \\w+\\(\\) \\{\\}/.test(noop$1.toString());\nvar placeholder_url = \"a:\";\nif (is_legacy) {\n\tpage = {\n\t\tdata: {},\n\t\tform: null,\n\t\terror: null,\n\t\tparams: {},\n\t\troute: { id: null },\n\t\tstate: {},\n\t\tstatus: -1,\n\t\turl: new URL(placeholder_url)\n\t};\n\tnavigating = { current: null };\n\tupdated = { current: false };\n} else {\n\tpage = new class Page {\n\t\tdata = {};\n\t\tform = null;\n\t\terror = null;\n\t\tparams = {};\n\t\troute = { id: null };\n\t\tstate = {};\n\t\tstatus = -1;\n\t\turl = new URL(placeholder_url);\n\t}();\n\tnavigating = new class Navigating {\n\t\tcurrent = null;\n\t}();\n\tupdated = new class Updated {\n\t\tcurrent = false;\n\t}();\n\tupdated_listener.v = () => updated.current = true;\n}\n/**\n* @param {import('@sveltejs/kit').Page} new_page\n*/\nfunction update(new_page) {\n\tObject.assign(page, new_page);\n}\n//#endregion\n//#region ../../node_modules/.pnpm/@sveltejs+kit@2.57.1_@opentelemetry+api@1.9.0_@sveltejs+vite-plugin-svelte@5.1.1_svelte_e94e6db60b0c5f7146157d0facbe8042/node_modules/@sveltejs/kit/src/runtime/client/client.js\n/** @import { RemoteQueryCacheEntry } from './remote-functions/query.svelte.js' */\nvar { onMount, tick } = index_server_exports;\n/**\n* Set via transformError, reset and read at the end of navigate.\n* Necessary because a navigation might succeed loading but during rendering\n* an error occurs, at which point the navigation result needs to be overridden with the error result.\n* TODO this is all very hacky, rethink for SvelteKit 3 where we can assume Svelte 5 and do an overhaul of client.js\n* @type {{ error: App.Error, status: number } | null}\n*/\nvar rendering_error = null;\n/**\n* history index -> { x, y }\n* @type {Record<number, { x: number; y: number }>}\n*/\nvar scroll_positions = /* @__PURE__ */ get(\"sveltekit:scroll\") ?? {};\n/**\n* navigation index -> any\n* @type {Record<string, any[]>}\n*/\nvar snapshots = /* @__PURE__ */ get(\"sveltekit:snapshot\") ?? {};\nvar stores = {\n\turl: /* @__PURE__ */ notifiable_store({}),\n\tpage: /* @__PURE__ */ notifiable_store({}),\n\tnavigating: /* @__PURE__ */ writable(null),\n\tupdated: /* @__PURE__ */ create_updated_store()\n};\n/** @param {number} index */\nfunction update_scroll_positions(index) {\n\tscroll_positions[index] = scroll_state();\n}\n/**\n* @param {number} current_history_index\n* @param {number} current_navigation_index\n*/\nfunction clear_onward_history(current_history_index, current_navigation_index) {\n\tlet i = current_history_index + 1;\n\twhile (scroll_positions[i]) {\n\t\tdelete scroll_positions[i];\n\t\ti += 1;\n\t}\n\ti = current_navigation_index + 1;\n\twhile (snapshots[i]) {\n\t\tdelete snapshots[i];\n\t\ti += 1;\n\t}\n}\n/**\n* Loads `href` the old-fashioned way, with a full page reload.\n* Returns a `Promise` that never resolves (to prevent any\n* subsequent work, e.g. history manipulation, from happening)\n* @param {URL} url\n* @param {boolean} [replace] If `true`, will replace the current `history` entry rather than creating a new one with `pushState`\n*/\nfunction native_navigation(url, replace = false) {\n\tif (replace) location.replace(url.href);\n\telse location.href = url.href;\n\treturn new Promise(noop);\n}\n/**\n* Checks whether a service worker is registered, and if it is,\n* tries to update it.\n*/\nasync function update_service_worker() {\n\tif (\"serviceWorker\" in navigator) {\n\t\tconst registration = await navigator.serviceWorker.getRegistration(base || \"/\");\n\t\tif (registration) await registration.update();\n\t}\n}\n/** @type {import('types').CSRRoute[]} All routes of the app. Only available when kit.router.resolution=client */\nvar routes;\n/** @type {import('types').CSRPageNodeLoader} */\nvar default_layout_loader;\n/** @type {import('types').CSRPageNodeLoader} */\nvar default_error_loader;\n/** @type {HTMLElement} */\nvar target;\n/** @type {import('./types.js').SvelteKitApp} */\nvar app;\n/** @type {Array<((url: URL) => boolean)>} */\nvar invalidated = [];\n/**\n* An array of the `+layout.svelte` and `+page.svelte` component instances\n* that currently live on the page — used for capturing and restoring snapshots.\n* It's updated/manipulated through `bind:this` in `Root.svelte`.\n* @type {import('svelte').SvelteComponent[]}\n*/\nvar components = [];\n/** @type {{id: string, token: {}, promise: Promise<import('./types.js').NavigationResult>, fork: Promise<import('svelte').Fork | null> | null} | null} */\nvar load_cache = null;\nfunction discard_load_cache() {\n\tload_cache?.fork?.then((f) => f?.discard());\n\tload_cache = null;\n}\n/**\n* @type {Map<string, Promise<URL>>}\n* Cache for client-side rerouting, since it could contain async calls which we want to\n* avoid running multiple times which would slow down navigations (e.g. else preloading\n* wouldn't help because on navigation it would be called again). Since `reroute` should be\n* a pure function (i.e. always return the same) value it's safe to cache across navigations.\n* The server reroute calls don't need to be cached because they are called using `import(...)`\n* which is cached per the JS spec.\n*/\nvar reroute_cache = /* @__PURE__ */ new Map();\n/**\n* Note on before_navigate_callbacks, on_navigate_callbacks and after_navigate_callbacks:\n* do not re-assign as some closures keep references to these Sets\n*/\n/** @type {Set<(navigation: import('@sveltejs/kit').BeforeNavigate) => void>} */\nvar before_navigate_callbacks = /* @__PURE__ */ new Set();\n/** @type {Set<(navigation: import('@sveltejs/kit').OnNavigate) => import('types').MaybePromise<(() => void) | void>>} */\nvar on_navigate_callbacks = /* @__PURE__ */ new Set();\n/** @type {Set<(navigation: import('@sveltejs/kit').AfterNavigate) => void>} */\nvar after_navigate_callbacks = /* @__PURE__ */ new Set();\n/** @type {import('./types.js').NavigationState & { nav: import('@sveltejs/kit').NavigationEvent }} */\nvar current = {\n\tbranch: [],\n\terror: null,\n\turl: null,\n\tnav: null\n};\n/** this being true means we SSR'd */\nvar hydrated = false;\nvar started = false;\nvar autoscroll = true;\nvar is_navigating = false;\nvar force_invalidation = false;\n/** @type {import('svelte').SvelteComponent} */\nvar root;\n/** @type {number} keeping track of the history index in order to prevent popstate navigation events if needed */\nvar current_history_index;\n/** @type {number} */\nvar current_navigation_index;\n/** @type {{}} */\nvar token;\n/**\n* A set of tokens which are associated to current preloads.\n* If a preload becomes a real navigation, it's removed from the set.\n* If a preload token is in the set and the preload errors, the error\n* handling logic (for example reloading) is skipped.\n*/\nvar preload_tokens = /* @__PURE__ */ new Set();\n/**\n* @type {Map<string, Map<string, RemoteQueryCacheEntry<any>>>}\n* A map of query id -> payload -> query internals for all active queries.\n*/\nvar query_map = /* @__PURE__ */ new Map();\nfunction reset_invalidation() {\n\tinvalidated.length = 0;\n\tforce_invalidation = false;\n}\n/** @param {number} index */\nfunction capture_snapshot(index) {\n\tif (components.some((c) => c?.snapshot)) snapshots[index] = components.map((c) => c?.snapshot?.capture());\n}\n/** @param {number} index */\nfunction restore_snapshot(index) {\n\tsnapshots[index]?.forEach((value, i) => {\n\t\tcomponents[i]?.snapshot?.restore(value);\n\t});\n}\n/**\n* @param {string | URL} url\n* @param {{ replaceState?: boolean; noScroll?: boolean; keepFocus?: boolean; invalidateAll?: boolean; invalidate?: Array<string | URL | ((url: URL) => boolean)>; state?: Record<string, any> }} options\n* @param {number} redirect_count\n* @param {{}} [nav_token]\n*/\nasync function _goto(url, options, redirect_count, nav_token) {\n\t/** @type {string[]} */\n\tlet query_keys;\n\tif (options.invalidateAll) discard_load_cache();\n\tawait navigate({\n\t\ttype: \"goto\",\n\t\turl: resolve_url(url),\n\t\tkeepfocus: options.keepFocus,\n\t\tnoscroll: options.noScroll,\n\t\treplace_state: options.replaceState,\n\t\tstate: options.state,\n\t\tredirect_count,\n\t\tnav_token,\n\t\taccept: () => {\n\t\t\tif (options.invalidateAll) {\n\t\t\t\tforce_invalidation = true;\n\t\t\t\tquery_keys = [];\n\t\t\t\tquery_map.forEach((entries, id) => {\n\t\t\t\t\tfor (const payload of entries.keys()) query_keys.push(id + \"/\" + payload);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (options.invalidate) options.invalidate.forEach(push_invalidated);\n\t\t}\n\t});\n\tif (options.invalidateAll) tick$1().then(tick$1).then(() => {\n\t\tquery_map.forEach((entries, id) => {\n\t\t\tentries.forEach(({ resource }, payload) => {\n\t\t\t\tif (query_keys?.includes(id + \"/\" + payload)) resource.refresh?.();\n\t\t\t});\n\t\t});\n\t});\n}\n/**\n* @param {import('./types.js').NavigationFinished} result\n* @param {HTMLElement} target\n* @param {boolean} hydrate\n*/\nasync function initialize(result, target, hydrate) {\n\t/** @type {import('@sveltejs/kit').NavigationEvent} */\n\tconst nav = {\n\t\tparams: current.params,\n\t\troute: { id: current.route?.id ?? null },\n\t\turl: new URL(location.href)\n\t};\n\tcurrent = {\n\t\t...result.state,\n\t\tnav\n\t};\n\tconst style = document.querySelector(\"style[data-sveltekit]\");\n\tif (style) style.remove();\n\tObject.assign(page, result.props.page);\n\troot = new app.root({\n\t\ttarget,\n\t\tprops: {\n\t\t\t...result.props,\n\t\t\tstores,\n\t\t\tcomponents\n\t\t},\n\t\thydrate,\n\t\tsync: false,\n\t\ttransformError: void 0\n\t});\n\tawait Promise.resolve();\n\trestore_snapshot(current_navigation_index);\n\tif (hydrate) {\n\t\t/** @type {import('@sveltejs/kit').AfterNavigate} */\n\t\tconst navigation = {\n\t\t\tfrom: null,\n\t\t\tto: {\n\t\t\t\t...nav,\n\t\t\t\tscroll: scroll_positions[current_history_index] ?? scroll_state()\n\t\t\t},\n\t\t\twillUnload: false,\n\t\t\ttype: \"enter\",\n\t\t\tcomplete: Promise.resolve()\n\t\t};\n\t\tafter_navigate_callbacks.forEach((fn) => fn(navigation));\n\t}\n\tstarted = true;\n}\n/**\n*\n* @param {{\n* url: URL;\n* params: Record<string, string>;\n* branch: Array<import('./types.js').BranchNode | undefined>;\n* errors?: Array<import('types').CSRPageNodeLoader | undefined>;\n* status: number;\n* error: App.Error | null;\n* route: import('types').CSRRoute | null;\n* form?: Record<string, any> | null;\n* }} opts\n*/\nasync function get_navigation_result_from_branch({ url, params, branch, errors, status, error, route, form }) {\n\t/** @type {import('types').TrailingSlash} */\n\tlet slash = \"never\";\n\tif (base && (url.pathname === base || url.pathname === base + \"/\")) slash = \"always\";\n\telse for (const node of branch) if (node?.slash !== void 0) slash = node.slash;\n\turl.pathname = normalize_path(url.pathname, slash);\n\turl.search = url.search;\n\t/** @type {import('./types.js').NavigationFinished} */\n\tconst result = {\n\t\ttype: \"loaded\",\n\t\tstate: {\n\t\t\turl,\n\t\t\tparams,\n\t\t\tbranch,\n\t\t\terror,\n\t\t\troute\n\t\t},\n\t\tprops: {\n\t\t\tconstructors: compact(branch).map((branch_node) => branch_node.node.component),\n\t\t\tpage: clone_page(page)\n\t\t}\n\t};\n\tif (form !== void 0) result.props.form = form;\n\tlet data = {};\n\tlet data_changed = !page;\n\tlet p = 0;\n\tfor (let i = 0; i < Math.max(branch.length, current.branch.length); i += 1) {\n\t\tconst node = branch[i];\n\t\tconst prev = current.branch[i];\n\t\tif (node?.data !== prev?.data) data_changed = true;\n\t\tif (!node) continue;\n\t\tdata = {\n\t\t\t...data,\n\t\t\t...node.data\n\t\t};\n\t\tif (data_changed) result.props[`data_${p}`] = data;\n\t\tp += 1;\n\t}\n\tif (!current.url || url.href !== current.url.href || current.error !== error || form !== void 0 && form !== page.form || data_changed) result.props.page = {\n\t\terror,\n\t\tparams,\n\t\troute: { id: route?.id ?? null },\n\t\tstate: {},\n\t\tstatus,\n\t\turl: new URL(url),\n\t\tform: form ?? null,\n\t\tdata: data_changed ? data : page.data\n\t};\n\treturn result;\n}\n/**\n* Call the universal load function of the given node, if it exists.\n*\n* @param {{\n* loader: import('types').CSRPageNodeLoader;\n* \t parent: () => Promise<Record<string, any>>;\n* url: URL;\n* params: Record<string, string>;\n* route: { id: string | null };\n* \t server_data_node: import('./types.js').DataNode | null;\n* }} options\n* @returns {Promise<import('./types.js').BranchNode>}\n*/\nasync function load_node({ loader, parent, url, params, route, server_data_node }) {\n\t/** @type {Record<string, any> | null} */\n\tlet data = null;\n\tlet is_tracking = true;\n\t/** @type {import('types').Uses} */\n\tconst uses = {\n\t\tdependencies: /* @__PURE__ */ new Set(),\n\t\tparams: /* @__PURE__ */ new Set(),\n\t\tparent: false,\n\t\troute: false,\n\t\turl: false,\n\t\tsearch_params: /* @__PURE__ */ new Set()\n\t};\n\tconst node = await loader();\n\tif (node.universal?.load) {\n\t\t/** @param {string[]} deps */\n\t\tfunction depends(...deps) {\n\t\t\tfor (const dep of deps) {\n\t\t\t\tconst { href } = new URL(dep, url);\n\t\t\t\tuses.dependencies.add(href);\n\t\t\t}\n\t\t}\n\t\t/** @type {import('@sveltejs/kit').LoadEvent} */\n\t\tconst load_input = {\n\t\t\ttracing: {\n\t\t\t\tenabled: false,\n\t\t\t\troot: noop_span,\n\t\t\t\tcurrent: noop_span\n\t\t\t},\n\t\t\troute: new Proxy(route, { get: (target, key) => {\n\t\t\t\tif (is_tracking) uses.route = true;\n\t\t\t\treturn target[key];\n\t\t\t} }),\n\t\t\tparams: new Proxy(params, { get: (target, key) => {\n\t\t\t\tif (is_tracking) uses.params.add(key);\n\t\t\t\treturn target[key];\n\t\t\t} }),\n\t\t\tdata: server_data_node?.data ?? null,\n\t\t\turl: make_trackable(url, () => {\n\t\t\t\tif (is_tracking) uses.url = true;\n\t\t\t}, (param) => {\n\t\t\t\tif (is_tracking) uses.search_params.add(param);\n\t\t\t}, app.hash),\n\t\t\tasync fetch(resource, init) {\n\t\t\t\tif (resource instanceof Request) init = {\n\t\t\t\t\tbody: resource.method === \"GET\" || resource.method === \"HEAD\" ? void 0 : await resource.blob(),\n\t\t\t\t\tcache: resource.cache,\n\t\t\t\t\tcredentials: resource.credentials,\n\t\t\t\t\theaders: [...resource.headers].length > 0 ? resource?.headers : void 0,\n\t\t\t\t\tintegrity: resource.integrity,\n\t\t\t\t\tkeepalive: resource.keepalive,\n\t\t\t\t\tmethod: resource.method,\n\t\t\t\t\tmode: resource.mode,\n\t\t\t\t\tredirect: resource.redirect,\n\t\t\t\t\treferrer: resource.referrer,\n\t\t\t\t\treferrerPolicy: resource.referrerPolicy,\n\t\t\t\t\tsignal: resource.signal,\n\t\t\t\t\t...init\n\t\t\t\t};\n\t\t\t\tconst { resolved, promise } = resolve_fetch_url(resource, init, url);\n\t\t\t\tif (is_tracking) depends(resolved.href);\n\t\t\t\treturn promise;\n\t\t\t},\n\t\t\tsetHeaders: noop,\n\t\t\tdepends,\n\t\t\tparent() {\n\t\t\t\tif (is_tracking) uses.parent = true;\n\t\t\t\treturn parent();\n\t\t\t},\n\t\t\tuntrack(fn) {\n\t\t\t\tis_tracking = false;\n\t\t\t\ttry {\n\t\t\t\t\treturn fn();\n\t\t\t\t} finally {\n\t\t\t\t\tis_tracking = true;\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\tdata = await node.universal.load.call(null, load_input) ?? null;\n\t}\n\treturn {\n\t\tnode,\n\t\tloader,\n\t\tserver: server_data_node,\n\t\tuniversal: node.universal?.load ? {\n\t\t\ttype: \"data\",\n\t\t\tdata,\n\t\t\tuses\n\t\t} : null,\n\t\tdata: data ?? server_data_node?.data ?? null,\n\t\tslash: node.universal?.trailingSlash ?? server_data_node?.slash\n\t};\n}\n/**\n* @param {Request | string | URL} input\n* @param {RequestInit | undefined} init\n* @param {URL} url\n*/\nfunction resolve_fetch_url(input, init, url) {\n\tlet requested = input instanceof Request ? input.url : input;\n\tconst resolved = new URL(requested, url);\n\tif (resolved.origin === url.origin) requested = resolved.href.slice(url.origin.length);\n\treturn {\n\t\tresolved,\n\t\tpromise: started ? subsequent_fetch(requested, resolved.href, init) : initial_fetch(requested, init)\n\t};\n}\n/**\n* @param {boolean} parent_changed\n* @param {boolean} route_changed\n* @param {boolean} url_changed\n* @param {Set<string>} search_params_changed\n* @param {import('types').Uses | undefined} uses\n* @param {Record<string, string>} params\n*/\nfunction has_changed(parent_changed, route_changed, url_changed, search_params_changed, uses, params) {\n\tif (force_invalidation) return true;\n\tif (!uses) return false;\n\tif (uses.parent && parent_changed) return true;\n\tif (uses.route && route_changed) return true;\n\tif (uses.url && url_changed) return true;\n\tfor (const tracked_params of uses.search_params) if (search_params_changed.has(tracked_params)) return true;\n\tfor (const param of uses.params) if (params[param] !== current.params[param]) return true;\n\tfor (const href of uses.dependencies) if (invalidated.some((fn) => fn(new URL(href)))) return true;\n\treturn false;\n}\n/**\n* @param {import('types').ServerDataNode | import('types').ServerDataSkippedNode | null} node\n* @param {import('./types.js').DataNode | null} [previous]\n* @returns {import('./types.js').DataNode | null}\n*/\nfunction create_data_node(node, previous) {\n\tif (node?.type === \"data\") return node;\n\tif (node?.type === \"skip\") return previous ?? null;\n\treturn null;\n}\n/**\n* @param {URL | null} old_url\n* @param {URL} new_url\n*/\nfunction diff_search_params(old_url, new_url) {\n\tif (!old_url) return new Set(new_url.searchParams.keys());\n\tconst changed = new Set([...old_url.searchParams.keys(), ...new_url.searchParams.keys()]);\n\tfor (const key of changed) {\n\t\tconst old_values = old_url.searchParams.getAll(key);\n\t\tconst new_values = new_url.searchParams.getAll(key);\n\t\tif (old_values.every((value) => new_values.includes(value)) && new_values.every((value) => old_values.includes(value))) changed.delete(key);\n\t}\n\treturn changed;\n}\n/**\n* @param {Omit<import('./types.js').NavigationFinished['state'], 'branch'> & { error: App.Error }} opts\n* @returns {import('./types.js').NavigationFinished}\n*/\nfunction preload_error({ error, url, route, params }) {\n\treturn {\n\t\ttype: \"loaded\",\n\t\tstate: {\n\t\t\terror,\n\t\t\turl,\n\t\t\troute,\n\t\t\tparams,\n\t\t\tbranch: []\n\t\t},\n\t\tprops: {\n\t\t\tpage: clone_page(page),\n\t\t\tconstructors: []\n\t\t}\n\t};\n}\n/**\n* @param {import('./types.js').NavigationIntent & { preload?: {} }} intent\n* @returns {Promise<import('./types.js').NavigationResult>}\n*/\nasync function load_route({ id, invalidating, url, params, route, preload }) {\n\tif (load_cache?.id === id) {\n\t\tpreload_tokens.delete(load_cache.token);\n\t\treturn load_cache.promise;\n\t}\n\tconst { errors, layouts, leaf } = route;\n\tconst loaders = [...layouts, leaf];\n\terrors.forEach((loader) => loader?.().catch(noop));\n\tloaders.forEach((loader) => loader?.[1]().catch(noop));\n\t/** @type {import('types').ServerNodesResponse | import('types').ServerRedirectNode | null} */\n\tlet server_data = null;\n\tconst url_changed = current.url ? id !== get_page_key(current.url) : false;\n\tconst route_changed = current.route ? route.id !== current.route.id : false;\n\tconst search_params_changed = diff_search_params(current.url, url);\n\tlet parent_invalid = false;\n\t{\n\t\tconst invalid_server_nodes = loaders.map((loader, i) => {\n\t\t\tconst previous = current.branch[i];\n\t\t\tconst invalid = !!loader?.[0] && (previous?.loader !== loader[1] || has_changed(parent_invalid, route_changed, url_changed, search_params_changed, previous.server?.uses, params));\n\t\t\tif (invalid) parent_invalid = true;\n\t\t\treturn invalid;\n\t\t});\n\t\tif (invalid_server_nodes.some(Boolean)) {\n\t\t\ttry {\n\t\t\t\tserver_data = await load_data(url, invalid_server_nodes);\n\t\t\t} catch (error) {\n\t\t\t\tconst handled_error = await handle_error(error, {\n\t\t\t\t\turl,\n\t\t\t\t\tparams,\n\t\t\t\t\troute: { id }\n\t\t\t\t});\n\t\t\t\tif (preload_tokens.has(preload)) return preload_error({\n\t\t\t\t\terror: handled_error,\n\t\t\t\t\turl,\n\t\t\t\t\tparams,\n\t\t\t\t\troute\n\t\t\t\t});\n\t\t\t\treturn load_root_error_page({\n\t\t\t\t\tstatus: get_status(error),\n\t\t\t\t\terror: handled_error,\n\t\t\t\t\turl,\n\t\t\t\t\troute\n\t\t\t\t});\n\t\t\t}\n\t\t\tif (server_data.type === \"redirect\") return server_data;\n\t\t}\n\t}\n\tconst server_data_nodes = server_data?.nodes;\n\tlet parent_changed = false;\n\tconst branch_promises = loaders.map(async (loader, i) => {\n\t\tif (!loader) return;\n\t\t/** @type {import('./types.js').BranchNode | undefined} */\n\t\tconst previous = current.branch[i];\n\t\tconst server_data_node = server_data_nodes?.[i];\n\t\tif ((!server_data_node || server_data_node.type === \"skip\") && loader[1] === previous?.loader && !has_changed(parent_changed, route_changed, url_changed, search_params_changed, previous.universal?.uses, params)) return previous;\n\t\tparent_changed = true;\n\t\tif (server_data_node?.type === \"error\") throw server_data_node;\n\t\treturn load_node({\n\t\t\tloader: loader[1],\n\t\t\turl,\n\t\t\tparams,\n\t\t\troute,\n\t\t\tparent: async () => {\n\t\t\t\tconst data = {};\n\t\t\t\tfor (let j = 0; j < i; j += 1) Object.assign(data, (await branch_promises[j])?.data);\n\t\t\t\treturn data;\n\t\t\t},\n\t\t\tserver_data_node: create_data_node(server_data_node === void 0 && loader[0] ? { type: \"skip\" } : server_data_node ?? null, loader[0] ? previous?.server : void 0)\n\t\t});\n\t});\n\tfor (const p of branch_promises) p.catch(noop);\n\t/** @type {Array<import('./types.js').BranchNode | undefined>} */\n\tconst branch = [];\n\tfor (let i = 0; i < loaders.length; i += 1) if (loaders[i]) try {\n\t\tbranch.push(await branch_promises[i]);\n\t} catch (err) {\n\t\tif (err instanceof Redirect) return {\n\t\t\ttype: \"redirect\",\n\t\t\tlocation: err.location\n\t\t};\n\t\tif (preload_tokens.has(preload)) return preload_error({\n\t\t\terror: await handle_error(err, {\n\t\t\t\tparams,\n\t\t\t\turl,\n\t\t\t\troute: { id: route.id }\n\t\t\t}),\n\t\t\turl,\n\t\t\tparams,\n\t\t\troute\n\t\t});\n\t\tlet status = get_status(err);\n\t\t/** @type {App.Error} */\n\t\tlet error;\n\t\tif (server_data_nodes?.includes(err)) {\n\t\t\tstatus = err.status ?? status;\n\t\t\terror = err.error;\n\t\t} else if (err instanceof HttpError) error = err.body;\n\t\telse {\n\t\t\tif (await stores.updated.check()) {\n\t\t\t\tawait update_service_worker();\n\t\t\t\treturn await native_navigation(url);\n\t\t\t}\n\t\t\terror = await handle_error(err, {\n\t\t\t\tparams,\n\t\t\t\turl,\n\t\t\t\troute: { id: route.id }\n\t\t\t});\n\t\t}\n\t\tconst error_load = await load_nearest_error_page(i, branch, errors);\n\t\tif (error_load) return get_navigation_result_from_branch({\n\t\t\turl,\n\t\t\tparams,\n\t\t\tbranch: branch.slice(0, error_load.idx).concat(error_load.node),\n\t\t\terrors,\n\t\t\tstatus,\n\t\t\terror,\n\t\t\troute\n\t\t});\n\t\telse return await server_fallback(url, { id: route.id }, error, status);\n\t}\n\telse branch.push(void 0);\n\treturn get_navigation_result_from_branch({\n\t\turl,\n\t\tparams,\n\t\tbranch,\n\t\terrors,\n\t\tstatus: 200,\n\t\terror: null,\n\t\troute,\n\t\tform: invalidating ? void 0 : null\n\t});\n}\n/**\n* @param {number} i Start index to backtrack from\n* @param {Array<import('./types.js').BranchNode | undefined>} branch Branch to backtrack\n* @param {Array<import('types').CSRPageNodeLoader | undefined>} errors All error pages for this branch\n* @returns {Promise<{idx: number; node: import('./types.js').BranchNode} | undefined>}\n*/\nasync function load_nearest_error_page(i, branch, errors) {\n\twhile (i--) if (errors[i]) {\n\t\tlet j = i;\n\t\twhile (!branch[j]) j -= 1;\n\t\ttry {\n\t\t\treturn {\n\t\t\t\tidx: j + 1,\n\t\t\t\tnode: {\n\t\t\t\t\tnode: await errors[i](),\n\t\t\t\t\tloader: errors[i],\n\t\t\t\t\tdata: {},\n\t\t\t\t\tserver: null,\n\t\t\t\t\tuniversal: null\n\t\t\t\t}\n\t\t\t};\n\t\t} catch {\n\t\t\tcontinue;\n\t\t}\n\t}\n}\n/**\n* @param {{\n* status: number;\n* error: App.Error;\n* url: URL;\n* route: { id: string | null }\n* }} opts\n* @returns {Promise<import('./types.js').NavigationFinished>}\n*/\nasync function load_root_error_page({ status, error, url, route }) {\n\t/** @type {Record<string, string>} */\n\tconst params = {};\n\t/** @type {import('types').ServerDataNode | null} */\n\tlet server_data_node = null;\n\tif (app.server_loads[0] === 0) try {\n\t\tconst server_data = await load_data(url, [true]);\n\t\tif (server_data.type !== \"data\" || server_data.nodes[0] && server_data.nodes[0].type !== \"data\") throw 0;\n\t\tserver_data_node = server_data.nodes[0] ?? null;\n\t} catch {\n\t\tif (url.origin !== origin || url.pathname !== location.pathname || hydrated) await native_navigation(url);\n\t}\n\ttry {\n\t\treturn get_navigation_result_from_branch({\n\t\t\turl,\n\t\t\tparams,\n\t\t\tbranch: [await load_node({\n\t\t\t\tloader: default_layout_loader,\n\t\t\t\turl,\n\t\t\t\tparams,\n\t\t\t\troute,\n\t\t\t\tparent: () => Promise.resolve({}),\n\t\t\t\tserver_data_node: create_data_node(server_data_node)\n\t\t\t}), {\n\t\t\t\tnode: await default_error_loader(),\n\t\t\t\tloader: default_error_loader,\n\t\t\t\tuniversal: null,\n\t\t\t\tserver: null,\n\t\t\t\tdata: null\n\t\t\t}],\n\t\t\tstatus,\n\t\t\terror,\n\t\t\terrors: [],\n\t\t\troute: null\n\t\t});\n\t} catch (error) {\n\t\tif (error instanceof Redirect) return _goto(new URL(error.location, location.href), {}, 0);\n\t\tthrow error;\n\t}\n}\n/**\n* Resolve the relative rerouted URL for a client-side navigation\n* @param {URL} url\n* @returns {Promise<URL | undefined>}\n*/\nasync function get_rerouted_url(url) {\n\tconst href = url.href;\n\tif (reroute_cache.has(href)) return reroute_cache.get(href);\n\tlet rerouted;\n\ttry {\n\t\tconst promise = (async () => {\n\t\t\tlet rerouted = await app.hooks.reroute({\n\t\t\t\turl: new URL(url),\n\t\t\t\tfetch: async (input, init) => {\n\t\t\t\t\treturn resolve_fetch_url(input, init, url).promise;\n\t\t\t\t}\n\t\t\t}) ?? url;\n\t\t\tif (typeof rerouted === \"string\") {\n\t\t\t\tconst tmp = new URL(url);\n\t\t\t\tif (app.hash) tmp.hash = rerouted;\n\t\t\t\telse tmp.pathname = rerouted;\n\t\t\t\trerouted = tmp;\n\t\t\t}\n\t\t\treturn rerouted;\n\t\t})();\n\t\treroute_cache.set(href, promise);\n\t\trerouted = await promise;\n\t} catch (e) {\n\t\treroute_cache.delete(href);\n\t\treturn;\n\t}\n\treturn rerouted;\n}\n/**\n* Resolve the full info (which route, params, etc.) for a client-side navigation from the URL,\n* taking the reroute hook into account. If this isn't a client-side-navigation (or the URL is undefined),\n* returns undefined.\n* @param {URL | undefined} url\n* @param {boolean} invalidating\n* @returns {Promise<import('./types.js').NavigationIntent | undefined>}\n*/\nasync function get_navigation_intent(url, invalidating) {\n\tif (!url) return;\n\tif (is_external_url(url, base, app.hash)) return;\n\t{\n\t\tconst rerouted = await get_rerouted_url(url);\n\t\tif (!rerouted) return;\n\t\tconst path = get_url_path(rerouted);\n\t\tfor (const route of routes) {\n\t\t\tconst params = route.exec(path);\n\t\t\tif (params) return {\n\t\t\t\tid: get_page_key(url),\n\t\t\t\tinvalidating,\n\t\t\t\troute,\n\t\t\t\tparams: decode_params(params),\n\t\t\t\turl\n\t\t\t};\n\t\t}\n\t}\n}\n/** @param {URL} url */\nfunction get_url_path(url) {\n\treturn decode_pathname(app.hash ? url.hash.replace(/^#/, \"\").replace(/[?#].+/, \"\") : url.pathname.slice(base.length)) || \"/\";\n}\n/** @param {URL} url */\nfunction get_page_key(url) {\n\treturn (app.hash ? url.hash.replace(/^#/, \"\") : url.pathname) + url.search;\n}\n/**\n* @param {{\n* url: URL;\n* type: import('@sveltejs/kit').Navigation[\"type\"];\n* intent?: import('./types.js').NavigationIntent;\n* delta?: number;\n* event?: PopStateEvent | MouseEvent;\n* scroll?: { x: number, y: number };\n* }} opts\n*/\nfunction _before_navigate({ url, type, intent, delta, event, scroll }) {\n\tlet should_block = false;\n\tconst nav = create_navigation(current, intent, url, type, scroll ?? null);\n\tif (delta !== void 0) nav.navigation.delta = delta;\n\tif (event !== void 0) nav.navigation.event = event;\n\tconst cancellable = {\n\t\t...nav.navigation,\n\t\tcancel: () => {\n\t\t\tshould_block = true;\n\t\t\tnav.reject(/* @__PURE__ */ new Error(\"navigation cancelled\"));\n\t\t}\n\t};\n\tif (!is_navigating) before_navigate_callbacks.forEach((fn) => fn(cancellable));\n\treturn should_block ? null : nav;\n}\n/**\n* @param {{\n* type: import('@sveltejs/kit').NavigationType;\n* url: URL;\n* popped?: {\n* state: Record<string, any>;\n* scroll: { x: number, y: number };\n* delta: number;\n* };\n* keepfocus?: boolean;\n* noscroll?: boolean;\n* replace_state?: boolean;\n* state?: Record<string, any>;\n* redirect_count?: number;\n* nav_token?: {};\n* accept?: () => void;\n* block?: () => void;\n* event?: Event\n* }} opts\n*/\nasync function navigate({ type, url, popped, keepfocus, noscroll, replace_state, state = {}, redirect_count = 0, nav_token = {}, accept = noop, block = noop, event }) {\n\tconst prev_token = token;\n\ttoken = nav_token;\n\tconst intent = await get_navigation_intent(url, false);\n\tconst nav = type === \"enter\" ? create_navigation(current, intent, url, type) : _before_navigate({\n\t\turl,\n\t\ttype,\n\t\tdelta: popped?.delta,\n\t\tintent,\n\t\tscroll: popped?.scroll,\n\t\tevent\n\t});\n\tif (!nav) {\n\t\tblock();\n\t\tif (token === nav_token) token = prev_token;\n\t\treturn;\n\t}\n\tconst previous_history_index = current_history_index;\n\tconst previous_navigation_index = current_navigation_index;\n\taccept();\n\tis_navigating = true;\n\tif (started && nav.navigation.type !== \"enter\") stores.navigating.set(navigating.current = nav.navigation);\n\tlet navigation_result = intent && await load_route(intent);\n\tif (!navigation_result) if (is_external_url(url, base, app.hash)) return await native_navigation(url, replace_state);\n\telse navigation_result = await server_fallback(url, { id: null }, await handle_error(new SvelteKitError(404, \"Not Found\", `Not found: ${url.pathname}`), {\n\t\turl,\n\t\tparams: {},\n\t\troute: { id: null }\n\t}), 404, replace_state);\n\turl = intent?.url || url;\n\tif (token !== nav_token) {\n\t\tnav.reject(/* @__PURE__ */ new Error(\"navigation aborted\"));\n\t\treturn false;\n\t}\n\tif (navigation_result.type === \"redirect\") {\n\t\tif (redirect_count < 20) {\n\t\t\tawait navigate({\n\t\t\t\ttype,\n\t\t\t\turl: new URL(navigation_result.location, url),\n\t\t\t\tpopped,\n\t\t\t\tkeepfocus,\n\t\t\t\tnoscroll,\n\t\t\t\treplace_state,\n\t\t\t\tstate,\n\t\t\t\tredirect_count: redirect_count + 1,\n\t\t\t\tnav_token\n\t\t\t});\n\t\t\tnav.fulfil(void 0);\n\t\t\treturn;\n\t\t}\n\t\tnavigation_result = await load_root_error_page({\n\t\t\tstatus: 500,\n\t\t\terror: await handle_error(/* @__PURE__ */ new Error(\"Redirect loop\"), {\n\t\t\t\turl,\n\t\t\t\tparams: {},\n\t\t\t\troute: { id: null }\n\t\t\t}),\n\t\t\turl,\n\t\t\troute: { id: null }\n\t\t});\n\t} else if (navigation_result.props.page.status >= 400) {\n\t\tif (await stores.updated.check()) {\n\t\t\tawait update_service_worker();\n\t\t\tawait native_navigation(url, replace_state);\n\t\t}\n\t}\n\treset_invalidation();\n\tupdate_scroll_positions(previous_history_index);\n\tcapture_snapshot(previous_navigation_index);\n\tif (navigation_result.props.page.url.pathname !== url.pathname) url.pathname = navigation_result.props.page.url.pathname;\n\tstate = popped ? popped.state : state;\n\tif (!popped) {\n\t\tconst change = replace_state ? 0 : 1;\n\t\tconst entry = {\n\t\t\t[HISTORY_INDEX]: current_history_index += change,\n\t\t\t[NAVIGATION_INDEX]: current_navigation_index += change,\n\t\t\t[STATES_KEY]: state\n\t\t};\n\t\t(replace_state ? history.replaceState : history.pushState).call(history, entry, \"\", url);\n\t\tif (!replace_state) clear_onward_history(current_history_index, current_navigation_index);\n\t}\n\tconst load_cache_fork = intent && load_cache?.id === intent.id ? load_cache.fork : null;\n\tif (load_cache?.fork && !load_cache_fork) discard_load_cache();\n\tload_cache = null;\n\tnavigation_result.props.page.state = state;\n\t/**\n\t* @type {Promise<void> | undefined}\n\t*/\n\tlet commit_promise;\n\tif (started) {\n\t\tconst after_navigate = (await Promise.all(Array.from(on_navigate_callbacks, (fn) => fn(nav.navigation)))).filter(\n\t\t\t/** @returns {value is () => void} */\n\t\t\t(value) => typeof value === \"function\"\n\t\t);\n\t\tif (after_navigate.length > 0) {\n\t\t\tfunction cleanup() {\n\t\t\t\tafter_navigate.forEach((fn) => {\n\t\t\t\t\tafter_navigate_callbacks.delete(fn);\n\t\t\t\t});\n\t\t\t}\n\t\t\tafter_navigate.push(cleanup);\n\t\t\tafter_navigate.forEach((fn) => {\n\t\t\t\tafter_navigate_callbacks.add(fn);\n\t\t\t});\n\t\t}\n\t\tconst target = nav.navigation.to;\n\t\tcurrent = {\n\t\t\t...navigation_result.state,\n\t\t\tnav: {\n\t\t\t\tparams: target.params,\n\t\t\t\troute: target.route,\n\t\t\t\turl: target.url\n\t\t\t}\n\t\t};\n\t\tif (navigation_result.props.page) navigation_result.props.page.url = url;\n\t\tconst fork = load_cache_fork && await load_cache_fork;\n\t\tif (fork) commit_promise = fork.commit();\n\t\telse {\n\t\t\trendering_error = null;\n\t\t\troot.$set(navigation_result.props);\n\t\t\tif (rendering_error) Object.assign(navigation_result.props.page, rendering_error);\n\t\t\tupdate(navigation_result.props.page);\n\t\t\tcommit_promise = settled?.();\n\t\t}\n\t} else await initialize(navigation_result, target, false);\n\tconst { activeElement } = document;\n\tawait commit_promise;\n\tawait tick$1();\n\tawait tick$1();\n\t/** @type {Element | null | ''} */\n\tlet deep_linked = null;\n\tif (autoscroll) {\n\t\tconst scroll = popped ? popped.scroll : noscroll ? scroll_state() : null;\n\t\tif (scroll) scrollTo(scroll.x, scroll.y);\n\t\telse if (deep_linked = url.hash && document.getElementById(get_id(url))) deep_linked.scrollIntoView();\n\t\telse scrollTo(0, 0);\n\t}\n\tconst changed_focus = document.activeElement !== activeElement && document.activeElement !== document.body;\n\tif (!keepfocus && !changed_focus) reset_focus(url, !deep_linked);\n\tautoscroll = true;\n\tif (navigation_result.props.page) {\n\t\tif (rendering_error) Object.assign(navigation_result.props.page, rendering_error);\n\t\tObject.assign(page, navigation_result.props.page);\n\t}\n\tis_navigating = false;\n\tif (type === \"popstate\") restore_snapshot(current_navigation_index);\n\tnav.fulfil(void 0);\n\tif (nav.navigation.to) nav.navigation.to.scroll = scroll_state();\n\tafter_navigate_callbacks.forEach((fn) => fn(nav.navigation));\n\tstores.navigating.set(navigating.current = null);\n}\n/**\n* Does a full page reload if it wouldn't result in an endless loop in the SPA case\n* @param {URL} url\n* @param {{ id: string | null }} route\n* @param {App.Error} error\n* @param {number} status\n* @param {boolean} [replace_state]\n* @returns {Promise<import('./types.js').NavigationFinished>}\n*/\nasync function server_fallback(url, route, error, status, replace_state) {\n\tif (url.origin === origin && url.pathname === location.pathname && !hydrated) return await load_root_error_page({\n\t\tstatus,\n\t\terror,\n\t\turl,\n\t\troute\n\t});\n\treturn await native_navigation(url, replace_state);\n}\n/**\n* @param {unknown} error\n* @param {import('@sveltejs/kit').NavigationEvent} event\n* @returns {import('types').MaybePromise<App.Error>}\n*/\nfunction handle_error(error, event) {\n\tif (error instanceof HttpError) return error.body;\n\tconst status = get_status(error);\n\tconst message = get_message(error);\n\treturn app.hooks.handleError({\n\t\terror,\n\t\tevent,\n\t\tstatus,\n\t\tmessage\n\t}) ?? { message };\n}\n/**\n* Allows you to navigate programmatically to a given route, with options such as keeping the current element focused.\n* Returns a Promise that resolves when SvelteKit navigates (or fails to navigate, in which case the promise rejects) to the specified `url`.\n*\n* For external URLs, use `window.location = url` instead of calling `goto(url)`.\n*\n* @param {string | URL} url Where to navigate to. Note that if you've set [`config.kit.paths.base`](https://svelte.dev/docs/kit/configuration#paths) and the URL is root-relative, you need to prepend the base path if you want to navigate within the app.\n* @param {Object} [opts] Options related to the navigation\n* @param {boolean} [opts.replaceState] If `true`, will replace the current `history` entry rather than creating a new one with `pushState`\n* @param {boolean} [opts.noScroll] If `true`, the browser will maintain its scroll position rather than scrolling to the top of the page after navigation\n* @param {boolean} [opts.keepFocus] If `true`, the currently focused element will retain focus after navigation. Otherwise, focus will be reset to the body\n* @param {boolean} [opts.invalidateAll] If `true`, all `load` functions of the page will be rerun. See https://svelte.dev/docs/kit/load#rerunning-load-functions for more info on invalidation.\n* @param {Array<string | URL | ((url: URL) => boolean)>} [opts.invalidate] Causes any load functions to re-run if they depend on one of the urls\n* @param {App.PageState} [opts.state] An optional object that will be available as `page.state`\n* @returns {Promise<void>}\n*/\nfunction goto(url, opts = {}) {\n\tthrow new Error(\"Cannot call goto(...) on the server\");\n}\n/**\n* @param {string | URL | ((url: URL) => boolean)} resource The invalidated URL\n*/\nfunction push_invalidated(resource) {\n\tif (typeof resource === \"function\") invalidated.push(resource);\n\telse {\n\t\tconst { href } = new URL(resource, location.href);\n\t\tinvalidated.push((url) => url.href === href);\n\t}\n}\n/**\n* @param {URL} url\n* @param {boolean[]} invalid\n* @returns {Promise<import('types').ServerNodesResponse | import('types').ServerRedirectNode>}\n*/\nasync function load_data(url, invalid) {\n\tconst data_url = new URL(url);\n\tdata_url.pathname = add_data_suffix(url.pathname);\n\tif (url.pathname.endsWith(\"/\")) data_url.searchParams.append(TRAILING_SLASH_PARAM, \"1\");\n\tdata_url.searchParams.append(INVALIDATED_PARAM, invalid.map((i) => i ? \"1\" : \"0\").join(\"\"));\n\tconst res = await (0, window.fetch)(data_url.href, {});\n\tif (!res.ok) {\n\t\t/** @type {string | undefined} */\n\t\tlet message;\n\t\tif (res.headers.get(\"content-type\")?.includes(\"application/json\")) message = await res.json();\n\t\telse if (res.status === 404) message = \"Not Found\";\n\t\telse if (res.status === 500) message = \"Internal Error\";\n\t\tthrow new HttpError(res.status, message);\n\t}\n\treturn new Promise(async (resolve) => {\n\t\t/**\n\t\t* Map of deferred promises that will be resolved by a subsequent chunk of data\n\t\t* @type {Map<string, import('types').Deferred>}\n\t\t*/\n\t\tconst deferreds = /* @__PURE__ */ new Map();\n\t\tconst reader = res.body.getReader();\n\t\t/**\n\t\t* @param {any} data\n\t\t*/\n\t\tfunction deserialize(data) {\n\t\t\treturn unflatten(data, {\n\t\t\t\t...app.decoders,\n\t\t\t\tPromise: (id) => {\n\t\t\t\t\treturn new Promise((fulfil, reject) => {\n\t\t\t\t\t\tdeferreds.set(id, {\n\t\t\t\t\t\t\tfulfil,\n\t\t\t\t\t\t\treject\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\tlet text = \"\";\n\t\twhile (true) {\n\t\t\tconst { done, value } = await reader.read();\n\t\t\tif (done && !text) break;\n\t\t\ttext += !value && text ? \"\\n\" : text_decoder.decode(value, { stream: true });\n\t\t\twhile (true) {\n\t\t\t\tconst split = text.indexOf(\"\\n\");\n\t\t\t\tif (split === -1) break;\n\t\t\t\tconst node = JSON.parse(text.slice(0, split));\n\t\t\t\ttext = text.slice(split + 1);\n\t\t\t\tif (node.type === \"redirect\") return resolve(node);\n\t\t\t\tif (node.type === \"data\") {\n\t\t\t\t\tnode.nodes?.forEach((node) => {\n\t\t\t\t\t\tif (node?.type === \"data\") {\n\t\t\t\t\t\t\tnode.uses = deserialize_uses(node.uses);\n\t\t\t\t\t\t\tnode.data = deserialize(node.data);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\tresolve(node);\n\t\t\t\t} else if (node.type === \"chunk\") {\n\t\t\t\t\tconst { id, data, error } = node;\n\t\t\t\t\tconst deferred = deferreds.get(id);\n\t\t\t\t\tdeferreds.delete(id);\n\t\t\t\t\tif (error) deferred.reject(deserialize(error));\n\t\t\t\t\telse deferred.fulfil(deserialize(data));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n}\n/**\n* @param {any} uses\n* @return {import('types').Uses}\n*/\nfunction deserialize_uses(uses) {\n\treturn {\n\t\tdependencies: new Set(uses?.dependencies ?? []),\n\t\tparams: new Set(uses?.params ?? []),\n\t\tparent: !!uses?.parent,\n\t\troute: !!uses?.route,\n\t\turl: !!uses?.url,\n\t\tsearch_params: new Set(uses?.search_params ?? [])\n\t};\n}\n/**\n* @param {URL} url\n* @param {boolean} [scroll]\n*/\nfunction reset_focus(url, scroll = true) {\n\tconst autofocus = document.querySelector(\"[autofocus]\");\n\tif (autofocus) autofocus.focus();\n\telse {\n\t\tconst id = get_id(url);\n\t\tif (id && document.getElementById(id)) {\n\t\t\tconst { x, y } = scroll_state();\n\t\t\tsetTimeout(() => {\n\t\t\t\tconst history_state = history.state;\n\t\t\t\tlocation.replace(new URL(`#${id}`, location.href));\n\t\t\t\thistory.replaceState(history_state, \"\", url);\n\t\t\t\tif (scroll) scrollTo(x, y);\n\t\t\t});\n\t\t} else {\n\t\t\tconst root = document.body;\n\t\t\tconst tabindex = root.getAttribute(\"tabindex\");\n\t\t\troot.tabIndex = -1;\n\t\t\troot.focus({\n\t\t\t\tpreventScroll: true,\n\t\t\t\tfocusVisible: false\n\t\t\t});\n\t\t\tif (tabindex !== null) root.setAttribute(\"tabindex\", tabindex);\n\t\t\telse root.removeAttribute(\"tabindex\");\n\t\t}\n\t\tconst selection = getSelection();\n\t\tif (selection && selection.type !== \"None\") {\n\t\t\t/** @type {Range[]} */\n\t\t\tconst ranges = [];\n\t\t\tfor (let i = 0; i < selection.rangeCount; i += 1) ranges.push(selection.getRangeAt(i));\n\t\t\tsetTimeout(() => {\n\t\t\t\tif (selection.rangeCount !== ranges.length) return;\n\t\t\t\tfor (let i = 0; i < selection.rangeCount; i += 1) {\n\t\t\t\t\tconst a = ranges[i];\n\t\t\t\t\tconst b = selection.getRangeAt(i);\n\t\t\t\t\tif (a.commonAncestorContainer !== b.commonAncestorContainer || a.startContainer !== b.startContainer || a.endContainer !== b.endContainer || a.startOffset !== b.startOffset || a.endOffset !== b.endOffset) return;\n\t\t\t\t}\n\t\t\t\tselection.removeAllRanges();\n\t\t\t});\n\t\t}\n\t}\n}\n/**\n* @template {import('@sveltejs/kit').NavigationType} T\n* @param {import('./types.js').NavigationState} current\n* @param {import('./types.js').NavigationIntent | undefined} intent\n* @param {URL | null} url\n* @param {T} type\n* @param {{ x: number, y: number } | null} [target_scroll] The scroll position for the target (for popstate navigations)\n*/\nfunction create_navigation(current, intent, url, type, target_scroll = null) {\n\t/** @type {(value: any) => void} */\n\tlet fulfil;\n\t/** @type {(error: any) => void} */\n\tlet reject;\n\tconst complete = new Promise((f, r) => {\n\t\tfulfil = f;\n\t\treject = r;\n\t});\n\tcomplete.catch(noop);\n\treturn {\n\t\tnavigation: {\n\t\t\tfrom: {\n\t\t\t\tparams: current.params,\n\t\t\t\troute: { id: current.route?.id ?? null },\n\t\t\t\turl: current.url,\n\t\t\t\tscroll: scroll_state()\n\t\t\t},\n\t\t\tto: url && {\n\t\t\t\tparams: intent?.params ?? null,\n\t\t\t\troute: { id: intent?.route?.id ?? null },\n\t\t\t\turl,\n\t\t\t\tscroll: target_scroll\n\t\t\t},\n\t\t\twillUnload: !intent,\n\t\t\ttype,\n\t\t\tcomplete\n\t\t},\n\t\tfulfil,\n\t\treject\n\t};\n}\n/**\n* TODO: remove this in 3.0 when the page store is also removed\n*\n* We need to assign a new page object so that subscribers are correctly notified.\n* However, spreading `{ ...page }` returns an empty object so we manually\n* assign to each property instead.\n*\n* @param {import('@sveltejs/kit').Page} page\n*/\nfunction clone_page(page) {\n\treturn {\n\t\tdata: page.data,\n\t\terror: page.error,\n\t\tform: page.form,\n\t\tparams: page.params,\n\t\troute: page.route,\n\t\tstate: page.state,\n\t\tstatus: page.status,\n\t\turl: page.url\n\t};\n}\n/**\n* @param {URL} url\n* @returns {string}\n*/\nfunction get_id(url) {\n\tlet id;\n\tif (app.hash) {\n\t\tconst [, , second] = url.hash.split(\"#\", 3);\n\t\tid = second ?? \"\";\n\t} else id = url.hash.slice(1);\n\treturn decodeURIComponent(id);\n}\n//#endregion\nexport { updated as a, page as i, stores as n, navigating as r, goto as t };\n"],"names":["noop$1"],"mappings":";;;;;;AAwKA,IAAI,SAAS,GAAGA,IAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAACA,IAAM,CAAC,QAAQ,EAAE,CAAC;AACnG,IAAI,eAAe,GAAG,IAAI;AAC1B,IAAI,SAAS,EAAE;AACf,EAAQ;AACR,EAAE,IAAI,EAAE,EAAE;AACV,EAAE,IAAI,EAAE,IAAI;AACZ,EAAE,KAAK,EAAE,IAAI;AACb,EAAE,MAAM,EAAE,EAAE;AACZ,EAAE,KAAK,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE;AACrB,EAAE,KAAK,EAAE,EAAE;AACX,EAAE,MAAM,EAAE,EAAE;AACZ,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,eAAe;AAC9B,GAAE;AAGF;AAyBA;AACA;AACA;AACA,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,oBAAoB;AAw+B5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,IAAI,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE;AAC9B,CAAC,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC;AACvD;;;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { h as getContext, c as escape_html } from './dev-BNpEUZI3.js';
|
|
2
2
|
import 'node:module';
|
|
3
|
-
import './client-
|
|
4
|
-
import './internal-
|
|
3
|
+
import './client-D6kcmtib.js';
|
|
4
|
+
import './internal-CmtLRaJG.js';
|
|
5
5
|
import '@sveltejs/kit/internal';
|
|
6
6
|
import './index-server-DocJvixA.js';
|
|
7
7
|
import './chunk-DDP5xfzh.js';
|
|
@@ -67,4 +67,4 @@ function Error$1($$renderer, $$props) {
|
|
|
67
67
|
}
|
|
68
68
|
|
|
69
69
|
export { Error$1 as default };
|
|
70
|
-
//# sourceMappingURL=error.svelte-
|
|
70
|
+
//# sourceMappingURL=error.svelte-WwS161rt.js.map
|
package/studio-dist/server/chunks/{error.svelte-BUbXraBv.js.map → error.svelte-WwS161rt.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.svelte-
|
|
1
|
+
{"version":3,"file":"error.svelte-WwS161rt.js","sources":["../../../.svelte-kit/adapter-node/chunks/state3.js","../../../.svelte-kit/adapter-node/entries/fallbacks/error.svelte.js"],"sourcesContent":["import { nt as getContext } from \"./dev.js\";\nimport \"./index-server.js\";\nimport { n as stores, r as navigating$1 } from \"./client.js\";\nObject.defineProperty({\n\tget from() {\n\t\treturn navigating$1.current ? navigating$1.current.from : null;\n\t},\n\tget to() {\n\t\treturn navigating$1.current ? navigating$1.current.to : null;\n\t},\n\tget type() {\n\t\treturn navigating$1.current ? navigating$1.current.type : null;\n\t},\n\tget willUnload() {\n\t\treturn navigating$1.current ? navigating$1.current.willUnload : null;\n\t},\n\tget delta() {\n\t\treturn navigating$1.current ? navigating$1.current.delta : null;\n\t},\n\tget complete() {\n\t\treturn navigating$1.current ? navigating$1.current.complete : null;\n\t}\n}, \"current\", { get() {\n\tthrow new Error(\"Replace navigating.current.<prop> with navigating.<prop>\");\n} });\nstores.updated.check;\n//#endregion\n//#region ../../node_modules/.pnpm/@sveltejs+kit@2.57.1_@opentelemetry+api@1.9.0_@sveltejs+vite-plugin-svelte@5.1.1_svelte_e94e6db60b0c5f7146157d0facbe8042/node_modules/@sveltejs/kit/src/runtime/app/state/server.js\nfunction context() {\n\treturn getContext(\"__request__\");\n}\n//#endregion\n//#region ../../node_modules/.pnpm/@sveltejs+kit@2.57.1_@opentelemetry+api@1.9.0_@sveltejs+vite-plugin-svelte@5.1.1_svelte_e94e6db60b0c5f7146157d0facbe8042/node_modules/@sveltejs/kit/src/runtime/app/state/index.js\n/**\n* A read-only reactive object with information about the current page, serving several use cases:\n* - retrieving the combined `data` of all pages/layouts anywhere in your component tree (also see [loading data](https://svelte.dev/docs/kit/load))\n* - retrieving the current value of the `form` prop anywhere in your component tree (also see [form actions](https://svelte.dev/docs/kit/form-actions))\n* - retrieving the page state that was set through `goto`, `pushState` or `replaceState` (also see [goto](https://svelte.dev/docs/kit/$app-navigation#goto) and [shallow routing](https://svelte.dev/docs/kit/shallow-routing))\n* - retrieving metadata such as the URL you're on, the current route and its parameters, and whether or not there was an error\n*\n* ```svelte\n* <!--- file: +layout.svelte --->\n* <script>\n* \timport { page } from '$app/state';\n* <\\/script>\n*\n* <p>Currently at {page.url.pathname}</p>\n*\n* {#if page.error}\n* \t<span class=\"red\">Problem detected</span>\n* {:else}\n* \t<span class=\"small\">All systems operational</span>\n* {/if}\n* ```\n*\n* Changes to `page` are available exclusively with runes. (The legacy reactivity syntax will not reflect any changes)\n*\n* ```svelte\n* <!--- file: +page.svelte --->\n* <script>\n* \timport { page } from '$app/state';\n* \tconst id = $derived(page.params.id); // This will correctly update id for usage on this page\n* \t$: badId = page.params.id; // Do not use; will never update after initial load\n* <\\/script>\n* ```\n*\n* On the server, values can only be read during rendering (in other words _not_ in e.g. `load` functions). In the browser, the values can be read at any time.\n*\n* @type {import('@sveltejs/kit').Page}\n*/\nvar page = {\n\tget data() {\n\t\treturn context().page.data;\n\t},\n\tget error() {\n\t\treturn context().page.error;\n\t},\n\tget form() {\n\t\treturn context().page.form;\n\t},\n\tget params() {\n\t\treturn context().page.params;\n\t},\n\tget route() {\n\t\treturn context().page.route;\n\t},\n\tget state() {\n\t\treturn context().page.state;\n\t},\n\tget status() {\n\t\treturn context().page.status;\n\t},\n\tget url() {\n\t\treturn context().page.url;\n\t}\n};\n//#endregion\nexport { page as t };\n","import { U as escape_html } from \"../../chunks/dev.js\";\nimport { t as page } from \"../../chunks/state3.js\";\n//#region ../../node_modules/.pnpm/@sveltejs+kit@2.57.1_@opentelemetry+api@1.9.0_@sveltejs+vite-plugin-svelte@5.1.1_svelte_e94e6db60b0c5f7146157d0facbe8042/node_modules/@sveltejs/kit/src/runtime/components/svelte-5/error.svelte\nfunction Error($$renderer, $$props) {\n\t$$renderer.component(($$renderer) => {\n\t\t$$renderer.push(`<h1>${escape_html(page.status)}</h1> <p>${escape_html(page.error?.message)}</p>`);\n\t});\n}\n//#endregion\nexport { Error as default };\n"],"names":["Error"],"mappings":";;;;;;;;;AA0BA;AACA;AACA,SAAS,OAAO,GAAG;AACnB,CAAC,OAAO,UAAU,CAAC,aAAa,CAAC;AACjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI,IAAI,GAAG;AACX,CAGC,IAAI,KAAK,GAAG;AACb,EAAE,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,KAAK;AAC7B,CAAC,CAAC;AACF,CAYC,IAAI,MAAM,GAAG;AACd,EAAE,OAAO,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM;AAC9B,CAAC,CAID,CAAC;;AC7FD;AACA,SAASA,OAAK,CAAC,UAAU,EAAE,OAAO,EAAE;AACpC,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,UAAU,KAAK;AACtC,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC;AACpG,CAAC,CAAC,CAAC;AACH;;;;"}
|
|
@@ -1466,7 +1466,7 @@ var options = {
|
|
|
1466
1466
|
app: ({ head, body, assets, nonce, env }) => "<!doctype html>\n<html lang=\"en\" data-theme=\"dark\">\n <head>\n <meta charset=\"utf-8\" />\n <link rel=\"icon\" href=\"" + assets + "/favicon.png\" />\n <meta name=\"viewport\" content=\"width=device-width, initial-scale=1\" />\n <meta name=\"color-scheme\" content=\"dark\" />\n <title>CLEO Studio</title>\n " + head + "\n </head>\n <body class=\"cleo-root\" data-sveltekit-preload-data=\"hover\">\n <div style=\"display: contents\">" + body + "</div>\n </body>\n</html>\n",
|
|
1467
1467
|
error: ({ status, message }) => "<!doctype html>\n<html lang=\"en\">\n <head>\n <meta charset=\"utf-8\" />\n <title>" + message + "</title>\n\n <style>\n body {\n --bg: white;\n --fg: #222;\n --divider: #ccc;\n background: var(--bg);\n color: var(--fg);\n font-family:\n system-ui,\n -apple-system,\n BlinkMacSystemFont,\n 'Segoe UI',\n Roboto,\n Oxygen,\n Ubuntu,\n Cantarell,\n 'Open Sans',\n 'Helvetica Neue',\n sans-serif;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 100vh;\n margin: 0;\n }\n\n .error {\n display: flex;\n align-items: center;\n max-width: 32rem;\n margin: 0 1rem;\n }\n\n .status {\n font-weight: 200;\n font-size: 3rem;\n line-height: 1;\n position: relative;\n top: -0.05rem;\n }\n\n .message {\n border-left: 1px solid var(--divider);\n padding: 0 0 0 1rem;\n margin: 0 0 0 1rem;\n min-height: 2.5rem;\n display: flex;\n align-items: center;\n }\n\n .message h1 {\n font-weight: 400;\n font-size: 1em;\n margin: 0;\n }\n\n @media (prefers-color-scheme: dark) {\n body {\n --bg: #222;\n --fg: #ddd;\n --divider: #666;\n }\n }\n </style>\n </head>\n <body>\n <div class=\"error\">\n <span class=\"status\">" + status + "</span>\n <div class=\"message\">\n <h1>" + message + "</h1>\n </div>\n </div>\n </body>\n</html>\n"
|
|
1468
1468
|
},
|
|
1469
|
-
version_hash: "
|
|
1469
|
+
version_hash: "igh0vt"
|
|
1470
1470
|
};
|
|
1471
1471
|
async function get_hooks() {
|
|
1472
1472
|
let handle;
|
|
@@ -1489,4 +1489,4 @@ async function get_hooks() {
|
|
|
1489
1489
|
}
|
|
1490
1490
|
|
|
1491
1491
|
export { compact as A, once as B, normalize_error as C, resolve as D, parse_remote_arg as E, stringify as F, make_trackable as G, stringify$1 as H, INVALIDATED_PARAM as I, read_implementation as J, split_remote_key as K, get_relative_path as L, base64_encode as M, set_read_implementation as N, TRAILING_SLASH_PARAM as T, get_message as a, get_hooks as b, coalesce_to_error as c, has_data_suffix as d, strip_data_suffix as e, decode_pathname as f, get_status as g, has_resolution_suffix as h, add_data_suffix as i, add_resolution_suffix as j, find_route as k, normalize_path as l, disable_search as m, noop as n, options as o, parse as p, validate_layout_exports as q, validate_page_server_exports as r, strip_resolution_suffix as s, text_decoder as t, validate_page_exports as u, validate_layout_server_exports as v, noop_span as w, create_remote_key as x, hash as y, text_encoder as z };
|
|
1492
|
-
//# sourceMappingURL=internal-
|
|
1492
|
+
//# sourceMappingURL=internal-CmtLRaJG.js.map
|