@maptiler/geocoding-control 2.0.0-rc.4 → 2.0.0-rc.6

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.
Files changed (59) hide show
  1. package/MapLibreBasedGeocodingControl.d.ts +18 -1
  2. package/leaflet-controller.d.ts +2 -1
  3. package/leaflet-controller.js +222 -219
  4. package/leaflet-controller.js.map +1 -1
  5. package/leaflet-controller.umd.js +2 -2
  6. package/leaflet-controller.umd.js.map +1 -1
  7. package/leaflet.js +1013 -1022
  8. package/leaflet.js.map +1 -1
  9. package/leaflet.umd.js +3 -3
  10. package/leaflet.umd.js.map +1 -1
  11. package/maplibregl-controller.d.ts +2 -1
  12. package/maplibregl-controller.js +213 -210
  13. package/maplibregl-controller.js.map +1 -1
  14. package/maplibregl-controller.umd.js +3 -3
  15. package/maplibregl-controller.umd.js.map +1 -1
  16. package/maplibregl.d.ts +17 -0
  17. package/maplibregl.js +1459 -1466
  18. package/maplibregl.js.map +1 -1
  19. package/maplibregl.umd.js +3 -3
  20. package/maplibregl.umd.js.map +1 -1
  21. package/maptilersdk.d.ts +17 -0
  22. package/maptilersdk.js +1461 -1468
  23. package/maptilersdk.js.map +1 -1
  24. package/maptilersdk.umd.js +3 -3
  25. package/maptilersdk.umd.js.map +1 -1
  26. package/openlayers-controller.d.ts +2 -1
  27. package/openlayers-controller.js +298 -295
  28. package/openlayers-controller.js.map +1 -1
  29. package/openlayers-controller.umd.js +3 -3
  30. package/openlayers-controller.umd.js.map +1 -1
  31. package/openlayers.js +1301 -1310
  32. package/openlayers.js.map +1 -1
  33. package/openlayers.umd.js +3 -3
  34. package/openlayers.umd.js.map +1 -1
  35. package/package.json +1 -1
  36. package/react.js +680 -695
  37. package/react.js.map +1 -1
  38. package/react.umd.js +1 -1
  39. package/react.umd.js.map +1 -1
  40. package/svelte/GeocodingControl.svelte +22 -47
  41. package/svelte/GeocodingControl.svelte.d.ts +0 -1
  42. package/svelte/MapLibreBasedGeocodingControl.d.ts +18 -1
  43. package/svelte/MapLibreBasedGeocodingControl.js +5 -1
  44. package/svelte/leaflet-controller.d.ts +2 -1
  45. package/svelte/leaflet-controller.js +6 -2
  46. package/svelte/leaflet.js +5 -1
  47. package/svelte/maplibregl-controller.d.ts +2 -1
  48. package/svelte/maplibregl-controller.js +6 -2
  49. package/svelte/maplibregl.d.ts +17 -0
  50. package/svelte/maptilersdk.d.ts +17 -0
  51. package/svelte/openlayers-controller.d.ts +2 -1
  52. package/svelte/openlayers-controller.js +6 -2
  53. package/svelte/openlayers.js +6 -3
  54. package/svelte/types.d.ts +1 -1
  55. package/types.d.ts +1 -1
  56. package/vanilla.js +610 -625
  57. package/vanilla.js.map +1 -1
  58. package/vanilla.umd.js +1 -1
  59. package/vanilla.umd.js.map +1 -1
@@ -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.4" +
76
+ "2.0.0-rc.6" +
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();
@@ -181,13 +179,8 @@ $: setTimeout(() => {
181
179
  searchValue = "";
182
180
  }
183
181
  });
184
- function isInAutocompleteTimeout() {
185
- return !!autocompleteTimeoutRef;
186
- }
187
182
  $: if (selectFirst && listFeatures?.length) {
188
- if (!isInAutocompleteTimeout()) {
189
- selectedItemIndex = 0;
190
- }
183
+ selectedItemIndex = 0;
191
184
  }
192
185
  // clear selection on edit
193
186
  $: {
@@ -196,10 +189,6 @@ $: {
196
189
  selectedItemIndex = -1;
197
190
  }
198
191
  $: selected = listFeatures?.[selectedItemIndex];
199
- $: if (selected) {
200
- window.clearTimeout(autocompleteTimeoutRef);
201
- autocompleteTimeoutRef = undefined;
202
- }
203
192
  $: if (mapController) {
204
193
  const coords = isQueryReverse(searchValue);
205
194
  mapController.setReverseMarker(coords ? [coords.decimalLongitude, coords.decimalLatitude] : undefined);
@@ -256,17 +245,11 @@ onDestroy(() => {
256
245
  mapController.setMarkers(undefined, undefined);
257
246
  }
258
247
  });
259
- function handleSubmit(event) {
248
+ function handleOnSubmit(event) {
260
249
  if (searchTimeoutRef) {
261
- window.clearTimeout(searchTimeoutRef);
250
+ clearTimeout(searchTimeoutRef);
262
251
  searchTimeoutRef = undefined;
263
252
  }
264
- if (autocompleteTimeoutRef) {
265
- window.clearTimeout(autocompleteTimeoutRef);
266
- autocompleteTimeoutRef = undefined;
267
- search(searchValue, { exact: true });
268
- return;
269
- }
270
253
  if (selectedItemIndex > -1 && listFeatures) {
271
254
  picked = listFeatures[selectedItemIndex];
272
255
  searchValue =
@@ -298,7 +281,7 @@ function isQueryReverse(searchValue) {
298
281
  return false;
299
282
  }
300
283
  }
301
- async function search(searchValue, { byId = false, exact = false, appendSpace = false, } = {}) {
284
+ async function search(searchValue, { byId = false, exact = false, } = {}) {
302
285
  error = undefined;
303
286
  abortController?.abort();
304
287
  const ac = new AbortController();
@@ -341,7 +324,7 @@ async function search(searchValue, { byId = false, exact = false, appendSpace =
341
324
  "/" +
342
325
  encodeURIComponent(isReverse
343
326
  ? isReverse.decimalLongitude + "," + isReverse.decimalLatitude
344
- : searchValue + (appendSpace ? " " : "")) +
327
+ : searchValue) +
345
328
  ".json?" +
346
329
  sp.toString();
347
330
  if (url === lastSearchUrl) {
@@ -493,29 +476,21 @@ function handleKeyDown(e) {
493
476
  }
494
477
  function handleInput(debounce = true, reverse = false) {
495
478
  error = undefined;
496
- if (searchTimeoutRef) {
497
- window.clearTimeout(searchTimeoutRef);
498
- searchTimeoutRef = undefined;
499
- }
500
- if (autocompleteTimeoutRef) {
501
- window.clearTimeout(autocompleteTimeoutRef);
502
- autocompleteTimeoutRef = undefined;
479
+ if (showResultsWhileTyping || reverse) {
480
+ if (searchTimeoutRef) {
481
+ clearTimeout(searchTimeoutRef);
482
+ }
483
+ if (searchValue.length < minLength) {
484
+ return;
485
+ }
486
+ const sv = searchValue;
487
+ searchTimeoutRef = window.setTimeout(() => {
488
+ search(sv).catch((err) => (error = err));
489
+ }, debounce ? debounceSearch : 0);
503
490
  }
504
- if ((!showResultsWhileTyping && !reverse) ||
505
- searchValue.length < minLength) {
491
+ else {
506
492
  listFeatures = undefined;
507
- return;
508
- }
509
- const sv = searchValue;
510
- searchTimeoutRef = window.setTimeout(() => {
511
- searchTimeoutRef = undefined;
512
- search(sv).catch((err) => (error = err));
513
- }, debounce ? debounceSearch : 0);
514
- if (!searchValue.endsWith(" ")) {
515
- autocompleteTimeoutRef = window.setTimeout(() => {
516
- autocompleteTimeoutRef = undefined;
517
- search(sv, { appendSpace: true }).catch((err) => (error = err));
518
- }, autocompleteTimeout);
493
+ error = undefined;
519
494
  }
520
495
  }
521
496
  function pick(feature) {
@@ -533,7 +508,7 @@ function pick(feature) {
533
508
  <!-- svelte-ignore a11y-no-noninteractive-tabindex -->
534
509
  <form
535
510
  tabindex="0"
536
- on:submit|preventDefault={handleSubmit}
511
+ on:submit|preventDefault={handleOnSubmit}
537
512
  class:can-collapse={collapsed && searchValue === ""}
538
513
  class={className}
539
514
  >
@@ -570,7 +545,7 @@ function pick(feature) {
570
545
  {/if}
571
546
  </div>
572
547
 
573
- {#if enableReverse !== "never"}
548
+ {#if enableReverse === "button"}
574
549
  <button
575
550
  type="button"
576
551
  class:active={reverseActive}
@@ -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;
@@ -1,7 +1,7 @@
1
1
  import type { Evented, FitBoundsOptions, FlyToOptions, Map, Marker, MarkerOptions } from "maplibre-gl";
2
2
  import type { SvelteComponent } from "svelte";
3
3
  import GeocodingControlComponent from "./GeocodingControl.svelte";
4
- import { type FullGeometryStyle, type MapLibreGL } from "./maplibregl-controller";
4
+ import { createMapLibreGlMapController, type FullGeometryStyle, type MapLibreGL } from "./maplibregl-controller";
5
5
  import type { ControlOptions, Feature, FeatureCollection } from "./types";
6
6
  export { createMapLibreGlMapController, type MapLibreGL, } from "./maplibregl-controller";
7
7
  export type MapLibreBaseControlOptions = Omit<ControlOptions, "apiKey"> & {
@@ -65,6 +65,7 @@ export declare function crateClasses<OPTS extends MapLibreBaseControlOptions>(Ev
65
65
  new (options?: OPTS): {
66
66
  "__#1@#gc"?: GeocodingControlComponent;
67
67
  "__#1@#options": OPTS;
68
+ "__#1@#mapController"?: ReturnType<typeof createMapLibreGlMapController>;
68
69
  onAddInt(map: Map): HTMLElement;
69
70
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
70
71
  select: {
@@ -219,6 +220,7 @@ export declare function crateClasses<OPTS extends MapLibreBaseControlOptions>(Ev
219
220
  new (target: {
220
221
  "__#1@#gc"?: GeocodingControlComponent;
221
222
  "__#1@#options": OPTS;
223
+ "__#1@#mapController"?: ReturnType<typeof createMapLibreGlMapController>;
222
224
  onAddInt(map: Map): HTMLElement;
223
225
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
224
226
  select: {
@@ -374,6 +376,7 @@ export declare function crateClasses<OPTS extends MapLibreBaseControlOptions>(Ev
374
376
  readonly target: {
375
377
  "__#1@#gc"?: GeocodingControlComponent;
376
378
  "__#1@#options": OPTS;
379
+ "__#1@#mapController"?: ReturnType<typeof createMapLibreGlMapController>;
377
380
  onAddInt(map: Map): HTMLElement;
378
381
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
379
382
  select: {
@@ -528,6 +531,7 @@ export declare function crateClasses<OPTS extends MapLibreBaseControlOptions>(Ev
528
531
  new (target: {
529
532
  "__#1@#gc"?: GeocodingControlComponent;
530
533
  "__#1@#options": OPTS;
534
+ "__#1@#mapController"?: ReturnType<typeof createMapLibreGlMapController>;
531
535
  onAddInt(map: Map): HTMLElement;
532
536
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
533
537
  select: {
@@ -681,6 +685,7 @@ export declare function crateClasses<OPTS extends MapLibreBaseControlOptions>(Ev
681
685
  readonly target: {
682
686
  "__#1@#gc"?: GeocodingControlComponent;
683
687
  "__#1@#options": OPTS;
688
+ "__#1@#mapController"?: ReturnType<typeof createMapLibreGlMapController>;
684
689
  onAddInt(map: Map): HTMLElement;
685
690
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
686
691
  select: {
@@ -835,6 +840,7 @@ export declare function crateClasses<OPTS extends MapLibreBaseControlOptions>(Ev
835
840
  new (target: {
836
841
  "__#1@#gc"?: GeocodingControlComponent;
837
842
  "__#1@#options": OPTS;
843
+ "__#1@#mapController"?: ReturnType<typeof createMapLibreGlMapController>;
838
844
  onAddInt(map: Map): HTMLElement;
839
845
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
840
846
  select: {
@@ -988,6 +994,7 @@ export declare function crateClasses<OPTS extends MapLibreBaseControlOptions>(Ev
988
994
  readonly target: {
989
995
  "__#1@#gc"?: GeocodingControlComponent;
990
996
  "__#1@#options": OPTS;
997
+ "__#1@#mapController"?: ReturnType<typeof createMapLibreGlMapController>;
991
998
  onAddInt(map: Map): HTMLElement;
992
999
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
993
1000
  select: {
@@ -1142,6 +1149,7 @@ export declare function crateClasses<OPTS extends MapLibreBaseControlOptions>(Ev
1142
1149
  new (target: {
1143
1150
  "__#1@#gc"?: GeocodingControlComponent;
1144
1151
  "__#1@#options": OPTS;
1152
+ "__#1@#mapController"?: ReturnType<typeof createMapLibreGlMapController>;
1145
1153
  onAddInt(map: Map): HTMLElement;
1146
1154
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
1147
1155
  select: {
@@ -1295,6 +1303,7 @@ export declare function crateClasses<OPTS extends MapLibreBaseControlOptions>(Ev
1295
1303
  readonly target: {
1296
1304
  "__#1@#gc"?: GeocodingControlComponent;
1297
1305
  "__#1@#options": OPTS;
1306
+ "__#1@#mapController"?: ReturnType<typeof createMapLibreGlMapController>;
1298
1307
  onAddInt(map: Map): HTMLElement;
1299
1308
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
1300
1309
  select: {
@@ -1449,6 +1458,7 @@ export declare function crateClasses<OPTS extends MapLibreBaseControlOptions>(Ev
1449
1458
  new (target: {
1450
1459
  "__#1@#gc"?: GeocodingControlComponent;
1451
1460
  "__#1@#options": OPTS;
1461
+ "__#1@#mapController"?: ReturnType<typeof createMapLibreGlMapController>;
1452
1462
  onAddInt(map: Map): HTMLElement;
1453
1463
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
1454
1464
  select: {
@@ -1602,6 +1612,7 @@ export declare function crateClasses<OPTS extends MapLibreBaseControlOptions>(Ev
1602
1612
  readonly target: {
1603
1613
  "__#1@#gc"?: GeocodingControlComponent;
1604
1614
  "__#1@#options": OPTS;
1615
+ "__#1@#mapController"?: ReturnType<typeof createMapLibreGlMapController>;
1605
1616
  onAddInt(map: Map): HTMLElement;
1606
1617
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
1607
1618
  select: {
@@ -1756,6 +1767,7 @@ export declare function crateClasses<OPTS extends MapLibreBaseControlOptions>(Ev
1756
1767
  new (target: {
1757
1768
  "__#1@#gc"?: GeocodingControlComponent;
1758
1769
  "__#1@#options": OPTS;
1770
+ "__#1@#mapController"?: ReturnType<typeof createMapLibreGlMapController>;
1759
1771
  onAddInt(map: Map): HTMLElement;
1760
1772
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
1761
1773
  select: {
@@ -1909,6 +1921,7 @@ export declare function crateClasses<OPTS extends MapLibreBaseControlOptions>(Ev
1909
1921
  readonly target: {
1910
1922
  "__#1@#gc"?: GeocodingControlComponent;
1911
1923
  "__#1@#options": OPTS;
1924
+ "__#1@#mapController"?: ReturnType<typeof createMapLibreGlMapController>;
1912
1925
  onAddInt(map: Map): HTMLElement;
1913
1926
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
1914
1927
  select: {
@@ -2063,6 +2076,7 @@ export declare function crateClasses<OPTS extends MapLibreBaseControlOptions>(Ev
2063
2076
  new (target: {
2064
2077
  "__#1@#gc"?: GeocodingControlComponent;
2065
2078
  "__#1@#options": OPTS;
2079
+ "__#1@#mapController"?: ReturnType<typeof createMapLibreGlMapController>;
2066
2080
  onAddInt(map: Map): HTMLElement;
2067
2081
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
2068
2082
  select: {
@@ -2217,6 +2231,7 @@ export declare function crateClasses<OPTS extends MapLibreBaseControlOptions>(Ev
2217
2231
  readonly target: {
2218
2232
  "__#1@#gc"?: GeocodingControlComponent;
2219
2233
  "__#1@#options": OPTS;
2234
+ "__#1@#mapController"?: ReturnType<typeof createMapLibreGlMapController>;
2220
2235
  onAddInt(map: Map): HTMLElement;
2221
2236
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
2222
2237
  select: {
@@ -2371,6 +2386,7 @@ export declare function crateClasses<OPTS extends MapLibreBaseControlOptions>(Ev
2371
2386
  new (target: {
2372
2387
  "__#1@#gc"?: GeocodingControlComponent;
2373
2388
  "__#1@#options": OPTS;
2389
+ "__#1@#mapController"?: ReturnType<typeof createMapLibreGlMapController>;
2374
2390
  onAddInt(map: Map): HTMLElement;
2375
2391
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
2376
2392
  select: {
@@ -2524,6 +2540,7 @@ export declare function crateClasses<OPTS extends MapLibreBaseControlOptions>(Ev
2524
2540
  readonly target: {
2525
2541
  "__#1@#gc"?: GeocodingControlComponent;
2526
2542
  "__#1@#options": OPTS;
2543
+ "__#1@#mapController"?: ReturnType<typeof createMapLibreGlMapController>;
2527
2544
  onAddInt(map: Map): HTMLElement;
2528
2545
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
2529
2546
  select: {
@@ -72,6 +72,7 @@ export function crateClasses(Evented, maplibreGl, getExtraProps) {
72
72
  class MapLibreBasedGeocodingControl extends Evented {
73
73
  #gc;
74
74
  #options;
75
+ #mapController = undefined;
75
76
  constructor(options = {}) {
76
77
  super();
77
78
  this.#options = options;
@@ -84,6 +85,7 @@ export function crateClasses(Evented, maplibreGl, getExtraProps) {
84
85
  const flyToOptions = typeof flyTo === "boolean" ? {} : flyTo;
85
86
  const mapController = createMapLibreGlMapController(map, maplibreGl, marker, showResultMarkers, flyToOptions, flyToOptions, fullGeometryStyle, restOptions.pickedResultStyle ===
86
87
  "full-geometry-including-polygon-center-marker");
88
+ this.#mapController = mapController;
87
89
  const props = {
88
90
  mapController,
89
91
  flyTo: flyTo === undefined ? true : !!flyTo,
@@ -134,9 +136,11 @@ export function crateClasses(Evented, maplibreGl, getExtraProps) {
134
136
  return super.listens(type);
135
137
  }
136
138
  setOptions(options) {
137
- this.#options = options;
139
+ Object.assign(this.#options, options);
138
140
  const { marker, showResultMarkers, flyTo, fullGeometryStyle, ...restOptions } = this.#options;
139
141
  this.#gc?.$set(restOptions);
142
+ this.#mapController?.setShowPolygonMarker(this.#options.pickedResultStyle ===
143
+ "full-geometry-including-polygon-center-marker");
140
144
  }
141
145
  setQuery(value, submit = true) {
142
146
  this.#gc?.setQuery(value, submit);
@@ -1,6 +1,6 @@
1
1
  import * as L from "leaflet";
2
2
  import type { BBox, Feature, MapEvent, Position } from "./types";
3
- export declare function createLeafletMapController(map: L.Map, marker?: boolean | null | L.MarkerOptions | ((map: L.Map, feature?: Feature) => L.Marker | undefined | null), showResultMarkers?: boolean | null | L.MarkerOptions | ((map: L.Map, feature: Feature) => L.Marker | undefined | null), flyToOptions?: L.ZoomPanOptions | null, flyToBounds?: L.FitBoundsOptions | null, fullGeometryStyle?: null | boolean | L.PathOptions | L.StyleFunction, showPolyMarker?: boolean): {
3
+ export declare function createLeafletMapController(map: L.Map, marker?: boolean | null | L.MarkerOptions | ((map: L.Map, feature?: Feature) => L.Marker | undefined | null), showResultMarkers?: boolean | null | L.MarkerOptions | ((map: L.Map, feature: Feature) => L.Marker | undefined | null), flyToOptions?: L.ZoomPanOptions | null, flyToBounds?: L.FitBoundsOptions | null, fullGeometryStyle?: null | boolean | L.PathOptions | L.StyleFunction, showPolygonMarker?: boolean): {
4
4
  setEventHandler(handler: undefined | ((e: MapEvent) => void)): void;
5
5
  flyTo(center: Position, zoom?: number): void;
6
6
  fitBounds(bbox: BBox, padding: number, maxZoom?: number): void;
@@ -9,4 +9,5 @@ export declare function createLeafletMapController(map: L.Map, marker?: boolean
9
9
  setMarkers(markedFeatures: Feature[] | undefined, picked: Feature | undefined): void;
10
10
  setSelectedMarker(index: number): void;
11
11
  getCenterAndZoom(): [number, number, number];
12
+ setShowPolygonMarker(showPolygonMarker: boolean): void;
12
13
  };
@@ -22,11 +22,12 @@ const defaultFullGeometryStyle = (feature) => {
22
22
  lineCap: "butt",
23
23
  };
24
24
  };
25
- export function createLeafletMapController(map, marker = true, showResultMarkers = true, flyToOptions = {}, flyToBounds = {}, fullGeometryStyle = defaultFullGeometryStyle, showPolyMarker = false) {
25
+ export function createLeafletMapController(map, marker = true, showResultMarkers = true, flyToOptions = {}, flyToBounds = {}, fullGeometryStyle = defaultFullGeometryStyle, showPolygonMarker = false) {
26
26
  let eventHandler;
27
27
  const markers = [];
28
28
  let selectedMarker;
29
29
  let reverseMarker;
30
+ let _showPolygonMarker = showPolygonMarker;
30
31
  const resultLayer = L.geoJSON(undefined, {
31
32
  style: fullGeometryStyle === true
32
33
  ? defaultFullGeometryStyle
@@ -177,7 +178,7 @@ export function createLeafletMapController(map, marker = true, showResultMarkers
177
178
  setData(picked);
178
179
  return; // no pin for (multi)linestrings
179
180
  }
180
- if (!showPolyMarker && picked.geometry.type !== "Point") {
181
+ if (!_showPolygonMarker && picked.geometry.type !== "Point") {
181
182
  return;
182
183
  }
183
184
  if (marker instanceof Function) {
@@ -249,6 +250,9 @@ export function createLeafletMapController(map, marker = true, showResultMarkers
249
250
  const c = map.getCenter();
250
251
  return [map.getZoom(), c.lng, c.lat];
251
252
  },
253
+ setShowPolygonMarker(showPolygonMarker) {
254
+ _showPolygonMarker = showPolygonMarker;
255
+ },
252
256
  };
253
257
  }
254
258
  function shiftPolyCollection(featureCollection, distance) {
package/svelte/leaflet.js CHANGED
@@ -14,6 +14,7 @@ L.Util.extend(EventedControl.prototype, L.Evented.prototype);
14
14
  export class GeocodingControl extends EventedControl {
15
15
  #gc;
16
16
  #options;
17
+ #mapController = undefined;
17
18
  constructor(options) {
18
19
  super(options);
19
20
  this.#options = options;
@@ -27,6 +28,7 @@ export class GeocodingControl extends EventedControl {
27
28
  const flyToOptions = typeof flyTo === "boolean" ? {} : flyTo;
28
29
  const mapController = createLeafletMapController(map, marker, showResultMarkers, flyToOptions, flyToOptions, fullGeometryStyle, restOptions.pickedResultStyle ===
29
30
  "full-geometry-including-polygon-center-marker");
31
+ this.#mapController = mapController;
30
32
  this.#gc = new GeocodingControlComponent({
31
33
  target: div,
32
34
  props: {
@@ -51,9 +53,11 @@ export class GeocodingControl extends EventedControl {
51
53
  return div;
52
54
  }
53
55
  setOptions(options) {
54
- this.#options = options;
56
+ Object.assign(this.#options, options);
55
57
  const { marker, showResultMarkers, flyTo, fullGeometryStyle, ...restOptions } = this.#options;
56
58
  this.#gc?.$set(restOptions);
59
+ this.#mapController?.setShowPolygonMarker(this.#options.pickedResultStyle ===
60
+ "full-geometry-including-polygon-center-marker");
57
61
  }
58
62
  setQuery(value, submit = true) {
59
63
  this.#gc?.setQuery(value, submit);
@@ -7,7 +7,7 @@ export type FullGeometryStyle = {
7
7
  fill: Pick<FillLayerSpecification, "layout" | "paint" | "filter">;
8
8
  line: Pick<LineLayerSpecification, "layout" | "paint" | "filter">;
9
9
  };
10
- export declare function createMapLibreGlMapController(map: Map, maplibregl?: MapLibreGL | undefined, marker?: boolean | null | MarkerOptions | ((map: Map, feature?: Feature) => Marker | undefined | null), showResultMarkers?: boolean | null | MarkerOptions | ((map: Map, feature: Feature) => Marker | undefined | null), flyToOptions?: FlyToOptions | null, fitBoundsOptions?: FitBoundsOptions | null, fullGeometryStyle?: boolean | null | FullGeometryStyle, showPolyMarker?: boolean): {
10
+ export declare function createMapLibreGlMapController(map: Map, maplibregl?: MapLibreGL | undefined, marker?: boolean | null | MarkerOptions | ((map: Map, feature?: Feature) => Marker | undefined | null), showResultMarkers?: boolean | null | MarkerOptions | ((map: Map, feature: Feature) => Marker | undefined | null), flyToOptions?: FlyToOptions | null, fitBoundsOptions?: FitBoundsOptions | null, fullGeometryStyle?: boolean | null | FullGeometryStyle, showPolygonMarker?: boolean): {
11
11
  setEventHandler(handler: undefined | ((e: MapEvent) => void)): void;
12
12
  flyTo(center: Position, zoom?: number): void;
13
13
  fitBounds(bbox: BBox, padding: number, maxZoom?: number): void;
@@ -16,4 +16,5 @@ export declare function createMapLibreGlMapController(map: Map, maplibregl?: Map
16
16
  setMarkers(markedFeatures: Feature[] | undefined, picked: Feature | undefined): void;
17
17
  setSelectedMarker(index: number): void;
18
18
  getCenterAndZoom(): [number, number, number];
19
+ setShowPolygonMarker(showPolygonMarker: boolean): void;
19
20
  };
@@ -25,12 +25,13 @@ const defaultGeometryStyle = {
25
25
  const RESULT_SOURCE = "mtlr-gc-full-geom";
26
26
  const RESULT_LAYER_FILL = "mtlr-gc-full-geom-fill";
27
27
  const RESULT_LAYER_LINE = "mtlr-gc-full-geom-line";
28
- export function createMapLibreGlMapController(map, maplibregl, marker = true, showResultMarkers = true, flyToOptions = {}, fitBoundsOptions = {}, fullGeometryStyle = defaultGeometryStyle, showPolyMarker = false) {
28
+ export function createMapLibreGlMapController(map, maplibregl, marker = true, showResultMarkers = true, flyToOptions = {}, fitBoundsOptions = {}, fullGeometryStyle = defaultGeometryStyle, showPolygonMarker = false) {
29
29
  let eventHandler;
30
30
  const markers = [];
31
31
  let selectedMarker;
32
32
  let reverseMarker;
33
33
  let savedData; // used to restore features on style switch
34
+ let _showPolygonMarker = showPolygonMarker;
34
35
  function syncFullGeometryLayer() {
35
36
  if (!map.loaded) {
36
37
  map.once("load", syncFullGeometryLayer);
@@ -204,7 +205,7 @@ export function createMapLibreGlMapController(map, maplibregl, marker = true, sh
204
205
  setAndSaveData(picked);
205
206
  return; // no pin for (multi)linestrings
206
207
  }
207
- if (!showPolyMarker && picked.geometry.type !== "Point") {
208
+ if (!_showPolygonMarker && picked.geometry.type !== "Point") {
208
209
  return;
209
210
  }
210
211
  if (marker instanceof Function) {
@@ -275,5 +276,8 @@ export function createMapLibreGlMapController(map, maplibregl, marker = true, sh
275
276
  const c = map.getCenter();
276
277
  return [map.getZoom(), c.lng, c.lat];
277
278
  },
279
+ setShowPolygonMarker(showPolygonMarker) {
280
+ _showPolygonMarker = showPolygonMarker;
281
+ },
278
282
  };
279
283
  }
@@ -12,6 +12,7 @@ declare const MapLibreBasedGeocodingControl: {
12
12
  new (options?: Options): {
13
13
  "__#1@#gc"?: import("./GeocodingControl.svelte").default;
14
14
  "__#1@#options": Options;
15
+ "__#1@#mapController"?: ReturnType<typeof import("./maplibregl-controller").createMapLibreGlMapController>;
15
16
  onAddInt(map: Map): HTMLElement;
16
17
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
17
18
  select: {
@@ -168,6 +169,7 @@ export declare const SelectEvent: {
168
169
  new (target: {
169
170
  "__#1@#gc"?: import("./GeocodingControl.svelte").default;
170
171
  "__#1@#options": Options;
172
+ "__#1@#mapController"?: ReturnType<typeof import("./maplibregl-controller").createMapLibreGlMapController>;
171
173
  onAddInt(map: Map): HTMLElement;
172
174
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
173
175
  select: {
@@ -323,6 +325,7 @@ export declare const SelectEvent: {
323
325
  readonly target: {
324
326
  "__#1@#gc"?: import("./GeocodingControl.svelte").default;
325
327
  "__#1@#options": Options;
328
+ "__#1@#mapController"?: ReturnType<typeof import("./maplibregl-controller").createMapLibreGlMapController>;
326
329
  onAddInt(map: Map): HTMLElement;
327
330
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
328
331
  select: {
@@ -477,6 +480,7 @@ export declare const FeaturesListedEvent: {
477
480
  new (target: {
478
481
  "__#1@#gc"?: import("./GeocodingControl.svelte").default;
479
482
  "__#1@#options": Options;
483
+ "__#1@#mapController"?: ReturnType<typeof import("./maplibregl-controller").createMapLibreGlMapController>;
480
484
  onAddInt(map: Map): HTMLElement;
481
485
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
482
486
  select: {
@@ -630,6 +634,7 @@ export declare const FeaturesListedEvent: {
630
634
  readonly target: {
631
635
  "__#1@#gc"?: import("./GeocodingControl.svelte").default;
632
636
  "__#1@#options": Options;
637
+ "__#1@#mapController"?: ReturnType<typeof import("./maplibregl-controller").createMapLibreGlMapController>;
633
638
  onAddInt(map: Map): HTMLElement;
634
639
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
635
640
  select: {
@@ -784,6 +789,7 @@ export declare const FeaturesMarkedEvent: {
784
789
  new (target: {
785
790
  "__#1@#gc"?: import("./GeocodingControl.svelte").default;
786
791
  "__#1@#options": Options;
792
+ "__#1@#mapController"?: ReturnType<typeof import("./maplibregl-controller").createMapLibreGlMapController>;
787
793
  onAddInt(map: Map): HTMLElement;
788
794
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
789
795
  select: {
@@ -937,6 +943,7 @@ export declare const FeaturesMarkedEvent: {
937
943
  readonly target: {
938
944
  "__#1@#gc"?: import("./GeocodingControl.svelte").default;
939
945
  "__#1@#options": Options;
946
+ "__#1@#mapController"?: ReturnType<typeof import("./maplibregl-controller").createMapLibreGlMapController>;
940
947
  onAddInt(map: Map): HTMLElement;
941
948
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
942
949
  select: {
@@ -1091,6 +1098,7 @@ export declare const OptionsVisibilityChangeEvent: {
1091
1098
  new (target: {
1092
1099
  "__#1@#gc"?: import("./GeocodingControl.svelte").default;
1093
1100
  "__#1@#options": Options;
1101
+ "__#1@#mapController"?: ReturnType<typeof import("./maplibregl-controller").createMapLibreGlMapController>;
1094
1102
  onAddInt(map: Map): HTMLElement;
1095
1103
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
1096
1104
  select: {
@@ -1244,6 +1252,7 @@ export declare const OptionsVisibilityChangeEvent: {
1244
1252
  readonly target: {
1245
1253
  "__#1@#gc"?: import("./GeocodingControl.svelte").default;
1246
1254
  "__#1@#options": Options;
1255
+ "__#1@#mapController"?: ReturnType<typeof import("./maplibregl-controller").createMapLibreGlMapController>;
1247
1256
  onAddInt(map: Map): HTMLElement;
1248
1257
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
1249
1258
  select: {
@@ -1398,6 +1407,7 @@ export declare const PickEvent: {
1398
1407
  new (target: {
1399
1408
  "__#1@#gc"?: import("./GeocodingControl.svelte").default;
1400
1409
  "__#1@#options": Options;
1410
+ "__#1@#mapController"?: ReturnType<typeof import("./maplibregl-controller").createMapLibreGlMapController>;
1401
1411
  onAddInt(map: Map): HTMLElement;
1402
1412
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
1403
1413
  select: {
@@ -1551,6 +1561,7 @@ export declare const PickEvent: {
1551
1561
  readonly target: {
1552
1562
  "__#1@#gc"?: import("./GeocodingControl.svelte").default;
1553
1563
  "__#1@#options": Options;
1564
+ "__#1@#mapController"?: ReturnType<typeof import("./maplibregl-controller").createMapLibreGlMapController>;
1554
1565
  onAddInt(map: Map): HTMLElement;
1555
1566
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
1556
1567
  select: {
@@ -1705,6 +1716,7 @@ export declare const QueryChangeEvent: {
1705
1716
  new (target: {
1706
1717
  "__#1@#gc"?: import("./GeocodingControl.svelte").default;
1707
1718
  "__#1@#options": Options;
1719
+ "__#1@#mapController"?: ReturnType<typeof import("./maplibregl-controller").createMapLibreGlMapController>;
1708
1720
  onAddInt(map: Map): HTMLElement;
1709
1721
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
1710
1722
  select: {
@@ -1858,6 +1870,7 @@ export declare const QueryChangeEvent: {
1858
1870
  readonly target: {
1859
1871
  "__#1@#gc"?: import("./GeocodingControl.svelte").default;
1860
1872
  "__#1@#options": Options;
1873
+ "__#1@#mapController"?: ReturnType<typeof import("./maplibregl-controller").createMapLibreGlMapController>;
1861
1874
  onAddInt(map: Map): HTMLElement;
1862
1875
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
1863
1876
  select: {
@@ -2012,6 +2025,7 @@ export declare const ResponseEvent: {
2012
2025
  new (target: {
2013
2026
  "__#1@#gc"?: import("./GeocodingControl.svelte").default;
2014
2027
  "__#1@#options": Options;
2028
+ "__#1@#mapController"?: ReturnType<typeof import("./maplibregl-controller").createMapLibreGlMapController>;
2015
2029
  onAddInt(map: Map): HTMLElement;
2016
2030
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
2017
2031
  select: {
@@ -2166,6 +2180,7 @@ export declare const ResponseEvent: {
2166
2180
  readonly target: {
2167
2181
  "__#1@#gc"?: import("./GeocodingControl.svelte").default;
2168
2182
  "__#1@#options": Options;
2183
+ "__#1@#mapController"?: ReturnType<typeof import("./maplibregl-controller").createMapLibreGlMapController>;
2169
2184
  onAddInt(map: Map): HTMLElement;
2170
2185
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
2171
2186
  select: {
@@ -2320,6 +2335,7 @@ export declare const ReverseToggleEvent: {
2320
2335
  new (target: {
2321
2336
  "__#1@#gc"?: import("./GeocodingControl.svelte").default;
2322
2337
  "__#1@#options": Options;
2338
+ "__#1@#mapController"?: ReturnType<typeof import("./maplibregl-controller").createMapLibreGlMapController>;
2323
2339
  onAddInt(map: Map): HTMLElement;
2324
2340
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
2325
2341
  select: {
@@ -2473,6 +2489,7 @@ export declare const ReverseToggleEvent: {
2473
2489
  readonly target: {
2474
2490
  "__#1@#gc"?: import("./GeocodingControl.svelte").default;
2475
2491
  "__#1@#options": Options;
2492
+ "__#1@#mapController"?: ReturnType<typeof import("./maplibregl-controller").createMapLibreGlMapController>;
2476
2493
  onAddInt(map: Map): HTMLElement;
2477
2494
  on<T extends "pick" | "response" | "select" | "featureslisted" | "featuresmarked" | "optionsvisibilitychange" | "querychange" | "reversetoggle">(type: T, listener: (ev: {
2478
2495
  select: {