@mapvx/web-js 3.6.0-dev.1 → 4.0.0-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 (180) hide show
  1. package/README.md +6 -1
  2. package/dist/cjs/index.js +2 -95
  3. package/dist/cjs/index.js.LICENSE.txt +1 -0
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/es/controllers/routeController.d.ts.map +1 -1
  6. package/dist/es/controllers/routeController.js +25 -8
  7. package/dist/es/controllers/routeController.js.map +1 -1
  8. package/dist/es/logger/sentry.js +1 -1
  9. package/dist/es/map/liveMapFitTransform.d.ts +11 -5
  10. package/dist/es/map/liveMapFitTransform.d.ts.map +1 -1
  11. package/dist/es/map/liveMapFitTransform.js +28 -19
  12. package/dist/es/map/liveMapFitTransform.js.map +1 -1
  13. package/dist/es/map/map.d.ts.map +1 -1
  14. package/dist/es/map/map.js +3 -6
  15. package/dist/es/map/map.js.map +1 -1
  16. package/dist/umd/index.js +932 -126
  17. package/dist/umd/index.js.map +1 -1
  18. package/dist/umd/styles.css +1 -1
  19. package/dist/umd/styles.css.map +1 -1
  20. package/package.json +7 -4
  21. package/dist/cjs/assets/icons.js +0 -85
  22. package/dist/cjs/assets/icons.js.map +0 -1
  23. package/dist/cjs/config/draco.js +0 -15
  24. package/dist/cjs/config/draco.js.map +0 -1
  25. package/dist/cjs/config/sdkConfig.js +0 -3
  26. package/dist/cjs/config/sdkConfig.js.map +0 -1
  27. package/dist/cjs/controllers/markerLayoutController.js +0 -359
  28. package/dist/cjs/controllers/markerLayoutController.js.map +0 -1
  29. package/dist/cjs/controllers/routeController.js +0 -1549
  30. package/dist/cjs/controllers/routeController.js.map +0 -1
  31. package/dist/cjs/domain/models/_internal.js +0 -14
  32. package/dist/cjs/domain/models/_internal.js.map +0 -1
  33. package/dist/cjs/domain/models/_rtl.js +0 -10
  34. package/dist/cjs/domain/models/_rtl.js.map +0 -1
  35. package/dist/cjs/domain/models/animation.js +0 -64
  36. package/dist/cjs/domain/models/animation.js.map +0 -1
  37. package/dist/cjs/domain/models/banner.js +0 -24
  38. package/dist/cjs/domain/models/banner.js.map +0 -1
  39. package/dist/cjs/domain/models/campaign.js +0 -73
  40. package/dist/cjs/domain/models/campaign.js.map +0 -1
  41. package/dist/cjs/domain/models/categories.js +0 -37
  42. package/dist/cjs/domain/models/categories.js.map +0 -1
  43. package/dist/cjs/domain/models/circle.js +0 -253
  44. package/dist/cjs/domain/models/circle.js.map +0 -1
  45. package/dist/cjs/domain/models/cityFilterOption.js +0 -3
  46. package/dist/cjs/domain/models/cityFilterOption.js.map +0 -1
  47. package/dist/cjs/domain/models/configuration.js +0 -3
  48. package/dist/cjs/domain/models/configuration.js.map +0 -1
  49. package/dist/cjs/domain/models/cssCustomization.js +0 -3
  50. package/dist/cjs/domain/models/cssCustomization.js.map +0 -1
  51. package/dist/cjs/domain/models/fitOptions.js +0 -3
  52. package/dist/cjs/domain/models/fitOptions.js.map +0 -1
  53. package/dist/cjs/domain/models/innerFloors.js +0 -3
  54. package/dist/cjs/domain/models/innerFloors.js.map +0 -1
  55. package/dist/cjs/domain/models/institution.js +0 -45
  56. package/dist/cjs/domain/models/institution.js.map +0 -1
  57. package/dist/cjs/domain/models/latLng.js +0 -3
  58. package/dist/cjs/domain/models/latLng.js.map +0 -1
  59. package/dist/cjs/domain/models/location.js +0 -3
  60. package/dist/cjs/domain/models/location.js.map +0 -1
  61. package/dist/cjs/domain/models/loggeable.js +0 -52
  62. package/dist/cjs/domain/models/loggeable.js.map +0 -1
  63. package/dist/cjs/domain/models/mapCamera.js +0 -3
  64. package/dist/cjs/domain/models/mapCamera.js.map +0 -1
  65. package/dist/cjs/domain/models/mapConfig.js +0 -37
  66. package/dist/cjs/domain/models/mapConfig.js.map +0 -1
  67. package/dist/cjs/domain/models/marker.js +0 -502
  68. package/dist/cjs/domain/models/marker.js.map +0 -1
  69. package/dist/cjs/domain/models/multilanguage.js +0 -17
  70. package/dist/cjs/domain/models/multilanguage.js.map +0 -1
  71. package/dist/cjs/domain/models/openingHours.js +0 -3
  72. package/dist/cjs/domain/models/openingHours.js.map +0 -1
  73. package/dist/cjs/domain/models/place.js +0 -127
  74. package/dist/cjs/domain/models/place.js.map +0 -1
  75. package/dist/cjs/domain/models/platform.js +0 -3
  76. package/dist/cjs/domain/models/platform.js.map +0 -1
  77. package/dist/cjs/domain/models/popover.js +0 -3
  78. package/dist/cjs/domain/models/popover.js.map +0 -1
  79. package/dist/cjs/domain/models/product.js +0 -3
  80. package/dist/cjs/domain/models/product.js.map +0 -1
  81. package/dist/cjs/domain/models/property.js +0 -104
  82. package/dist/cjs/domain/models/property.js.map +0 -1
  83. package/dist/cjs/domain/models/route.js +0 -166
  84. package/dist/cjs/domain/models/route.js.map +0 -1
  85. package/dist/cjs/domain/models/routeConfiguration.js +0 -82
  86. package/dist/cjs/domain/models/routeConfiguration.js.map +0 -1
  87. package/dist/cjs/domain/models/routeInstance.js +0 -30
  88. package/dist/cjs/domain/models/routeInstance.js.map +0 -1
  89. package/dist/cjs/domain/models/routeStyle.js +0 -3
  90. package/dist/cjs/domain/models/routeStyle.js.map +0 -1
  91. package/dist/cjs/domain/models/scene3D.js +0 -3
  92. package/dist/cjs/domain/models/scene3D.js.map +0 -1
  93. package/dist/cjs/domain/models/transport.js +0 -22
  94. package/dist/cjs/domain/models/transport.js.map +0 -1
  95. package/dist/cjs/domain/ports/ICache.js +0 -3
  96. package/dist/cjs/domain/ports/ICache.js.map +0 -1
  97. package/dist/cjs/domain/ports/IHttpClient.js +0 -3
  98. package/dist/cjs/domain/ports/IHttpClient.js.map +0 -1
  99. package/dist/cjs/domain/ports/ILogger.js +0 -23
  100. package/dist/cjs/domain/ports/ILogger.js.map +0 -1
  101. package/dist/cjs/domain/ports/index.js +0 -10
  102. package/dist/cjs/domain/ports/index.js.map +0 -1
  103. package/dist/cjs/infrastructure/cache/CacheManager.js +0 -258
  104. package/dist/cjs/infrastructure/cache/CacheManager.js.map +0 -1
  105. package/dist/cjs/infrastructure/cache/LRUCache.js +0 -153
  106. package/dist/cjs/infrastructure/cache/LRUCache.js.map +0 -1
  107. package/dist/cjs/infrastructure/cache/PersistentCache.js +0 -168
  108. package/dist/cjs/infrastructure/cache/PersistentCache.js.map +0 -1
  109. package/dist/cjs/infrastructure/cache/cacheConfig.js +0 -70
  110. package/dist/cjs/infrastructure/cache/cacheConfig.js.map +0 -1
  111. package/dist/cjs/infrastructure/http/FetchHttpClient.js +0 -75
  112. package/dist/cjs/infrastructure/http/FetchHttpClient.js.map +0 -1
  113. package/dist/cjs/infrastructure/logging/MVXLogger.js +0 -80
  114. package/dist/cjs/infrastructure/logging/MVXLogger.js.map +0 -1
  115. package/dist/cjs/interfaces/cache.js +0 -3
  116. package/dist/cjs/interfaces/cache.js.map +0 -1
  117. package/dist/cjs/interfaces/healthResponse.js +0 -3
  118. package/dist/cjs/interfaces/healthResponse.js.map +0 -1
  119. package/dist/cjs/interfaces/institutionResponse.js +0 -3
  120. package/dist/cjs/interfaces/institutionResponse.js.map +0 -1
  121. package/dist/cjs/interfaces/metadata.js +0 -3
  122. package/dist/cjs/interfaces/metadata.js.map +0 -1
  123. package/dist/cjs/interfaces/placeResponse.js +0 -3
  124. package/dist/cjs/interfaces/placeResponse.js.map +0 -1
  125. package/dist/cjs/interfaces/routeCacheResponse.js +0 -3
  126. package/dist/cjs/interfaces/routeCacheResponse.js.map +0 -1
  127. package/dist/cjs/interfaces/routeResponse.js +0 -3
  128. package/dist/cjs/interfaces/routeResponse.js.map +0 -1
  129. package/dist/cjs/interfaces/styleResponse.js +0 -3
  130. package/dist/cjs/interfaces/styleResponse.js.map +0 -1
  131. package/dist/cjs/logger/logger.js +0 -78
  132. package/dist/cjs/logger/logger.js.map +0 -1
  133. package/dist/cjs/logger/sentry.js +0 -81
  134. package/dist/cjs/logger/sentry.js.map +0 -1
  135. package/dist/cjs/map/fitCamera.js +0 -124
  136. package/dist/cjs/map/fitCamera.js.map +0 -1
  137. package/dist/cjs/map/liveMapFitTransform.js +0 -180
  138. package/dist/cjs/map/liveMapFitTransform.js.map +0 -1
  139. package/dist/cjs/map/map.js +0 -2766
  140. package/dist/cjs/map/map.js.map +0 -1
  141. package/dist/cjs/map/mapInteractionOptions.js +0 -73
  142. package/dist/cjs/map/mapInteractionOptions.js.map +0 -1
  143. package/dist/cjs/map/scene3DController.js +0 -849
  144. package/dist/cjs/map/scene3DController.js.map +0 -1
  145. package/dist/cjs/repository/repository.js +0 -694
  146. package/dist/cjs/repository/repository.js.map +0 -1
  147. package/dist/cjs/repository/requester.js +0 -771
  148. package/dist/cjs/repository/requester.js.map +0 -1
  149. package/dist/cjs/sdk.js +0 -438
  150. package/dist/cjs/sdk.js.map +0 -1
  151. package/dist/cjs/utils/3d.js +0 -245
  152. package/dist/cjs/utils/3d.js.map +0 -1
  153. package/dist/cjs/utils/deckLayers.js +0 -153
  154. package/dist/cjs/utils/deckLayers.js.map +0 -1
  155. package/dist/cjs/utils/error.js +0 -19
  156. package/dist/cjs/utils/error.js.map +0 -1
  157. package/dist/cjs/utils/images.js +0 -25
  158. package/dist/cjs/utils/images.js.map +0 -1
  159. package/dist/cjs/utils/loadGlb.js +0 -190
  160. package/dist/cjs/utils/loadGlb.js.map +0 -1
  161. package/dist/cjs/utils/mapvxHostname.js +0 -21
  162. package/dist/cjs/utils/mapvxHostname.js.map +0 -1
  163. package/dist/cjs/utils/nav-functions.js +0 -150
  164. package/dist/cjs/utils/nav-functions.js.map +0 -1
  165. package/dist/cjs/utils/opening-hours-helper.js +0 -914
  166. package/dist/cjs/utils/opening-hours-helper.js.map +0 -1
  167. package/dist/cjs/utils/preconnect.js +0 -131
  168. package/dist/cjs/utils/preconnect.js.map +0 -1
  169. package/dist/cjs/utils/route-utils.js +0 -57
  170. package/dist/cjs/utils/route-utils.js.map +0 -1
  171. package/dist/cjs/utils/semaphore.js +0 -143
  172. package/dist/cjs/utils/semaphore.js.map +0 -1
  173. package/dist/cjs/utils/three.js +0 -113
  174. package/dist/cjs/utils/three.js.map +0 -1
  175. package/dist/cjs/utils/threeScene.js +0 -126
  176. package/dist/cjs/utils/threeScene.js.map +0 -1
  177. package/dist/cjs/utils/update-css.js +0 -76
  178. package/dist/cjs/utils/update-css.js.map +0 -1
  179. package/dist/cjs/utils/utils.js +0 -104
  180. package/dist/cjs/utils/utils.js.map +0 -1
@@ -1,180 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LiveMapFitTransform = void 0;
4
- /**
5
- * Screen-space tolerance, in pixels, for the horizon round-trip test.
6
- *
7
- * `project` and `unproject` are not exact inverses — they run through a 4x4 matrix and its
8
- * inverse, so a well-behaved point still drifts by a fraction of a pixel. Half a pixel is far
9
- * below that drift's ceiling and far above the millions-of-pixels divergence a point behind the
10
- * horizon produces, so the threshold is not sensitive to its exact value.
11
- */
12
- const SURFACE_ROUND_TRIP_EPSILON_PX = 0.5;
13
- /**
14
- * A {@link FitTransform} backed by a live MapLibre map and its public API.
15
- *
16
- * ## Why this exists
17
- *
18
- * {@link refineCameraForPitch} needs to project points through MapLibre's real perspective
19
- * projection for camera states the map is not actually in — it tries a candidate camera, measures
20
- * where the geometry lands, adjusts, and repeats. Until MapLibre v6 that was done on
21
- * `map.transform.clone()`, a detached copy of the internal transform.
22
- *
23
- * v6 removed `map.transform` and exposes no replacement: there is no exported `Camera`,
24
- * `Transform` or `MercatorTransform`, and the migration guide says only "use `Map`'s public API
25
- * instead". So the simulation moves onto the map itself.
26
- *
27
- * ## How it stays invisible
28
- *
29
- * The map is genuinely moved, but never painted mid-simulation: MapLibre renders on
30
- * `requestAnimationFrame`, and every mutation here happens inside one synchronous block that ends
31
- * with {@link restore}. No intermediate frame exists to be seen.
32
- *
33
- * Camera writes are also batched. Setters only record intent; the map is moved at most once per
34
- * refinement iteration, lazily, the first time a projection actually needs the new camera.
35
- *
36
- * ## What it costs
37
- *
38
- * `jumpTo` fires camera events, so listeners observe movement that no user caused. At the only
39
- * call site this is bounded — the refinement is immediately followed by a real `easeTo`, so the
40
- * map was going to move regardless, and the `moveend` handler that reports completion is attached
41
- * *after* refinement and so cannot see the simulation's events.
42
- *
43
- * @example
44
- * ```typescript
45
- * const transform = new LiveMapFitTransform(map)
46
- * try {
47
- * camera = refineCameraForPitch(transform, coordinates, camera, params)
48
- * } finally {
49
- * transform.restore()
50
- * }
51
- * ```
52
- *
53
- * @group Map
54
- */
55
- class LiveMapFitTransform {
56
- /**
57
- * Capture the map's current camera so it can be restored, and seed the simulation with it.
58
- *
59
- * @param map The live map to simulate on.
60
- */
61
- constructor(map) {
62
- var _a, _b, _c, _d;
63
- /** Whether {@link pending} has diverged from what the map is currently showing. */
64
- this.dirty = false;
65
- /**
66
- * Whether the map was ever actually moved.
67
- *
68
- * Tracked separately from {@link dirty}, which {@link sync} clears the moment it flushes: keying
69
- * {@link restore} off `dirty` alone would make it a no-op right after a flush and strand the map
70
- * on a candidate camera.
71
- */
72
- this.moved = false;
73
- this.setCenter = (center) => {
74
- this.pending.center = center;
75
- this.dirty = true;
76
- };
77
- this.setZoom = (zoom) => {
78
- this.pending.zoom = zoom;
79
- this.dirty = true;
80
- };
81
- this.setBearing = (bearing) => {
82
- this.pending.bearing = bearing;
83
- this.dirty = true;
84
- };
85
- this.setPitch = (pitch) => {
86
- this.pending.pitch = pitch;
87
- this.dirty = true;
88
- };
89
- this.setPadding = (padding) => {
90
- this.pending.padding = padding;
91
- this.dirty = true;
92
- };
93
- this.locationToScreenPoint = (lnglat) => {
94
- this.sync();
95
- return this.map.project(lnglat);
96
- };
97
- this.screenPointToLocation = (p) => {
98
- this.sync();
99
- return this.map.unproject(p);
100
- };
101
- /**
102
- * Whether a projected point lies on the visible map surface rather than beyond the horizon.
103
- *
104
- * MapLibre exposes no public horizon test, so this uses a round-trip: unprojecting a screen
105
- * point casts a ray onto the map plane, and re-projecting that location lands back where it
106
- * started only if the ray actually met the plane in front of the camera. Past the horizon the
107
- * ray diverges and the round-trip misses by an enormous margin.
108
- *
109
- * @param p Screen point, as returned by {@link locationToScreenPoint}.
110
- * @returns `true` when the point is on the map surface.
111
- */
112
- this.isPointOnMapSurface = (p) => {
113
- this.sync();
114
- const roundTripped = this.map.project(this.map.unproject(p));
115
- return (Number.isFinite(roundTripped.x) &&
116
- Number.isFinite(roundTripped.y) &&
117
- Math.abs(roundTripped.x - p.x) < SURFACE_ROUND_TRIP_EPSILON_PX &&
118
- Math.abs(roundTripped.y - p.y) < SURFACE_ROUND_TRIP_EPSILON_PX);
119
- };
120
- /**
121
- * Put the camera back exactly as it was when this instance was constructed.
122
- *
123
- * Safe to call more than once, and safe to call when nothing was ever changed. Always call it
124
- * from a `finally` block so a throw mid-refinement cannot strand the map on a candidate camera.
125
- */
126
- this.restore = () => {
127
- if (!this.moved) {
128
- return;
129
- }
130
- this.map.jumpTo({
131
- center: this.snapshot.center,
132
- zoom: this.snapshot.zoom,
133
- bearing: this.snapshot.bearing,
134
- pitch: this.snapshot.pitch,
135
- padding: this.snapshot.padding,
136
- });
137
- this.pending = Object.assign({}, this.snapshot);
138
- this.dirty = false;
139
- this.moved = false;
140
- };
141
- this.map = map;
142
- const padding = map.getPadding();
143
- this.snapshot = {
144
- center: map.getCenter(),
145
- zoom: map.getZoom(),
146
- bearing: map.getBearing(),
147
- pitch: map.getPitch(),
148
- padding: {
149
- top: (_a = padding.top) !== null && _a !== void 0 ? _a : 0,
150
- bottom: (_b = padding.bottom) !== null && _b !== void 0 ? _b : 0,
151
- left: (_c = padding.left) !== null && _c !== void 0 ? _c : 0,
152
- right: (_d = padding.right) !== null && _d !== void 0 ? _d : 0,
153
- },
154
- };
155
- this.pending = Object.assign({}, this.snapshot);
156
- }
157
- get center() {
158
- return this.pending.center;
159
- }
160
- get zoom() {
161
- return this.pending.zoom;
162
- }
163
- /** Flush {@link pending} onto the map, but only when a projection actually needs it. */
164
- sync() {
165
- if (!this.dirty) {
166
- return;
167
- }
168
- this.map.jumpTo({
169
- center: this.pending.center,
170
- zoom: this.pending.zoom,
171
- bearing: this.pending.bearing,
172
- pitch: this.pending.pitch,
173
- padding: this.pending.padding,
174
- });
175
- this.dirty = false;
176
- this.moved = true;
177
- }
178
- }
179
- exports.LiveMapFitTransform = LiveMapFitTransform;
180
- //# sourceMappingURL=liveMapFitTransform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"liveMapFitTransform.js","sourceRoot":"","sources":["../../../src/map/liveMapFitTransform.ts"],"names":[],"mappings":"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"}