From 7f91301efabd26ca70a72d129568ebcb0b1601a8 Mon Sep 17 00:00:00 2001 From: Mikkel Georgsen Date: Sun, 1 Mar 2026 04:13:17 +0100 Subject: [PATCH] feat(01-13): layout shell with header, tabs, FAB, toast, data table - Persistent header: clock countdown, level, blinds, player count (red pulse <10s, PAUSED/BREAK badges) - Bottom tab bar (mobile): Overview, Players, Tables, Financials, More with 48px touch targets - Desktop sidebar (>=768px): vertical nav replacing bottom tabs - FAB: expandable quick actions (Bust, Buy In, Rebuy, Add-On, Pause/Resume) with backdrop - Toast notification system: success/info/warning/error with auto-dismiss and stacking - DataTable: sortable columns, sticky header, search/filter, mobile swipe actions, skeleton loading - Multi-tournament tabs: horizontal scrollable selector when 2+ tournaments active - Loading components: spinner (sm/md/lg), skeleton rows, full-page overlay - Root layout: auth guard, responsive shell (mobile bottom tabs / desktop sidebar) - Route pages: overview, players, tables, financials, more with placeholder content Co-Authored-By: Claude Opus 4.6 --- .../_app/immutable/assets/0.BcOVBfXh.css | 1 + .../_app/immutable/assets/0.LvVNMuLM.css | 1 - .../_app/immutable/assets/2.BmNlW7Gm.css | 1 + .../_app/immutable/assets/2.lCQ6RyE1.css | 1 - .../_app/immutable/assets/3.BysT7-iU.css | 1 + .../assets/{3.C7Q2VT44.css => 4.C7Q2VT44.css} | 0 .../_app/immutable/assets/5.B34oOQk5.css | 1 + .../_app/immutable/assets/6.BcOWEnnB.css | 1 + .../_app/immutable/assets/7.CLv6rscz.css | 1 + .../_app/immutable/assets/8.WyH666g9.css | 1 + .../immutable/assets/DataTable.CrZfXN-V.css | 1 + .../build/_app/immutable/chunks/B6M6q2Zo.js | 1 - .../build/_app/immutable/chunks/B9dvBo0E.js | 1 - .../build/_app/immutable/chunks/BTkWS7xQ.js | 1 + .../build/_app/immutable/chunks/BViIIwgj.js | 1 + .../build/_app/immutable/chunks/BeLKMLqR.js | 2 + .../build/_app/immutable/chunks/C48rM6KF.js | 1 + .../build/_app/immutable/chunks/C4An0dnW.js | 1 + .../build/_app/immutable/chunks/C5aWxL5p.js | 1 + .../build/_app/immutable/chunks/CQQh_IlD.js | 2 + .../chunks/{DMqvp7vx.js => D3f6eoxz.js} | 2 +- .../build/_app/immutable/chunks/DQNCp18R.js | 1 + .../build/_app/immutable/chunks/D__6P984.js | 1 + .../build/_app/immutable/chunks/Da6yQRl8.js | 1 - .../build/_app/immutable/chunks/De6rLmuB.js | 1 - .../build/_app/immutable/chunks/DyXP65qD.js | 1 + .../build/_app/immutable/chunks/Q5CB4WY5.js | 1 + .../build/_app/immutable/chunks/WPMya0VZ.js | 1 + .../build/_app/immutable/chunks/Ym0WvvUy.js | 1 - .../build/_app/immutable/chunks/dTRRgeF-.js | 2 - .../build/_app/immutable/chunks/giww_vF6.js | 1 - .../chunks/{Bfwrz3i4.js => nIaoZoCo.js} | 2 +- .../_app/immutable/entry/app.DWnDWHgs.js | 2 - .../_app/immutable/entry/app.Dwn0pdp1.js | 2 + .../_app/immutable/entry/start.Cw5np0_P.js | 1 - .../_app/immutable/entry/start.Do4A91T6.js | 1 + .../build/_app/immutable/nodes/0.C1R4dMGA.js | 1 + .../build/_app/immutable/nodes/0.CNxjQThJ.js | 1 - .../build/_app/immutable/nodes/1.CNv_pgkw.js | 1 + .../build/_app/immutable/nodes/1.DQmxvu2E.js | 1 - .../build/_app/immutable/nodes/2.C9GK89sD.js | 1 + .../build/_app/immutable/nodes/2.CwK2tdGg.js | 1 - .../build/_app/immutable/nodes/3.BMSY6fJC.js | 1 + .../build/_app/immutable/nodes/3.BjUxkFGX.js | 2 - .../build/_app/immutable/nodes/4.Ct0ahWmg.js | 1 + .../build/_app/immutable/nodes/5.CrKjY73y.js | 1 + .../build/_app/immutable/nodes/6.CMmeTvWv.js | 1 + .../build/_app/immutable/nodes/7.0Z-UCw0W.js | 1 + .../build/_app/immutable/nodes/8.fn5hverG.js | 1 + frontend/build/_app/version.json | 2 +- frontend/build/financials.html | 39 ++ frontend/build/index.html | 24 +- frontend/build/login.html | 24 +- frontend/build/more.html | 39 ++ frontend/build/overview.html | 39 ++ frontend/build/players.html | 39 ++ frontend/build/tables.html | 39 ++ frontend/src/lib/components/BottomTabs.svelte | 108 ++++ frontend/src/lib/components/DataTable.svelte | 466 ++++++++++++++++++ frontend/src/lib/components/FAB.svelte | 257 ++++++++++ frontend/src/lib/components/Header.svelte | 258 ++++++++++ frontend/src/lib/components/Loading.svelte | 145 ++++++ frontend/src/lib/components/Sidebar.svelte | 135 +++++ frontend/src/lib/components/Toast.svelte | 156 ++++++ .../src/lib/components/TournamentTabs.svelte | 110 +++++ .../src/lib/stores/multi-tournament.svelte.ts | 89 ++++ frontend/src/lib/stores/toast.svelte.ts | 92 ++++ frontend/src/routes/+layout.svelte | 105 +++- frontend/src/routes/+page.svelte | 41 +- frontend/src/routes/financials/+page.svelte | 109 ++++ frontend/src/routes/more/+page.svelte | 107 ++++ frontend/src/routes/overview/+page.svelte | 92 ++++ frontend/src/routes/players/+page.svelte | 51 ++ frontend/src/routes/tables/+page.svelte | 52 ++ 74 files changed, 2598 insertions(+), 76 deletions(-) create mode 100644 frontend/build/_app/immutable/assets/0.BcOVBfXh.css delete mode 100644 frontend/build/_app/immutable/assets/0.LvVNMuLM.css create mode 100644 frontend/build/_app/immutable/assets/2.BmNlW7Gm.css delete mode 100644 frontend/build/_app/immutable/assets/2.lCQ6RyE1.css create mode 100644 frontend/build/_app/immutable/assets/3.BysT7-iU.css rename frontend/build/_app/immutable/assets/{3.C7Q2VT44.css => 4.C7Q2VT44.css} (100%) create mode 100644 frontend/build/_app/immutable/assets/5.B34oOQk5.css create mode 100644 frontend/build/_app/immutable/assets/6.BcOWEnnB.css create mode 100644 frontend/build/_app/immutable/assets/7.CLv6rscz.css create mode 100644 frontend/build/_app/immutable/assets/8.WyH666g9.css create mode 100644 frontend/build/_app/immutable/assets/DataTable.CrZfXN-V.css delete mode 100644 frontend/build/_app/immutable/chunks/B6M6q2Zo.js delete mode 100644 frontend/build/_app/immutable/chunks/B9dvBo0E.js create mode 100644 frontend/build/_app/immutable/chunks/BTkWS7xQ.js create mode 100644 frontend/build/_app/immutable/chunks/BViIIwgj.js create mode 100644 frontend/build/_app/immutable/chunks/BeLKMLqR.js create mode 100644 frontend/build/_app/immutable/chunks/C48rM6KF.js create mode 100644 frontend/build/_app/immutable/chunks/C4An0dnW.js create mode 100644 frontend/build/_app/immutable/chunks/C5aWxL5p.js create mode 100644 frontend/build/_app/immutable/chunks/CQQh_IlD.js rename frontend/build/_app/immutable/chunks/{DMqvp7vx.js => D3f6eoxz.js} (95%) create mode 100644 frontend/build/_app/immutable/chunks/DQNCp18R.js create mode 100644 frontend/build/_app/immutable/chunks/D__6P984.js delete mode 100644 frontend/build/_app/immutable/chunks/Da6yQRl8.js delete mode 100644 frontend/build/_app/immutable/chunks/De6rLmuB.js create mode 100644 frontend/build/_app/immutable/chunks/DyXP65qD.js create mode 100644 frontend/build/_app/immutable/chunks/Q5CB4WY5.js create mode 100644 frontend/build/_app/immutable/chunks/WPMya0VZ.js delete mode 100644 frontend/build/_app/immutable/chunks/Ym0WvvUy.js delete mode 100644 frontend/build/_app/immutable/chunks/dTRRgeF-.js delete mode 100644 frontend/build/_app/immutable/chunks/giww_vF6.js rename frontend/build/_app/immutable/chunks/{Bfwrz3i4.js => nIaoZoCo.js} (80%) delete mode 100644 frontend/build/_app/immutable/entry/app.DWnDWHgs.js create mode 100644 frontend/build/_app/immutable/entry/app.Dwn0pdp1.js delete mode 100644 frontend/build/_app/immutable/entry/start.Cw5np0_P.js create mode 100644 frontend/build/_app/immutable/entry/start.Do4A91T6.js create mode 100644 frontend/build/_app/immutable/nodes/0.C1R4dMGA.js delete mode 100644 frontend/build/_app/immutable/nodes/0.CNxjQThJ.js create mode 100644 frontend/build/_app/immutable/nodes/1.CNv_pgkw.js delete mode 100644 frontend/build/_app/immutable/nodes/1.DQmxvu2E.js create mode 100644 frontend/build/_app/immutable/nodes/2.C9GK89sD.js delete mode 100644 frontend/build/_app/immutable/nodes/2.CwK2tdGg.js create mode 100644 frontend/build/_app/immutable/nodes/3.BMSY6fJC.js delete mode 100644 frontend/build/_app/immutable/nodes/3.BjUxkFGX.js create mode 100644 frontend/build/_app/immutable/nodes/4.Ct0ahWmg.js create mode 100644 frontend/build/_app/immutable/nodes/5.CrKjY73y.js create mode 100644 frontend/build/_app/immutable/nodes/6.CMmeTvWv.js create mode 100644 frontend/build/_app/immutable/nodes/7.0Z-UCw0W.js create mode 100644 frontend/build/_app/immutable/nodes/8.fn5hverG.js create mode 100644 frontend/build/financials.html create mode 100644 frontend/build/more.html create mode 100644 frontend/build/overview.html create mode 100644 frontend/build/players.html create mode 100644 frontend/build/tables.html create mode 100644 frontend/src/lib/components/BottomTabs.svelte create mode 100644 frontend/src/lib/components/DataTable.svelte create mode 100644 frontend/src/lib/components/FAB.svelte create mode 100644 frontend/src/lib/components/Header.svelte create mode 100644 frontend/src/lib/components/Loading.svelte create mode 100644 frontend/src/lib/components/Sidebar.svelte create mode 100644 frontend/src/lib/components/Toast.svelte create mode 100644 frontend/src/lib/components/TournamentTabs.svelte create mode 100644 frontend/src/lib/stores/multi-tournament.svelte.ts create mode 100644 frontend/src/lib/stores/toast.svelte.ts create mode 100644 frontend/src/routes/financials/+page.svelte create mode 100644 frontend/src/routes/more/+page.svelte create mode 100644 frontend/src/routes/overview/+page.svelte create mode 100644 frontend/src/routes/players/+page.svelte create mode 100644 frontend/src/routes/tables/+page.svelte diff --git a/frontend/build/_app/immutable/assets/0.BcOVBfXh.css b/frontend/build/_app/immutable/assets/0.BcOVBfXh.css new file mode 100644 index 0000000..c9f0179 --- /dev/null +++ b/frontend/build/_app/immutable/assets/0.BcOVBfXh.css @@ -0,0 +1 @@ +[data-theme=mocha],:root{--ctp-rosewater: #f5e0dc;--ctp-flamingo: #f2cdcd;--ctp-pink: #f5c2e7;--ctp-mauve: #cba6f7;--ctp-red: #f38ba8;--ctp-maroon: #eba0ac;--ctp-peach: #fab387;--ctp-yellow: #f9e2af;--ctp-green: #a6e3a1;--ctp-teal: #94e2d5;--ctp-sky: #89dceb;--ctp-sapphire: #74c7ec;--ctp-blue: #89b4fa;--ctp-lavender: #b4befe;--ctp-text: #cdd6f4;--ctp-subtext1: #bac2de;--ctp-subtext0: #a6adc8;--ctp-overlay2: #9399b2;--ctp-overlay1: #7f849c;--ctp-overlay0: #6c7086;--ctp-surface2: #585b70;--ctp-surface1: #45475a;--ctp-surface0: #313244;--ctp-base: #1e1e2e;--ctp-mantle: #181825;--ctp-crust: #11111b;--color-bg: var(--ctp-base);--color-bg-elevated: var(--ctp-mantle);--color-bg-sunken: var(--ctp-crust);--color-surface: var(--ctp-surface0);--color-surface-hover: var(--ctp-surface1);--color-surface-active: var(--ctp-surface2);--color-text: var(--ctp-text);--color-text-secondary: var(--ctp-subtext1);--color-text-muted: var(--ctp-subtext0);--color-primary: var(--ctp-blue);--color-success: var(--ctp-green);--color-warning: var(--ctp-yellow);--color-error: var(--ctp-red);--color-accent: var(--ctp-mauve);--color-border: var(--ctp-surface1);--color-overlay: var(--ctp-overlay0);--color-felt: var(--ctp-green);--color-card: var(--ctp-text);--color-bounty: var(--ctp-pink);--color-prize: var(--ctp-yellow);--color-chip: var(--ctp-peach);--color-clock: var(--ctp-sapphire);--color-break: var(--ctp-teal);--color-elimination: var(--ctp-red)}[data-theme=latte]{--ctp-rosewater: #dc8a78;--ctp-flamingo: #dd7878;--ctp-pink: #ea76cb;--ctp-mauve: #8839ef;--ctp-red: #d20f39;--ctp-maroon: #e64553;--ctp-peach: #fe640b;--ctp-yellow: #df8e1d;--ctp-green: #40a02b;--ctp-teal: #179299;--ctp-sky: #04a5e5;--ctp-sapphire: #209fb5;--ctp-blue: #1e66f5;--ctp-lavender: #7287fd;--ctp-text: #4c4f69;--ctp-subtext1: #5c5f77;--ctp-subtext0: #6c6f85;--ctp-overlay2: #7c7f93;--ctp-overlay1: #8c8fa1;--ctp-overlay0: #9ca0b0;--ctp-surface2: #acb0be;--ctp-surface1: #bcc0cc;--ctp-surface0: #ccd0da;--ctp-base: #eff1f5;--ctp-mantle: #e6e9ef;--ctp-crust: #dce0e8}:root{--font-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.75;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .3);--transition-fast: .1s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--touch-target: 48px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-body);font-size:16px;line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scrollbar-gutter:stable}body{min-height:100dvh;color:var(--color-text);background-color:var(--color-bg)}button,a,input,select,textarea,[role=button],[role=tab],[role=menuitem]{touch-action:manipulation}.touch-target,button,[role=button],[role=tab]{min-height:var(--touch-target);min-width:var(--touch-target)}button:active,[role=button]:active,[role=tab]:active,.touch-target:active{transform:scale(.97);opacity:.9;transition:transform var(--transition-fast),opacity var(--transition-fast)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-surface-active);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-overlay)}*{scrollbar-width:thin;scrollbar-color:var(--color-surface-active) var(--color-bg)}.font-mono{font-family:var(--font-mono)}.timer,.number,.blinds,.chips,.currency{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.header.svelte-1elxaub{position:fixed;top:0;left:0;right:0;z-index:100;background-color:var(--color-bg-elevated);border-bottom:1px solid var(--color-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.header-inner.svelte-1elxaub{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-2) var(--space-4);max-width:1400px;margin:0 auto;min-height:var(--touch-target)}.header-clock.svelte-1elxaub{display:flex;align-items:center;gap:var(--space-2);flex-shrink:0}.clock-time.svelte-1elxaub{font-size:var(--text-2xl);font-weight:700;color:var(--color-clock);letter-spacing:.02em}.header-clock.urgent.svelte-1elxaub .clock-time:where(.svelte-1elxaub){color:var(--color-error);animation:svelte-1elxaub-pulse-urgent 1s ease-in-out infinite}.header-clock.paused.svelte-1elxaub .clock-time:where(.svelte-1elxaub){opacity:.6}.header-clock.on-break.svelte-1elxaub .clock-time:where(.svelte-1elxaub){color:var(--color-break)}@keyframes svelte-1elxaub-pulse-urgent{0%,to{opacity:1}50%{opacity:.5}}.status-badge.svelte-1elxaub{font-size:var(--text-xs);font-weight:700;padding:2px var(--space-2);border-radius:var(--radius-sm);text-transform:uppercase;letter-spacing:.05em}.paused-badge.svelte-1elxaub{background-color:color-mix(in srgb,var(--ctp-peach) 20%,transparent);color:var(--ctp-peach);animation:svelte-1elxaub-pulse-paused 2s ease-in-out infinite}@keyframes svelte-1elxaub-pulse-paused{0%,to{opacity:1}50%{opacity:.5}}.break-badge.svelte-1elxaub{background-color:color-mix(in srgb,var(--color-break) 20%,transparent);color:var(--color-break)}.header-level.svelte-1elxaub{display:flex;align-items:baseline;gap:var(--space-2);min-width:0}.level-number.svelte-1elxaub{font-size:var(--text-lg);font-weight:700;color:var(--color-text);flex-shrink:0}.level-name.svelte-1elxaub{font-size:var(--text-sm);color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-blinds.svelte-1elxaub{display:flex;align-items:baseline;gap:var(--space-2);flex-shrink:0}.blinds-label.svelte-1elxaub{font-size:var(--text-xs);color:var(--color-text-muted);text-transform:uppercase}.blinds-value.svelte-1elxaub{font-size:var(--text-lg);font-weight:600;color:var(--color-text)}.ante-value.svelte-1elxaub{font-size:var(--text-sm);color:var(--color-text-secondary)}.header-players.svelte-1elxaub{display:flex;align-items:baseline;gap:var(--space-1);flex-shrink:0}.player-count.svelte-1elxaub{font-size:var(--text-lg);font-weight:600;color:var(--color-success)}.player-label.svelte-1elxaub{font-size:var(--text-xs);color:var(--color-text-muted)}.header-empty.svelte-1elxaub{display:flex;align-items:center;gap:var(--space-3);width:100%}.brand.svelte-1elxaub{font-size:var(--text-xl);font-weight:700;color:var(--color-primary)}.no-data.svelte-1elxaub{font-size:var(--text-sm);color:var(--color-text-muted)}.hide-mobile.svelte-1elxaub{display:none}@media(min-width:768px){.hide-mobile.svelte-1elxaub{display:inline}.clock-time.svelte-1elxaub{font-size:var(--text-3xl)}.header-inner.svelte-1elxaub{padding:var(--space-3) var(--space-6);gap:var(--space-6)}}.bottom-tabs.svelte-1pn9dat{position:fixed;bottom:0;left:0;right:0;z-index:90;display:flex;align-items:stretch;justify-content:space-around;background-color:var(--color-bg-elevated);border-top:1px solid var(--color-border);padding-bottom:env(safe-area-inset-bottom,0)}@media(min-width:768px){.bottom-tabs.svelte-1pn9dat{display:none}}.tab-item.svelte-1pn9dat{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;flex:1;min-height:var(--touch-target);padding:var(--space-1) var(--space-2);text-decoration:none;color:var(--color-text-muted);transition:color var(--transition-fast);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.tab-item.active.svelte-1pn9dat{color:var(--color-primary)}.tab-item.svelte-1pn9dat:hover:not(.active){color:var(--color-text-secondary)}.tab-icon.svelte-1pn9dat{font-size:var(--text-xl);line-height:1}.tab-label.svelte-1pn9dat{font-size:10px;font-weight:500;line-height:1;white-space:nowrap}.sidebar.svelte-129hoe0{display:none;position:fixed;top:0;left:0;bottom:0;width:220px;background-color:var(--color-bg-elevated);border-right:1px solid var(--color-border);z-index:80;padding-top:var(--space-4);overflow-y:auto}@media(min-width:768px){.sidebar.svelte-129hoe0{display:flex;flex-direction:column}}.sidebar-brand.svelte-129hoe0{padding:var(--space-4) var(--space-6);margin-bottom:var(--space-4)}.brand-name.svelte-129hoe0{font-size:var(--text-2xl);font-weight:700;color:var(--color-primary);letter-spacing:-.02em}.sidebar-nav.svelte-129hoe0{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:var(--space-1)}.nav-item.svelte-129hoe0{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-6);min-height:var(--touch-target);text-decoration:none;color:var(--color-text-secondary);border-radius:0;transition:background-color var(--transition-fast),color var(--transition-fast)}.nav-item.svelte-129hoe0:hover:not(.active){background-color:var(--color-surface);color:var(--color-text)}.nav-item.active.svelte-129hoe0{color:var(--color-primary);background-color:color-mix(in srgb,var(--color-primary) 10%,transparent);border-right:3px solid var(--color-primary)}.nav-icon.svelte-129hoe0{font-size:var(--text-xl);width:1.5em;text-align:center;flex-shrink:0}.nav-label.svelte-129hoe0{font-size:var(--text-base);font-weight:500}.fab-backdrop.svelte-6hll69{position:fixed;top:0;right:0;bottom:0;left:0;z-index:94;background-color:#0006;animation:svelte-6hll69-fade-in .15s ease-out}@keyframes svelte-6hll69-fade-in{0%{opacity:0}to{opacity:1}}.fab-container.svelte-6hll69{position:fixed;bottom:calc(var(--touch-target) + var(--space-6) + env(safe-area-inset-bottom,0px));right:var(--space-4);z-index:95;display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-3)}@media(min-width:768px){.fab-container.svelte-6hll69{bottom:var(--space-6);right:var(--space-6)}}.fab-actions.svelte-6hll69{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-2)}.fab-action.svelte-6hll69{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-4);background-color:var(--color-surface);border:1px solid var(--action-color);border-radius:var(--radius-full);cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;box-shadow:var(--shadow-md);animation:svelte-6hll69-fab-action-in .2s ease-out backwards;animation-delay:var(--action-delay);transition:transform var(--transition-fast),background-color var(--transition-fast)}.fab-action.svelte-6hll69:hover{background-color:var(--color-surface-hover)}@keyframes svelte-6hll69-fab-action-in{0%{opacity:0;transform:translateY(10px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.fab-action-icon.svelte-6hll69{font-size:var(--text-lg);color:var(--action-color);width:1.5em;text-align:center}.fab-action-label.svelte-6hll69{font-size:var(--text-sm);font-weight:600;color:var(--color-text);white-space:nowrap}.fab-main.svelte-6hll69{width:56px;height:56px;min-height:56px;min-width:56px;border-radius:var(--radius-full);background-color:var(--color-primary);color:var(--color-bg);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;transition:transform var(--transition-normal),background-color var(--transition-fast)}.fab-main.svelte-6hll69:hover{background-color:color-mix(in srgb,var(--color-primary) 90%,white)}.fab-main.expanded.svelte-6hll69{background-color:var(--color-surface-active);transform:rotate(45deg)}.fab-icon.svelte-6hll69{font-size:var(--text-2xl);font-weight:300;line-height:1}.toast-container.svelte-1cpok13{position:fixed;z-index:9999;display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none;bottom:calc(var(--touch-target) + var(--space-8) + var(--space-4));left:var(--space-4);right:var(--space-4);align-items:center}@media(min-width:768px){.toast-container.svelte-1cpok13{top:var(--space-4);right:var(--space-4);bottom:auto;left:auto;align-items:flex-end;max-width:400px}}.toast.svelte-1cpok13{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background-color:var(--color-surface);border:1px solid var(--toast-color);border-left:4px solid var(--toast-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);pointer-events:auto;width:100%;max-width:400px;animation:svelte-1cpok13-toast-slide-in .2s ease-out}@keyframes svelte-1cpok13-toast-slide-in{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.toast-icon.svelte-1cpok13{flex-shrink:0;font-size:var(--text-lg);color:var(--toast-color);width:1.5em;text-align:center}.toast-message.svelte-1cpok13{flex:1;font-size:var(--text-sm);color:var(--color-text);line-height:var(--leading-normal)}.toast-dismiss.svelte-1cpok13{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:28px;height:28px;min-height:28px;min-width:28px;padding:0;font-size:var(--text-lg);color:var(--color-text-muted);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:color var(--transition-fast)}.toast-dismiss.svelte-1cpok13:hover{color:var(--color-text)}.tournament-tabs.svelte-ldvvqt{display:flex;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:var(--space-1);padding:var(--space-2) var(--space-4);background-color:var(--color-bg-sunken);border-bottom:1px solid var(--color-border)}.tournament-tabs.svelte-ldvvqt::-webkit-scrollbar{display:none}.tournament-tab.svelte-ldvvqt{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:none;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;color:var(--color-text-secondary);font-size:var(--text-sm);font-weight:500;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);flex-shrink:0;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.tournament-tab.svelte-ldvvqt:hover:not(.active){background-color:var(--color-surface);color:var(--color-text)}.tournament-tab.active.svelte-ldvvqt{background-color:var(--color-surface);border-color:var(--color-primary);color:var(--color-text);font-weight:600}.status-dot.svelte-ldvvqt{width:8px;height:8px;border-radius:var(--radius-full);flex-shrink:0}.tab-name.svelte-ldvvqt{overflow:hidden;text-overflow:ellipsis;max-width:150px}.app-shell.svelte-12qhfyh{display:flex;flex-direction:column;min-height:100dvh}.main-content.svelte-12qhfyh{flex:1;padding-top:calc(var(--touch-target) + var(--space-2));padding-bottom:calc(var(--touch-target) + var(--space-4) + env(safe-area-inset-bottom,0px));overflow-y:auto}@media(min-width:768px){.main-content.svelte-12qhfyh{margin-left:220px;padding-bottom:var(--space-4)}}.redirect-screen.svelte-12qhfyh{display:flex;align-items:center;justify-content:center;min-height:100dvh;color:var(--color-text-muted)} diff --git a/frontend/build/_app/immutable/assets/0.LvVNMuLM.css b/frontend/build/_app/immutable/assets/0.LvVNMuLM.css deleted file mode 100644 index 17c1cc0..0000000 --- a/frontend/build/_app/immutable/assets/0.LvVNMuLM.css +++ /dev/null @@ -1 +0,0 @@ -[data-theme=mocha],:root{--ctp-rosewater: #f5e0dc;--ctp-flamingo: #f2cdcd;--ctp-pink: #f5c2e7;--ctp-mauve: #cba6f7;--ctp-red: #f38ba8;--ctp-maroon: #eba0ac;--ctp-peach: #fab387;--ctp-yellow: #f9e2af;--ctp-green: #a6e3a1;--ctp-teal: #94e2d5;--ctp-sky: #89dceb;--ctp-sapphire: #74c7ec;--ctp-blue: #89b4fa;--ctp-lavender: #b4befe;--ctp-text: #cdd6f4;--ctp-subtext1: #bac2de;--ctp-subtext0: #a6adc8;--ctp-overlay2: #9399b2;--ctp-overlay1: #7f849c;--ctp-overlay0: #6c7086;--ctp-surface2: #585b70;--ctp-surface1: #45475a;--ctp-surface0: #313244;--ctp-base: #1e1e2e;--ctp-mantle: #181825;--ctp-crust: #11111b;--color-bg: var(--ctp-base);--color-bg-elevated: var(--ctp-mantle);--color-bg-sunken: var(--ctp-crust);--color-surface: var(--ctp-surface0);--color-surface-hover: var(--ctp-surface1);--color-surface-active: var(--ctp-surface2);--color-text: var(--ctp-text);--color-text-secondary: var(--ctp-subtext1);--color-text-muted: var(--ctp-subtext0);--color-primary: var(--ctp-blue);--color-success: var(--ctp-green);--color-warning: var(--ctp-yellow);--color-error: var(--ctp-red);--color-accent: var(--ctp-mauve);--color-border: var(--ctp-surface1);--color-overlay: var(--ctp-overlay0);--color-felt: var(--ctp-green);--color-card: var(--ctp-text);--color-bounty: var(--ctp-pink);--color-prize: var(--ctp-yellow);--color-chip: var(--ctp-peach);--color-clock: var(--ctp-sapphire);--color-break: var(--ctp-teal);--color-elimination: var(--ctp-red)}[data-theme=latte]{--ctp-rosewater: #dc8a78;--ctp-flamingo: #dd7878;--ctp-pink: #ea76cb;--ctp-mauve: #8839ef;--ctp-red: #d20f39;--ctp-maroon: #e64553;--ctp-peach: #fe640b;--ctp-yellow: #df8e1d;--ctp-green: #40a02b;--ctp-teal: #179299;--ctp-sky: #04a5e5;--ctp-sapphire: #209fb5;--ctp-blue: #1e66f5;--ctp-lavender: #7287fd;--ctp-text: #4c4f69;--ctp-subtext1: #5c5f77;--ctp-subtext0: #6c6f85;--ctp-overlay2: #7c7f93;--ctp-overlay1: #8c8fa1;--ctp-overlay0: #9ca0b0;--ctp-surface2: #acb0be;--ctp-surface1: #bcc0cc;--ctp-surface0: #ccd0da;--ctp-base: #eff1f5;--ctp-mantle: #e6e9ef;--ctp-crust: #dce0e8}:root{--font-body: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", ui-monospace, "Cascadia Code", "Source Code Pro", Menlo, Consolas, "DejaVu Sans Mono", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 1.875rem;--text-4xl: 2.25rem;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.75;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .3);--transition-fast: .1s ease;--transition-normal: .2s ease;--transition-slow: .3s ease;--touch-target: 48px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-family:var(--font-body);font-size:16px;line-height:var(--leading-normal);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scrollbar-gutter:stable}body{min-height:100dvh;color:var(--color-text);background-color:var(--color-bg)}button,a,input,select,textarea,[role=button],[role=tab],[role=menuitem]{touch-action:manipulation}.touch-target,button,[role=button],[role=tab]{min-height:var(--touch-target);min-width:var(--touch-target)}button:active,[role=button]:active,[role=tab]:active,.touch-target:active{transform:scale(.97);opacity:.9;transition:transform var(--transition-fast),opacity var(--transition-fast)}:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}:focus:not(:focus-visible){outline:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-surface-active);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-overlay)}*{scrollbar-width:thin;scrollbar-color:var(--color-surface-active) var(--color-bg)}.font-mono{font-family:var(--font-mono)}.timer,.number,.blinds,.chips,.currency{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0} diff --git a/frontend/build/_app/immutable/assets/2.BmNlW7Gm.css b/frontend/build/_app/immutable/assets/2.BmNlW7Gm.css new file mode 100644 index 0000000..341882c --- /dev/null +++ b/frontend/build/_app/immutable/assets/2.BmNlW7Gm.css @@ -0,0 +1 @@ +.redirect.svelte-1uha8ag{display:flex;align-items:center;justify-content:center;min-height:50dvh;color:var(--color-text-muted)} diff --git a/frontend/build/_app/immutable/assets/2.lCQ6RyE1.css b/frontend/build/_app/immutable/assets/2.lCQ6RyE1.css deleted file mode 100644 index d24b205..0000000 --- a/frontend/build/_app/immutable/assets/2.lCQ6RyE1.css +++ /dev/null @@ -1 +0,0 @@ -.container.svelte-1uha8ag{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100dvh;padding:1rem;gap:.5rem}h1.svelte-1uha8ag{font-size:2rem;font-weight:700;color:var(--color-primary)}.text-secondary.svelte-1uha8ag{color:var(--color-text-secondary)} diff --git a/frontend/build/_app/immutable/assets/3.BysT7-iU.css b/frontend/build/_app/immutable/assets/3.BysT7-iU.css new file mode 100644 index 0000000..f66a45e --- /dev/null +++ b/frontend/build/_app/immutable/assets/3.BysT7-iU.css @@ -0,0 +1 @@ +.page-content.svelte-1ba4c5d{padding:var(--space-4)}h2.svelte-1ba4c5d{font-size:var(--text-2xl);font-weight:700;color:var(--color-text);margin-bottom:var(--space-2)}.text-secondary.svelte-1ba4c5d{color:var(--color-text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-6)}.finance-grid.svelte-1ba4c5d{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}@media(min-width:768px){.finance-grid.svelte-1ba4c5d{grid-template-columns:repeat(3,1fr)}}.finance-card.svelte-1ba4c5d{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4);background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.finance-card.highlight.svelte-1ba4c5d{border-color:var(--color-prize)}.finance-label.svelte-1ba4c5d{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.finance-value.svelte-1ba4c5d{font-size:var(--text-xl);font-weight:700;color:var(--color-text)}.finance-value.prize.svelte-1ba4c5d{color:var(--color-prize)}.empty-state.svelte-1ba4c5d{color:var(--color-text-muted);font-style:italic;padding:var(--space-8) 0;text-align:center} diff --git a/frontend/build/_app/immutable/assets/3.C7Q2VT44.css b/frontend/build/_app/immutable/assets/4.C7Q2VT44.css similarity index 100% rename from frontend/build/_app/immutable/assets/3.C7Q2VT44.css rename to frontend/build/_app/immutable/assets/4.C7Q2VT44.css diff --git a/frontend/build/_app/immutable/assets/5.B34oOQk5.css b/frontend/build/_app/immutable/assets/5.B34oOQk5.css new file mode 100644 index 0000000..df6ba1c --- /dev/null +++ b/frontend/build/_app/immutable/assets/5.B34oOQk5.css @@ -0,0 +1 @@ +.page-content.svelte-hq0atu{padding:var(--space-4)}h2.svelte-hq0atu{font-size:var(--text-2xl);font-weight:700;color:var(--color-text);margin-bottom:var(--space-2)}.text-secondary.svelte-hq0atu{color:var(--color-text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-6)}.menu-list.svelte-hq0atu{display:flex;flex-direction:column;background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border);overflow:hidden}.menu-item.svelte-hq0atu{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);min-height:var(--touch-target);border-bottom:1px solid var(--color-border)}.menu-item.svelte-hq0atu:last-child{border-bottom:none}.menu-action.svelte-hq0atu{background:none;border:none;border-bottom:1px solid var(--color-border);cursor:pointer;width:100%;text-align:left;font-size:inherit;font-family:inherit}.menu-action.svelte-hq0atu:hover{background-color:var(--color-surface-hover)}.menu-label.svelte-hq0atu{font-size:var(--text-base);color:var(--color-text)}.menu-value.svelte-hq0atu{font-size:var(--text-sm);color:var(--color-text-secondary)}.danger.svelte-hq0atu .menu-label:where(.svelte-hq0atu){color:var(--color-error)}.divider.svelte-hq0atu{border:none;border-top:1px solid var(--color-border);margin:0} diff --git a/frontend/build/_app/immutable/assets/6.BcOWEnnB.css b/frontend/build/_app/immutable/assets/6.BcOWEnnB.css new file mode 100644 index 0000000..59a86cb --- /dev/null +++ b/frontend/build/_app/immutable/assets/6.BcOWEnnB.css @@ -0,0 +1 @@ +.page-content.svelte-14qseeg{padding:var(--space-4)}h2.svelte-14qseeg{font-size:var(--text-2xl);font-weight:700;color:var(--color-text);margin-bottom:var(--space-2)}.text-secondary.svelte-14qseeg{color:var(--color-text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-6)}.stats-grid.svelte-14qseeg{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}@media(min-width:768px){.stats-grid.svelte-14qseeg{grid-template-columns:repeat(4,1fr)}}.stat-card.svelte-14qseeg{display:flex;flex-direction:column;gap:var(--space-1);padding:var(--space-4);background-color:var(--color-surface);border-radius:var(--radius-lg);border:1px solid var(--color-border)}.stat-label.svelte-14qseeg{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.stat-value.svelte-14qseeg{font-size:var(--text-2xl);font-weight:700;color:var(--color-text)}.empty-state.svelte-14qseeg{color:var(--color-text-muted);font-style:italic;padding:var(--space-8) 0;text-align:center} diff --git a/frontend/build/_app/immutable/assets/7.CLv6rscz.css b/frontend/build/_app/immutable/assets/7.CLv6rscz.css new file mode 100644 index 0000000..cb315e5 --- /dev/null +++ b/frontend/build/_app/immutable/assets/7.CLv6rscz.css @@ -0,0 +1 @@ +.page-content.svelte-wtkzqx{padding:var(--space-4)}h2.svelte-wtkzqx{font-size:var(--text-2xl);font-weight:700;color:var(--color-text);margin-bottom:var(--space-2)}.text-secondary.svelte-wtkzqx{color:var(--color-text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-4)} diff --git a/frontend/build/_app/immutable/assets/8.WyH666g9.css b/frontend/build/_app/immutable/assets/8.WyH666g9.css new file mode 100644 index 0000000..a4ed0b5 --- /dev/null +++ b/frontend/build/_app/immutable/assets/8.WyH666g9.css @@ -0,0 +1 @@ +.page-content.svelte-bf0doe{padding:var(--space-4)}h2.svelte-bf0doe{font-size:var(--text-2xl);font-weight:700;color:var(--color-text);margin-bottom:var(--space-2)}.text-secondary.svelte-bf0doe{color:var(--color-text-secondary);font-size:var(--text-sm);margin-bottom:var(--space-4)} diff --git a/frontend/build/_app/immutable/assets/DataTable.CrZfXN-V.css b/frontend/build/_app/immutable/assets/DataTable.CrZfXN-V.css new file mode 100644 index 0000000..b474708 --- /dev/null +++ b/frontend/build/_app/immutable/assets/DataTable.CrZfXN-V.css @@ -0,0 +1 @@ +.data-table-wrapper.svelte-16k18c8{width:100%;overflow:hidden}.table-search.svelte-16k18c8{padding:var(--space-3) 0}.search-input.svelte-16k18c8{width:100%;padding:var(--space-2) var(--space-3);font-size:var(--text-sm);color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);outline:none;transition:border-color var(--transition-fast);min-height:var(--touch-target)}.search-input.svelte-16k18c8:focus{border-color:var(--color-primary)}.search-input.svelte-16k18c8::placeholder{color:var(--color-text-muted)}.table-scroll.svelte-16k18c8{overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table.svelte-16k18c8{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.data-table.svelte-16k18c8 thead:where(.svelte-16k18c8){position:sticky;top:0;z-index:2}.data-table.svelte-16k18c8 th:where(.svelte-16k18c8){padding:var(--space-2) var(--space-3);font-weight:600;font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);background-color:var(--color-bg-elevated);border-bottom:2px solid var(--color-border);white-space:nowrap;-webkit-user-select:none;user-select:none}.data-table.svelte-16k18c8 th.sortable:where(.svelte-16k18c8){cursor:pointer}.data-table.svelte-16k18c8 th.sortable:where(.svelte-16k18c8):hover{color:var(--color-text)}.th-content.svelte-16k18c8{display:inline-flex;align-items:center;gap:var(--space-1)}.sort-indicator.svelte-16k18c8{font-size:8px;color:var(--color-text-muted);opacity:.3}.sort-indicator.active.svelte-16k18c8{opacity:1;color:var(--color-primary)}.data-table.svelte-16k18c8 td:where(.svelte-16k18c8){padding:var(--space-2) var(--space-3);color:var(--color-text);border-bottom:1px solid var(--color-border);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}.data-row.svelte-16k18c8{min-height:var(--touch-target);transition:background-color var(--transition-fast)}.data-row.svelte-16k18c8:hover{background-color:var(--color-surface)}.data-row.clickable.svelte-16k18c8{cursor:pointer}.data-row.clickable.svelte-16k18c8:active{background-color:var(--color-surface-hover)}.empty-state.svelte-16k18c8{text-align:center;padding:var(--space-12) var(--space-4);color:var(--color-text-muted);font-style:italic}.skeleton-row.svelte-16k18c8 td:where(.svelte-16k18c8){padding:var(--space-3)}.skeleton-cell.svelte-16k18c8{height:16px;background:linear-gradient(90deg,var(--color-surface) 25%,var(--color-surface-hover) 50%,var(--color-surface) 75%);background-size:200% 100%;animation:svelte-16k18c8-skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}@keyframes svelte-16k18c8-skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.swipe-actions-row.svelte-16k18c8 td:where(.svelte-16k18c8){padding:0;border-bottom:none}.swipe-actions.svelte-16k18c8{display:flex;justify-content:flex-end;gap:var(--space-1);padding:var(--space-1);background-color:var(--color-bg-sunken)}.swipe-action-btn.svelte-16k18c8{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);font-weight:600;color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap}.hide-mobile.svelte-16k18c8{display:none}@media(min-width:768px){.hide-mobile.svelte-16k18c8{display:table-cell}.data-table.svelte-16k18c8 td:where(.svelte-16k18c8){max-width:300px}} diff --git a/frontend/build/_app/immutable/chunks/B6M6q2Zo.js b/frontend/build/_app/immutable/chunks/B6M6q2Zo.js deleted file mode 100644 index a292ca5..0000000 --- a/frontend/build/_app/immutable/chunks/B6M6q2Zo.js +++ /dev/null @@ -1 +0,0 @@ -import{N as p,m as u,O as c,P as f,Q as E,T as g,R as w,h as d,j as s,S as N,c as y,U as M,f as x,V as A}from"./Ym0WvvUy.js";var l;const i=((l=globalThis==null?void 0:globalThis.window)==null?void 0:l.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:t=>t});function L(t){return(i==null?void 0:i.createHTML(t))??t}function O(t){var r=p("template");return r.innerHTML=L(t.replaceAll("","")),r.content}function n(t,r){var e=c;e.nodes===null&&(e.nodes={start:t,end:r,a:null,t:null})}function b(t,r){var e=(r&g)!==0,m=(r&w)!==0,a,v=!t.startsWith("");return()=>{if(d)return n(s,null),s;a===void 0&&(a=O(v?t:""+t),e||(a=f(a)));var o=m||E?document.importNode(a,!0):a.cloneNode(!0);if(e){var T=f(o),h=o.lastChild;n(T,h)}else n(o,o);return o}}function C(t=""){if(!d){var r=u(t+"");return n(r,r),r}var e=s;return e.nodeType!==M?(e.before(e=u()),x(e)):A(e),n(e,e),e}function I(){if(d)return n(s,null),s;var t=document.createDocumentFragment(),r=document.createComment(""),e=u();return t.append(r,e),n(r,e),t}function S(t,r){if(d){var e=c;((e.f&N)===0||e.nodes.end===null)&&(e.nodes.end=s),y();return}t!==null&&t.before(r)}const P="5";var _;typeof window<"u"&&((_=window.__svelte??(window.__svelte={})).v??(_.v=new Set)).add(P);export{S as a,n as b,I as c,b as f,C as t}; diff --git a/frontend/build/_app/immutable/chunks/B9dvBo0E.js b/frontend/build/_app/immutable/chunks/B9dvBo0E.js deleted file mode 100644 index 3a3f498..0000000 --- a/frontend/build/_app/immutable/chunks/B9dvBo0E.js +++ /dev/null @@ -1 +0,0 @@ -import{b as T,h as o,c as b,E as v,r as p,H as A,d as E,e as R,f as g,i as l,j as m}from"./Ym0WvvUy.js";import{B as d}from"./Da6yQRl8.js";function H(_,u,c=!1){var i;o&&(i=m,b());var n=new d(_),h=c?v:0;function f(a,s){if(o){var r=p(i),e;if(r===A?e=0:r===E?e=!1:e=parseInt(r.substring(1)),a!==e){var t=R();g(t),n.anchor=t,l(!1),n.ensure(a,s),l(!0);return}}n.ensure(a,s)}T(()=>{var a=!1;u((s,r=0)=>{a=!0,f(r,s)}),a||f(!1,null)},h)}export{H as i}; diff --git a/frontend/build/_app/immutable/chunks/BTkWS7xQ.js b/frontend/build/_app/immutable/chunks/BTkWS7xQ.js new file mode 100644 index 0000000..e862262 --- /dev/null +++ b/frontend/build/_app/immutable/chunks/BTkWS7xQ.js @@ -0,0 +1 @@ +import{t as b}from"./BeLKMLqR.js";import{h as c}from"./C4An0dnW.js";function A(i,u={},r,f){for(var a in r){var o=r[a];u[a]!==o&&(r[a]==null?i.style.removeProperty(a):i.style.setProperty(a,o,f))}}function t(i,u,r,f){var a=i.__style;if(c||a!==u){var o=b(u,f);(!c||o!==i.getAttribute("style"))&&(o==null?i.removeAttribute("style"):i.style.cssText=o),i.__style=u}else f&&(Array.isArray(f)?(A(i,r==null?void 0:r[0],f[0]),A(i,r==null?void 0:r[1],f[1],"important")):A(i,r,f));return f}export{t as s}; diff --git a/frontend/build/_app/immutable/chunks/BViIIwgj.js b/frontend/build/_app/immutable/chunks/BViIIwgj.js new file mode 100644 index 0000000..015f719 --- /dev/null +++ b/frontend/build/_app/immutable/chunks/BViIIwgj.js @@ -0,0 +1 @@ +import{j as g,m as d,u as c,k as m,n as i,o as b,g as p,q as v,v as k,w as h}from"./C4An0dnW.js";function x(t=!1){const s=g,e=s.l.u;if(!e)return;let f=()=>v(s.s);if(t){let o=0,n={};const _=k(()=>{let l=!1;const r=s.s;for(const a in r)r[a]!==n[a]&&(n[a]=r[a],l=!0);return l&&o++,o});f=()=>p(_)}e.b.length&&d(()=>{u(s,f),i(e.b)}),c(()=>{const o=m(()=>e.m.map(b));return()=>{for(const n of o)typeof n=="function"&&n()}}),e.a.length&&c(()=>{u(s,f),i(e.a)})}function u(t,s){if(t.l.s)for(const e of t.l.s)p(e);s()}h();export{x as i}; diff --git a/frontend/build/_app/immutable/chunks/BeLKMLqR.js b/frontend/build/_app/immutable/chunks/BeLKMLqR.js new file mode 100644 index 0000000..f3d75d5 --- /dev/null +++ b/frontend/build/_app/immutable/chunks/BeLKMLqR.js @@ -0,0 +1,2 @@ +import{K as U,T as tr,a5 as sr,h as A,_ as Y,a6 as vr,U as cr,g as j,W as dr,Y as gr,Z as x,$ as q,O as z,a7 as hr,a8 as pr,a9 as y,N as _r,aa as I,M as m,ab as Er,R as Ar,i as Tr,ac as Nr,ad as V,ae as Sr,af as Ir,ag as br,ah as rr,ai as Cr,H as ur,J as lr,aj as B,ak as or,al as Mr,am as Or,an as Lr,I as wr,ao as Hr,ap as Rr,aq as kr,ar as Dr,as as Fr,at as zr,au as Ur}from"./C4An0dnW.js";function Wr(r,e){return e}function Yr(r,e,f){for(var a=[],u=e.length,n,s=e.length,c=0;c{if(n){if(n.pending.delete(g),n.done.add(g),n.pending.size===0){var t=r.outrogroups;G(V(n.done)),t.delete(n),t.size===0&&(r.outrogroups=null)}}else s-=1},!1)}if(s===0){var l=a.length===0&&f!==null;if(l){var d=f,o=d.parentNode;Lr(o),o.append(d),r.items.clear()}G(e,!l)}else n={pending:new Set(e),done:new Set},(r.outrogroups??(r.outrogroups=new Set)).add(n)}function G(r,e=!0){for(var f=0;f{var v=f();return Nr(v)?v:v==null?[]:V(v)}),t,h=!0;function T(){i.fallback=o,qr(i,t,s,e,a),o!==null&&(t.length===0?(o.f&I)===0?ur(o):(o.f^=I,k(o,null,s)):lr(o,()=>{o=null}))}var N=tr(()=>{t=j(g);var v=t.length;let O=!1;if(A){var L=dr(s)===gr;L!==(v===0)&&(s=x(),Y(s),q(!1),O=!0)}for(var _=new Set,C=_r,w=Ar(),p=0;pn(s)):(o=m(()=>n(er??(er=U()))),o.f|=I)),v>_.size&&Er(),A&&v>0&&Y(x()),!h)if(w){for(const[D,F]of c)_.has(D)||C.skip_effect(F.e);C.oncommit(T),C.ondiscard(()=>{})}else T();O&&q(!0),j(g)}),i={effect:N,items:c,outrogroups:null,fallback:o};h=!1,A&&(s=z)}function R(r){for(;r!==null&&(r.f&Mr)===0;)r=r.next;return r}function qr(r,e,f,a,u){var E,D,F,X,J,P,W,Z,$;var n=(a&Or)!==0,s=e.length,c=r.items,l=R(r.effect.first),d,o=null,g,t=[],h=[],T,N,i,v;if(n)for(v=0;v0){var H=(a&sr)!==0&&s===0?f:null;if(n){for(v=0;v{var S,Q;if(g!==void 0)for(i of g)(Q=(S=i.nodes)==null?void 0:S.a)==null||Q.apply()})}function Br(r,e,f,a,u,n,s,c){var l=(s&Sr)!==0?(s&Ir)===0?br(f,!1,!1):rr(f):null,d=(s&Cr)!==0?rr(u):null;return{v:l,i:d,e:m(()=>(n(e,l??f,d??u,c),()=>{r.delete(a)}))}}function k(r,e,f){if(r.nodes)for(var a=r.nodes.start,u=r.nodes.end,n=e&&(e.f&I)===0?e.nodes.start:f;a!==null;){var s=Hr(a);if(n.before(a),a===u)return;a=s}}function b(r,e,f){e===null?r.effect.first=f:e.next=f,f===null?r.effect.last=e:f.prev=e}const fr=[...` +\r\f \v\uFEFF`];function Kr(r,e,f){var a=r==null?"":""+r;if(e&&(a=a?a+" "+e:e),f){for(var u of Object.keys(f))if(f[u])a=a?a+" "+u:u;else if(a.length)for(var n=u.length,s=0;(s=a.indexOf(u,s))>=0;){var c=s+n;(s===0||fr.includes(a[s-1]))&&(c===a.length||fr.includes(a[c]))?a=(s===0?"":a.substring(0,s))+a.substring(c+1):s=c}}return a===""?null:a}function ar(r,e=!1){var f=e?" !important;":";",a="";for(var u of Object.keys(r)){var n=r[u];n!=null&&n!==""&&(a+=" "+u+": "+n+f)}return a}function K(r){return r[0]!=="-"||r[1]!=="-"?r.toLowerCase():r}function $r(r,e){if(e){var f="",a,u;if(Array.isArray(e)?(a=e[0],u=e[1]):a=e,r){r=String(r).replaceAll(/\s*\/\*.*?\*\/\s*/g,"").trim();var n=!1,s=0,c=!1,l=[];a&&l.push(...Object.keys(a).map(K)),u&&l.push(...Object.keys(u).map(K));var d=0,o=-1;const N=r.length;for(var g=0;g{if(!e){if(e=!0,r.hasAttribute("value")){var a=r.value;ir(r,"value",null),r.value=a}if(r.hasAttribute("checked")){var u=r.checked;ir(r,"checked",null),r.checked=u}}};r.__on_r=f,or(f),Fr()}}function ir(r,e,f,a){var u=Xr(r);A&&(u[e]=r.getAttribute(e),e==="src"||e==="srcset"||e==="href"&&r.nodeName===Vr)||u[e]!==(u[e]=f)&&(e==="loading"&&(r[zr]=f),f==null?r.removeAttribute(e):typeof f!="string"&&Jr(r).includes(e)?r[e]=f:r.setAttribute(e,f))}function Xr(r){return r.__attributes??(r.__attributes={[mr]:r.nodeName.includes("-"),[Gr]:r.namespaceURI===Rr})}var nr=new Map;function Jr(r){var e=r.getAttribute("is")||r.nodeName,f=nr.get(e);if(f)return f;nr.set(e,f=[]);for(var a,u=r,n=Element.prototype;n!==u;){a=Dr(u);for(var s in a)a[s].set&&f.push(s);u=kr(u)}return f}export{Qr as a,Zr as e,Wr as i,jr as r,ir as s,$r as t}; diff --git a/frontend/build/_app/immutable/chunks/C48rM6KF.js b/frontend/build/_app/immutable/chunks/C48rM6KF.js new file mode 100644 index 0000000..5fe4478 --- /dev/null +++ b/frontend/build/_app/immutable/chunks/C48rM6KF.js @@ -0,0 +1 @@ +import{y as D,z as T,P as B,g,e as m,d as Y,A as y,B as M,D as N,C as U,k as h,l as x,E as z,F as C,v as G,i as $,G as q,S as w,L as F}from"./C4An0dnW.js";let S=!1;function Z(r){var n=S;try{return S=!1,[r(),S]}finally{S=n}}function H(r,n,t,d){var E;var f=!x||(t&z)!==0,v=(t&U)!==0,O=(t&q)!==0,a=d,c=!0,o=()=>(c&&(c=!1,a=O?h(d):d),a),u;if(v){var R=w in r||F in r;u=((E=D(r,n))==null?void 0:E.set)??(R&&n in r?e=>r[n]=e:void 0)}var _,I=!1;v?[_,I]=Z(()=>r[n]):_=r[n],_===void 0&&d!==void 0&&(_=o(),u&&(f&&T(),u(_)));var i;if(f?i=()=>{var e=r[n];return e===void 0?o():(c=!0,e)}:i=()=>{var e=r[n];return e!==void 0&&(a=void 0),e===void 0?a:e},f&&(t&B)===0)return i;if(u){var L=r.$$legacy;return(function(e,l){return arguments.length>0?((!f||!l||L||I)&&u(l?i():e),e):i()})}var P=!1,s=((t&C)!==0?G:$)(()=>(P=!1,i()));v&&g(s);var b=M;return(function(e,l){if(arguments.length>0){const A=l?g(s):f&&v?m(e):e;return Y(s,A),P=!0,a!==void 0&&(a=A),e}return y&&P||(b.f&N)!==0?s.v:g(s)})}export{H as p}; diff --git a/frontend/build/_app/immutable/chunks/C4An0dnW.js b/frontend/build/_app/immutable/chunks/C4An0dnW.js new file mode 100644 index 0000000..acb2af3 --- /dev/null +++ b/frontend/build/_app/immutable/chunks/C4An0dnW.js @@ -0,0 +1 @@ +var ot=Object.defineProperty;var En=e=>{throw TypeError(e)};var ut=(e,n,t)=>n in e?ot(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var ve=(e,n,t)=>ut(e,typeof n!="symbol"?n+"":n,t),Ke=(e,n,t)=>n.has(e)||En("Cannot "+t);var _=(e,n,t)=>(Ke(e,n,"read from private field"),t?t.call(e):n.get(e)),F=(e,n,t)=>n.has(e)?En("Cannot add the same private member more than once"):n instanceof WeakSet?n.add(e):n.set(e,t),z=(e,n,t,r)=>(Ke(e,n,"write to private field"),r?r.call(e,t):n.set(e,t),t),B=(e,n,t)=>(Ke(e,n,"access private method"),t);var ct=Array.isArray,_t=Array.prototype.indexOf,Ee=Array.prototype.includes,fr=Array.from,ir=Object.defineProperty,xe=Object.getOwnPropertyDescriptor,vt=Object.getOwnPropertyDescriptors,dt=Object.prototype,ht=Array.prototype,xn=Object.getPrototypeOf,gn=Object.isExtensible;const pt=()=>{};function lr(e){return e()}function wt(e){for(var n=0;n{e=r,n=s});return{promise:t,resolve:e,reject:n}}const A=2,Re=4,ge=8,In=1<<24,ee=16,q=32,_e=64,yt=128,P=512,m=1024,R=2048,H=4096,Y=8192,Z=16384,Oe=32768,Ye=65536,mn=1<<17,Et=1<<18,Ce=1<<19,Pn=1<<20,ar=1<<25,ae=65536,$e=1<<21,fn=1<<22,W=1<<23,De=Symbol("$state"),or=Symbol("legacy props"),ur=Symbol(""),re=new class extends Error{constructor(){super(...arguments);ve(this,"name","StaleReactionError");ve(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}};var kn;const _r=!!((kn=globalThis.document)!=null&&kn.contentType)&&globalThis.document.contentType.includes("xml"),Ue=3,Cn=8;function gt(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function vr(e,n,t){throw new Error("https://svelte.dev/e/each_key_duplicate")}function mt(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Tt(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function bt(e){throw new Error("https://svelte.dev/e/effect_orphan")}function At(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function dr(){throw new Error("https://svelte.dev/e/hydration_failed")}function hr(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function St(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function Rt(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function Ot(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function pr(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const wr=1,yr=2,Er=4,gr=8,mr=16,Tr=1,br=2,Ar=4,Sr=8,Rr=16,Or=1,Nr=2,Nt="[",kt="[!",kr="[?",xt="]",ln={},T=Symbol(),Dt="http://www.w3.org/1999/xhtml";function an(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function xr(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let oe=!1;function Dr(e){oe=e}let g;function me(e){if(e===null)throw an(),ln;return g=e}function Ir(){return me(ne(g))}function Pr(e){if(oe){if(ne(g)!==null)throw an(),ln;g=e}}function Cr(e=1){if(oe){for(var n=e,t=g;n--;)t=ne(t);g=t}}function Fr(e=!0){for(var n=0,t=g;;){if(t.nodeType===Cn){var r=t.data;if(r===xt){if(n===0)return t;n-=1}else(r===Nt||r===kt||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(n+=1)}var s=ne(t);e&&t.remove(),t=s}}function Mr(e){if(!e||e.nodeType!==Cn)throw an(),ln;return e.data}function Fn(e){return e===this.v}function It(e,n){return e!=e?n==n:e!==n||e!==null&&typeof e=="object"||typeof e=="function"}function Mn(e){return!It(e,this.v)}let Be=!1;function Lr(){Be=!0}let S=null;function He(e){S=e}function jr(e,n=!1,t){S={p:S,i:!1,c:null,e:null,s:e,x:null,l:Be&&!n?{s:null,u:null,$:[]}:null}}function Yr(e){var n=S,t=n.e;if(t!==null){n.e=null;for(var r of t)Wn(r)}return n.i=!0,S=n.p,{}}function Fe(){return!Be||S!==null&&S.l===null}let se=[];function Ln(){var e=se;se=[],wt(e)}function Tn(e){if(se.length===0&&!Ie){var n=se;queueMicrotask(()=>{n===se&&Ln()})}se.push(e)}function Pt(){for(;se.length>0;)Ln()}function Ct(e){var n=w;if(n===null)return v.f|=W,e;if((n.f&Oe)===0&&(n.f&Re)===0)throw e;qe(e,n)}function qe(e,n){for(;n!==null;){if((n.f&yt)!==0){if((n.f&Oe)===0)throw e;try{n.b.error(e);return}catch(t){e=t}}n=n.parent}throw e}const Ft=-7169;function E(e,n){e.f=e.f&Ft|n}function on(e){(e.f&P)!==0||e.deps===null?E(e,m):E(e,H)}function jn(e){if(e!==null)for(const n of e)(n.f&A)===0||(n.f&ae)===0||(n.f^=ae,jn(n.deps))}function Mt(e,n,t){(e.f&R)!==0?n.add(e):(e.f&H)!==0&&t.add(e),jn(e.deps),E(e,m)}const Le=new Set;let h=null,bn=null,b=null,N=[],Ge=null,Ie=!1,Te=null;var X,de,ie,he,pe,we,$,j,ye,x,Ze,We,Je,Qe;const pn=class pn{constructor(){F(this,x);ve(this,"current",new Map);ve(this,"previous",new Map);F(this,X,new Set);F(this,de,new Set);F(this,ie,0);F(this,he,0);F(this,pe,null);F(this,we,new Set);F(this,$,new Set);F(this,j,new Map);ve(this,"is_fork",!1);F(this,ye,!1)}skip_effect(n){_(this,j).has(n)||_(this,j).set(n,{d:[],m:[]})}unskip_effect(n){var t=_(this,j).get(n);if(t){_(this,j).delete(n);for(var r of t.d)E(r,R),G(r);for(r of t.m)E(r,H),G(r)}}process(n){var s;N=[],this.apply();var t=Te=[],r=[];for(const f of n)B(this,x,We).call(this,f,t,r);if(Te=null,B(this,x,Ze).call(this)){B(this,x,Je).call(this,r),B(this,x,Je).call(this,t);for(const[f,l]of _(this,j))Vn(f,l)}else{bn=this,h=null;for(const f of _(this,X))f(this);_(this,X).clear(),_(this,ie)===0&&B(this,x,Qe).call(this),An(r),An(t),_(this,we).clear(),_(this,$).clear(),bn=null,(s=_(this,pe))==null||s.resolve()}b=null}capture(n,t){t!==T&&!this.previous.has(n)&&this.previous.set(n,t),(n.f&W)===0&&(this.current.set(n,n.v),b==null||b.set(n,n.v))}activate(){h=this,this.apply()}deactivate(){h===this&&(h=null,b=null)}flush(){var n;if(N.length>0)h=this,Yn();else if(_(this,ie)===0&&!this.is_fork){for(const t of _(this,X))t(this);_(this,X).clear(),B(this,x,Qe).call(this),(n=_(this,pe))==null||n.resolve()}this.deactivate()}discard(){for(const n of _(this,de))n(this);_(this,de).clear()}increment(n){z(this,ie,_(this,ie)+1),n&&z(this,he,_(this,he)+1)}decrement(n){z(this,ie,_(this,ie)-1),n&&z(this,he,_(this,he)-1),!_(this,ye)&&(z(this,ye,!0),Tn(()=>{z(this,ye,!1),B(this,x,Ze).call(this)?N.length>0&&this.flush():this.revive()}))}revive(){for(const n of _(this,we))_(this,$).delete(n),E(n,R),G(n);for(const n of _(this,$))E(n,H),G(n);this.flush()}oncommit(n){_(this,X).add(n)}ondiscard(n){_(this,de).add(n)}settled(){return(_(this,pe)??z(this,pe,Dn())).promise}static ensure(){if(h===null){const n=h=new pn;Le.add(h),Ie||Tn(()=>{h===n&&n.flush()})}return h}apply(){}};X=new WeakMap,de=new WeakMap,ie=new WeakMap,he=new WeakMap,pe=new WeakMap,we=new WeakMap,$=new WeakMap,j=new WeakMap,ye=new WeakMap,x=new WeakSet,Ze=function(){return this.is_fork||_(this,he)>0},We=function(n,t,r){n.f^=m;for(var s=n.first;s!==null;){var f=s.f,l=(f&(q|_e))!==0,o=l&&(f&m)!==0,i=o||(f&Y)!==0||_(this,j).has(s);if(!i&&s.fn!==null){l?s.f^=m:(f&Re)!==0?t.push(s):Me(s)&&((f&ee)!==0&&_(this,$).add(s),Se(s));var a=s.first;if(a!==null){s=a;continue}}for(;s!==null;){var c=s.next;if(c!==null){s=c;break}s=s.parent}}},Je=function(n){for(var t=0;t1){this.previous.clear();var n=h,t=b,r=!0;for(const l of Le){if(l===this){r=!1;continue}const o=[];for(const[a,c]of this.current){if(l.current.has(a))if(r&&c!==l.current.get(a))l.current.set(a,c);else continue;o.push(a)}if(o.length===0)continue;const i=[...l.current.keys()].filter(a=>!this.current.has(a));if(i.length>0){var s=N;N=[];const a=new Set,c=new Map;for(const u of o)Hn(u,i,a,c);if(N.length>0){h=l,l.apply();for(const u of N)B(f=l,x,We).call(f,u,[],[]);l.deactivate()}N=s}}h=n,b=t}_(this,j).clear(),Le.delete(this)};let be=pn;function Lt(e){var n=Ie;Ie=!0;try{for(var t;;){if(Pt(),N.length===0&&(h==null||h.flush(),N.length===0))return Ge=null,t;Yn()}}finally{Ie=n}}function Yn(){var e=null;try{for(var n=0;N.length>0;){var t=be.ensure();if(n++>1e3){var r,s;jt()}t.process(N),J.clear()}}finally{N=[],Ge=null,Te=null}}function jt(){try{At()}catch(e){qe(e,Ge)}}let M=null;function An(e){var n=e.length;if(n!==0){for(var t=0;t0)){J.clear();for(const s of M){if((s.f&(Z|Y))!==0)continue;const f=[s];let l=s.parent;for(;l!==null;)M.has(l)&&(M.delete(l),f.push(l)),l=l.parent;for(let o=f.length-1;o>=0;o--){const i=f[o];(i.f&(Z|Y))===0&&Se(i)}}M.clear()}}M=null}}function Hn(e,n,t,r){if(!t.has(e)&&(t.add(e),e.reactions!==null))for(const s of e.reactions){const f=s.f;(f&A)!==0?Hn(s,n,t,r):(f&(fn|ee))!==0&&(f&R)===0&&qn(s,n,r)&&(E(s,R),G(s))}}function qn(e,n,t){const r=t.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(Ee.call(n,s))return!0;if((s.f&A)!==0&&qn(s,n,t))return t.set(s,!0),!0}return t.set(e,!1),!1}function G(e){var n=Ge=e,t=n.b;if(t!=null&&t.is_pending&&(e.f&(Re|ge|In))!==0&&(e.f&Oe)===0){t.defer_effect(e);return}for(;n.parent!==null;){n=n.parent;var r=n.f;if(Te!==null&&n===w&&(e.f&ge)===0)return;if((r&(_e|q))!==0){if((r&m)===0)return;n.f^=m}}N.push(n)}function Vn(e,n){if(!((e.f&q)!==0&&(e.f&m)!==0)){(e.f&R)!==0?n.d.push(e):(e.f&H)!==0&&n.m.push(e),E(e,m);for(var t=e.first;t!==null;)Vn(t,n),t=t.next}}function Yt(e,n,t,r){const s=Fe()?un:Ut;var f=e.filter(u=>!u.settled);if(t.length===0&&f.length===0){r(n.map(s));return}var l=w,o=Ht(),i=f.length===1?f[0].promise:f.length>1?Promise.all(f.map(u=>u.promise)):null;function a(u){o();try{r(u)}catch(d){(l.f&Z)===0&&qe(d,l)}en()}if(t.length===0){i.then(()=>a(n.map(s)));return}function c(){o(),Promise.all(t.map(u=>Vt(u))).then(u=>a([...n.map(s),...u])).catch(u=>qe(u,l))}i?i.then(c):c()}function Ht(){var e=w,n=v,t=S,r=h;return function(f=!0){Ae(e),Q(n),He(t),f&&(r==null||r.activate())}}function en(e=!0){Ae(null),Q(null),He(null),e&&(h==null||h.deactivate())}function qt(){var e=w.b,n=h,t=e.is_rendered();return e.update_pending_count(1),n.increment(t),()=>{e.update_pending_count(-1),n.decrement(t)}}function un(e){var n=A|R,t=v!==null&&(v.f&A)!==0?v:null;return w!==null&&(w.f|=Ce),{ctx:S,deps:null,effects:null,equals:Fn,f:n,fn:e,reactions:null,rv:0,v:T,wv:0,parent:t??w,ac:null}}function Vt(e,n,t){w===null&>();var s=void 0,f=_n(T),l=!v,o=new Map;return Jt(()=>{var d;var i=Dn();s=i.promise;try{Promise.resolve(e()).then(i.resolve,i.reject).finally(en)}catch(y){i.reject(y),en()}var a=h;if(l){var c=qt();(d=o.get(a))==null||d.reject(re),o.delete(a),o.set(a,i)}const u=(y,p=void 0)=>{if(a.activate(),p)p!==re&&(f.f|=W,tn(f,p));else{(f.f&W)!==0&&(f.f^=W),tn(f,y);for(const[U,O]of o){if(o.delete(U),U===a)break;O.reject(re)}}c&&c()};i.promise.then(u,y=>u(null,y||"unknown"))}),Wt(()=>{for(const i of o.values())i.reject(re)}),new Promise(i=>{function a(c){function u(){c===s?i(f):a(s)}c.then(u,u)}a(s)})}function Hr(e){const n=un(e);return tt(n),n}function Ut(e){const n=un(e);return n.equals=Mn,n}function Bt(e){var n=e.effects;if(n!==null){e.effects=null;for(var t=0;t0&&!Gn&&Kt()}return n}function Kt(){Gn=!1;for(const e of nn)(e.f&m)!==0&&E(e,H),Me(e)&&Se(e);nn.clear()}function Xe(e){te(e,e.v+1)}function zn(e,n){var t=e.reactions;if(t!==null)for(var r=Fe(),s=t.length,f=0;f{if(le===f)return o();var i=v,a=le;Q(null),Nn(f);var c=o();return Q(i),Nn(a),c};return r&&t.set("length",K(e.length)),new Proxy(e,{defineProperty(o,i,a){(!("value"in a)||a.configurable===!1||a.enumerable===!1||a.writable===!1)&&St();var c=t.get(i);return c===void 0?l(()=>{var u=K(a.value);return t.set(i,u),u}):te(c,a.value,!0),!0},deleteProperty(o,i){var a=t.get(i);if(a===void 0){if(i in o){const c=l(()=>K(T));t.set(i,c),Xe(s)}}else te(a,T),Xe(s);return!0},get(o,i,a){var y;if(i===De)return e;var c=t.get(i),u=i in o;if(c===void 0&&(!u||(y=xe(o,i))!=null&&y.writable)&&(c=l(()=>{var p=Ne(u?o[i]:T),U=K(p);return U}),t.set(i,c)),c!==void 0){var d=ke(c);return d===T?void 0:d}return Reflect.get(o,i,a)},getOwnPropertyDescriptor(o,i){var a=Reflect.getOwnPropertyDescriptor(o,i);if(a&&"value"in a){var c=t.get(i);c&&(a.value=ke(c))}else if(a===void 0){var u=t.get(i),d=u==null?void 0:u.v;if(u!==void 0&&d!==T)return{enumerable:!0,configurable:!0,value:d,writable:!0}}return a},has(o,i){var d;if(i===De)return!0;var a=t.get(i),c=a!==void 0&&a.v!==T||Reflect.has(o,i);if(a!==void 0||w!==null&&(!c||(d=xe(o,i))!=null&&d.writable)){a===void 0&&(a=l(()=>{var y=c?Ne(o[i]):T,p=K(y);return p}),t.set(i,a));var u=ke(a);if(u===T)return!1}return c},set(o,i,a,c){var yn;var u=t.get(i),d=i in o;if(r&&i==="length")for(var y=a;yK(T)),t.set(y+"",p))}if(u===void 0)(!d||(yn=xe(o,i))!=null&&yn.writable)&&(u=l(()=>K(void 0)),te(u,Ne(a)),t.set(i,u));else{d=u.v!==T;var U=l(()=>Ne(a));te(u,U)}var O=Reflect.getOwnPropertyDescriptor(o,i);if(O!=null&&O.set&&O.set.call(c,a),!d){if(r&&typeof i=="string"){var wn=t.get("length"),ze=Number(i);Number.isInteger(ze)&&ze>=wn.v&&te(wn,ze+1)}Xe(s)}return!0},ownKeys(o){ke(s);var i=Reflect.ownKeys(o).filter(u=>{var d=t.get(u);return d===void 0||d.v!==T});for(var[a,c]of t)c.v!==T&&!(a in o)&&i.push(a);return i},setPrototypeOf(){Rt()}})}var Sn,Xt,Kn,Xn;function Vr(){if(Sn===void 0){Sn=window,Xt=/Firefox/.test(navigator.userAgent);var e=Element.prototype,n=Node.prototype,t=Text.prototype;Kn=xe(n,"firstChild").get,Xn=xe(n,"nextSibling").get,gn(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),gn(t)&&(t.__t=void 0)}}function Ve(e=""){return document.createTextNode(e)}function rn(e){return Kn.call(e)}function ne(e){return Xn.call(e)}function Ur(e,n){if(!oe)return rn(e);var t=rn(g);if(t===null)t=g.appendChild(Ve());else if(n&&t.nodeType!==Ue){var r=Ve();return t==null||t.before(r),me(r),r}return n&&vn(t),me(t),t}function Br(e,n=!1){if(!oe){var t=rn(e);return t instanceof Comment&&t.data===""?ne(t):t}if(n){if((g==null?void 0:g.nodeType)!==Ue){var r=Ve();return g==null||g.before(r),me(r),r}vn(g)}return g}function Gr(e,n=1,t=!1){let r=oe?g:e;for(var s;n--;)s=r,r=ne(r);if(!oe)return r;if(t){if((r==null?void 0:r.nodeType)!==Ue){var f=Ve();return r===null?s==null||s.after(f):r.before(f),me(f),f}vn(r)}return me(r),r}function zr(e){e.textContent=""}function Kr(){return!1}function Xr(e,n,t){return document.createElementNS(Dt,e,void 0)}function vn(e){if(e.nodeValue.length<65536)return;let n=e.nextSibling;for(;n!==null&&n.nodeType===Ue;)n.remove(),e.nodeValue+=n.nodeValue,n=e.nextSibling}let Rn=!1;function $t(){Rn||(Rn=!0,document.addEventListener("reset",e=>{Promise.resolve().then(()=>{var n;if(!e.defaultPrevented)for(const t of e.target.elements)(n=t.__on_r)==null||n.call(t)})},{capture:!0}))}function dn(e){var n=v,t=w;Q(null),Ae(null);try{return e()}finally{Q(n),Ae(t)}}function $r(e,n,t,r=t){e.addEventListener(n,()=>dn(t));const s=e.__on_r;s?e.__on_r=()=>{s(),r(!0)}:e.__on_r=()=>r(!0),$t()}function $n(e){w===null&&(v===null&&bt(),Tt()),ce&&mt()}function Zt(e,n){var t=n.last;t===null?n.last=n.first=e:(t.next=e,e.prev=t,n.last=e)}function V(e,n){var t=w;t!==null&&(t.f&Y)!==0&&(e|=Y);var r={ctx:S,deps:null,nodes:null,f:e|R|P,first:null,fn:n,last:null,next:null,parent:t,b:t&&t.b,prev:null,teardown:null,wv:0,ac:null},s=r;if((e&Re)!==0)Te!==null?Te.push(r):G(r);else if(n!==null){try{Se(r)}catch(l){throw ue(r),l}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&(s.f&Ce)===0&&(s=s.first,(e&ee)!==0&&(e&Ye)!==0&&s!==null&&(s.f|=Ye))}if(s!==null&&(s.parent=t,t!==null&&Zt(s,t),v!==null&&(v.f&A)!==0&&(e&_e)===0)){var f=v;(f.effects??(f.effects=[])).push(s)}return r}function Zn(){return v!==null&&!L}function Wt(e){const n=V(ge,null);return E(n,m),n.teardown=e,n}function Zr(e){$n();var n=w.f,t=!v&&(n&q)!==0&&(n&Oe)===0;if(t){var r=S;(r.e??(r.e=[])).push(e)}else return Wn(e)}function Wn(e){return V(Re|Pn,e)}function Wr(e){return $n(),V(ge|Pn,e)}function Jr(e){be.ensure();const n=V(_e|Ce,e);return(t={})=>new Promise(r=>{t.outro?nr(n,()=>{ue(n),r(void 0)}):(ue(n),r(void 0))})}function Qr(e){return V(Re,e)}function Jt(e){return V(fn|Ce,e)}function es(e,n=0){return V(ge|n,e)}function ns(e,n=[],t=[],r=[]){Yt(r,n,t,s=>{V(ge,()=>e(...s.map(ke)))})}function ts(e,n=0){var t=V(ee|n,e);return t}function rs(e){return V(q|Ce,e)}function Jn(e){var n=e.teardown;if(n!==null){const t=ce,r=v;On(!0),Q(null);try{n.call(null)}finally{On(t),Q(r)}}}function hn(e,n=!1){var t=e.first;for(e.first=e.last=null;t!==null;){const s=t.ac;s!==null&&dn(()=>{s.abort(re)});var r=t.next;(t.f&_e)!==0?t.parent=null:ue(t,n),t=r}}function Qt(e){for(var n=e.first;n!==null;){var t=n.next;(n.f&q)===0&&ue(n),n=t}}function ue(e,n=!0){var t=!1;(n||(e.f&Et)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(er(e.nodes.start,e.nodes.end),t=!0),hn(e,n&&!t),Pe(e,0),E(e,Z);var r=e.nodes&&e.nodes.t;if(r!==null)for(const f of r)f.stop();Jn(e);var s=e.parent;s!==null&&s.first!==null&&Qn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=null}function er(e,n){for(;e!==null;){var t=e===n?null:ne(e);e.remove(),e=t}}function Qn(e){var n=e.parent,t=e.prev,r=e.next;t!==null&&(t.next=r),r!==null&&(r.prev=t),n!==null&&(n.first===e&&(n.first=r),n.last===e&&(n.last=t))}function nr(e,n,t=!0){var r=[];et(e,r,!0);var s=()=>{t&&ue(e),n&&n()},f=r.length;if(f>0){var l=()=>--f||s();for(var o of r)o.out(l)}else s()}function et(e,n,t){if((e.f&Y)===0){e.f^=Y;var r=e.nodes&&e.nodes.t;if(r!==null)for(const o of r)(o.is_global||t)&&n.push(o);for(var s=e.first;s!==null;){var f=s.next,l=(s.f&Ye)!==0||(s.f&q)!==0&&(e.f&ee)!==0;et(s,n,l?t:!1),s=f}}}function ss(e){nt(e,!0)}function nt(e,n){if((e.f&Y)!==0){e.f^=Y,(e.f&m)===0&&(E(e,R),G(e));for(var t=e.first;t!==null;){var r=t.next,s=(t.f&Ye)!==0||(t.f&q)!==0;nt(t,s?n:!1),t=r}var f=e.nodes&&e.nodes.t;if(f!==null)for(const l of f)(l.is_global||n)&&l.in()}}function fs(e,n){if(e.nodes)for(var t=e.nodes.start,r=e.nodes.end;t!==null;){var s=t===r?null:ne(t);n.append(t),t=s}}let je=!1,ce=!1;function On(e){ce=e}let v=null,L=!1;function Q(e){v=e}let w=null;function Ae(e){w=e}let C=null;function tt(e){v!==null&&(C===null?C=[e]:C.push(e))}let k=null,D=0,I=null;function tr(e){I=e}let rt=1,fe=0,le=fe;function Nn(e){le=e}function st(){return++rt}function Me(e){var n=e.f;if((n&R)!==0)return!0;if(n&A&&(e.f&=~ae),(n&H)!==0){for(var t=e.deps,r=t.length,s=0;se.wv)return!0}(n&P)!==0&&b===null&&E(e,m)}return!1}function ft(e,n,t=!0){var r=e.reactions;if(r!==null&&!(C!==null&&Ee.call(C,e)))for(var s=0;s{e.ac.abort(re)}),e.ac=null);try{e.f|=$e;var c=e.fn,u=c();e.f|=Oe;var d=e.deps,y=h==null?void 0:h.is_fork;if(k!==null){var p;if(y||Pe(e,D),d!==null&&D>0)for(d.length=D+k.length,p=0;p{throw TypeError(e)};var O=(e,t,a)=>t in e?S(e,t,{enumerable:!0,configurable:!0,writable:!0,value:a}):e[t]=a;var g=(e,t,a)=>O(e,typeof t!="symbol"?t+"":t,a),U=(e,t,a)=>t.has(e)||v("Cannot "+a);var s=(e,t,a)=>(U(e,t,"read from private field"),a?a.call(e):t.get(e)),i=(e,t,a)=>t.has(e)?v("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,a);import{b as l,g as r,d as c,e as p}from"./C4An0dnW.js";var n,d,h,u,b,k,y,o;class x{constructor(){i(this,n,l(null));i(this,d,l(null));i(this,h,l(p([])));i(this,u,l(p([])));i(this,b,l(null));i(this,k,l(p([])));i(this,y,l(p([])));i(this,o,l(null));g(this,"maxActivityEntries",100)}get id(){return r(s(this,n))}set id(t){c(s(this,n),t,!0)}get clock(){return r(s(this,d))}set clock(t){c(s(this,d),t,!0)}get players(){return r(s(this,h))}set players(t){c(s(this,h),t,!0)}get tables(){return r(s(this,u))}set tables(t){c(s(this,u),t,!0)}get financials(){return r(s(this,b))}set financials(t){c(s(this,b),t,!0)}get activity(){return r(s(this,k))}set activity(t){c(s(this,k),t,!0)}get rankings(){return r(s(this,y))}set rankings(t){c(s(this,y),t,!0)}get balanceStatus(){return r(s(this,o))}set balanceStatus(t){c(s(this,o),t,!0)}get remainingPlayers(){return this.players.filter(t=>t.status==="active").length}get totalPlayers(){return this.players.length}get activeTables(){return this.tables.filter(t=>t.players.length>0).length}get isBalanced(){var t;return((t=this.balanceStatus)==null?void 0:t.is_balanced)??!0}handleMessage(t){switch(t.type){case"clock.tick":this.clock=t.data;break;case"clock.level_change":this.clock=t.data;break;case"clock.paused":this.clock&&(this.clock.is_paused=!0);break;case"clock.resumed":this.clock&&(this.clock.is_paused=!1);break;case"state.snapshot":this.loadFullState(t.data);break;case"player.registered":this.addOrUpdatePlayer(t.data);break;case"player.seated":this.addOrUpdatePlayer(t.data);break;case"player.bust":case"player.eliminated":this.addOrUpdatePlayer(t.data);break;case"player.rebuy":case"player.addon":this.addOrUpdatePlayer(t.data);break;case"player.moved":this.addOrUpdatePlayer(t.data);break;case"table.created":this.addOrUpdateTable(t.data);break;case"table.broken":this.removeTable(t.data.id);break;case"table.updated":this.addOrUpdateTable(t.data);break;case"financial.updated":this.financials=t.data;break;case"rankings.updated":this.rankings=t.data;break;case"balance.updated":this.balanceStatus=t.data;break;case"activity.new":this.addActivity(t.data);break;case"connected":console.log("tournament: connected to server");break;default:console.warn(`tournament: unknown message type: ${t.type}`)}}reset(){this.id=null,this.clock=null,this.players=[],this.tables=[],this.financials=null,this.activity=[],this.rankings=[],this.balanceStatus=null}loadFullState(t){this.id=t.id??this.id,this.clock=t.clock??null,this.players=t.players??[],this.tables=t.tables??[],this.financials=t.financials??null,this.activity=t.activity??[],this.rankings=t.rankings??[],this.balanceStatus=t.balance_status??null}addOrUpdatePlayer(t){const a=this.players.findIndex(f=>f.id===t.id);a>=0?this.players[a]=t:this.players.push(t)}addOrUpdateTable(t){const a=this.tables.findIndex(f=>f.id===t.id);a>=0?this.tables[a]=t:this.tables.push(t)}removeTable(t){this.tables=this.tables.filter(a=>a.id!==t)}addActivity(t){this.activity=[t,...this.activity].slice(0,this.maxActivityEntries)}}n=new WeakMap,d=new WeakMap,h=new WeakMap,u=new WeakMap,b=new WeakMap,k=new WeakMap,y=new WeakMap,o=new WeakMap;const w=new x;export{w as t}; diff --git a/frontend/build/_app/immutable/chunks/CQQh_IlD.js b/frontend/build/_app/immutable/chunks/CQQh_IlD.js new file mode 100644 index 0000000..ecaee09 --- /dev/null +++ b/frontend/build/_app/immutable/chunks/CQQh_IlD.js @@ -0,0 +1,2 @@ +var Ie=Object.defineProperty;var ue=t=>{throw TypeError(t)};var Me=(t,e,r)=>e in t?Ie(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var q=(t,e,r)=>Me(t,typeof e!="symbol"?e+"":e,r),re=(t,e,r)=>e.has(t)||ue("Cannot "+r);var s=(t,e,r)=>(re(t,e,"read from private field"),r?r.call(t):e.get(t)),c=(t,e,r)=>e.has(t)?ue("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),n=(t,e,r,a)=>(re(t,e,"write to private field"),a?a.call(t,r):e.set(t,r),r),p=(t,e,r)=>(re(t,e,"access private method"),r);import{aC as Ye,g as Te,a3 as Le,ah as me,k as Be,aD as _e,ak as x,O as I,h as M,B as H,aE as pe,T as Ce,U as He,Y as Ve,aF as ge,M as F,K as we,aG as se,J as ie,Q as Pe,aH as ve,aI as We,aJ as ye,aK as $e,aL as xe,aM as X,aN as Z,aO as be,aP as je,aQ as Re,j as Se,a9 as qe,I as ae,_ as G,aR as Je,Z as Ue,aS as J,V as ze,aT as Ke,aU as Qe,aV as Xe,aW as Ze,aX as Ge,aY as et,aZ as ne,a6 as tt,a7 as De,X as rt,ao as st,a_ as fe,$ as U,a$ as it,an as at,b0 as nt,ad as ft,p as ht,a8 as ot,b1 as lt,a as ct}from"./C4An0dnW.js";import{b as dt}from"./Q5CB4WY5.js";function ut(t){let e=0,r=me(0),a;return()=>{Ye()&&(Te(r),Le(()=>(e===0&&(a=Be(()=>t(()=>_e(r)))),e+=1,()=>{x(()=>{e-=1,e===0&&(a==null||a(),a=void 0,_e(r))})})))}}var _t=ze|Ke;function pt(t,e,r,a){new gt(t,e,r,a)}var E,j,w,L,g,R,T,m,S,B,A,V,P,W,D,ee,o,Ne,Ae,Oe,he,K,Q,oe;class gt{constructor(e,r,a,h){c(this,o);q(this,"parent");q(this,"is_pending",!1);q(this,"transform_error");c(this,E);c(this,j,M?I:null);c(this,w);c(this,L);c(this,g);c(this,R,null);c(this,T,null);c(this,m,null);c(this,S,null);c(this,B,0);c(this,A,0);c(this,V,!1);c(this,P,new Set);c(this,W,new Set);c(this,D,null);c(this,ee,ut(()=>(n(this,D,me(s(this,B))),()=>{n(this,D,null)})));var i;n(this,E,e),n(this,w,r),n(this,L,f=>{var u=H;u.b=this,u.f|=pe,a(f)}),this.parent=H.b,this.transform_error=h??((i=this.parent)==null?void 0:i.transform_error)??(f=>f),n(this,g,Ce(()=>{if(M){const f=s(this,j);He();const u=f.data===Ve;if(f.data.startsWith(ge)){const d=JSON.parse(f.data.slice(ge.length));p(this,o,Ae).call(this,d)}else u?p(this,o,Oe).call(this):p(this,o,Ne).call(this)}else p(this,o,he).call(this)},_t)),M&&n(this,E,I)}defer_effect(e){xe(e,s(this,P),s(this,W))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!s(this,w).pending}update_pending_count(e){p(this,o,oe).call(this,e),n(this,B,s(this,B)+e),!(!s(this,D)||s(this,V))&&(n(this,V,!0),x(()=>{n(this,V,!1),s(this,D)&&qe(s(this,D),s(this,B))}))}get_effect_pending(){return s(this,ee).call(this),Te(s(this,D))}error(e){var r=s(this,w).onerror;let a=s(this,w).failed;if(!r&&!a)throw e;s(this,R)&&(ae(s(this,R)),n(this,R,null)),s(this,T)&&(ae(s(this,T)),n(this,T,null)),s(this,m)&&(ae(s(this,m)),n(this,m,null)),M&&(G(s(this,j)),Je(),G(Ue()));var h=!1,i=!1;const f=()=>{if(h){Xe();return}h=!0,i&&Qe(),s(this,m)!==null&&ie(s(this,m),()=>{n(this,m,null)}),p(this,o,Q).call(this,()=>{se.ensure(),p(this,o,he).call(this)})},u=l=>{try{i=!0,r==null||r(l,f),i=!1}catch(d){J(d,s(this,g)&&s(this,g).parent)}a&&n(this,m,p(this,o,Q).call(this,()=>{se.ensure();try{return F(()=>{var d=H;d.b=this,d.f|=pe,a(s(this,E),()=>l,()=>f)})}catch(d){return J(d,s(this,g).parent),null}}))};x(()=>{var l;try{l=this.transform_error(e)}catch(d){J(d,s(this,g)&&s(this,g).parent);return}l!==null&&typeof l=="object"&&typeof l.then=="function"?l.then(u,d=>J(d,s(this,g)&&s(this,g).parent)):u(l)})}}E=new WeakMap,j=new WeakMap,w=new WeakMap,L=new WeakMap,g=new WeakMap,R=new WeakMap,T=new WeakMap,m=new WeakMap,S=new WeakMap,B=new WeakMap,A=new WeakMap,V=new WeakMap,P=new WeakMap,W=new WeakMap,D=new WeakMap,ee=new WeakMap,o=new WeakSet,Ne=function(){try{n(this,R,F(()=>s(this,L).call(this,s(this,E))))}catch(e){this.error(e)}},Ae=function(e){const r=s(this,w).failed;r&&n(this,m,F(()=>{r(s(this,E),()=>e,()=>()=>{})}))},Oe=function(){const e=s(this,w).pending;e&&(this.is_pending=!0,n(this,T,F(()=>e(s(this,E)))),x(()=>{var r=n(this,S,document.createDocumentFragment()),a=we();r.append(a),n(this,R,p(this,o,Q).call(this,()=>(se.ensure(),F(()=>s(this,L).call(this,a))))),s(this,A)===0&&(s(this,E).before(r),n(this,S,null),ie(s(this,T),()=>{n(this,T,null)}),p(this,o,K).call(this))}))},he=function(){try{if(this.is_pending=this.has_pending_snippet(),n(this,A,0),n(this,B,0),n(this,R,F(()=>{s(this,L).call(this,s(this,E))})),s(this,A)>0){var e=n(this,S,document.createDocumentFragment());Pe(s(this,R),e);const r=s(this,w).pending;n(this,T,F(()=>r(s(this,E))))}else p(this,o,K).call(this)}catch(r){this.error(r)}},K=function(){this.is_pending=!1;for(const e of s(this,P))ve(e,We),ye(e);for(const e of s(this,W))ve(e,$e),ye(e);s(this,P).clear(),s(this,W).clear()},Q=function(e){var r=H,a=Re,h=Se;X(s(this,g)),Z(s(this,g)),be(s(this,g).ctx);try{return e()}catch(i){return je(i),null}finally{X(r),Z(a),be(h)}},oe=function(e){var r;if(!this.has_pending_snippet()){this.parent&&p(r=this.parent,o,oe).call(r,e);return}n(this,A,s(this,A)+e),s(this,A)===0&&(p(this,o,K).call(this),s(this,T)&&ie(s(this,T),()=>{n(this,T,null)}),s(this,S)&&(s(this,E).before(s(this,S)),n(this,S,null)))};const vt=["touchstart","touchmove"];function yt(t){return vt.includes(t)}const Y=Symbol("events"),ke=new Set,le=new Set;function bt(t,e,r,a={}){function h(i){if(a.capture||ce.call(e,i),!i.cancelBubble)return Ge(()=>r==null?void 0:r.call(this,i))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?x(()=>{e.addEventListener(t,h,a)}):e.addEventListener(t,h,a),h}function Rt(t,e,r,a,h){var i={capture:a,passive:h},f=bt(t,e,r,i);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&Ze(()=>{e.removeEventListener(t,f,i)})}function St(t,e,r){(e[Y]??(e[Y]={}))[t]=r}function Dt(t){for(var e=0;e{throw k});throw N}}finally{t[Y]=e,delete t.currentTarget,Z(C),X($)}}}function Nt(t,e){var r=e==null?"":typeof e=="object"?`${e}`:e;r!==(t.__t??(t.__t=t.nodeValue))&&(t.__t=r,t.nodeValue=`${r}`)}function Et(t,e){return Fe(t,e)}function At(t,e){ne(),e.intro=e.intro??!1;const r=e.target,a=M,h=I;try{for(var i=tt(r);i&&(i.nodeType!==De||i.data!==rt);)i=st(i);if(!i)throw fe;U(!0),G(i);const f=Fe(t,{...e,anchor:i});return U(!1),f}catch(f){if(f instanceof Error&&f.message.split(` +`).some(u=>u.startsWith("https://svelte.dev/e/")))throw f;return f!==fe&&console.warn("Failed to hydrate: ",f),e.recover===!1&&it(),ne(),at(r),U(!1),Et(t,e)}finally{U(a),G(h)}}const z=new Map;function Fe(t,{target:e,anchor:r,props:a={},events:h,context:i,intro:f=!0,transformError:u}){ne();var l=void 0,d=nt(()=>{var C=r??e.appendChild(we());pt(C,{pending:()=>{}},v=>{ht({});var _=Se;if(i&&(_.c=i),h&&(a.$$events=h),M&&dt(v,null),l=t(v,a)||{},M&&(H.nodes.end=I,I===null||I.nodeType!==De||I.data!==ot))throw lt(),fe;ct()},u);var $=new Set,N=v=>{for(var _=0;_{var O;for(var v of $)for(const b of[e,document]){var _=z.get(b),y=_.get(v);--y==0?(b.removeEventListener(v,ce),_.delete(v),_.size===0&&z.delete(b)):_.set(v,y)}le.delete(N),C!==r&&((O=C.parentNode)==null||O.removeChild(C))}});return de.set(l,d),l}let de=new WeakMap;function Ot(t,e){const r=de.get(t);return r?(de.delete(t),r(e)):Promise.resolve()}export{St as a,Dt as d,Rt as e,At as h,Et as m,Nt as s,Ot as u}; diff --git a/frontend/build/_app/immutable/chunks/DMqvp7vx.js b/frontend/build/_app/immutable/chunks/D3f6eoxz.js similarity index 95% rename from frontend/build/_app/immutable/chunks/DMqvp7vx.js rename to frontend/build/_app/immutable/chunks/D3f6eoxz.js index 75b5b63..d95bbac 100644 --- a/frontend/build/_app/immutable/chunks/DMqvp7vx.js +++ b/frontend/build/_app/immutable/chunks/D3f6eoxz.js @@ -1 +1 @@ -var h=e=>{throw TypeError(e)};var m=(e,t,o)=>t.has(e)||h("Cannot "+o);var r=(e,t,o)=>(m(e,t,"read from private field"),o?o.call(e):t.get(e)),l=(e,t,o)=>t.has(e)?h("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,o);import{s as c,g,a as u}from"./Ym0WvvUy.js";const n="felt_token",i="felt_operator";var a,s;class p{constructor(){l(this,a,c(null));l(this,s,c(null));typeof window<"u"&&this.loadFromStorage()}get token(){return g(r(this,a))}set token(t){u(r(this,a),t,!0)}get operator(){return g(r(this,s))}set operator(t){u(r(this,s),t,!0)}get isAuthenticated(){return this.token!==null}get isAdmin(){var t;return((t=this.operator)==null?void 0:t.role)==="admin"}get isFloor(){var t;return["admin","floor"].includes(((t=this.operator)==null?void 0:t.role)??"")}login(t,o){this.token=t,this.operator=o,this.saveToStorage()}logout(){this.token=null,this.operator=null,this.clearStorage()}loadFromStorage(){try{const t=localStorage.getItem(n),o=localStorage.getItem(i);t&&o&&(this.token=t,this.operator=JSON.parse(o))}catch(t){console.warn("auth: failed to load from storage:",t),this.clearStorage()}}saveToStorage(){try{this.token&&this.operator&&(localStorage.setItem(n,this.token),localStorage.setItem(i,JSON.stringify(this.operator)))}catch(t){console.warn("auth: failed to save to storage:",t)}}clearStorage(){try{localStorage.removeItem(n),localStorage.removeItem(i)}catch(t){console.warn("auth: failed to clear storage:",t)}}}a=new WeakMap,s=new WeakMap;const f=new p;export{f as a}; +var h=e=>{throw TypeError(e)};var m=(e,t,o)=>t.has(e)||h("Cannot "+o);var r=(e,t,o)=>(m(e,t,"read from private field"),o?o.call(e):t.get(e)),l=(e,t,o)=>t.has(e)?h("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,o);import{b as c,g,d as u}from"./C4An0dnW.js";const n="felt_token",i="felt_operator";var a,s;class p{constructor(){l(this,a,c(null));l(this,s,c(null));typeof window<"u"&&this.loadFromStorage()}get token(){return g(r(this,a))}set token(t){u(r(this,a),t,!0)}get operator(){return g(r(this,s))}set operator(t){u(r(this,s),t,!0)}get isAuthenticated(){return this.token!==null}get isAdmin(){var t;return((t=this.operator)==null?void 0:t.role)==="admin"}get isFloor(){var t;return["admin","floor"].includes(((t=this.operator)==null?void 0:t.role)??"")}login(t,o){this.token=t,this.operator=o,this.saveToStorage()}logout(){this.token=null,this.operator=null,this.clearStorage()}loadFromStorage(){try{const t=localStorage.getItem(n),o=localStorage.getItem(i);t&&o&&(this.token=t,this.operator=JSON.parse(o))}catch(t){console.warn("auth: failed to load from storage:",t),this.clearStorage()}}saveToStorage(){try{this.token&&this.operator&&(localStorage.setItem(n,this.token),localStorage.setItem(i,JSON.stringify(this.operator)))}catch(t){console.warn("auth: failed to save to storage:",t)}}clearStorage(){try{localStorage.removeItem(n),localStorage.removeItem(i)}catch(t){console.warn("auth: failed to clear storage:",t)}}}a=new WeakMap,s=new WeakMap;const f=new p;export{f as a}; diff --git a/frontend/build/_app/immutable/chunks/DQNCp18R.js b/frontend/build/_app/immutable/chunks/DQNCp18R.js new file mode 100644 index 0000000..8873abb --- /dev/null +++ b/frontend/build/_app/immutable/chunks/DQNCp18R.js @@ -0,0 +1 @@ +var Zt=t=>{throw TypeError(t)};var $e=(t,e,n)=>e.has(t)||Zt("Cannot "+n);var w=(t,e,n)=>($e(t,e,"read from private field"),n?n.call(t):e.get(t)),A=(t,e,n)=>e.has(t)?Zt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n);import{b4 as Ut,b5 as Ce,b as T,g as I,d as P,a2 as gt,b6 as je}from"./C4An0dnW.js";import{o as te}from"./nIaoZoCo.js";const M=[];function qt(t,e=Ut){let n=null;const r=new Set;function a(s){if(Ce(t,s)&&(t=s,n)){const l=!M.length;for(const c of r)c[1](),M.push(c,t);if(l){for(let c=0;c{r.delete(c),r.size===0&&n&&(n(),n=null)}}return{set:a,update:i,subscribe:o}}class Dt{constructor(e,n){this.status=e,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}}class Vt{constructor(e,n){this.status=e,this.location=n}}class Bt extends Error{constructor(e,n,r){super(r),this.status=e,this.text=n}}new URL("sveltekit-internal://");function Ne(t,e){return t==="/"||e==="ignore"?t:e==="never"?t.endsWith("/")?t.slice(0,-1):t:e==="always"&&!t.endsWith("/")?t+"/":t}function qe(t){return t.split("%25").map(decodeURI).join("%25")}function De(t){for(const e in t)t[e]=decodeURIComponent(t[e]);return t}function At({href:t}){return t.split("#")[0]}function Ve(...t){let e=5381;for(const n of t)if(typeof n=="string"){let r=n.length;for(;r;)e=e*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)e=e*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(e>>>0).toString(36)}new TextEncoder;new TextDecoder;function Be(t){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r((t instanceof Request?t.method:(e==null?void 0:e.method)||"GET")!=="GET"&&Y.delete(Kt(t)),Ke(t,e));const Y=new Map;function Me(t,e){const n=Kt(t,e),r=document.querySelector(n);if(r!=null&&r.textContent){r.remove();let{body:a,...i}=JSON.parse(r.textContent);const o=r.getAttribute("data-ttl");return o&&Y.set(n,{body:a,init:i,ttl:1e3*Number(o)}),r.getAttribute("data-b64")!==null&&(a=Be(a)),Promise.resolve(new Response(a,i))}return window.fetch(t,e)}function ze(t,e,n){if(Y.size>0){const r=Kt(t,n),a=Y.get(r);if(a){if(performance.now(){const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return e.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const i=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(i)return e.push({name:i[1],matcher:i[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const o=r.split(/\[(.+?)\](?!\])/);return"/"+o.map((l,c)=>{if(c%2){if(l.startsWith("x+"))return Tt(String.fromCharCode(parseInt(l.slice(2),16)));if(l.startsWith("u+"))return Tt(String.fromCharCode(...l.slice(2).split("-").map(_=>parseInt(_,16))));const d=Fe.exec(l),[,u,v,f,h]=d;return e.push({name:f,matcher:h,optional:!!u,rest:!!v,chained:v?c===1&&o[0]==="":!1}),v?"([^]*?)":u?"([^/]*)?":"([^/]+?)"}return Tt(l)}).join("")}).join("")}/?$`),params:e}}function We(t){return t!==""&&!/^\([^)]+\)$/.test(t)}function Ye(t){return t.slice(1).split("/").filter(We)}function He(t,e,n){const r={},a=t.slice(1),i=a.filter(s=>s!==void 0);let o=0;for(let s=0;sd).join("/"),o=0),c===void 0)if(l.rest)c="";else continue;if(!l.matcher||n[l.matcher](c)){r[l.name]=c;const d=e[s+1],u=a[s+1];d&&!d.rest&&d.optional&&u&&l.chained&&(o=0),!d&&!u&&Object.keys(r).length===i.length&&(o=0);continue}if(l.optional&&l.chained){o++;continue}return}if(!o)return r}function Tt(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Je({nodes:t,server_loads:e,dictionary:n,matchers:r}){const a=new Set(e);return Object.entries(n).map(([s,[l,c,d]])=>{const{pattern:u,params:v}=Ge(s),f={id:s,exec:h=>{const _=u.exec(h);if(_)return He(_,v,r)},errors:[1,...d||[]].map(h=>t[h]),layouts:[0,...c||[]].map(o),leaf:i(l)};return f.errors.length=f.layouts.length=Math.max(f.errors.length,f.layouts.length),f});function i(s){const l=s<0;return l&&(s=~s),[l,t[s]]}function o(s){return s===void 0?s:[a.has(s),t[s]]}}function he(t,e=JSON.parse){try{return e(sessionStorage[t])}catch{}}function ee(t,e,n=JSON.stringify){const r=n(e);try{sessionStorage[t]=r}catch{}}var le;const U=((le=globalThis.__sveltekit_og1wdu)==null?void 0:le.base)??"";var ce;const Xe=((ce=globalThis.__sveltekit_og1wdu)==null?void 0:ce.assets)??U??"",Qe="1772334772507",pe="sveltekit:snapshot",ge="sveltekit:scroll",me="sveltekit:states",Ze="sveltekit:pageurl",F="sveltekit:history",J="sveltekit:navigation",q={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},Et=location.origin;function Mt(t){if(t instanceof URL)return t;let e=document.baseURI;if(!e){const n=document.getElementsByTagName("base");e=n.length?n[0].href:document.URL}return new URL(t,e)}function V(){return{x:pageXOffset,y:pageYOffset}}function z(t,e){return t.getAttribute(`data-sveltekit-${e}`)}const ne={...q,"":q.hover};function _e(t){let e=t.assignedSlot??t.parentNode;return(e==null?void 0:e.nodeType)===11&&(e=e.host),e}function we(t,e){for(;t&&t!==e;){if(t.nodeName.toUpperCase()==="A"&&t.hasAttribute("href"))return t;t=_e(t)}}function Ot(t,e,n){let r;try{if(r=new URL(t instanceof SVGAElement?t.href.baseVal:t.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const s=location.hash.split("#")[1]||"/";r.hash=`#${s}${r.hash}`}}catch{}const a=t instanceof SVGAElement?t.target.baseVal:t.target,i=!r||!!a||Rt(r,e,n)||(t.getAttribute("rel")||"").split(/\s+/).includes("external"),o=(r==null?void 0:r.origin)===Et&&t.hasAttribute("download");return{url:r,external:i,target:a,download:o}}function mt(t){let e=null,n=null,r=null,a=null,i=null,o=null,s=t;for(;s&&s!==document.documentElement;)r===null&&(r=z(s,"preload-code")),a===null&&(a=z(s,"preload-data")),e===null&&(e=z(s,"keepfocus")),n===null&&(n=z(s,"noscroll")),i===null&&(i=z(s,"reload")),o===null&&(o=z(s,"replacestate")),s=_e(s);function l(c){switch(c){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:ne[r??"off"],preload_data:ne[a??"off"],keepfocus:l(e),noscroll:l(n),reload:l(i),replace_state:l(o)}}function ae(t){const e=qt(t);let n=!0;function r(){n=!0,e.update(o=>o)}function a(o){n=!1,e.set(o)}function i(o){let s;return e.subscribe(l=>{(s===void 0||n&&l!==s)&&o(s=l)})}return{notify:r,set:a,subscribe:i}}const ve={v:()=>{}};function tn(){const{set:t,subscribe:e}=qt(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${Xe}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const o=(await a.json()).version!==Qe;return o&&(t(!0),ve.v(),clearTimeout(n)),o}catch{return!1}}return{subscribe:e,check:r}}function Rt(t,e,n){return t.origin!==Et||!t.pathname.startsWith(e)?!0:n?t.pathname!==location.pathname:!1}function An(t){}const ye=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...ye];const en=new Set([...ye]);[...en];function nn(t){return t.filter(e=>e!=null)}function zt(t){return t instanceof Dt||t instanceof Bt?t.status:500}function an(t){return t instanceof Bt?t.text:"Internal Error"}let R,X,It;const rn=te.toString().includes("$$")||/function \w+\(\) \{\}/.test(te.toString());var nt,at,rt,ot,st,it,lt,ct,fe,ft,ue,ut,de;rn?(R={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},X={current:null},It={current:!1}):(R=new(fe=class{constructor(){A(this,nt,T({}));A(this,at,T(null));A(this,rt,T(null));A(this,ot,T({}));A(this,st,T({id:null}));A(this,it,T({}));A(this,lt,T(-1));A(this,ct,T(new URL("https://example.com")))}get data(){return I(w(this,nt))}set data(e){P(w(this,nt),e)}get form(){return I(w(this,at))}set form(e){P(w(this,at),e)}get error(){return I(w(this,rt))}set error(e){P(w(this,rt),e)}get params(){return I(w(this,ot))}set params(e){P(w(this,ot),e)}get route(){return I(w(this,st))}set route(e){P(w(this,st),e)}get state(){return I(w(this,it))}set state(e){P(w(this,it),e)}get status(){return I(w(this,lt))}set status(e){P(w(this,lt),e)}get url(){return I(w(this,ct))}set url(e){P(w(this,ct),e)}},nt=new WeakMap,at=new WeakMap,rt=new WeakMap,ot=new WeakMap,st=new WeakMap,it=new WeakMap,lt=new WeakMap,ct=new WeakMap,fe),X=new(ue=class{constructor(){A(this,ft,T(null))}get current(){return I(w(this,ft))}set current(e){P(w(this,ft),e)}},ft=new WeakMap,ue),It=new(de=class{constructor(){A(this,ut,T(!1))}get current(){return I(w(this,ut))}set current(e){P(w(this,ut),e)}},ut=new WeakMap,de),ve.v=()=>It.current=!0);function on(t){Object.assign(R,t)}const sn=new Set(["icon","shortcut icon","apple-touch-icon"]),j=he(ge)??{},Q=he(pe)??{},C={url:ae({}),page:ae({}),navigating:qt(null),updated:tn()};function Ft(t){j[t]=V()}function ln(t,e){let n=t+1;for(;j[n];)delete j[n],n+=1;for(n=e+1;Q[n];)delete Q[n],n+=1}function Z(t,e=!1){return e?location.replace(t.href):location.href=t.href,new Promise(()=>{})}async function be(){if("serviceWorker"in navigator){const t=await navigator.serviceWorker.getRegistration(U||"/");t&&await t.update()}}function re(){}let Gt,$t,_t,O,Ct,S;const wt=[],vt=[];let y=null;function jt(){var t;(t=y==null?void 0:y.fork)==null||t.then(e=>e==null?void 0:e.discard()),y=null}const pt=new Map,ke=new Set,cn=new Set,H=new Set;let m={branch:[],error:null,url:null},Se=!1,yt=!1,oe=!0,tt=!1,W=!1,Ee=!1,Wt=!1,Re,k,L,D;const bt=new Set,se=new Map;async function On(t,e,n){var i,o,s,l,c;(i=globalThis.__sveltekit_og1wdu)!=null&&i.data&&globalThis.__sveltekit_og1wdu.data,document.URL!==location.href&&(location.href=location.href),S=t,await((s=(o=t.hooks).init)==null?void 0:s.call(o)),Gt=Je(t),O=document.documentElement,Ct=e,$t=t.nodes[0],_t=t.nodes[1],$t(),_t(),k=(l=history.state)==null?void 0:l[F],L=(c=history.state)==null?void 0:c[J],k||(k=L=Date.now(),history.replaceState({...history.state,[F]:k,[J]:L},""));const r=j[k];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await kn(Ct,n)):(await G({type:"enter",url:Mt(S.hash?Rn(new URL(location.href)):location.href),replace_state:!0}),a()),bn()}function fn(){wt.length=0,Wt=!1}function xe(t){vt.some(e=>e==null?void 0:e.snapshot)&&(Q[t]=vt.map(e=>{var n;return(n=e==null?void 0:e.snapshot)==null?void 0:n.capture()}))}function Le(t){var e;(e=Q[t])==null||e.forEach((n,r)=>{var a,i;(i=(a=vt[r])==null?void 0:a.snapshot)==null||i.restore(n)})}function ie(){Ft(k),ee(ge,j),xe(L),ee(pe,Q)}async function Ue(t,e,n,r){let a;e.invalidateAll&&jt(),await G({type:"goto",url:Mt(t),keepfocus:e.keepFocus,noscroll:e.noScroll,replace_state:e.replaceState,state:e.state,redirect_count:n,nav_token:r,accept:()=>{e.invalidateAll&&(Wt=!0,a=[...se.keys()]),e.invalidate&&e.invalidate.forEach(yn)}}),e.invalidateAll&>().then(gt).then(()=>{se.forEach(({resource:i},o)=>{var s;a!=null&&a.includes(o)&&((s=i.refresh)==null||s.call(i))})})}async function un(t){if(t.id!==(y==null?void 0:y.id)){jt();const e={};bt.add(e),y={id:t.id,token:e,promise:Te({...t,preload:e}).then(n=>(bt.delete(e),n.type==="loaded"&&n.state.error&&jt(),n)),fork:null}}return y.promise}async function Pt(t){var n;const e=(n=await xt(t,!1))==null?void 0:n.route;e&&await Promise.all([...e.layouts,e.leaf].filter(Boolean).map(r=>r[1]()))}async function Ae(t,e,n){var a;m=t.state;const r=document.querySelector("style[data-sveltekit]");if(r&&r.remove(),Object.assign(R,t.props.page),Re=new S.root({target:e,props:{...t.props,stores:C,components:vt},hydrate:n,sync:!1}),await Promise.resolve(),Le(L),n){const i={from:null,to:{params:m.params,route:{id:((a=m.route)==null?void 0:a.id)??null},url:new URL(location.href),scroll:j[k]??V()},willUnload:!1,type:"enter",complete:Promise.resolve()};H.forEach(o=>o(i))}yt=!0}function kt({url:t,params:e,branch:n,status:r,error:a,route:i,form:o}){let s="never";if(U&&(t.pathname===U||t.pathname===U+"/"))s="always";else for(const f of n)(f==null?void 0:f.slash)!==void 0&&(s=f.slash);t.pathname=Ne(t.pathname,s),t.search=t.search;const l={type:"loaded",state:{url:t,params:e,branch:n,error:a,route:i},props:{constructors:nn(n).map(f=>f.node.component),page:Qt(R)}};o!==void 0&&(l.props.form=o);let c={},d=!R,u=0;for(let f=0;fs(new URL(o))))return!0;return!1}function Ht(t,e){return(t==null?void 0:t.type)==="data"?t:(t==null?void 0:t.type)==="skip"?e??null:null}function pn(t,e){if(!t)return new Set(e.searchParams.keys());const n=new Set([...t.searchParams.keys(),...e.searchParams.keys()]);for(const r of n){const a=t.searchParams.getAll(r),i=e.searchParams.getAll(r);a.every(o=>i.includes(o))&&i.every(o=>a.includes(o))&&n.delete(r)}return n}function gn({error:t,url:e,route:n,params:r}){return{type:"loaded",state:{error:t,url:e,route:n,params:r,branch:[]},props:{page:Qt(R),constructors:[]}}}async function Te({id:t,invalidating:e,url:n,params:r,route:a,preload:i}){if((y==null?void 0:y.id)===t)return bt.delete(y.token),y.promise;const{errors:o,layouts:s,leaf:l}=a,c=[...s,l];o.forEach(g=>g==null?void 0:g().catch(()=>{})),c.forEach(g=>g==null?void 0:g[1]().catch(()=>{}));const d=m.url?t!==St(m.url):!1,u=m.route?a.id!==m.route.id:!1,v=pn(m.url,n);let f=!1;const h=c.map(async(g,p)=>{var $;if(!g)return;const b=m.branch[p];return g[1]===(b==null?void 0:b.loader)&&!hn(f,u,d,v,($=b.universal)==null?void 0:$.uses,r)?b:(f=!0,Yt({loader:g[1],url:n,params:r,route:a,parent:async()=>{var dt;const N={};for(let B=0;B{});const _=[];for(let g=0;gPromise.resolve({}),server_data_node:Ht(i)}),s={node:await _t(),loader:_t,universal:null,server:null,data:null};return kt({url:n,params:a,branch:[o,s],status:t,error:e,route:null})}catch(o){if(o instanceof Vt)return Ue(new URL(o.location,location.href),{},0);throw o}}async function _n(t){const e=t.href;if(pt.has(e))return pt.get(e);let n;try{const r=(async()=>{let a=await S.hooks.reroute({url:new URL(t),fetch:async(i,o)=>dn(i,o,t).promise})??t;if(typeof a=="string"){const i=new URL(t);S.hash?i.hash=a:i.pathname=a,a=i}return a})();pt.set(e,r),n=await r}catch{pt.delete(e);return}return n}async function xt(t,e){if(t&&!Rt(t,U,S.hash)){const n=await _n(t);if(!n)return;const r=wn(n);for(const a of Gt){const i=a.exec(r);if(i)return{id:St(t),invalidating:e,route:a,params:De(i),url:t}}}}function wn(t){return qe(S.hash?t.hash.replace(/^#/,"").replace(/[?#].+/,""):t.pathname.slice(U.length))||"/"}function St(t){return(S.hash?t.hash.replace(/^#/,""):t.pathname)+t.search}function Ie({url:t,type:e,intent:n,delta:r,event:a,scroll:i}){let o=!1;const s=Xt(m,n,t,e,i??null);r!==void 0&&(s.navigation.delta=r),a!==void 0&&(s.navigation.event=a);const l={...s.navigation,cancel:()=>{o=!0,s.reject(new Error("navigation cancelled"))}};return tt||ke.forEach(c=>c(l)),o?null:s}async function G({type:t,url:e,popped:n,keepfocus:r,noscroll:a,replace_state:i,state:o={},redirect_count:s=0,nav_token:l={},accept:c=re,block:d=re,event:u}){var B;const v=D;D=l;const f=await xt(e,!1),h=t==="enter"?Xt(m,f,e,t):Ie({url:e,type:t,delta:n==null?void 0:n.delta,intent:f,scroll:n==null?void 0:n.scroll,event:u});if(!h){d(),D===l&&(D=v);return}const _=k,g=L;c(),tt=!0,yt&&h.navigation.type!=="enter"&&C.navigating.set(X.current=h.navigation);let p=f&&await Te(f);if(!p){if(Rt(e,U,S.hash))return await Z(e,i);p=await Pe(e,{id:null},await et(new Bt(404,"Not Found",`Not found: ${e.pathname}`),{url:e,params:{},route:{id:null}}),404,i)}if(e=(f==null?void 0:f.url)||e,D!==l)return h.reject(new Error("navigation aborted")),!1;if(p.type==="redirect"){if(s<20){await G({type:t,url:new URL(p.location,e),popped:n,keepfocus:r,noscroll:a,replace_state:i,state:o,redirect_count:s+1,nav_token:l}),h.fulfil(void 0);return}p=await Jt({status:500,error:await et(new Error("Redirect loop"),{url:e,params:{},route:{id:null}}),url:e,route:{id:null}})}else p.props.page.status>=400&&await C.updated.check()&&(await be(),await Z(e,i));if(fn(),Ft(_),xe(g),p.props.page.url.pathname!==e.pathname&&(e.pathname=p.props.page.url.pathname),o=n?n.state:o,!n){const E=i?0:1,ht={[F]:k+=E,[J]:L+=E,[me]:o};(i?history.replaceState:history.pushState).call(history,ht,"",e),i||ln(k,L)}const b=f&&(y==null?void 0:y.id)===f.id?y.fork:null;y=null,p.props.page.state=o;let x;if(yt){const E=(await Promise.all(Array.from(cn,K=>K(h.navigation)))).filter(K=>typeof K=="function");if(E.length>0){let K=function(){E.forEach(Lt=>{H.delete(Lt)})};E.push(K),E.forEach(Lt=>{H.add(Lt)})}m=p.state,p.props.page&&(p.props.page.url=e);const ht=b&&await b;ht?x=ht.commit():(Re.$set(p.props),on(p.props.page),x=(B=je)==null?void 0:B()),Ee=!0}else await Ae(p,Ct,!1);const{activeElement:$}=document;await x,await gt(),await gt();let N=null;if(oe){const E=n?n.scroll:a?V():null;E?scrollTo(E.x,E.y):(N=e.hash&&document.getElementById(Oe(e)))?N.scrollIntoView():scrollTo(0,0)}const dt=document.activeElement!==$&&document.activeElement!==document.body;!r&&!dt&&En(e,!N),oe=!0,p.props.page&&Object.assign(R,p.props.page),tt=!1,t==="popstate"&&Le(L),h.fulfil(void 0),h.navigation.to&&(h.navigation.to.scroll=V()),H.forEach(E=>E(h.navigation)),C.navigating.set(X.current=null)}async function Pe(t,e,n,r,a){return t.origin===Et&&t.pathname===location.pathname&&!Se?await Jt({status:r,error:n,url:t,route:e}):await Z(t,a)}function vn(){let t,e={element:void 0,href:void 0},n;O.addEventListener("mousemove",s=>{const l=s.target;clearTimeout(t),t=setTimeout(()=>{i(l,q.hover)},20)});function r(s){s.defaultPrevented||i(s.composedPath()[0],q.tap)}O.addEventListener("mousedown",r),O.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(s=>{for(const l of s)l.isIntersecting&&(Pt(new URL(l.target.href)),a.unobserve(l.target))},{threshold:0});async function i(s,l){const c=we(s,O),d=c===e.element&&(c==null?void 0:c.href)===e.href&&l>=n;if(!c||d)return;const{url:u,external:v,download:f}=Ot(c,U,S.hash);if(v||f)return;const h=mt(c),_=u&&St(m.url)===St(u);if(!(h.reload||_))if(l<=h.preload_data){e={element:c,href:c.href},n=q.tap;const g=await xt(u,!1);if(!g)return;un(g)}else l<=h.preload_code&&(e={element:c,href:c.href},n=l,Pt(u))}function o(){a.disconnect();for(const s of O.querySelectorAll("a")){const{url:l,external:c,download:d}=Ot(s,U,S.hash);if(c||d)continue;const u=mt(s);u.reload||(u.preload_code===q.viewport&&a.observe(s),u.preload_code===q.eager&&Pt(l))}}H.add(o),o()}function et(t,e){if(t instanceof Dt)return t.body;const n=zt(t),r=an(t);return S.hooks.handleError({error:t,event:e,status:n,message:r})??{message:r}}function $n(t,e={}){return t=new URL(Mt(t)),t.origin!==Et?Promise.reject(new Error("goto: invalid URL")):Ue(t,e,0)}function yn(t){if(typeof t=="function")wt.push(t);else{const{href:e}=new URL(t,location.href);wt.push(n=>n.href===e)}}function bn(){var e;history.scrollRestoration="manual",addEventListener("beforeunload",n=>{let r=!1;if(ie(),!tt){const a=Xt(m,void 0,null,"leave"),i={...a.navigation,cancel:()=>{r=!0,a.reject(new Error("navigation cancelled"))}};ke.forEach(o=>o(i))}r?(n.preventDefault(),n.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&ie()}),(e=navigator.connection)!=null&&e.saveData||vn(),O.addEventListener("click",async n=>{if(n.button||n.which!==1||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||n.defaultPrevented)return;const r=we(n.composedPath()[0],O);if(!r)return;const{url:a,external:i,target:o,download:s}=Ot(r,U,S.hash);if(!a)return;if(o==="_parent"||o==="_top"){if(window.parent!==window)return}else if(o&&o!=="_self")return;const l=mt(r);if(!(r instanceof SVGAElement)&&a.protocol!==location.protocol&&!(a.protocol==="https:"||a.protocol==="http:")||s)return;const[d,u]=(S.hash?a.hash.replace(/^#/,""):a.href).split("#"),v=d===At(location);if(i||l.reload&&(!v||!u)){Ie({url:a,type:"link",event:n})?tt=!0:n.preventDefault();return}if(u!==void 0&&v){const[,f]=m.url.href.split("#");if(f===u){if(n.preventDefault(),u===""||u==="top"&&r.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const h=r.ownerDocument.getElementById(decodeURIComponent(u));h&&(h.scrollIntoView(),h.focus())}return}if(W=!0,Ft(k),t(a),!l.replace_state)return;W=!1}n.preventDefault(),await new Promise(f=>{requestAnimationFrame(()=>{setTimeout(f,0)}),setTimeout(f,100)}),await G({type:"link",url:a,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??a.href===location.href,event:n})}),O.addEventListener("submit",n=>{if(n.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(n.target),a=n.submitter;if(((a==null?void 0:a.formTarget)||r.target)==="_blank"||((a==null?void 0:a.formMethod)||r.method)!=="get")return;const s=new URL((a==null?void 0:a.hasAttribute("formaction"))&&(a==null?void 0:a.formAction)||r.action);if(Rt(s,U,!1))return;const l=n.target,c=mt(l);if(c.reload)return;n.preventDefault(),n.stopPropagation();const d=new FormData(l,a);s.search=new URLSearchParams(d).toString(),G({type:"form",url:s,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??s.href===location.href,event:n})}),addEventListener("popstate",async n=>{var r;if(!Nt){if((r=n.state)!=null&&r[F]){const a=n.state[F];if(D={},a===k)return;const i=j[a],o=n.state[me]??{},s=new URL(n.state[Ze]??location.href),l=n.state[J],c=m.url?At(location)===At(m.url):!1;if(l===L&&(Ee||c)){o!==R.state&&(R.state=o),t(s),j[k]=V(),i&&scrollTo(i.x,i.y),k=a;return}const u=a-k;await G({type:"popstate",url:s,popped:{state:o,scroll:i,delta:u},accept:()=>{k=a,L=l},block:()=>{history.go(-u)},nav_token:D,event:n})}else if(!W){const a=new URL(location.href);t(a),S.hash&&location.reload()}}}),addEventListener("hashchange",()=>{W&&(W=!1,history.replaceState({...history.state,[F]:++k,[J]:L},"",location.href))});for(const n of document.querySelectorAll("link"))sn.has(n.rel)&&(n.href=n.href);addEventListener("pageshow",n=>{n.persisted&&C.navigating.set(X.current=null)});function t(n){m.url=R.url=n,C.page.set(Qt(R)),C.page.notify()}}async function kn(t,{status:e=200,error:n,node_ids:r,params:a,route:i,server_route:o,data:s,form:l}){Se=!0;const c=new URL(location.href);let d;({params:a={},route:i={id:null}}=await xt(c,!1)||{}),d=Gt.find(({id:f})=>f===i.id);let u,v=!0;try{const f=r.map(async(_,g)=>{const p=s[g];return p!=null&&p.uses&&(p.uses=Sn(p.uses)),Yt({loader:S.nodes[_],url:c,params:a,route:i,parent:async()=>{const b={};for(let x=0;x{const s=history.state;Nt=!0,location.replace(new URL(`#${r}`,location.href)),history.replaceState(s,"",t),e&&scrollTo(i,o),Nt=!1})}else{const i=document.body,o=i.getAttribute("tabindex");i.tabIndex=-1,i.focus({preventScroll:!0,focusVisible:!1}),o!==null?i.setAttribute("tabindex",o):i.removeAttribute("tabindex")}const a=getSelection();if(a&&a.type!=="None"){const i=[];for(let o=0;o{if(a.rangeCount===i.length){for(let o=0;o{i=u,o=v});return s.catch(()=>{}),{navigation:{from:{params:t.params,route:{id:((c=t.route)==null?void 0:c.id)??null},url:t.url,scroll:V()},to:n&&{params:(e==null?void 0:e.params)??null,route:{id:((d=e==null?void 0:e.route)==null?void 0:d.id)??null},url:n,scroll:a},willUnload:!e,type:r,complete:s},fulfil:i,reject:o}}function Qt(t){return{data:t.data,error:t.error,form:t.form,params:t.params,route:t.route,state:t.state,status:t.status,url:t.url}}function Rn(t){const e=new URL(t);return e.hash=decodeURIComponent(t.hash),e}function Oe(t){let e;if(S.hash){const[,,n]=t.hash.split("#",3);e=n??""}else e=t.hash.slice(1);return decodeURIComponent(e)}export{On as a,$n as g,An as l,R as p,C as s}; diff --git a/frontend/build/_app/immutable/chunks/D__6P984.js b/frontend/build/_app/immutable/chunks/D__6P984.js new file mode 100644 index 0000000..6a6509f --- /dev/null +++ b/frontend/build/_app/immutable/chunks/D__6P984.js @@ -0,0 +1 @@ +var I=Object.defineProperty;var R=a=>{throw TypeError(a)};var x=(a,e,t)=>e in a?I(a,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):a[e]=t;var w=(a,e,t)=>x(a,typeof e!="symbol"?e+"":e,t),E=(a,e,t)=>e.has(a)||R("Cannot "+t);var s=(a,e,t)=>(E(a,e,"read from private field"),t?t.call(a):e.get(a)),_=(a,e,t)=>e.has(a)?R("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(a):e.set(a,t),M=(a,e,t,i)=>(E(a,e,"write to private field"),i?i.call(a,t):e.set(a,t),t);import{H,I as T,J as O,K as N,M as S,N as Y,h as A,O as F,Q as B,R as C,T as J,U as K,V as L,W as P,X as Q,Y as U,Z as V,_ as W,$ as D}from"./C4An0dnW.js";var l,u,h,p,v,m,g;class X{constructor(e,t=!0){w(this,"anchor");_(this,l,new Map);_(this,u,new Map);_(this,h,new Map);_(this,p,new Set);_(this,v,!0);_(this,m,e=>{if(s(this,l).has(e)){var t=s(this,l).get(e),i=s(this,u).get(t);if(i)H(i),s(this,p).delete(t);else{var n=s(this,h).get(t);n&&(s(this,u).set(t,n.effect),s(this,h).delete(t),n.fragment.lastChild.remove(),this.anchor.before(n.fragment),i=n.effect)}for(const[f,c]of s(this,l)){if(s(this,l).delete(f),f===e)break;const r=s(this,h).get(c);r&&(T(r.effect),s(this,h).delete(c))}for(const[f,c]of s(this,u)){if(f===t||s(this,p).has(f))continue;const r=()=>{if(Array.from(s(this,l).values()).includes(f)){var d=document.createDocumentFragment();B(c,d),d.append(N()),s(this,h).set(f,{effect:c,fragment:d})}else T(c);s(this,p).delete(f),s(this,u).delete(f)};s(this,v)||!i?(s(this,p).add(f),O(c,r,!1)):r()}}});_(this,g,e=>{s(this,l).delete(e);const t=Array.from(s(this,l).values());for(const[i,n]of s(this,h))t.includes(i)||(T(n.effect),s(this,h).delete(i))});this.anchor=e,M(this,v,t)}ensure(e,t){var i=Y,n=C();if(t&&!s(this,u).has(e)&&!s(this,h).has(e))if(n){var f=document.createDocumentFragment(),c=N();f.append(c),s(this,h).set(e,{effect:S(()=>t(c)),fragment:f})}else s(this,u).set(e,S(()=>t(this.anchor)));if(s(this,l).set(i,e),n){for(const[r,o]of s(this,u))r===e?i.unskip_effect(o):i.skip_effect(o);for(const[r,o]of s(this,h))r===e?i.unskip_effect(o.effect):i.skip_effect(o.effect);i.oncommit(s(this,m)),i.ondiscard(s(this,g))}else A&&(this.anchor=F),s(this,m).call(this,i)}}l=new WeakMap,u=new WeakMap,h=new WeakMap,p=new WeakMap,v=new WeakMap,m=new WeakMap,g=new WeakMap;function j(a,e,t=!1){var i;A&&(i=F,K());var n=new X(a),f=t?L:0;function c(r,o){if(A){var d=P(i),b;if(d===Q?b=0:d===U?b=!1:b=parseInt(d.substring(1)),r!==b){var k=V();W(k),n.anchor=k,D(!1),n.ensure(r,o),D(!0);return}}n.ensure(r,o)}J(()=>{var r=!1;e((o,d=0)=>{r=!0,c(d,o)}),r||c(!1,null)},f)}export{X as B,j as i}; diff --git a/frontend/build/_app/immutable/chunks/Da6yQRl8.js b/frontend/build/_app/immutable/chunks/Da6yQRl8.js deleted file mode 100644 index 23a77c9..0000000 --- a/frontend/build/_app/immutable/chunks/Da6yQRl8.js +++ /dev/null @@ -1 +0,0 @@ -var B=Object.defineProperty;var g=i=>{throw TypeError(i)};var D=(i,e,s)=>e in i?B(i,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):i[e]=s;var w=(i,e,s)=>D(i,typeof e!="symbol"?e+"":e,s),y=(i,e,s)=>e.has(i)||g("Cannot "+s);var t=(i,e,s)=>(y(i,e,"read from private field"),s?s.call(i):e.get(i)),l=(i,e,s)=>e.has(i)?g("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(i):e.set(i,s),M=(i,e,s,a)=>(y(i,e,"write to private field"),a?a.call(i,s):e.set(i,s),s);import{k as F,l as b,p as j,m as x,n as A,o as q,h as C,j as S,q as z,t as E}from"./Ym0WvvUy.js";var h,n,r,u,p,_,v;class I{constructor(e,s=!0){w(this,"anchor");l(this,h,new Map);l(this,n,new Map);l(this,r,new Map);l(this,u,new Set);l(this,p,!0);l(this,_,e=>{if(t(this,h).has(e)){var s=t(this,h).get(e),a=t(this,n).get(s);if(a)F(a),t(this,u).delete(s);else{var c=t(this,r).get(s);c&&(t(this,n).set(s,c.effect),t(this,r).delete(s),c.fragment.lastChild.remove(),this.anchor.before(c.fragment),a=c.effect)}for(const[f,o]of t(this,h)){if(t(this,h).delete(f),f===e)break;const d=t(this,r).get(o);d&&(b(d.effect),t(this,r).delete(o))}for(const[f,o]of t(this,n)){if(f===s||t(this,u).has(f))continue;const d=()=>{if(Array.from(t(this,h).values()).includes(f)){var k=document.createDocumentFragment();z(o,k),k.append(x()),t(this,r).set(f,{effect:o,fragment:k})}else b(o);t(this,u).delete(f),t(this,n).delete(f)};t(this,p)||!a?(t(this,u).add(f),j(o,d,!1)):d()}}});l(this,v,e=>{t(this,h).delete(e);const s=Array.from(t(this,h).values());for(const[a,c]of t(this,r))s.includes(a)||(b(c.effect),t(this,r).delete(a))});this.anchor=e,M(this,p,s)}ensure(e,s){var a=q,c=E();if(s&&!t(this,n).has(e)&&!t(this,r).has(e))if(c){var f=document.createDocumentFragment(),o=x();f.append(o),t(this,r).set(e,{effect:A(()=>s(o)),fragment:f})}else t(this,n).set(e,A(()=>s(this.anchor)));if(t(this,h).set(a,e),c){for(const[d,m]of t(this,n))d===e?a.unskip_effect(m):a.skip_effect(m);for(const[d,m]of t(this,r))d===e?a.unskip_effect(m.effect):a.skip_effect(m.effect);a.oncommit(t(this,_)),a.ondiscard(t(this,v))}else C&&(this.anchor=S),t(this,_).call(this,a)}}h=new WeakMap,n=new WeakMap,r=new WeakMap,u=new WeakMap,p=new WeakMap,_=new WeakMap,v=new WeakMap;export{I as B}; diff --git a/frontend/build/_app/immutable/chunks/De6rLmuB.js b/frontend/build/_app/immutable/chunks/De6rLmuB.js deleted file mode 100644 index 329ae47..0000000 --- a/frontend/build/_app/immutable/chunks/De6rLmuB.js +++ /dev/null @@ -1 +0,0 @@ -import{B as g,C as d,D as c,F as m,G as i,I as b,g as p,J as v,K as h,L as k}from"./Ym0WvvUy.js";function x(n=!1){const s=g,e=s.l.u;if(!e)return;let f=()=>v(s.s);if(n){let a=0,t={};const _=h(()=>{let l=!1;const r=s.s;for(const o in r)r[o]!==t[o]&&(t[o]=r[o],l=!0);return l&&a++,a});f=()=>p(_)}e.b.length&&d(()=>{u(s,f),i(e.b)}),c(()=>{const a=m(()=>e.m.map(b));return()=>{for(const t of a)typeof t=="function"&&t()}}),e.a.length&&c(()=>{u(s,f),i(e.a)})}function u(n,s){if(n.l.s)for(const e of n.l.s)p(e);s()}k();export{x as i}; diff --git a/frontend/build/_app/immutable/chunks/DyXP65qD.js b/frontend/build/_app/immutable/chunks/DyXP65qD.js new file mode 100644 index 0000000..46910a9 --- /dev/null +++ b/frontend/build/_app/immutable/chunks/DyXP65qD.js @@ -0,0 +1 @@ +import{s as e,p as r}from"./DQNCp18R.js";const t={get error(){return r.error},get status(){return r.status},get url(){return r.url}};e.updated.check;const a=t;export{a as p}; diff --git a/frontend/build/_app/immutable/chunks/Q5CB4WY5.js b/frontend/build/_app/immutable/chunks/Q5CB4WY5.js new file mode 100644 index 0000000..8754940 --- /dev/null +++ b/frontend/build/_app/immutable/chunks/Q5CB4WY5.js @@ -0,0 +1 @@ +import{av as p,K as u,a6 as l,aw as E,B as c,ax as w,ay as g,h as d,O as s,az as y,U as N,aA as x,_ as A,aB as M}from"./C4An0dnW.js";var f;const i=((f=globalThis==null?void 0:globalThis.window)==null?void 0:f.trustedTypes)&&globalThis.window.trustedTypes.createPolicy("svelte-trusted-html",{createHTML:t=>t});function L(t){return(i==null?void 0:i.createHTML(t))??t}function O(t){var r=p("template");return r.innerHTML=L(t.replaceAll("","")),r.content}function n(t,r){var e=c;e.nodes===null&&(e.nodes={start:t,end:r,a:null,t:null})}function R(t,r){var e=(r&w)!==0,m=(r&g)!==0,a,v=!t.startsWith("");return()=>{if(d)return n(s,null),s;a===void 0&&(a=O(v?t:""+t),e||(a=l(a)));var o=m||E?document.importNode(a,!0):a.cloneNode(!0);if(e){var T=l(o),h=o.lastChild;n(T,h)}else n(o,o);return o}}function C(t=""){if(!d){var r=u(t+"");return n(r,r),r}var e=s;return e.nodeType!==x?(e.before(e=u()),A(e)):M(e),n(e,e),e}function I(){if(d)return n(s,null),s;var t=document.createDocumentFragment(),r=document.createComment(""),e=u();return t.append(r,e),n(r,e),t}function B(t,r){if(d){var e=c;((e.f&y)===0||e.nodes.end===null)&&(e.nodes.end=s),N();return}t!==null&&t.before(r)}const b="5";var _;typeof window<"u"&&((_=window.__svelte??(window.__svelte={})).v??(_.v=new Set)).add(b);export{B as a,n as b,I as c,R as f,C as t}; diff --git a/frontend/build/_app/immutable/chunks/WPMya0VZ.js b/frontend/build/_app/immutable/chunks/WPMya0VZ.js new file mode 100644 index 0000000..a1cad8c --- /dev/null +++ b/frontend/build/_app/immutable/chunks/WPMya0VZ.js @@ -0,0 +1 @@ +import{a as d,f as y,c as ie,t as ve}from"./Q5CB4WY5.js";import{a1 as Ee,N as R,a2 as Me,h as Ce,k as De,a3 as Te,a4 as Ve,p as Xe,a as Ae,c as u,s as F,r as c,g as e,x as de,b as G,t as E,f as p,d as T}from"./C4An0dnW.js";import{d as Be,s as W,a as K}from"./CQQh_IlD.js";import{i as q}from"./D__6P984.js";import{e as H,i as O,r as Ke,s as Q,a as j}from"./BeLKMLqR.js";import{s as $}from"./BTkWS7xQ.js";import{p as I}from"./C48rM6KF.js";function Le(l,r,V=r){var N=new WeakSet;Ee(l,"input",async M=>{var b=M?l.defaultValue:l.value;if(b=ee(l)?te(b):b,V(b),R!==null&&N.add(R),await Me(),b!==(b=r())){var P=l.selectionStart,w=l.selectionEnd,S=l.value.length;if(l.value=b??"",w!==null){var k=l.value.length;P===w&&w===S&&k>S?(l.selectionStart=k,l.selectionEnd=k):(l.selectionStart=P,l.selectionEnd=Math.min(w,k))}}}),(Ce&&l.defaultValue!==l.value||De(r)==null&&l.value)&&(V(ee(l)?te(l.value):l.value),R!==null&&N.add(R)),Te(()=>{var M=r();if(l===document.activeElement){var b=Ve??R;if(N.has(b))return}ee(l)&&M===te(l.value)||l.type==="date"&&!M&&!l.value||M!==l.value&&(l.value=M??"")})}function ee(l){var r=l.type;return r==="number"||r==="range"}function te(l){return l===""?null:+l}var He=y(''),Ie=y(""),Ne=y(' '),Pe=y('
'),Re=y(''),We=y(' '),qe=y(" "),Oe=y(''),Qe=y('
'),je=y(" ",1),ze=y('
');function $e(l,r){Xe(r,!0);let V=I(r,"sortable",3,!1),N=I(r,"searchable",3,!1),M=I(r,"loading",3,!1),b=I(r,"emptyMessage",3,"No data"),P=I(r,"rowKey",3,a=>String(a.id??"")),w=I(r,"swipeActions",19,()=>[]),S=G(null),k=G("asc"),z=G(""),C=G(null),J=0,U=0;const ae=60;let le=de(()=>{let a=[...r.data];if(e(z).trim()){const t=e(z).toLowerCase();a=a.filter(s=>r.columns.some(o=>(o.render?o.render(s):String(s[o.key]??"")).toLowerCase().includes(t)))}if(e(S)){const t=e(S),s=e(k);a.sort((o,_)=>{const i=o[t],f=_[t];if(i==null&&f==null)return 0;if(i==null)return 1;if(f==null)return-1;let n;return typeof i=="number"&&typeof f=="number"?n=i-f:n=String(i).localeCompare(String(f)),s==="asc"?n:-n})}return a});function ue(a){V()&&(e(S)===a?T(k,e(k)==="asc"?"desc":"asc",!0):(T(S,a,!0),T(k,"asc")))}function fe(a,t){if(t.render)return t.render(a);const s=a[t.key];return s==null?"":String(s)}function _e(a,t){w().length!==0&&(J=a.touches[0].clientX,U=J,e(C)&&e(C)!==t&&T(C,null))}function he(a){w().length!==0&&(U=a.touches[0].clientX)}function be(a){if(w().length===0)return;const t=J-U;t>ae?T(C,a,!0):t<-ae&&T(C,null)}var Y=ze(),re=u(Y);{var ke=a=>{var t=He(),s=u(t);Ke(s),c(t),Le(s,()=>e(z),o=>T(z,o)),d(a,t)};q(re,a=>{N()&&a(ke)})}var se=F(re,2),ne=u(se),Z=u(ne),ce=u(Z);H(ce,21,()=>r.columns,O,(a,t)=>{var s=Ne();let o,_;var i=u(s),f=u(i),n=F(f);{var X=D=>{var L=Ie();let v;var h=u(L);{var m=g=>{var x=ve();E(()=>W(x,e(k)==="asc"?"▲":"▼")),d(g,x)},A=g=>{var x=ve("\\u25B4");d(g,x)};q(h,g=>{e(S)===e(t).key?g(m):g(A,!1)})}c(L),E(()=>v=j(L,1,"sort-indicator svelte-16k18c8",null,v,{active:e(S)===e(t).key})),d(D,L)};q(n,D=>{V()&&e(t).sortable!==!1&&D(X)})}c(i),c(s),E(()=>{Q(s,"aria-sort",e(S)===e(t).key?e(k)==="asc"?"ascending":"descending":void 0),o=j(s,1,"svelte-16k18c8",null,o,{"hide-mobile":e(t).hideMobile,sortable:V()&&e(t).sortable!==!1}),_=$(s,"",_,{"text-align":e(t).align??"left",width:e(t).width}),W(f,`${e(t).label??""} `)}),K("click",s,()=>{V()&&e(t).sortable!==!1&&ue(e(t).key)}),d(a,s)}),c(ce),c(Z);var oe=F(Z),me=u(oe);{var ge=a=>{var t=ie(),s=p(t);H(s,16,()=>Array(5),O,(o,_)=>{var i=Re();H(i,21,()=>r.columns,O,(f,n)=>{var X=Pe();let D;E(()=>D=j(X,1,"svelte-16k18c8",null,D,{"hide-mobile":e(n).hideMobile})),d(f,X)}),c(i),d(o,i)}),d(a,t)},ye=a=>{var t=We(),s=u(t),o=u(s,!0);c(s),c(t),E(()=>{Q(s,"colspan",r.columns.length),W(o,b())}),d(a,t)},we=a=>{var t=ie(),s=p(t);H(s,17,()=>e(le),o=>P()(o),(o,_)=>{const i=de(()=>P()(e(_)));var f=je(),n=p(f);let X;H(n,21,()=>r.columns,O,(v,h)=>{var m=qe();let A,g;var x=u(m,!0);c(m),E(B=>{A=j(m,1,"svelte-16k18c8",null,A,{"hide-mobile":e(h).hideMobile}),g=$(m,"",g,{"text-align":e(h).align??"left"}),W(x,B)},[()=>fe(e(_),e(h))]),d(v,m)}),c(n);var D=F(n,2);{var L=v=>{var h=Qe(),m=u(h),A=u(m);H(A,21,w,O,(g,x)=>{var B=Oe(),Se=u(B,!0);c(B),E(()=>{$(B,`background-color: ${e(x).color??""}`),W(Se,e(x).label)}),K("click",B,xe=>{xe.stopPropagation(),e(x).handler(e(_)),T(C,null)}),d(g,B)}),c(A),c(m),c(h),E(()=>Q(m,"colspan",r.columns.length)),d(v,h)};q(D,v=>{e(C)===e(i)&&w().length>0&&v(L)})}E(()=>{X=j(n,1,"data-row svelte-16k18c8",null,X,{clickable:!!r.onrowclick,swiped:e(C)===e(i)}),Q(n,"role",r.onrowclick?"button":void 0),Q(n,"tabindex",r.onrowclick?0:void 0)}),K("click",n,()=>{var v;return(v=r.onrowclick)==null?void 0:v.call(r,e(_))}),K("keydown",n,v=>{var h;return v.key==="Enter"&&((h=r.onrowclick)==null?void 0:h.call(r,e(_)))}),K("touchstart",n,v=>_e(v,e(i))),K("touchmove",n,he),K("touchend",n,()=>be(e(i))),d(o,f)}),d(a,t)};q(me,a=>{M()?a(ge):e(le).length===0?a(ye,1):a(we,!1)})}c(oe),c(ne),c(se),c(Y),d(l,Y),Ae()}Be(["click","keydown","touchstart","touchmove","touchend"]);export{$e as D}; diff --git a/frontend/build/_app/immutable/chunks/Ym0WvvUy.js b/frontend/build/_app/immutable/chunks/Ym0WvvUy.js deleted file mode 100644 index d07c00b..0000000 --- a/frontend/build/_app/immutable/chunks/Ym0WvvUy.js +++ /dev/null @@ -1 +0,0 @@ -var it=Object.defineProperty;var yn=e=>{throw TypeError(e)};var lt=(e,n,t)=>n in e?it(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t;var ve=(e,n,t)=>lt(e,typeof n!="symbol"?n+"":n,t),Ke=(e,n,t)=>n.has(e)||yn("Cannot "+t);var _=(e,n,t)=>(Ke(e,n,"read from private field"),t?t.call(e):n.get(e)),F=(e,n,t)=>n.has(e)?yn("Cannot add the same private member more than once"):n instanceof WeakSet?n.add(e):n.set(e,t),G=(e,n,t,r)=>(Ke(e,n,"write to private field"),r?r.call(e,t):n.set(e,t),t),B=(e,n,t)=>(Ke(e,n,"access private method"),t);var at=Array.isArray,ot=Array.prototype.indexOf,Ee=Array.prototype.includes,nr=Array.from,tr=Object.defineProperty,xe=Object.getOwnPropertyDescriptor,ut=Object.getOwnPropertyDescriptors,ct=Object.prototype,_t=Array.prototype,Sn=Object.getPrototypeOf,En=Object.isExtensible;const vt=()=>{};function rr(e){return e()}function dt(e){for(var n=0;n{e=r,n=s});return{promise:t,resolve:e,reject:n}}const b=2,Se=4,ge=8,Nn=1<<24,ee=16,H=32,_e=64,ht=128,C=512,m=1024,S=2048,q=4096,Y=8192,Z=16384,ke=32768,Ye=65536,gn=1<<17,pt=1<<18,Pe=1<<19,On=1<<20,sr=1<<25,ae=65536,Xe=1<<21,fn=1<<22,W=1<<23,De=Symbol("$state"),fr=Symbol("legacy props"),re=new class extends Error{constructor(){super(...arguments);ve(this,"name","StaleReactionError");ve(this,"message","The reaction that called `getAbortSignal()` was re-run or destroyed")}},Ue=3,xn=8;function wt(){throw new Error("https://svelte.dev/e/async_derived_orphan")}function lr(e,n,t){throw new Error("https://svelte.dev/e/each_key_duplicate")}function yt(e){throw new Error("https://svelte.dev/e/effect_in_teardown")}function Et(){throw new Error("https://svelte.dev/e/effect_in_unowned_derived")}function gt(e){throw new Error("https://svelte.dev/e/effect_orphan")}function mt(){throw new Error("https://svelte.dev/e/effect_update_depth_exceeded")}function ar(){throw new Error("https://svelte.dev/e/hydration_failed")}function or(e){throw new Error("https://svelte.dev/e/props_invalid_value")}function Tt(){throw new Error("https://svelte.dev/e/state_descriptors_fixed")}function At(){throw new Error("https://svelte.dev/e/state_prototype_fixed")}function bt(){throw new Error("https://svelte.dev/e/state_unsafe_mutation")}function ur(){throw new Error("https://svelte.dev/e/svelte_boundary_reset_onerror")}const cr=1,_r=2,vr=4,dr=8,hr=16,pr=1,wr=2,yr=4,Er=8,gr=16,mr=1,Tr=2,Rt="[",St="[!",Ar="[?",kt="]",ln={},T=Symbol(),Nt="http://www.w3.org/1999/xhtml";function an(e){console.warn("https://svelte.dev/e/hydration_mismatch")}function br(){console.warn("https://svelte.dev/e/svelte_boundary_reset_noop")}let oe=!1;function Rr(e){oe=e}let g;function me(e){if(e===null)throw an(),ln;return g=e}function Sr(){return me(ne(g))}function kr(e){if(oe){if(ne(g)!==null)throw an(),ln;g=e}}function Nr(e=1){if(oe){for(var n=e,t=g;n--;)t=ne(t);g=t}}function Or(e=!0){for(var n=0,t=g;;){if(t.nodeType===xn){var r=t.data;if(r===kt){if(n===0)return t;n-=1}else(r===Rt||r===St||r[0]==="["&&!isNaN(Number(r.slice(1))))&&(n+=1)}var s=ne(t);e&&t.remove(),t=s}}function xr(e){if(!e||e.nodeType!==xn)throw an(),ln;return e.data}function Dn(e){return e===this.v}function Ot(e,n){return e!=e?n==n:e!==n||e!==null&&typeof e=="object"||typeof e=="function"}function In(e){return!Ot(e,this.v)}let Be=!1;function Dr(){Be=!0}let R=null;function qe(e){R=e}function Ir(e,n=!1,t){R={p:R,i:!1,c:null,e:null,s:e,x:null,l:Be&&!n?{s:null,u:null,$:[]}:null}}function Cr(e){var n=R,t=n.e;if(t!==null){n.e=null;for(var r of t)$n(r)}return n.i=!0,R=n.p,{}}function Fe(){return!Be||R!==null&&R.l===null}let se=[];function Cn(){var e=se;se=[],dt(e)}function mn(e){if(se.length===0&&!Ie){var n=se;queueMicrotask(()=>{n===se&&Cn()})}se.push(e)}function xt(){for(;se.length>0;)Cn()}function Dt(e){var n=w;if(n===null)return v.f|=W,e;if((n.f&ke)===0&&(n.f&Se)===0)throw e;He(e,n)}function He(e,n){for(;n!==null;){if((n.f&ht)!==0){if((n.f&ke)===0)throw e;try{n.b.error(e);return}catch(t){e=t}}n=n.parent}throw e}const It=-7169;function E(e,n){e.f=e.f&It|n}function on(e){(e.f&C)!==0||e.deps===null?E(e,m):E(e,q)}function Pn(e){if(e!==null)for(const n of e)(n.f&b)===0||(n.f&ae)===0||(n.f^=ae,Pn(n.deps))}function Ct(e,n,t){(e.f&S)!==0?n.add(e):(e.f&q)!==0&&t.add(e),Pn(e.deps),E(e,m)}const je=new Set;let h=null,A=null,N=[],ze=null,Ie=!1,Te=null;var $,de,ie,he,pe,we,X,L,ye,x,Ze,We,Je,Qe;const hn=class hn{constructor(){F(this,x);ve(this,"current",new Map);ve(this,"previous",new Map);F(this,$,new Set);F(this,de,new Set);F(this,ie,0);F(this,he,0);F(this,pe,null);F(this,we,new Set);F(this,X,new Set);F(this,L,new Map);ve(this,"is_fork",!1);F(this,ye,!1)}skip_effect(n){_(this,L).has(n)||_(this,L).set(n,{d:[],m:[]})}unskip_effect(n){var t=_(this,L).get(n);if(t){_(this,L).delete(n);for(var r of t.d)E(r,S),z(r);for(r of t.m)E(r,q),z(r)}}process(n){var s;N=[],this.apply();var t=Te=[],r=[];for(const f of n)B(this,x,We).call(this,f,t,r);if(Te=null,B(this,x,Ze).call(this)){B(this,x,Je).call(this,r),B(this,x,Je).call(this,t);for(const[f,l]of _(this,L))Ln(f,l)}else{h=null;for(const f of _(this,$))f(this);_(this,$).clear(),_(this,ie)===0&&B(this,x,Qe).call(this),Tn(r),Tn(t),_(this,we).clear(),_(this,X).clear(),(s=_(this,pe))==null||s.resolve()}A=null}capture(n,t){t!==T&&!this.previous.has(n)&&this.previous.set(n,t),(n.f&W)===0&&(this.current.set(n,n.v),A==null||A.set(n,n.v))}activate(){h=this,this.apply()}deactivate(){h===this&&(h=null,A=null)}flush(){var n;if(N.length>0)h=this,Fn();else if(_(this,ie)===0&&!this.is_fork){for(const t of _(this,$))t(this);_(this,$).clear(),B(this,x,Qe).call(this),(n=_(this,pe))==null||n.resolve()}this.deactivate()}discard(){for(const n of _(this,de))n(this);_(this,de).clear()}increment(n){G(this,ie,_(this,ie)+1),n&&G(this,he,_(this,he)+1)}decrement(n){G(this,ie,_(this,ie)-1),n&&G(this,he,_(this,he)-1),!_(this,ye)&&(G(this,ye,!0),mn(()=>{G(this,ye,!1),B(this,x,Ze).call(this)?N.length>0&&this.flush():this.revive()}))}revive(){for(const n of _(this,we))_(this,X).delete(n),E(n,S),z(n);for(const n of _(this,X))E(n,q),z(n);this.flush()}oncommit(n){_(this,$).add(n)}ondiscard(n){_(this,de).add(n)}settled(){return(_(this,pe)??G(this,pe,kn())).promise}static ensure(){if(h===null){const n=h=new hn;je.add(h),Ie||mn(()=>{h===n&&n.flush()})}return h}apply(){}};$=new WeakMap,de=new WeakMap,ie=new WeakMap,he=new WeakMap,pe=new WeakMap,we=new WeakMap,X=new WeakMap,L=new WeakMap,ye=new WeakMap,x=new WeakSet,Ze=function(){return this.is_fork||_(this,he)>0},We=function(n,t,r){n.f^=m;for(var s=n.first;s!==null;){var f=s.f,l=(f&(H|_e))!==0,o=l&&(f&m)!==0,i=o||(f&Y)!==0||_(this,L).has(s);if(!i&&s.fn!==null){l?s.f^=m:(f&Se)!==0?t.push(s):Me(s)&&((f&ee)!==0&&_(this,X).add(s),Re(s));var a=s.first;if(a!==null){s=a;continue}}for(;s!==null;){var c=s.next;if(c!==null){s=c;break}s=s.parent}}},Je=function(n){for(var t=0;t1){this.previous.clear();var n=h,t=A,r=!0;for(const l of je){if(l===this){r=!1;continue}const o=[];for(const[a,c]of this.current){if(l.current.has(a))if(r&&c!==l.current.get(a))l.current.set(a,c);else continue;o.push(a)}if(o.length===0)continue;const i=[...l.current.keys()].filter(a=>!this.current.has(a));if(i.length>0){var s=N;N=[];const a=new Set,c=new Map;for(const u of o)Mn(u,i,a,c);if(N.length>0){h=l,l.apply();for(const u of N)B(f=l,x,We).call(f,u,[],[]);l.deactivate()}N=s}}h=n,A=t}_(this,L).clear(),je.delete(this)};let Ae=hn;function Pt(e){var n=Ie;Ie=!0;try{for(var t;;){if(xt(),N.length===0&&(h==null||h.flush(),N.length===0))return ze=null,t;Fn()}}finally{Ie=n}}function Fn(){var e=null;try{for(var n=0;N.length>0;){var t=Ae.ensure();if(n++>1e3){var r,s;Ft()}t.process(N),J.clear()}}finally{N=[],ze=null,Te=null}}function Ft(){try{mt()}catch(e){He(e,ze)}}let M=null;function Tn(e){var n=e.length;if(n!==0){for(var t=0;t0)){J.clear();for(const s of M){if((s.f&(Z|Y))!==0)continue;const f=[s];let l=s.parent;for(;l!==null;)M.has(l)&&(M.delete(l),f.push(l)),l=l.parent;for(let o=f.length-1;o>=0;o--){const i=f[o];(i.f&(Z|Y))===0&&Re(i)}}M.clear()}}M=null}}function Mn(e,n,t,r){if(!t.has(e)&&(t.add(e),e.reactions!==null))for(const s of e.reactions){const f=s.f;(f&b)!==0?Mn(s,n,t,r):(f&(fn|ee))!==0&&(f&S)===0&&jn(s,n,r)&&(E(s,S),z(s))}}function jn(e,n,t){const r=t.get(e);if(r!==void 0)return r;if(e.deps!==null)for(const s of e.deps){if(Ee.call(n,s))return!0;if((s.f&b)!==0&&jn(s,n,t))return t.set(s,!0),!0}return t.set(e,!1),!1}function z(e){var n=ze=e,t=n.b;if(t!=null&&t.is_pending&&(e.f&(Se|ge|Nn))!==0&&(e.f&ke)===0){t.defer_effect(e);return}for(;n.parent!==null;){n=n.parent;var r=n.f;if(Te!==null&&n===w&&(e.f&ge)===0)return;if((r&(_e|H))!==0){if((r&m)===0)return;n.f^=m}}N.push(n)}function Ln(e,n){if(!((e.f&H)!==0&&(e.f&m)!==0)){(e.f&S)!==0?n.d.push(e):(e.f&q)!==0&&n.m.push(e),E(e,m);for(var t=e.first;t!==null;)Ln(t,n),t=t.next}}function Mt(e,n,t,r){const s=Fe()?un:qt;var f=e.filter(u=>!u.settled);if(t.length===0&&f.length===0){r(n.map(s));return}var l=w,o=jt(),i=f.length===1?f[0].promise:f.length>1?Promise.all(f.map(u=>u.promise)):null;function a(u){o();try{r(u)}catch(d){(l.f&Z)===0&&He(d,l)}en()}if(t.length===0){i.then(()=>a(n.map(s)));return}function c(){o(),Promise.all(t.map(u=>Yt(u))).then(u=>a([...n.map(s),...u])).catch(u=>He(u,l))}i?i.then(c):c()}function jt(){var e=w,n=v,t=R,r=h;return function(f=!0){be(e),Q(n),qe(t),f&&(r==null||r.activate())}}function en(e=!0){be(null),Q(null),qe(null),e&&(h==null||h.deactivate())}function Lt(){var e=w.b,n=h,t=e.is_rendered();return e.update_pending_count(1),n.increment(t),()=>{e.update_pending_count(-1),n.decrement(t)}}function un(e){var n=b|S,t=v!==null&&(v.f&b)!==0?v:null;return w!==null&&(w.f|=Pe),{ctx:R,deps:null,effects:null,equals:Dn,f:n,fn:e,reactions:null,rv:0,v:T,wv:0,parent:t??w,ac:null}}function Yt(e,n,t){w===null&&wt();var s=void 0,f=_n(T),l=!v,o=new Map;return $t(()=>{var d;var i=kn();s=i.promise;try{Promise.resolve(e()).then(i.resolve,i.reject).finally(en)}catch(y){i.reject(y),en()}var a=h;if(l){var c=Lt();(d=o.get(a))==null||d.reject(re),o.delete(a),o.set(a,i)}const u=(y,p=void 0)=>{if(a.activate(),p)p!==re&&(f.f|=W,tn(f,p));else{(f.f&W)!==0&&(f.f^=W),tn(f,y);for(const[U,k]of o){if(o.delete(U),U===a)break;k.reject(re)}}c&&c()};i.promise.then(u,y=>u(null,y||"unknown"))}),Kt(()=>{for(const i of o.values())i.reject(re)}),new Promise(i=>{function a(c){function u(){c===s?i(f):a(s)}c.then(u,u)}a(s)})}function Pr(e){const n=un(e);return Qn(n),n}function qt(e){const n=un(e);return n.equals=In,n}function Ht(e){var n=e.effects;if(n!==null){e.effects=null;for(var t=0;t0&&!Hn&&Bt()}return n}function Bt(){Hn=!1;for(const e of nn)(e.f&m)!==0&&E(e,q),Me(e)&&Re(e);nn.clear()}function $e(e){te(e,e.v+1)}function Vn(e,n){var t=e.reactions;if(t!==null)for(var r=Fe(),s=t.length,f=0;f{if(le===f)return o();var i=v,a=le;Q(null),Rn(f);var c=o();return Q(i),Rn(a),c};return r&&t.set("length",K(e.length)),new Proxy(e,{defineProperty(o,i,a){(!("value"in a)||a.configurable===!1||a.enumerable===!1||a.writable===!1)&&Tt();var c=t.get(i);return c===void 0?l(()=>{var u=K(a.value);return t.set(i,u),u}):te(c,a.value,!0),!0},deleteProperty(o,i){var a=t.get(i);if(a===void 0){if(i in o){const c=l(()=>K(T));t.set(i,c),$e(s)}}else te(a,T),$e(s);return!0},get(o,i,a){var y;if(i===De)return e;var c=t.get(i),u=i in o;if(c===void 0&&(!u||(y=xe(o,i))!=null&&y.writable)&&(c=l(()=>{var p=Ne(u?o[i]:T),U=K(p);return U}),t.set(i,c)),c!==void 0){var d=Oe(c);return d===T?void 0:d}return Reflect.get(o,i,a)},getOwnPropertyDescriptor(o,i){var a=Reflect.getOwnPropertyDescriptor(o,i);if(a&&"value"in a){var c=t.get(i);c&&(a.value=Oe(c))}else if(a===void 0){var u=t.get(i),d=u==null?void 0:u.v;if(u!==void 0&&d!==T)return{enumerable:!0,configurable:!0,value:d,writable:!0}}return a},has(o,i){var d;if(i===De)return!0;var a=t.get(i),c=a!==void 0&&a.v!==T||Reflect.has(o,i);if(a!==void 0||w!==null&&(!c||(d=xe(o,i))!=null&&d.writable)){a===void 0&&(a=l(()=>{var y=c?Ne(o[i]):T,p=K(y);return p}),t.set(i,a));var u=Oe(a);if(u===T)return!1}return c},set(o,i,a,c){var wn;var u=t.get(i),d=i in o;if(r&&i==="length")for(var y=a;yK(T)),t.set(y+"",p))}if(u===void 0)(!d||(wn=xe(o,i))!=null&&wn.writable)&&(u=l(()=>K(void 0)),te(u,Ne(a)),t.set(i,u));else{d=u.v!==T;var U=l(()=>Ne(a));te(u,U)}var k=Reflect.getOwnPropertyDescriptor(o,i);if(k!=null&&k.set&&k.set.call(c,a),!d){if(r&&typeof i=="string"){var pn=t.get("length"),Ge=Number(i);Number.isInteger(Ge)&&Ge>=pn.v&&te(pn,Ge+1)}$e(s)}return!0},ownKeys(o){Oe(s);var i=Reflect.ownKeys(o).filter(u=>{var d=t.get(u);return d===void 0||d.v!==T});for(var[a,c]of t)c.v!==T&&!(a in o)&&i.push(a);return i},setPrototypeOf(){At()}})}var An,zt,Un,Bn;function Mr(){if(An===void 0){An=window,zt=/Firefox/.test(navigator.userAgent);var e=Element.prototype,n=Node.prototype,t=Text.prototype;Un=xe(n,"firstChild").get,Bn=xe(n,"nextSibling").get,En(e)&&(e.__click=void 0,e.__className=void 0,e.__attributes=null,e.__style=void 0,e.__e=void 0),En(t)&&(t.__t=void 0)}}function Ve(e=""){return document.createTextNode(e)}function rn(e){return Un.call(e)}function ne(e){return Bn.call(e)}function jr(e,n){if(!oe)return rn(e);var t=rn(g);if(t===null)t=g.appendChild(Ve());else if(n&&t.nodeType!==Ue){var r=Ve();return t==null||t.before(r),me(r),r}return n&&vn(t),me(t),t}function Lr(e,n=!1){if(!oe){var t=rn(e);return t instanceof Comment&&t.data===""?ne(t):t}if(n){if((g==null?void 0:g.nodeType)!==Ue){var r=Ve();return g==null||g.before(r),me(r),r}vn(g)}return g}function Yr(e,n=1,t=!1){let r=oe?g:e;for(var s;n--;)s=r,r=ne(r);if(!oe)return r;if(t){if((r==null?void 0:r.nodeType)!==Ue){var f=Ve();return r===null?s==null||s.after(f):r.before(f),me(f),f}vn(r)}return me(r),r}function qr(e){e.textContent=""}function Hr(){return!1}function Vr(e,n,t){return document.createElementNS(Nt,e,void 0)}function vn(e){if(e.nodeValue.length<65536)return;let n=e.nextSibling;for(;n!==null&&n.nodeType===Ue;)n.remove(),e.nodeValue+=n.nodeValue,n=e.nextSibling}function zn(e){var n=v,t=w;Q(null),be(null);try{return e()}finally{Q(n),be(t)}}function Gn(e){w===null&&(v===null&>(),Et()),ce&&yt()}function Gt(e,n){var t=n.last;t===null?n.last=n.first=e:(t.next=e,e.prev=t,n.last=e)}function V(e,n){var t=w;t!==null&&(t.f&Y)!==0&&(e|=Y);var r={ctx:R,deps:null,nodes:null,f:e|S|C,first:null,fn:n,last:null,next:null,parent:t,b:t&&t.b,prev:null,teardown:null,wv:0,ac:null},s=r;if((e&Se)!==0)Te!==null?Te.push(r):z(r);else if(n!==null){try{Re(r)}catch(l){throw ue(r),l}s.deps===null&&s.teardown===null&&s.nodes===null&&s.first===s.last&&(s.f&Pe)===0&&(s=s.first,(e&ee)!==0&&(e&Ye)!==0&&s!==null&&(s.f|=Ye))}if(s!==null&&(s.parent=t,t!==null&&Gt(s,t),v!==null&&(v.f&b)!==0&&(e&_e)===0)){var f=v;(f.effects??(f.effects=[])).push(s)}return r}function Kn(){return v!==null&&!j}function Kt(e){const n=V(ge,null);return E(n,m),n.teardown=e,n}function Ur(e){Gn();var n=w.f,t=!v&&(n&H)!==0&&(n&ke)===0;if(t){var r=R;(r.e??(r.e=[])).push(e)}else return $n(e)}function $n(e){return V(Se|On,e)}function Br(e){return Gn(),V(ge|On,e)}function zr(e){Ae.ensure();const n=V(_e|Pe,e);return(t={})=>new Promise(r=>{t.outro?Wt(n,()=>{ue(n),r(void 0)}):(ue(n),r(void 0))})}function Gr(e){return V(Se,e)}function $t(e){return V(fn|Pe,e)}function Kr(e,n=0){return V(ge|n,e)}function $r(e,n=[],t=[],r=[]){Mt(r,n,t,s=>{V(ge,()=>e(...s.map(Oe)))})}function Xr(e,n=0){var t=V(ee|n,e);return t}function Zr(e){return V(H|Pe,e)}function Xn(e){var n=e.teardown;if(n!==null){const t=ce,r=v;bn(!0),Q(null);try{n.call(null)}finally{bn(t),Q(r)}}}function dn(e,n=!1){var t=e.first;for(e.first=e.last=null;t!==null;){const s=t.ac;s!==null&&zn(()=>{s.abort(re)});var r=t.next;(t.f&_e)!==0?t.parent=null:ue(t,n),t=r}}function Xt(e){for(var n=e.first;n!==null;){var t=n.next;(n.f&H)===0&&ue(n),n=t}}function ue(e,n=!0){var t=!1;(n||(e.f&pt)!==0)&&e.nodes!==null&&e.nodes.end!==null&&(Zt(e.nodes.start,e.nodes.end),t=!0),dn(e,n&&!t),Ce(e,0),E(e,Z);var r=e.nodes&&e.nodes.t;if(r!==null)for(const f of r)f.stop();Xn(e);var s=e.parent;s!==null&&s.first!==null&&Zn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=null}function Zt(e,n){for(;e!==null;){var t=e===n?null:ne(e);e.remove(),e=t}}function Zn(e){var n=e.parent,t=e.prev,r=e.next;t!==null&&(t.next=r),r!==null&&(r.prev=t),n!==null&&(n.first===e&&(n.first=r),n.last===e&&(n.last=t))}function Wt(e,n,t=!0){var r=[];Wn(e,r,!0);var s=()=>{t&&ue(e),n&&n()},f=r.length;if(f>0){var l=()=>--f||s();for(var o of r)o.out(l)}else s()}function Wn(e,n,t){if((e.f&Y)===0){e.f^=Y;var r=e.nodes&&e.nodes.t;if(r!==null)for(const o of r)(o.is_global||t)&&n.push(o);for(var s=e.first;s!==null;){var f=s.next,l=(s.f&Ye)!==0||(s.f&H)!==0&&(e.f&ee)!==0;Wn(s,n,l?t:!1),s=f}}}function Wr(e){Jn(e,!0)}function Jn(e,n){if((e.f&Y)!==0){e.f^=Y,(e.f&m)===0&&(E(e,S),z(e));for(var t=e.first;t!==null;){var r=t.next,s=(t.f&Ye)!==0||(t.f&H)!==0;Jn(t,s?n:!1),t=r}var f=e.nodes&&e.nodes.t;if(f!==null)for(const l of f)(l.is_global||n)&&l.in()}}function Jr(e,n){if(e.nodes)for(var t=e.nodes.start,r=e.nodes.end;t!==null;){var s=t===r?null:ne(t);n.append(t),t=s}}let Le=!1,ce=!1;function bn(e){ce=e}let v=null,j=!1;function Q(e){v=e}let w=null;function be(e){w=e}let P=null;function Qn(e){v!==null&&(P===null?P=[e]:P.push(e))}let O=null,D=0,I=null;function Jt(e){I=e}let et=1,fe=0,le=fe;function Rn(e){le=e}function nt(){return++et}function Me(e){var n=e.f;if((n&S)!==0)return!0;if(n&b&&(e.f&=~ae),(n&q)!==0){for(var t=e.deps,r=t.length,s=0;se.wv)return!0}(n&C)!==0&&A===null&&E(e,m)}return!1}function tt(e,n,t=!0){var r=e.reactions;if(r!==null&&!(P!==null&&Ee.call(P,e)))for(var s=0;s{e.ac.abort(re)}),e.ac=null);try{e.f|=Xe;var c=e.fn,u=c();e.f|=ke;var d=e.deps,y=h==null?void 0:h.is_fork;if(O!==null){var p;if(y||Ce(e,D),d!==null&&D>0)for(d.length=D+O.length,p=0;p{throw TypeError(t)};var Ie=(t,e,r)=>e in t?Ye(t,e,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[e]=r;var j=(t,e,r)=>Ie(t,typeof e!="symbol"?e+"":e,r),re=(t,e,r)=>e.has(t)||ue("Cannot "+r);var s=(t,e,r)=>(re(t,e,"read from private field"),r?r.call(t):e.get(t)),c=(t,e,r)=>e.has(t)?ue("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),n=(t,e,r,a)=>(re(t,e,"write to private field"),a?a.call(t,r):e.set(t,r),r),p=(t,e,r)=>(re(t,e,"access private method"),r);import{W as Me,g as me,X as Le,Y as we,F as Be,Z as _e,_ as V,j as Y,h as I,O as C,$ as pe,b as He,c as Ce,d as Pe,a0 as ge,n as k,m as Te,a1 as se,p as ie,q as We,a2 as ve,a3 as qe,a4 as ye,a5 as xe,a6 as Ve,a7 as G,a8 as K,a9 as be,aa as $e,ab as Re,B as Se,ac as je,l as ae,f as Q,ad as ze,e as Je,ae as z,E as Ue,af as Xe,ag as Ze,ah as Ge,ai as Ke,aj as Qe,ak as et,al as ne,P as tt,am as De,H as rt,an as st,ao as fe,i as J,ap as it,aq as at,ar as nt,as as ft,u as ht,at as ot,au as lt,w as ct}from"./Ym0WvvUy.js";import{b as dt}from"./B6M6q2Zo.js";function ut(t){let e=0,r=we(0),a;return()=>{Me()&&(me(r),Le(()=>(e===0&&(a=Be(()=>t(()=>_e(r)))),e+=1,()=>{V(()=>{e-=1,e===0&&(a==null||a(),a=void 0,_e(r))})})))}}var _t=Ue|Xe;function pt(t,e,r,a){new gt(t,e,r,a)}var E,$,T,L,g,R,m,w,S,B,A,P,W,q,D,ee,o,Ne,Ae,Oe,he,X,Z,oe;class gt{constructor(e,r,a,h){c(this,o);j(this,"parent");j(this,"is_pending",!1);j(this,"transform_error");c(this,E);c(this,$,I?Y:null);c(this,T);c(this,L);c(this,g);c(this,R,null);c(this,m,null);c(this,w,null);c(this,S,null);c(this,B,0);c(this,A,0);c(this,P,!1);c(this,W,new Set);c(this,q,new Set);c(this,D,null);c(this,ee,ut(()=>(n(this,D,we(s(this,B))),()=>{n(this,D,null)})));var i;n(this,E,e),n(this,T,r),n(this,L,f=>{var u=C;u.b=this,u.f|=pe,a(f)}),this.parent=C.b,this.transform_error=h??((i=this.parent)==null?void 0:i.transform_error)??(f=>f),n(this,g,He(()=>{if(I){const f=s(this,$);Ce();const u=f.data===Pe;if(f.data.startsWith(ge)){const d=JSON.parse(f.data.slice(ge.length));p(this,o,Ae).call(this,d)}else u?p(this,o,Oe).call(this):p(this,o,Ne).call(this)}else p(this,o,he).call(this)},_t)),I&&n(this,E,Y)}defer_effect(e){Ve(e,s(this,W),s(this,q))}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!s(this,T).pending}update_pending_count(e){p(this,o,oe).call(this,e),n(this,B,s(this,B)+e),!(!s(this,D)||s(this,P))&&(n(this,P,!0),V(()=>{n(this,P,!1),s(this,D)&&je(s(this,D),s(this,B))}))}get_effect_pending(){return s(this,ee).call(this),me(s(this,D))}error(e){var r=s(this,T).onerror;let a=s(this,T).failed;if(!r&&!a)throw e;s(this,R)&&(ae(s(this,R)),n(this,R,null)),s(this,m)&&(ae(s(this,m)),n(this,m,null)),s(this,w)&&(ae(s(this,w)),n(this,w,null)),I&&(Q(s(this,$)),ze(),Q(Je()));var h=!1,i=!1;const f=()=>{if(h){Ge();return}h=!0,i&&Ze(),s(this,w)!==null&&ie(s(this,w),()=>{n(this,w,null)}),p(this,o,Z).call(this,()=>{se.ensure(),p(this,o,he).call(this)})},u=l=>{try{i=!0,r==null||r(l,f),i=!1}catch(d){z(d,s(this,g)&&s(this,g).parent)}a&&n(this,w,p(this,o,Z).call(this,()=>{se.ensure();try{return k(()=>{var d=C;d.b=this,d.f|=pe,a(s(this,E),()=>l,()=>f)})}catch(d){return z(d,s(this,g).parent),null}}))};V(()=>{var l;try{l=this.transform_error(e)}catch(d){z(d,s(this,g)&&s(this,g).parent);return}l!==null&&typeof l=="object"&&typeof l.then=="function"?l.then(u,d=>z(d,s(this,g)&&s(this,g).parent)):u(l)})}}E=new WeakMap,$=new WeakMap,T=new WeakMap,L=new WeakMap,g=new WeakMap,R=new WeakMap,m=new WeakMap,w=new WeakMap,S=new WeakMap,B=new WeakMap,A=new WeakMap,P=new WeakMap,W=new WeakMap,q=new WeakMap,D=new WeakMap,ee=new WeakMap,o=new WeakSet,Ne=function(){try{n(this,R,k(()=>s(this,L).call(this,s(this,E))))}catch(e){this.error(e)}},Ae=function(e){const r=s(this,T).failed;r&&n(this,w,k(()=>{r(s(this,E),()=>e,()=>()=>{})}))},Oe=function(){const e=s(this,T).pending;e&&(this.is_pending=!0,n(this,m,k(()=>e(s(this,E)))),V(()=>{var r=n(this,S,document.createDocumentFragment()),a=Te();r.append(a),n(this,R,p(this,o,Z).call(this,()=>(se.ensure(),k(()=>s(this,L).call(this,a))))),s(this,A)===0&&(s(this,E).before(r),n(this,S,null),ie(s(this,m),()=>{n(this,m,null)}),p(this,o,X).call(this))}))},he=function(){try{if(this.is_pending=this.has_pending_snippet(),n(this,A,0),n(this,B,0),n(this,R,k(()=>{s(this,L).call(this,s(this,E))})),s(this,A)>0){var e=n(this,S,document.createDocumentFragment());We(s(this,R),e);const r=s(this,T).pending;n(this,m,k(()=>r(s(this,E))))}else p(this,o,X).call(this)}catch(r){this.error(r)}},X=function(){this.is_pending=!1;for(const e of s(this,W))ve(e,qe),ye(e);for(const e of s(this,q))ve(e,xe),ye(e);s(this,W).clear(),s(this,q).clear()},Z=function(e){var r=C,a=Re,h=Se;G(s(this,g)),K(s(this,g)),be(s(this,g).ctx);try{return e()}catch(i){return $e(i),null}finally{G(r),K(a),be(h)}},oe=function(e){var r;if(!this.has_pending_snippet()){this.parent&&p(r=this.parent,o,oe).call(r,e);return}n(this,A,s(this,A)+e),s(this,A)===0&&(p(this,o,X).call(this),s(this,m)&&ie(s(this,m),()=>{n(this,m,null)}),s(this,S)&&(s(this,E).before(s(this,S)),n(this,S,null)))};const vt=["touchstart","touchmove"];function yt(t){return vt.includes(t)}const M=Symbol("events"),Fe=new Set,le=new Set;function bt(t,e,r,a={}){function h(i){if(a.capture||ce.call(e,i),!i.cancelBubble)return Qe(()=>r==null?void 0:r.call(this,i))}return t.startsWith("pointer")||t.startsWith("touch")||t==="wheel"?V(()=>{e.addEventListener(t,h,a)}):e.addEventListener(t,h,a),h}function Rt(t,e,r,a,h){var i={capture:a,passive:h},f=bt(t,e,r,i);(e===document.body||e===window||e===document||e instanceof HTMLMediaElement)&&Ke(()=>{e.removeEventListener(t,f,i)})}function St(t,e,r){(e[M]??(e[M]={}))[t]=r}function Dt(t){for(var e=0;e{throw F});throw N}}finally{t[M]=e,delete t.currentTarget,K(H),G(x)}}}function Nt(t,e){var r=e==null?"":typeof e=="object"?`${e}`:e;r!==(t.__t??(t.__t=t.nodeValue))&&(t.__t=r,t.nodeValue=`${r}`)}function Et(t,e){return ke(t,e)}function At(t,e){ne(),e.intro=e.intro??!1;const r=e.target,a=I,h=Y;try{for(var i=tt(r);i&&(i.nodeType!==De||i.data!==rt);)i=st(i);if(!i)throw fe;J(!0),Q(i);const f=ke(t,{...e,anchor:i});return J(!1),f}catch(f){if(f instanceof Error&&f.message.split(` -`).some(u=>u.startsWith("https://svelte.dev/e/")))throw f;return f!==fe&&console.warn("Failed to hydrate: ",f),e.recover===!1&&it(),ne(),at(r),J(!1),Et(t,e)}finally{J(a),Q(h)}}const U=new Map;function ke(t,{target:e,anchor:r,props:a={},events:h,context:i,intro:f=!0,transformError:u}){ne();var l=void 0,d=nt(()=>{var H=r??e.appendChild(Te());pt(H,{pending:()=>{}},v=>{ht({});var _=Se;if(i&&(_.c=i),h&&(a.$$events=h),I&&dt(v,null),l=t(v,a)||{},I&&(C.nodes.end=Y,Y===null||Y.nodeType!==De||Y.data!==ot))throw lt(),fe;ct()},u);var x=new Set,N=v=>{for(var _=0;_{var O;for(var v of x)for(const b of[e,document]){var _=U.get(b),y=_.get(v);--y==0?(b.removeEventListener(v,ce),_.delete(v),_.size===0&&U.delete(b)):_.set(v,y)}le.delete(N),H!==r&&((O=H.parentNode)==null||O.removeChild(H))}});return de.set(l,d),l}let de=new WeakMap;function Ot(t,e){const r=de.get(t);return r?(de.delete(t),r(e)):Promise.resolve()}export{St as a,Dt as d,Rt as e,At as h,Et as m,Nt as s,Ot as u}; diff --git a/frontend/build/_app/immutable/chunks/giww_vF6.js b/frontend/build/_app/immutable/chunks/giww_vF6.js deleted file mode 100644 index e2bacc2..0000000 --- a/frontend/build/_app/immutable/chunks/giww_vF6.js +++ /dev/null @@ -1 +0,0 @@ -var Qt=t=>{throw TypeError(t)};var Oe=(t,e,n)=>e.has(t)||Qt("Cannot "+n);var w=(t,e,n)=>(Oe(t,e,"read from private field"),n?n.call(t):e.get(t)),A=(t,e,n)=>e.has(t)?Qt("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,n);import{a$ as Ut,b0 as Ce,s as T,g as I,a as P,aZ as gt,b1 as je}from"./Ym0WvvUy.js";import{o as te}from"./Bfwrz3i4.js";const M=[];function qt(t,e=Ut){let n=null;const r=new Set;function a(s){if(Ce(t,s)&&(t=s,n)){const l=!M.length;for(const c of r)c[1](),M.push(c,t);if(l){for(let c=0;c{r.delete(c),r.size===0&&n&&(n(),n=null)}}return{set:a,update:i,subscribe:o}}class Dt{constructor(e,n){this.status=e,typeof n=="string"?this.body={message:n}:n?this.body=n:this.body={message:`Error: ${e}`}}toString(){return JSON.stringify(this.body)}}class Vt{constructor(e,n){this.status=e,this.location=n}}class Bt extends Error{constructor(e,n,r){super(r),this.status=e,this.text=n}}new URL("sveltekit-internal://");function Ne(t,e){return t==="/"||e==="ignore"?t:e==="never"?t.endsWith("/")?t.slice(0,-1):t:e==="always"&&!t.endsWith("/")?t+"/":t}function qe(t){return t.split("%25").map(decodeURI).join("%25")}function De(t){for(const e in t)t[e]=decodeURIComponent(t[e]);return t}function At({href:t}){return t.split("#")[0]}function Ve(...t){let e=5381;for(const n of t)if(typeof n=="string"){let r=n.length;for(;r;)e=e*33^n.charCodeAt(--r)}else if(ArrayBuffer.isView(n)){const r=new Uint8Array(n.buffer,n.byteOffset,n.byteLength);let a=r.length;for(;a;)e=e*33^r[--a]}else throw new TypeError("value must be a string or TypedArray");return(e>>>0).toString(36)}new TextEncoder;new TextDecoder;function Be(t){const e=atob(t),n=new Uint8Array(e.length);for(let r=0;r((t instanceof Request?t.method:(e==null?void 0:e.method)||"GET")!=="GET"&&Y.delete(Kt(t)),Ke(t,e));const Y=new Map;function Me(t,e){const n=Kt(t,e),r=document.querySelector(n);if(r!=null&&r.textContent){r.remove();let{body:a,...i}=JSON.parse(r.textContent);const o=r.getAttribute("data-ttl");return o&&Y.set(n,{body:a,init:i,ttl:1e3*Number(o)}),r.getAttribute("data-b64")!==null&&(a=Be(a)),Promise.resolve(new Response(a,i))}return window.fetch(t,e)}function ze(t,e,n){if(Y.size>0){const r=Kt(t,n),a=Y.get(r);if(a){if(performance.now(){const a=/^\[\.\.\.(\w+)(?:=(\w+))?\]$/.exec(r);if(a)return e.push({name:a[1],matcher:a[2],optional:!1,rest:!0,chained:!0}),"(?:/([^]*))?";const i=/^\[\[(\w+)(?:=(\w+))?\]\]$/.exec(r);if(i)return e.push({name:i[1],matcher:i[2],optional:!0,rest:!1,chained:!0}),"(?:/([^/]+))?";if(!r)return;const o=r.split(/\[(.+?)\](?!\])/);return"/"+o.map((l,c)=>{if(c%2){if(l.startsWith("x+"))return Tt(String.fromCharCode(parseInt(l.slice(2),16)));if(l.startsWith("u+"))return Tt(String.fromCharCode(...l.slice(2).split("-").map(_=>parseInt(_,16))));const d=Fe.exec(l),[,u,v,f,h]=d;return e.push({name:f,matcher:h,optional:!!u,rest:!!v,chained:v?c===1&&o[0]==="":!1}),v?"([^]*?)":u?"([^/]*)?":"([^/]+?)"}return Tt(l)}).join("")}).join("")}/?$`),params:e}}function We(t){return t!==""&&!/^\([^)]+\)$/.test(t)}function Ye(t){return t.slice(1).split("/").filter(We)}function He(t,e,n){const r={},a=t.slice(1),i=a.filter(s=>s!==void 0);let o=0;for(let s=0;sd).join("/"),o=0),c===void 0)if(l.rest)c="";else continue;if(!l.matcher||n[l.matcher](c)){r[l.name]=c;const d=e[s+1],u=a[s+1];d&&!d.rest&&d.optional&&u&&l.chained&&(o=0),!d&&!u&&Object.keys(r).length===i.length&&(o=0);continue}if(l.optional&&l.chained){o++;continue}return}if(!o)return r}function Tt(t){return t.normalize().replace(/[[\]]/g,"\\$&").replace(/%/g,"%25").replace(/\//g,"%2[Ff]").replace(/\?/g,"%3[Ff]").replace(/#/g,"%23").replace(/[.*+?^${}()|\\]/g,"\\$&")}function Je({nodes:t,server_loads:e,dictionary:n,matchers:r}){const a=new Set(e);return Object.entries(n).map(([s,[l,c,d]])=>{const{pattern:u,params:v}=Ge(s),f={id:s,exec:h=>{const _=u.exec(h);if(_)return He(_,v,r)},errors:[1,...d||[]].map(h=>t[h]),layouts:[0,...c||[]].map(o),leaf:i(l)};return f.errors.length=f.layouts.length=Math.max(f.errors.length,f.layouts.length),f});function i(s){const l=s<0;return l&&(s=~s),[l,t[s]]}function o(s){return s===void 0?s:[a.has(s),t[s]]}}function he(t,e=JSON.parse){try{return e(sessionStorage[t])}catch{}}function ee(t,e,n=JSON.stringify){const r=n(e);try{sessionStorage[t]=r}catch{}}var le;const U=((le=globalThis.__sveltekit_1rgg0vt)==null?void 0:le.base)??"";var ce;const Xe=((ce=globalThis.__sveltekit_1rgg0vt)==null?void 0:ce.assets)??U??"",Ze="1772333625386",pe="sveltekit:snapshot",ge="sveltekit:scroll",me="sveltekit:states",Qe="sveltekit:pageurl",F="sveltekit:history",J="sveltekit:navigation",q={tap:1,hover:2,viewport:3,eager:4,off:-1,false:-1},Et=location.origin;function Mt(t){if(t instanceof URL)return t;let e=document.baseURI;if(!e){const n=document.getElementsByTagName("base");e=n.length?n[0].href:document.URL}return new URL(t,e)}function V(){return{x:pageXOffset,y:pageYOffset}}function z(t,e){return t.getAttribute(`data-sveltekit-${e}`)}const ne={...q,"":q.hover};function _e(t){let e=t.assignedSlot??t.parentNode;return(e==null?void 0:e.nodeType)===11&&(e=e.host),e}function we(t,e){for(;t&&t!==e;){if(t.nodeName.toUpperCase()==="A"&&t.hasAttribute("href"))return t;t=_e(t)}}function $t(t,e,n){let r;try{if(r=new URL(t instanceof SVGAElement?t.href.baseVal:t.href,document.baseURI),n&&r.hash.match(/^#[^/]/)){const s=location.hash.split("#")[1]||"/";r.hash=`#${s}${r.hash}`}}catch{}const a=t instanceof SVGAElement?t.target.baseVal:t.target,i=!r||!!a||Rt(r,e,n)||(t.getAttribute("rel")||"").split(/\s+/).includes("external"),o=(r==null?void 0:r.origin)===Et&&t.hasAttribute("download");return{url:r,external:i,target:a,download:o}}function mt(t){let e=null,n=null,r=null,a=null,i=null,o=null,s=t;for(;s&&s!==document.documentElement;)r===null&&(r=z(s,"preload-code")),a===null&&(a=z(s,"preload-data")),e===null&&(e=z(s,"keepfocus")),n===null&&(n=z(s,"noscroll")),i===null&&(i=z(s,"reload")),o===null&&(o=z(s,"replacestate")),s=_e(s);function l(c){switch(c){case"":case"true":return!0;case"off":case"false":return!1;default:return}}return{preload_code:ne[r??"off"],preload_data:ne[a??"off"],keepfocus:l(e),noscroll:l(n),reload:l(i),replace_state:l(o)}}function ae(t){const e=qt(t);let n=!0;function r(){n=!0,e.update(o=>o)}function a(o){n=!1,e.set(o)}function i(o){let s;return e.subscribe(l=>{(s===void 0||n&&l!==s)&&o(s=l)})}return{notify:r,set:a,subscribe:i}}const ve={v:()=>{}};function tn(){const{set:t,subscribe:e}=qt(!1);let n;async function r(){clearTimeout(n);try{const a=await fetch(`${Xe}/_app/version.json`,{headers:{pragma:"no-cache","cache-control":"no-cache"}});if(!a.ok)return!1;const o=(await a.json()).version!==Ze;return o&&(t(!0),ve.v(),clearTimeout(n)),o}catch{return!1}}return{subscribe:e,check:r}}function Rt(t,e,n){return t.origin!==Et||!t.pathname.startsWith(e)?!0:n?t.pathname!==location.pathname:!1}function An(t){}const ye=new Set(["load","prerender","csr","ssr","trailingSlash","config"]);[...ye];const en=new Set([...ye]);[...en];function nn(t){return t.filter(e=>e!=null)}function zt(t){return t instanceof Dt||t instanceof Bt?t.status:500}function an(t){return t instanceof Bt?t.text:"Internal Error"}let R,X,It;const rn=te.toString().includes("$$")||/function \w+\(\) \{\}/.test(te.toString());var nt,at,rt,ot,st,it,lt,ct,fe,ft,ue,ut,de;rn?(R={data:{},form:null,error:null,params:{},route:{id:null},state:{},status:-1,url:new URL("https://example.com")},X={current:null},It={current:!1}):(R=new(fe=class{constructor(){A(this,nt,T({}));A(this,at,T(null));A(this,rt,T(null));A(this,ot,T({}));A(this,st,T({id:null}));A(this,it,T({}));A(this,lt,T(-1));A(this,ct,T(new URL("https://example.com")))}get data(){return I(w(this,nt))}set data(e){P(w(this,nt),e)}get form(){return I(w(this,at))}set form(e){P(w(this,at),e)}get error(){return I(w(this,rt))}set error(e){P(w(this,rt),e)}get params(){return I(w(this,ot))}set params(e){P(w(this,ot),e)}get route(){return I(w(this,st))}set route(e){P(w(this,st),e)}get state(){return I(w(this,it))}set state(e){P(w(this,it),e)}get status(){return I(w(this,lt))}set status(e){P(w(this,lt),e)}get url(){return I(w(this,ct))}set url(e){P(w(this,ct),e)}},nt=new WeakMap,at=new WeakMap,rt=new WeakMap,ot=new WeakMap,st=new WeakMap,it=new WeakMap,lt=new WeakMap,ct=new WeakMap,fe),X=new(ue=class{constructor(){A(this,ft,T(null))}get current(){return I(w(this,ft))}set current(e){P(w(this,ft),e)}},ft=new WeakMap,ue),It=new(de=class{constructor(){A(this,ut,T(!1))}get current(){return I(w(this,ut))}set current(e){P(w(this,ut),e)}},ut=new WeakMap,de),ve.v=()=>It.current=!0);function on(t){Object.assign(R,t)}const sn=new Set(["icon","shortcut icon","apple-touch-icon"]),j=he(ge)??{},Z=he(pe)??{},C={url:ae({}),page:ae({}),navigating:qt(null),updated:tn()};function Ft(t){j[t]=V()}function ln(t,e){let n=t+1;for(;j[n];)delete j[n],n+=1;for(n=e+1;Z[n];)delete Z[n],n+=1}function Q(t,e=!1){return e?location.replace(t.href):location.href=t.href,new Promise(()=>{})}async function be(){if("serviceWorker"in navigator){const t=await navigator.serviceWorker.getRegistration(U||"/");t&&await t.update()}}function re(){}let Gt,Ot,_t,$,Ct,S;const wt=[],vt=[];let y=null;function jt(){var t;(t=y==null?void 0:y.fork)==null||t.then(e=>e==null?void 0:e.discard()),y=null}const pt=new Map,ke=new Set,cn=new Set,H=new Set;let m={branch:[],error:null,url:null},Se=!1,yt=!1,oe=!0,tt=!1,W=!1,Ee=!1,Wt=!1,Re,k,L,D;const bt=new Set,se=new Map;async function $n(t,e,n){var i,o,s,l,c;(i=globalThis.__sveltekit_1rgg0vt)!=null&&i.data&&globalThis.__sveltekit_1rgg0vt.data,document.URL!==location.href&&(location.href=location.href),S=t,await((s=(o=t.hooks).init)==null?void 0:s.call(o)),Gt=Je(t),$=document.documentElement,Ct=e,Ot=t.nodes[0],_t=t.nodes[1],Ot(),_t(),k=(l=history.state)==null?void 0:l[F],L=(c=history.state)==null?void 0:c[J],k||(k=L=Date.now(),history.replaceState({...history.state,[F]:k,[J]:L},""));const r=j[k];function a(){r&&(history.scrollRestoration="manual",scrollTo(r.x,r.y))}n?(a(),await kn(Ct,n)):(await G({type:"enter",url:Mt(S.hash?Rn(new URL(location.href)):location.href),replace_state:!0}),a()),bn()}function fn(){wt.length=0,Wt=!1}function xe(t){vt.some(e=>e==null?void 0:e.snapshot)&&(Z[t]=vt.map(e=>{var n;return(n=e==null?void 0:e.snapshot)==null?void 0:n.capture()}))}function Le(t){var e;(e=Z[t])==null||e.forEach((n,r)=>{var a,i;(i=(a=vt[r])==null?void 0:a.snapshot)==null||i.restore(n)})}function ie(){Ft(k),ee(ge,j),xe(L),ee(pe,Z)}async function Ue(t,e,n,r){let a;e.invalidateAll&&jt(),await G({type:"goto",url:Mt(t),keepfocus:e.keepFocus,noscroll:e.noScroll,replace_state:e.replaceState,state:e.state,redirect_count:n,nav_token:r,accept:()=>{e.invalidateAll&&(Wt=!0,a=[...se.keys()]),e.invalidate&&e.invalidate.forEach(yn)}}),e.invalidateAll&>().then(gt).then(()=>{se.forEach(({resource:i},o)=>{var s;a!=null&&a.includes(o)&&((s=i.refresh)==null||s.call(i))})})}async function un(t){if(t.id!==(y==null?void 0:y.id)){jt();const e={};bt.add(e),y={id:t.id,token:e,promise:Te({...t,preload:e}).then(n=>(bt.delete(e),n.type==="loaded"&&n.state.error&&jt(),n)),fork:null}}return y.promise}async function Pt(t){var n;const e=(n=await xt(t,!1))==null?void 0:n.route;e&&await Promise.all([...e.layouts,e.leaf].filter(Boolean).map(r=>r[1]()))}async function Ae(t,e,n){var a;m=t.state;const r=document.querySelector("style[data-sveltekit]");if(r&&r.remove(),Object.assign(R,t.props.page),Re=new S.root({target:e,props:{...t.props,stores:C,components:vt},hydrate:n,sync:!1}),await Promise.resolve(),Le(L),n){const i={from:null,to:{params:m.params,route:{id:((a=m.route)==null?void 0:a.id)??null},url:new URL(location.href),scroll:j[k]??V()},willUnload:!1,type:"enter",complete:Promise.resolve()};H.forEach(o=>o(i))}yt=!0}function kt({url:t,params:e,branch:n,status:r,error:a,route:i,form:o}){let s="never";if(U&&(t.pathname===U||t.pathname===U+"/"))s="always";else for(const f of n)(f==null?void 0:f.slash)!==void 0&&(s=f.slash);t.pathname=Ne(t.pathname,s),t.search=t.search;const l={type:"loaded",state:{url:t,params:e,branch:n,error:a,route:i},props:{constructors:nn(n).map(f=>f.node.component),page:Zt(R)}};o!==void 0&&(l.props.form=o);let c={},d=!R,u=0;for(let f=0;fs(new URL(o))))return!0;return!1}function Ht(t,e){return(t==null?void 0:t.type)==="data"?t:(t==null?void 0:t.type)==="skip"?e??null:null}function pn(t,e){if(!t)return new Set(e.searchParams.keys());const n=new Set([...t.searchParams.keys(),...e.searchParams.keys()]);for(const r of n){const a=t.searchParams.getAll(r),i=e.searchParams.getAll(r);a.every(o=>i.includes(o))&&i.every(o=>a.includes(o))&&n.delete(r)}return n}function gn({error:t,url:e,route:n,params:r}){return{type:"loaded",state:{error:t,url:e,route:n,params:r,branch:[]},props:{page:Zt(R),constructors:[]}}}async function Te({id:t,invalidating:e,url:n,params:r,route:a,preload:i}){if((y==null?void 0:y.id)===t)return bt.delete(y.token),y.promise;const{errors:o,layouts:s,leaf:l}=a,c=[...s,l];o.forEach(g=>g==null?void 0:g().catch(()=>{})),c.forEach(g=>g==null?void 0:g[1]().catch(()=>{}));const d=m.url?t!==St(m.url):!1,u=m.route?a.id!==m.route.id:!1,v=pn(m.url,n);let f=!1;const h=c.map(async(g,p)=>{var O;if(!g)return;const b=m.branch[p];return g[1]===(b==null?void 0:b.loader)&&!hn(f,u,d,v,(O=b.universal)==null?void 0:O.uses,r)?b:(f=!0,Yt({loader:g[1],url:n,params:r,route:a,parent:async()=>{var dt;const N={};for(let B=0;B{});const _=[];for(let g=0;gPromise.resolve({}),server_data_node:Ht(i)}),s={node:await _t(),loader:_t,universal:null,server:null,data:null};return kt({url:n,params:a,branch:[o,s],status:t,error:e,route:null})}catch(o){if(o instanceof Vt)return Ue(new URL(o.location,location.href),{},0);throw o}}async function _n(t){const e=t.href;if(pt.has(e))return pt.get(e);let n;try{const r=(async()=>{let a=await S.hooks.reroute({url:new URL(t),fetch:async(i,o)=>dn(i,o,t).promise})??t;if(typeof a=="string"){const i=new URL(t);S.hash?i.hash=a:i.pathname=a,a=i}return a})();pt.set(e,r),n=await r}catch{pt.delete(e);return}return n}async function xt(t,e){if(t&&!Rt(t,U,S.hash)){const n=await _n(t);if(!n)return;const r=wn(n);for(const a of Gt){const i=a.exec(r);if(i)return{id:St(t),invalidating:e,route:a,params:De(i),url:t}}}}function wn(t){return qe(S.hash?t.hash.replace(/^#/,"").replace(/[?#].+/,""):t.pathname.slice(U.length))||"/"}function St(t){return(S.hash?t.hash.replace(/^#/,""):t.pathname)+t.search}function Ie({url:t,type:e,intent:n,delta:r,event:a,scroll:i}){let o=!1;const s=Xt(m,n,t,e,i??null);r!==void 0&&(s.navigation.delta=r),a!==void 0&&(s.navigation.event=a);const l={...s.navigation,cancel:()=>{o=!0,s.reject(new Error("navigation cancelled"))}};return tt||ke.forEach(c=>c(l)),o?null:s}async function G({type:t,url:e,popped:n,keepfocus:r,noscroll:a,replace_state:i,state:o={},redirect_count:s=0,nav_token:l={},accept:c=re,block:d=re,event:u}){var B;const v=D;D=l;const f=await xt(e,!1),h=t==="enter"?Xt(m,f,e,t):Ie({url:e,type:t,delta:n==null?void 0:n.delta,intent:f,scroll:n==null?void 0:n.scroll,event:u});if(!h){d(),D===l&&(D=v);return}const _=k,g=L;c(),tt=!0,yt&&h.navigation.type!=="enter"&&C.navigating.set(X.current=h.navigation);let p=f&&await Te(f);if(!p){if(Rt(e,U,S.hash))return await Q(e,i);p=await Pe(e,{id:null},await et(new Bt(404,"Not Found",`Not found: ${e.pathname}`),{url:e,params:{},route:{id:null}}),404,i)}if(e=(f==null?void 0:f.url)||e,D!==l)return h.reject(new Error("navigation aborted")),!1;if(p.type==="redirect"){if(s<20){await G({type:t,url:new URL(p.location,e),popped:n,keepfocus:r,noscroll:a,replace_state:i,state:o,redirect_count:s+1,nav_token:l}),h.fulfil(void 0);return}p=await Jt({status:500,error:await et(new Error("Redirect loop"),{url:e,params:{},route:{id:null}}),url:e,route:{id:null}})}else p.props.page.status>=400&&await C.updated.check()&&(await be(),await Q(e,i));if(fn(),Ft(_),xe(g),p.props.page.url.pathname!==e.pathname&&(e.pathname=p.props.page.url.pathname),o=n?n.state:o,!n){const E=i?0:1,ht={[F]:k+=E,[J]:L+=E,[me]:o};(i?history.replaceState:history.pushState).call(history,ht,"",e),i||ln(k,L)}const b=f&&(y==null?void 0:y.id)===f.id?y.fork:null;y=null,p.props.page.state=o;let x;if(yt){const E=(await Promise.all(Array.from(cn,K=>K(h.navigation)))).filter(K=>typeof K=="function");if(E.length>0){let K=function(){E.forEach(Lt=>{H.delete(Lt)})};E.push(K),E.forEach(Lt=>{H.add(Lt)})}m=p.state,p.props.page&&(p.props.page.url=e);const ht=b&&await b;ht?x=ht.commit():(Re.$set(p.props),on(p.props.page),x=(B=je)==null?void 0:B()),Ee=!0}else await Ae(p,Ct,!1);const{activeElement:O}=document;await x,await gt(),await gt();let N=null;if(oe){const E=n?n.scroll:a?V():null;E?scrollTo(E.x,E.y):(N=e.hash&&document.getElementById($e(e)))?N.scrollIntoView():scrollTo(0,0)}const dt=document.activeElement!==O&&document.activeElement!==document.body;!r&&!dt&&En(e,!N),oe=!0,p.props.page&&Object.assign(R,p.props.page),tt=!1,t==="popstate"&&Le(L),h.fulfil(void 0),h.navigation.to&&(h.navigation.to.scroll=V()),H.forEach(E=>E(h.navigation)),C.navigating.set(X.current=null)}async function Pe(t,e,n,r,a){return t.origin===Et&&t.pathname===location.pathname&&!Se?await Jt({status:r,error:n,url:t,route:e}):await Q(t,a)}function vn(){let t,e={element:void 0,href:void 0},n;$.addEventListener("mousemove",s=>{const l=s.target;clearTimeout(t),t=setTimeout(()=>{i(l,q.hover)},20)});function r(s){s.defaultPrevented||i(s.composedPath()[0],q.tap)}$.addEventListener("mousedown",r),$.addEventListener("touchstart",r,{passive:!0});const a=new IntersectionObserver(s=>{for(const l of s)l.isIntersecting&&(Pt(new URL(l.target.href)),a.unobserve(l.target))},{threshold:0});async function i(s,l){const c=we(s,$),d=c===e.element&&(c==null?void 0:c.href)===e.href&&l>=n;if(!c||d)return;const{url:u,external:v,download:f}=$t(c,U,S.hash);if(v||f)return;const h=mt(c),_=u&&St(m.url)===St(u);if(!(h.reload||_))if(l<=h.preload_data){e={element:c,href:c.href},n=q.tap;const g=await xt(u,!1);if(!g)return;un(g)}else l<=h.preload_code&&(e={element:c,href:c.href},n=l,Pt(u))}function o(){a.disconnect();for(const s of $.querySelectorAll("a")){const{url:l,external:c,download:d}=$t(s,U,S.hash);if(c||d)continue;const u=mt(s);u.reload||(u.preload_code===q.viewport&&a.observe(s),u.preload_code===q.eager&&Pt(l))}}H.add(o),o()}function et(t,e){if(t instanceof Dt)return t.body;const n=zt(t),r=an(t);return S.hooks.handleError({error:t,event:e,status:n,message:r})??{message:r}}function On(t,e={}){return t=new URL(Mt(t)),t.origin!==Et?Promise.reject(new Error("goto: invalid URL")):Ue(t,e,0)}function yn(t){if(typeof t=="function")wt.push(t);else{const{href:e}=new URL(t,location.href);wt.push(n=>n.href===e)}}function bn(){var e;history.scrollRestoration="manual",addEventListener("beforeunload",n=>{let r=!1;if(ie(),!tt){const a=Xt(m,void 0,null,"leave"),i={...a.navigation,cancel:()=>{r=!0,a.reject(new Error("navigation cancelled"))}};ke.forEach(o=>o(i))}r?(n.preventDefault(),n.returnValue=""):history.scrollRestoration="auto"}),addEventListener("visibilitychange",()=>{document.visibilityState==="hidden"&&ie()}),(e=navigator.connection)!=null&&e.saveData||vn(),$.addEventListener("click",async n=>{if(n.button||n.which!==1||n.metaKey||n.ctrlKey||n.shiftKey||n.altKey||n.defaultPrevented)return;const r=we(n.composedPath()[0],$);if(!r)return;const{url:a,external:i,target:o,download:s}=$t(r,U,S.hash);if(!a)return;if(o==="_parent"||o==="_top"){if(window.parent!==window)return}else if(o&&o!=="_self")return;const l=mt(r);if(!(r instanceof SVGAElement)&&a.protocol!==location.protocol&&!(a.protocol==="https:"||a.protocol==="http:")||s)return;const[d,u]=(S.hash?a.hash.replace(/^#/,""):a.href).split("#"),v=d===At(location);if(i||l.reload&&(!v||!u)){Ie({url:a,type:"link",event:n})?tt=!0:n.preventDefault();return}if(u!==void 0&&v){const[,f]=m.url.href.split("#");if(f===u){if(n.preventDefault(),u===""||u==="top"&&r.ownerDocument.getElementById("top")===null)scrollTo({top:0});else{const h=r.ownerDocument.getElementById(decodeURIComponent(u));h&&(h.scrollIntoView(),h.focus())}return}if(W=!0,Ft(k),t(a),!l.replace_state)return;W=!1}n.preventDefault(),await new Promise(f=>{requestAnimationFrame(()=>{setTimeout(f,0)}),setTimeout(f,100)}),await G({type:"link",url:a,keepfocus:l.keepfocus,noscroll:l.noscroll,replace_state:l.replace_state??a.href===location.href,event:n})}),$.addEventListener("submit",n=>{if(n.defaultPrevented)return;const r=HTMLFormElement.prototype.cloneNode.call(n.target),a=n.submitter;if(((a==null?void 0:a.formTarget)||r.target)==="_blank"||((a==null?void 0:a.formMethod)||r.method)!=="get")return;const s=new URL((a==null?void 0:a.hasAttribute("formaction"))&&(a==null?void 0:a.formAction)||r.action);if(Rt(s,U,!1))return;const l=n.target,c=mt(l);if(c.reload)return;n.preventDefault(),n.stopPropagation();const d=new FormData(l,a);s.search=new URLSearchParams(d).toString(),G({type:"form",url:s,keepfocus:c.keepfocus,noscroll:c.noscroll,replace_state:c.replace_state??s.href===location.href,event:n})}),addEventListener("popstate",async n=>{var r;if(!Nt){if((r=n.state)!=null&&r[F]){const a=n.state[F];if(D={},a===k)return;const i=j[a],o=n.state[me]??{},s=new URL(n.state[Qe]??location.href),l=n.state[J],c=m.url?At(location)===At(m.url):!1;if(l===L&&(Ee||c)){o!==R.state&&(R.state=o),t(s),j[k]=V(),i&&scrollTo(i.x,i.y),k=a;return}const u=a-k;await G({type:"popstate",url:s,popped:{state:o,scroll:i,delta:u},accept:()=>{k=a,L=l},block:()=>{history.go(-u)},nav_token:D,event:n})}else if(!W){const a=new URL(location.href);t(a),S.hash&&location.reload()}}}),addEventListener("hashchange",()=>{W&&(W=!1,history.replaceState({...history.state,[F]:++k,[J]:L},"",location.href))});for(const n of document.querySelectorAll("link"))sn.has(n.rel)&&(n.href=n.href);addEventListener("pageshow",n=>{n.persisted&&C.navigating.set(X.current=null)});function t(n){m.url=R.url=n,C.page.set(Zt(R)),C.page.notify()}}async function kn(t,{status:e=200,error:n,node_ids:r,params:a,route:i,server_route:o,data:s,form:l}){Se=!0;const c=new URL(location.href);let d;({params:a={},route:i={id:null}}=await xt(c,!1)||{}),d=Gt.find(({id:f})=>f===i.id);let u,v=!0;try{const f=r.map(async(_,g)=>{const p=s[g];return p!=null&&p.uses&&(p.uses=Sn(p.uses)),Yt({loader:S.nodes[_],url:c,params:a,route:i,parent:async()=>{const b={};for(let x=0;x{const s=history.state;Nt=!0,location.replace(new URL(`#${r}`,location.href)),history.replaceState(s,"",t),e&&scrollTo(i,o),Nt=!1})}else{const i=document.body,o=i.getAttribute("tabindex");i.tabIndex=-1,i.focus({preventScroll:!0,focusVisible:!1}),o!==null?i.setAttribute("tabindex",o):i.removeAttribute("tabindex")}const a=getSelection();if(a&&a.type!=="None"){const i=[];for(let o=0;o{if(a.rangeCount===i.length){for(let o=0;o{i=u,o=v});return s.catch(()=>{}),{navigation:{from:{params:t.params,route:{id:((c=t.route)==null?void 0:c.id)??null},url:t.url,scroll:V()},to:n&&{params:(e==null?void 0:e.params)??null,route:{id:((d=e==null?void 0:e.route)==null?void 0:d.id)??null},url:n,scroll:a},willUnload:!e,type:r,complete:s},fulfil:i,reject:o}}function Zt(t){return{data:t.data,error:t.error,form:t.form,params:t.params,route:t.route,state:t.state,status:t.status,url:t.url}}function Rn(t){const e=new URL(t);return e.hash=decodeURIComponent(t.hash),e}function $e(t){let e;if(S.hash){const[,,n]=t.hash.split("#",3);e=n??""}else e=t.hash.slice(1);return decodeURIComponent(e)}export{$n as a,On as g,An as l,R as p,C as s}; diff --git a/frontend/build/_app/immutable/chunks/Bfwrz3i4.js b/frontend/build/_app/immutable/chunks/nIaoZoCo.js similarity index 80% rename from frontend/build/_app/immutable/chunks/Bfwrz3i4.js rename to frontend/build/_app/immutable/chunks/nIaoZoCo.js index 5c309e1..ecec90b 100644 --- a/frontend/build/_app/immutable/chunks/Bfwrz3i4.js +++ b/frontend/build/_app/immutable/chunks/nIaoZoCo.js @@ -1 +1 @@ -import{D as o,B as t,M as c,F as u}from"./Ym0WvvUy.js";function l(n){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function r(n){t===null&&l(),c&&t.l!==null?a(t).m.push(n):o(()=>{const e=u(n);if(typeof e=="function")return e})}function a(n){var e=n.l;return e.u??(e.u={a:[],b:[],m:[]})}export{r as o}; +import{u as o,j as t,l as c,k as u}from"./C4An0dnW.js";function l(n){throw new Error("https://svelte.dev/e/lifecycle_outside_component")}function r(n){t===null&&l(),c&&t.l!==null?a(t).m.push(n):o(()=>{const e=u(n);if(typeof e=="function")return e})}function a(n){var e=n.l;return e.u??(e.u={a:[],b:[],m:[]})}export{r as o}; diff --git a/frontend/build/_app/immutable/entry/app.DWnDWHgs.js b/frontend/build/_app/immutable/entry/app.DWnDWHgs.js deleted file mode 100644 index e959077..0000000 --- a/frontend/build/_app/immutable/entry/app.DWnDWHgs.js +++ /dev/null @@ -1,2 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.CNxjQThJ.js","../chunks/B6M6q2Zo.js","../chunks/Ym0WvvUy.js","../chunks/Da6yQRl8.js","../assets/0.LvVNMuLM.css","../nodes/1.DQmxvu2E.js","../chunks/De6rLmuB.js","../chunks/dTRRgeF-.js","../chunks/giww_vF6.js","../chunks/Bfwrz3i4.js","../nodes/2.CwK2tdGg.js","../chunks/B9dvBo0E.js","../chunks/DMqvp7vx.js","../assets/2.lCQ6RyE1.css","../nodes/3.BjUxkFGX.js","../assets/3.C7Q2VT44.css"])))=>i.map(i=>d[i]); -var z=t=>{throw TypeError(t)};var H=(t,e,r)=>e.has(t)||z("Cannot "+r);var v=(t,e,r)=>(H(t,e,"read from private field"),r?r.call(t):e.get(t)),C=(t,e,r)=>e.has(t)?z("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(t):e.set(t,r),j=(t,e,r,o)=>(H(t,e,"write to private field"),o?o.call(t,r):e.set(t,r),r);import{h as W,c as ae,b as se,E as ne,r as ie,e as oe,f as ce,i as X,H as ue,j as fe,aL as le,X as de,F as K,_ as _e,aM as Q,aN as me,aO as ve,aP as he,g as E,aQ as ge,a as w,aR as ye,O as Ee,aS as Pe,aT as Re,M as be,aU as Se,aV as Oe,K as Ae,ay as Te,aW as we,aX as J,aY as Ie,ak as Le,aC as xe,u as De,C as ke,D as Ce,aZ as je,v as L,x as Be,w as Ne,s as B,y as Ue,z as Ye,A as Me,a_ as N}from"../chunks/Ym0WvvUy.js";import{h as Ve,m as qe,u as Fe,s as ze}from"../chunks/dTRRgeF-.js";import{a as A,c as U,f as p,t as He}from"../chunks/B6M6q2Zo.js";import{o as We}from"../chunks/Bfwrz3i4.js";import{i as Y}from"../chunks/B9dvBo0E.js";import{B as Xe}from"../chunks/Da6yQRl8.js";function M(t,e,r){var o;W&&(o=fe,ae());var i=new Xe(t);se(()=>{var n=e()??null;if(W){var s=ie(o),a=s===ue,f=n!==null;if(a!==f){var P=oe();ce(P),i.anchor=P,X(!1),i.ensure(n,n&&(c=>r(c,n))),X(!0);return}}i.ensure(n,n&&(c=>r(c,n)))},ne)}function Z(t,e){return t===e||(t==null?void 0:t[Q])===e}function V(t={},e,r,o){return le(()=>{var i,n;return de(()=>{i=n,n=[],K(()=>{t!==r(...n)&&(e(t,...n),i&&Z(r(...i),t)&&e(null,...i))})}),()=>{_e(()=>{n&&Z(r(...n),t)&&e(null,...n)})}}),t}let x=!1;function Ze(t){var e=x;try{return x=!1,[t(),x]}finally{x=e}}function q(t,e,r,o){var b;var i=!be||(r&Se)!==0,n=(r&Re)!==0,s=(r&we)!==0,a=o,f=!0,P=()=>(f&&(f=!1,a=s?K(o):o),a),c;if(n){var R=Q in t||J in t;c=((b=me(t,e))==null?void 0:b.set)??(R&&e in t?u=>t[e]=u:void 0)}var h,T=!1;n?[h,T]=Ze(()=>t[e]):h=t[e],h===void 0&&o!==void 0&&(h=P(),c&&(i&&ve(),c(h)));var d;if(i?d=()=>{var u=t[e];return u===void 0?P():(f=!0,u)}:d=()=>{var u=t[e];return u!==void 0&&(a=void 0),u===void 0?a:u},i&&(r&he)===0)return d;if(c){var l=t.$$legacy;return(function(u,m){return arguments.length>0?((!i||!m||l||T)&&c(m?d():u),u):d()})}var _=!1,g=((r&Oe)!==0?Ae:Te)(()=>(_=!1,d()));n&&E(g);var O=Ee;return(function(u,m){if(arguments.length>0){const k=m?E(g):i&&n?ge(u):u;return w(g,k),_=!0,a!==void 0&&(a=k),u}return ye&&_||(O.f&Pe)!==0?g.v:E(g)})}function Ge(t){return class extends Ke{constructor(e){super({component:t,...e})}}}var S,y;class Ke{constructor(e){C(this,S);C(this,y);var n;var r=new Map,o=(s,a)=>{var f=xe(a,!1,!1);return r.set(s,f),f};const i=new Proxy({...e.props||{},$$events:{}},{get(s,a){return E(r.get(a)??o(a,Reflect.get(s,a)))},has(s,a){return a===J?!0:(E(r.get(a)??o(a,Reflect.get(s,a))),Reflect.has(s,a))},set(s,a,f){return w(r.get(a)??o(a,f),f),Reflect.set(s,a,f)}});j(this,y,(e.hydrate?Ve:qe)(e.component,{target:e.target,anchor:e.anchor,props:i,context:e.context,intro:e.intro??!1,recover:e.recover,transformError:e.transformError})),(!((n=e==null?void 0:e.props)!=null&&n.$$host)||e.sync===!1)&&Ie(),j(this,S,i.$$events);for(const s of Object.keys(v(this,y)))s==="$set"||s==="$destroy"||s==="$on"||Le(this,s,{get(){return v(this,y)[s]},set(a){v(this,y)[s]=a},enumerable:!0});v(this,y).$set=s=>{Object.assign(i,s)},v(this,y).$destroy=()=>{Fe(v(this,y))}}$set(e){v(this,y).$set(e)}$on(e,r){v(this,S)[e]=v(this,S)[e]||[];const o=(...i)=>r.call(this,...i);return v(this,S)[e].push(o),()=>{v(this,S)[e]=v(this,S)[e].filter(i=>i!==o)}}$destroy(){v(this,y).$destroy()}}S=new WeakMap,y=new WeakMap;const Qe="modulepreload",Je=function(t,e){return new URL(t,e).href},G={},D=function(e,r,o){let i=Promise.resolve();if(r&&r.length>0){let s=function(c){return Promise.all(c.map(R=>Promise.resolve(R).then(h=>({status:"fulfilled",value:h}),h=>({status:"rejected",reason:h}))))};const a=document.getElementsByTagName("link"),f=document.querySelector("meta[property=csp-nonce]"),P=(f==null?void 0:f.nonce)||(f==null?void 0:f.getAttribute("nonce"));i=s(r.map(c=>{if(c=Je(c,o),c in G)return;G[c]=!0;const R=c.endsWith(".css"),h=R?'[rel="stylesheet"]':"";if(!!o)for(let l=a.length-1;l>=0;l--){const _=a[l];if(_.href===c&&(!R||_.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${h}`))return;const d=document.createElement("link");if(d.rel=R?"stylesheet":Qe,R||(d.as="script"),d.crossOrigin="",d.href=c,P&&d.setAttribute("nonce",P),document.head.appendChild(d),R)return new Promise((l,_)=>{d.addEventListener("load",l),d.addEventListener("error",()=>_(new Error(`Unable to preload CSS for ${c}`)))})}))}function n(s){const a=new Event("vite:preloadError",{cancelable:!0});if(a.payload=s,window.dispatchEvent(a),!a.defaultPrevented)throw s}return i.then(s=>{for(const a of s||[])a.status==="rejected"&&n(a.reason);return e().catch(n)})},ut={};var pe=p('
'),$e=p(" ",1);function et(t,e){De(e,!0);let r=q(e,"components",23,()=>[]),o=q(e,"data_0",3,null),i=q(e,"data_1",3,null);ke(()=>e.stores.page.set(e.page)),Ce(()=>{e.stores,e.page,e.constructors,r(),e.form,o(),i(),e.stores.page.notify()});let n=B(!1),s=B(!1),a=B(null);We(()=>{const l=e.stores.page.subscribe(()=>{E(n)&&(w(s,!0),je().then(()=>{w(a,document.title||"untitled page",!0)}))});return w(n,!0),l});const f=N(()=>e.constructors[1]);var P=$e(),c=L(P);{var R=l=>{const _=N(()=>e.constructors[0]);var g=U(),O=L(g);M(O,()=>E(_),(b,u)=>{V(u(b,{get data(){return o()},get form(){return e.form},get params(){return e.page.params},children:(m,k)=>{var F=U(),ee=L(F);M(ee,()=>E(f),(te,re)=>{V(re(te,{get data(){return i()},get form(){return e.form},get params(){return e.page.params}}),I=>r()[1]=I,()=>{var I;return(I=r())==null?void 0:I[1]})}),A(m,F)},$$slots:{default:!0}}),m=>r()[0]=m,()=>{var m;return(m=r())==null?void 0:m[0]})}),A(l,g)},h=l=>{const _=N(()=>e.constructors[0]);var g=U(),O=L(g);M(O,()=>E(_),(b,u)=>{V(u(b,{get data(){return o()},get form(){return e.form},get params(){return e.page.params}}),m=>r()[0]=m,()=>{var m;return(m=r())==null?void 0:m[0]})}),A(l,g)};Y(c,l=>{e.constructors[1]?l(R):l(h,!1)})}var T=Be(c,2);{var d=l=>{var _=pe(),g=Ue(_);{var O=b=>{var u=He();Me(()=>ze(u,E(a))),A(b,u)};Y(g,b=>{E(s)&&b(O)})}Ye(_),A(l,_)};Y(T,l=>{E(n)&&l(d)})}A(t,P),Ne()}const ft=Ge(et),lt=[()=>D(()=>import("../nodes/0.CNxjQThJ.js"),__vite__mapDeps([0,1,2,3,4]),import.meta.url),()=>D(()=>import("../nodes/1.DQmxvu2E.js"),__vite__mapDeps([5,1,2,6,7,8,9]),import.meta.url),()=>D(()=>import("../nodes/2.CwK2tdGg.js"),__vite__mapDeps([10,1,2,6,9,7,11,3,12,8,13]),import.meta.url),()=>D(()=>import("../nodes/3.BjUxkFGX.js"),__vite__mapDeps([14,1,2,9,7,11,3,12,8,15]),import.meta.url)],dt=[],_t={"/":[2],"/login":[3]},$={handleError:(({error:t})=>{console.error(t)}),reroute:(()=>{}),transport:{}},tt=Object.fromEntries(Object.entries($.transport).map(([t,e])=>[t,e.decode])),mt=Object.fromEntries(Object.entries($.transport).map(([t,e])=>[t,e.encode])),vt=!1,ht=(t,e)=>tt[t](e);export{ht as decode,tt as decoders,_t as dictionary,mt as encoders,vt as hash,$ as hooks,ut as matchers,lt as nodes,ft as root,dt as server_loads}; diff --git a/frontend/build/_app/immutable/entry/app.Dwn0pdp1.js b/frontend/build/_app/immutable/entry/app.Dwn0pdp1.js new file mode 100644 index 0000000..e928d73 --- /dev/null +++ b/frontend/build/_app/immutable/entry/app.Dwn0pdp1.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["../nodes/0.C1R4dMGA.js","../chunks/Q5CB4WY5.js","../chunks/C4An0dnW.js","../chunks/nIaoZoCo.js","../chunks/D__6P984.js","../chunks/D3f6eoxz.js","../chunks/DQNCp18R.js","../chunks/DyXP65qD.js","../chunks/BViIIwgj.js","../chunks/CQQh_IlD.js","../chunks/BeLKMLqR.js","../chunks/C5aWxL5p.js","../chunks/BTkWS7xQ.js","../assets/0.BcOVBfXh.css","../nodes/1.CNv_pgkw.js","../nodes/2.C9GK89sD.js","../assets/2.BmNlW7Gm.css","../nodes/3.BMSY6fJC.js","../assets/3.BysT7-iU.css","../nodes/4.Ct0ahWmg.js","../assets/4.C7Q2VT44.css","../nodes/5.CrKjY73y.js","../assets/5.B34oOQk5.css","../nodes/6.CMmeTvWv.js","../assets/6.BcOWEnnB.css","../nodes/7.0Z-UCw0W.js","../chunks/WPMya0VZ.js","../chunks/C48rM6KF.js","../assets/DataTable.CrZfXN-V.css","../assets/7.CLv6rscz.css","../nodes/8.fn5hverG.js","../assets/8.WyH666g9.css"])))=>i.map(i=>d[i]); +var F=e=>{throw TypeError(e)};var N=(e,t,r)=>t.has(e)||F("Cannot "+r);var f=(e,t,r)=>(N(e,t,"read from private field"),r?r.call(e):t.get(e)),p=(e,t,r)=>t.has(e)?F("Cannot add the same private member more than once"):t instanceof WeakSet?t.add(e):t.set(e,r),x=(e,t,r,i)=>(N(e,t,"write to private field"),i?i.call(e,r):t.set(e,r),r);import{h as W,U as Q,T as $,V as tt,W as et,Z as rt,_ as st,$ as G,X as at,O as nt,b2 as ot,a3 as it,k as ct,ak as ut,S as lt,d as S,L as ft,g as E,b3 as mt,aY as dt,ag as _t,p as ht,m as vt,u as gt,a2 as Et,f as w,s as yt,a as Pt,b as D,c as Rt,r as bt,t as Ot,x as I}from"../chunks/C4An0dnW.js";import{h as Tt,m as kt,u as At,s as Lt}from"../chunks/CQQh_IlD.js";import{a as k,c as V,f as X,t as wt}from"../chunks/Q5CB4WY5.js";import{o as St}from"../chunks/nIaoZoCo.js";import{B as pt,i as j}from"../chunks/D__6P984.js";import{p as C}from"../chunks/C48rM6KF.js";function B(e,t,r){var i;W&&(i=nt,Q());var o=new pt(e);$(()=>{var n=t()??null;if(W){var a=et(i),s=a===at,l=n!==null;if(s!==l){var P=rt();st(P),o.anchor=P,G(!1),o.ensure(n,n&&(c=>r(c,n))),G(!0);return}}o.ensure(n,n&&(c=>r(c,n)))},tt)}function H(e,t){return e===t||(e==null?void 0:e[lt])===t}function Y(e={},t,r,i){return ot(()=>{var o,n;return it(()=>{o=n,n=[],ct(()=>{e!==r(...n)&&(t(e,...n),o&&H(r(...o),e)&&t(null,...o))})}),()=>{ut(()=>{n&&H(r(...n),e)&&t(null,...n)})}}),e}function xt(e){return class extends Dt{constructor(t){super({component:e,...t})}}}var y,d;class Dt{constructor(t){p(this,y);p(this,d);var n;var r=new Map,i=(a,s)=>{var l=_t(s,!1,!1);return r.set(a,l),l};const o=new Proxy({...t.props||{},$$events:{}},{get(a,s){return E(r.get(s)??i(s,Reflect.get(a,s)))},has(a,s){return s===ft?!0:(E(r.get(s)??i(s,Reflect.get(a,s))),Reflect.has(a,s))},set(a,s,l){return S(r.get(s)??i(s,l),l),Reflect.set(a,s,l)}});x(this,d,(t.hydrate?Tt:kt)(t.component,{target:t.target,anchor:t.anchor,props:o,context:t.context,intro:t.intro??!1,recover:t.recover,transformError:t.transformError})),(!((n=t==null?void 0:t.props)!=null&&n.$$host)||t.sync===!1)&&mt(),x(this,y,o.$$events);for(const a of Object.keys(f(this,d)))a==="$set"||a==="$destroy"||a==="$on"||dt(this,a,{get(){return f(this,d)[a]},set(s){f(this,d)[a]=s},enumerable:!0});f(this,d).$set=a=>{Object.assign(o,a)},f(this,d).$destroy=()=>{At(f(this,d))}}$set(t){f(this,d).$set(t)}$on(t,r){f(this,y)[t]=f(this,y)[t]||[];const i=(...o)=>r.call(this,...o);return f(this,y)[t].push(i),()=>{f(this,y)[t]=f(this,y)[t].filter(o=>o!==i)}}$destroy(){f(this,d).$destroy()}}y=new WeakMap,d=new WeakMap;const It="modulepreload",Vt=function(e,t){return new URL(e,t).href},M={},g=function(t,r,i){let o=Promise.resolve();if(r&&r.length>0){let a=function(c){return Promise.all(c.map(v=>Promise.resolve(v).then(R=>({status:"fulfilled",value:R}),R=>({status:"rejected",reason:R}))))};const s=document.getElementsByTagName("link"),l=document.querySelector("meta[property=csp-nonce]"),P=(l==null?void 0:l.nonce)||(l==null?void 0:l.getAttribute("nonce"));o=a(r.map(c=>{if(c=Vt(c,i),c in M)return;M[c]=!0;const v=c.endsWith(".css"),R=v?'[rel="stylesheet"]':"";if(!!i)for(let u=s.length-1;u>=0;u--){const m=s[u];if(m.href===c&&(!v||m.rel==="stylesheet"))return}else if(document.querySelector(`link[href="${c}"]${R}`))return;const h=document.createElement("link");if(h.rel=v?"stylesheet":It,v||(h.as="script"),h.crossOrigin="",h.href=c,P&&h.setAttribute("nonce",P),document.head.appendChild(h),v)return new Promise((u,m)=>{h.addEventListener("load",u),h.addEventListener("error",()=>m(new Error(`Unable to preload CSS for ${c}`)))})}))}function n(a){const s=new Event("vite:preloadError",{cancelable:!0});if(s.payload=a,window.dispatchEvent(s),!s.defaultPrevented)throw a}return o.then(a=>{for(const s of a||[])s.status==="rejected"&&n(s.reason);return t().catch(n)})},Xt={};var jt=X('
'),Ct=X(" ",1);function Bt(e,t){ht(t,!0);let r=C(t,"components",23,()=>[]),i=C(t,"data_0",3,null),o=C(t,"data_1",3,null);vt(()=>t.stores.page.set(t.page)),gt(()=>{t.stores,t.page,t.constructors,r(),t.form,i(),o(),t.stores.page.notify()});let n=D(!1),a=D(!1),s=D(null);St(()=>{const u=t.stores.page.subscribe(()=>{E(n)&&(S(a,!0),Et().then(()=>{S(s,document.title||"untitled page",!0)}))});return S(n,!0),u});const l=I(()=>t.constructors[1]);var P=Ct(),c=w(P);{var v=u=>{const m=I(()=>t.constructors[0]);var b=V(),A=w(b);B(A,()=>E(m),(O,T)=>{Y(T(O,{get data(){return i()},get form(){return t.form},get params(){return t.page.params},children:(_,qt)=>{var U=V(),z=w(U);B(z,()=>E(l),(J,K)=>{Y(K(J,{get data(){return o()},get form(){return t.form},get params(){return t.page.params}}),L=>r()[1]=L,()=>{var L;return(L=r())==null?void 0:L[1]})}),k(_,U)},$$slots:{default:!0}}),_=>r()[0]=_,()=>{var _;return(_=r())==null?void 0:_[0]})}),k(u,b)},R=u=>{const m=I(()=>t.constructors[0]);var b=V(),A=w(b);B(A,()=>E(m),(O,T)=>{Y(T(O,{get data(){return i()},get form(){return t.form},get params(){return t.page.params}}),_=>r()[0]=_,()=>{var _;return(_=r())==null?void 0:_[0]})}),k(u,b)};j(c,u=>{t.constructors[1]?u(v):u(R,!1)})}var q=yt(c,2);{var h=u=>{var m=jt(),b=Rt(m);{var A=O=>{var T=wt();Ot(()=>Lt(T,E(s))),k(O,T)};j(b,O=>{E(a)&&O(A)})}bt(m),k(u,m)};j(q,u=>{E(n)&&u(h)})}k(e,P),Pt()}const Zt=xt(Bt),zt=[()=>g(()=>import("../nodes/0.C1R4dMGA.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13]),import.meta.url),()=>g(()=>import("../nodes/1.CNv_pgkw.js"),__vite__mapDeps([14,1,2,8,9,7,6,3]),import.meta.url),()=>g(()=>import("../nodes/2.C9GK89sD.js"),__vite__mapDeps([15,1,2,8,3,6,16]),import.meta.url),()=>g(()=>import("../nodes/3.BMSY6fJC.js"),__vite__mapDeps([17,1,2,8,9,4,11,18]),import.meta.url),()=>g(()=>import("../nodes/4.Ct0ahWmg.js"),__vite__mapDeps([19,1,2,3,9,4,10,5,6,20]),import.meta.url),()=>g(()=>import("../nodes/5.CrKjY73y.js"),__vite__mapDeps([21,1,2,8,9,5,6,3,22]),import.meta.url),()=>g(()=>import("../nodes/6.CMmeTvWv.js"),__vite__mapDeps([23,1,2,8,9,4,11,24]),import.meta.url),()=>g(()=>import("../nodes/7.0Z-UCw0W.js"),__vite__mapDeps([25,1,2,8,11,26,9,4,10,12,27,28,29]),import.meta.url),()=>g(()=>import("../nodes/8.fn5hverG.js"),__vite__mapDeps([30,1,2,11,26,9,4,10,12,27,28,31]),import.meta.url)],Jt=[],Kt={"/":[2],"/financials":[3],"/login":[4],"/more":[5],"/overview":[6],"/players":[7],"/tables":[8]},Z={handleError:(({error:e})=>{console.error(e)}),reroute:(()=>{}),transport:{}},Yt=Object.fromEntries(Object.entries(Z.transport).map(([e,t])=>[e,t.decode])),Qt=Object.fromEntries(Object.entries(Z.transport).map(([e,t])=>[e,t.encode])),$t=!1,te=(e,t)=>Yt[e](t);export{te as decode,Yt as decoders,Kt as dictionary,Qt as encoders,$t as hash,Z as hooks,Xt as matchers,zt as nodes,Zt as root,Jt as server_loads}; diff --git a/frontend/build/_app/immutable/entry/start.Cw5np0_P.js b/frontend/build/_app/immutable/entry/start.Cw5np0_P.js deleted file mode 100644 index 798389d..0000000 --- a/frontend/build/_app/immutable/entry/start.Cw5np0_P.js +++ /dev/null @@ -1 +0,0 @@ -import{l as o,a as r}from"../chunks/giww_vF6.js";export{o as load_css,r as start}; diff --git a/frontend/build/_app/immutable/entry/start.Do4A91T6.js b/frontend/build/_app/immutable/entry/start.Do4A91T6.js new file mode 100644 index 0000000..b0d1b8a --- /dev/null +++ b/frontend/build/_app/immutable/entry/start.Do4A91T6.js @@ -0,0 +1 @@ +import{l as o,a as r}from"../chunks/DQNCp18R.js";export{o as load_css,r as start}; diff --git a/frontend/build/_app/immutable/nodes/0.C1R4dMGA.js b/frontend/build/_app/immutable/nodes/0.C1R4dMGA.js new file mode 100644 index 0000000..20083bc --- /dev/null +++ b/frontend/build/_app/immutable/nodes/0.C1R4dMGA.js @@ -0,0 +1 @@ +var da=u=>{throw TypeError(u)};var xa=(u,a,e)=>a.has(u)||da("Cannot "+e);var C=(u,a,e)=>(xa(u,a,"read from private field"),e?e.call(u):a.get(u)),sa=(u,a,e)=>a.has(u)?da("Cannot add the same private member more than once"):a instanceof WeakSet?a.add(u):a.set(u,e);import{a as f,f as m,c as la}from"../chunks/Q5CB4WY5.js";import{o as ka}from"../chunks/nIaoZoCo.js";import{T as ya,V as wa,p as W,c,r as i,a as j,f as V,g as s,s as h,aR as Ta,t as O,i as ba,a0 as Aa,b as ra,d as U,e as ha,x as Fa}from"../chunks/C4An0dnW.js";import{B as Ba,i as E}from"../chunks/D__6P984.js";import{a as fa}from"../chunks/D3f6eoxz.js";import{g as Ia}from"../chunks/DQNCp18R.js";import{p as oa}from"../chunks/DyXP65qD.js";import{i as H}from"../chunks/BViIIwgj.js";import{s as y,d as ca,e as Pa,a as z}from"../chunks/CQQh_IlD.js";import{a as D,e as aa,s as N,i as na}from"../chunks/BeLKMLqR.js";import{t as B}from"../chunks/C5aWxL5p.js";import{s as va}from"../chunks/BTkWS7xQ.js";function pa(u,a,...e){var d=new Ba(u);ya(()=>{const o=a()??null;d.ensure(o,o&&(b=>o(b,...e)))},wa)}const Sa=!0,Ma=!1,we=Object.freeze(Object.defineProperty({__proto__:null,prerender:Sa,ssr:Ma},Symbol.toStringTag,{value:"Module"}));var $a=m('PAUSED'),Ea=m('BREAK'),Na=m(' '),Ra=m('
Blinds
remaining
',1),qa=m('
Felt No active tournament
'),Oa=m('
');function La(u,a){W(a,!1);function e(n){n<0&&(n=0);const t=Math.floor(n/60),v=n%60;return`${String(t).padStart(2,"0")}:${String(v).padStart(2,"0")}`}function d(n,t){return`${n.toLocaleString()}/${t.toLocaleString()}`}H();var o=Oa(),b=c(o),l=c(b);{var r=n=>{const t=ba(()=>B.clock),v=ba(()=>s(t).remaining_seconds<=10&&!s(t).is_break&&!s(t).is_paused);var _=Ra(),g=V(_);let k;var x=c(g);{var I=F=>{var $=$a();f(F,$)},S=F=>{var $=Ea();f(F,$)};E(x,F=>{s(t).is_paused?F(I):s(t).is_break&&F(S,1)})}var T=h(x,2),M=c(T,!0);i(T),i(g);var K=h(g,2),w=c(K),A=c(w);i(w);var R=h(w,2),L=c(R,!0);i(R),i(K);var G=h(K,2),P=h(c(G),2),J=c(P,!0);i(P);var ia=h(P,2);{var ea=F=>{var $=Na(),_a=c($);i($),O(ga=>y(_a,`Ante ${ga??""}`),[()=>s(t).ante.toLocaleString()]),f(F,$)};E(ia,F=>{s(t).ante>0&&F(ea)})}i(G);var ta=h(G,2),ua=c(ta),ma=c(ua);i(ua),Ta(2),i(ta),O((F,$)=>{k=D(g,1,"header-clock svelte-1elxaub",null,k,{urgent:s(v),paused:s(t).is_paused,"on-break":s(t).is_break}),y(M,F),y(A,`L${s(t).level??""}`),y(L,s(t).name),y(J,$),y(ma,`${B.remainingPlayers??""}/${B.totalPlayers??""}`)},[()=>e(s(t).remaining_seconds),()=>d(s(t).small_blind,s(t).big_blind)]),f(n,_)},p=n=>{var t=qa();f(n,t)};E(l,n=>{B.clock?n(r):n(p,!1)})}i(b),i(o),f(u,o),j()}var Ca=m(' '),Ua=m('
');function Da(u,a){W(a,!1);const e=[{label:"Overview",href:"/overview",icon:"🏠"},{label:"Players",href:"/players",icon:"👥"},{label:"Tables",href:"/tables",icon:"🪑"},{label:"Financials",href:"/financials",icon:"💰"},{label:"More",href:"/more",icon:"⚙"}];function d(b){var r;const l=((r=oa.url)==null?void 0:r.pathname)??"/";return b==="/overview"?l==="/"||l==="/overview"||l.startsWith("/overview/"):l===b||l.startsWith(b+"/")}H();var o=Ua();aa(o,5,()=>e,na,(b,l)=>{var r=Ca();let p;var n=c(r),t=c(n,!0);i(n);var v=h(n,2),_=c(v,!0);i(v),i(r),O((g,k)=>{N(r,"href",s(l).href),p=D(r,1,"tab-item svelte-1pn9dat",null,p,g),N(r,"aria-selected",k),N(r,"aria-label",s(l).label),y(t,s(l).icon),y(_,s(l).label)},[()=>({active:d(s(l).href)}),()=>d(s(l).href)]),f(b,r)}),i(o),f(u,o),j()}var Wa=m('
  • '),ja=m('');function Ka(u,a){W(a,!1);const e=[{label:"Overview",href:"/overview",icon:"🏠"},{label:"Players",href:"/players",icon:"👥"},{label:"Tables",href:"/tables",icon:"🪑"},{label:"Financials",href:"/financials",icon:"💰"},{label:"More",href:"/more",icon:"⚙"}];function d(l){var p;const r=((p=oa.url)==null?void 0:p.pathname)??"/";return l==="/overview"?r==="/"||r==="/overview"||r.startsWith("/overview/"):r===l||r.startsWith(l+"/")}H();var o=ja(),b=h(c(o),2);aa(b,5,()=>e,na,(l,r)=>{var p=Wa(),n=c(p);let t;var v=c(n),_=c(v,!0);i(v);var g=h(v,2),k=c(g,!0);i(g),i(n),i(p),O((x,I)=>{N(n,"href",s(r).href),t=D(n,1,"nav-item svelte-129hoe0",null,t,x),N(n,"aria-current",I),y(_,s(r).icon),y(k,s(r).label)},[()=>({active:d(s(r).href)}),()=>d(s(r).href)?"page":void 0]),f(l,p)}),i(b),i(o),f(u,o),j()}var za=m(''),Va=m(''),Ga=m('
    '),Ja=m('
    ',1);function Qa(u,a){var M,K;W(a,!0);let e=ra(!1);const d=[{id:"bust",label:"Bust",icon:"❌",color:"var(--color-error)",visible:()=>B.remainingPlayers>0},{id:"buyin",label:"Buy In",icon:"➕",color:"var(--color-success)",visible:()=>!0},{id:"rebuy",label:"Rebuy",icon:"🔄",color:"var(--color-primary)",visible:()=>B.remainingPlayers>0},{id:"addon",label:"Add-On",icon:"⬆",color:"var(--color-warning)",visible:()=>B.clock!==null},{id:"pause-resume",label:(M=B.clock)!=null&&M.is_paused?"Resume":"Pause",icon:(K=B.clock)!=null&&K.is_paused?"▶":"⏸",color:"var(--ctp-peach)",visible:()=>B.clock!==null}];function o(){U(e,!s(e))}function b(w){var A;U(e,!1),(A=a.onaction)==null||A.call(a,w)}function l(){U(e,!1)}function r(w){w.key==="Escape"&&s(e)&&U(e,!1)}var p=Ja();Pa("keydown",Aa,r);var n=V(p);{var t=w=>{var A=za();z("click",A,l),z("keydown",A,R=>R.key==="Enter"&&l()),f(w,A)};E(n,w=>{s(e)&&w(t)})}var v=h(n,2);let _;var g=c(v);{var k=w=>{var A=Ga();aa(A,21,()=>d.filter(R=>R.visible()),na,(R,L,G)=>{var P=Va(),J=c(P),ia=c(J,!0);i(J);var ea=h(J,2),ta=c(ea,!0);i(ea),i(P),O(()=>{va(P,`--action-color: ${s(L).color??""}; --action-delay: ${G*40}ms`),N(P,"aria-label",s(L).label),y(ia,s(L).icon),y(ta,s(L).label)}),z("click",P,()=>b(s(L).id)),f(R,P)}),i(A),f(w,A)};E(g,w=>{s(e)&&w(k)})}var x=h(g,2);let I;var S=c(x),T=c(S,!0);i(S),i(x),i(v),O(()=>{_=D(v,1,"fab-container svelte-6hll69",null,_,{expanded:s(e)}),I=D(x,1,"fab-main touch-target svelte-6hll69",null,I,{expanded:s(e)}),N(x,"aria-label",s(e)?"Close actions":"Open quick actions"),N(x,"aria-expanded",s(e)),y(T,s(e)?"✕":"+")}),z("click",x,o),f(u,p),j()}ca(["click","keydown"]);const Xa={success:3e3,info:4e3,warning:5e3,error:8e3};let Ya=0;var X;class Za{constructor(){sa(this,X,ra(ha([])))}get toasts(){return s(C(this,X))}set toasts(a){U(C(this,X),a,!0)}success(a,e){return this.add("success",a,e)}info(a,e){return this.add("info",a,e)}warning(a,e){return this.add("warning",a,e)}error(a,e){return this.add("error",a,e)}dismiss(a){const e=this.toasts.find(d=>d.id===a);e!=null&&e.timer&&clearTimeout(e.timer),this.toasts=this.toasts.filter(d=>d.id!==a)}dismissAll(){for(const a of this.toasts)a.timer&&clearTimeout(a.timer);this.toasts=[]}add(a,e,d){const o=`toast-${++Ya}`,b=d??Xa[a],l={id:o,type:a,message:e,duration:b,dismissible:a==="error"};return l.timer=setTimeout(()=>{this.dismiss(o)},b),this.toasts=[...this.toasts,l],o}}X=new WeakMap;const q=new Za;var Ha=m(''),ae=m('
    '),ee=m('
    ');function te(u,a){W(a,!1);function e(r){switch(r){case"success":return"var(--color-success)";case"info":return"var(--color-primary)";case"warning":return"var(--color-warning)";case"error":return"var(--color-error)";default:return"var(--color-text)"}}function d(r){switch(r){case"success":return"✓";case"info":return"ℹ";case"warning":return"⚠";case"error":return"✗";default:return""}}H();var o=la(),b=V(o);{var l=r=>{var p=ee();aa(p,5,()=>q.toasts,n=>n.id,(n,t)=>{var v=ae(),_=c(v),g=c(_,!0);i(_);var k=h(_,2),x=c(k,!0);i(k);var I=h(k,2);{var S=T=>{var M=Ha();z("click",M,()=>q.dismiss(s(t).id)),f(T,M)};E(I,T=>{s(t).dismissible&&T(S)})}i(v),O((T,M)=>{D(v,1,`toast toast-${s(t).type??""}`,"svelte-1cpok13"),va(v,`--toast-color: ${T??""}`),y(g,M),y(x,s(t).message)},[()=>e(s(t).type),()=>d(s(t).type)]),f(n,v)}),i(p),f(r,p)};E(b,r=>{q.toasts.length>0&&r(l)})}f(u,o),j()}ca(["click"]);var Y,Z;class se{constructor(){sa(this,Y,ra(ha([])));sa(this,Z,ra(null))}get tournaments(){return s(C(this,Y))}set tournaments(a){U(C(this,Y),a,!0)}get activeId(){return s(C(this,Z))}set activeId(a){U(C(this,Z),a,!0)}get isMulti(){return this.tournaments.length>=2}get activeTournament(){return this.tournaments.find(a=>a.id===this.activeId)??null}setTournaments(a){this.tournaments=a,a.length===0?this.activeId=null:a.length===1?this.activeId=a[0].id:(!this.activeId||!a.find(e=>e.id===this.activeId))&&(this.activeId=a[0].id)}switchTo(a){this.tournaments.find(e=>e.id===a)&&(this.activeId=a,B.id=a)}routeMessage(a){const e=a.tournament_id;if(a.type==="tournament.status"&&e){const d=a.data,o=this.tournaments.find(b=>b.id===e);o&&(d.name&&(o.name=d.name),d.status&&(o.status=d.status))}(!e||e===this.activeId)&&B.handleMessage(a)}reset(){this.tournaments=[],this.activeId=null}}Y=new WeakMap,Z=new WeakMap;const Q=new se;var re=m(''),ne=m('
    ');function ie(u,a){W(a,!1);function e(l){switch(l){case"active":return"var(--color-success)";case"paused":return"var(--ctp-peach)";case"break":return"var(--color-break)";case"completed":return"var(--color-text-muted)";default:return"var(--color-text-secondary)"}}H();var d=la(),o=V(d);{var b=l=>{var r=ne();aa(r,5,()=>Q.tournaments,na,(p,n)=>{var t=re();let v;var _=c(t),g=h(_,2),k=c(g,!0);i(g),i(t),O(x=>{v=D(t,1,"tournament-tab touch-target svelte-ldvvqt",null,v,{active:s(n).id===Q.activeId}),N(t,"aria-selected",s(n).id===Q.activeId),va(_,`background-color: ${x??""}`),y(k,s(n).name)},[()=>e(s(n).status)]),z("click",t,()=>Q.switchTo(s(n).id)),f(p,t)}),i(r),f(l,r)};E(o,l=>{Q.isMulti&&l(b)})}f(u,d),j()}ca(["click"]);var le=m('
    '),oe=m('

    Redirecting to login...

    '),ce=m(" ",1);function Te(u,a){W(a,!0);let e=Fa(()=>{var t;return(((t=oa.url)==null?void 0:t.pathname)??"")==="/login"});ka(()=>{!fa.isAuthenticated&&!s(e)&&Ia("/login")});function d(t){switch(t){case"bust":q.info("Bust flow: coming in Plan N");break;case"buyin":q.info("Buy-in flow: coming in Plan N");break;case"rebuy":q.info("Rebuy flow: coming in Plan N");break;case"addon":q.info("Add-on flow: coming in Plan N");break;case"pause-resume":q.info("Pause/Resume: coming in Plan N");break;default:console.warn(`Unknown FAB action: ${t}`)}}var o=ce(),b=V(o);{var l=t=>{var v=la(),_=V(v);pa(_,()=>a.children),f(t,v)},r=t=>{var v=le(),_=c(v);La(_,{});var g=h(_,2);Ka(g,{});var k=h(g,2);ie(k,{});var x=h(k,2),I=c(x);pa(I,()=>a.children),i(x);var S=h(x,2);Da(S,{});var T=h(S,2);Qa(T,{onaction:d}),i(v),f(t,v)},p=t=>{var v=oe();f(t,v)};E(b,t=>{s(e)?t(l):fa.isAuthenticated?t(r,1):t(p,!1)})}var n=h(b,2);te(n,{}),f(u,o),j()}export{Te as component,we as universal}; diff --git a/frontend/build/_app/immutable/nodes/0.CNxjQThJ.js b/frontend/build/_app/immutable/nodes/0.CNxjQThJ.js deleted file mode 100644 index a659a79..0000000 --- a/frontend/build/_app/immutable/nodes/0.CNxjQThJ.js +++ /dev/null @@ -1 +0,0 @@ -import{c as s,a as c}from"../chunks/B6M6q2Zo.js";import{b as l,E as p,v as i}from"../chunks/Ym0WvvUy.js";import{B as m}from"../chunks/Da6yQRl8.js";function u(n,r,...e){var o=new m(n);l(()=>{const t=r()??null;o.ensure(t,t&&(a=>t(a,...e)))},p)}const f=!0,_=!1,g=Object.freeze(Object.defineProperty({__proto__:null,prerender:f,ssr:_},Symbol.toStringTag,{value:"Module"}));function h(n,r){var e=s(),o=i(e);u(o,()=>r.children),c(n,e)}export{h as component,g as universal}; diff --git a/frontend/build/_app/immutable/nodes/1.CNv_pgkw.js b/frontend/build/_app/immutable/nodes/1.CNv_pgkw.js new file mode 100644 index 0000000..0a09cc4 --- /dev/null +++ b/frontend/build/_app/immutable/nodes/1.CNv_pgkw.js @@ -0,0 +1 @@ +import{a as c,f as l}from"../chunks/Q5CB4WY5.js";import{i as v}from"../chunks/BViIIwgj.js";import{p as u,f as _,t as g,a as x,c as e,r as o,s as d}from"../chunks/C4An0dnW.js";import{s as p}from"../chunks/CQQh_IlD.js";import{p as m}from"../chunks/DyXP65qD.js";var b=l("

    ",1);function y(f,i){u(i,!1),v();var t=b(),r=_(t),n=e(r,!0);o(r);var a=d(r,2),h=e(a,!0);o(a),g(()=>{var s;p(n,m.status),p(h,(s=m.error)==null?void 0:s.message)}),c(f,t),x()}export{y as component}; diff --git a/frontend/build/_app/immutable/nodes/1.DQmxvu2E.js b/frontend/build/_app/immutable/nodes/1.DQmxvu2E.js deleted file mode 100644 index 925aaef..0000000 --- a/frontend/build/_app/immutable/nodes/1.DQmxvu2E.js +++ /dev/null @@ -1 +0,0 @@ -import{a as h,f as g}from"../chunks/B6M6q2Zo.js";import{i as v}from"../chunks/De6rLmuB.js";import{u as l,v as d,A as x,w as _,y as e,z as o,x as $}from"../chunks/Ym0WvvUy.js";import{s as p}from"../chunks/dTRRgeF-.js";import{s as k,p as m}from"../chunks/giww_vF6.js";const b={get error(){return m.error},get status(){return m.status}};k.updated.check;const i=b;var w=g("

    ",1);function q(f,n){l(n,!1),v();var t=w(),r=d(t),c=e(r,!0);o(r);var s=$(r,2),u=e(s,!0);o(s),x(()=>{var a;p(c,i.status),p(u,(a=i.error)==null?void 0:a.message)}),h(f,t),_()}export{q as component}; diff --git a/frontend/build/_app/immutable/nodes/2.C9GK89sD.js b/frontend/build/_app/immutable/nodes/2.C9GK89sD.js new file mode 100644 index 0000000..cdcb057 --- /dev/null +++ b/frontend/build/_app/immutable/nodes/2.C9GK89sD.js @@ -0,0 +1 @@ +import{a as t,f as p}from"../chunks/Q5CB4WY5.js";import{i as e}from"../chunks/BViIIwgj.js";import{o as i}from"../chunks/nIaoZoCo.js";import{p as m,a as s}from"../chunks/C4An0dnW.js";import{g as f}from"../chunks/DQNCp18R.js";var n=p('

    Loading...

    ');function u(o,a){m(a,!1),i(()=>{f("/overview",{replaceState:!0})}),e();var r=n();t(o,r),s()}export{u as component}; diff --git a/frontend/build/_app/immutable/nodes/2.CwK2tdGg.js b/frontend/build/_app/immutable/nodes/2.CwK2tdGg.js deleted file mode 100644 index 026a664..0000000 --- a/frontend/build/_app/immutable/nodes/2.CwK2tdGg.js +++ /dev/null @@ -1 +0,0 @@ -import{c as u,a as e,f as p}from"../chunks/B6M6q2Zo.js";import{i as _}from"../chunks/De6rLmuB.js";import{o as d}from"../chunks/Bfwrz3i4.js";import{u as x,v as y,w as A,x as b,y as m,z as n,A as k}from"../chunks/Ym0WvvUy.js";import{s as w}from"../chunks/dTRRgeF-.js";import{i as z}from"../chunks/B9dvBo0E.js";import{a as o}from"../chunks/DMqvp7vx.js";import{g as F}from"../chunks/giww_vF6.js";var M=p('

    Felt

    Tournament management system

    '),O=p('

    Redirecting to login...

    ');function E(l,f){x(f,!1),d(()=>{o.isAuthenticated||F("/login")}),_();var s=u(),c=y(s);{var v=a=>{var t=M(),r=b(m(t),4),h=m(r);n(r),n(t),k(()=>{var i;return w(h,`Welcome, ${((i=o.operator)==null?void 0:i.name)??"Operator"??""}`)}),e(a,t)},g=a=>{var t=O();e(a,t)};z(c,a=>{o.isAuthenticated?a(v):a(g,!1)})}e(l,s),A()}export{E as component}; diff --git a/frontend/build/_app/immutable/nodes/3.BMSY6fJC.js b/frontend/build/_app/immutable/nodes/3.BMSY6fJC.js new file mode 100644 index 0000000..5ea3d6d --- /dev/null +++ b/frontend/build/_app/immutable/nodes/3.BMSY6fJC.js @@ -0,0 +1 @@ +import{a as b,f as _}from"../chunks/Q5CB4WY5.js";import{i as G}from"../chunks/BViIIwgj.js";import{p as I,a as J,s,c as a,r as e,t as K,g as c,i as M}from"../chunks/C4An0dnW.js";import{s as l}from"../chunks/CQQh_IlD.js";import{i as O}from"../chunks/D__6P984.js";import{t as P}from"../chunks/C5aWxL5p.js";var Q=_('
    Total Buy-ins
    Total Rebuys
    Total Add-ons
    Prize Pool
    House Fee
    Paid Positions
    '),U=_('

    No financial data available yet.

    '),V=_('

    Financials

    Prize pool and payout information.

    ');function ea(S,z){I(z,!1),G();var i=V(),T=s(a(i),4);{var F=t=>{const n=M(()=>P.financials);var r=Q(),v=a(r),u=s(a(v),2),q=a(u,!0);e(u),e(v);var d=s(v,2),m=s(a(d),2),A=a(m,!0);e(m),e(d);var o=s(d,2),g=s(a(o),2),B=a(g,!0);e(g),e(o);var p=s(o,2),y=s(a(p),2),H=a(y,!0);e(y),e(p);var f=s(p,2),h=s(a(f),2),N=a(h,!0);e(h),e(f);var x=s(f,2),L=s(a(x),2),R=a(L,!0);e(L),e(x),e(r),K((j,w,C,D,E)=>{l(q,j),l(A,w),l(B,C),l(H,D),l(N,E),l(R,c(n).paid_positions)},[()=>c(n).total_buyin.toLocaleString(),()=>c(n).total_rebuys.toLocaleString(),()=>c(n).total_addons.toLocaleString(),()=>c(n).prize_pool.toLocaleString(),()=>c(n).house_fee.toLocaleString()]),b(t,r)},k=t=>{var n=U();b(t,n)};O(T,t=>{P.financials?t(F):t(k,!1)})}e(i),b(S,i),J()}export{ea as component}; diff --git a/frontend/build/_app/immutable/nodes/3.BjUxkFGX.js b/frontend/build/_app/immutable/nodes/3.BjUxkFGX.js deleted file mode 100644 index 0e801bd..0000000 --- a/frontend/build/_app/immutable/nodes/3.BjUxkFGX.js +++ /dev/null @@ -1,2 +0,0 @@ -import{a as P,f as K,t as ue}from"../chunks/B6M6q2Zo.js";import{o as ke}from"../chunks/Bfwrz3i4.js";import{m as V,b as Ne,av as we,h as I,f as X,P as ze,c as Ce,g as h,r as Se,d as Ie,e as ce,i as j,j as G,am as ye,at as Me,ac as de,o as De,aw as y,n as Z,ax as He,t as Le,ay as Oe,az as Pe,as as ae,aA as Re,aB as Fe,aC as Be,Y as ve,aD as Ue,k as Ae,p as Te,aE as Q,_ as $e,aF as qe,aG as Ge,aq as Ye,l as Je,an as Ke,aH as Ve,aI as Xe,aJ as je,u as Qe,A as Y,w as We,aK as Ze,y as R,x as L,z as O,s as W,a as w}from"../chunks/Ym0WvvUy.js";import{d as er,e as rr,a as B,s as pe}from"../chunks/dTRRgeF-.js";import{i as ge}from"../chunks/B9dvBo0E.js";import{a as J}from"../chunks/DMqvp7vx.js";import{g as ee}from"../chunks/giww_vF6.js";function he(e,t){return t}function tr(e,t,r){for(var a=[],i=t.length,l,s=t.length,d=0;d{if(l){if(l.pending.delete(m),l.done.add(m),l.pending.size===0){var g=e.outrogroups;re(ae(l.done)),g.delete(l),g.size===0&&(e.outrogroups=null)}}else s-=1},!1)}if(s===0){var f=a.length===0&&r!==null;if(f){var p=r,c=p.parentNode;Ye(c),c.append(p),e.items.clear()}re(t,!f)}else l={pending:new Set(t),done:new Set},(e.outrogroups??(e.outrogroups=new Set)).add(l)}function re(e,t=!0){for(var r=0;r{var u=r();return Pe(u)?u:u==null?[]:ae(u)}),g,_=!0;function T(){n.fallback=c,ar(n,g,s,t,a),c!==null&&(g.length===0?(c.f&y)===0?Ae(c):(c.f^=y,q(c,null,s)):Te(c,()=>{c=null}))}var M=Ne(()=>{g=h(m);var u=g.length;let k=!1;if(I){var N=Se(s)===Ie;N!==(u===0)&&(s=ce(),X(s),j(!1),k=!0)}for(var b=new Set,A=De,D=Le(),E=0;El(s)):(c=Z(()=>l(_e??(_e=V()))),c.f|=y)),u>b.size&&He(),I&&u>0&&X(ce()),!_)if(D){for(const[x,C]of d)b.has(x)||A.skip_effect(C.e);A.oncommit(T),A.ondiscard(()=>{})}else T();k&&j(!0),h(m)}),n={effect:M,items:d,outrogroups:null,fallback:c};_=!1,I&&(s=G)}function U(e){for(;e!==null&&(e.f&qe)===0;)e=e.next;return e}function ar(e,t,r,a,i){var v,x,C,F,ne,ie,se,oe,le;var l=(a&Ge)!==0,s=t.length,d=e.items,f=U(e.effect.first),p,c=null,m,g=[],_=[],T,M,n,u;if(l)for(u=0;u0){var o=(a&we)!==0&&s===0?r:null;if(l){for(u=0;u{var S,fe;if(m!==void 0)for(n of m)(fe=(S=n.nodes)==null?void 0:S.a)==null||fe.apply()})}function nr(e,t,r,a,i,l,s,d){var f=(s&Re)!==0?(s&Fe)===0?Be(r,!1,!1):ve(r):null,p=(s&Ue)!==0?ve(i):null;return{v:f,i:p,e:Z(()=>(l(t,f??r,p??i,d),()=>{e.delete(a)}))}}function q(e,t,r){if(e.nodes)for(var a=e.nodes.start,i=e.nodes.end,l=t&&(t.f&y)===0?t.nodes.start:r;a!==null;){var s=Ke(a);if(l.before(a),a===i)return;a=s}}function H(e,t,r){t===null?e.effect.first=r:t.next=r,r===null?e.effect.last=t:r.prev=t}const be=[...` -\r\f \v\uFEFF`];function ir(e,t,r){var a=""+e;if(r){for(var i of Object.keys(r))if(r[i])a=a?a+" "+i:i;else if(a.length)for(var l=i.length,s=0;(s=a.indexOf(i,s))>=0;){var d=s+l;(s===0||be.includes(a[s-1]))&&(d===a.length||be.includes(a[d]))?a=(s===0?"":a.substring(0,s))+a.substring(d+1):s=d}}return a===""?null:a}function sr(e,t,r,a,i,l){var s=e.__className;if(I||s!==r||s===void 0){var d=ir(r,a,l);(!I||d!==e.getAttribute("class"))&&(d==null?e.removeAttribute("class"):e.className=d),e.__className=r}else if(l&&i!==l)for(var f in l){var p=!!l[f];(i==null||p!==!!i[f])&&e.classList.toggle(f,p)}return l}const or=Symbol("is custom element"),lr=Symbol("is html");function Ee(e,t,r,a){var i=fr(e);I&&(i[t]=e.getAttribute(t)),i[t]!==(i[t]=r)&&(r==null?e.removeAttribute(t):typeof r!="string"&&ur(e).includes(t)?e[t]=r:e.setAttribute(t,r))}function fr(e){return e.__attributes??(e.__attributes={[or]:e.nodeName.includes("-"),[lr]:e.namespaceURI===Ve})}var xe=new Map;function ur(e){var t=e.getAttribute("is")||e.nodeName,r=xe.get(t);if(r)return r;xe.set(t,r=[]);for(var a,i=e,l=Element.prototype;l!==i;){a=je(i);for(var s in a)a[s].set&&r.push(s);i=Xe(i)}return r}class te extends Error{constructor(t,r,a){const i=typeof a=="object"&&a!==null&&"error"in a?a.error:r;super(i),this.status=t,this.statusText=r,this.body=a,this.name="ApiError"}}function cr(){return`${window.location.origin}/api/v1`}function dr(e){const t={Accept:"application/json"};e&&(t["Content-Type"]="application/json");const r=J.token;return r&&(t.Authorization=`Bearer ${r}`),t}async function vr(e){if(e.status===401)throw J.logout(),await ee("/login"),new te(401,"Unauthorized",{error:"Session expired"});if(!e.ok){let t;try{t=await e.json()}catch{t={error:e.statusText}}throw new te(e.status,e.statusText,t)}if(e.status!==204)return e.json()}async function $(e,t,r){const a=`${cr()}${t}`,i={method:e,headers:dr(r!==void 0),credentials:"same-origin"};r!==void 0&&(i.body=JSON.stringify(r));const l=await fetch(a,i);return vr(l)}const pr={get(e){return $("GET",e)},post(e,t){return $("POST",e,t)},put(e,t){return $("PUT",e,t)},patch(e,t){return $("PATCH",e,t)},delete(e){return $("DELETE",e)}};var gr=K("
    "),hr=K(''),_r=K(''),mr=K('
    ');function Nr(e,t){Qe(t,!0);let r=W(""),a=W(""),i=W(!1);const l=6;ke(()=>{J.isAuthenticated&&ee("/")});function s(o){h(r).length>=l||(w(r,h(r)+o),w(a,""))}function d(){w(r,h(r).slice(0,-1),!0),w(a,"")}function f(){w(r,""),w(a,"")}async function p(){if(!(h(r).length<4||h(i))){w(i,!0),w(a,"");try{const o=await pr.post("/auth/login",{pin:h(r)});J.login(o.token,{id:o.operator.id,name:o.operator.name,role:o.operator.role}),await ee("/")}catch(o){o instanceof te?o.status===429?w(a,"Too many attempts. Please wait."):o.status===401?w(a,"Invalid PIN. Try again."):w(a,o.message,!0):w(a,"Connection error. Check your network."),w(r,"")}finally{w(i,!1)}}}function c(o){o.key>="0"&&o.key<="9"?s(o.key):o.key==="Backspace"?d():o.key==="Enter"?p():o.key==="Escape"&&f()}var m=mr();rr("keydown",Ze,c);var g=R(m),_=L(R(g),2);me(_,21,()=>Array(l),he,(o,v,x)=>{var C=gr();let F;Y(()=>F=sr(C,1,"pin-dot svelte-1x05zx6",null,F,{filled:x{var v=hr(),x=R(v,!0);O(v),Y(()=>pe(x,h(a))),P(o,v)};ge(T,o=>{h(a)&&o(M)})}var n=L(T,2),u=R(n);me(u,16,()=>["1","2","3","4","5","6","7","8","9"],he,(o,v)=>{var x=_r(),C=R(x,!0);O(x),Y(()=>{x.disabled=h(i)||h(r).length>=l,Ee(x,"aria-label",`Digit ${v??""}`),pe(C,v)}),B("click",x,()=>s(v)),P(o,x)});var k=L(u,2),N=L(k,2),b=L(N,2);O(n);var A=L(n,2),D=R(A);{var E=o=>{var v=ue("Signing in...");P(o,v)},z=o=>{var v=ue("Sign In");P(o,v)};ge(D,o=>{h(i)?o(E):o(z,!1)})}O(A),O(g),O(m),Y(()=>{Ee(_,"aria-label",`PIN entered: ${h(r).length??""} digits`),k.disabled=h(i),N.disabled=h(i)||h(r).length>=l,b.disabled=h(i)||h(r).length===0,A.disabled=h(r).length<4||h(i)}),B("click",k,f),B("click",N,()=>s("0")),B("click",b,d),B("click",A,p),P(e,m),We()}er(["click"]);export{Nr as component}; diff --git a/frontend/build/_app/immutable/nodes/4.Ct0ahWmg.js b/frontend/build/_app/immutable/nodes/4.Ct0ahWmg.js new file mode 100644 index 0000000..58316ff --- /dev/null +++ b/frontend/build/_app/immutable/nodes/4.Ct0ahWmg.js @@ -0,0 +1 @@ +import{a as f,f as y,t as M}from"../chunks/Q5CB4WY5.js";import{o as V}from"../chunks/nIaoZoCo.js";import{p as W,t as _,a as Y,a0 as Z,c as p,s as u,r as d,g as r,b as A,d as o}from"../chunks/C4An0dnW.js";import{d as tt,e as et,a as g,s as U}from"../chunks/CQQh_IlD.js";import{i as G}from"../chunks/D__6P984.js";import{e as O,i as R,s as q,a as at}from"../chunks/BeLKMLqR.js";import{a as k}from"../chunks/D3f6eoxz.js";import{g as D}from"../chunks/DQNCp18R.js";class C extends Error{constructor(s,a,i){const n=typeof i=="object"&&i!==null&&"error"in i?i.error:a;super(n),this.status=s,this.statusText=a,this.body=i,this.name="ApiError"}}function rt(){return`${window.location.origin}/api/v1`}function st(e){const s={Accept:"application/json"};e&&(s["Content-Type"]="application/json");const a=k.token;return a&&(s.Authorization=`Bearer ${a}`),s}async function it(e){if(e.status===401)throw k.logout(),await D("/login"),new C(401,"Unauthorized",{error:"Session expired"});if(!e.ok){let s;try{s=await e.json()}catch{s={error:e.statusText}}throw new C(e.status,e.statusText,s)}if(e.status!==204)return e.json()}async function m(e,s,a){const i=`${rt()}${s}`,n={method:e,headers:st(a!==void 0),credentials:"same-origin"};a!==void 0&&(n.body=JSON.stringify(a));const v=await fetch(i,n);return it(v)}const nt={get(e){return m("GET",e)},post(e,s){return m("POST",e,s)},put(e,s){return m("PUT",e,s)},patch(e,s){return m("PATCH",e,s)},delete(e){return m("DELETE",e)}};var ot=y("
    "),lt=y(''),ct=y(''),ut=y('
    ');function bt(e,s){W(s,!0);let a=A(""),i=A(""),n=A(!1);const v=6;V(()=>{k.isAuthenticated&&D("/")});function w(t){r(a).length>=v||(o(a,r(a)+t),o(i,""))}function I(){o(a,r(a).slice(0,-1),!0),o(i,"")}function N(){o(a,""),o(i,"")}async function j(){if(!(r(a).length<4||r(n))){o(n,!0),o(i,"");try{const t=await nt.post("/auth/login",{pin:r(a)});k.login(t.token,{id:t.operator.id,name:t.operator.name,role:t.operator.role}),await D("/")}catch(t){t instanceof C?t.status===429?o(i,"Too many attempts. Please wait."):t.status===401?o(i,"Invalid PIN. Try again."):o(i,t.message,!0):o(i,"Connection error. Check your network."),o(a,"")}finally{o(n,!1)}}}function F(t){t.key>="0"&&t.key<="9"?w(t.key):t.key==="Backspace"?I():t.key==="Enter"?j():t.key==="Escape"&&N()}var z=ut();et("keydown",Z,F);var S=p(z),x=u(p(S),2);O(x,21,()=>Array(v),R,(t,l,c)=>{var b=ot();let H;_(()=>H=at(b,1,"pin-dot svelte-1x05zx6",null,H,{filled:c{var l=lt(),c=p(l,!0);d(l),_(()=>U(c,r(i))),f(t,l)};G($,t=>{r(i)&&t(J)})}var T=u($,2),L=p(T);O(L,16,()=>["1","2","3","4","5","6","7","8","9"],R,(t,l)=>{var c=ct(),b=p(c,!0);d(c),_(()=>{c.disabled=r(n)||r(a).length>=v,q(c,"aria-label",`Digit ${l??""}`),U(b,l)}),g("click",c,()=>w(l)),f(t,c)});var E=u(L,2),P=u(E,2),B=u(P,2);d(T);var h=u(T,2),K=p(h);{var X=t=>{var l=M("Signing in...");f(t,l)},Q=t=>{var l=M("Sign In");f(t,l)};G(K,t=>{r(n)?t(X):t(Q,!1)})}d(h),d(S),d(z),_(()=>{q(x,"aria-label",`PIN entered: ${r(a).length??""} digits`),E.disabled=r(n),P.disabled=r(n)||r(a).length>=v,B.disabled=r(n)||r(a).length===0,h.disabled=r(a).length<4||r(n)}),g("click",E,N),g("click",P,()=>w("0")),g("click",B,I),g("click",h,j),f(e,z),Y()}tt(["click"]);export{bt as component}; diff --git a/frontend/build/_app/immutable/nodes/5.CrKjY73y.js b/frontend/build/_app/immutable/nodes/5.CrKjY73y.js new file mode 100644 index 0000000..8c89c5c --- /dev/null +++ b/frontend/build/_app/immutable/nodes/5.CrKjY73y.js @@ -0,0 +1 @@ +import{a as _,f as b}from"../chunks/Q5CB4WY5.js";import{i as x}from"../chunks/BViIIwgj.js";import{p as k,t as w,a as O,s as e,c as a,r as t}from"../chunks/C4An0dnW.js";import{d as S,a as U,s as m}from"../chunks/CQQh_IlD.js";import{a as o}from"../chunks/D3f6eoxz.js";import{g as y}from"../chunks/DQNCp18R.js";var L=b('

    More

    Settings and additional options.

    ');function C(c,d){k(d,!1);function h(){o.logout(),y("/login")}x();var s=L(),r=e(a(s),4),n=a(r),i=e(a(n),2),g=a(i,!0);t(i),t(n);var l=e(n,2),u=e(a(l),2),f=a(u,!0);t(u),t(l);var q=e(l,4);t(r),t(s),w(()=>{var v,p;m(g,((v=o.operator)==null?void 0:v.name)??"Unknown"),m(f,((p=o.operator)==null?void 0:p.role)??"Unknown")}),U("click",q,h),_(c,s),O()}S(["click"]);export{C as component}; diff --git a/frontend/build/_app/immutable/nodes/6.CMmeTvWv.js b/frontend/build/_app/immutable/nodes/6.CMmeTvWv.js new file mode 100644 index 0000000..5735595 --- /dev/null +++ b/frontend/build/_app/immutable/nodes/6.CMmeTvWv.js @@ -0,0 +1 @@ +import{a as c,f as d}from"../chunks/Q5CB4WY5.js";import{i as N}from"../chunks/BViIIwgj.js";import{p as $,a as j,s as a,c as s,r as e,t as B}from"../chunks/C4An0dnW.js";import{s as r}from"../chunks/CQQh_IlD.js";import{i as L}from"../chunks/D__6P984.js";import{t}from"../chunks/C5aWxL5p.js";var O=d('
    Players
    Tables
    Level
    Blinds
    '),S=d('

    No active tournament. Start or join a tournament to see the overview.

    '),z=d('

    Overview

    Tournament dashboard — detailed views coming in Plan N.

    ');function H(f,u){$(u,!1),N();var i=z(),h=a(s(i),4);{var x=l=>{var v=O(),n=s(v),m=a(s(n),2),y=s(m);e(m),e(n);var o=a(n,2),g=a(s(o),2),P=s(g,!0);e(g),e(o);var p=a(o,2),_=a(s(p),2),w=s(_,!0);e(_),e(p);var q=a(p,2),b=a(s(q),2),T=s(b);e(b),e(q),e(v),B(()=>{r(y,`${t.remainingPlayers??""}/${t.totalPlayers??""}`),r(P,t.activeTables),r(w,t.clock.level),r(T,`${t.clock.small_blind??""}/${t.clock.big_blind??""}`)}),c(l,v)},k=l=>{var v=S();c(l,v)};L(h,l=>{t.clock?l(x):l(k,!1)})}e(i),c(f,i),j()}export{H as component}; diff --git a/frontend/build/_app/immutable/nodes/7.0Z-UCw0W.js b/frontend/build/_app/immutable/nodes/7.0Z-UCw0W.js new file mode 100644 index 0000000..7e9a49e --- /dev/null +++ b/frontend/build/_app/immutable/nodes/7.0Z-UCw0W.js @@ -0,0 +1 @@ +import{a as o,f as i}from"../chunks/Q5CB4WY5.js";import{i as n}from"../chunks/BViIIwgj.js";import{p as b,a as p,s as u,c,r as d}from"../chunks/C4An0dnW.js";import{t as m}from"../chunks/C5aWxL5p.js";import{D as y}from"../chunks/WPMya0VZ.js";var h=i('

    Players

    Registered players and chip counts.

    ');function x(a,t){b(t,!1);const s=[{key:"name",label:"Name",sortable:!0},{key:"status",label:"Status",sortable:!0},{key:"chips",label:"Chips",sortable:!0,align:"right",render:r=>r.chips.toLocaleString()},{key:"table_id",label:"Table",hideMobile:!0,sortable:!0},{key:"seat",label:"Seat",hideMobile:!0,sortable:!0,align:"center"},{key:"rebuys",label:"Rebuys",hideMobile:!0,sortable:!0,align:"center"}];n();var e=h(),l=u(c(e),4);y(l,{get columns(){return s},get data(){return m.players},sortable:!0,searchable:!0,loading:!1,emptyMessage:"No players registered yet",rowKey:r=>String(r.id),swipeActions:[{id:"bust",label:"Bust",color:"var(--color-error)",handler:()=>{}},{id:"rebuy",label:"Rebuy",color:"var(--color-primary)",handler:()=>{}}]}),d(e),o(a,e),p()}export{x as component}; diff --git a/frontend/build/_app/immutable/nodes/8.fn5hverG.js b/frontend/build/_app/immutable/nodes/8.fn5hverG.js new file mode 100644 index 0000000..60005ad --- /dev/null +++ b/frontend/build/_app/immutable/nodes/8.fn5hverG.js @@ -0,0 +1 @@ +import{a as o,f as i}from"../chunks/Q5CB4WY5.js";import{p as b,a as p,g as c,x as u,s as d,c as m,r as g}from"../chunks/C4An0dnW.js";import{t as f}from"../chunks/C5aWxL5p.js";import{D as y}from"../chunks/WPMya0VZ.js";var v=i('

    Tables

    Active tables and seating.

    ');function D(t,s){b(s,!0);const l=[{key:"number",label:"Table #",sortable:!0,align:"center"},{key:"seats",label:"Seats",sortable:!0,align:"center"},{key:"player_count",label:"Players",sortable:!0,align:"center"},{key:"is_final_table",label:"Final",hideMobile:!0,sortable:!0,align:"center",render:e=>e.is_final_table?"Yes":""}];let r=u(()=>f.tables.map(e=>({...e,player_count:e.players.length})));var a=v(),n=d(m(a),4);y(n,{get columns(){return l},get data(){return c(r)},sortable:!0,searchable:!1,loading:!1,emptyMessage:"No tables set up yet",rowKey:e=>String(e.id)}),g(a),o(t,a),p()}export{D as component}; diff --git a/frontend/build/_app/version.json b/frontend/build/_app/version.json index f2bd3d6..5314144 100644 --- a/frontend/build/_app/version.json +++ b/frontend/build/_app/version.json @@ -1 +1 @@ -{"version":"1772333625386"} \ No newline at end of file +{"version":"1772334772507"} \ No newline at end of file diff --git a/frontend/build/financials.html b/frontend/build/financials.html new file mode 100644 index 0000000..6f11e5f --- /dev/null +++ b/frontend/build/financials.html @@ -0,0 +1,39 @@ + + + + + + + Felt + + + + + + + + + + + + +
    + +
    + + diff --git a/frontend/build/index.html b/frontend/build/index.html index d8ab952..c35ea97 100644 --- a/frontend/build/index.html +++ b/frontend/build/index.html @@ -5,30 +5,30 @@ Felt - - - - - - - - - + + + + + + + + +
    +
    + + diff --git a/frontend/build/overview.html b/frontend/build/overview.html new file mode 100644 index 0000000..6f11e5f --- /dev/null +++ b/frontend/build/overview.html @@ -0,0 +1,39 @@ + + + + + + + Felt + + + + + + + + + + + + +
    + +
    + + diff --git a/frontend/build/players.html b/frontend/build/players.html new file mode 100644 index 0000000..6f11e5f --- /dev/null +++ b/frontend/build/players.html @@ -0,0 +1,39 @@ + + + + + + + Felt + + + + + + + + + + + + +
    + +
    + + diff --git a/frontend/build/tables.html b/frontend/build/tables.html new file mode 100644 index 0000000..6f11e5f --- /dev/null +++ b/frontend/build/tables.html @@ -0,0 +1,39 @@ + + + + + + + Felt + + + + + + + + + + + + +
    + +
    + + diff --git a/frontend/src/lib/components/BottomTabs.svelte b/frontend/src/lib/components/BottomTabs.svelte new file mode 100644 index 0000000..0b120a7 --- /dev/null +++ b/frontend/src/lib/components/BottomTabs.svelte @@ -0,0 +1,108 @@ + + +
    + {#each tabs as tab} + + + {tab.label} + + {/each} +
    + + diff --git a/frontend/src/lib/components/DataTable.svelte b/frontend/src/lib/components/DataTable.svelte new file mode 100644 index 0000000..d51cc04 --- /dev/null +++ b/frontend/src/lib/components/DataTable.svelte @@ -0,0 +1,466 @@ + + +
    + + {#if searchable} + + {/if} + + +
    + + + + {#each columns as col} + + {/each} + + + + {#if loading} + + {#each Array(5) as _} + + {#each columns as col} + + {/each} + + {/each} + {:else if processedData.length === 0} + + + + + {:else} + + {#each processedData as item (rowKey(item))} + {@const id = rowKey(item)} + onrowclick?.(item)} + onkeydown={(e) => e.key === 'Enter' && onrowclick?.(item)} + ontouchstart={(e) => handleTouchStart(e, id)} + ontouchmove={handleTouchMove} + ontouchend={() => handleTouchEnd(id)} + role={onrowclick ? 'button' : undefined} + tabindex={onrowclick ? 0 : undefined} + > + {#each columns as col} + + {/each} + + + {#if swipedRowId === id && swipeActions.length > 0} + + + + {/if} + {/each} + {/if} + +
    { + if (sortable && col.sortable !== false) toggleSort(col.key); + }} + aria-sort={sortKey === col.key ? sortDir === 'asc' ? 'ascending' : 'descending' : undefined} + > + + {col.label} + {#if sortable && col.sortable !== false} + + {#if sortKey === col.key} + {sortDir === 'asc' ? '\u25B2' : '\u25BC'} + {:else} + \u25B4 + {/if} + + {/if} + +
    +
    +
    + {emptyMessage} +
    + {getCellValue(item, col)} +
    +
    + {#each swipeActions as action} + + {/each} +
    +
    +
    +
    + + diff --git a/frontend/src/lib/components/FAB.svelte b/frontend/src/lib/components/FAB.svelte new file mode 100644 index 0000000..92dd942 --- /dev/null +++ b/frontend/src/lib/components/FAB.svelte @@ -0,0 +1,257 @@ + + + + +{#if expanded} + +
    e.key === 'Enter' && handleBackdrop()} + role="presentation" + >
    +{/if} + +
    + + {#if expanded} +
    + {#each actions.filter((a) => a.visible()) as action, i} + + {/each} +
    + {/if} + + + +
    + + diff --git a/frontend/src/lib/components/Header.svelte b/frontend/src/lib/components/Header.svelte new file mode 100644 index 0000000..7db74a7 --- /dev/null +++ b/frontend/src/lib/components/Header.svelte @@ -0,0 +1,258 @@ + + +
    +
    + {#if tournament.clock} + {@const clock = tournament.clock} + {@const isUrgent = clock.remaining_seconds <= 10 && !clock.is_break && !clock.is_paused} + + +
    + {#if clock.is_paused} + PAUSED + {:else if clock.is_break} + BREAK + {/if} + {formatTime(clock.remaining_seconds)} +
    + + +
    + L{clock.level} + {clock.name} +
    + + +
    + Blinds + {formatBlinds(clock.small_blind, clock.big_blind)} + {#if clock.ante > 0} + Ante {clock.ante.toLocaleString()} + {/if} +
    + + +
    + {tournament.remainingPlayers}/{tournament.totalPlayers} + remaining +
    + {:else} + +
    + Felt + No active tournament +
    + {/if} +
    +
    + + diff --git a/frontend/src/lib/components/Loading.svelte b/frontend/src/lib/components/Loading.svelte new file mode 100644 index 0000000..61ce7c8 --- /dev/null +++ b/frontend/src/lib/components/Loading.svelte @@ -0,0 +1,145 @@ + + +{#if variant === 'full-page'} +
    +
    + {#if text} +

    {text}

    + {/if} +
    +{:else if variant === 'skeleton'} +
    + {#each Array(rows) as _} +
    +
    +
    +
    +
    + {/each} + Loading... +
    +{:else} + + Loading... + +{/if} + + diff --git a/frontend/src/lib/components/Sidebar.svelte b/frontend/src/lib/components/Sidebar.svelte new file mode 100644 index 0000000..6b4ae46 --- /dev/null +++ b/frontend/src/lib/components/Sidebar.svelte @@ -0,0 +1,135 @@ + + + + + diff --git a/frontend/src/lib/components/Toast.svelte b/frontend/src/lib/components/Toast.svelte new file mode 100644 index 0000000..7c8abb2 --- /dev/null +++ b/frontend/src/lib/components/Toast.svelte @@ -0,0 +1,156 @@ + + +{#if toast.toasts.length > 0} +
    + {#each toast.toasts as t (t.id)} + + {/each} +
    +{/if} + + diff --git a/frontend/src/lib/components/TournamentTabs.svelte b/frontend/src/lib/components/TournamentTabs.svelte new file mode 100644 index 0000000..498ba9f --- /dev/null +++ b/frontend/src/lib/components/TournamentTabs.svelte @@ -0,0 +1,110 @@ + + +{#if multiTournament.isMulti} +
    + {#each multiTournament.tournaments as t} + + {/each} +
    +{/if} + + diff --git a/frontend/src/lib/stores/multi-tournament.svelte.ts b/frontend/src/lib/stores/multi-tournament.svelte.ts new file mode 100644 index 0000000..8a5a569 --- /dev/null +++ b/frontend/src/lib/stores/multi-tournament.svelte.ts @@ -0,0 +1,89 @@ +/** + * Multi-tournament state for managing multiple active tournaments. + * + * Keeps all active tournament states in memory keyed by tournament ID + * for fast switching. WebSocket subscribes to all active tournaments; + * messages route to the correct state by tournament ID. + */ + +import { tournament, type WSMessage } from './tournament.svelte'; + +export interface TournamentInfo { + id: string; + name: string; + status: 'active' | 'paused' | 'break' | 'completed'; +} + +class MultiTournamentState { + /** List of active tournaments. */ + tournaments = $state([]); + + /** Currently selected tournament ID. */ + activeId = $state(null); + + /** Whether multi-tournament mode is active (2+ tournaments). */ + get isMulti(): boolean { + return this.tournaments.length >= 2; + } + + /** The currently active tournament info. */ + get activeTournament(): TournamentInfo | null { + return this.tournaments.find((t) => t.id === this.activeId) ?? null; + } + + /** + * Set the list of active tournaments. + * If only one, auto-select it. If current selection is gone, select first. + */ + setTournaments(list: TournamentInfo[]): void { + this.tournaments = list; + + if (list.length === 0) { + this.activeId = null; + } else if (list.length === 1) { + this.activeId = list[0].id; + } else if (!this.activeId || !list.find((t) => t.id === this.activeId)) { + this.activeId = list[0].id; + } + } + + /** Switch to a different tournament. */ + switchTo(tournamentId: string): void { + if (this.tournaments.find((t) => t.id === tournamentId)) { + this.activeId = tournamentId; + tournament.id = tournamentId; + } + } + + /** + * Route a WebSocket message to the correct tournament state. + * Only updates the singleton state if the message is for the active tournament. + */ + routeMessage(msg: WSMessage): void { + const targetId = msg.tournament_id; + + // Update tournament info from status messages + if (msg.type === 'tournament.status' && targetId) { + const data = msg.data as { name?: string; status?: string }; + const existing = this.tournaments.find((t) => t.id === targetId); + if (existing) { + if (data.name) existing.name = data.name; + if (data.status) existing.status = data.status as TournamentInfo['status']; + } + } + + // Route to singleton state only if it's for the active tournament + if (!targetId || targetId === this.activeId) { + tournament.handleMessage(msg); + } + } + + /** Reset state. */ + reset(): void { + this.tournaments = []; + this.activeId = null; + } +} + +/** Singleton multi-tournament state. */ +export const multiTournament = new MultiTournamentState(); diff --git a/frontend/src/lib/stores/toast.svelte.ts b/frontend/src/lib/stores/toast.svelte.ts new file mode 100644 index 0000000..a661e1c --- /dev/null +++ b/frontend/src/lib/stores/toast.svelte.ts @@ -0,0 +1,92 @@ +/** + * Toast notification state using Svelte 5 runes. + * + * Provides success/info/warning/error notifications with auto-dismiss. + * Toasts stack vertically and animate in/out. + */ + +export type ToastType = 'success' | 'info' | 'warning' | 'error'; + +export interface Toast { + id: string; + type: ToastType; + message: string; + duration: number; + dismissible: boolean; + timer?: ReturnType; +} + +/** Default auto-dismiss durations by type (milliseconds). */ +const DEFAULT_DURATIONS: Record = { + success: 3000, + info: 4000, + warning: 5000, + error: 8000 +}; + +let nextId = 0; + +class ToastState { + toasts = $state([]); + + /** Add a success toast (green, 3s auto-dismiss). */ + success(message: string, duration?: number): string { + return this.add('success', message, duration); + } + + /** Add an info toast (blue, 4s auto-dismiss). */ + info(message: string, duration?: number): string { + return this.add('info', message, duration); + } + + /** Add a warning toast (yellow, 5s auto-dismiss). */ + warning(message: string, duration?: number): string { + return this.add('warning', message, duration); + } + + /** Add an error toast (red, 8s auto-dismiss). */ + error(message: string, duration?: number): string { + return this.add('error', message, duration); + } + + /** Dismiss a toast by ID. */ + dismiss(id: string): void { + const toast = this.toasts.find((t) => t.id === id); + if (toast?.timer) { + clearTimeout(toast.timer); + } + this.toasts = this.toasts.filter((t) => t.id !== id); + } + + /** Dismiss all toasts. */ + dismissAll(): void { + for (const t of this.toasts) { + if (t.timer) clearTimeout(t.timer); + } + this.toasts = []; + } + + private add(type: ToastType, message: string, duration?: number): string { + const id = `toast-${++nextId}`; + const dur = duration ?? DEFAULT_DURATIONS[type]; + + const toast: Toast = { + id, + type, + message, + duration: dur, + dismissible: type === 'error' + }; + + // Auto-dismiss after duration + toast.timer = setTimeout(() => { + this.dismiss(id); + }, dur); + + this.toasts = [...this.toasts, toast]; + return id; + } +} + +/** Singleton toast state instance. */ +export const toast = new ToastState(); diff --git a/frontend/src/routes/+layout.svelte b/frontend/src/routes/+layout.svelte index b93e9ba..52b7c77 100644 --- a/frontend/src/routes/+layout.svelte +++ b/frontend/src/routes/+layout.svelte @@ -1,7 +1,110 @@ -{@render children()} +{#if isLoginPage} + + {@render children()} +{:else if auth.isAuthenticated} + +
    +
    + + + +
    + {@render children()} +
    + + + +
    +{:else} + +
    +

    Redirecting to login...

    +
    +{/if} + + + + + diff --git a/frontend/src/routes/+page.svelte b/frontend/src/routes/+page.svelte index 50067a9..102fa6c 100644 --- a/frontend/src/routes/+page.svelte +++ b/frontend/src/routes/+page.svelte @@ -1,45 +1,26 @@ -{#if auth.isAuthenticated} -
    -

    Felt

    -

    Tournament management system

    -

    Welcome, {auth.operator?.name ?? 'Operator'}

    -
    -{:else} -
    -

    Redirecting to login...

    -
    -{/if} +
    +

    Loading...

    +
    diff --git a/frontend/src/routes/financials/+page.svelte b/frontend/src/routes/financials/+page.svelte new file mode 100644 index 0000000..b819616 --- /dev/null +++ b/frontend/src/routes/financials/+page.svelte @@ -0,0 +1,109 @@ + + +
    +

    Financials

    +

    Prize pool and payout information.

    + + {#if tournament.financials} + {@const fin = tournament.financials} +
    +
    + Total Buy-ins + {fin.total_buyin.toLocaleString()} +
    +
    + Total Rebuys + {fin.total_rebuys.toLocaleString()} +
    +
    + Total Add-ons + {fin.total_addons.toLocaleString()} +
    +
    + Prize Pool + {fin.prize_pool.toLocaleString()} +
    +
    + House Fee + {fin.house_fee.toLocaleString()} +
    +
    + Paid Positions + {fin.paid_positions} +
    +
    + {:else} +

    No financial data available yet.

    + {/if} +
    + + diff --git a/frontend/src/routes/more/+page.svelte b/frontend/src/routes/more/+page.svelte new file mode 100644 index 0000000..b9c8506 --- /dev/null +++ b/frontend/src/routes/more/+page.svelte @@ -0,0 +1,107 @@ + + +
    +

    More

    +

    Settings and additional options.

    + + +
    + + diff --git a/frontend/src/routes/overview/+page.svelte b/frontend/src/routes/overview/+page.svelte new file mode 100644 index 0000000..3fee3f4 --- /dev/null +++ b/frontend/src/routes/overview/+page.svelte @@ -0,0 +1,92 @@ + + +
    +

    Overview

    +

    Tournament dashboard — detailed views coming in Plan N.

    + + {#if tournament.clock} +
    +
    + Players + {tournament.remainingPlayers}/{tournament.totalPlayers} +
    +
    + Tables + {tournament.activeTables} +
    +
    + Level + {tournament.clock.level} +
    +
    + Blinds + {tournament.clock.small_blind}/{tournament.clock.big_blind} +
    +
    + {:else} +

    No active tournament. Start or join a tournament to see the overview.

    + {/if} +
    + + diff --git a/frontend/src/routes/players/+page.svelte b/frontend/src/routes/players/+page.svelte new file mode 100644 index 0000000..325bd16 --- /dev/null +++ b/frontend/src/routes/players/+page.svelte @@ -0,0 +1,51 @@ + + +
    +

    Players

    +

    Registered players and chip counts.

    + + String(item['id'])} + swipeActions={[ + { id: 'bust', label: 'Bust', color: 'var(--color-error)', handler: () => {} }, + { id: 'rebuy', label: 'Rebuy', color: 'var(--color-primary)', handler: () => {} } + ]} + /> +
    + + diff --git a/frontend/src/routes/tables/+page.svelte b/frontend/src/routes/tables/+page.svelte new file mode 100644 index 0000000..55e8f9b --- /dev/null +++ b/frontend/src/routes/tables/+page.svelte @@ -0,0 +1,52 @@ + + +
    +

    Tables

    +

    Active tables and seating.

    + + String(item['id'])} + /> +
    + +