@expofp/floorplan 3.0.0-alpha.8 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. package/dist/browser/Debug-Yknbb09q.js +40 -0
  2. package/dist/browser/Demo-CaOFZa6L.js +47 -0
  3. package/dist/browser/Free-DTL80JI4.js +51 -0
  4. package/dist/browser/Gallery-Du04PQQo.js +71 -0
  5. package/dist/browser/GpsLoader-Cvn6RlOm.js +140 -0
  6. package/dist/browser/KioskStore-De5ViEMC.js +225 -0
  7. package/dist/browser/Mapbox-DwX3p3Kb.js +118 -0
  8. package/dist/browser/{SetKioskMode-CuVQ3oOi.js → SetKioskMode-DY8Ihzh_.js} +92 -83
  9. package/dist/browser/{ShowKiosk-D5cdIS4z.js → ShowKiosk-fqRB_BUN.js} +28 -19
  10. package/dist/browser/{ThreeComponent-EfEBxPIF.js → ThreeComponent-CrAcuY6n.js} +181 -172
  11. package/dist/browser/ViewerMenuPanel-CdiEJm9h.js +77 -0
  12. package/dist/browser/boolean-editor-BCIboJVq.js +157 -0
  13. package/dist/browser/bundle.json +34 -31
  14. package/dist/browser/{client-C2b0SeoG.js → client-BU0UzF6H.js} +848 -839
  15. package/dist/browser/compat-helper.js +5 -0
  16. package/dist/browser/{data-Cpuv4_nZ.js → data-DU1RvfMj.js} +278 -269
  17. package/dist/browser/{debug-overlay-Bhx1vN7x.js → debug-overlay-DMGwYhOT.js} +100 -91
  18. package/dist/browser/debug-ui-BZSH53uY.js +67 -0
  19. package/dist/browser/{favicon-DalyEhbd.js → favicon-ZTHZQvuM.js} +11 -2
  20. package/dist/browser/fetch-retry.umd-CFhXCSM1.js +123 -0
  21. package/dist/browser/{flex-va-25i0F.js → flex-D0XnC5Mw.js} +76 -67
  22. package/dist/browser/{floorplan.ready-wFOhoP9S.js → floorplan.ready-DwzYk5s3.js} +20977 -22749
  23. package/dist/browser/fonts/efp-symbols.woff +0 -0
  24. package/dist/browser/{index-DiTM6eb8.js → index-BZDxL6gh.js} +46 -37
  25. package/dist/browser/{index-t04nNTFw.js → index-BpZSlPvc.js} +333 -324
  26. package/dist/browser/index-BxFqdKuM.js +57 -0
  27. package/dist/browser/index-fEI_0iId.js +882 -0
  28. package/dist/browser/index-h3LFHvKr.js +92 -0
  29. package/dist/browser/index-xQ7Ip4HB.js +54 -0
  30. package/dist/browser/index.html +1 -0
  31. package/dist/browser/index.js +12495 -2
  32. package/dist/browser/jsx-runtime-SRODV826.js +40 -0
  33. package/dist/browser/locales/ar.json +56 -5
  34. package/dist/browser/locales/de.json +56 -5
  35. package/dist/browser/locales/es.json +56 -5
  36. package/dist/browser/locales/fr.json +56 -5
  37. package/dist/browser/locales/he.json +56 -5
  38. package/dist/browser/locales/it.json +56 -5
  39. package/dist/browser/locales/kk.json +56 -5
  40. package/dist/browser/locales/ko.json +56 -5
  41. package/dist/browser/locales/mn.json +56 -5
  42. package/dist/browser/locales/nl.json +56 -5
  43. package/dist/browser/locales/pl.json +57 -6
  44. package/dist/browser/locales/pt.json +55 -4
  45. package/dist/browser/locales/ru.json +57 -6
  46. package/dist/browser/locales/sv.json +56 -5
  47. package/dist/browser/locales/th.json +56 -5
  48. package/dist/browser/locales/tr.json +56 -5
  49. package/dist/browser/locales/uk.json +56 -5
  50. package/dist/browser/locales/vi.json +56 -5
  51. package/dist/browser/locales/zh.json +56 -5
  52. package/dist/browser/{main-CD9JioNt.js → main-CcaoXWR4.js} +24 -15
  53. package/dist/browser/{particles.min-Cat-np_h.js → particles.min-Ds_4ex2r.js} +40 -31
  54. package/dist/esm/RouteCutIn.d.ts +0 -1
  55. package/dist/esm/RouteCutIn.js +1 -1
  56. package/dist/esm/_misc_to_move/manifest.d.ts +13 -0
  57. package/dist/esm/_misc_to_move/ref.d.ts +6 -0
  58. package/dist/esm/_misc_to_move/ref.js +1 -0
  59. package/dist/esm/components/Alert.d.ts +2 -0
  60. package/dist/esm/components/Alert.js +1 -1
  61. package/dist/esm/components/Badge.d.ts +3 -2
  62. package/dist/esm/components/Badge.js +1 -1
  63. package/dist/esm/components/Bookmarks.js +1 -1
  64. package/dist/esm/components/Booth/BoothOnHold.d.ts +2 -2
  65. package/dist/esm/components/Booth/BoothOnHold.js +1 -1
  66. package/dist/esm/components/Booth/BoothReserved.d.ts +2 -1
  67. package/dist/esm/components/Booth/BoothReserved.js +1 -1
  68. package/dist/esm/components/Booth/BoothWithoutExhibitor.d.ts +2 -2
  69. package/dist/esm/components/Booth/BoothWithoutExhibitor.js +1 -1
  70. package/dist/esm/components/CookieConsent.js +1 -1
  71. package/dist/esm/components/Exhibitor.js +1 -1
  72. package/dist/esm/components/Gallery/GalleryControls/GalleryControls.d.ts +2 -2
  73. package/dist/esm/components/Gallery/GalleryControls/GalleryControls.js +1 -1
  74. package/dist/esm/components/Gallery/GalleryModal/GalleryModal.d.ts +2 -2
  75. package/dist/esm/components/Gallery/GalleryModal/GalleryModal.js +1 -1
  76. package/dist/esm/components/Kiosk/KioskStore.d.ts +3 -3
  77. package/dist/esm/components/Kiosk/KioskStore.js +1 -1
  78. package/dist/esm/components/Kiosk/SetKiosk/storage.d.ts +1 -1
  79. package/dist/esm/components/Kiosk/SetKiosk/storage.js +1 -1
  80. package/dist/esm/components/Kiosk/ShowKiosk.js +1 -1
  81. package/dist/esm/components/Kiosk/integrateKiosk.js +1 -1
  82. package/dist/esm/components/Language.js +1 -1
  83. package/dist/esm/components/LanguageRow.d.ts +0 -1
  84. package/dist/esm/components/LanguageRow.js +1 -1
  85. package/dist/esm/components/Layout.js +1 -1
  86. package/dist/esm/components/List.js +1 -1
  87. package/dist/esm/components/LogoOverlay.js +1 -1
  88. package/dist/esm/components/Map/Map.d.ts +0 -23
  89. package/dist/esm/components/Map/Map.js +1 -1
  90. package/dist/esm/components/Map/booth-by-xy.js +1 -1
  91. package/dist/esm/components/Map/drawing/config/TextFitter.d.ts +1 -1
  92. package/dist/esm/components/Map/drawing/config/config-all.d.ts +2 -3
  93. package/dist/esm/components/Map/drawing/config/config-all.js +1 -1
  94. package/dist/esm/components/Map/drawing/config/config-bg.d.ts +1 -1
  95. package/dist/esm/components/Map/drawing/config/config-bg.js +1 -1
  96. package/dist/esm/components/Map/drawing/config/config-booth-badge.d.ts +9 -0
  97. package/dist/esm/components/Map/drawing/config/config-booth-badge.js +1 -0
  98. package/dist/esm/components/Map/drawing/config/config-booth-bg.d.ts +5 -5
  99. package/dist/esm/components/Map/drawing/config/config-booth-bg.js +1 -1
  100. package/dist/esm/components/Map/drawing/config/config-booth-bookmark.d.ts +5 -5
  101. package/dist/esm/components/Map/drawing/config/config-booth-bookmark.js +1 -1
  102. package/dist/esm/components/Map/drawing/config/config-booth-border.d.ts +3 -3
  103. package/dist/esm/components/Map/drawing/config/config-booth-border.js +1 -1
  104. package/dist/esm/components/Map/drawing/config/config-booth-labels-special.d.ts +6 -6
  105. package/dist/esm/components/Map/drawing/config/config-booth-labels-special.js +2 -2
  106. package/dist/esm/components/Map/drawing/config/config-booth-labels.d.ts +5 -5
  107. package/dist/esm/components/Map/drawing/config/config-booth-labels.js +1 -1
  108. package/dist/esm/components/Map/drawing/config/config-booth-scaled.d.ts +3 -3
  109. package/dist/esm/components/Map/drawing/config/config-booth-scaled.js +1 -1
  110. package/dist/esm/components/Map/drawing/config/config-booths.d.ts +2 -2
  111. package/dist/esm/components/Map/drawing/config/config-booths.js +1 -1
  112. package/dist/esm/components/Map/drawing/config/config-load-layer.d.ts +2 -2
  113. package/dist/esm/components/Map/drawing/config/config-load-layer.js +1 -1
  114. package/dist/esm/components/Map/drawing/config/config-markers.d.ts +2 -3
  115. package/dist/esm/components/Map/drawing/config/config-markers.js +1 -1
  116. package/dist/esm/components/Map/drawing/config/config-wf.d.ts +2 -5
  117. package/dist/esm/components/Map/drawing/config/config-wf.js +1 -1
  118. package/dist/esm/components/Map/drawing/config/loadBoothsImages.d.ts +2 -3
  119. package/dist/esm/components/Map/drawing/config/loadBoothsImages.js +1 -1
  120. package/dist/esm/components/Map/drawing/config/route-snapping/snapPositionToRoute.d.ts +1 -1
  121. package/dist/esm/components/Map/drawing/config/route-snapping/snapPositionToRoute.js +1 -1
  122. package/dist/esm/components/Map/drawing/config/route-snapping/splitRouteByPoint.d.ts +1 -1
  123. package/dist/esm/components/Map/drawing/config/route-snapping/splitRouteByPoint.js +1 -1
  124. package/dist/esm/components/Map/drawing/config/route-snapping/types.d.ts +1 -1
  125. package/dist/esm/components/Map/drawing/config/route-snapping/utils.d.ts +1 -1
  126. package/dist/esm/components/Map/traffic/useBuildRoute.d.ts +3 -5
  127. package/dist/esm/components/Map/traffic/useBuildRoute.js +6 -6
  128. package/dist/esm/components/Map/traffic/useManageTraffic.d.ts +3 -5
  129. package/dist/esm/components/Map/traffic/useManageTraffic.js +1 -1
  130. package/dist/esm/components/MarketMaterialList.d.ts +3 -3
  131. package/dist/esm/components/MarketMaterialList.js +1 -1
  132. package/dist/esm/components/Menu.js +1 -2
  133. package/dist/esm/components/MobileToggleButton.js +1 -1
  134. package/dist/esm/components/MultiSelectGroups.d.ts +2 -2
  135. package/dist/esm/components/MultiSelectGroups.js +1 -1
  136. package/dist/esm/components/Overlay.d.ts +2 -0
  137. package/dist/esm/components/Overlay.js +1 -1
  138. package/dist/esm/components/OverlayContainer.js +1 -1
  139. package/dist/esm/components/QrCode.d.ts +46 -0
  140. package/dist/esm/components/QrCode.js +1 -0
  141. package/dist/esm/components/RebookingNotes.d.ts +2 -2
  142. package/dist/esm/components/RebookingNotes.js +1 -1
  143. package/dist/esm/components/RebookingRadioGroup.d.ts +2 -2
  144. package/dist/esm/components/RebookingRadioGroup.js +1 -1
  145. package/dist/esm/components/RoutePlanner/RoutePlanner.d.ts +4 -0
  146. package/dist/esm/components/RoutePlanner/RoutePlanner.js +1 -0
  147. package/dist/esm/components/RoutePlanner/RoutePlannerHeader.d.ts +4 -0
  148. package/dist/esm/components/RoutePlanner/RoutePlannerHeader.js +1 -0
  149. package/dist/esm/components/RoutePlanner/RoutePlannerStartPoint.d.ts +9 -0
  150. package/dist/esm/components/RoutePlanner/RoutePlannerStartPoint.js +1 -0
  151. package/dist/esm/components/RoutePlanner/RoutePlannerStopItem.d.ts +9 -0
  152. package/dist/esm/components/RoutePlanner/RoutePlannerStopItem.js +1 -0
  153. package/dist/esm/components/RouteQR.d.ts +2 -2
  154. package/dist/esm/components/RouteQR.js +1 -1
  155. package/dist/esm/components/Schedule.js +1 -1
  156. package/dist/esm/components/SearchBox.js +1 -1
  157. package/dist/esm/components/Sessions.js +1 -1
  158. package/dist/esm/components/Share.d.ts +2 -2
  159. package/dist/esm/components/Share.js +1 -1
  160. package/dist/esm/components/SidebarActions.d.ts +3 -0
  161. package/dist/esm/components/SidebarActions.js +1 -1
  162. package/dist/esm/components/SpeakersFiltersModal.js +1 -1
  163. package/dist/esm/components/ViewerMenuPanel.d.ts +5 -0
  164. package/dist/esm/components/ViewerMenuPanel.js +1 -0
  165. package/dist/esm/components/Wayfinding.d.ts +2 -2
  166. package/dist/esm/components/Wayfinding.js +1 -1
  167. package/dist/esm/components/WayfindingTemplate.d.ts +2 -2
  168. package/dist/esm/components/WayfindingTemplate.js +1 -1
  169. package/dist/esm/components/gps/GpsPermissionRequest.d.ts +4 -2
  170. package/dist/esm/components/gps/GpsPermissionRequest.js +1 -1
  171. package/dist/esm/components/index.d.ts +1 -3
  172. package/dist/esm/components/index.js +1 -1
  173. package/dist/esm/constants.d.ts +7 -0
  174. package/dist/esm/constants.js +1 -1
  175. package/dist/esm/data/tours.json +114 -0
  176. package/dist/esm/floorplan.loader.d.ts +5 -0
  177. package/dist/esm/floorplan.loader.js +1 -1
  178. package/dist/esm/floorplan.ready.d.ts +6 -3
  179. package/dist/esm/floorplan.ready.js +1 -1
  180. package/dist/esm/index.d.ts +0 -2
  181. package/dist/esm/index.js +1 -1
  182. package/dist/esm/load.d.ts +4 -1
  183. package/dist/esm/load.js +2 -2
  184. package/dist/esm/offline/offlineManager.js +1 -1
  185. package/dist/esm/renderer/HandlerRegistry.d.ts +18 -0
  186. package/dist/esm/renderer/HandlerRegistry.js +1 -0
  187. package/dist/esm/renderer/RendererService.d.ts +26 -0
  188. package/dist/esm/renderer/RendererService.js +1 -0
  189. package/dist/esm/renderer/engine-core/animation.d.ts +7 -0
  190. package/dist/esm/renderer/engine-core/animation.js +1 -0
  191. package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/canvases.d.ts +1 -1
  192. package/dist/esm/renderer/engine-core/canvases.js +1 -0
  193. package/dist/esm/renderer/engine-core/fonts.js +1 -0
  194. package/dist/esm/renderer/engine-core/types.js +1 -0
  195. package/dist/esm/{components/Map/drawing/config/engine-core → renderer}/index.d.ts +10 -10
  196. package/dist/esm/renderer/index.js +1 -0
  197. package/dist/esm/services/routing.js +1 -1
  198. package/dist/esm/store/BookmarksStore.d.ts +12 -0
  199. package/dist/esm/store/BookmarksStore.js +2 -0
  200. package/dist/esm/store/FuzzySearchEngineStore.d.ts +7 -3
  201. package/dist/esm/store/FuzzySearchEngineStore.js +1 -1
  202. package/dist/esm/store/LayerStore.d.ts +1 -0
  203. package/dist/esm/store/LayerStore.js +1 -1
  204. package/dist/esm/store/RootStore.d.ts +10 -10
  205. package/dist/esm/store/RootStore.js +1 -1
  206. package/dist/esm/store/RoutePlannerStore.d.ts +58 -0
  207. package/dist/esm/store/RoutePlannerStore.js +1 -0
  208. package/dist/esm/store/RouteStore.d.ts +1 -1
  209. package/dist/esm/store/RouteStore.js +1 -1
  210. package/dist/esm/store/SearchStore.d.ts +2 -0
  211. package/dist/esm/store/SearchStore.js +1 -1
  212. package/dist/esm/store/ToursStore.js +1 -1
  213. package/dist/esm/store/UIState.d.ts +10 -7
  214. package/dist/esm/store/UIState.js +1 -1
  215. package/dist/esm/store/init/index.js +1 -1
  216. package/dist/esm/store/init/init-bookmarks.d.ts +7 -0
  217. package/dist/esm/store/init/init-bookmarks.js +1 -0
  218. package/dist/esm/store/init/init-events.d.ts +1 -1
  219. package/dist/esm/store/init/init-events.js +1 -1
  220. package/dist/esm/store/init/init-exhibitors.d.ts +1 -1
  221. package/dist/esm/store/init/init-exhibitors.js +1 -1
  222. package/dist/esm/store/init/init-layers.js +1 -1
  223. package/dist/esm/store/init/init-speakers.d.ts +1 -1
  224. package/dist/esm/store/init/init-speakers.js +1 -1
  225. package/dist/esm/store/search-buttons/SearchButtonsStore.d.ts +1 -1
  226. package/dist/esm/store/search-buttons/SearchButtonsStore.js +1 -1
  227. package/dist/esm/store/types.d.ts +11 -3
  228. package/dist/esm/tools/base-runtime-url.js +1 -1
  229. package/dist/esm/tools/sentry.js +1 -1
  230. package/dist/esm/tools/telemetry.d.ts +35 -0
  231. package/dist/esm/tools/telemetry.js +1 -0
  232. package/dist/esm/tools/track-event.d.ts +3 -1
  233. package/dist/esm/tools/track-event.js +1 -1
  234. package/dist/esm/utils/buildOptimizedRoute.d.ts +11 -0
  235. package/dist/esm/utils/buildOptimizedRoute.js +1 -0
  236. package/dist/esm/utils/detectLimitedModeViaImage.js +1 -1
  237. package/dist/esm/utils/geometry.d.ts +2 -0
  238. package/dist/esm/utils/geometry.js +1 -0
  239. package/dist/esm/utils/i18n.d.ts +6 -4
  240. package/dist/esm/utils/i18n.js +1 -1
  241. package/dist/esm/utils/loadCustomCss.d.ts +1 -1
  242. package/dist/esm/utils/loadCustomCss.js +1 -1
  243. package/dist/esm/utils/mapEntity.js +1 -1
  244. package/dist/esm/utils/math.d.ts +7 -0
  245. package/dist/esm/utils/math.js +1 -0
  246. package/dist/esm/utils/shortenName.js +1 -1
  247. package/dist/esm/utils/use-shadow.d.ts +1 -1
  248. package/dist/esm/utils/use-shadow.js +1 -1
  249. package/dist/esm/utils/useRenderTarget.js +1 -1
  250. package/dist/esm/wayfinding/_PLAN-public-api.d.ts +220 -0
  251. package/dist/esm/wayfinding/_PLAN-public-api.js +1 -0
  252. package/dist/esm/{utils/wayfinding.d.ts → wayfinding/__integration__/legacy/legacyWayfinding.d.ts} +5 -15
  253. package/dist/esm/wayfinding/__integration__/legacy/legacyWayfinding.js +1 -0
  254. package/dist/esm/wayfinding/__tests__/helpers.d.ts +21 -0
  255. package/dist/esm/wayfinding/__tests__/helpers.js +1 -0
  256. package/dist/esm/wayfinding/adapters/boothToWaypoint.d.ts +12 -0
  257. package/dist/esm/wayfinding/adapters/boothToWaypoint.js +1 -0
  258. package/dist/esm/wayfinding/adapters/graphDataSource.d.ts +3 -0
  259. package/dist/esm/wayfinding/adapters/graphDataSource.js +1 -0
  260. package/dist/esm/wayfinding/graph/buildGraph.d.ts +3 -0
  261. package/dist/esm/wayfinding/graph/buildGraph.js +1 -0
  262. package/dist/esm/wayfinding/graph/buildNGraph.d.ts +9 -0
  263. package/dist/esm/wayfinding/graph/buildNGraph.js +1 -0
  264. package/dist/esm/wayfinding/graph/constants.d.ts +3 -0
  265. package/dist/esm/wayfinding/graph/constants.js +1 -0
  266. package/dist/esm/wayfinding/graph/findShortestPath.d.ts +14 -0
  267. package/dist/esm/wayfinding/graph/findShortestPath.js +1 -0
  268. package/dist/esm/wayfinding/graph/graphCache.d.ts +6 -0
  269. package/dist/esm/wayfinding/graph/graphCache.js +1 -0
  270. package/dist/esm/wayfinding/graph/graphHelpers.d.ts +8 -0
  271. package/dist/esm/wayfinding/graph/graphHelpers.js +1 -0
  272. package/dist/esm/wayfinding/graph/linkCost.d.ts +4 -0
  273. package/dist/esm/wayfinding/graph/linkCost.js +1 -0
  274. package/dist/esm/wayfinding/graph/pathfinder/aStarPathFinder.d.ts +3 -0
  275. package/dist/esm/wayfinding/graph/pathfinder/aStarPathFinder.js +1 -0
  276. package/dist/esm/wayfinding/graph/pathfinder/parseNodeId.d.ts +9 -0
  277. package/dist/esm/wayfinding/graph/pathfinder/parseNodeId.js +1 -0
  278. package/dist/esm/wayfinding/index.d.ts +18 -0
  279. package/dist/esm/wayfinding/index.js +1 -0
  280. package/dist/esm/wayfinding/rendering/computeTransitionPoints.d.ts +31 -0
  281. package/dist/esm/wayfinding/rendering/computeTransitionPoints.js +1 -0
  282. package/dist/esm/wayfinding/rendering/normalizeRouteDirection.d.ts +19 -0
  283. package/dist/esm/wayfinding/rendering/normalizeRouteDirection.js +1 -0
  284. package/dist/esm/wayfinding/rendering/routeGeometry.d.ts +16 -0
  285. package/dist/esm/wayfinding/rendering/routeGeometry.js +1 -0
  286. package/dist/esm/wayfinding/routing/buildMultiPointRoute.d.ts +11 -0
  287. package/dist/esm/wayfinding/routing/buildMultiPointRoute.js +1 -0
  288. package/dist/esm/wayfinding/routing/buildRoute.d.ts +9 -0
  289. package/dist/esm/wayfinding/routing/buildRoute.js +1 -0
  290. package/dist/esm/wayfinding/routing/findNearestGraphPoint.d.ts +21 -0
  291. package/dist/esm/wayfinding/routing/findNearestGraphPoint.js +1 -0
  292. package/dist/esm/wayfinding/routing/getGraphLines.d.ts +14 -0
  293. package/dist/esm/wayfinding/routing/getGraphLines.js +1 -0
  294. package/dist/esm/wayfinding/routing/getRouteLength.d.ts +3 -0
  295. package/dist/esm/wayfinding/routing/getRouteLength.js +1 -0
  296. package/dist/esm/wayfinding/routing/routeResult.d.ts +4 -0
  297. package/dist/esm/wayfinding/routing/routeResult.js +1 -0
  298. package/dist/esm/wayfinding/types.d.ts +76 -0
  299. package/dist/esm/wayfinding/types.js +1 -0
  300. package/package.json +4 -8
  301. package/dist/browser/Debug-BcuHrger.js +0 -31
  302. package/dist/browser/Demo-BYqw6OYP.js +0 -38
  303. package/dist/browser/Free-CmGdntqG.js +0 -42
  304. package/dist/browser/Gallery-Duo1PfdD.js +0 -279
  305. package/dist/browser/GpsLoader-C4DNB5Gk.js +0 -131
  306. package/dist/browser/KioskStore-B_V6qTqR.js +0 -216
  307. package/dist/browser/Mapbox-ChR5sYZi.js +0 -109
  308. package/dist/browser/boolean-editor-BNBndiMi.js +0 -148
  309. package/dist/browser/debug-ui-D2eqc4aS.js +0 -58
  310. package/dist/browser/fetch-retry.umd-bXmyDpSc.js +0 -114
  311. package/dist/browser/index-Ao2u5imr.js +0 -48
  312. package/dist/browser/index-B-GWDT1K.js +0 -83
  313. package/dist/browser/index-CNJY6Um1.js +0 -12526
  314. package/dist/browser/index-Dj8pSRq1.js +0 -45
  315. package/dist/browser/jsx-runtime-jIxVPx5o.js +0 -31
  316. package/dist/browser/sw.js +0 -2
  317. package/dist/esm/components/BoothRow.d.ts +0 -8
  318. package/dist/esm/components/BoothRow.js +0 -1
  319. package/dist/esm/components/ExhibitorRow.d.ts +0 -9
  320. package/dist/esm/components/ExhibitorRow.js +0 -1
  321. package/dist/esm/components/Map/drawing/config/engine-core/animation.d.ts +0 -3
  322. package/dist/esm/components/Map/drawing/config/engine-core/animation.js +0 -1
  323. package/dist/esm/components/Map/drawing/config/engine-core/canvases.js +0 -1
  324. package/dist/esm/components/Map/drawing/config/engine-core/fonts.js +0 -1
  325. package/dist/esm/components/Map/drawing/config/engine-core/index.js +0 -1
  326. package/dist/esm/components/Map/drawing/config/engine-core/renderer.d.ts +0 -4
  327. package/dist/esm/components/Map/drawing/config/engine-core/renderer.js +0 -1
  328. package/dist/esm/components/ScheduleRow.d.ts +0 -8
  329. package/dist/esm/components/ScheduleRow.js +0 -1
  330. package/dist/esm/expofp-debug.d.ts +0 -5
  331. package/dist/esm/expofp-debug.js +0 -1
  332. package/dist/esm/offline/sw.d.ts +0 -2
  333. package/dist/esm/offline/sw.js +0 -1
  334. package/dist/esm/store/LanguageStore.d.ts +0 -19
  335. package/dist/esm/store/LanguageStore.js +0 -1
  336. package/dist/esm/store/init/init-language.d.ts +0 -3
  337. package/dist/esm/store/init/init-language.js +0 -1
  338. package/dist/esm/utils/toRadians.d.ts +0 -3
  339. package/dist/esm/utils/toRadians.js +0 -1
  340. package/dist/esm/utils/wayfinding.js +0 -1
  341. package/dist/stats.html +0 -4950
  342. /package/dist/esm/{components/Map/drawing/config/engine-core/types.js → _misc_to_move/manifest.js} +0 -0
  343. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/defs.d.ts +0 -0
  344. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/defs.js +0 -0
  345. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/fonts.d.ts +0 -0
  346. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/settings.d.ts +0 -0
  347. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/settings.js +0 -0
  348. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/types.d.ts +0 -0
  349. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/update-def.d.ts +0 -0
  350. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/update-def.js +0 -0
  351. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/utils/rotation.d.ts +0 -0
  352. /package/dist/esm/{components/Map/drawing/config → renderer}/engine-core/utils/rotation.js +0 -0
@@ -1,9 +1,18 @@
1
- import { j as gt } from "./jsx-runtime-jIxVPx5o.js";
2
- import { y as bt } from "./index-Dj8pSRq1.js";
3
- import { C as Qt, V as E, M as U, T as N, Q as yt, S as vt, g as x, h as Jt, P as _t, i as $t, L as Nt, j as te, F as Vt, k as ee, l as se, m as et, n as B, o as F, p as W, D as ie, q as Bt, G as Wt, B as wt, r as H, t as st, v as Pt, w as J, x as Tt, y as it, z as X, A as oe, E as ae, H as Et, N as Mt, I as ne, J as Ht, K as ct, O as Ft, U as re, W as K, X as he, Y as le, Z as ce, _ as Ae, $ as qt, a0 as ot, a1 as z, a2 as Kt, s as P, a3 as de, a4 as pe, a5 as ue, f as At, a as b, a6 as fe, a7 as St, u as me, e as Z, R as Lt, c as ge } from "./floorplan.ready-wFOhoP9S.js";
4
- import { ae as dt, r as Rt } from "./index-CNJY6Um1.js";
5
- import { j as be, m as q, s as ye, k as ve, h as xt, z as we, a as at, i as Pe } from "./data-Cpuv4_nZ.js";
6
- const Dt = { type: "change" }, pt = { type: "start" }, zt = { type: "end" }, _ = new Jt(), kt = new _t(), Te = Math.cos(70 * $t.DEG2RAD), S = new E(), R = 2 * Math.PI, w = {
1
+ import { j as gt } from "./jsx-runtime-SRODV826.js";
2
+ import { y as bt } from "./index-xQ7Ip4HB.js";
3
+ import { C as Qt, V as E, M as U, T as N, Q as yt, S as vt, g as x, h as Jt, P as _t, i as $t, L as Nt, j as te, F as Vt, k as ee, l as se, m as et, n as B, o as F, p as W, D as ie, q as Bt, G as Wt, B as wt, r as H, t as st, v as Pt, w as J, x as Tt, y as it, z as X, A as oe, E as ae, H as Et, N as Mt, I as ne, J as Ht, K as ct, O as Ft, U as re, W as K, X as he, Y as le, Z as ce, _ as Ae, $ as qt, a0 as ot, a1 as z, a2 as Kt, s as P, a3 as de, a4 as pe, a5 as ue, f as At, a as b, a6 as fe, a7 as St, u as me, e as Z, R as Rt, c as ge } from "./floorplan.ready-DwzYk5s3.js";
4
+ import { av as dt, r as Lt } from "./index.js";
5
+ import { j as be, m as q, s as ye, k as ve, h as xt, z as we, a as at, i as Pe } from "./data-DU1RvfMj.js";
6
+ (function() {
7
+ try {
8
+ var h = typeof window < "u" ? window : typeof global < "u" ? global : typeof globalThis < "u" ? globalThis : typeof self < "u" ? self : {};
9
+ h.SENTRY_RELEASE = { id: "3.0.0" };
10
+ var t = new h.Error().stack;
11
+ t && (h._sentryDebugIds = h._sentryDebugIds || {}, h._sentryDebugIds[t] = "02905983-a5c9-4081-981f-44f652bde53e", h._sentryDebugIdIdentifier = "sentry-dbid-02905983-a5c9-4081-981f-44f652bde53e");
12
+ } catch {
13
+ }
14
+ })();
15
+ const Dt = { type: "change" }, pt = { type: "start" }, zt = { type: "end" }, _ = new Jt(), kt = new _t(), Te = Math.cos(70 * $t.DEG2RAD), S = new E(), L = 2 * Math.PI, w = {
7
16
  NONE: -1,
8
17
  ROTATE: 0,
9
18
  DOLLY: 1,
@@ -15,7 +24,7 @@ const Dt = { type: "change" }, pt = { type: "start" }, zt = { type: "end" }, _ =
15
24
  }, nt = 1e-6;
16
25
  class Ee extends Qt {
17
26
  constructor(t, e = null) {
18
- super(t, e), this.state = w.NONE, this.enabled = !0, this.target = new E(), this.cursor = new E(), this.minDistance = 0, this.maxDistance = 1 / 0, this.minZoom = 0, this.maxZoom = 1 / 0, this.minTargetRadius = 0, this.maxTargetRadius = 1 / 0, this.minPolarAngle = 0, this.maxPolarAngle = Math.PI, this.minAzimuthAngle = -1 / 0, this.maxAzimuthAngle = 1 / 0, this.enableDamping = !1, this.dampingFactor = 0.05, this.enableZoom = !0, this.zoomSpeed = 1, this.enableRotate = !0, this.rotateSpeed = 1, this.keyRotateSpeed = 1, this.enablePan = !0, this.panSpeed = 1, this.screenSpacePanning = !0, this.keyPanSpeed = 7, this.zoomToCursor = !1, this.autoRotate = !1, this.autoRotateSpeed = 2, this.keys = { LEFT: "ArrowLeft", UP: "ArrowUp", RIGHT: "ArrowRight", BOTTOM: "ArrowDown" }, this.mouseButtons = { LEFT: U.ROTATE, MIDDLE: U.DOLLY, RIGHT: U.PAN }, this.touches = { ONE: N.ROTATE, TWO: N.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this._lastPosition = new E(), this._lastQuaternion = new yt(), this._lastTargetPosition = new E(), this._quat = new yt().setFromUnitVectors(t.up, new E(0, 1, 0)), this._quatInverse = this._quat.clone().invert(), this._spherical = new vt(), this._sphericalDelta = new vt(), this._scale = 1, this._panOffset = new E(), this._rotateStart = new x(), this._rotateEnd = new x(), this._rotateDelta = new x(), this._panStart = new x(), this._panEnd = new x(), this._panDelta = new x(), this._dollyStart = new x(), this._dollyEnd = new x(), this._dollyDelta = new x(), this._dollyDirection = new E(), this._mouse = new x(), this._performCursorZoom = !1, this._pointers = [], this._pointerPositions = {}, this._controlActive = !1, this._onPointerMove = Se.bind(this), this._onPointerDown = Me.bind(this), this._onPointerUp = Le.bind(this), this._onContextMenu = Ce.bind(this), this._onMouseWheel = De.bind(this), this._onKeyDown = ke.bind(this), this._onTouchStart = Oe.bind(this), this._onTouchMove = Ze.bind(this), this._onMouseDown = Re.bind(this), this._onMouseMove = xe.bind(this), this._interceptControlDown = Ie.bind(this), this._interceptControlUp = Ue.bind(this), this.domElement !== null && this.connect(), this.update();
27
+ super(t, e), this.state = w.NONE, this.enabled = !0, this.target = new E(), this.cursor = new E(), this.minDistance = 0, this.maxDistance = 1 / 0, this.minZoom = 0, this.maxZoom = 1 / 0, this.minTargetRadius = 0, this.maxTargetRadius = 1 / 0, this.minPolarAngle = 0, this.maxPolarAngle = Math.PI, this.minAzimuthAngle = -1 / 0, this.maxAzimuthAngle = 1 / 0, this.enableDamping = !1, this.dampingFactor = 0.05, this.enableZoom = !0, this.zoomSpeed = 1, this.enableRotate = !0, this.rotateSpeed = 1, this.keyRotateSpeed = 1, this.enablePan = !0, this.panSpeed = 1, this.screenSpacePanning = !0, this.keyPanSpeed = 7, this.zoomToCursor = !1, this.autoRotate = !1, this.autoRotateSpeed = 2, this.keys = { LEFT: "ArrowLeft", UP: "ArrowUp", RIGHT: "ArrowRight", BOTTOM: "ArrowDown" }, this.mouseButtons = { LEFT: U.ROTATE, MIDDLE: U.DOLLY, RIGHT: U.PAN }, this.touches = { ONE: N.ROTATE, TWO: N.DOLLY_PAN }, this.target0 = this.target.clone(), this.position0 = this.object.position.clone(), this.zoom0 = this.object.zoom, this._domElementKeyEvents = null, this._lastPosition = new E(), this._lastQuaternion = new yt(), this._lastTargetPosition = new E(), this._quat = new yt().setFromUnitVectors(t.up, new E(0, 1, 0)), this._quatInverse = this._quat.clone().invert(), this._spherical = new vt(), this._sphericalDelta = new vt(), this._scale = 1, this._panOffset = new E(), this._rotateStart = new x(), this._rotateEnd = new x(), this._rotateDelta = new x(), this._panStart = new x(), this._panEnd = new x(), this._panDelta = new x(), this._dollyStart = new x(), this._dollyEnd = new x(), this._dollyDelta = new x(), this._dollyDirection = new E(), this._mouse = new x(), this._performCursorZoom = !1, this._pointers = [], this._pointerPositions = {}, this._controlActive = !1, this._onPointerMove = Se.bind(this), this._onPointerDown = Me.bind(this), this._onPointerUp = Re.bind(this), this._onContextMenu = Ce.bind(this), this._onMouseWheel = De.bind(this), this._onKeyDown = ke.bind(this), this._onTouchStart = Oe.bind(this), this._onTouchMove = Ze.bind(this), this._onMouseDown = Le.bind(this), this._onMouseMove = xe.bind(this), this._interceptControlDown = Ie.bind(this), this._interceptControlUp = Ue.bind(this), this.domElement !== null && this.connect(), this.update();
19
28
  }
20
29
  connect() {
21
30
  this.domElement.addEventListener("pointerdown", this._onPointerDown), this.domElement.addEventListener("pointercancel", this._onPointerUp), this.domElement.addEventListener("contextmenu", this._onContextMenu), this.domElement.addEventListener("wheel", this._onMouseWheel, { passive: !1 }), this.domElement.getRootNode().addEventListener("keydown", this._interceptControlDown, { passive: !0, capture: !0 }), this.domElement.style.touchAction = "none";
@@ -51,7 +60,7 @@ class Ee extends Qt {
51
60
  const e = this.object.position;
52
61
  S.copy(e).sub(this.target), S.applyQuaternion(this._quat), this._spherical.setFromVector3(S), this.autoRotate && this.state === w.NONE && this._rotateLeft(this._getAutoRotationAngle(t)), this.enableDamping ? (this._spherical.theta += this._sphericalDelta.theta * this.dampingFactor, this._spherical.phi += this._sphericalDelta.phi * this.dampingFactor) : (this._spherical.theta += this._sphericalDelta.theta, this._spherical.phi += this._sphericalDelta.phi);
53
62
  let i = this.minAzimuthAngle, s = this.maxAzimuthAngle;
54
- isFinite(i) && isFinite(s) && (i < -Math.PI ? i += R : i > Math.PI && (i -= R), s < -Math.PI ? s += R : s > Math.PI && (s -= R), i <= s ? this._spherical.theta = Math.max(i, Math.min(s, this._spherical.theta)) : this._spherical.theta = this._spherical.theta > (i + s) / 2 ? Math.max(i, this._spherical.theta) : Math.min(s, this._spherical.theta)), this._spherical.phi = Math.max(this.minPolarAngle, Math.min(this.maxPolarAngle, this._spherical.phi)), this._spherical.makeSafe(), this.enableDamping === !0 ? this.target.addScaledVector(this._panOffset, this.dampingFactor) : this.target.add(this._panOffset), this.target.sub(this.cursor), this.target.clampLength(this.minTargetRadius, this.maxTargetRadius), this.target.add(this.cursor);
63
+ isFinite(i) && isFinite(s) && (i < -Math.PI ? i += L : i > Math.PI && (i -= L), s < -Math.PI ? s += L : s > Math.PI && (s -= L), i <= s ? this._spherical.theta = Math.max(i, Math.min(s, this._spherical.theta)) : this._spherical.theta = this._spherical.theta > (i + s) / 2 ? Math.max(i, this._spherical.theta) : Math.min(s, this._spherical.theta)), this._spherical.phi = Math.max(this.minPolarAngle, Math.min(this.maxPolarAngle, this._spherical.phi)), this._spherical.makeSafe(), this.enableDamping === !0 ? this.target.addScaledVector(this._panOffset, this.dampingFactor) : this.target.add(this._panOffset), this.target.sub(this.cursor), this.target.clampLength(this.minTargetRadius, this.maxTargetRadius), this.target.add(this.cursor);
55
64
  let o = !1;
56
65
  if (this.zoomToCursor && this._performCursorZoom || this.object.isOrthographicCamera)
57
66
  this._spherical.radius = this._clampDistance(this._spherical.radius);
@@ -71,8 +80,8 @@ class Ee extends Qt {
71
80
  n.unproject(this.object);
72
81
  const r = this.object.zoom;
73
82
  this.object.zoom = Math.max(this.minZoom, Math.min(this.maxZoom, this.object.zoom / this._scale)), this.object.updateProjectionMatrix(), o = r !== this.object.zoom;
74
- const h = new E(this._mouse.x, this._mouse.y, 0);
75
- h.unproject(this.object), this.object.position.sub(h).add(n), this.object.updateMatrixWorld(), a = S.length();
83
+ const l = new E(this._mouse.x, this._mouse.y, 0);
84
+ l.unproject(this.object), this.object.position.sub(l).add(n), this.object.updateMatrixWorld(), a = S.length();
76
85
  } else
77
86
  console.warn("WARNING: OrbitControls.js encountered an unknown camera type - zoom to cursor disabled."), this.zoomToCursor = !1;
78
87
  a !== null && (this.screenSpacePanning ? this.target.set(0, 0, -1).transformDirection(this.object.matrix).multiplyScalar(a).add(this.object.position) : (_.origin.copy(this.object.position), _.direction.set(0, 0, -1).transformDirection(this.object.matrix), Math.abs(this.object.up.dot(_.direction)) < Te ? this.object.lookAt(this.target) : (kt.setFromNormalAndCoplanarPoint(this.object.up, this.target), _.intersectPlane(kt, this.target))));
@@ -83,7 +92,7 @@ class Ee extends Qt {
83
92
  return this._scale = 1, this._performCursorZoom = !1, o || this._lastPosition.distanceToSquared(this.object.position) > nt || 8 * (1 - this._lastQuaternion.dot(this.object.quaternion)) > nt || this._lastTargetPosition.distanceToSquared(this.target) > nt ? (this.dispatchEvent(Dt), this._lastPosition.copy(this.object.position), this._lastQuaternion.copy(this.object.quaternion), this._lastTargetPosition.copy(this.target), !0) : !1;
84
93
  }
85
94
  _getAutoRotationAngle(t) {
86
- return t !== null ? R / 60 * this.autoRotateSpeed * t : R / 60 / 60 * this.autoRotateSpeed;
95
+ return t !== null ? L / 60 * this.autoRotateSpeed * t : L / 60 / 60 * this.autoRotateSpeed;
87
96
  }
88
97
  _getZoomScale(t) {
89
98
  const e = Math.abs(t * 0.01);
@@ -142,7 +151,7 @@ class Ee extends Qt {
142
151
  _handleMouseMoveRotate(t) {
143
152
  this._rotateEnd.set(t.clientX, t.clientY), this._rotateDelta.subVectors(this._rotateEnd, this._rotateStart).multiplyScalar(this.rotateSpeed);
144
153
  const e = this.domElement;
145
- this._rotateLeft(R * this._rotateDelta.x / e.clientHeight), this._rotateUp(R * this._rotateDelta.y / e.clientHeight), this._rotateStart.copy(this._rotateEnd), this.update();
154
+ this._rotateLeft(L * this._rotateDelta.x / e.clientHeight), this._rotateUp(L * this._rotateDelta.y / e.clientHeight), this._rotateStart.copy(this._rotateEnd), this.update();
146
155
  }
147
156
  _handleMouseMoveDolly(t) {
148
157
  this._dollyEnd.set(t.clientX, t.clientY), this._dollyDelta.subVectors(this._dollyEnd, this._dollyStart), this._dollyDelta.y > 0 ? this._dollyOut(this._getZoomScale(this._dollyDelta.y)) : this._dollyDelta.y < 0 && this._dollyIn(this._getZoomScale(this._dollyDelta.y)), this._dollyStart.copy(this._dollyEnd), this.update();
@@ -157,16 +166,16 @@ class Ee extends Qt {
157
166
  let e = !1;
158
167
  switch (t.code) {
159
168
  case this.keys.UP:
160
- t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateUp(R * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(0, this.keyPanSpeed), e = !0;
169
+ t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateUp(L * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(0, this.keyPanSpeed), e = !0;
161
170
  break;
162
171
  case this.keys.BOTTOM:
163
- t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateUp(-R * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(0, -this.keyPanSpeed), e = !0;
172
+ t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateUp(-L * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(0, -this.keyPanSpeed), e = !0;
164
173
  break;
165
174
  case this.keys.LEFT:
166
- t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateLeft(R * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(this.keyPanSpeed, 0), e = !0;
175
+ t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateLeft(L * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(this.keyPanSpeed, 0), e = !0;
167
176
  break;
168
177
  case this.keys.RIGHT:
169
- t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateLeft(-R * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(-this.keyPanSpeed, 0), e = !0;
178
+ t.ctrlKey || t.metaKey || t.shiftKey ? this.enableRotate && this._rotateLeft(-L * this.keyRotateSpeed / this.domElement.clientHeight) : this.enablePan && this._pan(-this.keyPanSpeed, 0), e = !0;
170
179
  break;
171
180
  }
172
181
  e && (t.preventDefault(), this.update());
@@ -206,7 +215,7 @@ class Ee extends Qt {
206
215
  }
207
216
  this._rotateDelta.subVectors(this._rotateEnd, this._rotateStart).multiplyScalar(this.rotateSpeed);
208
217
  const e = this.domElement;
209
- this._rotateLeft(R * this._rotateDelta.x / e.clientHeight), this._rotateUp(R * this._rotateDelta.y / e.clientHeight), this._rotateStart.copy(this._rotateEnd);
218
+ this._rotateLeft(L * this._rotateDelta.x / e.clientHeight), this._rotateUp(L * this._rotateDelta.y / e.clientHeight), this._rotateStart.copy(this._rotateEnd);
210
219
  }
211
220
  _handleTouchMovePan(t) {
212
221
  if (this._pointers.length === 1)
@@ -272,16 +281,16 @@ class Ee extends Qt {
272
281
  return t.ctrlKey && !this._controlActive && (i.deltaY *= 10), i;
273
282
  }
274
283
  }
275
- function Me(l) {
276
- this.enabled !== !1 && (this._pointers.length === 0 && (this.domElement.setPointerCapture(l.pointerId), this.domElement.addEventListener("pointermove", this._onPointerMove), this.domElement.addEventListener("pointerup", this._onPointerUp)), !this._isTrackingPointer(l) && (this._addPointer(l), l.pointerType === "touch" ? this._onTouchStart(l) : this._onMouseDown(l)));
284
+ function Me(h) {
285
+ this.enabled !== !1 && (this._pointers.length === 0 && (this.domElement.setPointerCapture(h.pointerId), this.domElement.addEventListener("pointermove", this._onPointerMove), this.domElement.addEventListener("pointerup", this._onPointerUp)), !this._isTrackingPointer(h) && (this._addPointer(h), h.pointerType === "touch" ? this._onTouchStart(h) : this._onMouseDown(h)));
277
286
  }
278
- function Se(l) {
279
- this.enabled !== !1 && (l.pointerType === "touch" ? this._onTouchMove(l) : this._onMouseMove(l));
287
+ function Se(h) {
288
+ this.enabled !== !1 && (h.pointerType === "touch" ? this._onTouchMove(h) : this._onMouseMove(h));
280
289
  }
281
- function Le(l) {
282
- switch (this._removePointer(l), this._pointers.length) {
290
+ function Re(h) {
291
+ switch (this._removePointer(h), this._pointers.length) {
283
292
  case 0:
284
- this.domElement.releasePointerCapture(l.pointerId), this.domElement.removeEventListener("pointermove", this._onPointerMove), this.domElement.removeEventListener("pointerup", this._onPointerUp), this.dispatchEvent(zt), this.state = w.NONE;
293
+ this.domElement.releasePointerCapture(h.pointerId), this.domElement.removeEventListener("pointermove", this._onPointerMove), this.domElement.removeEventListener("pointerup", this._onPointerUp), this.dispatchEvent(zt), this.state = w.NONE;
285
294
  break;
286
295
  case 1:
287
296
  const t = this._pointers[0], e = this._pointerPositions[t];
@@ -289,9 +298,9 @@ function Le(l) {
289
298
  break;
290
299
  }
291
300
  }
292
- function Re(l) {
301
+ function Le(h) {
293
302
  let t;
294
- switch (l.button) {
303
+ switch (h.button) {
295
304
  case 0:
296
305
  t = this.mouseButtons.LEFT;
297
306
  break;
@@ -307,24 +316,24 @@ function Re(l) {
307
316
  switch (t) {
308
317
  case U.DOLLY:
309
318
  if (this.enableZoom === !1) return;
310
- this._handleMouseDownDolly(l), this.state = w.DOLLY;
319
+ this._handleMouseDownDolly(h), this.state = w.DOLLY;
311
320
  break;
312
321
  case U.ROTATE:
313
- if (l.ctrlKey || l.metaKey || l.shiftKey) {
322
+ if (h.ctrlKey || h.metaKey || h.shiftKey) {
314
323
  if (this.enablePan === !1) return;
315
- this._handleMouseDownPan(l), this.state = w.PAN;
324
+ this._handleMouseDownPan(h), this.state = w.PAN;
316
325
  } else {
317
326
  if (this.enableRotate === !1) return;
318
- this._handleMouseDownRotate(l), this.state = w.ROTATE;
327
+ this._handleMouseDownRotate(h), this.state = w.ROTATE;
319
328
  }
320
329
  break;
321
330
  case U.PAN:
322
- if (l.ctrlKey || l.metaKey || l.shiftKey) {
331
+ if (h.ctrlKey || h.metaKey || h.shiftKey) {
323
332
  if (this.enableRotate === !1) return;
324
- this._handleMouseDownRotate(l), this.state = w.ROTATE;
333
+ this._handleMouseDownRotate(h), this.state = w.ROTATE;
325
334
  } else {
326
335
  if (this.enablePan === !1) return;
327
- this._handleMouseDownPan(l), this.state = w.PAN;
336
+ this._handleMouseDownPan(h), this.state = w.PAN;
328
337
  }
329
338
  break;
330
339
  default:
@@ -332,39 +341,39 @@ function Re(l) {
332
341
  }
333
342
  this.state !== w.NONE && this.dispatchEvent(pt);
334
343
  }
335
- function xe(l) {
344
+ function xe(h) {
336
345
  switch (this.state) {
337
346
  case w.ROTATE:
338
347
  if (this.enableRotate === !1) return;
339
- this._handleMouseMoveRotate(l);
348
+ this._handleMouseMoveRotate(h);
340
349
  break;
341
350
  case w.DOLLY:
342
351
  if (this.enableZoom === !1) return;
343
- this._handleMouseMoveDolly(l);
352
+ this._handleMouseMoveDolly(h);
344
353
  break;
345
354
  case w.PAN:
346
355
  if (this.enablePan === !1) return;
347
- this._handleMouseMovePan(l);
356
+ this._handleMouseMovePan(h);
348
357
  break;
349
358
  }
350
359
  }
351
- function De(l) {
352
- this.enabled === !1 || this.enableZoom === !1 || this.state !== w.NONE || (l.preventDefault(), this.dispatchEvent(pt), this._handleMouseWheel(this._customWheelEvent(l)), this.dispatchEvent(zt));
360
+ function De(h) {
361
+ this.enabled === !1 || this.enableZoom === !1 || this.state !== w.NONE || (h.preventDefault(), this.dispatchEvent(pt), this._handleMouseWheel(this._customWheelEvent(h)), this.dispatchEvent(zt));
353
362
  }
354
- function ke(l) {
355
- this.enabled !== !1 && this._handleKeyDown(l);
363
+ function ke(h) {
364
+ this.enabled !== !1 && this._handleKeyDown(h);
356
365
  }
357
- function Oe(l) {
358
- switch (this._trackPointer(l), this._pointers.length) {
366
+ function Oe(h) {
367
+ switch (this._trackPointer(h), this._pointers.length) {
359
368
  case 1:
360
369
  switch (this.touches.ONE) {
361
370
  case N.ROTATE:
362
371
  if (this.enableRotate === !1) return;
363
- this._handleTouchStartRotate(l), this.state = w.TOUCH_ROTATE;
372
+ this._handleTouchStartRotate(h), this.state = w.TOUCH_ROTATE;
364
373
  break;
365
374
  case N.PAN:
366
375
  if (this.enablePan === !1) return;
367
- this._handleTouchStartPan(l), this.state = w.TOUCH_PAN;
376
+ this._handleTouchStartPan(h), this.state = w.TOUCH_PAN;
368
377
  break;
369
378
  default:
370
379
  this.state = w.NONE;
@@ -374,11 +383,11 @@ function Oe(l) {
374
383
  switch (this.touches.TWO) {
375
384
  case N.DOLLY_PAN:
376
385
  if (this.enableZoom === !1 && this.enablePan === !1) return;
377
- this._handleTouchStartDollyPan(l), this.state = w.TOUCH_DOLLY_PAN;
386
+ this._handleTouchStartDollyPan(h), this.state = w.TOUCH_DOLLY_PAN;
378
387
  break;
379
388
  case N.DOLLY_ROTATE:
380
389
  if (this.enableZoom === !1 && this.enableRotate === !1) return;
381
- this._handleTouchStartDollyRotate(l), this.state = w.TOUCH_DOLLY_ROTATE;
390
+ this._handleTouchStartDollyRotate(h), this.state = w.TOUCH_DOLLY_ROTATE;
382
391
  break;
383
392
  default:
384
393
  this.state = w.NONE;
@@ -389,36 +398,36 @@ function Oe(l) {
389
398
  }
390
399
  this.state !== w.NONE && this.dispatchEvent(pt);
391
400
  }
392
- function Ze(l) {
393
- switch (this._trackPointer(l), this.state) {
401
+ function Ze(h) {
402
+ switch (this._trackPointer(h), this.state) {
394
403
  case w.TOUCH_ROTATE:
395
404
  if (this.enableRotate === !1) return;
396
- this._handleTouchMoveRotate(l), this.update();
405
+ this._handleTouchMoveRotate(h), this.update();
397
406
  break;
398
407
  case w.TOUCH_PAN:
399
408
  if (this.enablePan === !1) return;
400
- this._handleTouchMovePan(l), this.update();
409
+ this._handleTouchMovePan(h), this.update();
401
410
  break;
402
411
  case w.TOUCH_DOLLY_PAN:
403
412
  if (this.enableZoom === !1 && this.enablePan === !1) return;
404
- this._handleTouchMoveDollyPan(l), this.update();
413
+ this._handleTouchMoveDollyPan(h), this.update();
405
414
  break;
406
415
  case w.TOUCH_DOLLY_ROTATE:
407
416
  if (this.enableZoom === !1 && this.enableRotate === !1) return;
408
- this._handleTouchMoveDollyRotate(l), this.update();
417
+ this._handleTouchMoveDollyRotate(h), this.update();
409
418
  break;
410
419
  default:
411
420
  this.state = w.NONE;
412
421
  }
413
422
  }
414
- function Ce(l) {
415
- this.enabled !== !1 && l.preventDefault();
423
+ function Ce(h) {
424
+ this.enabled !== !1 && h.preventDefault();
416
425
  }
417
- function Ie(l) {
418
- l.key === "Control" && (this._controlActive = !0, this.domElement.getRootNode().addEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
426
+ function Ie(h) {
427
+ h.key === "Control" && (this._controlActive = !0, this.domElement.getRootNode().addEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
419
428
  }
420
- function Ue(l) {
421
- l.key === "Control" && (this._controlActive = !1, this.domElement.getRootNode().removeEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
429
+ function Ue(h) {
430
+ h.key === "Control" && (this._controlActive = !1, this.domElement.getRootNode().removeEventListener("keyup", this._interceptControlUp, { passive: !0, capture: !0 }));
422
431
  }
423
432
  class je extends Nt {
424
433
  constructor(t) {
@@ -442,8 +451,8 @@ class je extends Nt {
442
451
  n.setPath(this.path), n.setRequestHeader(this.requestHeader), n.setWithCredentials(this.withCredentials), n.load(t, function(r) {
443
452
  try {
444
453
  e(o.parse(r, a));
445
- } catch (h) {
446
- s ? s(h) : console.error(h), o.manager.itemError(t);
454
+ } catch (l) {
455
+ s ? s(l) : console.error(l), o.manager.itemError(t);
447
456
  }
448
457
  }, i, s);
449
458
  }
@@ -468,13 +477,13 @@ class je extends Nt {
468
477
  let s = {};
469
478
  const o = /\s+/, a = {};
470
479
  for (let r = 0; r < i.length; r++) {
471
- let h = i[r];
472
- if (h = h.trim(), h.length === 0 || h.charAt(0) === "#")
480
+ let l = i[r];
481
+ if (l = l.trim(), l.length === 0 || l.charAt(0) === "#")
473
482
  continue;
474
- const c = h.indexOf(" ");
475
- let A = c >= 0 ? h.substring(0, c) : h;
483
+ const c = l.indexOf(" ");
484
+ let A = c >= 0 ? l.substring(0, c) : l;
476
485
  A = A.toLowerCase();
477
- let d = c >= 0 ? h.substring(c + 1) : "";
486
+ let d = c >= 0 ? l.substring(c + 1) : "";
478
487
  if (d = d.trim(), A === "newmtl")
479
488
  s = { name: d }, a[d] = s;
480
489
  else if (A === "ka" || A === "kd" || A === "ks" || A === "ke") {
@@ -508,15 +517,15 @@ class Ne {
508
517
  e[i] = o;
509
518
  for (const a in s) {
510
519
  let n = !0, r = s[a];
511
- const h = a.toLowerCase();
512
- switch (h) {
520
+ const l = a.toLowerCase();
521
+ switch (l) {
513
522
  case "kd":
514
523
  case "ka":
515
524
  case "ks":
516
525
  this.options && this.options.normalizeRGB && (r = [r[0] / 255, r[1] / 255, r[2] / 255]), this.options && this.options.ignoreZeroRGBs && r[0] === 0 && r[1] === 0 && r[2] === 0 && (n = !1);
517
526
  break;
518
527
  }
519
- n && (o[h] = r);
528
+ n && (o[l] = r);
520
529
  }
521
530
  }
522
531
  return e;
@@ -547,12 +556,12 @@ class Ne {
547
556
  }
548
557
  function a(n, r) {
549
558
  if (s[n]) return;
550
- const h = e.getTextureParams(r, s), c = e.loadTexture(o(e.baseUrl, h.url));
551
- c.repeat.copy(h.scale), c.offset.copy(h.offset), c.wrapS = e.wrap, c.wrapT = e.wrap, (n === "map" || n === "emissiveMap") && (c.colorSpace = F), s[n] = c;
559
+ const l = e.getTextureParams(r, s), c = e.loadTexture(o(e.baseUrl, l.url));
560
+ c.repeat.copy(l.scale), c.offset.copy(l.offset), c.wrapS = e.wrap, c.wrapT = e.wrap, (n === "map" || n === "emissiveMap") && (c.colorSpace = F), s[n] = c;
552
561
  }
553
562
  for (const n in i) {
554
563
  const r = i[n];
555
- let h;
564
+ let l;
556
565
  if (r !== "")
557
566
  switch (n.toLowerCase()) {
558
567
  // Ns is material specular exponent
@@ -591,10 +600,10 @@ class Ne {
591
600
  s.shininess = parseFloat(r);
592
601
  break;
593
602
  case "d":
594
- h = parseFloat(r), h < 1 && (s.opacity = h, s.transparent = !0);
603
+ l = parseFloat(r), l < 1 && (s.opacity = l, s.transparent = !0);
595
604
  break;
596
605
  case "tr":
597
- h = parseFloat(r), this.options && this.options.invertTrProperty && (h = 1 - h), h > 0 && (s.opacity = 1 - h, s.transparent = !0);
606
+ l = parseFloat(r), this.options && this.options.invertTrProperty && (l = 1 - l), l > 0 && (s.opacity = 1 - l, s.transparent = !0);
598
607
  break;
599
608
  }
600
609
  }
@@ -618,7 +627,7 @@ class Ne {
618
627
  }
619
628
  const Ve = /^[og]\s*(.+)?/, Be = /^mtllib /, We = /^usemtl /, He = /^usemap /, Ot = /\s+/, Zt = new E(), rt = new E(), Ct = new E(), It = new E(), O = new E(), $ = new B();
620
629
  function Fe() {
621
- const l = {
630
+ const h = {
622
631
  objects: [],
623
632
  object: {},
624
633
  vertices: [],
@@ -658,7 +667,7 @@ function Fe() {
658
667
  groupCount: -1,
659
668
  inherited: !1,
660
669
  clone: function(r) {
661
- const h = {
670
+ const l = {
662
671
  index: typeof r == "number" ? r : this.index,
663
672
  name: this.name,
664
673
  mtllib: this.mtllib,
@@ -668,7 +677,7 @@ function Fe() {
668
677
  groupCount: -1,
669
678
  inherited: !1
670
679
  };
671
- return h.clone = this.clone.bind(h), h;
680
+ return l.clone = this.clone.bind(l), l;
672
681
  }
673
682
  };
674
683
  return this.materials.push(n), n;
@@ -744,12 +753,12 @@ function Fe() {
744
753
  const e = this.uvs;
745
754
  this.object.geometry.uvs.push(e[t + 0], e[t + 1]);
746
755
  },
747
- addFace: function(t, e, i, s, o, a, n, r, h) {
756
+ addFace: function(t, e, i, s, o, a, n, r, l) {
748
757
  const c = this.vertices.length;
749
758
  let A = this.parseVertexIndex(t, c), d = this.parseVertexIndex(e, c), p = this.parseVertexIndex(i, c);
750
759
  if (this.addVertex(A, d, p), this.addColor(A, d, p), n !== void 0 && n !== "") {
751
760
  const f = this.normals.length;
752
- A = this.parseNormalIndex(n, f), d = this.parseNormalIndex(r, f), p = this.parseNormalIndex(h, f), this.addNormal(A, d, p);
761
+ A = this.parseNormalIndex(n, f), d = this.parseNormalIndex(r, f), p = this.parseNormalIndex(l, f), this.addNormal(A, d, p);
753
762
  } else
754
763
  this.addFaceNormal(A, d, p);
755
764
  if (s !== void 0 && s !== "") {
@@ -775,7 +784,7 @@ function Fe() {
775
784
  this.addUVLine(this.parseUVIndex(e[o], s));
776
785
  }
777
786
  };
778
- return l.startObject("", !1), l;
787
+ return h.startObject("", !1), h;
779
788
  }
780
789
  class qe extends Nt {
781
790
  constructor(t) {
@@ -804,12 +813,12 @@ class qe extends Nt {
804
813
  `);
805
814
  let s = [];
806
815
  for (let n = 0, r = i.length; n < r; n++) {
807
- const h = i[n].trimStart();
808
- if (h.length === 0) continue;
809
- const c = h.charAt(0);
816
+ const l = i[n].trimStart();
817
+ if (l.length === 0) continue;
818
+ const c = l.charAt(0);
810
819
  if (c !== "#")
811
820
  if (c === "v") {
812
- const A = h.split(Ot);
821
+ const A = l.split(Ot);
813
822
  switch (A[0]) {
814
823
  case "v":
815
824
  e.vertices.push(
@@ -838,7 +847,7 @@ class qe extends Nt {
838
847
  break;
839
848
  }
840
849
  } else if (c === "f") {
841
- const d = h.slice(1).trim().split(Ot), p = [];
850
+ const d = l.slice(1).trim().split(Ot), p = [];
842
851
  for (let u = 0, m = d.length; u < m; u++) {
843
852
  const g = d[u];
844
853
  if (g.length > 0) {
@@ -862,10 +871,10 @@ class qe extends Nt {
862
871
  );
863
872
  }
864
873
  } else if (c === "l") {
865
- const A = h.substring(1).trim().split(" ");
874
+ const A = l.substring(1).trim().split(" ");
866
875
  let d = [];
867
876
  const p = [];
868
- if (h.indexOf("/") === -1)
877
+ if (l.indexOf("/") === -1)
869
878
  d = A;
870
879
  else
871
880
  for (let f = 0, u = A.length; f < u; f++) {
@@ -874,19 +883,19 @@ class qe extends Nt {
874
883
  }
875
884
  e.addLineGeometry(d, p);
876
885
  } else if (c === "p") {
877
- const d = h.slice(1).trim().split(" ");
886
+ const d = l.slice(1).trim().split(" ");
878
887
  e.addPointGeometry(d);
879
- } else if ((s = Ve.exec(h)) !== null) {
888
+ } else if ((s = Ve.exec(l)) !== null) {
880
889
  const A = (" " + s[0].slice(1).trim()).slice(1);
881
890
  e.startObject(A);
882
- } else if (We.test(h))
883
- e.object.startMaterial(h.substring(7).trim(), e.materialLibraries);
884
- else if (Be.test(h))
885
- e.materialLibraries.push(h.substring(7).trim());
886
- else if (He.test(h))
891
+ } else if (We.test(l))
892
+ e.object.startMaterial(l.substring(7).trim(), e.materialLibraries);
893
+ else if (Be.test(l))
894
+ e.materialLibraries.push(l.substring(7).trim());
895
+ else if (He.test(l))
887
896
  console.warn('THREE.OBJLoader: Rendering identifier "usemap" not supported. Textures must be defined in MTL files.');
888
897
  else if (c === "s") {
889
- if (s = h.split(" "), s.length > 1) {
898
+ if (s = l.split(" "), s.length > 1) {
890
899
  const d = s[1].trim().toLowerCase();
891
900
  e.object.smooth = d !== "0" && d !== "off";
892
901
  } else
@@ -894,15 +903,15 @@ class qe extends Nt {
894
903
  const A = e.object.currentMaterial();
895
904
  A && (A.smooth = e.object.smooth);
896
905
  } else {
897
- if (h === "\0") continue;
898
- console.warn('THREE.OBJLoader: Unexpected line: "' + h + '"');
906
+ if (l === "\0") continue;
907
+ console.warn('THREE.OBJLoader: Unexpected line: "' + l + '"');
899
908
  }
900
909
  }
901
910
  e.finalize();
902
911
  const o = new Wt();
903
912
  if (o.materialLibraries = [].concat(e.materialLibraries), !(e.objects.length === 1 && e.objects[0].geometry.vertices.length === 0) === !0)
904
913
  for (let n = 0, r = e.objects.length; n < r; n++) {
905
- const h = e.objects[n], c = h.geometry, A = h.materials, d = c.type === "Line", p = c.type === "Points";
914
+ const l = e.objects[n], c = l.geometry, A = l.materials, d = c.type === "Line", p = c.type === "Points";
906
915
  let f = !1;
907
916
  if (c.vertices.length === 0) continue;
908
917
  const u = new wt();
@@ -913,11 +922,11 @@ class qe extends Nt {
913
922
  let y = e.materials[M];
914
923
  if (this.materials !== null) {
915
924
  if (y = this.materials.create(T.name), d && y && !(y instanceof st)) {
916
- const L = new st();
917
- Pt.prototype.copy.call(L, y), L.color.copy(y.color), y = L;
925
+ const R = new st();
926
+ Pt.prototype.copy.call(R, y), R.color.copy(y.color), y = R;
918
927
  } else if (p && y && !(y instanceof J)) {
919
- const L = new J({ size: 10, sizeAttenuation: !1 });
920
- Pt.prototype.copy.call(L, y), L.color.copy(y.color), L.map = y.map, y = L;
928
+ const R = new J({ size: 10, sizeAttenuation: !1 });
929
+ Pt.prototype.copy.call(R, y), R.color.copy(y.color), R.map = y.map, y = R;
921
930
  }
922
931
  }
923
932
  y === void 0 && (d ? y = new st() : p ? y = new J({ size: 1, sizeAttenuation: !1 }) : y = new W(), y.name = T.name, y.flatShading = !T.smooth, y.vertexColors = f, e.materials[M] = y), m.push(y);
@@ -931,13 +940,13 @@ class qe extends Nt {
931
940
  d ? g = new Tt(u, m) : p ? g = new it(u, m) : g = new X(u, m);
932
941
  } else
933
942
  d ? g = new Tt(u, m[0]) : p ? g = new it(u, m[0]) : g = new X(u, m[0]);
934
- g.name = h.name, o.add(g);
943
+ g.name = l.name, o.add(g);
935
944
  }
936
945
  else if (e.vertices.length > 0) {
937
946
  const n = new J({ size: 1, sizeAttenuation: !1 }), r = new wt();
938
947
  r.setAttribute("position", new H(e.vertices, 3)), e.colors.length > 0 && e.colors[0] !== void 0 && (r.setAttribute("color", new H(e.colors, 3)), n.vertexColors = !0);
939
- const h = new it(r, n);
940
- o.add(h);
948
+ const l = new it(r, n);
949
+ o.add(l);
941
950
  }
942
951
  return o;
943
952
  }
@@ -998,11 +1007,11 @@ class ze {
998
1007
  var r = this.canvas.getContext("2d");
999
1008
  this.context = r;
1000
1009
  for (e of this.textureOffsets.keys()) {
1001
- for (var a = t.get(e), h = this.textureOffsets.get(e).x, c = this.textureOffsets.get(e).y, A = a.image.width, d = a.image.height, p = c; p < c + d; p += d)
1002
- for (var f = h; f < h + A; f += A)
1010
+ for (var a = t.get(e), l = this.textureOffsets.get(e).x, c = this.textureOffsets.get(e).y, A = a.image.width, d = a.image.height, p = c; p < c + d; p += d)
1011
+ for (var f = l; f < l + A; f += A)
1003
1012
  r.drawImage(a.image, f, p, A, d);
1004
1013
  var u = new Ke();
1005
- u.startU = h / n.width, u.endU = (h + A) / n.width, u.startV = 1 - c / n.height, u.endV = 1 - (c + d) / n.height, this.ranges.set(e, u);
1014
+ u.startU = l / n.width, u.endU = (l + A) / n.width, u.startV = 1 - c / n.height, u.endV = 1 - (c + d) / n.height, this.ranges.set(e, u);
1006
1015
  }
1007
1016
  this.makeCanvasPowerOfTwo(), this.mergedTexture = new ae(this.canvas), this.mergedTexture.wrapS = Et, this.mergedTexture.wrapT = Et, this.mergedTexture.minFilter = Mt, this.mergedTexture.magFilter = Mt, this.mergedTexture.needsUpdate = !0;
1008
1017
  }
@@ -1029,7 +1038,7 @@ class ze {
1029
1038
  }
1030
1039
  var n = s.image.width, r = s.image.height;
1031
1040
  if (t.upperNode) {
1032
- for (var h = this.maxWidth * this.textureCount + this.maxHeight * this.textureCount, c, A = !1, d = 0; d < this.allNodes.length; d++) {
1041
+ for (var l = this.maxWidth * this.textureCount + this.maxHeight * this.textureCount, c, A = !1, d = 0; d < this.allNodes.length; d++) {
1033
1042
  var p = this.allNodes[d];
1034
1043
  if (!p.textureName && p.rectangle.fits(s)) {
1035
1044
  this.textureOffsets.set(e, {
@@ -1037,17 +1046,17 @@ class ze {
1037
1046
  y: p.rectangle.y
1038
1047
  });
1039
1048
  var f = this.calculateImageSize(i), u = f.width + f.height;
1040
- if (u < h && f.width <= this.MAX_TEXTURE_SIZE && f.height <= this.MAX_TEXTURE_SIZE) {
1049
+ if (u < l && f.width <= this.MAX_TEXTURE_SIZE && f.height <= this.MAX_TEXTURE_SIZE) {
1041
1050
  var m = !1;
1042
1051
  for (var g of this.textureOffsets.keys())
1043
1052
  if (g != e) {
1044
1053
  var v = p.rectangle, {
1045
1054
  x: k,
1046
1055
  y: T
1047
- } = this.textureOffsets.get(g), M = i.get(g).image, y = new V(v.x, v.y, n, r), L = new V(k, T, M.width, M.height);
1048
- y.overlaps(L) && (m = !0);
1056
+ } = this.textureOffsets.get(g), M = i.get(g).image, y = new V(v.x, v.y, n, r), R = new V(k, T, M.width, M.height);
1057
+ y.overlaps(R) && (m = !0);
1049
1058
  }
1050
- m || (h = u, c = this.allNodes[d], A = !0);
1059
+ m || (l = u, c = this.allNodes[d], A = !0);
1051
1060
  }
1052
1061
  this.textureOffsets.delete(e);
1053
1062
  }
@@ -1091,9 +1100,9 @@ class ze {
1091
1100
  for (var s of this.textureOffsets.keys()) {
1092
1101
  var o = t.get(s), a = o.image.width, n = o.image.height, {
1093
1102
  x: r,
1094
- y: h
1103
+ y: l
1095
1104
  } = this.textureOffsets.get(s);
1096
- r + a > e && (e = r + a), h + n > i && (i = h + n);
1105
+ r + a > e && (e = r + a), l + n > i && (i = l + n);
1097
1106
  }
1098
1107
  return {
1099
1108
  width: e,
@@ -1115,11 +1124,11 @@ class ze {
1115
1124
  return s.drawImage(t, 0, 0, t.width, t.height, 0, 0, i.width, i.height), i;
1116
1125
  }
1117
1126
  }
1118
- function Ge(l, t) {
1119
- const e = l.geometry.attributes.uv.array;
1127
+ function Ge(h, t) {
1128
+ const e = h.geometry.attributes.uv.array;
1120
1129
  for (let i = 0; i < e.length; i += 2)
1121
1130
  e[i] = e[i] * (t.endU - t.startU) + t.startU, e[i + 1] = e[i + 1] * (t.startV - t.endV) + t.endV;
1122
- l.geometry.attributes.uv.needsUpdate = !0;
1131
+ h.geometry.attributes.uv.needsUpdate = !0;
1123
1132
  }
1124
1133
  new W({
1125
1134
  color: 16711680,
@@ -1151,7 +1160,7 @@ class Ye extends Wt {
1151
1160
  const t = new ne();
1152
1161
  if (t.text = be(this.efpBooth), !t.text) return;
1153
1162
  t.color = this.efpBooth.labelColor || Ht.boothLabelColor, t.anchorX = "center", t.anchorY = "middle", t.textAlign = "center";
1154
- const e = t.text.split(" "), i = Math.max(...e.map((h) => h.length)), {
1163
+ const e = t.text.split(" "), i = Math.max(...e.map((l) => l.length)), {
1155
1164
  rect: s
1156
1165
  } = this.threeBooth;
1157
1166
  let o = Math.max(s.width, s.height), a = Math.min(s.width, s.height);
@@ -1170,10 +1179,10 @@ class Ye extends Wt {
1170
1179
  n = A, a = d, r = -90;
1171
1180
  } else
1172
1181
  r = -this.efpBooth.rotate * 180 / Math.PI;
1173
- const h = t.ranges.get(this.efpBooth.slug + "_logo");
1174
- if (!h) return null;
1182
+ const l = t.ranges.get(this.efpBooth.slug + "_logo");
1183
+ if (!l) return null;
1175
1184
  var c = new X(new Ft(a, n), i);
1176
- return c.layers.set(this.threeLayer), Ge(c, h), c.rotateZ((r || 0) * Math.PI / 180), c.position.x = s.center.x, c.position.y = s.center.y, c.position.z = this.z + 0.01 * this.z, c.scale.y = -1, c.material.map = t.mergedTexture, c.name = this.efpBooth.name, c;
1185
+ return c.layers.set(this.threeLayer), Ge(c, l), c.rotateZ((r || 0) * Math.PI / 180), c.position.x = s.center.x, c.position.y = s.center.y, c.position.z = this.z + 0.01 * this.z, c.scale.y = -1, c.material.map = t.mergedTexture, c.name = this.efpBooth.name, c;
1177
1186
  }
1178
1187
  dimmed(t) {
1179
1188
  this.boothMesh.material = t ? Ut : this.material, this.boothMesh.userData.dimmed = t;
@@ -1186,33 +1195,33 @@ class Ye extends Wt {
1186
1195
  // this.boothMesh.userData.selected = value;
1187
1196
  // }
1188
1197
  }
1189
- async function Qe(l) {
1198
+ async function Qe(h) {
1190
1199
  return new Promise(async (t, e) => {
1191
- const i = `https://${l}.expofp.com/data/threejs`;
1200
+ const i = `https://${h}.expofp.com/data/threejs`;
1192
1201
  let o = await (await fetch(dt(`${i}/model.json`))).json();
1193
1202
  t(o);
1194
1203
  });
1195
1204
  }
1196
- async function Je(l, t) {
1205
+ async function Je(h, t) {
1197
1206
  return new Promise(async (e, i) => {
1198
1207
  var s = await _e(t);
1199
1208
  s.getAsArray().forEach((a) => {
1200
1209
  a.name.indexOf(".webp") > -1 && (a.alphaTest = 0.6, a.transparent = !0), a.name === "0xB1C6CE" && (a.alphaTest = 0.1, a.transparent = !0, a.opacity = 0.3, a.side = 2, a.depthWrite = !1, a.depthTest = !1);
1201
1210
  });
1202
1211
  const o = new qe();
1203
- o.setMaterials(s), o.load(l, async (a) => {
1212
+ o.setMaterials(s), o.load(h, async (a) => {
1204
1213
  a.children.forEach((n) => {
1205
1214
  n.name === "building" ? n.renderOrder = 0.1 : n.renderOrder = 1;
1206
1215
  }), e(a);
1207
1216
  }, void 0, (a) => i(a));
1208
1217
  });
1209
1218
  }
1210
- async function _e(l) {
1219
+ async function _e(h) {
1211
1220
  return new Promise((t, e) => {
1212
1221
  const i = new je();
1213
1222
  i.setMaterialOptions({
1214
1223
  side: 2
1215
- }), i.load(l, (s) => {
1224
+ }), i.load(h, (s) => {
1216
1225
  t(s);
1217
1226
  }, void 0, (s) => {
1218
1227
  e(s);
@@ -1230,23 +1239,23 @@ class $e extends he {
1230
1239
  return this.objLayers.get(t);
1231
1240
  }
1232
1241
  }
1233
- async function Gt(l, t, e, i, s, o) {
1242
+ async function Gt(h, t, e, i, s, o) {
1234
1243
  const a = new le(), n = new $e();
1235
1244
  n.raycaster = a, n.camera = i, i.near = 0.1, i.far = 1e4, i.aspect = e.clientWidth / e.clientHeight, i.updateProjectionMatrix();
1236
1245
  const r = new ce(16777215, 10, Math.PI);
1237
1246
  r.castShadow = !0, r.position.set(0, 0, 100), n.add(r);
1238
- const h = new Ae({
1239
- canvas: l || void 0,
1247
+ const l = new Ae({
1248
+ canvas: h || void 0,
1240
1249
  context: t || void 0,
1241
1250
  antialias: !0,
1242
1251
  precision: "highp",
1243
1252
  premultipliedAlpha: !0
1244
1253
  });
1245
- h.outputColorSpace = F, !l && !t && (h.setSize(e.clientWidth, e.clientHeight), e.appendChild(h.domElement)), h.autoClear = !1, e.addEventListener("resize", () => {
1246
- i.aspect = e.clientWidth / e.clientHeight, i.updateProjectionMatrix(), h.setSize(e.clientWidth, e.clientHeight), c();
1254
+ l.outputColorSpace = F, !h && !t && (l.setSize(e.clientWidth, e.clientHeight), e.appendChild(l.domElement)), l.autoClear = !1, e.addEventListener("resize", () => {
1255
+ i.aspect = e.clientWidth / e.clientHeight, i.updateProjectionMatrix(), l.setSize(e.clientWidth, e.clientHeight), c();
1247
1256
  }, !1);
1248
1257
  function c() {
1249
- h.resetState(), o(), !l && !t && h.render(n, i);
1258
+ l.resetState(), o(), !h && !t && l.render(n, i);
1250
1259
  }
1251
1260
  function A() {
1252
1261
  requestAnimationFrame(A), c();
@@ -1267,21 +1276,21 @@ async function Gt(l, t, e, i, s, o) {
1267
1276
  }
1268
1277
  return n.scale.x = -1, {
1269
1278
  scene: n,
1270
- renderer: h
1279
+ renderer: l
1271
1280
  };
1272
1281
  }
1273
- function ts(l, t) {
1282
+ function ts(h, t) {
1274
1283
  return new Promise(async (e, i) => {
1275
- const s = new qt(50, l.clientWidth / l.clientHeight, 0.1, 1e3);
1284
+ const s = new qt(50, h.clientWidth / h.clientHeight, 0.1, 1e3);
1276
1285
  var {
1277
1286
  x: o,
1278
1287
  y: a
1279
1288
  } = t.viewbox.center;
1280
1289
  s.position.x = o + t.area.width * 0.2, s.position.y = a + t.area.height, s.position.z = t.objLayers[t.objLayers.length - 1].z * Math.max(t.area.height, t.area.width) * 0.15 || Math.min(t.area.height, t.area.width), s.up.set(0, 0, 1);
1281
1290
  let n;
1282
- const r = await Gt(null, null, l, s, (h, c, A) => {
1291
+ const r = await Gt(null, null, h, s, (l, c, A) => {
1283
1292
  const d = new x();
1284
- d.x = h / l.clientWidth * 2 - 1, d.y = -(c / l.clientHeight) * 2 + 1, A.setFromCamera(d, s);
1293
+ d.x = l / h.clientWidth * 2 - 1, d.y = -(c / h.clientHeight) * 2 + 1, A.setFromCamera(d, s);
1285
1294
  }, () => {
1286
1295
  n == null || n.update();
1287
1296
  });
@@ -1294,20 +1303,20 @@ function ts(l, t) {
1294
1303
  }
1295
1304
  function es() {
1296
1305
  if (q.Map.prototype._setupPainter.toString().indexOf("webgl2") > -1) {
1297
- const l = q.Map.prototype._setupPainter;
1306
+ const h = q.Map.prototype._setupPainter;
1298
1307
  q.Map.prototype._setupPainter = function() {
1299
1308
  const t = this._canvas.getContext;
1300
1309
  this._canvas.getContext = function(e, i) {
1301
1310
  return t.apply(this, ["webgl2", i]) || t.apply(this, ["webgl", i]) || t.apply(this, ["experimental-webgl", i]);
1302
- }, l.apply(this), this._canvas.getContext = t;
1311
+ }, h.apply(this), this._canvas.getContext = t;
1303
1312
  };
1304
1313
  }
1305
1314
  }
1306
- function ss(l, t) {
1315
+ function ss(h, t) {
1307
1316
  return new Promise((e, i) => {
1308
1317
  es(), q.accessToken = "pk.eyJ1Ijoicm9kaW9ubmlrb2xhZXYiLCJhIjoiY2wwanE5aXB4MDM2NTNibGExd3k4bHhsaiJ9.wdpy8dJ1qktQXGtZYDNH3w";
1309
1318
  const s = new q.Map({
1310
- container: l,
1319
+ container: h,
1311
1320
  //style: `mapbox://styles/mapbox/${"light-v11"}`,
1312
1321
  style: "mapbox://styles/mapbox/" + t.replace("v10", "v11"),
1313
1322
  antialias: !0,
@@ -1318,14 +1327,14 @@ function ss(l, t) {
1318
1327
  s.on("load", () => e(s));
1319
1328
  });
1320
1329
  }
1321
- async function is(l, t) {
1330
+ async function is(h, t) {
1322
1331
  return new Promise(async (e, i) => {
1323
1332
  var {
1324
1333
  geoConfig: s
1325
1334
  } = t;
1326
- const o = await ss(l, s.style);
1335
+ const o = await ss(h, s.style);
1327
1336
  ye(o);
1328
- let a, n, r, h;
1337
+ let a, n, r, l;
1329
1338
  o.setBearing(s.bearing - 30), o.setCenter(s.center), o.setZoom(16);
1330
1339
  const c = 1, A = [0, 0, (180 - s.bearing) * Math.PI / 180], d = q.MercatorCoordinate.fromLngLat(s.center, c), p = {
1331
1340
  translateX: d.x,
@@ -1341,12 +1350,12 @@ async function is(l, t) {
1341
1350
  renderingMode: "3d",
1342
1351
  onAdd: async function(u, m) {
1343
1352
  a = new qt();
1344
- var g = await Gt(u.getCanvas(), m, l, a, (v, k, T) => {
1353
+ var g = await Gt(u.getCanvas(), m, h, a, (v, k, T) => {
1345
1354
  const M = u.getFreeCameraOptions();
1346
1355
  let y = new ot(M.position.x, M.position.y, M.position.z, 1);
1347
- const L = new ot(-1e3, -1e3, 1, 1);
1348
- L.x = v / l.clientWidth * 2 - 1, L.y = -(k / l.clientHeight) * 2 + 1, y.applyMatrix4(h.invert());
1349
- let D = L.clone().applyMatrix4(a.projectionMatrix.clone().invert());
1356
+ const R = new ot(-1e3, -1e3, 1, 1);
1357
+ R.x = v / h.clientWidth * 2 - 1, R.y = -(k / h.clientHeight) * 2 + 1, y.applyMatrix4(l.invert());
1358
+ let D = R.clone().applyMatrix4(a.projectionMatrix.clone().invert());
1350
1359
  return D.divideScalar(D.w), T.set(y, D.sub(y).normalize()), T;
1351
1360
  }, () => {
1352
1361
  });
@@ -1355,9 +1364,9 @@ async function is(l, t) {
1355
1364
  render: function(u, m) {
1356
1365
  if (!r) return;
1357
1366
  const g = new z().makeRotationAxis(new E(1, 0, 0), p.rotateX), v = new z().makeRotationAxis(new E(0, 1, 0), p.rotateY), k = new z().makeRotationAxis(new E(0, 0, 1), p.rotateZ), T = new z().fromArray(m);
1358
- h = new z().makeTranslation(p.translateX, p.translateY, p.translateZ).scale(new E(p.scale, -p.scale, p.scale)).multiply(g).multiply(v).multiply(k), a.projectionMatrix = T.multiply(h);
1367
+ l = new z().makeTranslation(p.translateX, p.translateY, p.translateZ).scale(new E(p.scale, -p.scale, p.scale)).multiply(g).multiply(v).multiply(k), a.projectionMatrix = T.multiply(l);
1359
1368
  const M = o.getFreeCameraOptions();
1360
- let y = new ot(M.position.x, M.position.y, M.position.z, 1).applyMatrix4(h.clone().invert());
1369
+ let y = new ot(M.position.x, M.position.y, M.position.z, 1).applyMatrix4(l.clone().invert());
1361
1370
  a.userData.position = y, r.render(n, a), o.triggerRepaint();
1362
1371
  }
1363
1372
  };
@@ -1378,7 +1387,7 @@ class tt extends X {
1378
1387
  s.map = a;
1379
1388
  var n = e / a.image.height;
1380
1389
  i.scale(a.image.width * n, a.image.height * n, 1), i.translate(0, a.image.height * n / 2, 0), i.rotateX(Math.PI / 2), s.needsUpdate = !0;
1381
- }), super(i, s), this.onBeforeRender = (a, n, r, h, c, A) => {
1390
+ }), super(i, s), this.onBeforeRender = (a, n, r, l, c, A) => {
1382
1391
  let d = r.position.x && r.position.y && r.position.z ? r.position : r.userData.position;
1383
1392
  const p = ct.round((ct.lineAngle({
1384
1393
  x: 0,
@@ -1388,9 +1397,9 @@ class tt extends X {
1388
1397
  };
1389
1398
  }
1390
1399
  }
1391
- function os(l) {
1400
+ function os(h) {
1392
1401
  const t = document.createElement("canvas"), e = t.getContext("2d");
1393
- return e.font = "30px Arial", e.fillText(l, 0, 0), t;
1402
+ return e.font = "30px Arial", e.fillText(h, 0, 0), t;
1394
1403
  }
1395
1404
  const as = "data:image/png;base64,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", ns = "data:image/png;base64,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", jt = "data:image/png;base64,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", I = [], ht = new W({
1396
1405
  color: 3190763
@@ -1398,7 +1407,7 @@ const as = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAASwAAAHCCAMAAABi7QS1AA
1398
1407
  color: 16711680
1399
1408
  });
1400
1409
  let j = 0;
1401
- const lt = [], hs = (l) => Ht.EXPO == "glf24" ? 0.1 : 1 * (l.area.width + l.area.height) / 1200;
1410
+ const lt = [], hs = (h) => Ht.EXPO == "glf24" ? 0.1 : 1 * (h.area.width + h.area.height) / 1200;
1402
1411
  class ls {
1403
1412
  constructor(t, e, i) {
1404
1413
  this.expo = void 0, this.isMapbox = void 0, this.scene = void 0, this.data = void 0, this.container = void 0, this.isInit = !1, this.expo = t, this.isMapbox = e, this.container = i, setInterval(() => {
@@ -1429,9 +1438,9 @@ class ls {
1429
1438
  }
1430
1439
  setMarker(t, e, i, s, o = !1, a = 1) {
1431
1440
  const n = `{sprite_${t}}`;
1432
- let r = this.scene.children.find((h) => h.name === n);
1441
+ let r = this.scene.children.find((l) => l.name === n);
1433
1442
  if (e != null && i != null) {
1434
- const h = o ? {
1443
+ const l = o ? {
1435
1444
  x: e,
1436
1445
  y: i
1437
1446
  } : this.convertPoint(e, i, 0);
@@ -1439,7 +1448,7 @@ class ls {
1439
1448
  var d;
1440
1449
  return A.name === ((d = P.layerStore.findLayer(s)) == null ? void 0 : d.name);
1441
1450
  }) || this.data.objLayers[0];
1442
- r || (t === "from" ? r = new tt(as, c.height * a * 2) : t === "to" ? r = new tt(ns, c.height * a * 2) : t === "yah" ? r = new tt(jt, c.height * a * 2) : t === "cp" && (r = new tt(jt, c.height * a)), r.name = n, this.scene.add(r)), r.position.set(h.x, h.y, c.z + (t === "from" || t === "to" ? c.height : 0));
1451
+ r || (t === "from" ? r = new tt(as, c.height * a * 2) : t === "to" ? r = new tt(ns, c.height * a * 2) : t === "yah" ? r = new tt(jt, c.height * a * 2) : t === "cp" && (r = new tt(jt, c.height * a)), r.name = n, this.scene.add(r)), r.position.set(l.x, l.y, c.z + (t === "from" || t === "to" ? c.height : 0));
1443
1452
  } else r && this.scene.remove(r);
1444
1453
  }
1445
1454
  interpolateColors(t, e, i) {
@@ -1450,8 +1459,8 @@ class ls {
1450
1459
  updateRouteLines(t) {
1451
1460
  if (!this.isInit) return;
1452
1461
  var e = t.routeLines.filter((a) => {
1453
- var r, h;
1454
- let n = (h = (r = P.layerStore.layers.find((c) => c.name === a.p0.layer)) == null ? void 0 : r.visible) != null ? h : !0;
1462
+ var r, l;
1463
+ let n = (l = (r = P.layerStore.layers.find((c) => c.name === a.p0.layer)) == null ? void 0 : r.visible) != null ? l : !0;
1455
1464
  return !a.virtual && n;
1456
1465
  });
1457
1466
  if (I.forEach((a) => this.scene.remove(a)), I.splice(0, I.length), !e.length) {
@@ -1462,8 +1471,8 @@ class ls {
1462
1471
  z: s
1463
1472
  } = this.data.objLayers.find((a) => a.name === (de.mode === pe.Default ? "Default" : e[0].p0.layer)), o = hs(this.data);
1464
1473
  [].concat(i).reverse().forEach((a, n) => {
1465
- const r = new ue(o), h = new X(r, ht);
1466
- h.position.set(a.x, a.y, s + 0.02), I.push(h), this.scene.add(h);
1474
+ const r = new ue(o), l = new X(r, ht);
1475
+ l.position.set(a.x, a.y, s + 0.02), I.push(l), this.scene.add(l);
1467
1476
  }), this.setMarker("to", e[0].p0.x, e[0].p0.y, e[0].p0.layer), this.setMarker("from", e[e.length - 1].p1.x, e[e.length - 1].p1.y, e[e.length - 1].p1.layer);
1468
1477
  }
1469
1478
  onBeforeRender(t, e, i, s, o, a) {
@@ -1484,8 +1493,8 @@ class ls {
1484
1493
  var o = new ze(s), a = new Kt();
1485
1494
  a.side = K, a.transparent = !0, e.children.forEach((n, r) => {
1486
1495
  var f;
1487
- var [h, c] = n.name.split(/ (.*)/s);
1488
- const A = t.addLayer(h);
1496
+ var [l, c] = n.name.split(/ (.*)/s);
1497
+ const A = t.addLayer(l);
1489
1498
  n.layers.set(A), n.name = c;
1490
1499
  const d = P.boothStore.booths.find((u) => c && c[0] === "b" && u.name === (c == null ? void 0 : c.substring(1)));
1491
1500
  if (d) {
@@ -1520,20 +1529,20 @@ class ls {
1520
1529
  var s, o;
1521
1530
  let e = [], i = [];
1522
1531
  for (let a = 0; a < t.length; a++) {
1523
- let n = t[a], r = (o = (s = P.layerStore.layers.find((h) => h.name === n.p0.layer)) == null ? void 0 : s.visible) != null ? o : !0;
1532
+ let n = t[a], r = (o = (s = P.layerStore.layers.find((l) => l.name === n.p0.layer)) == null ? void 0 : s.visible) != null ? o : !0;
1524
1533
  !n.virtual && r && i.push(n), (n.virtual || !r || a === t.length - 1) && i.length && (i = []);
1525
1534
  }
1526
1535
  return e.map((a) => this.convertPoint(a.x, a.y, a.z));
1527
1536
  }
1528
1537
  }
1529
1538
  function fs({
1530
- isMapbox: l,
1539
+ isMapbox: h,
1531
1540
  expo: t
1532
1541
  }) {
1533
- const e = Rt.useRef(null);
1542
+ const e = Lt.useRef(null);
1534
1543
  let i = null;
1535
- Rt.useEffect(() => {
1536
- i = new ls(t, l, e.current), i.init().then(() => {
1544
+ Lt.useEffect(() => {
1545
+ i = new ls(t, h, e.current), i.init().then(() => {
1537
1546
  P.layerStore.layers.forEach((o) => i.changeLayerVisibility(o.name, o.visible)), i.selectBooths([...b.selectedBooths]), i.updateRouteLines(P.routeStore), xt(!0);
1538
1547
  });
1539
1548
  }, []);
@@ -1566,14 +1575,14 @@ function fs({
1566
1575
  xt(P.mapboxStore.showMapbox);
1567
1576
  }), Z(() => b.moveToBooths, () => {
1568
1577
  if (!b.moveToBooths || !P.mapboxStore.showMapbox) return;
1569
- const o = b.moveToBooths.filter((n) => n.rect).map((n) => n.rect), a = Lt.fromMultiple(o);
1578
+ const o = b.moveToBooths.filter((n) => n.rect).map((n) => n.rect), a = Rt.fromMultiple(o);
1570
1579
  o.length && at(a), b.moveToBooths = null;
1571
1580
  }), Z(() => b.moveToRect, () => {
1572
1581
  !b.moveToRect || !P.mapboxStore.showMapbox || (at(b.moveToRect, 15), b.moveToRect = null);
1573
1582
  }), Z(() => b.moveToLocation, () => {
1574
1583
  !b.moveToLocation || !P.mapboxStore.showMapbox || Pe();
1575
1584
  }), Z(() => b.centerMap, () => {
1576
- !b.centerMap || !P.mapboxStore.showMapbox || (at(Lt.fromMultiple(At.booths.map((o) => o.rect)), 15), b.centerMap = !1);
1585
+ !b.centerMap || !P.mapboxStore.showMapbox || (at(Rt.fromMultiple(At.booths.map((o) => o.rect)), 15), b.centerMap = !1);
1577
1586
  }), Z(() => P.routeStore.routeLines, () => i.updateRouteLines(P.routeStore)), Z(() => s.actualCurrentPosition, () => {
1578
1587
  var o, a, n;
1579
1588
  return i.setMarker("cp", (o = s.actualCurrentPosition) == null ? void 0 : o.x, (a = s.actualCurrentPosition) == null ? void 0 : a.y, (n = s.actualCurrentPosition) == null ? void 0 : n.z);