@maptiler/geocoding-control 2.0.0-rc.9 → 2.0.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.
@@ -63,7 +63,6 @@ export let searchValue = "";
63
63
  export let pickedResultStyle = "full-geometry";
64
64
  export let showPlaceType = "if-needed";
65
65
  export let showResultsWhileTyping = true;
66
- export let autocompleteTimeout = undefined;
67
66
  export let selectFirst = true;
68
67
  export let flyToSelected = false;
69
68
  export let markerOnSelected = true;
@@ -74,7 +73,7 @@ export let zoom = ZOOM_DEFAULTS;
74
73
  export let apiUrl = "https://api.maptiler.com/geocoding";
75
74
  export let fetchParameters = {};
76
75
  export let iconsBaseUrl = "https://cdn.maptiler.com/maptiler-geocoding-control/v" +
77
- "2.0.0-rc.9" +
76
+ "2.0.1" +
78
77
  "/icons/";
79
78
  export let adjustUrlQuery = () => { };
80
79
  export function focus() {
@@ -87,7 +86,7 @@ export function setQuery(value, submit = true, reverse = false) {
87
86
  searchValue = value;
88
87
  if (submit) {
89
88
  selectedItemIndex = -1;
90
- handleSubmit();
89
+ handleOnSubmit();
91
90
  }
92
91
  else {
93
92
  handleInput(!reverse, reverse);
@@ -117,7 +116,6 @@ let error;
117
116
  let cachedFeatures = [];
118
117
  let abortController;
119
118
  let searchTimeoutRef;
120
- let autocompleteTimeoutRef;
121
119
  let focusedDelayed;
122
120
  let prevIdToFly;
123
121
  const missingIconsCache = new Set();
@@ -183,13 +181,8 @@ $: setTimeout(() => {
183
181
  searchValue = "";
184
182
  }
185
183
  });
186
- function isInAutocompleteTimeout() {
187
- return !!autocompleteTimeoutRef;
188
- }
189
184
  $: if (selectFirst && listFeatures?.length) {
190
- if (!isInAutocompleteTimeout()) {
191
- selectedItemIndex = 0;
192
- }
185
+ selectedItemIndex = 0;
193
186
  }
194
187
  // clear selection on edit
195
188
  $: {
@@ -198,10 +191,6 @@ $: {
198
191
  selectedItemIndex = -1;
199
192
  }
200
193
  $: selected = listFeatures?.[selectedItemIndex];
201
- $: if (selected) {
202
- window.clearTimeout(autocompleteTimeoutRef);
203
- autocompleteTimeoutRef = undefined;
204
- }
205
194
  $: if (mapController) {
206
195
  const coords = isQueryReverse(searchValue);
207
196
  mapController.setReverseMarker(coords ? [coords.decimalLongitude, coords.decimalLatitude] : undefined);
@@ -258,17 +247,11 @@ onDestroy(() => {
258
247
  mapController.setFeatures(undefined, undefined, false);
259
248
  }
260
249
  });
261
- function handleSubmit(event) {
250
+ function handleOnSubmit(event) {
262
251
  if (searchTimeoutRef) {
263
- window.clearTimeout(searchTimeoutRef);
252
+ clearTimeout(searchTimeoutRef);
264
253
  searchTimeoutRef = undefined;
265
254
  }
266
- if (autocompleteTimeoutRef) {
267
- window.clearTimeout(autocompleteTimeoutRef);
268
- autocompleteTimeoutRef = undefined;
269
- search(searchValue, { appendSpace: true });
270
- return;
271
- }
272
255
  if (selectedItemIndex > -1 && listFeatures) {
273
256
  picked = listFeatures[selectedItemIndex];
274
257
  searchValue =
@@ -300,7 +283,7 @@ function isQueryReverse(searchValue) {
300
283
  return false;
301
284
  }
302
285
  }
303
- async function search(searchValue, { byId = false, exact = false, appendSpace = false, } = {}) {
286
+ async function search(searchValue, { byId = false, exact = false, } = {}) {
304
287
  error = undefined;
305
288
  abortController?.abort();
306
289
  const ac = new AbortController();
@@ -343,7 +326,7 @@ async function search(searchValue, { byId = false, exact = false, appendSpace =
343
326
  "/" +
344
327
  encodeURIComponent(isReverse
345
328
  ? isReverse.decimalLongitude + "," + isReverse.decimalLatitude
346
- : searchValue + (appendSpace ? " " : "")) +
329
+ : searchValue) +
347
330
  ".json?" +
348
331
  sp.toString();
349
332
  if (url === lastSearchUrl) {
@@ -495,29 +478,21 @@ function handleKeyDown(e) {
495
478
  }
496
479
  function handleInput(debounce = true, reverse = false) {
497
480
  error = undefined;
498
- if (searchTimeoutRef) {
499
- window.clearTimeout(searchTimeoutRef);
500
- searchTimeoutRef = undefined;
501
- }
502
- if (autocompleteTimeoutRef) {
503
- window.clearTimeout(autocompleteTimeoutRef);
504
- autocompleteTimeoutRef = undefined;
481
+ if (showResultsWhileTyping || reverse) {
482
+ if (searchTimeoutRef) {
483
+ clearTimeout(searchTimeoutRef);
484
+ }
485
+ if (searchValue.length < minLength) {
486
+ return;
487
+ }
488
+ const sv = searchValue;
489
+ searchTimeoutRef = window.setTimeout(() => {
490
+ search(sv).catch((err) => (error = err));
491
+ }, debounce ? debounceSearch : 0);
505
492
  }
506
- if ((!showResultsWhileTyping && !reverse) ||
507
- searchValue.length < minLength) {
493
+ else {
508
494
  listFeatures = undefined;
509
- return;
510
- }
511
- const sv = searchValue;
512
- searchTimeoutRef = window.setTimeout(() => {
513
- searchTimeoutRef = undefined;
514
- search(sv).catch((err) => (error = err));
515
- }, debounce ? debounceSearch : 0);
516
- if (!searchValue.endsWith(" ")) {
517
- autocompleteTimeoutRef = window.setTimeout(() => {
518
- autocompleteTimeoutRef = undefined;
519
- search(sv, { appendSpace: true }).catch((err) => (error = err));
520
- }, autocompleteTimeout);
495
+ error = undefined;
521
496
  }
522
497
  }
523
498
  function pick(feature) {
@@ -535,7 +510,7 @@ function pick(feature) {
535
510
  <!-- svelte-ignore a11y-no-noninteractive-tabindex -->
536
511
  <form
537
512
  tabindex="0"
538
- on:submit|preventDefault={handleSubmit}
513
+ on:submit|preventDefault={handleOnSubmit}
539
514
  class:can-collapse={collapsed && searchValue === ""}
540
515
  class={className}
541
516
  >
@@ -29,7 +29,6 @@ declare const __propDef: {
29
29
  pickedResultStyle?: PickedResultStyle;
30
30
  showPlaceType?: ShowPlaceType;
31
31
  showResultsWhileTyping?: boolean;
32
- autocompleteTimeout?: number | undefined;
33
32
  selectFirst?: boolean;
34
33
  flyToSelected?: boolean;
35
34
  markerOnSelected?: boolean;
package/svelte/types.d.ts CHANGED
@@ -132,7 +132,6 @@ export type ControlOptions = {
132
132
  * Default value is `false`.
133
133
  */
134
134
  showResultsWhileTyping?: boolean;
135
- autocompleteTimeout?: number;
136
135
  /**
137
136
  * Set to `false` to disable fuzzy search.
138
137
  *
package/types.d.ts CHANGED
@@ -132,7 +132,6 @@ export type ControlOptions = {
132
132
  * Default value is `false`.
133
133
  */
134
134
  showResultsWhileTyping?: boolean;
135
- autocompleteTimeout?: number;
136
135
  /**
137
136
  * Set to `false` to disable fuzzy search.
138
137
  *