@expofp/floorplan 3.0.0-alpha.3 → 3.0.0-alpha.5

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 (463) hide show
  1. package/dist/browser/{Debug-e8WG0DtG.js → Debug-C-eDLTyi.js} +2 -2
  2. package/dist/browser/{Demo-boypMSbE.js → Demo-Bz4sS4Cr.js} +3 -3
  3. package/dist/browser/{Free-CDDXe67y.js → Free-Dmh_yBTQ.js} +3 -3
  4. package/dist/browser/{Gallery-CzUOmw0W.js → Gallery-B0y19mXe.js} +3 -3
  5. package/dist/browser/{GpsLoader-fuJmNb6R.js → GpsLoader-CLuQFUMd.js} +3 -3
  6. package/dist/browser/{KioskStore-BFmurkVL.js → KioskStore-DfQRkubn.js} +3 -3
  7. package/dist/browser/{Mapbox-C51a0xP2.js → Mapbox-Bpxx-pxs.js} +4 -4
  8. package/dist/browser/{SetKioskMode-COh431a3.js → SetKioskMode-Dt6LsCTr.js} +4 -4
  9. package/dist/browser/{ShowKiosk-K-z2FMYd.js → ShowKiosk-nx3n9Hin.js} +3 -3
  10. package/dist/browser/{ThreeComponent-C8u-uHkz.js → ThreeComponent-DNb8u7Fd.js} +4 -4
  11. package/dist/browser/{boolean-editor-0qC2CaXN.js → boolean-editor-DngToQ6l.js} +3 -3
  12. package/dist/browser/bundle.json +25 -25
  13. package/dist/browser/{client-B3NWpX6M.js → client-JooIdiWR.js} +2 -2
  14. package/dist/browser/{data-B9sYqJWP.js → data-CquFs-CC.js} +2 -2
  15. package/dist/browser/{debug-overlay-w2mPZxWf.js → debug-overlay-uF5jExOh.js} +4 -4
  16. package/dist/browser/{debug-ui-BtilbmgE.js → debug-ui-KqARuDoS.js} +3 -3
  17. package/dist/browser/{fetch-retry.umd-BUYyExMA.js → fetch-retry.umd-BNw2UfCg.js} +1 -1
  18. package/dist/browser/{flex-C0ADIXpK.js → flex-DeTqedih.js} +2 -2
  19. package/dist/browser/{floorplan.ready-DOAwMGub.js → floorplan.ready-DlHsC7fv.js} +15 -15
  20. package/dist/browser/{index-saYO21xq.js → index-B85ohTnv.js} +4 -4
  21. package/dist/browser/{index-B2H3t32F.js → index-CETW_2Me.js} +1 -1
  22. package/dist/browser/{index-C6neMlVE.js → index-DDXYk8-M.js} +3 -3
  23. package/dist/browser/{index-cGFPJUkc.js → index-DLZUbodm.js} +2 -2
  24. package/dist/browser/{index-CvCRaJEu.js → index-J-CeK8EI.js} +2 -2
  25. package/dist/browser/{index-CKMnb1_8.js → index-tYEC7D5U.js} +4 -4
  26. package/dist/browser/index.js +1 -1
  27. package/dist/browser/{particles.min-qY9PxD2m.js → particles.min-ydes6zXA.js} +1 -1
  28. package/dist/esm/RouteCutIn.js +1 -1
  29. package/dist/esm/_misc_to_move/logBuildInfoImpl.js +1 -1
  30. package/dist/esm/components/Alert.js +1 -1
  31. package/dist/esm/components/Autocomplete.js +1 -1
  32. package/dist/esm/components/Badge.js +1 -1
  33. package/dist/esm/components/BaseFilterModal.js +1 -1
  34. package/dist/esm/components/Bookmarks.js +1 -1
  35. package/dist/esm/components/Booth/Booth.js +1 -1
  36. package/dist/esm/components/Booth/BoothOnHold.js +1 -1
  37. package/dist/esm/components/Booth/BoothReserved.js +1 -1
  38. package/dist/esm/components/Booth/BoothSpecial.js +1 -1
  39. package/dist/esm/components/Booth/BoothWithoutExhibitor.js +1 -1
  40. package/dist/esm/components/BoothRow.js +1 -1
  41. package/dist/esm/components/Button.js +1 -1
  42. package/dist/esm/components/Category.js +1 -1
  43. package/dist/esm/components/CategoryFilterModal.js +1 -1
  44. package/dist/esm/components/Checkbox.js +1 -1
  45. package/dist/esm/components/CheckboxButton.js +1 -1
  46. package/dist/esm/components/Controls.js +1 -1
  47. package/dist/esm/components/CookieConsent.js +1 -1
  48. package/dist/esm/components/Debug.js +1 -1
  49. package/dist/esm/components/Demo.js +1 -1
  50. package/dist/esm/components/Draggable.js +1 -1
  51. package/dist/esm/components/EntityItem.js +1 -1
  52. package/dist/esm/components/EntityList.js +1 -1
  53. package/dist/esm/components/EntityListRow.js +1 -1
  54. package/dist/esm/components/Event.js +1 -1
  55. package/dist/esm/components/EventBadge.js +1 -1
  56. package/dist/esm/components/Exhibitor.js +1 -1
  57. package/dist/esm/components/ExhibitorRow.js +1 -1
  58. package/dist/esm/components/Filter.js +1 -1
  59. package/dist/esm/components/Free.js +1 -1
  60. package/dist/esm/components/Gallery/Gallery.js +1 -1
  61. package/dist/esm/components/Gallery/GalleryBadges/GalleryBadges.js +1 -1
  62. package/dist/esm/components/Gallery/GalleryControls/GalleryControls.js +1 -1
  63. package/dist/esm/components/Gallery/GalleryImg/GalleryImg.js +1 -1
  64. package/dist/esm/components/Gallery/GalleryItem/GalleryItem.js +1 -1
  65. package/dist/esm/components/Gallery/GalleryModal/GalleryModal.js +1 -1
  66. package/dist/esm/components/Gallery/GalleryPreLoader.js +1 -1
  67. package/dist/esm/components/Gallery/TransformImg/TransformImg.js +1 -1
  68. package/dist/esm/components/GlobalErrorMessage.js +1 -1
  69. package/dist/esm/components/GpsLoader.js +1 -1
  70. package/dist/esm/components/HeatmapLegend.js +1 -1
  71. package/dist/esm/components/HighlightText.js +1 -1
  72. package/dist/esm/components/Kiosk/KioskStore.js +1 -1
  73. package/dist/esm/components/Kiosk/SetKiosk/Confirm/ConfirmDialog.js +1 -1
  74. package/dist/esm/components/Kiosk/SetKiosk/FormInput/RangeInput.js +1 -1
  75. package/dist/esm/components/Kiosk/SetKiosk/Message/InfoMessage.js +1 -1
  76. package/dist/esm/components/Kiosk/SetKiosk/SetKioskComponent.js +1 -1
  77. package/dist/esm/components/Kiosk/SetKiosk/SetKioskForm.js +1 -1
  78. package/dist/esm/components/Kiosk/SetKiosk/SetKioskStatusMessages.js +1 -1
  79. package/dist/esm/components/Kiosk/SetKioskMode.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/Kiosk/kioskUrlParam.js +1 -1
  83. package/dist/esm/components/Kiosk/recoverKioskFromUrlPrams.js +1 -1
  84. package/dist/esm/components/Kiosk/requestKioskKey.js +1 -1
  85. package/dist/esm/components/Language.js +1 -1
  86. package/dist/esm/components/LanguageRow.js +1 -1
  87. package/dist/esm/components/LargeMessage.js +1 -1
  88. package/dist/esm/components/LayersLoading.js +1 -1
  89. package/dist/esm/components/Layout.js +1 -1
  90. package/dist/esm/components/LevelBadge.js +1 -1
  91. package/dist/esm/components/LevelSelector.js +1 -1
  92. package/dist/esm/components/List.js +1 -1
  93. package/dist/esm/components/LogoOverlay.js +1 -1
  94. package/dist/esm/components/Map/Map.js +1 -1
  95. package/dist/esm/components/Map/booth-by-xy.js +1 -1
  96. package/dist/esm/components/Map/drawing/config/BoothShape.js +1 -1
  97. package/dist/esm/components/Map/drawing/config/Rect.js +1 -1
  98. package/dist/esm/components/Map/drawing/config/TextFitter.js +1 -1
  99. package/dist/esm/components/Map/drawing/config/canvases.js +1 -1
  100. package/dist/esm/components/Map/drawing/config/config-all.js +1 -1
  101. package/dist/esm/components/Map/drawing/config/config-bg.js +1 -1
  102. package/dist/esm/components/Map/drawing/config/config-booth-bg.js +1 -1
  103. package/dist/esm/components/Map/drawing/config/config-booth-bookmark.js +1 -1
  104. package/dist/esm/components/Map/drawing/config/config-booth-border.js +1 -1
  105. package/dist/esm/components/Map/drawing/config/config-booth-labels-special.d.ts +1 -1
  106. package/dist/esm/components/Map/drawing/config/config-booth-labels-special.js +2 -2
  107. package/dist/esm/components/Map/drawing/config/config-booth-labels.d.ts +1 -1
  108. package/dist/esm/components/Map/drawing/config/config-booth-labels.js +1 -1
  109. package/dist/esm/components/Map/drawing/config/config-booth-scaled.js +1 -1
  110. package/dist/esm/components/Map/drawing/config/config-booths.js +1 -1
  111. package/dist/esm/components/Map/drawing/config/config-load-layer.js +1 -1
  112. package/dist/esm/components/Map/drawing/config/config-markers.js +1 -1
  113. package/dist/esm/components/Map/drawing/config/config-wf.js +1 -1
  114. package/dist/esm/components/Map/drawing/config/config-yah.js +1 -1
  115. package/dist/esm/components/Map/drawing/config/engine-core/animation.js +1 -1
  116. package/dist/esm/components/Map/drawing/config/engine-core/canvases.js +1 -1
  117. package/dist/esm/components/Map/drawing/config/engine-core/defs.js +3 -3
  118. package/dist/esm/components/Map/drawing/config/engine-core/fonts.js +1 -1
  119. package/dist/esm/components/Map/drawing/config/engine-core/index.js +1 -1
  120. package/dist/esm/components/Map/drawing/config/engine-core/renderer.js +1 -1
  121. package/dist/esm/components/Map/drawing/config/engine-core/update-def.js +1 -1
  122. package/dist/esm/components/Map/drawing/config/engine-core/utils/rotation.js +1 -1
  123. package/dist/esm/components/Map/drawing/config/loadBoothsImages.js +1 -1
  124. package/dist/esm/components/Map/drawing/config/route-snapping/snapPositionToRoute.js +1 -1
  125. package/dist/esm/components/Map/drawing/config/route-snapping/splitRouteByPoint.js +1 -1
  126. package/dist/esm/components/Map/drawing/config/route-snapping/utils.js +1 -1
  127. package/dist/esm/components/Map/traffic/trafficLayers.js +1 -1
  128. package/dist/esm/components/Map/traffic/useBuildRoute.js +5 -5
  129. package/dist/esm/components/Map/traffic/useManageTraffic.js +1 -1
  130. package/dist/esm/components/Map/visibleArea.js +1 -1
  131. package/dist/esm/components/MapControls.js +1 -1
  132. package/dist/esm/components/Mapbox/Button.js +1 -1
  133. package/dist/esm/components/Mapbox/Dot.js +1 -1
  134. package/dist/esm/components/Mapbox/MapLoader.js +1 -1
  135. package/dist/esm/components/Mapbox/Mapbox.js +1 -1
  136. package/dist/esm/components/Mapbox/utils/data.js +1 -1
  137. package/dist/esm/components/MarketMaterialList.js +1 -1
  138. package/dist/esm/components/Menu.js +2 -2
  139. package/dist/esm/components/MobileToggleButton.js +1 -1
  140. package/dist/esm/components/Modal.js +1 -1
  141. package/dist/esm/components/MultiSelectGroups.js +1 -1
  142. package/dist/esm/components/Overlay.js +1 -1
  143. package/dist/esm/components/OverlayContainer.js +1 -1
  144. package/dist/esm/components/OverlayGrip.js +1 -1
  145. package/dist/esm/components/OverlayParticles.js +1 -1
  146. package/dist/esm/components/PermissionNotice/PermissionNotice.js +1 -1
  147. package/dist/esm/components/Radio.js +1 -1
  148. package/dist/esm/components/RebookingNotes.js +1 -1
  149. package/dist/esm/components/RebookingRadioGroup.js +1 -1
  150. package/dist/esm/components/RouteQR.js +1 -1
  151. package/dist/esm/components/Schedule.js +1 -1
  152. package/dist/esm/components/ScheduleRow.js +1 -1
  153. package/dist/esm/components/ScrollableRow.js +1 -1
  154. package/dist/esm/components/Search.js +1 -1
  155. package/dist/esm/components/SearchBox.js +1 -1
  156. package/dist/esm/components/SearchButtons/SearchButton.js +1 -1
  157. package/dist/esm/components/SearchButtons/SearchButtons.js +1 -1
  158. package/dist/esm/components/SearchButtons/SearchSubButton.js +1 -1
  159. package/dist/esm/components/SearchButtons/SearchSubButtons.js +1 -1
  160. package/dist/esm/components/Sessions.js +1 -1
  161. package/dist/esm/components/SessionsFiltersModal.js +1 -1
  162. package/dist/esm/components/Share.js +1 -1
  163. package/dist/esm/components/Shortcuts/ShortcutButton.js +1 -1
  164. package/dist/esm/components/Shortcuts/ShortcutsFiltersButton.js +1 -1
  165. package/dist/esm/components/Shortcuts/ShortcutsToolbar.js +1 -1
  166. package/dist/esm/components/SidebarActions.js +1 -1
  167. package/dist/esm/components/SimpleRow.js +1 -1
  168. package/dist/esm/components/Speaker.js +1 -1
  169. package/dist/esm/components/Speakers.js +1 -1
  170. package/dist/esm/components/SpeakersFiltersModal.js +1 -1
  171. package/dist/esm/components/Threejs/ThreeComponent.js +1 -1
  172. package/dist/esm/components/Threejs/UIManager.js +1 -1
  173. package/dist/esm/components/Threejs/common/BoothMesh.js +1 -1
  174. package/dist/esm/components/Threejs/common/SpriteMesh.js +1 -1
  175. package/dist/esm/components/Threejs/common/dataLoader.js +1 -1
  176. package/dist/esm/components/Threejs/common/modelLoader.js +1 -1
  177. package/dist/esm/components/Threejs/common/sceneLoader.js +1 -1
  178. package/dist/esm/components/Threejs/index.js +1 -1
  179. package/dist/esm/components/Threejs/mapbox/index_mapbox.js +1 -1
  180. package/dist/esm/components/Threejs/utils/textureMerger.js +1 -1
  181. package/dist/esm/components/Toast/ToastContainer.js +1 -1
  182. package/dist/esm/components/Toast/ToastProvider.js +1 -1
  183. package/dist/esm/components/ToggleButton.js +1 -1
  184. package/dist/esm/components/ToggleSwitch.js +1 -1
  185. package/dist/esm/components/TouchHand.js +1 -1
  186. package/dist/esm/components/TourPoints.js +1 -1
  187. package/dist/esm/components/Tours.js +1 -1
  188. package/dist/esm/components/ToursList.js +1 -1
  189. package/dist/esm/components/Visited.js +1 -1
  190. package/dist/esm/components/WayInformation.js +1 -1
  191. package/dist/esm/components/Wayfinding.js +1 -1
  192. package/dist/esm/components/WayfindingFloorSelector.js +1 -1
  193. package/dist/esm/components/WayfindingTemplate.js +1 -1
  194. package/dist/esm/components/Ws.js +1 -1
  195. package/dist/esm/components/YahRow.js +1 -1
  196. package/dist/esm/components/gps/GpsManager.js +1 -1
  197. package/dist/esm/components/gps/GpsPermissionRequest.js +1 -1
  198. package/dist/esm/components/gps/useUserLocationAndHeading.js +1 -1
  199. package/dist/esm/components/gps/utils.js +1 -1
  200. package/dist/esm/components/stories/Alert.stories.js +1 -1
  201. package/dist/esm/components/stories/Autocomplete.stories.js +1 -1
  202. package/dist/esm/components/stories/Badge.stories.js +1 -1
  203. package/dist/esm/components/stories/Button.stories.js +1 -1
  204. package/dist/esm/components/stories/Checkbox.stories.js +1 -1
  205. package/dist/esm/components/stories/CheckboxButton.stories.js +1 -1
  206. package/dist/esm/components/stories/CookieConsent.stories.js +1 -1
  207. package/dist/esm/components/stories/Loading.stories.js +1 -1
  208. package/dist/esm/components/stories/MapControls.stories.js +1 -1
  209. package/dist/esm/components/stories/Modal.storiesss.js +1 -1
  210. package/dist/esm/components/stories/Overlay.stories.js +1 -1
  211. package/dist/esm/components/stories/RebookingNotes.stories.js +1 -1
  212. package/dist/esm/components/stories/RebookingRadioGroup.stories.js +1 -1
  213. package/dist/esm/components/stories/Share.storiesSS.js +1 -1
  214. package/dist/esm/components/stories/SidebarActions.stories.js +1 -1
  215. package/dist/esm/components/stories/Toast.stories.js +1 -1
  216. package/dist/esm/components/stories/ToggleButton.stories.js +1 -1
  217. package/dist/esm/components/stories/ToggleSwitch.stories.js +1 -1
  218. package/dist/esm/components/stories/TouchHand.stories.js +1 -1
  219. package/dist/esm/components/stories/WayfindingFloorSelector.storiesss.js +1 -1
  220. package/dist/esm/components/stories/WayfindingTemplate.storiesss.js +1 -1
  221. package/dist/esm/core/Line.js +1 -1
  222. package/dist/esm/core/Polygon.js +1 -1
  223. package/dist/esm/core/Rect.js +1 -1
  224. package/dist/esm/data/index.js +1 -1
  225. package/dist/esm/data/svg.js +1 -1
  226. package/dist/esm/data/validate-data.js +1 -1
  227. package/dist/esm/expofp-debug.js +1 -1
  228. package/dist/esm/floorplan.loader.js +1 -1
  229. package/dist/esm/floorplan.ready.js +1 -1
  230. package/dist/esm/hooks/useDragGesture.js +1 -1
  231. package/dist/esm/hooks/useURLFilters.js +1 -1
  232. package/dist/esm/hooks/useWindowSize.js +1 -1
  233. package/dist/esm/load.js +3 -3
  234. package/dist/esm/offline/offlineManager.js +1 -1
  235. package/dist/esm/offline/sw.js +1 -1
  236. package/dist/esm/services/URLFilterManager.js +1 -1
  237. package/dist/esm/services/routing.js +1 -1
  238. package/dist/esm/store/BaseFilterStore.js +1 -1
  239. package/dist/esm/store/BoothStore.js +1 -1
  240. package/dist/esm/store/CategoryFilterStore.js +1 -1
  241. package/dist/esm/store/CategoryStore.js +1 -1
  242. package/dist/esm/store/EventStore.js +1 -1
  243. package/dist/esm/store/ExhibitorStore.js +1 -1
  244. package/dist/esm/store/FuzzySearchEngineStore.js +1 -1
  245. package/dist/esm/store/HeatmapStore.js +1 -1
  246. package/dist/esm/store/LanguageStore.js +1 -1
  247. package/dist/esm/store/LayerStore.js +1 -1
  248. package/dist/esm/store/MapboxStore.js +1 -1
  249. package/dist/esm/store/RootStore.js +1 -1
  250. package/dist/esm/store/RouteStore.js +1 -1
  251. package/dist/esm/store/SearchStore.js +1 -1
  252. package/dist/esm/store/SessionsFilterStore.js +1 -1
  253. package/dist/esm/store/ShortcutRegistry.js +1 -1
  254. package/dist/esm/store/SpeakerFilterStore.js +1 -1
  255. package/dist/esm/store/SpeakerStore.js +1 -1
  256. package/dist/esm/store/ToursStore.js +1 -1
  257. package/dist/esm/store/UIState.d.ts +1 -1
  258. package/dist/esm/store/UIState.js +1 -1
  259. package/dist/esm/store/index.js +1 -1
  260. package/dist/esm/store/init/index.js +1 -1
  261. package/dist/esm/store/init/init-booths.js +1 -1
  262. package/dist/esm/store/init/init-categories.js +1 -1
  263. package/dist/esm/store/init/init-events.js +1 -1
  264. package/dist/esm/store/init/init-exhibitors.js +1 -1
  265. package/dist/esm/store/init/init-heatmap.js +1 -1
  266. package/dist/esm/store/init/init-language.js +1 -1
  267. package/dist/esm/store/init/init-layers.js +1 -1
  268. package/dist/esm/store/init/init-speakers.js +1 -1
  269. package/dist/esm/store/init/init-ui.js +1 -1
  270. package/dist/esm/store/providers/SearchShortcutProvider.js +1 -1
  271. package/dist/esm/store/providers/SessionsShortcutProvider.js +1 -1
  272. package/dist/esm/store/providers/SessionsSubButtonProvider.js +1 -1
  273. package/dist/esm/store/providers/SpeakerShortcutProvider.js +1 -1
  274. package/dist/esm/store/search-buttons/SearchButtonsActions.js +1 -1
  275. package/dist/esm/store/search-buttons/SearchButtonsFactory.js +1 -1
  276. package/dist/esm/store/search-buttons/SearchButtonsFilters.js +1 -1
  277. package/dist/esm/store/search-buttons/SearchButtonsState.js +1 -1
  278. package/dist/esm/store/search-buttons/SearchButtonsStore.js +1 -1
  279. package/dist/esm/store/search-buttons/constants.js +1 -1
  280. package/dist/esm/store/search-buttons/utils.js +1 -1
  281. package/dist/esm/storybook/decorators/StoryWrapper.js +1 -1
  282. package/dist/esm/storybook/decorators/WithResize.js +1 -1
  283. package/dist/esm/tools/Color.js +1 -1
  284. package/dist/esm/tools/debounce.js +1 -1
  285. package/dist/esm/tools/gtag.js +1 -1
  286. package/dist/esm/tools/handleDebugMode.js +1 -1
  287. package/dist/esm/tools/loaders.js +1 -1
  288. package/dist/esm/tools/logger.js +1 -1
  289. package/dist/esm/tools/report-error.js +3 -3
  290. package/dist/esm/tools/reset.js +1 -1
  291. package/dist/esm/tools/sentry.js +1 -1
  292. package/dist/esm/tools/settings.js +1 -1
  293. package/dist/esm/tools/slug.js +1 -1
  294. package/dist/esm/tools/track-event.js +1 -1
  295. package/dist/esm/tools/webgl-logger.js +1 -1
  296. package/dist/esm/utils/calcSpeed.js +1 -1
  297. package/dist/esm/utils/customCommands.js +1 -1
  298. package/dist/esm/utils/detectLimitedModeViaImage.js +1 -1
  299. package/dist/esm/utils/entity-storage.js +1 -1
  300. package/dist/esm/utils/eventFullBadge.js +1 -1
  301. package/dist/esm/utils/eventTime.js +1 -1
  302. package/dist/esm/utils/getContrastTextColor.js +1 -1
  303. package/dist/esm/utils/getLogoUrl.js +1 -1
  304. package/dist/esm/utils/getMostFrequent.js +1 -1
  305. package/dist/esm/utils/getRenderTargetFromRoot.js +1 -1
  306. package/dist/esm/utils/gps.js +1 -1
  307. package/dist/esm/utils/i18n.js +1 -1
  308. package/dist/esm/utils/imageloader.js +1 -1
  309. package/dist/esm/utils/is-iframe.js +1 -1
  310. package/dist/esm/utils/loadCustomCss.js +1 -1
  311. package/dist/esm/utils/loadIcons.js +1 -1
  312. package/dist/esm/utils/loadImagesInBatches.js +1 -1
  313. package/dist/esm/utils/mapEntity.js +1 -1
  314. package/dist/esm/utils/mobx.js +1 -1
  315. package/dist/esm/utils/preview-exhibitor.js +1 -1
  316. package/dist/esm/utils/responsiveClass.js +1 -1
  317. package/dist/esm/utils/sanitizeHtml.js +1 -1
  318. package/dist/esm/utils/sanitizeText.js +1 -1
  319. package/dist/esm/utils/strEqual.js +1 -1
  320. package/dist/esm/utils/toRadians.js +1 -1
  321. package/dist/esm/utils/urlEncoding.js +1 -1
  322. package/dist/esm/utils/useHeatmapData.js +1 -1
  323. package/dist/esm/utils/useHeatmapOverlay.js +1 -1
  324. package/dist/esm/utils/useOnClickOutside.js +1 -1
  325. package/dist/esm/utils/useRenderTarget.js +1 -1
  326. package/dist/esm/utils/useTimeout.js +1 -1
  327. package/dist/esm/utils/wayfinding.js +1 -1
  328. package/dist/stats.html +1 -1
  329. package/package.json +14 -4
  330. package/dist/esm/components/Map/_NEW_booth-by-xy.d.ts +0 -11
  331. package/dist/esm/components/Map/_NEW_booth-by-xy.js +0 -1
  332. package/dist/esm/components/Map/drawing/Drawer1.d.ts +0 -28
  333. package/dist/esm/components/Map/drawing/Drawer1.js +0 -1
  334. package/dist/esm/components/Map/drawing/Matrix.d.ts +0 -33
  335. package/dist/esm/components/Map/drawing/Matrix.js +0 -1
  336. package/dist/esm/components/Map/drawing/config/NumberObserver.d.ts +0 -10
  337. package/dist/esm/components/Map/drawing/config/NumberObserver.js +0 -1
  338. package/dist/esm/components/Map/drawing/config/animate.d.ts +0 -2
  339. package/dist/esm/components/Map/drawing/config/animate.js +0 -1
  340. package/dist/esm/components/Map/drawing/config/config-canvas.d.ts +0 -3
  341. package/dist/esm/components/Map/drawing/config/config-canvas.js +0 -1
  342. package/dist/esm/components/Map/drawing/config/config-debug-circles.d.ts +0 -3
  343. package/dist/esm/components/Map/drawing/config/config-debug-circles.js +0 -1
  344. package/dist/esm/components/Map/drawing/config/config-dim.d.ts +0 -3
  345. package/dist/esm/components/Map/drawing/config/config-dim.js +0 -1
  346. package/dist/esm/components/Map/drawing/config/config-gps.d.ts +0 -2
  347. package/dist/esm/components/Map/drawing/config/config-gps.js +0 -1
  348. package/dist/esm/components/Map/drawing/config/config-img.d.ts +0 -4
  349. package/dist/esm/components/Map/drawing/config/config-img.js +0 -1
  350. package/dist/esm/components/Map/drawing/config/config-matrix.d.ts +0 -6
  351. package/dist/esm/components/Map/drawing/config/config-matrix.js +0 -1
  352. package/dist/esm/components/Map/drawing/config/config-sizes.d.ts +0 -3
  353. package/dist/esm/components/Map/drawing/config/config-sizes.js +0 -1
  354. package/dist/esm/components/Map/drawing/painters/BgPainter.d.ts +0 -28
  355. package/dist/esm/components/Map/drawing/painters/BgPainter.js +0 -25
  356. package/dist/esm/components/Map/drawing/painters/ImagePainter.d.ts +0 -82
  357. package/dist/esm/components/Map/drawing/painters/ImagePainter.js +0 -74
  358. package/dist/esm/components/Map/drawing/painters/Painter.d.ts +0 -12
  359. package/dist/esm/components/Map/drawing/painters/Painter.js +0 -1
  360. package/dist/esm/components/Map/drawing/painters/RectPainter.d.ts +0 -123
  361. package/dist/esm/components/Map/drawing/painters/RectPainter.js +0 -86
  362. package/dist/esm/components/Map/drawing/painters/Sprite.d.ts +0 -14
  363. package/dist/esm/components/Map/drawing/painters/Sprite.js +0 -1
  364. package/dist/esm/components/Map/drawing/painters/TrianglePainter.d.ts +0 -53
  365. package/dist/esm/components/Map/drawing/painters/TrianglePainter.js +0 -29
  366. package/dist/esm/components/Map/drawing/painters/common-glsl.d.ts +0 -2
  367. package/dist/esm/components/Map/drawing/painters/common-glsl.js +0 -14
  368. package/dist/esm/components/Map/marker-by-xy.d.ts +0 -3
  369. package/dist/esm/components/Map/marker-by-xy.js +0 -1
  370. package/dist/esm/components/Map/utils.d.ts +0 -3
  371. package/dist/esm/components/Map/utils.js +0 -1
  372. package/dist/esm/components/Map/zoom-bound.d.ts +0 -6
  373. package/dist/esm/components/Map/zoom-bound.js +0 -1
  374. package/dist/esm/components/Map/zoom-inertia.d.ts +0 -3
  375. package/dist/esm/components/Map/zoom-inertia.js +0 -1
  376. package/dist/esm/components/Map1/Map.d.ts +0 -25
  377. package/dist/esm/components/Map1/Map.js +0 -1
  378. package/dist/esm/components/Map1/booth-by-xy.d.ts +0 -3
  379. package/dist/esm/components/Map1/booth-by-xy.js +0 -1
  380. package/dist/esm/components/Map1/drawing/config/BoothDrawerBase.d.ts +0 -8
  381. package/dist/esm/components/Map1/drawing/config/BoothDrawerBase.js +0 -1
  382. package/dist/esm/components/Map1/drawing/config/BoothShape.d.ts +0 -8
  383. package/dist/esm/components/Map1/drawing/config/BoothShape.js +0 -1
  384. package/dist/esm/components/Map1/drawing/config/Rect.d.ts +0 -7
  385. package/dist/esm/components/Map1/drawing/config/Rect.js +0 -1
  386. package/dist/esm/components/Map1/drawing/config/TextFitter.d.ts +0 -11
  387. package/dist/esm/components/Map1/drawing/config/TextFitter.js +0 -1
  388. package/dist/esm/components/Map1/drawing/config/canvases.d.ts +0 -8
  389. package/dist/esm/components/Map1/drawing/config/canvases.js +0 -1
  390. package/dist/esm/components/Map1/drawing/config/config-all.d.ts +0 -5
  391. package/dist/esm/components/Map1/drawing/config/config-all.js +0 -1
  392. package/dist/esm/components/Map1/drawing/config/config-bg.d.ts +0 -9
  393. package/dist/esm/components/Map1/drawing/config/config-bg.js +0 -1
  394. package/dist/esm/components/Map1/drawing/config/config-booth-bg.d.ts +0 -20
  395. package/dist/esm/components/Map1/drawing/config/config-booth-bg.js +0 -1
  396. package/dist/esm/components/Map1/drawing/config/config-booth-bookmark.d.ts +0 -20
  397. package/dist/esm/components/Map1/drawing/config/config-booth-bookmark.js +0 -1
  398. package/dist/esm/components/Map1/drawing/config/config-booth-border.d.ts +0 -12
  399. package/dist/esm/components/Map1/drawing/config/config-booth-border.js +0 -1
  400. package/dist/esm/components/Map1/drawing/config/config-booth-labels-special.d.ts +0 -18
  401. package/dist/esm/components/Map1/drawing/config/config-booth-labels-special.js +0 -2
  402. package/dist/esm/components/Map1/drawing/config/config-booth-labels.d.ts +0 -43
  403. package/dist/esm/components/Map1/drawing/config/config-booth-labels.js +0 -1
  404. package/dist/esm/components/Map1/drawing/config/config-booth-scaled.d.ts +0 -14
  405. package/dist/esm/components/Map1/drawing/config/config-booth-scaled.js +0 -1
  406. package/dist/esm/components/Map1/drawing/config/config-booths.d.ts +0 -6
  407. package/dist/esm/components/Map1/drawing/config/config-booths.js +0 -1
  408. package/dist/esm/components/Map1/drawing/config/config-load-layer.d.ts +0 -5
  409. package/dist/esm/components/Map1/drawing/config/config-load-layer.js +0 -1
  410. package/dist/esm/components/Map1/drawing/config/config-markers.d.ts +0 -6
  411. package/dist/esm/components/Map1/drawing/config/config-markers.js +0 -1
  412. package/dist/esm/components/Map1/drawing/config/config-wf.d.ts +0 -11
  413. package/dist/esm/components/Map1/drawing/config/config-wf.js +0 -1
  414. package/dist/esm/components/Map1/drawing/config/config-yah.d.ts +0 -2
  415. package/dist/esm/components/Map1/drawing/config/config-yah.js +0 -1
  416. package/dist/esm/components/Map1/drawing/config/engine-core/animation.d.ts +0 -3
  417. package/dist/esm/components/Map1/drawing/config/engine-core/animation.js +0 -1
  418. package/dist/esm/components/Map1/drawing/config/engine-core/canvases.d.ts +0 -5
  419. package/dist/esm/components/Map1/drawing/config/engine-core/canvases.js +0 -1
  420. package/dist/esm/components/Map1/drawing/config/engine-core/defs.d.ts +0 -16
  421. package/dist/esm/components/Map1/drawing/config/engine-core/defs.js +0 -3
  422. package/dist/esm/components/Map1/drawing/config/engine-core/fonts.d.ts +0 -9
  423. package/dist/esm/components/Map1/drawing/config/engine-core/fonts.js +0 -1
  424. package/dist/esm/components/Map1/drawing/config/engine-core/index.d.ts +0 -20
  425. package/dist/esm/components/Map1/drawing/config/engine-core/index.js +0 -1
  426. package/dist/esm/components/Map1/drawing/config/engine-core/renderer.d.ts +0 -5
  427. package/dist/esm/components/Map1/drawing/config/engine-core/renderer.js +0 -1
  428. package/dist/esm/components/Map1/drawing/config/engine-core/settings.d.ts +0 -4
  429. package/dist/esm/components/Map1/drawing/config/engine-core/settings.js +0 -1
  430. package/dist/esm/components/Map1/drawing/config/engine-core/types.d.ts +0 -39
  431. package/dist/esm/components/Map1/drawing/config/engine-core/types.js +0 -1
  432. package/dist/esm/components/Map1/drawing/config/engine-core/update-def.d.ts +0 -12
  433. package/dist/esm/components/Map1/drawing/config/engine-core/update-def.js +0 -1
  434. package/dist/esm/components/Map1/drawing/config/engine-core/utils/rotation.d.ts +0 -5
  435. package/dist/esm/components/Map1/drawing/config/engine-core/utils/rotation.js +0 -1
  436. package/dist/esm/components/Map1/drawing/config/loadBoothsImages.d.ts +0 -12
  437. package/dist/esm/components/Map1/drawing/config/loadBoothsImages.js +0 -1
  438. package/dist/esm/components/Map1/drawing/config/route-snapping/index.d.ts +0 -6
  439. package/dist/esm/components/Map1/drawing/config/route-snapping/index.js +0 -1
  440. package/dist/esm/components/Map1/drawing/config/route-snapping/snapPositionToRoute.d.ts +0 -20
  441. package/dist/esm/components/Map1/drawing/config/route-snapping/snapPositionToRoute.js +0 -1
  442. package/dist/esm/components/Map1/drawing/config/route-snapping/snapThreshold.d.ts +0 -23
  443. package/dist/esm/components/Map1/drawing/config/route-snapping/snapThreshold.js +0 -1
  444. package/dist/esm/components/Map1/drawing/config/route-snapping/splitRouteByPoint.d.ts +0 -6
  445. package/dist/esm/components/Map1/drawing/config/route-snapping/splitRouteByPoint.js +0 -1
  446. package/dist/esm/components/Map1/drawing/config/route-snapping/types.d.ts +0 -20
  447. package/dist/esm/components/Map1/drawing/config/route-snapping/types.js +0 -1
  448. package/dist/esm/components/Map1/traffic/UpdateQueue.d.ts +0 -13
  449. package/dist/esm/components/Map1/traffic/UpdateQueue.js +0 -1
  450. package/dist/esm/components/Map1/traffic/trafficLayers.d.ts +0 -17
  451. package/dist/esm/components/Map1/traffic/trafficLayers.js +0 -1
  452. package/dist/esm/components/Map1/traffic/useBuildRoute.d.ts +0 -10
  453. package/dist/esm/components/Map1/traffic/useBuildRoute.js +0 -7
  454. package/dist/esm/components/Map1/traffic/useManageTraffic.d.ts +0 -11
  455. package/dist/esm/components/Map1/traffic/useManageTraffic.js +0 -1
  456. package/dist/esm/components/Map1/visibleArea.d.ts +0 -15
  457. package/dist/esm/components/Map1/visibleArea.js +0 -1
  458. package/dist/esm/lib/floorplan.d.ts +0 -2
  459. package/dist/esm/lib/floorplan.js +0 -1
  460. package/dist/esm/tools/debug.d.ts +0 -5
  461. package/dist/esm/tools/debug.js +0 -1
  462. package/dist/esm/tools/pdf.d.ts +0 -2
  463. package/dist/esm/tools/pdf.js +0 -1
@@ -1,43 +0,0 @@
1
- import type { Booth } from "../../../../store/BoothStore";
2
- import type { ImageDef, Rect as RectShape, TextAlignment, TextDef } from "@expofp/renderer";
3
- import { BoothDrawerBaseWithoutPainter } from "./BoothDrawerBase";
4
- import type { Exhibitor } from "../../../../store/ExhibitorStore";
5
- import type { MapRenderer } from "../../Map";
6
- import type { FontSizeFactor, CustomFonts } from "./engine-core";
7
- type Prefix = {
8
- fontSize: number;
9
- name: string;
10
- short?: boolean;
11
- };
12
- export default function configBoothLabels(renderer: MapRenderer, booth: Booth): BoothLabelDrawer | undefined;
13
- export declare function getMinZoomFactorForDot(scaleFactors: number[]): number;
14
- export declare const isDirectionsMode: () => boolean;
15
- export declare function getFontUrlByWeight(weight: number, customFonts?: CustomFonts[], style?: string): string;
16
- export declare class BoothLabelDrawer extends BoothDrawerBaseWithoutPainter {
17
- protected readonly renderer: MapRenderer;
18
- protected readonly booth: Booth;
19
- protected canvasRect: RectShape;
20
- protected paddingScaled: [number, number];
21
- protected padding: number;
22
- protected minZoomDotVisible: number;
23
- protected maxZoomDotVisible: number;
24
- protected exh: Exhibitor[];
25
- protected shapeLabel: TextDef;
26
- protected shapeDot: ImageDef;
27
- protected fontSizes: [FontSizeFactor[], FontSizeFactor[]];
28
- protected lines: [string[], string[]];
29
- protected topLeftAlignment: TextAlignment;
30
- protected centerAlignment: TextAlignment;
31
- protected prefixes: Prefix[];
32
- protected fontUrls: [string, string];
33
- constructor(renderer: MapRenderer, booth: Booth);
34
- getShape(): (ImageDef | TextDef)[];
35
- getShapeDot(): void;
36
- private createLines;
37
- private calculateFontSizeFactors;
38
- private calcArea;
39
- private optimizationLevel;
40
- private measureText;
41
- }
42
- export {};
43
- //# sourceMappingURL=config-booth-labels.d.ts.map
@@ -1 +0,0 @@
1
- import{layersStore as E,uiState as p}from"../../../../store";import{RegularBooth as P,SpecialBooth as I}from"../../../../store/BoothStore";import S from"../../../../tools/settings";import V from"../../../../utils/is-mobile";import W from"../../../../utils/is-webview";import{Rect as L}from"./Rect";import m from"../../../../data";import{BoothDrawerBaseWithoutPainter as U}from"./BoothDrawerBase";import{getFont as _}from"./canvases";import{isArabicText as Z}from"../../../../utils/rtl";import{t as R}from"../../../../utils/i18n";import{reaction as M}from"mobx";import{createTextDef as G,createTextDefLines as X,updateLinesScale as Y,updateTextDefRotation as k,updateRenderer as $,getRotation as q,createShapeDot as j,DEFAULT_FONT_LIGHT_URL as J,DEFAULT_FONT_URL as C,getRollValue as K,updateRectRotation as Q}from"./engine-core";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 z=S.boothLabelColor;S.EXPO==="tqs2021"&&(z="#000");const b=V||W,v=r=>r.replace(" ","").substring(0,4).replace(/[0-9]/g,"3").replace(/[A-Z]/gi,"A"),H=document.createElement("canvas").getContext("2d");export default function oe(r,e){if(!(!(e instanceof P)||e.noLabels))return new BoothLabelDrawer(r,e)}export function getMinZoomFactorForDot(r){return Array.isArray(r)&&r.length>0?Math.max(...r.map(e=>e)):typeof r=="number"?r:-0}export const isDirectionsMode=()=>!!(p.selectedRoute?.from&&p.selectedRoute?.to);export function getFontUrlByWeight(r,e=[],t="normal"){return[...e,{weight:500,url:C,style:"normal"},{weight:300,url:J,style:"normal"}].find(a=>+a.weight===r&&a.style===t)?.url||C}const D="Details";export class BoothLabelDrawer extends U{renderer;booth;canvasRect;paddingScaled;padding;minZoomDotVisible;maxZoomDotVisible;exh;shapeLabel;shapeDot;fontSizes;lines;topLeftAlignment;centerAlignment;prefixes;fontUrls;constructor(e,t){if(super(t),this.renderer=e,this.booth=t,this.canvasRect=L.fromCoreRect(t.rect,t.rotate),this.paddingScaled=[4,4],this.padding=(t.borderWidth||S.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:D,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:D,short:!1}],t instanceof I)return;this.exh=m.hideExhibitors?[]:m.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(X(this.lines,this.booth.labelColor||z,0,this.fontUrls),L.fromCoreRect(this.booth.rect,this.booth.rotate),this.paddingScaled,{horizontal:"left",vertical:"top"}),this.getShapeDot();const a=i=>{const[,o]=this.lines,[,s]=this.fontSizes,h=this.exh.length?this.topLeftAlignment:o.length?i<s[s.length-1].scaleFactor?this.topLeftAlignment:this.centerAlignment:this.topLeftAlignment;return this.shapeLabel.lines=Y(this.shapeLabel.lines,i,this.fontSizes,this.booth.name),this.shapeLabel.alignment=h,this.shapeLabel.padding=[this.paddingScaled[0]*i+this.padding,this.paddingScaled[1]*i+this.padding],this.shapeLabel},l=i=>{const o=this.canvasRect,s=i>=this.minZoomDotVisible&&i<=this.maxZoomDotVisible,h=this.shapeDot.source.width*i,n=this.shapeDot.source.height*i;return this.shapeDot.bounds=new L({x:o.center.x-h/2,y:o.center.y-n/2},{x:o.center.x+h/2,y:o.center.y+n/2}),this.shapeDot.hidden=!s,this.shapeDot};M(()=>[this.booth.skipDim,p.selectedRoute,E.layersLoaded],()=>{if(!E.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,$(e,this.shapeLabel,this.shapeDot)}),M(()=>p.mapSettings,({roll:i})=>{K(i)&&e.rollHandlers?.push({fn:o=>{const s=q(o,this.shapeLabel.bounds.rotation),{size:h}=this.canvasRect;return s!==void 0&&(this.shapeLabel=k(this.shapeLabel,s),!this.shapeLabel.hidden&&!this.exh.length&&h.x!==h.y&&(this.canvasRect=Q(this.canvasRect,s),this.calculateFontSizeFactors(),a(e.scale),l(e.scale))),[this.shapeLabel,this.shapeDot]}})}),e.ptScaleHandlers.push({fn:a}),e.ptScaleHandlers.push({fn:l})}getShape(){return[this.shapeLabel,this.shapeDot]}getShapeDot(){this.shapeDot=j(this.canvasRect,this.booth.labelColor||z),this.maxZoomDotVisible=Math.min(this.canvasRect.size.width/this.shapeDot.source.width,this.canvasRect.size.height/this.shapeDot.source.height)}createLines(){const e=this.booth,t=[],a=[],l=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(m.onlyFeaturedExhibitors)t.push(...e.exhibitors.filter(s=>s.featured).map(s=>s.name));else if(o.length>0){t.push(...o.map(h=>h.name));const s=e.exhibitors.filter(h=>h.order===void 0);s.length>0&&t.push(R("and {{moreCount}} more",{moreCount:s.length}))}else e.exhibitors.length>l?t.push(`${e.exhibitors.length} ${m.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(R("On Hold")):e.reserved?a.push(R("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"&&!p.previewMode&&a.push(e.price)}p.rtl&&t.forEach((i,o)=>{(i.endsWith(".")||i.endsWith("!")||i.endsWith("?"))&&(t[o]=t[o]+"\u200F"),Z(i)&&(t[o]=t[o]+" ")}),this.lines=[t,a]}calculateFontSizeFactors(){let[e,t]=this.lines;const a=this.canvasRect,l=[],i=[],o=this.prefixes.slice(0,this.exh.length?this.prefixes.length:this.prefixes.length-1);let s=500,h=300;this.exh.length?(s=Number(getComputedStyle(document.body).getPropertyValue(te))||s,h=Number(getComputedStyle(document.body).getPropertyValue(se))||h):(s=Number(getComputedStyle(document.body).getPropertyValue(ee))||s,h=Number(getComputedStyle(document.body).getPropertyValue(ie))||h);for(const{fontSize:n,short:d}of o){const u=n*devicePixelRatio,T=.9*n*devicePixelRatio,f=_(u,s),y=_(T,h),F=m.hideExhibitorBoothNumber||d;let A,w,x,g;if(this.exh.length)d?t=[]:t=this.lines[1],x=Math.max(...e.map(c=>this.measureText(c,f).width),...t.map(c=>this.measureText(c,y).width)),A=Math.max(...e.map(c=>this.exh.length?this.measureText(v(c),f).width:this.measureText(v(c),f).width+3+3),...t.map(c=>this.measureText(v(c),y).width)),g=u*e.length+T*t.length+devicePixelRatio*(e.length+t.length)+3,w=F?g/e.length:null;else{const c=e[0].replace(/[0-9]/g,"3").replace(/[A-Z]/g,"A");x=this.measureText(c,f).width+3+3,g=u+4}const N=a.size.width/(A||x),B=a.size.height/(w||g),O=Math.min(N,B);l.push({scaleFactor:O,value:n}),!F&&i.push({scaleFactor:O,value:.9*n})}if(!this.exh.length){const n=l[l.length-1],d=this.prefixes.find(u=>u.name===D);l.push({scaleFactor:n.scaleFactor/1.8,value:d.fontSize}),i.push({scaleFactor:n.scaleFactor/1.8,value:d.fontSize*(b?1:.9)})}this.fontUrls=[getFontUrlByWeight(s,this.renderer.fontUrls),getFontUrlByWeight(h,this.renderer.fontUrls)],this.minZoomDotVisible=getMinZoomFactorForDot(l.map(n=>n.scaleFactor)),this.fontSizes=[l,i]}calcArea(e,t){return Math.floor(Math.max(0,e)*Math.max(0,t)/1e3)}optimizationLevel(){return Math.min(m.viewOptimizationLevel?m.viewOptimizationLevel:Math.floor(this.calcArea(this.canvasRect.size.width,this.canvasRect.size.height)/5e3),3)}measureText(e,t){return H.font=t,H.measureText(e)}}
@@ -1,14 +0,0 @@
1
- import type { Booth } from "../../../../store/BoothStore";
2
- import { BoothDrawerBaseWithoutPainter } from "./BoothDrawerBase";
3
- import type { PathInfo } from "../../../../data/Data";
4
- import type { MapRenderer } from "../../Map";
5
- import type { ImageDef, ImageSource } from "@expofp/renderer";
6
- export declare function canvasFromPath(paths: PathInfo[], scale: number | undefined, suffix: string): ImageSource;
7
- export default function configScaledBooth(renderer: MapRenderer, booth: Booth): ScaledBoothDrawer;
8
- declare class ScaledBoothDrawer extends BoothDrawerBaseWithoutPainter {
9
- protected shape: ImageDef;
10
- constructor(renderer: MapRenderer, booth: Booth);
11
- getShape(): ImageDef[];
12
- }
13
- export {};
14
- //# sourceMappingURL=config-booth-scaled.d.ts.map
@@ -1 +0,0 @@
1
- import p,{layersStore as c}from"../../../../store";import{LayersMode as f}from"../../../../store/LayerStore";import{BoothDrawerBaseWithoutPainter as d}from"./BoothDrawerBase";import{getTrianglesFromFpPaths as u}from"../../../../data/svg";import{reaction as E}from"mobx";import{Rect as g}from"./Rect";import{createImageDef as b,updateRenderer as y}from"./engine-core";const l=document.createElement("canvas"),o=l.getContext("2d");export function canvasFromPath(n,s=.5,t){var e=[Number.MAX_VALUE,Number.MAX_VALUE,Number.MIN_VALUE,Number.MIN_VALUE];n.forEach(m=>{m.triangles=u(m.index,t),m.triangles.forEach(a=>{a.forEach(r=>{r[0]<e[0]?e[0]=r[0]:r[0]>e[2]&&(e[2]=r[0]),r[1]<e[1]?e[1]=r[1]:r[1]>e[3]&&(e[3]=r[1])})})});const i=e[0],h=e[1];return o.scale(s,s),n.forEach(m=>{o.beginPath(),o.fillStyle=m.color,m.triangles.forEach(a=>{o.moveTo(a[0][0]-i,a[0][1]-h),o.lineTo(a[1][0]-i,a[1][1]-h),o.lineTo(a[2][0]-i,a[2][1]-h),o.lineTo(a[0][0]-i,a[0][1]-h)}),o.fill()}),l}export default function L(n,s){return new N(n,s)}class N extends d{shape;constructor(s,t){super(t);const e=g.fromCoreRect(t.rect,t.rotate),i=canvasFromPath(t.paths,.5,p.layerStore.mode!==f.Default?t.layer.name:"");this.shape=b(i,e,{hidden:!0,dim:!0}),E(()=>[this.booth.skipDim,c.layersLoaded],()=>{c.layersLoaded&&(this.shape.dim=this.booth.skipDim?!1:void 0,y(s,this.shape))})}getShape(){return[this.shape]}}
@@ -1,6 +0,0 @@
1
- import type { Booth } from "../../../../store/BoothStore";
2
- import type { LayerDef } from "@expofp/renderer";
3
- import type { MapRenderer } from "../../Map";
4
- export declare const BOOTHS_CHUNK_SIZE = 350;
5
- export default function configBooths(renderer: MapRenderer, layerID: string, booths: Booth[]): LayerDef;
6
- //# sourceMappingURL=config-booths.d.ts.map
@@ -1 +0,0 @@
1
- import W from"./config-booth-bg";import{Rect as u}from"./Rect";import _ from"./config-booth-labels";import{SEPARATOR as r}from"../../../../constants";import v from"./config-booth-labels-special";import F from"./config-booth-border";import K from"./config-booth-bookmark";import P from"../../../../tools/settings";import x,{boothStore as U,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,g,L){return(c=>{const o=g,$=[],l=[],p=[],b=[],y=[],f=G(o);for(const e of c){const m=W(a,e)?.getShape();m&&$.push(...m);const s=_(a,e)?.getShape();s&&l.push(...s);const i=v(a,e)?.getShape();if(i&&p.push(...i),!P.borderless){const t=F(a,e)?.getShape();t&&b.push(t)}const h=K(a,e)?.getShape();h&&y.push(h)}const k=l.filter(e=>e.lines),w=p.filter(e=>e.lines),H=l.filter(e=>e.source),O=p.filter(e=>e.source);if(!Z.hideLogoInBooth){const e=J(c);a.layerImagesHandlers.push({fn:async()=>{const m=await q(e,BOOTHS_CHUNK_SIZE),s=[];for(const[i,h]of m){const t=x.boothStore.boothById.get(i);if(!t)continue;const{bounds:{x:B,y:I,height:T,angle:A,width:C},htmlImage:D}=z(t,h),R=Q(D,new u({x:B,y:I},{x:B+C,y:I+T},M(A))),E=u.fromCoreRect(t.rect,t.rotate),N=u.inflateRect(E,t.borderWidth||U.borderWidth);t.shapes.push(R),s.push({shape:R,parentRect:N})}return{name:f,children:s}},name:f})}let d=[];c.length&&(d=[{name:`${o}${r}boothBackground`,children:$,interactive:!0},{name:`${o}${r}labels`,children:k},{name:`${o}${r}specialLabels`,children:w},{name:`${o}${r}bots`,children:H},{name:`${o}${r}specialDots`,children:O},{name:f,children:[]},{name:`${o}${r}boothsBookmark`,children:y},{name:`${o}${r}boothBorder`,children:b}]);const{defaultFrom:n}=x.routeStore,S=(g+":").split(":")[0];if(n?.layer===null||n?.layer?.name===S||n?.layer?.childLayers.find(e=>e.name===S)){const e=j(a,n);e&&d.push({name:`${o}${r}yahBooth`,children:e.getShape()})}return{name:o,children:d}})(L)}
@@ -1,5 +0,0 @@
1
- import type { Layer } from "../../../../store/LayerStore";
2
- import type { LayerDef } from "@expofp/renderer";
3
- import type { MapRenderer } from "../../Map";
4
- export default function loadLayer(layer: Layer, renderer?: MapRenderer): Promise<LayerDef>;
5
- //# sourceMappingURL=config-load-layer.d.ts.map
@@ -1 +0,0 @@
1
- import m,{boothStore as x}from"../../../../store";import N from"../../../../store/init/init-booths";import{LayersMode as O}from"../../../../store/LayerStore";import{loadJs as T}from"../../../../tools/loaders";import H,{BOOTHS_CHUNK_SIZE as M}from"./config-booths";import{chunkArray as v}from"../../../../utils";import{BOOTHS_PAINTER_MARKER as D,SEPARATOR as l}from"../../../../constants";import{Rect as C}from"@expofp/renderer";import G,{BG_LAYER_NAME as $,FG_LAYER_NAME as w}from"./config-bg";import{getChildLayers as K}from"../../../../store/init/init-layers";import{createImageDef as U,createLayerDef as Y}from"./engine-core";import{getImageLayerName as j,getLayerIcons as k}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(o){return o.childLayers.length?o.childLayers:K(o,o.basePriority,15).layers}function _(o,r,h){return new Promise(async c=>{let t=[];const s=N(m,r),n=await G(r),i=[],f=v(s,M);x.booths.filter(e=>e.rect&&(!e.layer||e.layer===r||e.layer.childLayers.includes(r))&&e.exhibitors.find(a=>!!a.logoInBooth&&!!a.logo)&&!m.uiState.hideLogoInBooth).forEach(e=>e.noLabels=!0),s.length&&f.forEach((e,a)=>{i.push(H(o,`${r.name}${l}${D}${l}${a}`,e))}),r.loaded=!0;const p=n.children.find(e=>e.name===$),g=n.children.find(e=>e.name===w),d=j(r.name),y=k(r);y.length&&o.layerImagesHandlers.push({fn:async()=>{const e=await J(y),a=[];for(const E of e.filter(Boolean)){const{bounds:{x:u,y:L,height:I,angle:R,width:b},htmlImage:A}=E,S=new C({x:u,y:L},{x:u+b,y:L+I},Z(R)),B=U(A,S);a.push({shape:B})}return{name:d,children:a}},name:d}),p&&t.push({...p,name:`${n.name}${l}${$}`}),i.length&&t.push(...i),g&&t.push({...g,name:`${n.name}${l}${w}`}),y.length&&t.push({name:d,children:[]});const P=r.childLayers.sort((e,a)=>e.basePriority-a.basePriority).map(async e=>_(o,e,!0));Promise.all(P).then(e=>{const a=e.flat();a.length&&t.push(...a),c(Y(r.name,t,{hidden:!h}))})})}export default async function z(o,r=F()){return o.configured?Promise.resolve({name:o.name,children:o.children}):new Promise(async(h,c)=>{if(m.layerStore.mode!==O.Default&&!window[`__fpPaths${o.name}`]&&!o.rootParent)try{await T(`${window.__dataUrlBase}fp.svg.${o.name}.js`)}catch{return c()}const t=q(o);t.length&&(o.childLayers=t);const{layers:s}=m.layerStore;m.layerStore.layers=[...s,...t.filter(i=>!s.some(f=>f.name===i.name))];const n=await _(r,o,o.visible);h(n)})}
@@ -1,6 +0,0 @@
1
- import type { SceneDef } from "@expofp/renderer";
2
- import type { MapRenderer } from "../../Map";
3
- export declare const MARKER_LAYER_NAME = "markers";
4
- export declare function configMarkers(renderer: MapRenderer, scene: SceneDef): () => void;
5
- export declare function getMarkerFromClick(x: number, y: number, scale: number): import("../../../../store/RouteStore").Marker | null;
6
- //# sourceMappingURL=config-markers.d.ts.map
@@ -1 +0,0 @@
1
- import h,{layersStore as M}from"../../../../store";import{reaction as $}from"mobx";import{createImageCanvas as I}from"./canvases";import{createImageDef as L,updateRenderer as x,getBounds as E}from"./engine-core";import{toRadians as Y}from"../../../../utils/toRadians";const P="_selected";export const MARKER_LAYER_NAME="markers";export function configMarkers(o,k){const m=[],i=new Map,s=new Map;let n=[];const p=k.rootLayer.children.find(e=>e.name===MARKER_LAYER_NAME);async function f(e){const r=[];e.forEach(c=>{const{name:l,content:t,width:a,height:d,scale:u}=c;if(i.has(l))return;const g=new Image,H=new Promise((w,y)=>{g.onload=()=>{i.set(l,{img:g,width:a,height:d,scale:u}),w()},g.onerror=v=>{y(v)}});r.push(H),g.src=t,g.crossOrigin="anonymous"}),await Promise.all(r)}const D=e=>`marker-ptScaleHandlers-${e.id}`,R=e=>`marker-rollHandlers-${e.id}`,z=(e,r)=>{o.ptScaleHandlers.push({fn:c=>{const{center:l,rotation:t}=e.bounds,{width:a,height:d}=e.source;return e.bounds=E(l.x,l.y,a,d,c,t),e},name:r})},A=(e,r)=>{o.rollHandlers.push({fn:c=>(e.bounds.rotation=c,e),name:r})};function C(){const e=h.routeStore.markersData.markers;if(!e.length)return;n=[];const r=h.renderer?.controls.getCameraState(),c=r?.ptScale||1,l=Y(r?.roll)||0;e.forEach(t=>{const a=i.get(t.icon);if(!a)return;const d=a.scale||window.devicePixelRatio,u=t.icon;if(!s.has(u)){const b=I(a.img,a.width,a.height,d);s.set(u,b)}const g=s.get(u),H=i.get(t.selectedIcon),w=t.selectedIcon;if(!s.has(w)){const b=I(a.img,H.width,H.height,d);s.set(w,b)}const y=s.get(w),v=M.findLayer(t.z)?.visible??!0,F=E(t.x,t.y,g.width,g.height,c,l),K=E(t.x,t.y,y.width,y.height,c,l);let S;switch(t.position){case"lefttop":S=[0,0];break;case"centertop":S=[.5,0];break;case"centerbottom":S=[.5,1];break;default:S=[.5,.5]}const N={...L(g,F,{hidden:!v,origin:S}),id:t.id,scale:d},O={...L(y,K,{hidden:!(v&&t.active),origin:S}),id:`${t.id}${P}`,scale:d};n.push(N,O)}),p.children=n,n.forEach(t=>{const a=D(t),d=R(t);o.ptScaleHandlers=o.ptScaleHandlers.filter(u=>u.name!==a),o.rollHandlers=o.rollHandlers.filter(u=>u.name!==d),z(t,a),A(t,d)})}function _(){n.forEach(e=>{o.ptScaleHandlers=o.ptScaleHandlers.filter(r=>r.name!==D(e)),o.rollHandlers=o.rollHandlers.filter(r=>r.name!==R(e))}),p.children=[],n=[]}function B(){const e=h.routeStore.markersData.markers;e.length&&e.forEach(r=>{const c=n.find(a=>a.id===r.id),l=n.find(a=>a.id===`${r.id}${P}`);if(!c)return;const t=M.findLayer(r.z)?.visible??!0;r.active?(c.hidden=!0,l.hidden=!(t&&r.active)):(c.hidden=!t,l.hidden=!0)})}return m.push($(()=>[h.routeStore.selectedMarkers,h.layerStore.visible],()=>{if(!h.routeStore.markersData.markers.length){_(),x(o,p);return}B(),x(o,...n)})),m.push($(()=>h.routeStore.markersData.markers,()=>{f(h.routeStore.markersData.icons).then(()=>{C(),x(o,p)})})),function(){m.forEach(e=>e()),m.length=0}}export function getMarkerFromClick(o,k,m){for(const i of h.routeStore.markersData.markers){const s=h.routeStore.markersData.icons.find(f=>f.name===i.icon);if(!s)continue;const n=s.width*m*devicePixelRatio,p=s.height*m*devicePixelRatio;if(T(o,k,i.x,i.y,n,p)){const f=h.layerStore.findLayer(i.z);if(!f||f&&f.visible)return i}}return null}function T(o,k,m,i,s,n){const p=o>=m-s&&o<=m+s,f=k>=i-n&&k<=i+n;return p&&f}
@@ -1,11 +0,0 @@
1
- import { Point, Line } from "simple-geometry";
2
- import type { SceneDef } from "@expofp/renderer";
3
- import type { MapRenderer } from "../../Map";
4
- export declare const WF_TRAIL_LAYER_NAME = "wf-trail-points";
5
- export declare const WF_POINTS_LAYER_NAME = "wf-points";
6
- export declare const WF_CURRENT_POSITION_NAME = "wf-current-position";
7
- export declare const WF_LINES_LAYER_NAME = "wf-lines";
8
- export declare const WF_LINES_ANIMATED_LAYER_NAME = "wf-lines-animated";
9
- export default function configWf(renderer: MapRenderer, scene: SceneDef): () => void;
10
- export declare function splitPolyLine(lines: Line[], interval: number): Point[];
11
- //# sourceMappingURL=config-wf.d.ts.map
@@ -1 +0,0 @@
1
- import de from"color";import{observable as ue,reaction as $}from"mobx";import{lineLength as Le}from"simple-geometry";import Ye from"../../../../core/Rect";import u,{layersStore as Pe,uiState as f}from"../../../../store";import{LayersMode as _e}from"../../../../store/LayerStore";import{getGraphLines as ze}from"../../../../utils/wayfinding";import{strEqual as M}from"../../../../utils/strEqual";import{createArrowCurrentCanvas as ke,createCurrentCanvas as ge,createImageCanvas as G,createTargetCanvas as Oe,createYahCanvas as We}from"./canvases";import{toRadians as Ae}from"../../../../utils/toRadians";import{areLayersEnabled as Te}from"../../../../utils/areLayersEnabled";import{createImageDef as j,createLineDef as xe,updateRenderer as J,createCircleCanvas as Xe,getBounds as S,getRotation as $e}from"./engine-core";import{animateLineSegments as Ge}from"./engine-core/animation";import{getSnapThresholdSvg as je,SNAP_THRESHOLD_METERS as Je,splitRouteByPoint as Ke,RoutePoint as Re,snapPositionToRoute as Ue}from"./route-snapping";import{fpGeo as Fe}from"../../../Mapbox/utils/fpGeo";const w=devicePixelRatio;let k=[],ie=null,A=[],he=de("#00A2FF"),Ze=de("#FF9F06"),Ce="#A4CCE2",Qe="#0794EA";const re=34;let q,B,Y,z,K,Se,Me,He,ae,E,L,H,N,O,we=[];function Ve(){k=[];const e=u.routeStore.currentRouteLayer?.name;ie=ot();const o=ie&&(Te()?M(e,ie.destination?.layer):!0);if(ie){const d=ie?.routePoint;d&&M(e,d.layer)&&(k=it(d,k))}let n=[],i=[];for(let d=0;d<A.length;d++){let x=A[d],y=u.layerStore.mode==_e.Default?!0:u.layerStore.layers.find(s=>s.name==e&&e===x.p0.layer)?.visible||!1;!x.virtual&&y&&n.push(x),(x.virtual||!y||d===A.length-1)&&n.length&&(i=n.map(({p0:s,p1:g})=>(k.push({x:s.x,y:s.y},{x:g.x,y:g.y}),{p0:s,p1:g})))}k.length||(L.hidden=!0,E.hidden=!0);let c=1e6,r=1e6,p=0,m=0;k.forEach(d=>{d.x<c&&(c=d.x),d.y<r&&(r=d.y),d.x>p&&(p=d.x),d.y>m&&(m=d.y)});const h=Ye.fromX1y1x2y2(c,r,p,m);return{rect:k.length&&(h.w||h.h)?h.withPadding(h.w,h.h):null,lines:i,addTrailPoints:o}}function et(e,o){if(!e.length)return e;const n=e[0].p0,i=e[e.length-1].p1,c=(n.x-o.x)**2+(n.y-o.y)**2;return(i.x-o.x)**2+(i.y-o.y)**2<c?e.slice().reverse().map(r=>({...r,p0:r.p1,p1:r.p0})):e}export const WF_TRAIL_LAYER_NAME="wf-trail-points",WF_POINTS_LAYER_NAME="wf-points",WF_CURRENT_POSITION_NAME="wf-current-position",WF_LINES_LAYER_NAME="wf-lines",WF_LINES_ANIMATED_LAYER_NAME="wf-lines-animated";export default function tt(e,o){let n=null;const i=ue.box(!1),c=[];let r=null,p=ue.box([]),m=ue.box([],{deep:!1}),h=ue.box([],{deep:!1});const d=o.rootLayer.children,x=d.find(t=>t.name===WF_POINTS_LAYER_NAME),y=d.find(t=>t.name===WF_CURRENT_POSITION_NAME),s=d.find(t=>t.name===WF_LINES_LAYER_NAME),g=d.find(t=>t.name===WF_TRAIL_LAYER_NAME),R=d.find(t=>t.name===WF_LINES_ANIMATED_LAYER_NAME),P=Fe?.properties?.config?.snapThreshold||Je,T=je({thresholdInMeters:P,gpsConfig:Fe?.properties?.config,scale:e.scale});let U=[];const I=u.fp.icons.get("destination");I?(I.id="destination",B=G(I,re,re,w)):B=Oe(w,Ze.hex()),L=j(B,S(0,0,B.width,B.height),{hidden:!0});const _=u.fp.icons.get("departure");_?(_.id="departure",q=G(_,re,re,w)):q=ge(w,he.hex()),E=j(q,S(0,0,q.width,q.height),{hidden:!0}),Y=ge(w,he.hex()),Y.id="current-location",H=j(Y,S(0,0,Y.width,Y.height),{hidden:!0,origin:[.5,.5]});const W=u.fp.icons.get("transition");W?(W.id="transition",Se=G(W,34,34,w)):Se=ge(w,he.hex());const X=u.fp.icons.get("transition_up");X&&(X.id="transition_up",Me=G(X,56,34,w));const Z=u.fp.icons.get("transition_down");Z&&(Z.id="transition_down",He=G(Z,56,34,w));const Q=u.fp.icons.get("direction");Q?(Q.id="direction",z=G(Q,re,re,w)):z=ke(w,he.hex()),N=j(z,S(0,0,z.width,z.height),{hidden:!0});const oe=u.fp.icons.get("yah");oe?K=G(oe,pe(64,32),pe(90,32),w):K=We(w,"#ff4343"),K.id="current-location-2",O=j(K,S(0,0,K.width,K.height),{hidden:!0,origin:[.5,1]}),ae=Xe(4,de("#b5b7bc").hex());function se(t=null){const a=u.layerStore.visible.map(l=>l.name);if(k=[],p.set([]),t||(A=[]),a.length&&f.selectedRoute?.from?.rect&&f.selectedRoute?.to?.rect){let l=f.selectedRoute.from,b=f.selectedRoute.to;if(!A.length&&!t&&(A=ze(l,b,u.routeStore.onlyAccessible,f.selectedRoute.waypoints)),!A.length){if(u.routeStore.updateRoutePoints(A),l.name!==b.name)throw new Error(`Route not found. From: ${l.name} to: ${b.name}`);return}const{rect:F,lines:C,addTrailPoints:D}=Ve();C.length&&(nt(e.scale),rt(e.scale,m),Ne(e,g,!D)),U=C,me(),F&&(f.moveToRect=F)}else E.hidden=!0,L.hidden=!0;u.routeStore.updateRoutePoints(A.filter(l=>!l.virtual)),p.get()||(E.hidden=!0,L.hidden=!0)}function V(t){const a=u.routeStore.currentPosition,l=a?.angle?Ae(a.angle):null,b=u.routeStore.currentRouteLayer?.name,F=A.filter(v=>u.layerStore.mode==_e.Default?!0:u.layerStore.layers.find(Be=>Be.name==b&&b===v.p0.layer)?.visible).filter(v=>!v.virtual);if(f.kioskData&&f.selectedRoute?.from){const v=u.routeStore.currentRouteLayer;E.hidden=f.selectedRoute?.from?.entity?.type==="route-cut-in"&&v?.name===f.selectedRoute?.from?.layer?.name,L.hidden=f.selectedRoute?.to?.entity?.type==="route-cut-in"&&v?.name===f.selectedRoute?.to?.layer?.name}if(a){const v=Pe.findLayer(a.z)?.visible??!0;u.routeStore.iconType===0||f.selectedRoute?.from&&f.selectedRoute?.to?(O.hidden=!0,H.hidden=!v,H.dim=!v,H.bounds=S(a.x,a.y,Y.width,Y.height,e.scale),l!=null?(H.hidden=!0,N.hidden=!v,N.dim=!v,N.bounds=S(a.x,a.y,z.width,z.height,e.scale,l)):N.hidden=!0):(H.hidden=!0,N.hidden=!0,O.dim=!v,O.hidden=!v,O.bounds=S(a.x,a.y,K.width,K.height,e.scale))}else H.hidden=!0,O.hidden=!0,N.hidden=!0,i.set(!1);if(!a||t||!k.length){J(e,N,H,O);return}const C=f.selectedRoute?.to,D=f.selectedRoute?.from,te=new Re(C?.layer?.name,C?.rect.cx,C?.rect.cy),ye=new Re(D?.layer?.name,D?.rect.cx,D?.rect.cy),ne=Ue(a,F,{snapThreshold:T,toPoint:te,fromPoint:ye,fromRect:D.rect,toRect:C.rect}),le=ne.snapped?ne.snappedPoint:a;i.set(ne.snapped),ne.snapped&&me(ne),u.routeStore.updateRoutePoints(A.filter(v=>!v.virtual),ne.snapped?ne.distanceFromStart:void 0),N.bounds=S(le.x,le.y,z.width,z.height,e.scale,l),H.bounds=S(le.x,le.y,Y.width,Y.height,e.scale,l),J(e,N,H,O)}function fe(){const t=[N,H,O];y.children=t,t.forEach(a=>ce(a)),J(e,y)}function ee(t=!1){const a=[E,L,...m.get(),...h.get()];t&&(ve(!0),g.children=[],a.forEach(l=>{l.source.id.includes("kiosk")||(l.hidden=!0)})),x.children=a,J(e,x,g)}function me(t){if(!U.length){ve(!0),p.set([]),s.children=[];return}const a=f.selectedRoute?.from,l=et(U,new Re(a?.layer?.name,a?.rect.cx,a?.rect.cy));if(!t?.snapped){const te=l.map(ye=>xe(ye,Ce));Ee([],te);return}const{passed:b,remaining:F}=Ke(l,t.snappedPoint);F.length&&(F[0]={...F[0],p0:t.snappedPoint});const C=b.map(te=>xe(te,"#B5B7BC")),D=F.map(te=>xe(te,Ce));Ee(C,D)}const ce=(t,a)=>{e.ptScaleHandlers.push({fn:l=>(t.hidden||(t.bounds=S(t.bounds.center.x,t.bounds.center.y,t.source.width,t.source.height,l,t.bounds.rotation)),t),name:a})},be=(t,a)=>{e.rollHandlers.push({fn:l=>{const b=$e(l,t.bounds.rotation);return b!==void 0&&(t.bounds.rotation=t.bounds.rotation+b),t},name:a})};function ve(t){n&&(n(),n=null),R.children=[],t&&(s.children=[]),J(e,R,s)}function Ee(t=[],a=[]){n&&(n(),n=null),s.children=[...t,...a];const l=a.map(b=>({...b,color:Qe}));n=Ge(l,(b,F,C)=>{if(C)R.children=[];else{const D=l.slice(0,F);R.children=[...D,b]}J(e,R)},()=>e.scale),J(e,s)}c.push($(()=>i.get(),t=>{t||me()})),c.push($(()=>[u.layerStore.layersLoaded],()=>{se(),V(),ee()}));const De=$(()=>[u.routeStore.currentRouteLayer,f.getRouteNextFloor],()=>{u.layerStore.layersLoaded&&(r!==null&&clearTimeout(r),r=setTimeout(()=>{se(u.routeStore.currentRouteLayer),V(),ee(),r=null},0))});c.push(()=>{r!==null&&(clearTimeout(r),r=null),De()}),c.push($(()=>[f.selectedRoute,u.routeStore.onlyAccessible],()=>{se(),V(),ee(!f.selectedRoute)})),c.push($(()=>u.routeStore.currentPosition,()=>V())),c.push($(()=>m.get(),t=>{const a="transitionPoints";e.ptScaleHandlers=e.ptScaleHandlers.filter(l=>l.name!==a),t.length&&t.forEach(l=>{ce(l,a),be(l,a)})})),c.push($(()=>[h.get()],()=>{const t=h.get(),a="kioskArrows";e.ptScaleHandlers=e.ptScaleHandlers.filter(l=>l.name!==a),t.length&&t.forEach(l=>ce(l,a))})),c.push($(()=>[f.kioskData,Pe.floors.find(t=>t.active),f.selectedRoute],([t,a])=>{h.set([]);const l=Te()?t?.z===a?.name:!0;t&&l&&st(t,{skipdim:!0,visible:!0,pixelRatio:w},e.scale,h),ee()})),[E,L].forEach(t=>{ce(t),be(t)}),ee(),V(),fe();function qe(){n&&(n(),n=null),c.forEach(t=>t()),c.length=0}return qe}function nt(e){const o=u.routeStore.currentRouteLayer?.name,n=k;let i=f.selectedRoute?.from,c=f.selectedRoute?.to;const r=f.selectedRoute?.waypoints;if(i?.entity.type==="route-cut-in"&&(i=null),c?.entity.type==="route-cut-in"&&(c=null),!n.length)return;const p=[{key:"sourceLocation",rect:i?.rect,index:void 0},{key:"destinationLocation",rect:c?.rect,index:void 0}];r&&p.push(...r?.map((y,s)=>({key:`waypoint-${y.externalId}`,index:s,rect:y.rect})));const m=o?M(o,i?.layer?.name):!0,h=o?M(o,c?.layer?.name):!0;let d=!1,x=!1;n.forEach(({x:y,y:s})=>{for(const{key:g,rect:R,index:P}of p)if(R?.containsPoint(y,s)){g==="sourceLocation"&&(E.bounds=S(y,s,q.width,q.height,e),E.hidden=!m,E.dim=!m,d=m),g==="destinationLocation"&&(L.bounds=S(y,s,B.width,B.height,e),L.hidden=!h,L.dim=!h,x=h);break}}),d||(E.bounds=S(n[n.length-1].x,n[n.length-1].y,q.width,q.height,e),E.hidden=!1,E.dim=!1),x||(L.bounds=S(n[0].x,n[0].y,B.width,B.height,e),L.hidden=!h,L.dim=!h)}function ot(){const{from:e,to:o}=u.uiState.selectedRoute||{},n="route-cut-in";return e&&e?.entity.type===n||o&&o?.entity.type===n?u.routeStore.defaultFrom:null}function it(e,o){if(!e||!o.length)return o;const n=o.reduce((i,c,r)=>Le(e,c)<Le(e,o[i])?r:i,0);return n<=o.length/2?o.slice(n):o.slice(0,n)}function rt(e,o){const n=u.routeStore.currentRouteLayer?.name,i=f.getRouteNextFloor,c=u.layerStore.floors.map(s=>s.name),r=(s,g)=>s.findIndex(R=>M(R,g)),p=r(c,n),m=r(c,i),h=m!==-1,d=A.filter(s=>n?s.virtual&&(M(s.p0.layer,n)||M(s.p1.layer,n))&&(M(s.p0.layer,i)||M(s.p1.layer,i)):s.virtual).flatMap(s=>[s.p0,s.p1]),x=[];let y;d.forEach(s=>{if(i&&!M(s.layer,i)&&(h&&m>p&&u.fp.icons.get("transition_up")?y=He:h&&m<p&&u.fp.icons.get("transition_down")?y=Me:y=Se),y){const g=M(n,s.layer),R=S(s.x,s.y,y.width,y.height,e),P=j(y,R,{hidden:!g,dim:!1});x.push(P)}}),o.set(x)}function st(e,o,n=1,i){if(!e)return;const c=u.fp.icons.get("kiosk");c.id="kiosk";let r;if(c){const m=e?.iconSizePercent?e.iconSizePercent/100:1,h=55;r=G(c,pe(199*m,h),pe(152*m,h),w)}else r=ke(w,de("#ee4422").hex());const p=j(r,S(e.x,e.y,r.width,r.height,n,Ae(e.heading||0)),{hidden:!o.visible,dim:!o.skipdim});i.set([...i.get(),p])}function pe(e,o){return e*(1-o/100)}function Ne(e,o,n=!1){e.ptScaleHandlers=e.ptScaleHandlers.filter(P=>P.name!==o.name);let i=k.length-1;if(f.selectedRoute?.to?.entity.type==="route-cut-in"&&(i=0),n){we=[],o.children=[],J(e,o);return}const c=e.scale,r=k[i],p=ie?.destination;if(!r||!p)return;const m=ae.width,h=splitPolyLine([{p0:r,p1:p}],m*2*c);if(h.length<2)return;const d=p.x-r.x,x=p.y-r.y,y=Math.hypot(d,x),s={x:(r.x+p.x)/2,y:(r.y+p.y)/2-y*.2},g=[r,s,p],R=h.map((P,T,U)=>{const I=(T+1)/(U.length+1),_=Ie(g,I);return j(ae,S(_.x,_.y,ae.width,ae.height,c),{hidden:!1,dim:!1})})||[];return o.children=R,e.ptScaleHandlers.push({fn:P=>{e.scale=P;const T=Ne(e,o)||[];return o.children=T,we=T,o},name:o.name}),we=R,R}function Ie(e,o){if(e.length===1)return e[0];const n=[];for(let i=0;i<e.length-1;i++){const c=(1-o)*e[i].x+o*e[i+1].x,r=(1-o)*e[i].y+o*e[i+1].y;n.push({x:c,y:r})}return Ie(n,o)}export function splitPolyLine(e,o){if(e.length===0)return[];const n=[];let i=0;for(let m=0;m<e.length;m++){const h=e[m],d=h.p0,x=h.p1,y=x.x-d.x,s=x.y-d.y,g=Math.sqrt(y*y+s*s);if(g===0)continue;const R=y/g,P=s/g;let T=0;for(;i+T*o<=g;){const _=i+T*o,W=d.x+R*_,X=d.y+P*_;n.push({x:W,y:X}),T++}const U=i+(T-1)*o;let I=g-U;if(I=Math.max(I,0),m<e.length-1){const _=e[m+1],W=_.p0,X=_.p1,Z=X.x-W.x,Q=X.y-W.y,oe=Math.sqrt(Z*Z+Q*Q);if(oe===0)i=0;else{const se=Z/oe,V=Q/oe,fe=R*se+P*V,ee=I*fe;i=o-ee}}else i=o-I;i=Math.max(i,0)}const c=e[0].p0;(n.length===0||!n[0]||n[0].x!==c.x||n[0].y!==c.y)&&n.unshift(c);const r=e[e.length-1].p1,p=n[n.length-1];return(n.length===0||!p||p.x!==r.x||p.y!==r.y)&&n.push(r),n}
@@ -1,2 +0,0 @@
1
- export default function configYah(): () => void;
2
- //# sourceMappingURL=config-yah.d.ts.map
@@ -1 +0,0 @@
1
- import{Point as s}from"simple-geometry";import r from"../../../../store";import{getYah as h}from"../../../../utils/yah";export default function a(){let t=h();const e=window.location.search.length>1?decodeURIComponent(window.location.search.substring(1)):"";if(!t&&e.startsWith("route")){const o=e.split(":").find(n=>n.startsWith("yah_"));o&&(t=o)}const i=Array.isArray(t)||!1;return r.routeStore.defaultFrom=i?r.boothStore.getBoothAtPoint(new s(t[0],t[1])):r.boothStore.booths.find(o=>o.name===t),r.boothStore.booths.filter(o=>o.yah).forEach(o=>r.boothStore.booths.splice(r.boothStore.booths.indexOf(o),1)),()=>{}}
@@ -1,3 +0,0 @@
1
- import type { LineDef } from "@expofp/renderer";
2
- export declare function animateLineSegments(lineSegments: LineDef[], callback: (segment: LineDef, segmentIndex: number, reset: boolean) => void, getScale: () => number): (() => void) | undefined;
3
- //# sourceMappingURL=animation.d.ts.map
@@ -1 +0,0 @@
1
- export function animateLineSegments(l,f,v){let i=0,s=0,o=null,r=null;if(!l.length)return;const m=l.map(t=>{const e=t.points[1].x-t.points[0].x,n=t.points[1].y-t.points[0].y;return Math.sqrt(e*e+n*n)}),M=m.reduce((t,e)=>t+e,0),g=Math.max(20,Math.min(M/2,300));function q(t,e){const n=t.points[0],u=t.points[1],c=u.x-n.x,a=u.y-n.y,b=Math.sqrt(c*c+a*a),d=Math.min(e/b,1);return{points:[{x:n.x,y:n.y},{x:n.x+c*d,y:n.y+a*d}],color:t.color,width:t.width}}function y(t){o||(o=t);const e=(t-o)/1e3;o=t;const n=v(),u=g*Math.sqrt(n);for(s+=u*e;s>=m[i];)s-=m[i],i++,i>=l.length&&(i=0);const c=l[i],a=q(c,s);f(a,i,!1),r=requestAnimationFrame(y)}function x(){h(),i=0,s=0,o=null,r=requestAnimationFrame(y)}function h(){r&&(cancelAnimationFrame(r),r=null,o=null)}function p(){document.visibilityState==="visible"?x():h()}return document.addEventListener("visibilitychange",p),x(),()=>{h(),document.removeEventListener("visibilitychange",p)}}
@@ -1,5 +0,0 @@
1
- import { Rect } from "../Rect";
2
- export declare function createCircleCanvas(radius: number, color: string): HTMLCanvasElement;
3
- export declare function createBookmarkCanvas(maxSizePx: number, pixelRatio: number): HTMLCanvasElement;
4
- export declare function getBounds(x: number, y: number, width: number, height: number, scale?: number, rotate?: number): Rect;
5
- //# sourceMappingURL=canvases.d.ts.map
@@ -1 +0,0 @@
1
- import{Rect as g}from"../Rect";const r=new Map;export function createCircleCanvas(a,n){const i=n.toUpperCase();if(!r.has(i)){const t=document.createElement("canvas"),o=a*2*devicePixelRatio+2;t.width=o,t.height=o;const l=t.getContext("2d");l.fillStyle=n,l.beginPath(),l.arc(o/2,o/2,a*devicePixelRatio,0,2*Math.PI),l.fill(),r.set(i,t)}return r.get(i)}const f=new Map;export function createBookmarkCanvas(a,n){const i=a;if(f.has(i))return f.get(i);const t=a,o=t*1.4,l=Math.ceil(t*n),s=Math.ceil(o*n),c=document.createElement("canvas");c.width=l,c.height=s;const e=c.getContext("2d");return e.scale(n,n),e.fillStyle="#fdbf2b",e.strokeStyle="#fff",e.lineWidth=4/n,e.beginPath(),e.moveTo(0,0),e.lineTo(0,o),e.lineTo(t/2,o-t/2),e.lineTo(t,o),e.lineTo(t,0),e.lineTo(0,0),e.fill(),e.stroke(),f.set(i,c),c}export function getBounds(a,n,i,t,o=1,l){const s=i*o,c=t*o,e=s/2,h=c/2,d={x:a-e,y:n-h},u={x:a+e,y:n+h};return new g(d,u,l)}
@@ -1,16 +0,0 @@
1
- import type { ImageDef, ImageSource, LayerDef, LineDef, ShapeDef, TextAlignment, TextDef, TextLineDef, RenderableDefCollection, SceneDef } from "@expofp/renderer";
2
- import { Polygon, Rect } from "@expofp/renderer";
3
- import type { MeshType, Line, TextLines, DefOptions } from "./types";
4
- export declare function rectToShapeDef(rect: Rect | SVGRectElement, color?: string): ShapeDef;
5
- export declare function meshToShapeDef(mesh: MeshType, color: string): ShapeDef;
6
- export declare function createShapeDef(shape: Polygon | Rect, color?: string): ShapeDef;
7
- export declare function createImageDef(source: ImageSource, bounds: Rect, options?: DefOptions & {
8
- origin?: [number, number];
9
- }): ImageDef;
10
- export declare function createTextDef(textLines: TextLineDef[], bounds: Rect, padding: [number, number], alignment: TextAlignment, options?: DefOptions): TextDef;
11
- export declare function createTextDefLines(textLines: TextLines, color: string, fontSize: number, fontUrl?: [string, string]): TextLineDef[];
12
- export declare function createLineDef({ p0, p1 }: Line, color?: string, width?: number): LineDef;
13
- export declare function createLayerDef(name: string, children: RenderableDefCollection, options?: DefOptions): LayerDef;
14
- export declare function createSceneDef(layers: LayerDef[], viewboxRect: SVGRectElement | Rect, background?: string, memoryLimit?: number): SceneDef;
15
- export declare function createShapeDot(rect: Rect, color?: string, radius?: number): ImageDef;
16
- //# sourceMappingURL=defs.d.ts.map
@@ -1,3 +0,0 @@
1
- import{Polygon as f,Rect as a}from"@expofp/renderer";import{createCircleCanvas as s}from"./canvases";import{DEFAULT_FONT_LIGHT_URL as p,DEFAULT_FONT_URL as u}from"./fonts";export function rectToShapeDef(e,r){let n;return e instanceof SVGRectElement&&(n=a.fromSvg(e)),createShapeDef(n,r)}export function meshToShapeDef(e,r){if(!e)throw new Error("Create ShapeDef: mesh is not provided");const n=e.positions.map(i=>({x:i[0],y:Math.abs(i[1])})),t=e.cells,o=new f(n,t);return createShapeDef(o,r)}export function createShapeDef(e,r="#000"){if(!e||!(e instanceof f||e instanceof a))throw new Error("Invalid shape definition");return{shape:e,color:r}}export function createImageDef(e,r,n){if(!e)throw new Error("Image source is not provided");return{source:e,bounds:r,...n}}export function createTextDef(e,r,n,t,o){if(e.length===0)throw new Error("Invalid text lines");return{lines:e,bounds:r,padding:n,alignment:t,...o}}export function createTextDefLines(e,r,n,t=[void 0,void 0]){const[o,i]=e,c=[{text:o.join(`
2
- `),fontUrl:t[0]||u,color:r,fontSize:n}];return i.length&&c.push({text:i.join(`
3
- `),fontUrl:t[1]||p,color:r,fontSize:n}),c}export function createLineDef({p0:e,p1:r},n="#000",t=10){if(!(e?.x&&e.y||r?.x&&r.y))throw new Error("Line data is invalid");return{points:[{x:e.x,y:e.y},{x:r.x,y:r.y}],color:n,width:t}}export function createLayerDef(e,r,n){if(!e)throw new Error("Layer name is required");return r||(r=[]),{name:e,children:r,...n}}export function createSceneDef(e,r,n,t){let o;return r instanceof SVGRectElement?o=a.fromSvg(r):r instanceof a&&(o=r),{rootLayer:createLayerDef("root",e),background:n,viewbox:o,memoryLimit:t}}export function createShapeDot(e,r="#000",n=1.5){const t=s(n,r),o=new a({x:e.center.x-t.width/2,y:e.center.y-t.height/2},{x:e.center.x+t.width/2,y:e.center.y+t.height/2},e.rotation);return createImageDef(t,o)}
@@ -1,9 +0,0 @@
1
- export declare const DEFAULT_FONT_URL: string;
2
- export declare const DEFAULT_FONT_LIGHT_URL: string;
3
- export interface CustomFonts {
4
- weight: string;
5
- style: string;
6
- url: string;
7
- }
8
- export declare function loadCustomFontsUrls(): CustomFonts[];
9
- //# sourceMappingURL=fonts.d.ts.map
@@ -1 +0,0 @@
1
- import t from"../../../../../tools/base-runtime-url";export const DEFAULT_FONT_URL=`${t}fonts/oswald-v17-cyrillic_latin-500.woff`,DEFAULT_FONT_LIGHT_URL=`${t}fonts/oswald-v17-cyrillic_latin-300.woff`;export function loadCustomFontsUrls(){const o=window.__data;return o&&o.customCssFonts?.length?o.customCssFonts:[]}
@@ -1,20 +0,0 @@
1
- import type { IndicesType, MeshType, VerticesType, Line, TextLines, DefOptions, Point, FontSizeFactor } from "./types";
2
- import { startRenderer, updateRenderer } from "./renderer";
3
- import { rectToShapeDef, meshToShapeDef, createLayerDef, createLineDef, createSceneDef, createImageDef, createShapeDef, createTextDefLines, createTextDef, createShapeDot } from "./defs";
4
- import { updateLinesScale, updateTextDefRotation, getRotation, shouldFlip, getAngleDiff, getClampedBoundsCanvas, flipAngle, updateRectRotation } from "./update-def";
5
- import { createCircleCanvas, createBookmarkCanvas, getBounds } from "./canvases";
6
- import type { CustomFonts } from "./fonts";
7
- import { loadCustomFontsUrls, DEFAULT_FONT_URL, DEFAULT_FONT_LIGHT_URL } from "./fonts";
8
- import { isInnerInsideOuter, flipImageDef } from "./utils/rotation";
9
- import { mapRollSetting, getRollValue } from "./settings";
10
- import type { ImageDefWithParentBounds } from "./types";
11
- export type { IndicesType, MeshType, VerticesType, Line, TextLines, DefOptions, FontSizeFactor, Point };
12
- export { startRenderer, updateRenderer };
13
- export { rectToShapeDef, meshToShapeDef, createLayerDef, createLineDef, createSceneDef, createImageDef, createShapeDef, createTextDef, createTextDefLines, createShapeDot, };
14
- export { updateLinesScale, updateTextDefRotation, getRotation, shouldFlip, flipAngle, getAngleDiff, getClampedBoundsCanvas };
15
- export { createCircleCanvas, createBookmarkCanvas, getBounds };
16
- export { loadCustomFontsUrls, DEFAULT_FONT_URL, DEFAULT_FONT_LIGHT_URL };
17
- export type { CustomFonts };
18
- export { isInnerInsideOuter, mapRollSetting, getRollValue, updateRectRotation, flipImageDef };
19
- export type { ImageDefWithParentBounds };
20
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- import{startRenderer as e,updateRenderer as a}from"./renderer";import{rectToShapeDef as s,meshToShapeDef as t,createLayerDef as r,createLineDef as o,createSceneDef as n,createImageDef as p,createShapeDef as f,createTextDefLines as i,createTextDef as l,createShapeDot as c}from"./defs";import{updateLinesScale as D,updateTextDefRotation as m,getRotation as d,shouldFlip as g,getAngleDiff as u,getClampedBoundsCanvas as R,flipAngle as T,updateRectRotation as L}from"./update-def";import{createCircleCanvas as S,createBookmarkCanvas as h,getBounds as x}from"./canvases";import{loadCustomFontsUrls as C,DEFAULT_FONT_URL as F,DEFAULT_FONT_LIGHT_URL as I}from"./fonts";import{isInnerInsideOuter as U,flipImageDef as _}from"./utils/rotation";import{mapRollSetting as A,getRollValue as v}from"./settings";export{e as startRenderer,a as updateRenderer};export{s as rectToShapeDef,t as meshToShapeDef,r as createLayerDef,o as createLineDef,n as createSceneDef,p as createImageDef,f as createShapeDef,l as createTextDef,i as createTextDefLines,c as createShapeDot};export{D as updateLinesScale,m as updateTextDefRotation,d as getRotation,g as shouldFlip,T as flipAngle,u as getAngleDiff,R as getClampedBoundsCanvas};export{S as createCircleCanvas,h as createBookmarkCanvas,x as getBounds};export{C as loadCustomFontsUrls,F as DEFAULT_FONT_URL,I as DEFAULT_FONT_LIGHT_URL};export{U as isInnerInsideOuter,A as mapRollSetting,v as getRollValue,L as updateRectRotation,_ as flipImageDef};
@@ -1,5 +0,0 @@
1
- import type { RenderableDef, SceneDef } from "@expofp/renderer";
2
- import { Renderer } from "@expofp/renderer";
3
- export declare function startRenderer(renderer: Renderer, sceneDef: SceneDef): void;
4
- export declare function updateRenderer(renderer: Renderer, ...shapes: RenderableDef[]): void;
5
- //# sourceMappingURL=renderer.d.ts.map
@@ -1 +0,0 @@
1
- import{Renderer as n}from"@expofp/renderer";export function startRenderer(e,r){if(e){if(!(e instanceof n))throw new Error("Invalid renderer definition");console.log("Create sceneDef",r),e.init(r),e.start()}}export function updateRenderer(e,...r){if(e){if(!(e instanceof n))throw new Error("Invalid renderer definition");e.update(...r)}}
@@ -1,4 +0,0 @@
1
- import type { Renderer } from "@expofp/renderer";
2
- export declare function getRollValue(value: 1 | 0): boolean;
3
- export declare function mapRollSetting(renderer: Renderer, value: 1 | 0): void;
4
- //# sourceMappingURL=settings.d.ts.map
@@ -1 +0,0 @@
1
- export function getRollValue(e){if(!e)return!1;if(!Number.isInteger(+e)||+e!=1&&+e!=0)throw new Error("Map roll: setting value is incorrect");return!!+e}export function mapRollSetting(e,l){getRollValue(l)?e.controls.handlers.roll.enable():e.controls.handlers.roll.disable()}
@@ -1,39 +0,0 @@
1
- import type { ImageDef, Rect } from "@expofp/renderer";
2
- export type VerticesType = {
3
- x: number;
4
- y: number;
5
- };
6
- export type IndicesType = [number, number, number];
7
- export interface DefOptions {
8
- hidden?: boolean;
9
- dim?: boolean;
10
- interactive?: boolean;
11
- }
12
- export type MeshType = {
13
- positions: [number, number][];
14
- cells: [number, number, number][];
15
- };
16
- export type Point = {
17
- x: number;
18
- y: number;
19
- };
20
- export type Line = {
21
- p0: Point;
22
- p1: Point;
23
- };
24
- export type TextLines = [string[], string[]];
25
- export type FontSizeFactor = {
26
- scaleFactor: number;
27
- value: number;
28
- lines: string[];
29
- };
30
- export interface PathInfo {
31
- index: number;
32
- color: string;
33
- unblinking?: boolean;
34
- }
35
- export interface ImageDefWithParentBounds {
36
- parentRect?: Rect;
37
- shape: ImageDef;
38
- }
39
- //# sourceMappingURL=types.d.ts.map
@@ -1,12 +0,0 @@
1
- import type { TextDef, TextLineDef } from "@expofp/renderer";
2
- import { Rect } from "@expofp/renderer";
3
- import type { FontSizeFactor } from "./types";
4
- export declare function updateLinesScale(lines: TextLineDef[], scale: number, fontSizes: [FontSizeFactor[], FontSizeFactor[]], name?: string): TextLineDef[];
5
- export declare function updateTextDefRotation(textDef: TextDef, rotation: number): TextDef;
6
- export declare function updateRectRotation(rect: Rect, angle: number): Rect;
7
- export declare function getRotation(newAngle: number, currentRotation: number): number | undefined;
8
- export declare function shouldFlip(newAngle: number, currentRotation: number): boolean;
9
- export declare function getAngleDiff(newAngle: number, currentRotation: number, isVertical?: boolean): number | undefined;
10
- export declare function flipAngle(angle: number): number;
11
- export declare function getClampedBoundsCanvas(rect: Rect, canvas: HTMLCanvasElement, padding: number, scale: number): Rect;
12
- //# sourceMappingURL=update-def.d.ts.map
@@ -1 +0,0 @@
1
- import{Rect as M}from"@expofp/renderer";import{getBounds as S}from"./canvases";export function updateLinesScale(t,o,n,e=""){return t.forEach((r,s)=>{let a=0;n[s].forEach(({value:u,scaleFactor:i})=>{o<i&&(a=u)}),r.fontSize=a*o}),t}export function updateTextDefRotation(t,o){return t.bounds=new M({x:t.bounds.center.x-t.bounds.size.y/2,y:t.bounds.center.y-t.bounds.size.x/2},{x:t.bounds.center.x+t.bounds.size.y/2,y:t.bounds.center.y+t.bounds.size.x/2},t.bounds.rotation+o),t}export function updateRectRotation(t,o){const{size:n,center:e,rotation:r}=t;return new M({x:e.x-n.y/2,y:e.y-n.x/2},{x:e.x+n.y/2,y:e.y+n.x/2},r+o)}export function getRotation(t,o){const n=getAngleDiff(t,o);if(Math.abs(n)>Math.PI/4)return Math.sign(n)*Math.PI/2}export function shouldFlip(t,o){const n=getAngleDiff(t,o),e=Math.PI/2;return Math.abs(n)>e+.1}export function getAngleDiff(t,o,n=!1){const e=Math.PI,r=2*e;return((s,a)=>((s-a+e)%r+r)%r-e)(t,o)}export function flipAngle(t){return(t+Math.PI+Math.PI)%(2*Math.PI)-Math.PI}export function getClampedBoundsCanvas(t,o,n,e){const r=o.width,s=o.height,a=t.size,u=t.center,i=t.rotation,y=a.x/r,b=a.x-n*2,l=(a.y-n*2)*.8,g=0,m=b/r,I=l/s,P=Math.min(m,I,y);e=Math.min(Math.max(e,g),P);const z=r*e,R=s*e,c=Math.sin(i),x=Math.cos(i),h=a.x/2-n,d=-a.y/2+n,w=u.x+h*x-d*c,v=u.y+h*c+d*x,f=z/2,p=-R/2,A=f*x-p*c,B=f*c+p*x,C=w-A,D=v-B;return S(C,D,r,s,e,i)}
@@ -1,5 +0,0 @@
1
- import type { ImageDef, Rect } from "@expofp/renderer";
2
- export declare function isInnerInsideOuter(inner: Rect, outer?: Rect): boolean;
3
- export declare function flipImageDef(imageDef: ImageDef, angle: number): ImageDef;
4
- export declare function rotateImageDef(imageDef: ImageDef, angle: number): ImageDef;
5
- //# sourceMappingURL=rotation.d.ts.map
@@ -1 +0,0 @@
1
- import{flipAngle as y,getRotation as m,shouldFlip as c}from"../update-def";export function isInnerInsideOuter(n,o){if(!o)return!1;const a=u(n,n.rotation+Math.PI/2),e=u(o),i=Math.min(...e.map(t=>t.x)),r=Math.max(...e.map(t=>t.x)),s=Math.min(...e.map(t=>t.y)),x=Math.max(...e.map(t=>t.y));return a.every(t=>t.x>=i&&t.x<=r&&t.y>=s&&t.y<=x)}function u(n,o=n.rotation){const a=n.size.x/2,e=n.size.y/2,i=Math.sin(o),r=Math.cos(o),s=n.center.x,x=n.center.y;return[{x:-a,y:-e},{x:a,y:-e},{x:a,y:e},{x:-a,y:e}].map(t=>({x:s+t.x*r-t.y*i,y:x+t.x*i+t.y*r}))}export function flipImageDef(n,o){const a=n.bounds.rotation;return c(o,a)&&(n.bounds.rotation=y(n.bounds.rotation)),n}export function rotateImageDef(n,o){const a=m(o,n.bounds.rotation);return a!==void 0&&(n.bounds.rotation=n.bounds.rotation+a),n}
@@ -1,12 +0,0 @@
1
- import type { ImageUrls } from "../../../../utils/loadImagesInBatches";
2
- import type { Img } from "../../../../utils/imageloader";
3
- import type { Booth } from "../../../../store/BoothStore";
4
- import type { Layer } from "../../../../store/LayerStore";
5
- import type { SceneDef } from "@expofp/renderer";
6
- import type { MapRenderer } from "../../Map";
7
- export declare function loadLayersImages(renderer: MapRenderer, scene: SceneDef): Promise<void>;
8
- export declare const getImageLayerName: (layerName: string) => string;
9
- export declare function mapBoothsLogos(booths: Booth[]): Map<number, ImageUrls>;
10
- export declare function getLayerIcons(layer: Layer): SVGImageElement[];
11
- export declare function createBoothImg(booth: Booth, htmlImage: HTMLImageElement): Img;
12
- //# sourceMappingURL=loadBoothsImages.d.ts.map
@@ -1 +0,0 @@
1
- import{getLayerSvg as u}from"../../../../data/svg";import{select as w}from"d3";import{getLogoUrl as y}from"../../../../utils/getLogoUrl";import{flipImageDef as I,isInnerInsideOuter as x,updateRenderer as B}from"./engine-core";import{SEPARATOR as L}from"../../../../constants";import{rotateImageDef as b}from"./engine-core/utils/rotation";export async function loadLayersImages(o,t){const e=performance.now(),r=o.layerImagesHandlers.filter(Boolean);await Promise.all(r.map(async a=>{const n=await a.fn();if(!n)return;const{name:c,children:m}=n,l=g(t.rootLayer.children,c);if(l&&m.length){const f=[];for(const{shape:i,parentRect:d}of n.children){const p=x(i.bounds,d);l.name.includes("Pathway_")||o.rollHandlers.push(p?{fn:h=>b(i,h),name:"imageRotationHandler"}:{fn:h=>I(i,h),name:"imageFlipHandler"}),f.push(i)}l.children.push(...f),B(o,l)}}));const s=+(performance.now()-e).toFixed(2);console.log(`\u{1F4CA} Total loadBoothsImages time: ${s} ms`)}export const getImageLayerName=o=>`${o}${L}images`;export function mapBoothsLogos(o){return new Map(o.map(t=>{const e=t.rect&&t.exhibitors.find(r=>r.logoInBooth&&r.logo);return e?[t.id,{preferred:y(e.logo),fallback:e.logo}]:null}).filter(Boolean))}export function getLayerIcons(o){const t=w(u(o)).select(`[data-layer="${o.name}"]`);return(window.__fpVersion>5?t.selectAll(":scope > image, :scope > g:not([data-layer]) image").nodes():t.selectAll(":scope > g[data-is-editable='false'] image").nodes()).filter(Boolean)}export function createBoothImg(o,t){const e=o.rect,r=e.h?e.w/e.h:1,s=t.height?t.width/t.height:1;let a,n,c;const m=.9;r>s?(n=e.h*m,a=n*s):(a=e.w*m,n=a/s);const l=o.rotate||0;s>=2&&!l&&e.h>=e.w*2?(n=e.w*m,a=n*s,c=-90):c=-l*180/Math.PI,a>e.w&&(a=e.w,n=a/s),n>e.h&&(n=e.h,a=n*s);const f=e.cx-a/2,i=e.cy-n/2;return{name:o.slug,bounds:{x:f,y:i,width:a,height:n,angle:c},htmlImage:t,booth:o}}function g(o,t){for(const e of o){if(e.name===t)return e;if(e.children&&e.children.length>0){const r=g(e.children,t);if(r)return r}}return null}
@@ -1,6 +0,0 @@
1
- export type { SplitRouteResult, RouteSnapResult } from "./types";
2
- export { RoutePoint, RouteLine } from "./types";
3
- export { splitRouteByPoint } from "./splitRouteByPoint";
4
- export { snapPositionToRoute } from "./snapPositionToRoute";
5
- export { SNAP_THRESHOLD_METERS, getSnapThresholdSvg } from "./snapThreshold";
6
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- export{RoutePoint,RouteLine}from"./types";export{splitRouteByPoint}from"./splitRouteByPoint";export{snapPositionToRoute}from"./snapPositionToRoute";export{SNAP_THRESHOLD_METERS,getSnapThresholdSvg}from"./snapThreshold";
@@ -1,20 +0,0 @@
1
- import { RouteLine } from "../../../../../utils/wayfinding";
2
- import { RoutePoint, RouteSnapResult } from "./types";
3
- import { CurrentPosition } from "../../../../../store/RouteStore";
4
- type Rect = {
5
- x1: number;
6
- x2: number;
7
- y1: number;
8
- y2: number;
9
- };
10
- export type SnapToRouteConfig = {
11
- snapThreshold: number;
12
- minRemainingUnits?: number;
13
- toPoint: RoutePoint;
14
- toRect?: Rect;
15
- fromPoint?: RoutePoint;
16
- fromRect?: Rect;
17
- };
18
- export declare function snapPositionToRoute(position: CurrentPosition, routeLines: RouteLine[], config: SnapToRouteConfig): RouteSnapResult;
19
- export {};
20
- //# sourceMappingURL=snapPositionToRoute.d.ts.map
@@ -1 +0,0 @@
1
- import{RoutePoint as w}from"./types";function v(t,n){return t.x>=n.x1&&t.x<=n.x2&&t.y>=n.y1&&t.y<=n.y2}function z(t,n){let y=0;for(const e of t){const i=Math.hypot(e.p1.x-e.p0.x,e.p1.y-e.p0.y);if(i!==0){if(y+i>=n){const c=(n-y)/i,M=e.p0.x+(e.p1.x-e.p0.x)*c,l=e.p0.y+(e.p1.y-e.p0.y)*c;return{point:new w(e.p0.layer,M,l),line:e}}y+=i}}const r=t[t.length-1];return{point:new w(r.p0.layer,r.p1.x,r.p1.y),line:r}}export function snapPositionToRoute(t,n,y){const r=n.length;if(!r)return{snapped:!1};const{snapThreshold:e,toPoint:i,minRemainingUnits:c=.5,fromPoint:M,fromRect:l,toRect:L}=y;let S=1/0,x=null,d=0;for(let p=0;p<r;p++){const s=n[p],{p0:o,p1:j}=s,h=j.x-o.x,m=j.y-o.y,g=h*h+m*m;if(g===0)continue;const R=Math.sqrt(g);if(t.z!=null&&o.layer!==t.z){d+=R;continue}const C=((t.x-o.x)*h+(t.y-o.y)*m)/g,P=Math.max(0,Math.min(1,C)),D=o.x+h*P,E=o.y+m*P,k=Math.hypot(t.x-D,t.y-E);k<S&&(S=k,x={segmentIndex:p,t:P,distanceFromPolylineStart:d+R*P}),d+=R}const a=d,T=n[0].p0,q=n[r-1].p1,A=Math.hypot(i.x-T.x,i.y-T.y),B=Math.hypot(i.x-q.x,i.y-q.y),f=A<=B,F=Math.min(c,a),I=new w((t.z??n[0].p0.layer).toString(),t.x,t.y);if(l&&M&&v(I,l)){const p=a,s=f?p:a-p,o=z(n,s);return{snapped:!0,snappedPoint:o.point,snappedLine:o.line,distanceFromStart:0}}if(L&&v(I,L)){const p=F,s=a-p,o=z(n,f?p:s);return{snapped:!0,snappedPoint:o.point,snappedLine:o.line,distanceFromStart:s}}if(!x||S>e)return{snapped:!1};let u=f?x.distanceFromPolylineStart:a-x.distanceFromPolylineStart;u<F&&(u=F);const U=a-u,b=z(n,f?u:U);return{snapped:!0,snappedPoint:b.point,snappedLine:b.line,distanceFromStart:U}}
@@ -1,23 +0,0 @@
1
- type GpsProjectionConfig = {
2
- p0: {
3
- x: number;
4
- y: number;
5
- lat: number;
6
- lng: number;
7
- };
8
- p2: {
9
- x: number;
10
- y: number;
11
- lat: number;
12
- lng: number;
13
- };
14
- };
15
- type SnapThresholdOptions = {
16
- thresholdInMeters?: number;
17
- gpsConfig?: GpsProjectionConfig;
18
- scale?: number;
19
- };
20
- export declare const SNAP_THRESHOLD_METERS = 7.5;
21
- export declare function getSnapThresholdSvg({ thresholdInMeters, gpsConfig, scale }: SnapThresholdOptions): number;
22
- export {};
23
- //# sourceMappingURL=snapThreshold.d.ts.map
@@ -1 +0,0 @@
1
- import{lineLength as a}from"simple-geometry";import{distance as l}from"../../../../../utils/gps";const c=16,i=20;export const SNAP_THRESHOLD_METERS=7.5;function p(o,r){const{p0:n,p2:t}=r,s=l(n.lat,n.lng,t.lat,t.lng),e=a(n,t);return!s||!e?0:o*(e/s)}export function getSnapThresholdSvg({thresholdInMeters:o,gpsConfig:r,scale:n}){let t=0;if(o&&r&&(t=p(o,r)),t||(t=i),n&&n>0){const s=c/n;t=Math.max(t,s)}return t}
@@ -1,6 +0,0 @@
1
- import { RouteLine, RoutePoint } from "./types";
2
- export declare function splitRouteByPoint(routeLines: RouteLine[], snapPoint: RoutePoint): {
3
- passed: RouteLine[];
4
- remaining: RouteLine[];
5
- };
6
- //# sourceMappingURL=splitRouteByPoint.d.ts.map
@@ -1 +0,0 @@
1
- import{RoutePoint as d}from"./types";export function splitRouteByPoint(i,t){let e=-1,s=0,y=1/0;for(let r=0;r<i.length;r++){const p=i[r];if(p.p0.layer!==t.layer)continue;const o=p.p1.x-p.p0.x,a=p.p1.y-p.p0.y,u=o*o+a*a;if(u===0)continue;const c=((t.x-p.p0.x)*o+(t.y-p.p0.y)*a)/u;if(c<-1e-6||c>1+1e-6)continue;const l=Math.min(1,Math.max(0,c)),m=p.p0.x+l*o,g=p.p0.y+l*a,f=(t.x-m)**2+(t.y-g)**2;f<y&&(y=f,e=r,s=l)}if(e===-1)return{passed:[],remaining:i};if(s<1e-6)return{passed:i.slice(0,e),remaining:i.slice(e)};if(s>1-1e-6)return{passed:i.slice(0,e+1),remaining:i.slice(e+1)};const n=i[e],x=new d(n.p0.layer,n.p0.x+s*(n.p1.x-n.p0.x),n.p0.y+s*(n.p1.y-n.p0.y));return{passed:[...i.slice(0,e),{...n,p1:x}],remaining:[{...n,p0:x},...i.slice(e+1)]}}
@@ -1,20 +0,0 @@
1
- import { RouteLine, RoutePoint } from "../../../../../utils/wayfinding";
2
- export type RouteSnapResult = {
3
- snapped: false;
4
- } | {
5
- snapped: true;
6
- snappedPoint: RoutePoint;
7
- snappedLine: RouteLine;
8
- distanceFromStart: number;
9
- };
10
- export type SplitRouteResult = {
11
- snapped: true;
12
- passed: RouteLine[];
13
- remaining: RouteLine[];
14
- splitPoint: RoutePoint;
15
- } | {
16
- snapped: false;
17
- remaining: RouteLine[];
18
- };
19
- export { RouteLine, RoutePoint };
20
- //# sourceMappingURL=types.d.ts.map
@@ -1 +0,0 @@
1
- import{RouteLine as o,RoutePoint as t}from"../../../../../utils/wayfinding";export{o as RouteLine,t as RoutePoint};
@@ -1,13 +0,0 @@
1
- export declare class UpdateQueue {
2
- private queue;
3
- private isProcessing;
4
- private rafId;
5
- private readonly CHUNK_SIZE;
6
- private readonly TIME_BUDGET;
7
- add(fn: () => void): void;
8
- private scheduleProcessing;
9
- private processMicrotaskQueue;
10
- private processQueue;
11
- destroy(): void;
12
- }
13
- //# sourceMappingURL=UpdateQueue.d.ts.map
@@ -1 +0,0 @@
1
- export class UpdateQueue{queue=[];isProcessing=!1;rafId=null;CHUNK_SIZE=100;TIME_BUDGET=4;add(e){this.queue.push(e),this.scheduleProcessing()}scheduleProcessing(){this.isProcessing||this.queue.length===0||(this.isProcessing=!0,this.queue.length<=this.CHUNK_SIZE*2?Promise.resolve().then(()=>this.processMicrotaskQueue()):this.rafId=requestAnimationFrame(e=>{this.processQueue(e)}))}processMicrotaskQueue(){const e=performance.now();let s=0;for(;this.queue.length>0&&s<this.CHUNK_SIZE;){const t=this.queue.shift();try{t()}catch(i){console.warn("UpdateQueue task error:",i)}if(s++,performance.now()-e>this.TIME_BUDGET)break}this.queue.length>0?Promise.resolve().then(()=>this.processMicrotaskQueue()):this.isProcessing=!1}processQueue(e){this.rafId=null;let s=0;for(;this.queue.length>0&&s<this.CHUNK_SIZE;){const t=this.queue.shift();try{t()}catch(i){console.warn("UpdateQueue task error:",i)}if(s++,performance.now()-e>this.TIME_BUDGET)break}this.queue.length>0?this.rafId=requestAnimationFrame(t=>this.processQueue(t)):this.isProcessing=!1}destroy(){this.rafId!==null&&(cancelAnimationFrame(this.rafId),this.rafId=null),this.queue=[],this.isProcessing=!1}}
@@ -1,17 +0,0 @@
1
- export declare const TRAFFIC_ROUTE_PREFIX = "traffic_route";
2
- export declare const TRAFFIC_ROUTE_STOP_PREFIX = "traffic_route_stop";
3
- export declare const TRAFFIC_VEHICLES = "traffic_vehicles";
4
- export declare const BUILD_ROUTE_LINES = "build_route_lines";
5
- export declare const BUILD_ROUTE_DOTS = "build_route_dots";
6
- export declare function createTrafficLayers(): ({
7
- name: string;
8
- children: never[];
9
- interactive?: undefined;
10
- } | {
11
- name: string;
12
- children: never[];
13
- interactive: boolean;
14
- })[];
15
- export declare function getRouteLayerRegex(): RegExp;
16
- export declare function getRouteStopLayerRegex(): RegExp;
17
- //# sourceMappingURL=trafficLayers.d.ts.map
@@ -1 +0,0 @@
1
- export const TRAFFIC_ROUTE_PREFIX="traffic_route",TRAFFIC_ROUTE_STOP_PREFIX="traffic_route_stop",TRAFFIC_VEHICLES="traffic_vehicles",BUILD_ROUTE_LINES="build_route_lines",BUILD_ROUTE_DOTS="build_route_dots";const i=5;export function createTrafficLayers(){const e=[];for(let t=0;t<5;t++)e.push({name:r(t),children:[]}),e.push({name:n(t),children:[],interactive:!0});return e.push({name:TRAFFIC_VEHICLES,children:[],interactive:!0}),e.push({name:BUILD_ROUTE_LINES,children:[]}),e.push({name:BUILD_ROUTE_DOTS,children:[],interactive:!0}),e}function r(e){return`${TRAFFIC_ROUTE_PREFIX}_${e+1}`}function n(e){return`${TRAFFIC_ROUTE_STOP_PREFIX}_${e+1}`}export function getRouteLayerRegex(){return new RegExp(`^${TRAFFIC_ROUTE_PREFIX}_\\d+$`)}export function getRouteStopLayerRegex(){return new RegExp(`^${TRAFFIC_ROUTE_STOP_PREFIX}_\\d+$`)}
@@ -1,10 +0,0 @@
1
- import type { Renderer, SceneDef } from "@expofp/renderer";
2
- export interface BuildRouteParams {
3
- enabled: boolean;
4
- renderer: Renderer;
5
- scene: SceneDef;
6
- initialScale: number;
7
- cb?: () => void;
8
- }
9
- export declare function useBuildRoute({ enabled, renderer, scene, initialScale }: BuildRouteParams): void;
10
- //# sourceMappingURL=useBuildRoute.d.ts.map
@@ -1,7 +0,0 @@
1
- import{useCallback as S,useEffect as H,useMemo as k,useRef as E}from"react";import{BUILD_ROUTE_DOTS as O,BUILD_ROUTE_LINES as B}from"./trafficLayers";import{createCircleCanvas as I,getBounds as C}from"../drawing/config/engine-core/canvases";import{UpdateQueue as K}from"./UpdateQueue";const P=49,D=`hsl(257, 76%, ${P}%)`,N=`hsl(339.903, 82%, ${P}%)`,J=`hsl(257, 76%, ${Math.round(P*1.82)}%)`,$=4,T=$,U="U",A="R",M="S",R="P";class q{_state=[[]];index=0;pointHashSet=new Set;locked=!1;storageKey="expofp_build_route_state";_selected=0;get points(){return this._state[this.index]}set points(e){this._state.push(e),this.setIndex(),this.save()}setIndex(){this.index=Math.max(this._state.length-1,0)}genPointHash(e){return`${e.x},${e.y}`}add(e){const d=this.genPointHash(e);this.pointHashSet.has(d)||(this.pointHashSet.add(d),this.points=[...this.points,e])}undo(){this.index&&(this._state.pop(),this.setIndex(),this.save(),this.select(this.points.length-1))}execute(e){try{if(this.locked)return;this.locked=!0,e()}finally{requestAnimationFrame(()=>{this.locked=!1})}}log(e,d=12){console.log(`%c${e}`,`color: black; font-size: ${d}px; background: LemonChiffon;`)}instruct(){this.log(`How to Build a Route:
2
- Add Point: Click on the map.
3
- Apply Smoothing: Press ${A}.
4
- Apply Simplification: Press ${M}.
5
- Undo: Press ${U}.
6
- Enable/Disable Preview: Press ${R}.
7
- `,16)}applyChaikinSmoothing(e,d,x){let i=[];if(x>=1&&e.length>=2){i=[e[0]];for(let h=1;h<e.length;h++){const o=e[h-1],p=e[h];for(let t=1;t<=x;t++){const n=t/(x+1);i.push({x:o.x+(p.x-o.x)*n,y:o.y+(p.y-o.y)*n})}i.push(p)}}else i=e.slice();for(let h=0;h<d&&!(i.length<2);h++){const o=[{...i[0]}];for(let p=1;p<i.length;p++){const t=i[p-1],n=i[p];o.push({x:.75*t.x+.25*n.x,y:.75*t.y+.25*n.y}),o.push({x:.25*t.x+.75*n.x,y:.25*t.y+.75*n.y})}o.push({...i[i.length-1]}),i=o}return i}applySmoothing(){this.points.length<3||(this.points=this.applyChaikinSmoothing(this.points,1,0),this.select(this.points.length-1))}save(){try{this.points.length?sessionStorage.setItem(this.storageKey,JSON.stringify(this.points)):sessionStorage.removeItem(this.storageKey)}catch(e){console.warn(e)}}restore(){try{const e=sessionStorage.getItem(this.storageKey);if(!e)return;const d=JSON.parse(e);if(!Array.isArray(d))return;d.forEach(x=>this.add(x)),this.select(this.points.length-1)}catch(e){console.warn(e)}}topologyPreservingSimplify(e,d){if(e.length<=2)return e.map(t=>({...t}));const x=(t,n,u)=>{const a=t.x,y=t.y,l=n.x,c=n.y,s=u.x,r=u.y,f=Math.abs((r-c)*a-(s-l)*y+s*c-r*l),m=Math.sqrt((r-c)**2+(s-l)**2);return f/(m||1e-10)},i=(t,n,u,a)=>{const y=(l,c,s)=>(s.y-l.y)*(c.x-l.x)-(c.y-l.y)*(s.x-l.x);return y(t,u,a)*y(n,u,a)<0&&y(u,t,n)*y(a,t,n)<0},h=new Array(e.length).fill(!1);h[0]=h[h.length-1]=!0;const o=[],p=(t,n)=>{if(n<=t+1)return;const u=e[t],a=e[n];let y=0,l=0;for(let c=t+1;c<n;c++){const s=x(e[c],u,a);s>y&&(y=s,l=c)}if(y>d){const c=e[l];let s=!0;for(let r=0;r<o.length-1;r++)if(i(o[r],o[r+1],u,c)||i(o[r],o[r+1],c,a)){s=!1;break}s&&(h[l]=!0,p(t,l),p(l,n))}};return p(0,e.length-1),e.filter((t,n)=>h[n])}applySimplification(){this.points=this.topologyPreservingSimplify(this.points,.5),this.select(this.points.length-1)}get selected(){return this._selected}select(e){this._selected=Math.max(0,Math.min(e,this.points.length-1))}}export function useBuildRoute({enabled:w,renderer:e,scene:d,initialScale:x}){const i=E(!1),h=E(),o=k(()=>I($,D),[]),p=k(()=>I($,N),[]),t=k(()=>new q,[]),n=E(new K),u=k(()=>{if(!d)return{};const s=d.rootLayer.children,r=s.find(m=>m.name===B),f=s.find(m=>m.name===O);return{linesLayer:r,pointsLayer:f}},[d]),a=S(()=>{if(!e||!u||!o||!p)return;const{linesLayer:s,pointsLayer:r}=u;if(!s||!r)return;const f=t.points,m=i.current;m?r.children.length=0:r.children=f.map(({x:g,y:b},L)=>{const _=L==t.selected?p:o;return{source:_,bounds:C(g,b,_.width,_.height,h.current)}});const v=[];for(let g=1;g<f.length;g++){const b=f[g-1],L=f[g];v.push({points:[b,L],color:m?D:J,width:T})}v.length?s.children=v:s.children.length=0,n.current.add(()=>e.update(r,s)),t.instruct(),t.log(JSON.stringify(t.points))},[e,t,u,o,p]),y=S(s=>{const r=s.key.toUpperCase();t.execute(()=>{switch(r){case U:s.preventDefault(),t.undo(),i.current=!1,a();break;case A:s.preventDefault(),t.applySmoothing(),i.current=!1,a();break;case M:s.preventDefault(),t.applySimplification(),i.current=!1,a();break;case R:s.preventDefault(),i.current=!i.current,a();break}})},[t,a]),l=S(s=>{if(!e||!u)return;const{pointsLayer:r}=u;r&&(h.current=s,t.execute(()=>{const f=r.children,m=[];for(let v=0;v<f.length;v++){const g=f[v];g.bounds=C(g.bounds.center.x,g.bounds.center.y,g.source.width,g.source.height,h.current),m.push(g)}n.current.add(()=>e.update(...m))}))},[e,u,t]),c=S(s=>{t.execute(()=>{t.add({x:s.point.x,y:s.point.y}),t.select(t.points.length-1),a()})},[t,a]);H(()=>{if(w)return h.current=x||window.devicePixelRatio,t.execute(()=>{t.restore(),a()}),e.events.addEventListener("pointer:click",c),e.events.addEventListener("viewport:ptscale",l),window.addEventListener("keyup",y),()=>{window.removeEventListener("keyup",y),e.events.removeEventListener("pointer:click",c),e.events.removeEventListener("viewport:ptscale",l),n.current.destroy()}},[w,e,x,t,a,c,l,y])}
@@ -1,11 +0,0 @@
1
- import type { Renderer, SceneDef } from "@expofp/renderer";
2
- export interface ManageTrafficParams {
3
- permission: boolean;
4
- renderer: Renderer;
5
- scene: SceneDef;
6
- dataJsonUrl: string;
7
- websocketUrl: string;
8
- initialScale: number;
9
- }
10
- export declare function useManageTraffic({ permission, renderer, scene, dataJsonUrl, websocketUrl, initialScale }: ManageTrafficParams): void;
11
- //# sourceMappingURL=useManageTraffic.d.ts.map