gukebox 1.5.0.dev5__tar.gz → 1.7.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/PKG-INFO +13 -1
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/README.md +12 -0
- gukebox-1.7.0/jukebox/adapters/inbound/admin/static/assets/index-C7hT6tbu.css +1 -0
- gukebox-1.7.0/jukebox/adapters/inbound/admin/static/assets/index-Cr5mFgv5.js +4 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/static/index.html +2 -2
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/pyproject.toml +1 -1
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/pyproject.toml.orig +1 -1
- gukebox-1.5.0.dev5/jukebox/adapters/inbound/admin/static/assets/index-BO2APuhR.css +0 -1
- gukebox-1.5.0.dev5/jukebox/adapters/inbound/admin/static/assets/index-CMsFPWoj.js +0 -3
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/LICENSE +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/api/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/api/current_tag_router.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/api/discs_router.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/api/models.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/api/settings_router.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/api_controller.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/cli_controller.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/cli_display.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/interactive_cli_controller.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/static/favicon.svg +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/ui_controller.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/ui_pages/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/ui_pages/library.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/ui_pages/settings.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/ui_pages/sonos.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/cli_controller.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/outbound/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/outbound/json_library_adapter.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/outbound/players/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/outbound/players/dryrun_player_adapter.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/outbound/players/sonos_player_adapter.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/outbound/readers/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/outbound/readers/dryrun_reader_adapter.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/outbound/readers/pn532_reader_adapter.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/outbound/sonos_discovery_adapter.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/outbound/text_current_tag_adapter.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/admin/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/admin/app.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/admin/cli_presentation.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/admin/command_handlers.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/admin/commands.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/admin/di_container.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/admin/library_command_handlers.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/admin/library_commands.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/admin/pn532_command_handlers.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/admin/pn532_commands.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/admin/services.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/admin/sonos_households.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/app.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/di_container.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/entities/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/entities/current_tag_state.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/entities/current_tag_status.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/entities/disc.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/entities/library.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/entities/playback_state.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/entities/tag_event.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/errors.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/ports/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/ports/player_port.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/ports/reader_port.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/repositories/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/repositories/current_tag_repository.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/repositories/library_repository.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/use_cases/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/use_cases/handle_tag_event.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/use_cases/library/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/use_cases/library/add_disc.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/use_cases/library/edit_disc.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/use_cases/library/get_current_tag_status.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/use_cases/library/get_disc.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/use_cases/library/list_discs.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/use_cases/library/remove_disc.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/use_cases/library/resolve_tag_id.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/use_cases/library/search_discs.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/use_cases/sync_current_tag.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/use_cases/transition_current_tag.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/use_cases/transition_playback.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/pn532/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/pn532/profiles.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/settings/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/settings/definitions.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/settings/dict_utils.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/settings/entities.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/settings/errors.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/settings/file_settings_repository.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/settings/migration.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/settings/repositories.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/settings/resolve.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/settings/runtime_resolver.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/settings/runtime_validation.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/settings/selected_sonos_group_repository.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/settings/service_protocols.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/settings/timing_validation.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/settings/types.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/settings/validation_rules.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/settings/view_utils.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/shared/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/shared/config_utils.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/shared/errors.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/shared/logger.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/shared/terminal_ui.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/shared/timing.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/sonos/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/sonos/discovery.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/sonos/selection.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/sonos/service.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/pn532/__init__.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/pn532/pn532.py +0 -0
- {gukebox-1.5.0.dev5 → gukebox-1.7.0}/pn532/spi.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: gukebox
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.7.0
|
|
4
4
|
Summary: A Jukebox to play music on speakers using 'CD' with NFC tag
|
|
5
5
|
Keywords: jukebox,music,nfc
|
|
6
6
|
Author: Gudsfile
|
|
@@ -240,6 +240,9 @@ uv run --extra api jukebox-admin api
|
|
|
240
240
|
uv run --extra ui jukebox-admin ui
|
|
241
241
|
```
|
|
242
242
|
|
|
243
|
+
> [!NOTE]
|
|
244
|
+
> The admin UI is being migrated from FastUI to a Svelte SPA (see `admin-ui/`). Both currently coexist within the `jukebox-admin ui` process: FastUI serves `/`, while the new SPA is mounted at `/ui`.
|
|
245
|
+
|
|
243
246
|
#### `library`
|
|
244
247
|
|
|
245
248
|
The `library` command lets you manage the library through a CLI or an interactive CLI:
|
|
@@ -367,6 +370,15 @@ uv run --extra ui jukebox-admin ui
|
|
|
367
370
|
| `uv run ruff check --fix` | Fix the code. |
|
|
368
371
|
| `uv run pytest` | Run the tests. |
|
|
369
372
|
|
|
373
|
+
The new admin UI, a Svelte + Vite SPA, lives in `admin-ui/` (see `admin-ui/README.md`):
|
|
374
|
+
```shell
|
|
375
|
+
cd admin-ui
|
|
376
|
+
npm install
|
|
377
|
+
npm run dev # dev server
|
|
378
|
+
npm run build # static bundle for packaging into the Python app
|
|
379
|
+
npm test # vitest
|
|
380
|
+
```
|
|
381
|
+
|
|
370
382
|
### Pre-commit
|
|
371
383
|
|
|
372
384
|
[prek](https://github.com/j178/prek) is configured; you can [install it](https://github.com/j178/prek?tab=readme-ov-file#installation) to automatically run validations on each commit.
|
|
@@ -187,6 +187,9 @@ uv run --extra api jukebox-admin api
|
|
|
187
187
|
uv run --extra ui jukebox-admin ui
|
|
188
188
|
```
|
|
189
189
|
|
|
190
|
+
> [!NOTE]
|
|
191
|
+
> The admin UI is being migrated from FastUI to a Svelte SPA (see `admin-ui/`). Both currently coexist within the `jukebox-admin ui` process: FastUI serves `/`, while the new SPA is mounted at `/ui`.
|
|
192
|
+
|
|
190
193
|
#### `library`
|
|
191
194
|
|
|
192
195
|
The `library` command lets you manage the library through a CLI or an interactive CLI:
|
|
@@ -314,6 +317,15 @@ uv run --extra ui jukebox-admin ui
|
|
|
314
317
|
| `uv run ruff check --fix` | Fix the code. |
|
|
315
318
|
| `uv run pytest` | Run the tests. |
|
|
316
319
|
|
|
320
|
+
The new admin UI, a Svelte + Vite SPA, lives in `admin-ui/` (see `admin-ui/README.md`):
|
|
321
|
+
```shell
|
|
322
|
+
cd admin-ui
|
|
323
|
+
npm install
|
|
324
|
+
npm run dev # dev server
|
|
325
|
+
npm run build # static bundle for packaging into the Python app
|
|
326
|
+
npm test # vitest
|
|
327
|
+
```
|
|
328
|
+
|
|
317
329
|
### Pre-commit
|
|
318
330
|
|
|
319
331
|
[prek](https://github.com/j178/prek) is configured; you can [install it](https://github.com/j178/prek?tab=readme-ov-file#installation) to automatically run validations on each commit.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
:root{--text:#6b6153;--text-h:#1e1912;--bg:#fbf6ec;--border:#e4dcc9;--accent:#a6690e;--accent-bg:#a6690e1a;--danger:#a83324;--state-known:#1f8f80;--state-known-bg:#1f8f801f;--state-unknown:#93307d;--state-unknown-bg:#93307d1f;--success:#1f8f80;--success-text:#fbf6ec;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font:16px/145% var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#a79e8e;--text-h:#f2ece1;--bg:#17140f;--border:#3a3327;--accent:#e8a33d;--accent-bg:#e8a33d26;--danger:#c4432e;--state-known:#2fb8a6;--state-known-bg:#2fb8a626;--state-unknown:#b3489a;--state-unknown-bg:#b3489a26;--success:#2fb8a6;--success-text:#17140f}}html,body{height:100%;margin:0}#app{flex-direction:column;min-height:100%;display:flex}h1,h2{color:var(--text-h);font-weight:500}.page-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.page-header h2{margin:0}button{font:inherit;color:var(--bg);background:var(--text-h);border:1px solid var(--text-h);cursor:pointer;border-radius:6px;padding:6px 14px}button:hover{opacity:.85}button:disabled{opacity:.5;cursor:not-allowed}button.btn-danger{color:#fff;background:var(--danger);border-color:var(--danger)}button.btn-primary{color:#fff;background:var(--accent);border-color:var(--accent)}button.btn-secondary{color:var(--text);border-color:var(--border);background:0 0}nav{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:8px;padding:12px 20px;display:flex}nav button{color:inherit;border-color:var(--border);text-transform:capitalize;background:0 0}nav button.active{color:var(--accent);background:var(--accent-bg);border-color:var(--accent)}main{flex:1;padding:20px}footer{text-align:center;padding:16px 20px 24px;font-size:.75em}footer a{color:var(--text);text-decoration:none;transition:color .2s}footer a:hover{color:var(--text-h)}.row-actions{white-space:nowrap;gap:6px;display:flex}.center{text-align:center}.type{white-space:nowrap}.type-label{margin-left:4px}.tag{font-family:var(--mono);color:var(--text);font-size:.85em}.spin-cell{text-align:center}.tag-spin{animation:2s linear infinite spin;display:inline-block}@media (prefers-reduced-motion:reduce){.tag-spin{animation:none}}@keyframes spin{to{transform:rotate(360deg)}}.title{text-align:center}@media (width<=480px){.type-label{display:none}.uri-text{max-width:3ch}}.shuffle-icon{opacity:.3;filter:grayscale()}.shuffle-icon.active{opacity:1;filter:none}.uri{font-family:var(--mono);color:var(--text);font-size:.85em}.uri-row{align-items:center;gap:4px;max-width:100%;display:inline-flex}.uri-text{text-overflow:ellipsis;white-space:nowrap;max-width:40ch;display:block;overflow:hidden}.uri-copy{color:var(--text);background:0 0;border:none;border-radius:0;flex-shrink:0;padding:0 2px;font-size:.9em;line-height:1}.uri-copy:hover{color:var(--accent);opacity:1}.discs-scroll{overflow-x:auto}table.discs{table-layout:fixed;min-width:760px;display:table}.library-toolbar{flex-wrap:wrap;align-items:flex-end;gap:8px;margin-bottom:12px;display:flex}.library-search{max-width:320px;margin-top:0}.library-filters{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.library-filters select{width:auto;min-width:10ch}.library-toolbar input,.library-toolbar select,.library-toolbar button{box-sizing:border-box;height:2.4em}.no-results{text-align:center;font-style:italic}.banner{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}.banner h4{color:var(--text-h);margin:0}.banner p{margin:4px 0 0}.banner-info{background:var(--state-known-bg);border-left:3px solid var(--state-known)}.banner-warning{background:var(--state-unknown-bg);border-left:3px solid var(--state-unknown)}.error{color:#d33}.path{color:var(--text);opacity:.75;font-size:.85em}.badge{white-space:nowrap;border:1px solid;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:.7em;font-weight:600;line-height:1.4;display:inline-block}.badge-configured{color:var(--state-known)}.badge-pinned{color:var(--text)}.badge-restart{color:var(--danger)}.badge-advanced{color:var(--accent)}table{border-collapse:collapse;width:100%;margin-bottom:16px;display:block;overflow-x:auto}th,td{text-align:left;border-bottom:1px solid var(--border);padding:6px 10px}form{max-width:480px}form>label,form>.checkbox{margin-bottom:12px;display:block}label{color:var(--text-h);font-weight:500}input,select,textarea{width:100%;font:inherit;color:inherit;background:var(--bg);border:1px solid var(--border);box-sizing:border-box;border-radius:6px;margin-top:4px;padding:6px 10px;display:block}fieldset{border:1px solid var(--border);border-radius:6px;margin:0 0 12px;padding:10px 14px}legend{color:var(--text-h);padding:0 4px;font-weight:500}.checkbox{align-items:center;gap:8px;margin-bottom:6px;font-weight:400;display:flex}.checkbox input{width:auto;margin:0;display:inline}.panel{border:1px solid var(--border);border-radius:6px;margin-bottom:16px;padding:12px 16px}.panel h3{margin-top:0}.actions{gap:8px;margin-top:12px;display:flex}.sort-button{font-weight:inherit;white-space:nowrap;color:inherit;background:0 0;border:none;border-radius:0;align-items:center;gap:4px;padding:0;display:inline-flex}.sort-button:hover{color:var(--accent);opacity:1}.sort-indicator{opacity:.4;font-size:.8em}th[aria-sort] .sort-button{color:var(--accent)}th[aria-sort] .sort-indicator{opacity:1}.toast.svelte-1cpok13{background-color:var(--success);color:var(--success-text);z-index:1000;border-radius:.5rem;align-items:center;gap:1rem;padding:1rem;animation:.3s ease-out svelte-1cpok13-slideIn;display:flex;position:fixed;bottom:1rem;right:1rem;box-shadow:0 2px 8px #0000001a}@keyframes svelte-1cpok13-slideIn{0%{opacity:0;transform:translate(400px)}to{opacity:1;transform:translate(0)}}.toast.svelte-1cpok13 p:where(.svelte-1cpok13){margin:0}.toast.svelte-1cpok13 button:where(.svelte-1cpok13){cursor:pointer;color:var(--success-text);background:0 0;border:none;padding:0;font-size:1rem;line-height:1}.toast.svelte-1cpok13 button:where(.svelte-1cpok13):hover{opacity:.7}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e=Array.isArray,t=Array.prototype.indexOf,n=Array.prototype.includes,r=Array.from,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyDescriptors,s=Object.prototype,c=Array.prototype,l=Object.getPrototypeOf,u=Object.isExtensible,d=()=>{};function f(e){return e()}function p(e){for(var t=0;t<e.length;t++)e[t]()}function m(){var e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function h(e,t,n=!1){return e===void 0?n?t():t:e}function g(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);let n=[];for(let r of e)if(n.push(r),n.length===t)break;return n}var _=1024,v=2048,y=4096,b=8192,x=16384,S=32768,C=1<<25,w=65536,T=1<<19,E=1<<20,D=1<<25,ee=65536,te=1<<21,ne=1<<22,re=1<<23,ie=Symbol(`$state`),ae=Symbol(`component`),oe=Symbol(`legacy props`),se=Symbol(``),ce=Symbol(`attributes`),le=Symbol(`class`),ue=Symbol(`style`),de=Symbol(`text`),fe=Symbol(`form reset`),pe=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},me=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`),he={},O=Symbol(`uninitialized`),ge=`http://www.w3.org/1999/xhtml`;function _e(){console.warn(`https://svelte.dev/e/derived_inert`)}function ve(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function ye(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function be(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var k=!1;function xe(e){k=e}var A;function Se(e){if(e===null)throw ve(),he;return A=e}function Ce(){return Se(pn(A))}function j(e){if(k){if(pn(A)!==null)throw ve(),he;A=e}}function we(e=1){if(k){for(var t=e,n=A;t--;)n=pn(n);A=n}}function Te(e=!0){for(var t=0,n=A;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else(r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=pn(n);e&&n.remove(),n=i}}function Ee(e){if(!e||e.nodeType!==8)throw ve(),he;return e.data}function De(e){return e===this.v}function Oe(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function ke(e){return!Oe(e,this.v)}function Ae(e){throw Error(`https://svelte.dev/e/lifecycle_outside_component`)}function je(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function Me(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function Ne(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function Pe(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function Fe(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function Ie(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function Le(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function Re(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function ze(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function Be(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function Ve(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var He=!1;function Ue(){He=!0}var M=null;function We(e){M=e}function Ge(e,t=!1,n){M={p:M,i:!1,c:null,e:null,s:e,x:null,r:G,l:He&&!t?{s:null,u:null,$:[]}:null}}function Ke(e){var t=M,n=t.e;if(n!==null){t.e=null;for(var r of n)Dn(r)}return e!==void 0&&(t.x=e),t.i=!0,M=t.p,qe(e)}function qe(e={}){return i(e,ae,{value:!0}),e}function Je(){return!He||M!==null&&M.l===null}var Ye=[];function Xe(){var e=Ye;Ye=[],p(e)}function Ze(e){if(Ye.length===0&&!Ft){var t=Ye;queueMicrotask(()=>{t===Ye&&Xe()})}Ye.push(e)}function Qe(){for(;Ye.length>0;)Xe()}var $e=~(v|y|_);function N(e,t){e.f=e.f&$e|t}function et(e){e.f&512||e.deps===null?N(e,_):N(e,y)}function tt(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=ee,tt(t.deps))}function nt(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),tt(e.deps),N(e,_)}function rt(e,t,n){if(e==null)return t(void 0),n&&n(void 0),d;let r=J(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}var it=[];function at(e,t=d){let n=null,r=new Set;function i(t){if(Oe(e,t)&&(e=t,n)){let t=!it.length;for(let t of r)t[1](),it.push(t,e);if(t){for(let e=0;e<it.length;e+=2)it[e][0](it[e+1]);it.length=0}}}function a(t){i(t(e))}function o(o,s=d){let c=[o,s];return r.add(c),r.size===1&&(n=t(i,a)||d),o(e),()=>{r.delete(c),r.size===0&&n&&(n(),n=null)}}return{set:i,update:a,subscribe:o}}function ot(e){let t;return rt(e,e=>t=e)(),t}var st=!1,ct=Symbol(`unmounted`);function lt(e,t,n){let r=n[t]??={store:null,source:$t(void 0),unsubscribe:d};if(r.store!==e&&!(ct in n)){if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=d;else{var i=!0;r.unsubscribe=rt(e,e=>{i?r.source.v=e:I(r.source,e)}),i=!1}}return e&&ct in n?ot(e):q(r.source)}function ut(){let e={};function t(){Tn(()=>{for(var t in e)e[t].unsubscribe();i(e,ct,{enumerable:!1,value:!0})})}return[e,t]}function dt(e){var t=st;try{return st=!1,[e(),st]}finally{st=t}}function ft(e){k&&fn(e)!==null&&hn(e)}var pt=!1;function mt(){pt||(pt=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[fe]?.()})},{capture:!0}))}function ht(e){var t=W,n=G;Xn(null),Zn(null);try{return e()}finally{Xn(t),Zn(n)}}function gt(e,t,n,r=n){e.addEventListener(t,()=>ht(n));let i=e[fe];e[fe]=i?()=>{i(),r(!0)}:()=>r(!0),mt()}function _t(e,t,n,r){let i=Je()?xt:Tt;var a=e.filter(e=>!e.settled),o=t.map(i);if(n.length===0&&a.length===0){r(o);return}var s=G,c=vt(),l=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function u(e){if(!(s.f&16384)){c();try{r([...o,...e])}catch(e){bn(e,s)}yt()}}var d=bt();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>Ct(e))).then(u).catch(e=>bn(e,s)).finally(d)}l?l.then(()=>{c(),f(),yt()}):f()}function vt(){var e=G,t=W,n=M,r=P;return function(i=!0){Zn(e),Xn(t),We(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function yt(e=!0){Zn(null),Xn(null),We(null),e&&P?.deactivate()}function bt(){var e=G,t=e.b,n=P,r=!!t?.is_rendered();return t?.update_pending_count(1,n),n.increment(r,e),()=>{t?.update_pending_count(-1,n),n.decrement(r,e)}}function xt(e){var t=2|v;return G!==null&&(G.f|=T),{ctx:M,deps:null,effects:null,equals:De,f:t,fn:e,reactions:null,rv:0,v:O,wv:0,parent:G,ac:null}}var St=Symbol(`obsolete`);function Ct(e,t,n){let r=G;r===null&&je();var i=void 0,a=Qt(O),o=!W,s=new Set;return jn(()=>{var t=G,n=m();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==pe&&n.reject(e)}).finally(yt)}catch(e){n.reject(e),yt()}var c=P;if(o){if(t.f&32768)var l=bt();if(r.b?.is_rendered())c.async_deriveds.get(t)?.reject(St);else for(let e of s.values())e.reject(St);s.add(n),c.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),s.delete(n),t!==St&&(c.activate(),t?(a.f|=re,en(a,t)):(a.f&8388608&&(a.f^=re),en(a,e)),c.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),Tn(()=>{for(let e of s)e.reject(St)}),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function wt(e){let t=xt(e);return $n(t),t}function Tt(e){let t=xt(e);return t.equals=ke,t}function Et(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)U(t[n])}}function Dt(e){var t,n=G,r=e.parent;if(!qn&&r!==null&&e.v!==O&&r.f&24576)return _e(),e.v;Zn(r);try{e.f&=~ee,Et(e),t=ur(e)}finally{Zn(n)}return t}function Ot(e){var t=Dt(e);if(!e.equals(t)&&(e.wv=sr(),(!P?.is_fork||e.deps===null)&&(P===null?e.v=t:(P.capture(e,t,!0),Mt?.capture(e,t,!0)),e.deps===null))){N(e,_);return}qn||(Nt===null?et(e):(wn()||P?.is_fork)&&Nt.set(e,t))}function kt(e){if(e.effects!==null)for(let t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac!==null&&ht(()=>{t.ac.abort(pe),t.ac=null}),t.fn!==null&&(t.teardown=d),pr(t,0),In(t))}function At(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&mr(t)}var jt=null,P=null,Mt=null,Nt=null,Pt=null,Ft=!1,It=!1,Lt=null,Rt=null,zt=0,Bt=1,Vt=class e{id=Bt++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;#r=new Set;#i=new Set;#a=0;#o=new Map;#s=null;#c=[];#l=[];#u=new Set;#d=new Set;#f=new Map;#p=new Set;is_fork=!1;#m=!1;constructor(){jt===null?jt=this:(jt.#n=this,this.#t=jt),jt=this}#h(){if(this.is_fork)return!0;for(let n of this.#o.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#f.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#f.has(e)||this.#f.set(e,{d:[],m:[]}),this.#p.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#f.get(e);if(n){this.#f.delete(e);for(var r of n.d)N(r,v),t(r);for(r of n.m)N(r,y),t(r)}this.#p.add(e)}#g(){this.#e=!0,zt++>1e3&&(this.#x(),Ut());for(let e of this.#u)this.#d.delete(e),N(e,v),this.schedule(e);for(let e of this.#d)N(e,y),this.schedule(e);let t=this.#c;this.#c=[],this.apply();var n=Lt=[],r=[],i=Rt=[];for(let e of t)try{this.#_(e,n,r)}catch(t){throw Jt(e),this.#h()||this.discard(),t}if(P=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(Lt=null,Rt=null,this.#h()){this.#b(r),this.#b(n);for(let[e,t]of this.#f)qt(e,t);i.length>0&&P.#g();return}let o=this.#v();if(o){this.#b(r),this.#b(n),o.#y(this);return}this.#u.clear(),this.#d.clear();for(let e of this.#r)e(this);this.#r.clear(),Mt=this,Gt(r),Gt(n),Mt=null,this.#s?.resolve();var s=P;if(this.#a===0&&(this.#c.length===0||s!==null)&&this.#x(),this.#c.length>0){if(s!==null){let e=s;e.#c.push(...this.#c.filter(t=>!e.#c.includes(t)))}else s=this}s!==null&&(Xt.clear(),s.#g())}#_(e,t,n){e.f^=_;for(var r=e.first;r!==null;){var i=r.f,a=!!(i&96);if(!(a&&i&1024||i&8192||this.#f.has(r))&&r.fn!==null){a?r.f^=_:i&4?t.push(r):cr(r)&&(i&16&&this.#d.add(r),mr(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#v(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#y(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve).catch(e.reject)}e.async_deriveds.clear(),this.transfer_effects(e.#u,e.#d);let t=e=>{var n=e.reactions;if(n!==null&&!(e.f&2&&!(e.f&6144)))for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#d.delete(i),N(i,v),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#x(),P=this,this.#g()}#b(e){for(var t=0;t<e.length;t+=1)nt(e[t],this.#u,this.#d)}capture(e,t,n=!1){e.v!==O&&!this.previous.has(e)&&this.previous.set(e,e.v),e.f&8388608||(this.current.set(e,[t,n]),Nt?.set(e,t)),this.is_fork||(e.v=t)}activate(){P=this}deactivate(){P=null,Nt=null}flush(){try{It=!0,P=this,this.#g()}finally{zt=0,Pt=null,Lt=null,Rt=null,It=!1,P=null,Nt=null,Xt.clear()}}discard(){for(let e of this.#i)e(this);this.#i.clear();for(let e of this.async_deriveds.values())e.reject(St);this.#x(),this.#s?.resolve()}register_created_effect(e){this.#l.push(e)}increment(e,t){if(this.#a+=1,e){let e=this.#o.get(t)??0;this.#o.set(t,e+1)}}decrement(e,t){if(--this.#a,e){let e=this.#o.get(t)??0;e===1?this.#o.delete(t):this.#o.set(t,e-1)}this.#m||(this.#m=!0,Ze(()=>{this.#m=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#u.add(t);for(let e of t)this.#d.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}settled(){return(this.#s??=m()).promise}static ensure(){if(P===null){let t=P=new e;!It&&!Ft&&Ze(()=>{t.#e||t.flush()})}return P}apply(){Nt=null}schedule(e){if(Pt=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var n=t.f;if(Lt!==null&&t===G&&(W===null||!(W.f&2)))return;if(n&96){if(!(n&1024))return;t.f^=_}}this.#c.push(t)}#x(){if(this.linked){var e=this.#t,t=this.#n;e===null||(e.#n=t),t===null?jt=e:t.#t=e,this.linked=!1}}};function Ht(e){var t=Ft;Ft=!0;try{var n;for(e&&(P!==null&&!P.is_fork&&P.flush(),n=e());;){if(Qe(),P===null)return n;P.flush()}}finally{Ft=t}}function Ut(){try{Ie()}catch(e){bn(e,Pt)}}var Wt=null;function Gt(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&24576)&&cr(r)&&(Wt=new Set,mr(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&zn(r),Wt?.size>0)){Xt.clear();for(let e of Wt){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)Wt.has(n)&&(Wt.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||mr(n)}}Wt.clear()}}Wt=null}}function Kt(e){P.schedule(e)}function qt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),N(e,_);for(var n=e.first;n!==null;)qt(n,t),n=n.next}}function Jt(e){N(e,_);for(var t=e.first;t!==null;)Jt(t),t=t.next}var Yt=new Set,Xt=new Map,Zt=!1;function Qt(e,t){return{f:0,v:e,reactions:null,equals:De,rv:0,wv:0}}function F(e,t){let n=Qt(e,t);return $n(n),n}function $t(e,t=!1,n=!0){let r=Qt(e);return t||(r.equals=ke),He&&n&&M!==null&&M.l!==null&&(M.l.s??=[]).push(r),r}function I(e,t,n=!1){return W!==null&&(!Yn||W.f&131072)&&Je()&&W.f&4325394&&(Qn===null||!Qn.has(e))&&Be(),en(e,n?L(t):t,Rt)}function en(e,t,n=null){if(!e.equals(t)){qn?Xt.set(e,t):Xt.has(e)||Xt.set(e,e.v);var r=Vt.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&Dt(t),Nt===null&&et(t)}e.wv=sr(),rn(e,v,n),Je()&&G!==null&&G.f&1024&&!(G.f&96)&&(tr===null?nr([e]):tr.push(e)),!r.is_fork&&Yt.size>0&&!Zt&&tn()}return t}function tn(){Zt=!1;for(let e of Yt){e.f&1024&&N(e,y);let t;try{t=cr(e)}catch{t=!0}t&&mr(e)}Yt.clear()}function nn(e){I(e,e.v+1)}function rn(e,t,n){var r=e.reactions;if(r!==null)for(var i=Je(),a=r.length,o=0;o<a;o++){var s=r[o],c=s.f;if(!(!i&&s===G)){var l=(c&v)===0;if(l&&N(s,t),c&131072)Yt.add(s);else if(c&2){var u=s;Nt?.delete(u),c&65536||(c&512&&(G===null||!(G.f&2097152))&&(s.f|=ee),rn(u,y,n))}else if(l){var d=s;c&16&&Wt!==null&&Wt.add(d),n===null?Kt(d):n.push(d)}}}}function L(t){if(typeof t!=`object`||!t||ie in t||ae in t)return t;let n=l(t);if(n!==s&&n!==c)return t;var r=new Map,i=e(t),o=F(0),u=null,d=ar,f=e=>{if(ar===d)return e();var t=W,n=ar;Xn(null),or(d);var r=e();return Xn(t),or(n),r};return i&&r.set(`length`,F(t.length,u)),new Proxy(t,{defineProperty(e,t,n){(!(`value`in n)||n.configurable===!1||n.enumerable===!1||n.writable===!1)&&Re();var i=r.get(t);return i===void 0?f(()=>{var e=F(n.value,u);return r.set(t,e),e}):I(i,n.value,!0),!0},deleteProperty(e,t){var n=r.get(t);if(n===void 0){if(t in e){let e=f(()=>F(O,u));r.set(t,e),nn(o)}}else I(n,O),nn(o);return!0},get(e,n,i){if(n===ie)return t;var o=r.get(n),s=n in e;if(o===void 0&&(!s||a(e,n)?.writable)&&(o=f(()=>F(L(s?e[n]:O),u)),r.set(n,o)),o!==void 0){var c=q(o);return c===O?void 0:c}return Reflect.get(e,n,i)},getOwnPropertyDescriptor(e,t){var n=Reflect.getOwnPropertyDescriptor(e,t);if(n&&`value`in n){var i=r.get(t);i&&(n.value=q(i))}else if(n===void 0){var a=r.get(t),o=a?.v;if(a!==void 0&&o!==O)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return n},has(e,t){if(t===ie)return!0;var n=r.get(t),i=n!==void 0&&n.v!==O||Reflect.has(e,t);return(n!==void 0||G!==null&&(!i||a(e,t)?.writable))&&(n===void 0&&(n=f(()=>F(i?L(e[t]):O,u)),r.set(t,n)),q(n)===O)?!1:i},set(e,t,n,s){var c=r.get(t),l=t in e;if(i&&t===`length`)for(var d=n;d<c.v;d+=1){var p=r.get(d+``);p===void 0?d in e&&(p=f(()=>F(O,u)),r.set(d+``,p)):I(p,O)}if(c===void 0)(!l||a(e,t)?.writable)&&(c=f(()=>F(void 0,u)),I(c,L(n)),r.set(t,c));else{l=c.v!==O;var m=f(()=>L(n));I(c,m)}var h=Reflect.getOwnPropertyDescriptor(e,t);if(h?.set&&h.set.call(s,n),!l){if(i&&typeof t==`string`){var g=r.get(`length`),_=Number(t);Number.isInteger(_)&&_>=g.v&&I(g,_+1)}nn(o)}return!0},ownKeys(e){q(o);var t=Reflect.ownKeys(e).filter(e=>{var t=r.get(e);return t===void 0||t.v!==O});for(var[n,i]of r)i.v!==O&&!(n in e)&&t.push(n);return t},setPrototypeOf(){ze()}})}function an(e){try{if(typeof e==`object`&&e&&ie in e)return e[ie]}catch{}return e}function on(e,t){return Object.is(an(e),an(t))}var sn,cn,ln,un;function dn(){if(sn===void 0){sn=window,cn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;ln=a(t,`firstChild`).get,un=a(t,`nextSibling`).get,u(e)&&(e[le]=void 0,e[ce]=null,e[ue]=void 0,e.__e=void 0),u(n)&&(n[de]=void 0)}}function R(e=``){return document.createTextNode(e)}function fn(e){return ln.call(e)}function pn(e){return un.call(e)}function z(e,t){if(!k)return fn(e);var n=fn(A);if(n===null)n=A.appendChild(R());else if(t&&n.nodeType!==3){var r=R();return n?.before(r),Se(r),r}return t&&vn(n),Se(n),n}function mn(e,t=!1){if(!k){var n=fn(e);return n instanceof Comment&&n.data===``?pn(n):n}if(t){if(A?.nodeType!==3){var r=R();return A?.before(r),Se(r),r}vn(A)}return A}function B(e,t=!1){if(!k)return fn(e);var n=z(e,t);return j(e),n}function V(e,t=1,n=!1){let r=k?A:e;for(var i;t--;)i=r,r=pn(r);if(!k)return r;if(n){if(r?.nodeType!==3){var a=R();return r===null?i?.after(a):r.before(a),Se(a),a}vn(r)}return Se(r),r}function hn(e){e.textContent=``}function gn(){return!1}function _n(e,t,n){return t==null||t===`http://www.w3.org/1999/xhtml`?n?document.createElement(e,{is:n}):document.createElement(e):n?document.createElementNS(t,e,{is:n}):document.createElementNS(t,e)}function vn(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function yn(e){var t=G;if(t===null)return W.f|=re,e;if(!(t.f&32768)&&!(t.f&4))throw e;bn(e,t)}function bn(e,t){if(!(t!==null&&t.f&16384)){for(;t!==null;){if(t.f&128&&!(t.f&33570816)){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}}function xn(e){G===null&&(W===null&&Fe(e),Pe()),qn&&Ne(e)}function Sn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Cn(e,t){var n=G;n!==null&&n.f&8192&&(e|=b);var r={ctx:M,deps:null,nodes:null,f:e|v|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};P?.register_created_effect(r);var i=r;if(e&4)Lt===null?Vt.ensure().schedule(r):Lt.push(r);else if(t!==null){try{mr(r)}catch(e){throw U(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=w))}if(i!==null&&(i.parent=n,n!==null&&Sn(i,n),W!==null&&W.f&2&&!(e&64))){var a=W;(a.effects??=[]).push(i)}return r}function wn(){return W!==null&&!Yn}function Tn(e){let t=Cn(8,null);return N(t,_),t.teardown=e,t}function En(e){xn(`$effect`);var t=G.f;if(!W&&t&32&&M!==null&&!M.i){var n=M;(n.e??=[]).push(e)}else return Dn(e)}function Dn(e){return Cn(4|E,e)}function On(e){return xn(`$effect.pre`),Cn(8|E,e)}function kn(e){Vt.ensure();let t=Cn(64|T,e);return(e={})=>new Promise(n=>{e.outro?Bn(t,()=>{U(t),n(void 0)}):(U(t),n(void 0))})}function An(e){return Cn(4,e)}function jn(e){return Cn(ne|T,e)}function Mn(e,t=0){return Cn(8|t,e)}function H(e,t=[],n=[],r=[]){_t(r,t,n,t=>{Cn(8,()=>{e(...t.map(q))})})}function Nn(e,t=0){return Cn(16|t,e)}function Pn(e){return Cn(32|T,e)}function Fn(e){var t=e.teardown;if(t!==null){let n=qn,r=W;Jn(!0),Xn(null);try{t.call(null)}catch(t){bn(t,e.parent)}finally{Jn(n),Xn(r)}}}function In(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&ht(()=>{e.abort(pe)});var r=n.next;n.f&64?n.parent=null:U(n,t),n=r}}function Ln(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||U(t),t=n}}function U(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Rn(e.nodes.start,e.nodes.end),n=!0),e.f|=C,In(e,t&&!n),pr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();Fn(e),e.f^=C,e.f|=x;var i=e.parent;i!==null&&i.first!==null&&zn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Rn(e,t){for(;e!==null;){var n=e===t?null:pn(e);e.remove(),e=n}}function zn(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function Bn(e,t,n=!0){var r=[];e.f|=256,Vn(e,r,!0);var i=()=>{n&&U(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function Vn(e,t,n){if(!(e.f&8192)){e.f^=b;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=!!(i.f&65536)||!!(i.f&32)&&!!(e.f&16);Vn(i,t,o?n:!1)}i=a}}}function Hn(e){e.f&=-257,Un(e,!0)}function Un(e,t){if(!(e.f&256)&&e.f&8192){e.f^=b,e.f&1024||(N(e,v),Vt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=!!(n.f&65536)||!!(n.f&32);Un(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function Wn(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:pn(n);t.append(n),n=i}}var Gn=null,Kn=!1,qn=!1;function Jn(e){qn=e}var W=null,Yn=!1;function Xn(e){W=e}var G=null;function Zn(e){G=e}var Qn=null;function $n(e){W!==null&&(Qn??=new Set).add(e)}var K=null,er=0,tr=null;function nr(e){tr=e}var rr=1,ir=0,ar=ir;function or(e){ar=e}function sr(){return++rr}function cr(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=~ee),t&4096){for(var n=e.deps,r=n.length,i=0;i<r;i++){var a=n[i];if(cr(a)&&Ot(a),a.wv>e.wv)return!0}t&512&&Nt===null&&N(e,_)}return!1}function lr(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Qn!==null&&Qn.has(e)))for(var i=0;i<r.length;i++){var a=r[i];a.f&2?lr(a,t,!1):t===a&&(n?N(a,v):a.f&1024&&N(a,y),Kt(a))}}function ur(e){var t=K,n=er,r=tr,i=W,a=Qn,o=M,s=Yn,c=ar,l=e.f;K=null,er=0,tr=null,W=l&96?null:e,Qn=null,We(e.ctx),Yn=!1,ar=++ir,e.ac!==null&&(ht(()=>{e.ac.abort(pe)}),e.ac=null);try{e.f|=te;var u=e.fn,d=u();e.f|=S;var f=dr(e);if(Je()&&tr!==null&&!Yn&&f!==null&&!(e.f&6146))for(var p=0;p<tr.length;p++)lr(tr[p],e);if(i!==null&&i!==e){if(ir++,i.deps!==null)for(let e=0;e<n;e+=1)i.deps[e].rv=ir;if(t!==null)for(let e of t)e.rv=ir;tr!==null&&(r===null?r=tr:r.push(...tr))}return e.f&8388608&&(e.f^=re),d}catch(t){return dr(e),yn(t)}finally{e.f^=te,K=t,er=n,tr=r,W=i,Qn=a,We(o),Yn=s,ar=c}}function dr(e){var t=e.deps,n=P?.is_fork;if(K!==null){var r;if(n||pr(e,er),t!==null&&er>0)for(t.length=er+K.length,r=0;r<K.length;r++)t[er+r]=K[r];else e.deps=t=K;if(wn()&&e.f&512)for(r=er;r<t.length;r++)(t[r].reactions??=[]).push(e)}else!n&&t!==null&&er<t.length&&(pr(e,er),t.length=er);return t}function fr(e,r){let i=r.reactions;if(i!==null){var a=t.call(i,e);if(a!==-1){var o=i.length-1;o===0?i=r.reactions=null:(i[a]=i[o],i.pop())}}if(i===null&&r.f&2&&(K===null||!n.call(K,r))){var s=r;s.f&512&&(s.f^=512,s.f&=~ee),s.v!==O&&et(s),s.ac!==null&&ht(()=>{s.ac.abort(pe),s.ac=null,N(s,v)}),kt(s),pr(s,0)}}function pr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)fr(e,n[r])}function mr(e){var t=e.f;if(!(t&16384)){N(e,_);var n=G,r=Kn;G=e,Kn=!(t&96);try{t&16777232?Ln(e):In(e),Fn(e);var i=ur(e);e.teardown=typeof i==`function`?i:null,e.wv=rr}finally{Kn=r,G=n}}}async function hr(){await Promise.resolve(),Ht()}function q(e){var t=!!(e.f&2);if(Gn?.add(e),W!==null&&!Yn&&!(G!==null&&G.f&16384)&&(Qn===null||!Qn.has(e))){var r=W.deps;if(W.f&2097152)e.rv<ir&&(e.rv=ir,K===null&&r!==null&&r[er]===e?er++:K===null?K=[e]:K.push(e));else{W.deps??=[],n.call(W.deps,e)||W.deps.push(e);var i=e.reactions;i===null?e.reactions=[W]:n.call(i,W)||i.push(W)}}if(qn&&Xt.has(e))return Xt.get(e);if(t){var a=e;if(qn){var o=a.v;return(!(a.f&1024)&&a.reactions!==null||_r(a))&&(o=Dt(a)),Xt.set(a,o),o}var s=!(a.f&512)&&!Yn&&W!==null&&(Kn||!!(W.f&512)),c=(a.f&S)===0;cr(a)&&(s&&(a.f|=512),Ot(a)),s&&!c&&(At(a),gr(a))}if(Nt?.has(e))return Nt.get(e);if(e.f&8388608)throw e.v;return e.v}function gr(e){if(e.f|=512,e.deps!==null)for(let t of e.deps)(t.reactions??=[]).push(e),t.f&2&&!(t.f&512)&&(At(t),gr(t))}function _r(e){if(e.v===O)return!0;if(e.deps===null)return!1;for(let t of e.deps)if(Xt.has(t)||t.f&2&&_r(t))return!0;return!1}function J(e){var t=Yn;try{return Yn=!0,e()}finally{Yn=t}}function vr(e){if(!(typeof e!=`object`||!e||e instanceof EventTarget)){if(ie in e)yr(e);else if(!Array.isArray(e))for(let t in e){let n=e[t];typeof n==`object`&&n&&ie in n&&yr(n)}}}function yr(e,t=new Set){if(typeof e==`object`&&e&&!(e instanceof EventTarget)&&!t.has(e)){t.add(e),e instanceof Date&&e.getTime();for(let n in e)try{yr(e[n],t)}catch{}let n=l(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){let t=o(n);for(let n in t){let r=t[n].get;if(r)try{r.call(e)}catch{}}}}}[...`allowfullscreen.async.autofocus.autoplay.checked.controls.default.disabled.formnovalidate.indeterminate.inert.ismap.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.seamless.selected.webkitdirectory.defer.disablepictureinpicture.disableremoteplayback`.split(`.`)];var br=[`touchstart`,`touchmove`];function xr(e){return br.includes(e)}var Sr=Symbol(`events`),Cr=new Set,wr=new Set;function Tr(e,t,n,r={}){function i(e){if(r.capture||Ar.call(t,e),!e.cancelBubble)return ht(()=>n?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?Ze(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function Er(e,t,n,r,i){var a={capture:r,passive:i},o=Tr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&Tn(()=>{t.removeEventListener(e,o,a)})}function Y(e,t,n){(t[Sr]??={})[e]=n}function Dr(e){for(var t=0;t<e.length;t++)Cr.add(e[t]);for(var n of wr)n(e)}var Or=null,kr=!1;function Ar(e){var t=this,n=t.ownerDocument,r=e.type,a=e.composedPath?.()||[],o=a[0]||e.target;Or=e,kr||(kr=!0,setTimeout(()=>{kr=!1,Or=null}));var s=0,c=Or===e&&e[Sr];if(c){var l=a.indexOf(c);if(l!==-1&&(t===document||t===window)){e[Sr]=t;return}var u=a.indexOf(t);if(u===-1)return;l<=u&&(s=l)}if(o=a[s]||e.target,o!==t){i(e,`currentTarget`,{configurable:!0,get(){return o||n}});var d=W,f=G;Xn(null),Zn(null);try{for(var p,m=[];o!==null&&o!==t;){try{var h=o[Sr]?.[r];h!=null&&(!o.disabled||e.target===o)&&h.call(o,e)}catch(e){p?m.push(e):p=e}if(e.cancelBubble)break;s++,o=s<a.length?a[s]:null}if(p){for(let e of m)queueMicrotask(()=>{throw e});throw p}}finally{e[Sr]=t,delete e.currentTarget,Xn(d),Zn(f)}}}var jr=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function Mr(e){return jr?.createHTML(e)??e}function Nr(e){var t=_n(`template`);return t.innerHTML=Mr(e.replaceAll(`<!>`,`<!---->`)),t.content}function Pr(e,t){var n=G;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function X(e,t){var n=!!(t&1),r=!!(t&2),i,a=!e.startsWith(`<!>`);return()=>{if(k)return Pr(A,null),A;i===void 0&&(i=Nr(a?e:`<!>`+e),n||(i=fn(i)));var t=r||cn?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=fn(t),s=t.lastChild;Pr(o,s)}else Pr(t,t);return t}}function Fr(e=``){if(!k){var t=R(e+``);return Pr(t,t),t}var n=A;return n.nodeType===3?vn(n):(n.before(n=R()),Se(n)),Pr(n,n),n}function Ir(){if(k)return Pr(A,null),A;var e=document.createDocumentFragment(),t=document.createComment(``),n=R();return e.append(t,n),Pr(t,n),e}function Z(e,t){if(k){var n=G;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=A),Ce();return}e!==null&&e.before(t)}function Lr(e){let t=0,n=Qt(0),r;return()=>{wn()&&(q(n),Mn(()=>(t===0&&(r=J(()=>e(()=>nn(n)))),t+=1,()=>{Ze(()=>{--t,t===0&&(r?.(),r=void 0,nn(n))})})))}}var Rr=w|T;function zr(e,t,n,r){new Br(e,t,n,r)}var Br=class{parent;is_pending=!1;transform_error;#e;#t=k?A:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=Lr(()=>(this.#m=Qt(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=G;t.b=this,t.f|=128,n(e)},this.parent=G.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=Nn(()=>{if(k){let e=this.#t;Ce();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#y():this.#g()}else this.#b()},Rr),k&&(this.#e=A)}#g(){try{this.#a=Pn(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed,{reset:n,invoke_onerror:r}=this.#v(e);Ze(r),t&&(this.#s=Pn(()=>{t(this.#e,()=>e,()=>n)}))}#v(e){var t=!1,n=!1;let r=()=>{if(t){be();return}t=!0,n&&Ve(),this.#s!==null&&Bn(this.#s,()=>{this.#s=null}),this.#S(()=>{this.#b()})};return{reset:r,invoke_onerror:()=>{try{n=!0,this.#n.onerror?.(e,r),n=!1}catch(e){bn(e,this.#i&&this.#i.parent)}}}}#y(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=Pn(()=>e(this.#e)),Ze(()=>{var e=this.#c=document.createDocumentFragment(),t=R(),n=!1;if(e.append(t),this.#a=this.#S(()=>{try{return Pn(()=>this.#r(t))}catch(e){try{this.error(e),n=!0}catch(e){bn(e,this.#i.parent)}return null}}),this.#a===null){this.#c=null,n&&this.#x(P);return}this.#u===0&&(this.#e.before(e),this.#c=null,Bn(this.#o,()=>{this.#o=null}),this.#x(P))}))}#b(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=Pn(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();Wn(this.#a,e);let t=this.#n.pending;this.#o=Pn(()=>t(this.#e))}else this.#x(P)}catch(e){this.error(e)}}#x(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){nt(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#S(e){var t=G,n=W,r=M;Zn(this.#i),Xn(this.#i),We(this.#i.ctx);try{return Vt.ensure(),e()}finally{Zn(t),Xn(n),We(r)}}#C(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#C(e,t);return}this.#u+=e,this.#u===0&&(this.#x(t),this.#o&&Bn(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#C(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,Ze(()=>{this.#d=!1,this.#m&&en(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),q(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;P?.is_fork?(this.#a&&P.skip_effect(this.#a),this.#o&&P.skip_effect(this.#o),this.#s&&P.skip_effect(this.#s),P.oncommit(()=>{this.#w(e)})):this.#w(e)}#w(e){this.#a&&=(U(this.#a),null),this.#o&&=(U(this.#o),null),this.#s&&=(U(this.#s),null),k&&(Se(this.#t),we(),Se(Te()));let t=this.#n.failed,n=e=>{let{reset:n,invoke_onerror:r}=this.#v(e);r(),t&&(this.#s=this.#S(()=>{try{return Pn(()=>{var r=G;r.b=this,r.f|=128,t(this.#e,()=>e,()=>n)})}catch(e){return bn(e,this.#i.parent),null}}))};Ze(()=>{var t;try{t=this.transform_error(e)}catch(e){bn(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(n,e=>bn(e,this.#i&&this.#i.parent)):n(t)})}};function Q(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[de]??=e.nodeValue)&&(e[de]=n,e.nodeValue=`${n}`)}function Vr(e,t){return Ur(e,t)}var Hr=new Map;function Ur(e,{target:t,anchor:n,props:i={},events:a,context:o,intro:s=!0,transformError:c}){dn();var l=void 0,u=kn(()=>{var s=n??t.appendChild(R());zr(s,{pending:()=>{}},t=>{Ge({});var n=M;if(o&&(n.c=o),a&&(i.$$events=a),k&&Pr(t,null),l=e(t,i)||qe(),k&&(G.nodes.end=A,A===null||A.nodeType!==8||A.data!==`]`))throw ve(),he;Ke()},c);var u=new Set,d=e=>{for(var n=0;n<e.length;n++){var r=e[n];if(!u.has(r)){u.add(r);var i=xr(r);for(let e of[t,document]){var a=Hr.get(e);a===void 0&&(a=new Map,Hr.set(e,a));var o=a.get(r);o===void 0?(e.addEventListener(r,Ar,{passive:i}),a.set(r,1)):a.set(r,o+1)}}}};return d(r(Cr)),wr.add(d),()=>{for(var e of u)for(let n of[t,document]){var r=Hr.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,Ar),r.delete(e),r.size===0&&Hr.delete(n)):r.set(e,i)}wr.delete(d),s!==n&&s.parentNode?.removeChild(s)}});return Wr.set(l,u),l}var Wr=new WeakMap,Gr=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)Hn(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(Hn(r.effect),this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(U(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();Wn(r,t),t.append(R()),this.#n.set(e,{effect:r,fragment:t})}else U(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),Bn(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(U(n.effect),this.#n.delete(e))};ensure(e,t){var n=P,r=gn();if(t&&!this.#t.has(e)&&!this.#n.has(e)){if(r){var i=document.createDocumentFragment(),a=R();i.append(a),this.#n.set(e,{effect:Pn(()=>t(a)),fragment:i})}else this.#t.set(e,Pn(()=>t(this.anchor)))}if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else k&&(this.anchor=A),this.#a(n)}};function $(e,t,n=!1){var r;k&&(r=A,Ce());var i=new Gr(e),a=n?w:0;function o(e,t){if(k){var n=Ee(r);if(e!==parseInt(n.substring(1))){var a=Te();Se(a),i.anchor=a,xe(!1),i.ensure(e,t),xe(!0);return}}i.ensure(e,t)}Nn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function Kr(e,t,n){for(var i=[],a=t.length,o,s=t.length,c=0;c<a;c++){let n=t[c];Bn(n,()=>{if(o){if(o.pending.delete(n),o.done.add(n),o.pending.size===0){var t=e.outrogroups;qr(e,r(o.done)),t.delete(o),t.size===0&&(e.outrogroups=null)}}else--s},!1)}if(s===0){var l=i.length===0&&n!==null&&e.pending.size===0;if(l){var u=n,d=u.parentNode;hn(d),d.append(u),e.items.clear()}qr(e,t,!l)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function qr(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i<t.length;i++){var a=t[i];r?.has(a)?(a.f|=D,Wn(a,document.createDocumentFragment())):U(t[i],n)}}var Jr;function Yr(t,n,i,a,o,s=null){var c=t,l=new Map;if(n&4){var u=t;c=k?Se(fn(u)):u.appendChild(R())}k&&Ce();var d=null,f=Tt(()=>{var t=i();return e(t)?t:t==null?[]:r(t)}),p,m=new Map,h=!0;function g(e){v.effect.f&16384||(v.pending.delete(e),v.fallback=d,Zr(v,p,c,n,a),d!==null&&(p.length===0?d.f&33554432?(d.f^=D,$r(d,null,c)):Hn(d):Bn(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:Nn(()=>{p=q(f);var e=p.length;let t=!1;k&&Ee(c)===`[!`!=(e===0)&&(c=Te(),Se(c),xe(!1),t=!0);for(var r=new Set,u=P,v=gn(),y=0;y<e;y+=1){k&&A.nodeType===8&&A.data===`]`&&(c=A,t=!0,xe(!1));var b=p[y],x=a(b,y),S=h?null:l.get(x);S?(S.v&&en(S.v,b),S.i&&en(S.i,y),v&&u.unskip_effect(S.e)):(S=Qr(l,h?c:Jr??=R(),b,x,y,o,n,i),h||(S.e.f|=D),l.set(x,S)),r.add(x)}if(e===0&&s&&!d&&(h?d=Pn(()=>s(c)):(d=Pn(()=>s(Jr??=R())),d.f|=D)),e>r.size&&Me(``,``,``),k&&e>0&&Se(Te()),!h){if(m.set(u,r),v){for(let[e,t]of l)r.has(e)||u.skip_effect(t.e);u.oncommit(g),u.ondiscard(_)}else g(u)}t&&xe(!0),q(f)}),flags:n,items:l,pending:m,outrogroups:null,fallback:d};h=!1,k&&(c=A)}function Xr(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function Zr(e,t,n,i,a){var o=!!(i&8),s=t.length,c=e.items,l=Xr(e.effect.first),u,d=null,f,p=[],m=[],h,g,_,v;if(o)for(v=0;v<s;v+=1)h=t[v],g=a(h,v),_=c.get(g).e,_.f&33554432||(_.nodes?.a?.measure(),(f??=new Set).add(_));for(v=0;v<s;v+=1){if(h=t[v],g=a(h,v),_=c.get(g).e,e.outrogroups!==null)for(let t of e.outrogroups)t.pending.delete(_),t.done.delete(_);if(_.f&8192&&(Hn(_),o&&(_.nodes?.a?.unfix(),(f??=new Set).delete(_))),_.f&33554432){if(_.f^=D,_===l)$r(_,null,n);else{var y=d?d.next:l;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),ei(e,d,_),ei(e,_,y),$r(_,y,n),d=_,p=[],m=[],l=Xr(d.next);continue}}if(_!==l){if(u!==void 0&&u.has(_)){if(p.length<m.length){var b=m[0],x;d=b.prev;var S=p[0],C=p[p.length-1];for(x=0;x<p.length;x+=1)$r(p[x],b,n);for(x=0;x<m.length;x+=1)u.delete(m[x]);ei(e,S.prev,C.next),ei(e,d,S),ei(e,C,b),l=b,d=C,--v,p=[],m=[]}else u.delete(_),$r(_,l,n),ei(e,_.prev,_.next),ei(e,_,d===null?e.effect.first:d.next),ei(e,d,_),d=_;continue}for(p=[],m=[];l!==null&&l!==_;)(u??=new Set).add(l),m.push(l),l=Xr(l.next);if(l===null)continue}_.f&33554432||p.push(_),d=_,l=Xr(_.next)}if(e.outrogroups!==null){for(let t of e.outrogroups)t.pending.size===0&&(qr(e,r(t.done)),e.outrogroups?.delete(t));e.outrogroups.size===0&&(e.outrogroups=null)}if(l!==null||u!==void 0){var w=[];if(u!==void 0)for(_ of u)_.f&8192||w.push(_);for(;l!==null;)!(l.f&8192)&&l!==e.fallback&&w.push(l),l=Xr(l.next);var T=w.length;if(T>0){var E=i&4&&s===0?n:null;if(o){for(v=0;v<T;v+=1)w[v].nodes?.a?.measure();for(v=0;v<T;v+=1)w[v].nodes?.a?.fix()}Kr(e,w,E)}}o&&Ze(()=>{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function Qr(e,t,n,r,i,a,o,s){var c=o&1?o&16?Qt(n):$t(n,!1,!1):null,l=o&2?Qt(i):null;return{v:c,i:l,e:Pn(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function $r(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=pn(r);if(a.before(r),r===i)return;r=o}}function ei(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}function ti(e){var t,n,r=``;if(typeof e==`string`||typeof e==`number`)r+=e;else if(typeof e==`object`){if(Array.isArray(e)){var i=e.length;for(t=0;t<i;t++)e[t]&&(n=ti(e[t]))&&(r&&(r+=` `),r+=n)}else for(n in e)e[n]&&(r&&(r+=` `),r+=n)}return r}function ni(){for(var e,t,n=0,r=``,i=arguments.length;n<i;n++)(e=arguments[n])&&(t=ti(e))&&(r&&(r+=` `),r+=t);return r}function ri(e){return typeof e==`object`?ni(e):e??``}var ii=[...`
|
|
2
|
+
\r\f\xA0\v`];function ai(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||ii.includes(r[o-1]))&&(s===r.length||ii.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function oi(e,t,n,r,i,a){var o=e[le];if(k||o!==n||o===void 0){var s=ai(n,r,a);(!k||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[le]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}function si(e,t){t?e.hasAttribute(`selected`)||e.setAttribute(`selected`,``):e.removeAttribute(`selected`)}function ci(t,n){var r=t.__defaultValue,i=t.multiple,a=i?r??[]:null;if(!(i&&!e(a))){var o=t.selectedIndex,s=n&&i?new Set(t.selectedOptions):null;for(var c of t.options){var l=fi(c);si(c,i?a.includes(l):on(l,r))}if(n){if(s!==null)for(c of t.options){var u=s.has(c);c.selected!==u&&(c.selected=u)}else t.selectedIndex!==o&&(t.selectedIndex=o)}}}function li(t,n,r=!1){if(t.multiple){if(n==null)return;if(!e(n))return ye();for(var i of t.options)i.selected=n.includes(fi(i));return}for(i of t.options)if(on(fi(i),n)){i.selected=!0;return}(!r||n!==void 0)&&(t.selectedIndex=-1)}function ui(e){var t=new MutationObserver(t=>{t.every(pi)||(`__defaultValue`in e&&ci(e,!1),`__value`in e&&li(e,e.__value))});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),Tn(()=>{t.disconnect()})}function di(e,t,n=t){var r=new WeakSet,i=!0;gt(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),fi);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&fi(o)}n(a),e.__value=a,P!==null&&r.add(P)}),An(()=>{var a=t();if(e===document.activeElement){var o=P;if(r.has(o))return}if(li(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=fi(s),n(a))}e.__value=a,i=!1})}function fi(e){return`__value`in e?e.__value:e.value}function pi(e){if(e.target.closest(`selectedcontent`)!==null)return!0;if(e.type===`childList`){var t=[...e.addedNodes,...e.removedNodes];return t.length>0&&t.every(e=>e.nodeName===`SELECTEDCONTENT`)}return!1}var mi=Symbol(`is custom element`),hi=Symbol(`is html`),gi=me?`link`:`LINK`;function _i(e){if(k){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;yi(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;yi(e,`checked`,null),e.checked=r}}};e[fe]=n,Ze(n),mt()}}function vi(e,t){var n=bi(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function yi(e,t,n,r){var i=bi(e);k&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===gi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[se]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&Si(e).has(t)?e[t]=n:e.setAttribute(t,n))}function bi(e){return e[ce]??={[mi]:e.nodeName.includes(`-`),[hi]:e.namespaceURI===ge}}var xi=new Map;function Si(e){var t=e.getAttribute(`is`)||e.nodeName,n=xi.get(t);if(n)return n;xi.set(t,n=new Set);for(var r,i=e,a=Element.prototype;a!==i;){for(var s in r=o(i),r)r[s].set&&s!==`innerHTML`&&s!==`textContent`&&s!==`innerText`&&n.add(s);i=l(i)}return n}function Ci(e,t,n=t){var r=new WeakSet;gt(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=Ti(e)?Ei(a):a,n(a),P!==null&&r.add(P),await hr(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(k&&e.defaultValue!==e.value||J(t)==null&&e.value)&&(n(Ti(e)?Ei(e.value):e.value),P!==null&&r.add(P)),Mn(()=>{var n=t();if(e===document.activeElement){var i=P;if(r.has(i))return}Ti(e)&&n===Ei(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function wi(e,t,n=t){gt(e,`change`,t=>{n(t?e.defaultChecked:e.checked)}),(k&&e.defaultChecked!==e.checked||J(t)==null)&&n(e.checked),Mn(()=>{e.checked=!!t()})}function Ti(e){var t=e.type;return t===`number`||t===`range`}function Ei(e){return e===``?null:+e}function Di(e,t){return e===t||e?.[ie]===t}function Oi(e=qe(),t,n,r){var i=M.r,a=G;return An(()=>{var o,s;return Mn(()=>{o=s,s=r?.()||[],J(()=>{Di(n(...s),e)||(t(e,...s),o&&Di(n(...o),e)&&t(null,...o))})}),()=>{let r=a;for(;r!==i&&r.parent!==null&&r.parent.f&33554432;)r=r.parent;let o=()=>{s&&Di(n(...s),e)&&t(null,...s)},c=r.teardown;r.teardown=()=>{o(),c?.()}}}),e}function ki(e=!1){let t=M,n=t.l.u;if(!n)return;let r=()=>vr(t.s);if(e){let e=0,n={},i=xt(()=>{let r=!1,i=t.s;for(let e in i)i[e]!==n[e]&&(n[e]=i[e],r=!0);return r&&e++,e});r=()=>q(i)}n.b.length&&On(()=>{Ai(t,r),p(n.b)}),En(()=>{let e=J(()=>n.m.map(f));return()=>{for(let t of e)typeof t==`function`&&t()}}),n.a.length&&En(()=>{Ai(t,r),p(n.a)})}function Ai(e,t){if(e.l.s)for(let t of e.l.s)q(t);t()}function ji(e,t,n,r){var i=!He||!!(n&2),o=!!(n&8),s=!!(n&16),c=r,l=!0,u=void 0,d=()=>s&&i?(u??=xt(r),q(u)):(l&&(l=!1,c=s?J(r):r),c);let f;if(o){var p=ie in e||oe in e;f=a(e,t)?.set??(p&&t in e?n=>e[t]=n:void 0)}var m,h=!1;o?[m,h]=dt(()=>e[t]):m=e[t],m===void 0&&r!==void 0&&(m=d(),f&&(i&&Le(t),f(m)));var g=i?()=>{var n=e[t];return n===void 0?d():(l=!0,n)}:()=>{var n=e[t];return n!==void 0&&(c=void 0),n===void 0?c:n};if(i&&!(n&4))return g;if(f){var _=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||_||h)&&f(t?g():e),e):g()})}var v=!1,y=(n&1?xt:Tt)(()=>(v=!1,g()));o&&q(y);var b=G;return(function(e,t){if(arguments.length>0){let n=t?q(y):i&&o?L(e):e;return I(y,n),v=!0,c!==void 0&&(c=n),e}return qn&&v||b.f&16384?y.v:q(y)})}function Mi(e){M===null&&Ae(`onMount`),He&&M.l!==null?Ni(M).m.push(e):En(()=>{let t=J(e);if(typeof t==`function`)return t})}function Ni(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var Pi=X(`<button>Edit this disc</button>`),Fi=X(`<button>Add this disc</button>`),Ii=X(`<div><div><h4> </h4> <p> </p></div> <!></div>`);function Li(e,t){Ge(t,!0);let n=F(null);En(()=>{let e=new EventSource(`/api/v1/current-tag/events`);return e.onmessage=e=>{I(n,JSON.parse(e.data),!0)},()=>e.close()});var r=Ir(),i=mn(r),a=e=>{var r=Ii();let i;var a=z(r),o=z(a),s=B(o,!0),c=B(V(o,2));j(a);var l=V(a,2),u=e=>{var r=Pi();Y(`click`,r,()=>t.onEditDisc?.(q(n).tag_id)),Z(e,r)},d=e=>{var r=Fi();Y(`click`,r,()=>t.onAddDisc?.(q(n).tag_id)),Z(e,r)};$(l,e=>{q(n).known_in_library?e(u):e(d,-1)}),j(r),H(()=>{i=oi(r,1,`banner`,null,i,{"banner-info":q(n).known_in_library,"banner-warning":!q(n).known_in_library}),Q(s,q(n).known_in_library?`Known disc on reader`:`Unknown disc on reader`),Q(c,`Tag "${q(n).tag_id??``}" is
|
|
3
|
+
${q(n).known_in_library?`already in the library.`:`ready to be added to the library.`}`)}),Z(e,r)};$(i,e=>{q(n)&&e(a)}),Z(e,r),Ke()}Dr([`click`]),Ue();var Ri=3e3;function zi(){let{subscribe:e,set:t}=at(null),n=null;return{subscribe:e,showToast:e=>(n!==null&&clearTimeout(n),t({message:e}),n=setTimeout(()=>{t(null),n=null},Ri),()=>{clearTimeout(n),n=null}),dismiss:()=>{n!==null&&(clearTimeout(n),n=null),t(null)}}}var Bi=zi(),Vi=X(`<div class="toast svelte-1cpok13"><p class="svelte-1cpok13"> </p> <button type="button" aria-label="Close toast" class="svelte-1cpok13">✕</button></div>`);function Hi(e,t){Ge(t,!1);let n=()=>lt(Bi,`$toastStore`,r),[r,i]=ut();ki();var a=Ir(),o=mn(a),s=e=>{var t=Vi(),r=z(t),i=B(r,!0),a=V(r,2);j(t),H(()=>Q(i,n().message)),Y(`click`,a,()=>Bi.dismiss()),Z(e,t)};$(o,e=>{n()&&e(s)}),Z(e,a),Ke(),i()}Dr([`click`]);var Ui=`/api/v1`,Wi=class extends Error{constructor(e,t){super(`API error ${e}`),this.status=e,this.body=t}};async function Gi(e,t={}){let n=await fetch(`${Ui}${e}`,{headers:{"Content-Type":`application/json`,...t.headers},...t});if(!n.ok)throw new Wi(n.status,await n.json().catch(()=>null));return n.status===204?null:n.json()}function Ki(e){return Gi(e)}function qi(e,t){return Gi(e,{method:`POST`,body:JSON.stringify(t)})}function Ji(e,t){return Gi(e,{method:`PUT`,body:JSON.stringify(t)})}function Yi(e,t){return Gi(e,{method:`PATCH`,body:JSON.stringify(t)})}function Xi(e){return Gi(e,{method:`DELETE`})}var Zi=X(`<p class="error"> </p>`),Qi=X(`<form><label>Tag ID <input required=""/></label> <label>URI / Path <input required=""/></label> <label>Artist <input/></label> <label>Album <input/></label> <label>Track <input/></label> <label>Playlist <input/></label> <label class="checkbox"><input type="checkbox"/> Shuffle</label> <!> <div class="actions"><button type="submit" class="btn-primary"> </button> <button type="button" class="btn-secondary">Cancel</button></div></form>`);function $i(e,t){Ge(t,!0);let n=ji(t,`tagId`,3,``),r=ji(t,`disc`,3,null),i=F(L(J(()=>n()))),a=F(L(J(()=>r()?.uri??``))),o=F(L(J(()=>r()?.metadata.artist??``))),s=F(L(J(()=>r()?.metadata.album??``))),c=F(L(J(()=>r()?.metadata.track??``))),l=F(L(J(()=>r()?.metadata.playlist??``))),u=F(L(J(()=>r()?.option.shuffle??!1))),d=F(null),f=F(!1);async function p(e){e.preventDefault(),I(f,!0),I(d,null);let n={uri:q(a),metadata:{artist:q(o),album:q(s),track:q(c),playlist:q(l)},option:{shuffle:q(u)}};try{t.mode===`create`?await qi(`/discs/${q(i)}`,n):await Yi(`/discs/${q(i)}`,n),t.onSaved()}catch(e){I(d,e.body?.detail??e.message,!0)}finally{I(f,!1)}}var m=Qi(),h=z(m),g=V(z(h));_i(g),j(h);var _=V(h,2),v=V(z(_));_i(v),j(_);var y=V(_,2),b=V(z(y));_i(b),j(y);var x=V(y,2),S=V(z(x));_i(S),j(x);var C=V(x,2),w=V(z(C));_i(w),j(C);var T=V(C,2),E=V(z(T));_i(E),j(T);var D=V(T,2),ee=z(D);_i(ee),we(),j(D);var te=V(D,2),ne=e=>{var t=Zi(),n=B(t,!0);H(()=>Q(n,q(d))),Z(e,t)};$(te,e=>{q(d)&&e(ne)});var re=V(te,2),ie=z(re),ae=B(ie,!0),oe=V(ie,2);j(re),j(m),H(()=>{g.disabled=t.mode===`edit`,ie.disabled=q(f),Q(ae,q(f)?`Saving…`:`Save`)}),Er(`submit`,m,p),Ci(g,()=>q(i),e=>I(i,e)),Ci(v,()=>q(a),e=>I(a,e)),Ci(b,()=>q(o),e=>I(o,e)),Ci(S,()=>q(s),e=>I(s,e)),Ci(w,()=>q(c),e=>I(c,e)),Ci(E,()=>q(l),e=>I(l,e)),wi(ee,()=>q(u),e=>I(u,e)),Y(`click`,oe,function(...e){t.onCancel?.apply(this,e)}),Z(e,m),Ke()}Dr([`click`]);function ea(e){return e.normalize(`NFD`).replace(/\p{Diacritic}/gu,``).toLowerCase()}function ta(e,t){let{artist:n,album:r,track:i,playlist:a}=t.metadata??{};return ea([e,t.display_title,n,r,i,a,t.uri].filter(Boolean).join(`
|
|
4
|
+
`))}function na(e,t){let n=ea(t??``).split(/\s+/).filter(Boolean);return n.length===0?[...e]:e.filter(([e,t])=>{let r=ta(e,t);return n.every(e=>r.includes(e))})}var ra=new Intl.Collator(void 0,{numeric:!0,sensitivity:`base`});function ia(e){return e.split(` `)[0]}function aa(e){let t=e.indexOf(` `);return t===-1?``:e.slice(t+1)}function oa(e,t){return ra.compare(aa(e)||e,aa(t)||t)}function sa(e){return[...new Set(e.map(([,e])=>e.display_type))].sort(oa)}function ca(e,{type:t=``,shuffle:n=``}={}){return e.filter(([,e])=>!(t!==``&&e.display_type!==t||n===`on`&&!e.option.shuffle||n===`off`&&e.option.shuffle))}function la({type:e=``,shuffle:t=``}={}){return e!==``||t!==``}var ua=new Intl.Collator(void 0,{numeric:!0,sensitivity:`base`}),da={tag:([e],[t])=>ua.compare(e,t),type:([,e],[,t])=>oa(e.display_type,t.display_type),title:([,e],[,t])=>ua.compare(e.display_title,t.display_title),shuffle:([,e],[,t])=>Number(e.option.shuffle)-Number(t.option.shuffle)};function fa(e,t){let n=t&&da[t.key];if(!n)return[...e];let r=t.direction===`desc`?-1:1;return[...e].sort((e,t)=>r*n(e,t))}function pa(e,t){return e?.key===t?e.direction===`asc`?{key:t,direction:`desc`}:null:{key:t,direction:`asc`}}var ma=X(`<th><button type="button" class="sort-button"> <span class="sort-indicator" aria-hidden="true"> </span></button></th>`),ha=X(`<button>Add disc</button>`),ga=X(`<p>Loading…</p>`),_a=X(`<p class="error"> </p>`),va=X(`<p>No disc found</p>`),ya=X(`<option> </option>`),ba=X(`<button type="button" class="btn-secondary">Clear filters</button>`),xa=X(`<span class="tag-spin" aria-hidden="true">💿</span>`),Sa=X(`<tr><td class="spin-cell"><!></td><td class="tag"> </td><td class="uri"><span class="uri-row"><span class="uri-text"> </span> <button type="button" class="uri-copy"> </button></span></td><td class="type"><span class="type-icon"> </span> <span class="type-label"> </span></td><td class="title"> </td><td class="center"><span role="img">🔀</span></td><td><div class="row-actions"><button>Edit</button> <button class="btn-danger">Delete</button></div></td></tr>`),Ca=X(`<tr><td colspan="7" class="no-results"> </td></tr>`),wa=X(`<!> <div class="library-toolbar"><input type="search" class="library-search" placeholder="Search tag, title, artist, URI…" aria-label="Search discs"/> <div class="library-filters" role="group" aria-label="Filter discs"><label>Type <select><option>All types</option><!></select></label> <label>Shuffle <select><option>Any</option><option>On</option><option>Off</option></select></label> <!></div></div> <div class="discs-scroll"><table class="discs"><colgroup><col style="width: 24px"/><col style="width: 14%"/><col/><col style="width: 90px"/><col style="width: 28%"/><col style="width: 90px"/><col style="width: 170px"/></colgroup><thead><tr><th></th><!><th>URI</th><!><!><!><th></th></tr></thead><tbody></tbody></table></div>`,1),Ta=X(`<div class="page-header"><h2>Library</h2> <!></div> <!>`,1);function Ea(e,t){Ge(t,!0);let n=(e,t=d,n=d,r)=>{let i=Tt(()=>h(r?.(),void 0));var a=ma(),o=z(a),s=z(o),c=B(V(s),!0);j(o),j(a),H(e=>{oi(a,1,ri(q(i))),yi(a,`aria-sort`,e),Q(s,`${n()??``} `),Q(c,q(v)?.key===t()?q(v).direction===`asc`?`▲`:`▼`:`↕`)},[()=>T(t())]),Y(`click`,o,()=>I(v,pa(q(v),t()),!0)),Z(e,a)},r=ji(t,`intent`,3,null),i=F(L({})),a=F(!0),o=F(null),s=F(null),c=F(null),l=F(null),u=F(null),f=F(``),p=F(L(``)),m=F(L(``)),_=F(null),v=F(null),y=wt(()=>Object.entries(q(i))),b=wt(()=>sa(q(y))),x=wt(()=>fa(ca(na(q(y),q(f)),{type:q(p),shuffle:q(m)}),q(v))),S=wt(()=>la({type:q(p),shuffle:q(m)})),C=wt(()=>{let e=q(f).trim();return e?q(S)?`No disc matches “${e}” with the current filters`:`No disc matches “${e}”`:`No disc matches the current filters`});function w(){I(p,``,!0),I(m,``,!0),q(_)?.focus()}function T(e){if(q(v)?.key===e)return q(v).direction===`asc`?`ascending`:`descending`}En(()=>{let e=new EventSource(`/api/v1/current-tag/events`);return e.onmessage=e=>{let t=JSON.parse(e.data);I(c,t?.known_in_library?t.tag_id:null,!0)},()=>e.close()});async function E(){I(a,!0);try{I(i,await Ki(`/discs`),!0),q(p)!==``&&!q(b).includes(q(p))&&I(p,``,!0),I(o,null)}catch(e){I(o,e.message,!0)}finally{I(a,!1)}}Mi(E),En(()=>{!r()||q(a)||(r().type===`edit`?ee(r().tagId):D(r().tagId),t.onIntentConsumed?.())});function D(e=``){I(s,{type:`create`,tagId:e},!0)}function ee(e){I(s,{type:`edit`,tagId:e,disc:q(i)[e]},!0)}function te(){I(s,null)}async function ne(){I(s,null),await E(),Bi.showToast(`💿 Disc saved.`)}async function re(e,t){await navigator.clipboard.writeText(t),I(l,e,!0),setTimeout(()=>{q(l)===e&&I(l,null)},1500)}async function ie(e){if(confirm(`Delete disc "${e}"?`))try{await Xi(`/discs/${e}`),I(u,null),await E(),Bi.showToast(`💿 Disc deleted.`)}catch(e){I(u,e.body?.detail??e.message,!0)}}var ae=Ta(),oe=mn(ae),se=V(z(oe),2),ce=e=>{var t=ha();Y(`click`,t,()=>D()),Z(e,t)};$(se,e=>{q(s)||e(ce)}),j(oe);var le=V(oe,2),ue=e=>{$i(e,{mode:`create`,get tagId(){return q(s).tagId},onSaved:ne,onCancel:te})},de=e=>{$i(e,{mode:`edit`,get tagId(){return q(s).tagId},get disc(){return q(s).disc},onSaved:ne,onCancel:te})},fe=e=>{var t=Ir(),r=mn(t),s=e=>{Z(e,ga())},d=e=>{var t=_a(),n=B(t,!0);H(()=>Q(n,q(o))),Z(e,t)},h=e=>{Z(e,va())},v=wt(()=>Object.keys(q(i)).length===0),y=e=>{var t=wa(),r=mn(t),i=e=>{var t=_a(),n=B(t,!0);H(()=>Q(n,q(u))),Z(e,t)};$(r,e=>{q(u)&&e(i)});var a=V(r,2),o=z(a);_i(o);var s=V(o,2),d=z(s),h=V(z(d)),v=z(h),y={};Yr(V(v),16,()=>q(b),e=>e,(e,t)=>{var n=ya(),r=B(n,!0),i={};H(()=>{Q(r,t),i!==(i=t)&&(n.value=(n.__value=i)??``)}),Z(e,n)}),j(h),Oi(h,e=>I(_,e),()=>q(_)),ui(h),j(d);var T=V(d,2),E=V(z(T)),D=z(E),te={},ne=V(D),ae={},oe=V(ne),se={};j(E),ui(E),j(T);var ce=V(T,2),le=e=>{var t=ba();Y(`click`,t,w),Z(e,t)};$(ce,e=>{q(S)&&e(le)}),j(s),j(a);var ue=V(a,2),de=z(ue),fe=V(z(de)),pe=z(fe),me=V(z(pe));n(me,()=>`tag`,()=>`Tag`);var he=V(me,2);n(he,()=>`type`,()=>`Type`);var O=V(he);n(O,()=>`title`,()=>`Title`,()=>`center`);var ge=V(O);n(ge,()=>`shuffle`,()=>`Shuffle`,()=>`center`),we(),j(pe),j(fe);var _e=V(fe);Yr(_e,21,()=>q(x),([e,t])=>e,(e,t)=>{var n=wt(()=>g(q(t),2));let r=()=>q(n)[0],i=()=>q(n)[1];var a=Sa(),o=z(a),s=z(o),u=e=>{Z(e,xa())};$(s,e=>{r()===q(c)&&e(u)}),j(o);var d=V(o),f=B(d,!0),p=V(d),m=z(p),h=z(m),_=B(h,!0),v=V(h,2),y=B(v,!0);j(m),j(p);var b=V(p),x=z(b),S=B(x,!0),C=B(V(x,2),!0);j(b);var w=V(b),T=B(w,!0),E=V(w),D=z(E);let te;j(E);var ne=V(E),ae=z(ne),oe=z(ae),se=V(oe,2);j(ae),j(ne),j(a),H((e,t)=>{Q(f,r()),yi(p,`title`,i().uri),Q(_,i().uri),yi(v,`aria-label`,q(l)===r()?`Copied`:`Copy URI`),Q(y,q(l)===r()?`✅`:`📋`),Q(S,e),Q(C,t),Q(T,i().display_title),te=oi(D,1,`shuffle-icon`,null,te,{active:i().option.shuffle}),yi(D,`aria-label`,i().option.shuffle?`Shuffle on`:`Shuffle off`)},[()=>ia(i().display_type),()=>aa(i().display_type)]),Y(`click`,v,()=>re(r(),i().uri)),Y(`click`,oe,()=>ee(r())),Y(`click`,se,()=>ie(r())),Z(e,a)},e=>{var t=Ca(),n=B(z(t),!0);j(t),H(()=>Q(n,q(C))),Z(e,t)}),j(_e),j(de),j(ue),H(()=>{y!==(y=``)&&(v.value=(v.__value=y)??``),te!==(te=``)&&(D.value=(D.__value=te)??``),ae!==(ae=`on`)&&(ne.value=(ne.__value=ae)??``),se!==(se=`off`)&&(oe.value=(oe.__value=se)??``)}),Ci(o,()=>q(f),e=>I(f,e)),di(h,()=>q(p),e=>I(p,e)),di(E,()=>q(m),e=>I(m,e)),Z(e,t)};$(r,e=>{q(a)?e(s):q(o)?e(d,1):q(v)?e(h,2):e(y,-1)}),Z(e,t)};$(le,e=>{q(s)?.type===`create`?e(ue):q(s)?.type===`edit`?e(de,1):e(fe,-1)}),Z(e,ae),Ke()}Dr([`click`]);var Da=X(`<option> </option>`),Oa=X(`<select></select>`),ka=X(`<textarea rows="10" placeholder="Enter a JSON object. Leave blank to persist null."></textarea>`),Aa=X(`<input/>`),ja=X(`<p class="error"> </p>`),Ma=X(`<button type="button" class="btn-danger">Reset</button>`),Na=X(`<form><h3> </h3> <p class="path"> </p> <p> </p> <!> <!> <div class="actions"><button type="submit" class="btn-primary"> </button> <!> <button type="button" class="btn-secondary">Cancel</button></div></form>`);function Pa(e,t){Ge(t,!0);function n(e){let t=e.is_persisted?e.persisted_value:e.effective_value;return t==null?``:e.field_type===`object`?JSON.stringify(t,null,2):String(t)}let r=F(L(J(()=>n(t.setting)))),i=F(null),a=F(!1);function o(e,t){let n=e.split(`.`),r={},i=r;for(let e of n.slice(0,-1))i[e]={},i=i[e];return i[n.at(-1)]=t,r}function s(){if(t.setting.choices.length>0)return q(r);if(t.setting.field_type===`integer`){let e=Number.parseInt(q(r),10);if(Number.isNaN(e))throw Error(`Enter a valid integer.`);return e}if(t.setting.field_type===`number`){let e=Number.parseFloat(q(r));if(Number.isNaN(e))throw Error(`Enter a valid number.`);return e}if(t.setting.field_type===`object`){if(q(r).trim()===``)return null;try{return JSON.parse(q(r))}catch{throw Error(`Enter valid JSON.`)}}return q(r)}async function c(e){e.preventDefault(),I(i,null),I(a,!0);try{let e=s();await Yi(`/settings`,o(t.setting.path,e)),t.onSaved(`save`)}catch(e){I(i,e.body?.detail??e.message,!0)}finally{I(a,!1)}}async function l(){I(i,null),I(a,!0);try{await qi(`/settings/reset`,{path:t.setting.path}),t.onSaved(`reset`)}catch(e){I(i,e.body?.detail??e.message,!0)}finally{I(a,!1)}}var u=Na(),d=z(u),f=B(d),p=V(d,2),m=B(p,!0),h=V(p,2),g=B(h,!0),_=V(h,2),v=e=>{var n=Oa();Yr(n,21,()=>t.setting.choices,e=>e.value,(e,t)=>{var n=Da(),r=B(n,!0),i={};H(()=>{Q(r,q(t).label),i!==(i=q(t).value)&&(n.value=(n.__value=i)??``)}),Z(e,n)}),j(n),ui(n),di(n,()=>q(r),e=>I(r,e)),Z(e,n)},y=e=>{var t=ka();ft(t),Ci(t,()=>q(r),e=>I(r,e)),Z(e,t)},b=e=>{var n=Aa();_i(n),H(()=>{yi(n,`type`,t.setting.field_type===`integer`||t.setting.field_type===`number`?`number`:`text`),yi(n,`step`,t.setting.field_type===`number`?`any`:void 0)}),Ci(n,()=>q(r),e=>I(r,e)),Z(e,n)};$(_,e=>{t.setting.choices.length>0?e(v):t.setting.field_type===`object`?e(y,1):e(b,-1)});var x=V(_,2),S=e=>{var t=ja(),n=B(t,!0);H(()=>Q(n,q(i))),Z(e,t)};$(x,e=>{q(i)&&e(S)});var C=V(x,2),w=z(C),T=B(w,!0),E=V(w,2),D=e=>{var t=Ma();H(()=>t.disabled=q(a)),Y(`click`,t,l),Z(e,t)};$(E,e=>{t.setting.is_persisted&&e(D)});var ee=V(E,2);j(C),j(u),H(()=>{Q(f,`Edit ${t.setting.label??``}`),Q(m,t.setting.path),Q(g,t.setting.description),w.disabled=q(a),Q(T,q(a)?`Saving…`:`Save`)}),Er(`submit`,u,c),Y(`click`,ee,function(...e){t.onCancel?.apply(this,e)}),Z(e,u),Ke()}Dr([`click`]);var Fa=X(`<p>Loading…</p>`),Ia=X(`<p class="error"> </p>`),La=X(`<span class="badge badge-configured">Configured</span>`),Ra=X(`<span class="badge badge-pinned">Pinned default</span>`),za=X(`<span class="badge badge-restart">Restart required</span>`),Ba=X(`<span class="badge badge-advanced">Advanced</span>`),Va=X(`<span class="path">—</span>`),Ha=X(`<button>Manage Speakers 🔊</button>`),Ua=X(`<button>Edit</button>`),Wa=X(`<tr><td><strong> </strong> <!> <!> <!> <!> <div class="path"> </div></td><td> </td><td><!></td><td> </td><td> </td><td><!></td></tr>`),Ga=X(`<h3> </h3> <table><thead><tr><th>Setting</th><th>Default</th><th>Persisted</th><th>Effective value</th><th>Source</th><th></th></tr></thead><tbody></tbody></table>`,1),Ka=X(`<!> <!>`,1),qa=X(`<h2>Settings</h2> <!>`,1);function Ja(e,t){Ge(t,!0);let n=F(L([])),r=F(null),i=F(!0),a=F(null),o=F(null);async function s(){I(i,!0);try{let e=await Ki(`/settings/displays`);I(n,e.settings,!0),I(r,e.effective_settings_error,!0),I(a,null)}catch(e){I(a,e.message,!0)}finally{I(i,!1)}}Mi(s);function c(e){let t=[];for(let n of e){let e=t.at(-1);e&&e.section===n.section?e.entries.push(n):t.push({section:n.section,label:n.section_label,entries:[n]})}return t}function l(e){return e==null?`null`:typeof e==`object`?JSON.stringify(e):String(e)}let u=wt(()=>c(q(n))),d=wt(()=>q(n).find(e=>e.path===q(o))??null);function f(e){I(o,e,!0)}function p(){I(o,null)}async function m(e){I(o,null),await s(),e===`save`?Bi.showToast(`⚙️ Settings saved.`):e===`reset`&&Bi.showToast(`⚙️ Settings reset to default.`)}var h=qa(),g=V(mn(h),2),_=e=>{Pa(e,{get setting(){return q(d)},onSaved:m,onCancel:p})},v=e=>{Z(e,Fa())},y=e=>{var t=Ia(),n=B(t,!0);H(()=>Q(n,q(a))),Z(e,t)},b=e=>{var n=Ka(),i=mn(n),a=e=>{var t=Ia(),n=B(t);H(()=>Q(n,`${q(r)??``} Persisted overrides are still shown below.`)),Z(e,t)};$(i,e=>{q(r)&&e(a)}),Yr(V(i,2),17,()=>q(u),e=>e.section,(e,n)=>{var r=Ga(),i=mn(r),a=B(i,!0),o=V(i,2),s=V(z(o));Yr(s,21,()=>q(n).entries,e=>e.path,(e,n)=>{var r=Wa(),i=z(r),a=z(i),o=B(a,!0),s=V(a,2),c=e=>{Z(e,La())};$(s,e=>{q(n).is_persisted&&e(c)});var u=V(s,2),d=e=>{Z(e,Ra())};$(u,e=>{q(n).is_pinned_default&&e(d)});var p=V(u,2),m=e=>{Z(e,za())};$(p,e=>{q(n).requires_restart&&e(m)});var h=V(p,2),g=e=>{Z(e,Ba())};$(h,e=>{q(n).advanced&&e(g)});var _=B(V(h,2),!0);j(i);var v=V(i),y=B(v,!0),b=V(v),x=z(b),S=e=>{var t=Fr();H(e=>Q(t,e),[()=>l(q(n).persisted_value)]),Z(e,t)},C=e=>{Z(e,Va())};$(x,e=>{q(n).is_persisted?e(S):e(C,-1)}),j(b);var w=V(b),T=B(w,!0),E=V(w),D=B(E,!0),ee=V(E),te=z(ee),ne=e=>{var n=Ha();Y(`click`,n,()=>t.onManageSpeakers?.()),Z(e,n)},re=e=>{var t=Ua();Y(`click`,t,()=>f(q(n).path)),Z(e,t)};$(te,e=>{q(n).path===`jukebox.player.sonos.selected_group`?e(ne):e(re,-1)}),j(ee),j(r),H((e,t)=>{Q(o,q(n).label),Q(_,q(n).path),Q(y,e),Q(T,t),Q(D,q(n).provenance)},[()=>l(q(n).default_value),()=>l(q(n).effective_value)]),Z(e,r)}),j(s),j(o),H(()=>Q(a,q(n).label)),Z(e,r)}),Z(e,n)};$(g,e=>{q(d)?e(_):q(i)?e(v,1):q(a)?e(y,2):e(b,-1)}),Z(e,h),Ke()}Dr([`click`]);var Ya=X(`<label class="checkbox"><input type="checkbox"/> </label>`),Xa=X(`<option> </option>`),Za=X(`<p class="error"> </p>`),Qa=X(`<form><h3>Edit Sonos Selection</h3> <p>Choose one or more visible speakers and select the coordinator used for playback.</p> <p>Changes take effect after restart.</p> <fieldset><legend>Speakers</legend> <!></fieldset> <label>Coordinator <select></select></label> <!> <div class="actions"><button type="submit" class="btn-primary"> </button> <button type="button" class="btn-secondary">Cancel</button></div></form>`);function $a(e,t){Ge(t,!0);function n(){return t.selectedGroup?t.selectedGroup.members.map(e=>e.uid):t.speakers[0]?[t.speakers[0].uid]:[]}let r=F(L(J(()=>new Set(n())))),i=F(L(J(()=>t.selectedGroup?.coordinator_uid??n()[0]??``))),a=F(null),o=F(!1);function s(e){let t=new Set(q(r));t.has(e)?t.delete(e):t.add(e),I(r,t,!0)}async function c(e){e.preventDefault(),I(a,null),I(o,!0);try{await Ji(`/sonos/selection`,{uids:[...q(r)],coordinator_uid:q(i)}),t.onSaved()}catch(e){I(a,e.body?.detail??e.message,!0)}finally{I(o,!1)}}var l=Qa(),u=V(z(l),6);Yr(V(z(u),2),17,()=>t.speakers,e=>e.uid,(e,t)=>{var n=Ya(),i=z(n);_i(i);var a=V(i);j(n),H(e=>{vi(i,e),Q(a,` ${q(t).name??``} (${q(t).host??``})`)},[()=>q(r).has(q(t).uid)]),Y(`change`,i,()=>s(q(t).uid)),Z(e,n)}),j(u);var d=V(u,2),f=V(z(d));Yr(f,21,()=>t.speakers,e=>e.uid,(e,t)=>{var n=Xa(),r=B(n),i={};H(()=>{Q(r,`${q(t).name??``} (${q(t).host??``})`),i!==(i=q(t).uid)&&(n.value=(n.__value=i)??``)}),Z(e,n)}),j(f),ui(f),j(d);var p=V(d,2),m=e=>{var t=Za(),n=B(t,!0);H(()=>Q(n,q(a))),Z(e,t)};$(p,e=>{q(a)&&e(m)});var h=V(p,2),g=z(h),_=B(g,!0),v=V(g,2);j(h),j(l),H(()=>{g.disabled=q(o),Q(_,q(o)?`Saving…`:`Save`)}),Er(`submit`,l,c),di(f,()=>q(i),e=>I(i,e)),Y(`click`,v,function(...e){t.onCancel?.apply(this,e)}),Z(e,l),Ke()}Dr([`change`,`click`]);var eo=X(`<p>Loading…</p>`),to=X(`<p class="error"> </p>`),no=X(`<p>No Sonos speaker selection is currently saved.</p>`),ro=X(`<p> </p> <p> </p> <p> </p>`,1),io=X(`<button class="btn-danger">Clear saved selection</button>`),ao=X(`<p>No visible Sonos speakers found.</p>`),oo=X(`<tr><td> </td><td> </td><td> </td><td class="center"> </td></tr>`),so=X(`<table><thead><tr><th>Name</th><th>Host</th><th>Household</th><th>Selection</th></tr></thead><tbody></tbody></table>`),co=X(`<h3>Discovered speakers</h3> <!>`,1),lo=X(`<!> <div class="panel"><h3>Saved selection</h3> <!></div> <div class="row-actions"><button>Edit selection</button> <!></div> <!>`,1),uo=X(`<h2>Sonos</h2> <!>`,1);function fo(e,t){Ge(t,!0);let n={available:`Available`,partial:`Partially available`,unavailable:`Unavailable`,not_selected:`Not selected`},r=F(null),i=F(L([])),a=F(!0),o=F(null),s=F(null),c=F(!1);async function l(){I(a,!0),I(o,null),I(s,null);try{I(r,await Ki(`/sonos/selection`),!0),I(i,await Ki(`/sonos/speakers`),!0)}catch(e){e instanceof Wi&&e.status===502?I(o,e.body?.detail??`Sonos discovery unavailable.`,!0):I(s,e.message,!0)}finally{I(a,!1)}}Mi(l);let u=wt(()=>Object.fromEntries(q(i).map(e=>[e.uid,e])));function d(e){let t=q(u)[e];return t?`${t.name} [${e}]`:e}function f(e){let t=q(r)?.selected_group;return t?t.coordinator_uid===e?`Coordinator`:t.members.some(t=>t.uid===e)?`Selected`:`Available`:`Available`}function p(){I(c,!0)}function m(){I(c,!1)}async function h(){I(c,!1),await l(),Bi.showToast(`🔊 Sonos settings saved.`)}async function g(){await qi(`/settings/reset`,{path:`jukebox.player.sonos.selected_group`}),await l(),Bi.showToast(`🔊 Selection cleared.`)}var _=uo(),v=V(mn(_),2),y=e=>{{let t=wt(()=>q(r)?.selected_group??null);$a(e,{get speakers(){return q(i)},get selectedGroup(){return q(t)},onSaved:h,onCancel:m})}},b=e=>{Z(e,eo())},x=e=>{var t=to(),n=B(t,!0);H(()=>Q(n,q(s))),Z(e,t)},S=e=>{var t=lo(),a=mn(t),s=e=>{var t=to(),n=B(t);H(()=>Q(n,`Sonos discovery unavailable: ${q(o)??``}`)),Z(e,t)};$(a,e=>{q(o)&&e(s)});var c=V(a,2),l=V(z(c),2),u=e=>{Z(e,no())},m=e=>{var t=ro(),i=mn(t),a=B(i),o=V(i,2),s=B(o),c=B(V(o,2));H((e,t)=>{Q(a,`Status: ${n[q(r).availability.status]??q(r).availability.status??``}`),Q(s,`Coordinator: ${e??``}`),Q(c,`Members: ${t??``}`)},[()=>d(q(r).selected_group.coordinator_uid),()=>q(r).selected_group.members.map(e=>d(e.uid)).join(`, `)]),Z(e,t)};$(l,e=>{q(r)?.selected_group?e(m,-1):e(u)}),j(c);var h=V(c,2),_=z(h),v=V(_,2),y=e=>{var t=io();Y(`click`,t,g),Z(e,t)};$(v,e=>{q(r)?.selected_group&&e(y)}),j(h);var b=V(h,2),x=e=>{var t=co(),n=V(mn(t),2),r=e=>{Z(e,ao())},a=e=>{var t=so(),n=V(z(t));Yr(n,21,()=>q(i),e=>e.uid,(e,t)=>{var n=oo(),r=z(n),i=B(r,!0),a=V(r),o=B(a,!0),s=V(a),c=B(s,!0),l=B(V(s),!0);j(n),H(e=>{Q(i,q(t).name),Q(o,q(t).host),Q(c,q(t).household_id),Q(l,e)},[()=>f(q(t).uid)]),Z(e,n)}),j(n),j(t),Z(e,t)};$(n,e=>{q(i).length===0?e(r):e(a,-1)}),Z(e,t)};$(b,e=>{q(o)||e(x)}),Y(`click`,_,p),Z(e,t)};$(v,e=>{q(c)?e(y):q(a)?e(b,1):q(s)?e(x,2):e(S,-1)}),Z(e,_),Ke()}Dr([`click`]);var po=X(`<button> </button>`),mo=X(`<!> <!> <nav></nav> <main><!></main> <footer><a href="https://github.com/Gudsfile/jukebox" target="_blank" rel="noopener noreferrer">Jukebox made with ❤️ & 💿 · View on GitHub</a></footer>`,1);function ho(e){let t=[`library`,`settings`,`sonos`],n=F(`library`),r=F(null);function i(e){I(r,e,!0),I(n,`library`)}function a(){I(r,null)}function o(){I(n,`sonos`)}var s=mo(),c=mn(s);Li(c,{onEditDisc:e=>i({type:`edit`,tagId:e}),onAddDisc:e=>i({type:`create`,tagId:e})});var l=V(c,2);Hi(l,{});var u=V(l,2);Yr(u,20,()=>t,e=>e,(e,t)=>{var r=po();let i;var a=B(r,!0);H(()=>{i=oi(r,1,``,null,i,{active:q(n)===t}),Q(a,t)}),Y(`click`,r,()=>I(n,t,!0)),Z(e,r)}),j(u);var d=V(u,2),f=z(d),p=e=>{Ea(e,{get intent(){return q(r)},onIntentConsumed:a})},m=e=>{Ja(e,{onManageSpeakers:o})},h=e=>{fo(e,{})};$(f,e=>{q(n)===`library`?e(p):q(n)===`settings`?e(m,1):q(n)===`sonos`&&e(h,2)}),j(d),we(2),Z(e,s)}Dr([`click`]),Vr(ho,{target:document.getElementById(`app`)});
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<link rel="icon" type="image/svg+xml" href="/ui/favicon.svg" />
|
|
6
6
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
7
7
|
<title>Jukebox Admin</title>
|
|
8
|
-
<script type="module" crossorigin src="/ui/assets/index-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="/ui/assets/index-
|
|
8
|
+
<script type="module" crossorigin src="/ui/assets/index-Cr5mFgv5.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="/ui/assets/index-C7hT6tbu.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
<div id="app"></div>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
:root{--text:#6b6153;--text-h:#1e1912;--bg:#fbf6ec;--border:#e4dcc9;--accent:#a6690e;--accent-bg:#a6690e1a;--danger:#a83324;--state-known:#1f8f80;--state-known-bg:#1f8f801f;--state-unknown:#93307d;--state-unknown-bg:#93307d1f;--success:#1f8f80;--success-text:#fbf6ec;--sans:system-ui, "Segoe UI", Roboto, sans-serif;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;font:16px/145% var(--sans);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;color:var(--text);background:var(--bg)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--text:#a79e8e;--text-h:#f2ece1;--bg:#17140f;--border:#3a3327;--accent:#e8a33d;--accent-bg:#e8a33d26;--danger:#c4432e;--state-known:#2fb8a6;--state-known-bg:#2fb8a626;--state-unknown:#b3489a;--state-unknown-bg:#b3489a26;--success:#2fb8a6;--success-text:#17140f}}html,body{height:100%;margin:0}#app{flex-direction:column;min-height:100%;display:flex}h1,h2{color:var(--text-h);font-weight:500}.page-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.page-header h2{margin:0}button{font:inherit;color:var(--bg);background:var(--text-h);border:1px solid var(--text-h);cursor:pointer;border-radius:6px;padding:6px 14px}button:hover{opacity:.85}button:disabled{opacity:.5;cursor:not-allowed}button.btn-danger{color:#fff;background:var(--danger);border-color:var(--danger)}button.btn-primary{color:#fff;background:var(--accent);border-color:var(--accent)}button.btn-secondary{color:var(--text);border-color:var(--border);background:0 0}nav{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:8px;padding:12px 20px;display:flex}nav button{color:inherit;border-color:var(--border);text-transform:capitalize;background:0 0}nav button.active{color:var(--accent);background:var(--accent-bg);border-color:var(--accent)}main{flex:1;padding:20px}footer{text-align:center;padding:16px 20px 24px;font-size:.75em}footer a{color:var(--text);text-decoration:none;transition:color .2s}footer a:hover{color:var(--text-h)}.row-actions{white-space:nowrap;gap:6px;display:flex}.center{text-align:center}.type{white-space:nowrap}.type-label{margin-left:4px}.tag{font-family:var(--mono);color:var(--text);font-size:.85em}.spin-cell{text-align:center}.tag-spin{animation:2s linear infinite spin;display:inline-block}@media (prefers-reduced-motion:reduce){.tag-spin{animation:none}}@keyframes spin{to{transform:rotate(360deg)}}.title{text-align:center;min-width:180px}@media (width<=480px){.type-label{display:none}.uri-text{max-width:3ch}}.shuffle-icon{opacity:.3;filter:grayscale()}.shuffle-icon.active{opacity:1;filter:none}.uri{font-family:var(--mono);color:var(--text);font-size:.85em}.uri-row{align-items:center;gap:4px;max-width:100%;display:inline-flex}.uri-text{text-overflow:ellipsis;white-space:nowrap;max-width:40ch;display:block;overflow:hidden}.uri-copy{color:var(--text);background:0 0;border:none;border-radius:0;flex-shrink:0;padding:0 2px;font-size:.9em;line-height:1}.uri-copy:hover{color:var(--accent);opacity:1}table.discs{table-layout:fixed}.banner{border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}.banner h4{color:var(--text-h);margin:0}.banner p{margin:4px 0 0}.banner-info{background:var(--state-known-bg);border-left:3px solid var(--state-known)}.banner-warning{background:var(--state-unknown-bg);border-left:3px solid var(--state-unknown)}.error{color:#d33}.path{color:var(--text);opacity:.75;font-size:.85em}.badge{white-space:nowrap;border:1px solid;border-radius:999px;margin-left:6px;padding:1px 6px;font-size:.7em;font-weight:600;line-height:1.4;display:inline-block}.badge-configured{color:var(--state-known)}.badge-pinned{color:var(--text)}.badge-restart{color:var(--danger)}.badge-advanced{color:var(--accent)}table{border-collapse:collapse;width:100%;margin-bottom:16px;display:block;overflow-x:auto}th,td{text-align:left;border-bottom:1px solid var(--border);padding:6px 10px}form{max-width:480px}form>label,form>.checkbox{margin-bottom:12px;display:block}label{color:var(--text-h);font-weight:500}input,select,textarea{width:100%;font:inherit;color:inherit;background:var(--bg);border:1px solid var(--border);box-sizing:border-box;border-radius:6px;margin-top:4px;padding:6px 10px;display:block}fieldset{border:1px solid var(--border);border-radius:6px;margin:0 0 12px;padding:10px 14px}legend{color:var(--text-h);padding:0 4px;font-weight:500}.checkbox{align-items:center;gap:8px;margin-bottom:6px;font-weight:400;display:flex}.checkbox input{width:auto;margin:0;display:inline}.panel{border:1px solid var(--border);border-radius:6px;margin-bottom:16px;padding:12px 16px}.panel h3{margin-top:0}.actions{gap:8px;margin-top:12px;display:flex}.toast.svelte-1cpok13{background-color:var(--success);color:var(--success-text);z-index:1000;border-radius:.5rem;align-items:center;gap:1rem;padding:1rem;animation:.3s ease-out svelte-1cpok13-slideIn;display:flex;position:fixed;bottom:1rem;right:1rem;box-shadow:0 2px 8px #0000001a}@keyframes svelte-1cpok13-slideIn{0%{opacity:0;transform:translate(400px)}to{opacity:1;transform:translate(0)}}.toast.svelte-1cpok13 p:where(.svelte-1cpok13){margin:0}.toast.svelte-1cpok13 button:where(.svelte-1cpok13){cursor:pointer;color:var(--success-text);background:0 0;border:none;padding:0;font-size:1rem;line-height:1}.toast.svelte-1cpok13 button:where(.svelte-1cpok13):hover{opacity:.7}
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
(function(){let e=document.createElement(`link`).relList;if(e&&e.supports&&e.supports(`modulepreload`))return;for(let e of document.querySelectorAll(`link[rel="modulepreload"]`))n(e);new MutationObserver(e=>{for(let t of e)if(t.type===`childList`)for(let e of t.addedNodes)e.tagName===`LINK`&&e.rel===`modulepreload`&&n(e)}).observe(document,{childList:!0,subtree:!0});function t(e){let t={};return e.integrity&&(t.integrity=e.integrity),e.referrerPolicy&&(t.referrerPolicy=e.referrerPolicy),t.credentials=e.crossOrigin===`use-credentials`?`include`:e.crossOrigin===`anonymous`?`omit`:`same-origin`,t}function n(e){if(e.ep)return;e.ep=!0;let n=t(e);fetch(e.href,n)}})();var e=Array.isArray,t=Array.prototype.indexOf,n=Array.prototype.includes,r=Array.from,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyDescriptors,s=Object.prototype,c=Array.prototype,l=Object.getPrototypeOf,u=Object.isExtensible,d=()=>{};function f(e){return e()}function p(e){for(var t=0;t<e.length;t++)e[t]()}function m(){var e,t;return{promise:new Promise((n,r)=>{e=n,t=r}),resolve:e,reject:t}}function h(e,t){if(Array.isArray(e))return e;if(t===void 0||!(Symbol.iterator in e))return Array.from(e);let n=[];for(let r of e)if(n.push(r),n.length===t)break;return n}var g=1024,_=2048,v=4096,y=8192,b=16384,x=32768,S=1<<25,C=65536,w=1<<19,T=1<<20,E=1<<25,ee=65536,te=1<<21,ne=1<<22,re=1<<23,D=Symbol(`$state`),ie=Symbol(`component`),ae=Symbol(`legacy props`),oe=Symbol(``),se=Symbol(`attributes`),ce=Symbol(`class`),le=Symbol(`style`),ue=Symbol(`text`),de=Symbol(`form reset`),fe=new class extends Error{name=`StaleReactionError`;message="The reaction that called `getAbortSignal()` was re-run or destroyed"},pe=!!globalThis.document?.contentType&&globalThis.document.contentType.includes(`xml`),me={},O=Symbol(`uninitialized`),he=`http://www.w3.org/1999/xhtml`;function ge(){console.warn(`https://svelte.dev/e/derived_inert`)}function _e(e){console.warn(`https://svelte.dev/e/hydration_mismatch`)}function ve(){console.warn(`https://svelte.dev/e/select_multiple_invalid_value`)}function ye(){console.warn(`https://svelte.dev/e/svelte_boundary_reset_noop`)}var k=!1;function be(e){k=e}var A;function xe(e){if(e===null)throw _e(),me;return A=e}function Se(){return xe(fn(A))}function j(e){if(k){if(fn(A)!==null)throw _e(),me;A=e}}function Ce(e=1){if(k){for(var t=e,n=A;t--;)n=fn(n);A=n}}function we(e=!0){for(var t=0,n=A;;){if(n.nodeType===8){var r=n.data;if(r===`]`){if(t===0)return n;--t}else(r===`[`||r===`[!`||r[0]===`[`&&!isNaN(Number(r.slice(1))))&&(t+=1)}var i=fn(n);e&&n.remove(),n=i}}function Te(e){if(!e||e.nodeType!==8)throw _e(),me;return e.data}function Ee(e){return e===this.v}function De(e,t){return e==e?e!==t||typeof e==`object`&&!!e||typeof e==`function`:t==t}function Oe(e){return!De(e,this.v)}function ke(e){throw Error(`https://svelte.dev/e/lifecycle_outside_component`)}function Ae(){throw Error(`https://svelte.dev/e/async_derived_orphan`)}function je(e,t,n){throw Error(`https://svelte.dev/e/each_key_duplicate`)}function Me(e){throw Error(`https://svelte.dev/e/effect_in_teardown`)}function Ne(){throw Error(`https://svelte.dev/e/effect_in_unowned_derived`)}function Pe(e){throw Error(`https://svelte.dev/e/effect_orphan`)}function Fe(){throw Error(`https://svelte.dev/e/effect_update_depth_exceeded`)}function Ie(e){throw Error(`https://svelte.dev/e/props_invalid_value`)}function Le(){throw Error(`https://svelte.dev/e/state_descriptors_fixed`)}function Re(){throw Error(`https://svelte.dev/e/state_prototype_fixed`)}function ze(){throw Error(`https://svelte.dev/e/state_unsafe_mutation`)}function Be(){throw Error(`https://svelte.dev/e/svelte_boundary_reset_onerror`)}var Ve=!1;function He(){Ve=!0}var M=null;function Ue(e){M=e}function We(e,t=!1,n){M={p:M,i:!1,c:null,e:null,s:e,x:null,r:G,l:Ve&&!t?{s:null,u:null,$:[]}:null}}function Ge(e){var t=M,n=t.e;if(n!==null){t.e=null;for(var r of n)En(r)}return e!==void 0&&(t.x=e),t.i=!0,M=t.p,Ke(e)}function Ke(e={}){return i(e,ie,{value:!0}),e}function qe(){return!Ve||M!==null&&M.l===null}var Je=[];function Ye(){var e=Je;Je=[],p(e)}function Xe(e){if(Je.length===0&&!Pt){var t=Je;queueMicrotask(()=>{t===Je&&Ye()})}Je.push(e)}function Ze(){for(;Je.length>0;)Ye()}var Qe=~(_|v|g);function N(e,t){e.f=e.f&Qe|t}function $e(e){e.f&512||e.deps===null?N(e,g):N(e,v)}function et(e){if(e!==null)for(let t of e)!(t.f&2)||!(t.f&65536)||(t.f^=ee,et(t.deps))}function tt(e,t,n){e.f&2048?t.add(e):e.f&4096&&n.add(e),et(e.deps),N(e,g)}function nt(e,t,n){if(e==null)return t(void 0),n&&n(void 0),d;let r=J(()=>e.subscribe(t,n));return r.unsubscribe?()=>r.unsubscribe():r}var rt=[];function it(e,t=d){let n=null,r=new Set;function i(t){if(De(e,t)&&(e=t,n)){let t=!rt.length;for(let t of r)t[1](),rt.push(t,e);if(t){for(let e=0;e<rt.length;e+=2)rt[e][0](rt[e+1]);rt.length=0}}}function a(t){i(t(e))}function o(o,s=d){let c=[o,s];return r.add(c),r.size===1&&(n=t(i,a)||d),o(e),()=>{r.delete(c),r.size===0&&n&&(n(),n=null)}}return{set:i,update:a,subscribe:o}}function at(e){let t;return nt(e,e=>t=e)(),t}var ot=!1,st=Symbol(`unmounted`);function ct(e,t,n){let r=n[t]??={store:null,source:Qt(void 0),unsubscribe:d};if(r.store!==e&&!(st in n)){if(r.unsubscribe(),r.store=e??null,e==null)r.source.v=void 0,r.unsubscribe=d;else{var i=!0;r.unsubscribe=nt(e,e=>{i?r.source.v=e:I(r.source,e)}),i=!1}}return e&&st in n?at(e):q(r.source)}function lt(){let e={};function t(){wn(()=>{for(var t in e)e[t].unsubscribe();i(e,st,{enumerable:!1,value:!0})})}return[e,t]}function ut(e){var t=ot;try{return ot=!1,[e(),ot]}finally{ot=t}}function dt(e){k&&dn(e)!==null&&mn(e)}var ft=!1;function pt(){ft||(ft=!0,document.addEventListener(`reset`,e=>{Promise.resolve().then(()=>{if(!e.defaultPrevented)for(let t of e.target.elements)t[de]?.()})},{capture:!0}))}function mt(e){var t=W,n=G;Yn(null),Xn(null);try{return e()}finally{Yn(t),Xn(n)}}function ht(e,t,n,r=n){e.addEventListener(t,()=>mt(n));let i=e[de];e[de]=i?()=>{i(),r(!0)}:()=>r(!0),pt()}function gt(e,t,n,r){let i=qe()?bt:wt;var a=e.filter(e=>!e.settled),o=t.map(i);if(n.length===0&&a.length===0){r(o);return}var s=G,c=_t(),l=a.length===1?a[0].promise:a.length>1?Promise.all(a.map(e=>e.promise)):null;function u(e){if(!(s.f&16384)){c();try{r([...o,...e])}catch(e){yn(e,s)}vt()}}var d=yt();if(n.length===0){l.then(()=>u([])).finally(d);return}function f(){Promise.all(n.map(e=>St(e))).then(u).catch(e=>yn(e,s)).finally(d)}l?l.then(()=>{c(),f(),vt()}):f()}function _t(){var e=G,t=W,n=M,r=P;return function(i=!0){Xn(e),Yn(t),Ue(n),i&&!(e.f&16384)&&(r?.activate(),r?.apply())}}function vt(e=!0){Xn(null),Yn(null),Ue(null),e&&P?.deactivate()}function yt(){var e=G,t=e.b,n=P,r=!!t?.is_rendered();return t?.update_pending_count(1,n),n.increment(r,e),()=>{t?.update_pending_count(-1,n),n.decrement(r,e)}}function bt(e){var t=2|_;return G!==null&&(G.f|=w),{ctx:M,deps:null,effects:null,equals:Ee,f:t,fn:e,reactions:null,rv:0,v:O,wv:0,parent:G,ac:null}}var xt=Symbol(`obsolete`);function St(e,t,n){let r=G;r===null&&Ae();var i=void 0,a=Zt(O),o=!W,s=new Set;return An(()=>{var t=G,n=m();i=n.promise;try{Promise.resolve(e()).then(n.resolve,e=>{e!==fe&&n.reject(e)}).finally(vt)}catch(e){n.reject(e),vt()}var c=P;if(o){if(t.f&32768)var l=yt();if(r.b?.is_rendered())c.async_deriveds.get(t)?.reject(xt);else for(let e of s.values())e.reject(xt);s.add(n),c.async_deriveds.set(t,n)}let u=(e,t=void 0)=>{l?.(),s.delete(n),t!==xt&&(c.activate(),t?(a.f|=re,$t(a,t)):(a.f&8388608&&(a.f^=re),$t(a,e)),c.deactivate())};n.promise.then(u,e=>u(null,e||`unknown`))}),wn(()=>{for(let e of s)e.reject(xt)}),new Promise(e=>{function t(n){function r(){n===i?e(a):t(i)}n.then(r,r)}t(i)})}function Ct(e){let t=bt(e);return Qn(t),t}function wt(e){let t=bt(e);return t.equals=Oe,t}function Tt(e){var t=e.effects;if(t!==null){e.effects=null;for(var n=0;n<t.length;n+=1)U(t[n])}}function Et(e){var t,n=G,r=e.parent;if(!Kn&&r!==null&&e.v!==O&&r.f&24576)return ge(),e.v;Xn(r);try{e.f&=~ee,Tt(e),t=lr(e)}finally{Xn(n)}return t}function Dt(e){var t=Et(e);if(!e.equals(t)&&(e.wv=or(),(!P?.is_fork||e.deps===null)&&(P===null?e.v=t:(P.capture(e,t,!0),jt?.capture(e,t,!0)),e.deps===null))){N(e,g);return}Kn||(Mt===null?$e(e):(Cn()||P?.is_fork)&&Mt.set(e,t))}function Ot(e){if(e.effects!==null)for(let t of e.effects)(t.teardown||t.ac)&&(t.teardown?.(),t.ac!==null&&mt(()=>{t.ac.abort(fe),t.ac=null}),t.fn!==null&&(t.teardown=d),fr(t,0),Fn(t))}function kt(e){if(e.effects!==null)for(let t of e.effects)t.teardown&&t.fn!==null&&pr(t)}var At=null,P=null,jt=null,Mt=null,Nt=null,Pt=!1,Ft=!1,It=null,Lt=null,Rt=0,zt=1,Bt=class e{id=zt++;#e=!1;linked=!0;#t=null;#n=null;async_deriveds=new Map;current=new Map;previous=new Map;#r=new Set;#i=new Set;#a=0;#o=new Map;#s=null;#c=[];#l=[];#u=new Set;#d=new Set;#f=new Map;#p=new Set;is_fork=!1;#m=!1;constructor(){At===null?At=this:(At.#n=this,this.#t=At),At=this}#h(){if(this.is_fork)return!0;for(let n of this.#o.keys()){for(var e=n,t=!1;e.parent!==null;){if(this.#f.has(e)){t=!0;break}e=e.parent}if(!t)return!0}return!1}skip_effect(e){this.#f.has(e)||this.#f.set(e,{d:[],m:[]}),this.#p.delete(e)}unskip_effect(e,t=e=>this.schedule(e)){var n=this.#f.get(e);if(n){this.#f.delete(e);for(var r of n.d)N(r,_),t(r);for(r of n.m)N(r,v),t(r)}this.#p.add(e)}#g(){this.#e=!0,Rt++>1e3&&(this.#x(),Ht());for(let e of this.#u)this.#d.delete(e),N(e,_),this.schedule(e);for(let e of this.#d)N(e,v),this.schedule(e);let t=this.#c;this.#c=[],this.apply();var n=It=[],r=[],i=Lt=[];for(let e of t)try{this.#_(e,n,r)}catch(t){throw qt(e),this.#h()||this.discard(),t}if(P=null,i.length>0){var a=e.ensure();for(let e of i)a.schedule(e)}if(It=null,Lt=null,this.#h()){this.#b(r),this.#b(n);for(let[e,t]of this.#f)Kt(e,t);i.length>0&&P.#g();return}let o=this.#v();if(o){this.#b(r),this.#b(n),o.#y(this);return}this.#u.clear(),this.#d.clear();for(let e of this.#r)e(this);this.#r.clear(),jt=this,Wt(r),Wt(n),jt=null,this.#s?.resolve();var s=P;if(this.#a===0&&(this.#c.length===0||s!==null)&&this.#x(),this.#c.length>0){if(s!==null){let e=s;e.#c.push(...this.#c.filter(t=>!e.#c.includes(t)))}else s=this}s!==null&&(Yt.clear(),s.#g())}#_(e,t,n){e.f^=g;for(var r=e.first;r!==null;){var i=r.f,a=!!(i&96);if(!(a&&i&1024||i&8192||this.#f.has(r))&&r.fn!==null){a?r.f^=g:i&4?t.push(r):sr(r)&&(i&16&&this.#d.add(r),pr(r));var o=r.first;if(o!==null){r=o;continue}}for(;r!==null;){var s=r.next;if(s!==null){r=s;break}r=r.parent}}}#v(){for(var e=this.#t;e!==null;){if(!e.is_fork){for(let[t,[,n]]of this.current)if(e.current.has(t)&&!n)return e}e=e.#t}return null}#y(e){for(let[t,n]of e.current)!this.previous.has(t)&&e.previous.has(t)&&this.previous.set(t,e.previous.get(t)),this.current.set(t,n);for(let[t,n]of e.async_deriveds){let e=this.async_deriveds.get(t);e&&n.promise.then(e.resolve).catch(e.reject)}e.async_deriveds.clear(),this.transfer_effects(e.#u,e.#d);let t=e=>{var n=e.reactions;if(n!==null&&!(e.f&2&&!(e.f&6144)))for(let e of n){var r=e.f;if(r&2)t(e);else{var i=e;r&4194320&&!this.async_deriveds.has(i)&&(this.#d.delete(i),N(i,_),this.schedule(i))}}};for(let e of this.current.keys())t(e);this.oncommit(()=>e.discard()),e.#x(),P=this,this.#g()}#b(e){for(var t=0;t<e.length;t+=1)tt(e[t],this.#u,this.#d)}capture(e,t,n=!1){e.v!==O&&!this.previous.has(e)&&this.previous.set(e,e.v),e.f&8388608||(this.current.set(e,[t,n]),Mt?.set(e,t)),this.is_fork||(e.v=t)}activate(){P=this}deactivate(){P=null,Mt=null}flush(){try{Ft=!0,P=this,this.#g()}finally{Rt=0,Nt=null,It=null,Lt=null,Ft=!1,P=null,Mt=null,Yt.clear()}}discard(){for(let e of this.#i)e(this);this.#i.clear();for(let e of this.async_deriveds.values())e.reject(xt);this.#x(),this.#s?.resolve()}register_created_effect(e){this.#l.push(e)}increment(e,t){if(this.#a+=1,e){let e=this.#o.get(t)??0;this.#o.set(t,e+1)}}decrement(e,t){if(--this.#a,e){let e=this.#o.get(t)??0;e===1?this.#o.delete(t):this.#o.set(t,e-1)}this.#m||(this.#m=!0,Xe(()=>{this.#m=!1,this.linked&&this.flush()}))}transfer_effects(e,t){for(let t of e)this.#u.add(t);for(let e of t)this.#d.add(e);e.clear(),t.clear()}oncommit(e){this.#r.add(e)}ondiscard(e){this.#i.add(e)}settled(){return(this.#s??=m()).promise}static ensure(){if(P===null){let t=P=new e;!Ft&&!Pt&&Xe(()=>{t.#e||t.flush()})}return P}apply(){Mt=null}schedule(e){if(Nt=e,e.b?.is_pending&&e.f&16777228&&!(e.f&32768)){e.b.defer_effect(e);return}for(var t=e;t.parent!==null;){t=t.parent;var n=t.f;if(It!==null&&t===G&&(W===null||!(W.f&2)))return;if(n&96){if(!(n&1024))return;t.f^=g}}this.#c.push(t)}#x(){if(this.linked){var e=this.#t,t=this.#n;e===null||(e.#n=t),t===null?At=e:t.#t=e,this.linked=!1}}};function Vt(e){var t=Pt;Pt=!0;try{var n;for(e&&(P!==null&&!P.is_fork&&P.flush(),n=e());;){if(Ze(),P===null)return n;P.flush()}}finally{Pt=t}}function Ht(){try{Fe()}catch(e){yn(e,Nt)}}var Ut=null;function Wt(e){var t=e.length;if(t!==0){for(var n=0;n<t;){var r=e[n++];if(!(r.f&24576)&&sr(r)&&(Ut=new Set,pr(r),r.deps===null&&r.first===null&&r.nodes===null&&r.teardown===null&&r.ac===null&&Rn(r),Ut?.size>0)){Yt.clear();for(let e of Ut){if(e.f&24576)continue;let t=[e],n=e.parent;for(;n!==null;)Ut.has(n)&&(Ut.delete(n),t.push(n)),n=n.parent;for(let e=t.length-1;e>=0;e--){let n=t[e];n.f&24576||pr(n)}}Ut.clear()}}Ut=null}}function Gt(e){P.schedule(e)}function Kt(e,t){if(!(e.f&32&&e.f&1024)){e.f&2048?t.d.push(e):e.f&4096&&t.m.push(e),N(e,g);for(var n=e.first;n!==null;)Kt(n,t),n=n.next}}function qt(e){N(e,g);for(var t=e.first;t!==null;)qt(t),t=t.next}var Jt=new Set,Yt=new Map,Xt=!1;function Zt(e,t){return{f:0,v:e,reactions:null,equals:Ee,rv:0,wv:0}}function F(e,t){let n=Zt(e,t);return Qn(n),n}function Qt(e,t=!1,n=!0){let r=Zt(e);return t||(r.equals=Oe),Ve&&n&&M!==null&&M.l!==null&&(M.l.s??=[]).push(r),r}function I(e,t,n=!1){return W!==null&&(!Jn||W.f&131072)&&qe()&&W.f&4325394&&(Zn===null||!Zn.has(e))&&ze(),$t(e,n?L(t):t,Lt)}function $t(e,t,n=null){if(!e.equals(t)){Kn?Yt.set(e,t):Yt.has(e)||Yt.set(e,e.v);var r=Bt.ensure();if(r.capture(e,t),e.f&2){let t=e;e.f&2048&&Et(t),Mt===null&&$e(t)}e.wv=or(),nn(e,_,n),qe()&&G!==null&&G.f&1024&&!(G.f&96)&&(er===null?tr([e]):er.push(e)),!r.is_fork&&Jt.size>0&&!Xt&&en()}return t}function en(){Xt=!1;for(let e of Jt){e.f&1024&&N(e,v);let t;try{t=sr(e)}catch{t=!0}t&&pr(e)}Jt.clear()}function tn(e){I(e,e.v+1)}function nn(e,t,n){var r=e.reactions;if(r!==null)for(var i=qe(),a=r.length,o=0;o<a;o++){var s=r[o],c=s.f;if(!(!i&&s===G)){var l=(c&_)===0;if(l&&N(s,t),c&131072)Jt.add(s);else if(c&2){var u=s;Mt?.delete(u),c&65536||(c&512&&(G===null||!(G.f&2097152))&&(s.f|=ee),nn(u,v,n))}else if(l){var d=s;c&16&&Ut!==null&&Ut.add(d),n===null?Gt(d):n.push(d)}}}}function L(t){if(typeof t!=`object`||!t||D in t||ie in t)return t;let n=l(t);if(n!==s&&n!==c)return t;var r=new Map,i=e(t),o=F(0),u=null,d=ir,f=e=>{if(ir===d)return e();var t=W,n=ir;Yn(null),ar(d);var r=e();return Yn(t),ar(n),r};return i&&r.set(`length`,F(t.length,u)),new Proxy(t,{defineProperty(e,t,n){(!(`value`in n)||n.configurable===!1||n.enumerable===!1||n.writable===!1)&&Le();var i=r.get(t);return i===void 0?f(()=>{var e=F(n.value,u);return r.set(t,e),e}):I(i,n.value,!0),!0},deleteProperty(e,t){var n=r.get(t);if(n===void 0){if(t in e){let e=f(()=>F(O,u));r.set(t,e),tn(o)}}else I(n,O),tn(o);return!0},get(e,n,i){if(n===D)return t;var o=r.get(n),s=n in e;if(o===void 0&&(!s||a(e,n)?.writable)&&(o=f(()=>F(L(s?e[n]:O),u)),r.set(n,o)),o!==void 0){var c=q(o);return c===O?void 0:c}return Reflect.get(e,n,i)},getOwnPropertyDescriptor(e,t){var n=Reflect.getOwnPropertyDescriptor(e,t);if(n&&`value`in n){var i=r.get(t);i&&(n.value=q(i))}else if(n===void 0){var a=r.get(t),o=a?.v;if(a!==void 0&&o!==O)return{enumerable:!0,configurable:!0,value:o,writable:!0}}return n},has(e,t){if(t===D)return!0;var n=r.get(t),i=n!==void 0&&n.v!==O||Reflect.has(e,t);return(n!==void 0||G!==null&&(!i||a(e,t)?.writable))&&(n===void 0&&(n=f(()=>F(i?L(e[t]):O,u)),r.set(t,n)),q(n)===O)?!1:i},set(e,t,n,s){var c=r.get(t),l=t in e;if(i&&t===`length`)for(var d=n;d<c.v;d+=1){var p=r.get(d+``);p===void 0?d in e&&(p=f(()=>F(O,u)),r.set(d+``,p)):I(p,O)}if(c===void 0)(!l||a(e,t)?.writable)&&(c=f(()=>F(void 0,u)),I(c,L(n)),r.set(t,c));else{l=c.v!==O;var m=f(()=>L(n));I(c,m)}var h=Reflect.getOwnPropertyDescriptor(e,t);if(h?.set&&h.set.call(s,n),!l){if(i&&typeof t==`string`){var g=r.get(`length`),_=Number(t);Number.isInteger(_)&&_>=g.v&&I(g,_+1)}tn(o)}return!0},ownKeys(e){q(o);var t=Reflect.ownKeys(e).filter(e=>{var t=r.get(e);return t===void 0||t.v!==O});for(var[n,i]of r)i.v!==O&&!(n in e)&&t.push(n);return t},setPrototypeOf(){Re()}})}function rn(e){try{if(typeof e==`object`&&e&&D in e)return e[D]}catch{}return e}function an(e,t){return Object.is(rn(e),rn(t))}var on,sn,cn,ln;function un(){if(on===void 0){on=window,sn=/Firefox/.test(navigator.userAgent);var e=Element.prototype,t=Node.prototype,n=Text.prototype;cn=a(t,`firstChild`).get,ln=a(t,`nextSibling`).get,u(e)&&(e[ce]=void 0,e[se]=null,e[le]=void 0,e.__e=void 0),u(n)&&(n[ue]=void 0)}}function R(e=``){return document.createTextNode(e)}function dn(e){return cn.call(e)}function fn(e){return ln.call(e)}function z(e,t){if(!k)return dn(e);var n=dn(A);if(n===null)n=A.appendChild(R());else if(t&&n.nodeType!==3){var r=R();return n?.before(r),xe(r),r}return t&&_n(n),xe(n),n}function pn(e,t=!1){if(!k){var n=dn(e);return n instanceof Comment&&n.data===``?fn(n):n}if(t){if(A?.nodeType!==3){var r=R();return A?.before(r),xe(r),r}_n(A)}return A}function B(e,t=!1){if(!k)return dn(e);var n=z(e,t);return j(e),n}function V(e,t=1,n=!1){let r=k?A:e;for(var i;t--;)i=r,r=fn(r);if(!k)return r;if(n){if(r?.nodeType!==3){var a=R();return r===null?i?.after(a):r.before(a),xe(a),a}_n(r)}return xe(r),r}function mn(e){e.textContent=``}function hn(){return!1}function gn(e,t,n){return t==null||t===`http://www.w3.org/1999/xhtml`?n?document.createElement(e,{is:n}):document.createElement(e):n?document.createElementNS(t,e,{is:n}):document.createElementNS(t,e)}function _n(e){if(e.nodeValue.length<65536)return;let t=e.nextSibling;for(;t!==null&&t.nodeType===3;)t.remove(),e.nodeValue+=t.nodeValue,t=e.nextSibling}function vn(e){var t=G;if(t===null)return W.f|=re,e;if(!(t.f&32768)&&!(t.f&4))throw e;yn(e,t)}function yn(e,t){if(!(t!==null&&t.f&16384)){for(;t!==null;){if(t.f&128&&!(t.f&33570816)){if(!(t.f&32768))throw e;try{t.b.error(e);return}catch(t){e=t}}t=t.parent}throw e}}function bn(e){G===null&&(W===null&&Pe(e),Ne()),Kn&&Me(e)}function xn(e,t){var n=t.last;n===null?t.last=t.first=e:(n.next=e,e.prev=n,t.last=e)}function Sn(e,t){var n=G;n!==null&&n.f&8192&&(e|=y);var r={ctx:M,deps:null,nodes:null,f:e|_|512,first:null,fn:t,last:null,next:null,parent:n,b:n&&n.b,prev:null,teardown:null,wv:0,ac:null};P?.register_created_effect(r);var i=r;if(e&4)It===null?Bt.ensure().schedule(r):It.push(r);else if(t!==null){try{pr(r)}catch(e){throw U(r),e}i.deps===null&&i.teardown===null&&i.nodes===null&&i.first===i.last&&!(i.f&524288)&&(i=i.first,e&16&&e&65536&&i!==null&&(i.f|=C))}if(i!==null&&(i.parent=n,n!==null&&xn(i,n),W!==null&&W.f&2&&!(e&64))){var a=W;(a.effects??=[]).push(i)}return r}function Cn(){return W!==null&&!Jn}function wn(e){let t=Sn(8,null);return N(t,g),t.teardown=e,t}function Tn(e){bn(`$effect`);var t=G.f;if(!W&&t&32&&M!==null&&!M.i){var n=M;(n.e??=[]).push(e)}else return En(e)}function En(e){return Sn(4|T,e)}function Dn(e){return bn(`$effect.pre`),Sn(8|T,e)}function On(e){Bt.ensure();let t=Sn(64|w,e);return(e={})=>new Promise(n=>{e.outro?zn(t,()=>{U(t),n(void 0)}):(U(t),n(void 0))})}function kn(e){return Sn(4,e)}function An(e){return Sn(ne|w,e)}function jn(e,t=0){return Sn(8|t,e)}function H(e,t=[],n=[],r=[]){gt(r,t,n,t=>{Sn(8,()=>{e(...t.map(q))})})}function Mn(e,t=0){return Sn(16|t,e)}function Nn(e){return Sn(32|w,e)}function Pn(e){var t=e.teardown;if(t!==null){let n=Kn,r=W;qn(!0),Yn(null);try{t.call(null)}catch(t){yn(t,e.parent)}finally{qn(n),Yn(r)}}}function Fn(e,t=!1){var n=e.first;for(e.first=e.last=null;n!==null;){let e=n.ac;e!==null&&mt(()=>{e.abort(fe)});var r=n.next;n.f&64?n.parent=null:U(n,t),n=r}}function In(e){for(var t=e.first;t!==null;){var n=t.next;t.f&32||U(t),t=n}}function U(e,t=!0){var n=!1;(t||e.f&262144)&&e.nodes!==null&&e.nodes.end!==null&&(Ln(e.nodes.start,e.nodes.end),n=!0),e.f|=S,Fn(e,t&&!n),fr(e,0);var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)e.stop();Pn(e),e.f^=S,e.f|=b;var i=e.parent;i!==null&&i.first!==null&&Rn(e),e.next=e.prev=e.teardown=e.ctx=e.deps=e.fn=e.nodes=e.ac=e.b=null}function Ln(e,t){for(;e!==null;){var n=e===t?null:fn(e);e.remove(),e=n}}function Rn(e){var t=e.parent,n=e.prev,r=e.next;n!==null&&(n.next=r),r!==null&&(r.prev=n),t!==null&&(t.first===e&&(t.first=r),t.last===e&&(t.last=n))}function zn(e,t,n=!0){var r=[];e.f|=256,Bn(e,r,!0);var i=()=>{n&&U(e),t&&t()},a=r.length;if(a>0){var o=()=>--a||i();for(var s of r)s.out(o)}else i()}function Bn(e,t,n){if(!(e.f&8192)){e.f^=y;var r=e.nodes&&e.nodes.t;if(r!==null)for(let e of r)(e.is_global||n)&&t.push(e);for(var i=e.first;i!==null;){var a=i.next;if(!(i.f&64)){var o=!!(i.f&65536)||!!(i.f&32)&&!!(e.f&16);Bn(i,t,o?n:!1)}i=a}}}function Vn(e){e.f&=-257,Hn(e,!0)}function Hn(e,t){if(!(e.f&256)&&e.f&8192){e.f^=y,e.f&1024||(N(e,_),Bt.ensure().schedule(e));for(var n=e.first;n!==null;){var r=n.next,i=!!(n.f&65536)||!!(n.f&32);Hn(n,i?t:!1),n=r}var a=e.nodes&&e.nodes.t;if(a!==null)for(let e of a)(e.is_global||t)&&e.in()}}function Un(e,t){if(e.nodes)for(var n=e.nodes.start,r=e.nodes.end;n!==null;){var i=n===r?null:fn(n);t.append(n),n=i}}var Wn=null,Gn=!1,Kn=!1;function qn(e){Kn=e}var W=null,Jn=!1;function Yn(e){W=e}var G=null;function Xn(e){G=e}var Zn=null;function Qn(e){W!==null&&(Zn??=new Set).add(e)}var K=null,$n=0,er=null;function tr(e){er=e}var nr=1,rr=0,ir=rr;function ar(e){ir=e}function or(){return++nr}function sr(e){var t=e.f;if(t&2048)return!0;if(t&2&&(e.f&=~ee),t&4096){for(var n=e.deps,r=n.length,i=0;i<r;i++){var a=n[i];if(sr(a)&&Dt(a),a.wv>e.wv)return!0}t&512&&Mt===null&&N(e,g)}return!1}function cr(e,t,n=!0){var r=e.reactions;if(r!==null&&!(Zn!==null&&Zn.has(e)))for(var i=0;i<r.length;i++){var a=r[i];a.f&2?cr(a,t,!1):t===a&&(n?N(a,_):a.f&1024&&N(a,v),Gt(a))}}function lr(e){var t=K,n=$n,r=er,i=W,a=Zn,o=M,s=Jn,c=ir,l=e.f;K=null,$n=0,er=null,W=l&96?null:e,Zn=null,Ue(e.ctx),Jn=!1,ir=++rr,e.ac!==null&&(mt(()=>{e.ac.abort(fe)}),e.ac=null);try{e.f|=te;var u=e.fn,d=u();e.f|=x;var f=ur(e);if(qe()&&er!==null&&!Jn&&f!==null&&!(e.f&6146))for(var p=0;p<er.length;p++)cr(er[p],e);if(i!==null&&i!==e){if(rr++,i.deps!==null)for(let e=0;e<n;e+=1)i.deps[e].rv=rr;if(t!==null)for(let e of t)e.rv=rr;er!==null&&(r===null?r=er:r.push(...er))}return e.f&8388608&&(e.f^=re),d}catch(t){return ur(e),vn(t)}finally{e.f^=te,K=t,$n=n,er=r,W=i,Zn=a,Ue(o),Jn=s,ir=c}}function ur(e){var t=e.deps,n=P?.is_fork;if(K!==null){var r;if(n||fr(e,$n),t!==null&&$n>0)for(t.length=$n+K.length,r=0;r<K.length;r++)t[$n+r]=K[r];else e.deps=t=K;if(Cn()&&e.f&512)for(r=$n;r<t.length;r++)(t[r].reactions??=[]).push(e)}else!n&&t!==null&&$n<t.length&&(fr(e,$n),t.length=$n);return t}function dr(e,r){let i=r.reactions;if(i!==null){var a=t.call(i,e);if(a!==-1){var o=i.length-1;o===0?i=r.reactions=null:(i[a]=i[o],i.pop())}}if(i===null&&r.f&2&&(K===null||!n.call(K,r))){var s=r;s.f&512&&(s.f^=512,s.f&=~ee),s.v!==O&&$e(s),s.ac!==null&&mt(()=>{s.ac.abort(fe),s.ac=null,N(s,_)}),Ot(s),fr(s,0)}}function fr(e,t){var n=e.deps;if(n!==null)for(var r=t;r<n.length;r++)dr(e,n[r])}function pr(e){var t=e.f;if(!(t&16384)){N(e,g);var n=G,r=Gn;G=e,Gn=!(t&96);try{t&16777232?In(e):Fn(e),Pn(e);var i=lr(e);e.teardown=typeof i==`function`?i:null,e.wv=nr}finally{Gn=r,G=n}}}async function mr(){await Promise.resolve(),Vt()}function q(e){var t=!!(e.f&2);if(Wn?.add(e),W!==null&&!Jn&&!(G!==null&&G.f&16384)&&(Zn===null||!Zn.has(e))){var r=W.deps;if(W.f&2097152)e.rv<rr&&(e.rv=rr,K===null&&r!==null&&r[$n]===e?$n++:K===null?K=[e]:K.push(e));else{W.deps??=[],n.call(W.deps,e)||W.deps.push(e);var i=e.reactions;i===null?e.reactions=[W]:n.call(i,W)||i.push(W)}}if(Kn&&Yt.has(e))return Yt.get(e);if(t){var a=e;if(Kn){var o=a.v;return(!(a.f&1024)&&a.reactions!==null||gr(a))&&(o=Et(a)),Yt.set(a,o),o}var s=!(a.f&512)&&!Jn&&W!==null&&(Gn||!!(W.f&512)),c=(a.f&x)===0;sr(a)&&(s&&(a.f|=512),Dt(a)),s&&!c&&(kt(a),hr(a))}if(Mt?.has(e))return Mt.get(e);if(e.f&8388608)throw e.v;return e.v}function hr(e){if(e.f|=512,e.deps!==null)for(let t of e.deps)(t.reactions??=[]).push(e),t.f&2&&!(t.f&512)&&(kt(t),hr(t))}function gr(e){if(e.v===O)return!0;if(e.deps===null)return!1;for(let t of e.deps)if(Yt.has(t)||t.f&2&&gr(t))return!0;return!1}function J(e){var t=Jn;try{return Jn=!0,e()}finally{Jn=t}}function _r(e){if(!(typeof e!=`object`||!e||e instanceof EventTarget)){if(D in e)vr(e);else if(!Array.isArray(e))for(let t in e){let n=e[t];typeof n==`object`&&n&&D in n&&vr(n)}}}function vr(e,t=new Set){if(typeof e==`object`&&e&&!(e instanceof EventTarget)&&!t.has(e)){t.add(e),e instanceof Date&&e.getTime();for(let n in e)try{vr(e[n],t)}catch{}let n=l(e);if(n!==Object.prototype&&n!==Array.prototype&&n!==Map.prototype&&n!==Set.prototype&&n!==Date.prototype){let t=o(n);for(let n in t){let r=t[n].get;if(r)try{r.call(e)}catch{}}}}}[...`allowfullscreen.async.autofocus.autoplay.checked.controls.default.disabled.formnovalidate.indeterminate.inert.ismap.loop.multiple.muted.nomodule.novalidate.open.playsinline.readonly.required.reversed.seamless.selected.webkitdirectory.defer.disablepictureinpicture.disableremoteplayback`.split(`.`)];var yr=[`touchstart`,`touchmove`];function br(e){return yr.includes(e)}var xr=Symbol(`events`),Sr=new Set,Cr=new Set;function wr(e,t,n,r={}){function i(e){if(r.capture||kr.call(t,e),!e.cancelBubble)return mt(()=>n?.call(this,e))}return e.startsWith(`pointer`)||e.startsWith(`touch`)||e===`wheel`?Xe(()=>{t.addEventListener(e,i,r)}):t.addEventListener(e,i,r),i}function Tr(e,t,n,r,i){var a={capture:r,passive:i},o=wr(e,t,n,a);(t===document.body||t===window||t===document||t instanceof HTMLMediaElement)&&wn(()=>{t.removeEventListener(e,o,a)})}function Y(e,t,n){(t[xr]??={})[e]=n}function Er(e){for(var t=0;t<e.length;t++)Sr.add(e[t]);for(var n of Cr)n(e)}var Dr=null,Or=!1;function kr(e){var t=this,n=t.ownerDocument,r=e.type,a=e.composedPath?.()||[],o=a[0]||e.target;Dr=e,Or||(Or=!0,setTimeout(()=>{Or=!1,Dr=null}));var s=0,c=Dr===e&&e[xr];if(c){var l=a.indexOf(c);if(l!==-1&&(t===document||t===window)){e[xr]=t;return}var u=a.indexOf(t);if(u===-1)return;l<=u&&(s=l)}if(o=a[s]||e.target,o!==t){i(e,`currentTarget`,{configurable:!0,get(){return o||n}});var d=W,f=G;Yn(null),Xn(null);try{for(var p,m=[];o!==null&&o!==t;){try{var h=o[xr]?.[r];h!=null&&(!o.disabled||e.target===o)&&h.call(o,e)}catch(e){p?m.push(e):p=e}if(e.cancelBubble)break;s++,o=s<a.length?a[s]:null}if(p){for(let e of m)queueMicrotask(()=>{throw e});throw p}}finally{e[xr]=t,delete e.currentTarget,Yn(d),Xn(f)}}}var Ar=globalThis?.window?.trustedTypes&&globalThis.window.trustedTypes.createPolicy(`svelte-trusted-html`,{createHTML:e=>e});function jr(e){return Ar?.createHTML(e)??e}function Mr(e){var t=gn(`template`);return t.innerHTML=jr(e.replaceAll(`<!>`,`<!---->`)),t.content}function Nr(e,t){var n=G;n.nodes===null&&(n.nodes={start:e,end:t,a:null,t:null})}function X(e,t){var n=!!(t&1),r=!!(t&2),i,a=!e.startsWith(`<!>`);return()=>{if(k)return Nr(A,null),A;i===void 0&&(i=Mr(a?e:`<!>`+e),n||(i=dn(i)));var t=r||sn?document.importNode(i,!0):i.cloneNode(!0);if(n){var o=dn(t),s=t.lastChild;Nr(o,s)}else Nr(t,t);return t}}function Pr(e=``){if(!k){var t=R(e+``);return Nr(t,t),t}var n=A;return n.nodeType===3?_n(n):(n.before(n=R()),xe(n)),Nr(n,n),n}function Fr(){if(k)return Nr(A,null),A;var e=document.createDocumentFragment(),t=document.createComment(``),n=R();return e.append(t,n),Nr(t,n),e}function Z(e,t){if(k){var n=G;(!(n.f&32768)||n.nodes.end===null)&&(n.nodes.end=A),Se();return}e!==null&&e.before(t)}function Ir(e){let t=0,n=Zt(0),r;return()=>{Cn()&&(q(n),jn(()=>(t===0&&(r=J(()=>e(()=>tn(n)))),t+=1,()=>{Xe(()=>{--t,t===0&&(r?.(),r=void 0,tn(n))})})))}}var Lr=C|w;function Rr(e,t,n,r){new zr(e,t,n,r)}var zr=class{parent;is_pending=!1;transform_error;#e;#t=k?A:null;#n;#r;#i;#a=null;#o=null;#s=null;#c=null;#l=0;#u=0;#d=!1;#f=new Set;#p=new Set;#m=null;#h=Ir(()=>(this.#m=Zt(this.#l),()=>{this.#m=null}));constructor(e,t,n,r){this.#e=e,this.#n=t,this.#r=e=>{var t=G;t.b=this,t.f|=128,n(e)},this.parent=G.b,this.transform_error=r??this.parent?.transform_error??(e=>e),this.#i=Mn(()=>{if(k){let e=this.#t;Se();let t=e.data===`[!`;if(e.data.startsWith(`[?`)){let t=JSON.parse(e.data.slice(2));this.#_(t)}else t?this.#y():this.#g()}else this.#b()},Lr),k&&(this.#e=A)}#g(){try{this.#a=Nn(()=>this.#r(this.#e))}catch(e){this.error(e)}}#_(e){let t=this.#n.failed,{reset:n,invoke_onerror:r}=this.#v(e);Xe(r),t&&(this.#s=Nn(()=>{t(this.#e,()=>e,()=>n)}))}#v(e){var t=!1,n=!1;let r=()=>{if(t){ye();return}t=!0,n&&Be(),this.#s!==null&&zn(this.#s,()=>{this.#s=null}),this.#S(()=>{this.#b()})};return{reset:r,invoke_onerror:()=>{try{n=!0,this.#n.onerror?.(e,r),n=!1}catch(e){yn(e,this.#i&&this.#i.parent)}}}}#y(){let e=this.#n.pending;e&&(this.is_pending=!0,this.#o=Nn(()=>e(this.#e)),Xe(()=>{var e=this.#c=document.createDocumentFragment(),t=R(),n=!1;if(e.append(t),this.#a=this.#S(()=>{try{return Nn(()=>this.#r(t))}catch(e){try{this.error(e),n=!0}catch(e){yn(e,this.#i.parent)}return null}}),this.#a===null){this.#c=null,n&&this.#x(P);return}this.#u===0&&(this.#e.before(e),this.#c=null,zn(this.#o,()=>{this.#o=null}),this.#x(P))}))}#b(){try{if(this.is_pending=this.has_pending_snippet(),this.#u=0,this.#l=0,this.#a=Nn(()=>{this.#r(this.#e)}),this.#u>0){var e=this.#c=document.createDocumentFragment();Un(this.#a,e);let t=this.#n.pending;this.#o=Nn(()=>t(this.#e))}else this.#x(P)}catch(e){this.error(e)}}#x(e){this.is_pending=!1,e.transfer_effects(this.#f,this.#p)}defer_effect(e){tt(e,this.#f,this.#p)}is_rendered(){return!this.is_pending&&(!this.parent||this.parent.is_rendered())}has_pending_snippet(){return!!this.#n.pending}#S(e){var t=G,n=W,r=M;Xn(this.#i),Yn(this.#i),Ue(this.#i.ctx);try{return Bt.ensure(),e()}finally{Xn(t),Yn(n),Ue(r)}}#C(e,t){if(!this.has_pending_snippet()){this.parent&&this.parent.#C(e,t);return}this.#u+=e,this.#u===0&&(this.#x(t),this.#o&&zn(this.#o,()=>{this.#o=null}),this.#c&&=(this.#e.before(this.#c),null))}update_pending_count(e,t){this.#C(e,t),this.#l+=e,!(!this.#m||this.#d)&&(this.#d=!0,Xe(()=>{this.#d=!1,this.#m&&$t(this.#m,this.#l)}))}get_effect_pending(){return this.#h(),q(this.#m)}error(e){if(!this.#n.onerror&&!this.#n.failed)throw e;P?.is_fork?(this.#a&&P.skip_effect(this.#a),this.#o&&P.skip_effect(this.#o),this.#s&&P.skip_effect(this.#s),P.oncommit(()=>{this.#w(e)})):this.#w(e)}#w(e){this.#a&&=(U(this.#a),null),this.#o&&=(U(this.#o),null),this.#s&&=(U(this.#s),null),k&&(xe(this.#t),Ce(),xe(we()));let t=this.#n.failed,n=e=>{let{reset:n,invoke_onerror:r}=this.#v(e);r(),t&&(this.#s=this.#S(()=>{try{return Nn(()=>{var r=G;r.b=this,r.f|=128,t(this.#e,()=>e,()=>n)})}catch(e){return yn(e,this.#i.parent),null}}))};Xe(()=>{var t;try{t=this.transform_error(e)}catch(e){yn(e,this.#i&&this.#i.parent);return}typeof t==`object`&&t&&typeof t.then==`function`?t.then(n,e=>yn(e,this.#i&&this.#i.parent)):n(t)})}};function Q(e,t){var n=t==null?``:typeof t==`object`?`${t}`:t;n!==(e[ue]??=e.nodeValue)&&(e[ue]=n,e.nodeValue=`${n}`)}function Br(e,t){return Hr(e,t)}var Vr=new Map;function Hr(e,{target:t,anchor:n,props:i={},events:a,context:o,intro:s=!0,transformError:c}){un();var l=void 0,u=On(()=>{var s=n??t.appendChild(R());Rr(s,{pending:()=>{}},t=>{We({});var n=M;if(o&&(n.c=o),a&&(i.$$events=a),k&&Nr(t,null),l=e(t,i)||Ke(),k&&(G.nodes.end=A,A===null||A.nodeType!==8||A.data!==`]`))throw _e(),me;Ge()},c);var u=new Set,d=e=>{for(var n=0;n<e.length;n++){var r=e[n];if(!u.has(r)){u.add(r);var i=br(r);for(let e of[t,document]){var a=Vr.get(e);a===void 0&&(a=new Map,Vr.set(e,a));var o=a.get(r);o===void 0?(e.addEventListener(r,kr,{passive:i}),a.set(r,1)):a.set(r,o+1)}}}};return d(r(Sr)),Cr.add(d),()=>{for(var e of u)for(let n of[t,document]){var r=Vr.get(n),i=r.get(e);--i==0?(n.removeEventListener(e,kr),r.delete(e),r.size===0&&Vr.delete(n)):r.set(e,i)}Cr.delete(d),s!==n&&s.parentNode?.removeChild(s)}});return Ur.set(l,u),l}var Ur=new WeakMap,Wr=class{anchor;#e=new Map;#t=new Map;#n=new Map;#r=new Set;#i=!0;constructor(e,t=!0){this.anchor=e,this.#i=t}#a=e=>{if(this.#e.has(e)){var t=this.#e.get(e),n=this.#t.get(t);if(n)Vn(n),this.#r.delete(t);else{var r=this.#n.get(t);r&&(Vn(r.effect),this.#t.set(t,r.effect),this.#n.delete(t),r.fragment.lastChild.remove(),this.anchor.before(r.fragment),n=r.effect)}for(let[t,n]of this.#e){if(this.#e.delete(t),t===e)break;let r=this.#n.get(n);r&&(U(r.effect),this.#n.delete(n))}for(let[e,r]of this.#t){if(e===t||this.#r.has(e))continue;let i=()=>{if(Array.from(this.#e.values()).includes(e)){var t=document.createDocumentFragment();Un(r,t),t.append(R()),this.#n.set(e,{effect:r,fragment:t})}else U(r);this.#r.delete(e),this.#t.delete(e)};this.#i||!n?(this.#r.add(e),zn(r,i,!1)):i()}}};#o=e=>{this.#e.delete(e);let t=Array.from(this.#e.values());for(let[e,n]of this.#n)t.includes(e)||(U(n.effect),this.#n.delete(e))};ensure(e,t){var n=P,r=hn();if(t&&!this.#t.has(e)&&!this.#n.has(e)){if(r){var i=document.createDocumentFragment(),a=R();i.append(a),this.#n.set(e,{effect:Nn(()=>t(a)),fragment:i})}else this.#t.set(e,Nn(()=>t(this.anchor)))}if(this.#e.set(n,e),r){for(let[t,r]of this.#t)t===e?n.unskip_effect(r):n.skip_effect(r);for(let[t,r]of this.#n)t===e?n.unskip_effect(r.effect):n.skip_effect(r.effect);n.oncommit(this.#a),n.ondiscard(this.#o)}else k&&(this.anchor=A),this.#a(n)}};function $(e,t,n=!1){var r;k&&(r=A,Se());var i=new Wr(e),a=n?C:0;function o(e,t){if(k){var n=Te(r);if(e!==parseInt(n.substring(1))){var a=we();xe(a),i.anchor=a,be(!1),i.ensure(e,t),be(!0);return}}i.ensure(e,t)}Mn(()=>{var e=!1;t((t,n=0)=>{e=!0,o(n,t)}),e||o(-1,null)},a)}function Gr(e,t,n){for(var i=[],a=t.length,o,s=t.length,c=0;c<a;c++){let n=t[c];zn(n,()=>{if(o){if(o.pending.delete(n),o.done.add(n),o.pending.size===0){var t=e.outrogroups;Kr(e,r(o.done)),t.delete(o),t.size===0&&(e.outrogroups=null)}}else--s},!1)}if(s===0){var l=i.length===0&&n!==null&&e.pending.size===0;if(l){var u=n,d=u.parentNode;mn(d),d.append(u),e.items.clear()}Kr(e,t,!l)}else o={pending:new Set(t),done:new Set},(e.outrogroups??=new Set).add(o)}function Kr(e,t,n=!0){var r;if(e.pending.size>0){r=new Set;for(let t of e.pending.values())for(let n of t)r.add(e.items.get(n).e)}for(var i=0;i<t.length;i++){var a=t[i];r?.has(a)?(a.f|=E,Un(a,document.createDocumentFragment())):U(t[i],n)}}var qr;function Jr(t,n,i,a,o,s=null){var c=t,l=new Map;if(n&4){var u=t;c=k?xe(dn(u)):u.appendChild(R())}k&&Se();var d=null,f=wt(()=>{var t=i();return e(t)?t:t==null?[]:r(t)}),p,m=new Map,h=!0;function g(e){v.effect.f&16384||(v.pending.delete(e),v.fallback=d,Xr(v,p,c,n,a),d!==null&&(p.length===0?d.f&33554432?(d.f^=E,Qr(d,null,c)):Vn(d):zn(d,()=>{d=null})))}function _(e){v.pending.delete(e)}var v={effect:Mn(()=>{p=q(f);var e=p.length;let t=!1;k&&Te(c)===`[!`!=(e===0)&&(c=we(),xe(c),be(!1),t=!0);for(var r=new Set,u=P,v=hn(),y=0;y<e;y+=1){k&&A.nodeType===8&&A.data===`]`&&(c=A,t=!0,be(!1));var b=p[y],x=a(b,y),S=h?null:l.get(x);S?(S.v&&$t(S.v,b),S.i&&$t(S.i,y),v&&u.unskip_effect(S.e)):(S=Zr(l,h?c:qr??=R(),b,x,y,o,n,i),h||(S.e.f|=E),l.set(x,S)),r.add(x)}if(e===0&&s&&!d&&(h?d=Nn(()=>s(c)):(d=Nn(()=>s(qr??=R())),d.f|=E)),e>r.size&&je(``,``,``),k&&e>0&&xe(we()),!h){if(m.set(u,r),v){for(let[e,t]of l)r.has(e)||u.skip_effect(t.e);u.oncommit(g),u.ondiscard(_)}else g(u)}t&&be(!0),q(f)}),flags:n,items:l,pending:m,outrogroups:null,fallback:d};h=!1,k&&(c=A)}function Yr(e){for(;e!==null&&!(e.f&32);)e=e.next;return e}function Xr(e,t,n,i,a){var o=!!(i&8),s=t.length,c=e.items,l=Yr(e.effect.first),u,d=null,f,p=[],m=[],h,g,_,v;if(o)for(v=0;v<s;v+=1)h=t[v],g=a(h,v),_=c.get(g).e,_.f&33554432||(_.nodes?.a?.measure(),(f??=new Set).add(_));for(v=0;v<s;v+=1){if(h=t[v],g=a(h,v),_=c.get(g).e,e.outrogroups!==null)for(let t of e.outrogroups)t.pending.delete(_),t.done.delete(_);if(_.f&8192&&(Vn(_),o&&(_.nodes?.a?.unfix(),(f??=new Set).delete(_))),_.f&33554432){if(_.f^=E,_===l)Qr(_,null,n);else{var y=d?d.next:l;_===e.effect.last&&(e.effect.last=_.prev),_.prev&&(_.prev.next=_.next),_.next&&(_.next.prev=_.prev),$r(e,d,_),$r(e,_,y),Qr(_,y,n),d=_,p=[],m=[],l=Yr(d.next);continue}}if(_!==l){if(u!==void 0&&u.has(_)){if(p.length<m.length){var b=m[0],x;d=b.prev;var S=p[0],C=p[p.length-1];for(x=0;x<p.length;x+=1)Qr(p[x],b,n);for(x=0;x<m.length;x+=1)u.delete(m[x]);$r(e,S.prev,C.next),$r(e,d,S),$r(e,C,b),l=b,d=C,--v,p=[],m=[]}else u.delete(_),Qr(_,l,n),$r(e,_.prev,_.next),$r(e,_,d===null?e.effect.first:d.next),$r(e,d,_),d=_;continue}for(p=[],m=[];l!==null&&l!==_;)(u??=new Set).add(l),m.push(l),l=Yr(l.next);if(l===null)continue}_.f&33554432||p.push(_),d=_,l=Yr(_.next)}if(e.outrogroups!==null){for(let t of e.outrogroups)t.pending.size===0&&(Kr(e,r(t.done)),e.outrogroups?.delete(t));e.outrogroups.size===0&&(e.outrogroups=null)}if(l!==null||u!==void 0){var w=[];if(u!==void 0)for(_ of u)_.f&8192||w.push(_);for(;l!==null;)!(l.f&8192)&&l!==e.fallback&&w.push(l),l=Yr(l.next);var T=w.length;if(T>0){var ee=i&4&&s===0?n:null;if(o){for(v=0;v<T;v+=1)w[v].nodes?.a?.measure();for(v=0;v<T;v+=1)w[v].nodes?.a?.fix()}Gr(e,w,ee)}}o&&Xe(()=>{if(f!==void 0)for(_ of f)_.nodes?.a?.apply()})}function Zr(e,t,n,r,i,a,o,s){var c=o&1?o&16?Zt(n):Qt(n,!1,!1):null,l=o&2?Zt(i):null;return{v:c,i:l,e:Nn(()=>(a(t,c??n,l??i,s),()=>{e.delete(r)}))}}function Qr(e,t,n){if(e.nodes)for(var r=e.nodes.start,i=e.nodes.end,a=t&&!(t.f&33554432)?t.nodes.start:n;r!==null;){var o=fn(r);if(a.before(r),r===i)return;r=o}}function $r(e,t,n){t===null?e.effect.first=n:t.next=n,n===null?e.effect.last=t:n.prev=t}var ei=[...`
|
|
2
|
-
\r\f\xA0\v`];function ti(e,t,n){var r=e==null?``:``+e;if(t&&(r=r?r+` `+t:t),n){for(var i of Object.keys(n))if(n[i])r=r?r+` `+i:i;else if(r.length)for(var a=i.length,o=0;(o=r.indexOf(i,o))>=0;){var s=o+a;(o===0||ei.includes(r[o-1]))&&(s===r.length||ei.includes(r[s]))?r=(o===0?``:r.substring(0,o))+r.substring(s+1):o=s}}return r===``?null:r}function ni(e,t,n,r,i,a){var o=e[ce];if(k||o!==n||o===void 0){var s=ti(n,r,a);(!k||s!==e.getAttribute(`class`))&&(s==null?e.removeAttribute(`class`):t?e.className=s:e.setAttribute(`class`,s)),e[ce]=n}else if(a&&i!==a)for(var c in a){var l=!!a[c];(i==null||l!==!!i[c])&&e.classList.toggle(c,l)}return a}function ri(e,t){t?e.hasAttribute(`selected`)||e.setAttribute(`selected`,``):e.removeAttribute(`selected`)}function ii(t,n){var r=t.__defaultValue,i=t.multiple,a=i?r??[]:null;if(!(i&&!e(a))){var o=t.selectedIndex,s=n&&i?new Set(t.selectedOptions):null;for(var c of t.options){var l=ci(c);ri(c,i?a.includes(l):an(l,r))}if(n){if(s!==null)for(c of t.options){var u=s.has(c);c.selected!==u&&(c.selected=u)}else t.selectedIndex!==o&&(t.selectedIndex=o)}}}function ai(t,n,r=!1){if(t.multiple){if(n==null)return;if(!e(n))return ve();for(var i of t.options)i.selected=n.includes(ci(i));return}for(i of t.options)if(an(ci(i),n)){i.selected=!0;return}(!r||n!==void 0)&&(t.selectedIndex=-1)}function oi(e){var t=new MutationObserver(t=>{t.every(li)||(`__defaultValue`in e&&ii(e,!1),`__value`in e&&ai(e,e.__value))});t.observe(e,{childList:!0,subtree:!0,attributes:!0,attributeFilter:[`value`]}),wn(()=>{t.disconnect()})}function si(e,t,n=t){var r=new WeakSet,i=!0;ht(e,`change`,t=>{var i=t?`[selected]`:`:checked`,a;if(e.multiple)a=[].map.call(e.querySelectorAll(i),ci);else{var o=e.querySelector(i)??e.querySelector(`option:not([disabled])`);a=o&&ci(o)}n(a),e.__value=a,P!==null&&r.add(P)}),kn(()=>{var a=t();if(e===document.activeElement){var o=P;if(r.has(o))return}if(ai(e,a,i),i&&a===void 0){var s=e.querySelector(`:checked`);s!==null&&(a=ci(s),n(a))}e.__value=a,i=!1})}function ci(e){return`__value`in e?e.__value:e.value}function li(e){if(e.target.closest(`selectedcontent`)!==null)return!0;if(e.type===`childList`){var t=[...e.addedNodes,...e.removedNodes];return t.length>0&&t.every(e=>e.nodeName===`SELECTEDCONTENT`)}return!1}var ui=Symbol(`is custom element`),di=Symbol(`is html`),fi=pe?`link`:`LINK`;function pi(e){if(k){var t=!1,n=()=>{if(!t){if(t=!0,e.hasAttribute(`value`)){var n=e.value;hi(e,`value`,null),e.value=n}if(e.hasAttribute(`checked`)){var r=e.checked;hi(e,`checked`,null),e.checked=r}}};e[de]=n,Xe(n),pt()}}function mi(e,t){var n=gi(e);n.checked!==(n.checked=t??void 0)&&(e.checked=t)}function hi(e,t,n,r){var i=gi(e);k&&(i[t]=e.getAttribute(t),t===`src`||t===`srcset`||t===`href`&&e.nodeName===fi)||i[t]!==(i[t]=n)&&(t===`loading`&&(e[oe]=n),n==null?e.removeAttribute(t):typeof n!=`string`&&vi(e).has(t)?e[t]=n:e.setAttribute(t,n))}function gi(e){return e[se]??={[ui]:e.nodeName.includes(`-`),[di]:e.namespaceURI===he}}var _i=new Map;function vi(e){var t=e.getAttribute(`is`)||e.nodeName,n=_i.get(t);if(n)return n;_i.set(t,n=new Set);for(var r,i=e,a=Element.prototype;a!==i;){for(var s in r=o(i),r)r[s].set&&s!==`innerHTML`&&s!==`textContent`&&s!==`innerText`&&n.add(s);i=l(i)}return n}function yi(e,t,n=t){var r=new WeakSet;ht(e,`input`,async i=>{var a=i?e.defaultValue:e.value;if(a=xi(e)?Si(a):a,n(a),P!==null&&r.add(P),await mr(),a!==(a=t())){var o=e.selectionStart,s=e.selectionEnd,c=e.value.length;if(e.value=a??``,s!==null){var l=e.value.length;o===s&&s===c&&l>c?(e.selectionStart=l,e.selectionEnd=l):(e.selectionStart=o,e.selectionEnd=Math.min(s,l))}}}),(k&&e.defaultValue!==e.value||J(t)==null&&e.value)&&(n(xi(e)?Si(e.value):e.value),P!==null&&r.add(P)),jn(()=>{var n=t();if(e===document.activeElement){var i=P;if(r.has(i))return}xi(e)&&n===Si(e.value)||e.type===`date`&&!n&&!e.value||n!==e.value&&(e.value=n??``)})}function bi(e,t,n=t){ht(e,`change`,t=>{n(t?e.defaultChecked:e.checked)}),(k&&e.defaultChecked!==e.checked||J(t)==null)&&n(e.checked),jn(()=>{e.checked=!!t()})}function xi(e){var t=e.type;return t===`number`||t===`range`}function Si(e){return e===``?null:+e}function Ci(e=!1){let t=M,n=t.l.u;if(!n)return;let r=()=>_r(t.s);if(e){let e=0,n={},i=bt(()=>{let r=!1,i=t.s;for(let e in i)i[e]!==n[e]&&(n[e]=i[e],r=!0);return r&&e++,e});r=()=>q(i)}n.b.length&&Dn(()=>{wi(t,r),p(n.b)}),Tn(()=>{let e=J(()=>n.m.map(f));return()=>{for(let t of e)typeof t==`function`&&t()}}),n.a.length&&Tn(()=>{wi(t,r),p(n.a)})}function wi(e,t){if(e.l.s)for(let t of e.l.s)q(t);t()}function Ti(e,t,n,r){var i=!Ve||!!(n&2),o=!!(n&8),s=!!(n&16),c=r,l=!0,u=void 0,d=()=>s&&i?(u??=bt(r),q(u)):(l&&(l=!1,c=s?J(r):r),c);let f;if(o){var p=D in e||ae in e;f=a(e,t)?.set??(p&&t in e?n=>e[t]=n:void 0)}var m,h=!1;o?[m,h]=ut(()=>e[t]):m=e[t],m===void 0&&r!==void 0&&(m=d(),f&&(i&&Ie(t),f(m)));var g=i?()=>{var n=e[t];return n===void 0?d():(l=!0,n)}:()=>{var n=e[t];return n!==void 0&&(c=void 0),n===void 0?c:n};if(i&&!(n&4))return g;if(f){var _=e.$$legacy;return(function(e,t){return arguments.length>0?((!i||!t||_||h)&&f(t?g():e),e):g()})}var v=!1,y=(n&1?bt:wt)(()=>(v=!1,g()));o&&q(y);var b=G;return(function(e,t){if(arguments.length>0){let n=t?q(y):i&&o?L(e):e;return I(y,n),v=!0,c!==void 0&&(c=n),e}return Kn&&v||b.f&16384?y.v:q(y)})}function Ei(e){M===null&&ke(`onMount`),Ve&&M.l!==null?Di(M).m.push(e):Tn(()=>{let t=J(e);if(typeof t==`function`)return t})}function Di(e){var t=e.l;return t.u??={a:[],b:[],m:[]}}typeof window<`u`&&((window.__svelte??={}).v??=new Set).add(`5`);var Oi=X(`<button>Edit this disc</button>`),ki=X(`<button>Add this disc</button>`),Ai=X(`<div><div><h4> </h4> <p> </p></div> <!></div>`);function ji(e,t){We(t,!0);let n=F(null);Tn(()=>{let e=new EventSource(`/api/v1/current-tag/events`);return e.onmessage=e=>{I(n,JSON.parse(e.data),!0)},()=>e.close()});var r=Fr(),i=pn(r),a=e=>{var r=Ai();let i;var a=z(r),o=z(a),s=B(o,!0),c=B(V(o,2));j(a);var l=V(a,2),u=e=>{var r=Oi();Y(`click`,r,()=>t.onEditDisc?.(q(n).tag_id)),Z(e,r)},d=e=>{var r=ki();Y(`click`,r,()=>t.onAddDisc?.(q(n).tag_id)),Z(e,r)};$(l,e=>{q(n).known_in_library?e(u):e(d,-1)}),j(r),H(()=>{i=ni(r,1,`banner`,null,i,{"banner-info":q(n).known_in_library,"banner-warning":!q(n).known_in_library}),Q(s,q(n).known_in_library?`Known disc on reader`:`Unknown disc on reader`),Q(c,`Tag "${q(n).tag_id??``}" is
|
|
3
|
-
${q(n).known_in_library?`already in the library.`:`ready to be added to the library.`}`)}),Z(e,r)};$(i,e=>{q(n)&&e(a)}),Z(e,r),Ge()}Er([`click`]),He();var Mi=3e3;function Ni(){let{subscribe:e,set:t}=it(null),n=null;return{subscribe:e,showToast:e=>(n!==null&&clearTimeout(n),t({message:e}),n=setTimeout(()=>{t(null),n=null},Mi),()=>{clearTimeout(n),n=null}),dismiss:()=>{n!==null&&(clearTimeout(n),n=null),t(null)}}}var Pi=Ni(),Fi=X(`<div class="toast svelte-1cpok13"><p class="svelte-1cpok13"> </p> <button type="button" aria-label="Close toast" class="svelte-1cpok13">✕</button></div>`);function Ii(e,t){We(t,!1);let n=()=>ct(Pi,`$toastStore`,r),[r,i]=lt();Ci();var a=Fr(),o=pn(a),s=e=>{var t=Fi(),r=z(t),i=B(r,!0),a=V(r,2);j(t),H(()=>Q(i,n().message)),Y(`click`,a,()=>Pi.dismiss()),Z(e,t)};$(o,e=>{n()&&e(s)}),Z(e,a),Ge(),i()}Er([`click`]);var Li=`/api/v1`,Ri=class extends Error{constructor(e,t){super(`API error ${e}`),this.status=e,this.body=t}};async function zi(e,t={}){let n=await fetch(`${Li}${e}`,{headers:{"Content-Type":`application/json`,...t.headers},...t});if(!n.ok)throw new Ri(n.status,await n.json().catch(()=>null));return n.status===204?null:n.json()}function Bi(e){return zi(e)}function Vi(e,t){return zi(e,{method:`POST`,body:JSON.stringify(t)})}function Hi(e,t){return zi(e,{method:`PUT`,body:JSON.stringify(t)})}function Ui(e,t){return zi(e,{method:`PATCH`,body:JSON.stringify(t)})}function Wi(e){return zi(e,{method:`DELETE`})}var Gi=X(`<p class="error"> </p>`),Ki=X(`<form><label>Tag ID <input required=""/></label> <label>URI / Path <input required=""/></label> <label>Artist <input/></label> <label>Album <input/></label> <label>Track <input/></label> <label>Playlist <input/></label> <label class="checkbox"><input type="checkbox"/> Shuffle</label> <!> <div class="actions"><button type="submit" class="btn-primary"> </button> <button type="button" class="btn-secondary">Cancel</button></div></form>`);function qi(e,t){We(t,!0);let n=Ti(t,`tagId`,3,``),r=Ti(t,`disc`,3,null),i=F(L(J(()=>n()))),a=F(L(J(()=>r()?.uri??``))),o=F(L(J(()=>r()?.metadata.artist??``))),s=F(L(J(()=>r()?.metadata.album??``))),c=F(L(J(()=>r()?.metadata.track??``))),l=F(L(J(()=>r()?.metadata.playlist??``))),u=F(L(J(()=>r()?.option.shuffle??!1))),d=F(null),f=F(!1);async function p(e){e.preventDefault(),I(f,!0),I(d,null);let n={uri:q(a),metadata:{artist:q(o),album:q(s),track:q(c),playlist:q(l)},option:{shuffle:q(u)}};try{t.mode===`create`?await Vi(`/discs/${q(i)}`,n):await Ui(`/discs/${q(i)}`,n),t.onSaved()}catch(e){I(d,e.body?.detail??e.message,!0)}finally{I(f,!1)}}var m=Ki(),h=z(m),g=V(z(h));pi(g),j(h);var _=V(h,2),v=V(z(_));pi(v),j(_);var y=V(_,2),b=V(z(y));pi(b),j(y);var x=V(y,2),S=V(z(x));pi(S),j(x);var C=V(x,2),w=V(z(C));pi(w),j(C);var T=V(C,2),E=V(z(T));pi(E),j(T);var ee=V(T,2),te=z(ee);pi(te),Ce(),j(ee);var ne=V(ee,2),re=e=>{var t=Gi(),n=B(t,!0);H(()=>Q(n,q(d))),Z(e,t)};$(ne,e=>{q(d)&&e(re)});var D=V(ne,2),ie=z(D),ae=B(ie,!0),oe=V(ie,2);j(D),j(m),H(()=>{g.disabled=t.mode===`edit`,ie.disabled=q(f),Q(ae,q(f)?`Saving…`:`Save`)}),Tr(`submit`,m,p),yi(g,()=>q(i),e=>I(i,e)),yi(v,()=>q(a),e=>I(a,e)),yi(b,()=>q(o),e=>I(o,e)),yi(S,()=>q(s),e=>I(s,e)),yi(w,()=>q(c),e=>I(c,e)),yi(E,()=>q(l),e=>I(l,e)),bi(te,()=>q(u),e=>I(u,e)),Y(`click`,oe,function(...e){t.onCancel?.apply(this,e)}),Z(e,m),Ge()}Er([`click`]);var Ji=X(`<button>Add disc</button>`),Yi=X(`<p>Loading…</p>`),Xi=X(`<p class="error"> </p>`),Zi=X(`<p>No disc found</p>`),Qi=X(`<span class="tag-spin" aria-hidden="true">💿</span>`),$i=X(`<tr><td class="spin-cell"><!></td><td class="tag"> </td><td class="uri"><span class="uri-row"><span class="uri-text"> </span> <button type="button" class="uri-copy"> </button></span></td><td class="type"><span class="type-icon"> </span> <span class="type-label"> </span></td><td class="title"> </td><td class="center"><span role="img">🔀</span></td><td class="row-actions"><button>Edit</button> <button class="btn-danger">Delete</button></td></tr>`),ea=X(`<!> <table class="discs"><colgroup><col style="width: 24px"/><col style="width: 14%"/><col/><col style="width: 90px"/><col style="width: 28%"/><col style="width: 70px"/><col style="width: 130px"/></colgroup><thead><tr><th></th><th>Tag</th><th>URI</th><th>Type</th><th>Title</th><th>Shuffle</th><th></th></tr></thead><tbody></tbody></table>`,1),ta=X(`<div class="page-header"><h2>Library</h2> <!></div> <!>`,1);function na(e,t){We(t,!0);let n=Ti(t,`intent`,3,null),r=F(L({})),i=F(!0),a=F(null),o=F(null),s=F(null),c=F(null),l=F(null);Tn(()=>{let e=new EventSource(`/api/v1/current-tag/events`);return e.onmessage=e=>{let t=JSON.parse(e.data);I(s,t?.known_in_library?t.tag_id:null,!0)},()=>e.close()});async function u(){I(i,!0);try{I(r,await Bi(`/discs`),!0),I(a,null)}catch(e){I(a,e.message,!0)}finally{I(i,!1)}}Ei(u),Tn(()=>{!n()||q(i)||(n().type===`edit`?f(n().tagId):d(n().tagId),t.onIntentConsumed?.())});function d(e=``){I(o,{type:`create`,tagId:e},!0)}function f(e){I(o,{type:`edit`,tagId:e,disc:q(r)[e]},!0)}function p(){I(o,null)}async function m(){I(o,null),await u(),Pi.showToast(`💿 Disc saved.`)}async function g(e,t){await navigator.clipboard.writeText(t),I(c,e,!0),setTimeout(()=>{q(c)===e&&I(c,null)},1500)}function _(e){return e.split(` `)[0]}function v(e){let t=e.indexOf(` `);return t===-1?``:e.slice(t+1)}async function y(e){if(confirm(`Delete disc "${e}"?`))try{await Wi(`/discs/${e}`),I(l,null),await u(),Pi.showToast(`💿 Disc deleted.`)}catch(e){I(l,e.body?.detail??e.message,!0)}}var b=ta(),x=pn(b),S=V(z(x),2),C=e=>{var t=Ji();Y(`click`,t,()=>d()),Z(e,t)};$(S,e=>{q(o)||e(C)}),j(x);var w=V(x,2),T=e=>{qi(e,{mode:`create`,get tagId(){return q(o).tagId},onSaved:m,onCancel:p})},E=e=>{qi(e,{mode:`edit`,get tagId(){return q(o).tagId},get disc(){return q(o).disc},onSaved:m,onCancel:p})},ee=e=>{var t=Fr(),n=pn(t),o=e=>{Z(e,Yi())},u=e=>{var t=Xi(),n=B(t,!0);H(()=>Q(n,q(a))),Z(e,t)},d=e=>{Z(e,Zi())},p=Ct(()=>Object.keys(q(r)).length===0),m=e=>{var t=ea(),n=pn(t),i=e=>{var t=Xi(),n=B(t,!0);H(()=>Q(n,q(l))),Z(e,t)};$(n,e=>{q(l)&&e(i)});var a=V(n,2),o=V(z(a),2);Jr(o,21,()=>Object.entries(q(r)),([e,t])=>e,(e,t)=>{var n=Ct(()=>h(q(t),2));let r=()=>q(n)[0],i=()=>q(n)[1];var a=$i(),o=z(a),l=z(o),u=e=>{Z(e,Qi())};$(l,e=>{r()===q(s)&&e(u)}),j(o);var d=V(o),p=B(d,!0),m=V(d),b=z(m),x=z(b),S=B(x,!0),C=V(x,2),w=B(C,!0);j(b),j(m);var T=V(m),E=z(T),ee=B(E,!0),te=B(V(E,2),!0);j(T);var ne=V(T),re=B(ne,!0),D=V(ne),ie=z(D);let ae;j(D);var oe=V(D),se=z(oe),ce=V(se,2);j(oe),j(a),H((e,t)=>{Q(p,r()),hi(m,`title`,i().uri),Q(S,i().uri),hi(C,`aria-label`,q(c)===r()?`Copied`:`Copy URI`),Q(w,q(c)===r()?`✅`:`📋`),Q(ee,e),Q(te,t),Q(re,i().display_title),ae=ni(ie,1,`shuffle-icon`,null,ae,{active:i().option.shuffle}),hi(ie,`aria-label`,i().option.shuffle?`Shuffle on`:`Shuffle off`)},[()=>_(i().display_type),()=>v(i().display_type)]),Y(`click`,C,()=>g(r(),i().uri)),Y(`click`,se,()=>f(r())),Y(`click`,ce,()=>y(r())),Z(e,a)}),j(o),j(a),Z(e,t)};$(n,e=>{q(i)?e(o):q(a)?e(u,1):q(p)?e(d,2):e(m,-1)}),Z(e,t)};$(w,e=>{q(o)?.type===`create`?e(T):q(o)?.type===`edit`?e(E,1):e(ee,-1)}),Z(e,b),Ge()}Er([`click`]);var ra=X(`<option> </option>`),ia=X(`<select></select>`),aa=X(`<textarea rows="10" placeholder="Enter a JSON object. Leave blank to persist null."></textarea>`),oa=X(`<input/>`),sa=X(`<p class="error"> </p>`),ca=X(`<button type="button" class="btn-danger">Reset</button>`),la=X(`<form><h3> </h3> <p class="path"> </p> <p> </p> <!> <!> <div class="actions"><button type="submit" class="btn-primary"> </button> <!> <button type="button" class="btn-secondary">Cancel</button></div></form>`);function ua(e,t){We(t,!0);function n(e){let t=e.is_persisted?e.persisted_value:e.effective_value;return t==null?``:e.field_type===`object`?JSON.stringify(t,null,2):String(t)}let r=F(L(J(()=>n(t.setting)))),i=F(null),a=F(!1);function o(e,t){let n=e.split(`.`),r={},i=r;for(let e of n.slice(0,-1))i[e]={},i=i[e];return i[n.at(-1)]=t,r}function s(){if(t.setting.choices.length>0)return q(r);if(t.setting.field_type===`integer`){let e=Number.parseInt(q(r),10);if(Number.isNaN(e))throw Error(`Enter a valid integer.`);return e}if(t.setting.field_type===`number`){let e=Number.parseFloat(q(r));if(Number.isNaN(e))throw Error(`Enter a valid number.`);return e}if(t.setting.field_type===`object`){if(q(r).trim()===``)return null;try{return JSON.parse(q(r))}catch{throw Error(`Enter valid JSON.`)}}return q(r)}async function c(e){e.preventDefault(),I(i,null),I(a,!0);try{let e=s();await Ui(`/settings`,o(t.setting.path,e)),t.onSaved(`save`)}catch(e){I(i,e.body?.detail??e.message,!0)}finally{I(a,!1)}}async function l(){I(i,null),I(a,!0);try{await Vi(`/settings/reset`,{path:t.setting.path}),t.onSaved(`reset`)}catch(e){I(i,e.body?.detail??e.message,!0)}finally{I(a,!1)}}var u=la(),d=z(u),f=B(d),p=V(d,2),m=B(p,!0),h=V(p,2),g=B(h,!0),_=V(h,2),v=e=>{var n=ia();Jr(n,21,()=>t.setting.choices,e=>e.value,(e,t)=>{var n=ra(),r=B(n,!0),i={};H(()=>{Q(r,q(t).label),i!==(i=q(t).value)&&(n.value=(n.__value=i)??``)}),Z(e,n)}),j(n),oi(n),si(n,()=>q(r),e=>I(r,e)),Z(e,n)},y=e=>{var t=aa();dt(t),yi(t,()=>q(r),e=>I(r,e)),Z(e,t)},b=e=>{var n=oa();pi(n),H(()=>{hi(n,`type`,t.setting.field_type===`integer`||t.setting.field_type===`number`?`number`:`text`),hi(n,`step`,t.setting.field_type===`number`?`any`:void 0)}),yi(n,()=>q(r),e=>I(r,e)),Z(e,n)};$(_,e=>{t.setting.choices.length>0?e(v):t.setting.field_type===`object`?e(y,1):e(b,-1)});var x=V(_,2),S=e=>{var t=sa(),n=B(t,!0);H(()=>Q(n,q(i))),Z(e,t)};$(x,e=>{q(i)&&e(S)});var C=V(x,2),w=z(C),T=B(w,!0),E=V(w,2),ee=e=>{var t=ca();H(()=>t.disabled=q(a)),Y(`click`,t,l),Z(e,t)};$(E,e=>{t.setting.is_persisted&&e(ee)});var te=V(E,2);j(C),j(u),H(()=>{Q(f,`Edit ${t.setting.label??``}`),Q(m,t.setting.path),Q(g,t.setting.description),w.disabled=q(a),Q(T,q(a)?`Saving…`:`Save`)}),Tr(`submit`,u,c),Y(`click`,te,function(...e){t.onCancel?.apply(this,e)}),Z(e,u),Ge()}Er([`click`]);var da=X(`<p>Loading…</p>`),fa=X(`<p class="error"> </p>`),pa=X(`<span class="badge badge-configured">Configured</span>`),ma=X(`<span class="badge badge-pinned">Pinned default</span>`),ha=X(`<span class="badge badge-restart">Restart required</span>`),ga=X(`<span class="badge badge-advanced">Advanced</span>`),_a=X(`<span class="path">—</span>`),va=X(`<button>Manage Speakers 🔊</button>`),ya=X(`<button>Edit</button>`),ba=X(`<tr><td><strong> </strong> <!> <!> <!> <!> <div class="path"> </div></td><td> </td><td><!></td><td> </td><td> </td><td><!></td></tr>`),xa=X(`<h3> </h3> <table><thead><tr><th>Setting</th><th>Default</th><th>Persisted</th><th>Effective value</th><th>Source</th><th></th></tr></thead><tbody></tbody></table>`,1),Sa=X(`<!> <!>`,1),Ca=X(`<h2>Settings</h2> <!>`,1);function wa(e,t){We(t,!0);let n=F(L([])),r=F(null),i=F(!0),a=F(null),o=F(null);async function s(){I(i,!0);try{let e=await Bi(`/settings/displays`);I(n,e.settings,!0),I(r,e.effective_settings_error,!0),I(a,null)}catch(e){I(a,e.message,!0)}finally{I(i,!1)}}Ei(s);function c(e){let t=[];for(let n of e){let e=t.at(-1);e&&e.section===n.section?e.entries.push(n):t.push({section:n.section,label:n.section_label,entries:[n]})}return t}function l(e){return e==null?`null`:typeof e==`object`?JSON.stringify(e):String(e)}let u=Ct(()=>c(q(n))),d=Ct(()=>q(n).find(e=>e.path===q(o))??null);function f(e){I(o,e,!0)}function p(){I(o,null)}async function m(e){I(o,null),await s(),e===`save`?Pi.showToast(`⚙️ Settings saved.`):e===`reset`&&Pi.showToast(`⚙️ Settings reset to default.`)}var h=Ca(),g=V(pn(h),2),_=e=>{ua(e,{get setting(){return q(d)},onSaved:m,onCancel:p})},v=e=>{Z(e,da())},y=e=>{var t=fa(),n=B(t,!0);H(()=>Q(n,q(a))),Z(e,t)},b=e=>{var n=Sa(),i=pn(n),a=e=>{var t=fa(),n=B(t);H(()=>Q(n,`${q(r)??``} Persisted overrides are still shown below.`)),Z(e,t)};$(i,e=>{q(r)&&e(a)}),Jr(V(i,2),17,()=>q(u),e=>e.section,(e,n)=>{var r=xa(),i=pn(r),a=B(i,!0),o=V(i,2),s=V(z(o));Jr(s,21,()=>q(n).entries,e=>e.path,(e,n)=>{var r=ba(),i=z(r),a=z(i),o=B(a,!0),s=V(a,2),c=e=>{Z(e,pa())};$(s,e=>{q(n).is_persisted&&e(c)});var u=V(s,2),d=e=>{Z(e,ma())};$(u,e=>{q(n).is_pinned_default&&e(d)});var p=V(u,2),m=e=>{Z(e,ha())};$(p,e=>{q(n).requires_restart&&e(m)});var h=V(p,2),g=e=>{Z(e,ga())};$(h,e=>{q(n).advanced&&e(g)});var _=B(V(h,2),!0);j(i);var v=V(i),y=B(v,!0),b=V(v),x=z(b),S=e=>{var t=Pr();H(e=>Q(t,e),[()=>l(q(n).persisted_value)]),Z(e,t)},C=e=>{Z(e,_a())};$(x,e=>{q(n).is_persisted?e(S):e(C,-1)}),j(b);var w=V(b),T=B(w,!0),E=V(w),ee=B(E,!0),te=V(E),ne=z(te),re=e=>{var n=va();Y(`click`,n,()=>t.onManageSpeakers?.()),Z(e,n)},D=e=>{var t=ya();Y(`click`,t,()=>f(q(n).path)),Z(e,t)};$(ne,e=>{q(n).path===`jukebox.player.sonos.selected_group`?e(re):e(D,-1)}),j(te),j(r),H((e,t)=>{Q(o,q(n).label),Q(_,q(n).path),Q(y,e),Q(T,t),Q(ee,q(n).provenance)},[()=>l(q(n).default_value),()=>l(q(n).effective_value)]),Z(e,r)}),j(s),j(o),H(()=>Q(a,q(n).label)),Z(e,r)}),Z(e,n)};$(g,e=>{q(d)?e(_):q(i)?e(v,1):q(a)?e(y,2):e(b,-1)}),Z(e,h),Ge()}Er([`click`]);var Ta=X(`<label class="checkbox"><input type="checkbox"/> </label>`),Ea=X(`<option> </option>`),Da=X(`<p class="error"> </p>`),Oa=X(`<form><h3>Edit Sonos Selection</h3> <p>Choose one or more visible speakers and select the coordinator used for playback.</p> <p>Changes take effect after restart.</p> <fieldset><legend>Speakers</legend> <!></fieldset> <label>Coordinator <select></select></label> <!> <div class="actions"><button type="submit" class="btn-primary"> </button> <button type="button" class="btn-secondary">Cancel</button></div></form>`);function ka(e,t){We(t,!0);function n(){return t.selectedGroup?t.selectedGroup.members.map(e=>e.uid):t.speakers[0]?[t.speakers[0].uid]:[]}let r=F(L(J(()=>new Set(n())))),i=F(L(J(()=>t.selectedGroup?.coordinator_uid??n()[0]??``))),a=F(null),o=F(!1);function s(e){let t=new Set(q(r));t.has(e)?t.delete(e):t.add(e),I(r,t,!0)}async function c(e){e.preventDefault(),I(a,null),I(o,!0);try{await Hi(`/sonos/selection`,{uids:[...q(r)],coordinator_uid:q(i)}),t.onSaved()}catch(e){I(a,e.body?.detail??e.message,!0)}finally{I(o,!1)}}var l=Oa(),u=V(z(l),6);Jr(V(z(u),2),17,()=>t.speakers,e=>e.uid,(e,t)=>{var n=Ta(),i=z(n);pi(i);var a=V(i);j(n),H(e=>{mi(i,e),Q(a,` ${q(t).name??``} (${q(t).host??``})`)},[()=>q(r).has(q(t).uid)]),Y(`change`,i,()=>s(q(t).uid)),Z(e,n)}),j(u);var d=V(u,2),f=V(z(d));Jr(f,21,()=>t.speakers,e=>e.uid,(e,t)=>{var n=Ea(),r=B(n),i={};H(()=>{Q(r,`${q(t).name??``} (${q(t).host??``})`),i!==(i=q(t).uid)&&(n.value=(n.__value=i)??``)}),Z(e,n)}),j(f),oi(f),j(d);var p=V(d,2),m=e=>{var t=Da(),n=B(t,!0);H(()=>Q(n,q(a))),Z(e,t)};$(p,e=>{q(a)&&e(m)});var h=V(p,2),g=z(h),_=B(g,!0),v=V(g,2);j(h),j(l),H(()=>{g.disabled=q(o),Q(_,q(o)?`Saving…`:`Save`)}),Tr(`submit`,l,c),si(f,()=>q(i),e=>I(i,e)),Y(`click`,v,function(...e){t.onCancel?.apply(this,e)}),Z(e,l),Ge()}Er([`change`,`click`]);var Aa=X(`<p>Loading…</p>`),ja=X(`<p class="error"> </p>`),Ma=X(`<p>No Sonos speaker selection is currently saved.</p>`),Na=X(`<p> </p> <p> </p> <p> </p>`,1),Pa=X(`<button class="btn-danger">Clear saved selection</button>`),Fa=X(`<p>No visible Sonos speakers found.</p>`),Ia=X(`<tr><td> </td><td> </td><td> </td><td class="center"> </td></tr>`),La=X(`<table><thead><tr><th>Name</th><th>Host</th><th>Household</th><th>Selection</th></tr></thead><tbody></tbody></table>`),Ra=X(`<h3>Discovered speakers</h3> <!>`,1),za=X(`<!> <div class="panel"><h3>Saved selection</h3> <!></div> <div class="row-actions"><button>Edit selection</button> <!></div> <!>`,1),Ba=X(`<h2>Sonos</h2> <!>`,1);function Va(e,t){We(t,!0);let n={available:`Available`,partial:`Partially available`,unavailable:`Unavailable`,not_selected:`Not selected`},r=F(null),i=F(L([])),a=F(!0),o=F(null),s=F(null),c=F(!1);async function l(){I(a,!0),I(o,null),I(s,null);try{I(r,await Bi(`/sonos/selection`),!0),I(i,await Bi(`/sonos/speakers`),!0)}catch(e){e instanceof Ri&&e.status===502?I(o,e.body?.detail??`Sonos discovery unavailable.`,!0):I(s,e.message,!0)}finally{I(a,!1)}}Ei(l);let u=Ct(()=>Object.fromEntries(q(i).map(e=>[e.uid,e])));function d(e){let t=q(u)[e];return t?`${t.name} [${e}]`:e}function f(e){let t=q(r)?.selected_group;return t?t.coordinator_uid===e?`Coordinator`:t.members.some(t=>t.uid===e)?`Selected`:`Available`:`Available`}function p(){I(c,!0)}function m(){I(c,!1)}async function h(){I(c,!1),await l(),Pi.showToast(`🔊 Sonos settings saved.`)}async function g(){await Vi(`/settings/reset`,{path:`jukebox.player.sonos.selected_group`}),await l(),Pi.showToast(`🔊 Selection cleared.`)}var _=Ba(),v=V(pn(_),2),y=e=>{{let t=Ct(()=>q(r)?.selected_group??null);ka(e,{get speakers(){return q(i)},get selectedGroup(){return q(t)},onSaved:h,onCancel:m})}},b=e=>{Z(e,Aa())},x=e=>{var t=ja(),n=B(t,!0);H(()=>Q(n,q(s))),Z(e,t)},S=e=>{var t=za(),a=pn(t),s=e=>{var t=ja(),n=B(t);H(()=>Q(n,`Sonos discovery unavailable: ${q(o)??``}`)),Z(e,t)};$(a,e=>{q(o)&&e(s)});var c=V(a,2),l=V(z(c),2),u=e=>{Z(e,Ma())},m=e=>{var t=Na(),i=pn(t),a=B(i),o=V(i,2),s=B(o),c=B(V(o,2));H((e,t)=>{Q(a,`Status: ${n[q(r).availability.status]??q(r).availability.status??``}`),Q(s,`Coordinator: ${e??``}`),Q(c,`Members: ${t??``}`)},[()=>d(q(r).selected_group.coordinator_uid),()=>q(r).selected_group.members.map(e=>d(e.uid)).join(`, `)]),Z(e,t)};$(l,e=>{q(r)?.selected_group?e(m,-1):e(u)}),j(c);var h=V(c,2),_=z(h),v=V(_,2),y=e=>{var t=Pa();Y(`click`,t,g),Z(e,t)};$(v,e=>{q(r)?.selected_group&&e(y)}),j(h);var b=V(h,2),x=e=>{var t=Ra(),n=V(pn(t),2),r=e=>{Z(e,Fa())},a=e=>{var t=La(),n=V(z(t));Jr(n,21,()=>q(i),e=>e.uid,(e,t)=>{var n=Ia(),r=z(n),i=B(r,!0),a=V(r),o=B(a,!0),s=V(a),c=B(s,!0),l=B(V(s),!0);j(n),H(e=>{Q(i,q(t).name),Q(o,q(t).host),Q(c,q(t).household_id),Q(l,e)},[()=>f(q(t).uid)]),Z(e,n)}),j(n),j(t),Z(e,t)};$(n,e=>{q(i).length===0?e(r):e(a,-1)}),Z(e,t)};$(b,e=>{q(o)||e(x)}),Y(`click`,_,p),Z(e,t)};$(v,e=>{q(c)?e(y):q(a)?e(b,1):q(s)?e(x,2):e(S,-1)}),Z(e,_),Ge()}Er([`click`]);var Ha=X(`<button> </button>`),Ua=X(`<!> <!> <nav></nav> <main><!></main> <footer><a href="https://github.com/Gudsfile/jukebox" target="_blank" rel="noopener noreferrer">Jukebox made with ❤️ & 💿 · View on GitHub</a></footer>`,1);function Wa(e){let t=[`library`,`settings`,`sonos`],n=F(`library`),r=F(null);function i(e){I(r,e,!0),I(n,`library`)}function a(){I(r,null)}function o(){I(n,`sonos`)}var s=Ua(),c=pn(s);ji(c,{onEditDisc:e=>i({type:`edit`,tagId:e}),onAddDisc:e=>i({type:`create`,tagId:e})});var l=V(c,2);Ii(l,{});var u=V(l,2);Jr(u,20,()=>t,e=>e,(e,t)=>{var r=Ha();let i;var a=B(r,!0);H(()=>{i=ni(r,1,``,null,i,{active:q(n)===t}),Q(a,t)}),Y(`click`,r,()=>I(n,t,!0)),Z(e,r)}),j(u);var d=V(u,2),f=z(d),p=e=>{na(e,{get intent(){return q(r)},onIntentConsumed:a})},m=e=>{wa(e,{onManageSpeakers:o})},h=e=>{Va(e,{})};$(f,e=>{q(n)===`library`?e(p):q(n)===`settings`?e(m,1):q(n)===`sonos`&&e(h,2)}),j(d),Ce(2),Z(e,s)}Er([`click`]),Br(Wa,{target:document.getElementById(`app`)});
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/api/current_tag_router.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/inbound/admin/interactive_cli_controller.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/outbound/players/dryrun_player_adapter.py
RENAMED
|
File without changes
|
{gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/outbound/players/sonos_player_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
{gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/outbound/readers/dryrun_reader_adapter.py
RENAMED
|
File without changes
|
{gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/adapters/outbound/readers/pn532_reader_adapter.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{gukebox-1.5.0.dev5 → gukebox-1.7.0}/jukebox/domain/use_cases/library/get_current_tag_status.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|