@expofp/floorplan 0.0.0-experimental.cf063fc

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 (1009) hide show
  1. package/README.md +8 -0
  2. package/dist/browser/Button-DT-Jfwrb.js +64 -0
  3. package/dist/browser/CookieConsent-BIsWzAiP.js +38 -0
  4. package/dist/browser/Debug-B5mmo0ZX.js +53 -0
  5. package/dist/browser/DebugTools-Y0aycjKM.js +1931 -0
  6. package/dist/browser/Demo-B2klxORi.js +71 -0
  7. package/dist/browser/Free-suULW-LU.js +69 -0
  8. package/dist/browser/GalleryContainer-BGBNGRKU.js +3355 -0
  9. package/dist/browser/GpsLoader-BbXpnQ98.js +154 -0
  10. package/dist/browser/KioskStore-Dg9jaX5d.js +250 -0
  11. package/dist/browser/LayerStore-CK6wLW56.js +24105 -0
  12. package/dist/browser/MaplibreAdapter-DBnLB-I9.js +36770 -0
  13. package/dist/browser/ModalContainer-DWm8vEaI.js +148 -0
  14. package/dist/browser/PermissionNotice-DaqnuHln.js +54 -0
  15. package/dist/browser/RouteStore-C0QJjRL0.js +3683 -0
  16. package/dist/browser/SetKioskMode-Dwlf5w7q.js +49 -0
  17. package/dist/browser/ShowKiosk-Cr-QmIUT.js +82 -0
  18. package/dist/browser/ViewerMenuPanel-DHCt3s3Z.js +133 -0
  19. package/dist/browser/add-debug-secret-listener-BECnIMzo.js +55 -0
  20. package/dist/browser/adopt-global-settings-U-KbyxMd.js +185 -0
  21. package/dist/browser/boolean-editor-CYMx87em.js +149 -0
  22. package/dist/browser/bootIntercom-BqQsnxII.js +37 -0
  23. package/dist/browser/bundle.json +422 -0
  24. package/dist/browser/camera-events-DSCuSH25.js +18 -0
  25. package/dist/browser/classnames-YcGXWNfg.js +39 -0
  26. package/dist/browser/client-BcPpS_Gj.js +7402 -0
  27. package/dist/browser/compat-helper.js +6 -0
  28. package/dist/browser/components-DIoXSetB.js +7393 -0
  29. package/dist/browser/create-live-plan-DOjNTiqJ.js +4046 -0
  30. package/dist/browser/debounce-BZI0to6V.js +2102 -0
  31. package/dist/browser/debug-context-CNBgUWR8.js +24315 -0
  32. package/dist/browser/debug-overlay-B__pFwQg.js +1455 -0
  33. package/dist/browser/debug-ui-BaE8MZQX.js +86 -0
  34. package/dist/browser/dist-C1NaWqk4.js +2611 -0
  35. package/dist/browser/dist-Cx8u0gjK.js +21 -0
  36. package/dist/browser/dist-wOC6gYFh.js +205 -0
  37. package/dist/browser/efp-debug-init-CozbueIl.js +245 -0
  38. package/dist/browser/enum-editor-CkiQPgZv.js +34 -0
  39. package/dist/browser/es5-B__Ovz45.js +1712 -0
  40. package/dist/browser/event-head-C_inMpbD.js +56 -0
  41. package/dist/browser/event-not-found-Z2mJBZE3.js +31 -0
  42. package/dist/browser/expofp-overlay.png +0 -0
  43. package/dist/browser/expofpUrl-jBUlvkwz.js +19 -0
  44. package/dist/browser/exports-CvUYw1h6.js +1525 -0
  45. package/dist/browser/favicon-BkDrYTmU.js +12 -0
  46. package/dist/browser/fetch-retry.umd-2B2pCUIS.js +78 -0
  47. package/dist/browser/flex-3lSivw8z.js +823 -0
  48. package/dist/browser/floorplan.loader-B9musuUh.js +3282 -0
  49. package/dist/browser/floorplan.ready-BAOU-N0d.js +1448 -0
  50. package/dist/browser/fonts/efp-symbols.woff +0 -0
  51. package/dist/browser/fonts/inter-400.woff2 +0 -0
  52. package/dist/browser/fonts/inter-500.woff2 +0 -0
  53. package/dist/browser/fonts/inter-600.woff2 +0 -0
  54. package/dist/browser/fonts/oswald-v17-cyrillic_latin-300.woff +0 -0
  55. package/dist/browser/fonts/oswald-v17-cyrillic_latin-500.woff +0 -0
  56. package/dist/browser/freeBanner-CnrBc9Tl.js +22 -0
  57. package/dist/browser/fuse-B7V1lkoA.js +1177 -0
  58. package/dist/browser/i18n-BgFBhYOU.js +7205 -0
  59. package/dist/browser/icons/accessible.svg +5 -0
  60. package/dist/browser/icons/arrow-down.svg +3 -0
  61. package/dist/browser/icons/bus-white.svg +3 -0
  62. package/dist/browser/icons/check.svg +3 -0
  63. package/dist/browser/icons/clear.svg +4 -0
  64. package/dist/browser/icons/departure.svg +5 -0
  65. package/dist/browser/icons/departure_inactive.svg +5 -0
  66. package/dist/browser/icons/destination.svg +5 -0
  67. package/dist/browser/icons/direction.svg +54 -0
  68. package/dist/browser/icons/dots.svg +4 -0
  69. package/dist/browser/icons/dragdrop-solid.svg +11 -0
  70. package/dist/browser/icons/facebook.svg +4 -0
  71. package/dist/browser/icons/from.svg +4 -0
  72. package/dist/browser/icons/kiosk.svg +1 -0
  73. package/dist/browser/icons/linkedin.svg +3 -0
  74. package/dist/browser/icons/rotate.svg +5 -0
  75. package/dist/browser/icons/tap.svg +5 -0
  76. package/dist/browser/icons/to.svg +4 -0
  77. package/dist/browser/icons/transition.svg +7 -0
  78. package/dist/browser/icons/transition_down.svg +15 -0
  79. package/dist/browser/icons/transition_up.svg +15 -0
  80. package/dist/browser/icons/twitter.svg +3 -0
  81. package/dist/browser/icons/yah.svg +17 -0
  82. package/dist/browser/index.html +139 -0
  83. package/dist/browser/index.js +254 -0
  84. package/dist/browser/index.module-kJmnWg5B.js +153 -0
  85. package/dist/browser/integrateKiosk-D45vYRsm.js +35 -0
  86. package/dist/browser/is-debug-BRHdrnKr.js +197 -0
  87. package/dist/browser/is-own-domain-DNvxb9Ph.js +26 -0
  88. package/dist/browser/is-webview-cTH4yz8f.js +12 -0
  89. package/dist/browser/journey-plan-BhLIqF8I.js +1865 -0
  90. package/dist/browser/jsx-runtime-DQgnuS-I.js +30 -0
  91. package/dist/browser/kiosk-mode-DfkGlDkT.js +28 -0
  92. package/dist/browser/kiosk-record-JAEq8SV6.js +18 -0
  93. package/dist/browser/kioskUrlParam-CnYhnC_7.js +141 -0
  94. package/dist/browser/lib--J2yQXt6.js +1910 -0
  95. package/dist/browser/loadImage-DzSnRAxX.js +30 -0
  96. package/dist/browser/locales/ar.json +228 -0
  97. package/dist/browser/locales/da.json +229 -0
  98. package/dist/browser/locales/de.json +228 -0
  99. package/dist/browser/locales/es.json +228 -0
  100. package/dist/browser/locales/fr.json +228 -0
  101. package/dist/browser/locales/he.json +228 -0
  102. package/dist/browser/locales/it.json +228 -0
  103. package/dist/browser/locales/kk.json +228 -0
  104. package/dist/browser/locales/ko.json +228 -0
  105. package/dist/browser/locales/mn.json +228 -0
  106. package/dist/browser/locales/nl.json +228 -0
  107. package/dist/browser/locales/pl.json +228 -0
  108. package/dist/browser/locales/pt.json +228 -0
  109. package/dist/browser/locales/ru.json +228 -0
  110. package/dist/browser/locales/sv.json +228 -0
  111. package/dist/browser/locales/th.json +228 -0
  112. package/dist/browser/locales/tr.json +228 -0
  113. package/dist/browser/locales/uk.json +228 -0
  114. package/dist/browser/locales/vi.json +228 -0
  115. package/dist/browser/locales/zh.json +228 -0
  116. package/dist/browser/logDeviceInfo-CN6LnXO4.js +58 -0
  117. package/dist/browser/mobx-C-kcS0zI.js +43 -0
  118. package/dist/browser/mobx.module-BOCLFB5I.js +2064 -0
  119. package/dist/browser/optional-boolean-editor-ZncW2HBw.js +20 -0
  120. package/dist/browser/optional-enum-editor-Dkzs9jDN.js +34 -0
  121. package/dist/browser/optional-string-editor-DC9PMUWB.js +30 -0
  122. package/dist/browser/particles.min-eC5xdOrB.js +133 -0
  123. package/dist/browser/react-DqPP-mkq.js +301 -0
  124. package/dist/browser/react-dom-BkVzoZWO.js +139 -0
  125. package/dist/browser/rolldown-runtime-DUb2xvRc.js +28 -0
  126. package/dist/browser/scheduler-NBuuaWIe.js +212 -0
  127. package/dist/browser/select-Cxf-YiNA.js +1367 -0
  128. package/dist/browser/settings-D74eG9h8.js +9 -0
  129. package/dist/browser/settings-item-DUUbKec_.js +76 -0
  130. package/dist/browser/store-q_CTsixH.js +58 -0
  131. package/dist/browser/string-editor-CINOmY_C.js +30 -0
  132. package/dist/browser/text-field-DORaOVht.js +88 -0
  133. package/dist/browser/theme-DyFm9MGz.js +2803 -0
  134. package/dist/browser/ui-DsCU3FV6.js +43 -0
  135. package/dist/browser/useRenderTarget-RFckzUJM.js +57 -0
  136. package/dist/browser/vendor/perfect-scrollbar/css/perfect-scrollbar.css +1 -0
  137. package/dist/browser/vendor/sanitize-css/sanitize.css +1 -0
  138. package/dist/browser/venue-public-BodpV-7o.js +296 -0
  139. package/dist/browser/venues-DKpIy-87.js +447 -0
  140. package/dist/browser/viewport-B7plho3P.js +48 -0
  141. package/dist/browser/warning.png +0 -0
  142. package/dist/esm/_misc_to_move/initHtmlHead.d.ts +2 -0
  143. package/dist/esm/_misc_to_move/initHtmlHead.js +34 -0
  144. package/dist/esm/_misc_to_move/logBuildInfo.d.ts +2 -0
  145. package/dist/esm/_misc_to_move/logBuildInfo.js +35 -0
  146. package/dist/esm/_misc_to_move/logDeviceInfo.d.ts +10 -0
  147. package/dist/esm/_misc_to_move/logDeviceInfo.js +84 -0
  148. package/dist/esm/components/AlertContainer.d.ts +4 -0
  149. package/dist/esm/components/AlertContainer.js +8 -0
  150. package/dist/esm/components/AutocompleteContainer.d.ts +4 -0
  151. package/dist/esm/components/AutocompleteContainer.js +14 -0
  152. package/dist/esm/components/BaseFilterModal.d.ts +11 -0
  153. package/dist/esm/components/BaseFilterModal.js +73 -0
  154. package/dist/esm/components/Bookmarks.d.ts +3 -0
  155. package/dist/esm/components/Bookmarks.js +26 -0
  156. package/dist/esm/components/Booth/Booth.d.ts +5 -0
  157. package/dist/esm/components/Booth/Booth.js +135 -0
  158. package/dist/esm/components/Booth/BoothOnHold.d.ts +13 -0
  159. package/dist/esm/components/Booth/BoothOnHold.js +11 -0
  160. package/dist/esm/components/Booth/BoothReserved.d.ts +3 -0
  161. package/dist/esm/components/Booth/BoothReserved.js +7 -0
  162. package/dist/esm/components/Booth/BoothSpecial.d.ts +8 -0
  163. package/dist/esm/components/Booth/BoothSpecial.js +4 -0
  164. package/dist/esm/components/Booth/BoothWithoutExhibitor.d.ts +13 -0
  165. package/dist/esm/components/Booth/BoothWithoutExhibitor.js +29 -0
  166. package/dist/esm/components/Category.d.ts +5 -0
  167. package/dist/esm/components/Category.js +25 -0
  168. package/dist/esm/components/CategoryFilterModal.d.ts +3 -0
  169. package/dist/esm/components/CategoryFilterModal.js +63 -0
  170. package/dist/esm/components/CookieConsent.d.ts +9 -0
  171. package/dist/esm/components/CookieConsent.js +9 -0
  172. package/dist/esm/components/Debug.d.ts +5 -0
  173. package/dist/esm/components/Debug.js +15 -0
  174. package/dist/esm/components/Demo.d.ts +4 -0
  175. package/dist/esm/components/Demo.js +37 -0
  176. package/dist/esm/components/DownloadListContainer.d.ts +5 -0
  177. package/dist/esm/components/DownloadListContainer.js +8 -0
  178. package/dist/esm/components/EntityItemContainer.d.ts +28 -0
  179. package/dist/esm/components/EntityItemContainer.js +36 -0
  180. package/dist/esm/components/EntityList.d.ts +9 -0
  181. package/dist/esm/components/EntityList.js +144 -0
  182. package/dist/esm/components/EntityListRow.d.ts +13 -0
  183. package/dist/esm/components/EntityListRow.js +78 -0
  184. package/dist/esm/components/ErrorBoundary.d.ts +15 -0
  185. package/dist/esm/components/ErrorBoundary.js +29 -0
  186. package/dist/esm/components/Event.d.ts +5 -0
  187. package/dist/esm/components/Event.js +167 -0
  188. package/dist/esm/components/EventBadgeContainer.d.ts +8 -0
  189. package/dist/esm/components/EventBadgeContainer.js +29 -0
  190. package/dist/esm/components/Exhibitor.d.ts +5 -0
  191. package/dist/esm/components/Exhibitor.js +299 -0
  192. package/dist/esm/components/Filter.d.ts +4 -0
  193. package/dist/esm/components/Filter.js +24 -0
  194. package/dist/esm/components/Free.d.ts +4 -0
  195. package/dist/esm/components/Free.js +31 -0
  196. package/dist/esm/components/GalleryContainer.d.ts +6 -0
  197. package/dist/esm/components/GalleryContainer.js +55 -0
  198. package/dist/esm/components/GlobalErrorMessage.d.ts +4 -0
  199. package/dist/esm/components/GlobalErrorMessage.js +9 -0
  200. package/dist/esm/components/GpsLoader.d.ts +5 -0
  201. package/dist/esm/components/GpsLoader.js +29 -0
  202. package/dist/esm/components/HeatmapLegendContainer.d.ts +5 -0
  203. package/dist/esm/components/HeatmapLegendContainer.js +13 -0
  204. package/dist/esm/components/HighlightTextContainer.d.ts +6 -0
  205. package/dist/esm/components/HighlightTextContainer.js +10 -0
  206. package/dist/esm/components/IntercomLauncher.d.ts +5 -0
  207. package/dist/esm/components/IntercomLauncher.js +20 -0
  208. package/dist/esm/components/JourneyPanel.d.ts +35 -0
  209. package/dist/esm/components/JourneyPanel.js +68 -0
  210. package/dist/esm/components/Kiosk/KioskStore.d.ts +60 -0
  211. package/dist/esm/components/Kiosk/KioskStore.js +411 -0
  212. package/dist/esm/components/Kiosk/SetKiosk/Confirm/ConfirmDialog.d.ts +5 -0
  213. package/dist/esm/components/Kiosk/SetKiosk/Confirm/ConfirmDialog.js +8 -0
  214. package/dist/esm/components/Kiosk/SetKiosk/FormInput/RangeInput.d.ts +5 -0
  215. package/dist/esm/components/Kiosk/SetKiosk/FormInput/RangeInput.js +24 -0
  216. package/dist/esm/components/Kiosk/SetKiosk/Message/InfoMessage.d.ts +5 -0
  217. package/dist/esm/components/Kiosk/SetKiosk/Message/InfoMessage.js +7 -0
  218. package/dist/esm/components/Kiosk/SetKiosk/SetKioskComponent.d.ts +5 -0
  219. package/dist/esm/components/Kiosk/SetKiosk/SetKioskComponent.js +78 -0
  220. package/dist/esm/components/Kiosk/SetKiosk/SetKioskForm.d.ts +5 -0
  221. package/dist/esm/components/Kiosk/SetKiosk/SetKioskForm.js +10 -0
  222. package/dist/esm/components/Kiosk/SetKiosk/SetKioskStatusMessages.d.ts +5 -0
  223. package/dist/esm/components/Kiosk/SetKiosk/SetKioskStatusMessages.js +15 -0
  224. package/dist/esm/components/Kiosk/SetKiosk/constants.d.ts +6 -0
  225. package/dist/esm/components/Kiosk/SetKiosk/constants.js +6 -0
  226. package/dist/esm/components/Kiosk/SetKiosk/getKioskUrlParamKey.d.ts +2 -0
  227. package/dist/esm/components/Kiosk/SetKiosk/getKioskUrlParamKey.js +4 -0
  228. package/dist/esm/components/Kiosk/SetKiosk/getName.d.ts +2 -0
  229. package/dist/esm/components/Kiosk/SetKiosk/getName.js +2 -0
  230. package/dist/esm/components/Kiosk/SetKiosk/getSlug.d.ts +2 -0
  231. package/dist/esm/components/Kiosk/SetKiosk/getSlug.js +2 -0
  232. package/dist/esm/components/Kiosk/SetKiosk/index.d.ts +7 -0
  233. package/dist/esm/components/Kiosk/SetKiosk/index.js +6 -0
  234. package/dist/esm/components/Kiosk/SetKiosk/storage.d.ts +5 -0
  235. package/dist/esm/components/Kiosk/SetKiosk/storage.js +21 -0
  236. package/dist/esm/components/Kiosk/SetKiosk/types.d.ts +109 -0
  237. package/dist/esm/components/Kiosk/SetKiosk/types.js +1 -0
  238. package/dist/esm/components/Kiosk/SetKioskMode.d.ts +3 -0
  239. package/dist/esm/components/Kiosk/SetKioskMode.js +35 -0
  240. package/dist/esm/components/Kiosk/ShowKiosk.d.ts +3 -0
  241. package/dist/esm/components/Kiosk/ShowKiosk.js +72 -0
  242. package/dist/esm/components/Kiosk/integrateKiosk.d.ts +10 -0
  243. package/dist/esm/components/Kiosk/integrateKiosk.js +68 -0
  244. package/dist/esm/components/Kiosk/kiosk-mode.d.ts +26 -0
  245. package/dist/esm/components/Kiosk/kiosk-mode.js +56 -0
  246. package/dist/esm/components/Kiosk/kiosk-record.d.ts +23 -0
  247. package/dist/esm/components/Kiosk/kiosk-record.js +29 -0
  248. package/dist/esm/components/Kiosk/kioskApi.d.ts +4 -0
  249. package/dist/esm/components/Kiosk/kioskApi.js +47 -0
  250. package/dist/esm/components/Kiosk/kioskUrlParam.d.ts +8 -0
  251. package/dist/esm/components/Kiosk/kioskUrlParam.js +46 -0
  252. package/dist/esm/components/Kiosk/recoverKioskFromUrlPrams.d.ts +2 -0
  253. package/dist/esm/components/Kiosk/recoverKioskFromUrlPrams.js +9 -0
  254. package/dist/esm/components/Language.d.ts +4 -0
  255. package/dist/esm/components/Language.js +15 -0
  256. package/dist/esm/components/LanguageRowContainer.d.ts +7 -0
  257. package/dist/esm/components/LanguageRowContainer.js +9 -0
  258. package/dist/esm/components/Layout.d.ts +11 -0
  259. package/dist/esm/components/Layout.js +160 -0
  260. package/dist/esm/components/LevelBadgeContainer.d.ts +6 -0
  261. package/dist/esm/components/LevelBadgeContainer.js +10 -0
  262. package/dist/esm/components/List.d.ts +9 -0
  263. package/dist/esm/components/List.js +77 -0
  264. package/dist/esm/components/LogoOverlay.d.ts +3 -0
  265. package/dist/esm/components/LogoOverlay.js +78 -0
  266. package/dist/esm/components/Map/Map.d.ts +2 -0
  267. package/dist/esm/components/Map/Map.js +242 -0
  268. package/dist/esm/components/Map/MapCamera.d.ts +17 -0
  269. package/dist/esm/components/Map/MapCamera.js +194 -0
  270. package/dist/esm/components/Map/MapCursorCoords.d.ts +13 -0
  271. package/dist/esm/components/Map/MapCursorCoords.js +61 -0
  272. package/dist/esm/components/Map/MapViewport.d.ts +12 -0
  273. package/dist/esm/components/Map/MapViewport.js +29 -0
  274. package/dist/esm/components/Map/booth-by-xy.d.ts +14 -0
  275. package/dist/esm/components/Map/booth-by-xy.js +128 -0
  276. package/dist/esm/components/Map/camera-events.d.ts +19 -0
  277. package/dist/esm/components/Map/camera-events.js +26 -0
  278. package/dist/esm/components/Map/camera.d.ts +48 -0
  279. package/dist/esm/components/Map/camera.js +43 -0
  280. package/dist/esm/components/Map/drawing/config/BoothDrawerBase.d.ts +8 -0
  281. package/dist/esm/components/Map/drawing/config/BoothDrawerBase.js +8 -0
  282. package/dist/esm/components/Map/drawing/config/BoothShape.d.ts +7 -0
  283. package/dist/esm/components/Map/drawing/config/BoothShape.js +76 -0
  284. package/dist/esm/components/Map/drawing/config/TextFitter.d.ts +11 -0
  285. package/dist/esm/components/Map/drawing/config/TextFitter.js +174 -0
  286. package/dist/esm/components/Map/drawing/config/booth-badge-anchor.d.ts +130 -0
  287. package/dist/esm/components/Map/drawing/config/booth-badge-anchor.js +306 -0
  288. package/dist/esm/components/Map/drawing/config/booth-logos.d.ts +38 -0
  289. package/dist/esm/components/Map/drawing/config/booth-logos.js +94 -0
  290. package/dist/esm/components/Map/drawing/config/canvases.d.ts +96 -0
  291. package/dist/esm/components/Map/drawing/config/canvases.js +434 -0
  292. package/dist/esm/components/Map/drawing/config/config-all.d.ts +6 -0
  293. package/dist/esm/components/Map/drawing/config/config-all.js +92 -0
  294. package/dist/esm/components/Map/drawing/config/config-bg.d.ts +8 -0
  295. package/dist/esm/components/Map/drawing/config/config-bg.js +54 -0
  296. package/dist/esm/components/Map/drawing/config/config-booth-badge-eligibility.d.ts +28 -0
  297. package/dist/esm/components/Map/drawing/config/config-booth-badge-eligibility.js +7 -0
  298. package/dist/esm/components/Map/drawing/config/config-booth-badge-scale.d.ts +20 -0
  299. package/dist/esm/components/Map/drawing/config/config-booth-badge-scale.js +11 -0
  300. package/dist/esm/components/Map/drawing/config/config-booth-badge-visibility.d.ts +37 -0
  301. package/dist/esm/components/Map/drawing/config/config-booth-badge-visibility.js +3 -0
  302. package/dist/esm/components/Map/drawing/config/config-booth-badge.d.ts +90 -0
  303. package/dist/esm/components/Map/drawing/config/config-booth-badge.js +326 -0
  304. package/dist/esm/components/Map/drawing/config/config-booth-bg.d.ts +33 -0
  305. package/dist/esm/components/Map/drawing/config/config-booth-bg.js +240 -0
  306. package/dist/esm/components/Map/drawing/config/config-booth-bookmark.d.ts +24 -0
  307. package/dist/esm/components/Map/drawing/config/config-booth-bookmark.js +65 -0
  308. package/dist/esm/components/Map/drawing/config/config-booth-border.d.ts +12 -0
  309. package/dist/esm/components/Map/drawing/config/config-booth-border.js +92 -0
  310. package/dist/esm/components/Map/drawing/config/config-booth-labels-special.d.ts +28 -0
  311. package/dist/esm/components/Map/drawing/config/config-booth-labels-special.js +147 -0
  312. package/dist/esm/components/Map/drawing/config/config-booth-labels.d.ts +63 -0
  313. package/dist/esm/components/Map/drawing/config/config-booth-labels.js +380 -0
  314. package/dist/esm/components/Map/drawing/config/config-booths.d.ts +5 -0
  315. package/dist/esm/components/Map/drawing/config/config-booths.js +152 -0
  316. package/dist/esm/components/Map/drawing/config/config-load-layer.d.ts +4 -0
  317. package/dist/esm/components/Map/drawing/config/config-load-layer.js +119 -0
  318. package/dist/esm/components/Map/drawing/config/config-markers.d.ts +42 -0
  319. package/dist/esm/components/Map/drawing/config/config-markers.js +278 -0
  320. package/dist/esm/components/Map/drawing/config/config-outdoor-poi.d.ts +19 -0
  321. package/dist/esm/components/Map/drawing/config/config-outdoor-poi.js +96 -0
  322. package/dist/esm/components/Map/drawing/config/config-pins.d.ts +40 -0
  323. package/dist/esm/components/Map/drawing/config/config-pins.js +533 -0
  324. package/dist/esm/components/Map/drawing/config/label-inset.d.ts +26 -0
  325. package/dist/esm/components/Map/drawing/config/label-inset.js +26 -0
  326. package/dist/esm/components/Map/drawing/config/layer-images.d.ts +24 -0
  327. package/dist/esm/components/Map/drawing/config/layer-images.js +32 -0
  328. package/dist/esm/components/Map/drawing/config/layer-models.d.ts +31 -0
  329. package/dist/esm/components/Map/drawing/config/layer-models.js +38 -0
  330. package/dist/esm/components/Map/drawing/config/loadBoothsImages.d.ts +45 -0
  331. package/dist/esm/components/Map/drawing/config/loadBoothsImages.js +99 -0
  332. package/dist/esm/components/Map/drawing/config/pin-geometry.d.ts +65 -0
  333. package/dist/esm/components/Map/drawing/config/pin-geometry.js +75 -0
  334. package/dist/esm/components/Map/drawing/config/poi-pin-shape.d.ts +100 -0
  335. package/dist/esm/components/Map/drawing/config/poi-pin-shape.js +51 -0
  336. package/dist/esm/components/Map/drawing/config/poi-pin.d.ts +10 -0
  337. package/dist/esm/components/Map/drawing/config/poi-pin.js +88 -0
  338. package/dist/esm/components/Map/drawing/config/selection-style.d.ts +12 -0
  339. package/dist/esm/components/Map/drawing/config/selection-style.js +18 -0
  340. package/dist/esm/components/Map/framing-rect.d.ts +16 -0
  341. package/dist/esm/components/Map/framing-rect.js +24 -0
  342. package/dist/esm/components/Map/pointer.d.ts +79 -0
  343. package/dist/esm/components/Map/pointer.js +181 -0
  344. package/dist/esm/components/Map/scene.d.ts +20 -0
  345. package/dist/esm/components/Map/scene.js +24 -0
  346. package/dist/esm/components/Map/traffic/UpdateQueue.d.ts +13 -0
  347. package/dist/esm/components/Map/traffic/UpdateQueue.js +82 -0
  348. package/dist/esm/components/Map/traffic/trafficLayers.d.ts +12 -0
  349. package/dist/esm/components/Map/traffic/trafficLayers.js +29 -0
  350. package/dist/esm/components/Map/traffic/useBuildRoute.d.ts +9 -0
  351. package/dist/esm/components/Map/traffic/useBuildRoute.js +359 -0
  352. package/dist/esm/components/Map/traffic/useManageTraffic.d.ts +10 -0
  353. package/dist/esm/components/Map/traffic/useManageTraffic.js +643 -0
  354. package/dist/esm/components/Map/viewport.d.ts +63 -0
  355. package/dist/esm/components/Map/viewport.js +82 -0
  356. package/dist/esm/components/Map/with-kiosk.d.ts +11 -0
  357. package/dist/esm/components/Map/with-kiosk.js +25 -0
  358. package/dist/esm/components/MapControlsContainer.d.ts +3 -0
  359. package/dist/esm/components/MapControlsContainer.js +58 -0
  360. package/dist/esm/components/Maplibre/CollapsedAttributionControl.d.ts +12 -0
  361. package/dist/esm/components/Maplibre/CollapsedAttributionControl.js +19 -0
  362. package/dist/esm/components/Maplibre/ExpofpLogoControl.d.ts +20 -0
  363. package/dist/esm/components/Maplibre/ExpofpLogoControl.js +39 -0
  364. package/dist/esm/components/Maplibre/MaplibreAdapter.d.ts +18 -0
  365. package/dist/esm/components/Maplibre/MaplibreAdapter.js +354 -0
  366. package/dist/esm/components/Maplibre/MaplibreWrapper.d.ts +111 -0
  367. package/dist/esm/components/Maplibre/MaplibreWrapper.js +310 -0
  368. package/dist/esm/components/Maplibre/maplibre-recovery.d.ts +4 -0
  369. package/dist/esm/components/Maplibre/maplibre-recovery.js +4 -0
  370. package/dist/esm/components/Maplibre/styles/mapbox-streets-bright.d.ts +3 -0
  371. package/dist/esm/components/Maplibre/styles/mapbox-streets-bright.js +7048 -0
  372. package/dist/esm/components/Maplibre/styles/mapbox-streets.d.ts +3 -0
  373. package/dist/esm/components/Maplibre/styles/mapbox-streets.js +6132 -0
  374. package/dist/esm/components/Maplibre/useCameraReactions.d.ts +14 -0
  375. package/dist/esm/components/Maplibre/useCameraReactions.js +256 -0
  376. package/dist/esm/components/Maplibre/useDimming.d.ts +25 -0
  377. package/dist/esm/components/Maplibre/useDimming.js +61 -0
  378. package/dist/esm/components/Maplibre/useJourneyConnector.d.ts +16 -0
  379. package/dist/esm/components/Maplibre/useJourneyConnector.js +175 -0
  380. package/dist/esm/components/Maplibre/useKioskCameraEvents.d.ts +20 -0
  381. package/dist/esm/components/Maplibre/useKioskCameraEvents.js +52 -0
  382. package/dist/esm/components/Maplibre/useLayerVisibilitySync.d.ts +25 -0
  383. package/dist/esm/components/Maplibre/useLayerVisibilitySync.js +85 -0
  384. package/dist/esm/components/Maplibre/usePoiMarkers.d.ts +25 -0
  385. package/dist/esm/components/Maplibre/usePoiMarkers.js +368 -0
  386. package/dist/esm/components/Maplibre/useVenueCameraTracking.d.ts +6 -0
  387. package/dist/esm/components/Maplibre/useVenueCameraTracking.js +115 -0
  388. package/dist/esm/components/Maplibre/useVenueLayers.d.ts +15 -0
  389. package/dist/esm/components/Maplibre/useVenueLayers.js +463 -0
  390. package/dist/esm/components/Maplibre/useWayfindingAndMarkers.d.ts +11 -0
  391. package/dist/esm/components/Maplibre/useWayfindingAndMarkers.js +23 -0
  392. package/dist/esm/components/Maplibre/utils/basemap-palette.d.ts +19 -0
  393. package/dist/esm/components/Maplibre/utils/basemap-palette.js +125 -0
  394. package/dist/esm/components/Maplibre/utils/geo-config.d.ts +92 -0
  395. package/dist/esm/components/Maplibre/utils/geo-config.js +305 -0
  396. package/dist/esm/components/Maplibre/utils/hit-test-registry.d.ts +18 -0
  397. package/dist/esm/components/Maplibre/utils/hit-test-registry.js +17 -0
  398. package/dist/esm/components/Maplibre/utils/layer-defs.d.ts +9 -0
  399. package/dist/esm/components/Maplibre/utils/layer-defs.js +19 -0
  400. package/dist/esm/components/Maplibre/utils/local-viewport.d.ts +13 -0
  401. package/dist/esm/components/Maplibre/utils/local-viewport.js +31 -0
  402. package/dist/esm/components/Maplibre/utils/map-helpers.d.ts +21 -0
  403. package/dist/esm/components/Maplibre/utils/map-helpers.js +85 -0
  404. package/dist/esm/components/Maplibre/utils/map-theme.d.ts +20 -0
  405. package/dist/esm/components/Maplibre/utils/map-theme.js +44 -0
  406. package/dist/esm/components/Maplibre/utils/marker-layer-order.d.ts +22 -0
  407. package/dist/esm/components/Maplibre/utils/marker-layer-order.js +20 -0
  408. package/dist/esm/components/Maplibre/utils/pmtiles-range-fallback.d.ts +53 -0
  409. package/dist/esm/components/Maplibre/utils/pmtiles-range-fallback.js +110 -0
  410. package/dist/esm/components/Maplibre/utils/poi-marker-hit-test.d.ts +8 -0
  411. package/dist/esm/components/Maplibre/utils/poi-marker-hit-test.js +8 -0
  412. package/dist/esm/components/Maplibre/utils/resolve-map-style.d.ts +19 -0
  413. package/dist/esm/components/Maplibre/utils/resolve-map-style.js +73 -0
  414. package/dist/esm/components/Maplibre/utils/solver.d.ts +23 -0
  415. package/dist/esm/components/Maplibre/utils/solver.js +238 -0
  416. package/dist/esm/components/Maplibre/utils/style-fonts.d.ts +10 -0
  417. package/dist/esm/components/Maplibre/utils/style-fonts.js +24 -0
  418. package/dist/esm/components/Maplibre/utils/venue-calibration-console.d.ts +10 -0
  419. package/dist/esm/components/Maplibre/utils/venue-calibration-console.js +130 -0
  420. package/dist/esm/components/Maplibre/utils/venue-calibration.d.ts +127 -0
  421. package/dist/esm/components/Maplibre/utils/venue-calibration.js +144 -0
  422. package/dist/esm/components/Maplibre/utils/venue-camera-target.d.ts +15 -0
  423. package/dist/esm/components/Maplibre/utils/venue-camera-target.js +19 -0
  424. package/dist/esm/components/Maplibre/utils/venue-contour.d.ts +50 -0
  425. package/dist/esm/components/Maplibre/utils/venue-contour.fixture.d.ts +18 -0
  426. package/dist/esm/components/Maplibre/utils/venue-contour.fixture.js +69 -0
  427. package/dist/esm/components/Maplibre/utils/venue-contour.js +188 -0
  428. package/dist/esm/components/Maplibre/utils/venue-focus.d.ts +26 -0
  429. package/dist/esm/components/Maplibre/utils/venue-focus.js +106 -0
  430. package/dist/esm/components/Maplibre/utils/venue-legibility.d.ts +30 -0
  431. package/dist/esm/components/Maplibre/utils/venue-legibility.js +52 -0
  432. package/dist/esm/components/Maplibre/utils/venue-pin-rasterize.d.ts +88 -0
  433. package/dist/esm/components/Maplibre/utils/venue-pin-rasterize.js +220 -0
  434. package/dist/esm/components/Maplibre/utils/venue-projection.d.ts +37 -0
  435. package/dist/esm/components/Maplibre/utils/venue-projection.js +88 -0
  436. package/dist/esm/components/Maplibre/utils/venue-tap-hit-test.d.ts +9 -0
  437. package/dist/esm/components/Maplibre/utils/venue-tap-hit-test.js +9 -0
  438. package/dist/esm/components/Maplibre/utils/venue-viewport-detail.d.ts +19 -0
  439. package/dist/esm/components/Maplibre/utils/venue-viewport-detail.js +24 -0
  440. package/dist/esm/components/Maplibre/utils/venue-zoom.d.ts +23 -0
  441. package/dist/esm/components/Maplibre/utils/venue-zoom.js +62 -0
  442. package/dist/esm/components/Menu.d.ts +11 -0
  443. package/dist/esm/components/Menu.js +94 -0
  444. package/dist/esm/components/MobileToggleButtonContainer.d.ts +3 -0
  445. package/dist/esm/components/MobileToggleButtonContainer.js +24 -0
  446. package/dist/esm/components/ModalContainer.d.ts +41 -0
  447. package/dist/esm/components/ModalContainer.js +10 -0
  448. package/dist/esm/components/MultiSelectGroupsContainer.d.ts +5 -0
  449. package/dist/esm/components/MultiSelectGroupsContainer.js +8 -0
  450. package/dist/esm/components/OverlayContainer.d.ts +8 -0
  451. package/dist/esm/components/OverlayContainer.js +82 -0
  452. package/dist/esm/components/OverlayGripContainer.d.ts +4 -0
  453. package/dist/esm/components/OverlayGripContainer.js +11 -0
  454. package/dist/esm/components/OverlayParticles.d.ts +5 -0
  455. package/dist/esm/components/OverlayParticles.js +54 -0
  456. package/dist/esm/components/PlanSelectorContainer.d.ts +3 -0
  457. package/dist/esm/components/PlanSelectorContainer.js +79 -0
  458. package/dist/esm/components/RebookingNotesContainer.d.ts +4 -0
  459. package/dist/esm/components/RebookingNotesContainer.js +8 -0
  460. package/dist/esm/components/RebookingRadioGroupContainer.d.ts +6 -0
  461. package/dist/esm/components/RebookingRadioGroupContainer.js +23 -0
  462. package/dist/esm/components/RoutePlanner/RoutePlanner.d.ts +5 -0
  463. package/dist/esm/components/RoutePlanner/RoutePlanner.js +25 -0
  464. package/dist/esm/components/RoutePlanner/RoutePlannerHeader.d.ts +4 -0
  465. package/dist/esm/components/RoutePlanner/RoutePlannerHeader.js +11 -0
  466. package/dist/esm/components/RoutePlanner/RoutePlannerStartPoint.d.ts +9 -0
  467. package/dist/esm/components/RoutePlanner/RoutePlannerStartPoint.js +21 -0
  468. package/dist/esm/components/RoutePlanner/RoutePlannerStopItem.d.ts +9 -0
  469. package/dist/esm/components/RoutePlanner/RoutePlannerStopItem.js +41 -0
  470. package/dist/esm/components/RouteQR.d.ts +12 -0
  471. package/dist/esm/components/RouteQR.js +10 -0
  472. package/dist/esm/components/Schedule.d.ts +13 -0
  473. package/dist/esm/components/Schedule.js +109 -0
  474. package/dist/esm/components/ScrollableRowContainer.d.ts +6 -0
  475. package/dist/esm/components/ScrollableRowContainer.js +11 -0
  476. package/dist/esm/components/Search.d.ts +5 -0
  477. package/dist/esm/components/Search.js +45 -0
  478. package/dist/esm/components/SearchBox.d.ts +7 -0
  479. package/dist/esm/components/SearchBox.js +171 -0
  480. package/dist/esm/components/SearchButtons/SearchButton.d.ts +20 -0
  481. package/dist/esm/components/SearchButtons/SearchButton.js +30 -0
  482. package/dist/esm/components/SearchButtons/SearchButtons.d.ts +4 -0
  483. package/dist/esm/components/SearchButtons/SearchButtons.js +24 -0
  484. package/dist/esm/components/SearchButtons/SearchSubButton.d.ts +14 -0
  485. package/dist/esm/components/SearchButtons/SearchSubButton.js +12 -0
  486. package/dist/esm/components/SearchButtons/SearchSubButtons.d.ts +5 -0
  487. package/dist/esm/components/SearchButtons/SearchSubButtons.js +43 -0
  488. package/dist/esm/components/SearchButtons/index.d.ts +7 -0
  489. package/dist/esm/components/SearchButtons/index.js +5 -0
  490. package/dist/esm/components/Sessions.d.ts +8 -0
  491. package/dist/esm/components/Sessions.js +128 -0
  492. package/dist/esm/components/SessionsFiltersModal.d.ts +11 -0
  493. package/dist/esm/components/SessionsFiltersModal.js +105 -0
  494. package/dist/esm/components/SessionsList.d.ts +12 -0
  495. package/dist/esm/components/SessionsList.js +212 -0
  496. package/dist/esm/components/ShareContainer.d.ts +7 -0
  497. package/dist/esm/components/ShareContainer.js +29 -0
  498. package/dist/esm/components/Shortcuts/ShortcutButton.d.ts +9 -0
  499. package/dist/esm/components/Shortcuts/ShortcutButton.js +25 -0
  500. package/dist/esm/components/Shortcuts/ShortcutsFiltersButton.d.ts +9 -0
  501. package/dist/esm/components/Shortcuts/ShortcutsFiltersButton.js +41 -0
  502. package/dist/esm/components/Shortcuts/ShortcutsToolbar.d.ts +10 -0
  503. package/dist/esm/components/Shortcuts/ShortcutsToolbar.js +22 -0
  504. package/dist/esm/components/Shortcuts/index.d.ts +4 -0
  505. package/dist/esm/components/Shortcuts/index.js +4 -0
  506. package/dist/esm/components/ShowMoreButtonContainer.d.ts +5 -0
  507. package/dist/esm/components/ShowMoreButtonContainer.js +8 -0
  508. package/dist/esm/components/SidebarActionsContainer.d.ts +5 -0
  509. package/dist/esm/components/SidebarActionsContainer.js +8 -0
  510. package/dist/esm/components/SimpleRowContainer.d.ts +8 -0
  511. package/dist/esm/components/SimpleRowContainer.js +8 -0
  512. package/dist/esm/components/Speaker.d.ts +5 -0
  513. package/dist/esm/components/Speaker.js +72 -0
  514. package/dist/esm/components/Speakers.d.ts +8 -0
  515. package/dist/esm/components/Speakers.js +63 -0
  516. package/dist/esm/components/SpeakersFiltersModal.d.ts +11 -0
  517. package/dist/esm/components/SpeakersFiltersModal.js +77 -0
  518. package/dist/esm/components/TourPoints.d.ts +4 -0
  519. package/dist/esm/components/TourPoints.js +20 -0
  520. package/dist/esm/components/Tours.d.ts +7 -0
  521. package/dist/esm/components/Tours.js +54 -0
  522. package/dist/esm/components/ToursList.d.ts +10 -0
  523. package/dist/esm/components/ToursList.js +22 -0
  524. package/dist/esm/components/ViewerMenuPanel.d.ts +5 -0
  525. package/dist/esm/components/ViewerMenuPanel.js +61 -0
  526. package/dist/esm/components/Visited.d.ts +4 -0
  527. package/dist/esm/components/Visited.js +13 -0
  528. package/dist/esm/components/WayInformation.d.ts +14 -0
  529. package/dist/esm/components/WayInformation.js +8 -0
  530. package/dist/esm/components/Wayfinding.d.ts +4 -0
  531. package/dist/esm/components/Wayfinding.js +285 -0
  532. package/dist/esm/components/WayfindingFloorSelectorContainer.d.ts +5 -0
  533. package/dist/esm/components/WayfindingFloorSelectorContainer.js +12 -0
  534. package/dist/esm/components/WayfindingTemplate.d.ts +66 -0
  535. package/dist/esm/components/WayfindingTemplate.js +14 -0
  536. package/dist/esm/components/Ws.d.ts +5 -0
  537. package/dist/esm/components/Ws.js +131 -0
  538. package/dist/esm/components/YahRow.d.ts +8 -0
  539. package/dist/esm/components/YahRow.js +25 -0
  540. package/dist/esm/components/gps/GpsManager.d.ts +13 -0
  541. package/dist/esm/components/gps/GpsManager.js +60 -0
  542. package/dist/esm/components/gps/GpsPermissionRequest.d.ts +8 -0
  543. package/dist/esm/components/gps/GpsPermissionRequest.js +10 -0
  544. package/dist/esm/components/gps/index.d.ts +5 -0
  545. package/dist/esm/components/gps/index.js +3 -0
  546. package/dist/esm/components/gps/types.d.ts +7 -0
  547. package/dist/esm/components/gps/types.js +1 -0
  548. package/dist/esm/components/gps/useUserLocationAndHeading.d.ts +8 -0
  549. package/dist/esm/components/gps/useUserLocationAndHeading.js +122 -0
  550. package/dist/esm/components/gps/utils.d.ts +5 -0
  551. package/dist/esm/components/gps/utils.js +11 -0
  552. package/dist/esm/components/heatmap-legend-ticks.d.ts +11 -0
  553. package/dist/esm/components/heatmap-legend-ticks.js +18 -0
  554. package/dist/esm/components/index.d.ts +114 -0
  555. package/dist/esm/components/index.js +76 -0
  556. package/dist/esm/components/utils/entity-venue-grouping.d.ts +32 -0
  557. package/dist/esm/components/utils/entity-venue-grouping.js +43 -0
  558. package/dist/esm/components/utils/getDescription.d.ts +19 -0
  559. package/dist/esm/components/utils/getDescription.js +35 -0
  560. package/dist/esm/constants.d.ts +44 -0
  561. package/dist/esm/constants.js +66 -0
  562. package/dist/esm/data/fp-payloads.d.ts +27 -0
  563. package/dist/esm/data/fp-payloads.js +53 -0
  564. package/dist/esm/data/fpGeo.d.ts +45 -0
  565. package/dist/esm/data/fpGeo.js +9 -0
  566. package/dist/esm/data/index.d.ts +15 -0
  567. package/dist/esm/data/index.js +15 -0
  568. package/dist/esm/data/layer-viewbox.d.ts +10 -0
  569. package/dist/esm/data/layer-viewbox.js +20 -0
  570. package/dist/esm/data/svg.d.ts +43 -0
  571. package/dist/esm/data/svg.js +210 -0
  572. package/dist/esm/data/tours.json +280 -0
  573. package/dist/esm/data/venue-scene-preload.d.ts +34 -0
  574. package/dist/esm/data/venue-scene-preload.js +205 -0
  575. package/dist/esm/data/venues.d.ts +145 -0
  576. package/dist/esm/data/venues.js +955 -0
  577. package/dist/esm/engine/defs.d.ts +38 -0
  578. package/dist/esm/engine/defs.js +85 -0
  579. package/dist/esm/engine/fonts.d.ts +9 -0
  580. package/dist/esm/engine/fonts.js +12 -0
  581. package/dist/esm/engine/update-def.d.ts +55 -0
  582. package/dist/esm/engine/update-def.js +127 -0
  583. package/dist/esm/engine/utils/rotation.d.ts +13 -0
  584. package/dist/esm/engine/utils/rotation.js +73 -0
  585. package/dist/esm/floorplan.loader.d.ts +164 -0
  586. package/dist/esm/floorplan.loader.js +540 -0
  587. package/dist/esm/floorplan.ready.d.ts +149 -0
  588. package/dist/esm/floorplan.ready.js +1083 -0
  589. package/dist/esm/hooks/useURLFilters.d.ts +15 -0
  590. package/dist/esm/hooks/useURLFilters.js +44 -0
  591. package/dist/esm/index.d.ts +3 -0
  592. package/dist/esm/index.js +12 -0
  593. package/dist/esm/intercom/bootIntercom.d.ts +3 -0
  594. package/dist/esm/intercom/bootIntercom.js +47 -0
  595. package/dist/esm/intercom/index.d.ts +3 -0
  596. package/dist/esm/intercom/index.js +1 -0
  597. package/dist/esm/intercom/shouldLoad.d.ts +4 -0
  598. package/dist/esm/intercom/shouldLoad.js +74 -0
  599. package/dist/esm/intercom/types.d.ts +6 -0
  600. package/dist/esm/intercom/types.js +1 -0
  601. package/dist/esm/internal-settings.d.ts +13 -0
  602. package/dist/esm/internal-settings.js +6 -0
  603. package/dist/esm/journey/external-navigation.d.ts +30 -0
  604. package/dist/esm/journey/external-navigation.js +38 -0
  605. package/dist/esm/journey/format-distance.d.ts +14 -0
  606. package/dist/esm/journey/format-distance.js +38 -0
  607. package/dist/esm/journey/index.d.ts +16 -0
  608. package/dist/esm/journey/index.js +15 -0
  609. package/dist/esm/journey/journey-context.d.ts +140 -0
  610. package/dist/esm/journey/journey-context.js +137 -0
  611. package/dist/esm/journey/journey-link.d.ts +49 -0
  612. package/dist/esm/journey/journey-link.js +35 -0
  613. package/dist/esm/journey/journey-stage.d.ts +35 -0
  614. package/dist/esm/journey/journey-stage.js +28 -0
  615. package/dist/esm/journey/maps-provider.d.ts +36 -0
  616. package/dist/esm/journey/maps-provider.js +58 -0
  617. package/dist/esm/journey/plan-journey.d.ts +37 -0
  618. package/dist/esm/journey/plan-journey.js +176 -0
  619. package/dist/esm/journey/types.d.ts +294 -0
  620. package/dist/esm/journey/types.js +1 -0
  621. package/dist/esm/load-dev.d.ts +44 -0
  622. package/dist/esm/load-dev.js +60 -0
  623. package/dist/esm/load.d.ts +17 -0
  624. package/dist/esm/load.js +244 -0
  625. package/dist/esm/locales.d.ts +25 -0
  626. package/dist/esm/locales.js +23 -0
  627. package/dist/esm/offline/constants.d.ts +5 -0
  628. package/dist/esm/offline/constants.js +4 -0
  629. package/dist/esm/offline/offlineManager.d.ts +2 -0
  630. package/dist/esm/offline/offlineManager.js +78 -0
  631. package/dist/esm/plan-lifecycle.d.ts +65 -0
  632. package/dist/esm/plan-lifecycle.js +97 -0
  633. package/dist/esm/schemas/sdk.schemas.d.ts +25 -0
  634. package/dist/esm/schemas/sdk.schemas.js +24 -0
  635. package/dist/esm/services/URLFilterManager.d.ts +39 -0
  636. package/dist/esm/services/URLFilterManager.js +379 -0
  637. package/dist/esm/services/multi-slug.d.ts +20 -0
  638. package/dist/esm/services/multi-slug.js +30 -0
  639. package/dist/esm/services/url-dispatch.d.ts +22 -0
  640. package/dist/esm/services/url-dispatch.js +707 -0
  641. package/dist/esm/services/url-sync.d.ts +40 -0
  642. package/dist/esm/services/url-sync.js +185 -0
  643. package/dist/esm/store/BaseFilterStore.d.ts +17 -0
  644. package/dist/esm/store/BaseFilterStore.js +63 -0
  645. package/dist/esm/store/BookmarksStore.d.ts +9 -0
  646. package/dist/esm/store/BookmarksStore.js +28 -0
  647. package/dist/esm/store/BoothStore.d.ts +105 -0
  648. package/dist/esm/store/BoothStore.js +194 -0
  649. package/dist/esm/store/CategoryFilterStore.d.ts +13 -0
  650. package/dist/esm/store/CategoryFilterStore.js +60 -0
  651. package/dist/esm/store/CategoryStore.d.ts +21 -0
  652. package/dist/esm/store/CategoryStore.js +30 -0
  653. package/dist/esm/store/EventStore.d.ts +56 -0
  654. package/dist/esm/store/EventStore.js +188 -0
  655. package/dist/esm/store/ExhibitorStore.d.ts +86 -0
  656. package/dist/esm/store/ExhibitorStore.js +175 -0
  657. package/dist/esm/store/FuzzySearchEngineStore.d.ts +15 -0
  658. package/dist/esm/store/FuzzySearchEngineStore.js +45 -0
  659. package/dist/esm/store/HeatmapStore.d.ts +51 -0
  660. package/dist/esm/store/HeatmapStore.js +100 -0
  661. package/dist/esm/store/IntercomStore.d.ts +7 -0
  662. package/dist/esm/store/IntercomStore.js +26 -0
  663. package/dist/esm/store/LayerStore.d.ts +70 -0
  664. package/dist/esm/store/LayerStore.js +399 -0
  665. package/dist/esm/store/MaplibreStore.d.ts +71 -0
  666. package/dist/esm/store/MaplibreStore.js +137 -0
  667. package/dist/esm/store/OverlayStore.d.ts +32 -0
  668. package/dist/esm/store/OverlayStore.js +68 -0
  669. package/dist/esm/store/PoiMarkerStore.d.ts +76 -0
  670. package/dist/esm/store/PoiMarkerStore.js +97 -0
  671. package/dist/esm/store/PoiTypeStore.d.ts +8 -0
  672. package/dist/esm/store/PoiTypeStore.js +6 -0
  673. package/dist/esm/store/RootStore.d.ts +118 -0
  674. package/dist/esm/store/RootStore.js +666 -0
  675. package/dist/esm/store/RoutePlannerStore.d.ts +56 -0
  676. package/dist/esm/store/RoutePlannerStore.js +322 -0
  677. package/dist/esm/store/RouteStore.d.ts +138 -0
  678. package/dist/esm/store/RouteStore.js +692 -0
  679. package/dist/esm/store/SearchButtonsStore.d.ts +2 -0
  680. package/dist/esm/store/SearchButtonsStore.js +2 -0
  681. package/dist/esm/store/SearchStore.d.ts +81 -0
  682. package/dist/esm/store/SearchStore.js +612 -0
  683. package/dist/esm/store/SessionsFilterStore.d.ts +53 -0
  684. package/dist/esm/store/SessionsFilterStore.js +169 -0
  685. package/dist/esm/store/ShortcutProvider.d.ts +26 -0
  686. package/dist/esm/store/ShortcutProvider.js +5 -0
  687. package/dist/esm/store/ShortcutRegistry.d.ts +33 -0
  688. package/dist/esm/store/ShortcutRegistry.js +130 -0
  689. package/dist/esm/store/SpeakerFilterStore.d.ts +39 -0
  690. package/dist/esm/store/SpeakerFilterStore.js +152 -0
  691. package/dist/esm/store/SpeakerStore.d.ts +45 -0
  692. package/dist/esm/store/SpeakerStore.js +142 -0
  693. package/dist/esm/store/SubButtonProvider.d.ts +16 -0
  694. package/dist/esm/store/SubButtonProvider.js +6 -0
  695. package/dist/esm/store/SubButtonRegistry.d.ts +16 -0
  696. package/dist/esm/store/SubButtonRegistry.js +58 -0
  697. package/dist/esm/store/ToursStore.d.ts +30 -0
  698. package/dist/esm/store/ToursStore.js +184 -0
  699. package/dist/esm/store/UIState.d.ts +329 -0
  700. package/dist/esm/store/UIState.js +2138 -0
  701. package/dist/esm/store/VenueStore.d.ts +254 -0
  702. package/dist/esm/store/VenueStore.js +650 -0
  703. package/dist/esm/store/create-live-plan.d.ts +13 -0
  704. package/dist/esm/store/create-live-plan.js +25 -0
  705. package/dist/esm/store/details-events.d.ts +11 -0
  706. package/dist/esm/store/details-events.js +76 -0
  707. package/dist/esm/store/floor-activated-notifier.d.ts +18 -0
  708. package/dist/esm/store/floor-activated-notifier.js +22 -0
  709. package/dist/esm/store/index.d.ts +3 -0
  710. package/dist/esm/store/index.js +14 -0
  711. package/dist/esm/store/init/index.d.ts +3 -0
  712. package/dist/esm/store/init/index.js +20 -0
  713. package/dist/esm/store/init/init-booths.d.ts +6 -0
  714. package/dist/esm/store/init/init-booths.js +306 -0
  715. package/dist/esm/store/init/init-categories.d.ts +3 -0
  716. package/dist/esm/store/init/init-categories.js +28 -0
  717. package/dist/esm/store/init/init-events.d.ts +3 -0
  718. package/dist/esm/store/init/init-events.js +45 -0
  719. package/dist/esm/store/init/init-exhibitors.d.ts +3 -0
  720. package/dist/esm/store/init/init-exhibitors.js +71 -0
  721. package/dist/esm/store/init/init-heatmap.d.ts +3 -0
  722. package/dist/esm/store/init/init-heatmap.js +37 -0
  723. package/dist/esm/store/init/init-layers.d.ts +8 -0
  724. package/dist/esm/store/init/init-layers.js +151 -0
  725. package/dist/esm/store/init/init-poiTypes.d.ts +3 -0
  726. package/dist/esm/store/init/init-poiTypes.js +6 -0
  727. package/dist/esm/store/init/init-speakers.d.ts +3 -0
  728. package/dist/esm/store/init/init-speakers.js +20 -0
  729. package/dist/esm/store/init/init-ui.d.ts +13 -0
  730. package/dist/esm/store/init/init-ui.js +155 -0
  731. package/dist/esm/store/journey-plan.d.ts +89 -0
  732. package/dist/esm/store/journey-plan.js +291 -0
  733. package/dist/esm/store/live-store.d.ts +19 -0
  734. package/dist/esm/store/live-store.js +26 -0
  735. package/dist/esm/store/outdoor-poi-filter.d.ts +21 -0
  736. package/dist/esm/store/outdoor-poi-filter.js +33 -0
  737. package/dist/esm/store/providers/SearchShortcutProvider.d.ts +13 -0
  738. package/dist/esm/store/providers/SearchShortcutProvider.js +59 -0
  739. package/dist/esm/store/providers/SessionsShortcutProvider.d.ts +17 -0
  740. package/dist/esm/store/providers/SessionsShortcutProvider.js +221 -0
  741. package/dist/esm/store/providers/SessionsSubButtonProvider.d.ts +33 -0
  742. package/dist/esm/store/providers/SessionsSubButtonProvider.js +100 -0
  743. package/dist/esm/store/providers/SpeakerShortcutProvider.d.ts +12 -0
  744. package/dist/esm/store/providers/SpeakerShortcutProvider.js +73 -0
  745. package/dist/esm/store/reveal-layer.d.ts +29 -0
  746. package/dist/esm/store/reveal-layer.js +25 -0
  747. package/dist/esm/store/search-buttons/SearchButtonsActions.d.ts +55 -0
  748. package/dist/esm/store/search-buttons/SearchButtonsActions.js +363 -0
  749. package/dist/esm/store/search-buttons/SearchButtonsFactory.d.ts +37 -0
  750. package/dist/esm/store/search-buttons/SearchButtonsFactory.js +291 -0
  751. package/dist/esm/store/search-buttons/SearchButtonsFilters.d.ts +20 -0
  752. package/dist/esm/store/search-buttons/SearchButtonsFilters.js +157 -0
  753. package/dist/esm/store/search-buttons/SearchButtonsState.d.ts +24 -0
  754. package/dist/esm/store/search-buttons/SearchButtonsState.js +125 -0
  755. package/dist/esm/store/search-buttons/SearchButtonsStore.d.ts +73 -0
  756. package/dist/esm/store/search-buttons/SearchButtonsStore.js +364 -0
  757. package/dist/esm/store/search-buttons/constants.d.ts +24 -0
  758. package/dist/esm/store/search-buttons/constants.js +24 -0
  759. package/dist/esm/store/search-buttons/index.d.ts +8 -0
  760. package/dist/esm/store/search-buttons/index.js +7 -0
  761. package/dist/esm/store/search-buttons/utils.d.ts +6 -0
  762. package/dist/esm/store/search-buttons/utils.js +34 -0
  763. package/dist/esm/store/types.d.ts +213 -0
  764. package/dist/esm/store/types.js +1 -0
  765. package/dist/esm/store/venue-public.d.ts +10 -0
  766. package/dist/esm/store/venue-public.js +14 -0
  767. package/dist/esm/store/venue-selection.d.ts +45 -0
  768. package/dist/esm/store/venue-selection.js +101 -0
  769. package/dist/esm/test/store-harness.d.ts +32 -0
  770. package/dist/esm/test/store-harness.js +116 -0
  771. package/dist/esm/tools/base-runtime-url.d.ts +3 -0
  772. package/dist/esm/tools/base-runtime-url.js +23 -0
  773. package/dist/esm/tools/debounce.d.ts +2 -0
  774. package/dist/esm/tools/debounce.js +10 -0
  775. package/dist/esm/tools/debugCanvases.d.ts +3 -0
  776. package/dist/esm/tools/debugCanvases.js +3 -0
  777. package/dist/esm/tools/event-not-found.d.ts +18 -0
  778. package/dist/esm/tools/event-not-found.js +50 -0
  779. package/dist/esm/tools/event-scoped-cache.d.ts +13 -0
  780. package/dist/esm/tools/event-scoped-cache.js +47 -0
  781. package/dist/esm/tools/expofpUrl.d.ts +7 -0
  782. package/dist/esm/tools/expofpUrl.js +10 -0
  783. package/dist/esm/tools/freeBanner.d.ts +5 -0
  784. package/dist/esm/tools/freeBanner.js +11 -0
  785. package/dist/esm/tools/gtag.d.ts +66 -0
  786. package/dist/esm/tools/gtag.js +287 -0
  787. package/dist/esm/tools/handleDebugMode.d.ts +19 -0
  788. package/dist/esm/tools/handleDebugMode.js +61 -0
  789. package/dist/esm/tools/has-html-tags.d.ts +2 -0
  790. package/dist/esm/tools/has-html-tags.js +3 -0
  791. package/dist/esm/tools/id.d.ts +2 -0
  792. package/dist/esm/tools/id.js +5 -0
  793. package/dist/esm/tools/loaders.d.ts +5 -0
  794. package/dist/esm/tools/loaders.js +67 -0
  795. package/dist/esm/tools/logger.d.ts +38 -0
  796. package/dist/esm/tools/logger.js +87 -0
  797. package/dist/esm/tools/rebooking-config.d.ts +10 -0
  798. package/dist/esm/tools/rebooking-config.js +19 -0
  799. package/dist/esm/tools/rebookingUrl.d.ts +11 -0
  800. package/dist/esm/tools/rebookingUrl.js +27 -0
  801. package/dist/esm/tools/report-error.d.ts +2 -0
  802. package/dist/esm/tools/report-error.js +134 -0
  803. package/dist/esm/tools/reset.d.ts +2 -0
  804. package/dist/esm/tools/reset.js +35 -0
  805. package/dist/esm/tools/sentry.d.ts +7 -0
  806. package/dist/esm/tools/sentry.js +166 -0
  807. package/dist/esm/tools/settings.d.ts +36 -0
  808. package/dist/esm/tools/settings.js +110 -0
  809. package/dist/esm/tools/slug.d.ts +2 -0
  810. package/dist/esm/tools/slug.js +27 -0
  811. package/dist/esm/tools/strip-html.d.ts +2 -0
  812. package/dist/esm/tools/strip-html.js +7 -0
  813. package/dist/esm/tools/style-registry.d.ts +28 -0
  814. package/dist/esm/tools/style-registry.js +46 -0
  815. package/dist/esm/tools/telemetry.d.ts +37 -0
  816. package/dist/esm/tools/telemetry.js +266 -0
  817. package/dist/esm/tools/track-event.d.ts +28 -0
  818. package/dist/esm/tools/track-event.js +196 -0
  819. package/dist/esm/tools/webgl-logger.d.ts +2 -0
  820. package/dist/esm/tools/webgl-logger.js +31 -0
  821. package/dist/esm/types/drawing.types.d.ts +18 -0
  822. package/dist/esm/types/drawing.types.js +1 -0
  823. package/dist/esm/types/sdk.types.d.ts +49 -0
  824. package/dist/esm/types/sdk.types.js +6 -0
  825. package/dist/esm/types.d.ts +593 -0
  826. package/dist/esm/types.js +1 -0
  827. package/dist/esm/utils/_OLD_gpu-info.d.ts +6 -0
  828. package/dist/esm/utils/_OLD_gpu-info.js +23 -0
  829. package/dist/esm/utils/_OLD_should-use-backdrop.d.ts +3 -0
  830. package/dist/esm/utils/_OLD_should-use-backdrop.js +4 -0
  831. package/dist/esm/utils/areLayersEnabled.d.ts +2 -0
  832. package/dist/esm/utils/areLayersEnabled.js +4 -0
  833. package/dist/esm/utils/blob-image-size.d.ts +27 -0
  834. package/dist/esm/utils/blob-image-size.js +37 -0
  835. package/dist/esm/utils/brand.d.ts +18 -0
  836. package/dist/esm/utils/brand.js +19 -0
  837. package/dist/esm/utils/browser.d.ts +4 -0
  838. package/dist/esm/utils/browser.js +4 -0
  839. package/dist/esm/utils/calcSpeed.d.ts +2 -0
  840. package/dist/esm/utils/calcSpeed.js +5 -0
  841. package/dist/esm/utils/calcTravelTime.d.ts +2 -0
  842. package/dist/esm/utils/calcTravelTime.js +3 -0
  843. package/dist/esm/utils/camera-map-settings.d.ts +26 -0
  844. package/dist/esm/utils/camera-map-settings.js +86 -0
  845. package/dist/esm/utils/color-gradient.d.ts +2 -0
  846. package/dist/esm/utils/color-gradient.js +14 -0
  847. package/dist/esm/utils/customCommands.d.ts +2 -0
  848. package/dist/esm/utils/customCommands.js +33 -0
  849. package/dist/esm/utils/detectLimitedModeViaImage.d.ts +2 -0
  850. package/dist/esm/utils/detectLimitedModeViaImage.js +33 -0
  851. package/dist/esm/utils/dimming.d.ts +27 -0
  852. package/dist/esm/utils/dimming.js +88 -0
  853. package/dist/esm/utils/entity-storage.d.ts +14 -0
  854. package/dist/esm/utils/entity-storage.js +122 -0
  855. package/dist/esm/utils/event-head.d.ts +38 -0
  856. package/dist/esm/utils/event-head.js +90 -0
  857. package/dist/esm/utils/event-now.d.ts +11 -0
  858. package/dist/esm/utils/event-now.js +40 -0
  859. package/dist/esm/utils/event-title.d.ts +19 -0
  860. package/dist/esm/utils/event-title.js +20 -0
  861. package/dist/esm/utils/eventFullBadge.d.ts +3 -0
  862. package/dist/esm/utils/eventFullBadge.js +7 -0
  863. package/dist/esm/utils/eventTime.d.ts +15 -0
  864. package/dist/esm/utils/eventTime.js +82 -0
  865. package/dist/esm/utils/extractMetaFromString.d.ts +5 -0
  866. package/dist/esm/utils/extractMetaFromString.js +16 -0
  867. package/dist/esm/utils/geo-anchors.d.ts +10 -0
  868. package/dist/esm/utils/geo-anchors.js +12 -0
  869. package/dist/esm/utils/geometry.d.ts +2 -0
  870. package/dist/esm/utils/geometry.js +12 -0
  871. package/dist/esm/utils/getContrastTextColor.d.ts +2 -0
  872. package/dist/esm/utils/getContrastTextColor.js +26 -0
  873. package/dist/esm/utils/getLogoUrl.d.ts +9 -0
  874. package/dist/esm/utils/getLogoUrl.js +26 -0
  875. package/dist/esm/utils/getMostFrequent.d.ts +2 -0
  876. package/dist/esm/utils/getMostFrequent.js +14 -0
  877. package/dist/esm/utils/getRenderTargetFromRoot.d.ts +2 -0
  878. package/dist/esm/utils/getRenderTargetFromRoot.js +19 -0
  879. package/dist/esm/utils/gps.d.ts +40 -0
  880. package/dist/esm/utils/gps.js +66 -0
  881. package/dist/esm/utils/heatmap-enabled.d.ts +13 -0
  882. package/dist/esm/utils/heatmap-enabled.js +13 -0
  883. package/dist/esm/utils/i18n.d.ts +18 -0
  884. package/dist/esm/utils/i18n.js +117 -0
  885. package/dist/esm/utils/index.d.ts +10 -0
  886. package/dist/esm/utils/index.js +60 -0
  887. package/dist/esm/utils/is-debug.d.ts +3 -0
  888. package/dist/esm/utils/is-debug.js +9 -0
  889. package/dist/esm/utils/is-from-designer.d.ts +3 -0
  890. package/dist/esm/utils/is-from-designer.js +4 -0
  891. package/dist/esm/utils/is-iframe.d.ts +3 -0
  892. package/dist/esm/utils/is-iframe.js +13 -0
  893. package/dist/esm/utils/is-localhost.d.ts +3 -0
  894. package/dist/esm/utils/is-localhost.js +11 -0
  895. package/dist/esm/utils/is-mac.d.ts +3 -0
  896. package/dist/esm/utils/is-mac.js +2 -0
  897. package/dist/esm/utils/is-mobile.d.ts +3 -0
  898. package/dist/esm/utils/is-mobile.js +2 -0
  899. package/dist/esm/utils/is-own-domain.d.ts +12 -0
  900. package/dist/esm/utils/is-own-domain.js +23 -0
  901. package/dist/esm/utils/is-pathway-layer.d.ts +2 -0
  902. package/dist/esm/utils/is-pathway-layer.js +4 -0
  903. package/dist/esm/utils/is-phone.d.ts +9 -0
  904. package/dist/esm/utils/is-phone.js +17 -0
  905. package/dist/esm/utils/is-scroll-ugly.d.ts +3 -0
  906. package/dist/esm/utils/is-scroll-ugly.js +13 -0
  907. package/dist/esm/utils/is-webview.d.ts +3 -0
  908. package/dist/esm/utils/is-webview.js +2 -0
  909. package/dist/esm/utils/isNumericLevel.d.ts +2 -0
  910. package/dist/esm/utils/isNumericLevel.js +3 -0
  911. package/dist/esm/utils/lazy-qr-code.d.ts +5 -0
  912. package/dist/esm/utils/lazy-qr-code.js +6 -0
  913. package/dist/esm/utils/legacy-storage-keys.d.ts +16 -0
  914. package/dist/esm/utils/legacy-storage-keys.js +38 -0
  915. package/dist/esm/utils/loadBlob.d.ts +16 -0
  916. package/dist/esm/utils/loadBlob.js +40 -0
  917. package/dist/esm/utils/loadCustomCss.d.ts +3 -0
  918. package/dist/esm/utils/loadCustomCss.js +19 -0
  919. package/dist/esm/utils/loadIcons.d.ts +3 -0
  920. package/dist/esm/utils/loadIcons.js +24 -0
  921. package/dist/esm/utils/loadImage.d.ts +2 -0
  922. package/dist/esm/utils/loadImage.js +11 -0
  923. package/dist/esm/utils/loadImagesInBatches.d.ts +22 -0
  924. package/dist/esm/utils/loadImagesInBatches.js +82 -0
  925. package/dist/esm/utils/loadLayerImages.d.ts +41 -0
  926. package/dist/esm/utils/loadLayerImages.js +107 -0
  927. package/dist/esm/utils/localStorage.d.ts +2 -0
  928. package/dist/esm/utils/localStorage.js +11 -0
  929. package/dist/esm/utils/lz-utils.d.ts +8 -0
  930. package/dist/esm/utils/lz-utils.js +16 -0
  931. package/dist/esm/utils/mapEntity.d.ts +3 -0
  932. package/dist/esm/utils/mapEntity.js +82 -0
  933. package/dist/esm/utils/math.d.ts +6 -0
  934. package/dist/esm/utils/math.js +7 -0
  935. package/dist/esm/utils/mobx.d.ts +35 -0
  936. package/dist/esm/utils/mobx.js +74 -0
  937. package/dist/esm/utils/outdoor-poi.d.ts +32 -0
  938. package/dist/esm/utils/outdoor-poi.js +28 -0
  939. package/dist/esm/utils/plan-reactions.d.ts +20 -0
  940. package/dist/esm/utils/plan-reactions.js +26 -0
  941. package/dist/esm/utils/planBearing.d.ts +14 -0
  942. package/dist/esm/utils/planBearing.js +15 -0
  943. package/dist/esm/utils/preview-exhibitor.d.ts +11 -0
  944. package/dist/esm/utils/preview-exhibitor.js +19 -0
  945. package/dist/esm/utils/rasterize-svg.d.ts +32 -0
  946. package/dist/esm/utils/rasterize-svg.js +78 -0
  947. package/dist/esm/utils/responsiveClass.d.ts +2 -0
  948. package/dist/esm/utils/responsiveClass.js +25 -0
  949. package/dist/esm/utils/rtl.d.ts +2 -0
  950. package/dist/esm/utils/rtl.js +4 -0
  951. package/dist/esm/utils/sanitizeHtml.d.ts +3 -0
  952. package/dist/esm/utils/sanitizeHtml.js +21 -0
  953. package/dist/esm/utils/sanitizeText.d.ts +9 -0
  954. package/dist/esm/utils/sanitizeText.js +19 -0
  955. package/dist/esm/utils/scene-bounds.d.ts +64 -0
  956. package/dist/esm/utils/scene-bounds.js +127 -0
  957. package/dist/esm/utils/shortenName.d.ts +2 -0
  958. package/dist/esm/utils/shortenName.js +19 -0
  959. package/dist/esm/utils/silence-mobx-react-lite-warning.d.ts +2 -0
  960. package/dist/esm/utils/silence-mobx-react-lite-warning.js +24 -0
  961. package/dist/esm/utils/strEqual.d.ts +2 -0
  962. package/dist/esm/utils/strEqual.js +3 -0
  963. package/dist/esm/utils/swappable-proxy.d.ts +28 -0
  964. package/dist/esm/utils/swappable-proxy.js +71 -0
  965. package/dist/esm/utils/trackingParams.d.ts +3 -0
  966. package/dist/esm/utils/trackingParams.js +24 -0
  967. package/dist/esm/utils/urlEncoding.d.ts +7 -0
  968. package/dist/esm/utils/urlEncoding.js +62 -0
  969. package/dist/esm/utils/use-shadow.d.ts +3 -0
  970. package/dist/esm/utils/use-shadow.js +10 -0
  971. package/dist/esm/utils/useHeatmapData.d.ts +10 -0
  972. package/dist/esm/utils/useHeatmapData.js +8 -0
  973. package/dist/esm/utils/useHeatmapOverlay.d.ts +9 -0
  974. package/dist/esm/utils/useHeatmapOverlay.js +56 -0
  975. package/dist/esm/utils/useRenderTarget.d.ts +2 -0
  976. package/dist/esm/utils/useRenderTarget.js +35 -0
  977. package/dist/esm/utils/yah_icon.d.ts +6 -0
  978. package/dist/esm/utils/yah_icon.js +457 -0
  979. package/dist/esm/wayfinding/adapters/arbitraryPoint.d.ts +32 -0
  980. package/dist/esm/wayfinding/adapters/arbitraryPoint.js +25 -0
  981. package/dist/esm/wayfinding/adapters/boothToEndpoint.d.ts +19 -0
  982. package/dist/esm/wayfinding/adapters/boothToEndpoint.js +32 -0
  983. package/dist/esm/wayfinding/adapters/canvasIconProvider.d.ts +20 -0
  984. package/dist/esm/wayfinding/adapters/canvasIconProvider.js +73 -0
  985. package/dist/esm/wayfinding/adapters/floorContext.d.ts +20 -0
  986. package/dist/esm/wayfinding/adapters/floorContext.js +43 -0
  987. package/dist/esm/wayfinding/adapters/graphDataSource.d.ts +42 -0
  988. package/dist/esm/wayfinding/adapters/graphDataSource.js +73 -0
  989. package/dist/esm/wayfinding/adapters/index.d.ts +9 -0
  990. package/dist/esm/wayfinding/adapters/index.js +7 -0
  991. package/dist/esm/wayfinding/adapters/kioskCanvas.d.ts +7 -0
  992. package/dist/esm/wayfinding/adapters/kioskCanvas.js +22 -0
  993. package/dist/esm/wayfinding/adapters/positionInput.d.ts +12 -0
  994. package/dist/esm/wayfinding/adapters/positionInput.js +16 -0
  995. package/dist/esm/wayfinding/bindMobxReactions.d.ts +28 -0
  996. package/dist/esm/wayfinding/bindMobxReactions.js +171 -0
  997. package/dist/esm/wayfinding/createWayfinding.d.ts +34 -0
  998. package/dist/esm/wayfinding/createWayfinding.js +183 -0
  999. package/dist/esm/wayfinding/handlers/kioskHandler.d.ts +26 -0
  1000. package/dist/esm/wayfinding/handlers/kioskHandler.js +52 -0
  1001. package/dist/esm/wayfinding/handlers/yahHandler.d.ts +21 -0
  1002. package/dist/esm/wayfinding/handlers/yahHandler.js +42 -0
  1003. package/dist/esm/wayfinding/index.d.ts +12 -0
  1004. package/dist/esm/wayfinding/index.js +9 -0
  1005. package/dist/esm/wayfinding/routeSteps.d.ts +15 -0
  1006. package/dist/esm/wayfinding/routeSteps.js +29 -0
  1007. package/dist/esm/wayfinding/storePorts.d.ts +67 -0
  1008. package/dist/esm/wayfinding/storePorts.js +1 -0
  1009. package/package.json +146 -0
@@ -0,0 +1,2138 @@
1
+ import { __decorate } from "tslib";
2
+ import { Box, Point } from '@expofp/geometry';
3
+ import { action, computed, observable } from 'mobx';
4
+ import { hasSavedKiosk } from '../components/Kiosk/kiosk-mode.js';
5
+ import { setKioskUrlParams } from '../components/Kiosk/kioskUrlParam';
6
+ import { mapScene } from '../components/Map/scene';
7
+ import { LANGUAGE_TYPE, LEGACY_PREVIEW_MODE_STORAGE_KEY, LEGACY_UI_SCALE_STORAGE_KEY, LEGACY_VIEWER_MODE_STORAGE_KEY, MOBILE_BREAKPOINT, PREVIEW_MODE_STORAGE_KEY, UI_SCALE_STORAGE_KEY, VIEWER_MODE_STORAGE_KEY, VISIBILITY_STORAGE_KEY, } from '../constants';
8
+ import data from '../data';
9
+ import { getSvgArea, isSvgAreaExplicit } from '../data/svg.js';
10
+ import { readFreeBannerDismissed } from '../tools/freeBanner';
11
+ import { hasUserConsent } from '../tools/gtag';
12
+ import { hasHtmlTags } from '../tools/has-html-tags';
13
+ import logger from '../tools/logger';
14
+ import settings from '../tools/settings';
15
+ import { stripHtml } from '../tools/strip-html';
16
+ import { remsToPixels } from '../utils';
17
+ import browser from '../utils/browser';
18
+ import { getLocale, getLocales, t } from '../utils/i18n';
19
+ import isPhone from '../utils/is-phone.js';
20
+ import { isLocalStorageAvailable } from '../utils/localStorage';
21
+ import { getResponsiveClass } from '../utils/responsiveClass';
22
+ import { sanitizeStr } from '../utils/sanitizeText';
23
+ import { fitRectIsFraming, getVenueFitMarginPercent, resolveVenueFitRect, } from '../utils/scene-bounds';
24
+ import { uiState } from '.';
25
+ import { BoothBase, RegularBooth, SpecialBooth } from './BoothStore';
26
+ import { EventItem } from './EventStore';
27
+ import { Exhibitor } from './ExhibitorStore';
28
+ import { findEntityByExternalId, Route } from './RouteStore';
29
+ import { SpeakerItem } from './SpeakerStore';
30
+ /** What one zoom-in step multiplies the zoom factor by — the zoom button and the double-click. */
31
+ export const ZOOM_IN_FACTOR = 1.5;
32
+ /** What one zoom-out step multiplies the zoom factor by. */
33
+ export const ZOOM_OUT_FACTOR = 0.66;
34
+ const PLANS_EXCLUDE_SUBCATEGORIES = ['dimensions25'];
35
+ export default class UIState {
36
+ setSelectedCategoryFilters(categories) {
37
+ this.selectedCategoryFilters = categories;
38
+ }
39
+ resetCategoryFilter() {
40
+ this.selectedCategoryFilters = [];
41
+ this.categoryFilterOpen = false;
42
+ }
43
+ setSearchClearMode(value) {
44
+ this.searchClearMode = value;
45
+ }
46
+ setRouteTitle(title) {
47
+ this.routeTitle = title;
48
+ }
49
+ setRouteDescription(description) {
50
+ this.routeDescription = description;
51
+ }
52
+ setIsMultiPointRoute(isMulti) {
53
+ this.isMultiPointRoute = isMulti;
54
+ }
55
+ setTourTitle(title) {
56
+ this.tourTitle = title;
57
+ }
58
+ setTourDescription(description) {
59
+ this.tourDescription = description;
60
+ }
61
+ setIsMultiPointTour(isMulti) {
62
+ this.isMultiPointTour = isMulti;
63
+ }
64
+ setPathwayOnlyMode(value) {
65
+ this.pathwayOnlyMode = value;
66
+ }
67
+ setMultiPointTourList(tourId) {
68
+ this.list = { type: 'multi-point-tour', tourId };
69
+ }
70
+ get activePathwayLayers() {
71
+ if (this.list?.type === 'multi-point-tour') {
72
+ const routeItem = this.rootStore.toursStore.getTourById(this.list.tourId);
73
+ return routeItem?.layers?.map((layerInfo) => layerInfo.id) || [];
74
+ }
75
+ return [];
76
+ }
77
+ get highlightedBooths() {
78
+ const exhibitorExternalISet = new Set(this.rootStore.exhibitorStore.highlightedByExternalIds);
79
+ const boothExternalISet = new Set(this.rootStore.boothStore.highlightedByExternalIds);
80
+ const booths = new Set([
81
+ ...this.rootStore.exhibitorStore.exhibitors
82
+ .filter((e) => exhibitorExternalISet.has(e.externalId))
83
+ .flatMap((e) => e.booths.filter((b) => b instanceof RegularBooth))
84
+ .map((b) => b.id.toString()),
85
+ ...this.rootStore.boothStore.booths
86
+ .filter((b) => boothExternalISet.has(b.externalId))
87
+ .map((b) => b.id.toString()),
88
+ ]);
89
+ const isSearch = this.list?.type === 'search' && this.list?.text?.trim().length;
90
+ if (isSearch) {
91
+ booths.clear();
92
+ const includesMatchItems = this.fuzzySearchItems
93
+ .filter((i) => i.score === 0)
94
+ .map((i) => i.item);
95
+ if (includesMatchItems.length) {
96
+ listBooths(includesMatchItems, this.rootStore.boothStore.booths, this.rootStore.eventStore.eventItems).forEach((b) => booths.add(b.id.toString()));
97
+ }
98
+ else {
99
+ this.listBooths.forEach((b) => booths.add(b.id.toString()));
100
+ }
101
+ }
102
+ if (this.list?.type === 'filter') {
103
+ booths.clear();
104
+ this.list.items
105
+ .flatMap((e) => e.booths.filter((b) => b instanceof RegularBooth))
106
+ .forEach((b) => booths.add(b.id.toString()));
107
+ }
108
+ if (this.categoryFilterOpen && this.selectedCategoryFilters.length > 0) {
109
+ booths.clear();
110
+ this.selectedCategoryFilters.forEach((category) => {
111
+ category.exhibitors.flatMap((e) => e.booths).forEach((b) => booths.add(b.id.toString()));
112
+ });
113
+ }
114
+ else if (this.list?.type === 'category') {
115
+ booths.clear();
116
+ this.list.category.exhibitors
117
+ .flatMap((e) => e.booths)
118
+ .forEach((b) => booths.add(b.id.toString()));
119
+ }
120
+ if (this.list?.type === 'bookmarks') {
121
+ booths.clear();
122
+ listBooths(this.listItems, this.rootStore.boothStore.booths, this.rootStore.eventStore.eventItems).forEach((b) => booths.add(b.id.toString()));
123
+ }
124
+ if (this.list?.type === 'visited') {
125
+ booths.clear();
126
+ listBooths(this.listItems, this.rootStore.boothStore.booths, this.rootStore.eventStore.eventItems).forEach((b) => booths.add(b.id.toString()));
127
+ }
128
+ if (this.list?.type === 'exhibitors') {
129
+ booths.clear();
130
+ const searchText = this.list.text?.toLowerCase().trim();
131
+ let exhibitors = this.rootStore.exhibitorStore.exhibitors;
132
+ if (searchText) {
133
+ exhibitors = exhibitors.filter((e) => e.name.toLowerCase().includes(searchText));
134
+ }
135
+ exhibitors
136
+ .flatMap((e) => e.booths.filter((b) => b instanceof RegularBooth))
137
+ .forEach((b) => booths.add(b.id.toString()));
138
+ }
139
+ if (this.selectedPoiTypeFilters.length > 0) {
140
+ booths.clear();
141
+ this.selectedPoiTypeFilters.forEach((poiType) => {
142
+ this.rootStore.boothStore.booths
143
+ .filter((b) => b.poiTypeId === poiType.id)
144
+ .forEach((b) => booths.add(b.id.toString()));
145
+ });
146
+ }
147
+ if (this.details instanceof Route) {
148
+ booths.clear();
149
+ if (this.details.from instanceof BoothBase)
150
+ booths.add(this.details.from.id.toString());
151
+ if (this.details.to instanceof BoothBase)
152
+ booths.add(this.details.to.id.toString());
153
+ this.details.waypoints?.forEach((w) => booths.add(w.id.toString()));
154
+ }
155
+ if (this.details instanceof BoothBase) {
156
+ booths.clear();
157
+ booths.add(this.details.id.toString());
158
+ }
159
+ if (this.details instanceof Exhibitor) {
160
+ booths.clear();
161
+ this.details.booths
162
+ .filter((b) => b instanceof RegularBooth)
163
+ .forEach((b) => booths.add(b.id.toString()));
164
+ }
165
+ if (this.details instanceof EventItem) {
166
+ const eventItem = this.details;
167
+ if (eventItem.boothId) {
168
+ booths.clear();
169
+ const booth = this.rootStore.boothStore.booths.find((b) => b.id === eventItem.boothId);
170
+ if (booth) {
171
+ booths.add(booth.id.toString());
172
+ }
173
+ }
174
+ }
175
+ return booths;
176
+ }
177
+ constructor(rootStore) {
178
+ this.interfaceMetadata = Object.freeze([
179
+ {
180
+ id: 'menu',
181
+ className: 'efp-overlay-menu',
182
+ priority: 80,
183
+ isActive: () => this.menu,
184
+ searchBoxConfig: () => ({
185
+ mode: 'interface',
186
+ title: t('Menu'),
187
+ }),
188
+ },
189
+ {
190
+ id: 'exhibitor',
191
+ className: 'efp-overlay-exhibitor',
192
+ priority: 70,
193
+ isActive: () => this.details instanceof Exhibitor,
194
+ searchBoxConfig: () => {
195
+ const exhibitor = this.details;
196
+ return {
197
+ mode: 'details',
198
+ title: exhibitor.name,
199
+ };
200
+ },
201
+ },
202
+ {
203
+ id: 'booth',
204
+ className: 'efp-overlay-booth',
205
+ priority: 70,
206
+ isActive: () => this.details instanceof BoothBase,
207
+ searchBoxConfig: () => {
208
+ const booth = this.details;
209
+ return {
210
+ mode: 'details',
211
+ title: booth.title || booth.name,
212
+ };
213
+ },
214
+ },
215
+ {
216
+ id: 'event',
217
+ className: 'efp-overlay-event',
218
+ priority: 70,
219
+ isActive: () => this.details instanceof EventItem,
220
+ searchBoxConfig: () => {
221
+ const event = this.details;
222
+ return {
223
+ mode: 'details',
224
+ title: event.name,
225
+ };
226
+ },
227
+ },
228
+ {
229
+ id: 'route',
230
+ className: 'efp-overlay-route',
231
+ priority: 70,
232
+ isActive: () => this.details instanceof Route,
233
+ searchBoxConfig: () => {
234
+ return {
235
+ mode: 'details',
236
+ title: t('Directions'),
237
+ };
238
+ },
239
+ },
240
+ {
241
+ id: 'search',
242
+ className: 'efp-overlay-search',
243
+ priority: 60,
244
+ isActive: () => !this.details &&
245
+ !this.menu &&
246
+ this.list.type === 'search' &&
247
+ ((this.rootStore.fp.alwaysShowSidebar && !this.overlayOnDemand) ||
248
+ this.heatmap ||
249
+ this.searchFocused ||
250
+ this.list.text.length > 0 ||
251
+ this.searchClearMode),
252
+ searchBoxConfig: () => ({
253
+ mode: 'search',
254
+ title: t('Search'),
255
+ }),
256
+ },
257
+ {
258
+ id: 'exhibitors',
259
+ className: 'efp-overlay-exhibitors',
260
+ priority: 50,
261
+ isActive: () => this.list.type === 'exhibitors' && !this.details,
262
+ searchBoxConfig: () => ({
263
+ mode: 'search',
264
+ title: t('Exhibitors'),
265
+ }),
266
+ },
267
+ {
268
+ id: 'filter',
269
+ className: 'efp-overlay-filter',
270
+ priority: 50,
271
+ isActive: () => this.list.type === 'filter' && !this.details,
272
+ searchBoxConfig: () => ({
273
+ mode: 'search',
274
+ title: t('Filter'),
275
+ }),
276
+ },
277
+ {
278
+ id: 'bookmarks',
279
+ className: 'efp-overlay-bookmarks',
280
+ priority: 50,
281
+ isActive: () => this.list.type === 'bookmarks' && !this.details,
282
+ searchBoxConfig: () => ({
283
+ mode: 'interface',
284
+ title: t('Bookmarks'),
285
+ badge: this.rootStore.bookmarksStore.total,
286
+ }),
287
+ },
288
+ {
289
+ id: 'visited',
290
+ className: 'efp-overlay-visited',
291
+ priority: 50,
292
+ isActive: () => this.list.type === 'visited' && !this.details,
293
+ searchBoxConfig: () => ({
294
+ mode: 'interface',
295
+ title: t('Visited'),
296
+ badge: this.rootStore.exhibitorStore.visited.length,
297
+ }),
298
+ },
299
+ {
300
+ id: LANGUAGE_TYPE,
301
+ className: 'efp-overlay-language',
302
+ priority: 50,
303
+ isActive: () => this.list.type === LANGUAGE_TYPE,
304
+ searchBoxConfig: () => ({
305
+ mode: 'interface',
306
+ title: t('Language'),
307
+ }),
308
+ },
309
+ {
310
+ id: 'category',
311
+ className: 'efp-overlay-category',
312
+ priority: 50,
313
+ isActive: () => !uiState.menu && !!uiState.selectedCategory,
314
+ searchBoxConfig: () => ({
315
+ mode: 'interface',
316
+ title: (this.list.type === 'category' && this.list.category?.name) || t('Categories'),
317
+ // badge: this.list.category?.exhibitors.length,
318
+ }),
319
+ },
320
+ {
321
+ id: 'sessions',
322
+ className: 'efp-overlay-sessions',
323
+ priority: 50,
324
+ isActive: () => this.list.type === 'sessions' && !this.details,
325
+ searchBoxConfig: () => ({
326
+ mode: 'search',
327
+ title: t('Sessions'),
328
+ subtitle: this.selectedTrack ? this.selectedTrack.name : undefined,
329
+ }),
330
+ },
331
+ {
332
+ id: 'speakers',
333
+ className: 'efp-overlay-speakers',
334
+ priority: 50,
335
+ isActive: () => this.list.type === 'speakers' && !this.details,
336
+ searchBoxConfig: () => ({
337
+ mode: 'search',
338
+ title: t('Speakers'),
339
+ }),
340
+ },
341
+ {
342
+ id: 'speaker',
343
+ className: 'efp-overlay-speaker',
344
+ priority: 50,
345
+ isActive: () => this.details instanceof SpeakerItem,
346
+ searchBoxConfig: () => {
347
+ const speaker = this.details;
348
+ return {
349
+ mode: 'details',
350
+ title: speaker.name,
351
+ };
352
+ },
353
+ },
354
+ {
355
+ id: 'tours',
356
+ className: 'efp-overlay-tours',
357
+ priority: 50,
358
+ isActive: () => this.list.type === 'tours' && !this.details,
359
+ searchBoxConfig: () => ({
360
+ mode: 'search',
361
+ title: t('Guided Tours'),
362
+ }),
363
+ },
364
+ {
365
+ id: 'multi-point-wayfinding',
366
+ className: 'efp-overlay-multi-point',
367
+ priority: 75,
368
+ isActive: () => Boolean(this.isMultiPointRoute && this.selectedRoute && this.list.type !== 'route-planner'),
369
+ searchBoxConfig: () => ({
370
+ mode: 'interface',
371
+ title: this.routeTitle || t('Multi-point route'),
372
+ }),
373
+ },
374
+ {
375
+ id: 'multi-point-tour',
376
+ className: 'efp-overlay-multi-point-tour',
377
+ priority: 75,
378
+ isActive: () => this.list.type === 'multi-point-tour' && !this.details,
379
+ searchBoxConfig: () => ({
380
+ mode: 'interface',
381
+ title: this.tourTitle || t('Multi-point route'),
382
+ }),
383
+ },
384
+ {
385
+ id: 'route-planner',
386
+ className: 'efp-overlay-route-planner',
387
+ priority: 76,
388
+ isActive: () => this.list.type === 'route-planner' && (!this.details || this.details instanceof Route),
389
+ searchBoxConfig: () => ({
390
+ mode: 'interface',
391
+ title: t('Route planner'),
392
+ }),
393
+ },
394
+ ].sort((a, b) => b.priority - a.priority));
395
+ this.list = { type: 'search', text: '', focused: false };
396
+ this.details = null;
397
+ this.hoveredExhibitor = null;
398
+ this.hoveredBooth = null;
399
+ this.zoomBy = null;
400
+ this.rollReset = false;
401
+ this.moveToBooths = null;
402
+ this.moveToRect = null;
403
+ /**
404
+ * Breathing room the pending `moveToRect` wants, as a fraction of the framing
405
+ * region per side — the visible map less the side panel, in both renderers.
406
+ * `null` leaves it to the adaptive 15%/25% rule, which both renderers apply.
407
+ * Fit-to-screen sets 0: its rect is the framing itself, so padding it would
408
+ * zoom past the authored viewbox.
409
+ */
410
+ this.moveToRectPaddingPercent = null;
411
+ this.moveToLocation = false;
412
+ this.menu = false;
413
+ this.searchFocused = false;
414
+ this.searchClearMode = false;
415
+ this.printingPdf = false;
416
+ // Measured from the root element by `init-ui`; the viewport stands in until then.
417
+ this.screenSize = new Point(window.innerWidth, window.innerHeight);
418
+ this.overlayShowsAll = false;
419
+ this.centerMap = false;
420
+ this.zoomAfTransformK = 1;
421
+ this.activeListIndex = -1;
422
+ this.devicePixelRatio = window.devicePixelRatio;
423
+ this.previewExhibitor = null;
424
+ this.wsStarted = false;
425
+ this.canvasStarted = false;
426
+ this.inIdle = false;
427
+ this.modalActive = { share: false };
428
+ this.galleryActive = false;
429
+ this.hideOverlay = false;
430
+ this.searchButtonsOverride = null;
431
+ this.hideCookieConsent = Boolean(hasUserConsent());
432
+ this.hideHeaderLogo = false;
433
+ this.hideLogoInBooth = false;
434
+ this.disableBookmarked = false;
435
+ this.hideLanguage = false;
436
+ this.monochrome = false;
437
+ // TODO Consider the use of one variable with different versions
438
+ this.heatmap = false;
439
+ this.heatmapYah = false;
440
+ this.rootElement = null;
441
+ this.debugCircles = [];
442
+ this.mapControlsHidden = false;
443
+ this.floorsControlHidden = false;
444
+ this.hideFreeOrDemo = false;
445
+ this.freeBannerDismissed = readFreeBannerDismissed(sessionStorage);
446
+ this.currentBanner = null;
447
+ this.sceneDefReady = false;
448
+ this.categoryFilterOpen = false;
449
+ this.selectedCategoryFilters = [];
450
+ this.selectedPoiTypeFilters = [];
451
+ this.selectedTrack = null;
452
+ this.subButtonsVisible = false;
453
+ this.searchBoxMode = 'search';
454
+ this.searchBoxTitle = '';
455
+ this.isMultiPointRoute = false;
456
+ this.isMultiPointTour = false;
457
+ this.pathwayOnlyMode = false;
458
+ this.isOverlayScrolled = false;
459
+ this.listScrollTop = 0;
460
+ this.listScrollItemId = null;
461
+ this.listScrollIndex = 0;
462
+ this.scrollPositions = new Map();
463
+ this.scrollItemIds = new Map();
464
+ this._customUIScale = null;
465
+ this.searchFilterHeightPx = 54;
466
+ this.searchInputHeightPx = 54;
467
+ this.overlayUISizePx = 390;
468
+ this.overlayKioskSizePx = 450;
469
+ this.overlayMediumHeightRems = 10;
470
+ ///////////////////////////////////////////////////////////////////////////
471
+ // positions
472
+ this.headerHeightRem = 0;
473
+ this.wsImageHeightPx = 44;
474
+ this.mapVisibleStart = 0;
475
+ ///////////////////////////////////////////////////////////////////////////
476
+ ///////////////////////////////////////////////////////////////////////////
477
+ // filtering
478
+ this.forceDim = false;
479
+ // Empty here and filled by the constructor: `defaultMapSettings` reads `pitchEnabled`, which
480
+ // reads this field back, and a field initializer would run before it exists.
481
+ this.mapSettings = {};
482
+ /**
483
+ * How far the camera may tilt back from top down, in degrees.
484
+ *
485
+ * MapLibre's own default, which both views are held to, so the plan tilts the same amount in
486
+ * either one. Not a map setting, because a host has no reason to raise or lower it.
487
+ */
488
+ this.maxPitch = 60;
489
+ /** Whether a pitch change eases rather than cuts. Both views read it. */
490
+ this.animatePitch = true;
491
+ this.forceShowDetails = false;
492
+ this.buildRoute = false;
493
+ this.globalErrorMessages = [];
494
+ this.minUIScale = 0.8;
495
+ this.maxUIScale = 1.4;
496
+ this.kioskEnabled = false;
497
+ this.setKioskModeEnabled = false;
498
+ this.kioskData = null;
499
+ this.rootStore = rootStore;
500
+ this.mapSettings = { ...this.defaultMapSettings };
501
+ this.initializeUIScale();
502
+ }
503
+ get rtl() {
504
+ const locale = getLocale();
505
+ return locale === 'ar' || locale === 'he';
506
+ }
507
+ get noOverlay() {
508
+ return this.rootStore.fp.noOverlay || this.hideOverlay;
509
+ }
510
+ get overlayOnDemand() {
511
+ return this.noOverlay && this.searchButtonsOverride === true;
512
+ }
513
+ get overlayHiddenNow() {
514
+ return this.noOverlay && !(this.overlayOnDemand && this.isOverlayOpen);
515
+ }
516
+ get onBoothClick() {
517
+ return this.rootStore.fp.onBoothClick;
518
+ }
519
+ get onMarkerClick() {
520
+ return this.rootStore.fp.onMarkerClick;
521
+ }
522
+ get onBookmarkClick() {
523
+ return this.rootStore.fp.onBookmarkClick;
524
+ }
525
+ get onVisitedClick() {
526
+ return this.rootStore.fp.onVisitedClick;
527
+ }
528
+ get onCategoryClick() {
529
+ return this.rootStore.fp.onCategoryClick;
530
+ }
531
+ get onDirection() {
532
+ return this.rootStore.fp.onDirection;
533
+ }
534
+ get onDetails() {
535
+ return this.rootStore.fp.onDetails;
536
+ }
537
+ get onExhibitorCustomButtonClick() {
538
+ return this.rootStore.fp.onExhibitorCustomButtonClick;
539
+ }
540
+ get onGetCoordsClick() {
541
+ return this.rootStore.fp.onGetCoordsClick;
542
+ }
543
+ get selectedExhibitor() {
544
+ return this.details instanceof Exhibitor ? this.details : null;
545
+ }
546
+ get selectedBooth() {
547
+ return this.details instanceof BoothBase ? this.details : null;
548
+ }
549
+ get selectedCategory() {
550
+ return this.list.type === 'category' ? this.list.category : null;
551
+ }
552
+ get selectedRoute() {
553
+ return this.details instanceof Route ? this.details : null;
554
+ }
555
+ get selectedSpeaker() {
556
+ return this.details instanceof SpeakerItem ? this.details : null;
557
+ }
558
+ get uiScale() {
559
+ if (this._customUIScale !== null) {
560
+ return this._customUIScale;
561
+ }
562
+ if (this.kiosk) {
563
+ return 1.2;
564
+ }
565
+ return 1.0;
566
+ }
567
+ get isGuidedToursActive() {
568
+ return this.rootStore.toursStore.isActive;
569
+ }
570
+ // TODO: move to routeStore
571
+ get getRouteNextFloor() {
572
+ const pathLayers = this.rootStore.routeStore.pathLayers;
573
+ const currentRouteLayerName = this.rootStore.routeStore.currentRouteLayer?.name;
574
+ if (!currentRouteLayerName)
575
+ return null;
576
+ const index = pathLayers.findIndex((l) => l.layer?.name === currentRouteLayerName);
577
+ if (index === -1)
578
+ return null;
579
+ return pathLayers[index + 1]?.layer?.name ?? null;
580
+ }
581
+ get headerHeightPx() {
582
+ return remsToPixels(this.headerHeightRem);
583
+ }
584
+ get overlayPosition() {
585
+ if (this.screenSize.width > MOBILE_BREAKPOINT || this.kiosk)
586
+ return 'left';
587
+ return 'bottom';
588
+ }
589
+ get overlayCollapsed() {
590
+ return (this.kiosk &&
591
+ this.overlayPosition === 'left' &&
592
+ !this.searchFocused &&
593
+ !this.menu &&
594
+ !this.details &&
595
+ !this.selectedCategory &&
596
+ !this.selectedExhibitor &&
597
+ this.list.type !== 'bookmarks' &&
598
+ this.list.type !== LANGUAGE_TYPE &&
599
+ !('text' in this.list && this.list.text.length));
600
+ }
601
+ get overlaySize() {
602
+ if (this.overlayLeft)
603
+ return 'full';
604
+ return this.desiredOverlaySize;
605
+ }
606
+ get overlayBottom() {
607
+ return this.overlayPosition === 'bottom';
608
+ }
609
+ get overlayLeft() {
610
+ return this.overlayPosition === 'left';
611
+ }
612
+ get overlayWidthPx() {
613
+ return this.overlayHiddenNow
614
+ ? 0
615
+ : this.overlayLeft
616
+ ? this.kiosk
617
+ ? this.overlayKioskSizePx
618
+ : this.overlayUISizePx
619
+ : remsToPixels(this.screenSize.width);
620
+ }
621
+ get wsPaddingPx() {
622
+ return remsToPixels(0.25);
623
+ }
624
+ get wsOccupiedHeightPx() {
625
+ return this.wsShown ? this.wsImageHeightPx + this.wsPaddingPx * 2 : 0;
626
+ }
627
+ get wsShown() {
628
+ return !this.hideHeaderLogo && this.rootStore.exhibitorStore.advertised.length > 0;
629
+ }
630
+ get wsDesktopPosition() {
631
+ return settings.EXPO === 'cbresupplypartner' ? 'bottom' : 'top';
632
+ }
633
+ get wsPosition() {
634
+ return this.overlayBottom ? 'top' : this.wsDesktopPosition;
635
+ }
636
+ get responsiveClass() {
637
+ return getResponsiveClass(this.screenSize.width);
638
+ }
639
+ // map
640
+ get mapVisibleTop() {
641
+ return (this.wsPosition === 'top' ? this.wsOccupiedHeightPx : 0) + this.headerHeightPx;
642
+ }
643
+ get mapVisibleBottom() {
644
+ if (this.overlayLeft || this.overlayHiddenNow) {
645
+ return this.wsPosition === 'bottom' ? this.wsOccupiedHeightPx : 0;
646
+ }
647
+ return remsToPixels(this.overlayMediumHeightRems);
648
+ }
649
+ get searchActionsHeightPx() {
650
+ return this.overlayPosition === 'bottom'
651
+ ? this.searchInputHeightPx + this.searchFilterHeightPx
652
+ : this.searchInputHeightPx;
653
+ }
654
+ get shouldShowSearchButtons() {
655
+ return (this.rootStore.searchButtonsStore.hasAnySearchButtons &&
656
+ !this.details &&
657
+ !this.menu &&
658
+ ![LANGUAGE_TYPE, 'filter'].includes(this.list.type));
659
+ }
660
+ get shouldShowMobileToggle() {
661
+ const isPlanner = this.list.type === 'route-planner';
662
+ return (this.overlayPosition === 'bottom' &&
663
+ (isPlanner ||
664
+ (!this.details &&
665
+ !this.menu &&
666
+ this.list.type !== LANGUAGE_TYPE &&
667
+ this.list.type !== 'bookmarks' &&
668
+ this.list.type !== 'sessions')));
669
+ }
670
+ /**
671
+ * How far up from the bottom of the map the mobile "List" button reaches, or 0 while it is
672
+ * hidden. Mirrors the button's `bottom` and `height` in `MobileToggleButton.scss` (`@expofp/ui`);
673
+ * keep the two in sync.
674
+ */
675
+ get mobileToggleTopPx() {
676
+ return this.shouldShowMobileToggle ? remsToPixels((20 + 38) / 16) : 0;
677
+ }
678
+ get mobileToggleIsListMode() {
679
+ return !this.isOverlayOpen || this.overlaySize !== 'full';
680
+ }
681
+ // visible rect
682
+ get canvasVisibleRectPx() {
683
+ const s = this.screenSize;
684
+ return Box.fromMinMax({
685
+ x: uiState.rtl ? 0 : this.mapVisibleStart,
686
+ y: this.mapVisibleTop + this.searchActionsHeightPx,
687
+ }, {
688
+ x: uiState.rtl ? s.width - this.mapVisibleStart : s.width,
689
+ y: s.height - this.mapVisibleBottom,
690
+ });
691
+ }
692
+ get shouldShiftMapRect() {
693
+ return (this.overlayPosition === 'left' &&
694
+ (this.details || this.hasAppliedFilters || this.selectedRoute));
695
+ }
696
+ get hasAppliedFilters() {
697
+ return this.selectedCategoryFilters.length > 0 || this.selectedPoiTypeFilters.length > 0;
698
+ }
699
+ get canvasVisibleRectPt() {
700
+ // Legacy Rect.scale(dpr) scaled about the origin (0,0); boxScale defaults
701
+ // to the box center, so the origin is passed explicitly.
702
+ return this.canvasVisibleRectPx.scale(this.devicePixelRatio, { x: 0, y: 0 });
703
+ }
704
+ get canvasSizePt() {
705
+ return this.screenSize.multiply(this.devicePixelRatio);
706
+ }
707
+ // misc
708
+ get shouldUseBackdrop() {
709
+ if (uiState.overlayCollapsed)
710
+ return false;
711
+ if (isLocalStorageAvailable && localStorage.getItem('forcebackdrop') === '1')
712
+ return true;
713
+ if (this.overlayBottom)
714
+ return false;
715
+ if (this.selectedExhibitor?.leadingImageUrl && !this.selectedExhibitor?.leadingImageLinkUrl)
716
+ return false;
717
+ // if (settings.EXPO !== "aweusa2020" && settings.EXPO !== "expo") return false;
718
+ // const ua = navigator.userAgent;
719
+ // const isWebkit = ua.indexOf("AppleWebKit") !== -1 && ua.indexOf("Edge/") === -1;
720
+ // const isSafari = /^((?!chrome|android).)*safari/i.test(ua);
721
+ const isSafari = browser.satisfies({ safari: '>=13' });
722
+ const isChrome = browser.satisfies({ chrome: '>=77' });
723
+ const isAndroid = /(android)/i.test(navigator.userAgent);
724
+ if (isAndroid)
725
+ return false;
726
+ return (isSafari || (isChrome && uiState.canvasSizePt.height * uiState.canvasSizePt.width < 3000000));
727
+ }
728
+ setForceDim(forceDim) {
729
+ this.forceDim = forceDim;
730
+ }
731
+ get dimmed() {
732
+ if (this.forceDim) {
733
+ return true;
734
+ }
735
+ if (this.pathwayOnlyMode) {
736
+ return true;
737
+ }
738
+ return (this.highlightedBooths.size > 0 ||
739
+ (this.list?.type === 'search' && this.list?.text?.trim().length > 0) ||
740
+ this.list?.type === 'exhibitors');
741
+ }
742
+ get defaultSearchItems() {
743
+ const { exhibitorStore, categoryStore, boothStore, heatmapStore } = this.rootStore;
744
+ let exhibitorsArray = exhibitorStore.exhibitors;
745
+ const categoriesArray = categoryStore.categories.filter((c) => c.exhibitors.length);
746
+ const boothsArray = boothStore.booths;
747
+ if (this.selectedPoiTypeFilters.length > 0) {
748
+ exhibitorsArray = exhibitorsArray.filter((exhibitor) => exhibitor.booths.some((booth) => this.selectedPoiTypeFilters.some((poiType) => booth.poiTypeId === poiType.id)));
749
+ }
750
+ let combinedArray = [];
751
+ const cats = !this.selectedCategoryFilters.length && data.showCategories
752
+ ? categoriesArray.filter((category) => {
753
+ if (PLANS_EXCLUDE_SUBCATEGORIES.includes(settings.EXPO)) {
754
+ return !category.name.includes('/');
755
+ }
756
+ return true;
757
+ })
758
+ : [];
759
+ const otherSpacesArray = boothsArray.filter((b) => b instanceof SpecialBooth);
760
+ if (this.selectedCategoryFilters.length > 0) {
761
+ combinedArray = [...exhibitorsArray];
762
+ }
763
+ else {
764
+ if (data.showCompaniesAndBooths)
765
+ combinedArray = combinedArray.concat(exhibitorsArray);
766
+ if (data.showOtherSpaces)
767
+ combinedArray = combinedArray.concat(otherSpacesArray);
768
+ }
769
+ if (this.heatmap) {
770
+ const allItems = [...exhibitorsArray, ...boothsArray];
771
+ return allItems.sort((a, b) => heatmapStore.getClicksByType(b) - heatmapStore.getClicksByType(a));
772
+ }
773
+ else if (this.heatmapYah) {
774
+ return (heatmapStore.heatmapData?.yah?.sort((a, b) => heatmapStore.getClicksByType(b) - heatmapStore.getClicksByType(a)) || []);
775
+ }
776
+ return exhibitorsArray.length === 0
777
+ ? boothsArray
778
+ : [
779
+ ...cats,
780
+ ...combinedArray.sort((a, b) => {
781
+ const aFeatured = a instanceof Exhibitor && a.featured !== undefined;
782
+ const bFeatured = b instanceof Exhibitor && b.featured !== undefined;
783
+ if (aFeatured !== bFeatured) {
784
+ return aFeatured ? -1 : 1;
785
+ }
786
+ const aDisplayName = a instanceof SpecialBooth && a.title ? a.title : a.name;
787
+ const bDisplayName = b instanceof SpecialBooth && b.title ? b.title : b.name;
788
+ return aDisplayName.localeCompare(bDisplayName, undefined, {
789
+ sensitivity: 'base',
790
+ numeric: true,
791
+ });
792
+ }),
793
+ ];
794
+ }
795
+ get searchItems() {
796
+ if (this.list.type !== 'search')
797
+ return [];
798
+ const text = this.list.text?.trim().toLowerCase() || '';
799
+ const { exhibitorStore, boothStore, eventStore, speakerStore, heatmapStore } = this.rootStore;
800
+ let exhibitorsArray = exhibitorStore.exhibitors;
801
+ const boothsArray = boothStore.booths;
802
+ const eventsArray = eventStore.eventItems;
803
+ const speakersArray = speakerStore.speakers;
804
+ if (this.selectedCategoryFilters.length > 0) {
805
+ exhibitorsArray = exhibitorsArray.filter((exhibitor) => this.selectedCategoryFilters.some((category) => exhibitor.categories.some((c) => c.id === category.id)));
806
+ }
807
+ if (this.selectedPoiTypeFilters.length > 0) {
808
+ exhibitorsArray = exhibitorsArray.filter((exhibitor) => exhibitor.booths.some((booth) => this.selectedPoiTypeFilters.some((poiType) => booth.poiTypeId === poiType.id)));
809
+ }
810
+ if (!text) {
811
+ return this.defaultSearchItems;
812
+ }
813
+ // a&b&foo=1&bar=2 => a&b
814
+ const splittedTexts = [text.replace(/&[^&=]+=[^&]+/g, '')];
815
+ if (this.heatmapYah) {
816
+ // Show all items with views greater than the entered number
817
+ const result = (heatmapStore.heatmapData.yah ?? []).filter((c) => Number.isNaN(Number(text)) ? c : c.viewCount >= Number(text));
818
+ return result.sort((a, b) => heatmapStore.getClicksByType(b) - heatmapStore.getClicksByType(a));
819
+ }
820
+ const items = [];
821
+ const matchingExhibitors = new Set();
822
+ const matchingBooths = new Set();
823
+ const matchingEvents = new Set();
824
+ const matchingSpeakers = new Set();
825
+ function selectLettersSpacesNumbers(input) {
826
+ // Without & because of names that contain & (e.g. "A&B")
827
+ if (!input)
828
+ return '';
829
+ return input.replace(/[!@#$%^*\-.,()^#$%:?_+'"/]/g, ' ').replace(/\s\s+/g, ' ');
830
+ }
831
+ function containsIgnoreCase(str, searchTerm) {
832
+ if (!str || !searchTerm)
833
+ return false;
834
+ return selectLettersSpacesNumbers(str)
835
+ .toLowerCase()
836
+ .includes(selectLettersSpacesNumbers(searchTerm).toLowerCase());
837
+ }
838
+ function containsLevelIgnoreCase(str, searchTerm) {
839
+ return !str
840
+ ? false
841
+ : containsIgnoreCase(str, searchTerm) ||
842
+ containsIgnoreCase(data.levelTerm + ' ' + str, searchTerm);
843
+ }
844
+ exhibitorsArray.forEach((e) => {
845
+ if (splittedTexts.some((text) => containsIgnoreCase(e.name, text) ||
846
+ e.booths.some((b) => (!text && containsIgnoreCase(b.name, text)) ||
847
+ containsLevelIgnoreCase(b.layer?.name ?? null, text)))) {
848
+ matchingExhibitors.add(e);
849
+ }
850
+ });
851
+ if (this.selectedCategoryFilters.length > 0) {
852
+ boothsArray.forEach((b) => {
853
+ const addBoothCondition = this.heatmap
854
+ ? true
855
+ : !(b instanceof RegularBooth) ||
856
+ !Array.from(matchingExhibitors).find((x) => x.booths.includes(b));
857
+ if (addBoothCondition &&
858
+ splittedTexts.some((text) => containsIgnoreCase(b.title || '', text) ||
859
+ containsIgnoreCase(b.name, text) ||
860
+ containsIgnoreCase(b.fullName, text) ||
861
+ containsLevelIgnoreCase(b.layer?.name ?? null, text))) {
862
+ matchingBooths.add(b);
863
+ }
864
+ });
865
+ }
866
+ const searchEvents = eventsArray;
867
+ const searchSpeakers = speakersArray;
868
+ searchEvents.forEach((e) => {
869
+ if (splittedTexts.some((text) => containsIgnoreCase(e.name || '', text) || containsIgnoreCase(e.description || '', text))) {
870
+ matchingEvents.add(e);
871
+ }
872
+ });
873
+ searchSpeakers.forEach((s) => {
874
+ if (splittedTexts.some((text) => containsIgnoreCase(s.name, text) ||
875
+ containsIgnoreCase(s.company, text) ||
876
+ containsIgnoreCase(s.jobTitle, text))) {
877
+ matchingSpeakers.add(s);
878
+ }
879
+ });
880
+ items.push(...matchingEvents);
881
+ items.push(...matchingExhibitors);
882
+ if (this.heatmap) {
883
+ return items.sort((a, b) => heatmapStore.getClicksByType(b) - heatmapStore.getClicksByType(a));
884
+ }
885
+ const itemsMap = new Map(items.map((item) => [item.id, item]));
886
+ return (items
887
+ .map((item) => {
888
+ if (!item.name)
889
+ return null;
890
+ const lowerCaseName = sanitizeStr(item instanceof BoothBase
891
+ ? item.fullName.toLowerCase() || item.name.toLowerCase()
892
+ : item.name.toLowerCase());
893
+ // Find the position of the first occurrence
894
+ const position = lowerCaseName.indexOf(sanitizeStr(text));
895
+ if (position === -1)
896
+ return null;
897
+ const result = { id: item.id, position, lowerCaseName, featured: false };
898
+ if (item instanceof Exhibitor) {
899
+ result.featured = item.featured;
900
+ }
901
+ return result;
902
+ })
903
+ .filter((entry) => !!entry)
904
+ // Sort by featured status (featured first),
905
+ // then by position, and finally lexicographically by name.
906
+ .sort((a, b) => {
907
+ if ((a.featured || b.featured) && a.featured !== b.featured) {
908
+ return a.featured ? -1 : 1;
909
+ }
910
+ if (a.position !== b.position) {
911
+ return a.position - b.position;
912
+ }
913
+ return (a.lowerCaseName.localeCompare(b.lowerCaseName) ||
914
+ String(a.id).localeCompare(String(b.id)) // For stability
915
+ );
916
+ })
917
+ // Every id came out of `items`, so the lookup always hits.
918
+ .map(({ id }) => itemsMap.get(id))
919
+ .filter((item) => !!item));
920
+ }
921
+ get searchList() {
922
+ return [
923
+ ...this.rootStore.eventStore.eventItems,
924
+ ...this.rootStore.speakerStore.speakers,
925
+ ...this.rootStore.categoryStore.categories.filter((c) => c.exhibitors.length),
926
+ ...this.rootStore.exhibitorStore.exhibitors,
927
+ ...this.rootStore.boothStore.booths,
928
+ ];
929
+ }
930
+ get foundInDescription() {
931
+ if (this.list?.type !== 'search') {
932
+ return [];
933
+ }
934
+ const text = this.list?.text?.trim().toLowerCase();
935
+ if (!text) {
936
+ return [];
937
+ }
938
+ const items = this.fuzzySearchItems.map(({ item }) => item);
939
+ const itemNamesSet = new Set(items.map((i) => i.name));
940
+ const list = this.categoryFilteredSearchList.filter((x) => !itemNamesSet.has(x.name));
941
+ const candidates = [];
942
+ for (const item of list) {
943
+ const description = descriptionOf(item);
944
+ if (!description)
945
+ continue;
946
+ const searchable = (hasHtmlTags(description) ? stripHtml(description) : description).toLowerCase();
947
+ const pos = searchable.indexOf(text);
948
+ if (pos === -1)
949
+ continue;
950
+ candidates.push({ item, pos });
951
+ }
952
+ candidates.sort((a, b) => a.pos - b.pos);
953
+ return candidates.map((c) => c.item);
954
+ }
955
+ get foundInDescriptionStruct() {
956
+ const result = {};
957
+ if (this.list?.type !== 'search') {
958
+ return result;
959
+ }
960
+ const text = this.list?.text?.trim().toLowerCase();
961
+ this.foundInDescription.forEach((item) => {
962
+ let description = descriptionOf(item);
963
+ if (!description) {
964
+ return;
965
+ }
966
+ if (hasHtmlTags(description)) {
967
+ description = stripHtml(description);
968
+ }
969
+ const startIndex = description.toLowerCase().indexOf(text);
970
+ if (startIndex === -1) {
971
+ return;
972
+ }
973
+ const offset = 3;
974
+ const index = startIndex > offset ? startIndex - offset : 0;
975
+ const str = description.substring(index).trim();
976
+ result[item.id] = startIndex > 0 ? `...${str}` : str;
977
+ });
978
+ return result;
979
+ }
980
+ get categoryFilteredSearchList() {
981
+ if (this.selectedCategoryFilters.length === 0) {
982
+ return this.searchList;
983
+ }
984
+ return this.searchList.filter((item) => item instanceof Exhibitor &&
985
+ this.selectedCategoryFilters.some((category) => item.categories.some((c) => c.id === category.id)));
986
+ }
987
+ get fuzzySearchItems() {
988
+ if (this.list?.type !== 'search') {
989
+ return [];
990
+ }
991
+ const text = this.list?.text?.trim().toLowerCase();
992
+ if (!text) {
993
+ return this.defaultSearchItems.map((item) => ({ item, score: 0, matches: [] }));
994
+ }
995
+ const scored = this.rootStore.fuzzySearchEngineStore.search(this.categoryFilteredSearchList, text);
996
+ const match = [];
997
+ const others = [];
998
+ for (const result of scored) {
999
+ const item = result.item;
1000
+ const type = item.entity.type;
1001
+ const booth = type === 'booth' ? item : null;
1002
+ const exhibitor = type === 'exhibitor' ? item : null;
1003
+ const fields = [
1004
+ item.name?.toLowerCase() ?? '',
1005
+ booth?.title?.toLowerCase() ?? '',
1006
+ booth?.fullName?.toLowerCase() ?? '',
1007
+ ...(exhibitor?.booths?.map((b) => b.name?.toLowerCase() ?? '') ?? []),
1008
+ ];
1009
+ let minPos = Infinity;
1010
+ for (const field of fields) {
1011
+ const pos = field.indexOf(text);
1012
+ if (pos !== -1 && pos < minPos)
1013
+ minPos = pos;
1014
+ }
1015
+ if (minPos !== Infinity) {
1016
+ match.push({ result: { item, score: 0 }, pos: minPos });
1017
+ }
1018
+ else {
1019
+ others.push(result);
1020
+ }
1021
+ }
1022
+ match.sort((a, b) => a.pos - b.pos);
1023
+ return [...match.map((m) => m.result), ...others];
1024
+ }
1025
+ get listItems() {
1026
+ if (this.details instanceof Route && this.list.type !== 'multi-point-tour')
1027
+ return [this.details.from, this.details.to].filter((x) => x instanceof BoothBase);
1028
+ switch (this.list.type) {
1029
+ case 'search': {
1030
+ let items = !(this.heatmap || this.heatmapYah) && this.rootStore.fuzzySearchEngineStore.engine
1031
+ ? this.fuzzySearchItems.map(({ item }) => item).concat(this.foundInDescription)
1032
+ : this.searchItems;
1033
+ items = items.filter((item) => item.entity.type === 'booth' ? !item.exhibitors.length : true);
1034
+ if (this.hasAppliedFilters) {
1035
+ return items.filter((item) => {
1036
+ if (this.selectedCategoryFilters.length > 0) {
1037
+ if (item instanceof Exhibitor) {
1038
+ if (!this.selectedCategoryFilters.some((category) => item.categories.some((c) => c.id === category.id))) {
1039
+ return false;
1040
+ }
1041
+ }
1042
+ }
1043
+ if (this.selectedPoiTypeFilters.length > 0) {
1044
+ if (item instanceof Exhibitor) {
1045
+ if (!item.booths.some((booth) => this.selectedPoiTypeFilters.some((poiType) => booth.poiTypeId === poiType.id))) {
1046
+ return false;
1047
+ }
1048
+ }
1049
+ if (item instanceof BoothBase) {
1050
+ if (!this.selectedPoiTypeFilters.some((poiType) => item.poiTypeId === poiType.id)) {
1051
+ return false;
1052
+ }
1053
+ }
1054
+ if (item instanceof EventItem && item.boothId) {
1055
+ const booth = this.rootStore.boothStore.booths.find((b) => b.id === item.boothId);
1056
+ if (!booth ||
1057
+ !this.selectedPoiTypeFilters.some((poiType) => booth.poiTypeId === poiType.id)) {
1058
+ return false;
1059
+ }
1060
+ }
1061
+ }
1062
+ return true;
1063
+ });
1064
+ }
1065
+ else {
1066
+ return items;
1067
+ }
1068
+ }
1069
+ case 'bookmarks':
1070
+ return [
1071
+ ...this.rootStore.exhibitorStore.bookmarked,
1072
+ ...this.rootStore.eventStore.bookmarked,
1073
+ ...this.rootStore.speakerStore.bookmarked,
1074
+ ...this.rootStore.boothStore.booths.filter((b) => b.exhibitors.length === 0 && b.bookmarkedDirectly),
1075
+ ];
1076
+ case 'visited':
1077
+ return [...this.rootStore.exhibitorStore.visited, ...this.rootStore.eventStore.visited];
1078
+ case 'category':
1079
+ return this.list.category.exhibitors;
1080
+ case LANGUAGE_TYPE:
1081
+ return getLocales();
1082
+ case 'filter':
1083
+ return this.list.items;
1084
+ case 'sessions':
1085
+ return this.rootStore.eventStore.eventItems;
1086
+ case 'exhibitors': {
1087
+ const exhibitors = this.rootStore.exhibitorStore.exhibitors;
1088
+ const searchText = this.list.text?.toLowerCase().trim();
1089
+ if (!searchText) {
1090
+ return exhibitors;
1091
+ }
1092
+ return exhibitors.filter((exhibitor) => exhibitor.name.toLowerCase().includes(searchText));
1093
+ }
1094
+ case 'multi-point-tour': {
1095
+ const routeItem = this.rootStore.toursStore.getTourById(this.list.tourId);
1096
+ if (!routeItem)
1097
+ return [];
1098
+ if (!routeItem.points || routeItem.points.length === 0)
1099
+ return [];
1100
+ return routeItem.points
1101
+ .map((pointId) => {
1102
+ const numericId = parseInt(pointId);
1103
+ if (!isNaN(numericId)) {
1104
+ const booth = this.rootStore.boothStore.boothById.get(numericId);
1105
+ if (booth)
1106
+ return booth;
1107
+ }
1108
+ const entity = findEntityByExternalId(pointId);
1109
+ return entity?.entity || null;
1110
+ })
1111
+ .filter((item) => !!item);
1112
+ }
1113
+ case 'route-planner':
1114
+ return this.rootStore.routePlannerStore.resolvedBooths;
1115
+ }
1116
+ throw new Error('Unknown list.type');
1117
+ }
1118
+ get listBooths() {
1119
+ return listBooths(this.listItems, this.rootStore.boothStore.booths, this.rootStore.eventStore.eventItems);
1120
+ }
1121
+ // @computed get listBoothsIdsSet() {
1122
+ // return new Set(getters.listBoothsIds);
1123
+ // }
1124
+ get selectedBooths() {
1125
+ let arr = [];
1126
+ if (this.selectedExhibitor)
1127
+ arr = this.selectedExhibitor.booths;
1128
+ else if (this.selectedBooth)
1129
+ arr = [this.selectedBooth];
1130
+ const route = this.selectedRoute;
1131
+ const routeBooths = [route?.from, route?.to, ...(route?.waypoints ?? [])].filter((b) => b instanceof BoothBase);
1132
+ arr.push(...routeBooths);
1133
+ return new Set(arr);
1134
+ }
1135
+ // @computed get selectedBoothIdsSet() {
1136
+ // return new Set(getters.selectedBoothIds);
1137
+ // }
1138
+ get hoveredBooths() {
1139
+ let arr = [];
1140
+ if (this.hoveredBooth)
1141
+ arr = [this.hoveredBooth];
1142
+ else if (this.hoveredExhibitor)
1143
+ arr = this.hoveredExhibitor.booths;
1144
+ return new Set(arr);
1145
+ }
1146
+ get visibility() {
1147
+ return {
1148
+ controls: !this.mapControlsHidden,
1149
+ levels: !this.floorsControlHidden,
1150
+ header: this.wsShown,
1151
+ overlay: !this.hideOverlay,
1152
+ searchButtons: this.searchButtonsOverride ?? !this.hideOverlay,
1153
+ };
1154
+ }
1155
+ setVisibility(visibility) {
1156
+ const flagKeys = ['controls', 'levels', 'header', 'overlay'];
1157
+ const flags = {
1158
+ ...flagKeys.reduce((acc, key) => ({ ...acc, [key]: true }), {}),
1159
+ ...flagKeys
1160
+ .filter((key) => key in visibility)
1161
+ .reduce((acc, key) => ({ ...acc, [key]: visibility[key] }), {}),
1162
+ };
1163
+ const searchButtons = typeof visibility.searchButtons === 'boolean' ? visibility.searchButtons : null;
1164
+ if (isLocalStorageAvailable) {
1165
+ if (Object.values(flags).every(Boolean) && searchButtons === null) {
1166
+ localStorage.removeItem(VISIBILITY_STORAGE_KEY);
1167
+ }
1168
+ else {
1169
+ localStorage.setItem(VISIBILITY_STORAGE_KEY, JSON.stringify(searchButtons === null ? flags : { ...flags, searchButtons }));
1170
+ }
1171
+ }
1172
+ this.mapControlsHidden = !flags.controls;
1173
+ this.floorsControlHidden = !flags.levels;
1174
+ this.hideHeaderLogo = !flags.header;
1175
+ this.hideFreeOrDemo = !flags.header;
1176
+ this.hideOverlay = !flags.overlay;
1177
+ this.searchButtonsOverride = searchButtons;
1178
+ }
1179
+ ///////////////////////////////////////////////////////////////////////////
1180
+ ///////////////////////////////////////////////////////////////////////////
1181
+ // actions TODO: move all to root store?
1182
+ toggleMapOverlay() {
1183
+ if (this.overlayPosition === 'bottom' && this.overlaySize === 'full')
1184
+ this.desiredOverlaySize = 'medium';
1185
+ else if (this.overlayPosition === 'bottom' && this.overlaySize !== 'full')
1186
+ this.desiredOverlaySize = 'full';
1187
+ }
1188
+ changeZoom(zoom) {
1189
+ this.zoomBy = zoom;
1190
+ }
1191
+ zoomIn() {
1192
+ this.changeZoom(ZOOM_IN_FACTOR);
1193
+ }
1194
+ zoomOut() {
1195
+ this.changeZoom(ZOOM_OUT_FACTOR);
1196
+ }
1197
+ fitBounds() {
1198
+ // A venue in context is what the user is looking at: fit its active floor,
1199
+ // not the whole campus behind it.
1200
+ if (this.rootStore.venueStore.frameActiveVenue()) {
1201
+ this.rollReset = true;
1202
+ return;
1203
+ }
1204
+ // No venue in context on a campus: the whole campus, which is also what
1205
+ // the map opens on — the ladder below would frame the union of the levels'
1206
+ // authored viewboxes instead, a different rect at a different scale.
1207
+ if (this.rootStore.venueStore.isCampusMode && this.rootStore.venueStore.campusBounds) {
1208
+ this.rootStore.venueStore.viewAllVenues();
1209
+ return;
1210
+ }
1211
+ // Both renderers frame the same rect: the most specific authored reference,
1212
+ // falling back to the scene-derived extent (svgArea alone can span the whole
1213
+ // surrounding map, e.g. a city). Where that rect is already the framing, the
1214
+ // fit adds no padding of its own — that is what makes Fit-to-screen land on
1215
+ // the initial view instead of a looser one.
1216
+ const { rect, source } = resolveVenueFitRect({
1217
+ layerViewbox: this.rootStore.layerStore.viewboxRectangle,
1218
+ explicitArea: isSvgAreaExplicit() ? getSvgArea() : null,
1219
+ layerRectangle: this.rootStore.layerStore.rectangle,
1220
+ sceneDef: mapScene() ?? null,
1221
+ svgArea: getSvgArea(),
1222
+ });
1223
+ this.moveToRect = rect;
1224
+ this.moveToRectPaddingPercent = fitRectIsFraming(source)
1225
+ ? 0
1226
+ : getVenueFitMarginPercent(rect, getSvgArea());
1227
+ this.rollReset = true;
1228
+ }
1229
+ // Both mode getters read localStorage lazily on every access — on purpose:
1230
+ // the legacy URL seeds (`?previewMode=` / `?viewermode=`, applyOneShots in
1231
+ // url-dispatch) run after loadConfig, and only a lazy read makes them
1232
+ // effective within the same load. The legacy `___*` key (value '1') is
1233
+ // consulted only while the schema-typed key is absent, so an explicit
1234
+ // `efp-*` value (e.g. the debug panel's 'false') always wins; 'true' and
1235
+ // '1' are the truthy forms the config codec accepts.
1236
+ get previewMode() {
1237
+ const stored = isLocalStorageAvailable
1238
+ ? (localStorage.getItem(PREVIEW_MODE_STORAGE_KEY) ??
1239
+ localStorage.getItem(LEGACY_PREVIEW_MODE_STORAGE_KEY))
1240
+ : null;
1241
+ return stored === 'true' || stored === '1' || this.rootStore.fp.previewMode;
1242
+ }
1243
+ get viewerMode() {
1244
+ const stored = isLocalStorageAvailable
1245
+ ? (localStorage.getItem(VIEWER_MODE_STORAGE_KEY) ??
1246
+ localStorage.getItem(LEGACY_VIEWER_MODE_STORAGE_KEY))
1247
+ : null;
1248
+ return stored === 'true' || stored === '1' || this.rootStore.fp.viewerMode;
1249
+ }
1250
+ get selectedEventItem() {
1251
+ return this.details instanceof EventItem ? this.details : null;
1252
+ }
1253
+ /**
1254
+ * How the camera moves before a host says otherwise.
1255
+ *
1256
+ * Both views a plan is drawn in read these, so the plan opens at the same angle and takes the
1257
+ * same time to get there whichever view is showing.
1258
+ */
1259
+ get defaultMapSettings() {
1260
+ return {
1261
+ zoomtime: 500,
1262
+ pitchtime: 500,
1263
+ center: undefined,
1264
+ centerxy: undefined,
1265
+ z: undefined,
1266
+ venue: undefined,
1267
+ bearing: 0,
1268
+ roll: 1,
1269
+ pitch: 1,
1270
+ // The angle the plan opens at. Top down for a venue whose tilt gesture is off, so the plan
1271
+ // it draws matches the one it lets you make by hand. A host may still pitch the camera
1272
+ // afterwards: `pitchEnabled` holds the gesture, never a command.
1273
+ pitchdegrees: this.pitchEnabled ? 30 : 0,
1274
+ };
1275
+ }
1276
+ setMapSettings(settings) {
1277
+ const newSettings = {};
1278
+ for (const key of Object.keys(settings)) {
1279
+ const value = settings[key];
1280
+ if (value == null) {
1281
+ continue;
1282
+ }
1283
+ if (key === 'zoomtime' || key === 'pitchtime') {
1284
+ newSettings[key] = Math.min(Math.max(settings[key] || this.mapSettings[key] || 0, 500), 5000);
1285
+ }
1286
+ else {
1287
+ Object.assign(newSettings, { [key]: value });
1288
+ }
1289
+ }
1290
+ this.mapSettings = { ...this.mapSettings, ...newSettings };
1291
+ }
1292
+ resetMapSettings() {
1293
+ this.mapSettings = { ...this.defaultMapSettings };
1294
+ }
1295
+ /**
1296
+ * Whether the venue shows its plan in 3D, which is its `allow3dView` flag and nothing else.
1297
+ *
1298
+ * `MaplibreStore` picks the first view mode from it, and the tilt gesture below hangs off it, so
1299
+ * a venue that never allows a tilted plan cannot be tilted by hand either.
1300
+ *
1301
+ * `hide3dMapDefault` is deliberately not read here. It asks for the flat view on load, which is a
1302
+ * starting camera rather than a venue without 3D, and narrowing this by it takes the tilt gesture
1303
+ * away from a venue that allows one.
1304
+ *
1305
+ * A plain getter, not a computed: the flag is frozen config with nothing to observe, and the map
1306
+ * store reads this from its own constructor.
1307
+ */
1308
+ get is3DView() {
1309
+ return !!data.allow3dView;
1310
+ }
1311
+ /**
1312
+ * Whether the user may tilt the plan by hand.
1313
+ *
1314
+ * The gesture only, exactly as `rollEnabled` is: a camera command still tilts the plan whatever
1315
+ * this says, in either view, so a host may open the plan at an angle with the gesture off. The
1316
+ * venue decides first through `is3DView`, and the `pitch` map parameter a host may pass
1317
+ * through the URL narrows it further.
1318
+ *
1319
+ * `keepAlive`, because `defaultMapSettings` reads it from the constructor, where there is no
1320
+ * reaction to observe it and the store is configured with `computedRequiresReaction`.
1321
+ */
1322
+ get pitchEnabled() {
1323
+ if (!this.is3DView)
1324
+ return false;
1325
+ return this.mapSettings.pitch === undefined || Number(this.mapSettings.pitch) === 1;
1326
+ }
1327
+ /**
1328
+ * Whether the user may turn the plan: the venue's own setting, narrowed by the `roll` map
1329
+ * parameter a host may pass through the URL.
1330
+ */
1331
+ get rollEnabled() {
1332
+ if (!this.rootStore.fp.enableRotation)
1333
+ return false;
1334
+ return this.mapSettings.roll === undefined || Number(this.mapSettings.roll) === 1;
1335
+ }
1336
+ get baseQRCodeUrl() {
1337
+ // The canonical address is only right while the plan is served from it. A
1338
+ // copy running somewhere else — a branch runtime, an offline build, a host
1339
+ // page — says so with `qrCodeBaseUrl`, and every code below then points at
1340
+ // the page the visitor is actually looking at instead of a different one
1341
+ // that happens to share the expo name.
1342
+ return data?.qrCodeBaseUrl || `https://${settings.EXPO}.expofp.com`;
1343
+ }
1344
+ get viewMapOnPhoneQRCodeUrl() {
1345
+ if (data?.customKioskQrCodeUrl) {
1346
+ return data.customKioskQrCodeUrl;
1347
+ }
1348
+ const url = new URL(this.baseQRCodeUrl);
1349
+ // Verbatim copy ON PURPOSE (retirement plan §4.11): the QR hands the phone the address bar
1350
+ // as-is, which can hold what serializeSelection never emits — entry camera seeds, filter
1351
+ // keys, queries frozen by disableUrlWrites (heatmap/offHistory), host-page params.
1352
+ url.search = window.location.search;
1353
+ const result = url.toString();
1354
+ console.log('View Map On Phone QR Code Url', result);
1355
+ return result;
1356
+ }
1357
+ get routeQRCodeUrl() {
1358
+ const url = new URL(this.baseQRCodeUrl);
1359
+ // ArbitraryPoint endpoints have no slug; the kiosk anchor is reconstructed on the receiving side
1360
+ // from the `kiosk_x/y/z` URL params attached below via `setKioskUrlParams`.
1361
+ const from = this.selectedRoute?.from;
1362
+ const to = this.selectedRoute?.to;
1363
+ const fromSlug = from instanceof BoothBase ? from.slug : '';
1364
+ const toSlug = to instanceof BoothBase ? to.slug : '';
1365
+ // Hand-rolled rather than serializeSelection: the receiving parser is positional
1366
+ // (route:<to>:<from>:<accessible>), so an empty slug must keep its `:` slot — the kiosk-anchor
1367
+ // FROM has none. serializeSelection drops empty segments, which would shift `false` into FROM.
1368
+ url.search = `?route%3A${encodeURIComponent(toSlug)}%3A${encodeURIComponent(fromSlug)}%3Afalse`;
1369
+ // We need to shorten the URL because the route QR code is becoming too complex for its small size.
1370
+ setKioskUrlParams(url.searchParams, this.kioskData);
1371
+ const result = url.toString();
1372
+ console.log('Route QR Code Url', result);
1373
+ return result;
1374
+ }
1375
+ get isFeaturedExhibitorActive() {
1376
+ return this.details instanceof Exhibitor && Boolean(this.details.featured);
1377
+ }
1378
+ get activeInterfaceData() {
1379
+ for (const meta of this.interfaceMetadata) {
1380
+ if (meta.isActive()) {
1381
+ return meta;
1382
+ }
1383
+ }
1384
+ return null;
1385
+ }
1386
+ /** Id of the screen the search box heads — lets custom CSS target one header. */
1387
+ get activeInterfaceId() {
1388
+ return this.activeInterfaceData?.id;
1389
+ }
1390
+ get searchBoxConfig() {
1391
+ const activeInterface = this.activeInterfaceData;
1392
+ if (!activeInterface || !activeInterface.searchBoxConfig) {
1393
+ return {
1394
+ mode: 'search',
1395
+ title: '',
1396
+ subtitle: undefined,
1397
+ badge: undefined,
1398
+ icon: undefined,
1399
+ };
1400
+ }
1401
+ return (activeInterface.searchBoxConfig() || {
1402
+ mode: 'search',
1403
+ title: '',
1404
+ subtitle: undefined,
1405
+ badge: undefined,
1406
+ icon: undefined,
1407
+ });
1408
+ }
1409
+ get searchBoxActions() {
1410
+ return this.activeInterfaceData?.actions?.() ?? [];
1411
+ }
1412
+ get overlayInterfaceClasses() {
1413
+ const classes = [];
1414
+ const activeData = this.activeInterfaceData;
1415
+ if (activeData) {
1416
+ classes.push(activeData.className);
1417
+ if (activeData.additionalClasses) {
1418
+ classes.push(...activeData.additionalClasses());
1419
+ }
1420
+ }
1421
+ if (this.details) {
1422
+ classes.push('overlay-has-details');
1423
+ }
1424
+ if (this.list.type) {
1425
+ classes.push(`overlay-list-${this.list.type}`);
1426
+ }
1427
+ if (this.isFeaturedExhibitorActive) {
1428
+ classes.push('overlay-exhibitor-featured');
1429
+ }
1430
+ return classes;
1431
+ }
1432
+ get isOverlayOpen() {
1433
+ if (this.noOverlay && !this.overlayOnDemand)
1434
+ return false;
1435
+ return this.activeInterfaceData !== null;
1436
+ }
1437
+ setOverlayScrolled(isScrolled) {
1438
+ this.isOverlayScrolled = isScrolled;
1439
+ }
1440
+ setListScrollTop(listType, scrollTop) {
1441
+ this.listScrollTop = scrollTop;
1442
+ this.scrollPositions.set(listType, scrollTop);
1443
+ }
1444
+ setListScrollItemId(listType, itemId) {
1445
+ this.listScrollItemId = itemId;
1446
+ this.scrollItemIds.set(listType, itemId);
1447
+ }
1448
+ getListScrollTop(listType) {
1449
+ return this.scrollPositions.get(listType) || 0;
1450
+ }
1451
+ getListScrollItemId(listType) {
1452
+ return this.scrollItemIds.get(listType) || null;
1453
+ }
1454
+ clearListScroll(listType) {
1455
+ this.scrollPositions.delete(listType);
1456
+ this.scrollItemIds.delete(listType);
1457
+ if (this.list.type === listType) {
1458
+ this.listScrollTop = 0;
1459
+ this.listScrollItemId = null;
1460
+ }
1461
+ }
1462
+ get bannerType() {
1463
+ if (this.hideFreeOrDemo || this.heatmap) {
1464
+ return null;
1465
+ }
1466
+ if (settings.EXPO === 'expo') {
1467
+ return 'demo';
1468
+ }
1469
+ else if (data.expoFpAd || data.isTrial) {
1470
+ return 'free';
1471
+ }
1472
+ return null;
1473
+ }
1474
+ setCurrentBanner(banner) {
1475
+ this.currentBanner = banner;
1476
+ }
1477
+ setForceShowDetails(flag) {
1478
+ this.forceShowDetails = flag;
1479
+ }
1480
+ get showRouteInstantly() {
1481
+ return Boolean(this.kiosk && !this.forceShowDetails);
1482
+ }
1483
+ startBuildRoute() {
1484
+ this.rootStore.selectSearch('');
1485
+ this.mapControlsHidden = true;
1486
+ this.floorsControlHidden = true;
1487
+ this.hideHeaderLogo = true;
1488
+ this.hideFreeOrDemo = true;
1489
+ this.hideOverlay = true;
1490
+ this.hideCookieConsent = true;
1491
+ this.buildRoute = true;
1492
+ }
1493
+ setGlobalErrorMessage(message) {
1494
+ this.globalErrorMessages.push(message);
1495
+ }
1496
+ popGlobalErrorMessage() {
1497
+ this.globalErrorMessages.pop();
1498
+ }
1499
+ initializeUIScale() {
1500
+ // `?kiosk=0` explicitly de-kiosks the session, so the persisted scale (typically a
1501
+ // kiosk-provisioning artifact — see KioskStore) must not be restored. Kiosk-semantic
1502
+ // direct read: it migrates with the kiosk config node (retirement plan §4.7).
1503
+ const urlParams = new URLSearchParams(window.location.search);
1504
+ if (urlParams.get('kiosk') === '0') {
1505
+ return;
1506
+ }
1507
+ // Nor on a phone that holds a saved kiosk: kiosk mode stays off there (see `kiosk`), and the
1508
+ // scale stored with that kiosk would enlarge the UI all the same.
1509
+ if (isPhone && hasSavedKiosk()) {
1510
+ return;
1511
+ }
1512
+ if (isLocalStorageAvailable) {
1513
+ const savedScale = localStorage.getItem(UI_SCALE_STORAGE_KEY) ??
1514
+ localStorage.getItem(LEGACY_UI_SCALE_STORAGE_KEY);
1515
+ if (savedScale) {
1516
+ const scaleValue = parseFloat(savedScale);
1517
+ if (!isNaN(scaleValue) && scaleValue >= 0.8 && scaleValue <= 1.4) {
1518
+ this._customUIScale = scaleValue;
1519
+ }
1520
+ }
1521
+ }
1522
+ }
1523
+ setUIScale(scale, saveToStorage = true) {
1524
+ if (scale === undefined || isNaN(scale) || scale < this.minUIScale || scale > this.maxUIScale) {
1525
+ logger.warn(`Invalid ui-scale value: ${scale}. Must be between ${this.minUIScale} and ${this.maxUIScale}.`);
1526
+ return;
1527
+ }
1528
+ this._customUIScale = scale;
1529
+ if (saveToStorage && isLocalStorageAvailable) {
1530
+ // self-migrating write: the legacy key is superseded on every save
1531
+ localStorage.setItem(UI_SCALE_STORAGE_KEY, scale.toString());
1532
+ localStorage.removeItem(LEGACY_UI_SCALE_STORAGE_KEY);
1533
+ }
1534
+ }
1535
+ /**
1536
+ * Applies the UI scale a kiosk carries. Not on a phone: kiosk mode stays off there (see `kiosk`),
1537
+ * and its scale with it.
1538
+ */
1539
+ setKioskUIScale(scale, saveToStorage) {
1540
+ if (isPhone)
1541
+ return;
1542
+ this.setUIScale(scale, saveToStorage);
1543
+ }
1544
+ resetUIScale() {
1545
+ this._customUIScale = null;
1546
+ if (isLocalStorageAvailable) {
1547
+ localStorage.removeItem(UI_SCALE_STORAGE_KEY);
1548
+ localStorage.removeItem(LEGACY_UI_SCALE_STORAGE_KEY);
1549
+ }
1550
+ }
1551
+ /** Drops a scale applied without saving, back to the stored one (or the default). */
1552
+ restoreUIScale() {
1553
+ this._customUIScale = null;
1554
+ this.initializeUIScale();
1555
+ }
1556
+ /**
1557
+ * Kiosk mode. Never on for a phone ({@link isPhone}), whichever writer asks for it. A phone still
1558
+ * shows the kiosk's marker, which follows `kioskData`.
1559
+ */
1560
+ get kiosk() {
1561
+ return this.kioskEnabled;
1562
+ }
1563
+ set kiosk(enabled) {
1564
+ this.kioskEnabled = enabled && !isPhone;
1565
+ }
1566
+ enableSetKioskMode(enable) {
1567
+ this.setKioskModeEnabled = enable;
1568
+ }
1569
+ setKioskData(kioskData) {
1570
+ this.kioskData = kioskData;
1571
+ }
1572
+ }
1573
+ __decorate([
1574
+ observable.struct
1575
+ ], UIState.prototype, "list", void 0);
1576
+ __decorate([
1577
+ observable.ref
1578
+ ], UIState.prototype, "details", void 0);
1579
+ __decorate([
1580
+ observable.ref
1581
+ ], UIState.prototype, "hoveredExhibitor", void 0);
1582
+ __decorate([
1583
+ observable.ref
1584
+ ], UIState.prototype, "hoveredBooth", void 0);
1585
+ __decorate([
1586
+ observable
1587
+ ], UIState.prototype, "zoomBy", void 0);
1588
+ __decorate([
1589
+ observable
1590
+ ], UIState.prototype, "rollReset", void 0);
1591
+ __decorate([
1592
+ observable
1593
+ ], UIState.prototype, "moveToBooths", void 0);
1594
+ __decorate([
1595
+ observable
1596
+ ], UIState.prototype, "moveToRect", void 0);
1597
+ __decorate([
1598
+ observable
1599
+ ], UIState.prototype, "moveToRectPaddingPercent", void 0);
1600
+ __decorate([
1601
+ observable
1602
+ ], UIState.prototype, "moveToLocation", void 0);
1603
+ __decorate([
1604
+ observable
1605
+ ], UIState.prototype, "menu", void 0);
1606
+ __decorate([
1607
+ observable
1608
+ ], UIState.prototype, "searchFocused", void 0);
1609
+ __decorate([
1610
+ observable
1611
+ ], UIState.prototype, "searchClearMode", void 0);
1612
+ __decorate([
1613
+ observable
1614
+ ], UIState.prototype, "printingPdf", void 0);
1615
+ __decorate([
1616
+ observable.struct
1617
+ ], UIState.prototype, "screenSize", void 0);
1618
+ __decorate([
1619
+ observable
1620
+ ], UIState.prototype, "desiredOverlaySize", void 0);
1621
+ __decorate([
1622
+ observable
1623
+ ], UIState.prototype, "overlayShowsAll", void 0);
1624
+ __decorate([
1625
+ observable
1626
+ ], UIState.prototype, "centerMap", void 0);
1627
+ __decorate([
1628
+ observable
1629
+ ], UIState.prototype, "zoomAfTransformK", void 0);
1630
+ __decorate([
1631
+ observable
1632
+ ], UIState.prototype, "activeListIndex", void 0);
1633
+ __decorate([
1634
+ observable
1635
+ ], UIState.prototype, "devicePixelRatio", void 0);
1636
+ __decorate([
1637
+ observable
1638
+ ], UIState.prototype, "wsStarted", void 0);
1639
+ __decorate([
1640
+ observable
1641
+ ], UIState.prototype, "canvasStarted", void 0);
1642
+ __decorate([
1643
+ observable
1644
+ ], UIState.prototype, "inIdle", void 0);
1645
+ __decorate([
1646
+ observable
1647
+ ], UIState.prototype, "modalActive", void 0);
1648
+ __decorate([
1649
+ observable
1650
+ ], UIState.prototype, "galleryActive", void 0);
1651
+ __decorate([
1652
+ observable
1653
+ ], UIState.prototype, "hideOverlay", void 0);
1654
+ __decorate([
1655
+ observable
1656
+ ], UIState.prototype, "searchButtonsOverride", void 0);
1657
+ __decorate([
1658
+ observable
1659
+ ], UIState.prototype, "hideCookieConsent", void 0);
1660
+ __decorate([
1661
+ observable
1662
+ ], UIState.prototype, "hideHeaderLogo", void 0);
1663
+ __decorate([
1664
+ observable
1665
+ ], UIState.prototype, "hideLogoInBooth", void 0);
1666
+ __decorate([
1667
+ observable
1668
+ ], UIState.prototype, "disableBookmarked", void 0);
1669
+ __decorate([
1670
+ observable
1671
+ ], UIState.prototype, "hideLanguage", void 0);
1672
+ __decorate([
1673
+ observable
1674
+ ], UIState.prototype, "monochrome", void 0);
1675
+ __decorate([
1676
+ observable
1677
+ ], UIState.prototype, "heatmap", void 0);
1678
+ __decorate([
1679
+ observable
1680
+ ], UIState.prototype, "heatmapYah", void 0);
1681
+ __decorate([
1682
+ observable
1683
+ ], UIState.prototype, "debugCircles", void 0);
1684
+ __decorate([
1685
+ observable
1686
+ ], UIState.prototype, "mapControlsHidden", void 0);
1687
+ __decorate([
1688
+ observable
1689
+ ], UIState.prototype, "floorsControlHidden", void 0);
1690
+ __decorate([
1691
+ observable
1692
+ ], UIState.prototype, "hideFreeOrDemo", void 0);
1693
+ __decorate([
1694
+ observable
1695
+ ], UIState.prototype, "freeBannerDismissed", void 0);
1696
+ __decorate([
1697
+ observable
1698
+ ], UIState.prototype, "currentBanner", void 0);
1699
+ __decorate([
1700
+ observable
1701
+ ], UIState.prototype, "sceneDefReady", void 0);
1702
+ __decorate([
1703
+ observable
1704
+ ], UIState.prototype, "categoryFilterOpen", void 0);
1705
+ __decorate([
1706
+ observable
1707
+ ], UIState.prototype, "selectedCategoryFilters", void 0);
1708
+ __decorate([
1709
+ observable
1710
+ ], UIState.prototype, "selectedPoiTypeFilters", void 0);
1711
+ __decorate([
1712
+ observable
1713
+ ], UIState.prototype, "selectedTrack", void 0);
1714
+ __decorate([
1715
+ observable
1716
+ ], UIState.prototype, "subButtonsVisible", void 0);
1717
+ __decorate([
1718
+ observable
1719
+ ], UIState.prototype, "searchBoxMode", void 0);
1720
+ __decorate([
1721
+ observable
1722
+ ], UIState.prototype, "searchBoxTitle", void 0);
1723
+ __decorate([
1724
+ observable
1725
+ ], UIState.prototype, "searchBoxSubtitle", void 0);
1726
+ __decorate([
1727
+ observable
1728
+ ], UIState.prototype, "routeTitle", void 0);
1729
+ __decorate([
1730
+ observable
1731
+ ], UIState.prototype, "routeDescription", void 0);
1732
+ __decorate([
1733
+ observable
1734
+ ], UIState.prototype, "isMultiPointRoute", void 0);
1735
+ __decorate([
1736
+ observable
1737
+ ], UIState.prototype, "tourTitle", void 0);
1738
+ __decorate([
1739
+ observable
1740
+ ], UIState.prototype, "tourDescription", void 0);
1741
+ __decorate([
1742
+ observable
1743
+ ], UIState.prototype, "isMultiPointTour", void 0);
1744
+ __decorate([
1745
+ observable
1746
+ ], UIState.prototype, "pathwayOnlyMode", void 0);
1747
+ __decorate([
1748
+ observable
1749
+ ], UIState.prototype, "isOverlayScrolled", void 0);
1750
+ __decorate([
1751
+ observable
1752
+ ], UIState.prototype, "listScrollTop", void 0);
1753
+ __decorate([
1754
+ observable
1755
+ ], UIState.prototype, "listScrollItemId", void 0);
1756
+ __decorate([
1757
+ observable
1758
+ ], UIState.prototype, "listScrollIndex", void 0);
1759
+ __decorate([
1760
+ observable
1761
+ ], UIState.prototype, "_customUIScale", void 0);
1762
+ __decorate([
1763
+ action
1764
+ ], UIState.prototype, "setSelectedCategoryFilters", null);
1765
+ __decorate([
1766
+ action
1767
+ ], UIState.prototype, "resetCategoryFilter", null);
1768
+ __decorate([
1769
+ action
1770
+ ], UIState.prototype, "setSearchClearMode", null);
1771
+ __decorate([
1772
+ action
1773
+ ], UIState.prototype, "setRouteTitle", null);
1774
+ __decorate([
1775
+ action
1776
+ ], UIState.prototype, "setRouteDescription", null);
1777
+ __decorate([
1778
+ action
1779
+ ], UIState.prototype, "setIsMultiPointRoute", null);
1780
+ __decorate([
1781
+ action
1782
+ ], UIState.prototype, "setTourTitle", null);
1783
+ __decorate([
1784
+ action
1785
+ ], UIState.prototype, "setTourDescription", null);
1786
+ __decorate([
1787
+ action
1788
+ ], UIState.prototype, "setIsMultiPointTour", null);
1789
+ __decorate([
1790
+ action
1791
+ ], UIState.prototype, "setPathwayOnlyMode", null);
1792
+ __decorate([
1793
+ action
1794
+ ], UIState.prototype, "setMultiPointTourList", null);
1795
+ __decorate([
1796
+ computed
1797
+ ], UIState.prototype, "activePathwayLayers", null);
1798
+ __decorate([
1799
+ computed
1800
+ ], UIState.prototype, "highlightedBooths", null);
1801
+ __decorate([
1802
+ computed
1803
+ ], UIState.prototype, "rtl", null);
1804
+ __decorate([
1805
+ computed({ keepAlive: true })
1806
+ ], UIState.prototype, "noOverlay", null);
1807
+ __decorate([
1808
+ computed
1809
+ ], UIState.prototype, "overlayOnDemand", null);
1810
+ __decorate([
1811
+ computed
1812
+ ], UIState.prototype, "overlayHiddenNow", null);
1813
+ __decorate([
1814
+ computed({ keepAlive: true })
1815
+ ], UIState.prototype, "selectedExhibitor", null);
1816
+ __decorate([
1817
+ computed({ keepAlive: true })
1818
+ ], UIState.prototype, "selectedBooth", null);
1819
+ __decorate([
1820
+ computed({ keepAlive: true })
1821
+ ], UIState.prototype, "selectedCategory", null);
1822
+ __decorate([
1823
+ computed({ keepAlive: true })
1824
+ ], UIState.prototype, "selectedRoute", null);
1825
+ __decorate([
1826
+ computed({ keepAlive: true })
1827
+ ], UIState.prototype, "selectedSpeaker", null);
1828
+ __decorate([
1829
+ computed({ keepAlive: true })
1830
+ ], UIState.prototype, "uiScale", null);
1831
+ __decorate([
1832
+ computed({ keepAlive: true })
1833
+ ], UIState.prototype, "isGuidedToursActive", null);
1834
+ __decorate([
1835
+ computed({ keepAlive: true })
1836
+ ], UIState.prototype, "getRouteNextFloor", null);
1837
+ __decorate([
1838
+ computed
1839
+ ], UIState.prototype, "headerHeightPx", null);
1840
+ __decorate([
1841
+ computed
1842
+ ], UIState.prototype, "overlayPosition", null);
1843
+ __decorate([
1844
+ computed
1845
+ ], UIState.prototype, "overlayCollapsed", null);
1846
+ __decorate([
1847
+ computed
1848
+ ], UIState.prototype, "overlaySize", null);
1849
+ __decorate([
1850
+ computed
1851
+ ], UIState.prototype, "overlayBottom", null);
1852
+ __decorate([
1853
+ computed
1854
+ ], UIState.prototype, "overlayLeft", null);
1855
+ __decorate([
1856
+ computed
1857
+ ], UIState.prototype, "overlayWidthPx", null);
1858
+ __decorate([
1859
+ computed
1860
+ ], UIState.prototype, "wsPaddingPx", null);
1861
+ __decorate([
1862
+ computed
1863
+ ], UIState.prototype, "wsOccupiedHeightPx", null);
1864
+ __decorate([
1865
+ computed({ keepAlive: true })
1866
+ ], UIState.prototype, "wsShown", null);
1867
+ __decorate([
1868
+ computed
1869
+ ], UIState.prototype, "wsDesktopPosition", null);
1870
+ __decorate([
1871
+ computed
1872
+ ], UIState.prototype, "wsPosition", null);
1873
+ __decorate([
1874
+ computed
1875
+ ], UIState.prototype, "responsiveClass", null);
1876
+ __decorate([
1877
+ computed
1878
+ ], UIState.prototype, "mapVisibleTop", null);
1879
+ __decorate([
1880
+ computed
1881
+ ], UIState.prototype, "mapVisibleBottom", null);
1882
+ __decorate([
1883
+ computed
1884
+ ], UIState.prototype, "searchActionsHeightPx", null);
1885
+ __decorate([
1886
+ computed
1887
+ ], UIState.prototype, "shouldShowSearchButtons", null);
1888
+ __decorate([
1889
+ computed
1890
+ ], UIState.prototype, "shouldShowMobileToggle", null);
1891
+ __decorate([
1892
+ computed
1893
+ ], UIState.prototype, "mobileToggleTopPx", null);
1894
+ __decorate([
1895
+ computed
1896
+ ], UIState.prototype, "mobileToggleIsListMode", null);
1897
+ __decorate([
1898
+ computed
1899
+ ], UIState.prototype, "canvasVisibleRectPx", null);
1900
+ __decorate([
1901
+ computed
1902
+ ], UIState.prototype, "shouldShiftMapRect", null);
1903
+ __decorate([
1904
+ computed
1905
+ ], UIState.prototype, "hasAppliedFilters", null);
1906
+ __decorate([
1907
+ computed
1908
+ ], UIState.prototype, "canvasVisibleRectPt", null);
1909
+ __decorate([
1910
+ computed
1911
+ ], UIState.prototype, "canvasSizePt", null);
1912
+ __decorate([
1913
+ computed({ keepAlive: true })
1914
+ ], UIState.prototype, "shouldUseBackdrop", null);
1915
+ __decorate([
1916
+ observable
1917
+ ], UIState.prototype, "forceDim", void 0);
1918
+ __decorate([
1919
+ action
1920
+ ], UIState.prototype, "setForceDim", null);
1921
+ __decorate([
1922
+ computed
1923
+ ], UIState.prototype, "dimmed", null);
1924
+ __decorate([
1925
+ computed
1926
+ ], UIState.prototype, "defaultSearchItems", null);
1927
+ __decorate([
1928
+ computed
1929
+ ], UIState.prototype, "searchItems", null);
1930
+ __decorate([
1931
+ computed
1932
+ ], UIState.prototype, "searchList", null);
1933
+ __decorate([
1934
+ computed
1935
+ ], UIState.prototype, "foundInDescription", null);
1936
+ __decorate([
1937
+ computed
1938
+ ], UIState.prototype, "foundInDescriptionStruct", null);
1939
+ __decorate([
1940
+ computed
1941
+ ], UIState.prototype, "categoryFilteredSearchList", null);
1942
+ __decorate([
1943
+ computed
1944
+ ], UIState.prototype, "fuzzySearchItems", null);
1945
+ __decorate([
1946
+ computed
1947
+ ], UIState.prototype, "listItems", null);
1948
+ __decorate([
1949
+ computed({ keepAlive: true })
1950
+ ], UIState.prototype, "listBooths", null);
1951
+ __decorate([
1952
+ computed({ keepAlive: true })
1953
+ ], UIState.prototype, "selectedBooths", null);
1954
+ __decorate([
1955
+ computed({ keepAlive: true })
1956
+ ], UIState.prototype, "hoveredBooths", null);
1957
+ __decorate([
1958
+ computed
1959
+ ], UIState.prototype, "visibility", null);
1960
+ __decorate([
1961
+ action
1962
+ ], UIState.prototype, "setVisibility", null);
1963
+ __decorate([
1964
+ action
1965
+ ], UIState.prototype, "toggleMapOverlay", null);
1966
+ __decorate([
1967
+ action
1968
+ ], UIState.prototype, "changeZoom", null);
1969
+ __decorate([
1970
+ action
1971
+ ], UIState.prototype, "zoomIn", null);
1972
+ __decorate([
1973
+ action
1974
+ ], UIState.prototype, "zoomOut", null);
1975
+ __decorate([
1976
+ action
1977
+ ], UIState.prototype, "fitBounds", null);
1978
+ __decorate([
1979
+ computed({ keepAlive: true })
1980
+ ], UIState.prototype, "selectedEventItem", null);
1981
+ __decorate([
1982
+ observable
1983
+ ], UIState.prototype, "mapSettings", void 0);
1984
+ __decorate([
1985
+ action
1986
+ ], UIState.prototype, "setMapSettings", null);
1987
+ __decorate([
1988
+ action
1989
+ ], UIState.prototype, "resetMapSettings", null);
1990
+ __decorate([
1991
+ observable
1992
+ ], UIState.prototype, "animatePitch", void 0);
1993
+ __decorate([
1994
+ computed({ keepAlive: true })
1995
+ ], UIState.prototype, "pitchEnabled", null);
1996
+ __decorate([
1997
+ computed
1998
+ ], UIState.prototype, "rollEnabled", null);
1999
+ __decorate([
2000
+ computed
2001
+ ], UIState.prototype, "baseQRCodeUrl", null);
2002
+ __decorate([
2003
+ computed
2004
+ ], UIState.prototype, "viewMapOnPhoneQRCodeUrl", null);
2005
+ __decorate([
2006
+ computed
2007
+ ], UIState.prototype, "routeQRCodeUrl", null);
2008
+ __decorate([
2009
+ computed
2010
+ ], UIState.prototype, "isFeaturedExhibitorActive", null);
2011
+ __decorate([
2012
+ computed
2013
+ ], UIState.prototype, "activeInterfaceData", null);
2014
+ __decorate([
2015
+ computed
2016
+ ], UIState.prototype, "activeInterfaceId", null);
2017
+ __decorate([
2018
+ computed
2019
+ ], UIState.prototype, "searchBoxConfig", null);
2020
+ __decorate([
2021
+ computed
2022
+ ], UIState.prototype, "searchBoxActions", null);
2023
+ __decorate([
2024
+ computed
2025
+ ], UIState.prototype, "overlayInterfaceClasses", null);
2026
+ __decorate([
2027
+ computed
2028
+ ], UIState.prototype, "isOverlayOpen", null);
2029
+ __decorate([
2030
+ action
2031
+ ], UIState.prototype, "setOverlayScrolled", null);
2032
+ __decorate([
2033
+ action
2034
+ ], UIState.prototype, "setListScrollTop", null);
2035
+ __decorate([
2036
+ action
2037
+ ], UIState.prototype, "setListScrollItemId", null);
2038
+ __decorate([
2039
+ action
2040
+ ], UIState.prototype, "getListScrollTop", null);
2041
+ __decorate([
2042
+ action
2043
+ ], UIState.prototype, "getListScrollItemId", null);
2044
+ __decorate([
2045
+ action
2046
+ ], UIState.prototype, "clearListScroll", null);
2047
+ __decorate([
2048
+ computed
2049
+ ], UIState.prototype, "bannerType", null);
2050
+ __decorate([
2051
+ action
2052
+ ], UIState.prototype, "setCurrentBanner", null);
2053
+ __decorate([
2054
+ observable
2055
+ ], UIState.prototype, "forceShowDetails", void 0);
2056
+ __decorate([
2057
+ action
2058
+ ], UIState.prototype, "setForceShowDetails", null);
2059
+ __decorate([
2060
+ computed
2061
+ ], UIState.prototype, "showRouteInstantly", null);
2062
+ __decorate([
2063
+ observable
2064
+ ], UIState.prototype, "buildRoute", void 0);
2065
+ __decorate([
2066
+ action
2067
+ ], UIState.prototype, "startBuildRoute", null);
2068
+ __decorate([
2069
+ observable
2070
+ ], UIState.prototype, "globalErrorMessages", void 0);
2071
+ __decorate([
2072
+ action
2073
+ ], UIState.prototype, "setGlobalErrorMessage", null);
2074
+ __decorate([
2075
+ action
2076
+ ], UIState.prototype, "popGlobalErrorMessage", null);
2077
+ __decorate([
2078
+ action
2079
+ ], UIState.prototype, "initializeUIScale", null);
2080
+ __decorate([
2081
+ action
2082
+ ], UIState.prototype, "setUIScale", null);
2083
+ __decorate([
2084
+ action
2085
+ ], UIState.prototype, "setKioskUIScale", null);
2086
+ __decorate([
2087
+ action
2088
+ ], UIState.prototype, "resetUIScale", null);
2089
+ __decorate([
2090
+ action
2091
+ ], UIState.prototype, "restoreUIScale", null);
2092
+ __decorate([
2093
+ observable
2094
+ ], UIState.prototype, "kioskEnabled", void 0);
2095
+ __decorate([
2096
+ observable
2097
+ ], UIState.prototype, "setKioskModeEnabled", void 0);
2098
+ __decorate([
2099
+ action
2100
+ ], UIState.prototype, "enableSetKioskMode", null);
2101
+ __decorate([
2102
+ observable
2103
+ ], UIState.prototype, "kioskData", void 0);
2104
+ __decorate([
2105
+ action
2106
+ ], UIState.prototype, "setKioskData", null);
2107
+ /** The description a list item carries, for the kinds that have one. */
2108
+ function descriptionOf(item) {
2109
+ return 'description' in item && typeof item.description === 'string'
2110
+ ? item.description
2111
+ : undefined;
2112
+ }
2113
+ function listBooths(listItems, boothStoreBooths, eventItems = []) {
2114
+ const arr = [];
2115
+ listItems.forEach((item) => {
2116
+ if (item instanceof Exhibitor) {
2117
+ arr.push(...item.booths);
2118
+ }
2119
+ else if (item instanceof BoothBase) {
2120
+ arr.push(item);
2121
+ }
2122
+ else if (item instanceof EventItem) {
2123
+ const booth = boothStoreBooths.find((b) => b.id === item.boothId);
2124
+ if (item.boothId && booth)
2125
+ arr.push(booth);
2126
+ }
2127
+ else if (item instanceof SpeakerItem) {
2128
+ eventItems
2129
+ .filter((e) => e.speakers.some((s) => s.id === item.id) && e.boothId)
2130
+ .forEach((e) => {
2131
+ const speakerBooth = boothStoreBooths.find((b) => b.id === e.boothId);
2132
+ if (speakerBooth)
2133
+ arr.push(speakerBooth);
2134
+ });
2135
+ }
2136
+ });
2137
+ return new Set(arr.filter(Boolean));
2138
+ }