@maptiler/geocoding-control 1.4.2-dev.2 → 2.0.0-rc.1
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.
- package/MapLibreBasedGeocodingControl.d.ts +2971 -35
- package/leaflet-controller.d.ts +1 -1
- package/leaflet-controller.js +580 -569
- package/leaflet-controller.js.map +1 -1
- package/leaflet-controller.umd.js +3 -3
- package/leaflet-controller.umd.js.map +1 -1
- package/leaflet.d.ts +74 -16
- package/leaflet.js +1344 -1311
- package/leaflet.js.map +1 -1
- package/leaflet.umd.js +3 -3
- package/leaflet.umd.js.map +1 -1
- package/maplibregl-controller.d.ts +7 -7
- package/maplibregl-controller.js +683 -661
- package/maplibregl-controller.js.map +1 -1
- package/maplibregl-controller.umd.js +3 -3
- package/maplibregl-controller.umd.js.map +1 -1
- package/maplibregl.js +1632 -1481
- package/maplibregl.js.map +1 -1
- package/maplibregl.umd.js +3 -3
- package/maplibregl.umd.js.map +1 -1
- package/maptilersdk.js +1642 -1488
- package/maptilersdk.js.map +1 -1
- package/maptilersdk.umd.js +3 -3
- package/maptilersdk.umd.js.map +1 -1
- package/openlayers-controller.d.ts +1 -1
- package/openlayers-controller.js +308 -306
- package/openlayers-controller.js.map +1 -1
- package/openlayers-controller.umd.js +3 -3
- package/openlayers-controller.umd.js.map +1 -1
- package/openlayers.d.ts +21 -0
- package/openlayers.js +1301 -1313
- package/openlayers.js.map +1 -1
- package/openlayers.umd.js +3 -3
- package/openlayers.umd.js.map +1 -1
- package/package.json +18 -18
- package/react.d.ts +4 -4
- package/react.js +663 -644
- package/react.js.map +1 -1
- package/react.umd.js +1 -1
- package/react.umd.js.map +1 -1
- package/style.css +1 -1
- package/svelte/FeatureItem.svelte.d.ts +1 -1
- package/svelte/GeocodingControl.svelte +64 -33
- package/svelte/GeocodingControl.svelte.d.ts +25 -9
- package/svelte/MapLibreBasedGeocodingControl.d.ts +2971 -35
- package/svelte/MapLibreBasedGeocodingControl.js +166 -58
- package/svelte/leaflet-controller.d.ts +1 -1
- package/svelte/leaflet-controller.js +50 -24
- package/svelte/leaflet.d.ts +74 -16
- package/svelte/leaflet.js +25 -15
- package/svelte/maplibregl-controller.d.ts +7 -7
- package/svelte/maplibregl-controller.js +96 -66
- package/svelte/maplibregl.js +10 -7
- package/svelte/maptilersdk.js +23 -18
- package/svelte/openlayers-controller.d.ts +1 -1
- package/svelte/openlayers-controller.js +4 -1
- package/svelte/openlayers.d.ts +21 -0
- package/svelte/openlayers.js +30 -45
- package/svelte/react.d.ts +4 -4
- package/svelte/types.d.ts +38 -12
- package/svelte/vanilla.d.ts +14 -1
- package/svelte/vanilla.js +31 -8
- package/types.d.ts +38 -12
- package/vanilla.d.ts +14 -1
- package/vanilla.js +838 -791
- package/vanilla.js.map +1 -1
- package/vanilla.umd.js +1 -1
- package/vanilla.umd.js.map +1 -1
- package/maplibregl.d.ts +0 -16
- package/maptilersdk.d.ts +0 -11
- package/svelte/maplibregl.d.ts +0 -16
- package/svelte/maptilersdk.d.ts +0 -11
package/style.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
svg.svelte-d2loi5{display:block;fill:#e15042}li.svelte-ltkwvy.svelte-ltkwvy{text-align:left;cursor:default;display:grid;grid-template-columns:40px 1fr;color:var(--color-text);padding:8px 0;font-size:14px;line-height:18px;min-width:fit-content}li.svelte-ltkwvy.svelte-ltkwvy:first-child{padding-top:10px}li.svelte-ltkwvy.svelte-ltkwvy:last-child{padding-bottom:10px}li.selected.svelte-ltkwvy.svelte-ltkwvy{background-color:#f3f6ff}li.selected.svelte-ltkwvy.svelte-ltkwvy{animation:svelte-ltkwvy-backAndForth 5s linear infinite}li.selected.svelte-ltkwvy .primary.svelte-ltkwvy{color:#2b8bfb}li.svelte-ltkwvy>img.svelte-ltkwvy{align-self:center;justify-self:center;opacity:.75}.texts.svelte-ltkwvy.svelte-ltkwvy{padding:0 17px 0 0}.texts.svelte-ltkwvy>.svelte-ltkwvy{white-space:nowrap;display:block;min-width:fit-content}.primary.svelte-ltkwvy.svelte-ltkwvy{font-weight:600}.secondary.svelte-ltkwvy.svelte-ltkwvy{color:#aeb6c7;padding-left:4px}.line2.svelte-ltkwvy.svelte-ltkwvy{color:#aeb6c7}@keyframes svelte-ltkwvy-backAndForth{0%{transform:translate(0)}10%{transform:translate(0)}45%{transform:translate(calc(-100% + 270px))}55%{transform:translate(calc(-100% + 270px))}90%{transform:translate(0)}to{transform:translate(0)}}div.svelte-7cmwmc{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;display:flex;align-items:center}svg.svelte-7cmwmc{animation:svelte-7cmwmc-rotate .8s infinite cubic-bezier(.45,.05,.55,.95)}@keyframes svelte-7cmwmc-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}svg.svelte-gzo3ar.svelte-gzo3ar{display:block;fill:#6b7c93;stroke:#6b7c93}.list-icon.svelte-gzo3ar.svelte-gzo3ar{grid-row:1/3;align-self:center;margin:8px}.in-map.svelte-gzo3ar.svelte-gzo3ar{height:30px}.maplibregl-canvas-container .marker-selected{z-index:1}.maplibregl-canvas-container svg.svelte-gzo3ar path.svelte-gzo3ar,.leaflet-map-pane svg.svelte-gzo3ar path.svelte-gzo3ar{fill:#3170fe;stroke:#3170fe}.marker-selected svg.svelte-gzo3ar path.svelte-gzo3ar{fill:#98b7ff;stroke:#3170fe}.marker-reverse svg.svelte-gzo3ar path.svelte-gzo3ar{fill:silver;stroke:gray}.marker-interactive{cursor:pointer!important}.maptiler-gc-popup>.maplibregl-popup-content{padding:2px 8px}svg.svelte-en2qvf{display:block;fill:var(--color-icon-button)}circle.svelte-1aq105l{stroke-width:1.875;fill:none}path.svelte-1aq105l{stroke-width:1.875;stroke-linecap:round}svg.svelte-1aq105l{display:block;stroke:var(--color-icon-button)}form.svelte-
|
|
1
|
+
svg.svelte-d2loi5{display:block;fill:#e15042}li.svelte-ltkwvy.svelte-ltkwvy{text-align:left;cursor:default;display:grid;grid-template-columns:40px 1fr;color:var(--color-text);padding:8px 0;font-size:14px;line-height:18px;min-width:fit-content}li.svelte-ltkwvy.svelte-ltkwvy:first-child{padding-top:10px}li.svelte-ltkwvy.svelte-ltkwvy:last-child{padding-bottom:10px}li.selected.svelte-ltkwvy.svelte-ltkwvy{background-color:#f3f6ff}li.selected.svelte-ltkwvy.svelte-ltkwvy{animation:svelte-ltkwvy-backAndForth 5s linear infinite}li.selected.svelte-ltkwvy .primary.svelte-ltkwvy{color:#2b8bfb}li.svelte-ltkwvy>img.svelte-ltkwvy{align-self:center;justify-self:center;opacity:.75}.texts.svelte-ltkwvy.svelte-ltkwvy{padding:0 17px 0 0}.texts.svelte-ltkwvy>.svelte-ltkwvy{white-space:nowrap;display:block;min-width:fit-content}.primary.svelte-ltkwvy.svelte-ltkwvy{font-weight:600}.secondary.svelte-ltkwvy.svelte-ltkwvy{color:#aeb6c7;padding-left:4px}.line2.svelte-ltkwvy.svelte-ltkwvy{color:#aeb6c7}@keyframes svelte-ltkwvy-backAndForth{0%{transform:translate(0)}10%{transform:translate(0)}45%{transform:translate(calc(-100% + 270px))}55%{transform:translate(calc(-100% + 270px))}90%{transform:translate(0)}to{transform:translate(0)}}div.svelte-7cmwmc{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);pointer-events:none;display:flex;align-items:center}svg.svelte-7cmwmc{animation:svelte-7cmwmc-rotate .8s infinite cubic-bezier(.45,.05,.55,.95)}@keyframes svelte-7cmwmc-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}svg.svelte-gzo3ar.svelte-gzo3ar{display:block;fill:#6b7c93;stroke:#6b7c93}.list-icon.svelte-gzo3ar.svelte-gzo3ar{grid-row:1/3;align-self:center;margin:8px}.in-map.svelte-gzo3ar.svelte-gzo3ar{height:30px}.maplibregl-canvas-container .marker-selected{z-index:1}.maplibregl-canvas-container svg.svelte-gzo3ar path.svelte-gzo3ar,.leaflet-map-pane svg.svelte-gzo3ar path.svelte-gzo3ar{fill:#3170fe;stroke:#3170fe}.marker-selected svg.svelte-gzo3ar path.svelte-gzo3ar{fill:#98b7ff;stroke:#3170fe}.marker-reverse svg.svelte-gzo3ar path.svelte-gzo3ar{fill:silver;stroke:gray}.marker-interactive{cursor:pointer!important}.maptiler-gc-popup>.maplibregl-popup-content{padding:2px 8px}svg.svelte-en2qvf{display:block;fill:var(--color-icon-button)}circle.svelte-1aq105l{stroke-width:1.875;fill:none}path.svelte-1aq105l{stroke-width:1.875;stroke-linecap:round}svg.svelte-1aq105l{display:block;stroke:var(--color-icon-button)}form.svelte-bz0zu3.svelte-bz0zu3{font-family:Open Sans,Ubuntu,Helvetica Neue,Arial,Helvetica,sans-serif;position:relative;background-color:#fff;z-index:10;border-radius:4px;margin:0;transition:max-width .25s;box-shadow:0 2px 5px #33335926;--color-text:#444952;--color-icon-button:#444952}form.svelte-bz0zu3.svelte-bz0zu3,form.svelte-bz0zu3 .svelte-bz0zu3,form.svelte-bz0zu3 .svelte-bz0zu3:after,form.svelte-bz0zu3 .svelte-bz0zu3:before{box-sizing:border-box}form.can-collapse.svelte-bz0zu3.svelte-bz0zu3{max-width:29px}form.can-collapse.svelte-bz0zu3 input.svelte-bz0zu3::placeholder{transition:opacity .25s;opacity:0}form.svelte-bz0zu3.svelte-bz0zu3,form.svelte-bz0zu3.svelte-bz0zu3:focus-within,form.svelte-bz0zu3.svelte-bz0zu3:hover{width:270px;max-width:270px}form.svelte-bz0zu3 input.svelte-bz0zu3::placeholder,form.svelte-bz0zu3:focus-within input.svelte-bz0zu3::placeholder,form.svelte-bz0zu3:hover input.svelte-bz0zu3::placeholder{opacity:1}input.svelte-bz0zu3.svelte-bz0zu3{font:inherit;font-size:14px;flex-grow:1;min-height:29px;background-color:transparent;color:#444952;white-space:nowrap;overflow:hidden;border:0;margin:0;padding:0}input.svelte-bz0zu3.svelte-bz0zu3:focus{color:#444952;outline:0;outline:none;box-shadow:none}ul.svelte-bz0zu3.svelte-bz0zu3,div.error.svelte-bz0zu3.svelte-bz0zu3,div.no-results.svelte-bz0zu3.svelte-bz0zu3{background-color:#fff;border-radius:4px;left:0;list-style:none;margin:0;padding:0;position:absolute;width:100%;top:calc(100% + 6px);overflow:hidden}ul.svelte-bz0zu3.svelte-bz0zu3{font-size:14px;line-height:16px;box-shadow:0 5px 10px #33335926}div.error.svelte-bz0zu3.svelte-bz0zu3,div.no-results.svelte-bz0zu3.svelte-bz0zu3{font:inherit;line-height:18px;font-size:12px;display:flex;gap:16px}div.error.svelte-bz0zu3.svelte-bz0zu3{padding:16px;font-weight:600;color:#e25041;background-color:#fbeae8}div.error.svelte-bz0zu3 div.svelte-bz0zu3{flex-grow:1}div.error.svelte-bz0zu3 svg{flex-shrink:0;width:20px;height:20px}div.error.svelte-bz0zu3 button.svelte-bz0zu3{flex-shrink:0}div.error.svelte-bz0zu3 button.svelte-bz0zu3>svg{width:13px;fill:#e25041}div.error.svelte-bz0zu3 button.svelte-bz0zu3:hover svg,div.error.svelte-bz0zu3 button.svelte-bz0zu3:active svg{fill:#444952}div.no-results.svelte-bz0zu3.svelte-bz0zu3{padding:14px 24px 14px 16px;font-weight:400;color:#6b7c93;box-shadow:0 5px 10px #33335926}div.no-results.svelte-bz0zu3 svg{margin-top:4px;flex-shrink:0;width:20px;height:20px;width:30px;height:30px}.leaflet-bottom ul.options.svelte-bz0zu3.svelte-bz0zu3,.maplibregl-ctrl-bottom-left ul.options.svelte-bz0zu3.svelte-bz0zu3,.maplibregl-ctrl-bottom-right ul.options.svelte-bz0zu3.svelte-bz0zu3{top:auto;bottom:calc(100% + 6px)}button.svelte-bz0zu3.svelte-bz0zu3{padding:0;margin:0;border:0;background-color:transparent;height:auto;width:auto}button.svelte-bz0zu3.svelte-bz0zu3:hover{background-color:transparent}button.svelte-bz0zu3:hover svg,button.svelte-bz0zu3:active svg{fill:#2b8bfb}.input-group.svelte-bz0zu3.svelte-bz0zu3{display:flex;align-items:stretch;gap:7px;padding-inline:8px;border-radius:4px;overflow:hidden}.input-group.svelte-bz0zu3.svelte-bz0zu3:focus-within{outline:#2b8bfb solid 2px}.search-button.svelte-bz0zu3.svelte-bz0zu3{flex-shrink:0}.maplibregl-ctrl-geocoder:not(.maptiler-ctrl) .search-button svg{width:12px!important;transform:translate(.5px)}.clear-button-container.svelte-bz0zu3.svelte-bz0zu3{display:flex;display:none;position:relative;align-items:stretch}.clear-button-container.displayable.svelte-bz0zu3.svelte-bz0zu3{display:flex;flex-shrink:0}.maplibregl-ctrl-geocoder{position:relative;z-index:3}.maptiler-ctrl:not(:empty){box-shadow:none}.maptiler-ctrl .input-group.svelte-bz0zu3.svelte-bz0zu3{padding-inline:8px;border:white solid 2px}.maptiler-ctrl .input-group.svelte-bz0zu3.svelte-bz0zu3:focus-within{border:#2b8bfb solid 2px;outline:0;outline:none}.maptiler-ctrl form.can-collapse.svelte-bz0zu3.svelte-bz0zu3{max-width:33px}.maptiler-ctrl form.svelte-bz0zu3.svelte-bz0zu3,.maptiler-ctrl form.svelte-bz0zu3.svelte-bz0zu3:focus-within,.maptiler-ctrl form.svelte-bz0zu3.svelte-bz0zu3:hover{width:270px;max-width:270px}
|
|
@@ -61,19 +61,21 @@ export let reverseActive = enableReverse === "always";
|
|
|
61
61
|
export let reverseButtonTitle = "toggle reverse geocoding";
|
|
62
62
|
export let searchValue = "";
|
|
63
63
|
export let showFullGeometry = true;
|
|
64
|
-
export let showPlaceType = "
|
|
64
|
+
export let showPlaceType = "if-needed";
|
|
65
65
|
export let showResultsWhileTyping = true;
|
|
66
|
+
export let autocompleteTimeout = undefined;
|
|
66
67
|
export let selectFirst = true;
|
|
67
68
|
export let flyToSelected = false;
|
|
68
69
|
export let markerOnSelected = true;
|
|
69
70
|
export let types = undefined;
|
|
71
|
+
export let exhaustiveReverseGeocoding = false;
|
|
70
72
|
export let excludeTypes = false;
|
|
71
73
|
export let zoom = ZOOM_DEFAULTS;
|
|
72
74
|
export let maxZoom = undefined;
|
|
73
75
|
export let apiUrl = "https://api.maptiler.com/geocoding";
|
|
74
76
|
export let fetchParameters = {};
|
|
75
77
|
export let iconsBaseUrl = "https://cdn.maptiler.com/maptiler-geocoding-control/v" +
|
|
76
|
-
"
|
|
78
|
+
"2.0.0-rc.1" +
|
|
77
79
|
"/icons/";
|
|
78
80
|
export let adjustUrlQuery = () => { };
|
|
79
81
|
export function focus() {
|
|
@@ -86,7 +88,7 @@ export function setQuery(value, submit = true, reverse = false) {
|
|
|
86
88
|
searchValue = value;
|
|
87
89
|
if (submit) {
|
|
88
90
|
selectedItemIndex = -1;
|
|
89
|
-
|
|
91
|
+
handleSubmit();
|
|
90
92
|
}
|
|
91
93
|
else {
|
|
92
94
|
handleInput(!reverse, reverse);
|
|
@@ -116,6 +118,7 @@ let error;
|
|
|
116
118
|
let cachedFeatures = [];
|
|
117
119
|
let abortController;
|
|
118
120
|
let searchTimeoutRef;
|
|
121
|
+
let autocompleteTimeoutRef;
|
|
119
122
|
let focusedDelayed;
|
|
120
123
|
let prevIdToFly;
|
|
121
124
|
const missingIconsCache = new Set();
|
|
@@ -179,8 +182,13 @@ $: setTimeout(() => {
|
|
|
179
182
|
searchValue = "";
|
|
180
183
|
}
|
|
181
184
|
});
|
|
185
|
+
function isInAutocompleteTimeout() {
|
|
186
|
+
return !!autocompleteTimeoutRef;
|
|
187
|
+
}
|
|
182
188
|
$: if (selectFirst && listFeatures?.length) {
|
|
183
|
-
|
|
189
|
+
if (!isInAutocompleteTimeout()) {
|
|
190
|
+
selectedItemIndex = 0;
|
|
191
|
+
}
|
|
184
192
|
}
|
|
185
193
|
// clear selection on edit
|
|
186
194
|
$: {
|
|
@@ -189,17 +197,23 @@ $: {
|
|
|
189
197
|
selectedItemIndex = -1;
|
|
190
198
|
}
|
|
191
199
|
$: selected = listFeatures?.[selectedItemIndex];
|
|
200
|
+
$: if (selected) {
|
|
201
|
+
window.clearTimeout(autocompleteTimeoutRef);
|
|
202
|
+
autocompleteTimeoutRef = undefined;
|
|
203
|
+
}
|
|
192
204
|
$: if (mapController) {
|
|
193
205
|
const coords = isQueryReverse(searchValue);
|
|
194
206
|
mapController.setReverseMarker(coords ? [coords.decimalLongitude, coords.decimalLatitude] : undefined);
|
|
195
207
|
}
|
|
196
|
-
$: dispatch("select", selected);
|
|
197
|
-
$: dispatch("pick", picked);
|
|
198
|
-
$: dispatch("
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
$: dispatch("
|
|
202
|
-
$: dispatch("
|
|
208
|
+
$: dispatch("select", { feature: selected });
|
|
209
|
+
$: dispatch("pick", { feature: picked });
|
|
210
|
+
$: dispatch("optionsvisibilitychange", {
|
|
211
|
+
optionsVisible: focusedDelayed && !!listFeatures,
|
|
212
|
+
});
|
|
213
|
+
$: dispatch("featureslisted", { features: listFeatures });
|
|
214
|
+
$: dispatch("featuresmarked", { features: markedFeatures });
|
|
215
|
+
$: dispatch("reversetoggle", { reverse: reverseActive });
|
|
216
|
+
$: dispatch("querychange", { query: searchValue });
|
|
203
217
|
$: if (mapController) {
|
|
204
218
|
mapController.indicateReverse(reverseActive);
|
|
205
219
|
}
|
|
@@ -243,11 +257,17 @@ onDestroy(() => {
|
|
|
243
257
|
mapController.setMarkers(undefined, undefined);
|
|
244
258
|
}
|
|
245
259
|
});
|
|
246
|
-
function
|
|
260
|
+
function handleSubmit(event) {
|
|
247
261
|
if (searchTimeoutRef) {
|
|
248
|
-
clearTimeout(searchTimeoutRef);
|
|
262
|
+
window.clearTimeout(searchTimeoutRef);
|
|
249
263
|
searchTimeoutRef = undefined;
|
|
250
264
|
}
|
|
265
|
+
if (autocompleteTimeoutRef) {
|
|
266
|
+
window.clearTimeout(autocompleteTimeoutRef);
|
|
267
|
+
autocompleteTimeoutRef = undefined;
|
|
268
|
+
search(searchValue, { exact: true });
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
251
271
|
if (selectedItemIndex > -1 && listFeatures) {
|
|
252
272
|
picked = listFeatures[selectedItemIndex];
|
|
253
273
|
searchValue =
|
|
@@ -279,7 +299,7 @@ function isQueryReverse(searchValue) {
|
|
|
279
299
|
return false;
|
|
280
300
|
}
|
|
281
301
|
}
|
|
282
|
-
async function search(searchValue, { byId = false, exact = false, } = {}) {
|
|
302
|
+
async function search(searchValue, { byId = false, exact = false, appendSpace = false, } = {}) {
|
|
283
303
|
error = undefined;
|
|
284
304
|
abortController?.abort();
|
|
285
305
|
const ac = new AbortController();
|
|
@@ -312,7 +332,8 @@ async function search(searchValue, { byId = false, exact = false, } = {}) {
|
|
|
312
332
|
}
|
|
313
333
|
sp.set("fuzzyMatch", String(fuzzyMatch));
|
|
314
334
|
}
|
|
315
|
-
if (limit !== undefined
|
|
335
|
+
if (limit !== undefined &&
|
|
336
|
+
(exhaustiveReverseGeocoding || !isReverse || types?.length === 1)) {
|
|
316
337
|
sp.set("limit", String(limit));
|
|
317
338
|
}
|
|
318
339
|
sp.set("key", apiKey);
|
|
@@ -321,7 +342,7 @@ async function search(searchValue, { byId = false, exact = false, } = {}) {
|
|
|
321
342
|
"/" +
|
|
322
343
|
encodeURIComponent(isReverse
|
|
323
344
|
? isReverse.decimalLongitude + "," + isReverse.decimalLatitude
|
|
324
|
-
: searchValue) +
|
|
345
|
+
: searchValue + (appendSpace ? " " : "")) +
|
|
325
346
|
".json?" +
|
|
326
347
|
sp.toString();
|
|
327
348
|
if (url === lastSearchUrl) {
|
|
@@ -479,21 +500,29 @@ function handleKeyDown(e) {
|
|
|
479
500
|
}
|
|
480
501
|
function handleInput(debounce = true, reverse = false) {
|
|
481
502
|
error = undefined;
|
|
482
|
-
if (
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
}
|
|
486
|
-
if (searchValue.length < minLength) {
|
|
487
|
-
return;
|
|
488
|
-
}
|
|
489
|
-
const sv = searchValue;
|
|
490
|
-
searchTimeoutRef = window.setTimeout(() => {
|
|
491
|
-
search(sv).catch((err) => (error = err));
|
|
492
|
-
}, debounce ? debounceSearch : 0);
|
|
503
|
+
if (searchTimeoutRef) {
|
|
504
|
+
window.clearTimeout(searchTimeoutRef);
|
|
505
|
+
searchTimeoutRef = undefined;
|
|
493
506
|
}
|
|
494
|
-
|
|
507
|
+
if (autocompleteTimeoutRef) {
|
|
508
|
+
window.clearTimeout(autocompleteTimeoutRef);
|
|
509
|
+
autocompleteTimeoutRef = undefined;
|
|
510
|
+
}
|
|
511
|
+
if ((!showResultsWhileTyping && !reverse) ||
|
|
512
|
+
searchValue.length < minLength) {
|
|
495
513
|
listFeatures = undefined;
|
|
496
|
-
|
|
514
|
+
return;
|
|
515
|
+
}
|
|
516
|
+
const sv = searchValue;
|
|
517
|
+
searchTimeoutRef = window.setTimeout(() => {
|
|
518
|
+
searchTimeoutRef = undefined;
|
|
519
|
+
search(sv).catch((err) => (error = err));
|
|
520
|
+
}, debounce ? debounceSearch : 0);
|
|
521
|
+
if (!searchValue.endsWith(" ")) {
|
|
522
|
+
autocompleteTimeoutRef = window.setTimeout(() => {
|
|
523
|
+
autocompleteTimeoutRef = undefined;
|
|
524
|
+
search(sv, { appendSpace: true }).catch((err) => (error = err));
|
|
525
|
+
}, autocompleteTimeout);
|
|
497
526
|
}
|
|
498
527
|
}
|
|
499
528
|
function pick(feature) {
|
|
@@ -511,7 +540,7 @@ function pick(feature) {
|
|
|
511
540
|
<!-- svelte-ignore a11y-no-noninteractive-tabindex -->
|
|
512
541
|
<form
|
|
513
542
|
tabindex="0"
|
|
514
|
-
on:submit|preventDefault={
|
|
543
|
+
on:submit|preventDefault={handleSubmit}
|
|
515
544
|
class:can-collapse={collapsed && searchValue === ""}
|
|
516
545
|
class={className}
|
|
517
546
|
>
|
|
@@ -582,6 +611,7 @@ function pick(feature) {
|
|
|
582
611
|
</div>
|
|
583
612
|
{:else if focusedDelayed && listFeatures?.length}
|
|
584
613
|
<ul
|
|
614
|
+
class="options"
|
|
585
615
|
on:mouseleave={() => {
|
|
586
616
|
if (!selectFirst) {
|
|
587
617
|
selectedItemIndex = -1;
|
|
@@ -724,10 +754,11 @@ div.no-results :global(svg) {
|
|
|
724
754
|
height: 30px;
|
|
725
755
|
}
|
|
726
756
|
|
|
727
|
-
:global(.
|
|
728
|
-
:global(.maplibregl-ctrl-bottom-
|
|
757
|
+
:global(.leaflet-bottom) ul.options,
|
|
758
|
+
:global(.maplibregl-ctrl-bottom-left) ul.options,
|
|
759
|
+
:global(.maplibregl-ctrl-bottom-right) ul.options {
|
|
729
760
|
top: auto;
|
|
730
|
-
bottom: 100
|
|
761
|
+
bottom: calc(100% + 6px);
|
|
731
762
|
}
|
|
732
763
|
|
|
733
764
|
button {
|
|
@@ -26,13 +26,15 @@ declare const __propDef: {
|
|
|
26
26
|
reverseActive?: boolean;
|
|
27
27
|
reverseButtonTitle?: string;
|
|
28
28
|
searchValue?: string;
|
|
29
|
-
showFullGeometry?: boolean;
|
|
30
|
-
showPlaceType?: false | "always" | "ifNeeded";
|
|
29
|
+
showFullGeometry?: boolean | "polygon-with-marker";
|
|
30
|
+
showPlaceType?: false | "always" | "ifNeeded" | "if-needed";
|
|
31
31
|
showResultsWhileTyping?: boolean;
|
|
32
|
+
autocompleteTimeout?: number | undefined;
|
|
32
33
|
selectFirst?: boolean;
|
|
33
34
|
flyToSelected?: boolean;
|
|
34
35
|
markerOnSelected?: boolean;
|
|
35
36
|
types?: string[] | undefined;
|
|
37
|
+
exhaustiveReverseGeocoding?: boolean;
|
|
36
38
|
excludeTypes?: boolean;
|
|
37
39
|
zoom?: number | Record<string, number>;
|
|
38
40
|
maxZoom?: number | undefined;
|
|
@@ -47,17 +49,31 @@ declare const __propDef: {
|
|
|
47
49
|
clearMap?: () => void;
|
|
48
50
|
};
|
|
49
51
|
events: {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
featureslisted: CustomEvent<{
|
|
53
|
+
features: Feature[] | undefined;
|
|
54
|
+
}>;
|
|
55
|
+
featuresmarked: CustomEvent<{
|
|
56
|
+
features: Feature[] | undefined;
|
|
57
|
+
}>;
|
|
58
|
+
optionsvisibilitychange: CustomEvent<{
|
|
59
|
+
optionsVisible: boolean;
|
|
60
|
+
}>;
|
|
61
|
+
pick: CustomEvent<{
|
|
62
|
+
feature: Feature | undefined;
|
|
63
|
+
}>;
|
|
64
|
+
querychange: CustomEvent<{
|
|
65
|
+
query: string;
|
|
66
|
+
}>;
|
|
55
67
|
response: CustomEvent<{
|
|
56
68
|
url: string;
|
|
57
69
|
featureCollection: FeatureCollection;
|
|
58
70
|
}>;
|
|
59
|
-
|
|
60
|
-
|
|
71
|
+
reversetoggle: CustomEvent<{
|
|
72
|
+
reverse: boolean;
|
|
73
|
+
}>;
|
|
74
|
+
select: CustomEvent<{
|
|
75
|
+
feature: Feature | undefined;
|
|
76
|
+
}>;
|
|
61
77
|
} & {
|
|
62
78
|
[evt: string]: CustomEvent<any>;
|
|
63
79
|
};
|