@expofp/floorplan 3.11.11 → 3.12.0

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 (317) hide show
  1. package/dist/browser/{Button-DmRjgZlq.js → Button-C5CmZ0so.js} +6 -6
  2. package/dist/browser/CookieConsent-kl_B6sH5.js +38 -0
  3. package/dist/browser/{Debug-aXNyyjt9.js → Debug-DymHiO2Z.js} +14 -14
  4. package/dist/browser/{Demo-Br_48fiP.js → Demo-5tRIgVJF.js} +14 -14
  5. package/dist/browser/{Free-CPqp0AlV.js → Free-hYQaAEbK.js} +16 -16
  6. package/dist/browser/{Gallery-DybTjssU.js → Gallery-D10tiZuW.js} +24 -24
  7. package/dist/browser/{GpsLoader-4QcLlh63.js → GpsLoader-CNkUVJdS.js} +51 -50
  8. package/dist/browser/{KioskStore-CwHiYm_-.js → KioskStore-2WAOxGM0.js} +31 -31
  9. package/dist/browser/{MaplibreAdapter-Cts8OaYm.js → MaplibreAdapter-B_tNIXx4.js} +2360 -2331
  10. package/dist/browser/{ModalContainer-BG7y_r6K.js → ModalContainer-CckyeoUG.js} +13 -13
  11. package/dist/browser/{PermissionNotice-DwlyTCP5.js → PermissionNotice-qetBrmIY.js} +7 -7
  12. package/dist/browser/{SetKioskMode-CvWZVqNw.js → SetKioskMode-BOjaqczc.js} +9 -9
  13. package/dist/browser/ShowKiosk-CcQHeM8K.js +33 -0
  14. package/dist/browser/{TouchHand-RuKsL9Wb.js → TouchHand-DKpxmOwz.js} +5 -5
  15. package/dist/browser/{ViewerMenuPanel-Dhd7sWsi.js → ViewerMenuPanel-HULfvF54.js} +25 -25
  16. package/dist/browser/{add-debug-secret-listener-BRMVj2bX.js → add-debug-secret-listener-BTGIVZFY.js} +1 -1
  17. package/dist/browser/{boolean-editor-DpmP-U1q.js → boolean-editor-oT7I3D0U.js} +10 -10
  18. package/dist/browser/{bootIntercom-C1k788Mx.js → bootIntercom-YnsJPGCs.js} +3 -3
  19. package/dist/browser/{booth-by-xy-CP-xbS2r.js → booth-by-xy-DTknn14w.js} +292 -295
  20. package/dist/browser/bundle.json +78 -63
  21. package/dist/browser/{classnames-BkI7JKtT.js → classnames-VfuHc9uB.js} +2 -2
  22. package/dist/browser/{client-C3mnANrs.js → client-Bevofhdz.js} +5 -5
  23. package/dist/browser/{components-Cg-q6o6G.js → components-COUCtdev.js} +1369 -1316
  24. package/dist/browser/{debug-overlay-BtQ-2fHJ.js → debug-overlay-BLN24Eyb.js} +415 -415
  25. package/dist/browser/{debug-ui-CjzERnaO.js → debug-ui-BT7Ddvoj.js} +7 -7
  26. package/dist/browser/{dist-Bn99_f_N.js → dist-CWBtHMZR.js} +6 -6
  27. package/dist/browser/{dist-Bn-20xtu.js → dist-CtKSG8GG.js} +4 -4
  28. package/dist/browser/{dist-DO20gNXa.js → dist-saTnlhyc.js} +7 -7
  29. package/dist/browser/{browser-BO13Zt0K.js → efp-debug-init-CYoM0s-a.js} +61 -14
  30. package/dist/browser/enum-editor-vF4eKelT.js +34 -0
  31. package/dist/browser/{es5-Dvav8ihy.js → es5-COzmRHZr.js} +2 -2
  32. package/dist/browser/{event-not-found-CC0X5cEh.js → event-not-found-BZkFh-P9.js} +1 -1
  33. package/dist/browser/{exports-D1Nac_lG.js → exports-BsqJX0o4.js} +1 -1
  34. package/dist/browser/{favicon-Bid1H1Jx.js → favicon-BBgsGFil.js} +1 -1
  35. package/dist/browser/{fetch-retry.umd-ETXiLKL-.js → fetch-retry.umd-BFTNSvNa.js} +2 -2
  36. package/dist/browser/{flex-B6lY7ZeN.js → flex-DnOM12q-.js} +6 -6
  37. package/dist/browser/{floorplan.loader-g70WUpYB.js → floorplan.loader-DuVsbJsr.js} +893 -901
  38. package/dist/browser/floorplan.ready-B2SvQNh9.js +1326 -0
  39. package/dist/browser/{fuse-BlXhXkUq.js → fuse-Ddn6vCOL.js} +2 -2
  40. package/dist/browser/i18n-D9dsV3GV.js +8659 -0
  41. package/dist/browser/index.js +49 -117
  42. package/dist/browser/{index.module-X_SYTiEf.js → index.module-CFTe1PiT.js} +23 -23
  43. package/dist/browser/integrateKiosk-vlZ9-8EP.js +28 -0
  44. package/dist/browser/{is-webview-zoAn2Bb4.js → is-webview-SfodrdWn.js} +1 -1
  45. package/dist/browser/{jsx-runtime-uErsjC2N.js → jsx-runtime-DEIf9CUU.js} +2 -2
  46. package/dist/browser/{lib-HG4Gm1_q.js → lib-CCkkeprZ.js} +5 -5
  47. package/dist/browser/loadImage-C356B0zk.js +58 -0
  48. package/dist/browser/locales/ru.json +1 -1
  49. package/dist/browser/{logDeviceInfo-DHyhFPeb.js → logDeviceInfo-UnfHYhqR.js} +9 -9
  50. package/dist/browser/{main-CTeBxXij.js → main-JnTe8DvY.js} +1 -1
  51. package/dist/browser/mobx-DPek3UBx.js +24 -0
  52. package/dist/browser/optional-boolean-editor-HEZXOpAy.js +20 -0
  53. package/dist/browser/optional-enum-editor-DpN8qtqv.js +34 -0
  54. package/dist/browser/optional-string-editor-iR5VHFAR.js +30 -0
  55. package/dist/browser/{particles.min-aU8uhhyJ.js → particles.min-BWlVGdrr.js} +2 -2
  56. package/dist/browser/{prop-types-90IFj1US.js → prop-types-DA-Iew4C.js} +2 -2
  57. package/dist/browser/{react-Cr4w3-kF.js → react-C02q0n7M.js} +2 -2
  58. package/dist/browser/{react-dom-BqelOkAi.js → react-dom-BV1hX9nO.js} +4 -4
  59. package/dist/browser/reset-all-settings-BQgeIRam.js +190 -0
  60. package/dist/browser/{rolldown-runtime-CMis-gOy.js → rolldown-runtime-DYSU24gn.js} +1 -1
  61. package/dist/browser/{enum-editor-CDtermvp.js → select-D0S5iMvJ.js} +261 -283
  62. package/dist/browser/{settings-BGmwy5RM.js → settings-Dw78gtQ_.js} +3 -3
  63. package/dist/browser/{settings-item-CDNsKf0A.js → settings-item-BSR8Iz1R.js} +7 -7
  64. package/dist/browser/{store-CcwBnHB2.js → store-DxRBdgZM.js} +7719 -7991
  65. package/dist/browser/string-editor-BwtRnquZ.js +30 -0
  66. package/dist/browser/text-field-D5x33kIn.js +88 -0
  67. package/dist/browser/{theme-C1rg17tG.js → theme-uaffdJE1.js} +9 -9
  68. package/dist/browser/ui-jO3fquPn.js +43 -0
  69. package/dist/browser/{useRenderTarget-gmu3Wzj0.js → useRenderTarget-NdsPPF5u.js} +5 -5
  70. package/dist/esm/components/Booth/Booth.js +1 -1
  71. package/dist/esm/components/EntityListRow.js +1 -1
  72. package/dist/esm/components/Exhibitor.js +1 -1
  73. package/dist/esm/components/Kiosk/ShowKiosk.js +1 -1
  74. package/dist/esm/components/LanguageRowContainer.d.ts +1 -0
  75. package/dist/esm/components/Layout.d.ts +2 -1
  76. package/dist/esm/components/Layout.js +1 -1
  77. package/dist/esm/components/LogoOverlay.js +1 -1
  78. package/dist/esm/components/Map/Map.js +1 -1
  79. package/dist/esm/components/Map/drawing/config/config-bg.d.ts +1 -1
  80. package/dist/esm/components/Map/drawing/config/config-booth-badge.js +1 -1
  81. package/dist/esm/components/Map/drawing/config/config-booth-bg.d.ts +1 -1
  82. package/dist/esm/components/Map/drawing/config/config-booth-bg.js +1 -1
  83. package/dist/esm/components/Map/drawing/config/config-load-layer.js +1 -1
  84. package/dist/esm/components/Map/drawing/config/loadBoothsImages.js +1 -1
  85. package/dist/esm/components/Maplibre/MaplibreAdapter.js +1 -1
  86. package/dist/esm/components/Maplibre/MaplibreWrapper.js +1 -1
  87. package/dist/esm/components/Maplibre/utils/resolve-map-style.d.ts +15 -0
  88. package/dist/esm/components/Maplibre/utils/resolve-map-style.js +1 -0
  89. package/dist/esm/components/Menu.d.ts +3 -2
  90. package/dist/esm/components/Menu.js +1 -1
  91. package/dist/esm/components/OverlayContainer.d.ts +2 -1
  92. package/dist/esm/components/OverlayContainer.js +1 -1
  93. package/dist/esm/components/Ws.js +1 -1
  94. package/dist/esm/constants.d.ts +7 -13
  95. package/dist/esm/constants.js +1 -1
  96. package/dist/esm/data/fp-payloads.d.ts +27 -0
  97. package/dist/esm/data/fp-payloads.js +1 -0
  98. package/dist/esm/data/fpGeo.js +1 -1
  99. package/dist/esm/data/index.d.ts +8 -2
  100. package/dist/esm/data/index.js +1 -1
  101. package/dist/esm/data/svg.d.ts +4 -1
  102. package/dist/esm/data/svg.js +1 -1
  103. package/dist/esm/floorplan.loader.d.ts +13 -4
  104. package/dist/esm/floorplan.loader.js +1 -1
  105. package/dist/esm/floorplan.ready.d.ts +8 -0
  106. package/dist/esm/floorplan.ready.js +1 -1
  107. package/dist/esm/index.d.ts +0 -1
  108. package/dist/esm/index.js +1 -1
  109. package/dist/esm/intercom/shouldLoad.d.ts +2 -2
  110. package/dist/esm/intercom/shouldLoad.js +1 -1
  111. package/dist/esm/load-dev.d.ts +44 -0
  112. package/dist/esm/load-dev.js +1 -0
  113. package/dist/esm/load.d.ts +3 -3
  114. package/dist/esm/load.js +3 -3
  115. package/dist/esm/renderer/engine-core/fonts.js +1 -1
  116. package/dist/esm/services/URLFilterManager.d.ts +15 -0
  117. package/dist/esm/services/URLFilterManager.js +1 -1
  118. package/dist/esm/services/multi-slug.d.ts +20 -0
  119. package/dist/esm/services/multi-slug.js +1 -0
  120. package/dist/esm/services/url-dispatch.d.ts +24 -0
  121. package/dist/esm/services/url-dispatch.js +1 -0
  122. package/dist/esm/services/url-sync.d.ts +36 -0
  123. package/dist/esm/services/url-sync.js +1 -0
  124. package/dist/esm/store/BoothStore.d.ts +2 -1
  125. package/dist/esm/store/ExhibitorStore.d.ts +3 -2
  126. package/dist/esm/store/ExhibitorStore.js +1 -1
  127. package/dist/esm/store/LayerStore.js +1 -1
  128. package/dist/esm/store/MaplibreStore.js +1 -1
  129. package/dist/esm/store/PoiTypeStore.d.ts +1 -1
  130. package/dist/esm/store/SearchStore.js +1 -1
  131. package/dist/esm/store/UIState.d.ts +1 -5
  132. package/dist/esm/store/UIState.js +1 -1
  133. package/dist/esm/store/init/init-bookmarks.d.ts +2 -0
  134. package/dist/esm/store/init/init-booths.js +1 -1
  135. package/dist/esm/store/init/init-categories.js +1 -1
  136. package/dist/esm/store/init/init-events.js +1 -1
  137. package/dist/esm/store/init/init-exhibitors.js +1 -1
  138. package/dist/esm/store/init/init-layers.js +1 -1
  139. package/dist/esm/store/types.d.ts +2 -1
  140. package/dist/esm/tools/event-not-found.d.ts +4 -3
  141. package/dist/esm/tools/gtag.d.ts +3 -2
  142. package/dist/esm/tools/gtag.js +1 -1
  143. package/dist/esm/tools/handleDebugMode.d.ts +17 -0
  144. package/dist/esm/tools/handleDebugMode.js +1 -1
  145. package/dist/esm/tools/loaders.d.ts +0 -2
  146. package/dist/esm/tools/loaders.js +1 -1
  147. package/dist/esm/tools/rebookingUrl.js +1 -1
  148. package/dist/esm/tools/reset.js +1 -1
  149. package/dist/esm/tools/settings.js +1 -1
  150. package/dist/esm/tools/track-event.js +1 -1
  151. package/dist/esm/types/drawing.types.d.ts +18 -0
  152. package/dist/esm/types.d.ts +52 -38
  153. package/dist/esm/utils/areLayersEnabled.js +1 -1
  154. package/dist/esm/utils/camera-map-settings.d.ts +20 -0
  155. package/dist/esm/utils/camera-map-settings.js +1 -0
  156. package/dist/esm/utils/customCommands.js +1 -1
  157. package/dist/esm/utils/getLogoUrl.d.ts +8 -1
  158. package/dist/esm/utils/getLogoUrl.js +1 -1
  159. package/dist/esm/utils/heatmap-enabled.d.ts +13 -0
  160. package/dist/esm/utils/heatmap-enabled.js +1 -0
  161. package/dist/esm/utils/i18n.js +1 -1
  162. package/dist/esm/utils/imageloader.js +1 -1
  163. package/dist/esm/utils/is-debug.d.ts +0 -8
  164. package/dist/esm/utils/is-debug.js +1 -1
  165. package/dist/esm/utils/legacy-storage-keys.d.ts +16 -0
  166. package/dist/esm/utils/legacy-storage-keys.js +1 -0
  167. package/dist/esm/utils/loadCustomCss.d.ts +2 -2
  168. package/dist/esm/utils/loadCustomCss.js +1 -1
  169. package/dist/esm/utils/mapEntity.d.ts +1 -0
  170. package/dist/esm/utils/preview-exhibitor.d.ts +1 -1
  171. package/dist/esm/wayfinding/adapters/arbitraryPoint.d.ts +1 -1
  172. package/dist/esm/wayfinding/adapters/arbitraryPoint.js +1 -1
  173. package/dist/esm/wayfinding/adapters/boothToEndpoint.d.ts +4 -4
  174. package/dist/esm/wayfinding/adapters/canvasIconProvider.d.ts +1 -1
  175. package/dist/esm/wayfinding/adapters/floorContext.d.ts +1 -1
  176. package/dist/esm/wayfinding/adapters/graphDataSource.d.ts +2 -2
  177. package/dist/esm/wayfinding/adapters/graphDataSource.js +1 -1
  178. package/dist/esm/wayfinding/adapters/positionInput.d.ts +8 -7
  179. package/dist/esm/wayfinding/adapters/positionInput.js +1 -1
  180. package/dist/esm/wayfinding/bindMobxReactions.d.ts +10 -23
  181. package/dist/esm/wayfinding/bindMobxReactions.js +1 -1
  182. package/dist/esm/wayfinding/createWayfinding.d.ts +1 -1
  183. package/dist/esm/wayfinding/createWayfinding.js +1 -1
  184. package/dist/esm/wayfinding/handlers/kioskHandler.d.ts +3 -3
  185. package/dist/esm/wayfinding/handlers/kioskHandler.js +1 -1
  186. package/dist/esm/wayfinding/handlers/yahHandler.d.ts +3 -4
  187. package/dist/esm/wayfinding/handlers/yahHandler.js +1 -1
  188. package/dist/esm/wayfinding/index.d.ts +4 -7
  189. package/dist/esm/wayfinding/index.js +1 -1
  190. package/dist/esm/wayfinding/storePorts.d.ts +60 -0
  191. package/package.json +9 -5
  192. package/dist/browser/CookieConsent-BJLQ1IVh.js +0 -38
  193. package/dist/browser/ShowKiosk-B60doTCj.js +0 -28
  194. package/dist/browser/efp-debug-init-Dif87fzy.js +0 -42
  195. package/dist/browser/floorplan.ready-CZQeXSCk.js +0 -1406
  196. package/dist/browser/i18n-CU-BJOBJ.js +0 -3942
  197. package/dist/browser/loadImage-vQZ4dq8v.js +0 -121
  198. package/dist/browser/mobx-Cnw3_TUT.js +0 -24
  199. package/dist/browser/reset-all-settings-O_33LwUw.js +0 -141
  200. package/dist/browser/string-editor-01VxR0gn.js +0 -108
  201. package/dist/browser/ui-gZWduhVn.js +0 -43
  202. package/dist/esm/_NEW_types.d.ts +0 -6
  203. package/dist/esm/_NEW_types.js +0 -1
  204. package/dist/esm/_misc_to_move/manifest.d.ts +0 -14
  205. package/dist/esm/_misc_to_move/ref.d.ts +0 -6
  206. package/dist/esm/data/Flags.d.ts +0 -23
  207. package/dist/esm/data/Flags.js +0 -1
  208. package/dist/esm/data/validate-data.d.ts +0 -3
  209. package/dist/esm/data/validate-data.js +0 -1
  210. package/dist/esm/services/routing.d.ts +0 -7
  211. package/dist/esm/services/routing.js +0 -1
  212. package/dist/esm/utils/mergeExhibitors.d.ts +0 -3
  213. package/dist/esm/utils/mergeExhibitors.js +0 -1
  214. package/dist/esm/wayfinding/core/__tests__/helpers.d.ts +0 -16
  215. package/dist/esm/wayfinding/core/__tests__/helpers.js +0 -1
  216. package/dist/esm/wayfinding/core/createWayfindingEngine.d.ts +0 -16
  217. package/dist/esm/wayfinding/core/createWayfindingEngine.js +0 -1
  218. package/dist/esm/wayfinding/core/geometry/pointInPolygon.d.ts +0 -11
  219. package/dist/esm/wayfinding/core/geometry/pointInPolygon.js +0 -1
  220. package/dist/esm/wayfinding/core/geometry/projectPointOnSegment.d.ts +0 -24
  221. package/dist/esm/wayfinding/core/geometry/projectPointOnSegment.js +0 -1
  222. package/dist/esm/wayfinding/core/graph/buildGraph.d.ts +0 -3
  223. package/dist/esm/wayfinding/core/graph/buildGraph.js +0 -1
  224. package/dist/esm/wayfinding/core/graph/buildNGraph.d.ts +0 -9
  225. package/dist/esm/wayfinding/core/graph/buildNGraph.js +0 -1
  226. package/dist/esm/wayfinding/core/graph/constants.d.ts +0 -17
  227. package/dist/esm/wayfinding/core/graph/constants.js +0 -1
  228. package/dist/esm/wayfinding/core/graph/findShortestPath.d.ts +0 -14
  229. package/dist/esm/wayfinding/core/graph/findShortestPath.js +0 -1
  230. package/dist/esm/wayfinding/core/graph/graphCache.d.ts +0 -7
  231. package/dist/esm/wayfinding/core/graph/graphCache.js +0 -1
  232. package/dist/esm/wayfinding/core/graph/graphHelpers.d.ts +0 -8
  233. package/dist/esm/wayfinding/core/graph/graphHelpers.js +0 -1
  234. package/dist/esm/wayfinding/core/graph/linkCost.d.ts +0 -4
  235. package/dist/esm/wayfinding/core/graph/linkCost.js +0 -1
  236. package/dist/esm/wayfinding/core/graph/pathfinder/aStarPathFinder.d.ts +0 -3
  237. package/dist/esm/wayfinding/core/graph/pathfinder/aStarPathFinder.js +0 -1
  238. package/dist/esm/wayfinding/core/graph/pathfinder/parseNodeId.d.ts +0 -9
  239. package/dist/esm/wayfinding/core/graph/pathfinder/parseNodeId.js +0 -1
  240. package/dist/esm/wayfinding/core/index.d.ts +0 -17
  241. package/dist/esm/wayfinding/core/index.js +0 -1
  242. package/dist/esm/wayfinding/core/position/distanceToRoute.d.ts +0 -3
  243. package/dist/esm/wayfinding/core/position/distanceToRoute.js +0 -1
  244. package/dist/esm/wayfinding/core/position/gpsThreshold.d.ts +0 -31
  245. package/dist/esm/wayfinding/core/position/gpsThreshold.js +0 -1
  246. package/dist/esm/wayfinding/core/position/rerouteController.d.ts +0 -10
  247. package/dist/esm/wayfinding/core/position/rerouteController.js +0 -1
  248. package/dist/esm/wayfinding/core/position/snapToRoute.d.ts +0 -4
  249. package/dist/esm/wayfinding/core/position/snapToRoute.js +0 -1
  250. package/dist/esm/wayfinding/core/position/splitRouteByPoint.d.ts +0 -6
  251. package/dist/esm/wayfinding/core/position/splitRouteByPoint.js +0 -1
  252. package/dist/esm/wayfinding/core/rendering/computeTrailPoints.d.ts +0 -19
  253. package/dist/esm/wayfinding/core/rendering/computeTrailPoints.js +0 -1
  254. package/dist/esm/wayfinding/core/rendering/computeTransitionPoints.d.ts +0 -31
  255. package/dist/esm/wayfinding/core/rendering/computeTransitionPoints.js +0 -1
  256. package/dist/esm/wayfinding/core/rendering/getVisibleRouteLines.d.ts +0 -11
  257. package/dist/esm/wayfinding/core/rendering/getVisibleRouteLines.js +0 -1
  258. package/dist/esm/wayfinding/core/rendering/normalizeRouteDirection.d.ts +0 -20
  259. package/dist/esm/wayfinding/core/rendering/normalizeRouteDirection.js +0 -1
  260. package/dist/esm/wayfinding/core/rendering/routeGeometry.d.ts +0 -11
  261. package/dist/esm/wayfinding/core/rendering/routeGeometry.js +0 -1
  262. package/dist/esm/wayfinding/core/routing/buildMultiPointRoute.d.ts +0 -11
  263. package/dist/esm/wayfinding/core/routing/buildMultiPointRoute.js +0 -1
  264. package/dist/esm/wayfinding/core/routing/buildRoute.d.ts +0 -9
  265. package/dist/esm/wayfinding/core/routing/buildRoute.js +0 -1
  266. package/dist/esm/wayfinding/core/routing/getRouteLength.d.ts +0 -3
  267. package/dist/esm/wayfinding/core/routing/getRouteLength.js +0 -1
  268. package/dist/esm/wayfinding/core/routing/graphPointResolvers.d.ts +0 -4
  269. package/dist/esm/wayfinding/core/routing/graphPointResolvers.js +0 -1
  270. package/dist/esm/wayfinding/core/routing/optimizeWaypointOrder.d.ts +0 -19
  271. package/dist/esm/wayfinding/core/routing/optimizeWaypointOrder.js +0 -1
  272. package/dist/esm/wayfinding/core/routing/resolveWaypointCandidates.d.ts +0 -18
  273. package/dist/esm/wayfinding/core/routing/resolveWaypointCandidates.js +0 -1
  274. package/dist/esm/wayfinding/core/routing/routeResult.d.ts +0 -4
  275. package/dist/esm/wayfinding/core/routing/routeResult.js +0 -1
  276. package/dist/esm/wayfinding/core/types.d.ts +0 -106
  277. package/dist/esm/wayfinding/core/types.js +0 -1
  278. package/dist/esm/wayfinding/renderer/createWayfindingRenderer.d.ts +0 -13
  279. package/dist/esm/wayfinding/renderer/createWayfindingRenderer.js +0 -1
  280. package/dist/esm/wayfinding/renderer/iconManager.d.ts +0 -37
  281. package/dist/esm/wayfinding/renderer/iconManager.js +0 -1
  282. package/dist/esm/wayfinding/renderer/index.d.ts +0 -3
  283. package/dist/esm/wayfinding/renderer/index.js +0 -1
  284. package/dist/esm/wayfinding/renderer/layerManager.d.ts +0 -26
  285. package/dist/esm/wayfinding/renderer/layerManager.js +0 -1
  286. package/dist/esm/wayfinding/renderer/lineAnimation.d.ts +0 -7
  287. package/dist/esm/wayfinding/renderer/lineAnimation.js +0 -1
  288. package/dist/esm/wayfinding/renderer/routeLineManager.d.ts +0 -41
  289. package/dist/esm/wayfinding/renderer/routeLineManager.js +0 -1
  290. package/dist/esm/wayfinding/renderer/trailManager.d.ts +0 -30
  291. package/dist/esm/wayfinding/renderer/trailManager.js +0 -1
  292. package/dist/esm/wayfinding/renderer/types.d.ts +0 -129
  293. package/dist/esm/wayfinding/renderer/types.js +0 -1
  294. package/dist/esm/wayfinding/runtime/createWayfindingRuntime.d.ts +0 -3
  295. package/dist/esm/wayfinding/runtime/createWayfindingRuntime.js +0 -1
  296. package/dist/esm/wayfinding/runtime/endpointView.d.ts +0 -18
  297. package/dist/esm/wayfinding/runtime/endpointView.js +0 -1
  298. package/dist/esm/wayfinding/runtime/getRouteLines.d.ts +0 -13
  299. package/dist/esm/wayfinding/runtime/getRouteLines.js +0 -1
  300. package/dist/esm/wayfinding/runtime/positionTrailView.d.ts +0 -50
  301. package/dist/esm/wayfinding/runtime/positionTrailView.js +0 -1
  302. package/dist/esm/wayfinding/runtime/positionView.d.ts +0 -23
  303. package/dist/esm/wayfinding/runtime/positionView.js +0 -1
  304. package/dist/esm/wayfinding/runtime/routeLinesView.d.ts +0 -18
  305. package/dist/esm/wayfinding/runtime/routeLinesView.js +0 -1
  306. package/dist/esm/wayfinding/runtime/routeRenderData.d.ts +0 -29
  307. package/dist/esm/wayfinding/runtime/routeRenderData.js +0 -1
  308. package/dist/esm/wayfinding/runtime/routeUpdate.d.ts +0 -15
  309. package/dist/esm/wayfinding/runtime/routeUpdate.js +0 -1
  310. package/dist/esm/wayfinding/runtime/trailView.d.ts +0 -20
  311. package/dist/esm/wayfinding/runtime/trailView.js +0 -1
  312. package/dist/esm/wayfinding/runtime/transitionView.d.ts +0 -17
  313. package/dist/esm/wayfinding/runtime/transitionView.js +0 -1
  314. package/dist/esm/wayfinding/runtime/types.d.ts +0 -82
  315. package/dist/esm/wayfinding/runtime/types.js +0 -1
  316. /package/dist/esm/{_misc_to_move/manifest.js → types/drawing.types.js} +0 -0
  317. /package/dist/esm/{_misc_to_move/ref.js → wayfinding/storePorts.js} +0 -0
@@ -1 +0,0 @@
1
- export function buildGraph(l,i,e){return i.build(l.getLines(),{oriented:e.oriented??!0,onlyAccessible:e.onlyAccessible??!1}),{finder:i,dataSource:l,options:e}}
@@ -1,9 +0,0 @@
1
- import { type Graph } from 'ngraph.graph';
2
- import { type GraphLine, type PathFinderOptions } from '../types';
3
- interface LinkData {
4
- distance: number;
5
- }
6
- /** Builds an ngraph instance from route lines, filtering and linking per options. */
7
- export declare function buildNGraph(lines: GraphLine[], options: PathFinderOptions): Graph<unknown, LinkData>;
8
- export {};
9
- //# sourceMappingURL=buildNGraph.d.ts.map
@@ -1 +0,0 @@
1
- import p from"ngraph.graph";import{toNodeId as c}from"./graphHelpers";import{linkCost as a}from"./linkCost";export function buildNGraph(e,d){const{oriented:s,onlyAccessible:f}=d,n=p();for(const o of e){if(f&&o.unaccessible)continue;const t=c(o.p0),i=c(o.p1),r=a(o);n.addLink(t,i,{distance:r}),s&&!o.unidirection&&n.addLink(i,t,{distance:r})}return n}
@@ -1,17 +0,0 @@
1
- /**
2
- * Default A* cost for a virtual (floor-transition) link. Non-zero so a floor
3
- * change costs more than any same-floor detour; otherwise floor changes are free
4
- * and a route between two points on one floor can detour through another.
5
- */
6
- export declare const VIRTUAL_LINE_PENALTY = 10000;
7
- /**
8
- * Fallback line weight when `line.weight` is 0 (meaning "not set" in floorplan data,
9
- * not "free passage").
10
- */
11
- export declare const DEFAULT_LINE_WEIGHT = 4;
12
- /**
13
- * Multiplier applied to a graph edge cost whenever the route changes direction at a node
14
- * (A* turn penalty).
15
- */
16
- export declare const TURN_PENALTY = 1.01;
17
- //# sourceMappingURL=constants.d.ts.map
@@ -1 +0,0 @@
1
- export const VIRTUAL_LINE_PENALTY=1e4,DEFAULT_LINE_WEIGHT=4,TURN_PENALTY=1.01;
@@ -1,14 +0,0 @@
1
- import { type GraphInstance, type GraphLine, type RoutePoint, type ShortestPathResult } from '../types';
2
- /** Computes the weighted path cost matching the graph link distance formula. */
3
- export declare function computeWeightedPathCost(points: RoutePoint[], lines: GraphLine[]): number;
4
- /**
5
- * Finds the shortest path between candidate point sets by trying all from×to
6
- * pairs and picking the one with the lowest weighted cost.
7
- *
8
- * Complexity is O(N×M × A*) where N = |from|, M = |to|. In practice N, M ≤ 5
9
- * (rect-based booth candidates) or = 1 (nearest-point fallback), so the brute
10
- * force approach is acceptable. Multi-source A* would reduce this to a single
11
- * traversal but adds significant implementation complexity.
12
- */
13
- export declare function findShortestPath(graph: GraphInstance, from: RoutePoint[], to: RoutePoint[]): ShortestPathResult | null;
14
- //# sourceMappingURL=findShortestPath.d.ts.map
@@ -1 +0,0 @@
1
- import{getRouteLength as p}from"../routing/getRouteLength";import{buildRouteSegments as P,findLineByEndpoints as b,toNodeId as m}from"./graphHelpers";import{linkCost as x}from"./linkCost";function y(t,o,n){return{layer:t,x:o,y:n}}export function computeWeightedPathCost(t,o){let n=0;for(let e=1;e<t.length;e++){const i=b(o,t[e-1],t[e]);i&&(n+=x(i))}return n}export function findShortestPath(t,o,n){const e=t.dataSource.getLines();let i=null,d=1/0;for(const a of o)for(const g of n){const s=m(a),r=m(g);if(!t.finder.hasNode(s)||!t.finder.hasNode(r)){console.debug(`WF. findShortestPath: node not in graph, skipping pair ${s} \u2192 ${r}`);continue}const u=t.finder.find(s,r);if(!u.length)continue;const l=u.map(c=>y(c.layer,c.x,c.y)),f=P(l,e);if(!f.length)continue;const h=computeWeightedPathCost(l,e);h<d&&(d=h,i={lines:f,distance:p(f)})}return i}
@@ -1,7 +0,0 @@
1
- import { type GraphDataSource, type GraphInstance } from '../types';
2
- interface GraphCache {
3
- getOrBuild(dataSource: GraphDataSource, onlyAccessible: boolean): GraphInstance;
4
- }
5
- export declare function createGraphCache(): GraphCache;
6
- export {};
7
- //# sourceMappingURL=graphCache.d.ts.map
@@ -1 +0,0 @@
1
- import{buildGraph as i}from"./buildGraph";import{createAStarPathFinder as u}from"./pathfinder/aStarPathFinder";export function createGraphCache(){let r=null,t=!1;return{getOrBuild(a,e){if(r&&t===e)return r;const n=u();return r=i(a,n,{oriented:!0,onlyAccessible:e}),t=e,r}}}
@@ -1,8 +0,0 @@
1
- import { type GraphLine, type RouteLine, type RoutePoint } from '../types';
2
- export declare const toNodeId: (p: RoutePoint) => string;
3
- export declare const arePointsClose: (p1: RoutePoint, p2: RoutePoint) => boolean;
4
- export declare const matchesLine: (line: GraphLine, p0: RoutePoint, p1: RoutePoint) => boolean;
5
- export declare function findLineByEndpoints(lines: GraphLine[], p0: RoutePoint, p1: RoutePoint): GraphLine | undefined;
6
- export declare function canMergeSegments(lastSegment: RouteLine, segment: RouteLine): boolean;
7
- export declare function buildRouteSegments(points: RoutePoint[], lines: GraphLine[]): RouteLine[];
8
- //# sourceMappingURL=graphHelpers.d.ts.map
@@ -1 +0,0 @@
1
- import{degToRad as a,lineAngle as u,pointDistance as f}from"@expofp/geometry";export const toNodeId=t=>`${t.layer}_${t.x}_${t.y}`;const p=1;export const arePointsClose=(t,n)=>t.layer===n.layer&&f(t,n)<=p,matchesLine=(t,n,e)=>arePointsClose(t.p0,n)&&arePointsClose(t.p1,e)||arePointsClose(t.p0,e)&&arePointsClose(t.p1,n);export function findLineByEndpoints(t,n,e){return t.find(o=>matchesLine(o,n,e))}const d=a(5);export function canMergeSegments(t,n){if(t.virtual!==n.virtual)return!1;const e=u(t.p0,t.p1),o=u(n.p0,n.p1);let r=Math.abs(o-e);return r>Math.PI&&(r=2*Math.PI-r),r<=d}export function buildRouteSegments(t,n){const e=[];for(let o=1;o<t.length;o++){const r=t[o-1],i=t[o],l=findLineByEndpoints(n,r,i);if(!l){console.warn(`WF: buildRouteSegments \u2014 no line found between ${toNodeId(r)} and ${toNodeId(i)}`);continue}const s={p0:r,p1:i,virtual:l.virtual},c=e[e.length-1];c&&canMergeSegments(c,s)?e[e.length-1]={...c,p1:s.p1}:e.push(s)}return e}
@@ -1,4 +0,0 @@
1
- import { type GraphLine } from '../types';
2
- /** Weighted cost of a route line for A* graph edge (legacy formula). */
3
- export declare function linkCost(line: GraphLine): number;
4
- //# sourceMappingURL=linkCost.d.ts.map
@@ -1 +0,0 @@
1
- import{pointDistance as r}from"@expofp/geometry";import{DEFAULT_LINE_WEIGHT as o,VIRTUAL_LINE_PENALTY as i}from"./constants";export function linkCost(t){return t.virtual?t.virtualLength??i:r(t.p0,t.p1)/(t.weight||o)}
@@ -1,3 +0,0 @@
1
- import { type PathFinder } from '../../types';
2
- export declare function createAStarPathFinder(): PathFinder;
3
- //# sourceMappingURL=aStarPathFinder.d.ts.map
@@ -1 +0,0 @@
1
- import{lineAngle as c}from"@expofp/geometry";import{buildNGraph as h}from"../buildNGraph";import{TURN_PENALTY as y}from"../constants";import g from"../utils/a-star/a-star";import{parseNodeId as f}from"./parseNodeId";function x(){return function(n,e,r){let t=1;if(e.parent){const[,a,l]=f(e.parent.node.id),[,o,d]=f(e.node.id),[,u,s]=f(n.id),p=c({x:a,y:l},{x:o,y:d}),m=c({x:o,y:d},{x:u,y:s});p!==m&&(t=y)}return t*r.data.distance}}export function createAStarPathFinder(){let i=null,n=null;return{build(e,r){n=h(e,r),i=g(n,{oriented:r.oriented,distance:x()})},hasNode(e){return n?!!n.hasNode(e):!1},find(e,r){if(!i)return[];const t=i.find(e,r);return t.length?t.map(a=>{const[l,o,d]=f(a.id);return{id:a.id,layer:l,x:o,y:d}}):[]}}}
@@ -1,9 +0,0 @@
1
- /**
2
- * Decodes a node ID created by `pointId` back into [layer, x, y].
3
- *
4
- * Point IDs are formatted as "{layer}_{x}_{y}". Since layer names may
5
- * contain underscores (e.g. "floor_1"), we parse from the right where
6
- * x and y are always the last two segments.
7
- */
8
- export declare function parseNodeId(id: string): [string, number, number];
9
- //# sourceMappingURL=parseNodeId.d.ts.map
@@ -1 +0,0 @@
1
- export function parseNodeId(e){const t=e.lastIndexOf("_"),s=e.lastIndexOf("_",t-1);if(s===-1)throw new Error(`WF: invalid node ID format "${e}", expected "{layer}_{x}_{y}"`);return[e.substring(0,s),parseFloat(e.substring(s+1,t)),parseFloat(e.substring(t+1))]}
@@ -1,17 +0,0 @@
1
- export type { Route, WayfindingEngine } from './createWayfindingEngine';
2
- export { createWayfindingEngine } from './createWayfindingEngine';
3
- export type { GraphDataSource, GraphLine, RouteEndpoint, RouteLine, RoutePoint, RouteSnapResult, SnapToRouteConfig, } from './types';
4
- export type { SegmentProjection } from './geometry/projectPointOnSegment';
5
- export { projectPointOnSegment } from './geometry/projectPointOnSegment';
6
- export { computeTrailPoints } from './rendering/computeTrailPoints';
7
- export type { TransitionPointDef } from './rendering/computeTransitionPoints';
8
- export { computeTransitionPoints } from './rendering/computeTransitionPoints';
9
- export { normalizeRouteDirection } from './rendering/normalizeRouteDirection';
10
- export { computeBoundingBox } from './rendering/routeGeometry';
11
- export { getRouteLength } from './routing/getRouteLength';
12
- export { getThresholdFromMetersToSvg, getThresholdSafe, resolveRerouteThresholdSvg, SNAP_THRESHOLD_METERS, } from './position/gpsThreshold';
13
- export type { RerouteController } from './position/rerouteController';
14
- export { createRerouteController } from './position/rerouteController';
15
- export { snapToRoute } from './position/snapToRoute';
16
- export { splitRouteByPoint } from './position/splitRouteByPoint';
17
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- export{createWayfindingEngine}from"./createWayfindingEngine";export{projectPointOnSegment}from"./geometry/projectPointOnSegment";export{computeTrailPoints}from"./rendering/computeTrailPoints";export{computeTransitionPoints}from"./rendering/computeTransitionPoints";export{normalizeRouteDirection}from"./rendering/normalizeRouteDirection";export{computeBoundingBox}from"./rendering/routeGeometry";export{getRouteLength}from"./routing/getRouteLength";export{getThresholdFromMetersToSvg,getThresholdSafe,resolveRerouteThresholdSvg,SNAP_THRESHOLD_METERS}from"./position/gpsThreshold";export{createRerouteController}from"./position/rerouteController";export{snapToRoute}from"./position/snapToRoute";export{splitRouteByPoint}from"./position/splitRouteByPoint";
@@ -1,3 +0,0 @@
1
- import type { RouteLine, RoutePoint } from '../types';
2
- export declare function distancePointToRouteOnLayer(point: RoutePoint, lines: RouteLine[]): number;
3
- //# sourceMappingURL=distanceToRoute.d.ts.map
@@ -1 +0,0 @@
1
- import{pointDistance as f}from"@expofp/geometry";function d(n,c,e,t,r,l){const i=r-e,s=l-t,a=n-e,u=c-t,y=i*i+s*s;if(y===0)return f({x:n,y:c},{x:e,y:t});let o=(a*i+u*s)/y;o<0?o=0:o>1&&(o=1);const x=e+o*i,b=t+o*s;return f({x:n,y:c},{x,y:b})}export function distancePointToRouteOnLayer(n,c){let e=1/0;for(const t of c){if(n.layer&&(t.p0.layer!==n.layer||t.p1.layer!==n.layer))continue;const r=d(n.x,n.y,t.p0.x,t.p0.y,t.p1.x,t.p1.y);r<e&&(e=r)}return e}
@@ -1,31 +0,0 @@
1
- export declare const SNAP_THRESHOLD_METERS = 7.5;
2
- interface GpsProjectionConfig {
3
- p0: {
4
- x: number;
5
- y: number;
6
- lat: number;
7
- lng: number;
8
- };
9
- p2: {
10
- x: number;
11
- y: number;
12
- lat: number;
13
- lng: number;
14
- };
15
- }
16
- export declare const getThresholdSafe: (value?: number) => number | undefined;
17
- export declare function getThresholdFromMetersToSvg({ thresholdInMeters, gpsConfig, }: {
18
- thresholdInMeters?: number;
19
- gpsConfig?: GpsProjectionConfig;
20
- }): number;
21
- /**
22
- * Resolves the reroute threshold (SVG units) for the active plan: honours
23
- * `gpsConfig.rerouteThreshold` (meters) override, otherwise falls back to
24
- * {@link REROUTE_THRESHOLD_METERS}. Returns plan-scaled SVG units suitable
25
- * for `shouldReroute`.
26
- */
27
- export declare function resolveRerouteThresholdSvg(gpsConfig?: GpsProjectionConfig & {
28
- rerouteThreshold?: number;
29
- }): number;
30
- export {};
31
- //# sourceMappingURL=gpsThreshold.d.ts.map
@@ -1 +0,0 @@
1
- import{haversineDistance as i,pointDistance as c}from"@expofp/geometry";export const SNAP_THRESHOLD_METERS=7.5;const u=15,S=20;function h(t,r){const{p0:e,p2:o}=r,n=i(e,o),s=c(e,o);return!n||!s?0:t*(s/n)}export const getThresholdSafe=t=>{if(typeof t=="number"&&Number.isFinite(t))return t};export function getThresholdFromMetersToSvg({thresholdInMeters:t,gpsConfig:r}){let e=0;return t&&r&&(e=h(t,r)),e||(e=S),e}export function resolveRerouteThresholdSvg(t){const r=getThresholdSafe(t?.rerouteThreshold)||u;return getThresholdFromMetersToSvg({thresholdInMeters:r,gpsConfig:t})}
@@ -1,10 +0,0 @@
1
- import type { RouteLine, RoutePoint } from '../types';
2
- /** Decides whether the current GPS tick warrants rebuilding the route. */
3
- export interface RerouteController {
4
- /** Evaluates the current tick. Returns `true` when the caller should rebuild the route. */
5
- shouldReroute(position: RoutePoint, routeLines: RouteLine[]): boolean;
6
- }
7
- /** `thresholdSvg` — plan-scale-aware off-route distance (SVG units), produced by
8
- * `resolveRerouteThresholdSvg` and passed in by the composition root. */
9
- export declare function createRerouteController(thresholdSvg: number): RerouteController;
10
- //# sourceMappingURL=rerouteController.d.ts.map
@@ -1 +0,0 @@
1
- import{distancePointToRouteOnLayer as a}from"./distanceToRoute";export function createRerouteController(n){return{shouldReroute(t,e){if(!e.length)return!1;const r=t.layer;return r&&!e.some(o=>o.p0.layer===r&&o.p1.layer===r)?!0:a(t,e)>n}}}
@@ -1,4 +0,0 @@
1
- import { type RouteLine, type RoutePoint, type RouteSnapResult, type SnapToRouteConfig } from '../types';
2
- export { SNAP_THRESHOLD_METERS } from './gpsThreshold';
3
- export declare function snapToRoute(position: RoutePoint, routeLines: RouteLine[], config: SnapToRouteConfig): RouteSnapResult;
4
- //# sourceMappingURL=snapToRoute.d.ts.map
@@ -1 +0,0 @@
1
- import{pointDistance as P}from"@expofp/geometry";import{pointInPolygon as E}from"../geometry/pointInPolygon";import{projectPointOnSegment as v}from"../geometry/projectPointOnSegment";function F(e,a){let p=0;for(const n of e){const o=P(n.p0,n.p1);if(o!==0){if(p+o>=a){const r=(a-p)/o,h=n.p0.x+(n.p1.x-n.p0.x)*r,s=n.p0.y+(n.p1.y-n.p0.y)*r;return{point:{layer:n.p0.layer,x:h,y:s},line:n}}p+=o}}const i=e[e.length-1];return{point:{layer:i.p0.layer,x:i.p1.x,y:i.p1.y},line:i}}export{SNAP_THRESHOLD_METERS}from"./gpsThreshold";export function snapToRoute(e,a,p){const i=a.length;if(!i)return{snapped:!1};const{snapThreshold:n,to:o,from:r,minRemainingUnits:h=.5}=p,s=e.layer||null;let D=1/0,m=null,u=0,b=s==null;for(let t=0;t<i;t++){const y=a[t],{p0:l,p1:f}=y,g=P(l,f);if(g===0)continue;if(s!=null&&String(l.layer)!==s){u+=g;continue}b=!0;const x=v({x:e.x,y:e.y},l,f);x.distance<D&&(D=x.distance,m={segmentIndex:t,t:x.t,distanceFromPolylineStart:u+g*x.t}),u+=g}if(s!=null&&!b)return{snapped:!1};const c=u,A=a[0].p0,I=a[i-1].p1,L=P(o,A),O=P(o,I),S=L<=O,T=Math.min(h,c);if(r?.bounds&&(s==null||!r.layer||r.layer===s)&&E({x:e.x,y:e.y},r.bounds)){const t=c,y=S?t:c-t,l=F(a,y);return{snapped:!0,snappedPoint:l.point,snappedLine:l.line,distance:t}}if(o.bounds&&(s==null||!o.layer||o.layer===s)&&E({x:e.x,y:e.y},o.bounds)){const t=T,y=c-t,f=F(a,S?t:y);return{snapped:!0,snappedPoint:f.point,snappedLine:f.line,distance:t}}if(!m||D>n)return{snapped:!1};let d=S?m.distanceFromPolylineStart:c-m.distanceFromPolylineStart;d<T&&(d=T);const j=c-d,R=F(a,S?d:j);return{snapped:!0,snappedPoint:R.point,snappedLine:R.line,distance:d}}
@@ -1,6 +0,0 @@
1
- import { type RouteLine, type RoutePoint } from '../types';
2
- export declare function splitRouteByPoint(routeLines: RouteLine[], snapPoint: RoutePoint): {
3
- passed: RouteLine[];
4
- remaining: RouteLine[];
5
- };
6
- //# sourceMappingURL=splitRouteByPoint.d.ts.map
@@ -1 +0,0 @@
1
- export function splitRouteByPoint(t,c){let n=-1,e=0,f=1/0;for(let l=0;l<t.length;l++){const p=t[l];if(p.p0.layer!==c.layer)continue;const s=p.p1.x-p.p0.x,y=p.p1.y-p.p0.y,r=s*s+y*y;if(r===0)continue;const x=((c.x-p.p0.x)*s+(c.y-p.p0.y)*y)/r;if(x<-1e-6||x>1+1e-6)continue;const a=Math.min(1,Math.max(0,x)),m=p.p0.x+a*s,g=p.p0.y+a*y,o=(c.x-m)**2+(c.y-g)**2;o<f&&(f=o,n=l,e=a)}if(n===-1)return{passed:[],remaining:t};if(e<1e-6)return{passed:t.slice(0,n),remaining:t.slice(n)};if(e>1-1e-6)return{passed:t.slice(0,n+1),remaining:t.slice(n+1)};const i=t[n],d={layer:i.p0.layer,x:i.p0.x+e*(i.p1.x-i.p0.x),y:i.p0.y+e*(i.p1.y-i.p0.y)};return{passed:[...t.slice(0,n),{...i,p1:d}],remaining:[{...i,p0:d},...t.slice(n+1)]}}
@@ -1,19 +0,0 @@
1
- import { type Point2Like } from '@expofp/geometry';
2
- /**
3
- * Generates evenly-spaced points along a quadratic Bézier curve
4
- * between two points. Used for dotted trail visualization when
5
- * a point (kiosk, GPS, marker, etc.) is far from the route.
6
- *
7
- * @param from - Start point (e.g. route endpoint)
8
- * @param to - End point (e.g. off-route position)
9
- * @param interval - Spacing between points in SVG units (default: 8)
10
- * @param curvature - Arc height as fraction of distance (0 = straight, 0.4 = default arc)
11
- */
12
- export declare function computeTrailPoints(from: {
13
- x: number;
14
- y: number;
15
- }, to: {
16
- x: number;
17
- y: number;
18
- }, interval?: number, curvature?: number): Point2Like[];
19
- //# sourceMappingURL=computeTrailPoints.d.ts.map
@@ -1 +0,0 @@
1
- import{pointDistance as a}from"@expofp/geometry";const y=.4,T=8;export function computeTrailPoints(c,i,o=T,t=y){const n=a(i,c);if(n===0||o<=0)return[];const e=Math.max(Math.ceil(n/o)+1,2),u={x:(c.x+i.x)/2,y:(c.y+i.y)/2-n*t},r=[];for(let s=0;s<e;s++){const x=s/(e-1);r.push(A(c,u,i,x))}return r}function A(c,i,o,t){const n=1-t;return{x:n*n*c.x+2*n*t*i.x+t*t*o.x,y:n*n*c.y+2*n*t*i.y+t*t*o.y}}
@@ -1,31 +0,0 @@
1
- import { type RouteLine } from '../types';
2
- interface TransitionPointsInput {
3
- /** Full route including virtual lines */
4
- readonly routeLines: RouteLine[];
5
- /** Floor to scope to. `null` = no floor scoping (returns transitions on every floor). */
6
- readonly currentLayerName: string | null;
7
- /** Floor names ordered low → high (from layerStore.floors) */
8
- readonly floorOrder: string[];
9
- }
10
- export interface TransitionPointDef {
11
- readonly x: number;
12
- readonly y: number;
13
- /** Floor where the icon is rendered */
14
- readonly layer: string;
15
- /** Floor the transition leads to (for click-to-switch) */
16
- readonly targetLayer: string;
17
- readonly direction: 'up' | 'down' | 'neutral';
18
- /** Whether this is an entry (arriving from another floor) or exit (leaving to another floor) in walking direction */
19
- readonly role: 'entry' | 'exit';
20
- }
21
- /**
22
- * Computes deduplicated, correctly-directed transition points for the
23
- * current floor.
24
- *
25
- * Works directly with the full `routeLines` array (including virtual lines)
26
- * and does NOT depend on `routeNextFloor` — the target floor is read from
27
- * the opposite endpoint of each virtual line.
28
- */
29
- export declare function computeTransitionPoints(input: TransitionPointsInput): TransitionPointDef[];
30
- export {};
31
- //# sourceMappingURL=computeTransitionPoints.d.ts.map
@@ -1 +0,0 @@
1
- function s(a,n){return a.toLowerCase()===n.toLowerCase()}function d(a,n){return a.findIndex(r=>s(r,n))}function C(a,n,r){const o=d(a,n),t=d(a,r);return o===-1||t===-1?"neutral":t>o?"up":"down"}function w(a,n,r){return a.find(o=>s(o.p0.layer,n)?!r.has(o.p1.layer.toLowerCase()):s(o.p1.layer,n)?!r.has(o.p0.layer.toLowerCase()):!1)}function h(a,n,r,o){if(n.has(o.toLowerCase()))return o;let t=o;const l=new Set([r.toLowerCase(),t.toLowerCase()]);let u=w(a,t,l);for(;u&&(t=s(u.p0.layer,t)?u.p1.layer:u.p0.layer,!n.has(t.toLowerCase()));)l.add(t.toLowerCase()),u=w(a,t,l);return t}export function computeTransitionPoints(a){const{routeLines:n,currentLayerName:r,floorOrder:o}=a,t=n.filter(e=>e.virtual&&!s(e.p0.layer,e.p1.layer)),l=new Set;for(const e of n)e.virtual||(l.add(e.p0.layer.toLowerCase()),l.add(e.p1.layer.toLowerCase()));const c=(r?t.filter(e=>s(e.p0.layer,r)||s(e.p1.layer,r)):t).map(e=>{const i=r?s(e.p0.layer,r):!0,y=i?e.p0:e.p1,x=i?e.p1:e.p0,p=h(t,l,y.layer,x.layer);return{x:y.x,y:y.y,layer:y.layer,targetLayer:p,direction:C(o,y.layer,p),role:r&&i?"entry":"exit"}}),L=new Set(c.filter(e=>e.role==="exit").map(e=>`${e.x}:${e.y}`)),f=new Set;return c.filter(e=>{const i=`${e.x}:${e.y}`;return e.role==="entry"&&L.has(i)||f.has(i)?!1:(f.add(i),!0)})}
@@ -1,11 +0,0 @@
1
- import { type RouteLine } from '../types';
2
- /**
3
- * Filters route lines for a given floor: removes virtual segments
4
- * and keeps only lines on the specified floor.
5
- *
6
- * @param routeLines - All route lines (may span multiple floors)
7
- * @param currentFloor - Floor to filter by, or `null` to return all non-virtual lines
8
- * (single-floor plans / "show all" mode)
9
- */
10
- export declare function getVisibleRouteLines(routeLines: readonly RouteLine[], currentFloor: string | null): RouteLine[];
11
- //# sourceMappingURL=getVisibleRouteLines.d.ts.map
@@ -1 +0,0 @@
1
- export function getVisibleRouteLines(t,e){const i=[];for(const n of t)n.virtual||e!==null&&n.p0.layer!==e||i.push(n);return i}
@@ -1,20 +0,0 @@
1
- import type { RouteLine, RoutePoint } from '../types';
2
- /**
3
- * Ensures that `routeLines` run in the from→to direction.
4
- *
5
- * A* returns paths in target→source order. For rendering (arrow animation,
6
- * route progress split) and remaining-distance computation the lines must
7
- * go from the origin to the destination.
8
- *
9
- * Direction is decided by projecting `from` (or `to` as a fallback) onto
10
- * `routeLines`: if the anchor lands closer to the polyline end than to
11
- * its start, the array is reversed and each segment's endpoints are
12
- * flipped to keep continuity.
13
- *
14
- * @param routeLines Lines to normalize.
15
- * @param from Route origin (user-selected "from" point).
16
- * @param to Route destination (user-selected "to" point).
17
- * @returns Lines guaranteed to run from→to, or the original array unchanged.
18
- */
19
- export declare function normalizeRouteDirection(routeLines: RouteLine[], from: RoutePoint, to: RoutePoint): RouteLine[];
20
- //# sourceMappingURL=normalizeRouteDirection.d.ts.map
@@ -1 +0,0 @@
1
- import{pointDistance as g}from"@expofp/geometry";function y(t,s,f){let r=0,a=1/0,c=1/0;const p=f.reduce((e,n)=>e+n,0);for(let e=0;e<s.length;e++){const n=s[e],o=f[e];if(t.layer&&n.p0.layer!==t.layer){r+=o;continue}const d=n.p1.x-n.p0.x,i=n.p1.y-n.p0.y,u=d*d+i*i;if(u<1e-10){r+=o;continue}const h=((t.x-n.p0.x)*d+(t.y-n.p0.y)*i)/u,m=Math.max(0,Math.min(1,h)),x=n.p0.x+d*m,S=n.p0.y+i*m,l=Math.hypot(t.x-x,t.y-S);l<a&&(a=l,c=r+o*m),r+=o}return{found:c!==1/0,fromStart:c,total:p}}export function normalizeRouteDirection(t,s,f){const r=t.map(o=>g(o.p0,o.p1)),a=y(s,t,r),c=a.found?a:y(f,t,r);if(!c.found)return t;const p=c.fromStart,e=c.total-c.fromStart;return(a.found?e<p:p<e)?t.slice().reverse().map(o=>({...o,p0:o.p1,p1:o.p0})):t}
@@ -1,11 +0,0 @@
1
- import { Box } from '@expofp/geometry';
2
- /**
3
- * Computes the axis-aligned bounding box of a set of points.
4
- * Always returns a {@link Box}. An empty array returns `Box.fromPoints([])` — a zero-size
5
- * box at the origin — which is distinguished from a real route bbox via `.isEmpty()`.
6
- */
7
- export declare function computeBoundingBox(points: readonly {
8
- x: number;
9
- y: number;
10
- }[]): Box;
11
- //# sourceMappingURL=routeGeometry.d.ts.map
@@ -1 +0,0 @@
1
- import{Box as n}from"@expofp/geometry";export function computeBoundingBox(o){return n.fromPoints(o)}
@@ -1,11 +0,0 @@
1
- import { type GraphInstance, type RoutePoint, type RouteResult } from '../types';
2
- /**
3
- * Builds a route through an ordered sequence of pre-resolved candidate groups.
4
- * Each group is a `RoutePoint[]` — the candidate graph points for one waypoint.
5
- *
6
- * Intermediate groups with no candidates (empty arrays) are silently skipped —
7
- * adjacent groups are connected directly. This matches the legacy behavior
8
- * where unreachable waypoints were omitted.
9
- */
10
- export declare function buildMultiPointRoute(graph: GraphInstance, candidateGroups: RoutePoint[][]): RouteResult;
11
- //# sourceMappingURL=buildMultiPointRoute.d.ts.map
@@ -1 +0,0 @@
1
- import{buildRoute as u}from"./buildRoute";import{emptyResult as o}from"./routeResult";export function buildMultiPointRoute(i,r){if(r.length<2)return o();const e=r.filter((t,l)=>l===0||l===r.length-1?!0:t.length>0);if(e.length<2)return o();if(e.length===2)return u(i,e[0],e[1]);const n=[];for(let t=0;t<e.length-1;t++)n.push(u(i,e[t],e[t+1]));n.reverse();const s=n.flatMap(t=>t.lines),f=n.reduce((t,l)=>t+l.totalDistance,0);return{lines:s,totalDistance:f}}
@@ -1,9 +0,0 @@
1
- import { type GraphInstance, type RoutePoint, type RouteResult } from '../types';
2
- /**
3
- * Builds a route between two sets of candidate graph points.
4
- *
5
- * This is pure pathfinding — it does not resolve waypoints to graph points.
6
- * Resolution is the caller's responsibility (see `getGraphLines`).
7
- */
8
- export declare function buildRoute(graph: GraphInstance, fromCandidates: RoutePoint[], toCandidates: RoutePoint[]): RouteResult;
9
- //# sourceMappingURL=buildRoute.d.ts.map
@@ -1 +0,0 @@
1
- import{findShortestPath as l}from"../graph/findShortestPath";import{emptyResult as n}from"./routeResult";export function buildRoute(i,e,r){if(!e.length||!r.length)return n();const t=l(i,e,r);return t?{lines:t.lines,totalDistance:t.distance}:n()}
@@ -1,3 +0,0 @@
1
- import { type RouteLine } from '../types';
2
- export declare function getRouteLength(routeLines: RouteLine[]): number;
3
- //# sourceMappingURL=getRouteLength.d.ts.map
@@ -1 +0,0 @@
1
- import{pointDistance as r}from"@expofp/geometry";export function getRouteLength(e){return e.reduce((o,t)=>o+r(t.p0,t.p1),0)}
@@ -1,4 +0,0 @@
1
- import { type GraphDataSource, type PolygonVertex, type RoutePoint } from '../types';
2
- /** Graph endpoints inside a convex polygon (e.g. booth rect), filtered by layer. */
3
- export declare function findGraphPointsInPolygon(dataSource: GraphDataSource, polygon: readonly PolygonVertex[], layer?: string): RoutePoint[];
4
- //# sourceMappingURL=graphPointResolvers.d.ts.map
@@ -1 +0,0 @@
1
- import{computePolygonArea as i,pointInPolygon as p}from"../geometry/pointInPolygon";export function findGraphPointsInPolygon(r,o,n){const e=i(o);return r.getLineEnds().filter(t=>(!n||t.layer===n)&&p(t,o,e))}
@@ -1,19 +0,0 @@
1
- interface Point {
2
- cx: number;
3
- cy: number;
4
- }
5
- /**
6
- * Optimizes waypoint ordering to minimize total travel distance.
7
- * Nearest neighbor O(n²) + 2-opt refinement O(k·n²), k ≤ 100.
8
- */
9
- export declare function optimizeWaypointOrder(data: [string, Point][]): string[];
10
- /**
11
- * Reorders waypoints for fastest traversal.
12
- * First and last stay fixed (from/to), only middle waypoints are reordered.
13
- */
14
- export declare function reorderWaypoints<T extends {
15
- x: number;
16
- y: number;
17
- }>(waypoints: T[]): T[];
18
- export {};
19
- //# sourceMappingURL=optimizeWaypointOrder.d.ts.map
@@ -1 +0,0 @@
1
- const x=100,b=-.01;export function optimizeWaypointOrder(e){const c=new Map(e),t=Array.from(c.keys());if(t.length<=2)return t;const r=M(t,c);return r.length<4?r:u(r,c)}export function reorderWaypoints(e){if(e.length<=3)return e;const c=e[0],t=e[e.length-1],r=e.slice(1,-1),i=r.map((o,a)=>[String(a),{cx:o.x,cy:o.y}]),n=optimizeWaypointOrder(i).map(o=>r[Number(o)]);return[c,...n,t]}function M(e,c){const t=[e[0]],r=new Set(e);let i=e[0];for(r.delete(e[0]);r.size>0;){const s=c.get(i);let n="",o=1/0;for(const a of r){const l=c.get(a),d=Math.abs(s.cx-l.cx)+Math.abs(s.cy-l.cy);d<o&&(o=d,n=a)}if(!n)break;t.push(n),r.delete(n),i=n}return t}function u(e,c){const t=[...e];let r=!0;for(let i=0;r&&i<100;i++){r=!1;t:for(let s=1;s<t.length-2;s++)for(let n=s+1;n<t.length-1;n++){const o=c.get(t[s-1]),a=c.get(t[s]),l=c.get(t[n]),d=c.get(t[n+1]);if(Math.abs(o.cx-l.cx)+Math.abs(o.cy-l.cy)+Math.abs(a.cx-d.cx)+Math.abs(a.cy-d.cy)-(Math.abs(o.cx-a.cx)+Math.abs(o.cy-a.cy))-(Math.abs(l.cx-d.cx)+Math.abs(l.cy-d.cy))<-.01){for(let f=s,h=n;f<h;f++,h--)[t[f],t[h]]=[t[h],t[f]];r=!0;break t}}}return t}
@@ -1,18 +0,0 @@
1
- import type { GraphInstance, RouteEndpoint, RouteLine, RoutePoint } from '../types';
2
- export interface OffGraphEntry {
3
- readonly segment: RouteLine;
4
- readonly projection: RoutePoint;
5
- }
6
- /** A* candidates plus an optional `offGraphEntry` — set when the route's entry needs perpendicular
7
- * trim to land on a point inside a segment instead of at a graph node. */
8
- export interface ResolvedCandidates {
9
- readonly candidates: RoutePoint[];
10
- readonly offGraphEntry: OffGraphEntry | null;
11
- }
12
- /** Turns a route endpoint into A* candidates.
13
- * - Booth (has `bounds`) → graph nodes inside the polygon.
14
- * - Off-graph point → nearest segment on its layer; both ends are candidates and `offGraphEntry`
15
- * holds the perpendicular foot to trim to. If the foot falls off the segment, attach at its node.
16
- * */
17
- export declare function resolveWaypointCandidates(graph: GraphInstance, endpoint: RouteEndpoint): ResolvedCandidates;
18
- //# sourceMappingURL=resolveWaypointCandidates.d.ts.map
@@ -1 +0,0 @@
1
- import{projectPointOnSegment as l}from"../geometry/projectPointOnSegment";import{findGraphPointsInPolygon as p}from"./graphPointResolvers";export function resolveWaypointCandidates(i,e){if(e.bounds?.length)return{candidates:p(i.dataSource,e.bounds,e.layer),offGraphEntry:null};let a=null,f=1/0;for(const t of i.dataSource.getLines()){if(t.virtual||e.layer&&t.p0.layer!==e.layer||t.p0.x===t.p1.x&&t.p0.y===t.p1.y)continue;const o=l(e,t.p0,t.p1);o.distance<f&&(f=o.distance,a={segment:t,proj:o})}if(!a)return{candidates:[],offGraphEntry:null};const{segment:n,proj:r}=a;return r.t===0?{candidates:[n.p0],offGraphEntry:null}:r.t===1?{candidates:[n.p1],offGraphEntry:null}:{candidates:[n.p0,n.p1],offGraphEntry:{segment:n,projection:{layer:n.p0.layer,x:r.projected.x,y:r.projected.y}}}}
@@ -1,4 +0,0 @@
1
- import { type RouteResult } from '../types';
2
- /** Returns a fresh empty result each call to avoid shared-mutable-object bugs at runtime. */
3
- export declare const emptyResult: () => RouteResult;
4
- //# sourceMappingURL=routeResult.d.ts.map
@@ -1 +0,0 @@
1
- export const emptyResult=()=>({lines:[],totalDistance:0});
@@ -1,106 +0,0 @@
1
- export interface PolygonVertex {
2
- readonly x: number;
3
- readonly y: number;
4
- }
5
- export interface RoutePoint {
6
- readonly x: number;
7
- readonly y: number;
8
- readonly layer: string;
9
- }
10
- /**
11
- * A computed route segment — the public output of routing, consumed by the
12
- * runtime and rendering. Carries only what consumers read; graph-build
13
- * properties (direction, cost) live on {@link GraphLine}, not here.
14
- */
15
- export interface RouteLine {
16
- readonly p0: RoutePoint;
17
- readonly p1: RoutePoint;
18
- /** Virtual (floor-transition) link rather than a physical path segment. */
19
- readonly virtual: boolean;
20
- }
21
- /**
22
- * A source graph line from external wayfinding data (wf.data.js) — the input to
23
- * graph building. Extends {@link RouteLine} with build-only properties
24
- * (accessibility, direction, cost) that never reach a computed route.
25
- */
26
- export interface GraphLine extends RouteLine {
27
- /** Flagged inaccessible in source data: graph-build filter + the venue accessible toggle. */
28
- readonly unaccessible: boolean;
29
- /** One-way link: in oriented mode no reverse edge is added. */
30
- readonly unidirection: boolean;
31
- /** Link weight for cost (`0` = unset → `DEFAULT_LINE_WEIGHT`). */
32
- readonly weight: number;
33
- /**
34
- * Optional custom cost for virtual (floor-transition) links, configured
35
- * per-line in the designer as "Virtual length". When set, the pathfinder
36
- * uses this value instead of the default VIRTUAL_LINE_PENALTY, overriding it
37
- * per line — `0` makes the transition free (preferred), a large value makes
38
- * it avoided. When unset, the non-zero default keeps routes on the same floor.
39
- */
40
- readonly virtualLength?: number;
41
- }
42
- export interface PathNode {
43
- readonly id: string;
44
- readonly layer: string;
45
- readonly x: number;
46
- readonly y: number;
47
- }
48
- export interface PathFinderOptions {
49
- readonly oriented: boolean;
50
- readonly onlyAccessible: boolean;
51
- }
52
- export interface PathFinder {
53
- build(lines: GraphLine[], options: PathFinderOptions): void;
54
- find(fromId: string, toId: string): PathNode[];
55
- hasNode(id: string): boolean;
56
- }
57
- export interface GraphDataSource {
58
- getLines(): GraphLine[];
59
- getLineEnds(): RoutePoint[];
60
- }
61
- export interface GraphInstance {
62
- readonly finder: PathFinder;
63
- readonly dataSource: GraphDataSource;
64
- readonly options: GraphBuildOptions;
65
- }
66
- export interface GraphBuildOptions {
67
- readonly oriented?: boolean;
68
- readonly onlyAccessible?: boolean;
69
- }
70
- export interface ShortestPathResult {
71
- readonly lines: RouteLine[];
72
- readonly distance: number;
73
- }
74
- export interface RouteResult {
75
- readonly lines: RouteLine[];
76
- readonly totalDistance: number;
77
- }
78
- export type RouteSnapResult = {
79
- snapped: false;
80
- } | {
81
- snapped: true;
82
- snappedPoint: RoutePoint;
83
- snappedLine: RouteLine;
84
- /** Arc-length from `snappedPoint` to the destination, along the route. */
85
- distance: number;
86
- };
87
- /**
88
- * Route endpoint: anchor on a layer, with optional perimeter polygon (booth bounds).
89
- * With `bounds` → engine picks the optimal graph node inside the polygon.
90
- * Without `bounds` → off-graph point (e.g. kiosk); engine snaps to nearest graph anchor.
91
- *
92
- * `id` is an opaque runtime discriminator the engine ignores — used by the
93
- * adapter layer to mark off-graph endpoints (e.g. CP-derived vs kiosk anchor)
94
- * so the renderer can branch on endpoint origin without re-checking UI types.
95
- */
96
- export interface RouteEndpoint extends RoutePoint {
97
- readonly bounds?: readonly PolygonVertex[];
98
- readonly id?: string;
99
- }
100
- export interface SnapToRouteConfig {
101
- snapThreshold: number;
102
- minRemainingUnits?: number;
103
- to: RouteEndpoint;
104
- from?: RouteEndpoint;
105
- }
106
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- export{};
@@ -1,13 +0,0 @@
1
- import type { RendererPort, WayfindingRenderer, WayfindingRendererConfig } from './types';
2
- /**
3
- * Create a {@link WayfindingRenderer} — the composition root that wires
4
- * together {@link LayerManager}, {@link IconManager}, {@link TrailManager},
5
- * and {@link RouteLineManager}.
6
- *
7
- * Exposes `applyScale`/`applyRoll`/`handleClick`/`handleHover` for the app glue
8
- * to drive from engine events.
9
- *
10
- * @throws If `rendererPort.getLayers()` throws (e.g. the scene is not started).
11
- */
12
- export declare function createWayfindingRenderer(rendererPort: RendererPort, config?: WayfindingRendererConfig): WayfindingRenderer;
13
- //# sourceMappingURL=createWayfindingRenderer.d.ts.map
@@ -1 +0,0 @@
1
- import{createIconManager as i}from"./iconManager";import{createLayerManager as p}from"./layerManager";import{createRouteLineManager as y}from"./routeLineManager";import{createTrailManager as d}from"./trailManager";const g={passed:"#B5B7BC",remaining:"#A4CCE2",active:"#0794EA"};export function createWayfindingRenderer(r,c={}){const s={...g,...c.colors},o=p(r),e=i(o,r),n=d(o,r),t=y(o,s,r),l={setIcon:e.setIcon,clearIcons:e.clearIcons,setTrail:n.setTrail,setRouteLines:t.setRouteLines,applyScale:a=>[...e.applyScale(a),...n.applyScale(a)],applyRoll:a=>e.applyRoll(a),handleClick:a=>e.handleClick(a),handleHover:a=>e.handleHover(a),clearRoute(){t.clearLines(),n.destroy(),e.hideAll()},flush:o.flush,destroy(){l.clearRoute(),e.destroy(),n.destroy(),t.destroy(),o.destroy()}};return l}