@expofp/floorplan 3.0.0-alpha.9 → 3.0.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 (351) hide show
  1. package/dist/browser/Debug-Yknbb09q.js +40 -0
  2. package/dist/browser/Demo-CaOFZa6L.js +47 -0
  3. package/dist/browser/Free-DTL80JI4.js +51 -0
  4. package/dist/browser/Gallery-Du04PQQo.js +71 -0
  5. package/dist/browser/GpsLoader-Cvn6RlOm.js +140 -0
  6. package/dist/browser/KioskStore-De5ViEMC.js +225 -0
  7. package/dist/browser/Mapbox-DwX3p3Kb.js +118 -0
  8. package/dist/browser/{SetKioskMode-C3fGoJPj.js → SetKioskMode-DY8Ihzh_.js} +92 -83
  9. package/dist/browser/{ShowKiosk-D-477yKH.js → ShowKiosk-fqRB_BUN.js} +28 -19
  10. package/dist/browser/{ThreeComponent-Z1K-qX4i.js → ThreeComponent-CrAcuY6n.js} +181 -172
  11. package/dist/browser/ViewerMenuPanel-CdiEJm9h.js +77 -0
  12. package/dist/browser/boolean-editor-BCIboJVq.js +157 -0
  13. package/dist/browser/bundle.json +34 -31
  14. package/dist/browser/{client-D6zJdOh6.js → client-BU0UzF6H.js} +848 -839
  15. package/dist/browser/compat-helper.js +5 -0
  16. package/dist/browser/{data-C6uYuLvP.js → data-DU1RvfMj.js} +278 -269
  17. package/dist/browser/{debug-overlay-BcmbSeG3.js → debug-overlay-DMGwYhOT.js} +100 -91
  18. package/dist/browser/debug-ui-BZSH53uY.js +67 -0
  19. package/dist/browser/{favicon-DalyEhbd.js → favicon-ZTHZQvuM.js} +11 -2
  20. package/dist/browser/fetch-retry.umd-CFhXCSM1.js +123 -0
  21. package/dist/browser/{flex-DA2yhKLl.js → flex-D0XnC5Mw.js} +76 -67
  22. package/dist/browser/{floorplan.ready-DEdtWjzo.js → floorplan.ready-DwzYk5s3.js} +20977 -22749
  23. package/dist/browser/fonts/efp-symbols.woff +0 -0
  24. package/dist/browser/{index-DSULYUX0.js → index-BZDxL6gh.js} +46 -37
  25. package/dist/browser/{index-BAvspl75.js → index-BpZSlPvc.js} +333 -324
  26. package/dist/browser/index-BxFqdKuM.js +57 -0
  27. package/dist/browser/index-fEI_0iId.js +882 -0
  28. package/dist/browser/index-h3LFHvKr.js +92 -0
  29. package/dist/browser/index-xQ7Ip4HB.js +54 -0
  30. package/dist/browser/index.html +1 -0
  31. package/dist/browser/index.js +12495 -2
  32. package/dist/browser/jsx-runtime-SRODV826.js +40 -0
  33. package/dist/browser/locales/ar.json +56 -5
  34. package/dist/browser/locales/de.json +56 -5
  35. package/dist/browser/locales/es.json +56 -5
  36. package/dist/browser/locales/fr.json +56 -5
  37. package/dist/browser/locales/he.json +56 -5
  38. package/dist/browser/locales/it.json +56 -5
  39. package/dist/browser/locales/kk.json +56 -5
  40. package/dist/browser/locales/ko.json +56 -5
  41. package/dist/browser/locales/mn.json +56 -5
  42. package/dist/browser/locales/nl.json +56 -5
  43. package/dist/browser/locales/pl.json +57 -6
  44. package/dist/browser/locales/pt.json +55 -4
  45. package/dist/browser/locales/ru.json +57 -6
  46. package/dist/browser/locales/sv.json +56 -5
  47. package/dist/browser/locales/th.json +56 -5
  48. package/dist/browser/locales/tr.json +56 -5
  49. package/dist/browser/locales/uk.json +56 -5
  50. package/dist/browser/locales/vi.json +56 -5
  51. package/dist/browser/locales/zh.json +56 -5
  52. package/dist/browser/{main-CD9JioNt.js → main-CcaoXWR4.js} +24 -15
  53. package/dist/browser/{particles.min-DcpKrPn3.js → particles.min-Ds_4ex2r.js} +40 -31
  54. package/dist/esm/RouteCutIn.d.ts +0 -1
  55. package/dist/esm/RouteCutIn.js +1 -1
  56. package/dist/esm/_misc_to_move/manifest.d.ts +13 -0
  57. package/dist/esm/_misc_to_move/ref.d.ts +6 -0
  58. package/dist/esm/_misc_to_move/ref.js +1 -0
  59. package/dist/esm/components/Alert.d.ts +2 -0
  60. package/dist/esm/components/Alert.js +1 -1
  61. package/dist/esm/components/Badge.d.ts +3 -2
  62. package/dist/esm/components/Badge.js +1 -1
  63. package/dist/esm/components/Bookmarks.js +1 -1
  64. package/dist/esm/components/Booth/BoothOnHold.d.ts +2 -2
  65. package/dist/esm/components/Booth/BoothOnHold.js +1 -1
  66. package/dist/esm/components/Booth/BoothReserved.d.ts +2 -1
  67. package/dist/esm/components/Booth/BoothReserved.js +1 -1
  68. package/dist/esm/components/Booth/BoothWithoutExhibitor.d.ts +2 -2
  69. package/dist/esm/components/Booth/BoothWithoutExhibitor.js +1 -1
  70. package/dist/esm/components/CookieConsent.js +1 -1
  71. package/dist/esm/components/Exhibitor.js +1 -1
  72. package/dist/esm/components/Gallery/GalleryControls/GalleryControls.d.ts +2 -2
  73. package/dist/esm/components/Gallery/GalleryControls/GalleryControls.js +1 -1
  74. package/dist/esm/components/Gallery/GalleryModal/GalleryModal.d.ts +2 -2
  75. package/dist/esm/components/Gallery/GalleryModal/GalleryModal.js +1 -1
  76. package/dist/esm/components/Kiosk/KioskStore.d.ts +3 -3
  77. package/dist/esm/components/Kiosk/KioskStore.js +1 -1
  78. package/dist/esm/components/Kiosk/SetKiosk/storage.d.ts +1 -1
  79. package/dist/esm/components/Kiosk/SetKiosk/storage.js +1 -1
  80. package/dist/esm/components/Kiosk/ShowKiosk.js +1 -1
  81. package/dist/esm/components/Kiosk/integrateKiosk.js +1 -1
  82. package/dist/esm/components/Language.js +1 -1
  83. package/dist/esm/components/LanguageRow.d.ts +0 -1
  84. package/dist/esm/components/LanguageRow.js +1 -1
  85. package/dist/esm/components/Layout.js +1 -1
  86. package/dist/esm/components/List.js +1 -1
  87. package/dist/esm/components/LogoOverlay.js +1 -1
  88. package/dist/esm/components/Map/Map.d.ts +0 -23
  89. package/dist/esm/components/Map/Map.js +1 -1
  90. package/dist/esm/components/Map/booth-by-xy.js +1 -1
  91. package/dist/esm/components/Map/drawing/config/TextFitter.d.ts +1 -1
  92. package/dist/esm/components/Map/drawing/config/config-all.d.ts +2 -3
  93. package/dist/esm/components/Map/drawing/config/config-all.js +1 -1
  94. package/dist/esm/components/Map/drawing/config/config-bg.d.ts +1 -1
  95. package/dist/esm/components/Map/drawing/config/config-bg.js +1 -1
  96. package/dist/esm/components/Map/drawing/config/config-booth-badge.d.ts +9 -0
  97. package/dist/esm/components/Map/drawing/config/config-booth-badge.js +1 -0
  98. package/dist/esm/components/Map/drawing/config/config-booth-bg.d.ts +5 -5
  99. package/dist/esm/components/Map/drawing/config/config-booth-bg.js +1 -1
  100. package/dist/esm/components/Map/drawing/config/config-booth-bookmark.d.ts +5 -5
  101. package/dist/esm/components/Map/drawing/config/config-booth-bookmark.js +1 -1
  102. package/dist/esm/components/Map/drawing/config/config-booth-border.d.ts +3 -3
  103. package/dist/esm/components/Map/drawing/config/config-booth-border.js +1 -1
  104. package/dist/esm/components/Map/drawing/config/config-booth-labels-special.d.ts +6 -6
  105. package/dist/esm/components/Map/drawing/config/config-booth-labels-special.js +2 -2
  106. package/dist/esm/components/Map/drawing/config/config-booth-labels.d.ts +5 -5
  107. package/dist/esm/components/Map/drawing/config/config-booth-labels.js +1 -1
  108. package/dist/esm/components/Map/drawing/config/config-booth-scaled.d.ts +3 -3
  109. package/dist/esm/components/Map/drawing/config/config-booth-scaled.js +1 -1
  110. package/dist/esm/components/Map/drawing/config/config-booths.d.ts +2 -2
  111. package/dist/esm/components/Map/drawing/config/config-booths.js +1 -1
  112. package/dist/esm/components/Map/drawing/config/config-load-layer.d.ts +2 -2
  113. package/dist/esm/components/Map/drawing/config/config-load-layer.js +1 -1
  114. package/dist/esm/components/Map/drawing/config/config-markers.d.ts +2 -3
  115. package/dist/esm/components/Map/drawing/config/config-markers.js +1 -1
  116. package/dist/esm/components/Map/drawing/config/config-wf.d.ts +2 -5
  117. package/dist/esm/components/Map/drawing/config/config-wf.js +1 -1
  118. package/dist/esm/components/Map/drawing/config/loadBoothsImages.d.ts +2 -3
  119. package/dist/esm/components/Map/drawing/config/loadBoothsImages.js +1 -1
  120. package/dist/esm/components/Map/drawing/config/route-snapping/snapPositionToRoute.d.ts +1 -1
  121. package/dist/esm/components/Map/drawing/config/route-snapping/snapPositionToRoute.js +1 -1
  122. package/dist/esm/components/Map/drawing/config/route-snapping/splitRouteByPoint.d.ts +1 -1
  123. package/dist/esm/components/Map/drawing/config/route-snapping/splitRouteByPoint.js +1 -1
  124. package/dist/esm/components/Map/drawing/config/route-snapping/types.d.ts +1 -1
  125. package/dist/esm/components/Map/drawing/config/route-snapping/utils.d.ts +1 -1
  126. package/dist/esm/components/Map/traffic/useBuildRoute.d.ts +3 -5
  127. package/dist/esm/components/Map/traffic/useBuildRoute.js +6 -6
  128. package/dist/esm/components/Map/traffic/useManageTraffic.d.ts +3 -5
  129. package/dist/esm/components/Map/traffic/useManageTraffic.js +1 -1
  130. package/dist/esm/components/MarketMaterialList.d.ts +3 -3
  131. package/dist/esm/components/MarketMaterialList.js +1 -1
  132. package/dist/esm/components/Menu.js +1 -2
  133. package/dist/esm/components/MobileToggleButton.js +1 -1
  134. package/dist/esm/components/MultiSelectGroups.d.ts +2 -2
  135. package/dist/esm/components/MultiSelectGroups.js +1 -1
  136. package/dist/esm/components/Overlay.d.ts +2 -0
  137. package/dist/esm/components/Overlay.js +1 -1
  138. package/dist/esm/components/OverlayContainer.js +1 -1
  139. package/dist/esm/components/QrCode.d.ts +46 -0
  140. package/dist/esm/components/QrCode.js +1 -0
  141. package/dist/esm/components/RebookingNotes.d.ts +2 -2
  142. package/dist/esm/components/RebookingNotes.js +1 -1
  143. package/dist/esm/components/RebookingRadioGroup.d.ts +2 -2
  144. package/dist/esm/components/RebookingRadioGroup.js +1 -1
  145. package/dist/esm/components/RoutePlanner/RoutePlanner.d.ts +4 -0
  146. package/dist/esm/components/RoutePlanner/RoutePlanner.js +1 -0
  147. package/dist/esm/components/RoutePlanner/RoutePlannerHeader.d.ts +4 -0
  148. package/dist/esm/components/RoutePlanner/RoutePlannerHeader.js +1 -0
  149. package/dist/esm/components/RoutePlanner/RoutePlannerStartPoint.d.ts +9 -0
  150. package/dist/esm/components/RoutePlanner/RoutePlannerStartPoint.js +1 -0
  151. package/dist/esm/components/RoutePlanner/RoutePlannerStopItem.d.ts +9 -0
  152. package/dist/esm/components/RoutePlanner/RoutePlannerStopItem.js +1 -0
  153. package/dist/esm/components/RouteQR.d.ts +2 -2
  154. package/dist/esm/components/RouteQR.js +1 -1
  155. package/dist/esm/components/Schedule.js +1 -1
  156. package/dist/esm/components/SearchBox.js +1 -1
  157. package/dist/esm/components/Sessions.js +1 -1
  158. package/dist/esm/components/Share.d.ts +2 -2
  159. package/dist/esm/components/Share.js +1 -1
  160. package/dist/esm/components/SidebarActions.d.ts +3 -0
  161. package/dist/esm/components/SidebarActions.js +1 -1
  162. package/dist/esm/components/SpeakersFiltersModal.js +1 -1
  163. package/dist/esm/components/ViewerMenuPanel.d.ts +5 -0
  164. package/dist/esm/components/ViewerMenuPanel.js +1 -0
  165. package/dist/esm/components/Wayfinding.d.ts +2 -2
  166. package/dist/esm/components/Wayfinding.js +1 -1
  167. package/dist/esm/components/WayfindingTemplate.d.ts +2 -2
  168. package/dist/esm/components/WayfindingTemplate.js +1 -1
  169. package/dist/esm/components/gps/GpsPermissionRequest.d.ts +4 -2
  170. package/dist/esm/components/gps/GpsPermissionRequest.js +1 -1
  171. package/dist/esm/components/index.d.ts +1 -3
  172. package/dist/esm/components/index.js +1 -1
  173. package/dist/esm/constants.d.ts +7 -0
  174. package/dist/esm/constants.js +1 -1
  175. package/dist/esm/data/tours.json +114 -0
  176. package/dist/esm/floorplan.loader.d.ts +5 -0
  177. package/dist/esm/floorplan.loader.js +1 -1
  178. package/dist/esm/floorplan.ready.d.ts +6 -3
  179. package/dist/esm/floorplan.ready.js +1 -1
  180. package/dist/esm/index.d.ts +0 -2
  181. package/dist/esm/index.js +1 -1
  182. package/dist/esm/load.d.ts +4 -1
  183. package/dist/esm/load.js +2 -2
  184. package/dist/esm/offline/offlineManager.js +1 -1
  185. package/dist/esm/renderer/HandlerRegistry.d.ts +18 -0
  186. package/dist/esm/renderer/HandlerRegistry.js +1 -0
  187. package/dist/esm/renderer/RendererService.d.ts +26 -0
  188. package/dist/esm/renderer/RendererService.js +1 -0
  189. package/dist/esm/renderer/engine-core/animation.d.ts +7 -0
  190. package/dist/esm/renderer/engine-core/animation.js +1 -0
  191. package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/canvases.d.ts +1 -1
  192. package/dist/esm/renderer/engine-core/canvases.js +1 -0
  193. package/dist/esm/renderer/engine-core/fonts.js +1 -0
  194. package/dist/esm/renderer/engine-core/types.js +1 -0
  195. package/dist/esm/{components/Map/drawing/config/engine-core → renderer}/index.d.ts +10 -10
  196. package/dist/esm/renderer/index.js +1 -0
  197. package/dist/esm/services/routing.js +1 -1
  198. package/dist/esm/store/BookmarksStore.d.ts +12 -0
  199. package/dist/esm/store/BookmarksStore.js +2 -0
  200. package/dist/esm/store/FuzzySearchEngineStore.d.ts +7 -3
  201. package/dist/esm/store/FuzzySearchEngineStore.js +1 -1
  202. package/dist/esm/store/LayerStore.d.ts +1 -0
  203. package/dist/esm/store/LayerStore.js +1 -1
  204. package/dist/esm/store/RootStore.d.ts +10 -10
  205. package/dist/esm/store/RootStore.js +1 -1
  206. package/dist/esm/store/RoutePlannerStore.d.ts +58 -0
  207. package/dist/esm/store/RoutePlannerStore.js +1 -0
  208. package/dist/esm/store/RouteStore.d.ts +1 -1
  209. package/dist/esm/store/RouteStore.js +1 -1
  210. package/dist/esm/store/SearchStore.d.ts +2 -0
  211. package/dist/esm/store/SearchStore.js +1 -1
  212. package/dist/esm/store/ToursStore.js +1 -1
  213. package/dist/esm/store/UIState.d.ts +10 -7
  214. package/dist/esm/store/UIState.js +1 -1
  215. package/dist/esm/store/init/index.js +1 -1
  216. package/dist/esm/store/init/init-bookmarks.d.ts +7 -0
  217. package/dist/esm/store/init/init-bookmarks.js +1 -0
  218. package/dist/esm/store/init/init-events.d.ts +1 -1
  219. package/dist/esm/store/init/init-events.js +1 -1
  220. package/dist/esm/store/init/init-exhibitors.d.ts +1 -1
  221. package/dist/esm/store/init/init-exhibitors.js +1 -1
  222. package/dist/esm/store/init/init-layers.js +1 -1
  223. package/dist/esm/store/init/init-speakers.d.ts +1 -1
  224. package/dist/esm/store/init/init-speakers.js +1 -1
  225. package/dist/esm/store/search-buttons/SearchButtonsStore.d.ts +1 -1
  226. package/dist/esm/store/search-buttons/SearchButtonsStore.js +1 -1
  227. package/dist/esm/store/types.d.ts +11 -3
  228. package/dist/esm/tools/base-runtime-url.js +1 -1
  229. package/dist/esm/tools/sentry.js +1 -1
  230. package/dist/esm/tools/telemetry.d.ts +35 -0
  231. package/dist/esm/tools/telemetry.js +1 -0
  232. package/dist/esm/tools/track-event.d.ts +3 -1
  233. package/dist/esm/tools/track-event.js +1 -1
  234. package/dist/esm/utils/buildOptimizedRoute.d.ts +11 -0
  235. package/dist/esm/utils/buildOptimizedRoute.js +1 -0
  236. package/dist/esm/utils/geometry.d.ts +2 -0
  237. package/dist/esm/utils/geometry.js +1 -0
  238. package/dist/esm/utils/i18n.d.ts +6 -4
  239. package/dist/esm/utils/i18n.js +1 -1
  240. package/dist/esm/utils/loadCustomCss.d.ts +1 -1
  241. package/dist/esm/utils/loadCustomCss.js +1 -1
  242. package/dist/esm/utils/mapEntity.js +1 -1
  243. package/dist/esm/utils/math.d.ts +7 -0
  244. package/dist/esm/utils/math.js +1 -0
  245. package/dist/esm/utils/shortenName.js +1 -1
  246. package/dist/esm/utils/use-shadow.d.ts +1 -1
  247. package/dist/esm/utils/use-shadow.js +1 -1
  248. package/dist/esm/utils/useRenderTarget.js +1 -1
  249. package/dist/esm/wayfinding/_PLAN-public-api.d.ts +220 -0
  250. package/dist/esm/wayfinding/_PLAN-public-api.js +1 -0
  251. package/dist/esm/{utils/wayfinding.d.ts → wayfinding/__integration__/legacy/legacyWayfinding.d.ts} +5 -15
  252. package/dist/esm/wayfinding/__integration__/legacy/legacyWayfinding.js +1 -0
  253. package/dist/esm/wayfinding/__tests__/helpers.d.ts +21 -0
  254. package/dist/esm/wayfinding/__tests__/helpers.js +1 -0
  255. package/dist/esm/wayfinding/adapters/boothToWaypoint.d.ts +12 -0
  256. package/dist/esm/wayfinding/adapters/boothToWaypoint.js +1 -0
  257. package/dist/esm/wayfinding/adapters/graphDataSource.d.ts +3 -0
  258. package/dist/esm/wayfinding/adapters/graphDataSource.js +1 -0
  259. package/dist/esm/wayfinding/graph/buildGraph.d.ts +3 -0
  260. package/dist/esm/wayfinding/graph/buildGraph.js +1 -0
  261. package/dist/esm/wayfinding/graph/buildNGraph.d.ts +9 -0
  262. package/dist/esm/wayfinding/graph/buildNGraph.js +1 -0
  263. package/dist/esm/wayfinding/graph/constants.d.ts +3 -0
  264. package/dist/esm/wayfinding/graph/constants.js +1 -0
  265. package/dist/esm/wayfinding/graph/findShortestPath.d.ts +14 -0
  266. package/dist/esm/wayfinding/graph/findShortestPath.js +1 -0
  267. package/dist/esm/wayfinding/graph/graphCache.d.ts +6 -0
  268. package/dist/esm/wayfinding/graph/graphCache.js +1 -0
  269. package/dist/esm/wayfinding/graph/graphHelpers.d.ts +8 -0
  270. package/dist/esm/wayfinding/graph/graphHelpers.js +1 -0
  271. package/dist/esm/wayfinding/graph/linkCost.d.ts +4 -0
  272. package/dist/esm/wayfinding/graph/linkCost.js +1 -0
  273. package/dist/esm/wayfinding/graph/pathfinder/aStarPathFinder.d.ts +3 -0
  274. package/dist/esm/wayfinding/graph/pathfinder/aStarPathFinder.js +1 -0
  275. package/dist/esm/wayfinding/graph/pathfinder/parseNodeId.d.ts +9 -0
  276. package/dist/esm/wayfinding/graph/pathfinder/parseNodeId.js +1 -0
  277. package/dist/esm/wayfinding/index.d.ts +18 -0
  278. package/dist/esm/wayfinding/index.js +1 -0
  279. package/dist/esm/wayfinding/rendering/computeTransitionPoints.d.ts +31 -0
  280. package/dist/esm/wayfinding/rendering/computeTransitionPoints.js +1 -0
  281. package/dist/esm/wayfinding/rendering/normalizeRouteDirection.d.ts +19 -0
  282. package/dist/esm/wayfinding/rendering/normalizeRouteDirection.js +1 -0
  283. package/dist/esm/wayfinding/rendering/routeGeometry.d.ts +16 -0
  284. package/dist/esm/wayfinding/rendering/routeGeometry.js +1 -0
  285. package/dist/esm/wayfinding/routing/buildMultiPointRoute.d.ts +11 -0
  286. package/dist/esm/wayfinding/routing/buildMultiPointRoute.js +1 -0
  287. package/dist/esm/wayfinding/routing/buildRoute.d.ts +9 -0
  288. package/dist/esm/wayfinding/routing/buildRoute.js +1 -0
  289. package/dist/esm/wayfinding/routing/findNearestGraphPoint.d.ts +21 -0
  290. package/dist/esm/wayfinding/routing/findNearestGraphPoint.js +1 -0
  291. package/dist/esm/wayfinding/routing/getGraphLines.d.ts +14 -0
  292. package/dist/esm/wayfinding/routing/getGraphLines.js +1 -0
  293. package/dist/esm/wayfinding/routing/getRouteLength.d.ts +3 -0
  294. package/dist/esm/wayfinding/routing/getRouteLength.js +1 -0
  295. package/dist/esm/wayfinding/routing/routeResult.d.ts +4 -0
  296. package/dist/esm/wayfinding/routing/routeResult.js +1 -0
  297. package/dist/esm/wayfinding/types.d.ts +76 -0
  298. package/dist/esm/wayfinding/types.js +1 -0
  299. package/package.json +4 -8
  300. package/dist/browser/Debug-k5RKtjZM.js +0 -31
  301. package/dist/browser/Demo-CgMWCXus.js +0 -38
  302. package/dist/browser/Free-D7jT727E.js +0 -42
  303. package/dist/browser/Gallery-xjcSyY62.js +0 -279
  304. package/dist/browser/GpsLoader-_4iMtlKj.js +0 -131
  305. package/dist/browser/KioskStore-P8qIruSD.js +0 -216
  306. package/dist/browser/Mapbox-C7QZjYtQ.js +0 -109
  307. package/dist/browser/boolean-editor-C56suuE-.js +0 -148
  308. package/dist/browser/debug-ui-xTxa_Css.js +0 -58
  309. package/dist/browser/fetch-retry.umd-D12eSIuK.js +0 -114
  310. package/dist/browser/index-04R_J8Na.js +0 -45
  311. package/dist/browser/index-1HPoYB-N.js +0 -12526
  312. package/dist/browser/index-D1Nh_Rku.js +0 -48
  313. package/dist/browser/index-DmIJrF5Z.js +0 -83
  314. package/dist/browser/jsx-runtime-jIxVPx5o.js +0 -31
  315. package/dist/browser/sw.js +0 -2
  316. package/dist/esm/components/BoothRow.d.ts +0 -8
  317. package/dist/esm/components/BoothRow.js +0 -1
  318. package/dist/esm/components/ExhibitorRow.d.ts +0 -9
  319. package/dist/esm/components/ExhibitorRow.js +0 -1
  320. package/dist/esm/components/Map/drawing/config/engine-core/animation.d.ts +0 -3
  321. package/dist/esm/components/Map/drawing/config/engine-core/animation.js +0 -1
  322. package/dist/esm/components/Map/drawing/config/engine-core/canvases.js +0 -1
  323. package/dist/esm/components/Map/drawing/config/engine-core/fonts.js +0 -1
  324. package/dist/esm/components/Map/drawing/config/engine-core/index.js +0 -1
  325. package/dist/esm/components/Map/drawing/config/engine-core/renderer.d.ts +0 -4
  326. package/dist/esm/components/Map/drawing/config/engine-core/renderer.js +0 -1
  327. package/dist/esm/components/ScheduleRow.d.ts +0 -8
  328. package/dist/esm/components/ScheduleRow.js +0 -1
  329. package/dist/esm/expofp-debug.d.ts +0 -5
  330. package/dist/esm/expofp-debug.js +0 -1
  331. package/dist/esm/offline/sw.d.ts +0 -2
  332. package/dist/esm/offline/sw.js +0 -1
  333. package/dist/esm/store/LanguageStore.d.ts +0 -19
  334. package/dist/esm/store/LanguageStore.js +0 -1
  335. package/dist/esm/store/init/init-language.d.ts +0 -3
  336. package/dist/esm/store/init/init-language.js +0 -1
  337. package/dist/esm/utils/toRadians.d.ts +0 -3
  338. package/dist/esm/utils/toRadians.js +0 -1
  339. package/dist/esm/utils/wayfinding.js +0 -1
  340. package/dist/stats.html +0 -4950
  341. /package/dist/esm/{components/Map/drawing/config/engine-core/types.js → _misc_to_move/manifest.js} +0 -0
  342. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/defs.d.ts +0 -0
  343. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/defs.js +0 -0
  344. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/fonts.d.ts +0 -0
  345. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/settings.d.ts +0 -0
  346. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/settings.js +0 -0
  347. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/types.d.ts +0 -0
  348. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/update-def.d.ts +0 -0
  349. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/update-def.js +0 -0
  350. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/utils/rotation.d.ts +0 -0
  351. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/utils/rotation.js +0 -0
@@ -15,6 +15,7 @@ export default class FloorPlanLoader implements FloorPlan {
15
15
  readonly allowConsent: boolean | undefined;
16
16
  readonly onInit: (fp: FloorPlan) => void;
17
17
  readonly disableRuntimeAlerts: boolean;
18
+ readonly viewerMode: boolean;
18
19
  protected efpStyleLoadHandler: (e: Event) => void;
19
20
  protected resolveReady: () => void;
20
21
  readonly icons: Map<FloorPlanIcon, HTMLImageElement>;
@@ -32,6 +33,7 @@ export default class FloorPlanLoader implements FloorPlan {
32
33
  onExhibitorCustomButtonClick: (e: FloorPlanCustomButtonEvent) => void;
33
34
  onGetCoordsClick: (e: FloorPlanGetCoordsEvent) => void;
34
35
  onMarkerClick: (e: FloorPlanMarkerEvent) => void;
36
+ onLeaveEvent: () => void;
35
37
  selectBooth(nameOrExternalId: string | string[]): void;
36
38
  selectExhibitor(nameOrExternalId: string | string[]): void;
37
39
  selectRoute(startOrWaypoints: RouteWaypoint | RouteWaypoint[], to?: RouteWaypoint): void;
@@ -97,6 +99,9 @@ export default class FloorPlanLoader implements FloorPlan {
97
99
  changeLanguage(langId: string): void;
98
100
  isGpsTrackingEnabled(): boolean;
99
101
  setGpsTrackingEnabled(value: boolean): void;
102
+ deselectCurrentPosition(): void;
103
+ deselectRoute(): void;
104
+ reset(): void;
100
105
  constructor(options?: FloorPlanOptions);
101
106
  }
102
107
  //# sourceMappingURL=floorplan.loader.d.ts.map
@@ -1 +1 @@
1
- import{PREVIEW_MODE_ATTRIBUTE as M}from"./constants";import l from"./tools/base-runtime-url";import{buildRebookingUrl as V,getRebookingToken as H,retainRebookingToken as z}from"./tools/rebookingUrl";import{loadCss as x,loadFont as g,loadJs as b}from"./tools/loaders";import U from"./tools/logger";import{sleep as G}from"./utils";import{initI18n as N}from"./utils/i18n";import S from"./utils/is-webview";import{loadCustomCss as Q}from"./utils/loadCustomCss";import{loadIcons as q}from"./utils/loadIcons";import W from"./utils/mergeExhibitors";import L from"./utils/use-shadow";import $ from"./utils/is-debug";import J from"./utils/is-localhost";import{initSentry as K}from"./tools/sentry";function t(){throw new Error("FloorPlan not ready")}export default class Y{options;renderTarget;_ready;element;eventId;dataUrl;noOverlay;offHistory;ignoreQuery;allowConsent;onInit;disableRuntimeAlerts;efpStyleLoadHandler;resolveReady;icons=new Map;enableRotation=!0;alwaysShowSidebar=!1;get ready(){return this._ready}get previewMode(){return this.options.previewMode||this.element.hasAttribute(M)}onBoothClick;onBookmarkClick;onVisitedClick;onCategoryClick;onFpConfigured;onDirection;onDetails;onExhibitorCustomButtonClick;onGetCoordsClick;onMarkerClick;selectBooth(e){t()}selectExhibitor(e){t()}selectRoute(e,a){t()}getOptimizedRoutes(e){t()}selectCurrentPosition(e,a,h){t()}setBookmarks(e){t()}setEntitiesBookmarks(e){t()}setEntitiesVisited(e){t()}setMarkers(e){t()}updateLayerVisibility(e,a){t()}getCenterCoordinates(){t()}applyParameters(e){t()}exhibitorsList(){t()}boothsList(){t()}categoriesList(){t()}selectCategory(e){t()}getVisibility(){t()}setVisibility(e){t()}findLocation(){t()}zoomIn(){t()}zoomOut(){t()}zoomTo(e,a){t()}switchView(){t()}fitBounds(){t()}getBounds(e){t()}getBoothRect(e){t()}convertToGeo(e,a){t()}unstable_destroy(){t()}highlightExhibitors(e){t()}highlightBooths(e){t()}onCurrentPositionChanged(e){t()}search(e){t()}getFloors(){t()}onFloorActivated(e){t()}activateFloor(e){t()}showPathway(e,a){t()}showPathwayOnly(e,a){t()}hidePathways(){t()}showSearch(){t()}changeLanguage(e){t()}isGpsTrackingEnabled(){t()}setGpsTrackingEnabled(e){t()}constructor(e){this.options=e,this.noOverlay=!!e.noOverlay,this.offHistory=!!e.offHistory,this.ignoreQuery=e.ignoreQuery,this.allowConsent=J&&!$?!1:e.allowConsent,this.onBoothClick=e.onBoothClick,this.onBookmarkClick=e.onBookmarkClick,this.onVisitedClick=e.onVisitedClick,this.onCategoryClick=e.onCategoryClick,this.onDetails=e.onDetails,this.onExhibitorCustomButtonClick=e.onExhibitorCustomButtonClick,this.onGetCoordsClick=e.onGetCoordsClick,this.onMarkerClick=e.onMarkerClick,this.onFpConfigured=e.onFpConfigured,this.onDirection=e.onDirection,this.onInit=e.onInit,this.onCurrentPositionChanged=e.onCurrentPositionChanged,this.onFloorActivated=e.onFloorActivated,this.disableRuntimeAlerts=e.disableRuntimeAlerts??!0,this._ready=new Promise((d,i)=>{this.resolveReady=d});const a=e.element;if(this.element=a,a.__expofp)throw new Error("Element already in use");if(a.__expofp=this,a.getAttribute("data-event-id")||a.getAttribute("data-event"))throw new Error("data-xxx attributes are removed, use options instead");const h=e.expo||e.event;if(!h)throw new Error("`expo` option is required");K({eventId:h||"",isWebview:S}),this.eventId=h,window.__efpEvent=h,window.__efpElement=a;const E=[...a.classList];a.classList.remove(...E),a.classList.add("expofp-floorplan-default",...E);const B=document.head||document.getElementsByTagName("head")[0],P=document.createElement("style");B.prepend(P),P.textContent=".expofp-floorplan-default { width: 100%; height: 100%;}";const m=document.createElement("div");m.style.height="100%",m.style.width="100%",a.appendChild(m);let s;if(S&&(this.allowConsent=!0),e.allowConsent===void 0){const i=new URL(window.location.href).searchParams.get("allowConsent");i&&(this.allowConsent=i==="true")}if(L){s=m.attachShadow({mode:"open"});const d=s,i=document;d.createElement=(...r)=>i.createElement(...r),d.createElementNS=(...r)=>i.createElementNS(...r),d.createTextNode=(...r)=>i.createTextNode(...r)}else s=m;const y=document.createElement("div");if(y.style.height="100%",y.style.width="100%",s.appendChild(y),L&&Object.defineProperty(y,"ownerDocument",{value:s}),this.renderTarget=y,a.getAttribute("data-data-url"))throw new Error("data-xxx attributes are removed, use options instead");const u=e.legacyDataUrlBase;window.__dataUrlBase=u,this.dataUrl=u,U.log("Instantiating ExpoFP floorplan",e.element,h);const O=u+"data.js",j=u+"wf.data.js",I=u+"fp.svg.js",D=[b(j),b(O),b(I)];let v=0;this.efpStyleLoadHandler=function(d){const i=window.__efpStyleElements;for(;v<i.length;){const r=i[v];s.appendChild(r),v++}},window.addEventListener("__efpStyleLoad",this.efpStyleLoadHandler);const k=this;(async function(){await Promise.all(D);let i=0;for(;window.__fpPending&&!window.__fp;)await G(2e3),await b(I+`?v=${++i}`);const r=window.__data;await N();const f=new URLSearchParams(window.location.search);let w,C;if(r?.trackerUrl)try{w=new URL(r.trackerUrl),C=w.searchParams.get("expoId")}catch(o){console.error(o)}const R=async o=>{if(!w||!C)return Promise.reject(new Error("trackerUrl or expoId is missing"));const n=new URL(o.dataUrl,w.origin),c=await fetch(n.toString(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({expoId:C,token:decodeURIComponent(f.get("t"))})});let p=[];c.ok&&(p=(await c.json()).map(o.dataMapper)),window.__heatmapDataYah={yah:p}};if(f.get("heatmap")==="true")try{if(f.get("type")==="yah")f.get("subtype")==="kiosk"?await R({dataUrl:"/api/kiosks/list/viewer",dataMapper:o=>({...o,id:o.key,name:`Kiosk ${o.key}`})}):await R({dataUrl:"/api/v1/you-are-here/qr-code/list/viewer",dataMapper:(o,n)=>({...o,name:`QR Code #${n+1}`})});else{const o=new URL("/api/fp-stats/get",w.origin);o.searchParams.set("expoId",C),o.searchParams.set("type","booview"),o.searchParams.set("t",decodeURIComponent(f.get("t")));const n=new URL("api/fp-stats/get",w.origin);n.searchParams.set("expoId",C),n.searchParams.set("type","exview"),n.searchParams.set("t",decodeURIComponent(f.get("t")));const[c,p]=await Promise.all([fetch(o.toString()),fetch(n.toString())]),[_,A]=await Promise.all([c.json(),p.json()]);window.__heatmapData={booths:_,exhibitors:A}}}catch(o){console.error("Heatmap: Initialization error",o)}try{const o=H();if(o){z(o);const n=V("api/rebooking-data",{rt:o,expoKey:h}),c=await fetch(n);if(c.ok){const p=await c.json();W(r,p)}r.isRebooking=c.ok}else r.isRebooking=!1}catch(o){console.error(o)}const T=[x(l+"vendor/sanitize-css/sanitize.css",s),x(l+"vendor/perfect-scrollbar/css/perfect-scrollbar.css",s),x(l+"vendor/mapbox/mapbox-gl.css",s),g("Oswald",l+"fonts/oswald-v17-cyrillic_latin-300.woff",{weight:300}),g("Oswald",l+"fonts/oswald-v17-cyrillic_latin-500.woff",{weight:500}),g("Inter",l+"fonts/inter-400.woff2",{weight:400}),g("Inter",l+"fonts/inter-500.woff2",{weight:500}),g("Inter",l+"fonts/inter-600.woff2",{weight:600}),g("efp-symbols",l+"fonts/efp-symbols.woff",{weight:400}),Q(r),q(k.icons)];await Promise.all(T),k.enableRotation=r?.enableRotation??!1,k.alwaysShowSidebar=r?.alwaysShowSidebar??!1,U.log("Data loaded");const{default:F}=await import("./floorplan.ready");for(document.querySelectorAll(".expofp-floorplan-loader").forEach(o=>o.remove());a.firstChild&&a.firstChild!==m;)a.removeChild(a.firstChild);Object.setPrototypeOf(k,F.prototype).init()})()}}
1
+ import{PREVIEW_MODE_ATTRIBUTE as A}from"./constants";import l from"./tools/base-runtime-url";import{buildRebookingUrl as V,getRebookingToken as H,retainRebookingToken as z}from"./tools/rebookingUrl";import{loadCss as x,loadFont as g,loadJs as b}from"./tools/loaders";import S from"./tools/logger";import{sleep as G}from"./utils";import{initI18n as N}from"./utils/i18n";import L from"./utils/is-webview";import{loadCustomCss as Q}from"./utils/loadCustomCss";import{loadIcons as q}from"./utils/loadIcons";import W from"./utils/mergeExhibitors";import E from"./utils/use-shadow";import $ from"./utils/is-debug";import J from"./utils/is-localhost";import{initSentry as K}from"./tools/sentry";function t(){throw new Error("FloorPlan not ready")}export default class Y{options;renderTarget;_ready;element;eventId;dataUrl;noOverlay;offHistory;ignoreQuery;allowConsent;onInit;disableRuntimeAlerts;viewerMode;efpStyleLoadHandler;resolveReady;icons=new Map;enableRotation=!0;alwaysShowSidebar=!1;get ready(){return this._ready}get previewMode(){return this.options.previewMode||this.element.hasAttribute(A)}onBoothClick;onBookmarkClick;onVisitedClick;onCategoryClick;onFpConfigured;onDirection;onDetails;onExhibitorCustomButtonClick;onGetCoordsClick;onMarkerClick;onLeaveEvent;selectBooth(e){t()}selectExhibitor(e){t()}selectRoute(e,a){t()}getOptimizedRoutes(e){t()}selectCurrentPosition(e,a,h){t()}setBookmarks(e){t()}setEntitiesBookmarks(e){t()}setEntitiesVisited(e){t()}setMarkers(e){t()}updateLayerVisibility(e,a){t()}getCenterCoordinates(){t()}applyParameters(e){t()}exhibitorsList(){t()}boothsList(){t()}categoriesList(){t()}selectCategory(e){t()}getVisibility(){t()}setVisibility(e){t()}findLocation(){t()}zoomIn(){t()}zoomOut(){t()}zoomTo(e,a){t()}switchView(){t()}fitBounds(){t()}getBounds(e){t()}getBoothRect(e){t()}convertToGeo(e,a){t()}unstable_destroy(){t()}highlightExhibitors(e){t()}highlightBooths(e){t()}onCurrentPositionChanged(e){t()}search(e){t()}getFloors(){t()}onFloorActivated(e){t()}activateFloor(e){t()}showPathway(e,a){t()}showPathwayOnly(e,a){t()}hidePathways(){t()}showSearch(){t()}changeLanguage(e){t()}isGpsTrackingEnabled(){t()}setGpsTrackingEnabled(e){t()}deselectCurrentPosition(){t()}deselectRoute(){t()}reset(){t()}constructor(e){this.options=e,this.noOverlay=!!e.noOverlay,this.offHistory=!!e.offHistory,this.ignoreQuery=e.ignoreQuery,this.allowConsent=J&&!$?!1:e.allowConsent,this.onBoothClick=e.onBoothClick,this.onBookmarkClick=e.onBookmarkClick,this.onVisitedClick=e.onVisitedClick,this.onCategoryClick=e.onCategoryClick,this.onDetails=e.onDetails,this.onExhibitorCustomButtonClick=e.onExhibitorCustomButtonClick,this.onGetCoordsClick=e.onGetCoordsClick,this.onMarkerClick=e.onMarkerClick,this.onFpConfigured=e.onFpConfigured,this.onDirection=e.onDirection,this.onInit=e.onInit,this.onCurrentPositionChanged=e.onCurrentPositionChanged,this.onFloorActivated=e.onFloorActivated,this.onLeaveEvent=e.onLeaveEvent,this.viewerMode=!!e.viewerMode,this.disableRuntimeAlerts=e.disableRuntimeAlerts??!0,this._ready=new Promise((d,i)=>{this.resolveReady=d});const a=e.element;if(this.element=a,a.__expofp)throw new Error("Element already in use");if(a.__expofp=this,a.getAttribute("data-event-id")||a.getAttribute("data-event"))throw new Error("data-xxx attributes are removed, use options instead");const h=e.expo||e.event;if(!h)throw new Error("`expo` option is required");K({eventId:h||"",isWebview:L}),this.eventId=h,window.__efpEvent=h,window.__efpElement=a;const P=[...a.classList];a.classList.remove(...P),a.classList.add("expofp-floorplan-default",...P);const B=document.head||document.getElementsByTagName("head")[0],R=document.createElement("style");B.prepend(R),R.textContent=".expofp-floorplan-default { width: 100%; height: 100%;}";const m=document.createElement("div");m.style.height="100%",m.style.width="100%",a.appendChild(m);let n;if(L&&(this.allowConsent=!0),e.allowConsent===void 0){const i=new URL(window.location.href).searchParams.get("allowConsent");i&&(this.allowConsent=i==="true")}if(E){n=m.attachShadow({mode:"open"});const d=n,i=document;d.createElement=(...r)=>i.createElement(...r),d.createElementNS=(...r)=>i.createElementNS(...r),d.createTextNode=(...r)=>i.createTextNode(...r)}else n=m;const y=document.createElement("div");if(y.style.height="100%",y.style.width="100%",n.appendChild(y),E&&Object.defineProperty(y,"ownerDocument",{value:n}),window.__efpShadowDOMStyleParent=E?n:void 0,this.renderTarget=y,a.getAttribute("data-data-url"))throw new Error("data-xxx attributes are removed, use options instead");const u=e.legacyDataUrlBase;window.__dataUrlBase=u,this.dataUrl=u,S.log("Instantiating ExpoFP floorplan",e.element,h);const O=u+"data.js",D=u+"wf.data.js",I=u+"fp.svg.js",j=[b(D),b(O),b(I)];let v=0;this.efpStyleLoadHandler=function(d){const i=window.__efpStyleElements;for(;v<i.length;){const r=i[v];n.appendChild(r),v++}},window.addEventListener("__efpStyleLoad",this.efpStyleLoadHandler);const k=this;(async function(){await Promise.all(j);let i=0;for(;window.__fpPending&&!window.__fp;)await G(2e3),await b(I+`?v=${++i}`);const r=window.__data;await N();const f=new URLSearchParams(window.location.search);let w,C;if(r?.trackerUrl)try{w=new URL(r.trackerUrl),C=w.searchParams.get("expoId")}catch(o){console.error(o)}const _=async o=>{if(!w||!C)return Promise.reject(new Error("trackerUrl or expoId is missing"));const s=new URL(o.dataUrl,w.origin),c=await fetch(s.toString(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({expoId:C,token:decodeURIComponent(f.get("t"))})});let p=[];c.ok&&(p=(await c.json()).map(o.dataMapper)),window.__heatmapDataYah={yah:p}};if(f.get("heatmap")==="true")try{if(f.get("type")==="yah")f.get("subtype")==="kiosk"?await _({dataUrl:"/api/kiosks/list/viewer",dataMapper:o=>({...o,id:o.key,name:`Kiosk ${o.key}`})}):await _({dataUrl:"/api/v1/you-are-here/qr-code/list/viewer",dataMapper:(o,s)=>({...o,name:`QR Code #${s+1}`})});else{const o=new URL("/api/fp-stats/get",w.origin);o.searchParams.set("expoId",C),o.searchParams.set("type","booview"),o.searchParams.set("t",decodeURIComponent(f.get("t")));const s=new URL("api/fp-stats/get",w.origin);s.searchParams.set("expoId",C),s.searchParams.set("type","exview"),s.searchParams.set("t",decodeURIComponent(f.get("t")));const[c,p]=await Promise.all([fetch(o.toString()),fetch(s.toString())]),[U,F]=await Promise.all([c.json(),p.json()]);window.__heatmapData={booths:U,exhibitors:F}}}catch(o){console.error("Heatmap: Initialization error",o)}try{const o=H();if(o){z(o);const s=V("api/rebooking-data",{rt:o,expoKey:h}),c=await fetch(s);if(c.ok){const p=await c.json();W(r,p)}r.isRebooking=c.ok}else r.isRebooking=!1}catch(o){console.error(o)}const T=[x(l+"vendor/sanitize-css/sanitize.css",n),x(l+"vendor/perfect-scrollbar/css/perfect-scrollbar.css",n),x(l+"vendor/mapbox/mapbox-gl.css",n),g("Oswald",l+"fonts/oswald-v17-cyrillic_latin-300.woff",{weight:300}),g("Oswald",l+"fonts/oswald-v17-cyrillic_latin-500.woff",{weight:500}),g("Inter",l+"fonts/inter-400.woff2",{weight:400}),g("Inter",l+"fonts/inter-500.woff2",{weight:500}),g("Inter",l+"fonts/inter-600.woff2",{weight:600}),g("efp-symbols",l+"fonts/efp-symbols.woff",{weight:400}),Q(r,n),q(k.icons)];await Promise.all(T),k.enableRotation=r?.enableRotation??!1,k.alwaysShowSidebar=r?.alwaysShowSidebar??!1,S.log("Data loaded");const{default:M}=await import("./floorplan.ready");for(document.querySelectorAll(".expofp-floorplan-loader").forEach(o=>o.remove());a.firstChild&&a.firstChild!==m;)a.removeChild(a.firstChild);Object.setPrototypeOf(k,M.prototype).init()})()}}
@@ -1,8 +1,8 @@
1
1
  import { createRoot } from "react-dom/client";
2
2
  import FloorPlanLoader from "./floorplan.loader";
3
- import type { CurrentPosition, MarkersData } from "./store/RouteStore";
4
- import type { Visibility } from "./store/types";
5
- import type Rect from "./core/Rect";
3
+ import { CurrentPosition, MarkersData } from "./store/RouteStore";
4
+ import { Visibility } from "./store/types";
5
+ import Rect from "./core/Rect";
6
6
  import { Bounds, POISelectors } from "./types/sdk.types";
7
7
  export default class FloorPlanReady extends FloorPlanLoader {
8
8
  root: ReturnType<typeof createRoot>;
@@ -80,5 +80,8 @@ export default class FloorPlanReady extends FloorPlanLoader {
80
80
  changeLanguage(langId: string): void;
81
81
  isGpsTrackingEnabled(): boolean;
82
82
  setGpsTrackingEnabled(value: boolean): void;
83
+ deselectCurrentPosition(): void;
84
+ deselectRoute(): void;
85
+ reset(): void;
83
86
  }
84
87
  //# sourceMappingURL=floorplan.ready.d.ts.map
@@ -1 +1 @@
1
- import{jsx as y,Fragment as L,jsxs as k}from"react/jsx-runtime";import{reaction as T}from"mobx";import{createRoot as C}from"react-dom/client";import{install as R}from"resize-observer";import I from"./components/Layout";import V from"./floorplan.loader";import{applyParameters as M,destroyHistory as $,initRouting as z}from"./services/routing";import r from"./store";import{Route as p,findBooth as S,separateExternalIds as b}from"./store/RouteStore";import{destroyUiHandlers as j}from"./store/init/init-ui";import{GaEventActions as x,destroyGtag as G,sendEventToGa as E,setConsentSettings as _}from"./tools/gtag";import q from"./tools/report-error";import{resetGlobalVariables as N}from"./tools/reset";import H from"./tools/track-event";import{fpGeo as P}from"./components/Mapbox/utils/fpGeo";import{convertLocalToGps as Y,isValidPointCoords as d}from"./utils/gps";import{DistanceOptimizedRoute as w}from"./utils/wayfinding";import{mapEntity as m}from"./utils/mapEntity";import{LANG_KEY as X,PATHWAY_KEY as D}from"./constants";import{getStorage as v}from"./utils/entity-storage";import{ErrorBoundary as K}from"@sentry/react";import{POISelectorsSchema as B,BoundsSchema as O,ZoomToOptionsSchema as F}from"./schemas/sdk.schemas";import U from"debug";const g=U("efp:api");R();export default class W extends V{root;init(){this.ignoreQuery||z(this.offHistory),H("load"),r.fp=this,_(this.allowConsent),E(x.Load,""),this.root=C(this.renderTarget),this.root.render(y(K,{children:y(I,{offHistory:this.offHistory,allowConsent:this.allowConsent})})),E(x.Rendered,""),T(()=>r.layerStore.layersLoaded,()=>{this.resolveReady(),r.initialized||this.onInit?.(this),r.initialized=!0})}selectBooth(e){if(typeof e!="string"&&!Array.isArray(e)){a("selectBooth","Parameter must be a string or an array of strings.","EFP000000");return}const s=r.boothStore.booths.filter(o=>typeof e=="string"?o.name===e||o.externalId===e:e.includes(o.name)||e.includes(o.externalId));r.selectBooth(s)}selectExhibitor(e){if(typeof e!="string"&&!Array.isArray(e)){a("selectExhibitor","Parameter must be a string or an array of strings.","EFP000100");return}if(!e?.length){r.uiState.menu=!1,r.searchStore.resetSearchBox(),r.uiState.details=null;return}const s=r.exhibitorStore.exhibitors.filter(i=>typeof e=="string"?i.name===e||i.externalId===e:e.includes(i.name)||e.includes(i.externalId));if(!s?.length)return;if(typeof e=="string"){r.selectExhibitor(s[0]),r.moveToList([s[0]]);return}const o=s.flatMap(i=>i.booths.map(t=>t.layer)),{description:n}=o.reduce((i,t)=>(i.freq[t.description]=(i.freq[t.description]||0)+1,i.freq[t.description]>i.maxCount&&(i.maxCount=i.freq[t.description],i.mostFrequent=t),i),{freq:{},mostFrequent:o[0],maxCount:0}).mostFrequent;r.layerStore.updateVisibility(n,!0),r.uiState.menu=!1,r.searchStore.resetSearchBox(),r.uiState.details=null,r.uiState.list={type:"filter",items:s,query:{key:"exhibitors",value:s.map(i=>i.externalId).join(",")}},r.moveToList()}highlightExhibitors(e){Array.isArray(e)||a("highlightExhibitors","Parameter must be an array of strings.","EFP000200"),r.boothStore.highlightedByExternalIds=[],r.exhibitorStore.highlightedByExternalIds=[...e]}highlightBooths(e){Array.isArray(e)||a("highlightBooths","Parameter must be an array of strings.","EFP000300"),r.exhibitorStore.highlightedByExternalIds=[],r.boothStore.highlightedByExternalIds=[...e]}highlightEntities(e){Array.isArray(e)||a("highlightEntities","Parameter must be an array of strings.","EFP000400");const{boothExternalIds:s,exhibitorExternalIds:o}=b(e);r.boothStore.highlightedByExternalIds=[...s],r.exhibitorStore.highlightedByExternalIds=[...o]}selectRoute(e,s){if(Array.isArray(e)){let o=[...e];const n=o.shift(),i=o.pop(),t=8;if(o.length>t&&(o=o.slice(0,t),a("selectRoute",`The maximum number of waypoints is ${t}.`,"EFP000400")),!n||!i){a("selectRoute","Invalid route format: When providing an array, it must include at least two points: a start and a destination.","EFP000401");return}r.routeStore.selectRoute(new p(u(n),u(i),o.map(u)));return}e||a("selectRoute","At a minimum, the starting point must be passed.","EFP000402"),r.routeStore.selectRoute(new p(u(e),u(s)))}getOptimizedRoutes(e){Array.isArray(e)||a("getOptimizedRoutes","Parameter must be an array.","EFP000500");const s=e.map(u).filter(i=>!!i);if(!s.length)return e;const o=s.reduce((i,t)=>{const l=t.layer?.name;return l&&(i.has(l)||i.set(l,new Set),i.get(l).add(t)),i},new Map);let n=e;return o.size?n=Array.from(o.values(),i=>new w(Array.from(i,t=>[t.name,t.rect]))).flatMap(i=>i.waypoints):n=new w(s.map(i=>[i.name,i.rect])).waypoints,[{waypoints:n}]}selectCurrentPosition(e,s,o){const n=d(e.x)&&d(e.y),i=d(e.lng)&&d(e.lat);!n&&!i&&a("selectCurrentPosition","A point must be passed. Either (x,y) or (lat,lng) are required.","EFP000600"),r.routeStore.selectCurrentPosition(e,s,o),this.onCurrentPositionChanged?.(e)}setBookmarks(e){(!Array.isArray(e)||!e.length)&&a("setBookmarks","Parameter must be an array.","EFP000700"),e.forEach(s=>{const o=r.exhibitorStore.exhibitors.find(n=>n.name===s.name||n.externalId===s.externalId);o&&(o.bookmarked=s.bookmarked)})}setEntitiesBookmarks(e){if(!Array.isArray(e)||!e.length){a("setEntitiesBookmarks","Parameter must be an array.","EFP000701");return}const s=["exhibitor","event","speaker","booth"],o=e.find(t=>!t.type||!s.includes(t.type));if(o){a("setEntitiesBookmarks",`Invalid entity type: ${o.type}. Must be one of: ${s.join(", ")}.`,"EFP000702");return}const n=v("bookmarked"),i={exhibitor:{existingIds:new Set(n.exhibitors||[]),finder:t=>r.exhibitorStore.findExhibitor(t),replacer:t=>r.exhibitorStore.replaceBookmarked(t)},event:{existingIds:new Set(n.events||[]),finder:t=>r.eventStore.findByNameOrSlug(t),replacer:t=>r.eventStore.replaceBookmarked(t)},speaker:{existingIds:new Set(n.speakers||[]),finder:t=>r.speakerStore.speakers.find(l=>l.name===t||l.externalId===t||l.slug===t),replacer:t=>r.speakerStore.replaceBookmarked(t)},booth:{existingIds:new Set(n.booths||[]),finder:t=>{const l=r.boothStore.findBooth(t);return l?.exhibitors.length===0?l:void 0},replacer:t=>r.boothStore.replaceBookmarked(t)}};e.forEach(t=>{const l=i[t.type],h=t.name||t.externalId||"",c=l.finder(h);c?t.bookmarked?l.existingIds.add(c.id):l.existingIds.delete(c.id):console.warn(`Entity not found: ${t.type} with query "${h}"`)}),Object.values(i).forEach(t=>{t.replacer(Array.from(t.existingIds))})}setEntitiesVisited(e){if(!Array.isArray(e)||!e.length){a("setEntitiesVisited","Parameter must be an array.","EFP000703");return}const s=["exhibitor","event"],o=e.find(t=>!t.type||!s.includes(t.type));if(o){a("setEntitiesVisited",`Invalid entity type: ${o.type}. Must be one of: ${s.join(", ")}.`,"EFP000704");return}const n=v("visited"),i={exhibitor:{existingIds:new Set(n.exhibitors||[]),finder:t=>r.exhibitorStore.findExhibitor(t),replacer:t=>r.exhibitorStore.replaceVisited(t)},event:{existingIds:new Set(n.events||[]),finder:t=>r.eventStore.findByNameOrSlug(t),replacer:t=>r.eventStore.replaceVisited(t)}};e.forEach(t=>{const l=i[t.type],h=t.name||t.externalId||"",c=l.finder(h);c?t.visited?l.existingIds.add(c.id):l.existingIds.delete(c.id):console.warn(`Entity not found: ${t.type} with query "${h}"`)}),Object.values(i).forEach(t=>{t.replacer(Array.from(t.existingIds))})}setMarkers(e){if(!e||!Array.isArray(e.icons)||!Array.isArray(e.markers)){a("setMarkers","Invalid input.","EFP000800");return}r.routeStore.setMarkers(e)}selectMarker(e,s=!0){return typeof e!="string"&&a("selectMarker","The identifier must be passed.","EFP000900"),r.routeStore.selectMarker(e,s)}drawCircles(e){Array.isArray(e)||a("drawCircles","Invalid input.","EFP000A00"),r.uiState.debugCircles=e}checkRoutes(){r.routeStore.checkRoutes()}updateLayerVisibility(e,s){typeof e!="string"&&a("updateLayerVisibility","The layer name (string) must be passed.","EFP000B00"),s||a("updateLayerVisibility","Passing a false value to visible will have no effect.","EFP000B01"),r.layerStore.updateVisibility(e,s)}getCenterCoordinates(){return r.fp.getCenterCoordinates()}exhibitorsList(){return r.exhibitorStore.exhibitors.map(e=>m(e))}boothsList(){return r.boothStore.booths.map(e=>m(e))}categoriesList(){return r.categoryStore.categories.map(e=>m(e))}selectCategory(e){if(e==null||typeof e!="string"){r.searchStore.selectSearch();return}const s=e?.toLowerCase(),o=r.categoryStore.categories.find(({name:n,slug:i})=>n?.toLowerCase()===s||i?.toLowerCase()===s);if(!o){a("selectCategory",`Category ${e} not found.`,"EFP000C01");return}r.selectCategory(o)}applyParameters(e){typeof e!="string"&&a("applyParameters","A query string must be passed.","EFP000D00"),M(e)}getVisibility(){return r.uiState.visibility}setVisibility(e){(typeof e!="object"||!Object.keys(e).length)&&a("setVisibility","The parameter must be passed.","EFP000E00"),r.uiState.setVisibility(e)}findLocation(){r.routeStore.findLocation()}zoomIn(){r.uiState.zoomIn()}zoomOut(){r.uiState.zoomOut()}switchView(){r.mapboxStore.activateMapbox()}zoomTo(e,s){g("zoomTo called with selectors=%O options=%O",e,s);const o=B.safeParse(e);if(!o.success){a("zoomTo",o.error.message,"EFP001600");return}const n=F.safeParse(s);if(!n.success){a("zoomTo",n.error.message,"EFP001601");return}const i=this.getBounds(e);i&&this.fitBounds(i,s)}getBounds(e){g("getBounds called with selectors=%O",e);const s=B.safeParse(e);if(!s.success){a("getBounds",s.error.message,"EFP001400");return}const o=[];if(e.booths?.forEach(i=>{let t;i.externalId?t=r.boothStore.boothByExternalId.get(i.externalId):i.name&&(t=r.boothStore.boothByName.get(i.name.toLowerCase())),t?.rect&&o.push(t.rect)}),e.exhibitors?.forEach(i=>{let t;i.externalId?t=r.exhibitorStore.exhibitorByExternalId.get(i.externalId):i.name&&(t=r.exhibitorStore.exhibitorByName.get(i.name.toLowerCase())),t?.booths?.forEach(l=>{l.rect&&o.push(l.rect)})}),o.length===0)return;const n=Rect.fromMultiple(o);return{leftTop:{x:n.x1,y:n.y1},rightBottom:{x:n.x2,y:n.y2}}}fitBounds(e,s){if(g("fitBounds called with bounds=%O options=%O",e,s),!e){r.uiState.fitBounds();return}const o=O.safeParse(e);if(!o.success){a("fitBounds",o.error.message,"EFP001500");return}const n=F.safeParse(s);if(!n.success){a("fitBounds",n.error.message,"EFP001501");return}let i;if(s?.padding){const t=s.padding;i=Rect.fromX1y1x2y2(e.leftTop.x-t,e.leftTop.y-t,e.rightBottom.x+t,e.rightBottom.y+t)}else i=Rect.fromX1y1x2y2(e.leftTop.x,e.leftTop.y,e.rightBottom.x,e.rightBottom.y);r.uiState.moveToRect=i}getBoothRect(e){return typeof e!="string"&&a("getBoothRect","A booth name must be passed.","EFP000F00"),S(e)?.rect}convertToGeo(e,s){if(!P?.properties?.config){a("convertToGeo","The coordinates cannot be converted because the GPS configuration is not defined.","EFP001000");return}if(!e||!s){a("convertToGeo","Both coordinates must be passed.","EFP001001");return}return Y(e,s,P.properties.config)}unstable_destroy(){let e=window.__efpElement.firstChild;N(),window.removeEventListener("__efpStyleLoad",this.efpStyleLoadHandler),window.removeEventListener("error",q),$(),j(),G(),[...document.getElementsByTagName("script")].filter(o=>o.src.indexOf("/fp.svg")>-1||o.src.indexOf("/wf.data.js")>-1||o.src.indexOf("/data.js")>-1).forEach(o=>o.remove()),this.root.unmount(),e.remove()}search(e){return typeof e!="string"&&a("search","A search string must be passed.","EFP001100"),r.fuzzySearchEngineStore.loadEngine().then(()=>(r.searchStore.selectSearch(e),r.uiState.fuzzySearchItems.map(s=>({item:m(s.item),score:s.score}))))}getFloors(){return r.layerStore.floors.map(e=>({name:e.name,shortName:e.shortName,description:e.description,active:e.active,disabled:e.disabled,index:e.index}))}activateFloor(e){if(!e?.name&&e?.index==null){a("activateFloor","Invalid floorId. It must contain either a name or an index.","EFP001200");return}const s=this.getFloors();if(e.name){const o=s.find(n=>n.name===e.name||n.shortName===e.name);if(!o){a("activateFloor",`Floor with name "${e.name}" not found.`,"EFP001201");return}if(o.active)return;this.updateLayerVisibility(o.name,!0);return}if(e.index!==null){const o=s[e.index]?.name;if(!o){a("activateFloor",`Floor at index ${e.index} does not exist.`,"EFP001203");return}if(s[e.index].active)return;this.updateLayerVisibility(o,!0);return}}showPathway(e,s){const o=new URLSearchParams;if(o.set(D,e),s?.length){const{boothExternalIds:n,exhibitorExternalIds:i}=b(s);n.length>0&&o.set("booths",n.join(",")),i.length>0&&o.set("exhibitors",i.join(","))}this.applyParameters(o.toString())}showPathwayOnly(e,s){this.activateFloor({name:s}),r.layerStore.showPathWay(e),r.uiState.setPathwayOnlyMode(!0);const o=r.layerStore.findLayer(e),n=r.layerStore.findLayer(s),i=o?.rect||o?.viewbox?o:n;if(i?.rect||i?.viewbox){const t=i.viewbox??i.rect;r.uiState.moveToRect=Rect.fromX1y1x2y2(t.x1,t.y1,t.x2,t.y2)}}hidePathways(){this.highlightBooths([]),r.layerStore.hidePathways(),r.uiState.setPathwayOnlyMode(!1)}showSearch(){r.selectSearch("")}changeLanguage(e){const s=e?.toLowerCase?.();if(!r.languageStore.languageIds.has(s)){a("changeLanguage",`Language "${e}" was not found. Available languages: ${[...r.languageStore.languageIds].join(",")}`,"EFP001300");return}const o=new URLSearchParams;o.set(X,s),this.applyParameters(o.toString())}isGpsTrackingEnabled(){return r.routeStore.gpsEnabled}setGpsTrackingEnabled(e){r.routeStore.setGpsTrackingEnabled(e)}}function u(f){return typeof f=="string"?S(f):r.routeStore.getNearestBooth(f)}let A=0;function a(f,e,s){const o=`Error calling "${f}" SDK method.`,n=`${e.endsWith(".")?e:e+"."} More information at`;let i="https://developer.expofp.com/guide/java-script-api-reference";if(s&&(i+=`#error-${s}`),console.error(`${o} ${n} ${i}`),r.fp.disableRuntimeAlerts)return;r.uiState.setGlobalErrorMessage({title:o,body:k(L,{children:[n," ",y("a",{href:i,target:"_blank",rel:"noreferrer",children:i})]})}),clearTimeout(A);const t=8e3;A=window.setTimeout(()=>{const l=async()=>{r.uiState.globalErrorMessages.length>0&&(r.uiState.popGlobalErrorMessage(),await new Promise(h=>setTimeout(h,t/2)),l())};l()},t)}
1
+ import{jsx as g,Fragment as L,jsxs as C}from"react/jsx-runtime";import{reaction as T}from"mobx";import{createRoot as R}from"react-dom/client";import{install as I}from"resize-observer";import V from"./components/Layout";import $ from"./floorplan.loader";import{applyParameters as M,destroyHistory as j,initRouting as z}from"./services/routing";import t from"./store";import{Route as S,findBooth as x,separateExternalIds as E}from"./store/RouteStore";import{destroyUiHandlers as G}from"./store/init/init-ui";import{GaEventActions as P,destroyGtag as _,sendEventToGa as w,setConsentSettings as q}from"./tools/gtag";import N from"./tools/report-error";import{resetGlobalVariables as Y}from"./tools/reset";import H from"./tools/track-event";import{fpGeo as v}from"./components/Mapbox/utils/fpGeo";import{convertLocalToGps as O,isValidPointCoords as d}from"./utils/gps";import m from"./core/Rect";import{mapEntity as y}from"./utils/mapEntity";import{LANG_KEY as X,MAX_ROUTE_WAYPOINTS as p,PATHWAY_KEY as U}from"./constants";import{getStorage as B}from"./utils/entity-storage";import{ErrorBoundary as D}from"@sentry/react";import{POISelectorsSchema as F,BoundsSchema as K,ZoomToOptionsSchema as A}from"./schemas/sdk.schemas";import W from"debug";import{buildOptimizedRoute as Q}from"./utils/buildOptimizedRoute";import{hasLocale as Z,getLocales as J}from"./utils/i18n";const b=W("efp:api");I();export default class ee extends ${root;init(){this.ignoreQuery||z(this.offHistory),H("load"),t.fp=this,q(this.allowConsent),w(P.Load,""),this.root=R(this.renderTarget),this.root.render(g(D,{children:g(V,{offHistory:this.offHistory,allowConsent:this.allowConsent})})),w(P.Rendered,""),T(()=>t.layerStore.layersLoaded,()=>{this.resolveReady(),t.initialized||this.onInit?.(this),t.initialized=!0})}selectBooth(e){if(typeof e!="string"&&!Array.isArray(e)){a("selectBooth","Parameter must be a string or an array of strings.","EFP000000");return}const i=t.boothStore.booths.filter(o=>typeof e=="string"?o.name===e||o.externalId===e:e.includes(o.name)||e.includes(o.externalId));t.selectBooth(i)}selectExhibitor(e){if(typeof e!="string"&&!Array.isArray(e)){a("selectExhibitor","Parameter must be a string or an array of strings.","EFP000100");return}if(!e?.length){t.uiState.menu=!1,t.searchStore.resetSearchBox(),t.uiState.details=null;return}const i=t.exhibitorStore.exhibitors.filter(s=>typeof e=="string"?s.name===e||s.externalId===e:e.includes(s.name)||e.includes(s.externalId));if(!i?.length)return;if(typeof e=="string"){t.selectExhibitor(i[0]),t.moveToList([i[0]]);return}const o=i.flatMap(s=>s.booths.map(r=>r.layer)),{description:n}=o.reduce((s,r)=>(s.freq[r.description]=(s.freq[r.description]||0)+1,s.freq[r.description]>s.maxCount&&(s.maxCount=s.freq[r.description],s.mostFrequent=r),s),{freq:{},mostFrequent:o[0],maxCount:0}).mostFrequent;t.layerStore.updateVisibility(n,!0),t.uiState.menu=!1,t.searchStore.resetSearchBox(),t.uiState.details=null,t.uiState.list={type:"filter",items:i,query:{key:"exhibitors",value:i.map(s=>s.externalId).join(",")}},t.moveToList()}highlightExhibitors(e){Array.isArray(e)||a("highlightExhibitors","Parameter must be an array of strings.","EFP000200"),t.boothStore.highlightedByExternalIds=[],t.exhibitorStore.highlightedByExternalIds=[...e]}highlightBooths(e){Array.isArray(e)||a("highlightBooths","Parameter must be an array of strings.","EFP000300"),t.exhibitorStore.highlightedByExternalIds=[],t.boothStore.highlightedByExternalIds=[...e]}highlightEntities(e){Array.isArray(e)||a("highlightEntities","Parameter must be an array of strings.","EFP000400");const{boothExternalIds:i,exhibitorExternalIds:o}=E(e);t.boothStore.highlightedByExternalIds=[...i],t.exhibitorStore.highlightedByExternalIds=[...o]}selectRoute(e,i){if(Array.isArray(e)){let o=[...e];const n=o.shift(),s=o.pop();if(o.length>p)throw new Error(`The maximum number of waypoints is ${p}.`);if(!n||!s){a("selectRoute","Invalid route format: When providing an array, it must include at least two points: a start and a destination.","EFP000401");return}t.routeStore.selectRoute(new S(f(n),f(s),o.map(f)));return}e||a("selectRoute","At a minimum, the starting point must be passed.","EFP000402"),t.routeStore.selectRoute(new S(f(e),f(i)))}getOptimizedRoutes(e){if(!Array.isArray(e))return a("getOptimizedRoutes","Parameter must be an array.","EFP000500"),[];if(e.length>p)throw new Error(`The maximum number of waypoints is ${p}.`);const i=e.map(f).filter(n=>!!n);if(!i.length)throw new Error("No booths found for the provided waypoints.");const o=new Map;for(const n of i){const s=n.layer?.name??"",r=o.get(s);r?r.push(n):o.set(s,[n])}return Array.from(o.values()).map(n=>({waypoints:Q(n.map(s=>[s.name,{cx:s.rect.cx,cy:s.rect.cy}]))}))}selectCurrentPosition(e,i,o){const n=d(e.x)&&d(e.y),s=d(e.lng)&&d(e.lat);!n&&!s&&a("selectCurrentPosition","A point must be passed. Either (x,y) or (lat,lng) are required.","EFP000600"),t.routeStore.selectCurrentPosition(e,i,o),this.onCurrentPositionChanged?.(e)}setBookmarks(e){(!Array.isArray(e)||!e.length)&&a("setBookmarks","Parameter must be an array.","EFP000700"),e.forEach(i=>{const o=t.exhibitorStore.exhibitors.find(n=>n.name===i.name||n.externalId===i.externalId);o&&(o.bookmarked=i.bookmarked)})}setEntitiesBookmarks(e){if(!Array.isArray(e)||!e.length){a("setEntitiesBookmarks","Parameter must be an array.","EFP000701");return}const i=["exhibitor","event","speaker","booth"],o=e.find(r=>!r.type||!i.includes(r.type));if(o){a("setEntitiesBookmarks",`Invalid entity type: ${o.type}. Must be one of: ${i.join(", ")}.`,"EFP000702");return}const n=B("bookmarked"),s={exhibitor:{existingIds:new Set(n.exhibitors||[]),finder:r=>t.exhibitorStore.findExhibitor(r),replacer:r=>t.exhibitorStore.replaceBookmarked(r)},event:{existingIds:new Set(n.events||[]),finder:r=>t.eventStore.findByNameOrSlug(r),replacer:r=>t.eventStore.replaceBookmarked(r)},speaker:{existingIds:new Set(n.speakers||[]),finder:r=>t.speakerStore.speakers.find(l=>l.name===r||l.externalId===r||l.slug===r),replacer:r=>t.speakerStore.replaceBookmarked(r)},booth:{existingIds:new Set(n.booths||[]),finder:r=>{const l=t.boothStore.findBooth(r);return l?.exhibitors.length===0?l:void 0},replacer:r=>t.boothStore.replaceBookmarked(r)}};e.forEach(r=>{const l=s[r.type],h=r.name||r.externalId||"",c=l.finder(h);c?r.bookmarked?l.existingIds.add(c.id):l.existingIds.delete(c.id):console.warn(`Entity not found: ${r.type} with query "${h}"`)}),Object.values(s).forEach(r=>{r.replacer(Array.from(r.existingIds))})}setEntitiesVisited(e){if(!Array.isArray(e)||!e.length){a("setEntitiesVisited","Parameter must be an array.","EFP000703");return}const i=["exhibitor","event"],o=e.find(r=>!r.type||!i.includes(r.type));if(o){a("setEntitiesVisited",`Invalid entity type: ${o.type}. Must be one of: ${i.join(", ")}.`,"EFP000704");return}const n=B("visited"),s={exhibitor:{existingIds:new Set(n.exhibitors||[]),finder:r=>t.exhibitorStore.findExhibitor(r),replacer:r=>t.exhibitorStore.replaceVisited(r)},event:{existingIds:new Set(n.events||[]),finder:r=>t.eventStore.findByNameOrSlug(r),replacer:r=>t.eventStore.replaceVisited(r)}};e.forEach(r=>{const l=s[r.type],h=r.name||r.externalId||"",c=l.finder(h);c?r.visited?l.existingIds.add(c.id):l.existingIds.delete(c.id):console.warn(`Entity not found: ${r.type} with query "${h}"`)}),Object.values(s).forEach(r=>{r.replacer(Array.from(r.existingIds))})}setMarkers(e){if(!e||!Array.isArray(e.icons)||!Array.isArray(e.markers)){a("setMarkers","Invalid input.","EFP000800");return}t.routeStore.setMarkers(e)}selectMarker(e,i=!0){return typeof e!="string"&&a("selectMarker","The identifier must be passed.","EFP000900"),t.routeStore.selectMarker(e,i)}drawCircles(e){Array.isArray(e)||a("drawCircles","Invalid input.","EFP000A00"),t.uiState.debugCircles=e}checkRoutes(){t.routeStore.checkRoutes()}updateLayerVisibility(e,i){typeof e!="string"&&a("updateLayerVisibility","The layer name (string) must be passed.","EFP000B00"),i||a("updateLayerVisibility","Passing a false value to visible will have no effect.","EFP000B01"),t.layerStore.updateVisibility(e,i)}getCenterCoordinates(){return t.fp.getCenterCoordinates()}exhibitorsList(){return t.exhibitorStore.exhibitors.map(e=>y(e))}boothsList(){return t.boothStore.booths.map(e=>y(e))}categoriesList(){return t.categoryStore.categories.map(e=>y(e))}selectCategory(e){if(e==null||typeof e!="string"){t.searchStore.selectSearch();return}const i=e?.toLowerCase(),o=t.categoryStore.categories.find(({name:n,slug:s})=>n?.toLowerCase()===i||s?.toLowerCase()===i);if(!o){a("selectCategory",`Category ${e} not found.`,"EFP000C01");return}t.selectCategory(o)}applyParameters(e){typeof e!="string"&&a("applyParameters","A query string must be passed.","EFP000D00"),M(e)}getVisibility(){return t.uiState.visibility}setVisibility(e){(typeof e!="object"||!Object.keys(e).length)&&a("setVisibility","The parameter must be passed.","EFP000E00"),t.uiState.setVisibility(e)}findLocation(){t.routeStore.findLocation()}zoomIn(){t.uiState.zoomIn()}zoomOut(){t.uiState.zoomOut()}switchView(){t.mapboxStore.activateMapbox()}zoomTo(e,i){b("zoomTo called with selectors=%O options=%O",e,i);const o=F.safeParse(e);if(!o.success){a("zoomTo",o.error.message,"EFP001600");return}const n=A.safeParse(i);if(!n.success){a("zoomTo",n.error.message,"EFP001601");return}const s=this.getBounds(e);s&&this.fitBounds(s,i)}getBounds(e){b("getBounds called with selectors=%O",e);const i=F.safeParse(e);if(!i.success){a("getBounds",i.error.message,"EFP001400");return}const o=[];if(e.booths?.forEach(s=>{let r;s.externalId?r=t.boothStore.boothByExternalId.get(s.externalId):s.name&&(r=t.boothStore.boothByName.get(s.name.toLowerCase())),r?.rect&&o.push(r.rect)}),e.exhibitors?.forEach(s=>{let r;s.externalId?r=t.exhibitorStore.exhibitorByExternalId.get(s.externalId):s.name&&(r=t.exhibitorStore.exhibitorByName.get(s.name.toLowerCase())),r?.booths?.forEach(l=>{l.rect&&o.push(l.rect)})}),o.length===0)return;const n=m.fromMultiple(o);return{leftTop:{x:n.x1,y:n.y1},rightBottom:{x:n.x2,y:n.y2}}}fitBounds(e,i){if(b("fitBounds called with bounds=%O options=%O",e,i),!e){t.uiState.fitBounds();return}const o=K.safeParse(e);if(!o.success){a("fitBounds",o.error.message,"EFP001500");return}const n=A.safeParse(i);if(!n.success){a("fitBounds",n.error.message,"EFP001501");return}let s;if(i?.padding){const r=i.padding;s=m.fromX1y1x2y2(e.leftTop.x-r,e.leftTop.y-r,e.rightBottom.x+r,e.rightBottom.y+r)}else s=m.fromX1y1x2y2(e.leftTop.x,e.leftTop.y,e.rightBottom.x,e.rightBottom.y);t.uiState.moveToRect=s}getBoothRect(e){return typeof e!="string"&&a("getBoothRect","A booth name must be passed.","EFP000F00"),x(e)?.rect}convertToGeo(e,i){if(!v?.properties?.config){a("convertToGeo","The coordinates cannot be converted because the GPS configuration is not defined.","EFP001000");return}if(!e||!i){a("convertToGeo","Both coordinates must be passed.","EFP001001");return}return O(e,i,v.properties.config)}unstable_destroy(){let e=window.__efpElement.firstChild;Y(),window.removeEventListener("__efpStyleLoad",this.efpStyleLoadHandler),window.removeEventListener("error",N),j(),G(),_(),[...document.getElementsByTagName("script")].filter(o=>o.src.indexOf("/fp.svg")>-1||o.src.indexOf("/wf.data.js")>-1||o.src.indexOf("/data.js")>-1).forEach(o=>o.remove()),this.root.unmount(),e.remove()}search(e){return typeof e!="string"&&a("search","A search string must be passed.","EFP001100"),t.fuzzySearchEngineStore.loadEngine().then(()=>(t.searchStore.selectSearch(e),t.uiState.fuzzySearchItems.map(i=>({item:y(i.item),score:i.score}))))}getFloors(){return t.layerStore.floors.map(e=>({name:e.name,shortName:e.shortName,description:e.description,active:e.active,disabled:e.disabled,index:e.index}))}activateFloor(e){if(!e?.name&&e?.index==null){a("activateFloor","Invalid floorId. It must contain either a name or an index.","EFP001200");return}const i=this.getFloors();if(e.name){const o=i.find(n=>n.name===e.name||n.shortName===e.name);if(!o){a("activateFloor",`Floor with name "${e.name}" not found.`,"EFP001201");return}if(o.active)return;this.updateLayerVisibility(o.name,!0);return}if(e.index!==null){const o=i.find(s=>s.index===e.index),n=o?.name;if(!n){a("activateFloor",`Floor at index ${e.index} does not exist.`,"EFP001203");return}if(o.active)return;this.updateLayerVisibility(n,!0);return}}showPathway(e,i){const o=new URLSearchParams;if(o.set(U,e),i?.length){const{boothExternalIds:n,exhibitorExternalIds:s}=E(i);n.length>0&&o.set("booths",n.join(",")),s.length>0&&o.set("exhibitors",s.join(","))}this.applyParameters(o.toString())}showPathwayOnly(e,i){this.activateFloor({name:i}),t.layerStore.showPathWay(e),t.uiState.setPathwayOnlyMode(!0);const o=t.layerStore.findLayer(e),n=t.layerStore.findLayer(i),s=o?.rect||o?.viewbox?o:n;if(s?.rect||s?.viewbox){const r=s.viewbox??s.rect;t.uiState.moveToRect=m.fromX1y1x2y2(r.x1,r.y1,r.x2,r.y2)}}hidePathways(){this.highlightBooths([]),t.layerStore.hidePathways(),t.uiState.setPathwayOnlyMode(!1)}showSearch(){t.selectSearch("")}changeLanguage(e){const i=e?.toLowerCase?.();if(!Z(i)){a("changeLanguage",`Language "${e}" was not found. Available languages: ${J().map(n=>n.id).join(",")}`,"EFP001300");return}const o=new URLSearchParams;o.set(X,i),this.applyParameters(o.toString())}isGpsTrackingEnabled(){return t.routeStore.gpsEnabled}setGpsTrackingEnabled(e){t.routeStore.setGpsTrackingEnabled(e)}deselectCurrentPosition(){t.routeStore.selectCurrentPosition(null,!1)}deselectRoute(){t.routeStore.selectRoute(null)}reset(){this.selectBooth(""),this.selectExhibitor(""),this.selectCategory(),this.deselectCurrentPosition(),this.deselectRoute(),this.highlightEntities([]),t.uiState.kioskData&&t.resetCameraFn?t.resetCameraFn?.():this.fitBounds()}}function f(u){return typeof u=="string"?x(u):t.routeStore.getNearestBooth(u)}let k=0;function a(u,e,i){const o=`Error calling "${u}" SDK method.`,n=`${e.endsWith(".")?e:e+"."} More information at`;let s="https://developer.expofp.com/guide/java-script-api-reference";if(i&&(s+=`#error-${i}`),console.error(`${o} ${n} ${s}`),t.fp.disableRuntimeAlerts)return;t.uiState.setGlobalErrorMessage({title:o,body:C(L,{children:[n," ",g("a",{href:s,target:"_blank",children:s})]})}),clearTimeout(k);const r=8e3;k=window.setTimeout(()=>{const l=async()=>{t.uiState.globalErrorMessages.length>0&&(t.uiState.popGlobalErrorMessage(),await new Promise(h=>setTimeout(h,r/2)),l())};l()},r)}
@@ -1,5 +1,3 @@
1
- import 'array-flat-polyfill';
2
- import './public-path.js';
3
1
  export { load } from './load';
4
2
  export type * from './types';
5
3
  //# sourceMappingURL=index.d.ts.map
package/dist/esm/index.js CHANGED
@@ -1 +1 @@
1
- import"array-flat-polyfill";import"./public-path.js";import r from"./tools/report-error";window.addEventListener("error",r),window.__efpStyleElements=[];export{load}from"./load";
1
+ import r from"./tools/report-error";window.addEventListener("error",r),window.__efpStyleElements=[];export{load}from"./load";
@@ -1,10 +1,13 @@
1
- import type { Manifest, Ref } from '@expofp/data';
1
+ import type { Manifest } from './_misc_to_move/manifest';
2
+ import type { Ref } from './_misc_to_move/ref';
2
3
  import type { FloorPlan, FloorPlanOptions } from './types';
3
4
  export declare function load(manifestRef: Manifest | Ref<Manifest>, options?: FloorPlanOptions): Promise<FloorPlan>;
4
5
  declare global {
5
6
  interface Window {
6
7
  /** @deprecated */
7
8
  ___fp?: FloorPlan;
9
+ /** @deprecated temporary placeholder for async initialization in iOS/Android SDK */
10
+ ___fpResolve?: (fp: FloorPlan) => void;
8
11
  }
9
12
  }
10
13
  //# sourceMappingURL=load.d.ts.map
package/dist/esm/load.js CHANGED
@@ -1,4 +1,4 @@
1
- import{resolve as c}from"@expofp/resolve";import m from"debug";import{initHtmlHead as p}from"./_misc_to_move/initHtmlHead";import{logBuildInfo as h}from"./_misc_to_move/logBuildInfoImpl";import u from"./floorplan.loader";const d=m("efp:load");export async function load(s,t){p(),h();const n={...await c(s),...t},r=n.element;let o;if(typeof r=="string"){const a=document.querySelector(r);if(!a)throw new Error(`Element not found for selector: ${r}`);o=a}else r?o=r:(o=document.getElementById("floorplan"),o||(o=document.createElement("div"),y(o),document.body.appendChild(o)));const e=o.style;e.width=e.width||"100vw",e.height=e.height||"100vh",e.position=e.position||"fixed",e.touchAction=e.touchAction||"none",e.background=e.background||"#fff",e.transition=e.transition||"background-color 2s ease",e.overflow=e.overflow||"hidden",requestAnimationFrame(()=>{e.backgroundColor="#ebebeb"});const f=n.legacyDataUrlBase;if(d("legacyDataUrlBase",f),n.legacyDataVersion)try{const{version:a}=await c(n.legacyDataVersion);globalThis.__fpDataVersion=a}catch{d("Could not resolve version")}const l=new u({...n,element:o});return window.___fp=l,import("@expofp/debug").then(({initDebug:a})=>a()).catch(()=>{}),l}function y(s){if(!document.adoptedStyleSheets)return;const t="efp-runtime-loader-spinner",i=`
1
+ import{resolve as c}from"@expofp/resolve";import p from"debug";import{initHtmlHead as h}from"./_misc_to_move/initHtmlHead";import{logBuildInfo as y}from"./_misc_to_move/logBuildInfoImpl";import u from"./floorplan.loader";const f=p("efp:load");export async function load(s,t){h(),y();const n={...await c(s),...t},r=n.element;let o;if(typeof r=="string"){const i=document.querySelector(r);if(!i)throw new Error(`Element not found for selector: ${r}`);o=i}else r?o=r:(o=document.getElementById("floorplan"),o||(o=document.createElement("div"),g(o),document.body.appendChild(o)));const e=o.style;e.width=e.width||"100vw",e.height=e.height||"100vh",e.position=e.position||"fixed",!e.top&&!e.bottom&&(e.top="0"),!e.left&&!e.right&&(e.left="0"),e.touchAction=e.touchAction||"none",e.background=e.background||"#fff",e.transition=e.transition||"background-color 2s ease",e.overflow=e.overflow||"hidden",requestAnimationFrame(()=>{e.backgroundColor="#ebebeb"});const m=n.legacyDataUrlBase;if(f("legacyDataUrlBase",m),n.legacyDataVersion)try{const{version:i}=await c(n.legacyDataVersion);globalThis.__fpDataVersion=i}catch{f("Could not resolve version")}const a=new u({...n,element:o}),d=window.___fpResolve;return window.___fp=a,d&&(a.ready.then(()=>d(a)),delete window.___fpResolve),a.ready.then(()=>window.dispatchEvent(new CustomEvent("expofp:ready",{detail:{floorplan:a}}))),import("@expofp/debug").then(({initDebug:i})=>i()).catch(()=>{}),a}function g(s){if(!document.adoptedStyleSheets)return;const t="efp-runtime-loader-spinner",l=`
2
2
  .${t} {
3
3
  position: fixed;
4
4
  top: 50%;
@@ -49,7 +49,7 @@ import{resolve as c}from"@expofp/resolve";import m from"debug";import{initHtmlHe
49
49
  100% {
50
50
  stroke-dashoffset: -125px;
51
51
  }
52
- }`,n=new CSSStyleSheet;n.replaceSync(i),document.adoptedStyleSheets=[...document.adoptedStyleSheets,n],s.innerHTML=`<div class="${t}">
52
+ }`,n=new CSSStyleSheet;n.replaceSync(l),document.adoptedStyleSheets=[...document.adoptedStyleSheets,n],s.innerHTML=`<div class="${t}">
53
53
  <svg viewBox="25 25 50 50">
54
54
  <circle r="20" cy="50" cx="50"></circle>
55
55
  </svg>
@@ -1 +1 @@
1
- import w from"../utils/is-webview";import{BROADCAST_CHANNEL_NAME as u,MESSAGE_CACHE as y,MESSAGE_CACHE_BUNDLE as E,MESSAGE_REFRESH as h}from"./constants";export async function initOfflineManager(t,a,n=[]){try{let g=function(e){o.has(e.data?.type)&&e.data?.payload&&o.delete(e.data?.type)},l=function(e){return t?`${t}${e}`:e},p=function(){if(navigator.serviceWorker.controller){const e="expofp_cache_refresh_ready";localStorage.getItem(e)==="1"?s({type:h}):localStorage.setItem(e,"1")}};if(!("serviceWorker"in navigator)||w)return;const r=new URLSearchParams(window.location.search),d=r.get("sw"),c="/",f=n.some(e=>r.has(e)&&r.get(e)!=="0"&&r.get(e)!=="none");if(d==="1"||f?(await navigator.serviceWorker.register(l("sw.js"),{scope:c}),await navigator.serviceWorker.ready):await(await navigator.serviceWorker.getRegistration(c))?.unregister(),!await navigator.serviceWorker.getRegistration())return;navigator.serviceWorker.controller||await navigator.serviceWorker.ready;const i=new BroadcastChannel(u),o=new Set;m(),i.removeEventListener("message",g),i.addEventListener("message",g),s({type:y,payload:a}),s({type:E,payload:l("bundle.json")}),p();async function s(e){const v=()=>{!navigator.serviceWorker.controller||o.has(e.type)||!navigator.onLine||(i.postMessage(e),o.add(e.type))};v(),navigator.serviceWorker.controller||navigator.serviceWorker.addEventListener("controllerchange",v,{once:!0})}}catch(r){console.error(r)}}function m(){const t="expofp_persisted_storage_requested";if(sessionStorage.getItem(t)||!navigator.storage)return;const a=()=>{navigator.storage.persisted().then(n=>!n&&navigator.storage.persist()).catch(console.warn).finally(()=>{sessionStorage.setItem(t,"true"),window.removeEventListener("click",a)})};window.addEventListener("click",a)}
1
+ import v from"../utils/is-webview";import{BROADCAST_CHANNEL_NAME as f,MESSAGE_CACHE as p,MESSAGE_CACHE_BUNDLE as y,MESSAGE_REFRESH as E}from"./constants";export async function initOfflineManager(r,t,i=[]){try{let c=function(e){o.has(e.data?.type)&&e.data?.payload&&o.delete(e.data?.type)},g=function(e){return r?`${r}${e}`:e},d=function(){if(navigator.serviceWorker.controller){const e="expofp_cache_refresh_ready";localStorage.getItem(e)==="1"?n({type:E}):localStorage.setItem(e,"1")}};if(!("serviceWorker"in navigator)||v||!await navigator.serviceWorker.getRegistration())return;navigator.serviceWorker.controller||await navigator.serviceWorker.ready;const a=new BroadcastChannel(f),o=new Set;u(),a.removeEventListener("message",c),a.addEventListener("message",c),n({type:p,payload:t}),n({type:y,payload:g("bundle.json")}),d();async function n(e){const l=()=>{!navigator.serviceWorker.controller||o.has(e.type)||!navigator.onLine||(a.postMessage(e),o.add(e.type))};l(),navigator.serviceWorker.controller||navigator.serviceWorker.addEventListener("controllerchange",l,{once:!0})}}catch(s){console.error(s)}}function u(){const r="expofp_persisted_storage_requested";if(sessionStorage.getItem(r)||!navigator.storage)return;const t=()=>{navigator.storage.persisted().then(i=>!i&&navigator.storage.persist()).catch(console.warn).finally(()=>{sessionStorage.setItem(r,"true"),window.removeEventListener("click",t)})};window.addEventListener("click",t)}
@@ -0,0 +1,18 @@
1
+ import type { RenderableDef, ImageDef, TextDef, LayerDef } from "@expofp/renderer";
2
+ import type { ImageDefWithParentBounds } from "./index";
3
+ export type Disposer = () => void;
4
+ export type PtScaleHandler = (scale: number) => RenderableDef | undefined;
5
+ export type RollHandler = (angle: number) => ImageDef | TextDef | (ImageDef | TextDef)[] | undefined;
6
+ export type LayerImagesHandler = () => Promise<{
7
+ layer: LayerDef;
8
+ children: ImageDefWithParentBounds[];
9
+ }>;
10
+ export declare class HandlerRegistry<T extends (...args: any[]) => any> {
11
+ private handlers;
12
+ register(name: string, fn: T): Disposer;
13
+ unregisterByName(name: string): void;
14
+ unregisterByPrefix(prefix: string): void;
15
+ invoke(...args: Parameters<T>): Array<NonNullable<ReturnType<T>>>;
16
+ clear(): void;
17
+ }
18
+ //# sourceMappingURL=HandlerRegistry.d.ts.map
@@ -0,0 +1 @@
1
+ export class HandlerRegistry{handlers=new Map;register(e,s){return this.handlers.set(e,s),()=>this.handlers.delete(e)}unregisterByName(e){this.handlers.delete(e)}unregisterByPrefix(e){for(const s of this.handlers.keys())s.startsWith(e)&&this.handlers.delete(s)}invoke(...e){const s=[];for(const t of this.handlers.values()){const r=t(...e);r!=null&&s.push(r)}return s}clear(){this.handlers.clear()}}
@@ -0,0 +1,26 @@
1
+ import { Renderer, RenderableDef, SceneDef, CameraState, RendererOptions } from "@expofp/renderer";
2
+ import { HandlerRegistry, Disposer, PtScaleHandler, RollHandler, LayerImagesHandler } from "./HandlerRegistry";
3
+ import { CustomFonts } from "./index";
4
+ export declare class RendererService {
5
+ private _renderer;
6
+ private _scene;
7
+ private _fontUrls;
8
+ readonly ptScaleRegistry: HandlerRegistry<PtScaleHandler>;
9
+ readonly rollRegistry: HandlerRegistry<RollHandler>;
10
+ readonly layerImagesRegistry: HandlerRegistry<LayerImagesHandler>;
11
+ get renderer(): Renderer | null;
12
+ get scene(): SceneDef | null;
13
+ get fontUrls(): CustomFonts[];
14
+ getCameraState(): CameraState | undefined;
15
+ get scale(): number;
16
+ get angle(): number;
17
+ create(options: RendererOptions): Renderer;
18
+ start(scene: SceneDef): void;
19
+ dispose(): void;
20
+ onPtScale(name: string, handler: PtScaleHandler): Disposer;
21
+ onRoll(name: string, handler: RollHandler): Disposer;
22
+ onLayerImages(name: string, handler: LayerImagesHandler): Disposer;
23
+ update(...defs: RenderableDef[]): void;
24
+ private setupEventListeners;
25
+ }
26
+ //# sourceMappingURL=RendererService.d.ts.map
@@ -0,0 +1 @@
1
+ import{Renderer as a}from"@expofp/renderer";import{HandlerRegistry as n}from"./HandlerRegistry";import{loadCustomFontsUrls as l}from"./index";import s from"../tools/logger";export class RendererService{_renderer=null;_scene=null;_fontUrls=[];ptScaleRegistry=new n;rollRegistry=new n;layerImagesRegistry=new n;get renderer(){return this._renderer?.isInitialized?this._renderer:null}get scene(){return this._scene}get fontUrls(){return this._fontUrls}getCameraState(){if(!this._renderer?.isInitialized){s.warn("Renderer is not initialized. Cannot get camera state.");return}return this._renderer.controls.getCameraState()}get scale(){return this.getCameraState()?.ptScale??1}get angle(){return this.getCameraState()?.roll??0}create(e){return this._renderer=new a(e),this._fontUrls=l(),this.setupEventListeners(),this._renderer}start(e){if(this._scene=e,!this._renderer)throw new Error("RendererService: renderer is not created.");this._renderer.init(e),this._renderer.start()}dispose(){this.ptScaleRegistry.clear(),this.rollRegistry.clear(),this.layerImagesRegistry.clear(),this._renderer?.dispose(),this._renderer=null,this._scene=null,this._fontUrls=[]}onPtScale(e,r){return this.ptScaleRegistry.register(e,r)}onRoll(e,r){return this.rollRegistry.register(e,r)}onLayerImages(e,r){return this.layerImagesRegistry.register(e,r)}update(...e){if(!this._renderer?.isInitialized){s.warn("Renderer is not initialized. Cannot update.");return}this._renderer.update(...e)}setupEventListeners(){const e=this._renderer;e.events.addEventListener("viewport:ptscale",r=>{if(!Number.isFinite(r))return;const t=[...this.ptScaleRegistry.invoke(r)];t.length&&e.update(...t)}),e.events.addEventListener("navigation:roll",r=>{if(!Number.isFinite(r))return;const t=[];for(const i of this.rollRegistry.invoke(r))Array.isArray(i)?t.push(...i):t.push(i);t.length&&e.update(...t)})}}
@@ -0,0 +1,7 @@
1
+ import { LineDef } from "@expofp/renderer";
2
+ export interface AnimationHandle {
3
+ stop: () => void;
4
+ getProgress: () => number;
5
+ }
6
+ export declare function animateLineSegments(lineSegments: LineDef[], callback: (segment: LineDef, segmentIndex: number, reset: boolean) => void, getScale: () => number, startProgress?: number): AnimationHandle | undefined;
7
+ //# sourceMappingURL=animation.d.ts.map
@@ -0,0 +1 @@
1
+ export function animateLineSegments(d,b,v,h=0){let i=0,a=0,s=null,r=null;if(!d.length)return;const c=d.map(t=>{const n=t.points[1].x-t.points[0].x,e=t.points[1].y-t.points[0].y;return Math.sqrt(n*n+e*e)}),f=c.reduce((t,n)=>t+n,0),M=Math.max(20,Math.min(f/2,300));function q(t){const n=t%1*f;let e=0;i=0,a=0;for(let o=0;o<c.length;o++){if(e+c[o]>n){i=o,a=n-e;break}e+=c[o],o===c.length-1&&(i=0,a=0)}}function F(t,n){const e=t.points[0],o=t.points[1],l=o.x-e.x,u=o.y-e.y,S=Math.sqrt(l*l+u*u),x=Math.min(n/S,1);return{points:[{x:e.x,y:e.y},{x:e.x+l*x,y:e.y+u*x}],color:t.color,width:t.width}}function g(t){s||(s=t);const n=(t-s)/1e3;s=t;const e=v(),o=M*Math.sqrt(e);for(a+=o*n;a>=c[i];)a-=c[i],i++,i>=d.length&&(i=0);const l=d[i],u=F(l,a);b(u,i,!1),r=requestAnimationFrame(g)}function p(){m(),h<=0&&(i=0,a=0),s=null,r=requestAnimationFrame(g)}function m(){r&&(cancelAnimationFrame(r),r=null,s=null)}function L(){if(f<=0)return 0;let t=0;for(let n=0;n<i;n++)t+=c[n];return t+=a,t/f}function y(){document.visibilityState==="visible"?p():m()}return h>0&&q(h),document.addEventListener("visibilitychange",y),p(),{stop:()=>{m(),document.removeEventListener("visibilitychange",y)},getProgress:L}}
@@ -1,4 +1,4 @@
1
- import { Rect } from "../Rect";
1
+ import { Rect } from "../../components/Map/drawing/config/Rect";
2
2
  export declare function createCircleCanvas(radius: number, color: string): HTMLCanvasElement;
3
3
  export declare function createBookmarkCanvas(maxSizePx: number, pixelRatio: number): HTMLCanvasElement;
4
4
  export declare function getBounds(x: number, y: number, width: number, height: number, scale?: number, rotate?: number): Rect;
@@ -0,0 +1 @@
1
+ import{Rect as v}from"../../components/Map/drawing/config/Rect";const h=new Map;export function createCircleCanvas(o,n){const c=n.toUpperCase();if(!h.has(c)){const e=document.createElement("canvas"),s=o*2*devicePixelRatio+1*2;e.width=s,e.height=s;const i=e.getContext("2d");i.fillStyle=n,i.beginPath(),i.arc(s/2,s/2,o*devicePixelRatio,0,2*Math.PI),i.fill(),h.set(c,e)}return h.get(c)}const r=new Map;export function createBookmarkCanvas(o,n){const c=o;if(r.has(c))return r.get(c);const e=o,a=e*1.4,s=Math.ceil(e*n),i=Math.ceil(a*n),l=document.createElement("canvas");l.width=s,l.height=i;const t=l.getContext("2d");return t.scale(n,n),t.fillStyle="#fdbf2b",t.strokeStyle="#fff",t.lineWidth=4/n,t.beginPath(),t.moveTo(0,0),t.lineTo(0,a),t.lineTo(e/2,a-e/2),t.lineTo(e,a),t.lineTo(e,0),t.lineTo(0,0),t.fill(),t.stroke(),r.set(c,l),l}export function getBounds(o,n,c,e,a=1,s){const i=c*a,l=e*a,t=i/2,d=l/2,f={x:o-t,y:n-d},g={x:o+t,y:n+d};return new v(f,g,s)}
@@ -0,0 +1 @@
1
+ import o from"../../tools/base-runtime-url";export const DEFAULT_FONT_URL=`${o}fonts/oswald-v17-cyrillic_latin-500.woff`,DEFAULT_FONT_LIGHT_URL=`${o}fonts/oswald-v17-cyrillic_latin-300.woff`;export function loadCustomFontsUrls(){const t=window.__data;return t&&t.customCssFonts?.length?t.customCssFonts:[]}
@@ -0,0 +1 @@
1
+ export{};
@@ -1,14 +1,13 @@
1
- import { IndicesType, MeshType, VerticesType, Line, TextLines, DefOptions, Point, FontSizeFactor } from "./types";
2
- import { startRenderer, updateRenderer } from "./renderer";
3
- import { rectToShapeDef, meshToShapeDef, createLayerDef, createLineDef, createSceneDef, createImageDef, createShapeDef, createTextDefLines, createTextDef, createShapeDot } from "./defs";
4
- import { updateLinesScale, updateTextDefRotation, getRotation, shouldFlip, getAngleDiff, getClampedBoundsCanvas, flipAngle, updateRectRotation } from "./update-def";
5
- import { createCircleCanvas, createBookmarkCanvas, getBounds } from "./canvases";
6
- import { loadCustomFontsUrls, CustomFonts, DEFAULT_FONT_URL, DEFAULT_FONT_LIGHT_URL } from "./fonts";
7
- import { isInnerInsideOuter, flipImageDef } from "./utils/rotation";
8
- import { mapRollSetting, getRollValue } from "./settings";
9
- import { ImageDefWithParentBounds } from "./types";
1
+ import { IndicesType, MeshType, VerticesType, Line, TextLines, DefOptions, Point, FontSizeFactor } from "./engine-core/types";
2
+ import { rectToShapeDef, meshToShapeDef, createLayerDef, createLineDef, createSceneDef, createImageDef, createShapeDef, createTextDefLines, createTextDef, createShapeDot } from "./engine-core/defs";
3
+ import { updateLinesScale, updateTextDefRotation, getRotation, shouldFlip, getAngleDiff, getClampedBoundsCanvas, flipAngle, updateRectRotation } from "./engine-core/update-def";
4
+ import { createCircleCanvas, createBookmarkCanvas, getBounds } from "./engine-core/canvases";
5
+ import { loadCustomFontsUrls, CustomFonts, DEFAULT_FONT_URL, DEFAULT_FONT_LIGHT_URL } from "./engine-core/fonts";
6
+ import { isInnerInsideOuter, flipImageDef } from "./engine-core/utils/rotation";
7
+ import { mapRollSetting, getRollValue } from "./engine-core/settings";
8
+ import { ImageDefWithParentBounds } from "./engine-core/types";
9
+ import { RendererService } from "./RendererService";
10
10
  export type { IndicesType, MeshType, VerticesType, Line, TextLines, DefOptions, FontSizeFactor, Point };
11
- export { startRenderer, updateRenderer };
12
11
  export { rectToShapeDef, meshToShapeDef, createLayerDef, createLineDef, createSceneDef, createImageDef, createShapeDef, createTextDef, createTextDefLines, createShapeDot, };
13
12
  export { updateLinesScale, updateTextDefRotation, getRotation, shouldFlip, flipAngle, getAngleDiff, getClampedBoundsCanvas };
14
13
  export { createCircleCanvas, createBookmarkCanvas, getBounds };
@@ -16,4 +15,5 @@ export { loadCustomFontsUrls, DEFAULT_FONT_URL, DEFAULT_FONT_LIGHT_URL };
16
15
  export type { CustomFonts };
17
16
  export { isInnerInsideOuter, mapRollSetting, getRollValue, updateRectRotation, flipImageDef };
18
17
  export type { ImageDefWithParentBounds };
18
+ export { RendererService };
19
19
  //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ import{rectToShapeDef as e,meshToShapeDef as t,createLayerDef as r,createLineDef as o,createSceneDef as a,createImageDef as p,createShapeDef as f,createTextDefLines as i,createTextDef as m,createShapeDot as n}from"./engine-core/defs";import{updateLinesScale as c,updateTextDefRotation as l,getRotation as D,shouldFlip as s,getAngleDiff as d,getClampedBoundsCanvas as g,flipAngle as T,updateRectRotation as u}from"./engine-core/update-def";import{createCircleCanvas as x,createBookmarkCanvas as L,getBounds as R}from"./engine-core/canvases";import{loadCustomFontsUrls as S,DEFAULT_FONT_URL as h,DEFAULT_FONT_LIGHT_URL as C}from"./engine-core/fonts";import{isInnerInsideOuter as F,flipImageDef as I}from"./engine-core/utils/rotation";import{mapRollSetting as U,getRollValue as _}from"./engine-core/settings";import{RendererService as v}from"./RendererService";export{e as rectToShapeDef,t as meshToShapeDef,r as createLayerDef,o as createLineDef,a as createSceneDef,p as createImageDef,f as createShapeDef,m as createTextDef,i as createTextDefLines,n as createShapeDot};export{c as updateLinesScale,l as updateTextDefRotation,D as getRotation,s as shouldFlip,T as flipAngle,d as getAngleDiff,g as getClampedBoundsCanvas};export{x as createCircleCanvas,L as createBookmarkCanvas,R as getBounds};export{S as loadCustomFontsUrls,h as DEFAULT_FONT_URL,C as DEFAULT_FONT_LIGHT_URL};export{F as isInnerInsideOuter,U as mapRollSetting,_ as getRollValue,u as updateRectRotation,I as flipImageDef};export{v as RendererService};
@@ -1 +1 @@
1
- import{createBrowserHistory as j}from"history";import{autorun as B,reaction as P}from"mobx";import{handleCustomCommand as T}from"../utils/customCommands";import{BUILD_ROUTE_KEY as Q,KIOSK_ENABLE_KEY as M,MAP_SETTINGS_KEY as J,PREVIEW_MODE_QUERY as L,PREVIEW_MODE_STORAGE_KEY as _,SEPARATOR as X,PATHWAY_KEY as O,LANG_KEY as A,UI_SCALE_PARAM_KEY as F,UI_SCALE_RESET_PARAM_KEY as W}from"../constants";import k from"../data";import s,{uiState as i}from"../store";import{CurrentPosition as Z,extractRoute as ee}from"../store/RouteStore";import{setConsentSettings as $}from"../tools/gtag";import x from"../tools/logger";import{isLocalStorageAvailable as K}from"../utils/localStorage";import{yahKey as te}from"../utils/yah";import{areLayersEnabled as oe}from"../utils/areLayersEnabled";import se from"../core/Rect";import{getMostFrequent as re}from"../utils/getMostFrequent";import{runInAction as I}from"mobx";import{recoverKioskFromUrlPrams as ae}from"../components/Kiosk/recoverKioskFromUrlPrams";let d=!1,R=!1,N=null,H=null,V=null,Y;const h=j(),E=window.location.pathname,p=[];export function getLocationHistory(){return p}function S(t){return E+t}function ie(t){d||h.push(S(t))}export function historyReplace(t){d||h.push(S(t))}function f(t){return t.replace(/=&/g,"&").replace(/=$/,"")}function G(){let t="";const n=i.selectedExhibitor,a=i.selectedBooth,e=i.selectedEventItem,o=i.selectedRoute,r=i.selectedSpeaker,c=i.setKioskModeEnabled;if(o&&!i.isMultiPointRoute){const m=o.from?`:${o.from.slug}`:"",g=o.to?`:${o.to.slug}`:"",y=s.routeStore.onlyAccessible?":true":":false",w=o.waypoints?.map(u=>`:${u.slug}`).join("");t=`route${g}${m}${y}${w||""}`}else if(n)t=n.slug;else if(a)t=a.slug;else if(e)t=e.slug;else if(r)t=r.slug;else if(c)t="";else switch(i.list.type){case"bookmarks":t="bookmarks";break;case"visited":t="visited";break;case"category":t=i.selectedCategory.slug;break;case"search":t=i.list.text||"";break;case"language":t=i.list.type;break;case"filter":t=`${i.list.query.key}=${i.list.query.value}`;break;case"sessions":t="sessions";break;case"exhibitors":t="exhibitors";break;case"speakers":t="speakers";break;case"tours":t="tours";break;case"multi-point-tour":t=`tour=${i.list.tourId}`;break;default:throw new Error("Unkown list.type")}if(R)return;const l=t?"?"+encodeURIComponent(t):"";h.location.search!==l&&(n!==N||a!==H||e!==V?ie(l):historyReplace(l),N=n,H=a,V=e)}function z(){const t=i.selectedExhibitor,n=i.selectedEventItem,a=i.selectedSpeaker;let e="";t?e=t.name:n?e=n.name:a?e=a.name:i.list.type==="search"&&i.list.text?e="`"+(i.list.text||"")+"`":i.list.type==="multi-point-tour"&&i.tourTitle&&(e=i.tourTitle),e.length&&(e+=" \u2013 "),e+=k.title,k.subtitle&&(e+=" \u2013 "+k.subtitle),e+=" \u2013 Expo Floor Plan by ExpoFP",document.title=e}function v(){const t=h.location.search.length>1?decodeURIComponent(h.location.search.substring(1)):"";return T(t,!1)}function b(){const t=h.location.search.length>1?decodeURIComponent(h.location.search.substring(1)):"";R=!0;const n=s.boothStore.booths.find(e=>e.slug?.toLowerCase()===t?.toLowerCase()||e.externalId?.toLowerCase()===t?.toLowerCase()||e.externalId?.toLowerCase()?.replace(/\s+/g,"")===t?.toLowerCase()),a=new URLSearchParams(decodeURIComponent(window.location.search));if(ae(a),ne(a),!v())if(a.has("yah")){const e=a.get("yah");T(`${te} ${e}`,!0)}else if(a.has(M)){const e=a.get(M);e==="1"?i.kiosk=!0:e==="0"&&(i.kiosk=!1,i.resetUIScale())}else if(t==="tours")s.selectTours();else if(t.startsWith("tour=")){const e=t.split("=")[1],o=s.toursStore.getTourById(e);o?s.toursStore.launchTour(o,o.name,o.description):(console.warn(`Route with id "${e}" not found`),s.selectTours())}else if(t.startsWith("route")){const e=t.split(X);I(()=>{s.routeStore.onlyAccessible=e[3]==="true"});const o=ee(e[2],e[1],e.slice(4));s.routeStore.selectRoute(o);const c=e.slice(4).length>0;s.uiState.setIsMultiPointRoute(c);const m=new URLSearchParams(window.location.search).get("title");m&&s.uiState.setRouteTitle(m)}else if(t==="bookmarks")s.selectBookmarks();else if(t==="visited")s.selectVisited();else if(t==="language")s.selectLanguage();else if(a.has(A)){const e=a.get(A)?.toLowerCase();s.languageStore.languageIds.has(e)&&s.languageStore.changeLanguage(e)}else if(t==="sessions")s.selectSessions();else if(t==="exhibitors")s.selectExhibitors();else if(t==="speakers")s.selectSpeakers();else if(t==="-pdf")s.uiState.printingPdf=!0;else if(t.startsWith("hide"))s.uiState.setVisibility(new URLSearchParams(t).get("hide").split(",").filter(Boolean).reduce((e,o)=>({...e,[o]:!1}),{}));else if(n)setTimeout(()=>s.selectBooth(n),250);else if(t===Q)s.uiState.startBuildRoute();else if(a.get(O)){const e=a.get(O),o=a.get("booths")?.split(",")||[],r=a.get("exhibitors")?.split(",")||[],c=a.get("tour");if(c){const u=s.toursStore.getTourById(c);u&&I(()=>{s.uiState.setTourTitle(u.name),s.uiState.setTourDescription(u.description),s.uiState.setIsMultiPointTour(!0),s.uiState.setMultiPointTourList(u.id)})}const l=s.boothStore.booths,m=s.exhibitorStore.exhibitors,g=l.filter(u=>o.includes(u.externalId)),y=m.filter(u=>r.includes(u.externalId)).flatMap(u=>u.booths),w=[...g,...y];if(oe()){const u=w.map(q=>q.layer.name),C=re(u);C&&s.fp.activateFloor({name:C})}(o.length>0||r.length>0)&&s.fp.highlightEntities([...o,...r]),s.layerStore.showPathWay(e),w.length>0&&I(()=>{s.uiState.moveToRect=se.fromMultiple(w.map(u=>u.rect).filter(Boolean)),s.uiState.rollReset=!0})}else{const e=s.eventStore.eventItems.find(o=>o.slug?.toLowerCase()===t?.toLowerCase()||o.externalId?.toLowerCase()===t?.toLowerCase());if(e)s.selectEventItem(e,!0);else{const o=s.exhibitorStore.exhibitors.find(r=>r.slug?.toLowerCase()===t?.toLowerCase()||r.externalId?.toLowerCase()===t?.toLowerCase());if(t.startsWith("exhibitors")){const r=t.split("=")[1].split(",");setTimeout(()=>s.fp.selectExhibitor(r),250)}else if(o)setTimeout(()=>s.clickExhibitor(o),250);else if(t.includes("=")&&(t.startsWith("categories=")||t.startsWith("poiType=")))x.log("Skipping filter parameter in dispatchFromUrl:",t);else{const c=s.categoryStore.categories.find(l=>l.slug===t);if(c)s.selectCategory(c);else{const l=s.speakerStore.findBySlug(t);l?s.selectSpeaker(l,!0):t.includes("heatmap=true")||s.searchStore.selectSearch(t)}}}}R=!1,G(),z()}function U(){const t=h.location.search;if(t.includes("heatmap")){const e=new URL(window.location.href);if(e.searchParams.get("heatmap")==="true")if(e.searchParams.get("type")==="yah"){let r=f(e.search);d=!0,historyReplace(r),s.uiState.heatmapYah=!0,s.uiState.monochrome=!0,s.uiState.hideLogoInBooth=!0,s.uiState.hideHeaderLogo=!0,s.uiState.disableBookmarked=!0}else{e.searchParams.delete("heatmap");let r=f(e.search);d=!0,historyReplace(r),s.uiState.heatmap=!0}}if(t.startsWith("?preview="))historyReplace("?");else if(t.startsWith("?b="))historyReplace("?bookmarks");else if(t.startsWith("?ba=")){const e=new URL(window.location.href),o=parseInt(e.searchParams.get("ba")),r=s.exhibitorStore.exhibitorById.get(o);historyReplace(r?"?"+r.slug:"?bookmarks")}else t.startsWith("?mapbox=false")&&(s.mapboxStore.isMapbox=!1,historyReplace("?"));if(t.includes("blue-dot")){const e=new URL(window.location.href),o=e.searchParams.get("blue-dot").split(",");if(e.searchParams.delete("blue-dot"),o.length>1){const c=s.layerStore.findLayer(o[2])?.name,l=new Z(Number(o[0])||void 0,Number(o[1])||void 0,c,void 0,Number(o[3])||void 0,Number(o[4])||void 0);s.layerStore.layersLoaded?s.routeStore.selectCurrentPosition(l,!1,1):P(()=>s.layerStore.layersLoaded,()=>{s.routeStore.selectCurrentPosition(l,!1,1)})}let r=f(e.search);historyReplace(r)}if(t.includes("copy_exh")){const e=new URL(window.location.href),o=e.searchParams.get("copy_exh");e.searchParams.delete("copy_exh"),historyReplace("?")}if(t.includes("noOverlay")){const e=new URL(window.location.href),o=e.searchParams.get("noOverlay");e.searchParams.delete("noOverlay");let r=f(e.search);o==="true"?s.uiState.hideOverlay=!0:o==="false"&&(s.uiState.hideOverlay=!1),historyReplace(r)}if(t.includes("allowConsent")){const e=new URL(window.location.href),o=e.searchParams.get("allowConsent");e.searchParams.delete("allowConsent");const r=f(e.search);o==="true"?$(!0):o==="false"&&$(!1),historyReplace(r)}if(t.includes("hideHeaderLogo")){const e=new URL(window.location.href),o=e.searchParams.get("hideHeaderLogo");e.searchParams.delete("hideHeaderLogo");const r=f(e.search);o==="true"&&(i.hideHeaderLogo=!0),historyReplace(r)}if(t.includes("hideLogoInBooth")){const e=new URL(window.location.href),o=e.searchParams.get("hideLogoInBooth");e.searchParams.delete("hideLogoInBooth");const r=f(e.search);o==="true"&&(i.hideLogoInBooth=!0),historyReplace(r)}if(t.includes("disableFeatured")){const e=new URL(window.location.href),o=e.searchParams.get("disableFeatured");e.searchParams.delete("disableFeatured");const r=f(e.search);o==="true"&&s.exhibitorStore.exhibitors.forEach(c=>c.featured=!1),historyReplace(r)}if(t.includes("disableBookmarked")){const e=new URL(window.location.href),o=e.searchParams.get("disableBookmarked");e.searchParams.delete("disableBookmarked");const r=f(e.search);o==="true"&&(i.disableBookmarked=!0),historyReplace(r)}if(t.includes("disableGps")){const e=new URL(window.location.href),o=e.searchParams.get("disableGps");e.searchParams.delete("disableGps");const r=f(e.search);o==="true"&&s.routeStore.setGpsTrackingEnabled(!1),historyReplace(r)}if(t.includes("monochrome")){const e=new URL(window.location.href),o=e.searchParams.get("monochrome");e.searchParams.delete("monochrome");const r=f(e.search);o==="true"&&(i.monochrome=!0),historyReplace(r)}if((t.startsWith("?fbclid")||t.startsWith("?_ga"))&&historyReplace("?"),t.includes(L)){const e=new URL(window.location.href),o=e.searchParams.get(L);o==="true"?K&&localStorage.setItem(_,"1"):o==="false"&&K&&localStorage.removeItem(_),e.searchParams.delete(L),historyReplace(f(e.search))}if(i.previewExhibitor&&historyReplace("?"+i.previewExhibitor.slug),h.location.search.includes("&")||h.location.search.includes("%26")){let e=h.location.search;e=e.startsWith("?")?e.slice(1):e;const o=e.includes("&")?"&":"%26",c=e.split(o).map(l=>{const m=s.exhibitorStore.exhibitors.find(g=>g.slug===l||g.externalId===l);return m?m.name:l}).join("&");historyReplace("?"+c)}const n=new URLSearchParams(window.location.search);if(n.has(W)){s.uiState.resetUIScale();const e=new URL(window.location.href);e.searchParams.delete(W);let o=f(e.search);d=!0,historyReplace(o),d=!1}const a=n.get(F);if(a){const e=a.replace(",","."),o=parseFloat(e);!isNaN(o)&&o>=.8&&o<=1.4?s.uiState.setUIScale(o,!0):x.warn(`Invalid ui-scale parameter: ${a}. Must be a number between 0.8 and 1.4.`);const r=new URL(window.location.href);r.searchParams.delete(F);let c=f(r.search);d=!0,historyReplace(c),d=!1}}export function initRouting(t=!1){d=t,!d&&S(h.location.search)===E&&p.push(S(h.location.search)),Y=h.listen((n,a)=>{d||(p.push(S(n.search)),x.log("history",a,n),a==="POP"&&b())}),U(),v(),P(()=>s.layerStore.layersLoaded,()=>{s.urlFilterManager&&!s.urlFilterManager.isInitialized&&s.urlFilterManager.initialize(),b(),B(z),B(G)})}export function applyParameters(t=""){historyReplace("?"+decodeURIComponent(t.toString())),s.layerStore.layersLoaded?(U(),b()):(v(),P(()=>s.layerStore.layersLoaded,()=>{U(),b()}))}export function destroyHistory(){Y()}export function goBack(){if(console.log("goBack"),p.length>1){p.pop();const n=p[p.length-1].replace(E,"");return d=!0,h.replace(n),d=!1,b(),!0}else return h.go(-1),!1}function ne(t){try{let n={};const a=i.defaultMapSettings;if(new Set(t.keys()).size)n=D(Object.fromEntries(t.entries()),a);else{const e=sessionStorage.getItem(J);e&&(n=D(JSON.parse(e),a))}if(i.setMapSettings(n),n.z){const e=s.layerStore.layers.find(o=>o.name===n.z);e&&s.layerStore.updateVisibility(e,!0)}}catch(n){console.error("Failed to process or save map settings.",n)}}function D(t,n){const a={};for(const e in t){if(!Object.prototype.hasOwnProperty.call(n,e)||!Object.prototype.hasOwnProperty.call(t,e))continue;const o=t[e];typeof n[e]=="number"&&typeof o=="string"?a[e]=parseFloat(o):a[e]=o}return a}
1
+ import{createBrowserHistory as oe}from"history";import{autorun as A,reaction as k}from"mobx";import{handleCustomCommand as F}from"../utils/customCommands";import{BUILD_ROUTE_KEY as se,KIOSK_ENABLE_KEY as $,MAP_SETTINGS_KEY as re,PREVIEW_MODE_QUERY as E,PREVIEW_MODE_STORAGE_KEY as N,SEPARATOR as R,PATHWAY_KEY as W,PLANNER_KEY as P,PLANNER_SOURCE_KEY as K,PLANNER_FROM_KEY as Y,LANG_KEY as V,UI_SCALE_PARAM_KEY as H,UI_SCALE_RESET_PARAM_KEY as G,VIEWER_MODE_QUERY as I,VIEWER_MODE_STORAGE_KEY as D,LANGUAGE_TYPE as x}from"../constants";import v from"../data";import s,{uiState as i}from"../store";import{CurrentPosition as ae,extractRoute as ie,findBooth as le}from"../store/RouteStore";import{setConsentSettings as z}from"../tools/gtag";import U from"../tools/logger";import{isLocalStorageAvailable as L}from"../utils/localStorage";import{yahKey as ne}from"../utils/yah";import{areLayersEnabled as ce}from"../utils/areLayersEnabled";import ue from"../core/Rect";import{getMostFrequent as he}from"../utils/getMostFrequent";import{runInAction as C}from"mobx";import{recoverKioskFromUrlPrams as fe}from"../components/Kiosk/recoverKioskFromUrlPrams";import{hasLocale as de,setLocale as me}from"../utils/i18n";let m=!1,_=!1,j=null,q=null,Q=null,J;const h=oe(),B=window.location.pathname,S=[];export function getLocationHistory(){return S}function b(t){return B+t}function pe(t){m||h.push(b(t))}export function historyReplace(t){m||h.push(b(t))}function f(t){return t.replace(/=&/g,"&").replace(/=$/,"")}function X(){let t="";const l=i.selectedExhibitor,a=i.selectedBooth,e=i.selectedEventItem,o=i.selectedRoute,r=i.selectedSpeaker,n=i.setKioskModeEnabled;if(i.list.type==="route-planner"&&!l&&!a&&!e){const d=s.routePlannerStore;if(d.source==="bookmarks")t=`${P}&${K}=bookmarks`;else{const w=d.items.map(g=>g.entity.slug).filter(Boolean).join(R);t=`${P}=${w}`}const p=d.startPoint?.slug;p&&(t+=`&${Y}=${p}`)}else if(o&&!i.isMultiPointRoute){const d=o.from?`:${o.from.slug}`:"",p=o.to?`:${o.to.slug}`:"",w=s.routeStore.onlyAccessible?":true":":false",g=o.waypoints?.map(u=>`:${u.slug}`).join("");t=`route${p}${d}${w}${g||""}`}else if(l)t=l.slug;else if(a)t=a.slug;else if(e)t=e.slug;else if(r)t=r.slug;else if(n)t="";else switch(i.list.type){case"bookmarks":t="bookmarks";break;case"visited":t="visited";break;case"category":t=i.selectedCategory.slug;break;case"search":t=i.list.text||"";break;case x:t=x;break;case"filter":t=`${i.list.query.key}=${i.list.query.value}`;break;case"sessions":t="sessions";break;case"exhibitors":t="exhibitors";break;case"speakers":t="speakers";break;case"tours":t="tours";break;case"multi-point-tour":t=`tour=${i.list.tourId}`;break;default:throw new Error("Unkown list.type")}if(_)return;const c=t?"?"+encodeURIComponent(t):"";h.location.search!==c&&(l!==j||a!==q||e!==Q?pe(c):historyReplace(c),j=l,q=a,Q=e)}function Z(){const t=i.selectedExhibitor,l=i.selectedEventItem,a=i.selectedSpeaker;let e="";t?e=t.name:l?e=l.name:a?e=a.name:i.list.type==="search"&&i.list.text?e="`"+(i.list.text||"")+"`":i.list.type==="multi-point-tour"&&i.tourTitle&&(e=i.tourTitle),e.length&&(e+=" \u2013 "),e+=v.title,v.subtitle&&(e+=" \u2013 "+v.subtitle),e+=" \u2013 Expo Floor Plan by ExpoFP",document.title=e}function T(){const t=h.location.search.length>1?decodeURIComponent(h.location.search.substring(1)):"";return F(t,!1)}function y(){const t=h.location.search.length>1?decodeURIComponent(h.location.search.substring(1)):"";_=!0;const l=s.boothStore.booths.find(e=>e.slug?.toLowerCase()===t?.toLowerCase()||e.externalId?.toLowerCase()===t?.toLowerCase()||e.externalId?.toLowerCase()?.replace(/\s+/g,"")===t?.toLowerCase()),a=new URLSearchParams(decodeURIComponent(window.location.search));if(fe(a),ge(a),!T())if(a.has("yah")){const e=a.get("yah");F(`${ne} ${e}`,!0)}else if(a.has($)){const e=a.get($);e==="1"?i.kiosk=!0:e==="0"&&(i.kiosk=!1,i.resetUIScale())}else if(t==="tours")s.selectTours();else if(t.startsWith("tour=")){const e=t.split("=")[1],o=s.toursStore.getTourById(e);o?s.toursStore.launchTour(o,o.name,o.description):(console.warn(`Route with id "${e}" not found`),s.selectTours())}else if(a.has(P)){const e=a.get(K),o=a.get(Y),r=o?le(o):null;if(e==="bookmarks")s.routePlannerStore.launchFromBookmarks(r??void 0);else{const n=(a.get(P)||"").split(R).filter(Boolean);s.routePlannerStore.launchFromSlugs(n,r??void 0)}}else if(t.startsWith("route")){const e=t.split(R);C(()=>{s.routeStore.onlyAccessible=e[3]==="true"});const o=ie(e[2],e[1],e.slice(4));s.routeStore.selectRoute(o);const n=e.slice(4).length>0;s.uiState.setIsMultiPointRoute(n);const d=new URLSearchParams(window.location.search).get("title");d&&s.uiState.setRouteTitle(d)}else if(t==="bookmarks")s.selectBookmarks();else if(t==="visited")s.selectVisited();else if(t===x)s.selectLanguage();else if(a.has(V)){const e=a.get(V)?.toLowerCase();de(e)&&me(e)}else if(t==="sessions")s.selectSessions();else if(t==="exhibitors")s.selectExhibitors();else if(t==="speakers")s.selectSpeakers();else if(t==="-pdf")s.uiState.printingPdf=!0;else if(t.startsWith("hide"))s.uiState.setVisibility(new URLSearchParams(t).get("hide").split(",").filter(Boolean).reduce((e,o)=>({...e,[o]:!1}),{}));else if(l)setTimeout(()=>s.selectBooth(l),250);else if(t===se)s.uiState.startBuildRoute();else if(a.get(W)){const e=a.get(W),o=a.get("booths")?.split(",")||[],r=a.get("exhibitors")?.split(",")||[],n=a.get("tour");if(n){const u=s.toursStore.getTourById(n);u&&C(()=>{s.uiState.setTourTitle(u.name),s.uiState.setTourDescription(u.description),s.uiState.setIsMultiPointTour(!0),s.uiState.setMultiPointTourList(u.id)})}const c=s.boothStore.booths,d=s.exhibitorStore.exhibitors,p=c.filter(u=>o.includes(u.externalId)),w=d.filter(u=>r.includes(u.externalId)).flatMap(u=>u.booths),g=[...p,...w];if(ce()){const u=g.map(te=>te.layer.name),O=he(u);O&&s.fp.activateFloor({name:O})}(o.length>0||r.length>0)&&s.fp.highlightEntities([...o,...r]),s.layerStore.showPathWay(e),g.length>0&&C(()=>{s.uiState.moveToRect=ue.fromMultiple(g.map(u=>u.rect).filter(Boolean)),s.uiState.rollReset=!0})}else{const e=s.eventStore.eventItems.find(o=>o.slug?.toLowerCase()===t?.toLowerCase()||o.externalId?.toLowerCase()===t?.toLowerCase());if(e)s.selectEventItem(e,!0);else{const o=s.exhibitorStore.exhibitors.find(r=>r.slug?.toLowerCase()===t?.toLowerCase()||r.externalId?.toLowerCase()===t?.toLowerCase());if(t.startsWith("exhibitors")){const r=t.split("=")[1].split(",");setTimeout(()=>s.fp.selectExhibitor(r),250)}else if(o)setTimeout(()=>s.clickExhibitor(o),250);else if(t.includes("=")&&(t.startsWith("categories=")||t.startsWith("poiType=")))U.log("Skipping filter parameter in dispatchFromUrl:",t);else{const n=s.categoryStore.categories.find(c=>c.slug===t);if(n)s.selectCategory(n);else{const c=s.speakerStore.findBySlug(t);c?s.selectSpeaker(c,!0):t.includes("heatmap=true")||s.searchStore.selectSearch(t)}}}}_=!1,X(),Z()}function M(){const t=h.location.search;if(t.includes("heatmap")){const e=new URL(window.location.href);if(e.searchParams.get("heatmap")==="true")if(e.searchParams.get("type")==="yah"){let r=f(e.search);m=!0,historyReplace(r),s.uiState.heatmapYah=!0,s.uiState.monochrome=!0,s.uiState.hideLogoInBooth=!0,s.uiState.hideHeaderLogo=!0,s.uiState.disableBookmarked=!0}else{e.searchParams.delete("heatmap");let r=f(e.search);m=!0,historyReplace(r),s.uiState.heatmap=!0}}if(t.startsWith("?preview="))historyReplace("?");else if(t.startsWith("?b="))historyReplace("?bookmarks");else if(t.startsWith("?ba=")){const e=new URL(window.location.href),o=parseInt(e.searchParams.get("ba")),r=s.exhibitorStore.exhibitorById.get(o);historyReplace(r?"?"+r.slug:"?bookmarks")}else t.startsWith("?mapbox=false")&&(s.mapboxStore.isMapbox=!1,historyReplace("?"));if(t.includes("blue-dot")){const e=new URL(window.location.href),o=e.searchParams.get("blue-dot").split(",");if(e.searchParams.delete("blue-dot"),o.length>1){const n=s.layerStore.findLayer(o[2])?.name,c=new ae(Number(o[0])||void 0,Number(o[1])||void 0,n,void 0,Number(o[3])||void 0,Number(o[4])||void 0);s.layerStore.layersLoaded?s.routeStore.selectCurrentPosition(c,!1,1):k(()=>s.layerStore.layersLoaded,()=>{s.routeStore.selectCurrentPosition(c,!1,1)})}let r=f(e.search);historyReplace(r)}if(t.includes("copy_exh")){const e=new URL(window.location.href),o=e.searchParams.get("copy_exh");e.searchParams.delete("copy_exh"),historyReplace("?")}if(t.includes("noOverlay")){const e=new URL(window.location.href),o=e.searchParams.get("noOverlay");e.searchParams.delete("noOverlay");let r=f(e.search);o==="true"?s.uiState.hideOverlay=!0:o==="false"&&(s.uiState.hideOverlay=!1),historyReplace(r)}if(t.includes("allowConsent")){const e=new URL(window.location.href),o=e.searchParams.get("allowConsent");e.searchParams.delete("allowConsent");const r=f(e.search);o==="true"?z(!0):o==="false"&&z(!1),historyReplace(r)}if(t.includes("hideHeaderLogo")){const e=new URL(window.location.href),o=e.searchParams.get("hideHeaderLogo");e.searchParams.delete("hideHeaderLogo");const r=f(e.search);o==="true"&&(i.hideHeaderLogo=!0),historyReplace(r)}if(t.includes("hideLogoInBooth")){const e=new URL(window.location.href),o=e.searchParams.get("hideLogoInBooth");e.searchParams.delete("hideLogoInBooth");const r=f(e.search);o==="true"&&(i.hideLogoInBooth=!0),historyReplace(r)}if(t.includes("disableFeatured")){const e=new URL(window.location.href),o=e.searchParams.get("disableFeatured");e.searchParams.delete("disableFeatured");const r=f(e.search);o==="true"&&s.exhibitorStore.exhibitors.forEach(n=>n.featured=!1),historyReplace(r)}if(t.includes("disableBookmarked")){const e=new URL(window.location.href),o=e.searchParams.get("disableBookmarked");e.searchParams.delete("disableBookmarked");const r=f(e.search);o==="true"&&(i.disableBookmarked=!0),historyReplace(r)}if(t.includes("disableGps")){const e=new URL(window.location.href),o=e.searchParams.get("disableGps");e.searchParams.delete("disableGps");const r=f(e.search);o==="true"&&s.routeStore.setGpsTrackingEnabled(!1),historyReplace(r)}if(t.includes("monochrome")){const e=new URL(window.location.href),o=e.searchParams.get("monochrome");e.searchParams.delete("monochrome");const r=f(e.search);o==="true"&&(i.monochrome=!0),historyReplace(r)}if((t.startsWith("?fbclid")||t.startsWith("?_ga"))&&historyReplace("?"),t.includes(I)){const e=new URL(window.location.href),o=e.searchParams.get(I);o==="1"||o==="true"?L&&localStorage.setItem(D,"1"):(o==="0"||o==="false")&&L&&localStorage.removeItem(D),e.searchParams.delete(I),historyReplace(f(e.search))}if(t.includes(E)){const e=new URL(window.location.href),o=e.searchParams.get(E);o==="true"?L&&localStorage.setItem(N,"1"):o==="false"&&L&&localStorage.removeItem(N),e.searchParams.delete(E),historyReplace(f(e.search))}if(i.previewExhibitor&&historyReplace("?"+i.previewExhibitor.slug),h.location.search.includes("&")||h.location.search.includes("%26")){let e=h.location.search;e=e.startsWith("?")?e.slice(1):e;const o=e.includes("&")?"&":"%26",n=e.split(o).map(c=>{const d=s.exhibitorStore.exhibitors.find(p=>p.slug===c||p.externalId===c);return d?d.name:c}).join("&");historyReplace("?"+n)}const l=new URLSearchParams(window.location.search);if(l.has(G)){s.uiState.resetUIScale();const e=new URL(window.location.href);e.searchParams.delete(G);let o=f(e.search);m=!0,historyReplace(o),m=!1}const a=l.get(H);if(a){const e=a.replace(",","."),o=parseFloat(e);!isNaN(o)&&o>=.8&&o<=1.4?s.uiState.setUIScale(o,!0):U.warn(`Invalid ui-scale parameter: ${a}. Must be a number between 0.8 and 1.4.`);const r=new URL(window.location.href);r.searchParams.delete(H);let n=f(r.search);m=!0,historyReplace(n),m=!1}}export function initRouting(t=!1){m=t,!m&&b(h.location.search)===B&&S.push(b(h.location.search)),J=h.listen((l,a)=>{m||(S.push(b(l.search)),U.log("history",a,l),a==="POP"&&y())}),M(),T(),k(()=>s.layerStore.layersLoaded,()=>{s.urlFilterManager&&!s.urlFilterManager.isInitialized&&s.urlFilterManager.initialize(),y(),A(Z),A(X),i.viewerMode&&(i.menu=!0)})}export function applyParameters(t=""){historyReplace("?"+decodeURIComponent(t.toString())),s.layerStore.layersLoaded?(M(),y()):(T(),k(()=>s.layerStore.layersLoaded,()=>{M(),y()}))}export function destroyHistory(){J()}export function goBack(){if(console.log("goBack"),S.length>1){S.pop();const l=S[S.length-1].replace(B,"");return m=!0,h.replace(l),m=!1,y(),!0}else return h.go(-1),!1}function ge(t){try{let l={};const a=i.defaultMapSettings;if(new Set(t.keys()).size)l=ee(Object.fromEntries(t.entries()),a);else{const e=sessionStorage.getItem(re);e&&(l=ee(JSON.parse(e),a))}if(i.setMapSettings(l),l.z){const e=s.layerStore.layers.find(o=>o.name===l.z);e&&s.layerStore.updateVisibility(e,!0)}}catch(l){console.error("Failed to process or save map settings.",l)}}function ee(t,l){const a={};for(const e in t){if(!Object.prototype.hasOwnProperty.call(l,e)||!Object.prototype.hasOwnProperty.call(t,e))continue;const o=t[e];typeof l[e]=="number"&&typeof o=="string"?a[e]=parseFloat(o):a[e]=o}return a}
@@ -0,0 +1,12 @@
1
+ import RootStore from "./RootStore";
2
+ export default class BookmarksStore {
3
+ private readonly rootStore;
4
+ private readonly _share;
5
+ constructor(rootStore: RootStore);
6
+ get bookmarkedBooths(): import("./BoothStore").Booth[];
7
+ get total(): number;
8
+ get hasBookmarks(): boolean;
9
+ get hasRoutableBookmarks(): boolean;
10
+ share(): void;
11
+ }
12
+ //# sourceMappingURL=BookmarksStore.d.ts.map
@@ -0,0 +1,2 @@
1
+ import{__esDecorate as r,__runInitializers as b}from"tslib";import{computed as s}from"mobx";import u from"copy-to-clipboard";import{t as m}from"../utils/i18n";let p=(()=>{let a=[],i,l,k,h;return class{static{const o=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;i=[s],l=[s],k=[s],h=[s],r(this,null,i,{kind:"getter",name:"bookmarkedBooths",static:!1,private:!1,access:{has:t=>"bookmarkedBooths"in t,get:t=>t.bookmarkedBooths},metadata:o},null,a),r(this,null,l,{kind:"getter",name:"total",static:!1,private:!1,access:{has:t=>"total"in t,get:t=>t.total},metadata:o},null,a),r(this,null,k,{kind:"getter",name:"hasBookmarks",static:!1,private:!1,access:{has:t=>"hasBookmarks"in t,get:t=>t.hasBookmarks},metadata:o},null,a),r(this,null,h,{kind:"getter",name:"hasRoutableBookmarks",static:!1,private:!1,access:{has:t=>"hasRoutableBookmarks"in t,get:t=>t.hasRoutableBookmarks},metadata:o},null,a),o&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:o})}rootStore=b(this,a);_share;constructor(o){this.rootStore=o,this._share=this.share.bind(this)}get bookmarkedBooths(){return this.rootStore.boothStore.booths.filter(o=>o.exhibitors.length===0&&o.bookmarkedDirectly)}get total(){return this.rootStore.exhibitorStore.bookmarked.length+this.rootStore.eventStore.bookmarked.length+this.rootStore.speakerStore.bookmarked.length+this.bookmarkedBooths.length}get hasBookmarks(){return this.total>0}get hasRoutableBookmarks(){return this.rootStore.exhibitorStore.bookmarked.length>0||this.bookmarkedBooths.length>0}share(){const{exhibitorStore:o,eventStore:t,speakerStore:d}=this.rootStore,n=window.location,c=[...o.bookmarked.map(e=>e.id),...t.bookmarked.map(e=>e.id),...d.bookmarked.map(e=>e.id),...this.bookmarkedBooths.map(e=>e.id)];u(`${n.protocol}//${n.host}/?b=`+c.join("|")),alert(m("Link copied to clipboard")+`.
2
+ `+m("Open it on another device to import bookmarks")+".")}}})();export default p;
@@ -3,9 +3,13 @@ export interface FuzzySearchResult<T> {
3
3
  score: number;
4
4
  }
5
5
  export default class FuzzySearchEngineStore {
6
+ private readonly keys;
6
7
  engine: any;
7
- pendingPromise: null;
8
- loadEngine(): Promise<void> | null;
9
- search<T>(list: T[], text: string, keys: string[]): FuzzySearchResult<T>[];
8
+ private enginePromise;
9
+ private lastCollection;
10
+ constructor(keys: string[]);
11
+ loadEngine(): Promise<void>;
12
+ private buildEngine;
13
+ search<T>(list: T[], text: string): FuzzySearchResult<T>[];
10
14
  }
11
15
  //# sourceMappingURL=FuzzySearchEngineStore.d.ts.map
@@ -1 +1 @@
1
- import{__esDecorate as c,__runInitializers as t}from"tslib";import{action as g,observable as u,runInAction as d}from"mobx";let h=(()=>{let r=[],a,s=[],l=[],o;return class{static{const n=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;a=[u],o=[g],c(this,null,o,{kind:"method",name:"loadEngine",static:!1,private:!1,access:{has:e=>"loadEngine"in e,get:e=>e.loadEngine},metadata:n},null,r),c(null,null,a,{kind:"field",name:"engine",static:!1,private:!1,access:{has:e=>"engine"in e,get:e=>e.engine,set:(e,i)=>{e.engine=i}},metadata:n},s,l),n&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:n})}engine=(t(this,r),t(this,s,void 0));pendingPromise=(t(this,l),null);loadEngine(){return this.engine?Promise.resolve():this.pendingPromise?this.pendingPromise:(this.pendingPromise=(async()=>{try{const n=await import("fuse.js");d(()=>{this.engine=n.default})}catch(n){console.error(n),d(()=>{this.pendingPromise=null})}})(),this.pendingPromise)}search(n,e,i){return!this.engine||!n?.length||!e||!i?.length?[]:new this.engine(n,{keys:i,ignoreFieldNorm:!0,includeScore:!0,threshold:.3}).search(e)}}})();export default h;
1
+ import{__esDecorate as a,__runInitializers as s}from"tslib";import{observable as l,runInAction as c}from"mobx";let u=(()=>{let i,t=[],r=[];return class{static{const e=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;i=[l],a(null,null,i,{kind:"field",name:"engine",static:!1,private:!1,access:{has:n=>"engine"in n,get:n=>n.engine,set:(n,o)=>{n.engine=o}},metadata:e},t,r),e&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:e})}keys;engine=s(this,t,void 0);enginePromise=(s(this,r),null);lastCollection=null;constructor(e){this.keys=e}loadEngine(){return this.enginePromise||(this.enginePromise=this.buildEngine()),this.enginePromise}async buildEngine(){try{const{default:e}=await import("fuse.js");c(()=>{this.engine=new e([],{keys:this.keys,fieldNormWeight:2,includeScore:!0,ignoreLocation:!0,threshold:.4,useTokenSearch:!0})})}catch(e){console.error(e),this.enginePromise=null}}search(e,n){return!this.engine||!e?.length||!n?[]:(this.lastCollection!==e&&(this.engine.setCollection(e),this.lastCollection=e),this.engine.search(n))}}})();export default u;
@@ -26,6 +26,7 @@ export declare class Layer {
26
26
  mode: LayerMode;
27
27
  children: LayerDef[];
28
28
  pathway?: boolean;
29
+ floorIndex?: number;
29
30
  loaded: boolean;
30
31
  visible: boolean;
31
32
  get shortName(): string;
@@ -1 +1 @@
1
- import{__esDecorate as l,__runInitializers as o}from"tslib";import{action as w,computed as b,observable as u,runInAction as C}from"mobx";import n from".";import E from"../components/Map/drawing/config/config-load-layer";import W from"../core/Rect";import{shortenName as j}from"../utils/shortenName";import{areLayersEnabled as D}from"../utils/areLayersEnabled";export var LayersMode;(function(i){i[i.Default=0]="Default",i[i.Separated=1]="Separated",i[i.Radio=2]="Radio",i[i.CheckBox=3]="CheckBox"})(LayersMode||(LayersMode={}));export var LayerMode;(function(i){i[i.Unset=0]="Unset",i[i.AlwaysVisible=1]="AlwaysVisible",i[i.AlwaysHidden=2]="AlwaysHidden",i[i.TurnedOn=3]="TurnedOn",i[i.TurnedOff=4]="TurnedOff"})(LayerMode||(LayerMode={}));let I=(()=>{let i,h=[],y=[],m,p=[],_=[];return class{static{const c=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;i=[u],m=[u],l(null,null,i,{kind:"field",name:"loaded",static:!1,private:!1,access:{has:s=>"loaded"in s,get:s=>s.loaded,set:(s,f)=>{s.loaded=f}},metadata:c},h,y),l(null,null,m,{kind:"field",name:"visible",static:!1,private:!1,access:{has:s=>"visible"in s,get:s=>s.visible,set:(s,f)=>{s.visible=f}},metadata:c},p,_),c&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:c})}basePriority;name;description;frozen;rect=null;viewbox=null;configured;childLayers=[];rootParent=null;mode;children=[];pathway;loaded=o(this,h,void 0);visible=(o(this,y),o(this,p,void 0));get shortName(){return j(this.description)}constructor(){o(this,_)}}})();export{I as Layer};let N=(()=>{let i=[],h,y=[],m=[],p,_=[],v=[],c,s=[],f=[],g,L=[],P=[],S,k,x,A,R,T,V,z;return class{static{const t=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;h=[u],p=[u],c=[u],g=[u],S=[b({keepAlive:!0})],k=[b({keepAlive:!0})],x=[b({keepAlive:!0})],A=[b],R=[b],T=[w],V=[w],z=[w],l(this,null,S,{kind:"getter",name:"visible",static:!1,private:!1,access:{has:e=>"visible"in e,get:e=>e.visible},metadata:t},null,i),l(this,null,k,{kind:"getter",name:"loaded",static:!1,private:!1,access:{has:e=>"loaded"in e,get:e=>e.loaded},metadata:t},null,i),l(this,null,x,{kind:"getter",name:"rectangle",static:!1,private:!1,access:{has:e=>"rectangle"in e,get:e=>e.rectangle},metadata:t},null,i),l(this,null,A,{kind:"getter",name:"pathwayLayers",static:!1,private:!1,access:{has:e=>"pathwayLayers"in e,get:e=>e.pathwayLayers},metadata:t},null,i),l(this,null,R,{kind:"getter",name:"floors",static:!1,private:!1,access:{has:e=>"floors"in e,get:e=>e.floors},metadata:t},null,i),l(this,null,T,{kind:"method",name:"updateVisibility",static:!1,private:!1,access:{has:e=>"updateVisibility"in e,get:e=>e.updateVisibility},metadata:t},null,i),l(this,null,V,{kind:"method",name:"showPathWay",static:!1,private:!1,access:{has:e=>"showPathWay"in e,get:e=>e.showPathWay},metadata:t},null,i),l(this,null,z,{kind:"method",name:"hidePathways",static:!1,private:!1,access:{has:e=>"hidePathways"in e,get:e=>e.hidePathways},metadata:t},null,i),l(null,null,h,{kind:"field",name:"layers",static:!1,private:!1,access:{has:e=>"layers"in e,get:e=>e.layers,set:(e,a)=>{e.layers=a}},metadata:t},y,m),l(null,null,p,{kind:"field",name:"defaultLayer",static:!1,private:!1,access:{has:e=>"defaultLayer"in e,get:e=>e.defaultLayer,set:(e,a)=>{e.defaultLayer=a}},metadata:t},_,v),l(null,null,c,{kind:"field",name:"mode",static:!1,private:!1,access:{has:e=>"mode"in e,get:e=>e.mode,set:(e,a)=>{e.mode=a}},metadata:t},s,f),l(null,null,g,{kind:"field",name:"layersLoaded",static:!1,private:!1,access:{has:e=>"layersLoaded"in e,get:e=>e.layersLoaded,set:(e,a)=>{e.layersLoaded=a}},metadata:t},L,P),t&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t})}layers=(o(this,i),o(this,y,[]));defaultLayer=(o(this,m),o(this,_,void 0));mode=(o(this,v),o(this,s,void 0));layersLoaded=(o(this,f),o(this,L,!1));updateVisibilityTimeout=(o(this,P),0);get visible(){return this.layers.filter(t=>t.frozen||t.visible)}get loaded(){return this.layers.filter(t=>t.loaded)}get rectangle(){var t=this.visible.filter(e=>!e.frozen).map(e=>e.viewbox??e.rect);return this.mode!==LayersMode.Radio||!t.length?null:W.fromMultiple(t)||null}get pathwayLayers(){return this.layers.filter(t=>t.pathway)}get floors(){if(!D())return[];const t=new Set(this.layers.filter(e=>e&&!e.frozen&&!e.rootParent&&!e.pathway).concat(n.routeStore.layers.filter(e=>e&&e.mode!==LayerMode.AlwaysHidden&&e.mode!==LayerMode.AlwaysVisible)));return Array.from(t).reverse().map((e,a)=>{const r=n.routeStore.layers.length>0&&n.routeStore.layers.indexOf(e)===-1,d=n.toursStore.tourLayers.length>0&&n.toursStore.tourLayers.indexOf(e)===-1;return{layer:e,name:e.name,shortName:e.shortName,description:e.description,active:e.visible,disabled:!!(r||d),index:a}})}updateVisibility(t,e){if(this.mode===LayersMode.Radio&&!e)return;const a=t instanceof I?t:this.findLayer(t);if(!a||a.visible===e){a&&n.routeStore.currentRouteLayer!==a&&(n.routeStore.currentRouteLayer=a);return}E(a).then(()=>{this.mode===LayersMode.Radio&&this.layers.filter(r=>!r.pathway).forEach(r=>{r.name!==a.name&&!r.frozen&&r.visible&&(r.visible=!1,r.childLayers.forEach(d=>{d.visible=!1}))}),a&&(a.visible=e,a.childLayers.forEach(r=>{r.visible=e}),e&&(n.routeStore.currentRouteLayer=a),typeof n.fp.onFloorActivated=="function"&&(clearTimeout(this.updateVisibilityTimeout),this.updateVisibilityTimeout=setTimeout(()=>{const r=n.fp.getFloors();n.fp.onFloorActivated(r.find(d=>d.name===a.name))})))})}findLayer(t){if(t==null)return null;const e=this.layers.filter(r=>!r.rootParent);if(typeof t=="number"&&(a=e.filter(r=>!r.frozen)[t],a))return a;t=t.toString().toLowerCase();var a=e.find(r=>{const d=(r.name.match(/(-?[0-9]+)/)||"")[0];return t===r?.name.toLowerCase()||t===r?.description.toLowerCase()||t===r?.shortName.toLowerCase()||t===d});return!a&&!/\D/.test(t)&&(a=e.filter(r=>!r.frozen)[parseInt(t)]),a}getPathwayList(){return this.layers.filter(t=>t.pathway)}async showPathWay(t){try{const e=this.findLayer(t);if(!e)throw new Error(`There is no pathway with this name. ${t}`);await E(e);const a=this.getPathwayList();C(()=>{a.forEach(r=>{const d=r.name===t;r.visible=d,r.childLayers.forEach(O=>{O.visible=d})})})}catch(e){console.error("showPathWay",e)}}hidePathways(){this.getPathwayList().forEach(e=>{e.visible=!1,e.childLayers.forEach(a=>{a.visible=!1})})}}})();export default N;
1
+ import{__esDecorate as l,__runInitializers as o}from"tslib";import{action as w,computed as v,observable as u,runInAction as C}from"mobx";import n from".";import E from"../components/Map/drawing/config/config-load-layer";import W from"../core/Rect";import{shortenName as j}from"../utils/shortenName";import{areLayersEnabled as D}from"../utils/areLayersEnabled";export var LayersMode;(function(i){i[i.Default=0]="Default",i[i.Separated=1]="Separated",i[i.Radio=2]="Radio",i[i.CheckBox=3]="CheckBox"})(LayersMode||(LayersMode={}));export var LayerMode;(function(i){i[i.Unset=0]="Unset",i[i.AlwaysVisible=1]="AlwaysVisible",i[i.AlwaysHidden=2]="AlwaysHidden",i[i.TurnedOn=3]="TurnedOn",i[i.TurnedOff=4]="TurnedOff"})(LayerMode||(LayerMode={}));let O=(()=>{let i,h=[],y=[],m,p=[],_=[];return class{static{const c=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;i=[u],m=[u],l(null,null,i,{kind:"field",name:"loaded",static:!1,private:!1,access:{has:s=>"loaded"in s,get:s=>s.loaded,set:(s,f)=>{s.loaded=f}},metadata:c},h,y),l(null,null,m,{kind:"field",name:"visible",static:!1,private:!1,access:{has:s=>"visible"in s,get:s=>s.visible,set:(s,f)=>{s.visible=f}},metadata:c},p,_),c&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:c})}basePriority;name;description;frozen;rect=null;viewbox=null;configured;childLayers=[];rootParent=null;mode;children=[];pathway;floorIndex;loaded=o(this,h,void 0);visible=(o(this,y),o(this,p,void 0));get shortName(){return j(this.description)}constructor(){o(this,_)}}})();export{O as Layer};let N=(()=>{let i=[],h,y=[],m=[],p,_=[],b=[],c,s=[],f=[],L,S=[],x=[],P,k,A,I,R,T,V,z;return class{static{const t=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;h=[u],p=[u],c=[u],L=[u],P=[v({keepAlive:!0})],k=[v({keepAlive:!0})],A=[v({keepAlive:!0})],I=[v],R=[v],T=[w],V=[w],z=[w],l(this,null,P,{kind:"getter",name:"visible",static:!1,private:!1,access:{has:e=>"visible"in e,get:e=>e.visible},metadata:t},null,i),l(this,null,k,{kind:"getter",name:"loaded",static:!1,private:!1,access:{has:e=>"loaded"in e,get:e=>e.loaded},metadata:t},null,i),l(this,null,A,{kind:"getter",name:"rectangle",static:!1,private:!1,access:{has:e=>"rectangle"in e,get:e=>e.rectangle},metadata:t},null,i),l(this,null,I,{kind:"getter",name:"pathwayLayers",static:!1,private:!1,access:{has:e=>"pathwayLayers"in e,get:e=>e.pathwayLayers},metadata:t},null,i),l(this,null,R,{kind:"getter",name:"floors",static:!1,private:!1,access:{has:e=>"floors"in e,get:e=>e.floors},metadata:t},null,i),l(this,null,T,{kind:"method",name:"updateVisibility",static:!1,private:!1,access:{has:e=>"updateVisibility"in e,get:e=>e.updateVisibility},metadata:t},null,i),l(this,null,V,{kind:"method",name:"showPathWay",static:!1,private:!1,access:{has:e=>"showPathWay"in e,get:e=>e.showPathWay},metadata:t},null,i),l(this,null,z,{kind:"method",name:"hidePathways",static:!1,private:!1,access:{has:e=>"hidePathways"in e,get:e=>e.hidePathways},metadata:t},null,i),l(null,null,h,{kind:"field",name:"layers",static:!1,private:!1,access:{has:e=>"layers"in e,get:e=>e.layers,set:(e,a)=>{e.layers=a}},metadata:t},y,m),l(null,null,p,{kind:"field",name:"defaultLayer",static:!1,private:!1,access:{has:e=>"defaultLayer"in e,get:e=>e.defaultLayer,set:(e,a)=>{e.defaultLayer=a}},metadata:t},_,b),l(null,null,c,{kind:"field",name:"mode",static:!1,private:!1,access:{has:e=>"mode"in e,get:e=>e.mode,set:(e,a)=>{e.mode=a}},metadata:t},s,f),l(null,null,L,{kind:"field",name:"layersLoaded",static:!1,private:!1,access:{has:e=>"layersLoaded"in e,get:e=>e.layersLoaded,set:(e,a)=>{e.layersLoaded=a}},metadata:t},S,x),t&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t})}layers=(o(this,i),o(this,y,[]));defaultLayer=(o(this,m),o(this,_,void 0));mode=(o(this,b),o(this,s,void 0));layersLoaded=(o(this,f),o(this,S,!1));updateVisibilityTimeout=(o(this,x),0);get visible(){return this.layers.filter(t=>t.frozen||t.visible)}get loaded(){return this.layers.filter(t=>t.loaded)}get rectangle(){var t=this.visible.filter(e=>!e.frozen).map(e=>e.viewbox??e.rect);return this.mode!==LayersMode.Radio||!t.length?null:W.fromMultiple(t)||null}get pathwayLayers(){return this.layers.filter(t=>t.pathway)}get floors(){if(!D())return[];const t=new Set(this.layers.filter(a=>a&&!a.frozen&&!a.rootParent&&!a.pathway).concat(n.routeStore.layers.filter(a=>a&&a.mode!==LayerMode.AlwaysHidden&&a.mode!==LayerMode.AlwaysVisible))),e=Array.from(t).reverse();return e.map((a,r)=>{const d=n.routeStore.layers.length>0&&n.routeStore.layers.indexOf(a)===-1,g=n.toursStore.tourLayers.length>0&&n.toursStore.tourLayers.indexOf(a)===-1;return{layer:a,name:a.name,shortName:a.shortName,description:a.description,active:a.visible,disabled:!!(d||g),index:a.floorIndex??e.length-r-1}})}updateVisibility(t,e){if(this.mode===LayersMode.Radio&&!e)return;const a=t instanceof O?t:this.findLayer(t);if(!a||a.visible===e){a&&n.routeStore.currentRouteLayer!==a&&(n.routeStore.currentRouteLayer=a);return}E(a,n.rendererService).then(()=>{this.mode===LayersMode.Radio&&this.layers.filter(r=>!r.pathway).forEach(r=>{r.name!==a.name&&!r.frozen&&r.visible&&(r.visible=!1,r.childLayers.forEach(d=>{d.visible=!1}))}),a&&(a.visible=e,a.childLayers.forEach(r=>{r.visible=e}),e&&(n.routeStore.currentRouteLayer=a),typeof n.fp.onFloorActivated=="function"&&(clearTimeout(this.updateVisibilityTimeout),this.updateVisibilityTimeout=setTimeout(()=>{const r=n.fp.getFloors();n.fp.onFloorActivated(r.find(d=>d.name===a.name))})))})}findLayer(t){if(t==null)return null;const e=this.layers.filter(r=>!r.rootParent);if(typeof t=="number"&&(a=e.filter(r=>!r.frozen)[t],a))return a;t=t.toString().toLowerCase();var a=e.find(r=>{const d=(r.name.match(/(-?[0-9]+)/)||"")[0];return t===r?.name.toLowerCase()||t===r?.description.toLowerCase()||t===r?.shortName.toLowerCase()||t===d});return!a&&!/\D/.test(t)&&(a=e.filter(r=>!r.frozen)[parseInt(t)]),a}getPathwayList(){return this.layers.filter(t=>t.pathway)}async showPathWay(t){try{const e=this.findLayer(t);if(!e)throw new Error(`There is no pathway with this name. ${t}`);await E(e,n.rendererService);const a=this.getPathwayList();C(()=>{a.forEach(r=>{const d=r.name===t;r.visible=d,r.childLayers.forEach(g=>{g.visible=d})})})}catch(e){console.error("showPathWay",e)}}hidePathways(){this.getPathwayList().forEach(e=>{e.visible=!1,e.childLayers.forEach(a=>{a.visible=!1})})}}})();export default N;