@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 +0,0 @@
1
- {"version":3,"file":"opening-hours-helper.js","sourceRoot":"","sources":["../../../src/utils/opening-hours-helper.ts"],"names":[],"mappings":"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"}
@@ -1,131 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MAPVX_DEFAULT_PRECONNECT_HOSTS = void 0;
4
- exports.injectPreconnects = injectPreconnects;
5
- /**
6
- * Hostnames that MapVX maps typically need to talk to during the first
7
- * paint: vector tiles, sprite, glyphs and indoor tile sources. Exposed so
8
- * that consumer apps can call `injectPreconnects(MAPVX_DEFAULT_PRECONNECT_HOSTS)`
9
- * without having to maintain the list themselves.
10
- *
11
- * @group Utils
12
- */
13
- exports.MAPVX_DEFAULT_PRECONNECT_HOSTS = [
14
- "https://tiles.mapvx.com",
15
- "https://api.maptiler.com",
16
- "https://indoorequals.mapvx.com",
17
- ];
18
- /**
19
- * Injects `<link rel="preconnect">` (and a `<link rel="dns-prefetch">` fallback)
20
- * tags into `document.head` for the given origins, so the browser starts the
21
- * DNS + TLS handshake before MapLibre actually requests sprite/glyph/tile
22
- * resources.
23
- *
24
- * Call this as early as possible — ideally before {@link initializeSDK} — to
25
- * maximize the savings. In real captures this shaves ~150-300 ms off the
26
- * first-paint cascade.
27
- *
28
- * Idempotent: hosts that already have a `<link rel="preconnect" crossorigin>`
29
- * are skipped. If an existing `preconnect` link is missing `crossorigin`, it
30
- * is upgraded in place (added `crossorigin="anonymous"`) — without that
31
- * attribute the warmed socket can't be reused for the CORS tile/font/sprite
32
- * fetches MapLibre performs, so leaving the existing link untouched would
33
- * silently defeat the optimization. Existing `crossorigin="use-credentials"`
34
- * is respected and never overwritten.
35
- *
36
- * @param hosts - Origin URLs (`"https://tiles.mapvx.com"`) or bare hostnames
37
- * (`"tiles.mapvx.com"`, normalized to `https://`). Invalid entries are
38
- * silently ignored.
39
- * @returns The origins where the helper made a change — either a new link was
40
- * appended, or an existing one was upgraded with `crossorigin="anonymous"`.
41
- *
42
- * @example
43
- * ```ts
44
- * import { initializeSDK, injectPreconnects, MAPVX_DEFAULT_PRECONNECT_HOSTS } from "@mapvx/web-js"
45
- *
46
- * injectPreconnects(MAPVX_DEFAULT_PRECONNECT_HOSTS)
47
- * const sdk = initializeSDK(apiKey)
48
- * ```
49
- *
50
- * @group Utils
51
- */
52
- function injectPreconnects(hosts) {
53
- if (typeof document === "undefined" || !document.head)
54
- return [];
55
- if (!Array.isArray(hosts) || hosts.length === 0)
56
- return [];
57
- const injected = [];
58
- for (const raw of hosts) {
59
- if (typeof raw !== "string" || raw.length === 0)
60
- continue;
61
- const origin = normalizeOrigin(raw);
62
- if (origin === null)
63
- continue;
64
- // Check what's already in <head>. We may need to UPGRADE an existing
65
- // preconnect — server-rendered or hand-authored hints frequently omit
66
- // `crossorigin`, and a warmed socket without it cannot be reused for
67
- // the CORS tile/font/sprite fetches that MapLibre performs. Without
68
- // this branch the optimization would silently no-op when the page
69
- // already had a partial hint.
70
- const existingPreconnect = findLinkForOrigin("preconnect", origin);
71
- let preconnectChanged = false;
72
- if (existingPreconnect) {
73
- if (!existingPreconnect.hasAttribute("crossorigin")) {
74
- existingPreconnect.crossOrigin = "anonymous";
75
- preconnectChanged = true;
76
- }
77
- // If the existing link already has any `crossorigin` value
78
- // (including `use-credentials`), respect the author's intent and
79
- // leave it alone.
80
- }
81
- else {
82
- const preconnect = document.createElement("link");
83
- preconnect.rel = "preconnect";
84
- preconnect.href = origin;
85
- preconnect.crossOrigin = "anonymous";
86
- document.head.appendChild(preconnect);
87
- preconnectChanged = true;
88
- }
89
- // dns-prefetch is a fallback for older browsers that ignore preconnect.
90
- if (!findLinkForOrigin("dns-prefetch", origin)) {
91
- const dnsPrefetch = document.createElement("link");
92
- dnsPrefetch.rel = "dns-prefetch";
93
- dnsPrefetch.href = origin;
94
- document.head.appendChild(dnsPrefetch);
95
- }
96
- if (preconnectChanged)
97
- injected.push(origin);
98
- }
99
- return injected;
100
- }
101
- /**
102
- * Returns the first `<link rel="${rel}">` in `<head>` whose resolved origin
103
- * matches `origin`, or null. We compare canonical URL origins instead of
104
- * the raw `href` attribute text — the same origin can be written as
105
- * `https://tiles.mapvx.com` or `https://tiles.mapvx.com/`, and a strict
106
- * attribute selector would miss the second form and inject a duplicate.
107
- */
108
- function findLinkForOrigin(rel, origin) {
109
- const links = document.head.querySelectorAll(`link[rel="${rel}"]`);
110
- for (let i = 0; i < links.length; i++) {
111
- const link = links[i];
112
- try {
113
- if (new URL(link.href).origin === origin)
114
- return link;
115
- }
116
- catch (_a) {
117
- // Malformed href — skip and keep scanning.
118
- }
119
- }
120
- return null;
121
- }
122
- function normalizeOrigin(raw) {
123
- try {
124
- const candidate = /^https?:\/\//i.test(raw) ? raw : `https://${raw}`;
125
- return new URL(candidate).origin;
126
- }
127
- catch (_a) {
128
- return null;
129
- }
130
- }
131
- //# sourceMappingURL=preconnect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"preconnect.js","sourceRoot":"","sources":["../../../src/utils/preconnect.ts"],"names":[],"mappings":";;;AAgDA,8CA+CC;AA/FD;;;;;;;GAOG;AACU,QAAA,8BAA8B,GAAsB;IAC/D,yBAAyB;IACzB,0BAA0B;IAC1B,gCAAgC;CACjC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,SAAgB,iBAAiB,CAAC,KAAwB;IACxD,IAAI,OAAO,QAAQ,KAAK,WAAW,IAAI,CAAC,QAAQ,CAAC,IAAI;QAAE,OAAO,EAAE,CAAA;IAChE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAA;IAE1D,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,KAAK,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;QACxB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;YAAE,SAAQ;QACzD,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,MAAM,KAAK,IAAI;YAAE,SAAQ;QAE7B,qEAAqE;QACrE,sEAAsE;QACtE,qEAAqE;QACrE,oEAAoE;QACpE,kEAAkE;QAClE,8BAA8B;QAC9B,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAA;QAClE,IAAI,iBAAiB,GAAG,KAAK,CAAA;QAE7B,IAAI,kBAAkB,EAAE,CAAC;YACvB,IAAI,CAAC,kBAAkB,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,CAAC;gBACpD,kBAAkB,CAAC,WAAW,GAAG,WAAW,CAAA;gBAC5C,iBAAiB,GAAG,IAAI,CAAA;YAC1B,CAAC;YACD,2DAA2D;YAC3D,iEAAiE;YACjE,kBAAkB;QACpB,CAAC;aAAM,CAAC;YACN,MAAM,UAAU,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;YACjD,UAAU,CAAC,GAAG,GAAG,YAAY,CAAA;YAC7B,UAAU,CAAC,IAAI,GAAG,MAAM,CAAA;YACxB,UAAU,CAAC,WAAW,GAAG,WAAW,CAAA;YACpC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAA;YACrC,iBAAiB,GAAG,IAAI,CAAA;QAC1B,CAAC;QAED,wEAAwE;QACxE,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,MAAM,CAAC,EAAE,CAAC;YAC/C,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;YAClD,WAAW,CAAC,GAAG,GAAG,cAAc,CAAA;YAChC,WAAW,CAAC,IAAI,GAAG,MAAM,CAAA;YACzB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAA;QACxC,CAAC;QAED,IAAI,iBAAiB;YAAE,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9C,CAAC;IACD,OAAO,QAAQ,CAAA;AACjB,CAAC;AAED;;;;;;GAMG;AACH,SAAS,iBAAiB,CACxB,GAAkC,EAClC,MAAc;IAEd,MAAM,KAAK,GAAG,QAAQ,CAAC,IAAI,CAAC,gBAAgB,CAAC,aAAa,GAAG,IAAI,CAAC,CAAA;IAClE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAoB,CAAA;QACxC,IAAI,CAAC;YACH,IAAI,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;gBAAE,OAAO,IAAI,CAAA;QACvD,CAAC;QAAC,WAAM,CAAC;YACP,2CAA2C;QAC7C,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,SAAS,eAAe,CAAC,GAAW;IAClC,IAAI,CAAC;QACH,MAAM,SAAS,GAAG,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,GAAG,EAAE,CAAA;QACpE,OAAO,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAA;IAClC,CAAC;IAAC,WAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC"}
@@ -1,57 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.extractStepCoordinates = extractStepCoordinates;
4
- /**
5
- * Extracts coordinate points from a route step, attempting multiple data sources
6
- * in order of preference to ensure the most complete coordinate set is returned.
7
- *
8
- * This function implements a fallback strategy to extract coordinates from different
9
- * properties of the route step. It first tries to use the start and end locations,
10
- * then attempts to use polyline overview points or detailed points, and finally falls
11
- * back to the step's direct coordinates property if no other data is available.
12
- * This approach ensures compatibility with different API response formats and data
13
- * availability scenarios.
14
- *
15
- * @example
16
- * ```typescript
17
- * const step = new MVXRouteStep(stepData);
18
- * const coordinates = extractStepCoordinates(step);
19
- * // Returns: [{ lat: 40.7128, lng: -74.0060 }, { lat: 40.7580, lng: -74.0431 }, ...]
20
- * ```
21
- *
22
- * @param {MVXRouteStep} step - The route step from which to extract coordinates
23
- * @returns {LatLng[]} Array of coordinate points. Returns step.coordinates if no other
24
- * coordinate data is found in the step's properties
25
- *
26
- * @group Utils
27
- */
28
- function extractStepCoordinates(step) {
29
- var _a, _b, _c, _d, _e, _f;
30
- const coords = [];
31
- if (((_a = step.startLocation) === null || _a === void 0 ? void 0 : _a.lat) && ((_b = step.startLocation) === null || _b === void 0 ? void 0 : _b.lng)) {
32
- coords.push({ lat: step.startLocation.lat, lng: step.startLocation.lng });
33
- }
34
- if (((_c = step.endLocation) === null || _c === void 0 ? void 0 : _c.lat) && ((_d = step.endLocation) === null || _d === void 0 ? void 0 : _d.lng)) {
35
- coords.push({ lat: step.endLocation.lat, lng: step.endLocation.lng });
36
- }
37
- const overviewPoints = (_e = step.polyline) === null || _e === void 0 ? void 0 : _e.overviewPoints;
38
- if (Array.isArray(overviewPoints) && overviewPoints.length > 0) {
39
- overviewPoints.forEach((point) => {
40
- if ((point === null || point === void 0 ? void 0 : point.lat) && (point === null || point === void 0 ? void 0 : point.lng)) {
41
- coords.push({ lat: point.lat, lng: point.lng });
42
- }
43
- });
44
- }
45
- else if (Array.isArray((_f = step.polyline) === null || _f === void 0 ? void 0 : _f.pointsLatLng) && step.polyline.pointsLatLng.length > 0) {
46
- step.polyline.pointsLatLng.forEach((point) => {
47
- if ((point === null || point === void 0 ? void 0 : point.lat) && (point === null || point === void 0 ? void 0 : point.lng)) {
48
- coords.push({ lat: point.lat, lng: point.lng });
49
- }
50
- });
51
- }
52
- if (coords.length === 0 && step.coordinates) {
53
- return step.coordinates;
54
- }
55
- return coords;
56
- }
57
- //# sourceMappingURL=route-utils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"route-utils.js","sourceRoot":"","sources":["../../../src/utils/route-utils.ts"],"names":[],"mappings":";;AA2BA,wDA+BC;AAvDD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,SAAgB,sBAAsB,CAAC,IAAkB;;IACvD,MAAM,MAAM,GAAa,EAAE,CAAA;IAE3B,IAAI,CAAA,MAAA,IAAI,CAAC,aAAa,0CAAE,GAAG,MAAI,MAAA,IAAI,CAAC,aAAa,0CAAE,GAAG,CAAA,EAAE,CAAC;QACvD,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC,CAAA;IAC3E,CAAC;IAED,IAAI,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,GAAG,MAAI,MAAA,IAAI,CAAC,WAAW,0CAAE,GAAG,CAAA,EAAE,CAAC;QACnD,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAA;IACvE,CAAC;IAED,MAAM,cAAc,GAAG,MAAA,IAAI,CAAC,QAAQ,0CAAE,cAAc,CAAA;IACpD,IAAI,KAAK,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/D,cAAc,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC/B,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,MAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAA,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAA;YACjD,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;SAAM,IAAI,KAAK,CAAC,OAAO,CAAC,MAAA,IAAI,CAAC,QAAQ,0CAAE,YAAY,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC/F,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YAC3C,IAAI,CAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,MAAI,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,GAAG,CAAA,EAAE,CAAC;gBAC7B,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAA;YACjD,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5C,OAAO,IAAI,CAAC,WAAW,CAAA;IACzB,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1,143 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Semaphore = void 0;
4
- /**
5
- * Lower bound (inclusive) for the semaphore concurrency limit.
6
- *
7
- * A value of 1 means at least one operation can run at a time, which keeps the
8
- * semaphore meaningful: zero or negative limits would deadlock every caller.
9
- */
10
- const MIN_LIMIT = 1;
11
- /**
12
- * Upper bound (inclusive) for the semaphore concurrency limit.
13
- *
14
- * 64 is high enough for any practical browser-side fan-out (network requests,
15
- * tile fetches, etc.) while still protecting downstream services from being
16
- * overwhelmed by misconfigured callers.
17
- */
18
- const MAX_LIMIT = 64;
19
- /**
20
- * Validate and normalize a candidate concurrency limit.
21
- *
22
- * @param limit - Candidate value to validate.
23
- * @returns The validated integer limit, or `null` if the value is invalid.
24
- */
25
- function normalizeLimit(limit) {
26
- if (!Number.isFinite(limit))
27
- return null;
28
- const floored = Math.floor(limit);
29
- if (floored < MIN_LIMIT || floored > MAX_LIMIT)
30
- return null;
31
- return floored;
32
- }
33
- /**
34
- * Counting semaphore that caps the number of concurrent operations.
35
- *
36
- * Useful when calling APIs, CDNs, or other shared resources where unbounded
37
- * parallelism can trigger rate limiting, WAF blocks, or excessive memory use.
38
- * Waiters are released in FIFO order as slots become free.
39
- *
40
- * @example
41
- * ```typescript
42
- * const sem = new Semaphore(4);
43
- *
44
- * async function fetchTile(url: string) {
45
- * await sem.acquire();
46
- * try {
47
- * return await fetch(url);
48
- * } finally {
49
- * sem.release();
50
- * }
51
- * }
52
- * ```
53
- *
54
- * @group Utils
55
- */
56
- class Semaphore {
57
- /**
58
- * @param limit - Maximum number of concurrent slots. Must be a finite
59
- * integer in `[1, 64]`; invalid values fall back to `1`.
60
- */
61
- constructor(limit = MIN_LIMIT) {
62
- var _a;
63
- this.waiters = [];
64
- this.slotsInUse = 0;
65
- this.slotLimit = (_a = normalizeLimit(limit)) !== null && _a !== void 0 ? _a : MIN_LIMIT;
66
- }
67
- /**
68
- * Maximum number of slots that can be acquired concurrently.
69
- */
70
- get limit() {
71
- return this.slotLimit;
72
- }
73
- /**
74
- * Number of slots currently held by callers (acquired but not released).
75
- */
76
- get inUse() {
77
- return this.slotsInUse;
78
- }
79
- /**
80
- * Number of callers currently waiting for a slot.
81
- */
82
- get waiting() {
83
- return this.waiters.length;
84
- }
85
- /**
86
- * Acquire one slot. Resolves immediately if a slot is free; otherwise waits
87
- * in FIFO order until `release()` is called.
88
- *
89
- * Every successful `acquire()` must be paired with exactly one `release()`,
90
- * typically from a `finally` block. If the promise rejects (e.g. the optional
91
- * `signal` aborts while queued) no slot was granted, so `release()` must NOT
92
- * be called.
93
- *
94
- * @param signal - Optional `AbortSignal`. If it aborts while the caller is
95
- * still queued, the waiter is removed from the queue and the promise rejects
96
- * with an `AbortError`, so cancelled work never occupies a slot.
97
- * @returns A promise that resolves once a slot has been granted.
98
- */
99
- acquire(signal) {
100
- if (signal === null || signal === void 0 ? void 0 : signal.aborted) {
101
- return Promise.reject(new DOMException("Aborted", "AbortError"));
102
- }
103
- if (this.slotsInUse < this.slotLimit) {
104
- this.slotsInUse++;
105
- return Promise.resolve();
106
- }
107
- return new Promise((resolve, reject) => {
108
- const waiter = () => {
109
- this.slotsInUse++;
110
- resolve();
111
- };
112
- this.waiters.push(waiter);
113
- if (signal) {
114
- signal.addEventListener("abort", () => {
115
- const index = this.waiters.indexOf(waiter);
116
- if (index !== -1) {
117
- this.waiters.splice(index, 1);
118
- reject(new DOMException("Aborted", "AbortError"));
119
- }
120
- }, { once: true });
121
- }
122
- });
123
- }
124
- /**
125
- * Release one slot, waking the next FIFO waiter only when a slot was actually
126
- * freed.
127
- *
128
- * Safe to call even when no slots are in use: it is a true no-op in that case,
129
- * so cleanup code in `finally` blocks is defensive against double-releases and
130
- * a stray release can never admit a waiter beyond {@link limit}.
131
- */
132
- release() {
133
- if (this.slotsInUse > 0) {
134
- this.slotsInUse--;
135
- const next = this.waiters.shift();
136
- if (next) {
137
- next();
138
- }
139
- }
140
- }
141
- }
142
- exports.Semaphore = Semaphore;
143
- //# sourceMappingURL=semaphore.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"semaphore.js","sourceRoot":"","sources":["../../../src/utils/semaphore.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,MAAM,SAAS,GAAG,CAAC,CAAA;AAEnB;;;;;;GAMG;AACH,MAAM,SAAS,GAAG,EAAE,CAAA;AAEpB;;;;;GAKG;AACH,SAAS,cAAc,CAAC,KAAa;IACnC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAA;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;IACjC,IAAI,OAAO,GAAG,SAAS,IAAI,OAAO,GAAG,SAAS;QAAE,OAAO,IAAI,CAAA;IAC3D,OAAO,OAAO,CAAA;AAChB,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAa,SAAS;IAKpB;;;OAGG;IACH,YAAY,QAAgB,SAAS;;QARpB,YAAO,GAAsB,EAAE,CAAA;QACxC,eAAU,GAAG,CAAC,CAAA;QAQpB,IAAI,CAAC,SAAS,GAAG,MAAA,cAAc,CAAC,KAAK,CAAC,mCAAI,SAAS,CAAA;IACrD,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,SAAS,CAAA;IACvB,CAAC;IAED;;OAEG;IACH,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,UAAU,CAAA;IACxB,CAAC;IAED;;OAEG;IACH,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAA;IAC5B,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,MAAoB;QAC1B,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO,EAAE,CAAC;YACpB,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAA;QAClE,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;YACrC,IAAI,CAAC,UAAU,EAAE,CAAA;YACjB,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1B,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,MAAM,GAAG,GAAS,EAAE;gBACxB,IAAI,CAAC,UAAU,EAAE,CAAA;gBACjB,OAAO,EAAE,CAAA;YACX,CAAC,CAAA;YACD,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACzB,IAAI,MAAM,EAAE,CAAC;gBACX,MAAM,CAAC,gBAAgB,CACrB,OAAO,EACP,GAAG,EAAE;oBACH,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;oBAC1C,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;wBACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;wBAC7B,MAAM,CAAC,IAAI,YAAY,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAA;oBACnD,CAAC;gBACH,CAAC,EACD,EAAE,IAAI,EAAE,IAAI,EAAE,CACf,CAAA;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;OAOG;IACH,OAAO;QACL,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,EAAE,CAAA;YACjB,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;YACjC,IAAI,IAAI,EAAE,CAAC;gBACT,IAAI,EAAE,CAAA;YACR,CAAC;QACH,CAAC;IACH,CAAC;CACF;AA/FD,8BA+FC"}
@@ -1,113 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.loadDeck = exports.loadMeshoptDecoder = exports.loadThree = void 0;
37
- exports.memoizeImport = memoizeImport;
38
- /**
39
- * Memoizes a dynamic-import chain, caching only a FULFILLED result.
40
- *
41
- * A plain `cached ??= import(...)` also memoizes a *rejection*, so one transient chunk-fetch
42
- * failure (a dropped connection, a cache-busted deploy mid-session) permanently disables the
43
- * feature for the rest of the page's life: every retry receives the same rejected promise and
44
- * fails identically. The 3D scene retries on its own — `reloadScene3DModelsForLod` reloads GLB
45
- * templates on every zoom-in past the LOD threshold — so a sticky rejection turns a blip into
46
- * models that never come back until the user reloads.
47
- *
48
- * Concurrent callers still share one in-flight import (that is the point of the cache); only the
49
- * rejected promise is evicted, and the error is re-thrown so every current caller still sees it.
50
- *
51
- * Exported only so the eviction behaviour can be tested directly — the loaders below wrap real
52
- * dynamic `import()` calls, which a unit test cannot fail on demand.
53
- *
54
- * @param load Builds the import promise. Called again on the first retry after a failure.
55
- * @returns An accessor that imports at most once per successful load.
56
- * @internal
57
- */
58
- function memoizeImport(load) {
59
- let cached;
60
- return () => {
61
- cached !== null && cached !== void 0 ? cached : (cached = load().catch((error) => {
62
- // Evict BEFORE re-throwing so the next call starts a fresh import. Safe to assign here:
63
- // a promise never settles synchronously, so `cached` is already assigned by now.
64
- cached = undefined;
65
- throw error;
66
- }));
67
- return cached;
68
- };
69
- }
70
- /**
71
- * Dynamically imports Three.js and the GLTF/DRACO/KTX2 loaders once and caches the result.
72
- * Subsequent calls return the same promise, so a single Three.js instance is shared.
73
- * A failed import is not cached — see {@link memoizeImport}.
74
- */
75
- exports.loadThree = memoizeImport(() => Promise.all([
76
- Promise.resolve().then(() => __importStar(require("three"))),
77
- Promise.resolve().then(() => __importStar(require("three/addons/loaders/GLTFLoader.js"))),
78
- Promise.resolve().then(() => __importStar(require("three/addons/loaders/DRACOLoader.js"))),
79
- Promise.resolve().then(() => __importStar(require("three/addons/loaders/KTX2Loader.js"))),
80
- ]).then(([three, gltf, draco, ktx2]) => ({
81
- THREE: three,
82
- GLTFLoader: gltf.GLTFLoader,
83
- DRACOLoader: draco.DRACOLoader,
84
- KTX2Loader: ktx2.KTX2Loader,
85
- })));
86
- /**
87
- * Dynamically imports the singleton meshopt decoder once and caches the result.
88
- *
89
- * Deliberately NOT part of {@link loadThree}'s import chain: only GLBs compressed with
90
- * `EXT_meshopt_compression` need it, so keeping it out of the eager `Promise.all` keeps the
91
- * decoder module (and its WASM instantiation) off the critical path of the first 3D frame.
92
- * It is fetched on the first meshopt buffer decode instead — see the lazy wrapper in
93
- * `loadGlb.ts`. That moves the fetch inside `parse()`, competing with hundreds of MB of GLB
94
- * downloads, so not caching a failed import (see {@link memoizeImport}) matters more here than
95
- * for the eager loaders.
96
- */
97
- exports.loadMeshoptDecoder = memoizeImport(() => Promise.resolve().then(() => __importStar(require("three/addons/libs/meshopt_decoder.module.js"))).then((meshopt) => meshopt.MeshoptDecoder));
98
- /**
99
- * Dynamically imports the deck.gl overlay and layer classes once and caches the result.
100
- * A failed import is not cached — see {@link memoizeImport}.
101
- */
102
- exports.loadDeck = memoizeImport(() => Promise.all([
103
- Promise.resolve().then(() => __importStar(require("@deck.gl/mapbox"))),
104
- Promise.resolve().then(() => __importStar(require("@deck.gl/geo-layers"))),
105
- Promise.resolve().then(() => __importStar(require("@deck.gl/layers"))),
106
- ]).then(([mapbox, geoLayers, layers]) => ({
107
- MapboxOverlay: mapbox.MapboxOverlay,
108
- MVTLayer: geoLayers.MVTLayer,
109
- IconLayer: layers.IconLayer,
110
- PathLayer: layers.PathLayer,
111
- TextLayer: layers.TextLayer,
112
- })));
113
- //# sourceMappingURL=three.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"three.js","sourceRoot":"","sources":["../../../src/utils/three.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiEA,sCAWC;AA/BD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAgB,aAAa,CAAI,IAAsB;IACrD,IAAI,MAA8B,CAAA;IAClC,OAAO,GAAG,EAAE;QACV,MAAM,aAAN,MAAM,cAAN,MAAM,IAAN,MAAM,GAAK,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACzC,wFAAwF;YACxF,iFAAiF;YACjF,MAAM,GAAG,SAAS,CAAA;YAClB,MAAM,KAAK,CAAA;QACb,CAAC,CAAC,EAAA;QACF,OAAO,MAAM,CAAA;IACf,CAAC,CAAA;AACH,CAAC;AAED;;;;GAIG;AACU,QAAA,SAAS,GAA+B,aAAa,CAAC,GAAG,EAAE,CACtE,OAAO,CAAC,GAAG,CAAC;sDACH,OAAO;sDACP,oCAAoC;sDACpC,qCAAqC;sDACrC,oCAAoC;CAC5C,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;IACvC,KAAK,EAAE,KAAK;IACZ,UAAU,EAAE,IAAI,CAAC,UAAU;IAC3B,WAAW,EAAE,KAAK,CAAC,WAAW;IAC9B,UAAU,EAAE,IAAI,CAAC,UAAU;CAC5B,CAAC,CAAC,CACJ,CAAA;AAED;;;;;;;;;;GAUG;AACU,QAAA,kBAAkB,GAAyC,aAAa,CAAC,GAAG,EAAE,CACzF,kDAAO,6CAA6C,IAAE,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,cAAc,CAAC,CAChG,CAAA;AAED;;;GAGG;AACU,QAAA,QAAQ,GAA8B,aAAa,CAAC,GAAG,EAAE,CACpE,OAAO,CAAC,GAAG,CAAC;sDACH,iBAAiB;sDACjB,qBAAqB;sDACrB,iBAAiB;CACzB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;IACxC,aAAa,EAAE,MAAM,CAAC,aAAa;IACnC,QAAQ,EAAE,SAAS,CAAC,QAAQ;IAC5B,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;IAC3B,SAAS,EAAE,MAAM,CAAC,SAAS;CAC5B,CAAC,CAAC,CACJ,CAAA"}
@@ -1,126 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.computeGlbBottomAnchor = computeGlbBottomAnchor;
4
- exports.addScene3DLights = addScene3DLights;
5
- exports.disposeMaterialsOnly = disposeMaterialsOnly;
6
- exports.disposeObject3D = disposeObject3D;
7
- /**
8
- * Pure Three.js scene helpers. They receive the resolved Three.js module (from {@link loadThree})
9
- * as their first argument instead of importing it, so they add nothing to the base bundle and can be
10
- * unit-tested by passing a real Three.js instance (Three.js core math/scene classes need no WebGL).
11
- *
12
- * @group Utils
13
- */
14
- /**
15
- * Computes the anchor point used for bottom-aligned GLB placement: XZ from the bounding-box center,
16
- * Y from the bounding-box minimum.
17
- *
18
- * @param three - The resolved Three.js module (from `loadThree()`).
19
- */
20
- function computeGlbBottomAnchor(three, root) {
21
- const box = new three.Box3().setFromObject(root);
22
- const center = box.getCenter(new three.Vector3());
23
- center.y = box.min.y;
24
- return center;
25
- }
26
- /**
27
- * Instantiates Three.js lights from declarative config and adds them to the scene.
28
- *
29
- * @param three - The resolved Three.js module (from `loadThree()`).
30
- * @returns Number of light objects added (used to keep lights when clearing meshes).
31
- */
32
- function addScene3DLights(three, scene, lights) {
33
- let count = 0;
34
- for (const light of lights) {
35
- if (light.type === "ambient") {
36
- scene.add(new three.AmbientLight(light.color, light.intensity));
37
- count++;
38
- continue;
39
- }
40
- const directional = new three.DirectionalLight(light.color, light.intensity);
41
- directional.position.set(light.position.x, light.position.y, light.position.z);
42
- scene.add(directional);
43
- count++;
44
- }
45
- return count;
46
- }
47
- /** Every material texture-slot property name across three.js's built-in material types. */
48
- const MATERIAL_TEXTURE_KEYS = [
49
- "map",
50
- "alphaMap",
51
- "aoMap",
52
- "bumpMap",
53
- "displacementMap",
54
- "emissiveMap",
55
- "envMap",
56
- "lightMap",
57
- "metalnessMap",
58
- "normalMap",
59
- "roughnessMap",
60
- "specularMap",
61
- "gradientMap",
62
- "clearcoatMap",
63
- "clearcoatNormalMap",
64
- "clearcoatRoughnessMap",
65
- "sheenColorMap",
66
- "sheenRoughnessMap",
67
- "transmissionMap",
68
- "thicknessMap",
69
- "iridescenceMap",
70
- "iridescenceThicknessMap",
71
- "anisotropyMap",
72
- ];
73
- function disposeMaterial(three, material, disposeTextures) {
74
- if (disposeTextures) {
75
- const record = material;
76
- for (const key of MATERIAL_TEXTURE_KEYS) {
77
- const value = record[key];
78
- if (value instanceof three.Texture) {
79
- value.dispose();
80
- }
81
- }
82
- }
83
- material.dispose();
84
- }
85
- /**
86
- * Disposes every mesh's material(s) under `root`, releasing each one's GPU-side program reference,
87
- * without touching geometries or textures. Use this for a group whose geometries/textures are
88
- * shared with a still-live cache (e.g. a GLB template reused by future placements via `.clone(true)`)
89
- * and only its per-placement material clones (made so each placement's opacity is independent) are
90
- * exclusively owned by the group.
91
- *
92
- * @param three - The resolved Three.js module (from `loadThree()`).
93
- */
94
- function disposeMaterialsOnly(three, root) {
95
- root.traverse((obj) => {
96
- const mesh = obj;
97
- if (!mesh.isMesh)
98
- return;
99
- const materials = Array.isArray(mesh.material) ? mesh.material : [mesh.material];
100
- for (const material of materials) {
101
- disposeMaterial(three, material, false);
102
- }
103
- });
104
- }
105
- /**
106
- * Fully disposes every mesh's geometry, material(s), and textures under `root`. Use this only for
107
- * an object that exclusively owns its GPU resources — e.g. a loaded GLB template root being evicted
108
- * from cache — never for a placement group whose geometries/textures came from a shared template
109
- * (use {@link disposeMaterialsOnly} for that instead).
110
- *
111
- * @param three - The resolved Three.js module (from `loadThree()`).
112
- */
113
- function disposeObject3D(three, root) {
114
- root.traverse((obj) => {
115
- var _a;
116
- const mesh = obj;
117
- if (!mesh.isMesh)
118
- return;
119
- (_a = mesh.geometry) === null || _a === void 0 ? void 0 : _a.dispose();
120
- const materials = Array.isArray(mesh.material) ? mesh.material : [mesh.material];
121
- for (const material of materials) {
122
- disposeMaterial(three, material, true);
123
- }
124
- });
125
- }
126
- //# sourceMappingURL=threeScene.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"threeScene.js","sourceRoot":"","sources":["../../../src/utils/threeScene.ts"],"names":[],"mappings":"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"}