From 0733562c0d303b001edf836d97772a01bd391f71 Mon Sep 17 00:00:00 2001 From: vcoppe Date: Sun, 5 Oct 2025 19:34:05 +0200 Subject: [PATCH] progress --- .../lib/components/ButtonWithTooltip.svelte | 2 + website/src/lib/components/Menu.svelte | 200 +-- .../lib/components/embedding/Embedding.svelte | 335 +++-- .../src/lib/components/export/Export.svelte | 79 +- .../src/lib/components/export/utils.svelte.ts | 14 +- .../lib/components/file-list/FileList.svelte | 2 +- .../components/file-list/FileListNode.svelte | 2 +- .../file-list/FileListNodeContent.svelte | 2 +- .../file-list/FileListNodeLabel.svelte | 7 +- .../file-list/FileListNodeStore.svelte | 2 +- .../src/lib/components/file-list/Selection.ts | 375 ----- .../file-list/{FileList.ts => file-list.ts} | 171 +-- .../file-list/metadata/MetadataDialog.svelte | 2 +- .../file-list/style/StyleDialog.svelte | 6 +- .../lib/components/map/gpx-layer/GPXLayer.ts | 5 +- .../map/layer-control/utils.svelte.ts | 1 - .../components/toolbar/ToolbarItemMenu.svelte | 25 +- .../lib/components/toolbar/tools/Clean.svelte | 90 +- .../components/toolbar/tools/Elevation.svelte | 12 +- .../components/toolbar/tools/Extract.svelte | 56 +- .../lib/components/toolbar/tools/Merge.svelte | 70 +- .../components/toolbar/tools/Reduce.svelte | 116 +- .../lib/components/toolbar/tools/Time.svelte | 58 +- .../toolbar/tools/routing/Routing.svelte | 138 +- .../toolbar/tools/routing/RoutingControls.ts | 9 +- .../{routing.svelte.ts => utils.svelte.ts} | 0 .../toolbar/tools/scissors/Scissors.svelte | 8 +- ...itControls.svelte.ts => split-controls.ts} | 13 +- .../tools/{ => waypoint}/Waypoint.svelte | 142 +- .../toolbar/tools/waypoint/utils.svelte.ts | 67 + website/src/lib/db.ts | 1261 ----------------- website/src/lib/docs/be/toolbar/poi.mdx | 2 +- website/src/lib/docs/ca/toolbar/poi.mdx | 2 +- website/src/lib/docs/cs/toolbar/poi.mdx | 2 +- website/src/lib/docs/da/toolbar/poi.mdx | 2 +- website/src/lib/docs/de/toolbar/poi.mdx | 2 +- website/src/lib/docs/el/toolbar/poi.mdx | 2 +- website/src/lib/docs/en/toolbar/poi.mdx | 2 +- website/src/lib/docs/es/toolbar/poi.mdx | 2 +- website/src/lib/docs/eu/toolbar/poi.mdx | 2 +- website/src/lib/docs/fi/toolbar/poi.mdx | 2 +- website/src/lib/docs/fr/toolbar/poi.mdx | 2 +- website/src/lib/docs/he/toolbar/poi.mdx | 2 +- website/src/lib/docs/hu/toolbar/poi.mdx | 2 +- website/src/lib/docs/it/toolbar/poi.mdx | 2 +- website/src/lib/docs/ko/toolbar/poi.mdx | 2 +- website/src/lib/docs/lt/toolbar/poi.mdx | 2 +- website/src/lib/docs/lv/toolbar/poi.mdx | 2 +- website/src/lib/docs/nl/toolbar/poi.mdx | 2 +- website/src/lib/docs/no/toolbar/poi.mdx | 2 +- website/src/lib/docs/pl/toolbar/poi.mdx | 2 +- website/src/lib/docs/pt-BR/toolbar/poi.mdx | 2 +- website/src/lib/docs/pt/toolbar/poi.mdx | 2 +- website/src/lib/docs/ro/toolbar/poi.mdx | 2 +- website/src/lib/docs/ru/toolbar/poi.mdx | 2 +- website/src/lib/docs/sr/toolbar/poi.mdx | 2 +- website/src/lib/docs/sv/toolbar/poi.mdx | 2 +- website/src/lib/docs/tr/toolbar/poi.mdx | 2 +- website/src/lib/docs/uk/toolbar/poi.mdx | 2 +- website/src/lib/docs/vi/toolbar/poi.mdx | 2 +- website/src/lib/docs/zh/toolbar/poi.mdx | 2 +- .../lib/logic/file-action-manager.svelte.ts | 206 +++ website/src/lib/logic/file-actions.svelte.ts | 1161 +++++++++++++++ website/src/lib/logic/file-state.svelte.ts | 128 ++ website/src/lib/logic/files.svelte.ts | 40 - website/src/lib/logic/selection.svelte.ts | 429 ++---- website/src/lib/logic/selection.ts | 140 ++ website/src/lib/logic/statistics.ts | 46 + website/src/lib/stores.ts | 82 -- .../src/routes/[[language]]/app/+page.svelte | 47 +- 70 files changed, 2641 insertions(+), 2968 deletions(-) delete mode 100644 website/src/lib/components/file-list/Selection.ts rename website/src/lib/components/file-list/{FileList.ts => file-list.ts} (53%) rename website/src/lib/components/toolbar/tools/routing/{routing.svelte.ts => utils.svelte.ts} (100%) rename website/src/lib/components/toolbar/tools/scissors/{SplitControls.svelte.ts => split-controls.ts} (94%) rename website/src/lib/components/toolbar/tools/{ => waypoint}/Waypoint.svelte (58%) create mode 100644 website/src/lib/components/toolbar/tools/waypoint/utils.svelte.ts create mode 100644 website/src/lib/logic/file-action-manager.svelte.ts create mode 100644 website/src/lib/logic/file-actions.svelte.ts create mode 100644 website/src/lib/logic/file-state.svelte.ts delete mode 100644 website/src/lib/logic/files.svelte.ts create mode 100644 website/src/lib/logic/selection.ts create mode 100644 website/src/lib/logic/statistics.ts diff --git a/website/src/lib/components/ButtonWithTooltip.svelte b/website/src/lib/components/ButtonWithTooltip.svelte index e59b5326..edd809d8 100644 --- a/website/src/lib/components/ButtonWithTooltip.svelte +++ b/website/src/lib/components/ButtonWithTooltip.svelte @@ -7,6 +7,7 @@ variant = 'default', label, side = 'top', + disabled = false, class: className = '', children, onclick, @@ -14,6 +15,7 @@ variant?: 'default' | 'secondary' | 'link' | 'destructive' | 'outline' | 'ghost'; label: string; side?: 'top' | 'right' | 'bottom' | 'left'; + disabled?: boolean; class?: string; children: Snippet; onclick?: (event: MouseEvent) => void; diff --git a/website/src/lib/components/Menu.svelte b/website/src/lib/components/Menu.svelte index bcc096b6..65d824c5 100644 --- a/website/src/lib/components/Menu.svelte +++ b/website/src/lib/components/Menu.svelte @@ -55,25 +55,31 @@ // updateSelectionFromKey, // allHidden, // } from '$lib/stores'; - import { - copied, - copySelection, - cutSelection, - pasteSelection, - selectAll, - selection, - } from '$lib/components/file-list/Selection'; - // import { canUndo, canRedo, dbUtils, fileObservers, settings } from '$lib/db'; + // import { canUndo, canRedo, fileActions, fileObservers, settings } from '$lib/db'; import { anySelectedLayer } from '$lib/components/map/layer-control/utils.svelte'; import { defaultOverlays } from '$lib/assets/layers'; // import LayerControlSettings from '$lib/components/map/layer-control/LayerControlSettings.svelte'; - import { allowedPastes, ListFileItem, ListTrackItem } from '$lib/components/file-list/FileList'; + import { + allowedPastes, + ListFileItem, + ListTrackItem, + } from '$lib/components/file-list/file-list'; import Export from '$lib/components/export/Export.svelte'; import { mode, setMode } from 'mode-watcher'; import { i18n } from '$lib/i18n.svelte'; import { languages } from '$lib/languages'; import { getURLForLanguage } from '$lib/utils'; import { settings } from '$lib/logic/settings.svelte'; + import { + createFile, + fileActions, + loadFiles, + pasteSelection, + triggerFileInput, + } from '$lib/logic/file-actions.svelte'; + import { fileStateCollection } from '$lib/logic/file-state.svelte'; + import { fileActionManager } from '$lib/logic/file-action-manager.svelte'; + import { selection } from '$lib/logic/selection.svelte'; const { distanceUnits, @@ -91,9 +97,6 @@ routing, } = settings; - // let undoDisabled = derived(canUndo, ($canUndo) => !$canUndo); - // let redoDisabled = derived(canRedo, ($canRedo) => !$canRedo); - function switchBasemaps() { [currentBasemap.value, previousBasemap.value] = [ previousBasemap.value, @@ -103,15 +106,11 @@ function toggleOverlays() { if (currentOverlays.value && anySelectedLayer(currentOverlays.value)) { - [currentOverlays.value, previousOverlays.value] = [ - defaultOverlays, - currentOverlays.value, - ]; + previousOverlays.value = JSON.parse(JSON.stringify(currentOverlays.value)); + currentOverlays.value = defaultOverlays; } else { - [currentOverlays.value, previousOverlays.value] = [ - previousOverlays.value, - defaultOverlays, - ]; + currentOverlays.value = JSON.parse(JSON.stringify(previousOverlays.value)); + previousOverlays.value = defaultOverlays; } } @@ -126,7 +125,7 @@