Skip to content

Commit db2f4fb

Browse files
committed
Fix to interactive prop and adding types to non-standard controls
1 parent f3c3ded commit db2f4fb

File tree

2 files changed

+36
-7
lines changed

2 files changed

+36
-7
lines changed

src/lib/components/data-vis/map/Map.svelte

Lines changed: 26 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
Control,
99
ControlButton,
1010
ControlGroup,
11+
ScaleControl,
1112
} from "svelte-maplibre";
1213
import { contrastingColor } from "./colors.js";
1314
import { colorbrewer } from "./colorbrewer.js";
@@ -85,14 +86,14 @@
8586
cooperativeGestures?: boolean;
8687
standardControls?: boolean;
8788
navigationControl?: boolean;
88-
navigationControlPosition?: string;
89+
navigationControlPosition?: maplibregl.ControlPosition;
8990
geolocateControl?: boolean;
90-
geolocateControlPosition?: string;
91+
geolocateControlPosition?: maplibregl.ControlPosition;
9192
fullscreenControl?: boolean;
92-
fullscreenControlPosition?: string;
93+
fullscreenControlPosition?: maplibregl.ControlPosition;
9394
scaleControl?: boolean;
94-
scaleControlPosition?: string;
95-
scaleControlUnit?: string;
95+
scaleControlPosition?: maplibregl.ControlPosition;
96+
scaleControlUnit?: "imperial" | "metric" | "nautical";
9697
styleSheet?: string | URL | object;
9798
colorPalette?: string;
9899
showBorder?: boolean;
@@ -214,6 +215,24 @@
214215
$inspect(cooperativeGestures);
215216
}
216217
218+
if (interactive) {
219+
map?.scrollZoom.enable();
220+
map?.boxZoom.enable();
221+
map?.dragRotate.enable();
222+
map?.dragPan.enable();
223+
map?.keyboard.enable();
224+
map?.doubleClickZoom.enable();
225+
map?.touchZoomRotate.enable();
226+
} else {
227+
map?.scrollZoom.disable();
228+
map?.boxZoom.disable();
229+
map?.dragRotate.disable();
230+
map?.dragPan.disable();
231+
map?.keyboard.disable();
232+
map?.doubleClickZoom.disable();
233+
map?.touchZoomRotate.disable();
234+
}
235+
217236
map?.setMaxBounds(bounds);
218237
});
219238
@@ -315,7 +334,6 @@
315334
standardControls={interactive && standardControls}
316335
{hash}
317336
{updateHash}
318-
{interactive}
319337
class="map"
320338
{onload}
321339
{onidle}
@@ -347,6 +365,8 @@
347365
</button>
348366
</ControlGroup>
349367
</Control>
368+
{:else if !interactive}
369+
<ScaleControl position={scaleControlPosition} unit={scaleControlUnit} />
350370
{/if}
351371

352372
<GeoJSON id="areas" data={merged} promoteId="areanm">

src/lib/components/data-vis/map/NonStandardControls.svelte

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
<script lang="ts">
2-
//@ts-nocheck
32
import {
43
FullscreenControl,
54
GeolocateControl,
@@ -17,6 +16,16 @@
1716
scaleControl,
1817
scaleControlPosition = "bottom-left",
1918
scaleControlUnit = "metric",
19+
}: {
20+
navigationControl?: boolean;
21+
navigationControlPosition?: maplibregl.ControlPosition;
22+
geolocateControl?: boolean;
23+
geolocateControlPosition?: maplibregl.ControlPosition;
24+
fullscreenControl?: boolean;
25+
fullscreenControlPosition?: maplibregl.ControlPosition;
26+
scaleControl?: boolean;
27+
scaleControlPosition?: maplibregl.ControlPosition;
28+
scaleControlUnit?: "imperial" | "metric" | "nautical";
2029
} = $props();
2130
</script>
2231

0 commit comments

Comments
 (0)