@mapvx/web-js 1.2.1 → 1.2.3-dev.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.
Files changed (104) hide show
  1. package/LICENSE.md +2 -2
  2. package/README.md +12 -9
  3. package/dist/cjs/assets/icons.js +6 -8
  4. package/dist/cjs/assets/icons.js.map +1 -1
  5. package/dist/cjs/controllers/routeController.js +19 -19
  6. package/dist/cjs/controllers/routeController.js.map +1 -1
  7. package/dist/cjs/domain/models/animation.js +2 -2
  8. package/dist/cjs/domain/models/categories.js +23 -10
  9. package/dist/cjs/domain/models/categories.js.map +1 -1
  10. package/dist/cjs/domain/models/mapConfig.js +10 -1
  11. package/dist/cjs/domain/models/mapConfig.js.map +1 -1
  12. package/dist/cjs/domain/models/marker.js +86 -80
  13. package/dist/cjs/domain/models/marker.js.map +1 -1
  14. package/dist/cjs/domain/models/routeConfiguration.js +3 -1
  15. package/dist/cjs/domain/models/routeConfiguration.js.map +1 -1
  16. package/dist/cjs/index.js +17 -12
  17. package/dist/cjs/index.js.map +1 -1
  18. package/dist/cjs/logger/logger.js +13 -8
  19. package/dist/cjs/logger/logger.js.map +1 -1
  20. package/dist/cjs/logger/rollbar.js +11 -6
  21. package/dist/cjs/logger/rollbar.js.map +1 -1
  22. package/dist/cjs/map/map.js +102 -26
  23. package/dist/cjs/map/map.js.map +1 -1
  24. package/dist/cjs/map/mapInteractionOptions.js +56 -0
  25. package/dist/cjs/map/mapInteractionOptions.js.map +1 -0
  26. package/dist/cjs/repository/repository.js +25 -26
  27. package/dist/cjs/repository/repository.js.map +1 -1
  28. package/dist/cjs/repository/requester.js +71 -91
  29. package/dist/cjs/repository/requester.js.map +1 -1
  30. package/dist/cjs/sdk.js +18 -1
  31. package/dist/cjs/sdk.js.map +1 -1
  32. package/dist/cjs/utils/semaphore.js +143 -0
  33. package/dist/cjs/utils/semaphore.js.map +1 -0
  34. package/dist/es/assets/icons.d.ts +4 -4
  35. package/dist/es/assets/icons.d.ts.map +1 -1
  36. package/dist/es/assets/icons.js +6 -8
  37. package/dist/es/assets/icons.js.map +1 -1
  38. package/dist/es/controllers/routeController.d.ts.map +1 -1
  39. package/dist/es/controllers/routeController.js +19 -19
  40. package/dist/es/controllers/routeController.js.map +1 -1
  41. package/dist/es/domain/models/animation.d.ts +3 -3
  42. package/dist/es/domain/models/animation.js +2 -2
  43. package/dist/es/domain/models/categories.d.ts +34 -10
  44. package/dist/es/domain/models/categories.d.ts.map +1 -1
  45. package/dist/es/domain/models/categories.js +21 -9
  46. package/dist/es/domain/models/categories.js.map +1 -1
  47. package/dist/es/domain/models/configuration.d.ts +8 -0
  48. package/dist/es/domain/models/configuration.d.ts.map +1 -1
  49. package/dist/es/domain/models/mapConfig.d.ts +118 -3
  50. package/dist/es/domain/models/mapConfig.d.ts.map +1 -1
  51. package/dist/es/domain/models/mapConfig.js +9 -0
  52. package/dist/es/domain/models/mapConfig.js.map +1 -1
  53. package/dist/es/domain/models/marker.d.ts +8 -0
  54. package/dist/es/domain/models/marker.d.ts.map +1 -1
  55. package/dist/es/domain/models/marker.js +86 -80
  56. package/dist/es/domain/models/marker.js.map +1 -1
  57. package/dist/es/domain/models/routeConfiguration.d.ts +47 -0
  58. package/dist/es/domain/models/routeConfiguration.d.ts.map +1 -1
  59. package/dist/es/domain/models/routeConfiguration.js +3 -1
  60. package/dist/es/domain/models/routeConfiguration.js.map +1 -1
  61. package/dist/es/index.d.ts +13 -12
  62. package/dist/es/index.d.ts.map +1 -1
  63. package/dist/es/index.js +8 -6
  64. package/dist/es/index.js.map +1 -1
  65. package/dist/es/interfaces/routeCacheResponse.d.ts.map +1 -1
  66. package/dist/es/logger/logger.d.ts.map +1 -1
  67. package/dist/es/logger/logger.js +13 -8
  68. package/dist/es/logger/logger.js.map +1 -1
  69. package/dist/es/logger/rollbar.d.ts.map +1 -1
  70. package/dist/es/logger/rollbar.js +11 -6
  71. package/dist/es/logger/rollbar.js.map +1 -1
  72. package/dist/es/map/map.d.ts +79 -0
  73. package/dist/es/map/map.d.ts.map +1 -1
  74. package/dist/es/map/map.js +104 -28
  75. package/dist/es/map/map.js.map +1 -1
  76. package/dist/es/map/mapInteractionOptions.d.ts +37 -0
  77. package/dist/es/map/mapInteractionOptions.d.ts.map +1 -0
  78. package/dist/es/map/mapInteractionOptions.js +51 -0
  79. package/dist/es/map/mapInteractionOptions.js.map +1 -0
  80. package/dist/es/repository/repository.d.ts +0 -1
  81. package/dist/es/repository/repository.d.ts.map +1 -1
  82. package/dist/es/repository/repository.js +25 -26
  83. package/dist/es/repository/repository.js.map +1 -1
  84. package/dist/es/repository/requester.d.ts +12 -2
  85. package/dist/es/repository/requester.d.ts.map +1 -1
  86. package/dist/es/repository/requester.js +71 -91
  87. package/dist/es/repository/requester.js.map +1 -1
  88. package/dist/es/sdk.d.ts +2 -0
  89. package/dist/es/sdk.d.ts.map +1 -1
  90. package/dist/es/sdk.js +18 -1
  91. package/dist/es/sdk.js.map +1 -1
  92. package/dist/es/utils/semaphore.d.ts +70 -0
  93. package/dist/es/utils/semaphore.d.ts.map +1 -0
  94. package/dist/es/utils/semaphore.js +139 -0
  95. package/dist/es/utils/semaphore.js.map +1 -0
  96. package/dist/umd/index.js +1092 -643
  97. package/dist/umd/index.js.map +1 -1
  98. package/dist/umd/styles.css +32 -14
  99. package/dist/umd/styles.css.map +1 -1
  100. package/package.json +63 -49
  101. package/dist/cjs/assets/route_animation_icon.svg +0 -15
  102. package/dist/cjs/assets/user-dot-icon.svg +0 -3
  103. package/dist/es/assets/route_animation_icon.svg +0 -15
  104. package/dist/es/assets/user-dot-icon.svg +0 -3
@@ -1,10 +1,15 @@
1
- // VERSION is a webpack DefinePlugin constant, substituted only in the UMD
2
- // bundle. The tsc-built ES/CJS outputs keep it as a bare global, so the
3
- // typeof guard makes the lookup safe everywhere; the version placeholder is
4
- // replaced with the package version by scripts/inject-build-defines.js.
5
- const SDK_VERSION = typeof VERSION !== "undefined" ? VERSION : "1.2.1";
1
+ // VERSION and ROLLBAR_ACCESS_TOKEN are webpack DefinePlugin constants,
2
+ // substituted only in the UMD bundle. The tsc-built ES/CJS outputs keep them
3
+ // as bare globals, so the typeof guards make the lookup safe everywhere; the
4
+ // version placeholder is replaced with the package version by
5
+ // scripts/inject-build-defines.js. The access token falls back to the MapVX
6
+ // SDK-web Rollbar project token when none is injected at build time.
7
+ const SDK_VERSION = typeof VERSION !== "undefined" ? VERSION : "1.2.3-dev.1";
8
+ const ACCESS_TOKEN = typeof ROLLBAR_ACCESS_TOKEN !== "undefined" && ROLLBAR_ACCESS_TOKEN
9
+ ? ROLLBAR_ACCESS_TOKEN
10
+ : "28279d52df43411ebd138c2bee0ab1df";
6
11
  export const _rollbarConfig = {
7
- accessToken: "28279d52df43411ebd138c2bee0ab1df",
12
+ accessToken: ACCESS_TOKEN,
8
13
  // Only report what the SDK logs explicitly via logError. Capturing every
9
14
  // uncaught error / unhandled rejection on the host page floods Rollbar
10
15
  // with items from third-party code (e.g. Countly, the host app itself)
@@ -1 +1 @@
1
- {"version":3,"file":"rollbar.js","sourceRoot":"","sources":["../../../src/logger/rollbar.ts"],"names":[],"mappings":"AAIA,0EAA0E;AAC1E,wEAAwE;AACxE,4EAA4E;AAC5E,wEAAwE;AACxE,MAAM,WAAW,GAAW,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAA;AAExF,MAAM,CAAC,MAAM,cAAc,GAAkB;IAC3C,WAAW,EAAE,kCAAkC;IAC/C,yEAAyE;IACzE,uEAAuE;IACvE,uEAAuE;IACvE,6BAA6B;IAC7B,eAAe,EAAE,KAAK;IACtB,0BAA0B,EAAE,KAAK;IACjC,wDAAwD;IACxD,WAAW,EAAE,OAAO;IACpB,OAAO,EAAE;QACP,WAAW,EAAE,YAAY;QACzB,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,YAAY,EAAE,WAAW;aAC1B;SACF;KACF;CACF,CAAA;AAED,MAAM,UAAU,UAAU,CAAC,GAAG,IAAmB;IAC/C,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;AAC/D,CAAC"}
1
+ {"version":3,"file":"rollbar.js","sourceRoot":"","sources":["../../../src/logger/rollbar.ts"],"names":[],"mappings":"AAKA,uEAAuE;AACvE,6EAA6E;AAC7E,6EAA6E;AAC7E,8DAA8D;AAC9D,4EAA4E;AAC5E,qEAAqE;AACrE,MAAM,WAAW,GAAW,OAAO,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAA;AACxF,MAAM,YAAY,GAChB,OAAO,oBAAoB,KAAK,WAAW,IAAI,oBAAoB;IACjE,CAAC,CAAC,oBAAoB;IACtB,CAAC,CAAC,kCAAkC,CAAA;AAExC,MAAM,CAAC,MAAM,cAAc,GAAkB;IAC3C,WAAW,EAAE,YAAY;IACzB,yEAAyE;IACzE,uEAAuE;IACvE,uEAAuE;IACvE,6BAA6B;IAC7B,eAAe,EAAE,KAAK;IACtB,0BAA0B,EAAE,KAAK;IACjC,wDAAwD;IACxD,WAAW,EAAE,OAAO;IACpB,OAAO,EAAE;QACP,WAAW,EAAE,YAAY;QACzB,MAAM,EAAE;YACN,UAAU,EAAE;gBACV,YAAY,EAAE,WAAW;aAC1B;SACF;KACF;CACF,CAAA;AAED,MAAM,UAAU,UAAU,CAAC,GAAG,IAAmB;IAC/C,OAAO,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC,CAAA;AAC/D,CAAC"}
@@ -260,6 +260,78 @@ export interface MapVXMap {
260
260
  * ```
261
261
  */
262
262
  setMaxZoom(zoomLvl: number, options?: ZoomOptions): void;
263
+ /**
264
+ * Sets the map bearing (rotation) in degrees, measured clockwise from north.
265
+ * A bearing of `0` keeps north up, `90` puts east up, and so on.
266
+ *
267
+ * Useful to align the map with a fixed installation (e.g. a totem/kiosk) at
268
+ * runtime — for instance after the visitor picks which totem they are standing
269
+ * at. Works even when user rotation is disabled via
270
+ * {@link MapConfig.rotateEnabled} or {@link MapVXMap.setRotationEnabled}, since
271
+ * this is a programmatic change.
272
+ *
273
+ * @param degrees Target bearing in degrees. Non-finite values are ignored.
274
+ * @param options Optional behavior:
275
+ * - `animate`: when `true`, the camera eases to the new bearing instead of
276
+ * snapping to it. Defaults to `false`.
277
+ * - `onComplete`: callback invoked once the rotation has been applied (after
278
+ * the animation when `animate` is `true`).
279
+ *
280
+ * @example
281
+ * ```typescript
282
+ * // Snap the map so the selected totem faces up
283
+ * map.setBearing(135);
284
+ *
285
+ * // Animate the rotation and run a callback when it settles
286
+ * map.setBearing(135, { animate: true, onComplete: () => console.log('aligned') });
287
+ * ```
288
+ *
289
+ * @group Map
290
+ */
291
+ setBearing(degrees: number, options?: {
292
+ animate?: boolean;
293
+ onComplete?: () => void;
294
+ }): void;
295
+ /**
296
+ * Enables or disables user rotation of the map at runtime.
297
+ *
298
+ * When disabled, drag-to-rotate, two-finger touch rotation and pitch-with-rotate
299
+ * are turned off while pinch-to-zoom keeps working. This is the runtime
300
+ * equivalent of {@link MapConfig.rotateEnabled} and is ideal for fixed
301
+ * installations that must stay locked to a configured {@link MapConfig.bearing}.
302
+ *
303
+ * @param enabled `true` to allow rotation, `false` to lock it.
304
+ *
305
+ * @example
306
+ * ```typescript
307
+ * // Lock the map to its current orientation
308
+ * map.setRotationEnabled(false);
309
+ * ```
310
+ *
311
+ * @group Map
312
+ */
313
+ setRotationEnabled(enabled: boolean): void;
314
+ /**
315
+ * Enables or disables panning the map by dragging or swiping at runtime.
316
+ * Runtime equivalent of {@link MapConfig.dragPan}. Combine with
317
+ * {@link MapVXMap.setRotationEnabled} to build a static screen where only zoom
318
+ * in/out is allowed.
319
+ *
320
+ * @param enabled `true` to allow panning, `false` to lock the map position.
321
+ *
322
+ * @group Map
323
+ */
324
+ setPanEnabled(enabled: boolean): void;
325
+ /**
326
+ * Enables or disables zooming with the scroll wheel / trackpad at runtime.
327
+ * Runtime equivalent of {@link MapConfig.scrollZoom}. Zoom buttons and
328
+ * pinch-to-zoom are unaffected.
329
+ *
330
+ * @param enabled `true` to allow scroll-wheel zoom, `false` to disable it.
331
+ *
332
+ * @group Map
333
+ */
334
+ setScrollZoomEnabled(enabled: boolean): void;
263
335
  /**
264
336
  * Limits the movement of the map to a bounding box calculated with the coordinate array
265
337
  * If the coordinates are less than 2, then the function does nothing.
@@ -765,6 +837,13 @@ export declare class InternalMapVXMap extends Loggeable implements MapVXMap {
765
837
  updateCamera(newCamera: MapCamera & CameraAnimation, callback?: () => void): void;
766
838
  setMaxZoom(zoomLvl: number, options?: ZoomOptions): void;
767
839
  setMinZoom(zoomLvl: number, options?: ZoomOptions): void;
840
+ setBearing(degrees: number, options?: {
841
+ animate?: boolean;
842
+ onComplete?: () => void;
843
+ }): void;
844
+ setRotationEnabled(enabled: boolean): void;
845
+ setPanEnabled(enabled: boolean): void;
846
+ setScrollZoomEnabled(enabled: boolean): void;
768
847
  isInsideBounds(point: LatLng): boolean;
769
848
  setMaxBounds(coordinates: LatLng[], options?: BoundsOptions): void;
770
849
  fitCoordinates(coordinates: LatLng[], options?: FitOptions): void;
@@ -1 +1 @@
1
- {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../src/map/map.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../src/map/map.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import maplibregl, { LngLatBounds, Map, NavigationControl, setRTLTextPlugin, } from "maplibre-gl";
2
+ import { Semaphore } from "../utils/semaphore";
2
3
  /** Shared GeoJSON source holding every circle drawn through the circle API. */
3
4
  const CIRCLE_SOURCE_ID = "mapvx-circles";
4
5
  /** Fill layer rendering the translucent interior of the circles. */
@@ -43,21 +44,36 @@ function deepClone(obj) {
43
44
  /**
44
45
  * Register a custom protocol for cached tiles that routes requests through the main thread.
45
46
  * This allows the service worker to intercept and cache tile requests.
47
+ *
48
+ * Wraps fetches in a {@link Semaphore} so tile CDN / WAFs are not hit with
49
+ * unbounded parallel requests (same host as the service worker cache). The
50
+ * semaphore is created once with the limit from the first map's config; later
51
+ * calls are no-ops because the protocol can only be registered once globally
52
+ * on MapLibre.
53
+ *
54
+ * @param maxConcurrentFetches - Maximum number of in-flight tile fetches.
46
55
  */
47
- function registerCachedTileProtocol() {
56
+ function registerCachedTileProtocol(maxConcurrentFetches) {
48
57
  if (cachedTileProtocolRegistered)
49
58
  return;
59
+ const semaphore = new Semaphore(maxConcurrentFetches);
50
60
  maplibregl.addProtocol("cached-tile", (params, abortController) => {
51
- // Convert cached-tile:// URL back to https://
52
61
  const url = params.url.replace("cached-tile://", "https://");
53
- return fetch(url, { signal: abortController.signal })
62
+ // Pass the abort signal to acquire() so a request cancelled while still
63
+ // queued (e.g. during rapid zoom) drops out of the FIFO queue instead of
64
+ // waiting for a slot just to bail. release() runs only inside this chain,
65
+ // i.e. only after a slot was actually granted.
66
+ return semaphore.acquire(abortController.signal).then(() => fetch(url, { signal: abortController.signal })
54
67
  .then((response) => {
55
68
  if (!response.ok) {
56
69
  throw new Error(`HTTP error! status: ${response.status}`);
57
70
  }
58
71
  return response.arrayBuffer();
59
72
  })
60
- .then((data) => ({ data }));
73
+ .then((data) => ({ data }))
74
+ .finally(() => {
75
+ semaphore.release();
76
+ }));
61
77
  });
62
78
  cachedTileProtocolRegistered = true;
63
79
  }
@@ -116,14 +132,15 @@ import { RouteController } from "../controllers/routeController";
116
132
  import { rtlLanguages } from "../domain/models/_rtl";
117
133
  import { InternalAnimationConfig, InternalAnimationDrawingConfig, } from "../domain/models/animation";
118
134
  import { Loggeable } from "../domain/models/loggeable";
119
- import { DEFAULT_TILE_CACHE_CONFIG, } from "../domain/models/mapConfig";
120
- import { circleRing, cloneCircleRecord, MAPVX_BRAND_COLOR, resolveCircleConfig, } from "../domain/models/circle";
135
+ import { DEFAULT_TILE_CACHE_CONFIG, MAPLIBRE_MAX_TILE_CACHE_HARD_CAP, } from "../domain/models/mapConfig";
136
+ import { CIRCLE_RENDER_ORDERS, circleRing, cloneCircleRecord, MAPVX_BRAND_COLOR, resolveCircleConfig, } from "../domain/models/circle";
121
137
  import { MarkerAttribute } from "../domain/models/marker";
122
138
  import { MVXRoute } from "../domain/models/route";
123
139
  import { InternalDrawRouteConfiguration, InternalGetRouteConfiguration, } from "../domain/models/routeConfiguration";
124
140
  import { Repository } from "../repository/repository";
125
141
  import { getBoundingBox } from "../utils/utils";
126
142
  import { extractStepCoordinates } from "../utils/route-utils";
143
+ import { buildInteractionOptions, shouldDisableTouchRotation } from "./mapInteractionOptions";
127
144
  /**
128
145
  * Class to interact with the map.
129
146
  * @category Map
@@ -163,8 +180,11 @@ export class InternalMapVXMap extends Loggeable {
163
180
  this.watchPositionID = undefined;
164
181
  this.onFloorChange = mapConfig.onFloorChange;
165
182
  this.onParentPlaceChange = mapConfig.onParentPlaceChange;
166
- // Merge tile cache config with defaults
167
- this.tileCacheConfig = Object.assign(Object.assign({}, DEFAULT_TILE_CACHE_CONFIG), mapConfig.tileCache);
183
+ this.tileCacheConfig = (() => {
184
+ const merged = Object.assign(Object.assign({}, DEFAULT_TILE_CACHE_CONFIG), mapConfig.tileCache);
185
+ merged.maxTiles = Math.min(merged.maxTiles, MAPLIBRE_MAX_TILE_CACHE_HARD_CAP);
186
+ return merged;
187
+ })();
168
188
  if (mapConfig.parentPlaceId != null) {
169
189
  this.initialPlaceDetailSetUp(mapConfig.parentPlaceId, mapConfig.authToken);
170
190
  }
@@ -261,28 +281,17 @@ export class InternalMapVXMap extends Loggeable {
261
281
  .catch(console.error);
262
282
  }
263
283
  onMapStyleLoaded(mapConfig, container, style) {
264
- var _a, _b, _c;
284
+ var _a, _b, _c, _d, _e;
265
285
  // Determine if service worker caching should be enabled
266
286
  const useServiceWorkerCaching = this.tileCacheConfig.enabled && this.tileCacheConfig.persistToServiceWorker;
267
- // Register cached-tile protocol only if service worker caching is enabled
268
287
  if (useServiceWorkerCaching) {
269
- registerCachedTileProtocol();
288
+ registerCachedTileProtocol(this.tileCacheConfig.maxConcurrentTileFetches);
270
289
  }
271
290
  // Transform tile URLs only if service worker caching is enabled
272
291
  const finalStyle = useServiceWorkerCaching ? this.transformStyleForCaching(style) : style;
273
- const mapOptions = {
274
- container,
275
- style: finalStyle,
276
- center: mapConfig.center,
277
- zoom: mapConfig.zoom,
278
- pitch: (_a = mapConfig.pitch) !== null && _a !== void 0 ? _a : 0,
279
- attributionControl: false,
280
- maplibreLogo: false,
281
- bearingSnap: (_b = mapConfig.bearingSnap) !== null && _b !== void 0 ? _b : 0,
282
- cancelPendingTileRequestsWhileZooming: false,
292
+ const mapOptions = Object.assign({ container, style: finalStyle, center: mapConfig.center, zoom: mapConfig.zoom, pitch: (_a = mapConfig.pitch) !== null && _a !== void 0 ? _a : 0, attributionControl: false, maplibreLogo: false, bearingSnap: (_b = mapConfig.bearingSnap) !== null && _b !== void 0 ? _b : 0, cancelPendingTileRequestsWhileZooming: true,
283
293
  // Use configured maxTiles for MapLibre's memory cache
284
- maxTileCacheSize: this.tileCacheConfig.maxTiles,
285
- };
294
+ maxTileCacheSize: this.tileCacheConfig.maxTiles }, buildInteractionOptions(mapConfig));
286
295
  if (mapConfig.maxZoom)
287
296
  mapOptions.maxZoom = mapConfig.maxZoom;
288
297
  if (mapConfig.minZoom)
@@ -292,10 +301,15 @@ export class InternalMapVXMap extends Loggeable {
292
301
  mapOptions.maxBounds = new LngLatBounds([boundingBox[0].lng, boundingBox[0].lat], [boundingBox[1].lng, boundingBox[1].lat]);
293
302
  }
294
303
  this.map = new Map(mapOptions);
304
+ // When rotation is disabled we still want pinch-to-zoom to work, so the
305
+ // two-finger rotation is turned off here instead of via the constructor.
306
+ if (shouldDisableTouchRotation(mapConfig)) {
307
+ (_d = (_c = this.map.touchZoomRotate) === null || _c === void 0 ? void 0 : _c.disableRotation) === null || _d === void 0 ? void 0 : _d.call(_c);
308
+ }
295
309
  this.map.addControl(new NavigationControl({
296
310
  showCompass: mapConfig.showCompass !== undefined ? mapConfig.showCompass : true,
297
311
  showZoom: mapConfig.showZoom !== undefined ? mapConfig.showZoom : true,
298
- }), (_c = mapConfig.navigationPosition) !== null && _c !== void 0 ? _c : "top-right");
312
+ }), (_e = mapConfig.navigationPosition) !== null && _e !== void 0 ? _e : "top-right");
299
313
  this.map.on("load", () => {
300
314
  var _a;
301
315
  this.whenStyleUpdates(style);
@@ -513,6 +527,19 @@ export class InternalMapVXMap extends Loggeable {
513
527
  }
514
528
  setLang(lang) {
515
529
  this.repository.setLang(lang);
530
+ if (rtlLanguages.includes(lang)) {
531
+ this.setRTLSupport();
532
+ }
533
+ // setLayersForLanguage reads this.map.getStyle()?.layers, which is empty
534
+ // until the style finishes loading. If setLang is called right after
535
+ // createMap (before the "load" event), apply it once the style is ready
536
+ // so the language change is not silently dropped.
537
+ if (this.map.isStyleLoaded()) {
538
+ this.setLayersForLanguage(lang);
539
+ }
540
+ else {
541
+ this.map.once("load", () => this.setLayersForLanguage(lang));
542
+ }
516
543
  }
517
544
  setParentPlace(place, updateStyle, onStyleReady) {
518
545
  this.changeParentPlaceTo(place, updateStyle, onStyleReady);
@@ -884,7 +911,14 @@ export class InternalMapVXMap extends Loggeable {
884
911
  // Always keep the default bucket alive so an empty map still renders
885
912
  // newly added circles without a layer rebuild
886
913
  ordersInUse.add("aboveBasemap");
887
- for (const order of ordersInUse) {
914
+ // Process buckets lowest-first (CIRCLE_RENDER_ORDERS is canonical):
915
+ // when two buckets resolve to the same anchor, each addLayer/moveLayer
916
+ // lands immediately before it, so a bucket processed later paints above
917
+ // the ones processed earlier. Canonical order keeps
918
+ // belowLabels < aboveBasemap < top regardless of circle insertion order.
919
+ for (const order of CIRCLE_RENDER_ORDERS) {
920
+ if (!ordersInUse.has(order))
921
+ continue;
888
922
  const ids = circleLayerIdsFor(order);
889
923
  const beforeId = this.circleBeforeIdFor(order);
890
924
  const orderFilter = ["==", ["get", "renderOrder"], order];
@@ -1064,6 +1098,49 @@ export class InternalMapVXMap extends Loggeable {
1064
1098
  this.map.setMinZoom(zoomLvl);
1065
1099
  (_a = options === null || options === void 0 ? void 0 : options.onComplete) === null || _a === void 0 ? void 0 : _a.call(options);
1066
1100
  }
1101
+ setBearing(degrees, options) {
1102
+ var _a;
1103
+ if (!Number.isFinite(degrees))
1104
+ return;
1105
+ if (options === null || options === void 0 ? void 0 : options.animate) {
1106
+ if (options.onComplete)
1107
+ void this.map.once("moveend", options.onComplete);
1108
+ this.map.rotateTo(degrees, { duration: 600 });
1109
+ return;
1110
+ }
1111
+ this.map.setBearing(degrees);
1112
+ (_a = options === null || options === void 0 ? void 0 : options.onComplete) === null || _a === void 0 ? void 0 : _a.call(options);
1113
+ }
1114
+ setRotationEnabled(enabled) {
1115
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
1116
+ if (enabled) {
1117
+ (_b = (_a = this.map.dragRotate) === null || _a === void 0 ? void 0 : _a.enable) === null || _b === void 0 ? void 0 : _b.call(_a);
1118
+ (_d = (_c = this.map.touchZoomRotate) === null || _c === void 0 ? void 0 : _c.enableRotation) === null || _d === void 0 ? void 0 : _d.call(_c);
1119
+ (_f = (_e = this.map.keyboard) === null || _e === void 0 ? void 0 : _e.enable) === null || _f === void 0 ? void 0 : _f.call(_e);
1120
+ }
1121
+ else {
1122
+ (_h = (_g = this.map.dragRotate) === null || _g === void 0 ? void 0 : _g.disable) === null || _h === void 0 ? void 0 : _h.call(_g);
1123
+ (_k = (_j = this.map.touchZoomRotate) === null || _j === void 0 ? void 0 : _j.disableRotation) === null || _k === void 0 ? void 0 : _k.call(_j);
1124
+ }
1125
+ }
1126
+ setPanEnabled(enabled) {
1127
+ var _a, _b, _c, _d;
1128
+ if (enabled) {
1129
+ (_b = (_a = this.map.dragPan) === null || _a === void 0 ? void 0 : _a.enable) === null || _b === void 0 ? void 0 : _b.call(_a);
1130
+ }
1131
+ else {
1132
+ (_d = (_c = this.map.dragPan) === null || _c === void 0 ? void 0 : _c.disable) === null || _d === void 0 ? void 0 : _d.call(_c);
1133
+ }
1134
+ }
1135
+ setScrollZoomEnabled(enabled) {
1136
+ var _a, _b, _c, _d;
1137
+ if (enabled) {
1138
+ (_b = (_a = this.map.scrollZoom) === null || _a === void 0 ? void 0 : _a.enable) === null || _b === void 0 ? void 0 : _b.call(_a);
1139
+ }
1140
+ else {
1141
+ (_d = (_c = this.map.scrollZoom) === null || _c === void 0 ? void 0 : _c.disable) === null || _d === void 0 ? void 0 : _d.call(_c);
1142
+ }
1143
+ }
1067
1144
  isInsideBounds(point) {
1068
1145
  const mapBounds = this.map.getMaxBounds();
1069
1146
  if (mapBounds != null) {
@@ -1182,7 +1259,7 @@ export class InternalMapVXMap extends Loggeable {
1182
1259
  throw new Error("Error: Failed to add route");
1183
1260
  }
1184
1261
  }
1185
- updateRouteProgress(routeId, position, behindStyle = { type: "Solid", color: "#757575" }) {
1262
+ updateRouteProgress(routeId, position, behindStyle = { type: "Solid", color: "#276EF1" }) {
1186
1263
  try {
1187
1264
  const behindConfig = new InternalDrawRouteConfiguration({
1188
1265
  routeStyle: behindStyle,
@@ -1232,13 +1309,12 @@ export class InternalMapVXMap extends Loggeable {
1232
1309
  if (pointedPlace !== undefined) {
1233
1310
  new maplibregl.Popup()
1234
1311
  .setLngLat(pointedPlace.position)
1235
- .setHTML(pointedPlace.title)
1312
+ .setText(pointedPlace.title)
1236
1313
  .addTo(this.map);
1237
1314
  }
1238
1315
  }
1239
1316
  return "";
1240
1317
  }
1241
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
1242
1318
  removePopOver(id) {
1243
1319
  throw Error("Not implemented");
1244
1320
  }