@expofp/floorplan 3.0.0-alpha.9 → 3.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (351) hide show
  1. package/dist/browser/Debug-b2YI2Uxo.js +40 -0
  2. package/dist/browser/Demo-aEKqZbJJ.js +47 -0
  3. package/dist/browser/Free-BGr4o53R.js +51 -0
  4. package/dist/browser/Gallery-C9n64fhu.js +71 -0
  5. package/dist/browser/GpsLoader-ChxBR2EI.js +140 -0
  6. package/dist/browser/KioskStore-DkCSeq5I.js +225 -0
  7. package/dist/browser/Mapbox-Cl0Wxz2h.js +118 -0
  8. package/dist/browser/{SetKioskMode-C3fGoJPj.js → SetKioskMode-D3EJeF9c.js} +92 -83
  9. package/dist/browser/{ShowKiosk-D-477yKH.js → ShowKiosk-Bs5q-1RZ.js} +28 -19
  10. package/dist/browser/{ThreeComponent-Z1K-qX4i.js → ThreeComponent-CSsqNYDu.js} +181 -172
  11. package/dist/browser/ViewerMenuPanel-BMmB1p03.js +77 -0
  12. package/dist/browser/boolean-editor-DpnmndKH.js +157 -0
  13. package/dist/browser/bundle.json +34 -31
  14. package/dist/browser/{client-D6zJdOh6.js → client-CN_I7kK8.js} +848 -839
  15. package/dist/browser/compat-helper.js +5 -0
  16. package/dist/browser/{data-C6uYuLvP.js → data-CIAMSGsv.js} +278 -269
  17. package/dist/browser/{debug-overlay-BcmbSeG3.js → debug-overlay-DjmA0D2r.js} +100 -91
  18. package/dist/browser/debug-ui-D1QGTN8V.js +67 -0
  19. package/dist/browser/{favicon-DalyEhbd.js → favicon-BpTKNfwa.js} +11 -2
  20. package/dist/browser/fetch-retry.umd-B8hV1FNr.js +123 -0
  21. package/dist/browser/{flex-DA2yhKLl.js → flex-09atkOGP.js} +76 -67
  22. package/dist/browser/{floorplan.ready-DEdtWjzo.js → floorplan.ready-BQetaqdP.js} +20976 -22750
  23. package/dist/browser/fonts/efp-symbols.woff +0 -0
  24. package/dist/browser/{index-DSULYUX0.js → index-Bw6xZlSd.js} +46 -37
  25. package/dist/browser/{index-BAvspl75.js → index-C71k7nSe.js} +333 -324
  26. package/dist/browser/index-CWLY6XdC.js +92 -0
  27. package/dist/browser/index-D9pdVw-U.js +882 -0
  28. package/dist/browser/index-DPSQIIUy.js +57 -0
  29. package/dist/browser/index-jp-Zhdyp.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-CoKhM3tL.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-DxaHLbma.js} +24 -15
  53. package/dist/browser/{particles.min-DcpKrPn3.js → particles.min-CsHbc6cO.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
@@ -1 +1 @@
1
- import{jsx as t,jsxs as m}from"react/jsx-runtime";import p from"classnames";import S from"color";import{useLocalStore as P,useObserver as R}from"mobx-react-lite";import M from"react-qr-code";import _ from"../data";import f,{uiState as o}from"../store";import l from"../tools/settings";import{remsToPixels as n}from"../utils";import{t as a}from"../utils/i18n";import c from"../utils/is-from-designer";import d from"./Alert";import"./Alert.scss";import"./LogoOverlay.scss";import{fpGeo as h}from"./Mapbox/utils/fpGeo";import C from"../tools/base-runtime-url";const g=["info-techlive2025","metstrade-superyacht2023"].includes(l.EXPO),V=l.backgroundColor!=="none"&&S(l.backgroundColor).isDark()||h?.properties?.style?.includes("dark");export default function O(){const b=P(()=>{const i=(r,e,j,k)=>({width:k,opacity:o.wsStarted?1:0}),s=g||o.rtl?"left":"right";return{get style(){const r=n((o.overlayPosition==="left",1));if(o.overlayPosition==="left"){const e=o.mapVisibleBottom+r;return i("bottom",s,e,"5rem")}else{let e=o.mapVisibleTop;return f.mapboxStore.showMapbox&&(e=n(.5)),i("bottom",s,20,"4.5rem")}},get warningStyle(){const r=n(o.overlayPosition==="left"?1:.5);if(o.overlayPosition==="left"){const e=o.mapVisibleBottom+2*r;return i("bottom",s,e,"3rem")}else{let e=o.mapVisibleTop+2*r;return f.mapboxStore.showMapbox&&(e=n(.5)),i("top",s,e,"2rem")}}}}),u=Math.round(window.__fpStat?.dataSize/1024/1024||0),w=c&&u>=10,x=c&&!h&&_.allow3dView&&!o.kiosk&&!o.heatmap,v=o.kiosk&&!o.selectedRoute?.to&&!o.selectedRoute?.from,y=p("efp-qr",{"is-right":g||o.rtl});return R(()=>m("div",{children:[t("a",{href:"https://expofp.com/",target:"_blank",rel:"noopener noreferrer",className:p("logo-overlay",{invert:V}),style:b.style,children:t("img",{src:`${C}expofp-overlay.png`,alt:a("Made with ExpoFP"),crossOrigin:"anonymous"})}),w&&t(d,{title:"This floor plan is too big",variant:"warning",showIcon:!0,position:"bottomRight",children:t("a",{rel:"noopener noreferrer",target:"_blank",href:"https://expofp.com/pages/huge-fp-warning",children:a("Read how to optimize it")})}),x&&t(d,{title:"3D view is hidden",variant:"warning",showIcon:!0,position:"bottomRight",children:t("a",{rel:"noopener noreferrer",target:"_blank",href:"https://expofp.com/pages/expofp-mapbox-integration",children:a("Setup mapbox first")})}),v&&m("div",{className:p(y,{"efp-semi-transparent":o.setKioskModeEnabled}),children:[t("div",{children:a("View Map on Phone")}),t(M,{value:o.viewMapOnPhoneQRCodeUrl,size:100})]})]}))}
1
+ import{jsx as t,jsxs as m}from"react/jsx-runtime";import p from"classnames";import S from"color";import{Suspense as P}from"react";import{useLocalStore as M,useObserver as R}from"mobx-react-lite";import _ from"../data";import f,{uiState as o}from"../store";import l from"../tools/settings";import{remsToPixels as n}from"../utils";import{t as a}from"../utils/i18n";import c from"../utils/is-from-designer";import d from"./Alert";import"./Alert.scss";import"./LogoOverlay.scss";import{fpGeo as h}from"./Mapbox/utils/fpGeo";import C from"../tools/base-runtime-url";import V from"./QrCode";const g=["info-techlive2025","metstrade-superyacht2023"].includes(l.EXPO),O=l.backgroundColor!=="none"&&S(l.backgroundColor).isDark()||h?.properties?.style?.includes("dark");export default function j(){const b=M(()=>{const i=(r,e,z,k)=>({width:k,opacity:o.wsStarted?1:0}),s=g||o.rtl?"left":"right";return{get style(){const r=n((o.overlayPosition==="left",1));if(o.overlayPosition==="left"){const e=o.mapVisibleBottom+r;return i("bottom",s,e,"5rem")}else{let e=o.mapVisibleTop;return f.mapboxStore.showMapbox&&(e=n(.5)),i("bottom",s,20,"4.5rem")}},get warningStyle(){const r=n(o.overlayPosition==="left"?1:.5);if(o.overlayPosition==="left"){const e=o.mapVisibleBottom+2*r;return i("bottom",s,e,"3rem")}else{let e=o.mapVisibleTop+2*r;return f.mapboxStore.showMapbox&&(e=n(.5)),i("top",s,e,"2rem")}}}}),u=Math.round(window.__fpStat?.dataSize/1024/1024||0),w=c&&u>=10,x=c&&!h&&_.allow3dView&&!o.kiosk&&!o.heatmap,v=o.kiosk&&!o.selectedRoute?.to&&!o.selectedRoute?.from,y=p("efp-qr",{"is-right":g||o.rtl});return R(()=>m("div",{children:[t("a",{href:"https://expofp.com/",target:"_blank",rel:"noopener noreferrer",className:p("logo-overlay",{invert:O}),style:b.style,children:t("img",{src:`${C}expofp-overlay.png`,alt:a("Made with ExpoFP"),crossOrigin:"anonymous"})}),w&&t(d,{title:"This floor plan is too big",variant:"warning",showIcon:!0,position:"bottomRight",children:t("a",{rel:"noopener noreferrer",target:"_blank",href:"https://expofp.com/pages/huge-fp-warning",children:a("Read how to optimize it")})}),x&&t(d,{title:"3D view is hidden",variant:"warning",showIcon:!0,position:"bottomRight",children:t("a",{rel:"noopener noreferrer",target:"_blank",href:"https://expofp.com/pages/expofp-mapbox-integration",children:a("Setup mapbox first")})}),v&&t(P,{fallback:null,children:m("div",{className:p(y,{"efp-semi-transparent":o.setKioskModeEnabled}),children:[t("div",{children:a("View Map on Phone")}),t(V,{value:o.viewMapOnPhoneQRCodeUrl,size:100})]})})]}))}
@@ -1,25 +1,2 @@
1
- import { ImageDef, RenderableDef, Renderer as EngineRenderer, TextDef } from "@expofp/renderer";
2
- import { CustomFonts } from "./drawing/config/engine-core";
3
- import { ImageDefWithParentBounds } from "./drawing/config/engine-core";
4
- export interface MapRenderer extends EngineRenderer {
5
- ptScaleHandlers?: {
6
- fn: (scale: number) => RenderableDef | undefined;
7
- name?: string;
8
- }[];
9
- rollHandlers?: {
10
- fn: (angle: number) => ImageDef | TextDef | ImageDef[] | TextDef[] | undefined;
11
- name?: string;
12
- }[];
13
- layerImagesHandlers?: {
14
- fn: () => Promise<{
15
- name: string;
16
- children: ImageDefWithParentBounds[];
17
- }>;
18
- name?: string;
19
- }[];
20
- scale?: number;
21
- fontUrls?: CustomFonts[];
22
- angle?: number;
23
- }
24
1
  export default function Map(): import("react/jsx-runtime").JSX.Element;
25
2
  //# sourceMappingURL=Map.d.ts.map
@@ -1 +1 @@
1
- import{jsx as T,jsxs as z,Fragment as $}from"react/jsx-runtime";import{useObserver as K}from"mobx-react-lite";import Y from"classnames";import{useEffect as q,useMemo as J,useRef as w,useState as Q}from"react";import{observable as ee}from"mobx";import s,{boothStore as oe,layersStore as L,uiState as e}from"../../store";import{Renderer as te}from"@expofp/renderer";import re from"./drawing/config/config-all";import{useReaction as d}from"../../utils/mobx";import{LayerMode as x}from"../../store/LayerStore";import h from"../../tools/settings";import{Rect as S}from"./drawing/config/Rect";import k from"../../core/Rect";import{Exhibitor as N}from"../../store/ExhibitorStore";import{BoothBase as ne}from"../../store/BoothStore";import{CurrentPosition as ie,Route as ae}from"../../store/RouteStore";import{Category as se}from"../../store/CategoryStore";import B from"../../tools/logger";import{svgArea as H}from"../../data/svg";import{configMarkers as le,getMarkerFromClick as ce}from"./drawing/config/config-markers";import me from"color";import fe from"./drawing/config/config-wf";import{startRenderer as ue,updateRenderer as R,createSceneDef as de,loadCustomFontsUrls as pe}from"./drawing/config/engine-core";import{convertGpsToLocal as he}from"../../utils/gps";import{fpGeo as ve}from"../Mapbox/utils/fpGeo";import y from"../../utils/is-debug";import{Draggable as be}from"../Draggable";import{useBuildRoute as ye}from"./traffic/useBuildRoute";import{useManageTraffic as ge}from"./traffic/useManageTraffic";import{PATHWAY_KEY as G}from"../../constants";import D from"./booth-by-xy";import{mapRollSetting as O}from"./drawing/config/engine-core";import{loadLayersImages as we}from"./drawing/config/loadBoothsImages";import{areLayersEnabled as xe}from"../../utils/areLayersEnabled";const X=Number.isFinite(h.maxZoom);export default function Se(){let p={};const A="#ebebeb",b=w(),g=J(()=>ee({moving:!1,prevLevel:s.layerStore.layers.find(o=>!o.frozen&&o.visible)}),[]);let t;const m=w(null),v=w(null),M=w(null);let E=null,P=null;const[U,j]=Q(()=>typeof window<"u"&&window.localStorage?localStorage.getItem("debug")!=="0":!0);d(()=>s.routeStore.currentRouteLayer,()=>{if(!t||g.prevLevel===s.routeStore.currentRouteLayer)return;const o=p.rootLayer.children.filter(n=>s.layerStore.floors.some(r=>n.name.includes(r.name)));let i=s.routeStore.currentRouteLayer.name;if(!o.find(n=>n.name===i))return;const a=o?.map(n=>(n.name===i&&(n.hidden=!1),n.name===g.prevLevel?.name&&(n.hidden=!0),n));g.prevLevel=s.routeStore.currentRouteLayer,R(t,...a)}),d(()=>e.centerMap,()=>{!e.centerMap||s.mapboxStore.showMapbox||(t.controls.resetCamera({zoom:!!(e.list.type==="search"&&e.list.text)}),e.centerMap=!1)}),q(()=>{if(!b.current)return;async function o(){let i={};try{if(y){const n=document.createElement("canvas").getContext("webgl2"),r=n&&n.getExtension("EXT_disjoint_timer_query_webgl2"),c=(await import("stats-gl")).default,f=new c({trackGPU:r,horizontal:!0}),u=M.current;if(!u)throw new Error("memoryInfoPanel not found.");f.dom.style.position="relative",u.style.width=`${90*(r?3:2)}px`,u.style.height="48px",u.appendChild(f.dom),i={stats:f,memoryInfoPanel:u}}}catch(a){console.error(a)}t=new te({ui:i,canvas:b.current}),t.ptScaleHandlers=[],t.rollHandlers=[],t.layerImagesHandlers=[],m.current=t,t.fontUrls=pe(),e.canvasVisibleRectPx&&(t.visibleRect=S.fromCoreRect(e.canvasVisibleRectPx)),re(t).then(a=>{y&&console.log("Renderer settings",t);const n=me(h.backgroundColor==="none"?A:h.backgroundColor).string("rgba");p=de(a,S.fromCoreRect(H),n),v.current=p,ue(t,p),s.renderer=t,O(t,s.fp.enableRotation?1:0),X&&t.viewport.setMaxZoom(h.maxZoom),L.layersLoaded=!0,s.fp.onFpConfigured&&s.fp?.onFpConfigured(),E=fe(t,p),P=le(t,p),we(t,p)}),t.events.addEventListener("pointer:move",({point:a,defs:n})=>{if(e.setKioskModeEnabled)return;const r=D(a.x,a.y),l=I(n[0]);e.hoveredBooth=r||l}),t.events.addEventListener("pointer:out",()=>{e.setKioskModeEnabled||(e.hoveredBooth=null)}),t.events.addEventListener("pointer:click",({defs:a,point:n})=>{if(!e?.rootElement)return;window.__resett&&window.__resett(),e.overlayPosition==="bottom"&&e.overlaySize==="full"&&s.showMap();const{x:r,y:l}=n;if(e.onGetCoordsClick){const u=s.layerStore.layers.find(C=>C.visible&&(C.mode===x.TurnedOn||C.mode===x.TurnedOff));e.onGetCoordsClick({x:r,y:l,z:u?.name||null})}if(e.setKioskModeEnabled)return;if(e.onMarkerClick){const u=ce(r,l,t.scale);y&&console.log("marker",u),e.onMarkerClick(u)}const c=D(n.x,n.y),f=I(a[0]);y&&console.log("boothIdFromClientXy",c,"boothByShape",f,"pointer:click point",n),s.clickBooth(c||f)}),t.events.addEventListener("viewport:ptscale",a=>{if(!(!t||a===1/0)){t.scale=a;for(const n of t.ptScaleHandlers.filter(r=>!!r)){const r=n.fn(a);r&&R(t,r)}}}),t.events.addEventListener("navigation:roll",a=>{if(!Number.isNaN(a)){t.angle=a;for(const n of t.rollHandlers.filter(r=>!!r)){const r=n.fn(a);r&&R(t,...Array.isArray(r)?r:[r])}}}),t.events.addEventListener("navigation:change",()=>window.__resett&&window.__resett())}return o(),s.fp.getCenterCoordinates=W,()=>V()},[]);function V(){E?.(),P?.(),t.rollHandlers=[],t.ptScaleHandlers=[],t.layerImagesHandlers=[],m.current=null,v.current=null}function W(){const o=b.current;if(!b.current)throw new Error("Canvas not ready");const i=t.viewport.canvasToSvg({x:o.clientWidth/2,y:o.clientHeight/2}),n=s.layerStore.visible.find(r=>r.mode===x.TurnedOff||r.mode===x.TurnedOn)?.name||null;return{...i,z:n}}function I(o){return!o||!o.shape?null:oe.booths.find(i=>i.shapes?.find(a=>a.shape==o.shape))}d(()=>e.zoomBy,()=>{if(!e.zoomBy||s.mapboxStore.showMapbox)return;const o=e.zoomBy;t.controls.zoomBy(o),e.zoomBy=null}),d(()=>e.dimmed,o=>{const i=p.rootLayer;!i||!t||i.dim===o||(i.dim=o,R(t,i))}),d(()=>e.details,()=>{if(!e.onDetails)return;if(!e.details){e.onDetails(null);return}var o=e.details;if(h.EXPO==="wineparis"&&(o instanceof N&&(o=o.booths[0]),!o))return;let i=null,a=[];o instanceof N?(i="exhibitor",a=o.booths.map(r=>r.name).sort((r,l)=>r==s.routeStore.tempToBooth?.name?-1:l==s.routeStore.tempToBooth?.name?1:0)):o instanceof ne?(i="booth",a=[o.name]):o instanceof ae?(i="route",a=[o.from?.name,o.to?.name].filter(r=>!!r)):o instanceof se&&(i="category",a=o.exhibitors.map(r=>r.booths.map(l=>l.name)).flat());var n={type:i,name:o?.name,id:o?.id,externalId:o?.externalId,boothsNames:a};e.onDetails({...n,...i==="route"?{routeInfo:s.routeStore.routeInfo}:{}})}),d(()=>e.canvasVisibleRectPx,()=>{t&&(t.visibleRect=S.fromCoreRect(e.canvasVisibleRectPx))},{fireImmediately:!0}),d(()=>e.moveToRect,()=>{!e.moveToRect||s.mapboxStore.showMapbox||(e.moveToRect&&e.moveToRect.h!==1/0&&e.moveToRect.w!==1/0&&e.moveToRect.h>0&&e.moveToRect.w>0&&F(e.moveToRect),e.moveToRect=null)}),d(()=>e.rollReset,o=>{o&&(t.controls.resetCamera({roll:!0}),e.rollReset=!1)}),d(()=>e.moveToBooths,()=>{if(B.log("this.moveToBooths",e.moveToBooths),!e.moveToBooths||s.mapboxStore.showMapbox)return;B.log("watched moveToBooths",e.moveToBooths);const o=e.moveToBooths.filter(i=>i.rect).map(i=>i.rect);o.length!==0&&(F(k.fromMultiple(o)),e.moveToBooths=null)}),d(()=>e.mapSettings,({zoomtime:o,center:i,centerxy:a,bearing:n,roll:r,z:l})=>{try{if(s.mapboxStore.showMapbox||!m.current)return;o&&o!==e.defaultMapSettings.zoomtime&&m.current.controls.configure({zoomTime:o/1e3}),s.fp.enableRotation&&O(t,r);let c;if(i){const f=i.split(",").map(Number),u=new ie(void 0,void 0,void 0,void 0,f[0],f[1]);c=he(u,ve.properties.config)}else if(a){const f=a.split(",").map(Number);c={x:f[0],y:f[1]}}l&&s.fp.activateFloor({name:l}),(c?.x||c?.y)&&m.current.controls.panTo(c.x,c.y),Number.isFinite(n)&&m.current.controls.rollTo(n)}catch(c){B.error("Error in mapSettings reaction",c)}}),ye({enabled:L.layersLoaded&&e.buildRoute,renderer:m.current,scene:v.current,initialScale:m?.current?.scale});const _="routes-api.expofp.com";ge({permission:L.layersLoaded,renderer:m.current,scene:v.current,dataJsonUrl:`https://${_}/v1/routes?expo=${h.EXPO}`,websocketUrl:`wss://${_}/locations?expo=${h.EXPO}`,initialScale:m?.current?.scale}),d(()=>s.layerStore.visible,o=>{if(!m.current||!v.current)return;const i=o.filter(r=>r.name.toLowerCase().includes(G)),n=v.current.rootLayer.children.filter(r=>r.name.toLowerCase().includes(G));n.forEach(r=>{r.hidden=!i.find(l=>l.name===r.name)}),m.current.update(...n)});function F(o){let i=o;const a=Z(o,H);e.kioskData&&(!xe()||s.routeStore.defaultFrom?.layer?.name===s.routeStore.currentRouteLayer?.name)&&(i=k.fromMultiple([o,k.fromXywh(e.kioskData.x,e.kioskData.y,1,1)]));const n=S.fromCoreRect(i),r={paddingPercent:a,maxZoom:X?void 0:10};if(e.shouldShiftMapRect){t.visibleRect.min={...t.visibleRect.min,x:t.visibleRect.min.x+e.overlayWidthPx};try{t.controls.zoomTo(n,r)}finally{t.visibleRect.min={...t.visibleRect.min,x:t.visibleRect.min.x-e.overlayWidthPx}}}else t.controls.zoomTo(n,r)}function Z(o,i){return!o||!i?0:(o.w*o.h/(i.h*i.w)>.1?15:25)/100}return K(()=>z($,{children:[T("canvas",{style:{width:"100%",height:"100%"},ref:b,className:Y({map:!0,moving:g.moving,hidden:s.mapboxStore.showMapbox}),children:"ExpoFP.com"}),y&&U&&z(be,{className:"debug-fps",children:[T("div",{ref:M}),T("button",{onClick:()=>{typeof window<"u"&&window.localStorage&&localStorage.setItem("debug","0"),j(!1)},style:{padding:"4px 8px",fontSize:"11px",cursor:"pointer",backgroundColor:"#333",color:"#fff",border:"1px solid #555",width:"100%"},children:"Hide debug"})]})]}))}
1
+ import{jsx as w,jsxs as I,Fragment as $}from"react/jsx-runtime";import{useObserver as H}from"mobx-react-lite";import K from"classnames";import{useEffect as U,useMemo as Y,useRef as _,useState as q}from"react";import{observable as J}from"mobx";import i,{boothStore as Q,layersStore as S,uiState as e}from"../../store";import ee from"./drawing/config/config-all";import{useReaction as u}from"../../utils/mobx";import{LayerMode as y}from"../../store/LayerStore";import p from"../../tools/settings";import{Rect as g}from"./drawing/config/Rect";import R from"../../core/Rect";import{Exhibitor as z}from"../../store/ExhibitorStore";import{BoothBase as oe}from"../../store/BoothStore";import{CurrentPosition as te,Route as re}from"../../store/RouteStore";import{Category as ne}from"../../store/CategoryStore";import C from"../../tools/logger";import{svgArea as F}from"../../data/svg";import{configMarkers as ie,getMarkerFromClick as ae}from"./drawing/config/config-markers";import se from"color";import le from"./drawing/config/config-wf";import{createSceneDef as me}from"../../renderer";import{convertGpsToLocal as ce}from"../../utils/gps";import{fpGeo as fe}from"../Mapbox/utils/fpGeo";import v from"../../utils/is-debug";import{Draggable as de}from"../Draggable";import{useBuildRoute as ue}from"./traffic/useBuildRoute";import{useManageTraffic as pe}from"./traffic/useManageTraffic";import{PATHWAY_KEY as G}from"../../constants";import N from"./booth-by-xy";import{mapRollSetting as D}from"../../renderer";import{loadLayersImages as he}from"./drawing/config/loadBoothsImages";import{areLayersEnabled as ve}from"../../utils/areLayersEnabled";const O=Number.isFinite(p.maxZoom);export default function be(){let T={};const X="#ebebeb",h=_(),b=Y(()=>J({moving:!1,prevLevel:i.layerStore.layers.find(o=>!o.frozen&&o.visible)}),[]),s=i.rendererService;let l;const L=_(null);let k=null,M=null;const[j,A]=q(()=>typeof window<"u"&&window.localStorage?localStorage.getItem("debug")!=="0":!0);u(()=>i.routeStore.currentRouteLayer,()=>{if(!s.scene||b.prevLevel===i.routeStore.currentRouteLayer)return;const o=s.scene.rootLayer.children.filter(r=>i.layerStore.floors.some(n=>r.name.includes(n.name)));let t=i.routeStore.currentRouteLayer.name;if(!o.find(r=>r.name===t))return;const a=o?.map(r=>(r.name===t&&(r.hidden=!1),r.name===b.prevLevel?.name&&(r.hidden=!0),r));b.prevLevel=i.routeStore.currentRouteLayer,s.update(...a)}),u(()=>e.centerMap,()=>{!e.centerMap||i.mapboxStore.showMapbox||(l.controls.resetCamera({zoom:!!(e.list.type==="search"&&e.list.text)}),e.centerMap=!1)}),U(()=>{if(!h.current)return;async function o(){let t={};try{if(v){const r=document.createElement("canvas").getContext("webgl2"),n=r&&r.getExtension("EXT_disjoint_timer_query_webgl2"),c=(await import("stats-gl")).default,f=new c({trackGPU:n,horizontal:!0}),d=L.current;if(!d)throw new Error("memoryInfoPanel not found.");f.dom.style.position="relative",d.style.width=`${90*(n?3:2)}px`,d.style.height="48px",d.appendChild(f.dom),t={stats:f,memoryInfoPanel:d}}}catch(a){console.error(a)}l=s.create({canvas:h.current,ui:t}),e.canvasVisibleRectPx&&(l.visibleRect=g.fromCoreRect(e.canvasVisibleRectPx)),ee(s).then(a=>{v&&console.log("Renderer settings",l);const r=se(p.backgroundColor==="none"?X:p.backgroundColor).string("rgba");T=me(a,g.fromCoreRect(F),r),s.start(T),D(l,i.fp.enableRotation?1:0),O&&l.viewport.setMaxZoom(p.maxZoom),S.layersLoaded=!0,i.fp.onFpConfigured&&i.fp?.onFpConfigured(),k=le(s),M=ie(s),he(s)}),l.events.addEventListener("pointer:move",({point:a,defs:r})=>{if(e.setKioskModeEnabled)return;const n=N(a.x,a.y),m=B(r[0]);e.hoveredBooth=n||m}),l.events.addEventListener("pointer:out",()=>{e.setKioskModeEnabled||(e.hoveredBooth=null)}),l.events.addEventListener("pointer:click",({defs:a,point:r})=>{if(!e?.rootElement)return;window.__resett&&window.__resett(),e.overlayPosition==="bottom"&&e.overlaySize==="full"&&i.showMap();const{x:n,y:m}=r;if(e.onGetCoordsClick){const d=i.layerStore.layers.find(x=>x.visible&&(x.mode===y.TurnedOn||x.mode===y.TurnedOff));e.onGetCoordsClick({x:n,y:m,z:d?.name||null})}if(e.setKioskModeEnabled)return;if(e.onMarkerClick){const d=ae(n,m,s.scale);v&&console.log("marker",d),e.onMarkerClick(d)}const c=N(r.x,r.y),f=B(a[0]);v&&console.log("boothIdFromClientXy",c,"boothByShape",f,"pointer:click point",r),i.clickBooth(c||f)}),l.events.addEventListener("navigation:change",()=>window.__resett&&window.__resett())}return o(),i.fp.getCenterCoordinates=W,()=>V()},[]);function V(){k?.(),M?.(),s.dispose()}function W(){const o=h.current;if(!h.current)throw new Error("Canvas not ready");const t=l.viewport.canvasToSvg({x:o.clientWidth/2,y:o.clientHeight/2}),r=i.layerStore.visible.find(n=>n.mode===y.TurnedOff||n.mode===y.TurnedOn)?.name||null;return{...t,z:r}}function B(o){return!o||!o.shape?null:Q.booths.find(t=>t.shapes?.find(a=>a.shape==o.shape))}u(()=>e.zoomBy,()=>{if(!e.zoomBy||i.mapboxStore.showMapbox)return;const o=e.zoomBy;l.controls.zoomBy(o),e.zoomBy=null}),u(()=>e.dimmed,o=>{if(!s.scene)return;const t=s.scene.rootLayer;t.dim!==o&&(t.dim=o,s.update(t))}),u(()=>e.details,()=>{if(!e.onDetails)return;if(!e.details){e.onDetails(null);return}var o=e.details;if(p.EXPO==="wineparis"&&(o instanceof z&&(o=o.booths[0]),!o))return;let t=null,a=[];o instanceof z?(t="exhibitor",a=o.booths.map(n=>n.name).sort((n,m)=>n==i.routeStore.tempToBooth?.name?-1:m==i.routeStore.tempToBooth?.name?1:0)):o instanceof oe?(t="booth",a=[o.name]):o instanceof re?(t="route",a=[o.from?.name,o.to?.name].filter(n=>!!n)):o instanceof ne&&(t="category",a=o.exhibitors.map(n=>n.booths.map(m=>m.name)).flat());var r={type:t,name:o?.name,id:o?.id,externalId:o?.externalId,boothsNames:a};e.onDetails({...r,...t==="route"?{routeInfo:i.routeStore.routeInfo}:{}})}),u(()=>e.canvasVisibleRectPx,()=>{s.renderer&&(s.renderer.visibleRect=g.fromCoreRect(e.canvasVisibleRectPx))},{fireImmediately:!0}),u(()=>e.moveToRect,()=>{!e.moveToRect||i.mapboxStore.showMapbox||(e.moveToRect&&e.moveToRect.h!==1/0&&e.moveToRect.w!==1/0&&e.moveToRect.h>0&&e.moveToRect.w>0&&E(e.moveToRect),e.moveToRect=null)}),u(()=>e.rollReset,o=>{o&&(l.controls.resetCamera({roll:!0}),e.rollReset=!1)}),u(()=>e.moveToBooths,()=>{if(C.log("this.moveToBooths",e.moveToBooths),!e.moveToBooths||i.mapboxStore.showMapbox)return;C.log("watched moveToBooths",e.moveToBooths);const o=e.moveToBooths.filter(t=>t.rect).map(t=>t.rect);o.length!==0&&(E(R.fromMultiple(o)),e.moveToBooths=null)}),u(()=>e.mapSettings,({zoomtime:o,center:t,centerxy:a,bearing:r,roll:n,z:m})=>{if(!(i.mapboxStore.showMapbox||!s.renderer))try{o&&o!==e.defaultMapSettings.zoomtime&&s.renderer.controls.configure({zoomTime:o/1e3}),i.fp.enableRotation&&D(l,n);let c;if(t){const f=t.split(",").map(Number),d=new te(void 0,void 0,void 0,void 0,f[0],f[1]);c=ce(d,fe.properties.config)}else if(a){const f=a.split(",").map(Number);c={x:f[0],y:f[1]}}m&&i.fp.activateFloor({name:m}),(c?.x||c?.y)&&s.renderer.controls.panTo(c.x,c.y),Number.isFinite(r)&&s.renderer.controls.rollTo(r)}catch(c){C.error("Error in mapSettings reaction",c)}}),ue({enabled:S.layersLoaded&&e.buildRoute,rendererService:s});const P="routes-api.expofp.com";pe({permission:S.layersLoaded,rendererService:s,dataJsonUrl:`https://${P}/v1/routes?expo=${p.EXPO}`,websocketUrl:`wss://${P}/locations?expo=${p.EXPO}`}),u(()=>i.layerStore.visible,o=>{if(!s.scene)return;const t=o.filter(n=>n.name.toLowerCase().includes(G)),r=s.scene.rootLayer.children.filter(n=>n.name.toLowerCase().includes(G));r.forEach(n=>{n.hidden=!t.find(m=>m.name===n.name)}),s.update(...r)});function E(o){let t=o;const a=Z(o,F);e.kioskData&&(!ve()||i.routeStore.defaultFrom?.layer?.name===i.routeStore.currentRouteLayer?.name)&&(t=R.fromMultiple([o,R.fromXywh(e.kioskData.x,e.kioskData.y,1,1)]));const r=g.fromCoreRect(t),n={paddingPercent:a,maxZoom:O?void 0:10};if(e.shouldShiftMapRect){l.visibleRect.min={...l.visibleRect.min,x:l.visibleRect.min.x+e.overlayWidthPx};try{l.controls.zoomTo(r,n)}finally{l.visibleRect.min={...l.visibleRect.min,x:l.visibleRect.min.x-e.overlayWidthPx}}}else l.controls.zoomTo(r,n)}function Z(o,t){return!o||!t?0:(o.w*o.h/(t.h*t.w)>.1?15:25)/100}return H(()=>I($,{children:[w("canvas",{style:{width:"100%",height:"100%"},ref:h,className:K({map:!0,moving:b.moving,hidden:i.mapboxStore.showMapbox}),children:"ExpoFP.com"}),v&&j&&I(de,{className:"debug-fps",children:[w("div",{ref:L}),w("button",{onClick:()=>{typeof window<"u"&&window.localStorage&&localStorage.setItem("debug","0"),A(!1)},style:{padding:"4px 8px",fontSize:"11px",cursor:"pointer",backgroundColor:"#333",color:"#fff",border:"1px solid #555",width:"100%"},children:"Hide debug"})]})]}))}
@@ -1 +1 @@
1
- import{reaction as P}from"mobx";import w from"../../core/Rect";import{getTrianglesFromFpPaths as S}from"../../data/svg";import{boothStore as y,layersStore as p}from"../../store";import{LayersMode as T}from"../../store/LayerStore";import F from"../../tools/logger";let u=new Map,d=[],v=[],b=[],g=new Map,h;function I(){const n=y.booths.filter(t=>t.visible&&t.rect&&t.rect.w>0&&t.rect.h>0);if(u=new Map,d=[],b=[],h=null,g=new Map,!n.length)return;v=n.filter(t=>t.paths);let s=w.fromMultiple(n.map(t=>t.rect));for(const t of n){let o=t.rect;Math.abs(t.rotate)===90*Math.PI/180&&(o=o.getRotated90()),d.push(o),u.set(o,t)}const r=2,c=Math.ceil(s.w/r),e=Math.ceil(s.h/r);for(let t=0;t<r;t++)for(let o=0;o<r;o++){const i=s.x1+t*c,l=s.y1+o*e,f=w.fromXywh(i,l,c,e);b.push(f);const a=d.filter(m=>f.intersects(m));g.set(f,a)}F.log("hover segmentToRects",g)}P(()=>[y.booths,p.loaded,p.visible],()=>I());function R(n,s){let r;h&&h.containsPoint(n,s)?r=h:r=b.find(e=>e.containsPoint(n,s)),r&&(h=r);const c=g.get(r);if(c){const e=c.filter(t=>t.containsPoint(n,s));if(e.length){let t;e.length>1?t=e.sort((i,l)=>i.w-l.w)[0]:t=e[0];let o=u.get(t);return o.visible?o:null}}for(const e of v)for(const t of e.paths)for(const o of S(t.index,p.mode!==T.Default?e.layer.name:""))if(X(n,s,o))return e.visible?e:null;return null}function X(n,s,r){const[c,e]=r[0],[t,o]=r[1],[i,l]=r[2],f=(o-l)*(c-i)+(i-t)*(e-l),a=((o-l)*(n-i)+(i-t)*(s-l))/f,m=((l-e)*(n-i)+(c-i)*(s-l))/f,M=1-a-m;return a>=0&&a<=1&&m>=0&&m<=1&&M>=0&&M<=1}export default function x(n,s){return R(n,s)}
1
+ import{reaction as P}from"mobx";import d from"../../core/Rect";import{getTrianglesFromFpPaths as y}from"../../data/svg";import{boothStore as b,layersStore as h}from"../../store";import{LayersMode as S}from"../../store/LayerStore";import T from"../../tools/logger";import{pointInTriangle as F}from"../../utils/geometry";let g=new Map,p=[],M=[],u=[],c=new Map,l;function I(){const r=b.booths.filter(t=>t.visible&&t.rect&&t.rect.w>0&&t.rect.h>0);if(g=new Map,p=[],u=[],l=null,c=new Map,!r.length)return;M=r.filter(t=>t.paths);let n=d.fromMultiple(r.map(t=>t.rect));for(const t of r){let o=t.rect;Math.abs(t.rotate)===90*Math.PI/180&&(o=o.getRotated90()),p.push(o),g.set(o,t)}const s=2,i=Math.ceil(n.w/s),e=Math.ceil(n.h/s);for(let t=0;t<s;t++)for(let o=0;o<s;o++){const f=n.x1+t*i,a=n.y1+o*e,m=d.fromXywh(f,a,i,e);u.push(m);const w=p.filter(v=>m.intersects(v));c.set(m,w)}T.log("hover segmentToRects",c)}P(()=>[b.booths,h.loaded,h.visible],()=>I());function R(r,n){let s;l&&l.containsPoint(r,n)?s=l:s=u.find(e=>e.containsPoint(r,n)),s&&(l=s);const i=c.get(s);if(i){const e=i.filter(t=>t.containsPoint(r,n));if(e.length){let t;e.length>1?t=e.sort((f,a)=>f.w-a.w)[0]:t=e[0];let o=g.get(t);return o.visible?o:null}}for(const e of M)for(const t of e.paths)for(const o of y(t.index,h.mode!==S.Default?e.layer.name:""))if(F(r,n,o))return e.visible?e:null;return null}export default function X(r,n){return R(r,n)}
@@ -1,4 +1,4 @@
1
- import { FontSizeFactor } from "./engine-core";
1
+ import { FontSizeFactor } from "../../../../renderer";
2
2
  export default class TextFitter {
3
3
  private readonly maxMultilineFontSize;
4
4
  private readonly baseFontSize;
@@ -1,5 +1,4 @@
1
1
  import { LayerDef } from "@expofp/renderer";
2
- import { MapRenderer } from "../../Map";
3
- export declare let getRenderer: () => MapRenderer;
4
- export default function configAll(renderer: MapRenderer): Promise<LayerDef[]>;
2
+ import { RendererService } from "../../../../renderer";
3
+ export default function configAll(rendererService: RendererService): Promise<LayerDef[]>;
5
4
  //# sourceMappingURL=config-all.d.ts.map
@@ -1 +1 @@
1
- import A from"../../../../store";import E from"./config-load-layer";import{createLayerDef as r}from"./engine-core";import{WF_CURRENT_POSITION_NAME as d,WF_LINES_ANIMATED_LAYER_NAME as p,WF_LINES_LAYER_NAME as N,WF_POINTS_LAYER_NAME as y,WF_TRAIL_LAYER_NAME as R}from"./config-wf";import{MARKER_LAYER_NAME as u}from"./config-markers";import M from"./config-yah";import{createTrafficLayers as T}from"../../traffic/trafficLayers";import{PATHWAY_KEY as Y}from"../../../../constants";let m;export let getRenderer=()=>m;export default function I(f){m=f,M();let{layers:t,defaultLayer:n}=A.layerStore;if(n){const e=[].concat(t),o=t.find(i=>i===n),a=t.indexOf(o);e.splice(a,1),t=[o].concat(e)}const c=t.filter(e=>!e.rootParent).map(e=>E(e,f));return Promise.all(c).then(e=>{const o=r(y,[],{dim:!1,interactive:!0}),a=r(d,[],{dim:!1}),i=r(N,[],{dim:!1}),l=r(u,[]),L=r(R,[],{dim:!1}),_=r(p,[],{dim:!1});return e.forEach(s=>{s.name.toLowerCase().includes(Y)&&(s.dim=!1)}),[...e.flat(),...T(),l,L,i,_,o,a]})}
1
+ import c from"../../../../store";import E from"./config-load-layer";import{createLayerDef as r}from"../../../../renderer";import{WF_CURRENT_POSITION_NAME as d,WF_LINES_ANIMATED_LAYER_NAME as p,WF_LINES_LAYER_NAME as y,WF_POINTS_LAYER_NAME as N,WF_TRAIL_LAYER_NAME as R}from"./config-wf";import{MARKER_LAYER_NAME as u}from"./config-markers";import M from"./config-yah";import{createTrafficLayers as T}from"../../traffic/trafficLayers";import{PATHWAY_KEY as Y}from"../../../../constants";import{configBoothsBadges as I}from"./config-booth-badge";export default function P(f){M();let{layers:t,defaultLayer:s}=c.layerStore;if(s){const o=[].concat(t),e=t.find(i=>i===s),a=t.indexOf(e);o.splice(a,1),t=[e].concat(o)}const L=t.filter(o=>!o.rootParent).map(o=>E(o,f));return Promise.all(L).then(o=>{const e=r(N,[],{dim:!1,interactive:!0}),a=r(d,[],{dim:!1}),i=r(y,[],{dim:!1}),l=r(u,[]),A=r(R,[],{dim:!1}),_=r(p,[],{dim:!1});o.forEach(m=>{m.name.toLowerCase().includes(Y)&&(m.dim=!1)});const n=I(f,"root",c.boothStore.booths);return[...o.flat(),...n?[n]:[],...T(),l,A,i,_,e,a]})}
@@ -1,6 +1,6 @@
1
1
  import { Layer } from "../../../../store/LayerStore";
2
2
  import { LayerDef } from "@expofp/renderer";
3
- import { PathInfo } from "./engine-core/types";
3
+ import { PathInfo } from "../../../../renderer/engine-core/types";
4
4
  import { ShapeBgDef } from "../../../../data/Data";
5
5
  export declare const BG_LAYER_NAME = "bg";
6
6
  export declare const FG_LAYER_NAME = "fg";
@@ -1 +1 @@
1
- import{select as d}from"d3-selection";import{getLayerSvg as m,gtePathByIndex as p}from"../../../../data/svg";import g from"../../../../store";import{LayersMode as h}from"../../../../store/LayerStore";import{rectToShapeDef as i,meshToShapeDef as u}from"./engine-core";export const BG_LAYER_NAME="bg",FG_LAYER_NAME="fg";export default async function x(t){let o=[],n=[];const a=[],r=d(m(t)).select(`[data-layer="${t.name}"]`),c=r.selectAll(":scope > *:not([data-tagname='efp-booth']):not(g[data-is-editable='false']) path, :scope > path").nodes(),f=r.selectAll(":scope g[data-layer] > g[data-is-editable='false'] path, :scope > g[data-is-editable='false'] path, :scope > path[data-tagname='ptext']").nodes(),l=g.layerStore.mode!==h.Default?t.rootParent?.name||t.name:"";for(const e of c){const s=+e.getAttribute("data-index");e.tagName==="path"&&s!==-1?o.push(buildPathDef({color:e.style.fill,index:s},l)):e.tagName==="rect"&&o.push(i(e))}for(const e of f){const s=+e.getAttribute("data-index");e.tagName==="path"&&s!==-1?n.push(buildPathDef({color:e.style.fill,index:s},l)):e.tagName==="rect"&&n.push(i(e))}return a.push({name:BG_LAYER_NAME,children:o.filter(e=>e)}),a.push({name:FG_LAYER_NAME,children:n.filter(e=>e)}),Promise.resolve({name:t.name,children:a.filter(e=>e.children.length)})}export function buildPathDef(t,o){if(t.index===-1||Number.isNaN(t.index))return;(!t.color||t.color==="none")&&(t.color="transparent");const n=parseInt(t.index.toString()),a=p(n,o),r=u(a,t.color);return r.unblinking=t.unblinking,r}
1
+ import{select as d}from"d3-selection";import{getLayerSvg as m,gtePathByIndex as p}from"../../../../data/svg";import g from"../../../../store";import{LayersMode as h}from"../../../../store/LayerStore";import{rectToShapeDef as i,meshToShapeDef as u}from"../../../../renderer";export const BG_LAYER_NAME="bg",FG_LAYER_NAME="fg";export default async function x(t){let o=[],n=[];const a=[],r=d(m(t)).select(`[data-layer="${t.name}"]`),c=r.selectAll(":scope > *:not([data-tagname='efp-booth']):not(g[data-is-editable='false']) path, :scope > path").nodes(),f=r.selectAll(":scope g[data-layer] > g[data-is-editable='false'] path, :scope > g[data-is-editable='false'] path, :scope > path[data-tagname='ptext']").nodes(),l=g.layerStore.mode!==h.Default?t.rootParent?.name||t.name:"";for(const e of c){const s=+e.getAttribute("data-index");e.tagName==="path"&&s!==-1?o.push(buildPathDef({color:e.style.fill,index:s},l)):e.tagName==="rect"&&o.push(i(e))}for(const e of f){const s=+e.getAttribute("data-index");e.tagName==="path"&&s!==-1?n.push(buildPathDef({color:e.style.fill,index:s},l)):e.tagName==="rect"&&n.push(i(e))}return a.push({name:BG_LAYER_NAME,children:o.filter(e=>e)}),a.push({name:FG_LAYER_NAME,children:n.filter(e=>e)}),Promise.resolve({name:t.name,children:a.filter(e=>e.children.length)})}export function buildPathDef(t,o){if(t.index===-1||Number.isNaN(t.index))return;(!t.color||t.color==="none")&&(t.color="transparent");const n=parseInt(t.index.toString()),a=p(n,o),r=u(a,t.color);return r.unblinking=t.unblinking,r}
@@ -0,0 +1,9 @@
1
+ import { Booth, RegularBooth } from "../../../../store/BoothStore";
2
+ import { LayerDef, ShapeDef, TextDef } from "@expofp/renderer";
3
+ import { RendererService } from "../../../../renderer";
4
+ export declare function createBoothBadge(rendererService: RendererService, booth: RegularBooth): {
5
+ bg: ShapeDef;
6
+ text: TextDef;
7
+ };
8
+ export declare function configBoothsBadges(rendererService: RendererService, layerName: string, booths: Booth[]): LayerDef | null;
9
+ //# sourceMappingURL=config-booth-badge.d.ts.map
@@ -0,0 +1 @@
1
+ import{RegularBooth as Z}from"../../../../store/BoothStore";import{Rect as v}from"./Rect";import{getFontUrlByWeight as j}from"./config-booth-labels";import q from"color";import U from"../../../../tools/settings";import{boothStore as J,uiState as K}from"../../../../store";import{reaction as X}from"mobx";import{createShapeDef as Q,createTextDef as V,createTextDefLines as tt}from"../../../../renderer";import{getContrastTextColor as nt}from"../../../../utils/getContrastTextColor";import{getFont as et}from"./canvases";import{getTrianglesFromFpPaths as ot}from"../../../../data/svg";import{pointInTriangle as it}from"../../../../utils/geometry";import{SEPARATOR as M}from"../../../../constants";import rt from"../../../../data";const k=400,st=.5,ct=.3,N=15,ft=24,L=30,at=12,lt=12,z=.8,Y=document.createElement("canvas").getContext("2d");function dt(t){return t.length<=N?t:t.slice(0,N-1)+"\u2026"}function b(t){if(!t.paths?.length)return[];const n=t.layer?.name||"",e=[];for(const o of t.paths)for(const s of ot(o.index,n))e.push(s);return e}function ut(t){const n=b(t);if(!n.length)return null;let e=1/0,o=1/0,s=-1/0,r=-1/0;for(const c of n)for(const i of c)i[0]<e&&(e=i[0]),i[1]<o&&(o=i[1]),i[0]>s&&(s=i[0]),i[1]>r&&(r=i[1]);return isFinite(e)?{x1:e,y1:o,w:s-e,h:r-o}:null}function T(t,n,e){for(const o of e)if(it(t,n,o))return!0;return!1}function mt(t,n,e,o,s,r){if(!t.length||!T(n,e,t))return r;let c=0,i=r;const p=10;for(let h=0;h<p;h++){const u=(c+i)/2,m=o*u,l=s*u;T(n+m,e,t)&&T(n,e+l,t)&&T(n+m,e+l,t)?c=u:i=u}return c}function gt(t){return ut(t)??t.rect}function ht(t,n,e,o){const s=gt(t);if(n.length){const m=new Set;let l=null,g=1/0;for(const E of n)for(const x of E){const _=`${x[0]},${x[1]}`;if(m.has(_))continue;m.add(_);const B=x[0]+e,y=x[1]+e;if(T(B,y,n)){const I=B-s.x1+(y-s.y1);I<g&&(g=I,l={x:B,y})}}if(l)return l}const r=t.rect.x1+e,c=t.rect.y1+e;if(!o)return{x:r,y:c};const i=Math.cos(o),p=Math.sin(o),h=r-t.rect.cx,u=c-t.rect.cy;return{x:t.rect.cx+h*i-u*p,y:t.rect.cy+h*p+u*i}}function C(t){return t&&t!=="none"?t:void 0}function xt(t){const n=C(t.borderColor)||C(U.boothBorderColor)||U.colors.booths.default;return t.paths?.length>1&&C(t.paths[t.paths.length-1].color)||n}export function createBoothBadge(t,n){const e=dt(n.title||n.name),o=xt(n),s=nt(q(o).hex()),r=window.devicePixelRatio||1,c=et(L,k);Y.font=c;const i=Y.measureText(e).width,p=Math.ceil(i+at*2),h=L+lt*2,u=(n.borderWidth||J.borderWidth)/2,m=p*z,l=h*z,g=n.rotate?-n.rotate:0,E=n.rect.w,x=n.rect.h,_=Math.min(E>0?E*st/m:1/0,x>0?x*ct/l:1/0),B=b(n),{x:y,y:I}=ht(n,B,u,g),G=mt(B,y,I,m,l,_),P=Math.cos(g),$=Math.sin(g),S=(f,A)=>{const D=f/2,R=A/2,F=y+D*P-R*$,O=I+D*$+R*P;return new v({x:F-D,y:O-R},{x:F+D,y:O+R},g)},H=f=>{const A=Math.min(f,G);return S(m*A,l*A)},W=j(k,t.fontUrls),d=Q(S(1,1),o);d.hidden=!0,d.dim=n.skipDim?!1:void 0;const a=V(tt([[e],[]],s,0,[W,W]),S(1,1),[0,0],{horizontal:"center",vertical:"center"});a.hidden=!0,a.dim=n.skipDim?!1:void 0;const w=()=>!!(n.layer&&!n.layer.visible);return X(()=>n.skipDim,f=>{d.dim=f?!1:void 0,a.dim=f?!1:void 0,t.update(d,a)}),X(()=>n.layer?.visible??!0,f=>{d.hidden=!f,a.hidden=!f,t.update(d,a)}),t.onPtScale(`badge-bg-${n.id}`,f=>(d.shape=H(f),d.hidden=w(),d)),t.onPtScale(`badge-text-${n.id}`,f=>{const A=Math.min(f,G);return a.lines[0].fontSize=ft/r*A,a.bounds=H(f),a.hidden=w(),a}),{bg:d,text:a}}export function configBoothsBadges(t,n,e){if(rt.hideExhibitorBoothNumber)return null;const o=[],s=[];for(const r of e)if(r instanceof Z&&r.noLabels&&!K.hideLogoInBooth&&r.exhibitors.some(c=>c.logoInBooth&&c.logo)){const{bg:c,text:i}=createBoothBadge(t,r);o.push(c),s.push(i)}return o.length?{name:`${n}${M}badges`,children:[{name:`${n}${M}badgeBgs`,children:o},{name:`${n}${M}badgeTexts`,children:s}]}:null}
@@ -1,14 +1,14 @@
1
1
  import { Booth } from "../../../../store/BoothStore";
2
2
  import { ColorInput, ShapeDef } from "@expofp/renderer";
3
3
  import { BoothDrawerBaseWithoutPainter } from "./BoothDrawerBase";
4
- import { MapRenderer } from "../../Map";
4
+ import { RendererService } from "../../../../renderer";
5
5
  import { ShapeBgDef } from "../../../../data/Data";
6
- import { PathInfo } from "./engine-core/types";
7
- export default function configBoothBg(renderer: MapRenderer, booth: Booth): BoothBgDrawer;
6
+ import { PathInfo } from "../../../../renderer/engine-core/types";
7
+ export default function configBoothBg(rendererService: RendererService, booth: Booth): BoothBgDrawer;
8
8
  export declare function pathToShapeDef(paths: PathInfo[], layer: string): ShapeDef[];
9
9
  declare class BoothBgDrawer extends BoothDrawerBaseWithoutPainter {
10
- private readonly renderer;
11
- constructor(renderer: MapRenderer, booth: Booth);
10
+ private readonly rendererService;
11
+ constructor(rendererService: RendererService, booth: Booth);
12
12
  getShape(): ShapeBgDef[];
13
13
  update(): void;
14
14
  getBoothPathColor(defaultColor: ColorInput): any;
@@ -1 +1 @@
1
- import{__esDecorate as g,__runInitializers as k}from"tslib";import i from"color";import _ from"color-interpolate";import{computed as b,reaction as C}from"mobx";import u from"../../../../data";import p,{boothStore as D,layersStore as B,uiState as f}from"../../../../store";import{RegularBooth as I,SpecialBooth as v}from"../../../../store/BoothStore";import n from"../../../../tools/settings";import{defaultRebookingOptions as y}from"../../../RebookingRadioGroup";import{Rect as w}from"./Rect";import{BoothDrawerBaseWithoutPainter as P}from"./BoothDrawerBase";import{LayersMode as x}from"../../../../store/LayerStore";import{createShapeDef as L,updateRenderer as R}from"./engine-core";import{buildPathDef as F}from"./config-bg";export default function A(s,a){return new O(s,a)}function W(s){if(s.length===0)return null;const a=s[0];return s.every(h=>h===a)?a:null}export function pathToShapeDef(s,a){const c=[];for(const h of s){const d=F({index:h.index,color:h.color,unblinking:h.unblinking},a);d&&c.push(d)}return c}let O=(()=>{let s=P,a=[],c,h;return class extends s{static{const o=typeof Symbol=="function"&&Symbol.metadata?Object.create(s[Symbol.metadata]??null):void 0;c=[b({keepAlive:!0})],h=[b],g(this,null,c,{kind:"getter",name:"defaultColor",static:!1,private:!1,access:{has:e=>"defaultColor"in e,get:e=>e.defaultColor},metadata:o},null,a),g(this,null,h,{kind:"getter",name:"selectedColorInterpolateFunc",static:!1,private:!1,access:{has:e=>"selectedColorInterpolateFunc"in e,get:e=>e.selectedColorInterpolateFunc},metadata:o},null,a),o&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:o})}renderer=k(this,a);constructor(o,e){if(super(e),this.renderer=o,e.paths){const t=pathToShapeDef(e.paths,p.layerStore.mode!==x.Default?e.layer.name:"");e.shapes=t.map(r=>{const l=f.monochrome?i(r.color).grayscale().rgb().string():this.getBoothColor().string("rgba");return r.color==="transparent"?r.color=l:r.defaultColor=r.color,r})}else{const t=e.borderColor==="none"?0:isNaN(e.borderWidth)?D.borderWidth:e.borderWidth;let r=this.booth.rect.withPadding(t/2,t/2);const l=this.getBoothColor().string("rgba");e.shapes=[L(w.fromCoreRect(r,this.booth.rotate),l)]}C(()=>this.booth.hover,()=>!this.booth.selected&&this.update()),C(()=>[B.layersLoaded,this.booth.skipDim,this.booth.selected,this.boothShape.selectBgAnimationPart],()=>this.update())}getShape(){return this.booth.shapes}update(){if(B.layersLoaded)for(const o of this.booth.shapes){if(o.dim=this.booth.skipDim?!1:void 0,o.color&&!o.unblinking){const e=o.defaultColor?this.getBoothPathColor(o.defaultColor):this.getBoothColor();o.color=e.string("rgba")}R(this.renderer,o)}}getBoothPathColor(o){const e=this.booth;let t=i(o).hsl();if(e.selected){const r=n.colors.booths.selected;if(window.__fpSettings?.fpVer){let m=this.selectedColorInterpolateFunc(this.boothShape.selectBgAnimationPart);return i(m==="none"?r:m)}const l=i(r).hsl(),S=l.lightness()*this.boothShape.selectBgAnimationPart;t=t.hue(l.hue()).lightness(S)}else e.hover&&(t=t.darken(.1));return t}get defaultColor(){const o=this.booth;let e;if(o instanceof v)e=o.color||n.colors.booths.empty;else if(o instanceof I){if(u.isRebooking){if(!o.exhibitors?.length)return y[0].color.primary;const r=W((o.exhibitors??[]).map(l=>l.rebookingState));return r!==null?y[r].color.primary:"#000000"}const t=n.colors.booths;o.onHold?e=o.holdColor||t.defaultHold:o.exhibitors.length||o.reserved?e=o.soldColor||t.defaultSold:e=o.availColor||t.empty}(e==="#666"||e==="#666666")&&(e="rgba(0,0,0,0.172)");try{e==="none"&&(e=n.colors.booths.default),i(e)}catch(t){e=n.colors.booths.default,console.error("Booth: defaultColor",t)}return e}get selectedColorInterpolateFunc(){const o=n.colors.booths.seectedLight||(i(this.booth.labelColor||n.boothLabelColor).isLight()?"#000":"#fff"),e=f.selectedRoute?n?.colors?.booths?.wayfinding?.selected:n?.colors?.booths?.selected;return _([o,e])}getBoothColor(){const o=this.booth;let e;if(f.heatmap){const r=p.heatmapStore.getTotalClicksByBooth(o),l=i(p.heatmapStore.getColorByClicks(r));return o.selected?(e=this.selectedColorInterpolateFunc(this.boothShape.selectBgAnimationPart),i(e==="none"?"#f33":e)):o.hover?l.darken(.2).alpha(l.alpha()*1.5):l}o.error?e="#f33":u.isRebooking?e=this.defaultColor:o.selected?e=this.selectedColorInterpolateFunc(this.boothShape.selectBgAnimationPart):e=this.defaultColor;let t;try{t=i(e==="none"?"#f33":e)}catch{t=i(this.defaultColor)}return(o.hover&&!o.selected||o.selected&&u.isRebooking)&&(t=t.darken(.2).alpha(t.alpha()*1.5)),(f.monochrome||f.heatmapYah)&&(t=t.grayscale()),t}}})();
1
+ import{__esDecorate as g,__runInitializers as k}from"tslib";import i from"color";import v from"color-interpolate";import{computed as b,reaction as C}from"mobx";import u from"../../../../data";import p,{boothStore as _,layersStore as S,uiState as f}from"../../../../store";import{RegularBooth as D,SpecialBooth as I}from"../../../../store/BoothStore";import n from"../../../../tools/settings";import{defaultRebookingOptions as B}from"../../../RebookingRadioGroup";import{Rect as w}from"./Rect";import{BoothDrawerBaseWithoutPainter as P}from"./BoothDrawerBase";import{LayersMode as x}from"../../../../store/LayerStore";import{createShapeDef as L}from"../../../../renderer";import{buildPathDef as F}from"./config-bg";export default function R(s,a){return new W(s,a)}function A(s){if(s.length===0)return null;const a=s[0];return s.every(h=>h===a)?a:null}export function pathToShapeDef(s,a){const c=[];for(const h of s){const d=F({index:h.index,color:h.color,unblinking:h.unblinking},a);d&&c.push(d)}return c}let W=(()=>{let s=P,a=[],c,h;return class extends s{static{const o=typeof Symbol=="function"&&Symbol.metadata?Object.create(s[Symbol.metadata]??null):void 0;c=[b({keepAlive:!0})],h=[b],g(this,null,c,{kind:"getter",name:"defaultColor",static:!1,private:!1,access:{has:e=>"defaultColor"in e,get:e=>e.defaultColor},metadata:o},null,a),g(this,null,h,{kind:"getter",name:"selectedColorInterpolateFunc",static:!1,private:!1,access:{has:e=>"selectedColorInterpolateFunc"in e,get:e=>e.selectedColorInterpolateFunc},metadata:o},null,a),o&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:o})}rendererService=k(this,a);constructor(o,e){if(super(e),this.rendererService=o,e.paths){const t=pathToShapeDef(e.paths,p.layerStore.mode!==x.Default?e.layer.name:"");e.shapes=t.map(r=>{const l=f.monochrome?i(r.color).grayscale().rgb().string():this.getBoothColor().string("rgba");return r.color==="transparent"?r.color=l:r.defaultColor=r.color,r})}else{const t=e.borderColor==="none"?0:isNaN(e.borderWidth)?_.borderWidth:e.borderWidth;let r=this.booth.rect.withPadding(t/2,t/2);const l=this.getBoothColor().string("rgba");e.shapes=[L(w.fromCoreRect(r,this.booth.rotate),l)]}C(()=>this.booth.hover,()=>!this.booth.selected&&this.update()),C(()=>[S.layersLoaded,this.booth.skipDim,this.booth.selected,this.boothShape.selectBgAnimationPart],()=>this.update())}getShape(){return this.booth.shapes}update(){if(S.layersLoaded)for(const o of this.booth.shapes){if(o.dim=this.booth.skipDim?!1:void 0,o.color&&!o.unblinking){const e=o.defaultColor?this.getBoothPathColor(o.defaultColor):this.getBoothColor();o.color=e.string("rgba")}this.rendererService.update(o)}}getBoothPathColor(o){const e=this.booth;let t=i(o).hsl();if(e.selected){const r=n.colors.booths.selected;if(window.__fpSettings?.fpVer){let m=this.selectedColorInterpolateFunc(this.boothShape.selectBgAnimationPart);return i(m==="none"?r:m)}const l=i(r).hsl(),y=l.lightness()*this.boothShape.selectBgAnimationPart;t=t.hue(l.hue()).lightness(y)}else e.hover&&(t=t.darken(.1));return t}get defaultColor(){const o=this.booth;let e;if(o instanceof I)e=o.color||n.colors.booths.empty;else if(o instanceof D){if(u.isRebooking){if(!o.exhibitors?.length)return B[0].color.primary;const r=A((o.exhibitors??[]).map(l=>l.rebookingState));return r!==null?B[r].color.primary:"#000000"}const t=n.colors.booths;o.onHold?e=o.holdColor||t.defaultHold:o.exhibitors.length||o.reserved?e=o.soldColor||t.defaultSold:e=o.availColor||t.empty}(e==="#666"||e==="#666666")&&(e="rgba(0,0,0,0.172)");try{e==="none"&&(e=n.colors.booths.default),i(e)}catch(t){e=n.colors.booths.default,console.error("Booth: defaultColor",t)}return e}get selectedColorInterpolateFunc(){const o=n.colors.booths.seectedLight||(i(this.booth.labelColor||n.boothLabelColor).isLight()?"#000":"#fff"),e=f.selectedRoute?n?.colors?.booths?.wayfinding?.selected:n?.colors?.booths?.selected;return v([o,e])}getBoothColor(){const o=this.booth;let e;if(f.heatmap){const r=p.heatmapStore.getTotalClicksByBooth(o),l=i(p.heatmapStore.getColorByClicks(r));return o.selected?(e=this.selectedColorInterpolateFunc(this.boothShape.selectBgAnimationPart),i(e==="none"?"#f33":e)):o.hover?l.darken(.2).alpha(l.alpha()*1.5):l}o.error?e="#f33":u.isRebooking?e=this.defaultColor:o.selected?e=this.selectedColorInterpolateFunc(this.boothShape.selectBgAnimationPart):e=this.defaultColor;let t;try{t=i(e==="none"?"#f33":e)}catch{t=i(this.defaultColor)}return(o.hover&&!o.selected||o.selected&&u.isRebooking)&&(t=t.darken(.2).alpha(t.alpha()*1.5)),(f.monochrome||f.heatmapYah)&&(t=t.grayscale()),t}}})();
@@ -2,19 +2,19 @@ import { Booth } from "../../../../store/BoothStore";
2
2
  import { BoothDrawerBaseWithoutPainter } from "./BoothDrawerBase";
3
3
  import { ImageDef } from "@expofp/renderer";
4
4
  import { Rect } from "./Rect";
5
- import { MapRenderer } from "../../Map";
6
- export default function configBoothBookmarkImage(renderer: MapRenderer, booth: Booth): BoothBookmarkDrawer | undefined;
5
+ import { RendererService } from "../../../../renderer";
6
+ export default function configBoothBookmarkImage(rendererService: RendererService, booth: Booth): BoothBookmarkDrawer | undefined;
7
7
  declare class BoothBookmarkDrawer extends BoothDrawerBaseWithoutPainter {
8
- protected renderer: MapRenderer;
8
+ protected rendererService: RendererService;
9
9
  protected shape: ImageDef;
10
10
  protected bookmarkId: string;
11
11
  protected readonly canvas: HTMLCanvasElement;
12
12
  protected rect: Rect;
13
13
  protected padding: number;
14
- constructor(renderer: MapRenderer, booth: Booth);
14
+ constructor(rendererService: RendererService, booth: Booth);
15
15
  getShape: () => ImageDef;
16
16
  update(bookmarked: boolean): void;
17
- updateBookmarkScale(scale?: number): ImageDef | undefined;
17
+ handleBookmarkScale(scale?: number): ImageDef | undefined;
18
18
  }
19
19
  export {};
20
20
  //# sourceMappingURL=config-booth-bookmark.d.ts.map
@@ -1 +1 @@
1
- import{layersStore as i,uiState as o}from"../../../../store";import{BoothDrawerBaseWithoutPainter as m}from"./BoothDrawerBase";import{Rect as s}from"./Rect";import{reaction as h}from"mobx";import{updateRenderer as p,createImageDef as k,createBookmarkCanvas as c,getClampedBoundsCanvas as l,getRotation as u}from"./engine-core";import{getRollValue as f}from"./engine-core/settings";import{updateRectRotation as b}from"./engine-core/update-def";export default function g(r,e){if(!o.kiosk)return new B(r,e)}class B extends m{renderer;shape;bookmarkId;canvas;rect;padding;constructor(e,t){super(t),this.renderer=e,this.padding=this.booth.borderWidth/2,this.rect=s.fromCoreRect(this.booth.rect,this.booth.rotate),this.canvas=c(11,devicePixelRatio),this.bookmarkId=`bookmark-${this.booth.id}`,this.shape=k(this.canvas,s.fromCoreRect(this.booth.rect,this.booth.rotate),{hidden:!t.bookmarked}),h(()=>[t.bookmarked,i.layersLoaded,this.booth.skipDim],()=>this.update(t.bookmarked),{fireImmediately:t.bookmarked}),h(()=>o.mapSettings,({roll:d})=>{f(d)&&e.rollHandlers?.push({fn:n=>{const a=u(n,this.rect.rotation);return a!==void 0&&(this.rect=b(this.rect,a),this.updateBookmarkScale()),this.shape}})})}getShape=()=>this.shape;update(e){i.layersLoaded&&(this.shape.hidden=!e,this.shape.dim=this.booth.skipDim?!1:void 0,this.updateBookmarkScale(),this.shape.hidden?this.renderer.ptScaleHandlers=this.renderer.ptScaleHandlers.filter(t=>t.name!==this.bookmarkId):this.renderer.ptScaleHandlers.push({fn:this.updateBookmarkScale.bind(this),name:this.bookmarkId}),p(this.renderer,this.shape))}updateBookmarkScale(e){if(!this.shape.hidden)return this.shape.bounds=l(this.rect,this.canvas,this.padding,e||this.renderer.scale),this.shape}}
1
+ import{layersStore as o,uiState as a}from"../../../../store";import{BoothDrawerBaseWithoutPainter as m}from"./BoothDrawerBase";import{Rect as s}from"./Rect";import{reaction as h}from"mobx";import{createImageDef as k,createBookmarkCanvas as c,getClampedBoundsCanvas as l,getRotation as p}from"../../../../renderer";import{getRollValue as u}from"../../../../renderer";import{updateRectRotation as f}from"../../../../renderer";export default function b(t,e){if(!a.kiosk)return new S(t,e)}class S extends m{rendererService;shape;bookmarkId;canvas;rect;padding;constructor(e,r){super(r),this.rendererService=e,this.padding=this.booth.borderWidth/2,this.rect=s.fromCoreRect(this.booth.rect,this.booth.rotate),this.canvas=c(11,devicePixelRatio),this.bookmarkId=`bookmark-${this.booth.id}`,this.shape=k(this.canvas,s.fromCoreRect(this.booth.rect,this.booth.rotate),{hidden:!r.bookmarked}),h(()=>[r.bookmarked,o.layersLoaded,this.booth.skipDim],()=>this.update(r.bookmarked),{fireImmediately:r.bookmarked}),h(()=>a.mapSettings,({roll:d})=>{u(d)&&this.rendererService.onRoll(`bookmark-roll-${this.bookmarkId}`,n=>{const i=p(n,this.rect.rotation);return i!==void 0&&(this.rect=f(this.rect,i),this.handleBookmarkScale()),this.shape})})}getShape=()=>this.shape;update(e){o.layersLoaded&&(this.shape.hidden=!e,this.shape.dim=this.booth.skipDim?!1:void 0,this.handleBookmarkScale(),this.shape.hidden?(this.rendererService.ptScaleRegistry.unregisterByName(this.bookmarkId),this.rendererService.rollRegistry.unregisterByName(`bookmark-roll-${this.bookmarkId}`)):this.rendererService.onPtScale(this.bookmarkId,this.handleBookmarkScale.bind(this)),this.rendererService.update(this.shape))}handleBookmarkScale(e){if(!this.shape.hidden)return this.shape.bounds=l(this.rect,this.canvas,this.padding,e||this.rendererService.scale),this.shape}}
@@ -1,11 +1,11 @@
1
1
  import { Booth } from "../../../../store/BoothStore";
2
2
  import { BoothDrawerBaseWithoutPainter } from "./BoothDrawerBase";
3
3
  import { ShapeDef } from "@expofp/renderer";
4
- import { MapRenderer } from "../../Map";
5
- export default function configBoothBorder(renderer: MapRenderer, booth: Booth): BoothBorderDrawer | undefined;
4
+ import { RendererService } from "../../../../renderer";
5
+ export default function configBoothBorder(rendererService: RendererService, booth: Booth): BoothBorderDrawer | undefined;
6
6
  declare class BoothBorderDrawer extends BoothDrawerBaseWithoutPainter {
7
7
  protected readonly shape: ShapeDef;
8
- constructor(renderer: MapRenderer, booth: Booth);
8
+ constructor(rendererService: RendererService, booth: Booth);
9
9
  getShape(): ShapeDef;
10
10
  }
11
11
  export {};
@@ -1 +1 @@
1
- import g from"color";import{boothStore as c,layersStore as d}from"../../../../store";import a from"../../../../tools/settings";import{BoothDrawerBaseWithoutPainter as w}from"./BoothDrawerBase";import{Polygon as h}from"@expofp/renderer";import{reaction as B}from"mobx";import P from"../../../../core/Polygon";import W from"../../../../core/Rect";import{updateRenderer as C,createShapeDef as D}from"./engine-core";export default function b(o,e){if(a.EXPO!=="confex20"&&!(e.poiType||e.borderColor==="none"||e.borderWidth===0&&!c.borderWidth||e.paths&&!e.pathsWithRect))return new S(o,e)}function R(o){const e=[{x:o.x1,y:o.y1},{x:o.x2,y:o.y2},{x:o.x3,y:o.y3},{x:o.x4,y:o.y4}],s=[[0,1,2],[2,3,0]];return new h(e,s)}class S extends w{shape;constructor(e,s){super(s);const y=g(s.selected?a.colors.booths.selectedBorder:s.borderColor),r=this.booth.rect,t=s.borderWidth||c.borderWidth,n=[],i=(p,f,l,x)=>{const u=R(P.fromRect(W.fromCxcywh(p,f,l,x)).rotate(s.rotate,r.cx,r.cy));n.push(u)};i(r.cx,r.cy-r.h/2,r.w+t,t),i(r.cx,r.cy+r.h/2,r.w+t,t),i(r.cx-r.w/2,r.cy,t,r.h+t),i(r.cx+r.w/2,r.cy,t,r.h+t);const m=h.merge(...n);this.shape=D(m,y.string("rgba")),B(()=>[this.booth.skipDim,d.layersLoaded],()=>{d.layersLoaded&&(this.shape.dim=this.booth.skipDim?!1:void 0,C(e,this.shape))})}getShape(){return this.shape}}
1
+ import g from"color";import{boothStore as c,layersStore as d}from"../../../../store";import a from"../../../../tools/settings";import{BoothDrawerBaseWithoutPainter as w}from"./BoothDrawerBase";import{Polygon as h}from"@expofp/renderer";import{reaction as B}from"mobx";import P from"../../../../core/Polygon";import W from"../../../../core/Rect";import{createShapeDef as C}from"../../../../renderer";export default function D(r,e){if(a.EXPO!=="confex20"&&!(e.poiType||e.borderColor==="none"||e.borderWidth===0&&!c.borderWidth||e.paths&&!e.pathsWithRect))return new S(r,e)}function b(r){const e=[{x:r.x1,y:r.y1},{x:r.x2,y:r.y2},{x:r.x3,y:r.y3},{x:r.x4,y:r.y4}],s=[[0,1,2],[2,3,0]];return new h(e,s)}class S extends w{shape;constructor(e,s){super(s);const y=g(s.selected?a.colors.booths.selectedBorder:s.borderColor),o=this.booth.rect,t=s.borderWidth||c.borderWidth,n=[],i=(p,f,l,x)=>{const u=b(P.fromRect(W.fromCxcywh(p,f,l,x)).rotate(s.rotate,o.cx,o.cy));n.push(u)};i(o.cx,o.cy-o.h/2,o.w+t,t),i(o.cx,o.cy+o.h/2,o.w+t,t),i(o.cx-o.w/2,o.cy,t,o.h+t),i(o.cx+o.w/2,o.cy,t,o.h+t);const m=h.merge(...n);this.shape=C(m,y.string("rgba")),B(()=>[this.booth.skipDim,d.layersLoaded],()=>{d.layersLoaded&&(this.shape.dim=this.booth.skipDim?!1:void 0,e.update(this.shape))})}getShape(){return this.shape}}
@@ -1,15 +1,15 @@
1
1
  import { Booth, SpecialBooth } from "../../../../store/BoothStore";
2
2
  import { BoothLabelDrawer } from "./config-booth-labels";
3
- import { MapRenderer } from "../../Map";
4
- import { FontSizeFactor } from "./engine-core";
5
- import { TextDef } from "@expofp/renderer";
6
- export default function configBoothLabelsSpecial(renderer: MapRenderer, booth: Booth): BoothLabelSpecialDrawer | undefined;
3
+ import { RendererService } from "../../../../renderer";
4
+ import { FontSizeFactor } from "../../../../renderer";
5
+ import { ImageDef, TextDef } from "@expofp/renderer";
6
+ export default function configBoothLabelsSpecial(rendererService: RendererService, booth: Booth): BoothLabelSpecialDrawer | undefined;
7
7
  declare class BoothLabelSpecialDrawer extends BoothLabelDrawer {
8
8
  protected steps: FontSizeFactor[];
9
9
  protected labelIsVertical: boolean;
10
10
  protected text: string;
11
- constructor(renderer: MapRenderer, booth: SpecialBooth);
12
- getShape(): (import("@expofp/renderer").ImageDef | TextDef)[];
11
+ constructor(rendererService: RendererService, booth: SpecialBooth);
12
+ getShape(): (ImageDef | TextDef)[];
13
13
  setFactors(text: string): void;
14
14
  setText(): void;
15
15
  }
@@ -1,2 +1,2 @@
1
- import{SpecialBooth as R}from"../../../../store/BoothStore";import x from"../../../../tools/settings";import{heatmapStore as L,uiState as l,boothStore as D,layersStore as F}from"../../../../store";import y from"./TextFitter";import{Rect as p}from"./Rect";import{getFont as v}from"./canvases";import{BoothLabelDrawer as T,getFontUrlByWeight as w,getMinZoomFactorForDot as z,isDirectionsMode as P}from"./config-booth-labels";import{reaction as b}from"mobx";import{updateRenderer as k,createTextDef as C,updateTextDefRotation as I,getRotation as M,shouldFlip as B,updateRectRotation as W,getRollValue as H}from"./engine-core";import{FONT_WEIGHT_PRIMARY_BOOTH as V,FONT_WEIGHT_PRIMARY_SPECIAL as _}from"../../../../constants";const d=new Map;function N(i){let t=d.get(i);if(!t){const s=[18,16,14,12,10,7].map(c=>c*i),o=14*i;t=new y(v,s,o),d.set(i,t),setTimeout(()=>d.delete(i),5e3)}return t}export default function O(i,t){if(!(!(t instanceof R)||t.noLabels))return new A(i,t)}class A extends T{steps;labelIsVertical;text;constructor(t,s){super(t,s);const o=s.borderWidth/2||D.borderWidth/2,c=this.booth.rect,g=Number(getComputedStyle(document.body).getPropertyValue(_))||Number(getComputedStyle(document.body).getPropertyValue(V))||500,S=w(g,this.renderer.fontUrls),f=c.withPadding(c.w*.05+o,c.h*.05+o);this.setText(),this.canvasRect=p.fromCoreRect(f,s.rotate),this.setFactors(this.text),this.labelIsVertical=Math.abs(Math.abs(s.rotate)-Math.PI/2)<.01,this.fontSizes=[this.steps,[]],this.minZoomDotVisible=z(this.steps.map(e=>e.scaleFactor)),this.shapeLabel=C([{text:this.text,color:s.labelColor||x.boothLabelColor,fontUrl:S,fontSize:0}],p.fromCoreRect(f,s.rotate),[o,o],{horizontal:"center",text:"center",vertical:"center"}),this.getShapeDot(),b(()=>[this.booth.skipDim,l.selectedRoute,F.layersLoaded],()=>{const e=P();this.shapeLabel.dim=e||this.booth.skipDim?!1:void 0,this.shapeDot.dim=e||this.booth.skipDim?!1:void 0,k(t,this.shapeLabel,this.shapeDot)});const u=e=>{let a=this.steps.find(h=>h.scaleFactor<1/e);return a?(this.shapeLabel.lines[0].fontSize=a.value/devicePixelRatio*e,this.shapeLabel.lines[0].text=a.lines.join(`
2
- `),this.shapeLabel.padding=[this.paddingScaled[0]*e+this.padding,this.paddingScaled[1]*e+this.padding],this.shapeLabel):(this.shapeLabel.lines[0].fontSize=0,this.shapeLabel)},m=e=>{let a=this.steps.find(r=>r.scaleFactor<1/e);const h=this.shapeDot.source.width*e,n=this.shapeDot.source.height*e;return this.shapeDot.bounds=new p({x:this.canvasRect.center.x-h/2,y:this.canvasRect.center.y-n/2},{x:this.canvasRect.center.x+h/2,y:this.canvasRect.center.y+n/2}),this.shapeDot.hidden=!!a,this.shapeDot};t.ptScaleHandlers.push({fn:u}),t.ptScaleHandlers.push({fn:m}),b(()=>l.mapSettings,({roll:e})=>{H(e)&&t.rollHandlers?.push({fn:a=>{const h=this.shapeLabel.bounds.rotation;if(this.labelIsVertical)B(a,h)&&(this.shapeLabel.bounds.rotation=-h);else{const n=M(a,h);if(n!==void 0){const{size:r}=this.canvasRect;this.shapeLabel=I(this.shapeLabel,n),r.x!==r.y&&!this.shapeLabel.hidden&&(this.canvasRect=W(this.canvasRect,n),this.setFactors(this.text),u(t.scale),m(t.scale))}}return[this.shapeLabel,this.shapeDot]}})})}getShape(){return[this.shapeLabel,this.shapeDot]}setFactors(t){this.steps=N(devicePixelRatio).getStepsForRect(t,this.canvasRect.size.x,this.canvasRect.size.y)}setText(){const t=this.booth.title||this.booth.name,o=`Clicks: ${L.getTotalClicksByBooth(this.booth)}`;this.text=l.heatmap?`${t} - ${o}`:t}}
1
+ import{SpecialBooth as R}from"../../../../store/BoothStore";import x from"../../../../tools/settings";import{heatmapStore as L,uiState as l,boothStore as D,layersStore as v}from"../../../../store";import F from"./TextFitter";import{Rect as d}from"./Rect";import{getFont as y}from"./canvases";import{BoothLabelDrawer as T,getFontUrlByWeight as P,getMinZoomFactorForDot as w,isDirectionsMode as z}from"./config-booth-labels";import{reaction as u}from"mobx";import{createTextDef as k,updateTextDefRotation as C,getRotation as I,shouldFlip as M,updateRectRotation as B,getRollValue as W}from"../../../../renderer";import{FONT_WEIGHT_PRIMARY_BOOTH as V,FONT_WEIGHT_PRIMARY_SPECIAL as _}from"../../../../constants";const p=new Map;function $(i){let t=p.get(i);if(!t){const s=[18,16,14,12,10,7].map(n=>n*i),o=14*i;t=new F(y,s,o),p.set(i,t),setTimeout(()=>p.delete(i),5e3)}return t}export default function H(i,t){if(!(!(t instanceof R)||t.noLabels))return new N(i,t)}class N extends T{steps;labelIsVertical;text;constructor(t,s){super(t,s);const o=s.borderWidth/2||D.borderWidth/2,n=this.booth.rect,S=Number(getComputedStyle(document.body).getPropertyValue(_))||Number(getComputedStyle(document.body).getPropertyValue(V))||500,g=P(S,this.rendererService.fontUrls),m=n.withPadding(n.w*.05+o,n.h*.05+o);this.setText(),this.canvasRect=d.fromCoreRect(m,s.rotate),this.setFactors(this.text),this.labelIsVertical=Math.abs(Math.abs(s.rotate)-Math.PI/2)<.01,this.fontSizes=[this.steps,[]],this.minZoomDotVisible=w(this.steps.map(e=>e.scaleFactor)),this.shapeLabel=k([{text:this.text,color:s.labelColor||x.boothLabelColor,fontUrl:g,fontSize:0}],d.fromCoreRect(m,s.rotate),[o,o],{horizontal:"center",text:"center",vertical:"center"}),this.getShapeDot(),u(()=>[this.booth.skipDim,l.selectedRoute,v.layersLoaded],()=>{const e=z();this.shapeLabel.dim=e||this.booth.skipDim?!1:void 0,this.shapeDot.dim=e||this.booth.skipDim?!1:void 0,this.rendererService.update(this.shapeLabel,this.shapeDot)});const f=e=>{let a=this.steps.find(r=>r.scaleFactor<1/e);return a?(this.shapeLabel.lines[0].fontSize=a.value/devicePixelRatio*e,this.shapeLabel.lines[0].text=a.lines.join(`
2
+ `),this.shapeLabel.padding=[this.paddingScaled[0]*e+this.padding,this.paddingScaled[1]*e+this.padding],this.shapeLabel):(this.shapeLabel.lines[0].fontSize=0,this.shapeLabel)},b=e=>{let a=this.steps.find(c=>c.scaleFactor<1/e);const r=this.shapeDot.source.width*e,h=this.shapeDot.source.height*e;return this.shapeDot.bounds=new d({x:this.canvasRect.center.x-r/2,y:this.canvasRect.center.y-h/2},{x:this.canvasRect.center.x+r/2,y:this.canvasRect.center.y+h/2}),this.shapeDot.hidden=!!a,this.shapeDot};this.rendererService.onPtScale(`booth-special-label-${s.id}`,f),this.rendererService.onPtScale(`booth-special-dot-${s.id}`,b),u(()=>l.mapSettings,({roll:e})=>{W(e)&&this.rendererService.onRoll(`booth-special-roll-${s.id}`,a=>{const r=this.shapeLabel.bounds.rotation;if(this.labelIsVertical)M(a,r)&&(this.shapeLabel.bounds.rotation=-r);else{const h=I(a,r);if(h!==void 0){const{size:c}=this.canvasRect;this.shapeLabel=C(this.shapeLabel,h),c.x!==c.y&&!this.shapeLabel.hidden&&(this.canvasRect=B(this.canvasRect,h),this.setFactors(this.text),f(this.rendererService.scale),b(this.rendererService.scale))}}return[this.shapeLabel,this.shapeDot]})})}getShape(){return[this.shapeLabel,this.shapeDot]}setFactors(t){this.steps=$(devicePixelRatio).getStepsForRect(t,this.canvasRect.size.x,this.canvasRect.size.y)}setText(){const t=this.booth.title||this.booth.name,o=`Clicks: ${L.getTotalClicksByBooth(this.booth)}`;this.text=l.heatmap?`${t} - ${o}`:t}}
@@ -2,19 +2,19 @@ import { Booth } from "../../../../store/BoothStore";
2
2
  import { ImageDef, Rect as RectShape, TextAlignment, TextDef } from "@expofp/renderer";
3
3
  import { BoothDrawerBaseWithoutPainter } from "./BoothDrawerBase";
4
4
  import { Exhibitor } from "../../../../store/ExhibitorStore";
5
- import { MapRenderer } from "../../Map";
6
- import { FontSizeFactor, CustomFonts } from "./engine-core";
5
+ import { RendererService } from "../../../../renderer";
6
+ import { FontSizeFactor, CustomFonts } from "../../../../renderer";
7
7
  type Prefix = {
8
8
  fontSize: number;
9
9
  name: string;
10
10
  short?: boolean;
11
11
  };
12
- export default function configBoothLabels(renderer: MapRenderer, booth: Booth): BoothLabelDrawer | undefined;
12
+ export default function configBoothLabels(rendererService: RendererService, booth: Booth): BoothLabelDrawer | undefined;
13
13
  export declare function getMinZoomFactorForDot(scaleFactors: number[]): number;
14
14
  export declare const isDirectionsMode: () => boolean;
15
15
  export declare function getFontUrlByWeight(weight: number, customFonts?: CustomFonts[], style?: string): string;
16
16
  export declare class BoothLabelDrawer extends BoothDrawerBaseWithoutPainter {
17
- protected readonly renderer: MapRenderer;
17
+ protected readonly rendererService: RendererService;
18
18
  protected canvasRect: RectShape;
19
19
  protected paddingScaled: [number, number];
20
20
  protected padding: number;
@@ -29,7 +29,7 @@ export declare class BoothLabelDrawer extends BoothDrawerBaseWithoutPainter {
29
29
  protected centerAlignment: TextAlignment;
30
30
  protected prefixes: Prefix[];
31
31
  protected fontUrls: [string, string];
32
- constructor(renderer: MapRenderer, booth: Booth);
32
+ constructor(rendererService: RendererService, booth: Booth);
33
33
  getShape(): (ImageDef | TextDef)[];
34
34
  getShapeDot(): void;
35
35
  private createLines;
@@ -1 +1 @@
1
- import{layersStore as O,uiState as m}from"../../../../store";import{RegularBooth as P,SpecialBooth as I}from"../../../../store/BoothStore";import x from"../../../../tools/settings";import V from"../../../../utils/is-mobile";import U from"../../../../utils/is-webview";import{Rect as E}from"./Rect";import u from"../../../../data";import{BoothDrawerBaseWithoutPainter as Z}from"./BoothDrawerBase";import{getFont as M}from"./canvases";import{isArabicText as X}from"../../../../utils/rtl";import{t as L}from"../../../../utils/i18n";import{reaction as B}from"mobx";import{createTextDef as G,createTextDefLines as Y,updateLinesScale as k,updateTextDefRotation as $,updateRenderer as q,getRotation as j,createShapeDot as J,DEFAULT_FONT_LIGHT_URL as K,DEFAULT_FONT_URL as _,getRollValue as Q,updateRectRotation as ee}from"./engine-core";import{FONT_WEIGHT_PRIMARY_BOOTH as te,FONT_WEIGHT_PRIMARY_EXHIBITOR as ie,FONT_WEIGHT_SECONDARY_BOOTH as se,FONT_WEIGHT_SECONDARY_EXHIBITOR as oe}from"../../../../constants";let D=x.boothLabelColor;x.EXPO==="tqs2021"&&(D="#000");const b=V||U,z=h=>h.replace(" ","").substring(0,4).replace(/[0-9]/g,"3").replace(/[A-Z]/gi,"A"),H=document.createElement("canvas").getContext("2d");export default function ne(h,e){if(!(!(e instanceof P)||e.noLabels))return new BoothLabelDrawer(h,e)}export function getMinZoomFactorForDot(h){return Array.isArray(h)&&h.length>0?Math.max(...h.map(e=>e)):typeof h=="number"?h:-0}export const isDirectionsMode=()=>!!(m.selectedRoute?.from&&m.selectedRoute?.to);export function getFontUrlByWeight(h,e=[],t="normal"){return[...e,{weight:500,url:_,style:"normal"},{weight:300,url:K,style:"normal"}].find(i=>+i.weight===h&&i.style===t)?.url||_}const v="Details";export class BoothLabelDrawer extends Z{renderer;canvasRect;paddingScaled;padding;minZoomDotVisible;maxZoomDotVisible;exh;shapeLabel;shapeDot;fontSizes;lines;topLeftAlignment;centerAlignment;prefixes;fontUrls;constructor(e,t){if(super(t),this.renderer=e,this.canvasRect=E.fromCoreRect(t.rect,t.rotate),this.paddingScaled=[4,4],this.padding=(t.borderWidth||x.boothBorderWidth)/2,this.topLeftAlignment={horizontal:m.rtl?"right":"left",vertical:"top"},this.centerAlignment={horizontal:"center",vertical:"center"},this.prefixes=b?[{fontSize:7,name:"XS",short:!0},{fontSize:10,name:"S",short:!0},{fontSize:16,name:v,short:!1}]:[{fontSize:7,name:"XS",short:!0},{fontSize:10,name:"S",short:!0},{fontSize:12,name:"M",short:!0},{fontSize:14,name:"L",short:!0},{fontSize:18,name:v,short:!1}],t instanceof I)return;this.exh=u.hideExhibitors?[]:u.onlyFeaturedExhibitors?t.exhibitors.filter(i=>i.featured):t.exhibitors,b&&this.optimizationLevel()>=3&&(this.prefixes=this.prefixes.filter(i=>i.name!=="S")),this.createLines(),this.calculateFontSizeFactors(),this.shapeLabel=G(Y(this.lines,this.booth.labelColor||D,0,this.fontUrls),E.fromCoreRect(this.booth.rect,this.booth.rotate),[...this.paddingScaled],{horizontal:"left",vertical:"top"}),this.getShapeDot();const a=i=>{const o=this.lines[1]??[],s=this.fontSizes[1]??[];if(x.EXPO!=="wineparis2026"){const d=this.exh.length?this.topLeftAlignment:o.length?i<s[s.length-1].scaleFactor?this.topLeftAlignment:this.centerAlignment:this.topLeftAlignment;this.shapeLabel.alignment=d}if(!k(this.shapeLabel.lines,i,this.fontSizes,this.booth.name))return;const l=this.paddingScaled[0]*i+this.padding,p=this.paddingScaled[1]*i+this.padding;return this.shapeLabel.padding[0]=l,this.shapeLabel.padding[1]=p,this.shapeLabel},r=i=>{const o=i>=this.minZoomDotVisible&&i<=this.maxZoomDotVisible,s=this.shapeDot.source.width*i,n=this.shapeDot.source.height*i;if(!(!o&&this.shapeDot.hidden))return this.shapeDot.bounds.size={x:s,y:n},this.shapeDot.hidden=!o,this.shapeDot};B(()=>[this.booth.skipDim,m.selectedRoute,O.layersLoaded],()=>{if(!O.layersLoaded)return;const i=isDirectionsMode();this.shapeLabel.dim=i||this.booth.skipDim?!1:void 0,this.shapeDot.dim=i||this.booth.skipDim?!1:void 0,q(e,this.shapeLabel,this.shapeDot)}),B(()=>m.mapSettings,({roll:i})=>{Q(i)&&e.rollHandlers?.push({fn:o=>{const s=j(o,this.shapeLabel.bounds.rotation),{size:n}=this.canvasRect;return s!==void 0&&(this.shapeLabel=$(this.shapeLabel,s),!this.shapeLabel.hidden&&!this.exh.length&&n.x!==n.y&&(this.canvasRect=ee(this.canvasRect,s),this.calculateFontSizeFactors(),a(e.scale),r(e.scale))),[this.shapeLabel,this.shapeDot]}})}),e.ptScaleHandlers.push({fn:a}),e.ptScaleHandlers.push({fn:r})}getShape(){return[this.shapeLabel,this.shapeDot]}getShapeDot(){this.shapeDot=J(this.canvasRect,this.booth.labelColor||D),this.shapeDot.hidden=!0,this.maxZoomDotVisible=Math.min(this.canvasRect.size.x/this.shapeDot.source.width,this.canvasRect.size.y/this.shapeDot.source.height)}createLines(){const e=this.booth,t=[],a=[],r=b&&this.optimizationLevel()>=3?1:3;if(this.exh.length){const i=e.exhibitors.filter(s=>s.order===0),o=e.exhibitors.filter(s=>s.order);if(i.length>0)t.push(...i.map(s=>s.name));else if(u.onlyFeaturedExhibitors)t.push(...e.exhibitors.filter(s=>s.featured).map(s=>s.name));else if(o.length>0){t.push(...o.map(n=>n.name));const s=e.exhibitors.filter(n=>n.order===void 0);s.length>0&&t.push(L("and {{moreCount}} more",{moreCount:s.length}))}else e.exhibitors.length>r?t.push(`${e.exhibitors.length} ${u.exhibitorTermPlural}`):t.push(...e.exhibitors.map(s=>s.name));a.push(e.title||e.name)}else{const i=!!e.exhibitors.length;t.push(e.title||e.name),e.onHold?a.push(L("On Hold")):e.reserved?a.push(L("Reserved")):i||a.push(...e.exhibitors.map(o=>o.name).sort((o,s)=>o>s?1:-1)),e.size&&a.push(e.size.indexOf("/")>-1?e.size.substring(0,e.size.indexOf("/")).trim():e.size),e.price&&e.price!=="0"&&!m.previewMode&&a.push(e.price)}m.rtl&&t.forEach((i,o)=>{(i.endsWith(".")||i.endsWith("!")||i.endsWith("?"))&&(t[o]=t[o]+"\u200F"),X(i)&&(t[o]=t[o]+" ")}),this.lines=[t,a]}calculateFontSizeFactors(){let[e,t]=this.lines;const a=this.canvasRect,r=[],i=[],o=this.prefixes.slice(0,this.exh.length?this.prefixes.length:this.prefixes.length-1);let s=500,n=300;this.exh.length?(s=Number(getComputedStyle(document.body).getPropertyValue(ie))||s,n=Number(getComputedStyle(document.body).getPropertyValue(oe))||n):(s=Number(getComputedStyle(document.body).getPropertyValue(te))||s,n=Number(getComputedStyle(document.body).getPropertyValue(se))||n);for(const{fontSize:l,short:p}of o){const d=l*devicePixelRatio,R=.9*l*devicePixelRatio,f=M(d,s),y=M(R,n),F=u.hideExhibitorBoothNumber||p;let T,A,S,g;if(this.exh.length)p?t=[]:t=this.lines[1],S=Math.max(...e.map(c=>this.measureText(c,f).width),...t.map(c=>this.measureText(c,y).width)),T=Math.max(...e.map(c=>this.exh.length?this.measureText(z(c),f).width:this.measureText(z(c),f).width+3+3),...t.map(c=>this.measureText(z(c),y).width)),g=d*e.length+R*t.length+devicePixelRatio*(e.length+t.length)+3,A=F?g/e.length:null;else{const c=e[0].replace(/[0-9]/g,"3").replace(/[A-Z]/g,"A"),N=4;S=this.measureText(c,f).width+3+3,g=d+N}const W=a.size.x/(T||S),C=a.size.y/(A||g),w=Math.min(W,C);r.push({scaleFactor:w,value:l}),!F&&i.push({scaleFactor:w,value:.9*l})}if(!this.exh.length){const l=r[r.length-1],p=this.prefixes.find(d=>d.name===v);r.push({scaleFactor:l.scaleFactor/1.8,value:p.fontSize}),i.push({scaleFactor:l.scaleFactor/1.8,value:p.fontSize*(b?1:.9)})}this.fontUrls=[getFontUrlByWeight(s,this.renderer.fontUrls),getFontUrlByWeight(n,this.renderer.fontUrls)],this.minZoomDotVisible=getMinZoomFactorForDot(r.map(l=>l.scaleFactor)),this.fontSizes=[r,i]}calcArea(e,t){return Math.floor(Math.max(0,e)*Math.max(0,t)/1e3)}optimizationLevel(){return Math.min(u.viewOptimizationLevel?u.viewOptimizationLevel:Math.floor(this.calcArea(this.canvasRect.size.x,this.canvasRect.size.y)/5e3),3)}measureText(e,t){return H.font=t,H.measureText(e)}}
1
+ import{layersStore as O,uiState as p}from"../../../../store";import{RegularBooth as H,SpecialBooth as I}from"../../../../store/BoothStore";import x from"../../../../tools/settings";import V from"../../../../utils/is-mobile";import U from"../../../../utils/is-webview";import{Rect as E}from"./Rect";import u from"../../../../data";import{BoothDrawerBaseWithoutPainter as Z}from"./BoothDrawerBase";import{getFont as M}from"./canvases";import{isArabicText as X}from"../../../../utils/rtl";import{t as L}from"../../../../utils/i18n";import{reaction as B}from"mobx";import{createTextDef as G,createTextDefLines as Y,updateLinesScale as $,updateTextDefRotation as k,getRotation as q,createShapeDot as j,DEFAULT_FONT_LIGHT_URL as J,DEFAULT_FONT_URL as _,getRollValue as K,updateRectRotation as Q}from"../../../../renderer";import{FONT_WEIGHT_PRIMARY_BOOTH as ee,FONT_WEIGHT_PRIMARY_EXHIBITOR as te,FONT_WEIGHT_SECONDARY_BOOTH as ie,FONT_WEIGHT_SECONDARY_EXHIBITOR as se}from"../../../../constants";let v=x.boothLabelColor;x.EXPO==="tqs2021"&&(v="#000");const b=V||U,D=h=>h.replace(" ","").substring(0,4).replace(/[0-9]/g,"3").replace(/[A-Z]/gi,"A"),P=document.createElement("canvas").getContext("2d");export default function oe(h,e){if(!(!(e instanceof H)||e.noLabels))return new BoothLabelDrawer(h,e)}export function getMinZoomFactorForDot(h){return Array.isArray(h)&&h.length>0?Math.max(...h.map(e=>e)):typeof h=="number"?h:-0}export const isDirectionsMode=()=>!!(p.selectedRoute?.from&&p.selectedRoute?.to);export function getFontUrlByWeight(h,e=[],t="normal"){return[...e,{weight:500,url:_,style:"normal"},{weight:300,url:J,style:"normal"}].find(i=>+i.weight===h&&i.style===t)?.url||_}const z="Details";export class BoothLabelDrawer extends Z{rendererService;canvasRect;paddingScaled;padding;minZoomDotVisible;maxZoomDotVisible;exh;shapeLabel;shapeDot;fontSizes;lines;topLeftAlignment;centerAlignment;prefixes;fontUrls;constructor(e,t){if(super(t),this.rendererService=e,this.canvasRect=E.fromCoreRect(t.rect,t.rotate),this.paddingScaled=[4,4],this.padding=(t.borderWidth||x.boothBorderWidth)/2,this.topLeftAlignment={horizontal:p.rtl?"right":"left",vertical:"top"},this.centerAlignment={horizontal:"center",vertical:"center"},this.prefixes=b?[{fontSize:7,name:"XS",short:!0},{fontSize:10,name:"S",short:!0},{fontSize:16,name:z,short:!1}]:[{fontSize:7,name:"XS",short:!0},{fontSize:10,name:"S",short:!0},{fontSize:12,name:"M",short:!0},{fontSize:14,name:"L",short:!0},{fontSize:18,name:z,short:!1}],t instanceof I)return;this.exh=u.hideExhibitors?[]:u.onlyFeaturedExhibitors?t.exhibitors.filter(i=>i.featured):t.exhibitors,b&&this.optimizationLevel()>=3&&(this.prefixes=this.prefixes.filter(i=>i.name!=="S")),this.createLines(),this.calculateFontSizeFactors(),this.shapeLabel=G(Y(this.lines,this.booth.labelColor||v,0,this.fontUrls),E.fromCoreRect(this.booth.rect,this.booth.rotate),[...this.paddingScaled],{horizontal:"left",vertical:"top"}),this.getShapeDot();const r=i=>{const o=this.lines[1]??[],s=this.fontSizes[1]??[];if(x.EXPO!=="wineparis2026"){const m=this.exh.length?this.topLeftAlignment:o.length?i<s[s.length-1].scaleFactor?this.topLeftAlignment:this.centerAlignment:this.topLeftAlignment;this.shapeLabel.alignment=m}if(!$(this.shapeLabel.lines,i,this.fontSizes,this.booth.name))return;const l=this.paddingScaled[0]*i+this.padding,d=this.paddingScaled[1]*i+this.padding;return this.shapeLabel.padding[0]=l,this.shapeLabel.padding[1]=d,this.shapeLabel},a=i=>{const o=i>=this.minZoomDotVisible&&i<=this.maxZoomDotVisible,s=this.shapeDot.source.width*i,n=this.shapeDot.source.height*i;if(!(!o&&this.shapeDot.hidden))return this.shapeDot.bounds.size={x:s,y:n},this.shapeDot.hidden=!o,this.shapeDot};B(()=>[this.booth.skipDim,p.selectedRoute,O.layersLoaded],()=>{if(!O.layersLoaded)return;const i=isDirectionsMode();this.shapeLabel.dim=i||this.booth.skipDim?!1:void 0,this.shapeDot.dim=i||this.booth.skipDim?!1:void 0,this.rendererService.update(this.shapeLabel,this.shapeDot)}),B(()=>p.mapSettings,({roll:i})=>{K(i)&&this.rendererService.onRoll(`booth-roll-${t.id}`,o=>{const s=q(o,this.shapeLabel.bounds.rotation),{size:n}=this.canvasRect;return s!==void 0&&(this.shapeLabel=k(this.shapeLabel,s),!this.shapeLabel.hidden&&!this.exh.length&&n.x!==n.y&&(this.canvasRect=Q(this.canvasRect,s),this.calculateFontSizeFactors(),r(this.rendererService.scale),a(this.rendererService.scale))),[this.shapeLabel,this.shapeDot]})}),this.rendererService.onPtScale(`booth-label-${t.id}`,r),this.rendererService.onPtScale(`booth-dot-${t.id}`,a)}getShape(){return[this.shapeLabel,this.shapeDot]}getShapeDot(){this.shapeDot=j(this.canvasRect,this.booth.labelColor||v),this.shapeDot.hidden=!0,this.maxZoomDotVisible=Math.min(this.canvasRect.size.x/this.shapeDot.source.width,this.canvasRect.size.y/this.shapeDot.source.height)}createLines(){const e=this.booth,t=[],r=[],a=b&&this.optimizationLevel()>=3?1:3;if(this.exh.length){const i=e.exhibitors.filter(s=>s.order===0),o=e.exhibitors.filter(s=>s.order);if(i.length>0)t.push(...i.map(s=>s.name));else if(u.onlyFeaturedExhibitors)t.push(...e.exhibitors.filter(s=>s.featured).map(s=>s.name));else if(o.length>0){t.push(...o.map(n=>n.name));const s=e.exhibitors.filter(n=>n.order===void 0);s.length>0&&t.push(L("and {{moreCount}} more",{moreCount:s.length}))}else e.exhibitors.length>a?t.push(`${e.exhibitors.length} ${u.exhibitorTermPlural}`):t.push(...e.exhibitors.map(s=>s.name));r.push(e.title||e.name)}else{const i=!!e.exhibitors.length;t.push(e.title||e.name),e.onHold?r.push(L("On Hold")):e.reserved?r.push(L("Reserved")):i||r.push(...e.exhibitors.map(o=>o.name).sort((o,s)=>o>s?1:-1)),e.size&&r.push(e.size.indexOf("/")>-1?e.size.substring(0,e.size.indexOf("/")).trim():e.size),e.price&&e.price!=="0"&&!p.previewMode&&r.push(e.price)}p.rtl&&t.forEach((i,o)=>{(i.endsWith(".")||i.endsWith("!")||i.endsWith("?"))&&(t[o]=t[o]+"\u200F"),X(i)&&(t[o]=t[o]+" ")}),this.lines=[t,r]}calculateFontSizeFactors(){let[e,t]=this.lines;const r=this.canvasRect,a=[],i=[],o=this.prefixes.slice(0,this.exh.length?this.prefixes.length:this.prefixes.length-1);let s=500,n=300;this.exh.length?(s=Number(getComputedStyle(document.body).getPropertyValue(te))||s,n=Number(getComputedStyle(document.body).getPropertyValue(se))||n):(s=Number(getComputedStyle(document.body).getPropertyValue(ee))||s,n=Number(getComputedStyle(document.body).getPropertyValue(ie))||n);for(const{fontSize:l,short:d}of o){const m=l*devicePixelRatio,R=.9*l*devicePixelRatio,f=M(m,s),y=M(R,n),F=u.hideExhibitorBoothNumber||d;let T,A,S,g;if(this.exh.length)d?t=[]:t=this.lines[1],S=Math.max(...e.map(c=>this.measureText(c,f).width),...t.map(c=>this.measureText(c,y).width)),T=Math.max(...e.map(c=>this.exh.length?this.measureText(D(c),f).width:this.measureText(D(c),f).width+3+3),...t.map(c=>this.measureText(D(c),y).width)),g=m*e.length+R*t.length+devicePixelRatio*(e.length+t.length)+3,A=F?g/e.length:null;else{const c=e[0].replace(/[0-9]/g,"3").replace(/[A-Z]/g,"A"),N=4;S=this.measureText(c,f).width+3+3,g=m+N}const W=r.size.x/(T||S),C=r.size.y/(A||g),w=Math.min(W,C);a.push({scaleFactor:w,value:l}),!F&&i.push({scaleFactor:w,value:.9*l})}if(!this.exh.length){const l=a[a.length-1],d=this.prefixes.find(m=>m.name===z);a.push({scaleFactor:l.scaleFactor/1.8,value:d.fontSize}),i.push({scaleFactor:l.scaleFactor/1.8,value:d.fontSize*(b?1:.9)})}this.fontUrls=[getFontUrlByWeight(s,this.rendererService.fontUrls),getFontUrlByWeight(n,this.rendererService.fontUrls)],this.minZoomDotVisible=getMinZoomFactorForDot(a.map(l=>l.scaleFactor)),this.fontSizes=[a,i]}calcArea(e,t){return Math.floor(Math.max(0,e)*Math.max(0,t)/1e3)}optimizationLevel(){return Math.min(u.viewOptimizationLevel?u.viewOptimizationLevel:Math.floor(this.calcArea(this.canvasRect.size.x,this.canvasRect.size.y)/5e3),3)}measureText(e,t){return P.font=t,P.measureText(e)}}
@@ -1,13 +1,13 @@
1
1
  import { Booth } from "../../../../store/BoothStore";
2
2
  import { BoothDrawerBaseWithoutPainter } from "./BoothDrawerBase";
3
3
  import { PathInfo } from "../../../../data/Data";
4
- import { MapRenderer } from "../../Map";
4
+ import { RendererService } from "../../../../renderer";
5
5
  import { ImageDef, ImageSource } from "@expofp/renderer";
6
6
  export declare function canvasFromPath(paths: PathInfo[], scale: number | undefined, suffix: string): ImageSource;
7
- export default function configScaledBooth(renderer: MapRenderer, booth: Booth): ScaledBoothDrawer;
7
+ export default function configScaledBooth(rendererService: RendererService, booth: Booth): ScaledBoothDrawer;
8
8
  declare class ScaledBoothDrawer extends BoothDrawerBaseWithoutPainter {
9
9
  protected shape: ImageDef;
10
- constructor(renderer: MapRenderer, booth: Booth);
10
+ constructor(rendererService: RendererService, booth: Booth);
11
11
  getShape(): ImageDef[];
12
12
  }
13
13
  export {};
@@ -1 +1 @@
1
- import d,{layersStore as f}from"../../../../store";import{LayersMode as h}from"../../../../store/LayerStore";import{BoothDrawerBaseWithoutPainter as u}from"./BoothDrawerBase";import{getTrianglesFromFpPaths as g}from"../../../../data/svg";import{reaction as p}from"mobx";import{Rect as E}from"./Rect";import{createImageDef as y,updateRenderer as x}from"./engine-core";const l=document.createElement("canvas"),a=l.getContext("2d");export function canvasFromPath(m,s=.5,t){var e=[Number.MAX_VALUE,Number.MAX_VALUE,Number.MIN_VALUE,Number.MIN_VALUE];m.forEach(c=>{c.triangles=g(c.index,t),c.triangles.forEach(r=>{r.forEach(o=>{o[0]<e[0]?e[0]=o[0]:o[0]>e[2]&&(e[2]=o[0]),o[1]<e[1]?e[1]=o[1]:o[1]>e[3]&&(e[3]=o[1])})})});const n=e[0],i=e[1];return a.scale(s,s),m.forEach(c=>{a.beginPath(),a.fillStyle=c.color,c.triangles.forEach(r=>{a.moveTo(r[0][0]-n,r[0][1]-i),a.lineTo(r[1][0]-n,r[1][1]-i),a.lineTo(r[2][0]-n,r[2][1]-i),a.lineTo(r[0][0]-n,r[0][1]-i)}),a.fill()}),l}export default function L(m,s){return new N(m,s)}class N extends u{shape;constructor(s,t){super(t);const e=E.fromCoreRect(t.rect,t.rotate),n=canvasFromPath(t.paths,.5,d.layerStore.mode!==h.Default?t.layer.name:"");this.shape=y(n,e,{hidden:!0,dim:!0}),p(()=>[this.booth.skipDim,f.layersLoaded],()=>{f.layersLoaded&&(this.shape.dim=this.booth.skipDim?!1:void 0,x(s,this.shape))})}getShape(){return[this.shape]}}
1
+ import d,{layersStore as f}from"../../../../store";import{LayersMode as h}from"../../../../store/LayerStore";import{BoothDrawerBaseWithoutPainter as u}from"./BoothDrawerBase";import{getTrianglesFromFpPaths as g}from"../../../../data/svg";import{reaction as p}from"mobx";import{Rect as E}from"./Rect";import{createImageDef as y}from"../../../../renderer";const l=document.createElement("canvas"),a=l.getContext("2d");export function canvasFromPath(m,s=.5,t){var e=[Number.MAX_VALUE,Number.MAX_VALUE,Number.MIN_VALUE,Number.MIN_VALUE];m.forEach(c=>{c.triangles=g(c.index,t),c.triangles.forEach(r=>{r.forEach(o=>{o[0]<e[0]?e[0]=o[0]:o[0]>e[2]&&(e[2]=o[0]),o[1]<e[1]?e[1]=o[1]:o[1]>e[3]&&(e[3]=o[1])})})});const n=e[0],i=e[1];return a.scale(s,s),m.forEach(c=>{a.beginPath(),a.fillStyle=c.color,c.triangles.forEach(r=>{a.moveTo(r[0][0]-n,r[0][1]-i),a.lineTo(r[1][0]-n,r[1][1]-i),a.lineTo(r[2][0]-n,r[2][1]-i),a.lineTo(r[0][0]-n,r[0][1]-i)}),a.fill()}),l}export default function x(m,s){return new L(m,s)}class L extends u{shape;constructor(s,t){super(t);const e=E.fromCoreRect(t.rect,t.rotate),n=canvasFromPath(t.paths,.5,d.layerStore.mode!==h.Default?t.layer.name:"");this.shape=y(n,e,{hidden:!0,dim:!0}),p(()=>[this.booth.skipDim,f.layersLoaded],()=>{f.layersLoaded&&(this.shape.dim=this.booth.skipDim?!1:void 0,s.update(this.shape))})}getShape(){return[this.shape]}}
@@ -1,6 +1,6 @@
1
1
  import { Booth } from "../../../../store/BoothStore";
2
2
  import { LayerDef } from "@expofp/renderer";
3
- import { MapRenderer } from "../../Map";
3
+ import { RendererService } from "../../../../renderer";
4
4
  export declare const BOOTHS_CHUNK_SIZE = 350;
5
- export default function configBooths(renderer: MapRenderer, layerID: string, booths: Booth[]): LayerDef;
5
+ export default function configBooths(rendererService: RendererService, layerID: string, booths: Booth[]): LayerDef;
6
6
  //# sourceMappingURL=config-booths.d.ts.map
@@ -1 +1 @@
1
- import E from"./config-booth-bg";import{Rect as d}from"./Rect";import U from"./config-booth-labels";import{SEPARATOR as s}from"../../../../constants";import W from"./config-booth-labels-special";import v from"./config-booth-border";import F from"./config-booth-bookmark";import K from"../../../../tools/settings";import k,{boothStore as P,uiState as Z}from"../../../../store";import j from"./config-booth-scaled";import{loadImagesInBatchesById as q}from"../../../../utils/loadImagesInBatches";import{createBoothImg as z,getImageLayerName as G,mapBoothsLogos as J}from"./loadBoothsImages";import{degToRad as M}from"three/src/math/MathUtils";import{createImageDef as Q}from"./engine-core";export const BOOTHS_CHUNK_SIZE=350;export default function V(a,b,R){return(l=>{const t=b,B=[],m=[],f=[],u=[],y=[],p=G(t);for(const o of l){const i=E(a,o)?.getShape();i&&B.push(...i);const n=U(a,o)?.getShape();n&&m.push(...n);const c=W(a,o)?.getShape();if(c&&f.push(...c),!K.borderless){const e=v(a,o)?.getShape();e&&u.push(e)}const h=F(a,o)?.getShape();h&&y.push(h)}const D=m.filter(o=>o.lines),x=f.filter(o=>o.lines),_=m.filter(o=>o.source),w=f.filter(o=>o.source);if(!Z.hideLogoInBooth){const o=J(l);a.layerImagesHandlers.push({fn:async()=>{const i=await q(o,BOOTHS_CHUNK_SIZE),n=[];for(const[c,h]of i){const e=k.boothStore.boothById.get(c);if(!e)continue;const{bounds:{x:$,y:I,height:H,angle:N,width:O},htmlImage:T}=z(e,h),L=Q(T,new d({x:$,y:I},{x:$+O,y:I+H},M(N))),A=d.fromCoreRect(e.rect,e.rotate),C=d.inflateRect(A,e.borderWidth||P.borderWidth);e.shapes.push(L),n.push({shape:L,parentRect:C})}return{name:p,children:n}},name:p})}let g=[];l.length&&(g=[{name:`${t}${s}boothBackground`,children:B,interactive:!0},{name:`${t}${s}labels`,children:D},{name:`${t}${s}specialLabels`,children:x},{name:`${t}${s}bots`,children:_},{name:`${t}${s}specialDots`,children:w},{name:p,children:[]},{name:`${t}${s}boothsBookmark`,children:y},{name:`${t}${s}boothBorder`,children:u}]);const{defaultFrom:r}=k.routeStore,S=(b+":").split(":")[0];if(r?.layer===null||r?.layer?.name===S||r?.layer?.childLayers.find(o=>o.name===S)){const o=j(a,r);o&&g.push({name:`${t}${s}yahBooth`,children:o.getShape()})}return{name:t,children:g}})(R)}
1
+ import U from"./config-booth-bg";import{Rect as g}from"./Rect";import W from"./config-booth-labels";import{SEPARATOR as s}from"../../../../constants";import F from"./config-booth-labels-special";import K from"./config-booth-border";import P from"./config-booth-bookmark";import Z from"../../../../tools/settings";import R,{boothStore as j,uiState as q}from"../../../../store";import z from"./config-booth-scaled";import{loadImagesInBatchesById as G}from"../../../../utils/loadImagesInBatches";import{createBoothImg as J,getImageLayerName as M,mapBoothsLogos as Q}from"./loadBoothsImages";import{degToRad as V}from"three/src/math/MathUtils";import{createImageDef as X}from"../../../../renderer";export const BOOTHS_CHUNK_SIZE=350;export default function Y(a,d,D){return(l=>{const t=d,b=[],m=[],f=[],B=[],u=[],y=M(t),L={name:y,children:[]};for(const o of l){const i=U(a,o)?.getShape();i&&b.push(...i);const n=W(a,o)?.getShape();n&&m.push(...n);const c=F(a,o)?.getShape();if(c&&f.push(...c),!Z.borderless){const e=K(a,o)?.getShape();e&&B.push(e)}const h=P(a,o)?.getShape();h&&u.push(h)}const x=m.filter(o=>o.lines),_=f.filter(o=>o.lines),w=m.filter(o=>o.source),N=f.filter(o=>o.source);if(!q.hideLogoInBooth){const o=Q(l);a.onLayerImages(y,async()=>{const i=await G(o,BOOTHS_CHUNK_SIZE),n=[];for(const[c,h]of i){const e=R.boothStore.boothById.get(c);if(!e)continue;const{bounds:{x:I,y:S,height:O,angle:T,width:A},htmlImage:C}=J(e,h),k=X(C,new g({x:I,y:S},{x:I+A,y:S+O},V(T))),E=g.fromCoreRect(e.rect,e.rotate),H=g.inflateRect(E,e.borderWidth||j.borderWidth);e.shapes.push(k),n.push({shape:k,parentRect:H})}return{layer:L,children:n}})}let p=[];l.length&&(p=[{name:`${t}${s}boothBackground`,children:b,interactive:!0},{name:`${t}${s}labels`,children:x},{name:`${t}${s}specialLabels`,children:_},{name:`${t}${s}bots`,children:w},{name:`${t}${s}specialDots`,children:N},L,{name:`${t}${s}boothsBookmark`,children:u},{name:`${t}${s}boothBorder`,children:B}]);const{defaultFrom:r}=R.routeStore,$=(d+":").split(":")[0];if(r?.layer===null||r?.layer?.name===$||r?.layer?.childLayers.find(o=>o.name===$)){const o=z(a,r);o&&p.push({name:`${t}${s}yahBooth`,children:o.getShape()})}return{name:t,children:p}})(D)}
@@ -1,5 +1,5 @@
1
1
  import { Layer } from "../../../../store/LayerStore";
2
2
  import { LayerDef } from "@expofp/renderer";
3
- import { MapRenderer } from "../../Map";
4
- export default function loadLayer(layer: Layer, renderer?: MapRenderer): Promise<LayerDef>;
3
+ import { RendererService } from "../../../../renderer";
4
+ export default function loadLayer(layer: Layer, rendererService: RendererService): Promise<LayerDef>;
5
5
  //# sourceMappingURL=config-load-layer.d.ts.map
@@ -1 +1 @@
1
- import m,{boothStore as N}from"../../../../store";import C from"../../../../store/init/init-booths";import{LayersMode as O}from"../../../../store/LayerStore";import{loadJs as T}from"../../../../tools/loaders";import x,{BOOTHS_CHUNK_SIZE as H}from"./config-booths";import{chunkArray as M}from"../../../../utils";import{BOOTHS_PAINTER_MARKER as v,SEPARATOR as c}from"../../../../constants";import{Rect as D}from"@expofp/renderer";import k,{BG_LAYER_NAME as $,FG_LAYER_NAME as w}from"./config-bg";import{getChildLayers as G}from"../../../../store/init/init-layers";import{createImageDef as K,createLayerDef as U}from"./engine-core";import{getImageLayerName as Y,getLayerIcons as j}from"./loadBoothsImages";import{getRenderer as F}from"./config-all";import{loadIcons as J}from"../../../../utils/imageloader";import{degToRad as Z}from"three/src/math/MathUtils";function q(e){return e.childLayers.length?e.childLayers:G(e,e.basePriority,15).layers}function B(e,t,h){return new Promise(async f=>{let n=[];const a=C(m,t),s=await k(t),i=[],d=M(a,H);N.booths.filter(o=>o.rect&&(!o.layer||o.layer===t||o.layer.childLayers.includes(t))&&o.exhibitors.find(r=>!!r.logoInBooth&&!!r.logo)&&!m.uiState.hideLogoInBooth).forEach(o=>o.noLabels=!0),a.length&&d.forEach((o,r)=>{i.push(x(e,`${t.name}${c}${v}${c}${r}`,o))}),t.loaded=!0;const u=s.children.find(o=>o.name===$),y=s.children.find(o=>o.name===w),l=Y(t.name),g=j(t);g.length&&e.layerImagesHandlers.push({fn:async()=>{const o=await J(g),r=[];for(const _ of o.filter(Boolean)){const{bounds:{x:p,y:L,height:I,angle:b,width:E},htmlImage:R}=_,A=new D({x:p,y:L},{x:p+E,y:L+I},Z(b)),S=K(R,A);r.push({shape:S})}return{name:l,children:r}},name:l}),u&&n.push({...u,name:`${s.name}${c}${$}`}),i.length&&n.push(...i),y&&n.push({...y,name:`${s.name}${c}${w}`}),g.length&&n.push({name:l,children:[]});const P=t.childLayers.sort((o,r)=>o.basePriority-r.basePriority).map(async o=>B(e,o,!0));Promise.all(P).then(o=>{const r=o.flat();r.length&&n.push(...r),f(U(t.name,n,{hidden:!h}))})})}export default async function z(e,t=F()){return e.configured?Promise.resolve({name:e.name,children:e.children}):new Promise(async(h,f)=>{if(m.layerStore.mode!==O.Default&&!window[`__fpPaths${e.name}`]&&!e.rootParent)try{await T(`${window.__dataUrlBase}fp.svg.${e.name}.js`)}catch{return f()}const n=q(e);n.length&&(e.childLayers=n);const{layers:a}=m.layerStore;m.layerStore.layers=[...a,...n.filter(i=>!a.some(d=>d.name===i.name))];const s=await B(t,e,e.visible);h(s)})}
1
+ import c,{boothStore as C}from"../../../../store";import O from"../../../../store/init/init-booths";import{LayersMode as T}from"../../../../store/LayerStore";import{loadJs as x}from"../../../../tools/loaders";import M,{BOOTHS_CHUNK_SIZE as D}from"./config-booths";import{chunkArray as H}from"../../../../utils";import{BOOTHS_PAINTER_MARKER as k,SEPARATOR as m}from"../../../../constants";import{Rect as G}from"@expofp/renderer";import K,{BG_LAYER_NAME as w,FG_LAYER_NAME as B}from"./config-bg";import{getChildLayers as U}from"../../../../store/init/init-layers";import{createImageDef as Y,createLayerDef as j}from"../../../../renderer";import{getImageLayerName as v,getLayerIcons as F}from"./loadBoothsImages";import{loadIcons as J}from"../../../../utils/imageloader";import{degToRad as Z}from"three/src/math/MathUtils";function q(e){return e.childLayers.length?e.childLayers:U(e,e.basePriority,15).layers}function P(e,t,h){return new Promise(async f=>{let n=[];const s=O(c,t),a=await K(t),i=[],d=H(s,D);C.booths.filter(o=>o.rect&&(!o.layer||o.layer===t||o.layer.childLayers.includes(t))&&o.exhibitors.find(r=>!!r.logoInBooth&&!!r.logo)&&!c.uiState.hideLogoInBooth).forEach(o=>o.noLabels=!0),s.length&&d.forEach((o,r)=>{i.push(M(e,`${t.name}${m}${k}${m}${r}`,o))}),t.loaded=!0;const g=a.children.find(o=>o.name===w),y=a.children.find(o=>o.name===B),u=v(t.name),l=F(t),p={name:u,children:[]};l.length&&e.onLayerImages(u,async()=>{const o=await J(l),r=[];for(const I of o.filter(Boolean)){const{bounds:{x:L,y:$,height:b,angle:E,width:A},htmlImage:R}=I,S=new G({x:L,y:$},{x:L+A,y:$+b},Z(E)),N=Y(R,S);r.push({shape:N})}return{layer:p,children:r}}),g&&n.push({...g,name:`${a.name}${m}${w}`}),i.length&&n.push(...i),y&&n.push({...y,name:`${a.name}${m}${B}`}),l.length&&n.push(p);const _=t.childLayers.sort((o,r)=>o.basePriority-r.basePriority).map(async o=>P(e,o,!0));Promise.all(_).then(o=>{const r=o.flat();r.length&&n.push(...r),f(j(t.name,n,{hidden:!h}))})})}export default async function z(e,t){return e.configured?Promise.resolve({name:e.name,children:e.children}):new Promise(async(h,f)=>{if(c.layerStore.mode!==T.Default&&!window[`__fpPaths${e.name}`]&&!e.rootParent)try{await x(`${window.__dataUrlBase}fp.svg.${e.name}.js`)}catch{return f()}const n=q(e);n.length&&(e.childLayers=n);const{layers:s}=c.layerStore;c.layerStore.layers=[...s,...n.filter(i=>!s.some(d=>d.name===i.name))];const a=await P(t,e,e.visible);h(a)})}
@@ -1,6 +1,5 @@
1
- import { SceneDef } from "@expofp/renderer";
2
- import { MapRenderer } from "../../Map";
1
+ import { RendererService } from "../../../../renderer";
3
2
  export declare const MARKER_LAYER_NAME = "markers";
4
- export declare function configMarkers(renderer: MapRenderer, scene: SceneDef): () => void;
3
+ export declare function configMarkers(rendererService: RendererService): () => void;
5
4
  export declare function getMarkerFromClick(x: number, y: number, scale: number): import("../../../../store/RouteStore").Marker | null;
6
5
  //# sourceMappingURL=config-markers.d.ts.map