From e42dd6e144f82e5410fe0f802c9da92072078cdf Mon Sep 17 00:00:00 2001 From: vcoppe Date: Thu, 22 Aug 2024 14:56:39 +0200 Subject: [PATCH] fix stats slice bug, closes #67 --- gpx/src/gpx.ts | 11 +++++++++++ .../components/toolbar/tools/scissors/Scissors.svelte | 6 +++--- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/gpx/src/gpx.ts b/gpx/src/gpx.ts index 912cf982..2d06ae6e 100644 --- a/gpx/src/gpx.ts +++ b/gpx/src/gpx.ts @@ -1326,6 +1326,17 @@ export class GPXStatistics { } slice(start: number, end: number): GPXStatistics { + if (start < 0) { + start = 0; + } else if (start >= this.local.points.length) { + return new GPXStatistics(); + } + if (end < start) { + return new GPXStatistics(); + } else if (end >= this.local.points.length) { + end = this.local.points.length - 1; + } + let statistics = new GPXStatistics(); statistics.local.points = this.local.points.slice(start, end + 1); diff --git a/website/src/lib/components/toolbar/tools/scissors/Scissors.svelte b/website/src/lib/components/toolbar/tools/scissors/Scissors.svelte index 9c51406b..05ff6143 100644 --- a/website/src/lib/components/toolbar/tools/scissors/Scissors.svelte +++ b/website/src/lib/components/toolbar/tools/scissors/Scissors.svelte @@ -37,8 +37,8 @@ $selection.hasAnyChildren(new ListRootItem(), true, ['waypoints']) && $gpxStatistics.local.points.length > 0; - let maxSliderValue = 100; - let sliderValues = [0, 100]; + let maxSliderValue = 1; + let sliderValues = [0, 1]; function updateCanCrop() { canCrop = sliderValues[0] != 0 || sliderValues[1] != maxSliderValue; @@ -66,7 +66,7 @@ if (validSelection && $gpxStatistics.local.points.length > 0) { maxSliderValue = $gpxStatistics.local.points.length - 1; } else { - maxSliderValue = 100; + maxSliderValue = 1; } await tick(); sliderValues = [0, maxSliderValue];