@expofp/floorplan 3.22.0 → 3.23.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (145) hide show
  1. package/dist/browser/{Button-PkkC8fYi.js → Button-Cu9clsSR.js} +5 -5
  2. package/dist/browser/{CookieConsent-COPAytjc.js → CookieConsent-mvgZy0jC.js} +8 -8
  3. package/dist/browser/{Debug-CWVwWCU0.js → Debug-CnnGHGZJ.js} +10 -10
  4. package/dist/browser/{Demo-yP6tHJE2.js → Demo-DQlgp6cY.js} +10 -10
  5. package/dist/browser/{Free-rILAyXya.js → Free-DgGCDTNd.js} +13 -13
  6. package/dist/browser/{Gallery-DbQ6bxpv.js → GalleryContainer-ixlqlJ9Q.js} +714 -589
  7. package/dist/browser/{GpsLoader-U0qUOF4J.js → GpsLoader-9JLK7S2S.js} +16 -16
  8. package/dist/browser/{KioskStore-D25GX7Yv.js → KioskStore-ZtZBfHyG.js} +34 -34
  9. package/dist/browser/{MaplibreAdapter-CMX6Q9zs.js → MaplibreAdapter-C__Oc26V.js} +1725 -1674
  10. package/dist/browser/{ModalContainer-TVi_WpAy.js → ModalContainer-DsyDwSqY.js} +59 -54
  11. package/dist/browser/{PermissionNotice-SMHSj2qI.js → PermissionNotice-CZ4QlKe_.js} +6 -6
  12. package/dist/browser/{SetKioskMode-BwSFzzos.js → SetKioskMode-Bf4b4bnh.js} +14 -14
  13. package/dist/browser/{ShowKiosk-D0lj2wzz.js → ShowKiosk-BdAccxwG.js} +11 -11
  14. package/dist/browser/{ViewerMenuPanel-9A84e6XT.js → ViewerMenuPanel-_Y9M630H.js} +18 -18
  15. package/dist/browser/{add-debug-secret-listener-CyjybhbR.js → add-debug-secret-listener-DQl3P4ki.js} +1 -1
  16. package/dist/browser/{adopt-global-settings-BhJX0B0D.js → adopt-global-settings-DTFmFw7D.js} +9 -9
  17. package/dist/browser/{boolean-editor-3IdccOj-.js → boolean-editor-DRaZvwNE.js} +9 -9
  18. package/dist/browser/{bootIntercom-CkHVzOj8.js → bootIntercom-Bxi_kVm1.js} +2 -2
  19. package/dist/browser/{booth-by-xy-CQvcHK_A.js → booth-by-xy-RZ4XM07z.js} +331 -331
  20. package/dist/browser/bundle.json +65 -65
  21. package/dist/browser/{classnames-6bU7zOpA.js → classnames-yCHhGUHk.js} +2 -2
  22. package/dist/browser/{client-BkHWS5lm.js → client-dzWvVFIu.js} +4 -4
  23. package/dist/browser/{components-Btgwx55F.js → components-DiWraxYJ.js} +2065 -2018
  24. package/dist/browser/{debug-overlay-D9Gq5tnJ.js → debug-overlay-By2JKe98.js} +10 -10
  25. package/dist/browser/{debug-ui-CclRARRM.js → debug-ui-B7iMFZL2.js} +6 -6
  26. package/dist/browser/{dist-D4vUke_M.js → dist-BJYZuYz5.js} +3 -3
  27. package/dist/browser/{dist-nmYmVc14.js → dist-D0sDuIMU.js} +5 -5
  28. package/dist/browser/{dist-YXQi1KHp.js → dist-XtgimJG-.js} +6 -6
  29. package/dist/browser/{efp-debug-init-BNS4_yDX.js → efp-debug-init-Cm4noHZv.js} +3 -3
  30. package/dist/browser/{enum-editor-YeDXZjkr.js → enum-editor-CmI32f5A.js} +4 -4
  31. package/dist/browser/{es5-CNjSlyOY.js → es5-97nOnIxB.js} +2 -2
  32. package/dist/browser/{event-not-found-BQMzvSOp.js → event-not-found-Gs3WorrR.js} +1 -1
  33. package/dist/browser/{exports-BPkLTIY6.js → exports-BzI9isE4.js} +1 -1
  34. package/dist/browser/{favicon-D09E0ggy.js → favicon-NX_igce1.js} +1 -1
  35. package/dist/browser/{fetch-retry.umd-CyeSNjOO.js → fetch-retry.umd-BdBGrOUm.js} +2 -2
  36. package/dist/browser/{flex-DFe-lnRY.js → flex-D0Cx6ssp.js} +5 -5
  37. package/dist/browser/{floorplan.loader-CtqFPg5v.js → floorplan.loader-BNASIC9N.js} +20 -20
  38. package/dist/browser/{floorplan.ready-mvJLjOT8.js → floorplan.ready-Bdm_nBoS.js} +326 -364
  39. package/dist/browser/{fuse-CH8SDiG4.js → fuse-CArwLmpE.js} +2 -2
  40. package/dist/browser/{i18n-pREdf4o-.js → i18n-DJDkRNUS.js} +2528 -2559
  41. package/dist/browser/index.js +35 -35
  42. package/dist/browser/{index.module-4MYJQyVQ.js → index.module-AN1k6qf9.js} +4 -4
  43. package/dist/browser/{integrateKiosk-BuctRtHM.js → integrateKiosk-BHslPH6W.js} +9 -8
  44. package/dist/browser/{is-webview-Dk7i6iyE.js → is-webview-CpxNA1hf.js} +1 -1
  45. package/dist/browser/{jsx-runtime-BXQ7PX-y.js → jsx-runtime-BTmKWYLh.js} +2 -2
  46. package/dist/browser/{kiosk-record-Dz3E7PjP.js → kiosk-record-Dar5bcb3.js} +1 -1
  47. package/dist/browser/{lib-BfXVjQQV.js → lib-CH0lKOWr.js} +3 -3
  48. package/dist/browser/{loadImage-CUg38cMx.js → loadImage-Cyucj9ZO.js} +4 -4
  49. package/dist/browser/{logDeviceInfo-CgIqRuAY.js → logDeviceInfo-DrWNwkiz.js} +9 -9
  50. package/dist/browser/{main-BzXd5H0A.js → main-DDG4oAN0.js} +1 -1
  51. package/dist/browser/{mobx-BEFSh5R7.js → mobx-CCrzy0oK.js} +4 -4
  52. package/dist/browser/{optional-boolean-editor-DH0Yj5mx.js → optional-boolean-editor-B9ghixUw.js} +3 -3
  53. package/dist/browser/{optional-enum-editor-DdsG6-RD.js → optional-enum-editor-ymdwpZCG.js} +4 -4
  54. package/dist/browser/{optional-string-editor-DdFnggla.js → optional-string-editor-B7GvxUp0.js} +4 -4
  55. package/dist/browser/{particles.min-C6YCIw7u.js → particles.min-DR9RAdSY.js} +2 -2
  56. package/dist/browser/{react-Cq6vsgZS.js → react-Di1u_Olu.js} +2 -2
  57. package/dist/browser/{react-dom-CioKdINL.js → react-dom-DgZLuRw2.js} +3 -3
  58. package/dist/browser/{rolldown-runtime-CEmdmqfC.js → rolldown-runtime-Bq2YTOlP.js} +1 -1
  59. package/dist/browser/{select-BREAzzuP.js → select-1HLg5zVy.js} +10 -10
  60. package/dist/browser/{settings-C17jPyNg.js → settings-CiVCMVtK.js} +2 -2
  61. package/dist/browser/{settings-item-BYt2Yu8n.js → settings-item-BdvpCLdo.js} +6 -6
  62. package/dist/browser/{store-BzaR1IVp.js → store-CYrJjLi8.js} +7153 -7219
  63. package/dist/browser/{string-editor-XaVb33Ez.js → string-editor-OFy8aOQQ.js} +4 -4
  64. package/dist/browser/{text-field-D70wZ5kg.js → text-field-BXXmJXFF.js} +5 -5
  65. package/dist/browser/{theme-BLZVltm4.js → theme-DpPZfgKy.js} +8 -8
  66. package/dist/browser/{ui-DyGGq9Ts.js → ui-CJ0nQkSv.js} +8 -8
  67. package/dist/browser/useRenderTarget-roc5qoAU.js +57 -0
  68. package/dist/esm/components/Bookmarks.js +1 -1
  69. package/dist/esm/components/EntityList.js +1 -1
  70. package/dist/esm/components/Exhibitor.js +1 -1
  71. package/dist/esm/components/GalleryContainer.d.ts +6 -0
  72. package/dist/esm/components/GalleryContainer.js +1 -0
  73. package/dist/esm/components/Kiosk/integrateKiosk.d.ts +8 -2
  74. package/dist/esm/components/Kiosk/integrateKiosk.js +1 -1
  75. package/dist/esm/components/Kiosk/kiosk-mode.d.ts +8 -0
  76. package/dist/esm/components/Kiosk/kiosk-mode.js +1 -0
  77. package/dist/esm/components/Kiosk/kiosk-record.d.ts +5 -1
  78. package/dist/esm/components/Kiosk/kioskUrlParam.d.ts +7 -3
  79. package/dist/esm/components/Kiosk/kioskUrlParam.js +1 -1
  80. package/dist/esm/components/Map/Map.js +1 -1
  81. package/dist/esm/components/Maplibre/MaplibreAdapter.js +1 -1
  82. package/dist/esm/components/Maplibre/useCameraReactions.js +1 -1
  83. package/dist/esm/components/Maplibre/utils/geo-config.d.ts +32 -0
  84. package/dist/esm/components/Maplibre/utils/geo-config.js +1 -1
  85. package/dist/esm/components/OverlayContainer.d.ts +1 -2
  86. package/dist/esm/components/OverlayContainer.js +1 -1
  87. package/dist/esm/components/index.d.ts +1 -3
  88. package/dist/esm/components/index.js +1 -1
  89. package/dist/esm/floorplan.ready.js +1 -1
  90. package/dist/esm/services/multi-slug.d.ts +3 -3
  91. package/dist/esm/services/url-dispatch.d.ts +3 -5
  92. package/dist/esm/services/url-dispatch.js +1 -1
  93. package/dist/esm/store/BookmarksStore.d.ts +1 -4
  94. package/dist/esm/store/BookmarksStore.js +1 -2
  95. package/dist/esm/store/OverlayStore.d.ts +19 -0
  96. package/dist/esm/store/OverlayStore.js +1 -0
  97. package/dist/esm/store/RootStore.d.ts +2 -0
  98. package/dist/esm/store/RootStore.js +1 -1
  99. package/dist/esm/store/UIState.d.ts +8 -1
  100. package/dist/esm/store/UIState.js +1 -1
  101. package/dist/esm/store/index.d.ts +1 -0
  102. package/dist/esm/store/index.js +1 -1
  103. package/dist/esm/store/init/index.js +1 -1
  104. package/dist/esm/store/init/init-booths.d.ts +3 -3
  105. package/dist/esm/store/init/init-booths.js +1 -1
  106. package/dist/esm/store/init/init-ui.js +1 -1
  107. package/dist/esm/utils/customCommands.js +1 -1
  108. package/dist/esm/utils/scene-bounds.d.ts +7 -0
  109. package/dist/esm/utils/scene-bounds.js +1 -1
  110. package/package.json +10 -11
  111. package/dist/browser/useRenderTarget-CMhjhwNe.js +0 -48
  112. package/dist/esm/components/Gallery/Gallery.d.ts +0 -13
  113. package/dist/esm/components/Gallery/Gallery.js +0 -1
  114. package/dist/esm/components/Gallery/GalleryBadges/GalleryBadges.d.ts +0 -8
  115. package/dist/esm/components/Gallery/GalleryBadges/GalleryBadges.js +0 -1
  116. package/dist/esm/components/Gallery/GalleryControls/GalleryControls.d.ts +0 -9
  117. package/dist/esm/components/Gallery/GalleryControls/GalleryControls.js +0 -1
  118. package/dist/esm/components/Gallery/GalleryImg/GalleryImg.d.ts +0 -14
  119. package/dist/esm/components/Gallery/GalleryImg/GalleryImg.js +0 -1
  120. package/dist/esm/components/Gallery/GalleryItem/GalleryItem.d.ts +0 -13
  121. package/dist/esm/components/Gallery/GalleryItem/GalleryItem.js +0 -1
  122. package/dist/esm/components/Gallery/GalleryModal/GalleryModal.d.ts +0 -12
  123. package/dist/esm/components/Gallery/GalleryModal/GalleryModal.js +0 -1
  124. package/dist/esm/components/Gallery/GalleryPreLoader.d.ts +0 -7
  125. package/dist/esm/components/Gallery/GalleryPreLoader.js +0 -1
  126. package/dist/esm/components/Gallery/TransformImg/TransformImg.d.ts +0 -10
  127. package/dist/esm/components/Gallery/TransformImg/TransformImg.js +0 -1
  128. package/dist/esm/components/Overlay.d.ts +0 -23
  129. package/dist/esm/components/Overlay.js +0 -1
  130. package/dist/esm/components/Toast/ToastContainer.d.ts +0 -12
  131. package/dist/esm/components/Toast/ToastContainer.js +0 -1
  132. package/dist/esm/components/Toast/ToastContext.d.ts +0 -2
  133. package/dist/esm/components/Toast/ToastContext.js +0 -1
  134. package/dist/esm/components/Toast/ToastProvider.d.ts +0 -6
  135. package/dist/esm/components/Toast/ToastProvider.js +0 -1
  136. package/dist/esm/components/Toast/index.d.ts +0 -2
  137. package/dist/esm/components/Toast/index.js +0 -1
  138. package/dist/esm/hooks/useDragGesture.d.ts +0 -19
  139. package/dist/esm/hooks/useDragGesture.js +0 -1
  140. package/dist/esm/hooks/useWindowSize.d.ts +0 -5
  141. package/dist/esm/hooks/useWindowSize.js +0 -1
  142. package/dist/esm/store/init/init-bookmarks.d.ts +0 -9
  143. package/dist/esm/store/init/init-bookmarks.js +0 -1
  144. package/dist/esm/utils/useTimeout.d.ts +0 -2
  145. package/dist/esm/utils/useTimeout.js +0 -1
@@ -21,7 +21,7 @@ export { default as Event } from './Event';
21
21
  export { default as EventBadgeContainer } from './EventBadgeContainer';
22
22
  export { default as Exhibitor } from './Exhibitor';
23
23
  export { default as Filter } from './Filter';
24
- export { default as Gallery } from './Gallery/Gallery';
24
+ export { default as GalleryContainer } from './GalleryContainer';
25
25
  export { default as HeatmapLegend } from './HeatmapLegendContainer';
26
26
  export { default as HighlightTextContainer } from './HighlightTextContainer';
27
27
  export { default as Language } from './Language';
@@ -36,7 +36,6 @@ export { default as Menu } from './Menu';
36
36
  export { default as MobileToggleButtonContainer } from './MobileToggleButtonContainer';
37
37
  export { default as ModalContainer } from './ModalContainer';
38
38
  export { default as MultiSelectGroupsContainer } from './MultiSelectGroupsContainer';
39
- export { default as Overlay } from './Overlay';
40
39
  export { default as OverlayGrip } from './OverlayGripContainer';
41
40
  export { default as OverlayParticles } from './OverlayParticles';
42
41
  export { default as RebookingNotesContainer } from './RebookingNotesContainer';
@@ -60,7 +59,6 @@ export { ShortcutsFiltersButton } from './Shortcuts';
60
59
  export { default as ShowMoreButtonContainer } from './ShowMoreButtonContainer';
61
60
  export { default as SidebarActionsContainer } from './SidebarActionsContainer';
62
61
  export { default as SimpleRowContainer } from './SimpleRowContainer';
63
- export { useToast } from './Toast';
64
62
  export { default as TourPoints } from './TourPoints';
65
63
  export { default as Tours } from './Tours';
66
64
  export { default as ToursList } from './ToursList';
@@ -1 +1 @@
1
- export{default as AlertContainer}from"./AlertContainer";export{default as AutocompleteContainer}from"./AutocompleteContainer";export{BaseFilterModal}from"./BaseFilterModal";export{default as Bookmarks}from"./Bookmarks";export{default as Booth}from"./Booth/Booth";export{BoothOnHold}from"./Booth/BoothOnHold";export{BoothReserved}from"./Booth/BoothReserved";export{BoothWithoutExhibitor}from"./Booth/BoothWithoutExhibitor";export{default as Category}from"./Category";export{CategoryFilterModal}from"./CategoryFilterModal";export{default as CookieConsent}from"./CookieConsent";export{default as Demo}from"./Demo";export{default as DownloadListContainer}from"./DownloadListContainer";export{default as EntityItemContainer}from"./EntityItemContainer";export{default as EntityList}from"./EntityList";export{default as EntityListRow}from"./EntityListRow";export{default as ErrorBoundary}from"./ErrorBoundary";export{default as Event}from"./Event";export{default as EventBadgeContainer}from"./EventBadgeContainer";export{default as Exhibitor}from"./Exhibitor";export{default as Filter}from"./Filter";export{default as Gallery}from"./Gallery/Gallery";export{default as HeatmapLegend}from"./HeatmapLegendContainer";export{default as HighlightTextContainer}from"./HighlightTextContainer";export{default as Language}from"./Language";export{default as LanguageRowContainer}from"./LanguageRowContainer";export{default as Layout}from"./Layout";export{default as LevelBadge}from"./LevelBadgeContainer";export{default as LevelSelectorContainer}from"./LevelSelectorContainer";export{default as List}from"./List";export{default as LogoOverlay}from"./LogoOverlay";export{default as MapControlsContainer}from"./MapControlsContainer";export{default as Menu}from"./Menu";export{default as MobileToggleButtonContainer}from"./MobileToggleButtonContainer";export{default as ModalContainer}from"./ModalContainer";export{default as MultiSelectGroupsContainer}from"./MultiSelectGroupsContainer";export{default as Overlay}from"./Overlay";export{default as OverlayGrip}from"./OverlayGripContainer";export{default as OverlayParticles}from"./OverlayParticles";export{default as RebookingNotesContainer}from"./RebookingNotesContainer";export{default as RebookingRadioGroupContainer}from"./RebookingRadioGroupContainer";export{default as RoutePlanner}from"./RoutePlanner/RoutePlanner";export{default as RouteQR}from"./RouteQR";export{default as Schedule}from"./Schedule";export{default as ScrollableRow}from"./ScrollableRowContainer";export{default as Search}from"./Search";export{default as SearchBox}from"./SearchBox";export{SearchButtons}from"./SearchButtons";export{default as Sessions}from"./Sessions";export{default as SessionsFiltersModal}from"./SessionsFiltersModal";export{default as ShareContainer}from"./ShareContainer";export{ShortcutsToolbar}from"./Shortcuts";export{ShortcutButton}from"./Shortcuts";export{ShortcutsFiltersButton}from"./Shortcuts";export{default as ShowMoreButtonContainer}from"./ShowMoreButtonContainer";export{default as SidebarActionsContainer}from"./SidebarActionsContainer";export{default as SimpleRowContainer}from"./SimpleRowContainer";export{useToast}from"./Toast";export{default as TourPoints}from"./TourPoints";export{default as Tours}from"./Tours";export{default as ToursList}from"./ToursList";export{default as Visited}from"./Visited";export{default as Wayfinding}from"./Wayfinding";export{default as WayfindingFloorSelectorContainer}from"./WayfindingFloorSelectorContainer";export{default as WayfindingTemplate}from"./WayfindingTemplate";export{default as WayInformation}from"./WayInformation";export{default as Ws}from"./Ws";export{default as YahRow}from"./YahRow";export{Badge}from"@expofp/ui";export{Button}from"@expofp/ui";export{Checkbox}from"@expofp/ui";export{CheckboxButton}from"@expofp/ui";export{PermissionNotice}from"@expofp/ui";export{Radio}from"@expofp/ui";export{Spinner}from"@expofp/ui";export{ToggleButton}from"@expofp/ui";export{ToggleSwitch}from"@expofp/ui";export{TouchHand}from"@expofp/ui";
1
+ export{default as AlertContainer}from"./AlertContainer";export{default as AutocompleteContainer}from"./AutocompleteContainer";export{BaseFilterModal}from"./BaseFilterModal";export{default as Bookmarks}from"./Bookmarks";export{default as Booth}from"./Booth/Booth";export{BoothOnHold}from"./Booth/BoothOnHold";export{BoothReserved}from"./Booth/BoothReserved";export{BoothWithoutExhibitor}from"./Booth/BoothWithoutExhibitor";export{default as Category}from"./Category";export{CategoryFilterModal}from"./CategoryFilterModal";export{default as CookieConsent}from"./CookieConsent";export{default as Demo}from"./Demo";export{default as DownloadListContainer}from"./DownloadListContainer";export{default as EntityItemContainer}from"./EntityItemContainer";export{default as EntityList}from"./EntityList";export{default as EntityListRow}from"./EntityListRow";export{default as ErrorBoundary}from"./ErrorBoundary";export{default as Event}from"./Event";export{default as EventBadgeContainer}from"./EventBadgeContainer";export{default as Exhibitor}from"./Exhibitor";export{default as Filter}from"./Filter";export{default as GalleryContainer}from"./GalleryContainer";export{default as HeatmapLegend}from"./HeatmapLegendContainer";export{default as HighlightTextContainer}from"./HighlightTextContainer";export{default as Language}from"./Language";export{default as LanguageRowContainer}from"./LanguageRowContainer";export{default as Layout}from"./Layout";export{default as LevelBadge}from"./LevelBadgeContainer";export{default as LevelSelectorContainer}from"./LevelSelectorContainer";export{default as List}from"./List";export{default as LogoOverlay}from"./LogoOverlay";export{default as MapControlsContainer}from"./MapControlsContainer";export{default as Menu}from"./Menu";export{default as MobileToggleButtonContainer}from"./MobileToggleButtonContainer";export{default as ModalContainer}from"./ModalContainer";export{default as MultiSelectGroupsContainer}from"./MultiSelectGroupsContainer";export{default as OverlayGrip}from"./OverlayGripContainer";export{default as OverlayParticles}from"./OverlayParticles";export{default as RebookingNotesContainer}from"./RebookingNotesContainer";export{default as RebookingRadioGroupContainer}from"./RebookingRadioGroupContainer";export{default as RoutePlanner}from"./RoutePlanner/RoutePlanner";export{default as RouteQR}from"./RouteQR";export{default as Schedule}from"./Schedule";export{default as ScrollableRow}from"./ScrollableRowContainer";export{default as Search}from"./Search";export{default as SearchBox}from"./SearchBox";export{SearchButtons}from"./SearchButtons";export{default as Sessions}from"./Sessions";export{default as SessionsFiltersModal}from"./SessionsFiltersModal";export{default as ShareContainer}from"./ShareContainer";export{ShortcutsToolbar}from"./Shortcuts";export{ShortcutButton}from"./Shortcuts";export{ShortcutsFiltersButton}from"./Shortcuts";export{default as ShowMoreButtonContainer}from"./ShowMoreButtonContainer";export{default as SidebarActionsContainer}from"./SidebarActionsContainer";export{default as SimpleRowContainer}from"./SimpleRowContainer";export{default as TourPoints}from"./TourPoints";export{default as Tours}from"./Tours";export{default as ToursList}from"./ToursList";export{default as Visited}from"./Visited";export{default as Wayfinding}from"./Wayfinding";export{default as WayfindingFloorSelectorContainer}from"./WayfindingFloorSelectorContainer";export{default as WayfindingTemplate}from"./WayfindingTemplate";export{default as WayInformation}from"./WayInformation";export{default as Ws}from"./Ws";export{default as YahRow}from"./YahRow";export{Badge}from"@expofp/ui";export{Button}from"@expofp/ui";export{Checkbox}from"@expofp/ui";export{CheckboxButton}from"@expofp/ui";export{PermissionNotice}from"@expofp/ui";export{Radio}from"@expofp/ui";export{Spinner}from"@expofp/ui";export{ToggleButton}from"@expofp/ui";export{ToggleSwitch}from"@expofp/ui";export{TouchHand}from"@expofp/ui";
@@ -1 +1 @@
1
- import{Fragment as A,jsx as x,jsxs as T}from"react/jsx-runtime";import{Box as E}from"@expofp/geometry";import{CameraSchema as I}from"@expofp/schema";import{optimizeWaypointOrder as M}from"@expofp/wayfinding";import{ErrorBoundary as R}from"@sentry/react";import $ from"debug";import{reaction as V}from"mobx";import{createRoot as z}from"react-dom/client";import{install as j}from"resize-observer";import G from"./components/Layout";import{MAX_ROUTE_WAYPOINTS as d}from"./constants";import q from"./data";import{fpGeo as b}from"./data/fpGeo";import N from"./floorplan.loader";import{shouldLoadIntercom as O}from"./intercom";import{BoundsSchema as U,POISelectorsSchema as w,ZoomToOptionsSchema as P}from"./schemas/sdk.schemas";import{applyDeclarativeConfig as H,applyParameters as Y,applyPathway as _,initUrlRouting as D}from"./services/url-dispatch";import{destroyUrlSync as W}from"./services/url-sync";import r from"./store";import{destroyUiHandlers as X}from"./store/init/init-ui";import{findBooth as S,Route as v,separateExternalIds as B}from"./store/RouteStore";import{destroyGtag as K,GaEventActions as k,sendEventToGa as F,setConsentSettings as Q}from"./tools/gtag";import Z from"./tools/report-error";import{resetGlobalVariables as J}from"./tools/reset";import ee from"./tools/track-event";import{cameraToMapSettings as te,mapSettingsToCamera as re}from"./utils/camera-map-settings";import{getStorage as C}from"./utils/entity-storage";import{convertLocalToGps as oe,isValidPointCoords as y}from"./utils/gps";import{getLocales as ie,hasLocale as se,setLocale as ne}from"./utils/i18n";import{mapEntity as g}from"./utils/mapEntity";const p=$("efp:api");j();export default class ae extends N{init(){H(),this.ignoreQuery||D(this.offHistory),ee("load"),r.fp=this,Q(this.consent),F(k.Load,""),this.root=z(this.renderTarget),this.root.render(x(R,{children:x(G,{offHistory:this.offHistory,consent:this.consent})})),F(k.Rendered,""),V(()=>r.layerStore.layersLoaded,()=>{this.resolveReady(),r.initialized||this.onInit?.(this),r.initialized=!0});const e=O(q);e&&import("./intercom/bootIntercom").then(({bootIntercom:t})=>t(e)).catch(()=>{})}selectBooth(e){if(typeof e!="string"&&!Array.isArray(e)){a("selectBooth","Parameter must be a string or an array of strings.","EFP000000");return}const t=r.boothStore.booths.filter(o=>typeof e=="string"?o.name===e||o.externalId===e:e.includes(o.name)||e.includes(o.externalId));r.selectBooth(t)}selectExhibitor(e){if(typeof e!="string"&&!Array.isArray(e)){a("selectExhibitor","Parameter must be a string or an array of strings.","EFP000100");return}if(!e?.length){r.uiState.menu=!1,r.searchStore.resetSearchBox(),r.uiState.details=null;return}const t=r.exhibitorStore.exhibitors.filter(i=>typeof e=="string"?i.name===e||i.externalId===e:e.includes(i.name)||e.includes(i.externalId));if(!t?.length)return;if(typeof e=="string"){r.selectExhibitor(t[0]),r.moveToList([t[0]]);return}const o=t.flatMap(i=>i.booths.map(s=>s.layer)),{description:n}=o.reduce((i,s)=>(i.freq[s.description]=(i.freq[s.description]||0)+1,i.freq[s.description]>i.maxCount&&(i.maxCount=i.freq[s.description],i.mostFrequent=s),i),{freq:{},mostFrequent:o[0],maxCount:0}).mostFrequent;r.layerStore.updateVisibility(n,!0),r.uiState.menu=!1,r.searchStore.resetSearchBox(),r.uiState.details=null,r.uiState.list={type:"filter",items:t,query:{key:"exhibitors",value:t.map(i=>i.externalId).join(",")}},r.moveToList()}highlightExhibitors(e){Array.isArray(e)||a("highlightExhibitors","Parameter must be an array of strings.","EFP000200"),r.boothStore.highlightedByExternalIds=[],r.exhibitorStore.highlightedByExternalIds=[...e]}highlightBooths(e){Array.isArray(e)||a("highlightBooths","Parameter must be an array of strings.","EFP000300"),r.exhibitorStore.highlightedByExternalIds=[],r.boothStore.highlightedByExternalIds=[...e]}highlightEntities(e){Array.isArray(e)||a("highlightEntities","Parameter must be an array of strings.","EFP000400");const{boothExternalIds:t,exhibitorExternalIds:o}=B(e);r.boothStore.highlightedByExternalIds=[...t],r.exhibitorStore.highlightedByExternalIds=[...o]}selectRoute(e,t){if(Array.isArray(e)){let o=[...e];const n=o.shift(),i=o.pop();if(o.length>d)throw new Error(`The maximum number of waypoints is ${d}.`);if(!n||!i){a("selectRoute","Invalid route format: When providing an array, it must include at least two points: a start and a destination.","EFP000401");return}r.routeStore.selectRoute(new v(m(n),m(i),o.map(m)));return}e||a("selectRoute","At a minimum, the starting point must be passed.","EFP000402"),r.routeStore.selectRoute(new v(m(e),m(t)))}getOptimizedRoutes(e){if(!Array.isArray(e))return a("getOptimizedRoutes","Parameter must be an array.","EFP000500"),[];if(e.length>d)throw new Error(`The maximum number of waypoints is ${d}.`);const t=e.map(m).filter(n=>!!n);if(!t.length)throw new Error("No booths found for the provided waypoints.");const o=new Map;for(const n of t){const i=n.layer?.name??"",s=o.get(i);s?s.push(n):o.set(i,[n])}return Array.from(o.values()).map(n=>({waypoints:M(n.map(i=>[i.name,{x:i.rect.center.x,y:i.rect.center.y}]))}))}selectCurrentPosition(e,t,o){const n=y(e.x)&&y(e.y),i=y(e.lng)&&y(e.lat);!n&&!i&&a("selectCurrentPosition","A point must be passed. Either (x,y) or (lat,lng) are required.","EFP000600"),r.routeStore.selectCurrentPosition(e,t,o),this.onCurrentPositionChanged?.(e)}setBookmarks(e){(!Array.isArray(e)||!e.length)&&a("setBookmarks","Parameter must be an array.","EFP000700"),e.forEach(t=>{const o=r.exhibitorStore.exhibitors.find(n=>n.name===t.name||n.externalId===t.externalId);o&&(o.bookmarked=t.bookmarked)})}setEntitiesBookmarks(e){if(!Array.isArray(e)||!e.length){a("setEntitiesBookmarks","Parameter must be an array.","EFP000701");return}const t=["exhibitor","event","speaker","booth"],o=e.find(s=>!s.type||!t.includes(s.type));if(o){a("setEntitiesBookmarks",`Invalid entity type: ${o.type}. Must be one of: ${t.join(", ")}.`,"EFP000702");return}const n=C("bookmarked"),i={exhibitor:{existingIds:new Set(n.exhibitors||[]),finder:s=>r.exhibitorStore.findExhibitor(s),replacer:s=>r.exhibitorStore.replaceBookmarked(s)},event:{existingIds:new Set(n.events||[]),finder:s=>r.eventStore.findByNameOrSlug(s),replacer:s=>r.eventStore.replaceBookmarked(s)},speaker:{existingIds:new Set(n.speakers||[]),finder:s=>r.speakerStore.speakers.find(h=>h.name===s||h.externalId===s||h.slug===s),replacer:s=>r.speakerStore.replaceBookmarked(s)},booth:{existingIds:new Set(n.booths||[]),finder:s=>{const h=r.boothStore.findBooth(s);return h?.exhibitors.length===0?h:void 0},replacer:s=>r.boothStore.replaceBookmarked(s)}};e.forEach(s=>{const h=i[s.type],c=s.name||s.externalId||"",l=h.finder(c);l?s.bookmarked?h.existingIds.add(l.id):h.existingIds.delete(l.id):console.warn(`Entity not found: ${s.type} with query "${c}"`)}),Object.values(i).forEach(s=>{s.replacer(Array.from(s.existingIds))})}setEntitiesVisited(e){if(!Array.isArray(e)||!e.length){a("setEntitiesVisited","Parameter must be an array.","EFP000703");return}const t=["exhibitor","event"],o=e.find(s=>!s.type||!t.includes(s.type));if(o){a("setEntitiesVisited",`Invalid entity type: ${o.type}. Must be one of: ${t.join(", ")}.`,"EFP000704");return}const n=C("visited"),i={exhibitor:{existingIds:new Set(n.exhibitors||[]),finder:s=>r.exhibitorStore.findExhibitor(s),replacer:s=>r.exhibitorStore.replaceVisited(s)},event:{existingIds:new Set(n.events||[]),finder:s=>r.eventStore.findByNameOrSlug(s),replacer:s=>r.eventStore.replaceVisited(s)}};e.forEach(s=>{const h=i[s.type],c=s.name||s.externalId||"",l=h.finder(c);l?s.visited?h.existingIds.add(l.id):h.existingIds.delete(l.id):console.warn(`Entity not found: ${s.type} with query "${c}"`)}),Object.values(i).forEach(s=>{s.replacer(Array.from(s.existingIds))})}setMarkers(e){if(!e||!Array.isArray(e.icons)||!Array.isArray(e.markers)){a("setMarkers","Invalid input.","EFP000800");return}r.routeStore.setMarkers(e)}selectMarker(e,t=!0){return typeof e!="string"&&a("selectMarker","The identifier must be passed.","EFP000900"),r.routeStore.selectMarker(e,t)}drawCircles(e){Array.isArray(e)||a("drawCircles","Invalid input.","EFP000A00"),r.uiState.debugCircles=e}checkRoutes(){r.routeStore.checkRoutes()}updateLayerVisibility(e,t){typeof e!="string"&&a("updateLayerVisibility","The layer name (string) must be passed.","EFP000B00"),t||a("updateLayerVisibility","Passing a false value to visible will have no effect.","EFP000B01"),r.layerStore.updateVisibility(e,t)}getCenterCoordinates(){return r.fp.getCenterCoordinates()}exhibitorsList(){return r.exhibitorStore.exhibitors.map(e=>g(e))}boothsList(){return r.boothStore.booths.map(e=>g(e))}categoriesList(){return r.categoryStore.categories.map(e=>g(e))}selectCategory(e){if(e==null||typeof e!="string"){r.searchStore.selectSearch();return}const t=e?.toLowerCase(),o=r.categoryStore.categories.find(({name:n,slug:i})=>n?.toLowerCase()===t||i?.toLowerCase()===t);if(!o){a("selectCategory",`Category ${e} not found.`,"EFP000C01");return}r.selectCategory(o)}select(e){if(typeof e!="string"){a("select","Parameter must be a string.","EFP001700");return}const t=e,o=t?.toLowerCase(),n=r.boothStore.booths.find(l=>l.slug?.toLowerCase()===o||l.externalId?.toLowerCase()===o||l.externalId?.toLowerCase()?.replace(/\s+/g,"")===o);if(n){setTimeout(()=>r.selectBooth(n),250);return}const i=r.eventStore.eventItems.find(l=>l.slug?.toLowerCase()===o||l.externalId?.toLowerCase()===o);if(i){r.selectEventItem(i,!0);return}const s=r.exhibitorStore.exhibitors.find(l=>l.slug?.toLowerCase()===o||l.externalId?.toLowerCase()===o);if(s){setTimeout(()=>r.clickExhibitor(s),250);return}const h=r.categoryStore.categories.find(l=>l.slug===t);if(h){r.selectCategory(h);return}const c=r.speakerStore.findBySlug(t);if(c){r.selectSpeaker(c,!0);return}t.includes("heatmap=true")||r.searchStore.selectSearch(t)}showList(e){const t={bookmarks:()=>r.selectBookmarks(),visited:()=>r.selectVisited(),sessions:()=>r.selectSessions(),exhibitors:()=>r.selectExhibitors(),speakers:()=>r.selectSpeakers(),tours:()=>r.selectTours(),language:()=>r.selectLanguage()},o=t[e];if(!o){a("showList",`Unknown list "${e}". Must be one of: ${Object.keys(t).join(", ")}.`,"EFP001800");return}o()}selectTour(e){if(typeof e!="string"||!e){a("selectTour","A tour id must be passed.","EFP001900");return}const t=r.toursStore.getTourById(e);t?r.toursStore.launchTour(t,t.name,t.description):(console.warn(`Route with id "${e}" not found`),r.selectTours())}openPlanner(e={}){if(typeof e!="object"||e===null){a("openPlanner","An options object must be passed.","EFP001A00");return}const t=e.from?S(e.from):null;e.fromBookmarks?r.routePlannerStore.launchFromBookmarks(t??void 0):r.routePlannerStore.launchFromSlugs(e.items??[],t??void 0)}startBuildRoute(){r.uiState.startBuildRoute()}applyParameters(e){typeof e!="string"&&a("applyParameters","A query string must be passed.","EFP000D00"),Y(e)}getVisibility(){return r.uiState.visibility}setVisibility(e){(typeof e!="object"||!Object.keys(e).length)&&a("setVisibility","The parameter must be passed.","EFP000E00"),r.uiState.setVisibility(e)}findLocation(){r.routeStore.findLocation()}zoomIn(){r.uiState.zoomIn()}zoomOut(){r.uiState.zoomOut()}switchView(){r.maplibreStore.activateMaplibre()}setCamera(e){p("setCamera called with camera=%O",e);const t=I.safeParse(e);if(!t.success){a("setCamera",t.error.message,"EFP001B00");return}r.uiState.setMapSettings(te(t.data))}getCamera(){return re(r.uiState.mapSettings)}zoomTo(e,t){p("zoomTo called with selectors=%O options=%O",e,t);const o=w.safeParse(e);if(!o.success){a("zoomTo",o.error.message,"EFP001600");return}const n=P.safeParse(t);if(!n.success){a("zoomTo",n.error.message,"EFP001601");return}const i=this.getBounds(e);i&&this.fitBounds(i,t)}getBounds(e){p("getBounds called with selectors=%O",e);const t=w.safeParse(e);if(!t.success){a("getBounds",t.error.message,"EFP001400");return}const o=[];if(e.booths?.forEach(i=>{let s;i.externalId?s=r.boothStore.boothByExternalId.get(i.externalId):i.name&&(s=r.boothStore.boothByName.get(i.name.toLowerCase())),s?.rect&&o.push(s.rect)}),e.exhibitors?.forEach(i=>{let s;i.externalId?s=r.exhibitorStore.exhibitorByExternalId.get(i.externalId):i.name&&(s=r.exhibitorStore.exhibitorByName.get(i.name.toLowerCase())),s?.booths?.forEach(h=>{h.rect&&o.push(h.rect)})}),o.length===0)return;const n=E.fromUnion(...o);return{leftTop:{x:n.min.x,y:n.min.y},rightBottom:{x:n.max.x,y:n.max.y}}}fitBounds(e,t){if(p("fitBounds called with bounds=%O options=%O",e,t),!e){r.uiState.fitBounds();return}const o=U.safeParse(e);if(!o.success){a("fitBounds",o.error.message,"EFP001500");return}const n=P.safeParse(t);if(!n.success){a("fitBounds",n.error.message,"EFP001501");return}const i=E.fromMinMax({x:e.leftTop.x,y:e.leftTop.y},{x:e.rightBottom.x,y:e.rightBottom.y});r.uiState.moveToRect=t?.padding?i.expand(t.padding):i}getBoothRect(e){typeof e!="string"&&a("getBoothRect","A booth name must be passed.","EFP000F00");const t=S(e)?.rect;return t?u.fromBox(t):void 0}convertToGeo(e,t){if(!b?.properties?.config){a("convertToGeo","The coordinates cannot be converted because the GPS configuration is not defined.","EFP001000");return}if(!e||!t){a("convertToGeo","Both coordinates must be passed.","EFP001001");return}return oe(e,t,b.properties.config)}getGeoConfig(){const e=b?.properties?.config;return e?{bearing:e.bearing??0,p0:e.p0,p1:e.p1,p2:e.p2}:null}unstable_destroy(){let e=window.__efpElement.firstChild;J(),window.removeEventListener("__efpStyleLoad",this.efpStyleLoadHandler),window.removeEventListener("error",Z),r.maplibreStore.dispose(),W(),X(),K(),this.root.unmount(),e.remove()}search(e){return typeof e!="string"&&a("search","A search string must be passed.","EFP001100"),r.fuzzySearchEngineStore.loadEngine().then(()=>(r.searchStore.selectSearch(e),r.uiState.fuzzySearchItems.map(t=>({item:g(t.item),score:t.score}))))}getFloors(){return r.layerStore.floors.map(e=>({name:e.name,shortName:e.shortName,description:e.description,active:e.active,disabled:e.disabled,index:e.index}))}activateFloor(e){if(!e?.name&&e?.index==null){a("activateFloor","Invalid floorId. It must contain either a name or an index.","EFP001200");return}const t=this.getFloors();if(e.name){const o=t.find(n=>n.name===e.name||n.shortName===e.name);if(!o){a("activateFloor",`Floor with name "${e.name}" not found.`,"EFP001201");return}if(o.active)return;this.updateLayerVisibility(o.name,!0);return}if(e.index!==null){const o=t.find(i=>i.index===e.index),n=o?.name;if(!n){a("activateFloor",`Floor at index ${e.index} does not exist.`,"EFP001203");return}if(o.active)return;this.updateLayerVisibility(n,!0);return}}showPathway(e,t){const{boothExternalIds:o,exhibitorExternalIds:n}=t?.length?B(t):{boothExternalIds:[],exhibitorExternalIds:[]};_({pathwayId:e,boothIds:o,exhibitorIds:n})}showPathwayOnly(e,t){this.activateFloor({name:t}),r.layerStore.showPathWay(e),r.uiState.setPathwayOnlyMode(!0);const o=r.layerStore.findLayer(e),n=r.layerStore.findLayer(t),i=o?.rect||o?.viewbox?o:n;if(i?.rect||i?.viewbox){const s=i.viewbox??i.rect;r.uiState.moveToRect=s.clone()}}hidePathways(){this.highlightBooths([]),r.layerStore.hidePathways(),r.uiState.setPathwayOnlyMode(!1)}showSearch(){r.selectSearch("")}changeLanguage(e){const t=e?.toLowerCase?.();if(!se(t)){a("changeLanguage",`Language "${e}" was not found. Available languages: ${ie().map(o=>o.id).join(",")}`,"EFP001300");return}ne(t)}isGpsTrackingEnabled(){return r.routeStore.gpsEnabled}setGpsTrackingEnabled(e){r.routeStore.setGpsTrackingEnabled(e)}deselectCurrentPosition(){r.routeStore.selectCurrentPosition(null,!1)}deselectRoute(){r.routeStore.selectRoute(null),r.routeStore.setOnlyAccessible(!1)}reset(){this.selectBooth(""),this.selectExhibitor(""),this.selectCategory(),this.deselectCurrentPosition(),this.deselectRoute(),this.highlightEntities([]),r.uiState.kioskData&&r.resetCameraFn?r.resetCameraFn?.():this.fitBounds()}selectAccessibleRoute(e){r.routeStore.setOnlyAccessible(!0),this.selectRoute(e)}}function m(f){return typeof f=="string"?S(f):r.routeStore.getNearestBooth(f)}let L=0;function a(f,e,t){const o=`Error calling "${f}" SDK method.`,n=`${e.endsWith(".")?e:e+"."} More information at`;let i="https://js-sdk.expofp.com/api/packages";if(t&&(i+=`#error-${t}`),console.error(`${o} ${n} ${i}`),r.fp.disableRuntimeAlerts)return;r.uiState.setGlobalErrorMessage({title:o,body:T(A,{children:[n," ",x("a",{href:i,target:"_blank",rel:"noreferrer",children:i})]})}),clearTimeout(L);const s=8e3;L=window.setTimeout(()=>{const h=async()=>{r.uiState.globalErrorMessages.length>0&&(r.uiState.popGlobalErrorMessage(),await new Promise(c=>setTimeout(c,s/2)),h())};h()},s)}class u{get h(){return Math.abs(this.y2-this.y1)}get w(){return Math.abs(this.x2-this.x1)}get cx(){return(this.x1+this.x2)/2}get cy(){return(this.y1+this.y2)/2}constructor(e,t,o,n){if(e>o){const i=e;e=o,o=i}if(t>n){const i=t;t=n,n=i}this.x1=e,this.y1=t,this.x2=o,this.y2=n}static fromBox(e){return new u(e.min.x,e.min.y,e.max.x,e.max.y)}static fromCxcywh(e,t,o,n){return new u(e-o/2,t-n/2,e+o/2,t+n/2)}contains(e){return e.x1>=this.x1&&e.x2<=this.x2&&e.y1>=this.y1&&e.y2<=this.y2}intersects(e){const t=Math.max(this.x1,e.x1),o=Math.min(this.x2,e.x2),n=Math.max(this.y1,e.y1),i=Math.min(this.y2,e.y2);return o>=t&&i>=n}getIntersection(e){const t=Math.max(this.x1,e.x1),o=Math.min(this.x2,e.x2),n=Math.max(this.y1,e.y1),i=Math.min(this.y2,e.y2);return o>=t&&i>=n?new u(t,n,o,i):new u(0,0,0,0)}getRotated90(){return u.fromCxcywh(this.cx,this.cy,this.h,this.w)}normalize(e,t){return new u(this.x1/e,this.y1/t,this.x2/e,this.y2/t)}withPadding(e,t=e){return this.w<e*2||this.h<t*2?this:u.fromCxcywh(this.cx,this.cy,this.w-e*2,this.h-t*2)}scale(e){return new u(this.x1*e,this.y1*e,this.x2*e,this.y2*e)}getArea(){return this.w*this.h}clone(){return new u(this.x1,this.y1,this.x2,this.y2)}translate(e,t){return this.x1+=e,this.x2+=e,this.y1+=t,this.y2+=t,this}equals(e){return e.x1===this.x1&&e.x2===this.x2&&e.y1===this.y1&&e.y2===this.y2}toString(){return this.x1+","+this.y1+","+this.w+","+this.h}containsPoint(e,t){return e>=this.x1&&e<=this.x2&&t>=this.y1&&t<=this.y2}}
1
+ import{Fragment as A,jsx as x,jsxs as T}from"react/jsx-runtime";import{Box as E}from"@expofp/geometry";import{CameraSchema as I}from"@expofp/schema";import{optimizeWaypointOrder as M}from"@expofp/wayfinding";import{ErrorBoundary as R}from"@sentry/react";import $ from"debug";import{reaction as V}from"mobx";import{createRoot as z}from"react-dom/client";import{install as j}from"resize-observer";import G from"./components/Layout";import{MAX_ROUTE_WAYPOINTS as d}from"./constants";import N from"./data";import{fpGeo as b}from"./data/fpGeo";import q from"./floorplan.loader";import{shouldLoadIntercom as O}from"./intercom";import{BoundsSchema as U,POISelectorsSchema as w,ZoomToOptionsSchema as P}from"./schemas/sdk.schemas";import{applyDeclarativeConfig as H,applyParameters as Y,applyPathway as _,initUrlRouting as D}from"./services/url-dispatch";import{destroyUrlSync as W}from"./services/url-sync";import r from"./store";import{destroyUiHandlers as X}from"./store/init/init-ui";import{findBooth as S,Route as v,separateExternalIds as B}from"./store/RouteStore";import{destroyGtag as K,GaEventActions as k,sendEventToGa as F,setConsentSettings as Q}from"./tools/gtag";import Z from"./tools/report-error";import{resetGlobalVariables as J}from"./tools/reset";import ee from"./tools/track-event";import{cameraToMapSettings as te,mapSettingsToCamera as re}from"./utils/camera-map-settings";import{getStorage as L}from"./utils/entity-storage";import{getMostFrequent as oe}from"./utils/getMostFrequent";import{convertLocalToGps as ie,isValidPointCoords as y}from"./utils/gps";import{getLocales as se,hasLocale as ne,setLocale as ae}from"./utils/i18n";import{mapEntity as g}from"./utils/mapEntity";const p=$("efp:api");j();export default class he extends q{init(){H(),this.ignoreQuery||D(this.offHistory),ee("load"),r.fp=this,Q(this.consent),F(k.Load,""),this.root=z(this.renderTarget),this.root.render(x(R,{children:x(G,{offHistory:this.offHistory,consent:this.consent})})),F(k.Rendered,""),V(()=>r.layerStore.layersLoaded,()=>{this.resolveReady(),r.initialized||this.onInit?.(this),r.initialized=!0});const e=O(N);e&&import("./intercom/bootIntercom").then(({bootIntercom:t})=>t(e)).catch(()=>{})}selectBooth(e){if(typeof e!="string"&&!Array.isArray(e)){a("selectBooth","Parameter must be a string or an array of strings.","EFP000000");return}const t=r.boothStore.booths.filter(o=>typeof e=="string"?o.name===e||o.externalId===e:e.includes(o.name)||e.includes(o.externalId));r.selectBooth(t)}selectExhibitor(e){if(typeof e!="string"&&!Array.isArray(e)){a("selectExhibitor","Parameter must be a string or an array of strings.","EFP000100");return}if(!e?.length){r.uiState.menu=!1,r.searchStore.resetSearchBox(),r.uiState.details=null;return}const t=r.exhibitorStore.exhibitors.filter(s=>typeof e=="string"?s.name===e||s.externalId===e:e.includes(s.name)||e.includes(s.externalId));if(!t?.length)return;if(typeof e=="string"){r.selectExhibitor(t[0]),r.moveToList([t[0]]);return}const o=t.flatMap(s=>s.booths.map(i=>i.layer)),n=oe(o.map(s=>s.description));n&&r.layerStore.updateVisibility(n,!0),r.uiState.menu=!1,r.searchStore.resetSearchBox(),r.uiState.details=null,r.uiState.list={type:"filter",items:t,query:{key:"exhibitors",value:t.map(s=>s.name).join(",")}},r.moveToList()}highlightExhibitors(e){Array.isArray(e)||a("highlightExhibitors","Parameter must be an array of strings.","EFP000200"),r.boothStore.highlightedByExternalIds=[],r.exhibitorStore.highlightedByExternalIds=[...e]}highlightBooths(e){Array.isArray(e)||a("highlightBooths","Parameter must be an array of strings.","EFP000300"),r.exhibitorStore.highlightedByExternalIds=[],r.boothStore.highlightedByExternalIds=[...e]}highlightEntities(e){Array.isArray(e)||a("highlightEntities","Parameter must be an array of strings.","EFP000400");const{boothExternalIds:t,exhibitorExternalIds:o}=B(e);r.boothStore.highlightedByExternalIds=[...t],r.exhibitorStore.highlightedByExternalIds=[...o]}selectRoute(e,t){if(Array.isArray(e)){let o=[...e];const n=o.shift(),s=o.pop();if(o.length>d)throw new Error(`The maximum number of waypoints is ${d}.`);if(!n||!s){a("selectRoute","Invalid route format: When providing an array, it must include at least two points: a start and a destination.","EFP000401");return}r.routeStore.selectRoute(new v(m(n),m(s),o.map(m)));return}e||a("selectRoute","At a minimum, the starting point must be passed.","EFP000402"),r.routeStore.selectRoute(new v(m(e),m(t)))}getOptimizedRoutes(e){if(!Array.isArray(e))return a("getOptimizedRoutes","Parameter must be an array.","EFP000500"),[];if(e.length>d)throw new Error(`The maximum number of waypoints is ${d}.`);const t=e.map(m).filter(n=>!!n);if(!t.length)throw new Error("No booths found for the provided waypoints.");const o=new Map;for(const n of t){const s=n.layer?.name??"",i=o.get(s);i?i.push(n):o.set(s,[n])}return Array.from(o.values()).map(n=>({waypoints:M(n.map(s=>[s.name,{x:s.rect.center.x,y:s.rect.center.y}]))}))}selectCurrentPosition(e,t,o){const n=y(e.x)&&y(e.y),s=y(e.lng)&&y(e.lat);!n&&!s&&a("selectCurrentPosition","A point must be passed. Either (x,y) or (lat,lng) are required.","EFP000600"),r.routeStore.selectCurrentPosition(e,t,o),this.onCurrentPositionChanged?.(e)}setBookmarks(e){(!Array.isArray(e)||!e.length)&&a("setBookmarks","Parameter must be an array.","EFP000700"),e.forEach(t=>{const o=r.exhibitorStore.exhibitors.find(n=>n.name===t.name||n.externalId===t.externalId);o&&(o.bookmarked=t.bookmarked)})}setEntitiesBookmarks(e){if(!Array.isArray(e)||!e.length){a("setEntitiesBookmarks","Parameter must be an array.","EFP000701");return}const t=["exhibitor","event","speaker","booth"],o=e.find(i=>!i.type||!t.includes(i.type));if(o){a("setEntitiesBookmarks",`Invalid entity type: ${o.type}. Must be one of: ${t.join(", ")}.`,"EFP000702");return}const n=L("bookmarked"),s={exhibitor:{existingIds:new Set(n.exhibitors||[]),finder:i=>r.exhibitorStore.findExhibitor(i),replacer:i=>r.exhibitorStore.replaceBookmarked(i)},event:{existingIds:new Set(n.events||[]),finder:i=>r.eventStore.findByNameOrSlug(i),replacer:i=>r.eventStore.replaceBookmarked(i)},speaker:{existingIds:new Set(n.speakers||[]),finder:i=>r.speakerStore.speakers.find(h=>h.name===i||h.externalId===i||h.slug===i),replacer:i=>r.speakerStore.replaceBookmarked(i)},booth:{existingIds:new Set(n.booths||[]),finder:i=>{const h=r.boothStore.findBooth(i);return h?.exhibitors.length===0?h:void 0},replacer:i=>r.boothStore.replaceBookmarked(i)}};e.forEach(i=>{const h=s[i.type],u=i.name||i.externalId||"",c=h.finder(u);c?i.bookmarked?h.existingIds.add(c.id):h.existingIds.delete(c.id):console.warn(`Entity not found: ${i.type} with query "${u}"`)}),Object.values(s).forEach(i=>{i.replacer(Array.from(i.existingIds))})}setEntitiesVisited(e){if(!Array.isArray(e)||!e.length){a("setEntitiesVisited","Parameter must be an array.","EFP000703");return}const t=["exhibitor","event"],o=e.find(i=>!i.type||!t.includes(i.type));if(o){a("setEntitiesVisited",`Invalid entity type: ${o.type}. Must be one of: ${t.join(", ")}.`,"EFP000704");return}const n=L("visited"),s={exhibitor:{existingIds:new Set(n.exhibitors||[]),finder:i=>r.exhibitorStore.findExhibitor(i),replacer:i=>r.exhibitorStore.replaceVisited(i)},event:{existingIds:new Set(n.events||[]),finder:i=>r.eventStore.findByNameOrSlug(i),replacer:i=>r.eventStore.replaceVisited(i)}};e.forEach(i=>{const h=s[i.type],u=i.name||i.externalId||"",c=h.finder(u);c?i.visited?h.existingIds.add(c.id):h.existingIds.delete(c.id):console.warn(`Entity not found: ${i.type} with query "${u}"`)}),Object.values(s).forEach(i=>{i.replacer(Array.from(i.existingIds))})}setMarkers(e){if(!e||!Array.isArray(e.icons)||!Array.isArray(e.markers)){a("setMarkers","Invalid input.","EFP000800");return}r.routeStore.setMarkers(e)}selectMarker(e,t=!0){return typeof e!="string"&&a("selectMarker","The identifier must be passed.","EFP000900"),r.routeStore.selectMarker(e,t)}drawCircles(e){Array.isArray(e)||a("drawCircles","Invalid input.","EFP000A00"),r.uiState.debugCircles=e}checkRoutes(){r.routeStore.checkRoutes()}updateLayerVisibility(e,t){typeof e!="string"&&a("updateLayerVisibility","The layer name (string) must be passed.","EFP000B00"),t||a("updateLayerVisibility","Passing a false value to visible will have no effect.","EFP000B01"),r.layerStore.updateVisibility(e,t)}getCenterCoordinates(){return r.fp.getCenterCoordinates()}exhibitorsList(){return r.exhibitorStore.exhibitors.map(e=>g(e))}boothsList(){return r.boothStore.booths.map(e=>g(e))}categoriesList(){return r.categoryStore.categories.map(e=>g(e))}selectCategory(e){if(e==null||typeof e!="string"){r.searchStore.selectSearch();return}const t=e?.toLowerCase(),o=r.categoryStore.categories.find(({name:n,slug:s})=>n?.toLowerCase()===t||s?.toLowerCase()===t);if(!o){a("selectCategory",`Category ${e} not found.`,"EFP000C01");return}r.selectCategory(o)}select(e){if(typeof e!="string"){a("select","Parameter must be a string.","EFP001700");return}const t=e,o=t?.toLowerCase(),n=r.boothStore.booths.find(c=>c.slug?.toLowerCase()===o||c.externalId?.toLowerCase()===o||c.externalId?.toLowerCase()?.replace(/\s+/g,"")===o);if(n){setTimeout(()=>r.selectBooth(n),250);return}const s=r.eventStore.eventItems.find(c=>c.slug?.toLowerCase()===o||c.externalId?.toLowerCase()===o);if(s){r.selectEventItem(s,!0);return}const i=r.exhibitorStore.exhibitors.find(c=>c.slug?.toLowerCase()===o||c.externalId?.toLowerCase()===o);if(i){setTimeout(()=>r.clickExhibitor(i),250);return}const h=r.categoryStore.categories.find(c=>c.slug===t);if(h){r.selectCategory(h);return}const u=r.speakerStore.findBySlug(t);if(u){r.selectSpeaker(u,!0);return}t.includes("heatmap=true")||r.searchStore.selectSearch(t)}showList(e){const t={bookmarks:()=>r.selectBookmarks(),visited:()=>r.selectVisited(),sessions:()=>r.selectSessions(),exhibitors:()=>r.selectExhibitors(),speakers:()=>r.selectSpeakers(),tours:()=>r.selectTours(),language:()=>r.selectLanguage()},o=t[e];if(!o){a("showList",`Unknown list "${e}". Must be one of: ${Object.keys(t).join(", ")}.`,"EFP001800");return}o()}selectTour(e){if(typeof e!="string"||!e){a("selectTour","A tour id must be passed.","EFP001900");return}const t=r.toursStore.getTourById(e);t?r.toursStore.launchTour(t,t.name,t.description):(console.warn(`Route with id "${e}" not found`),r.selectTours())}openPlanner(e={}){if(typeof e!="object"||e===null){a("openPlanner","An options object must be passed.","EFP001A00");return}const t=e.from?S(e.from):null;e.fromBookmarks?r.routePlannerStore.launchFromBookmarks(t??void 0):r.routePlannerStore.launchFromSlugs(e.items??[],t??void 0)}startBuildRoute(){r.uiState.startBuildRoute()}applyParameters(e){typeof e!="string"&&a("applyParameters","A query string must be passed.","EFP000D00"),Y(e)}getVisibility(){return r.uiState.visibility}setVisibility(e){(typeof e!="object"||!Object.keys(e).length)&&a("setVisibility","The parameter must be passed.","EFP000E00"),r.uiState.setVisibility(e)}findLocation(){r.routeStore.findLocation()}zoomIn(){r.uiState.zoomIn()}zoomOut(){r.uiState.zoomOut()}switchView(){r.maplibreStore.activateMaplibre()}setCamera(e){p("setCamera called with camera=%O",e);const t=I.safeParse(e);if(!t.success){a("setCamera",t.error.message,"EFP001B00");return}r.uiState.setMapSettings(te(t.data))}getCamera(){return re(r.uiState.mapSettings)}zoomTo(e,t){p("zoomTo called with selectors=%O options=%O",e,t);const o=w.safeParse(e);if(!o.success){a("zoomTo",o.error.message,"EFP001600");return}const n=P.safeParse(t);if(!n.success){a("zoomTo",n.error.message,"EFP001601");return}const s=this.getBounds(e);s&&this.fitBounds(s,t)}getBounds(e){p("getBounds called with selectors=%O",e);const t=w.safeParse(e);if(!t.success){a("getBounds",t.error.message,"EFP001400");return}const o=[];if(e.booths?.forEach(s=>{let i;s.externalId?i=r.boothStore.boothByExternalId.get(s.externalId):s.name&&(i=r.boothStore.boothByName.get(s.name.toLowerCase())),i?.rect&&o.push(i.rect)}),e.exhibitors?.forEach(s=>{let i;s.externalId?i=r.exhibitorStore.exhibitorByExternalId.get(s.externalId):s.name&&(i=r.exhibitorStore.exhibitorByName.get(s.name.toLowerCase())),i?.booths?.forEach(h=>{h.rect&&o.push(h.rect)})}),o.length===0)return;const n=E.fromUnion(...o);return{leftTop:{x:n.min.x,y:n.min.y},rightBottom:{x:n.max.x,y:n.max.y}}}fitBounds(e,t){if(p("fitBounds called with bounds=%O options=%O",e,t),!e){r.uiState.fitBounds();return}const o=U.safeParse(e);if(!o.success){a("fitBounds",o.error.message,"EFP001500");return}const n=P.safeParse(t);if(!n.success){a("fitBounds",n.error.message,"EFP001501");return}const s=E.fromMinMax({x:e.leftTop.x,y:e.leftTop.y},{x:e.rightBottom.x,y:e.rightBottom.y});r.uiState.moveToRect=t?.padding?s.expand(t.padding):s}getBoothRect(e){typeof e!="string"&&a("getBoothRect","A booth name must be passed.","EFP000F00");const t=S(e)?.rect;return t?l.fromBox(t):void 0}convertToGeo(e,t){if(!b?.properties?.config){a("convertToGeo","The coordinates cannot be converted because the GPS configuration is not defined.","EFP001000");return}if(!e||!t){a("convertToGeo","Both coordinates must be passed.","EFP001001");return}return ie(e,t,b.properties.config)}getGeoConfig(){const e=b?.properties?.config;return e?{bearing:e.bearing??0,p0:e.p0,p1:e.p1,p2:e.p2}:null}unstable_destroy(){let e=window.__efpElement.firstChild;J(),window.removeEventListener("__efpStyleLoad",this.efpStyleLoadHandler),window.removeEventListener("error",Z),r.maplibreStore.dispose(),W(),X(),K(),this.root.unmount(),e.remove()}search(e){return typeof e!="string"&&a("search","A search string must be passed.","EFP001100"),r.fuzzySearchEngineStore.loadEngine().then(()=>(r.searchStore.selectSearch(e),r.uiState.fuzzySearchItems.map(t=>({item:g(t.item),score:t.score}))))}getFloors(){return r.layerStore.floors.map(e=>({name:e.name,shortName:e.shortName,description:e.description,active:e.active,disabled:e.disabled,index:e.index}))}activateFloor(e){if(!e?.name&&e?.index==null){a("activateFloor","Invalid floorId. It must contain either a name or an index.","EFP001200");return}const t=this.getFloors();if(e.name){const o=t.find(n=>n.name===e.name||n.shortName===e.name);if(!o){a("activateFloor",`Floor with name "${e.name}" not found.`,"EFP001201");return}if(o.active)return;this.updateLayerVisibility(o.name,!0);return}if(e.index!==null){const o=t.find(s=>s.index===e.index),n=o?.name;if(!n){a("activateFloor",`Floor at index ${e.index} does not exist.`,"EFP001203");return}if(o.active)return;this.updateLayerVisibility(n,!0);return}}showPathway(e,t){const{boothExternalIds:o,exhibitorExternalIds:n}=t?.length?B(t):{boothExternalIds:[],exhibitorExternalIds:[]};_({pathwayId:e,boothIds:o,exhibitorIds:n})}showPathwayOnly(e,t){this.activateFloor({name:t}),r.layerStore.showPathWay(e),r.uiState.setPathwayOnlyMode(!0);const o=r.layerStore.findLayer(e),n=r.layerStore.findLayer(t),s=o?.rect||o?.viewbox?o:n;if(s?.rect||s?.viewbox){const i=s.viewbox??s.rect;r.uiState.moveToRect=i.clone()}}hidePathways(){this.highlightBooths([]),r.layerStore.hidePathways(),r.uiState.setPathwayOnlyMode(!1)}showSearch(){r.selectSearch("")}changeLanguage(e){const t=e?.toLowerCase?.();if(!ne(t)){a("changeLanguage",`Language "${e}" was not found. Available languages: ${se().map(o=>o.id).join(",")}`,"EFP001300");return}ae(t)}isGpsTrackingEnabled(){return r.routeStore.gpsEnabled}setGpsTrackingEnabled(e){r.routeStore.setGpsTrackingEnabled(e)}deselectCurrentPosition(){r.routeStore.selectCurrentPosition(null,!1)}deselectRoute(){r.routeStore.selectRoute(null),r.routeStore.setOnlyAccessible(!1)}reset(){this.selectBooth(""),this.selectExhibitor(""),this.selectCategory(),this.deselectCurrentPosition(),this.deselectRoute(),this.highlightEntities([]),r.uiState.kioskData&&r.resetCameraFn?r.resetCameraFn?.():this.fitBounds()}selectAccessibleRoute(e){r.routeStore.setOnlyAccessible(!0),this.selectRoute(e)}}function m(f){return typeof f=="string"?S(f):r.routeStore.getNearestBooth(f)}let C=0;function a(f,e,t){const o=`Error calling "${f}" SDK method.`,n=`${e.endsWith(".")?e:e+"."} More information at`;let s="https://js-sdk.expofp.com/api/packages";if(t&&(s+=`#error-${t}`),console.error(`${o} ${n} ${s}`),r.fp.disableRuntimeAlerts)return;r.uiState.setGlobalErrorMessage({title:o,body:T(A,{children:[n," ",x("a",{href:s,target:"_blank",rel:"noreferrer",children:s})]})}),clearTimeout(C);const i=8e3;C=window.setTimeout(()=>{const h=async()=>{r.uiState.globalErrorMessages.length>0&&(r.uiState.popGlobalErrorMessage(),await new Promise(u=>setTimeout(u,i/2)),h())};h()},i)}class l{get h(){return Math.abs(this.y2-this.y1)}get w(){return Math.abs(this.x2-this.x1)}get cx(){return(this.x1+this.x2)/2}get cy(){return(this.y1+this.y2)/2}constructor(e,t,o,n){if(e>o){const s=e;e=o,o=s}if(t>n){const s=t;t=n,n=s}this.x1=e,this.y1=t,this.x2=o,this.y2=n}static fromBox(e){return new l(e.min.x,e.min.y,e.max.x,e.max.y)}static fromCxcywh(e,t,o,n){return new l(e-o/2,t-n/2,e+o/2,t+n/2)}contains(e){return e.x1>=this.x1&&e.x2<=this.x2&&e.y1>=this.y1&&e.y2<=this.y2}intersects(e){const t=Math.max(this.x1,e.x1),o=Math.min(this.x2,e.x2),n=Math.max(this.y1,e.y1),s=Math.min(this.y2,e.y2);return o>=t&&s>=n}getIntersection(e){const t=Math.max(this.x1,e.x1),o=Math.min(this.x2,e.x2),n=Math.max(this.y1,e.y1),s=Math.min(this.y2,e.y2);return o>=t&&s>=n?new l(t,n,o,s):new l(0,0,0,0)}getRotated90(){return l.fromCxcywh(this.cx,this.cy,this.h,this.w)}normalize(e,t){return new l(this.x1/e,this.y1/t,this.x2/e,this.y2/t)}withPadding(e,t=e){return this.w<e*2||this.h<t*2?this:l.fromCxcywh(this.cx,this.cy,this.w-e*2,this.h-t*2)}scale(e){return new l(this.x1*e,this.y1*e,this.x2*e,this.y2*e)}getArea(){return this.w*this.h}clone(){return new l(this.x1,this.y1,this.x2,this.y2)}translate(e,t){return this.x1+=e,this.x2+=e,this.y1+=t,this.y2+=t,this}equals(e){return e.x1===this.x1&&e.x2===this.x2&&e.y1===this.y1&&e.y2===this.y2}toString(){return this.x1+","+this.y1+","+this.w+","+this.h}containsPoint(e,t){return e>=this.x1&&e<=this.x2&&t>=this.y1&&t<=this.y2}}
@@ -8,9 +8,9 @@
8
8
  * is rewritten to the exhibitor's display name, keeping that text readable.
9
9
  *
10
10
  * Only slug-shaped parts count and only they are rewritten: a `key=value`
11
- * part (config key, intent shortcut, one-shot — `=` travels as `%3D` in the
12
- * encoded form) is never a slug. A lone slug riding with such params
13
- * (`?slug&allowConsent=false`) is NOT a multi-slug link — left alone, it
11
+ * part (config key, intent shortcut, one-shot, retired key — `=` travels as
12
+ * `%3D` in the encoded form) is never a slug. A lone slug riding with such
13
+ * params (`?slug&consent=denied`) is NOT a multi-slug link — left alone, it
14
14
  * flows through the parser's config-stripping to a clean single-slug select.
15
15
  *
16
16
  * Returns the rewritten search (delimiter normalized to `&`), or `null` when
@@ -10,15 +10,13 @@ export declare function initUrlRouting(offHistory: boolean): void;
10
10
  /** The public `FloorPlan.applyParameters` — replay a legacy query at runtime. */
11
11
  export declare function applyParameters(queryRaw?: string): void;
12
12
  /**
13
- * The pathway deep link: activate the busiest floor, highlight the listed
14
- * entities, draw the pathway, zoom to the booths — plus the multi-point-tour
15
- * list header when a tour rides along. Also the body of `FloorPlan.showPathway`
16
- * (which passes no tour).
13
+ * The body of `FloorPlan.showPathway`. Lives here from the days the retired
14
+ * `?pathway=` deep link shared it; the multi-point-tour header that link
15
+ * could also raise is `ToursStore.launchTour`'s job now.
17
16
  */
18
17
  export declare function applyPathway(options: {
19
18
  pathwayId: string;
20
19
  boothIds: string[];
21
20
  exhibitorIds: string[];
22
- tourId?: string;
23
21
  }): void;
24
22
  //# sourceMappingURL=url-dispatch.d.ts.map
@@ -1 +1 @@
1
- import{applyIntents as G,getConfig as y,parseFromUrlTolerant as Y,parseIntentsFromUrl as K,parseLegacyQuery as x,serializeSelection as W}from"@expofp/config";import{Box as Q}from"@expofp/geometry";import{UrlConfigSchema as z}from"@expofp/schema";import{safeDecode as d}from"@expofp/utils";import{autorun as v,runInAction as w,when as p}from"mobx";import{recoverKioskFromUrlPrams as H}from"../components/Kiosk/recoverKioskFromUrlPrams";import{LEGACY_PREVIEW_MODE_STORAGE_KEY as j,LEGACY_VIEWER_MODE_STORAGE_KEY as N,PREVIEW_MODE_STORAGE_KEY as M,VIEWER_MODE_STORAGE_KEY as B}from"../constants";import g from"../data";import o,{uiState as r}from"../store";import{BoothBase as P}from"../store/BoothStore";import{CurrentPosition as $,extractRoute as q}from"../store/RouteStore";import{setConsentSettings as J}from"../tools/gtag";import L from"../tools/logger";import{areLayersEnabled as X}from"../utils/areLayersEnabled";import{cameraToMapSettings as b}from"../utils/camera-map-settings";import{handleCustomCommand as Z}from"../utils/customCommands";import{getMostFrequent as ee}from"../utils/getMostFrequent";import{heatmapEnabled as te}from"../utils/heatmap-enabled";import{hasLocale as oe,setLocale as re}from"../utils/i18n";import{isLocalStorageAvailable as R}from"../utils/localStorage";import{stripTrackingParams as ie}from"../utils/trackingParams";import{rewriteMultiSlugQuery as se}from"./multi-slug";import{currentSearch as m,disableUrlWrites as ae,initUrlSync as ne,pushQuery as le,replaceQuery as f}from"./url-sync";let S=!1;export function applyDeclarativeConfig(){O(y()),p(()=>o.layerStore.layersLoaded,()=>{const e=y().camera;Object.keys(e).length&&E(b(e));const t=y().visibility;Object.keys(t).length&&r.setVisibility(t)})}export function initUrlRouting(e){ne({offHistory:e,onNavigate:I}),F(),k(),p(()=>o.layerStore.layersLoaded,()=>{o.urlFilterManager&&!o.urlFilterManager.isInitialized&&o.urlFilterManager.initialize(),I(),v(D),v(V),r.viewerMode&&(r.menu=!0)})}export function applyParameters(e=""){f("?"+d(e.toString())),o.layerStore.layersLoaded?T(e):(k(),p(()=>o.layerStore.layersLoaded,()=>T(e)))}function T(e){const t="?"+d(e),s=me(t);O(s),s.consent&&J(s.consent),s.camera&&Object.keys(s.camera).length&&E(b(s.camera)),s.visibility&&Object.keys(s.visibility).length&&r.setVisibility(s.visibility),F(),I();const i=[...s.intents??[],...K(t).intents];i.length&&G(o.fp,i)}function k(){const e=m(),t=e.length>1?d(e.substring(1)):"";return Z(t)}function I(){S=!0;try{const e=new URLSearchParams(d(window.location.search));H(e);const{primary:t,oneShots:s}=x(m()),i=s.find(l=>l.type==="camera");if(i){const l=i.roll;E({...b(i.camera),roll:l})}const u=t.type==="select"&&(!t.slug||/^t=[^&]*$/.test(t.slug))&&(r.heatmap||r.heatmapYah);!k()&&!u&&ue(t)}finally{S=!1}V(),D()}function ue(e){const t=o.fp;switch(e.type){case"kiosk":e.enabled===!0?r.kiosk=!0:e.enabled===!1&&(r.kiosk=!1,r.resetUIScale());return;case"list":t.showList(e.list);return;case"tour":t.selectTour(e.tourId);return;case"planner":t.openPlanner({items:e.items,from:e.from,fromBookmarks:e.fromBookmarks});return;case"route":{o.routeStore.setOnlyAccessible(e.accessible),o.routeStore.selectRoute(q(e.from??"",e.to??"",e.waypoints)),o.uiState.setIsMultiPointRoute(e.waypoints.length>0),e.title&&o.uiState.setRouteTitle(e.title);return}case"language":oe(e.langId)&&re(e.langId);return;case"printPdf":o.uiState.printingPdf=!0;return;case"visibility":o.uiState.setVisibility(e.hidden.reduce((s,i)=>({...s,[i]:!1}),{}));return;case"buildRoute":t.startBuildRoute();return;case"pathway":applyPathway(e);return;case"selectExhibitors":setTimeout(()=>t.selectExhibitor(e.values),250);return;case"ownedByFilters":L.log("Skipping filter parameters in dispatchFromUrl (owned by URLFilterManager)");return;case"ownedByConfig":return;case"select":t.select(e.slug);return}}export function applyPathway(e){const{pathwayId:t,boothIds:s,exhibitorIds:i,tourId:u}=e;if(u){const a=o.toursStore.getTourById(u);a&&w(()=>{o.uiState.setTourTitle(a.name),o.uiState.setTourDescription(a.description??""),o.uiState.setIsMultiPointTour(!0),o.uiState.setMultiPointTourList(a.id)})}const l=o.boothStore.booths.filter(a=>s.includes(a.externalId)),c=o.exhibitorStore.exhibitors.filter(a=>i.includes(a.externalId)).flatMap(a=>a.booths),n=[...l,...c];if(X()){const a=ee(n.map(h=>h.layer.name));a&&o.fp.activateFloor({name:a})}(s.length>0||i.length>0)&&o.fp.highlightEntities([...s,...i]),o.layerStore.showPathWay(t),n.length>0&&w(()=>{o.uiState.moveToRect=Q.fromUnion(...n.map(a=>a.rect).filter(Boolean)),o.uiState.rollReset=!0})}function F(){const e=m(),{oneShots:t}=x(e);for(const i of t)ce(i);e.startsWith("?preview=")&&f("?"),m().includes("copy_exh")&&f("?");const s=ie(m());s!==null&&f("?"+s),r.previewExhibitor&&f("?"+r.previewExhibitor.slug),fe()}function ce(e){switch(e.type){case"heatmap":U(e.yah);return;case"blueDot":{const t=new $(e.x,e.y,o.layerStore.findLayer(e.layer??"")?.name,void 0,e.lat,e.lng);p(()=>o.layerStore.layersLoaded,()=>o.routeStore.selectCurrentPosition(t,!0,1));return}case"viewerMode":R&&(e.enabled?localStorage.setItem(B,"true"):(localStorage.removeItem(B),localStorage.removeItem(N)));return;case"previewMode":R&&(e.enabled?localStorage.setItem(M,"true"):(localStorage.removeItem(M),localStorage.removeItem(j)));return;case"uiScale":e.scale!==null?o.uiState.setUIScale(e.scale,!0):L.warn(`Invalid ui-scale parameter: ${e.raw}. Must be a number between 0.8 and 1.4.`);return;case"resetUiScale":o.uiState.resetUIScale();return;case"legacyBookmarks":{const t=e.appendExhibitorId===null?void 0:o.exhibitorStore.exhibitorById.get(e.appendExhibitorId);f(t?"?"+t.slug:"?bookmarks");return}}}function U(e){ae(),e?(r.heatmapYah=!0,r.monochrome=!0,r.hideLogoInBooth=!0,r.hideHeaderLogo=!0,r.disableBookmarked=!0):r.heatmap=!0}function fe(){const e=se(m(),t=>o.exhibitorStore.exhibitors.find(i=>i.slug===t||i.externalId===t)?.name);e!==null&&f(e)}function O(e){e.noOverlay!==void 0&&(r.hideOverlay=e.noOverlay),e.monochrome&&(r.monochrome=!0),e.hideHeaderLogo&&(r.hideHeaderLogo=!0),e.hideLogoInBooth&&(r.hideLogoInBooth=!0),e.disableFeatured&&o.exhibitorStore.exhibitors.forEach(t=>t.featured=!1),e.disableBookmarked&&(r.disableBookmarked=!0),e.disableGps&&o.routeStore.setGpsTrackingEnabled(!1),e.heatmap&&te(e.heatmap)&&U(e.heatmap.variant==="yah")}function me(e){return Y(z,e).value}let C=null,_=null,A=null;function V(){const{selection:e,exhibitor:t,booth:s,eventItem:i}=de(),u=o.urlFilterManager.filterSearch();if(S)return;const l=W(e)||u;m()!==l&&(t!==C||s!==_||i!==A?le(l):f(l),C=t,_=s,A=i)}function de(){const e=r.selectedExhibitor,t=r.selectedBooth,s=r.selectedEventItem,i=r.selectedRoute,u=r.selectedSpeaker,l=r.setKioskModeEnabled,c=r.list;let n;if(c.type==="route-planner"&&!e&&!t&&!s){const a=o.routePlannerStore;n={type:"planner",fromBookmarks:a.source==="bookmarks",items:a.items.map(h=>h.entity.slug).filter(Boolean),from:a.startPoint?.slug||void 0}}else if(i&&!r.isMultiPointRoute)n={type:"route",to:i.to instanceof P?i.to.slug:void 0,from:i.from instanceof P?i.from.slug:void 0,accessible:o.routeStore.onlyAccessible,waypoints:i.waypoints?.map(a=>a.slug)};else if(e)n={type:"slug",slug:e.slug};else if(t)n={type:"slug",slug:t.slug};else if(s)n={type:"slug",slug:s.slug};else if(u)n={type:"slug",slug:u.slug};else if(l)n={type:"none"};else switch(c.type){case"bookmarks":case"visited":case"sessions":case"exhibitors":case"speakers":case"tours":case"language":n={type:"list",list:c.type};break;case"category":n={type:"slug",slug:r.selectedCategory?.slug??""};break;case"search":n={type:"slug",slug:c.text||""};break;case"filter":n={type:"filter",key:c.query.key,value:c.query.value};break;case"multi-point-tour":n={type:"tour",tourId:c.tourId};break;default:throw new Error("Unkown list.type")}return{selection:n,exhibitor:e,booth:t,eventItem:s}}function D(){const e=r.selectedExhibitor,t=r.selectedEventItem,s=r.selectedSpeaker;let i="";e?i=e.name:t?i=t.name:s?i=s.name:r.list.type==="search"&&r.list.text?i="`"+(r.list.text||"")+"`":r.list.type==="multi-point-tour"&&r.tourTitle&&(i=r.tourTitle),i.length&&(i+=" \u2013 "),i+=g.title,g.subtitle&&(i+=" \u2013 "+g.subtitle),i+=" \u2013 Expo Floor Plan by ExpoFP",document.title=i}function E(e){try{if(r.setMapSettings(e),e.z){const t=o.layerStore.layers.find(s=>s.name===e.z);t&&o.layerStore.updateVisibility(t,!0)}}catch(t){console.error("Failed to process map settings.",t)}}
1
+ import{applyIntents as G,getConfig as h,parseDeprecatedUrlParams as K,parseFromUrlTolerant as V,parseIntentsFromUrl as Y,parseLegacyQuery as E,serializeSelection as Q}from"@expofp/config";import{Box as W}from"@expofp/geometry";import{UrlConfigSchema as z}from"@expofp/schema";import{safeDecode as p}from"@expofp/utils";import{autorun as v,runInAction as H,when as d}from"mobx";import{applyKioskMode as j}from"../components/Kiosk/kiosk-mode";import{recoverKioskFromUrlPrams as N}from"../components/Kiosk/recoverKioskFromUrlPrams";import{LEGACY_PREVIEW_MODE_STORAGE_KEY as $,LEGACY_VIEWER_MODE_STORAGE_KEY as q,PREVIEW_MODE_STORAGE_KEY as I,VIEWER_MODE_STORAGE_KEY as x}from"../constants";import y from"../data";import i,{uiState as o}from"../store";import{BoothBase as w}from"../store/BoothStore";import{CurrentPosition as J,extractRoute as X}from"../store/RouteStore";import{setConsentSettings as Z}from"../tools/gtag";import M from"../tools/logger";import{areLayersEnabled as ee}from"../utils/areLayersEnabled";import{cameraToMapSettings as P}from"../utils/camera-map-settings";import{handleCustomCommand as te}from"../utils/customCommands";import{getMostFrequent as oe}from"../utils/getMostFrequent";import{heatmapEnabled as re}from"../utils/heatmap-enabled";import{isLocalStorageAvailable as B}from"../utils/localStorage";import{stripTrackingParams as ie}from"../utils/trackingParams";import{rewriteMultiSlugQuery as ne}from"./multi-slug";import{currentSearch as m,disableUrlWrites as se,initUrlSync as ae,pushQuery as le,replaceQuery as f}from"./url-sync";let g=!1;export function applyDeclarativeConfig(){k(h()),d(()=>i.layerStore.layersLoaded,()=>{const e=h().camera;Object.keys(e).length&&A(P(e));const t=h().visibility;Object.keys(t).length&&o.setVisibility(t)})}export function initUrlRouting(e){ae({offHistory:e,onNavigate:S}),L(),b(),d(()=>i.layerStore.layersLoaded,()=>{i.urlFilterManager&&!i.urlFilterManager.isInitialized&&i.urlFilterManager.initialize(),S(),v(_),v(T),o.viewerMode&&(o.menu=!0)})}export function applyParameters(e=""){f("?"+p(e.toString())),i.layerStore.layersLoaded?F(e):(b(),d(()=>i.layerStore.layersLoaded,()=>F(e)))}function F(e){const t="?"+p(e),r=fe(t),n=[...r.intents??[],...Y(t).intents],{intents:c=[],...l}=K(t,{visibility:r.visibility,consent:r.consent,intents:n});k(r),k(l);const a=r.consent??l.consent;a&&Z(a),r.camera&&Object.keys(r.camera).length&&A(P(r.camera)),r.visibility&&Object.keys(r.visibility).length&&o.setVisibility(r.visibility),L(),S();const s=[...n,...c];s.length&&G(i.fp,s)}function b(){const e=m(),t=e.length>1?p(e.substring(1)):"";return te(t)}function S(){g=!0;try{const e=new URLSearchParams(p(window.location.search));N(e);const{primary:t}=E(m()),r=t.type==="select"&&(!t.slug||/^t=[^&]*$/.test(t.slug))&&(o.heatmap||o.heatmapYah);!b()&&!r&&ce(t)}finally{g=!1}T(),_()}function ce(e){const t=i.fp;switch(e.type){case"kiosk":e.enabled!==null&&j(o,e.enabled);return;case"list":t.showList(e.list);return;case"tour":t.selectTour(e.tourId);return;case"planner":t.openPlanner({items:e.items,from:e.from,fromBookmarks:e.fromBookmarks});return;case"route":{i.routeStore.setOnlyAccessible(e.accessible),i.routeStore.selectRoute(X(e.from??"",e.to??"",e.waypoints)),i.uiState.setIsMultiPointRoute(e.waypoints.length>0),e.title&&i.uiState.setRouteTitle(e.title);return}case"selectExhibitors":setTimeout(()=>t.selectExhibitor(e.values),250);return;case"ownedByFilters":M.log("Skipping filter parameters in dispatchFromUrl (owned by URLFilterManager)");return;case"ownedByConfig":return;case"select":t.select(e.slug);return}}export function applyPathway(e){const{pathwayId:t,boothIds:r,exhibitorIds:n}=e,c=i.boothStore.booths.filter(s=>r.includes(s.externalId)),l=i.exhibitorStore.exhibitors.filter(s=>n.includes(s.externalId)).flatMap(s=>s.booths),a=[...c,...l];if(ee()){const s=oe(a.map(u=>u.layer.name));s&&i.fp.activateFloor({name:s})}(r.length>0||n.length>0)&&i.fp.highlightEntities([...r,...n]),i.layerStore.showPathWay(t),a.length>0&&H(()=>{i.uiState.moveToRect=W.fromUnion(...a.map(s=>s.rect).filter(Boolean)),i.uiState.rollReset=!0})}function L(){const{oneShots:e}=E(m());for(const r of e)ue(r);const t=ie(m());t!==null&&f("?"+t),o.previewExhibitor&&f("?"+o.previewExhibitor.slug),me()}function ue(e){switch(e.type){case"heatmap":R(e.yah);return;case"blueDot":{const t=new J(e.x,e.y,i.layerStore.findLayer(e.layer??"")?.name,void 0,e.lat,e.lng);d(()=>i.layerStore.layersLoaded,()=>i.routeStore.selectCurrentPosition(t,!0,1));return}case"viewerMode":B&&(e.enabled?localStorage.setItem(x,"true"):(localStorage.removeItem(x),localStorage.removeItem(q)));return;case"previewMode":B&&(e.enabled?localStorage.setItem(I,"true"):(localStorage.removeItem(I),localStorage.removeItem($)));return;case"uiScale":e.scale!==null?i.uiState.setUIScale(e.scale,!0):M.warn(`Invalid ui-scale parameter: ${e.raw}. Must be a number between 0.8 and 1.4.`);return;case"resetUiScale":i.uiState.resetUIScale();return}}function R(e){se(),e?(o.heatmapYah=!0,o.monochrome=!0,o.hideLogoInBooth=!0,o.hideHeaderLogo=!0,o.disableBookmarked=!0):o.heatmap=!0}function me(){const e=ne(m(),t=>i.exhibitorStore.exhibitors.find(n=>n.slug===t||n.externalId===t)?.name);e!==null&&f(e)}function k(e){e.noOverlay!==void 0&&(o.hideOverlay=e.noOverlay),e.monochrome&&(o.monochrome=!0),e.hideHeaderLogo&&(o.hideHeaderLogo=!0),e.hideLogoInBooth&&(o.hideLogoInBooth=!0),e.disableFeatured&&i.exhibitorStore.exhibitors.forEach(t=>t.featured=!1),e.disableBookmarked&&(o.disableBookmarked=!0),e.disableGps&&i.routeStore.setGpsTrackingEnabled(!1),e.heatmap&&re(e.heatmap)&&R(e.heatmap.variant==="yah")}function fe(e){return V(z,e).value}let U=null,O=null,C=null;function T(){const{selection:e,exhibitor:t,booth:r,eventItem:n}=pe(),c=i.urlFilterManager.filterSearch();if(g)return;const l=Q(e)||c;m()!==l&&(t!==U||r!==O||n!==C?le(l):f(l),U=t,O=r,C=n)}function pe(){const e=o.selectedExhibitor,t=o.selectedBooth,r=o.selectedEventItem,n=o.selectedRoute,c=o.selectedSpeaker,l=o.setKioskModeEnabled,a=o.list;let s;if(a.type==="route-planner"&&!e&&!t&&!r){const u=i.routePlannerStore;s={type:"planner",fromBookmarks:u.source==="bookmarks",items:u.items.map(D=>D.entity.slug).filter(Boolean),from:u.startPoint?.slug||void 0}}else if(n&&!o.isMultiPointRoute)s={type:"route",to:n.to instanceof w?n.to.slug:void 0,from:n.from instanceof w?n.from.slug:void 0,accessible:i.routeStore.onlyAccessible,waypoints:n.waypoints?.map(u=>u.slug)};else if(e)s={type:"slug",slug:e.slug};else if(t)s={type:"slug",slug:t.slug};else if(r)s={type:"slug",slug:r.slug};else if(c)s={type:"slug",slug:c.slug};else if(l)s={type:"none"};else switch(a.type){case"bookmarks":case"visited":case"sessions":case"exhibitors":case"speakers":case"tours":case"language":s={type:"list",list:a.type};break;case"category":s={type:"slug",slug:o.selectedCategory?.slug??""};break;case"search":s={type:"slug",slug:a.text||""};break;case"filter":s={type:"filter",key:a.query.key,value:a.query.value};break;case"multi-point-tour":s={type:"tour",tourId:a.tourId};break;default:throw new Error("Unkown list.type")}return{selection:s,exhibitor:e,booth:t,eventItem:r}}function _(){const e=o.selectedExhibitor,t=o.selectedEventItem,r=o.selectedSpeaker;let n="";e?n=e.name:t?n=t.name:r?n=r.name:o.list.type==="search"&&o.list.text?n="`"+(o.list.text||"")+"`":o.list.type==="multi-point-tour"&&o.tourTitle&&(n=o.tourTitle),n.length&&(n+=" \u2013 "),n+=y.title,y.subtitle&&(n+=" \u2013 "+y.subtitle),n+=" \u2013 Expo Floor Plan by ExpoFP",document.title=n}function A(e){try{if(o.setMapSettings(e),e.z){const t=i.layerStore.layers.find(r=>r.name===e.z);t&&i.layerStore.updateVisibility(t,!0)}}catch(t){console.error("Failed to process map settings.",t)}}
@@ -1,12 +1,9 @@
1
- import RootStore from './RootStore';
1
+ import type RootStore from './RootStore';
2
2
  export default class BookmarksStore {
3
3
  private readonly rootStore;
4
- private readonly _share;
5
4
  constructor(rootStore: RootStore);
6
5
  get bookmarkedBooths(): import("./BoothStore").Booth[];
7
6
  get total(): number;
8
- get hasBookmarks(): boolean;
9
7
  get hasRoutableBookmarks(): boolean;
10
- share(): void;
11
8
  }
12
9
  //# sourceMappingURL=BookmarksStore.d.ts.map
@@ -1,2 +1 @@
1
- import{__decorate as e}from"tslib";import l from"copy-to-clipboard";import{computed as a}from"mobx";import{t as s}from"../utils/i18n";export default class r{constructor(t){this.rootStore=t,this._share=this.share.bind(this)}get bookmarkedBooths(){return this.rootStore.boothStore.booths.filter(t=>t.exhibitors.length===0&&t.bookmarkedDirectly)}get total(){return this.rootStore.exhibitorStore.bookmarked.length+this.rootStore.eventStore.bookmarked.length+this.rootStore.speakerStore.bookmarked.length+this.bookmarkedBooths.length}get hasBookmarks(){return this.total>0}get hasRoutableBookmarks(){return this.rootStore.exhibitorStore.bookmarked.length>0||this.bookmarkedBooths.length>0}share(){const{exhibitorStore:t,eventStore:h,speakerStore:k}=this.rootStore,i=window.location,m=[...t.bookmarked.map(o=>o.id),...h.bookmarked.map(o=>o.id),...k.bookmarked.map(o=>o.id),...this.bookmarkedBooths.map(o=>o.id)];l(`${i.protocol}//${i.host}/?b=`+m.join("|")),alert(s("Link copied to clipboard")+`.
2
- `+s("Open it on another device to import bookmarks")+".")}}e([a],r.prototype,"bookmarkedBooths",null),e([a],r.prototype,"total",null),e([a],r.prototype,"hasBookmarks",null),e([a],r.prototype,"hasRoutableBookmarks",null);
1
+ import{__decorate as e}from"tslib";import{computed as r}from"mobx";export default class t{constructor(o){this.rootStore=o}get bookmarkedBooths(){return this.rootStore.boothStore.booths.filter(o=>o.exhibitors.length===0&&o.bookmarkedDirectly)}get total(){return this.rootStore.exhibitorStore.bookmarked.length+this.rootStore.eventStore.bookmarked.length+this.rootStore.speakerStore.bookmarked.length+this.bookmarkedBooths.length}get hasRoutableBookmarks(){return this.rootStore.exhibitorStore.bookmarked.length>0||this.bookmarkedBooths.length>0}}e([r],t.prototype,"bookmarkedBooths",null),e([r],t.prototype,"total",null),e([r],t.prototype,"hasRoutableBookmarks",null);
@@ -0,0 +1,19 @@
1
+ import type RootStore from './RootStore';
2
+ /**
3
+ * View-model store for the overlay bottom-sheet: derives the sizing inputs the
4
+ * pure `<Overlay>` component needs (how tall the medium/full sheet should be)
5
+ * from the current UI state. Keeps this presentation math out of the Container
6
+ * and out of the already-large UIState.
7
+ */
8
+ export default class OverlayStore {
9
+ private readonly rootStore;
10
+ constructor(rootStore: RootStore);
11
+ private get ui();
12
+ private get isRouteActive();
13
+ private get isSearchListOpen();
14
+ /** Divisor for the medium sheet height (viewportHeight / multiplier) — larger = shorter sheet. */
15
+ get mediumSizeMultiplier(): 3 | 7 | 9;
16
+ /** Pixels subtracted from viewport height for the full sheet (search box, banners, safe padding). */
17
+ get fullSizeOffset(): number;
18
+ }
19
+ //# sourceMappingURL=OverlayStore.d.ts.map
@@ -0,0 +1 @@
1
+ import{__decorate as s}from"tslib";import{computed as u}from"mobx";import l from"../data";import{Route as h}from"./RouteStore";export default class e{constructor(t){this.rootStore=t}get ui(){return this.rootStore.uiState}get isRouteActive(){const t=this.ui.selectedRoute;return!!(t?.from&&t?.to)}get isSearchListOpen(){const{list:t}=this.ui;return t.type==="search"||l.isRebooking&&t.type==="exhibitors"}get mediumSizeMultiplier(){return this.isRouteActive?7:this.ui.details?3:this.isSearchListOpen?9:3}get fullSizeOffset(){const t=this.ui,i=t.wsShown?54:0,r=t.bannerType==="free"&&!t.freeBannerDismissed?40:0,o=20;if(t.details&&!(t.details instanceof h))return i+r+o;const n=54,c=t.shouldShowSearchButtons?54:0;return i+r+n+o+c}}s([u({keepAlive:!0})],e.prototype,"mediumSizeMultiplier",null),s([u({keepAlive:!0})],e.prototype,"fullSizeOffset",null);
@@ -12,6 +12,7 @@ import HeatmapStore from './HeatmapStore';
12
12
  import IntercomStore from './IntercomStore';
13
13
  import LayerStore from './LayerStore';
14
14
  import MaplibreStore from './MaplibreStore';
15
+ import OverlayStore from './OverlayStore';
15
16
  import PoiMarkerStore from './PoiMarkerStore';
16
17
  import PoiTypeStore from './PoiTypeStore';
17
18
  import RoutePlannerStore from './RoutePlannerStore';
@@ -31,6 +32,7 @@ export default class RootStore {
31
32
  readonly exhibitorStore: ExhibitorStore;
32
33
  readonly boothStore: BoothStore;
33
34
  readonly uiState: UIState;
35
+ readonly overlayStore: OverlayStore;
34
36
  readonly routeStore: RouteStore;
35
37
  readonly routePlannerStore: RoutePlannerStore;
36
38
  readonly toursStore: ToursStore;
@@ -1 +1 @@
1
- import{__decorate as i}from"tslib";import{action as s,computed as m,observable as u,runInAction as S}from"mobx";import{LANGUAGE_TYPE as d}from"../constants";import{RendererService as y}from"../renderer";import{URLFilterManager as w}from"../services/URLFilterManager";import{GaEventActions as b}from"../tools/gtag";import g from"../tools/logger";import{isWebGlSupported as v}from"../utils";import{resetLocale as k}from"../utils/i18n";import h from"../utils/is-mobile";import n from"../utils/is-webview";import{sanitizeSearch as x}from"../utils/sanitizeText";import B from"./BookmarksStore";import _,{BoothBase as c,RegularBooth as L}from"./BoothStore";import C from"./CategoryFilterStore";import E,{Category as T}from"./CategoryStore";import I,{EventItem as F}from"./EventStore";import M,{Exhibitor as p}from"./ExhibitorStore";import O from"./FuzzySearchEngineStore";import z from"./HeatmapStore";import R from"./IntercomStore";import A,{LayersMode as f}from"./LayerStore";import P from"./MaplibreStore";import V from"./PoiMarkerStore";import G from"./PoiTypeStore";import{SearchShortcutProvider as q}from"./providers/SearchShortcutProvider";import{SessionsShortcutProvider as N}from"./providers/SessionsShortcutProvider";import{SpeakerShortcutProvider as U}from"./providers/SpeakerShortcutProvider";import W from"./RoutePlannerStore";import j from"./RouteStore";import H from"./SearchButtonsStore";import K from"./SearchStore";import Y from"./SessionsFilterStore";import{ShortcutRegistry as $}from"./ShortcutRegistry";import D from"./SpeakerFilterStore";import J from"./SpeakerStore";import{SpeakerItem as Q}from"./SpeakerStore";import X from"./ToursStore";import Z from"./UIState";export default class e{setResetCameraFn(t){this.resetCameraFn=t}constructor(){this.rendererService=new y,this.initialized=!1,this.categoryStore=new E(this),this.exhibitorStore=new M(this),this.boothStore=new _(this),this.routeStore=new j(this),this.routePlannerStore=new W(this),this.toursStore=new X(this),this.uiState=new Z(this),this.maplibreStore=new P(this),this.layerStore=new A,this.intercomStore=new R,this.eventStore=new I(this),this.heatmapStore=new z,this.poiTypeStore=new G(this),this.poiMarkerStore=new V(this),this.fuzzySearchEngineStore=new O(["name","title","fullName","booths.name"]),this.categoryFilterStore=new C(this),this.sessionsFilterStore=new Y(this),this.speakerStore=new J(this),this.speakerFilterStore=new D(this),this.searchStore=new K(this),this.searchButtonsStore=new H(this),this.bookmarksStore=new B(this),this.urlFilterManager=new w(this),this.shortcutRegistry=new $,this.registerShortcutProviders()}selectExhibitor(t,r=!0){this.uiState.hoveredExhibitor=null,this.uiState.details=t;var o=t.booths.filter(a=>a.visible),l=t.booths.filter(a=>!a.visible);!o.length&&l.length&&this.layerStore.updateVisibility(l[0].layer,!0),r&&setTimeout(()=>this.moveToList(t.booths.filter(a=>a.visible)),n||h?500:50)}selectBooth(t,r=!0){let o=Array.isArray(t)?t:[t];this.uiState.details=o[0],o.length===1&&o[0].schedule?.length&&(this.uiState.desiredOverlaySize="medium"),o.length===1&&o[0].layer&&!o[0].visible&&this.layerStore.mode===f.Radio&&this.layerStore.updateVisibility(o[0].layer,!0),r&&setTimeout(()=>this.moveToList(o),n||h?500:50)}reset(){const t=window.__searchi;t&&t.querySelector&&t.querySelector("input[type=search]")&&t.querySelector("input[type=search]").blur&&t.querySelector("input[type=search]").blur(),window.setTimeout(()=>{this.uiState.setKioskModeEnabled||k().then(()=>{S(()=>{this.selectSearch(""),this.uiState.details=null,this.resetCameraFn?.(),this.uiState.menu=!1,this.searchStore.resetSearchBox(),this.searchButtonsStore.clearAllFilters()}),setTimeout(()=>{S(()=>{this.uiState.inIdle=!0})},100)})},1e3)}selectNone(){window.__resett&&window.__resett(),this.uiState.details=this.uiState.selectedCategory}selectBookmarks(){this.uiState.details=null,this.uiState.list={type:"bookmarks"}}selectVisited(){this.uiState.details=null,this.uiState.list={type:"visited"}}selectLanguage(){this.uiState.details=null,this.uiState.list={type:d}}selectCategory(t){window.__resett&&window.__resett(),this.uiState.details=t,this.uiState.list={type:"category",category:t},this.uiState.desiredOverlaySize="full",t.exhibitors.find(o=>o.booths.find(l=>l.visible))||this.layerStore.updateVisibility(t.exhibitors[0]?.booths[0]?.layer,!0),setTimeout(()=>{this.uiState.moveToBooths=t.exhibitors.filter(o=>o.booths.find(l=>l.visible)).flatMap(o=>o.booths)},200)}selectEventItem(t,r=!0){if(this.uiState.hoveredExhibitor=null,this.uiState.details=t,this.uiState.desiredOverlaySize="medium",t.boothId){const o=this.boothStore.booths.find(l=>l.id===t.boothId);o&&o.layer&&!o.visible&&this.layerStore.mode===f.Radio&&this.layerStore.updateVisibility(o.layer,!0)}r&&setTimeout(()=>{if(t.boothId){const o=this.boothStore.booths.find(l=>l.id===t.boothId);o&&this.moveToList([o])}},n||h?500:50)}selectSearch(t){window.__resett&&window.__resett(),this.uiState.details=null,this.speakerStore.clearSelectedSpeaker(),this.uiState.list={type:"search",text:x(t,Object.keys(this.uiState.mapSettings).map(r=>`${r}=`)),focused:!1},this.uiState.activeListIndex=-1}clickBookmarks(){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectBookmarks(),this.moveToList(),this.showMap()}clickVisited(){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectVisited(),this.moveToList(),this.showMap()}clickLanguage(){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectLanguage()}clickCategory(t){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectCategory(t),this.uiState.onCategoryClick&&this.uiState.onCategoryClick({id:t.id,name:t.name,exhibitors:t.exhibitors.map(r=>r.id)}),setTimeout(()=>{this.moveToList(),this.showMap()},100)}clickSeminars(){this.clickCategory(this.categoryStore.seminarsCategory)}clickBoothInList(t){window.__resett&&window.__resett(),this.uiState.hoveredBooth=null,this.selectBooth(t),this.moveToList([t]),this.showMap()}clickBoothInList2(t){window.__resett&&window.__resett(),this.uiState.hoveredBooth=null,this.selectBooth(t,!1),window.setTimeout(()=>{this.moveToList([t]),this.showMap()},navigator.userAgent.toLowerCase().indexOf("android")>-1?400:50)}clickBooth(t){if(this.uiState.menu=!1,this.uiState.list.type==="sessions"&&this.searchStore.selectSearch(),this.uiState.list.type==="speakers"&&this.searchStore.selectSearch(),this.uiState.list.type==="tours"&&this.searchStore.selectSearch(),this.uiState.list.type==="multi-point-tour"&&this.searchStore.selectSearch(),!(this.uiState.selectedRoute?.from&&this.uiState.selectedRoute?.to)){if(this.uiState.selectedRoute?.to&&!this.uiState.selectedRoute?.from&&t){this.routeStore.setStartPoint(t);return}if(t)this.routeStore.tempToBooth=t;else{this.uiState.details=null,this.fp.hidePathways(),this.uiState.list={type:"search",text:"",focused:!1},this.uiState.onBoothClick&&this.uiState.onBoothClick({target:null});return}if(this.uiState.onBoothClick){const r={name:"",description:""},o={target:{...t,layer:t.layer||r}};this.uiState.onBoothClick(o)}t.exhibitors.length===1&&t instanceof L?(this.heatmapStore.forceTrack={action:b.ViewBooth,label:t.name},this.selectExhibitor(t.exhibitors[0],!1)):this.selectBooth(t,!1),this.showMap()}}clickExhibitor2(t){this.selectExhibitor(t,!0),this.showMap()}clickExhibitor(t){window.setTimeout(()=>{this.clickExhibitor2(t)},navigator.userAgent.toLowerCase().indexOf("android")>-1?400:50)}showMap(){this.uiState.overlayPosition==="bottom"&&v&&(this.uiState.desiredOverlaySize="medium")}showOverlay(){this.uiState.overlayPosition==="bottom"&&(this.uiState.desiredOverlaySize="full")}toggleMapOverlay(){this.uiState.overlayPosition==="bottom"&&this.uiState.overlaySize==="full"?this.uiState.desiredOverlaySize="medium":this.uiState.overlayPosition==="bottom"&&this.uiState.overlaySize!=="full"&&(this.uiState.desiredOverlaySize="full")}moveToList(t){t=t||this.uiState.listItems;const r=[];t.forEach(o=>{if(o instanceof p)r.push(...o.booths.filter(l=>l.visible));else if(o instanceof c)o.visible&&r.push(o);else if(o instanceof F&&o.boothId){const l=this.boothStore.boothById.get(o.boothId);l?.visible&&r.push(l)}else o instanceof Q&&this.speakerStore.getEventsBySpeaker(o.id).forEach(l=>{if(!l.boothId)return;const a=this.boothStore.boothById.get(l.boothId);a?.visible&&r.push(a)})}),this.uiState.moveToBooths=r}moveToExhibitor(t){this.moveToList([t])}changeActiveListIndex(t){let r=this.uiState.activeListIndex+t;r=Math.max(0,Math.min(this.uiState.listItems.length-1,r)),this.uiState.activeListIndex=r}toggleModal(t){this.uiState.modalActive[t]=!this.uiState.modalActive[t]}openGallery(){this.uiState.galleryActive=!0}closeGallery(){this.uiState.galleryActive=!1}openActiveListItem(){const t=this.uiState.listItems[this.uiState.activeListIndex];t&&(g.log("Opening",t),t instanceof p?this.clickExhibitor(t):t instanceof T?this.clickCategory(t):t instanceof c&&this.clickBoothInList2(t))}toggleCategoryFilter(){this.uiState.categoryFilterOpen=!this.uiState.categoryFilterOpen}applyCategoryFilters(t){this.uiState.selectedCategoryFilters=t,this.uiState.categoryFilterOpen=!1}get filteredExhibitors(){return this.uiState.selectedCategoryFilters.length===0?this.exhibitorStore.exhibitors:this.exhibitorStore.exhibitors.filter(t=>this.uiState.selectedCategoryFilters.some(r=>t.categories.some(o=>o.id===r.id)))}selectSessions(){this.uiState.list={type:"sessions",text:"",focused:!1},this.uiState.menu=!1,this.uiState.selectedTrack=null,this.searchButtonsStore.setSubButtonId(null),this.searchButtonsStore.subButtonsEnabled&&this.searchButtonsStore.showSubButtons("sessions"),h&&(this.uiState.desiredOverlaySize="full")}selectExhibitors(){this.uiState.list={type:"exhibitors",text:"",focused:!1},this.uiState.menu=!1,h&&(this.uiState.desiredOverlaySize="full")}selectTours(){this.uiState.list={type:"tours",text:"",focused:!1},this.uiState.menu=!1,h&&(this.uiState.desiredOverlaySize="full")}selectSpeakers(){this.uiState.list={type:"speakers",text:"",focused:!1},this.uiState.menu=!1,h&&(this.uiState.desiredOverlaySize="full")}selectSpeaker(t,r=!0){this.speakerStore.selectSpeaker(t,r)}resetFilters(){this.searchButtonsStore.clearAllFilters()}registerShortcutProviders(){this.shortcutRegistry.register(new N(this)),this.shortcutRegistry.register(new U(this)),this.shortcutRegistry.register(new q(this))}}i([u],e.prototype,"initialized",void 0),i([u],e.prototype,"resetCameraFn",void 0),i([s],e.prototype,"setResetCameraFn",null),i([s],e.prototype,"selectExhibitor",null),i([s],e.prototype,"selectBooth",null),i([s],e.prototype,"reset",null),i([s],e.prototype,"selectNone",null),i([s],e.prototype,"selectBookmarks",null),i([s],e.prototype,"selectVisited",null),i([s],e.prototype,"selectLanguage",null),i([s],e.prototype,"selectCategory",null),i([s],e.prototype,"selectEventItem",null),i([s],e.prototype,"selectSearch",null),i([s],e.prototype,"clickBookmarks",null),i([s],e.prototype,"clickVisited",null),i([s],e.prototype,"clickLanguage",null),i([s],e.prototype,"clickCategory",null),i([s],e.prototype,"clickSeminars",null),i([s],e.prototype,"clickBoothInList",null),i([s],e.prototype,"clickBoothInList2",null),i([s],e.prototype,"clickBooth",null),i([s],e.prototype,"clickExhibitor2",null),i([s],e.prototype,"clickExhibitor",null),i([s],e.prototype,"showMap",null),i([s],e.prototype,"showOverlay",null),i([s],e.prototype,"toggleMapOverlay",null),i([s],e.prototype,"moveToList",null),i([s],e.prototype,"moveToExhibitor",null),i([s],e.prototype,"changeActiveListIndex",null),i([s],e.prototype,"toggleModal",null),i([s],e.prototype,"openGallery",null),i([s],e.prototype,"closeGallery",null),i([s],e.prototype,"openActiveListItem",null),i([s],e.prototype,"toggleCategoryFilter",null),i([s],e.prototype,"applyCategoryFilters",null),i([m],e.prototype,"filteredExhibitors",null),i([s],e.prototype,"selectSessions",null),i([s],e.prototype,"selectExhibitors",null),i([s],e.prototype,"selectTours",null),i([s],e.prototype,"selectSpeakers",null),i([s],e.prototype,"selectSpeaker",null),i([s],e.prototype,"resetFilters",null);
1
+ import{__decorate as i}from"tslib";import{action as s,computed as m,observable as u,runInAction as S}from"mobx";import{LANGUAGE_TYPE as d}from"../constants";import{RendererService as y}from"../renderer";import{URLFilterManager as w}from"../services/URLFilterManager";import{GaEventActions as b}from"../tools/gtag";import v from"../tools/logger";import{isWebGlSupported as g}from"../utils";import{resetLocale as k}from"../utils/i18n";import h from"../utils/is-mobile";import n from"../utils/is-webview";import{sanitizeSearch as x}from"../utils/sanitizeText";import B from"./BookmarksStore";import _,{BoothBase as c,RegularBooth as L}from"./BoothStore";import C from"./CategoryFilterStore";import E,{Category as T}from"./CategoryStore";import I,{EventItem as F}from"./EventStore";import M,{Exhibitor as p}from"./ExhibitorStore";import O from"./FuzzySearchEngineStore";import z from"./HeatmapStore";import R from"./IntercomStore";import A,{LayersMode as f}from"./LayerStore";import P from"./MaplibreStore";import V from"./OverlayStore";import G from"./PoiMarkerStore";import q from"./PoiTypeStore";import{SearchShortcutProvider as N}from"./providers/SearchShortcutProvider";import{SessionsShortcutProvider as U}from"./providers/SessionsShortcutProvider";import{SpeakerShortcutProvider as W}from"./providers/SpeakerShortcutProvider";import j from"./RoutePlannerStore";import H from"./RouteStore";import K from"./SearchButtonsStore";import Y from"./SearchStore";import $ from"./SessionsFilterStore";import{ShortcutRegistry as D}from"./ShortcutRegistry";import J from"./SpeakerFilterStore";import Q from"./SpeakerStore";import{SpeakerItem as X}from"./SpeakerStore";import Z from"./ToursStore";import tt from"./UIState";export default class e{setResetCameraFn(t){this.resetCameraFn=t}constructor(){this.rendererService=new y,this.initialized=!1,this.categoryStore=new E(this),this.exhibitorStore=new M(this),this.boothStore=new _(this),this.routeStore=new H(this),this.routePlannerStore=new j(this),this.toursStore=new Z(this),this.uiState=new tt(this),this.overlayStore=new V(this),this.maplibreStore=new P(this),this.layerStore=new A,this.intercomStore=new R,this.eventStore=new I(this),this.heatmapStore=new z,this.poiTypeStore=new q(this),this.poiMarkerStore=new G(this),this.fuzzySearchEngineStore=new O(["name","title","fullName","booths.name"]),this.categoryFilterStore=new C(this),this.sessionsFilterStore=new $(this),this.speakerStore=new Q(this),this.speakerFilterStore=new J(this),this.searchStore=new Y(this),this.searchButtonsStore=new K(this),this.bookmarksStore=new B(this),this.urlFilterManager=new w(this),this.shortcutRegistry=new D,this.registerShortcutProviders()}selectExhibitor(t,r=!0){this.uiState.hoveredExhibitor=null,this.uiState.details=t;var o=t.booths.filter(a=>a.visible),l=t.booths.filter(a=>!a.visible);!o.length&&l.length&&this.layerStore.updateVisibility(l[0].layer,!0),r&&setTimeout(()=>this.moveToList(t.booths.filter(a=>a.visible)),n||h?500:50)}selectBooth(t,r=!0){let o=Array.isArray(t)?t:[t];this.uiState.details=o[0],o.length===1&&o[0].schedule?.length&&(this.uiState.desiredOverlaySize="medium"),o.length===1&&o[0].layer&&!o[0].visible&&this.layerStore.mode===f.Radio&&this.layerStore.updateVisibility(o[0].layer,!0),r&&setTimeout(()=>this.moveToList(o),n||h?500:50)}reset(){const t=window.__searchi;t&&t.querySelector&&t.querySelector("input[type=search]")&&t.querySelector("input[type=search]").blur&&t.querySelector("input[type=search]").blur(),window.setTimeout(()=>{this.uiState.setKioskModeEnabled||k().then(()=>{S(()=>{this.selectSearch(""),this.uiState.details=null,this.resetCameraFn?.(),this.uiState.menu=!1,this.searchStore.resetSearchBox(),this.searchButtonsStore.clearAllFilters()}),setTimeout(()=>{S(()=>{this.uiState.inIdle=!0})},100)})},1e3)}selectNone(){window.__resett&&window.__resett(),this.uiState.details=this.uiState.selectedCategory}selectBookmarks(){this.uiState.details=null,this.uiState.list={type:"bookmarks"}}selectVisited(){this.uiState.details=null,this.uiState.list={type:"visited"}}selectLanguage(){this.uiState.details=null,this.uiState.list={type:d}}selectCategory(t){window.__resett&&window.__resett(),this.uiState.details=t,this.uiState.list={type:"category",category:t},this.uiState.desiredOverlaySize="full",t.exhibitors.find(o=>o.booths.find(l=>l.visible))||this.layerStore.updateVisibility(t.exhibitors[0]?.booths[0]?.layer,!0),setTimeout(()=>{this.uiState.moveToBooths=t.exhibitors.filter(o=>o.booths.find(l=>l.visible)).flatMap(o=>o.booths)},200)}selectEventItem(t,r=!0){if(this.uiState.hoveredExhibitor=null,this.uiState.details=t,this.uiState.desiredOverlaySize="medium",t.boothId){const o=this.boothStore.booths.find(l=>l.id===t.boothId);o&&o.layer&&!o.visible&&this.layerStore.mode===f.Radio&&this.layerStore.updateVisibility(o.layer,!0)}r&&setTimeout(()=>{if(t.boothId){const o=this.boothStore.booths.find(l=>l.id===t.boothId);o&&this.moveToList([o])}},n||h?500:50)}selectSearch(t){window.__resett&&window.__resett(),this.uiState.details=null,this.speakerStore.clearSelectedSpeaker(),this.uiState.list={type:"search",text:x(t,Object.keys(this.uiState.mapSettings).map(r=>`${r}=`)),focused:!1},this.uiState.activeListIndex=-1}clickBookmarks(){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectBookmarks(),this.moveToList(),this.showMap()}clickVisited(){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectVisited(),this.moveToList(),this.showMap()}clickLanguage(){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectLanguage()}clickCategory(t){window.__resett&&window.__resett(),this.uiState.menu=!1,this.selectCategory(t),this.uiState.onCategoryClick&&this.uiState.onCategoryClick({id:t.id,name:t.name,exhibitors:t.exhibitors.map(r=>r.id)}),setTimeout(()=>{this.moveToList(),this.showMap()},100)}clickSeminars(){this.clickCategory(this.categoryStore.seminarsCategory)}clickBoothInList(t){window.__resett&&window.__resett(),this.uiState.hoveredBooth=null,this.selectBooth(t),this.moveToList([t]),this.showMap()}clickBoothInList2(t){window.__resett&&window.__resett(),this.uiState.hoveredBooth=null,this.selectBooth(t,!1),window.setTimeout(()=>{this.moveToList([t]),this.showMap()},navigator.userAgent.toLowerCase().indexOf("android")>-1?400:50)}clickBooth(t){if(this.uiState.menu=!1,this.uiState.list.type==="sessions"&&this.searchStore.selectSearch(),this.uiState.list.type==="speakers"&&this.searchStore.selectSearch(),this.uiState.list.type==="tours"&&this.searchStore.selectSearch(),this.uiState.list.type==="multi-point-tour"&&this.searchStore.selectSearch(),!(this.uiState.selectedRoute?.from&&this.uiState.selectedRoute?.to)){if(this.uiState.selectedRoute?.to&&!this.uiState.selectedRoute?.from&&t){this.routeStore.setStartPoint(t);return}if(t)this.routeStore.tempToBooth=t;else{this.uiState.details=null,this.fp.hidePathways(),this.uiState.list={type:"search",text:"",focused:!1},this.uiState.onBoothClick&&this.uiState.onBoothClick({target:null});return}if(this.uiState.onBoothClick){const r={name:"",description:""},o={target:{...t,layer:t.layer||r}};this.uiState.onBoothClick(o)}t.exhibitors.length===1&&t instanceof L?(this.heatmapStore.forceTrack={action:b.ViewBooth,label:t.name},this.selectExhibitor(t.exhibitors[0],!1)):this.selectBooth(t,!1),this.showMap()}}clickExhibitor2(t){this.selectExhibitor(t,!0),this.showMap()}clickExhibitor(t){window.setTimeout(()=>{this.clickExhibitor2(t)},navigator.userAgent.toLowerCase().indexOf("android")>-1?400:50)}showMap(){this.uiState.overlayPosition==="bottom"&&g&&(this.uiState.desiredOverlaySize="medium")}showOverlay(){this.uiState.overlayPosition==="bottom"&&(this.uiState.desiredOverlaySize="full")}toggleMapOverlay(){this.uiState.overlayPosition==="bottom"&&this.uiState.overlaySize==="full"?this.uiState.desiredOverlaySize="medium":this.uiState.overlayPosition==="bottom"&&this.uiState.overlaySize!=="full"&&(this.uiState.desiredOverlaySize="full")}moveToList(t){t=t||this.uiState.listItems;const r=[];t.forEach(o=>{if(o instanceof p)r.push(...o.booths.filter(l=>l.visible));else if(o instanceof c)o.visible&&r.push(o);else if(o instanceof F&&o.boothId){const l=this.boothStore.boothById.get(o.boothId);l?.visible&&r.push(l)}else o instanceof X&&this.speakerStore.getEventsBySpeaker(o.id).forEach(l=>{if(!l.boothId)return;const a=this.boothStore.boothById.get(l.boothId);a?.visible&&r.push(a)})}),this.uiState.moveToBooths=r}moveToExhibitor(t){this.moveToList([t])}changeActiveListIndex(t){let r=this.uiState.activeListIndex+t;r=Math.max(0,Math.min(this.uiState.listItems.length-1,r)),this.uiState.activeListIndex=r}toggleModal(t){this.uiState.modalActive[t]=!this.uiState.modalActive[t]}openGallery(){this.uiState.galleryActive=!0}closeGallery(){this.uiState.galleryActive=!1}openActiveListItem(){const t=this.uiState.listItems[this.uiState.activeListIndex];t&&(v.log("Opening",t),t instanceof p?this.clickExhibitor(t):t instanceof T?this.clickCategory(t):t instanceof c&&this.clickBoothInList2(t))}toggleCategoryFilter(){this.uiState.categoryFilterOpen=!this.uiState.categoryFilterOpen}applyCategoryFilters(t){this.uiState.selectedCategoryFilters=t,this.uiState.categoryFilterOpen=!1}get filteredExhibitors(){return this.uiState.selectedCategoryFilters.length===0?this.exhibitorStore.exhibitors:this.exhibitorStore.exhibitors.filter(t=>this.uiState.selectedCategoryFilters.some(r=>t.categories.some(o=>o.id===r.id)))}selectSessions(){this.uiState.list={type:"sessions",text:"",focused:!1},this.uiState.menu=!1,this.uiState.selectedTrack=null,this.searchButtonsStore.setSubButtonId(null),this.searchButtonsStore.subButtonsEnabled&&this.searchButtonsStore.showSubButtons("sessions"),h&&(this.uiState.desiredOverlaySize="full")}selectExhibitors(){this.uiState.list={type:"exhibitors",text:"",focused:!1},this.uiState.menu=!1,h&&(this.uiState.desiredOverlaySize="full")}selectTours(){this.uiState.list={type:"tours",text:"",focused:!1},this.uiState.menu=!1,h&&(this.uiState.desiredOverlaySize="full")}selectSpeakers(){this.uiState.list={type:"speakers",text:"",focused:!1},this.uiState.menu=!1,h&&(this.uiState.desiredOverlaySize="full")}selectSpeaker(t,r=!0){this.speakerStore.selectSpeaker(t,r)}resetFilters(){this.searchButtonsStore.clearAllFilters()}registerShortcutProviders(){this.shortcutRegistry.register(new U(this)),this.shortcutRegistry.register(new W(this)),this.shortcutRegistry.register(new N(this))}}i([u],e.prototype,"initialized",void 0),i([u],e.prototype,"resetCameraFn",void 0),i([s],e.prototype,"setResetCameraFn",null),i([s],e.prototype,"selectExhibitor",null),i([s],e.prototype,"selectBooth",null),i([s],e.prototype,"reset",null),i([s],e.prototype,"selectNone",null),i([s],e.prototype,"selectBookmarks",null),i([s],e.prototype,"selectVisited",null),i([s],e.prototype,"selectLanguage",null),i([s],e.prototype,"selectCategory",null),i([s],e.prototype,"selectEventItem",null),i([s],e.prototype,"selectSearch",null),i([s],e.prototype,"clickBookmarks",null),i([s],e.prototype,"clickVisited",null),i([s],e.prototype,"clickLanguage",null),i([s],e.prototype,"clickCategory",null),i([s],e.prototype,"clickSeminars",null),i([s],e.prototype,"clickBoothInList",null),i([s],e.prototype,"clickBoothInList2",null),i([s],e.prototype,"clickBooth",null),i([s],e.prototype,"clickExhibitor2",null),i([s],e.prototype,"clickExhibitor",null),i([s],e.prototype,"showMap",null),i([s],e.prototype,"showOverlay",null),i([s],e.prototype,"toggleMapOverlay",null),i([s],e.prototype,"moveToList",null),i([s],e.prototype,"moveToExhibitor",null),i([s],e.prototype,"changeActiveListIndex",null),i([s],e.prototype,"toggleModal",null),i([s],e.prototype,"openGallery",null),i([s],e.prototype,"closeGallery",null),i([s],e.prototype,"openActiveListItem",null),i([s],e.prototype,"toggleCategoryFilter",null),i([s],e.prototype,"applyCategoryFilters",null),i([m],e.prototype,"filteredExhibitors",null),i([s],e.prototype,"selectSessions",null),i([s],e.prototype,"selectExhibitors",null),i([s],e.prototype,"selectTours",null),i([s],e.prototype,"selectSpeakers",null),i([s],e.prototype,"selectSpeaker",null),i([s],e.prototype,"resetFilters",null);
@@ -37,6 +37,14 @@ export default class UIState {
37
37
  rollReset: boolean;
38
38
  moveToBooths: Booth[] | null;
39
39
  moveToRect: Box | null;
40
+ /**
41
+ * Breathing room the pending `moveToRect` wants, as a fraction of the viewport
42
+ * per side. `null` leaves each renderer on its own default — the adaptive
43
+ * 15%/25% for the legacy one, a fixed inset for the map. Fit-to-screen sets 0:
44
+ * its rect is the framing itself, so padding it would zoom past the authored
45
+ * viewbox.
46
+ */
47
+ moveToRectPaddingPercent: number | null;
40
48
  moveToLocation: boolean;
41
49
  menu: boolean;
42
50
  searchFocused: boolean;
@@ -163,7 +171,6 @@ export default class UIState {
163
171
  get mapVisibleBottom(): number;
164
172
  get mapVisibleStart(): number;
165
173
  get searchActionsHeightPx(): number;
166
- get fullSizeOffset(): number;
167
174
  get shouldShowSearchButtons(): false;
168
175
  get shouldShowMobileToggle(): boolean;
169
176
  get mobileToggleIsListMode(): boolean;