@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,85 @@
|
|
|
1
|
+
import { update } from '@expofp/renderer';
|
|
2
|
+
import { useRef } from 'react';
|
|
3
|
+
import store from '../../store';
|
|
4
|
+
import { useReaction } from '../../utils/mobx';
|
|
5
|
+
import { fitMapToLocalRect } from './utils/geo-config';
|
|
6
|
+
import { collectLayerDefsByName } from './utils/layer-defs';
|
|
7
|
+
/**
|
|
8
|
+
* Keeps the 3D scene layer visibility in sync with LayerStore.
|
|
9
|
+
* When a layer's visibility changes, updates the corresponding LayerDefs
|
|
10
|
+
* and fits the camera to the newly visible floor.
|
|
11
|
+
*
|
|
12
|
+
* Single owner of `LayerDef.hidden`: a floor def is hidden when its layer is
|
|
13
|
+
* not visible OR its venue has degraded below its detail cutoff (R6); a venue
|
|
14
|
+
* aux layer def is hidden unless the venue's zoom state lists it visible (R5 —
|
|
15
|
+
* `Layer.visible` is ignored, the zoom range is the only signal). No other
|
|
16
|
+
* code writes the field, so degradation hiding and visibility switching can
|
|
17
|
+
* never fight over it.
|
|
18
|
+
*
|
|
19
|
+
* The claim is scoped to the defs reachable from `store.layerStore.layers`.
|
|
20
|
+
* Booth badges are deliberately outside it: `configAll` stacks them in a flat
|
|
21
|
+
* `root::badges` layer above the plan, which is neither a store layer nor a
|
|
22
|
+
* child of one, so neither this reaction nor the parent-hidden cascade reaches
|
|
23
|
+
* them. They answer the same question for themselves — see
|
|
24
|
+
* `config-booth-badge-visibility`.
|
|
25
|
+
*/
|
|
26
|
+
export function useLayerVisibilitySync(scene, mapRef, geoConfig) {
|
|
27
|
+
const layerDefsByNameRef = useRef(null);
|
|
28
|
+
const visibleFloorNameRef = useRef(null);
|
|
29
|
+
useReaction(() => [
|
|
30
|
+
...store.layerStore.layers.map((layer) => `${layer.name}:${layer.visible ? 1 : 0}`),
|
|
31
|
+
`quarantine:${store.layerStore.quarantinedLayerNames.join('+')}`,
|
|
32
|
+
...store.venueStore.venues.map((venue) => `${venue.id}:${venue.detailVisible ? 1 : 0}:${venue.presentationState?.visibleAuxLayers.join('+') ?? ''}`),
|
|
33
|
+
].join(','), () => {
|
|
34
|
+
if (!scene)
|
|
35
|
+
return;
|
|
36
|
+
if (layerDefsByNameRef.current?.rootLayer !== scene.rootLayer) {
|
|
37
|
+
layerDefsByNameRef.current = {
|
|
38
|
+
rootLayer: scene.rootLayer,
|
|
39
|
+
defsByName: collectLayerDefsByName(scene.rootLayer),
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
const defsByName = layerDefsByNameRef.current.defsByName;
|
|
43
|
+
const defsToUpdate = [];
|
|
44
|
+
const belowDetail = (layer) => {
|
|
45
|
+
const venue = store.venueStore.venueOfLayer(layer.rootParent?.name ?? layer.name);
|
|
46
|
+
return !!venue && !venue.detailVisible;
|
|
47
|
+
};
|
|
48
|
+
const auxVenuesByLayerName = store.venueStore.auxVenuesByLayerName;
|
|
49
|
+
// Pin-kind aux artwork renders only as a screen-fixed marker icon
|
|
50
|
+
// (useVenueLayers, KTD-5) — its scene def stays hidden unconditionally
|
|
51
|
+
// so the artwork never double-renders as a zoom-scaling plan layer.
|
|
52
|
+
const isPinAux = (name, owners) => owners.some((venue) => venue.auxLayers.some((ref) => ref.layer === name && ref.render === 'marker'));
|
|
53
|
+
for (const layer of store.layerStore.layers) {
|
|
54
|
+
const defs = defsByName.get(layer.name);
|
|
55
|
+
if (!defs?.length)
|
|
56
|
+
continue;
|
|
57
|
+
const auxOwners = auxVenuesByLayerName.get(layer.name);
|
|
58
|
+
const hidden = store.layerStore.isLayerQuarantined(layer) ||
|
|
59
|
+
(auxOwners
|
|
60
|
+
? isPinAux(layer.name, auxOwners) ||
|
|
61
|
+
!auxOwners.some((venue) => venue.presentationState?.visibleAuxLayers.includes(layer.name))
|
|
62
|
+
: !layer.visible || belowDetail(layer));
|
|
63
|
+
for (const def of defs) {
|
|
64
|
+
if (def.hidden === hidden)
|
|
65
|
+
continue;
|
|
66
|
+
def.hidden = hidden;
|
|
67
|
+
defsToUpdate.push(def);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (defsToUpdate.length) {
|
|
71
|
+
update(...defsToUpdate);
|
|
72
|
+
}
|
|
73
|
+
// Venue-model plans drive the camera from focus/level actions, never
|
|
74
|
+
// from visibility syncing: venue-model activation sets its own target
|
|
75
|
+
// (VenueStore.activateLayer).
|
|
76
|
+
if (store.venueStore.isCampusMode)
|
|
77
|
+
return;
|
|
78
|
+
const visibleFloor = store.layerStore.layers.find((layer) => layer.visible && !layer.frozen && !layer.rootParent && !layer.pathway);
|
|
79
|
+
if (!visibleFloor || visibleFloorNameRef.current === visibleFloor.name)
|
|
80
|
+
return;
|
|
81
|
+
visibleFloorNameRef.current = visibleFloor.name;
|
|
82
|
+
const floorRect = visibleFloor.viewbox ?? visibleFloor.rect;
|
|
83
|
+
fitMapToLocalRect(mapRef.current, floorRect ?? null, geoConfig);
|
|
84
|
+
}, { fireImmediately: true }, [scene, mapRef, geoConfig]);
|
|
85
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { type Map as MaplibreMap } from 'maplibre-gl';
|
|
2
|
+
import { type RefObject } from 'react';
|
|
3
|
+
import { type GeoConfig } from './utils/geo-config';
|
|
4
|
+
/**
|
|
5
|
+
* Renders the outdoor PoI markers (hotels, parking, transit) as native
|
|
6
|
+
* MapLibre layers: a GeoJSON source with `cluster: true` plus symbol/circle
|
|
7
|
+
* layers on top of it. Geo map only — the hook is mounted from
|
|
8
|
+
* MaplibreAdapter, and runs once the renderer's `3d` custom layer exists so
|
|
9
|
+
* the marker stack draws above the floor plan.
|
|
10
|
+
*
|
|
11
|
+
* The marker feed is `store.poiMarkerStore`: `config-outdoor-poi` builds the
|
|
12
|
+
* marker records (including the rasterized pins, registered here via
|
|
13
|
+
* `map.addImage`), and the store derives selection (`selectedMarkerId`), the
|
|
14
|
+
* active filter (`outdoorFilter`) and dimming suppression from them. These
|
|
15
|
+
* layers are the *only* rendering outdoor PoIs get — see
|
|
16
|
+
* `configOutdoorPoiLayer`. Clicks are claimed from the renderer path via
|
|
17
|
+
* `poiMarkerHitTest`.
|
|
18
|
+
*
|
|
19
|
+
* Gated behind `enableExperimentalOutdoorMarkers`: with the flag off no layers,
|
|
20
|
+
* images or handlers are created at all. The feed is empty in that case too
|
|
21
|
+
* (`configOutdoorPoiLayer` never publishes), so this is belt-and-braces — it
|
|
22
|
+
* keeps the map untouched even if markers reach the store another way.
|
|
23
|
+
*/
|
|
24
|
+
export declare function usePoiMarkers(ready: boolean, mapRef: RefObject<MaplibreMap | null>, geoConfig: GeoConfig | null): void;
|
|
25
|
+
//# sourceMappingURL=usePoiMarkers.d.ts.map
|
|
@@ -0,0 +1,368 @@
|
|
|
1
|
+
import { Box } from '@expofp/geometry';
|
|
2
|
+
import { reaction } from 'mobx';
|
|
3
|
+
import { useEffect } from 'react';
|
|
4
|
+
import { POI_CLUSTER_COLOR, POI_CLUSTER_MIN_POINTS, POI_CLUSTER_RADIUS_PX, POI_CLUSTER_SIZE_PX, POI_CLUSTER_STROKE_COLOR, POI_CLUSTER_STROKE_WIDTH_PX, POI_CLUSTER_TEXT_SIZE_PX, POI_MARKER_PIN_WIDTH_PX, POI_SELECTED_PIN_WIDTH_PX, } from '../../constants';
|
|
5
|
+
import store from '../../store';
|
|
6
|
+
import settings from '../../tools/settings';
|
|
7
|
+
import { DIM_INTENSITY } from '../../utils/dimming';
|
|
8
|
+
import { convertLocalToGps } from '../../utils/gps';
|
|
9
|
+
import { isOutdoorMarkersEnabled } from '../../utils/outdoor-poi';
|
|
10
|
+
import { createPoiPinheadImage } from '../Map/drawing/config/poi-pin.js';
|
|
11
|
+
import { getPoiPinLayout, POI_MARKER_PIN_SHAPE, POI_SELECTED_PIN_SHAPE, } from '../Map/drawing/config/poi-pin-shape.js';
|
|
12
|
+
import { getMapDimTarget } from './useDimming';
|
|
13
|
+
import { getLocalRectGeoBounds, getVisibleRectFitPadding, isLngLatInVisibleViewport, } from './utils/geo-config';
|
|
14
|
+
import { beforeLayer, POI_MARKER_FLOOR_LAYER_ID, VENUE_MARKER_FLOOR_LAYER_ID, } from './utils/marker-layer-order';
|
|
15
|
+
import { poiMarkerHitTest } from './utils/poi-marker-hit-test';
|
|
16
|
+
import { pickUprightTextFont } from './utils/style-fonts';
|
|
17
|
+
const POI_SOURCE_ID = 'expofp-poi';
|
|
18
|
+
const POI_CLUSTERS_LAYER_ID = POI_MARKER_FLOOR_LAYER_ID;
|
|
19
|
+
const POI_CLUSTER_COUNT_LAYER_ID = 'expofp-poi-cluster-count';
|
|
20
|
+
const POI_UNCLUSTERED_LAYER_ID = 'expofp-poi-unclustered';
|
|
21
|
+
const POI_SELECTED_LAYER_ID = 'expofp-poi-selected';
|
|
22
|
+
const POI_PINHEAD_IMAGE_ID = 'expofp-poi-pinhead-image';
|
|
23
|
+
const POI_CLUSTER_FOOTPRINT_IMAGE_ID = 'expofp-poi-cluster-footprint-image';
|
|
24
|
+
/** All native POI layers, in add order (pinhead on top). */
|
|
25
|
+
const POI_LAYER_IDS = [
|
|
26
|
+
POI_CLUSTERS_LAYER_ID,
|
|
27
|
+
POI_CLUSTER_COUNT_LAYER_ID,
|
|
28
|
+
POI_UNCLUSTERED_LAYER_ID,
|
|
29
|
+
POI_SELECTED_LAYER_ID,
|
|
30
|
+
];
|
|
31
|
+
/**
|
|
32
|
+
* The layers whose features a click should claim from the renderer path — all
|
|
33
|
+
* of them but the cluster count, whose glyphs sit on the cluster circles.
|
|
34
|
+
*/
|
|
35
|
+
const POI_HIT_LAYER_IDS = POI_LAYER_IDS.filter((id) => id !== POI_CLUSTER_COUNT_LAYER_ID);
|
|
36
|
+
const iconImageId = (boothId) => `expofp-poi-icon-${boothId}`;
|
|
37
|
+
/**
|
|
38
|
+
* Renders the outdoor PoI markers (hotels, parking, transit) as native
|
|
39
|
+
* MapLibre layers: a GeoJSON source with `cluster: true` plus symbol/circle
|
|
40
|
+
* layers on top of it. Geo map only — the hook is mounted from
|
|
41
|
+
* MaplibreAdapter, and runs once the renderer's `3d` custom layer exists so
|
|
42
|
+
* the marker stack draws above the floor plan.
|
|
43
|
+
*
|
|
44
|
+
* The marker feed is `store.poiMarkerStore`: `config-outdoor-poi` builds the
|
|
45
|
+
* marker records (including the rasterized pins, registered here via
|
|
46
|
+
* `map.addImage`), and the store derives selection (`selectedMarkerId`), the
|
|
47
|
+
* active filter (`outdoorFilter`) and dimming suppression from them. These
|
|
48
|
+
* layers are the *only* rendering outdoor PoIs get — see
|
|
49
|
+
* `configOutdoorPoiLayer`. Clicks are claimed from the renderer path via
|
|
50
|
+
* `poiMarkerHitTest`.
|
|
51
|
+
*
|
|
52
|
+
* Gated behind `enableExperimentalOutdoorMarkers`: with the flag off no layers,
|
|
53
|
+
* images or handlers are created at all. The feed is empty in that case too
|
|
54
|
+
* (`configOutdoorPoiLayer` never publishes), so this is belt-and-braces — it
|
|
55
|
+
* keeps the map untouched even if markers reach the store another way.
|
|
56
|
+
*/
|
|
57
|
+
export function usePoiMarkers(ready, mapRef, geoConfig) {
|
|
58
|
+
useEffect(() => {
|
|
59
|
+
if (!isOutdoorMarkersEnabled())
|
|
60
|
+
return;
|
|
61
|
+
const map = mapRef.current;
|
|
62
|
+
if (!ready || !map || !geoConfig)
|
|
63
|
+
return;
|
|
64
|
+
const { gpsConfig } = geoConfig;
|
|
65
|
+
const registeredImages = new Set();
|
|
66
|
+
// Shared selection visual: every marker uses the same pinhead, drawn in
|
|
67
|
+
// the selection color — so one image serves all markers.
|
|
68
|
+
const pixelRatio = window.devicePixelRatio || 1;
|
|
69
|
+
const selectionColor = settings.colors?.booths?.selected || '#3b6ef5';
|
|
70
|
+
const pinheadImage = createPoiPinheadImage(POI_SELECTED_PIN_WIDTH_PX, pixelRatio, selectionColor);
|
|
71
|
+
// The pin images carry a drop shadow below the tip; shift each one down so
|
|
72
|
+
// the tip itself sits on the marker's point.
|
|
73
|
+
const markerTipOffset = getPoiPinLayout(POI_MARKER_PIN_SHAPE, POI_MARKER_PIN_WIDTH_PX, pixelRatio).tipOffset;
|
|
74
|
+
const pinheadTipOffset = getPoiPinLayout(POI_SELECTED_PIN_SHAPE, POI_SELECTED_PIN_WIDTH_PX, pixelRatio).tipOffset;
|
|
75
|
+
// Circle layers never collide, so the cluster disc reserves its space
|
|
76
|
+
// through a transparent, disc-sized icon on the count layer instead.
|
|
77
|
+
const clusterFootprintPx = Math.ceil((POI_CLUSTER_SIZE_PX + 2 * POI_CLUSTER_STROKE_WIDTH_PX) * pixelRatio);
|
|
78
|
+
const clusterFootprintImage = new ImageData(clusterFootprintPx, clusterFootprintPx);
|
|
79
|
+
const lngLatOf = (marker) => convertLocalToGps(marker.center.x, marker.center.y, gpsConfig);
|
|
80
|
+
// The pins (config-outdoor-poi) and the shared pinhead are rasterized at
|
|
81
|
+
// devicePixelRatio; addImage's pixelRatio option restores the CSS size.
|
|
82
|
+
const addImage = (id, image) => {
|
|
83
|
+
// Replace any earlier registration (or the transparent placeholder the
|
|
84
|
+
// styleimagemissing handler may have stuffed in).
|
|
85
|
+
if (map.hasImage(id))
|
|
86
|
+
map.removeImage(id);
|
|
87
|
+
map.addImage(id, image, { pixelRatio });
|
|
88
|
+
registeredImages.add(id);
|
|
89
|
+
};
|
|
90
|
+
// Register the marker pins as style images and prune the ones whose markers
|
|
91
|
+
// are gone. `force` re-registers everything — used when the marker set is
|
|
92
|
+
// rebuilt, since the same booth ids can return with brand-new raster data.
|
|
93
|
+
const syncImages = (force) => {
|
|
94
|
+
const currentMarkers = store.poiMarkerStore.markers;
|
|
95
|
+
const desired = new Set(currentMarkers.map((marker) => iconImageId(marker.boothId)));
|
|
96
|
+
desired.add(POI_PINHEAD_IMAGE_ID);
|
|
97
|
+
desired.add(POI_CLUSTER_FOOTPRINT_IMAGE_ID);
|
|
98
|
+
for (const id of [...registeredImages]) {
|
|
99
|
+
if (desired.has(id))
|
|
100
|
+
continue;
|
|
101
|
+
if (map.hasImage(id))
|
|
102
|
+
map.removeImage(id);
|
|
103
|
+
registeredImages.delete(id);
|
|
104
|
+
}
|
|
105
|
+
for (const marker of currentMarkers) {
|
|
106
|
+
const id = iconImageId(marker.boothId);
|
|
107
|
+
if (force || !registeredImages.has(id))
|
|
108
|
+
addImage(id, marker.icon);
|
|
109
|
+
}
|
|
110
|
+
// The pinhead and the cluster footprint never change for this effect's lifetime.
|
|
111
|
+
if (!registeredImages.has(POI_PINHEAD_IMAGE_ID)) {
|
|
112
|
+
addImage(POI_PINHEAD_IMAGE_ID, pinheadImage);
|
|
113
|
+
}
|
|
114
|
+
if (!registeredImages.has(POI_CLUSTER_FOOTPRINT_IMAGE_ID)) {
|
|
115
|
+
addImage(POI_CLUSTER_FOOTPRINT_IMAGE_ID, clusterFootprintImage);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
// The single data path: selection (one pinhead feature) > filter (matching
|
|
119
|
+
// markers, not clustered) > everything. MapLibre reclusters on setData, so
|
|
120
|
+
// filtering and selection need no imperative per-marker state.
|
|
121
|
+
const buildData = () => {
|
|
122
|
+
const pinheadId = store.poiMarkerStore.selectedMarkerId;
|
|
123
|
+
const filter = store.poiMarkerStore.outdoorFilter;
|
|
124
|
+
const cluster = !filter.active;
|
|
125
|
+
let markers = store.poiMarkerStore.markers;
|
|
126
|
+
if (pinheadId !== null) {
|
|
127
|
+
markers = markers.filter((marker) => marker.boothId === pinheadId);
|
|
128
|
+
}
|
|
129
|
+
else if (filter.active) {
|
|
130
|
+
markers = filter.matchingMarkers;
|
|
131
|
+
}
|
|
132
|
+
return {
|
|
133
|
+
cluster,
|
|
134
|
+
data: {
|
|
135
|
+
type: 'FeatureCollection',
|
|
136
|
+
features: markers.map((marker) => ({
|
|
137
|
+
type: 'Feature',
|
|
138
|
+
geometry: { type: 'Point', coordinates: lngLatOf(marker) },
|
|
139
|
+
properties: {
|
|
140
|
+
boothId: marker.boothId,
|
|
141
|
+
icon: iconImageId(marker.boothId),
|
|
142
|
+
pinhead: marker.boothId === pinheadId,
|
|
143
|
+
},
|
|
144
|
+
})),
|
|
145
|
+
},
|
|
146
|
+
};
|
|
147
|
+
};
|
|
148
|
+
// Added after the `3d` custom layer (this hook runs on renderer-ready),
|
|
149
|
+
// so the whole stack draws above the floor plan — and below the venue
|
|
150
|
+
// markers (marker-layer-order), which win where the two overlap.
|
|
151
|
+
let sourceClustered = null;
|
|
152
|
+
const removeSourceAndLayers = () => {
|
|
153
|
+
for (const id of POI_LAYER_IDS) {
|
|
154
|
+
if (map.getLayer(id))
|
|
155
|
+
map.removeLayer(id);
|
|
156
|
+
}
|
|
157
|
+
if (map.getSource(POI_SOURCE_ID))
|
|
158
|
+
map.removeSource(POI_SOURCE_ID);
|
|
159
|
+
sourceClustered = null;
|
|
160
|
+
};
|
|
161
|
+
const ensureSourceAndLayers = (data, cluster) => {
|
|
162
|
+
if (sourceClustered !== null && sourceClustered !== cluster) {
|
|
163
|
+
removeSourceAndLayers();
|
|
164
|
+
}
|
|
165
|
+
if (!map.getSource(POI_SOURCE_ID)) {
|
|
166
|
+
map.addSource(POI_SOURCE_ID, {
|
|
167
|
+
type: 'geojson',
|
|
168
|
+
data,
|
|
169
|
+
cluster,
|
|
170
|
+
clusterRadius: POI_CLUSTER_RADIUS_PX,
|
|
171
|
+
clusterMinPoints: POI_CLUSTER_MIN_POINTS,
|
|
172
|
+
// clusterMaxZoom stays at its default (source maxzoom - 1): passing
|
|
173
|
+
// map.getMaxZoom() (22) trips a MapLibre warning because the GeoJSON
|
|
174
|
+
// source's tile maxzoom is 18.
|
|
175
|
+
});
|
|
176
|
+
sourceClustered = cluster;
|
|
177
|
+
}
|
|
178
|
+
if (map.getLayer(POI_CLUSTERS_LAYER_ID))
|
|
179
|
+
return;
|
|
180
|
+
const notCluster = ['!', ['has', 'point_count']];
|
|
181
|
+
const isPinhead = ['==', ['coalesce', ['get', 'pinhead'], false], true];
|
|
182
|
+
const belowVenueMarkers = beforeLayer(map, VENUE_MARKER_FLOOR_LAYER_ID);
|
|
183
|
+
const addUnderVenueMarkers = (layer) => map.addLayer(layer, belowVenueMarkers);
|
|
184
|
+
addUnderVenueMarkers({
|
|
185
|
+
id: POI_CLUSTERS_LAYER_ID,
|
|
186
|
+
type: 'circle',
|
|
187
|
+
source: POI_SOURCE_ID,
|
|
188
|
+
filter: ['has', 'point_count'],
|
|
189
|
+
paint: {
|
|
190
|
+
'circle-radius': POI_CLUSTER_SIZE_PX / 2,
|
|
191
|
+
'circle-color': POI_CLUSTER_COLOR,
|
|
192
|
+
'circle-stroke-color': POI_CLUSTER_STROKE_COLOR,
|
|
193
|
+
'circle-stroke-width': POI_CLUSTER_STROKE_WIDTH_PX,
|
|
194
|
+
'circle-pitch-alignment': 'viewport',
|
|
195
|
+
},
|
|
196
|
+
});
|
|
197
|
+
addUnderVenueMarkers({
|
|
198
|
+
id: POI_CLUSTER_COUNT_LAYER_ID,
|
|
199
|
+
type: 'symbol',
|
|
200
|
+
source: POI_SOURCE_ID,
|
|
201
|
+
filter: ['has', 'point_count'],
|
|
202
|
+
layout: {
|
|
203
|
+
'text-field': ['get', 'point_count_abbreviated'],
|
|
204
|
+
'text-font': pickUprightTextFont(map),
|
|
205
|
+
'text-size': POI_CLUSTER_TEXT_SIZE_PX,
|
|
206
|
+
'text-allow-overlap': true,
|
|
207
|
+
'icon-image': POI_CLUSTER_FOOTPRINT_IMAGE_ID,
|
|
208
|
+
'icon-allow-overlap': true,
|
|
209
|
+
},
|
|
210
|
+
paint: { 'text-color': '#ffffff' },
|
|
211
|
+
});
|
|
212
|
+
addUnderVenueMarkers({
|
|
213
|
+
id: POI_UNCLUSTERED_LAYER_ID,
|
|
214
|
+
type: 'symbol',
|
|
215
|
+
source: POI_SOURCE_ID,
|
|
216
|
+
filter: ['all', notCluster, ['!', isPinhead]],
|
|
217
|
+
layout: {
|
|
218
|
+
'icon-image': ['get', 'icon'],
|
|
219
|
+
'icon-anchor': 'bottom',
|
|
220
|
+
'icon-offset': [0, markerTipOffset],
|
|
221
|
+
'icon-allow-overlap': true,
|
|
222
|
+
},
|
|
223
|
+
});
|
|
224
|
+
addUnderVenueMarkers({
|
|
225
|
+
id: POI_SELECTED_LAYER_ID,
|
|
226
|
+
type: 'symbol',
|
|
227
|
+
source: POI_SOURCE_ID,
|
|
228
|
+
filter: ['all', notCluster, isPinhead],
|
|
229
|
+
layout: {
|
|
230
|
+
'icon-image': POI_PINHEAD_IMAGE_ID,
|
|
231
|
+
'icon-anchor': 'bottom',
|
|
232
|
+
'icon-offset': [0, pinheadTipOffset],
|
|
233
|
+
'icon-allow-overlap': true,
|
|
234
|
+
},
|
|
235
|
+
});
|
|
236
|
+
};
|
|
237
|
+
// Marker-layer counterpart of the plan dimming: markers live above the
|
|
238
|
+
// map dim fill, so they dim via their own paint opacity when the venue
|
|
239
|
+
// dims (and stay bright while a POI filter/selection suppresses dimming).
|
|
240
|
+
const applyDimming = () => {
|
|
241
|
+
if (!map.getLayer(POI_CLUSTERS_LAYER_ID))
|
|
242
|
+
return;
|
|
243
|
+
const opacity = getMapDimTarget() ? 1 - DIM_INTENSITY : 1;
|
|
244
|
+
map.setPaintProperty(POI_CLUSTERS_LAYER_ID, 'circle-opacity', opacity);
|
|
245
|
+
map.setPaintProperty(POI_CLUSTERS_LAYER_ID, 'circle-stroke-opacity', opacity);
|
|
246
|
+
map.setPaintProperty(POI_CLUSTER_COUNT_LAYER_ID, 'text-opacity', opacity);
|
|
247
|
+
map.setPaintProperty(POI_UNCLUSTERED_LAYER_ID, 'icon-opacity', opacity);
|
|
248
|
+
map.setPaintProperty(POI_SELECTED_LAYER_ID, 'icon-opacity', opacity);
|
|
249
|
+
};
|
|
250
|
+
// `forceImages` re-rasterizes every style image; only the marker set
|
|
251
|
+
// changing (or a style reload) needs it.
|
|
252
|
+
const refresh = (forceImages = false) => {
|
|
253
|
+
syncImages(forceImages);
|
|
254
|
+
const { cluster, data } = buildData();
|
|
255
|
+
ensureSourceAndLayers(data, cluster);
|
|
256
|
+
map.getSource(POI_SOURCE_ID)?.setData(data);
|
|
257
|
+
applyDimming();
|
|
258
|
+
};
|
|
259
|
+
// Bring the filter's matching markers into view (only when needed).
|
|
260
|
+
const fitOutdoorFilterMarkers = (markers) => {
|
|
261
|
+
if (!markers.length)
|
|
262
|
+
return;
|
|
263
|
+
const padding = getVisibleRectFitPadding(50);
|
|
264
|
+
const allVisible = markers.every((marker) => isLngLatInVisibleViewport(map, lngLatOf(marker), padding));
|
|
265
|
+
if (allVisible)
|
|
266
|
+
return;
|
|
267
|
+
const markerBox = Box.fromPoints(markers.map((marker) => marker.center));
|
|
268
|
+
const bounds = getLocalRectGeoBounds(markerBox, gpsConfig);
|
|
269
|
+
const camera = map.cameraForBounds(bounds, { padding, bearing: geoConfig.bearing });
|
|
270
|
+
if (!camera?.center || typeof camera.zoom !== 'number')
|
|
271
|
+
return;
|
|
272
|
+
map.easeTo({
|
|
273
|
+
center: camera.center,
|
|
274
|
+
zoom: Math.min(map.getZoom(), camera.zoom),
|
|
275
|
+
bearing: geoConfig.bearing,
|
|
276
|
+
duration: 500,
|
|
277
|
+
essential: true,
|
|
278
|
+
});
|
|
279
|
+
};
|
|
280
|
+
// --- Map interaction -----------------------------------------------------
|
|
281
|
+
const handleMarkerClick = (event) => {
|
|
282
|
+
const boothId = event.features?.[0]?.properties?.boothId;
|
|
283
|
+
if (typeof boothId !== 'number')
|
|
284
|
+
return;
|
|
285
|
+
// clickBooth updates uiState.selectedBooths; the store's
|
|
286
|
+
// selectedMarkerId computed re-derives the pinhead from it.
|
|
287
|
+
const booth = store.boothStore.boothById.get(boothId);
|
|
288
|
+
if (booth)
|
|
289
|
+
store.clickBooth(booth);
|
|
290
|
+
};
|
|
291
|
+
const handleClusterClick = (event) => {
|
|
292
|
+
const feature = event.features?.[0];
|
|
293
|
+
const clusterId = feature?.properties?.cluster_id;
|
|
294
|
+
const source = map.getSource(POI_SOURCE_ID);
|
|
295
|
+
if (typeof clusterId !== 'number' || !source || feature?.geometry?.type !== 'Point')
|
|
296
|
+
return;
|
|
297
|
+
const [lng = 0, lat = 0] = feature.geometry.coordinates;
|
|
298
|
+
void source.getClusterExpansionZoom(clusterId).then((expansionZoom) => {
|
|
299
|
+
map.easeTo({
|
|
300
|
+
center: [lng, lat],
|
|
301
|
+
zoom: Math.min(expansionZoom, map.getMaxZoom()),
|
|
302
|
+
duration: 500,
|
|
303
|
+
});
|
|
304
|
+
});
|
|
305
|
+
};
|
|
306
|
+
map.on('click', POI_UNCLUSTERED_LAYER_ID, handleMarkerClick);
|
|
307
|
+
map.on('click', POI_SELECTED_LAYER_ID, handleMarkerClick);
|
|
308
|
+
map.on('click', POI_CLUSTERS_LAYER_ID, handleClusterClick);
|
|
309
|
+
// Claim clicks on native POI features from the renderer click pipeline
|
|
310
|
+
// (`clickedPlan` in Map/pointer.ts) so the booth underneath isn't double-selected.
|
|
311
|
+
poiMarkerHitTest.set((clientX, clientY) => {
|
|
312
|
+
const layers = POI_HIT_LAYER_IDS.filter((id) => !!map.getLayer(id));
|
|
313
|
+
if (!layers.length)
|
|
314
|
+
return false;
|
|
315
|
+
const rect = map.getCanvas().getBoundingClientRect();
|
|
316
|
+
return (map.queryRenderedFeatures([clientX - rect.left, clientY - rect.top], { layers }).length > 0);
|
|
317
|
+
});
|
|
318
|
+
// A style reload drops all sources, layers and images. Nothing in the app
|
|
319
|
+
// calls setStyle today, so this never fires after init — but
|
|
320
|
+
// MaplibreWrapper's own style.load handler already re-adds the dim and 3d
|
|
321
|
+
// layers defensively, and this keeps the POI stack alive with them. Our
|
|
322
|
+
// handler is registered after the wrapper's, so the re-added POI layers
|
|
323
|
+
// land above the re-added 3d layer, preserving z-order.
|
|
324
|
+
const handleStyleLoad = () => {
|
|
325
|
+
registeredImages.clear();
|
|
326
|
+
refresh(true);
|
|
327
|
+
};
|
|
328
|
+
map.on('style.load', handleStyleLoad);
|
|
329
|
+
// --- State subscriptions -------------------------------------------------
|
|
330
|
+
// Marker set changed (scene build/teardown): same booth ids may return
|
|
331
|
+
// with brand-new raster data, so force image re-registration.
|
|
332
|
+
const markersDisposer = reaction(() => store.poiMarkerStore.markers, () => refresh(true));
|
|
333
|
+
// Booth selection (click or search): drives the pinhead via the store's
|
|
334
|
+
// selectedMarkerId computed (itself derived from uiState.selectedBooths).
|
|
335
|
+
const selectedBoothDisposer = reaction(() => store.poiMarkerStore.selectedMarkerId, () => refresh());
|
|
336
|
+
// Keyed on the matching booth ids, so this fires exactly when what the
|
|
337
|
+
// filter shows changes — and re-fitting the camera needs no extra guard.
|
|
338
|
+
const filterDisposer = reaction(() => store.poiMarkerStore.outdoorFilter.key, () => {
|
|
339
|
+
refresh();
|
|
340
|
+
fitOutdoorFilterMarkers(store.poiMarkerStore.outdoorFilter.matchingMarkers);
|
|
341
|
+
});
|
|
342
|
+
const dimDisposer = reaction(() => getMapDimTarget(), () => applyDimming());
|
|
343
|
+
refresh(true);
|
|
344
|
+
return () => {
|
|
345
|
+
markersDisposer();
|
|
346
|
+
selectedBoothDisposer();
|
|
347
|
+
filterDisposer();
|
|
348
|
+
dimDisposer();
|
|
349
|
+
poiMarkerHitTest.set(null);
|
|
350
|
+
map.off('style.load', handleStyleLoad);
|
|
351
|
+
map.off('click', POI_UNCLUSTERED_LAYER_ID, handleMarkerClick);
|
|
352
|
+
map.off('click', POI_SELECTED_LAYER_ID, handleMarkerClick);
|
|
353
|
+
map.off('click', POI_CLUSTERS_LAYER_ID, handleClusterClick);
|
|
354
|
+
// The map may already be tearing down (MaplibreWrapper.remove()); style
|
|
355
|
+
// access on a removed map throws, and everything dies with it anyway.
|
|
356
|
+
try {
|
|
357
|
+
removeSourceAndLayers();
|
|
358
|
+
for (const id of registeredImages) {
|
|
359
|
+
if (map.hasImage(id))
|
|
360
|
+
map.removeImage(id);
|
|
361
|
+
}
|
|
362
|
+
}
|
|
363
|
+
catch {
|
|
364
|
+
// Map already removed — nothing to clean up.
|
|
365
|
+
}
|
|
366
|
+
};
|
|
367
|
+
}, [ready, mapRef, geoConfig]);
|
|
368
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Map as MaplibreMap } from 'maplibre-gl';
|
|
2
|
+
import { type RefObject } from 'react';
|
|
3
|
+
import { type GeoConfig } from './utils/geo-config';
|
|
4
|
+
/** Keeps viewport context and per-venue presentation in sync while the camera moves. */
|
|
5
|
+
export declare function useVenueCameraTracking(mapRef: RefObject<MaplibreMap | null>, geoConfig: GeoConfig | null, enabled: boolean): void;
|
|
6
|
+
//# sourceMappingURL=useVenueCameraTracking.d.ts.map
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { runInAction } from 'mobx';
|
|
2
|
+
import { useEffect } from 'react';
|
|
3
|
+
import store from '../../store';
|
|
4
|
+
import { getLocalViewport } from './utils/local-viewport';
|
|
5
|
+
import { installVenueCalibrationConsole } from './utils/venue-calibration-console';
|
|
6
|
+
import { resolveVenueFocusState } from './utils/venue-focus';
|
|
7
|
+
import { getFootprintSizePx, getVenueGroundFootprint, } from './utils/venue-projection';
|
|
8
|
+
import { getViewportDetailThreshold } from './utils/venue-viewport-detail';
|
|
9
|
+
import { resolveVenuePresentationState, venuePresentationStatesEqual } from './utils/venue-zoom';
|
|
10
|
+
function updateVenueFocus(viewport) {
|
|
11
|
+
const focusedId = store.venueStore.automaticContextVenueId;
|
|
12
|
+
const candidates = store.venueStore.orderedVenues.map((venue) => ({
|
|
13
|
+
name: venue.id,
|
|
14
|
+
floorIndex: venue.order,
|
|
15
|
+
indoorDetail: venue.detailVisible,
|
|
16
|
+
rect: venue.bounds,
|
|
17
|
+
}));
|
|
18
|
+
const state = resolveVenueFocusState(viewport, candidates, focusedId);
|
|
19
|
+
if (state.kind === 'none') {
|
|
20
|
+
store.venueStore.setAutomaticContext(null);
|
|
21
|
+
}
|
|
22
|
+
else if (state.kind === 'focus' && state.name !== focusedId) {
|
|
23
|
+
store.venueStore.setAutomaticContext(state.name);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
function updateVenuePresentationStates(map, geoConfig, footprints) {
|
|
27
|
+
const zoom = map.getZoom();
|
|
28
|
+
runInAction(() => {
|
|
29
|
+
for (const venue of store.venueStore.venues) {
|
|
30
|
+
// Geodesy is camera-invariant; only the Mercator scale moves with zoom.
|
|
31
|
+
let footprint = footprints.get(venue.id);
|
|
32
|
+
if (footprint === undefined) {
|
|
33
|
+
footprint = getVenueGroundFootprint(venue.bounds, geoConfig.gpsConfig);
|
|
34
|
+
footprints.set(venue.id, footprint);
|
|
35
|
+
}
|
|
36
|
+
const sizePx = getFootprintSizePx(footprint, zoom);
|
|
37
|
+
const config = {
|
|
38
|
+
auxLayers: venue.auxLayers,
|
|
39
|
+
detailMinSizePx: getViewportDetailThreshold(map, geoConfig, venue, footprint),
|
|
40
|
+
markerMaxSizePx: venue.markerMaxSizePx,
|
|
41
|
+
};
|
|
42
|
+
const next = resolveVenuePresentationState(config, sizePx, venue.presentationState);
|
|
43
|
+
if (!venue.presentationState ||
|
|
44
|
+
!venuePresentationStatesEqual(venue.presentationState, next)) {
|
|
45
|
+
venue.presentationState = next;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
/** Keeps viewport context and per-venue presentation in sync while the camera moves. */
|
|
51
|
+
export function useVenueCameraTracking(mapRef, geoConfig, enabled) {
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
const map = mapRef.current;
|
|
54
|
+
const venueMode = store.venueStore.isCampusMode;
|
|
55
|
+
if (!enabled || !map || !geoConfig || !venueMode)
|
|
56
|
+
return;
|
|
57
|
+
const getViewport = () => getLocalViewport(map, geoConfig.gpsConfig);
|
|
58
|
+
// Resolved lazily per venue and reused for the effect's lifetime: venue
|
|
59
|
+
// bounds and the plan's GPS anchors are both fixed once the model is built.
|
|
60
|
+
const footprints = new Map();
|
|
61
|
+
const updateFromCamera = () => {
|
|
62
|
+
updateVenuePresentationStates(map, geoConfig, footprints);
|
|
63
|
+
const viewport = getViewport();
|
|
64
|
+
if (viewport)
|
|
65
|
+
updateVenueFocus(viewport);
|
|
66
|
+
};
|
|
67
|
+
// A trailing debounce would defer focus until panning or zooming stops.
|
|
68
|
+
// Limit updates to one per rendered frame instead, then flush the final state.
|
|
69
|
+
let animationFrame;
|
|
70
|
+
const handleMove = (event) => {
|
|
71
|
+
// Live per-frame updates only for user gestures (which carry a DOM
|
|
72
|
+
// originalEvent). Programmatic moves — search-result / venue-name flies —
|
|
73
|
+
// animate too fast for the switch to track smoothly, so let them settle
|
|
74
|
+
// and update once at moveend instead.
|
|
75
|
+
if (!event.originalEvent)
|
|
76
|
+
return;
|
|
77
|
+
store.venueStore.releaseDestinationOverride();
|
|
78
|
+
if (animationFrame !== undefined)
|
|
79
|
+
return;
|
|
80
|
+
animationFrame = requestAnimationFrame(() => {
|
|
81
|
+
animationFrame = undefined;
|
|
82
|
+
updateFromCamera();
|
|
83
|
+
});
|
|
84
|
+
};
|
|
85
|
+
const handleMoveEnd = () => {
|
|
86
|
+
if (animationFrame !== undefined) {
|
|
87
|
+
cancelAnimationFrame(animationFrame);
|
|
88
|
+
animationFrame = undefined;
|
|
89
|
+
}
|
|
90
|
+
updateFromCamera();
|
|
91
|
+
};
|
|
92
|
+
// Resolve the full switch state from the mount-time camera: the map is
|
|
93
|
+
// already at its initial position (set synchronously in the MaplibreMap
|
|
94
|
+
// constructor), so both camera-driven degradation (KTD-3 - no forced detail
|
|
95
|
+
// boot) and viewport-driven venue focus must be seeded now. Seeding zoom
|
|
96
|
+
// only would leave the selector in the overview default until the first
|
|
97
|
+
// pan, flashing the wrong venue/level on load.
|
|
98
|
+
updateFromCamera();
|
|
99
|
+
map.on('move', handleMove);
|
|
100
|
+
map.on('moveend', handleMoveEnd);
|
|
101
|
+
// Dev-only `window.__efpVenues()`: reads the size axis at the current
|
|
102
|
+
// camera and reports what to author (§12 Guard 5). Installed here because
|
|
103
|
+
// this is where the map and the plan's GPS anchors are already resolved.
|
|
104
|
+
const uninstallCalibrationConsole = import.meta.env.DEV
|
|
105
|
+
? installVenueCalibrationConsole(map, geoConfig)
|
|
106
|
+
: undefined;
|
|
107
|
+
return () => {
|
|
108
|
+
if (animationFrame !== undefined)
|
|
109
|
+
cancelAnimationFrame(animationFrame);
|
|
110
|
+
map.off('move', handleMove);
|
|
111
|
+
map.off('moveend', handleMoveEnd);
|
|
112
|
+
uninstallCalibrationConsole?.();
|
|
113
|
+
};
|
|
114
|
+
}, [enabled, geoConfig, mapRef]);
|
|
115
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Map as MaplibreMap } from 'maplibre-gl';
|
|
2
|
+
import { type RefObject } from 'react';
|
|
3
|
+
import { type GeoConfig } from './utils/geo-config';
|
|
4
|
+
/**
|
|
5
|
+
* Native MapLibre rendering of the procedural per-kind fallbacks (R9, R10): a
|
|
6
|
+
* contour fill/line pair and a named pinhead, each visible within its zoom
|
|
7
|
+
* range when no authored layer of that kind suppresses it. The geometry is
|
|
8
|
+
* static (one GeoJSON feature per venue, plan-local coordinates projected to
|
|
9
|
+
* GPS once); zoom-state changes only touch per-feature state, and paint
|
|
10
|
+
* transitions cross-fade the appearance. The floor-detail counterpart —
|
|
11
|
+
* dropping a below-cutoff venue's levels from the custom scene layer — lives
|
|
12
|
+
* in useLayerVisibilitySync, the single owner of `LayerDef.hidden`.
|
|
13
|
+
*/
|
|
14
|
+
export declare function useVenueLayers(rendererReady: boolean, mapRef: RefObject<MaplibreMap | null>, geoConfig: GeoConfig | null): void;
|
|
15
|
+
//# sourceMappingURL=useVenueLayers.d.ts.map
|