diff --git a/web/src/lib/components/shared-components/coordinates-input.svelte b/web/src/lib/components/shared-components/coordinates-input.svelte index 2eb9682ff69c6..f5ad120a7bec3 100644 --- a/web/src/lib/components/shared-components/coordinates-input.svelte +++ b/web/src/lib/components/shared-components/coordinates-input.svelte @@ -14,14 +14,32 @@ onUpdate(lat, lng); } }; + + const onPaste = (event: ClipboardEvent) => { + const coords = event.clipboardData?.getData('text/plain')?.split(','); + if (!coords || coords.length !== 2) { + return; + } + + const [latitude, longitude] = coords.map((coord) => Number.parseFloat(coord)); + if (Number.isNaN(latitude) || latitude < -90 || latitude > 90) { + return; + } + if (Number.isNaN(longitude) || longitude < -180 || longitude > 180) { + return; + } + + event.preventDefault(); + [lat, lng] = [latitude, longitude]; + };
- +
- +
diff --git a/web/src/lib/components/shared-components/number-range-input.svelte b/web/src/lib/components/shared-components/number-range-input.svelte index e4c780a708981..2e7dca878129e 100644 --- a/web/src/lib/components/shared-components/number-range-input.svelte +++ b/web/src/lib/components/shared-components/number-range-input.svelte @@ -1,5 +1,6 @@