@maptiler/geocoding-control 2.1.0-rc1 → 2.1.0-with-autocomplete-timeout
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/leaflet.js +970 -951
- package/leaflet.js.map +1 -1
- package/leaflet.umd.js +3 -3
- package/leaflet.umd.js.map +1 -1
- package/maplibregl.js +1238 -1219
- package/maplibregl.js.map +1 -1
- package/maplibregl.umd.js +3 -3
- package/maplibregl.umd.js.map +1 -1
- package/maptilersdk.js +1240 -1221
- package/maptilersdk.js.map +1 -1
- package/maptilersdk.umd.js +3 -3
- package/maptilersdk.umd.js.map +1 -1
- package/openlayers.js +1033 -1014
- package/openlayers.js.map +1 -1
- package/openlayers.umd.js +3 -3
- package/openlayers.umd.js.map +1 -1
- package/package.json +1 -1
- package/react.js +701 -682
- package/react.js.map +1 -1
- package/react.umd.js +1 -1
- package/react.umd.js.map +1 -1
- package/svelte/GeocodingControl.svelte +45 -17
- package/svelte/GeocodingControl.svelte.d.ts +1 -0
- package/svelte/types.d.ts +1 -0
- package/types.d.ts +1 -0
- package/vanilla.js +713 -694
- package/vanilla.js.map +1 -1
- package/vanilla.umd.js +1 -1
- package/vanilla.umd.js.map +1 -1
|
@@ -65,6 +65,7 @@ export let searchValue = "";
|
|
|
65
65
|
export let pickedResultStyle = "full-geometry";
|
|
66
66
|
export let showPlaceType = "if-needed";
|
|
67
67
|
export let showResultsWhileTyping = true;
|
|
68
|
+
export let autocompleteTimeout = undefined;
|
|
68
69
|
export let selectFirst = true;
|
|
69
70
|
export let flyToSelected = false;
|
|
70
71
|
export let markerOnSelected = true;
|
|
@@ -75,7 +76,7 @@ export let zoom = ZOOM_DEFAULTS;
|
|
|
75
76
|
export let apiUrl = "https://api.maptiler.com/geocoding";
|
|
76
77
|
export let fetchParameters = {};
|
|
77
78
|
export let iconsBaseUrl = "https://cdn.maptiler.com/maptiler-geocoding-control/v" +
|
|
78
|
-
"2.1.0-
|
|
79
|
+
"2.1.0-with-autocomplete-timeout" +
|
|
79
80
|
"/icons/";
|
|
80
81
|
/**
|
|
81
82
|
* @deprecated use `adjustUrl`
|
|
@@ -144,6 +145,7 @@ let error;
|
|
|
144
145
|
let cachedFeatures = [];
|
|
145
146
|
let abortController;
|
|
146
147
|
let searchTimeoutRef;
|
|
148
|
+
let autocompleteTimeoutRef;
|
|
147
149
|
let focusedDelayed;
|
|
148
150
|
let prevIdToFly;
|
|
149
151
|
let focused = false;
|
|
@@ -203,6 +205,14 @@ $: setTimeout(() => {
|
|
|
203
205
|
searchValue = "";
|
|
204
206
|
}
|
|
205
207
|
});
|
|
208
|
+
function isInAutocompleteTimeout() {
|
|
209
|
+
return !!autocompleteTimeoutRef;
|
|
210
|
+
}
|
|
211
|
+
$: if (selectFirst && listFeatures?.length) {
|
|
212
|
+
if (!isInAutocompleteTimeout()) {
|
|
213
|
+
selectedItemIndex = 0;
|
|
214
|
+
}
|
|
215
|
+
}
|
|
206
216
|
$: if (selectFirst &&
|
|
207
217
|
listFeatures?.length &&
|
|
208
218
|
selectedItemIndex == -1 &&
|
|
@@ -210,6 +220,10 @@ $: if (selectFirst &&
|
|
|
210
220
|
selectedItemIndex = 0;
|
|
211
221
|
}
|
|
212
222
|
$: selected = listFeatures?.[selectedItemIndex];
|
|
223
|
+
$: if (selected) {
|
|
224
|
+
window.clearTimeout(autocompleteTimeoutRef);
|
|
225
|
+
autocompleteTimeoutRef = undefined;
|
|
226
|
+
}
|
|
213
227
|
$: if (mapController) {
|
|
214
228
|
const coords = isQueryReverse(searchValue);
|
|
215
229
|
mapController.setReverseMarker(coords ? [coords.decimalLongitude, coords.decimalLatitude] : undefined);
|
|
@@ -269,9 +283,15 @@ onDestroy(() => {
|
|
|
269
283
|
function handleSubmit(event) {
|
|
270
284
|
focused = false;
|
|
271
285
|
if (searchTimeoutRef) {
|
|
272
|
-
clearTimeout(searchTimeoutRef);
|
|
286
|
+
window.clearTimeout(searchTimeoutRef);
|
|
273
287
|
searchTimeoutRef = undefined;
|
|
274
288
|
}
|
|
289
|
+
if (autocompleteTimeoutRef) {
|
|
290
|
+
window.clearTimeout(autocompleteTimeoutRef);
|
|
291
|
+
autocompleteTimeoutRef = undefined;
|
|
292
|
+
search(searchValue, { appendSpace: true });
|
|
293
|
+
return;
|
|
294
|
+
}
|
|
275
295
|
if (selectedItemIndex > -1 && listFeatures) {
|
|
276
296
|
picked = listFeatures[selectedItemIndex];
|
|
277
297
|
searchValue =
|
|
@@ -303,7 +323,7 @@ function isQueryReverse(searchValue) {
|
|
|
303
323
|
return false;
|
|
304
324
|
}
|
|
305
325
|
}
|
|
306
|
-
async function search(searchValue, { byId = false, exact = false, } = {}) {
|
|
326
|
+
async function search(searchValue, { byId = false, exact = false, appendSpace = false, } = {}) {
|
|
307
327
|
error = undefined;
|
|
308
328
|
abortController?.abort();
|
|
309
329
|
const ac = new AbortController();
|
|
@@ -314,7 +334,7 @@ async function search(searchValue, { byId = false, exact = false, } = {}) {
|
|
|
314
334
|
"/" +
|
|
315
335
|
encodeURIComponent(isReverse
|
|
316
336
|
? isReverse.decimalLongitude + "," + isReverse.decimalLatitude
|
|
317
|
-
: searchValue) +
|
|
337
|
+
: searchValue + (appendSpace ? " " : "")) +
|
|
318
338
|
".json");
|
|
319
339
|
const sp = urlObj.searchParams;
|
|
320
340
|
if (language !== undefined) {
|
|
@@ -529,21 +549,29 @@ function handleInput(_, debounce = true, reverse = false) {
|
|
|
529
549
|
error = undefined;
|
|
530
550
|
picked = undefined;
|
|
531
551
|
focused = true;
|
|
532
|
-
if (
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
}
|
|
536
|
-
if (searchValue.length < minLength) {
|
|
537
|
-
return;
|
|
538
|
-
}
|
|
539
|
-
const sv = searchValue;
|
|
540
|
-
searchTimeoutRef = window.setTimeout(() => {
|
|
541
|
-
search(sv).catch((err) => (error = err));
|
|
542
|
-
}, debounce ? debounceSearch : 0);
|
|
552
|
+
if (searchTimeoutRef) {
|
|
553
|
+
window.clearTimeout(searchTimeoutRef);
|
|
554
|
+
searchTimeoutRef = undefined;
|
|
543
555
|
}
|
|
544
|
-
|
|
556
|
+
if (autocompleteTimeoutRef) {
|
|
557
|
+
window.clearTimeout(autocompleteTimeoutRef);
|
|
558
|
+
autocompleteTimeoutRef = undefined;
|
|
559
|
+
}
|
|
560
|
+
if ((!showResultsWhileTyping && !reverse) ||
|
|
561
|
+
searchValue.length < minLength) {
|
|
545
562
|
listFeatures = undefined;
|
|
546
|
-
|
|
563
|
+
return;
|
|
564
|
+
}
|
|
565
|
+
const sv = searchValue;
|
|
566
|
+
searchTimeoutRef = window.setTimeout(() => {
|
|
567
|
+
searchTimeoutRef = undefined;
|
|
568
|
+
search(sv).catch((err) => (error = err));
|
|
569
|
+
}, debounce ? debounceSearch : 0);
|
|
570
|
+
if (!searchValue.endsWith(" ")) {
|
|
571
|
+
autocompleteTimeoutRef = window.setTimeout(() => {
|
|
572
|
+
autocompleteTimeoutRef = undefined;
|
|
573
|
+
search(sv, { appendSpace: true }).catch((err) => (error = err));
|
|
574
|
+
}, autocompleteTimeout);
|
|
547
575
|
}
|
|
548
576
|
}
|
|
549
577
|
function pick(feature) {
|
|
@@ -31,6 +31,7 @@ declare const __propDef: {
|
|
|
31
31
|
pickedResultStyle?: PickedResultStyle;
|
|
32
32
|
showPlaceType?: ShowPlaceType;
|
|
33
33
|
showResultsWhileTyping?: boolean;
|
|
34
|
+
autocompleteTimeout?: number | undefined;
|
|
34
35
|
selectFirst?: boolean;
|
|
35
36
|
flyToSelected?: boolean;
|
|
36
37
|
markerOnSelected?: boolean;
|
package/svelte/types.d.ts
CHANGED