@expofp/floorplan 0.0.0-experimental.2632d13
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.
- package/README.md +8 -0
- package/dist/browser/Button-DT-Jfwrb.js +64 -0
- package/dist/browser/CookieConsent-DYjf8elV.js +38 -0
- package/dist/browser/Debug-CK-BLY-v.js +53 -0
- package/dist/browser/DebugTools-Y0aycjKM.js +1931 -0
- package/dist/browser/Demo-B677YULI.js +71 -0
- package/dist/browser/Free-B_nU7Krr.js +69 -0
- package/dist/browser/GalleryContainer-DcZrZnJz.js +3355 -0
- package/dist/browser/GpsLoader-DwNSQv4V.js +154 -0
- package/dist/browser/KioskStore-DgP9k2lT.js +250 -0
- package/dist/browser/LayerStore-DCwl80sb.js +24105 -0
- package/dist/browser/MaplibreAdapter-B-c-uOJf.js +36770 -0
- package/dist/browser/ModalContainer-DnZxo0qA.js +148 -0
- package/dist/browser/PermissionNotice-DaqnuHln.js +54 -0
- package/dist/browser/RouteStore-CuslHjhJ.js +3719 -0
- package/dist/browser/SetKioskMode-CVD7sZLr.js +49 -0
- package/dist/browser/ShowKiosk-DuOS8tTO.js +82 -0
- package/dist/browser/ViewerMenuPanel-Xj-8aVzf.js +133 -0
- package/dist/browser/add-debug-secret-listener-BECnIMzo.js +55 -0
- package/dist/browser/adopt-global-settings-U-KbyxMd.js +185 -0
- package/dist/browser/boolean-editor-CYMx87em.js +149 -0
- package/dist/browser/bootIntercom-BqQsnxII.js +37 -0
- package/dist/browser/bundle.json +422 -0
- package/dist/browser/camera-events-DSCuSH25.js +18 -0
- package/dist/browser/classnames-YcGXWNfg.js +39 -0
- package/dist/browser/client-BcPpS_Gj.js +7402 -0
- package/dist/browser/compat-helper.js +6 -0
- package/dist/browser/components-D8dv3ezN.js +7393 -0
- package/dist/browser/create-live-plan-Ff4MkKcG.js +4046 -0
- package/dist/browser/debounce-B4PlcNh4.js +2102 -0
- package/dist/browser/debug-context-CNBgUWR8.js +24315 -0
- package/dist/browser/debug-overlay-B__pFwQg.js +1455 -0
- package/dist/browser/debug-ui-BaE8MZQX.js +86 -0
- package/dist/browser/dist-C1NaWqk4.js +2611 -0
- package/dist/browser/dist-Cx8u0gjK.js +21 -0
- package/dist/browser/dist-wOC6gYFh.js +205 -0
- package/dist/browser/efp-debug-init-CozbueIl.js +245 -0
- package/dist/browser/enum-editor-CkiQPgZv.js +34 -0
- package/dist/browser/es5-B__Ovz45.js +1712 -0
- package/dist/browser/event-head-C_inMpbD.js +56 -0
- package/dist/browser/event-not-found-Z2mJBZE3.js +31 -0
- package/dist/browser/expofp-overlay.png +0 -0
- package/dist/browser/expofpUrl-jBUlvkwz.js +19 -0
- package/dist/browser/exports-CvUYw1h6.js +1525 -0
- package/dist/browser/favicon-BkDrYTmU.js +12 -0
- package/dist/browser/fetch-retry.umd-2B2pCUIS.js +78 -0
- package/dist/browser/flex-3lSivw8z.js +823 -0
- package/dist/browser/floorplan.loader-fOvLfGGf.js +3282 -0
- package/dist/browser/floorplan.ready-Bvj8hVzH.js +1540 -0
- package/dist/browser/fonts/efp-symbols.woff +0 -0
- package/dist/browser/fonts/inter-400.woff2 +0 -0
- package/dist/browser/fonts/inter-500.woff2 +0 -0
- package/dist/browser/fonts/inter-600.woff2 +0 -0
- package/dist/browser/fonts/oswald-v17-cyrillic_latin-300.woff +0 -0
- package/dist/browser/fonts/oswald-v17-cyrillic_latin-500.woff +0 -0
- package/dist/browser/freeBanner-CnrBc9Tl.js +22 -0
- package/dist/browser/fuse-B7V1lkoA.js +1177 -0
- package/dist/browser/i18n-DRDvImjG.js +7210 -0
- package/dist/browser/icons/accessible.svg +5 -0
- package/dist/browser/icons/arrow-down.svg +3 -0
- package/dist/browser/icons/bus-white.svg +3 -0
- package/dist/browser/icons/check.svg +3 -0
- package/dist/browser/icons/clear.svg +4 -0
- package/dist/browser/icons/departure.svg +5 -0
- package/dist/browser/icons/departure_inactive.svg +5 -0
- package/dist/browser/icons/destination.svg +5 -0
- package/dist/browser/icons/direction.svg +54 -0
- package/dist/browser/icons/dots.svg +4 -0
- package/dist/browser/icons/dragdrop-solid.svg +11 -0
- package/dist/browser/icons/facebook.svg +4 -0
- package/dist/browser/icons/from.svg +4 -0
- package/dist/browser/icons/kiosk.svg +1 -0
- package/dist/browser/icons/linkedin.svg +3 -0
- package/dist/browser/icons/rotate.svg +5 -0
- package/dist/browser/icons/tap.svg +5 -0
- package/dist/browser/icons/to.svg +4 -0
- package/dist/browser/icons/transition.svg +7 -0
- package/dist/browser/icons/transition_down.svg +15 -0
- package/dist/browser/icons/transition_up.svg +15 -0
- package/dist/browser/icons/twitter.svg +3 -0
- package/dist/browser/icons/yah.svg +17 -0
- package/dist/browser/index.html +139 -0
- package/dist/browser/index.js +254 -0
- package/dist/browser/index.module-kJmnWg5B.js +153 -0
- package/dist/browser/integrateKiosk-DhdxcN-Y.js +35 -0
- package/dist/browser/is-debug-6YYr83sg.js +197 -0
- package/dist/browser/is-own-domain-DNvxb9Ph.js +26 -0
- package/dist/browser/is-webview-cTH4yz8f.js +12 -0
- package/dist/browser/journey-plan-cw-9rqLk.js +1865 -0
- package/dist/browser/jsx-runtime-DQgnuS-I.js +30 -0
- package/dist/browser/kiosk-mode-Bqv2L5PO.js +28 -0
- package/dist/browser/kiosk-record-JAEq8SV6.js +18 -0
- package/dist/browser/kioskUrlParam-dw9tDQ6e.js +141 -0
- package/dist/browser/lib--J2yQXt6.js +1910 -0
- package/dist/browser/loadImage-CenmkrfL.js +30 -0
- package/dist/browser/locales/ar.json +228 -0
- package/dist/browser/locales/da.json +229 -0
- package/dist/browser/locales/de.json +228 -0
- package/dist/browser/locales/es.json +228 -0
- package/dist/browser/locales/fr.json +228 -0
- package/dist/browser/locales/he.json +228 -0
- package/dist/browser/locales/it.json +228 -0
- package/dist/browser/locales/kk.json +228 -0
- package/dist/browser/locales/ko.json +228 -0
- package/dist/browser/locales/mn.json +228 -0
- package/dist/browser/locales/nl.json +228 -0
- package/dist/browser/locales/pl.json +228 -0
- package/dist/browser/locales/pt.json +228 -0
- package/dist/browser/locales/ru.json +228 -0
- package/dist/browser/locales/sv.json +228 -0
- package/dist/browser/locales/th.json +228 -0
- package/dist/browser/locales/tr.json +228 -0
- package/dist/browser/locales/uk.json +228 -0
- package/dist/browser/locales/vi.json +228 -0
- package/dist/browser/locales/zh.json +228 -0
- package/dist/browser/logDeviceInfo-D2Anqc6y.js +58 -0
- package/dist/browser/mobx-C-kcS0zI.js +43 -0
- package/dist/browser/mobx.module-BOCLFB5I.js +2064 -0
- package/dist/browser/optional-boolean-editor-ZncW2HBw.js +20 -0
- package/dist/browser/optional-enum-editor-Dkzs9jDN.js +34 -0
- package/dist/browser/optional-string-editor-DC9PMUWB.js +30 -0
- package/dist/browser/particles.min-eC5xdOrB.js +133 -0
- package/dist/browser/react-DqPP-mkq.js +301 -0
- package/dist/browser/react-dom-BkVzoZWO.js +139 -0
- package/dist/browser/rolldown-runtime-DUb2xvRc.js +28 -0
- package/dist/browser/scheduler-NBuuaWIe.js +212 -0
- package/dist/browser/select-Cxf-YiNA.js +1367 -0
- package/dist/browser/settings-D74eG9h8.js +9 -0
- package/dist/browser/settings-item-DUUbKec_.js +76 -0
- package/dist/browser/store-q_CTsixH.js +58 -0
- package/dist/browser/string-editor-CINOmY_C.js +30 -0
- package/dist/browser/text-field-DORaOVht.js +88 -0
- package/dist/browser/theme-DyFm9MGz.js +2803 -0
- package/dist/browser/ui-DsCU3FV6.js +43 -0
- package/dist/browser/useRenderTarget-RFckzUJM.js +57 -0
- package/dist/browser/vendor/perfect-scrollbar/css/perfect-scrollbar.css +1 -0
- package/dist/browser/vendor/sanitize-css/sanitize.css +1 -0
- package/dist/browser/venue-public-CH7uq9Xn.js +296 -0
- package/dist/browser/venues-Yq0wU18A.js +447 -0
- package/dist/browser/viewport-juWifKNy.js +48 -0
- package/dist/browser/warning.png +0 -0
- package/dist/esm/_misc_to_move/initHtmlHead.d.ts +2 -0
- package/dist/esm/_misc_to_move/initHtmlHead.js +34 -0
- package/dist/esm/_misc_to_move/logBuildInfo.d.ts +2 -0
- package/dist/esm/_misc_to_move/logBuildInfo.js +35 -0
- package/dist/esm/_misc_to_move/logDeviceInfo.d.ts +10 -0
- package/dist/esm/_misc_to_move/logDeviceInfo.js +84 -0
- package/dist/esm/components/AlertContainer.d.ts +4 -0
- package/dist/esm/components/AlertContainer.js +8 -0
- package/dist/esm/components/AutocompleteContainer.d.ts +4 -0
- package/dist/esm/components/AutocompleteContainer.js +14 -0
- package/dist/esm/components/BaseFilterModal.d.ts +11 -0
- package/dist/esm/components/BaseFilterModal.js +73 -0
- package/dist/esm/components/Bookmarks.d.ts +3 -0
- package/dist/esm/components/Bookmarks.js +26 -0
- package/dist/esm/components/Booth/Booth.d.ts +5 -0
- package/dist/esm/components/Booth/Booth.js +135 -0
- package/dist/esm/components/Booth/BoothOnHold.d.ts +13 -0
- package/dist/esm/components/Booth/BoothOnHold.js +11 -0
- package/dist/esm/components/Booth/BoothReserved.d.ts +3 -0
- package/dist/esm/components/Booth/BoothReserved.js +7 -0
- package/dist/esm/components/Booth/BoothSpecial.d.ts +8 -0
- package/dist/esm/components/Booth/BoothSpecial.js +4 -0
- package/dist/esm/components/Booth/BoothWithoutExhibitor.d.ts +13 -0
- package/dist/esm/components/Booth/BoothWithoutExhibitor.js +29 -0
- package/dist/esm/components/Category.d.ts +5 -0
- package/dist/esm/components/Category.js +25 -0
- package/dist/esm/components/CategoryFilterModal.d.ts +3 -0
- package/dist/esm/components/CategoryFilterModal.js +63 -0
- package/dist/esm/components/CookieConsent.d.ts +9 -0
- package/dist/esm/components/CookieConsent.js +9 -0
- package/dist/esm/components/Debug.d.ts +5 -0
- package/dist/esm/components/Debug.js +15 -0
- package/dist/esm/components/Demo.d.ts +4 -0
- package/dist/esm/components/Demo.js +37 -0
- package/dist/esm/components/DownloadListContainer.d.ts +5 -0
- package/dist/esm/components/DownloadListContainer.js +8 -0
- package/dist/esm/components/EntityItemContainer.d.ts +28 -0
- package/dist/esm/components/EntityItemContainer.js +36 -0
- package/dist/esm/components/EntityList.d.ts +9 -0
- package/dist/esm/components/EntityList.js +144 -0
- package/dist/esm/components/EntityListRow.d.ts +13 -0
- package/dist/esm/components/EntityListRow.js +78 -0
- package/dist/esm/components/ErrorBoundary.d.ts +15 -0
- package/dist/esm/components/ErrorBoundary.js +29 -0
- package/dist/esm/components/Event.d.ts +5 -0
- package/dist/esm/components/Event.js +167 -0
- package/dist/esm/components/EventBadgeContainer.d.ts +8 -0
- package/dist/esm/components/EventBadgeContainer.js +29 -0
- package/dist/esm/components/Exhibitor.d.ts +5 -0
- package/dist/esm/components/Exhibitor.js +299 -0
- package/dist/esm/components/Filter.d.ts +4 -0
- package/dist/esm/components/Filter.js +24 -0
- package/dist/esm/components/Free.d.ts +4 -0
- package/dist/esm/components/Free.js +31 -0
- package/dist/esm/components/GalleryContainer.d.ts +6 -0
- package/dist/esm/components/GalleryContainer.js +55 -0
- package/dist/esm/components/GlobalErrorMessage.d.ts +4 -0
- package/dist/esm/components/GlobalErrorMessage.js +9 -0
- package/dist/esm/components/GpsLoader.d.ts +5 -0
- package/dist/esm/components/GpsLoader.js +29 -0
- package/dist/esm/components/HeatmapLegendContainer.d.ts +5 -0
- package/dist/esm/components/HeatmapLegendContainer.js +13 -0
- package/dist/esm/components/HighlightTextContainer.d.ts +6 -0
- package/dist/esm/components/HighlightTextContainer.js +10 -0
- package/dist/esm/components/IntercomLauncher.d.ts +5 -0
- package/dist/esm/components/IntercomLauncher.js +20 -0
- package/dist/esm/components/JourneyPanel.d.ts +35 -0
- package/dist/esm/components/JourneyPanel.js +68 -0
- package/dist/esm/components/Kiosk/KioskStore.d.ts +60 -0
- package/dist/esm/components/Kiosk/KioskStore.js +411 -0
- package/dist/esm/components/Kiosk/SetKiosk/Confirm/ConfirmDialog.d.ts +5 -0
- package/dist/esm/components/Kiosk/SetKiosk/Confirm/ConfirmDialog.js +8 -0
- package/dist/esm/components/Kiosk/SetKiosk/FormInput/RangeInput.d.ts +5 -0
- package/dist/esm/components/Kiosk/SetKiosk/FormInput/RangeInput.js +24 -0
- package/dist/esm/components/Kiosk/SetKiosk/Message/InfoMessage.d.ts +5 -0
- package/dist/esm/components/Kiosk/SetKiosk/Message/InfoMessage.js +7 -0
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskComponent.d.ts +5 -0
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskComponent.js +78 -0
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskForm.d.ts +5 -0
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskForm.js +10 -0
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskStatusMessages.d.ts +5 -0
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskStatusMessages.js +15 -0
- package/dist/esm/components/Kiosk/SetKiosk/constants.d.ts +6 -0
- package/dist/esm/components/Kiosk/SetKiosk/constants.js +6 -0
- package/dist/esm/components/Kiosk/SetKiosk/getKioskUrlParamKey.d.ts +2 -0
- package/dist/esm/components/Kiosk/SetKiosk/getKioskUrlParamKey.js +4 -0
- package/dist/esm/components/Kiosk/SetKiosk/getName.d.ts +2 -0
- package/dist/esm/components/Kiosk/SetKiosk/getName.js +2 -0
- package/dist/esm/components/Kiosk/SetKiosk/getSlug.d.ts +2 -0
- package/dist/esm/components/Kiosk/SetKiosk/getSlug.js +2 -0
- package/dist/esm/components/Kiosk/SetKiosk/index.d.ts +7 -0
- package/dist/esm/components/Kiosk/SetKiosk/index.js +6 -0
- package/dist/esm/components/Kiosk/SetKiosk/storage.d.ts +5 -0
- package/dist/esm/components/Kiosk/SetKiosk/storage.js +21 -0
- package/dist/esm/components/Kiosk/SetKiosk/types.d.ts +109 -0
- package/dist/esm/components/Kiosk/SetKiosk/types.js +1 -0
- package/dist/esm/components/Kiosk/SetKioskMode.d.ts +3 -0
- package/dist/esm/components/Kiosk/SetKioskMode.js +35 -0
- package/dist/esm/components/Kiosk/ShowKiosk.d.ts +3 -0
- package/dist/esm/components/Kiosk/ShowKiosk.js +72 -0
- package/dist/esm/components/Kiosk/integrateKiosk.d.ts +10 -0
- package/dist/esm/components/Kiosk/integrateKiosk.js +68 -0
- package/dist/esm/components/Kiosk/kiosk-mode.d.ts +26 -0
- package/dist/esm/components/Kiosk/kiosk-mode.js +56 -0
- package/dist/esm/components/Kiosk/kiosk-record.d.ts +23 -0
- package/dist/esm/components/Kiosk/kiosk-record.js +29 -0
- package/dist/esm/components/Kiosk/kioskApi.d.ts +4 -0
- package/dist/esm/components/Kiosk/kioskApi.js +47 -0
- package/dist/esm/components/Kiosk/kioskUrlParam.d.ts +8 -0
- package/dist/esm/components/Kiosk/kioskUrlParam.js +46 -0
- package/dist/esm/components/Kiosk/recoverKioskFromUrlPrams.d.ts +2 -0
- package/dist/esm/components/Kiosk/recoverKioskFromUrlPrams.js +9 -0
- package/dist/esm/components/Language.d.ts +4 -0
- package/dist/esm/components/Language.js +15 -0
- package/dist/esm/components/LanguageRowContainer.d.ts +7 -0
- package/dist/esm/components/LanguageRowContainer.js +9 -0
- package/dist/esm/components/Layout.d.ts +11 -0
- package/dist/esm/components/Layout.js +160 -0
- package/dist/esm/components/LevelBadgeContainer.d.ts +6 -0
- package/dist/esm/components/LevelBadgeContainer.js +10 -0
- package/dist/esm/components/List.d.ts +9 -0
- package/dist/esm/components/List.js +77 -0
- package/dist/esm/components/LogoOverlay.d.ts +3 -0
- package/dist/esm/components/LogoOverlay.js +78 -0
- package/dist/esm/components/Map/Map.d.ts +2 -0
- package/dist/esm/components/Map/Map.js +242 -0
- package/dist/esm/components/Map/MapCamera.d.ts +17 -0
- package/dist/esm/components/Map/MapCamera.js +194 -0
- package/dist/esm/components/Map/MapCursorCoords.d.ts +13 -0
- package/dist/esm/components/Map/MapCursorCoords.js +61 -0
- package/dist/esm/components/Map/MapViewport.d.ts +12 -0
- package/dist/esm/components/Map/MapViewport.js +29 -0
- package/dist/esm/components/Map/booth-by-xy.d.ts +14 -0
- package/dist/esm/components/Map/booth-by-xy.js +128 -0
- package/dist/esm/components/Map/camera-events.d.ts +19 -0
- package/dist/esm/components/Map/camera-events.js +26 -0
- package/dist/esm/components/Map/camera.d.ts +48 -0
- package/dist/esm/components/Map/camera.js +43 -0
- package/dist/esm/components/Map/drawing/config/BoothDrawerBase.d.ts +8 -0
- package/dist/esm/components/Map/drawing/config/BoothDrawerBase.js +8 -0
- package/dist/esm/components/Map/drawing/config/BoothShape.d.ts +7 -0
- package/dist/esm/components/Map/drawing/config/BoothShape.js +76 -0
- package/dist/esm/components/Map/drawing/config/TextFitter.d.ts +11 -0
- package/dist/esm/components/Map/drawing/config/TextFitter.js +174 -0
- package/dist/esm/components/Map/drawing/config/booth-badge-anchor.d.ts +130 -0
- package/dist/esm/components/Map/drawing/config/booth-badge-anchor.js +306 -0
- package/dist/esm/components/Map/drawing/config/booth-logos.d.ts +38 -0
- package/dist/esm/components/Map/drawing/config/booth-logos.js +94 -0
- package/dist/esm/components/Map/drawing/config/canvases.d.ts +96 -0
- package/dist/esm/components/Map/drawing/config/canvases.js +434 -0
- package/dist/esm/components/Map/drawing/config/config-all.d.ts +6 -0
- package/dist/esm/components/Map/drawing/config/config-all.js +92 -0
- package/dist/esm/components/Map/drawing/config/config-bg.d.ts +8 -0
- package/dist/esm/components/Map/drawing/config/config-bg.js +54 -0
- package/dist/esm/components/Map/drawing/config/config-booth-badge-eligibility.d.ts +28 -0
- package/dist/esm/components/Map/drawing/config/config-booth-badge-eligibility.js +7 -0
- package/dist/esm/components/Map/drawing/config/config-booth-badge-scale.d.ts +20 -0
- package/dist/esm/components/Map/drawing/config/config-booth-badge-scale.js +11 -0
- package/dist/esm/components/Map/drawing/config/config-booth-badge-visibility.d.ts +37 -0
- package/dist/esm/components/Map/drawing/config/config-booth-badge-visibility.js +3 -0
- package/dist/esm/components/Map/drawing/config/config-booth-badge.d.ts +90 -0
- package/dist/esm/components/Map/drawing/config/config-booth-badge.js +326 -0
- package/dist/esm/components/Map/drawing/config/config-booth-bg.d.ts +33 -0
- package/dist/esm/components/Map/drawing/config/config-booth-bg.js +240 -0
- package/dist/esm/components/Map/drawing/config/config-booth-bookmark.d.ts +24 -0
- package/dist/esm/components/Map/drawing/config/config-booth-bookmark.js +65 -0
- package/dist/esm/components/Map/drawing/config/config-booth-border.d.ts +12 -0
- package/dist/esm/components/Map/drawing/config/config-booth-border.js +92 -0
- package/dist/esm/components/Map/drawing/config/config-booth-labels-special.d.ts +28 -0
- package/dist/esm/components/Map/drawing/config/config-booth-labels-special.js +147 -0
- package/dist/esm/components/Map/drawing/config/config-booth-labels.d.ts +63 -0
- package/dist/esm/components/Map/drawing/config/config-booth-labels.js +380 -0
- package/dist/esm/components/Map/drawing/config/config-booths.d.ts +5 -0
- package/dist/esm/components/Map/drawing/config/config-booths.js +152 -0
- package/dist/esm/components/Map/drawing/config/config-load-layer.d.ts +4 -0
- package/dist/esm/components/Map/drawing/config/config-load-layer.js +119 -0
- package/dist/esm/components/Map/drawing/config/config-markers.d.ts +42 -0
- package/dist/esm/components/Map/drawing/config/config-markers.js +278 -0
- package/dist/esm/components/Map/drawing/config/config-outdoor-poi.d.ts +19 -0
- package/dist/esm/components/Map/drawing/config/config-outdoor-poi.js +96 -0
- package/dist/esm/components/Map/drawing/config/config-pins.d.ts +40 -0
- package/dist/esm/components/Map/drawing/config/config-pins.js +533 -0
- package/dist/esm/components/Map/drawing/config/label-inset.d.ts +26 -0
- package/dist/esm/components/Map/drawing/config/label-inset.js +26 -0
- package/dist/esm/components/Map/drawing/config/layer-images.d.ts +24 -0
- package/dist/esm/components/Map/drawing/config/layer-images.js +32 -0
- package/dist/esm/components/Map/drawing/config/layer-models.d.ts +31 -0
- package/dist/esm/components/Map/drawing/config/layer-models.js +38 -0
- package/dist/esm/components/Map/drawing/config/loadBoothsImages.d.ts +45 -0
- package/dist/esm/components/Map/drawing/config/loadBoothsImages.js +99 -0
- package/dist/esm/components/Map/drawing/config/pin-geometry.d.ts +65 -0
- package/dist/esm/components/Map/drawing/config/pin-geometry.js +75 -0
- package/dist/esm/components/Map/drawing/config/poi-pin-shape.d.ts +100 -0
- package/dist/esm/components/Map/drawing/config/poi-pin-shape.js +51 -0
- package/dist/esm/components/Map/drawing/config/poi-pin.d.ts +10 -0
- package/dist/esm/components/Map/drawing/config/poi-pin.js +88 -0
- package/dist/esm/components/Map/drawing/config/selection-style.d.ts +12 -0
- package/dist/esm/components/Map/drawing/config/selection-style.js +18 -0
- package/dist/esm/components/Map/framing-rect.d.ts +16 -0
- package/dist/esm/components/Map/framing-rect.js +24 -0
- package/dist/esm/components/Map/pointer.d.ts +79 -0
- package/dist/esm/components/Map/pointer.js +181 -0
- package/dist/esm/components/Map/scene.d.ts +20 -0
- package/dist/esm/components/Map/scene.js +24 -0
- package/dist/esm/components/Map/traffic/UpdateQueue.d.ts +13 -0
- package/dist/esm/components/Map/traffic/UpdateQueue.js +82 -0
- package/dist/esm/components/Map/traffic/trafficLayers.d.ts +12 -0
- package/dist/esm/components/Map/traffic/trafficLayers.js +29 -0
- package/dist/esm/components/Map/traffic/useBuildRoute.d.ts +9 -0
- package/dist/esm/components/Map/traffic/useBuildRoute.js +359 -0
- package/dist/esm/components/Map/traffic/useManageTraffic.d.ts +10 -0
- package/dist/esm/components/Map/traffic/useManageTraffic.js +643 -0
- package/dist/esm/components/Map/viewport.d.ts +63 -0
- package/dist/esm/components/Map/viewport.js +82 -0
- package/dist/esm/components/Map/with-kiosk.d.ts +11 -0
- package/dist/esm/components/Map/with-kiosk.js +25 -0
- package/dist/esm/components/MapControlsContainer.d.ts +3 -0
- package/dist/esm/components/MapControlsContainer.js +58 -0
- package/dist/esm/components/Maplibre/CollapsedAttributionControl.d.ts +12 -0
- package/dist/esm/components/Maplibre/CollapsedAttributionControl.js +19 -0
- package/dist/esm/components/Maplibre/ExpofpLogoControl.d.ts +20 -0
- package/dist/esm/components/Maplibre/ExpofpLogoControl.js +39 -0
- package/dist/esm/components/Maplibre/MaplibreAdapter.d.ts +18 -0
- package/dist/esm/components/Maplibre/MaplibreAdapter.js +354 -0
- package/dist/esm/components/Maplibre/MaplibreWrapper.d.ts +111 -0
- package/dist/esm/components/Maplibre/MaplibreWrapper.js +310 -0
- package/dist/esm/components/Maplibre/maplibre-recovery.d.ts +4 -0
- package/dist/esm/components/Maplibre/maplibre-recovery.js +4 -0
- package/dist/esm/components/Maplibre/styles/mapbox-streets-bright.d.ts +3 -0
- package/dist/esm/components/Maplibre/styles/mapbox-streets-bright.js +7048 -0
- package/dist/esm/components/Maplibre/styles/mapbox-streets.d.ts +3 -0
- package/dist/esm/components/Maplibre/styles/mapbox-streets.js +6132 -0
- package/dist/esm/components/Maplibre/useCameraReactions.d.ts +14 -0
- package/dist/esm/components/Maplibre/useCameraReactions.js +256 -0
- package/dist/esm/components/Maplibre/useDimming.d.ts +25 -0
- package/dist/esm/components/Maplibre/useDimming.js +61 -0
- package/dist/esm/components/Maplibre/useJourneyConnector.d.ts +16 -0
- package/dist/esm/components/Maplibre/useJourneyConnector.js +175 -0
- package/dist/esm/components/Maplibre/useKioskCameraEvents.d.ts +20 -0
- package/dist/esm/components/Maplibre/useKioskCameraEvents.js +52 -0
- package/dist/esm/components/Maplibre/useLayerVisibilitySync.d.ts +25 -0
- package/dist/esm/components/Maplibre/useLayerVisibilitySync.js +85 -0
- package/dist/esm/components/Maplibre/usePoiMarkers.d.ts +25 -0
- package/dist/esm/components/Maplibre/usePoiMarkers.js +368 -0
- package/dist/esm/components/Maplibre/useVenueCameraTracking.d.ts +6 -0
- package/dist/esm/components/Maplibre/useVenueCameraTracking.js +115 -0
- package/dist/esm/components/Maplibre/useVenueLayers.d.ts +15 -0
- package/dist/esm/components/Maplibre/useVenueLayers.js +463 -0
- package/dist/esm/components/Maplibre/useWayfindingAndMarkers.d.ts +11 -0
- package/dist/esm/components/Maplibre/useWayfindingAndMarkers.js +23 -0
- package/dist/esm/components/Maplibre/utils/basemap-palette.d.ts +19 -0
- package/dist/esm/components/Maplibre/utils/basemap-palette.js +125 -0
- package/dist/esm/components/Maplibre/utils/geo-config.d.ts +92 -0
- package/dist/esm/components/Maplibre/utils/geo-config.js +305 -0
- package/dist/esm/components/Maplibre/utils/hit-test-registry.d.ts +18 -0
- package/dist/esm/components/Maplibre/utils/hit-test-registry.js +17 -0
- package/dist/esm/components/Maplibre/utils/layer-defs.d.ts +9 -0
- package/dist/esm/components/Maplibre/utils/layer-defs.js +19 -0
- package/dist/esm/components/Maplibre/utils/local-viewport.d.ts +13 -0
- package/dist/esm/components/Maplibre/utils/local-viewport.js +31 -0
- package/dist/esm/components/Maplibre/utils/map-helpers.d.ts +21 -0
- package/dist/esm/components/Maplibre/utils/map-helpers.js +85 -0
- package/dist/esm/components/Maplibre/utils/map-theme.d.ts +20 -0
- package/dist/esm/components/Maplibre/utils/map-theme.js +44 -0
- package/dist/esm/components/Maplibre/utils/marker-layer-order.d.ts +22 -0
- package/dist/esm/components/Maplibre/utils/marker-layer-order.js +20 -0
- package/dist/esm/components/Maplibre/utils/pmtiles-range-fallback.d.ts +53 -0
- package/dist/esm/components/Maplibre/utils/pmtiles-range-fallback.js +110 -0
- package/dist/esm/components/Maplibre/utils/poi-marker-hit-test.d.ts +8 -0
- package/dist/esm/components/Maplibre/utils/poi-marker-hit-test.js +8 -0
- package/dist/esm/components/Maplibre/utils/resolve-map-style.d.ts +19 -0
- package/dist/esm/components/Maplibre/utils/resolve-map-style.js +73 -0
- package/dist/esm/components/Maplibre/utils/solver.d.ts +23 -0
- package/dist/esm/components/Maplibre/utils/solver.js +238 -0
- package/dist/esm/components/Maplibre/utils/style-fonts.d.ts +10 -0
- package/dist/esm/components/Maplibre/utils/style-fonts.js +24 -0
- package/dist/esm/components/Maplibre/utils/venue-calibration-console.d.ts +10 -0
- package/dist/esm/components/Maplibre/utils/venue-calibration-console.js +130 -0
- package/dist/esm/components/Maplibre/utils/venue-calibration.d.ts +127 -0
- package/dist/esm/components/Maplibre/utils/venue-calibration.js +144 -0
- package/dist/esm/components/Maplibre/utils/venue-camera-target.d.ts +15 -0
- package/dist/esm/components/Maplibre/utils/venue-camera-target.js +19 -0
- package/dist/esm/components/Maplibre/utils/venue-contour.d.ts +50 -0
- package/dist/esm/components/Maplibre/utils/venue-contour.fixture.d.ts +18 -0
- package/dist/esm/components/Maplibre/utils/venue-contour.fixture.js +69 -0
- package/dist/esm/components/Maplibre/utils/venue-contour.js +188 -0
- package/dist/esm/components/Maplibre/utils/venue-focus.d.ts +26 -0
- package/dist/esm/components/Maplibre/utils/venue-focus.js +106 -0
- package/dist/esm/components/Maplibre/utils/venue-legibility.d.ts +30 -0
- package/dist/esm/components/Maplibre/utils/venue-legibility.js +52 -0
- package/dist/esm/components/Maplibre/utils/venue-pin-rasterize.d.ts +88 -0
- package/dist/esm/components/Maplibre/utils/venue-pin-rasterize.js +220 -0
- package/dist/esm/components/Maplibre/utils/venue-projection.d.ts +37 -0
- package/dist/esm/components/Maplibre/utils/venue-projection.js +88 -0
- package/dist/esm/components/Maplibre/utils/venue-tap-hit-test.d.ts +9 -0
- package/dist/esm/components/Maplibre/utils/venue-tap-hit-test.js +9 -0
- package/dist/esm/components/Maplibre/utils/venue-viewport-detail.d.ts +19 -0
- package/dist/esm/components/Maplibre/utils/venue-viewport-detail.js +24 -0
- package/dist/esm/components/Maplibre/utils/venue-zoom.d.ts +23 -0
- package/dist/esm/components/Maplibre/utils/venue-zoom.js +62 -0
- package/dist/esm/components/Menu.d.ts +11 -0
- package/dist/esm/components/Menu.js +94 -0
- package/dist/esm/components/MobileToggleButtonContainer.d.ts +3 -0
- package/dist/esm/components/MobileToggleButtonContainer.js +24 -0
- package/dist/esm/components/ModalContainer.d.ts +41 -0
- package/dist/esm/components/ModalContainer.js +10 -0
- package/dist/esm/components/MultiSelectGroupsContainer.d.ts +5 -0
- package/dist/esm/components/MultiSelectGroupsContainer.js +8 -0
- package/dist/esm/components/OverlayContainer.d.ts +8 -0
- package/dist/esm/components/OverlayContainer.js +82 -0
- package/dist/esm/components/OverlayGripContainer.d.ts +4 -0
- package/dist/esm/components/OverlayGripContainer.js +11 -0
- package/dist/esm/components/OverlayParticles.d.ts +5 -0
- package/dist/esm/components/OverlayParticles.js +54 -0
- package/dist/esm/components/PlanSelectorContainer.d.ts +3 -0
- package/dist/esm/components/PlanSelectorContainer.js +79 -0
- package/dist/esm/components/RebookingNotesContainer.d.ts +4 -0
- package/dist/esm/components/RebookingNotesContainer.js +8 -0
- package/dist/esm/components/RebookingRadioGroupContainer.d.ts +6 -0
- package/dist/esm/components/RebookingRadioGroupContainer.js +23 -0
- package/dist/esm/components/RoutePlanner/RoutePlanner.d.ts +5 -0
- package/dist/esm/components/RoutePlanner/RoutePlanner.js +25 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerHeader.d.ts +4 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerHeader.js +11 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerStartPoint.d.ts +9 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerStartPoint.js +21 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerStopItem.d.ts +9 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerStopItem.js +41 -0
- package/dist/esm/components/RouteQR.d.ts +12 -0
- package/dist/esm/components/RouteQR.js +10 -0
- package/dist/esm/components/Schedule.d.ts +13 -0
- package/dist/esm/components/Schedule.js +109 -0
- package/dist/esm/components/ScrollableRowContainer.d.ts +6 -0
- package/dist/esm/components/ScrollableRowContainer.js +11 -0
- package/dist/esm/components/Search.d.ts +5 -0
- package/dist/esm/components/Search.js +45 -0
- package/dist/esm/components/SearchBox.d.ts +7 -0
- package/dist/esm/components/SearchBox.js +171 -0
- package/dist/esm/components/SearchButtons/SearchButton.d.ts +20 -0
- package/dist/esm/components/SearchButtons/SearchButton.js +30 -0
- package/dist/esm/components/SearchButtons/SearchButtons.d.ts +4 -0
- package/dist/esm/components/SearchButtons/SearchButtons.js +25 -0
- package/dist/esm/components/SearchButtons/SearchSubButton.d.ts +14 -0
- package/dist/esm/components/SearchButtons/SearchSubButton.js +12 -0
- package/dist/esm/components/SearchButtons/SearchSubButtons.d.ts +5 -0
- package/dist/esm/components/SearchButtons/SearchSubButtons.js +43 -0
- package/dist/esm/components/SearchButtons/index.d.ts +7 -0
- package/dist/esm/components/SearchButtons/index.js +5 -0
- package/dist/esm/components/Sessions.d.ts +8 -0
- package/dist/esm/components/Sessions.js +128 -0
- package/dist/esm/components/SessionsFiltersModal.d.ts +11 -0
- package/dist/esm/components/SessionsFiltersModal.js +105 -0
- package/dist/esm/components/SessionsList.d.ts +12 -0
- package/dist/esm/components/SessionsList.js +212 -0
- package/dist/esm/components/ShareContainer.d.ts +7 -0
- package/dist/esm/components/ShareContainer.js +29 -0
- package/dist/esm/components/Shortcuts/ShortcutButton.d.ts +9 -0
- package/dist/esm/components/Shortcuts/ShortcutButton.js +25 -0
- package/dist/esm/components/Shortcuts/ShortcutsFiltersButton.d.ts +9 -0
- package/dist/esm/components/Shortcuts/ShortcutsFiltersButton.js +41 -0
- package/dist/esm/components/Shortcuts/ShortcutsToolbar.d.ts +10 -0
- package/dist/esm/components/Shortcuts/ShortcutsToolbar.js +22 -0
- package/dist/esm/components/Shortcuts/index.d.ts +4 -0
- package/dist/esm/components/Shortcuts/index.js +4 -0
- package/dist/esm/components/ShowMoreButtonContainer.d.ts +5 -0
- package/dist/esm/components/ShowMoreButtonContainer.js +8 -0
- package/dist/esm/components/SidebarActionsContainer.d.ts +5 -0
- package/dist/esm/components/SidebarActionsContainer.js +8 -0
- package/dist/esm/components/SimpleRowContainer.d.ts +8 -0
- package/dist/esm/components/SimpleRowContainer.js +8 -0
- package/dist/esm/components/Speaker.d.ts +5 -0
- package/dist/esm/components/Speaker.js +72 -0
- package/dist/esm/components/Speakers.d.ts +8 -0
- package/dist/esm/components/Speakers.js +63 -0
- package/dist/esm/components/SpeakersFiltersModal.d.ts +11 -0
- package/dist/esm/components/SpeakersFiltersModal.js +77 -0
- package/dist/esm/components/TourPoints.d.ts +4 -0
- package/dist/esm/components/TourPoints.js +20 -0
- package/dist/esm/components/Tours.d.ts +7 -0
- package/dist/esm/components/Tours.js +54 -0
- package/dist/esm/components/ToursList.d.ts +10 -0
- package/dist/esm/components/ToursList.js +22 -0
- package/dist/esm/components/ViewerMenuPanel.d.ts +5 -0
- package/dist/esm/components/ViewerMenuPanel.js +61 -0
- package/dist/esm/components/Visited.d.ts +4 -0
- package/dist/esm/components/Visited.js +13 -0
- package/dist/esm/components/WayInformation.d.ts +14 -0
- package/dist/esm/components/WayInformation.js +8 -0
- package/dist/esm/components/Wayfinding.d.ts +4 -0
- package/dist/esm/components/Wayfinding.js +285 -0
- package/dist/esm/components/WayfindingFloorSelectorContainer.d.ts +5 -0
- package/dist/esm/components/WayfindingFloorSelectorContainer.js +12 -0
- package/dist/esm/components/WayfindingTemplate.d.ts +66 -0
- package/dist/esm/components/WayfindingTemplate.js +14 -0
- package/dist/esm/components/Ws.d.ts +5 -0
- package/dist/esm/components/Ws.js +131 -0
- package/dist/esm/components/YahRow.d.ts +8 -0
- package/dist/esm/components/YahRow.js +25 -0
- package/dist/esm/components/gps/GpsManager.d.ts +13 -0
- package/dist/esm/components/gps/GpsManager.js +60 -0
- package/dist/esm/components/gps/GpsPermissionRequest.d.ts +8 -0
- package/dist/esm/components/gps/GpsPermissionRequest.js +10 -0
- package/dist/esm/components/gps/index.d.ts +5 -0
- package/dist/esm/components/gps/index.js +3 -0
- package/dist/esm/components/gps/types.d.ts +7 -0
- package/dist/esm/components/gps/types.js +1 -0
- package/dist/esm/components/gps/useUserLocationAndHeading.d.ts +8 -0
- package/dist/esm/components/gps/useUserLocationAndHeading.js +122 -0
- package/dist/esm/components/gps/utils.d.ts +5 -0
- package/dist/esm/components/gps/utils.js +11 -0
- package/dist/esm/components/heatmap-legend-ticks.d.ts +11 -0
- package/dist/esm/components/heatmap-legend-ticks.js +18 -0
- package/dist/esm/components/index.d.ts +114 -0
- package/dist/esm/components/index.js +76 -0
- package/dist/esm/components/utils/entity-venue-grouping.d.ts +32 -0
- package/dist/esm/components/utils/entity-venue-grouping.js +43 -0
- package/dist/esm/components/utils/getDescription.d.ts +19 -0
- package/dist/esm/components/utils/getDescription.js +35 -0
- package/dist/esm/constants.d.ts +44 -0
- package/dist/esm/constants.js +66 -0
- package/dist/esm/data/fp-payloads.d.ts +27 -0
- package/dist/esm/data/fp-payloads.js +53 -0
- package/dist/esm/data/fpGeo.d.ts +45 -0
- package/dist/esm/data/fpGeo.js +9 -0
- package/dist/esm/data/index.d.ts +15 -0
- package/dist/esm/data/index.js +15 -0
- package/dist/esm/data/layer-viewbox.d.ts +10 -0
- package/dist/esm/data/layer-viewbox.js +20 -0
- package/dist/esm/data/svg.d.ts +43 -0
- package/dist/esm/data/svg.js +210 -0
- package/dist/esm/data/tours.json +280 -0
- package/dist/esm/data/venue-scene-preload.d.ts +34 -0
- package/dist/esm/data/venue-scene-preload.js +205 -0
- package/dist/esm/data/venues.d.ts +145 -0
- package/dist/esm/data/venues.js +955 -0
- package/dist/esm/engine/defs.d.ts +38 -0
- package/dist/esm/engine/defs.js +85 -0
- package/dist/esm/engine/fonts.d.ts +9 -0
- package/dist/esm/engine/fonts.js +12 -0
- package/dist/esm/engine/update-def.d.ts +55 -0
- package/dist/esm/engine/update-def.js +127 -0
- package/dist/esm/engine/utils/rotation.d.ts +13 -0
- package/dist/esm/engine/utils/rotation.js +73 -0
- package/dist/esm/floorplan.loader.d.ts +164 -0
- package/dist/esm/floorplan.loader.js +540 -0
- package/dist/esm/floorplan.ready.d.ts +149 -0
- package/dist/esm/floorplan.ready.js +1093 -0
- package/dist/esm/hooks/useURLFilters.d.ts +15 -0
- package/dist/esm/hooks/useURLFilters.js +44 -0
- package/dist/esm/index.d.ts +3 -0
- package/dist/esm/index.js +12 -0
- package/dist/esm/intercom/bootIntercom.d.ts +3 -0
- package/dist/esm/intercom/bootIntercom.js +47 -0
- package/dist/esm/intercom/index.d.ts +3 -0
- package/dist/esm/intercom/index.js +1 -0
- package/dist/esm/intercom/shouldLoad.d.ts +4 -0
- package/dist/esm/intercom/shouldLoad.js +74 -0
- package/dist/esm/intercom/types.d.ts +6 -0
- package/dist/esm/intercom/types.js +1 -0
- package/dist/esm/internal-settings.d.ts +13 -0
- package/dist/esm/internal-settings.js +6 -0
- package/dist/esm/journey/external-navigation.d.ts +30 -0
- package/dist/esm/journey/external-navigation.js +38 -0
- package/dist/esm/journey/format-distance.d.ts +14 -0
- package/dist/esm/journey/format-distance.js +38 -0
- package/dist/esm/journey/index.d.ts +16 -0
- package/dist/esm/journey/index.js +15 -0
- package/dist/esm/journey/journey-context.d.ts +140 -0
- package/dist/esm/journey/journey-context.js +137 -0
- package/dist/esm/journey/journey-link.d.ts +49 -0
- package/dist/esm/journey/journey-link.js +35 -0
- package/dist/esm/journey/journey-stage.d.ts +35 -0
- package/dist/esm/journey/journey-stage.js +28 -0
- package/dist/esm/journey/maps-provider.d.ts +36 -0
- package/dist/esm/journey/maps-provider.js +58 -0
- package/dist/esm/journey/plan-journey.d.ts +37 -0
- package/dist/esm/journey/plan-journey.js +176 -0
- package/dist/esm/journey/types.d.ts +294 -0
- package/dist/esm/journey/types.js +1 -0
- package/dist/esm/load-dev.d.ts +44 -0
- package/dist/esm/load-dev.js +60 -0
- package/dist/esm/load.d.ts +17 -0
- package/dist/esm/load.js +244 -0
- package/dist/esm/locales.d.ts +25 -0
- package/dist/esm/locales.js +23 -0
- package/dist/esm/offline/constants.d.ts +5 -0
- package/dist/esm/offline/constants.js +4 -0
- package/dist/esm/offline/offlineManager.d.ts +2 -0
- package/dist/esm/offline/offlineManager.js +78 -0
- package/dist/esm/plan-lifecycle.d.ts +65 -0
- package/dist/esm/plan-lifecycle.js +97 -0
- package/dist/esm/schemas/sdk.schemas.d.ts +25 -0
- package/dist/esm/schemas/sdk.schemas.js +24 -0
- package/dist/esm/services/URLFilterManager.d.ts +39 -0
- package/dist/esm/services/URLFilterManager.js +379 -0
- package/dist/esm/services/multi-slug.d.ts +20 -0
- package/dist/esm/services/multi-slug.js +30 -0
- package/dist/esm/services/url-dispatch.d.ts +22 -0
- package/dist/esm/services/url-dispatch.js +707 -0
- package/dist/esm/services/url-sync.d.ts +40 -0
- package/dist/esm/services/url-sync.js +185 -0
- package/dist/esm/store/BaseFilterStore.d.ts +17 -0
- package/dist/esm/store/BaseFilterStore.js +63 -0
- package/dist/esm/store/BookmarksStore.d.ts +9 -0
- package/dist/esm/store/BookmarksStore.js +28 -0
- package/dist/esm/store/BoothStore.d.ts +105 -0
- package/dist/esm/store/BoothStore.js +194 -0
- package/dist/esm/store/CategoryFilterStore.d.ts +13 -0
- package/dist/esm/store/CategoryFilterStore.js +60 -0
- package/dist/esm/store/CategoryStore.d.ts +21 -0
- package/dist/esm/store/CategoryStore.js +30 -0
- package/dist/esm/store/EventStore.d.ts +56 -0
- package/dist/esm/store/EventStore.js +188 -0
- package/dist/esm/store/ExhibitorStore.d.ts +86 -0
- package/dist/esm/store/ExhibitorStore.js +175 -0
- package/dist/esm/store/FuzzySearchEngineStore.d.ts +15 -0
- package/dist/esm/store/FuzzySearchEngineStore.js +45 -0
- package/dist/esm/store/HeatmapStore.d.ts +51 -0
- package/dist/esm/store/HeatmapStore.js +100 -0
- package/dist/esm/store/IntercomStore.d.ts +7 -0
- package/dist/esm/store/IntercomStore.js +26 -0
- package/dist/esm/store/LayerStore.d.ts +70 -0
- package/dist/esm/store/LayerStore.js +399 -0
- package/dist/esm/store/MaplibreStore.d.ts +71 -0
- package/dist/esm/store/MaplibreStore.js +137 -0
- package/dist/esm/store/OverlayStore.d.ts +32 -0
- package/dist/esm/store/OverlayStore.js +68 -0
- package/dist/esm/store/PoiMarkerStore.d.ts +76 -0
- package/dist/esm/store/PoiMarkerStore.js +97 -0
- package/dist/esm/store/PoiTypeStore.d.ts +8 -0
- package/dist/esm/store/PoiTypeStore.js +6 -0
- package/dist/esm/store/RootStore.d.ts +118 -0
- package/dist/esm/store/RootStore.js +666 -0
- package/dist/esm/store/RoutePlannerStore.d.ts +56 -0
- package/dist/esm/store/RoutePlannerStore.js +322 -0
- package/dist/esm/store/RouteStore.d.ts +138 -0
- package/dist/esm/store/RouteStore.js +697 -0
- package/dist/esm/store/SearchButtonsStore.d.ts +2 -0
- package/dist/esm/store/SearchButtonsStore.js +2 -0
- package/dist/esm/store/SearchStore.d.ts +81 -0
- package/dist/esm/store/SearchStore.js +612 -0
- package/dist/esm/store/SessionsFilterStore.d.ts +53 -0
- package/dist/esm/store/SessionsFilterStore.js +169 -0
- package/dist/esm/store/ShortcutProvider.d.ts +26 -0
- package/dist/esm/store/ShortcutProvider.js +5 -0
- package/dist/esm/store/ShortcutRegistry.d.ts +33 -0
- package/dist/esm/store/ShortcutRegistry.js +130 -0
- package/dist/esm/store/SpeakerFilterStore.d.ts +39 -0
- package/dist/esm/store/SpeakerFilterStore.js +152 -0
- package/dist/esm/store/SpeakerStore.d.ts +45 -0
- package/dist/esm/store/SpeakerStore.js +142 -0
- package/dist/esm/store/SubButtonProvider.d.ts +16 -0
- package/dist/esm/store/SubButtonProvider.js +6 -0
- package/dist/esm/store/SubButtonRegistry.d.ts +16 -0
- package/dist/esm/store/SubButtonRegistry.js +58 -0
- package/dist/esm/store/ToursStore.d.ts +30 -0
- package/dist/esm/store/ToursStore.js +184 -0
- package/dist/esm/store/UIState.d.ts +329 -0
- package/dist/esm/store/UIState.js +2138 -0
- package/dist/esm/store/VenueStore.d.ts +254 -0
- package/dist/esm/store/VenueStore.js +650 -0
- package/dist/esm/store/create-live-plan.d.ts +13 -0
- package/dist/esm/store/create-live-plan.js +25 -0
- package/dist/esm/store/details-events.d.ts +11 -0
- package/dist/esm/store/details-events.js +76 -0
- package/dist/esm/store/floor-activated-notifier.d.ts +18 -0
- package/dist/esm/store/floor-activated-notifier.js +22 -0
- package/dist/esm/store/index.d.ts +3 -0
- package/dist/esm/store/index.js +14 -0
- package/dist/esm/store/init/index.d.ts +3 -0
- package/dist/esm/store/init/index.js +20 -0
- package/dist/esm/store/init/init-booths.d.ts +6 -0
- package/dist/esm/store/init/init-booths.js +306 -0
- package/dist/esm/store/init/init-categories.d.ts +3 -0
- package/dist/esm/store/init/init-categories.js +28 -0
- package/dist/esm/store/init/init-events.d.ts +3 -0
- package/dist/esm/store/init/init-events.js +45 -0
- package/dist/esm/store/init/init-exhibitors.d.ts +3 -0
- package/dist/esm/store/init/init-exhibitors.js +71 -0
- package/dist/esm/store/init/init-heatmap.d.ts +3 -0
- package/dist/esm/store/init/init-heatmap.js +37 -0
- package/dist/esm/store/init/init-layers.d.ts +8 -0
- package/dist/esm/store/init/init-layers.js +151 -0
- package/dist/esm/store/init/init-poiTypes.d.ts +3 -0
- package/dist/esm/store/init/init-poiTypes.js +6 -0
- package/dist/esm/store/init/init-speakers.d.ts +3 -0
- package/dist/esm/store/init/init-speakers.js +20 -0
- package/dist/esm/store/init/init-ui.d.ts +13 -0
- package/dist/esm/store/init/init-ui.js +155 -0
- package/dist/esm/store/journey-plan.d.ts +89 -0
- package/dist/esm/store/journey-plan.js +291 -0
- package/dist/esm/store/live-store.d.ts +19 -0
- package/dist/esm/store/live-store.js +26 -0
- package/dist/esm/store/outdoor-poi-filter.d.ts +21 -0
- package/dist/esm/store/outdoor-poi-filter.js +33 -0
- package/dist/esm/store/providers/SearchShortcutProvider.d.ts +13 -0
- package/dist/esm/store/providers/SearchShortcutProvider.js +59 -0
- package/dist/esm/store/providers/SessionsShortcutProvider.d.ts +17 -0
- package/dist/esm/store/providers/SessionsShortcutProvider.js +221 -0
- package/dist/esm/store/providers/SessionsSubButtonProvider.d.ts +33 -0
- package/dist/esm/store/providers/SessionsSubButtonProvider.js +100 -0
- package/dist/esm/store/providers/SpeakerShortcutProvider.d.ts +12 -0
- package/dist/esm/store/providers/SpeakerShortcutProvider.js +73 -0
- package/dist/esm/store/reveal-layer.d.ts +29 -0
- package/dist/esm/store/reveal-layer.js +25 -0
- package/dist/esm/store/search-buttons/SearchButtonsActions.d.ts +55 -0
- package/dist/esm/store/search-buttons/SearchButtonsActions.js +363 -0
- package/dist/esm/store/search-buttons/SearchButtonsFactory.d.ts +37 -0
- package/dist/esm/store/search-buttons/SearchButtonsFactory.js +291 -0
- package/dist/esm/store/search-buttons/SearchButtonsFilters.d.ts +20 -0
- package/dist/esm/store/search-buttons/SearchButtonsFilters.js +157 -0
- package/dist/esm/store/search-buttons/SearchButtonsState.d.ts +24 -0
- package/dist/esm/store/search-buttons/SearchButtonsState.js +125 -0
- package/dist/esm/store/search-buttons/SearchButtonsStore.d.ts +73 -0
- package/dist/esm/store/search-buttons/SearchButtonsStore.js +364 -0
- package/dist/esm/store/search-buttons/constants.d.ts +24 -0
- package/dist/esm/store/search-buttons/constants.js +24 -0
- package/dist/esm/store/search-buttons/index.d.ts +8 -0
- package/dist/esm/store/search-buttons/index.js +7 -0
- package/dist/esm/store/search-buttons/utils.d.ts +6 -0
- package/dist/esm/store/search-buttons/utils.js +34 -0
- package/dist/esm/store/types.d.ts +213 -0
- package/dist/esm/store/types.js +1 -0
- package/dist/esm/store/venue-public.d.ts +10 -0
- package/dist/esm/store/venue-public.js +14 -0
- package/dist/esm/store/venue-selection.d.ts +45 -0
- package/dist/esm/store/venue-selection.js +101 -0
- package/dist/esm/test/store-harness.d.ts +32 -0
- package/dist/esm/test/store-harness.js +116 -0
- package/dist/esm/tools/base-runtime-url.d.ts +3 -0
- package/dist/esm/tools/base-runtime-url.js +23 -0
- package/dist/esm/tools/debounce.d.ts +2 -0
- package/dist/esm/tools/debounce.js +10 -0
- package/dist/esm/tools/debugCanvases.d.ts +3 -0
- package/dist/esm/tools/debugCanvases.js +3 -0
- package/dist/esm/tools/event-not-found.d.ts +18 -0
- package/dist/esm/tools/event-not-found.js +50 -0
- package/dist/esm/tools/event-scoped-cache.d.ts +13 -0
- package/dist/esm/tools/event-scoped-cache.js +47 -0
- package/dist/esm/tools/expofpUrl.d.ts +7 -0
- package/dist/esm/tools/expofpUrl.js +10 -0
- package/dist/esm/tools/freeBanner.d.ts +5 -0
- package/dist/esm/tools/freeBanner.js +11 -0
- package/dist/esm/tools/gtag.d.ts +66 -0
- package/dist/esm/tools/gtag.js +287 -0
- package/dist/esm/tools/handleDebugMode.d.ts +19 -0
- package/dist/esm/tools/handleDebugMode.js +61 -0
- package/dist/esm/tools/has-html-tags.d.ts +2 -0
- package/dist/esm/tools/has-html-tags.js +3 -0
- package/dist/esm/tools/id.d.ts +2 -0
- package/dist/esm/tools/id.js +5 -0
- package/dist/esm/tools/loaders.d.ts +5 -0
- package/dist/esm/tools/loaders.js +67 -0
- package/dist/esm/tools/logger.d.ts +38 -0
- package/dist/esm/tools/logger.js +87 -0
- package/dist/esm/tools/rebooking-config.d.ts +10 -0
- package/dist/esm/tools/rebooking-config.js +19 -0
- package/dist/esm/tools/rebookingUrl.d.ts +11 -0
- package/dist/esm/tools/rebookingUrl.js +27 -0
- package/dist/esm/tools/report-error.d.ts +2 -0
- package/dist/esm/tools/report-error.js +134 -0
- package/dist/esm/tools/reset.d.ts +2 -0
- package/dist/esm/tools/reset.js +35 -0
- package/dist/esm/tools/sdk-telemetry.d.ts +10 -0
- package/dist/esm/tools/sdk-telemetry.js +122 -0
- package/dist/esm/tools/sentry.d.ts +7 -0
- package/dist/esm/tools/sentry.js +166 -0
- package/dist/esm/tools/settings.d.ts +36 -0
- package/dist/esm/tools/settings.js +110 -0
- package/dist/esm/tools/slug.d.ts +2 -0
- package/dist/esm/tools/slug.js +27 -0
- package/dist/esm/tools/strip-html.d.ts +2 -0
- package/dist/esm/tools/strip-html.js +7 -0
- package/dist/esm/tools/style-registry.d.ts +28 -0
- package/dist/esm/tools/style-registry.js +46 -0
- package/dist/esm/tools/telemetry.d.ts +37 -0
- package/dist/esm/tools/telemetry.js +266 -0
- package/dist/esm/tools/track-event.d.ts +28 -0
- package/dist/esm/tools/track-event.js +196 -0
- package/dist/esm/tools/webgl-logger.d.ts +2 -0
- package/dist/esm/tools/webgl-logger.js +31 -0
- package/dist/esm/types/drawing.types.d.ts +18 -0
- package/dist/esm/types/drawing.types.js +1 -0
- package/dist/esm/types/sdk.types.d.ts +49 -0
- package/dist/esm/types/sdk.types.js +6 -0
- package/dist/esm/types.d.ts +593 -0
- package/dist/esm/types.js +1 -0
- package/dist/esm/utils/_OLD_gpu-info.d.ts +6 -0
- package/dist/esm/utils/_OLD_gpu-info.js +23 -0
- package/dist/esm/utils/_OLD_should-use-backdrop.d.ts +3 -0
- package/dist/esm/utils/_OLD_should-use-backdrop.js +4 -0
- package/dist/esm/utils/areLayersEnabled.d.ts +2 -0
- package/dist/esm/utils/areLayersEnabled.js +4 -0
- package/dist/esm/utils/blob-image-size.d.ts +27 -0
- package/dist/esm/utils/blob-image-size.js +37 -0
- package/dist/esm/utils/brand.d.ts +18 -0
- package/dist/esm/utils/brand.js +19 -0
- package/dist/esm/utils/browser.d.ts +4 -0
- package/dist/esm/utils/browser.js +4 -0
- package/dist/esm/utils/calcSpeed.d.ts +2 -0
- package/dist/esm/utils/calcSpeed.js +5 -0
- package/dist/esm/utils/calcTravelTime.d.ts +2 -0
- package/dist/esm/utils/calcTravelTime.js +3 -0
- package/dist/esm/utils/camera-map-settings.d.ts +26 -0
- package/dist/esm/utils/camera-map-settings.js +86 -0
- package/dist/esm/utils/color-gradient.d.ts +2 -0
- package/dist/esm/utils/color-gradient.js +14 -0
- package/dist/esm/utils/customCommands.d.ts +2 -0
- package/dist/esm/utils/customCommands.js +33 -0
- package/dist/esm/utils/detectLimitedModeViaImage.d.ts +2 -0
- package/dist/esm/utils/detectLimitedModeViaImage.js +33 -0
- package/dist/esm/utils/dimming.d.ts +27 -0
- package/dist/esm/utils/dimming.js +88 -0
- package/dist/esm/utils/entity-storage.d.ts +14 -0
- package/dist/esm/utils/entity-storage.js +122 -0
- package/dist/esm/utils/event-head.d.ts +38 -0
- package/dist/esm/utils/event-head.js +90 -0
- package/dist/esm/utils/event-now.d.ts +11 -0
- package/dist/esm/utils/event-now.js +40 -0
- package/dist/esm/utils/event-title.d.ts +19 -0
- package/dist/esm/utils/event-title.js +20 -0
- package/dist/esm/utils/eventFullBadge.d.ts +3 -0
- package/dist/esm/utils/eventFullBadge.js +7 -0
- package/dist/esm/utils/eventTime.d.ts +15 -0
- package/dist/esm/utils/eventTime.js +82 -0
- package/dist/esm/utils/extractMetaFromString.d.ts +5 -0
- package/dist/esm/utils/extractMetaFromString.js +16 -0
- package/dist/esm/utils/geo-anchors.d.ts +10 -0
- package/dist/esm/utils/geo-anchors.js +12 -0
- package/dist/esm/utils/geometry.d.ts +2 -0
- package/dist/esm/utils/geometry.js +12 -0
- package/dist/esm/utils/getContrastTextColor.d.ts +2 -0
- package/dist/esm/utils/getContrastTextColor.js +26 -0
- package/dist/esm/utils/getLogoUrl.d.ts +9 -0
- package/dist/esm/utils/getLogoUrl.js +26 -0
- package/dist/esm/utils/getMostFrequent.d.ts +2 -0
- package/dist/esm/utils/getMostFrequent.js +14 -0
- package/dist/esm/utils/getRenderTargetFromRoot.d.ts +2 -0
- package/dist/esm/utils/getRenderTargetFromRoot.js +19 -0
- package/dist/esm/utils/gps.d.ts +40 -0
- package/dist/esm/utils/gps.js +66 -0
- package/dist/esm/utils/heatmap-enabled.d.ts +13 -0
- package/dist/esm/utils/heatmap-enabled.js +13 -0
- package/dist/esm/utils/i18n.d.ts +18 -0
- package/dist/esm/utils/i18n.js +117 -0
- package/dist/esm/utils/index.d.ts +10 -0
- package/dist/esm/utils/index.js +60 -0
- package/dist/esm/utils/is-debug.d.ts +3 -0
- package/dist/esm/utils/is-debug.js +9 -0
- package/dist/esm/utils/is-from-designer.d.ts +3 -0
- package/dist/esm/utils/is-from-designer.js +4 -0
- package/dist/esm/utils/is-iframe.d.ts +3 -0
- package/dist/esm/utils/is-iframe.js +13 -0
- package/dist/esm/utils/is-localhost.d.ts +3 -0
- package/dist/esm/utils/is-localhost.js +11 -0
- package/dist/esm/utils/is-mac.d.ts +3 -0
- package/dist/esm/utils/is-mac.js +2 -0
- package/dist/esm/utils/is-mobile.d.ts +3 -0
- package/dist/esm/utils/is-mobile.js +2 -0
- package/dist/esm/utils/is-own-domain.d.ts +12 -0
- package/dist/esm/utils/is-own-domain.js +23 -0
- package/dist/esm/utils/is-pathway-layer.d.ts +2 -0
- package/dist/esm/utils/is-pathway-layer.js +4 -0
- package/dist/esm/utils/is-phone.d.ts +9 -0
- package/dist/esm/utils/is-phone.js +17 -0
- package/dist/esm/utils/is-scroll-ugly.d.ts +3 -0
- package/dist/esm/utils/is-scroll-ugly.js +13 -0
- package/dist/esm/utils/is-webview.d.ts +3 -0
- package/dist/esm/utils/is-webview.js +2 -0
- package/dist/esm/utils/isNumericLevel.d.ts +2 -0
- package/dist/esm/utils/isNumericLevel.js +3 -0
- package/dist/esm/utils/lazy-qr-code.d.ts +5 -0
- package/dist/esm/utils/lazy-qr-code.js +6 -0
- package/dist/esm/utils/legacy-storage-keys.d.ts +16 -0
- package/dist/esm/utils/legacy-storage-keys.js +38 -0
- package/dist/esm/utils/loadBlob.d.ts +16 -0
- package/dist/esm/utils/loadBlob.js +40 -0
- package/dist/esm/utils/loadCustomCss.d.ts +3 -0
- package/dist/esm/utils/loadCustomCss.js +19 -0
- package/dist/esm/utils/loadIcons.d.ts +3 -0
- package/dist/esm/utils/loadIcons.js +24 -0
- package/dist/esm/utils/loadImage.d.ts +2 -0
- package/dist/esm/utils/loadImage.js +11 -0
- package/dist/esm/utils/loadImagesInBatches.d.ts +22 -0
- package/dist/esm/utils/loadImagesInBatches.js +82 -0
- package/dist/esm/utils/loadLayerImages.d.ts +41 -0
- package/dist/esm/utils/loadLayerImages.js +107 -0
- package/dist/esm/utils/localStorage.d.ts +2 -0
- package/dist/esm/utils/localStorage.js +11 -0
- package/dist/esm/utils/lz-utils.d.ts +8 -0
- package/dist/esm/utils/lz-utils.js +16 -0
- package/dist/esm/utils/mapEntity.d.ts +3 -0
- package/dist/esm/utils/mapEntity.js +82 -0
- package/dist/esm/utils/math.d.ts +6 -0
- package/dist/esm/utils/math.js +7 -0
- package/dist/esm/utils/mobx.d.ts +35 -0
- package/dist/esm/utils/mobx.js +74 -0
- package/dist/esm/utils/outdoor-poi.d.ts +32 -0
- package/dist/esm/utils/outdoor-poi.js +28 -0
- package/dist/esm/utils/plan-reactions.d.ts +20 -0
- package/dist/esm/utils/plan-reactions.js +26 -0
- package/dist/esm/utils/planBearing.d.ts +14 -0
- package/dist/esm/utils/planBearing.js +15 -0
- package/dist/esm/utils/preview-exhibitor.d.ts +11 -0
- package/dist/esm/utils/preview-exhibitor.js +19 -0
- package/dist/esm/utils/rasterize-svg.d.ts +32 -0
- package/dist/esm/utils/rasterize-svg.js +78 -0
- package/dist/esm/utils/responsiveClass.d.ts +2 -0
- package/dist/esm/utils/responsiveClass.js +25 -0
- package/dist/esm/utils/rtl.d.ts +2 -0
- package/dist/esm/utils/rtl.js +4 -0
- package/dist/esm/utils/sanitizeHtml.d.ts +3 -0
- package/dist/esm/utils/sanitizeHtml.js +21 -0
- package/dist/esm/utils/sanitizeText.d.ts +9 -0
- package/dist/esm/utils/sanitizeText.js +19 -0
- package/dist/esm/utils/scene-bounds.d.ts +64 -0
- package/dist/esm/utils/scene-bounds.js +127 -0
- package/dist/esm/utils/shortenName.d.ts +2 -0
- package/dist/esm/utils/shortenName.js +19 -0
- package/dist/esm/utils/silence-mobx-react-lite-warning.d.ts +2 -0
- package/dist/esm/utils/silence-mobx-react-lite-warning.js +24 -0
- package/dist/esm/utils/strEqual.d.ts +2 -0
- package/dist/esm/utils/strEqual.js +3 -0
- package/dist/esm/utils/swappable-proxy.d.ts +28 -0
- package/dist/esm/utils/swappable-proxy.js +71 -0
- package/dist/esm/utils/trackingParams.d.ts +3 -0
- package/dist/esm/utils/trackingParams.js +24 -0
- package/dist/esm/utils/urlEncoding.d.ts +7 -0
- package/dist/esm/utils/urlEncoding.js +62 -0
- package/dist/esm/utils/use-shadow.d.ts +3 -0
- package/dist/esm/utils/use-shadow.js +10 -0
- package/dist/esm/utils/useHeatmapData.d.ts +10 -0
- package/dist/esm/utils/useHeatmapData.js +8 -0
- package/dist/esm/utils/useHeatmapOverlay.d.ts +9 -0
- package/dist/esm/utils/useHeatmapOverlay.js +56 -0
- package/dist/esm/utils/useRenderTarget.d.ts +2 -0
- package/dist/esm/utils/useRenderTarget.js +35 -0
- package/dist/esm/utils/yah_icon.d.ts +6 -0
- package/dist/esm/utils/yah_icon.js +457 -0
- package/dist/esm/wayfinding/adapters/arbitraryPoint.d.ts +32 -0
- package/dist/esm/wayfinding/adapters/arbitraryPoint.js +25 -0
- package/dist/esm/wayfinding/adapters/boothToEndpoint.d.ts +19 -0
- package/dist/esm/wayfinding/adapters/boothToEndpoint.js +32 -0
- package/dist/esm/wayfinding/adapters/campusEndpoints.d.ts +13 -0
- package/dist/esm/wayfinding/adapters/campusEndpoints.js +25 -0
- package/dist/esm/wayfinding/adapters/canvasIconProvider.d.ts +20 -0
- package/dist/esm/wayfinding/adapters/canvasIconProvider.js +73 -0
- package/dist/esm/wayfinding/adapters/floorContext.d.ts +20 -0
- package/dist/esm/wayfinding/adapters/floorContext.js +43 -0
- package/dist/esm/wayfinding/adapters/graphDataSource.d.ts +49 -0
- package/dist/esm/wayfinding/adapters/graphDataSource.js +87 -0
- package/dist/esm/wayfinding/adapters/index.d.ts +10 -0
- package/dist/esm/wayfinding/adapters/index.js +8 -0
- package/dist/esm/wayfinding/adapters/kioskCanvas.d.ts +7 -0
- package/dist/esm/wayfinding/adapters/kioskCanvas.js +22 -0
- package/dist/esm/wayfinding/adapters/positionInput.d.ts +12 -0
- package/dist/esm/wayfinding/adapters/positionInput.js +16 -0
- package/dist/esm/wayfinding/bindMobxReactions.d.ts +28 -0
- package/dist/esm/wayfinding/bindMobxReactions.js +171 -0
- package/dist/esm/wayfinding/createWayfinding.d.ts +34 -0
- package/dist/esm/wayfinding/createWayfinding.js +184 -0
- package/dist/esm/wayfinding/handlers/kioskHandler.d.ts +26 -0
- package/dist/esm/wayfinding/handlers/kioskHandler.js +52 -0
- package/dist/esm/wayfinding/handlers/yahHandler.d.ts +21 -0
- package/dist/esm/wayfinding/handlers/yahHandler.js +42 -0
- package/dist/esm/wayfinding/index.d.ts +12 -0
- package/dist/esm/wayfinding/index.js +9 -0
- package/dist/esm/wayfinding/routeSteps.d.ts +15 -0
- package/dist/esm/wayfinding/routeSteps.js +29 -0
- package/dist/esm/wayfinding/storePorts.d.ts +67 -0
- package/dist/esm/wayfinding/storePorts.js +1 -0
- package/package.json +146 -0
|
@@ -0,0 +1,1093 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Box } from '@expofp/geometry';
|
|
3
|
+
import { CameraSchema, SessionsFiltersSchema, } from '@expofp/schema';
|
|
4
|
+
import { optimizeWaypointOrder } from '@expofp/wayfinding';
|
|
5
|
+
import { ErrorBoundary as SentryErrorBoundary } from '@sentry/react';
|
|
6
|
+
import debug from 'debug';
|
|
7
|
+
import { reaction, runInAction } from 'mobx';
|
|
8
|
+
import { createRoot } from 'react-dom/client';
|
|
9
|
+
import { install } from 'resize-observer';
|
|
10
|
+
import Layout from './components/Layout';
|
|
11
|
+
import { bindBoothHitTest } from './components/Map/booth-by-xy.js';
|
|
12
|
+
import { MAX_ROUTE_WAYPOINTS } from './constants';
|
|
13
|
+
import data from './data';
|
|
14
|
+
import { getFpGeo } from './data/fpGeo.js';
|
|
15
|
+
import FloorPlanLoader from './floorplan.loader';
|
|
16
|
+
import { shouldLoadIntercom } from './intercom';
|
|
17
|
+
import { registerPlanDisposer } from './plan-lifecycle.js';
|
|
18
|
+
import { BoundsSchema, POISelectorsSchema, ZoomToOptionsSchema } from './schemas/sdk.schemas';
|
|
19
|
+
import { applyDeclarativeConfig, applyParameters, applyPathway, initUrlRouting, } from './services/url-dispatch';
|
|
20
|
+
import store, { uiState } from './store';
|
|
21
|
+
import { bindDetailsEvents } from './store/details-events';
|
|
22
|
+
import { bindRootElement } from './store/init/init-ui.js';
|
|
23
|
+
import { bindJourneyProgress } from './store/journey-plan';
|
|
24
|
+
import { findBooth, Route, separateExternalIds, } from './store/RouteStore';
|
|
25
|
+
import { toPublicVenue } from './store/venue-public';
|
|
26
|
+
import { GaEventActions, initGtag, sendEventToGa, setConsentSettings } from './tools/gtag.js';
|
|
27
|
+
import { queuePositionTelemetry, sendSdkTelemetry } from './tools/sdk-telemetry.js';
|
|
28
|
+
import settings from './tools/settings';
|
|
29
|
+
import trackEvent from './tools/track-event.js';
|
|
30
|
+
import { cameraToMapSettings, mapSettingsToCamera } from './utils/camera-map-settings';
|
|
31
|
+
import { getStorage } from './utils/entity-storage';
|
|
32
|
+
import { getMostFrequent } from './utils/getMostFrequent';
|
|
33
|
+
import { convertLocalToGps, isValidPointCoords } from './utils/gps';
|
|
34
|
+
import { getLocales, hasLocale, setLocale } from './utils/i18n';
|
|
35
|
+
import { mapEntity } from './utils/mapEntity';
|
|
36
|
+
const log = debug('efp:api');
|
|
37
|
+
install();
|
|
38
|
+
export default class FloorPlanReady extends FloorPlanLoader {
|
|
39
|
+
init() {
|
|
40
|
+
// First, so anything below that sends a GA event finds the property configured.
|
|
41
|
+
initGtag();
|
|
42
|
+
// the declarative config nodes apply in every mode — `ignoreQuery` gates
|
|
43
|
+
// only the URL parsing and sync (loadConfig already kept the URL slice
|
|
44
|
+
// out of the config under it)
|
|
45
|
+
applyDeclarativeConfig();
|
|
46
|
+
if (!this.ignoreQuery) {
|
|
47
|
+
initUrlRouting(this.offHistory);
|
|
48
|
+
}
|
|
49
|
+
trackEvent('load');
|
|
50
|
+
sendSdkTelemetry('load');
|
|
51
|
+
// `initUi` already bound the container the loader created; re-point before
|
|
52
|
+
// the UI mounts so the measurement is taken against the render target this
|
|
53
|
+
// instance actually uses.
|
|
54
|
+
bindRootElement(store);
|
|
55
|
+
store.fp = this;
|
|
56
|
+
// The SDK's onDetails event follows the store, not any renderer, so it is bound with the rest
|
|
57
|
+
// of the instance wiring — it must fire in the MapLibre embed too, where the plan's own map is
|
|
58
|
+
// unmounted entirely.
|
|
59
|
+
registerPlanDisposer(bindDetailsEvents());
|
|
60
|
+
// The pointer seam's geometry hit test follows the stores for as long as the plan lives — in
|
|
61
|
+
// both map modes, which is why it binds here rather than under either map component.
|
|
62
|
+
bindBoothHitTest();
|
|
63
|
+
setConsentSettings(this.consent);
|
|
64
|
+
sendEventToGa(GaEventActions.Load, ``);
|
|
65
|
+
this.root = createRoot(this.renderTarget);
|
|
66
|
+
this.root.render(_jsx(SentryErrorBoundary, { children: _jsx(Layout, { offHistory: this.offHistory, consent: this.consent }) }));
|
|
67
|
+
sendEventToGa(GaEventActions.Rendered, ``);
|
|
68
|
+
registerPlanDisposer(reaction(() => store.layerStore.layersLoaded, () => {
|
|
69
|
+
// The loader's spinner and anything else the host left in the element, cleared here
|
|
70
|
+
// rather than before `init()`: this is the latest point the SDK knows about, and it is
|
|
71
|
+
// some 300ms closer to the frame that first draws the plan. Runs before `resolveReady`,
|
|
72
|
+
// so a caller awaiting `ready` still finds the element holding the plan alone.
|
|
73
|
+
//
|
|
74
|
+
// The shadow container is the one child to keep. It is reached through the render target
|
|
75
|
+
// rather than remembered, because that is where the loader put it: the render target is
|
|
76
|
+
// the shadow root's only child, and the container's own child when the shadow DOM is off.
|
|
77
|
+
const root = this.renderTarget.getRootNode();
|
|
78
|
+
const shadowContainer = root instanceof ShadowRoot ? root.host : this.renderTarget.parentElement;
|
|
79
|
+
// TODO: legacy, remove in 1/1/2021
|
|
80
|
+
document.querySelectorAll('.expofp-floorplan-loader').forEach((x) => x.remove());
|
|
81
|
+
// Guarded: a render target with no parent would make the loop below take the plan's own
|
|
82
|
+
// container with it.
|
|
83
|
+
while (shadowContainer &&
|
|
84
|
+
this.element.firstChild &&
|
|
85
|
+
this.element.firstChild !== shadowContainer) {
|
|
86
|
+
this.element.removeChild(this.element.firstChild);
|
|
87
|
+
}
|
|
88
|
+
this.resolveReady();
|
|
89
|
+
if (!store.initialized) {
|
|
90
|
+
// this._addCustomCss();
|
|
91
|
+
this.onInit?.(this);
|
|
92
|
+
}
|
|
93
|
+
store.initialized = true;
|
|
94
|
+
}));
|
|
95
|
+
// a pending toast dismissal would wake up in the dead window and read the
|
|
96
|
+
// store barrel, which throws there by design
|
|
97
|
+
registerPlanDisposer(() => clearTimeout(showSdkErrorTimer));
|
|
98
|
+
// Cross-venue journeys walk the visitor through their legs from here: the
|
|
99
|
+
// panel and the map only present what this keeps in step.
|
|
100
|
+
registerPlanDisposer(bindJourneyProgress());
|
|
101
|
+
const intercomCtx = shouldLoadIntercom(data);
|
|
102
|
+
if (intercomCtx) {
|
|
103
|
+
import('./intercom/bootIntercom')
|
|
104
|
+
.then(({ bootIntercom }) => bootIntercom(intercomCtx))
|
|
105
|
+
.catch(() => {
|
|
106
|
+
/* empty */
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
selectBooth(nameOrExternalId) {
|
|
111
|
+
if (typeof nameOrExternalId !== 'string' && !Array.isArray(nameOrExternalId)) {
|
|
112
|
+
showSdkError('selectBooth', 'Parameter must be a string or an array of strings.', 'EFP000000');
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const booths = store.boothStore.booths.filter((b) => {
|
|
116
|
+
if (typeof nameOrExternalId === 'string') {
|
|
117
|
+
return b.name === nameOrExternalId || b.externalId === nameOrExternalId;
|
|
118
|
+
}
|
|
119
|
+
return nameOrExternalId.includes(b.name) || nameOrExternalId.includes(b.externalId);
|
|
120
|
+
});
|
|
121
|
+
store.selectBooth(booths);
|
|
122
|
+
}
|
|
123
|
+
selectExhibitor(nameOrExternalId) {
|
|
124
|
+
if (typeof nameOrExternalId !== 'string' && !Array.isArray(nameOrExternalId)) {
|
|
125
|
+
showSdkError('selectExhibitor', 'Parameter must be a string or an array of strings.', 'EFP000100');
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (!nameOrExternalId?.length) {
|
|
129
|
+
store.uiState.menu = false;
|
|
130
|
+
store.searchStore.resetSearchBox();
|
|
131
|
+
store.uiState.details = null;
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
const exhibitors = store.exhibitorStore.exhibitors.filter((exh) => {
|
|
135
|
+
if (typeof nameOrExternalId === 'string') {
|
|
136
|
+
return exh.name === nameOrExternalId || exh.externalId === nameOrExternalId;
|
|
137
|
+
}
|
|
138
|
+
return nameOrExternalId.includes(exh.name) || nameOrExternalId.includes(exh.externalId);
|
|
139
|
+
});
|
|
140
|
+
if (!exhibitors?.length)
|
|
141
|
+
return;
|
|
142
|
+
if (typeof nameOrExternalId === 'string') {
|
|
143
|
+
store.selectExhibitor(exhibitors[0]);
|
|
144
|
+
store.moveToList([exhibitors[0]]);
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const layers = exhibitors.flatMap((exhibitor) => exhibitor.booths.map((booth) => booth.layer));
|
|
148
|
+
// undefined when every matched exhibitor is booth-less — no floor to switch to
|
|
149
|
+
const mostFrequent = getMostFrequent(layers.map((layer) => layer.description));
|
|
150
|
+
if (mostFrequent) {
|
|
151
|
+
store.layerStore.updateVisibility(mostFrequent, true);
|
|
152
|
+
}
|
|
153
|
+
store.uiState.menu = false;
|
|
154
|
+
store.searchStore.resetSearchBox();
|
|
155
|
+
store.uiState.details = null;
|
|
156
|
+
store.uiState.list = {
|
|
157
|
+
type: 'filter',
|
|
158
|
+
items: exhibitors,
|
|
159
|
+
// display names, not external ids — the documented comma-separated
|
|
160
|
+
// `?exhibitors=` form (the encoded-id form is retired)
|
|
161
|
+
query: { key: 'exhibitors', value: exhibitors.map((exhibitor) => exhibitor.name).join(',') },
|
|
162
|
+
};
|
|
163
|
+
store.moveToList();
|
|
164
|
+
}
|
|
165
|
+
highlightExhibitors(externalIds) {
|
|
166
|
+
if (!Array.isArray(externalIds)) {
|
|
167
|
+
showSdkError('highlightExhibitors', 'Parameter must be an array of strings.', 'EFP000200');
|
|
168
|
+
}
|
|
169
|
+
store.boothStore.highlightedByExternalIds = [];
|
|
170
|
+
// @ts-expect-error -- the legacy ExhibitorStore (@ts-nocheck) infers this field as never[]
|
|
171
|
+
store.exhibitorStore.highlightedByExternalIds = [...externalIds];
|
|
172
|
+
}
|
|
173
|
+
highlightBooths(externalIds) {
|
|
174
|
+
if (!Array.isArray(externalIds)) {
|
|
175
|
+
showSdkError('highlightBooths', 'Parameter must be an array of strings.', 'EFP000300');
|
|
176
|
+
}
|
|
177
|
+
store.exhibitorStore.highlightedByExternalIds = [];
|
|
178
|
+
// @ts-expect-error -- the legacy BoothStore (@ts-nocheck) infers this field as never[]
|
|
179
|
+
store.boothStore.highlightedByExternalIds = [...externalIds];
|
|
180
|
+
}
|
|
181
|
+
highlightEntities(externalIds) {
|
|
182
|
+
if (!Array.isArray(externalIds)) {
|
|
183
|
+
showSdkError('highlightEntities', 'Parameter must be an array of strings.', 'EFP000400');
|
|
184
|
+
}
|
|
185
|
+
const { boothExternalIds, exhibitorExternalIds } = separateExternalIds(externalIds);
|
|
186
|
+
// @ts-expect-error -- the legacy BoothStore (@ts-nocheck) infers this field as never[]
|
|
187
|
+
store.boothStore.highlightedByExternalIds = [...boothExternalIds];
|
|
188
|
+
// @ts-expect-error -- the legacy ExhibitorStore (@ts-nocheck) infers this field as never[]
|
|
189
|
+
store.exhibitorStore.highlightedByExternalIds = [...exhibitorExternalIds];
|
|
190
|
+
}
|
|
191
|
+
selectRoute(startOrWaypoints, to) {
|
|
192
|
+
if (Array.isArray(startOrWaypoints)) {
|
|
193
|
+
const points = [...startOrWaypoints];
|
|
194
|
+
const from = points.shift();
|
|
195
|
+
const to = points.pop();
|
|
196
|
+
if (points.length > MAX_ROUTE_WAYPOINTS) {
|
|
197
|
+
throw new Error(`The maximum number of waypoints is ${MAX_ROUTE_WAYPOINTS}.`);
|
|
198
|
+
}
|
|
199
|
+
if (!from || !to) {
|
|
200
|
+
showSdkError('selectRoute', 'Invalid route format: When providing an array, it must include at least two points: a start and a destination.', 'EFP000401');
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
203
|
+
const waypointBooths = points.map(getBooth).filter((booth) => booth !== null);
|
|
204
|
+
store.routeStore.selectRoute(new Route(getBooth(from), getBooth(to), waypointBooths));
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
if (!startOrWaypoints) {
|
|
208
|
+
showSdkError('selectRoute', 'At a minimum, the starting point must be passed.', 'EFP000402');
|
|
209
|
+
}
|
|
210
|
+
store.routeStore.selectRoute(new Route(getBooth(startOrWaypoints), to ? getBooth(to) : null));
|
|
211
|
+
}
|
|
212
|
+
getOptimizedRoutes(waypoints) {
|
|
213
|
+
if (!Array.isArray(waypoints)) {
|
|
214
|
+
showSdkError('getOptimizedRoutes', 'Parameter must be an array.', 'EFP000500');
|
|
215
|
+
return [];
|
|
216
|
+
}
|
|
217
|
+
if (waypoints.length > MAX_ROUTE_WAYPOINTS) {
|
|
218
|
+
throw new Error(`The maximum number of waypoints is ${MAX_ROUTE_WAYPOINTS}.`);
|
|
219
|
+
}
|
|
220
|
+
const booths = waypoints.map(getBooth).filter((booth) => Boolean(booth));
|
|
221
|
+
if (!booths.length) {
|
|
222
|
+
throw new Error('No booths found for the provided waypoints.');
|
|
223
|
+
}
|
|
224
|
+
const grouped = new Map();
|
|
225
|
+
for (const booth of booths) {
|
|
226
|
+
const key = booth.layer?.name ?? '';
|
|
227
|
+
const group = grouped.get(key);
|
|
228
|
+
if (group)
|
|
229
|
+
group.push(booth);
|
|
230
|
+
else
|
|
231
|
+
grouped.set(key, [booth]);
|
|
232
|
+
}
|
|
233
|
+
return Array.from(grouped.values()).map((group) => ({
|
|
234
|
+
waypoints: optimizeWaypointOrder(group.map((b) => [b.name, { x: b.rect.center.x, y: b.rect.center.y }])),
|
|
235
|
+
}));
|
|
236
|
+
}
|
|
237
|
+
selectCurrentPosition(point, focus, icon) {
|
|
238
|
+
const hasXY = isValidPointCoords(point.x) && isValidPointCoords(point.y);
|
|
239
|
+
const hasLatLng = isValidPointCoords(point.lng) && isValidPointCoords(point.lat);
|
|
240
|
+
if (!hasXY && !hasLatLng) {
|
|
241
|
+
showSdkError('selectCurrentPosition', 'A point must be passed. Either (x,y) or (lat,lng) are required.', 'EFP000600');
|
|
242
|
+
}
|
|
243
|
+
// the arguments as the host passed them: the store normalizes the point in place
|
|
244
|
+
const params = { point: { ...point }, focus, icon };
|
|
245
|
+
store.routeStore.selectCurrentPosition(point, focus, icon);
|
|
246
|
+
queuePositionTelemetry({
|
|
247
|
+
...params,
|
|
248
|
+
floor: store.routeStore.currentPosition?.z ?? null,
|
|
249
|
+
routeFloor: store.routeStore.currentRouteLayer?.name ?? null,
|
|
250
|
+
placed: !!store.routeStore.currentPosition,
|
|
251
|
+
});
|
|
252
|
+
this.onCurrentPositionChanged?.(point);
|
|
253
|
+
}
|
|
254
|
+
setBookmarks(bookmarks) {
|
|
255
|
+
if (!Array.isArray(bookmarks) || !bookmarks.length) {
|
|
256
|
+
showSdkError('setBookmarks', 'Parameter must be an array.', 'EFP000700');
|
|
257
|
+
}
|
|
258
|
+
bookmarks.forEach((b) => {
|
|
259
|
+
const e = store.exhibitorStore.exhibitors.find((e) => e.name === b.name || e.externalId === b.externalId);
|
|
260
|
+
if (e)
|
|
261
|
+
e.bookmarked = b.bookmarked;
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
setEntitiesBookmarks(bookmarks) {
|
|
265
|
+
if (!Array.isArray(bookmarks) || !bookmarks.length) {
|
|
266
|
+
showSdkError('setEntitiesBookmarks', 'Parameter must be an array.', 'EFP000701');
|
|
267
|
+
return;
|
|
268
|
+
}
|
|
269
|
+
const VALID_TYPES = ['exhibitor', 'event', 'speaker', 'booth'];
|
|
270
|
+
const invalidBookmark = bookmarks.find((b) => !b.type || !VALID_TYPES.includes(b.type));
|
|
271
|
+
if (invalidBookmark) {
|
|
272
|
+
showSdkError('setEntitiesBookmarks', `Invalid entity type: ${invalidBookmark.type}. Must be one of: ${VALID_TYPES.join(', ')}.`, 'EFP000702');
|
|
273
|
+
return;
|
|
274
|
+
}
|
|
275
|
+
const currentBookmarks = getStorage('bookmarked');
|
|
276
|
+
const entityConfig = {
|
|
277
|
+
exhibitor: {
|
|
278
|
+
existingIds: new Set(currentBookmarks.exhibitors || []),
|
|
279
|
+
finder: (query) => store.exhibitorStore.findExhibitor(query),
|
|
280
|
+
replacer: (ids) => store.exhibitorStore.replaceBookmarked(ids),
|
|
281
|
+
},
|
|
282
|
+
event: {
|
|
283
|
+
existingIds: new Set(currentBookmarks.events || []),
|
|
284
|
+
finder: (query) => store.eventStore.findByNameOrSlug(query),
|
|
285
|
+
replacer: (ids) => store.eventStore.replaceBookmarked(ids),
|
|
286
|
+
},
|
|
287
|
+
speaker: {
|
|
288
|
+
existingIds: new Set(currentBookmarks.speakers || []),
|
|
289
|
+
finder: (query) => store.speakerStore.speakers.find((s) => s.name === query || s.externalId === query || s.slug === query),
|
|
290
|
+
replacer: (ids) => store.speakerStore.replaceBookmarked(ids),
|
|
291
|
+
},
|
|
292
|
+
booth: {
|
|
293
|
+
existingIds: new Set(currentBookmarks.booths || []),
|
|
294
|
+
finder: (query) => {
|
|
295
|
+
const booth = store.boothStore.findBooth(query);
|
|
296
|
+
return booth?.exhibitors.length === 0 ? booth : undefined;
|
|
297
|
+
},
|
|
298
|
+
replacer: (ids) => store.boothStore.replaceBookmarked(ids),
|
|
299
|
+
},
|
|
300
|
+
};
|
|
301
|
+
bookmarks.forEach((b) => {
|
|
302
|
+
const config = entityConfig[b.type];
|
|
303
|
+
const query = b.name || b.externalId || '';
|
|
304
|
+
const entity = config.finder(query);
|
|
305
|
+
if (entity) {
|
|
306
|
+
if (b.bookmarked) {
|
|
307
|
+
config.existingIds.add(entity.id);
|
|
308
|
+
}
|
|
309
|
+
else {
|
|
310
|
+
config.existingIds.delete(entity.id);
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
console.warn(`Entity not found: ${b.type} with query "${query}"`);
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
Object.values(entityConfig).forEach((config) => {
|
|
318
|
+
config.replacer(Array.from(config.existingIds));
|
|
319
|
+
});
|
|
320
|
+
}
|
|
321
|
+
setEntitiesVisited(entities) {
|
|
322
|
+
if (!Array.isArray(entities) || !entities.length) {
|
|
323
|
+
showSdkError('setEntitiesVisited', 'Parameter must be an array.', 'EFP000703');
|
|
324
|
+
return;
|
|
325
|
+
}
|
|
326
|
+
const VALID_TYPES = ['exhibitor', 'event'];
|
|
327
|
+
const invalidEntity = entities.find((e) => !e.type || !VALID_TYPES.includes(e.type));
|
|
328
|
+
if (invalidEntity) {
|
|
329
|
+
showSdkError('setEntitiesVisited', `Invalid entity type: ${invalidEntity.type}. Must be one of: ${VALID_TYPES.join(', ')}.`, 'EFP000704');
|
|
330
|
+
return;
|
|
331
|
+
}
|
|
332
|
+
const currentVisited = getStorage('visited');
|
|
333
|
+
const entityConfig = {
|
|
334
|
+
exhibitor: {
|
|
335
|
+
existingIds: new Set(currentVisited.exhibitors || []),
|
|
336
|
+
finder: (query) => store.exhibitorStore.findExhibitor(query),
|
|
337
|
+
replacer: (ids) => store.exhibitorStore.replaceVisited(ids),
|
|
338
|
+
},
|
|
339
|
+
event: {
|
|
340
|
+
existingIds: new Set(currentVisited.events || []),
|
|
341
|
+
finder: (query) => store.eventStore.findByNameOrSlug(query),
|
|
342
|
+
replacer: (ids) => store.eventStore.replaceVisited(ids),
|
|
343
|
+
},
|
|
344
|
+
};
|
|
345
|
+
entities.forEach((e) => {
|
|
346
|
+
const config = entityConfig[e.type];
|
|
347
|
+
const query = e.name || e.externalId || '';
|
|
348
|
+
const entity = config.finder(query);
|
|
349
|
+
if (entity) {
|
|
350
|
+
if (e.visited) {
|
|
351
|
+
config.existingIds.add(entity.id);
|
|
352
|
+
}
|
|
353
|
+
else {
|
|
354
|
+
config.existingIds.delete(entity.id);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
else {
|
|
358
|
+
console.warn(`Entity not found: ${e.type} with query "${query}"`);
|
|
359
|
+
}
|
|
360
|
+
});
|
|
361
|
+
Object.values(entityConfig).forEach((config) => {
|
|
362
|
+
config.replacer(Array.from(config.existingIds));
|
|
363
|
+
});
|
|
364
|
+
}
|
|
365
|
+
setMarkers(markersData) {
|
|
366
|
+
if (!markersData || !Array.isArray(markersData.icons) || !Array.isArray(markersData.markers)) {
|
|
367
|
+
showSdkError('setMarkers', 'Invalid input.', 'EFP000800');
|
|
368
|
+
return;
|
|
369
|
+
}
|
|
370
|
+
store.routeStore.setMarkers(markersData);
|
|
371
|
+
}
|
|
372
|
+
selectMarker(id, focus = true) {
|
|
373
|
+
if (typeof id !== 'string') {
|
|
374
|
+
showSdkError('selectMarker', 'The identifier must be passed.', 'EFP000900');
|
|
375
|
+
}
|
|
376
|
+
return store.routeStore.selectMarker(id, focus);
|
|
377
|
+
}
|
|
378
|
+
drawCircles(circles) {
|
|
379
|
+
if (!Array.isArray(circles)) {
|
|
380
|
+
showSdkError('drawCircles', 'Invalid input.', 'EFP000A00');
|
|
381
|
+
}
|
|
382
|
+
store.uiState.debugCircles = circles;
|
|
383
|
+
}
|
|
384
|
+
checkRoutes() {
|
|
385
|
+
store.routeStore.checkRoutes();
|
|
386
|
+
}
|
|
387
|
+
updateLayerVisibility(layer, visible) {
|
|
388
|
+
if (typeof layer !== 'string') {
|
|
389
|
+
showSdkError('updateLayerVisibility', 'The layer name (string) must be passed.', 'EFP000B00');
|
|
390
|
+
}
|
|
391
|
+
if (!visible) {
|
|
392
|
+
showSdkError('updateLayerVisibility', 'Passing a false value to visible will have no effect.', 'EFP000B01');
|
|
393
|
+
}
|
|
394
|
+
store.layerStore.updateVisibility(layer, visible);
|
|
395
|
+
}
|
|
396
|
+
getCenterCoordinates() {
|
|
397
|
+
return store.fp.getCenterCoordinates();
|
|
398
|
+
}
|
|
399
|
+
exhibitorsList() {
|
|
400
|
+
return store.exhibitorStore.exhibitors.map((e) => mapEntity(e));
|
|
401
|
+
}
|
|
402
|
+
boothsList() {
|
|
403
|
+
return store.boothStore.booths.map((b) => mapEntity(b));
|
|
404
|
+
}
|
|
405
|
+
categoriesList() {
|
|
406
|
+
return store.categoryStore.categories.map((c) => mapEntity(c));
|
|
407
|
+
}
|
|
408
|
+
selectCategory(nameOrSlug) {
|
|
409
|
+
if (nameOrSlug == null || typeof nameOrSlug !== 'string') {
|
|
410
|
+
store.searchStore.selectSearch();
|
|
411
|
+
return;
|
|
412
|
+
}
|
|
413
|
+
const str = nameOrSlug?.toLowerCase();
|
|
414
|
+
const category = store.categoryStore.categories.find(({ name, slug }) => name?.toLowerCase() === str || slug?.toLowerCase() === str);
|
|
415
|
+
if (!category) {
|
|
416
|
+
showSdkError('selectCategory', `Category ${nameOrSlug} not found.`, 'EFP000C01');
|
|
417
|
+
return;
|
|
418
|
+
}
|
|
419
|
+
store.selectCategory(category);
|
|
420
|
+
}
|
|
421
|
+
select(slugOrExternalId) {
|
|
422
|
+
if (typeof slugOrExternalId !== 'string') {
|
|
423
|
+
showSdkError('select', 'Parameter must be a string.', 'EFP001700');
|
|
424
|
+
return;
|
|
425
|
+
}
|
|
426
|
+
// The deep-link resolution chain, in its historical precedence: booths →
|
|
427
|
+
// schedule sessions → exhibitors → categories → speakers → search text.
|
|
428
|
+
const slug = slugOrExternalId;
|
|
429
|
+
const lower = slug?.toLowerCase();
|
|
430
|
+
const booth = store.boothStore.booths.find((x) => x.slug?.toLowerCase() === lower ||
|
|
431
|
+
x.externalId?.toLowerCase() === lower ||
|
|
432
|
+
x.externalId?.toLowerCase()?.replace(/\s+/g, '') === lower);
|
|
433
|
+
if (booth) {
|
|
434
|
+
setTimeout(() => store.selectBooth(booth), 250);
|
|
435
|
+
return;
|
|
436
|
+
}
|
|
437
|
+
const eventItem = store.eventStore.eventItems.find((x) => x.slug?.toLowerCase() === lower || x.externalId?.toLowerCase() === lower);
|
|
438
|
+
if (eventItem) {
|
|
439
|
+
store.selectEventItem(eventItem, true);
|
|
440
|
+
return;
|
|
441
|
+
}
|
|
442
|
+
const exhibitor = store.exhibitorStore.exhibitors.find((x) => x.slug?.toLowerCase() === lower || x.externalId?.toLowerCase() === lower);
|
|
443
|
+
if (exhibitor) {
|
|
444
|
+
setTimeout(() => store.clickExhibitor(exhibitor), 250);
|
|
445
|
+
return;
|
|
446
|
+
}
|
|
447
|
+
const category = store.categoryStore.categories.find((x) => x.slug === slug);
|
|
448
|
+
if (category) {
|
|
449
|
+
store.selectCategory(category);
|
|
450
|
+
return;
|
|
451
|
+
}
|
|
452
|
+
const speaker = store.speakerStore.findBySlug(slug);
|
|
453
|
+
if (speaker) {
|
|
454
|
+
store.selectSpeaker(speaker, true);
|
|
455
|
+
return;
|
|
456
|
+
}
|
|
457
|
+
// heatmap mode keeps its tokens in the query — never search text
|
|
458
|
+
if (!slug.includes('heatmap=true')) {
|
|
459
|
+
store.searchStore.selectSearch(slug);
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
showList(list) {
|
|
463
|
+
const panels = {
|
|
464
|
+
bookmarks: () => store.selectBookmarks(),
|
|
465
|
+
visited: () => store.selectVisited(),
|
|
466
|
+
sessions: () => store.selectSessions(),
|
|
467
|
+
exhibitors: () => store.selectExhibitors(),
|
|
468
|
+
speakers: () => store.selectSpeakers(),
|
|
469
|
+
tours: () => store.selectTours(),
|
|
470
|
+
language: () => store.selectLanguage(),
|
|
471
|
+
};
|
|
472
|
+
const open = panels[list];
|
|
473
|
+
if (!open) {
|
|
474
|
+
showSdkError('showList', `Unknown list "${list}". Must be one of: ${Object.keys(panels).join(', ')}.`, 'EFP001800');
|
|
475
|
+
return;
|
|
476
|
+
}
|
|
477
|
+
open();
|
|
478
|
+
}
|
|
479
|
+
showSessions(filters = {}) {
|
|
480
|
+
log('showSessions called with filters=%O', filters);
|
|
481
|
+
const filtersResult = SessionsFiltersSchema.safeParse(filters);
|
|
482
|
+
if (!filtersResult.success) {
|
|
483
|
+
showSdkError('showSessions', filtersResult.error.message, 'EFP001C00');
|
|
484
|
+
return;
|
|
485
|
+
}
|
|
486
|
+
const validFilters = filtersResult.data;
|
|
487
|
+
const { eventStore, sessionsFilterStore } = store;
|
|
488
|
+
// one action, so reactions see only the end state
|
|
489
|
+
runInAction(() => {
|
|
490
|
+
// browser back from an open session lands here — the list shows only
|
|
491
|
+
// once its details close
|
|
492
|
+
uiState.details = null;
|
|
493
|
+
store.selectSessions();
|
|
494
|
+
// edits left unapplied in an open filter panel are dropped, not applied
|
|
495
|
+
sessionsFilterStore.closeFilter();
|
|
496
|
+
sessionsFilterStore.setPending('selectedTracks', resolveIds(validFilters.tracks, eventStore.tracks, 'track'));
|
|
497
|
+
sessionsFilterStore.setPending('selectedVenues', resolveIds(validFilters.venues, eventStore.venues, 'venue'));
|
|
498
|
+
sessionsFilterStore.setPending('date', validFilters.date ?? 'all');
|
|
499
|
+
sessionsFilterStore.setPending('timeOfDay', validFilters.time ?? 'all');
|
|
500
|
+
sessionsFilterStore.setPending('showBookmarksOnly', validFilters.bookmarked ?? false);
|
|
501
|
+
sessionsFilterStore.setPending('showLiveOnly', validFilters.live ?? false);
|
|
502
|
+
// not `applyFilters`, which also focuses the search box for the filter
|
|
503
|
+
// panel's Apply: a link, Back or a host call opens the list as
|
|
504
|
+
// `?sessions` does
|
|
505
|
+
sessionsFilterStore.commitFilters();
|
|
506
|
+
});
|
|
507
|
+
}
|
|
508
|
+
selectTour(tourId) {
|
|
509
|
+
if (typeof tourId !== 'string' || !tourId) {
|
|
510
|
+
showSdkError('selectTour', 'A tour id must be passed.', 'EFP001900');
|
|
511
|
+
return;
|
|
512
|
+
}
|
|
513
|
+
const tour = store.toursStore.getTourById(tourId);
|
|
514
|
+
if (tour) {
|
|
515
|
+
store.toursStore.launchTour(tour, tour.name, tour.description);
|
|
516
|
+
}
|
|
517
|
+
else {
|
|
518
|
+
console.warn(`Route with id "${tourId}" not found`);
|
|
519
|
+
store.selectTours();
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
openPlanner(options = {}) {
|
|
523
|
+
if (typeof options !== 'object' || options === null) {
|
|
524
|
+
showSdkError('openPlanner', 'An options object must be passed.', 'EFP001A00');
|
|
525
|
+
return;
|
|
526
|
+
}
|
|
527
|
+
const fromBooth = options.from ? findBooth(options.from) : null;
|
|
528
|
+
if (options.fromBookmarks) {
|
|
529
|
+
store.routePlannerStore.launchFromBookmarks(fromBooth ?? undefined);
|
|
530
|
+
}
|
|
531
|
+
else {
|
|
532
|
+
store.routePlannerStore.launchFromSlugs(options.items ?? [], fromBooth ?? undefined);
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
startBuildRoute() {
|
|
536
|
+
store.uiState.startBuildRoute();
|
|
537
|
+
}
|
|
538
|
+
applyParameters(queryRaw) {
|
|
539
|
+
if (typeof queryRaw !== 'string') {
|
|
540
|
+
showSdkError('applyParameters', 'A query string must be passed.', 'EFP000D00');
|
|
541
|
+
}
|
|
542
|
+
applyParameters(queryRaw);
|
|
543
|
+
}
|
|
544
|
+
getVisibility() {
|
|
545
|
+
return store.uiState.visibility;
|
|
546
|
+
}
|
|
547
|
+
setVisibility(visibility) {
|
|
548
|
+
if (typeof visibility !== 'object' || !Object.keys(visibility).length) {
|
|
549
|
+
showSdkError('setVisibility', 'The parameter must be passed.', 'EFP000E00');
|
|
550
|
+
}
|
|
551
|
+
store.uiState.setVisibility(visibility);
|
|
552
|
+
}
|
|
553
|
+
findLocation() {
|
|
554
|
+
store.routeStore.findLocation();
|
|
555
|
+
}
|
|
556
|
+
zoomIn() {
|
|
557
|
+
store.uiState.zoomIn();
|
|
558
|
+
}
|
|
559
|
+
zoomOut() {
|
|
560
|
+
store.uiState.zoomOut();
|
|
561
|
+
}
|
|
562
|
+
switchView() {
|
|
563
|
+
store.maplibreStore.activateMaplibre();
|
|
564
|
+
}
|
|
565
|
+
setCamera(camera) {
|
|
566
|
+
log('setCamera called with camera=%O', camera);
|
|
567
|
+
const cameraResult = CameraSchema.safeParse(camera);
|
|
568
|
+
if (!cameraResult.success) {
|
|
569
|
+
showSdkError('setCamera', cameraResult.error.message, 'EFP001B00');
|
|
570
|
+
return;
|
|
571
|
+
}
|
|
572
|
+
// The mapSettings observable is the "apply once the renderer is ready"
|
|
573
|
+
// mechanism: the Map component reacts to it and drives the renderer.
|
|
574
|
+
store.uiState.setMapSettings(cameraToMapSettings(cameraResult.data));
|
|
575
|
+
}
|
|
576
|
+
getCamera() {
|
|
577
|
+
return mapSettingsToCamera(store.uiState.mapSettings);
|
|
578
|
+
}
|
|
579
|
+
zoomTo(selectors, options) {
|
|
580
|
+
log('zoomTo called with selectors=%O options=%O', selectors, options);
|
|
581
|
+
const selectorsResult = POISelectorsSchema.safeParse(selectors);
|
|
582
|
+
if (!selectorsResult.success) {
|
|
583
|
+
showSdkError('zoomTo', selectorsResult.error.message, 'EFP001600');
|
|
584
|
+
return;
|
|
585
|
+
}
|
|
586
|
+
const optionsResult = ZoomToOptionsSchema.safeParse(options);
|
|
587
|
+
if (!optionsResult.success) {
|
|
588
|
+
showSdkError('zoomTo', optionsResult.error.message, 'EFP001601');
|
|
589
|
+
return;
|
|
590
|
+
}
|
|
591
|
+
const bounds = this.getBounds(selectors);
|
|
592
|
+
if (bounds)
|
|
593
|
+
this.fitBounds(bounds, options);
|
|
594
|
+
}
|
|
595
|
+
getBounds(selectors) {
|
|
596
|
+
log('getBounds called with selectors=%O', selectors);
|
|
597
|
+
const selectorsResult = POISelectorsSchema.safeParse(selectors);
|
|
598
|
+
if (!selectorsResult.success) {
|
|
599
|
+
showSdkError('getBounds', selectorsResult.error.message, 'EFP001400');
|
|
600
|
+
return;
|
|
601
|
+
}
|
|
602
|
+
const boxes = [];
|
|
603
|
+
selectors.booths?.forEach((s) => {
|
|
604
|
+
let booth;
|
|
605
|
+
if (s.externalId) {
|
|
606
|
+
booth = store.boothStore.boothByExternalId.get(s.externalId);
|
|
607
|
+
}
|
|
608
|
+
else if (s.name) {
|
|
609
|
+
booth = store.boothStore.boothByName.get(s.name.toLowerCase());
|
|
610
|
+
}
|
|
611
|
+
if (booth?.rect)
|
|
612
|
+
boxes.push(booth.rect);
|
|
613
|
+
});
|
|
614
|
+
selectors.exhibitors?.forEach((s) => {
|
|
615
|
+
let exh;
|
|
616
|
+
if (s.externalId) {
|
|
617
|
+
exh = store.exhibitorStore.exhibitorByExternalId.get(s.externalId);
|
|
618
|
+
}
|
|
619
|
+
else if (s.name) {
|
|
620
|
+
exh = store.exhibitorStore.exhibitorByName.get(s.name.toLowerCase());
|
|
621
|
+
}
|
|
622
|
+
exh?.booths?.forEach((b) => {
|
|
623
|
+
if (b.rect)
|
|
624
|
+
boxes.push(b.rect);
|
|
625
|
+
});
|
|
626
|
+
});
|
|
627
|
+
if (boxes.length === 0)
|
|
628
|
+
return;
|
|
629
|
+
const combined = Box.fromUnion(...boxes);
|
|
630
|
+
return {
|
|
631
|
+
leftTop: { x: combined.min.x, y: combined.min.y },
|
|
632
|
+
rightBottom: { x: combined.max.x, y: combined.max.y },
|
|
633
|
+
};
|
|
634
|
+
}
|
|
635
|
+
fitBounds(bounds, options) {
|
|
636
|
+
log('fitBounds called with bounds=%O options=%O', bounds, options);
|
|
637
|
+
if (!bounds) {
|
|
638
|
+
store.uiState.fitBounds();
|
|
639
|
+
return;
|
|
640
|
+
}
|
|
641
|
+
const boundsResult = BoundsSchema.safeParse(bounds);
|
|
642
|
+
if (!boundsResult.success) {
|
|
643
|
+
showSdkError('fitBounds', boundsResult.error.message, 'EFP001500');
|
|
644
|
+
return;
|
|
645
|
+
}
|
|
646
|
+
const optionsResult = ZoomToOptionsSchema.safeParse(options);
|
|
647
|
+
if (!optionsResult.success) {
|
|
648
|
+
showSdkError('fitBounds', optionsResult.error.message, 'EFP001501');
|
|
649
|
+
return;
|
|
650
|
+
}
|
|
651
|
+
const box = Box.fromMinMax({ x: bounds.leftTop.x, y: bounds.leftTop.y }, { x: bounds.rightBottom.x, y: bounds.rightBottom.y });
|
|
652
|
+
// Positive padding inflates the box outward on every side, reproducing the
|
|
653
|
+
// legacy `Rect.fromX1y1x2y2(lt.x - p, lt.y - p, rb.x + p, rb.y + p)` semantics.
|
|
654
|
+
store.uiState.moveToRect = options?.padding ? box.expand(options.padding) : box;
|
|
655
|
+
}
|
|
656
|
+
getBoothRect(name) {
|
|
657
|
+
if (typeof name !== 'string') {
|
|
658
|
+
showSdkError('getBoothRect', 'A booth name must be passed.', 'EFP000F00');
|
|
659
|
+
}
|
|
660
|
+
const box = findBooth(name)?.rect;
|
|
661
|
+
// @ts-expect-error -- the public type promises a Rect; an unknown booth has always returned undefined
|
|
662
|
+
return box ? BoothRect.fromBox(box) : undefined;
|
|
663
|
+
}
|
|
664
|
+
convertToGeo(x, y) {
|
|
665
|
+
const gpsConfig = getFpGeo()?.properties?.config;
|
|
666
|
+
if (!gpsConfig) {
|
|
667
|
+
showSdkError('convertToGeo', 'The coordinates cannot be converted because the GPS configuration is not defined.', 'EFP001000');
|
|
668
|
+
// @ts-expect-error -- the public type has no undefined; a failed conversion has always returned it
|
|
669
|
+
return;
|
|
670
|
+
}
|
|
671
|
+
if (!x || !y) {
|
|
672
|
+
showSdkError('convertToGeo', 'Both coordinates must be passed.', 'EFP001001');
|
|
673
|
+
// @ts-expect-error -- the public type has no undefined; a failed conversion has always returned it
|
|
674
|
+
return;
|
|
675
|
+
}
|
|
676
|
+
return convertLocalToGps(x, y, gpsConfig);
|
|
677
|
+
}
|
|
678
|
+
getGeoConfig() {
|
|
679
|
+
const config = getFpGeo()?.properties?.config;
|
|
680
|
+
if (!config) {
|
|
681
|
+
return null;
|
|
682
|
+
}
|
|
683
|
+
return {
|
|
684
|
+
bearing: config.bearing ?? 0,
|
|
685
|
+
p0: config.p0,
|
|
686
|
+
p1: config.p1,
|
|
687
|
+
p2: config.p2,
|
|
688
|
+
};
|
|
689
|
+
}
|
|
690
|
+
/**
|
|
691
|
+
* What this instance owns of the teardown — its React root and the store's
|
|
692
|
+
* window listeners — run by `FloorPlanLoader.destroy()` while the store
|
|
693
|
+
* barrel is still live. Everything the plan's services own (URL sync, UI
|
|
694
|
+
* handlers, GA, telemetry, reactions, timers) registered itself with the
|
|
695
|
+
* plan when it started, and `disposePlan()` — and with it the dead window —
|
|
696
|
+
* follows this.
|
|
697
|
+
*/
|
|
698
|
+
releaseResources() {
|
|
699
|
+
store.maplibreStore.dispose();
|
|
700
|
+
this.root?.unmount();
|
|
701
|
+
// Detaches the listeners, empties the container and clears the element's
|
|
702
|
+
// in-use marker, so the same element can host a later load().
|
|
703
|
+
super.releaseResources();
|
|
704
|
+
}
|
|
705
|
+
search(term) {
|
|
706
|
+
if (typeof term !== 'string') {
|
|
707
|
+
showSdkError('search', 'A search string must be passed.', 'EFP001100');
|
|
708
|
+
}
|
|
709
|
+
return store.fuzzySearchEngineStore.loadEngine().then(() => {
|
|
710
|
+
store.searchStore.selectSearch(term);
|
|
711
|
+
return store.uiState.fuzzySearchItems.map((x) => ({
|
|
712
|
+
item: mapEntity(x.item),
|
|
713
|
+
score: x.score,
|
|
714
|
+
}));
|
|
715
|
+
});
|
|
716
|
+
}
|
|
717
|
+
getFloors() {
|
|
718
|
+
// Venue-model plans scope the floor API to effective campus context or the
|
|
719
|
+
// resolved non-MapLibre fallback venue.
|
|
720
|
+
const venueStore = store.venueStore;
|
|
721
|
+
if (venueStore.hasVenueModel) {
|
|
722
|
+
const venue = venueStore.activeVenue;
|
|
723
|
+
if (!venue)
|
|
724
|
+
return [];
|
|
725
|
+
return venue.levels.map((level) => ({
|
|
726
|
+
name: level.layer.name,
|
|
727
|
+
shortName: level.layer.shortName,
|
|
728
|
+
description: level.layer.description,
|
|
729
|
+
active: level === venue.activeLevel,
|
|
730
|
+
disabled: false,
|
|
731
|
+
index: level.layer.floorIndex ?? level.ordinal,
|
|
732
|
+
venueId: venue.id,
|
|
733
|
+
ordinal: level.ordinal,
|
|
734
|
+
displayName: level.displayName,
|
|
735
|
+
}));
|
|
736
|
+
}
|
|
737
|
+
return store.layerStore.floors.map((floor) => ({
|
|
738
|
+
name: floor.name,
|
|
739
|
+
shortName: floor.shortName,
|
|
740
|
+
description: floor.description,
|
|
741
|
+
active: floor.active,
|
|
742
|
+
disabled: floor.disabled,
|
|
743
|
+
index: floor.index,
|
|
744
|
+
}));
|
|
745
|
+
}
|
|
746
|
+
getVenues() {
|
|
747
|
+
const venueStore = store.venueStore;
|
|
748
|
+
if (venueStore.venues.length === 0) {
|
|
749
|
+
// Single-venue plans report one implicit venue so the shape is uniform.
|
|
750
|
+
return [implicitVenue()];
|
|
751
|
+
}
|
|
752
|
+
const activeVenue = venueStore.activeVenue;
|
|
753
|
+
return venueStore.orderedVenues.map((venue) => toPublicVenue(venue, venue === activeVenue));
|
|
754
|
+
}
|
|
755
|
+
getVenueDiagnostics() {
|
|
756
|
+
return store.venueStore.diagnostics.map((diagnostic) => ({ ...diagnostic }));
|
|
757
|
+
}
|
|
758
|
+
activateVenue(venueId) {
|
|
759
|
+
if (!venueId?.id) {
|
|
760
|
+
showSdkError('activateVenue', 'Invalid venueId. It must contain an id.', 'EFP001210');
|
|
761
|
+
return;
|
|
762
|
+
}
|
|
763
|
+
const venueStore = store.venueStore;
|
|
764
|
+
if (venueStore.venues.length === 0) {
|
|
765
|
+
// Single-venue plans: the implicit venue `getVenues()` hands out is the
|
|
766
|
+
// only identifier that resolves, and it is already active — accepting it
|
|
767
|
+
// is a no-op, not an ignored call.
|
|
768
|
+
if (isImplicitVenueId(venueId.id))
|
|
769
|
+
return;
|
|
770
|
+
}
|
|
771
|
+
else {
|
|
772
|
+
const venue = venueStore.findVenue(venueId.id);
|
|
773
|
+
if (venue) {
|
|
774
|
+
venueStore.enterVenue(venue);
|
|
775
|
+
return;
|
|
776
|
+
}
|
|
777
|
+
}
|
|
778
|
+
// One report for both shapes: an identifier that was never issued is
|
|
779
|
+
// not found on a single-venue plan exactly as it is on a multi-venue one,
|
|
780
|
+
// so a typo is never swallowed by the plan's shape.
|
|
781
|
+
showSdkError('activateVenue', `Venue "${venueId.id}" not found.`, 'EFP001211');
|
|
782
|
+
}
|
|
783
|
+
activateFloor(floorId) {
|
|
784
|
+
if (!floorId?.name && floorId?.index == null) {
|
|
785
|
+
showSdkError('activateFloor', 'Invalid floorId. It must contain either a name or an index.', 'EFP001200');
|
|
786
|
+
return;
|
|
787
|
+
}
|
|
788
|
+
const venueStore = store.venueStore;
|
|
789
|
+
if (venueStore.hasVenueModel) {
|
|
790
|
+
let target;
|
|
791
|
+
if (floorId.name) {
|
|
792
|
+
for (const venue of venueStore.orderedVenues) {
|
|
793
|
+
const level = venue.levels.find((candidate) => candidate.layer.name === floorId.name || candidate.layer.shortName === floorId.name);
|
|
794
|
+
if (level) {
|
|
795
|
+
target = { venue, level };
|
|
796
|
+
break;
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
if (!target) {
|
|
800
|
+
showSdkError('activateFloor', `Floor with name "${floorId.name}" not found.`, 'EFP001201');
|
|
801
|
+
return;
|
|
802
|
+
}
|
|
803
|
+
}
|
|
804
|
+
else {
|
|
805
|
+
const venue = venueStore.activeVenue;
|
|
806
|
+
const floor = this.getFloors().find((candidate) => candidate.index === floorId.index);
|
|
807
|
+
const level = venue?.levels.find((candidate) => candidate.layer.name === floor?.name);
|
|
808
|
+
if (!venue || !level) {
|
|
809
|
+
showSdkError('activateFloor', `Floor at index ${floorId.index} does not exist.`, 'EFP001203');
|
|
810
|
+
return;
|
|
811
|
+
}
|
|
812
|
+
target = { venue, level };
|
|
813
|
+
}
|
|
814
|
+
venueStore.enterVenue(target.venue, { level: target.level });
|
|
815
|
+
return;
|
|
816
|
+
}
|
|
817
|
+
const floors = this.getFloors();
|
|
818
|
+
if (floorId.name) {
|
|
819
|
+
const floor = floors.find((floor) => floor.name === floorId.name || floor.shortName === floorId.name);
|
|
820
|
+
if (!floor) {
|
|
821
|
+
showSdkError('activateFloor', `Floor with name "${floorId.name}" not found.`, 'EFP001201');
|
|
822
|
+
return;
|
|
823
|
+
}
|
|
824
|
+
if (floor.active)
|
|
825
|
+
return;
|
|
826
|
+
this.updateLayerVisibility(floor.name, true);
|
|
827
|
+
return;
|
|
828
|
+
}
|
|
829
|
+
if (floorId.index !== null) {
|
|
830
|
+
const floor = floors.find((floor) => floor.index === floorId.index);
|
|
831
|
+
const layerName = floor?.name;
|
|
832
|
+
if (!layerName) {
|
|
833
|
+
showSdkError('activateFloor', `Floor at index ${floorId.index} does not exist.`, 'EFP001203');
|
|
834
|
+
return;
|
|
835
|
+
}
|
|
836
|
+
if (floor.active)
|
|
837
|
+
return;
|
|
838
|
+
this.updateLayerVisibility(layerName, true);
|
|
839
|
+
return;
|
|
840
|
+
}
|
|
841
|
+
}
|
|
842
|
+
showPathway(pathwayId, externalIds) {
|
|
843
|
+
const { boothExternalIds, exhibitorExternalIds } = externalIds?.length
|
|
844
|
+
? separateExternalIds(externalIds)
|
|
845
|
+
: { boothExternalIds: [], exhibitorExternalIds: [] };
|
|
846
|
+
applyPathway({ pathwayId, boothIds: boothExternalIds, exhibitorIds: exhibitorExternalIds });
|
|
847
|
+
}
|
|
848
|
+
showPathwayOnly(pathwayId, floorId) {
|
|
849
|
+
this.activateFloor({ name: floorId });
|
|
850
|
+
store.layerStore.showPathWay(pathwayId);
|
|
851
|
+
store.uiState.setPathwayOnlyMode(true);
|
|
852
|
+
const pathwayLayer = store.layerStore.findLayer(pathwayId);
|
|
853
|
+
const floorLayer = store.layerStore.findLayer(floorId);
|
|
854
|
+
const targetLayer = pathwayLayer?.rect || pathwayLayer?.viewbox ? pathwayLayer : floorLayer;
|
|
855
|
+
const targetRect = targetLayer?.viewbox ?? targetLayer?.rect;
|
|
856
|
+
if (targetRect) {
|
|
857
|
+
store.uiState.moveToRect = targetRect.clone();
|
|
858
|
+
}
|
|
859
|
+
}
|
|
860
|
+
hidePathways() {
|
|
861
|
+
this.highlightBooths([]);
|
|
862
|
+
store.layerStore.hidePathways();
|
|
863
|
+
store.uiState.setPathwayOnlyMode(false);
|
|
864
|
+
}
|
|
865
|
+
showSearch() {
|
|
866
|
+
store.selectSearch('');
|
|
867
|
+
}
|
|
868
|
+
changeLanguage(langId) {
|
|
869
|
+
const id = langId?.toLowerCase?.();
|
|
870
|
+
if (!hasLocale(id)) {
|
|
871
|
+
showSdkError('changeLanguage', `Language "${langId}" was not found. Available languages: ${getLocales()
|
|
872
|
+
.map((lang) => lang.id)
|
|
873
|
+
.join(',')}`, 'EFP001300');
|
|
874
|
+
return;
|
|
875
|
+
}
|
|
876
|
+
setLocale(id);
|
|
877
|
+
}
|
|
878
|
+
isGpsTrackingEnabled() {
|
|
879
|
+
return store.routeStore.gpsEnabled;
|
|
880
|
+
}
|
|
881
|
+
setGpsTrackingEnabled(value) {
|
|
882
|
+
store.routeStore.setGpsTrackingEnabled(value);
|
|
883
|
+
}
|
|
884
|
+
deselectCurrentPosition() {
|
|
885
|
+
store.routeStore.selectCurrentPosition(null, false);
|
|
886
|
+
}
|
|
887
|
+
deselectRoute() {
|
|
888
|
+
store.routeStore.selectRoute(null);
|
|
889
|
+
store.routeStore.setOnlyAccessible(false);
|
|
890
|
+
}
|
|
891
|
+
reset() {
|
|
892
|
+
this.selectBooth('');
|
|
893
|
+
this.selectExhibitor('');
|
|
894
|
+
this.selectCategory();
|
|
895
|
+
this.deselectCurrentPosition();
|
|
896
|
+
this.deselectRoute();
|
|
897
|
+
this.highlightEntities([]);
|
|
898
|
+
if (store.uiState.kioskData && store.resetCameraFn) {
|
|
899
|
+
store.resetCameraFn?.();
|
|
900
|
+
}
|
|
901
|
+
else if (store.venueStore.isCampusMode) {
|
|
902
|
+
// A campus plan opens on the whole campus; Fit would hold the venue in context.
|
|
903
|
+
store.venueStore.viewAllVenues();
|
|
904
|
+
}
|
|
905
|
+
else {
|
|
906
|
+
this.fitBounds();
|
|
907
|
+
}
|
|
908
|
+
}
|
|
909
|
+
selectAccessibleRoute(waypoints) {
|
|
910
|
+
store.routeStore.setOnlyAccessible(true);
|
|
911
|
+
this.selectRoute(waypoints);
|
|
912
|
+
}
|
|
913
|
+
}
|
|
914
|
+
/**
|
|
915
|
+
* The ids of the tracks or venues that `values` name — each value by id, else
|
|
916
|
+
* by external id, else by name or slug, in any case. A value that names none
|
|
917
|
+
* is dropped with a console warning.
|
|
918
|
+
*/
|
|
919
|
+
function resolveIds(values = [], entities, kind) {
|
|
920
|
+
const ids = new Set();
|
|
921
|
+
for (const value of values) {
|
|
922
|
+
const lower = value.toLowerCase();
|
|
923
|
+
const entity = entities.find((candidate) => String(candidate.id) === value) ??
|
|
924
|
+
entities.find((candidate) => candidate.externalId?.toLowerCase() === lower) ??
|
|
925
|
+
entities.find((candidate) => candidate.name?.toLowerCase() === lower || candidate.slug?.toLowerCase() === lower);
|
|
926
|
+
if (entity) {
|
|
927
|
+
ids.add(entity.id);
|
|
928
|
+
}
|
|
929
|
+
else {
|
|
930
|
+
console.warn(`Entity not found: ${kind} with query "${value}"`);
|
|
931
|
+
}
|
|
932
|
+
}
|
|
933
|
+
return [...ids];
|
|
934
|
+
}
|
|
935
|
+
function getBooth(waypoint) {
|
|
936
|
+
const booth = typeof waypoint === 'string' ? findBooth(waypoint) : store.routeStore.getNearestBooth(waypoint);
|
|
937
|
+
return booth ?? null;
|
|
938
|
+
}
|
|
939
|
+
/**
|
|
940
|
+
* The single venue reported on plans without a venue model, so that both halves
|
|
941
|
+
* of the public venue API have the same shape everywhere. Built here and used
|
|
942
|
+
* by `getVenues()` and `activateVenue()` alike — the identifier the list hands
|
|
943
|
+
* out is exactly the one activation resolves.
|
|
944
|
+
*
|
|
945
|
+
* Its `id` is **SDK-synthesised** from the event key: no producer emits it, it
|
|
946
|
+
* has no wire representation, and it is therefore not bound by the contract's
|
|
947
|
+
* `[a-z0-9_-]+` identifier pattern (multi-venue data contract §1, §9).
|
|
948
|
+
*/
|
|
949
|
+
function implicitVenue() {
|
|
950
|
+
return { id: settings.EXPO, name: data.title || settings.EXPO, order: 0, active: true };
|
|
951
|
+
}
|
|
952
|
+
/**
|
|
953
|
+
* Whether an identifier names the implicit venue. Case-insensitive on both
|
|
954
|
+
* sides — unlike `VenueStore.findVenue`, which folds only its argument because
|
|
955
|
+
* an authored `id` already matches `[a-z0-9_-]+`; an event key carries no such
|
|
956
|
+
* guarantee, and folding one side alone could reject the very id `getVenues()`
|
|
957
|
+
* just handed the caller.
|
|
958
|
+
*/
|
|
959
|
+
function isImplicitVenueId(id) {
|
|
960
|
+
return id.toLowerCase() === implicitVenue().id.toLowerCase();
|
|
961
|
+
}
|
|
962
|
+
let showSdkErrorTimer = 0;
|
|
963
|
+
function showSdkError(methodName, message, errorCode) {
|
|
964
|
+
const title = `Error calling "${methodName}" SDK method.`;
|
|
965
|
+
const text = `${message.endsWith('.') ? message : message + '.'} More information at`;
|
|
966
|
+
let link = 'https://js-sdk.expofp.com/api/packages';
|
|
967
|
+
if (errorCode) {
|
|
968
|
+
link += `#error-${errorCode}`;
|
|
969
|
+
}
|
|
970
|
+
console.error(`${title} ${text} ${link}`);
|
|
971
|
+
if (store.fp.disableRuntimeAlerts) {
|
|
972
|
+
return;
|
|
973
|
+
}
|
|
974
|
+
store.uiState.setGlobalErrorMessage({
|
|
975
|
+
title,
|
|
976
|
+
body: (_jsxs(_Fragment, { children: [text, ' ', _jsx("a", { href: link, target: "_blank", rel: "noreferrer", children: link })] })),
|
|
977
|
+
});
|
|
978
|
+
clearTimeout(showSdkErrorTimer);
|
|
979
|
+
const DELAY_MS = 8000;
|
|
980
|
+
showSdkErrorTimer = window.setTimeout(() => {
|
|
981
|
+
const fn = async () => {
|
|
982
|
+
if (store.uiState.globalErrorMessages.length > 0) {
|
|
983
|
+
store.uiState.popGlobalErrorMessage();
|
|
984
|
+
await new Promise((resolve) => setTimeout(resolve, DELAY_MS / 2));
|
|
985
|
+
fn();
|
|
986
|
+
}
|
|
987
|
+
};
|
|
988
|
+
fn();
|
|
989
|
+
}, DELAY_MS);
|
|
990
|
+
}
|
|
991
|
+
/**
|
|
992
|
+
* Backward-compatible return shape of the public `getBoothRect()` API.
|
|
993
|
+
*
|
|
994
|
+
* Internally booth footprints are now `@expofp/geometry` `Box`es, but external
|
|
995
|
+
* SDK consumers of `getBoothRect()` rely on the legacy `core/Rect` instance
|
|
996
|
+
* surface (`x1/y1/x2/y2`, the `cx/cy/w/h` getters, and the full method set).
|
|
997
|
+
* This class reproduces that surface exactly and is built from a `Box`'s
|
|
998
|
+
* `min`/`max` corners at the API boundary. It is intentionally NOT exported, so
|
|
999
|
+
* no other module can import it — the only way to obtain one is `getBoothRect()`.
|
|
1000
|
+
*/
|
|
1001
|
+
class BoothRect {
|
|
1002
|
+
get h() {
|
|
1003
|
+
return Math.abs(this.y2 - this.y1);
|
|
1004
|
+
}
|
|
1005
|
+
get w() {
|
|
1006
|
+
return Math.abs(this.x2 - this.x1);
|
|
1007
|
+
}
|
|
1008
|
+
get cx() {
|
|
1009
|
+
return (this.x1 + this.x2) / 2;
|
|
1010
|
+
}
|
|
1011
|
+
get cy() {
|
|
1012
|
+
return (this.y1 + this.y2) / 2;
|
|
1013
|
+
}
|
|
1014
|
+
constructor(x1, y1, x2, y2) {
|
|
1015
|
+
if (x1 > x2) {
|
|
1016
|
+
const x1Orig = x1;
|
|
1017
|
+
x1 = x2;
|
|
1018
|
+
x2 = x1Orig;
|
|
1019
|
+
}
|
|
1020
|
+
if (y1 > y2) {
|
|
1021
|
+
const y1Orig = y1;
|
|
1022
|
+
y1 = y2;
|
|
1023
|
+
y2 = y1Orig;
|
|
1024
|
+
}
|
|
1025
|
+
this.x1 = x1;
|
|
1026
|
+
this.y1 = y1;
|
|
1027
|
+
this.x2 = x2;
|
|
1028
|
+
this.y2 = y2;
|
|
1029
|
+
}
|
|
1030
|
+
static fromBox(box) {
|
|
1031
|
+
return new BoothRect(box.min.x, box.min.y, box.max.x, box.max.y);
|
|
1032
|
+
}
|
|
1033
|
+
static fromCxcywh(cx, cy, w, h) {
|
|
1034
|
+
return new BoothRect(cx - w / 2, cy - h / 2, cx + w / 2, cy + h / 2);
|
|
1035
|
+
}
|
|
1036
|
+
contains(r) {
|
|
1037
|
+
return r.x1 >= this.x1 && r.x2 <= this.x2 && r.y1 >= this.y1 && r.y2 <= this.y2;
|
|
1038
|
+
}
|
|
1039
|
+
intersects(r) {
|
|
1040
|
+
const x1 = Math.max(this.x1, r.x1);
|
|
1041
|
+
const x2 = Math.min(this.x2, r.x2);
|
|
1042
|
+
const y1 = Math.max(this.y1, r.y1);
|
|
1043
|
+
const y2 = Math.min(this.y2, r.y2);
|
|
1044
|
+
return x2 >= x1 && y2 >= y1;
|
|
1045
|
+
}
|
|
1046
|
+
getIntersection(r) {
|
|
1047
|
+
const x1 = Math.max(this.x1, r.x1);
|
|
1048
|
+
const x2 = Math.min(this.x2, r.x2);
|
|
1049
|
+
const y1 = Math.max(this.y1, r.y1);
|
|
1050
|
+
const y2 = Math.min(this.y2, r.y2);
|
|
1051
|
+
if (x2 >= x1 && y2 >= y1) {
|
|
1052
|
+
return new BoothRect(x1, y1, x2, y2);
|
|
1053
|
+
}
|
|
1054
|
+
else
|
|
1055
|
+
return new BoothRect(0, 0, 0, 0);
|
|
1056
|
+
}
|
|
1057
|
+
getRotated90() {
|
|
1058
|
+
return BoothRect.fromCxcywh(this.cx, this.cy, this.h, this.w);
|
|
1059
|
+
}
|
|
1060
|
+
normalize(width, height) {
|
|
1061
|
+
return new BoothRect(this.x1 / width, this.y1 / height, this.x2 / width, this.y2 / height);
|
|
1062
|
+
}
|
|
1063
|
+
withPadding(x, y = x) {
|
|
1064
|
+
if (this.w < x * 2 || this.h < y * 2)
|
|
1065
|
+
return this;
|
|
1066
|
+
return BoothRect.fromCxcywh(this.cx, this.cy, this.w - x * 2, this.h - y * 2);
|
|
1067
|
+
}
|
|
1068
|
+
scale(s) {
|
|
1069
|
+
return new BoothRect(this.x1 * s, this.y1 * s, this.x2 * s, this.y2 * s);
|
|
1070
|
+
}
|
|
1071
|
+
getArea() {
|
|
1072
|
+
return this.w * this.h;
|
|
1073
|
+
}
|
|
1074
|
+
clone() {
|
|
1075
|
+
return new BoothRect(this.x1, this.y1, this.x2, this.y2);
|
|
1076
|
+
}
|
|
1077
|
+
translate(dx, dy) {
|
|
1078
|
+
this.x1 += dx;
|
|
1079
|
+
this.x2 += dx;
|
|
1080
|
+
this.y1 += dy;
|
|
1081
|
+
this.y2 += dy;
|
|
1082
|
+
return this;
|
|
1083
|
+
}
|
|
1084
|
+
equals(r) {
|
|
1085
|
+
return r.x1 === this.x1 && r.x2 === this.x2 && r.y1 === this.y1 && r.y2 === this.y2;
|
|
1086
|
+
}
|
|
1087
|
+
toString() {
|
|
1088
|
+
return this.x1 + ',' + this.y1 + ',' + this.w + ',' + this.h;
|
|
1089
|
+
}
|
|
1090
|
+
containsPoint(x, y) {
|
|
1091
|
+
return x >= this.x1 && x <= this.x2 && y >= this.y1 && y <= this.y2;
|
|
1092
|
+
}
|
|
1093
|
+
}
|