@expofp/floorplan 0.0.0-experimental.2d6c681
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-BIsWzAiP.js +38 -0
- package/dist/browser/Debug-B5mmo0ZX.js +53 -0
- package/dist/browser/DebugTools-Y0aycjKM.js +1931 -0
- package/dist/browser/Demo-B2klxORi.js +71 -0
- package/dist/browser/Free-suULW-LU.js +69 -0
- package/dist/browser/GalleryContainer-BGBNGRKU.js +3355 -0
- package/dist/browser/GpsLoader-Idv0kq5D.js +154 -0
- package/dist/browser/KioskStore-Dg9jaX5d.js +250 -0
- package/dist/browser/LayerStore-CK6wLW56.js +24105 -0
- package/dist/browser/MaplibreAdapter-uZUhZfFW.js +36770 -0
- package/dist/browser/ModalContainer-DWm8vEaI.js +148 -0
- package/dist/browser/PermissionNotice-DaqnuHln.js +54 -0
- package/dist/browser/RouteStore-NE2I9tiF.js +3715 -0
- package/dist/browser/SetKioskMode-Dwlf5w7q.js +49 -0
- package/dist/browser/ShowKiosk-Cr-QmIUT.js +82 -0
- package/dist/browser/ViewerMenuPanel-CTAjGsq2.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-BjEhhgf2.js +7393 -0
- package/dist/browser/create-live-plan-BaEGBhGA.js +4046 -0
- package/dist/browser/debounce-raMZ2DqK.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-CGzIMplb.js +3282 -0
- package/dist/browser/floorplan.ready-r96zV9bP.js +1448 -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-BgFBhYOU.js +7205 -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-D45vYRsm.js +35 -0
- package/dist/browser/is-debug-BRHdrnKr.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-DtL28HMP.js +1865 -0
- package/dist/browser/jsx-runtime-DQgnuS-I.js +30 -0
- package/dist/browser/kiosk-mode-DfkGlDkT.js +28 -0
- package/dist/browser/kiosk-record-JAEq8SV6.js +18 -0
- package/dist/browser/kioskUrlParam-CnYhnC_7.js +141 -0
- package/dist/browser/lib--J2yQXt6.js +1910 -0
- package/dist/browser/loadImage-DzSnRAxX.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-BTqyv9Xe.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-BA3x-n4N.js +296 -0
- package/dist/browser/venues-DKpIy-87.js +447 -0
- package/dist/browser/viewport-B7plho3P.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 +1083 -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 +692 -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/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,44 @@
|
|
|
1
|
+
import Color from 'color';
|
|
2
|
+
/**
|
|
3
|
+
* Below this HSL lightness (0–100) a background counts as dark.
|
|
4
|
+
*
|
|
5
|
+
* HSL lightness rather than WCAG relative luminance: the latter is heavily
|
|
6
|
+
* green-weighted, so a mid-grey `#808080` scores 0.216 and would read as dark
|
|
7
|
+
* against any sensible 0–1 threshold. On this scale it lands at 50.2 — just
|
|
8
|
+
* above the line, which is the intuitive answer for a mid-grey backdrop.
|
|
9
|
+
*/
|
|
10
|
+
const DARK_BACKGROUND_LIGHTNESS = 50;
|
|
11
|
+
function isMapTheme(value) {
|
|
12
|
+
return value === 'light' || value === 'dark';
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The palette implied by the drawing's background color — the fallback for
|
|
16
|
+
* drawings that predate `__fpGeo.properties.config.style`.
|
|
17
|
+
*
|
|
18
|
+
* `'none'` is a real authored value (the plan asks for no background at all)
|
|
19
|
+
* and is not a parseable color, so it and anything else unparseable resolve to
|
|
20
|
+
* the light palette the SDK has always used.
|
|
21
|
+
*
|
|
22
|
+
* Inferring a palette from a background color is a guess — the two are separate
|
|
23
|
+
* decisions, and a plan may legitimately want a dark surround without a dark
|
|
24
|
+
* basemap. The Designer's explicit geo config avoids that ambiguity.
|
|
25
|
+
*/
|
|
26
|
+
export function deriveMapThemeFromBackground(backgroundColor) {
|
|
27
|
+
if (!backgroundColor || backgroundColor === 'none')
|
|
28
|
+
return 'light';
|
|
29
|
+
try {
|
|
30
|
+
return Color(backgroundColor).lightness() < DARK_BACKGROUND_LIGHTNESS ? 'dark' : 'light';
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return 'light';
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Resolve the basemap palette: the one the drawing declares in its geo config,
|
|
38
|
+
* else the one its background color implies.
|
|
39
|
+
*/
|
|
40
|
+
export function resolveMapTheme(drawingTheme, backgroundColor) {
|
|
41
|
+
if (isMapTheme(drawingTheme))
|
|
42
|
+
return drawingTheme;
|
|
43
|
+
return deriveMapThemeFromBackground(backgroundColor);
|
|
44
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Map as MaplibreMap } from 'maplibre-gl';
|
|
2
|
+
/**
|
|
3
|
+
* Stacking contract between the native marker stacks on the geo map, bottom
|
|
4
|
+
* to top: venue contours and name labels, then the outdoor POI markers, then
|
|
5
|
+
* the venue markers. MapLibre places symbols top-down, so the same order is
|
|
6
|
+
* the collision priority — venue markers claim their space first, POI markers
|
|
7
|
+
* next, and the venue labels steer around both instead of being covered.
|
|
8
|
+
*
|
|
9
|
+
* The stacks mount from separate hooks, and the POI one re-adds its layers
|
|
10
|
+
* whenever clustering toggles, so each inserts below the bottom layer of the
|
|
11
|
+
* stack above it rather than relying on mount order.
|
|
12
|
+
*/
|
|
13
|
+
/** The bottom layer of the outdoor POI marker stack (`usePoiMarkers`). */
|
|
14
|
+
export declare const POI_MARKER_FLOOR_LAYER_ID = "expofp-poi-clusters";
|
|
15
|
+
/** The bottom layer of the venue marker stack (`useVenueLayers`). */
|
|
16
|
+
export declare const VENUE_MARKER_FLOOR_LAYER_ID = "expofp-venue-pin-circle";
|
|
17
|
+
/**
|
|
18
|
+
* The `beforeId` that slots a layer under `floorLayerId`, or undefined (the
|
|
19
|
+
* top of the style) while that stack is not on the map.
|
|
20
|
+
*/
|
|
21
|
+
export declare const beforeLayer: (map: MaplibreMap, floorLayerId: string) => string | undefined;
|
|
22
|
+
//# sourceMappingURL=marker-layer-order.d.ts.map
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Stacking contract between the native marker stacks on the geo map, bottom
|
|
3
|
+
* to top: venue contours and name labels, then the outdoor POI markers, then
|
|
4
|
+
* the venue markers. MapLibre places symbols top-down, so the same order is
|
|
5
|
+
* the collision priority — venue markers claim their space first, POI markers
|
|
6
|
+
* next, and the venue labels steer around both instead of being covered.
|
|
7
|
+
*
|
|
8
|
+
* The stacks mount from separate hooks, and the POI one re-adds its layers
|
|
9
|
+
* whenever clustering toggles, so each inserts below the bottom layer of the
|
|
10
|
+
* stack above it rather than relying on mount order.
|
|
11
|
+
*/
|
|
12
|
+
/** The bottom layer of the outdoor POI marker stack (`usePoiMarkers`). */
|
|
13
|
+
export const POI_MARKER_FLOOR_LAYER_ID = 'expofp-poi-clusters';
|
|
14
|
+
/** The bottom layer of the venue marker stack (`useVenueLayers`). */
|
|
15
|
+
export const VENUE_MARKER_FLOOR_LAYER_ID = 'expofp-venue-pin-circle';
|
|
16
|
+
/**
|
|
17
|
+
* The `beforeId` that slots a layer under `floorLayerId`, or undefined (the
|
|
18
|
+
* top of the style) while that stack is not on the map.
|
|
19
|
+
*/
|
|
20
|
+
export const beforeLayer = (map, floorLayerId) => map.getLayer(floorLayerId) ? floorLayerId : undefined;
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { type Protocol, type RangeResponse, type Source } from 'pmtiles';
|
|
2
|
+
/**
|
|
3
|
+
* A PMTiles source that also works against hosts which accept a `Range` header
|
|
4
|
+
* and then answer `200` with something other than the requested slice.
|
|
5
|
+
*
|
|
6
|
+
* The Android SDK serves offline archives through `WebViewAssetLoader`, whose
|
|
7
|
+
* path handlers never see request headers: Chromium applies the range's start
|
|
8
|
+
* offset to the file stream and then streams to EOF, answering `200` with a
|
|
9
|
+
* `Content-Length` that merely echoes the request. PMTiles' own guard compares
|
|
10
|
+
* that header against the requested length and so lets it through — every tile
|
|
11
|
+
* read then silently receives the rest of the archive instead of one tile,
|
|
12
|
+
* which decodes into a mostly blank basemap and no error anywhere.
|
|
13
|
+
*
|
|
14
|
+
* So probe once, at offset 0, and decide from the status:
|
|
15
|
+
*
|
|
16
|
+
* - `206` — a well-behaved host. Everything is delegated to {@link FetchSource},
|
|
17
|
+
* which keeps its 416 retry and ETag-mismatch handling intact.
|
|
18
|
+
* - `200` — the host ignored the range, which means the body it just returned
|
|
19
|
+
* *is* the archive from byte 0. Keep it and slice locally.
|
|
20
|
+
*
|
|
21
|
+
* The body is held as a `Blob` rather than an `ArrayBuffer` so the browser can
|
|
22
|
+
* back it with a temp file instead of the JS heap — an offline basemap runs to
|
|
23
|
+
* tens of megabytes and the SDK still has to survive older Android WebViews.
|
|
24
|
+
*/
|
|
25
|
+
export declare class RangeTolerantSource implements Source {
|
|
26
|
+
private readonly url;
|
|
27
|
+
private readonly ranged;
|
|
28
|
+
/** Memoised probe: the whole archive, or `null` when ranges are honoured. */
|
|
29
|
+
private archive;
|
|
30
|
+
constructor(url: string);
|
|
31
|
+
getKey(): string;
|
|
32
|
+
getBytes(offset: number, length: number, signal?: AbortSignal, etag?: string): Promise<RangeResponse>;
|
|
33
|
+
/**
|
|
34
|
+
* Read the head of the archive and work out which kind of host this is.
|
|
35
|
+
*
|
|
36
|
+
* The probe deliberately ignores the caller's `AbortSignal`. It is memoised
|
|
37
|
+
* for the source's lifetime, so a first tile that gets cancelled mid-flight
|
|
38
|
+
* must not leave every later read awaiting a rejected promise.
|
|
39
|
+
*/
|
|
40
|
+
private probe;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Point the protocol at {@link RangeTolerantSource} for one archive URL.
|
|
44
|
+
*
|
|
45
|
+
* Registering ahead of the first tile request is what makes this take effect:
|
|
46
|
+
* `Protocol` creates a plain {@link FetchSource} for any `pmtiles://` URL it
|
|
47
|
+
* has not already been given an instance for.
|
|
48
|
+
*
|
|
49
|
+
* Only string-URL styles are covered. An inline style object carries absolute
|
|
50
|
+
* URLs the SDK never resolves, so its PMTiles sources keep the stock source.
|
|
51
|
+
*/
|
|
52
|
+
export declare function registerPmtilesArchive(protocol: Protocol, url: string): void;
|
|
53
|
+
//# sourceMappingURL=pmtiles-range-fallback.d.ts.map
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { FetchSource, PMTiles } from 'pmtiles';
|
|
2
|
+
/**
|
|
3
|
+
* Bytes the probe asks for — PMTiles' own first read is this same 16 KiB
|
|
4
|
+
* header-plus-root-directory block, so the probe costs one extra request that
|
|
5
|
+
* the HTTP cache usually serves back to PMTiles a moment later.
|
|
6
|
+
*/
|
|
7
|
+
const PROBE_LENGTH = 16384;
|
|
8
|
+
/**
|
|
9
|
+
* A PMTiles source that also works against hosts which accept a `Range` header
|
|
10
|
+
* and then answer `200` with something other than the requested slice.
|
|
11
|
+
*
|
|
12
|
+
* The Android SDK serves offline archives through `WebViewAssetLoader`, whose
|
|
13
|
+
* path handlers never see request headers: Chromium applies the range's start
|
|
14
|
+
* offset to the file stream and then streams to EOF, answering `200` with a
|
|
15
|
+
* `Content-Length` that merely echoes the request. PMTiles' own guard compares
|
|
16
|
+
* that header against the requested length and so lets it through — every tile
|
|
17
|
+
* read then silently receives the rest of the archive instead of one tile,
|
|
18
|
+
* which decodes into a mostly blank basemap and no error anywhere.
|
|
19
|
+
*
|
|
20
|
+
* So probe once, at offset 0, and decide from the status:
|
|
21
|
+
*
|
|
22
|
+
* - `206` — a well-behaved host. Everything is delegated to {@link FetchSource},
|
|
23
|
+
* which keeps its 416 retry and ETag-mismatch handling intact.
|
|
24
|
+
* - `200` — the host ignored the range, which means the body it just returned
|
|
25
|
+
* *is* the archive from byte 0. Keep it and slice locally.
|
|
26
|
+
*
|
|
27
|
+
* The body is held as a `Blob` rather than an `ArrayBuffer` so the browser can
|
|
28
|
+
* back it with a temp file instead of the JS heap — an offline basemap runs to
|
|
29
|
+
* tens of megabytes and the SDK still has to survive older Android WebViews.
|
|
30
|
+
*/
|
|
31
|
+
export class RangeTolerantSource {
|
|
32
|
+
constructor(url) {
|
|
33
|
+
this.url = url;
|
|
34
|
+
this.ranged = new FetchSource(url);
|
|
35
|
+
}
|
|
36
|
+
getKey() {
|
|
37
|
+
return this.url;
|
|
38
|
+
}
|
|
39
|
+
async getBytes(offset, length, signal, etag) {
|
|
40
|
+
if (!this.archive)
|
|
41
|
+
this.archive = this.probe();
|
|
42
|
+
const archive = await this.archive;
|
|
43
|
+
if (!archive)
|
|
44
|
+
return this.ranged.getBytes(offset, length, signal, etag);
|
|
45
|
+
throwIfAborted(signal);
|
|
46
|
+
return { data: await blobToArrayBuffer(archive.slice(offset, offset + length)) };
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Read the head of the archive and work out which kind of host this is.
|
|
50
|
+
*
|
|
51
|
+
* The probe deliberately ignores the caller's `AbortSignal`. It is memoised
|
|
52
|
+
* for the source's lifetime, so a first tile that gets cancelled mid-flight
|
|
53
|
+
* must not leave every later read awaiting a rejected promise.
|
|
54
|
+
*/
|
|
55
|
+
async probe() {
|
|
56
|
+
let response;
|
|
57
|
+
try {
|
|
58
|
+
response = await fetch(this.url, { headers: { Range: `bytes=0-${PROBE_LENGTH - 1}` } });
|
|
59
|
+
}
|
|
60
|
+
catch {
|
|
61
|
+
// Let FetchSource make the request again and report the failure in its
|
|
62
|
+
// own words, rather than inventing a second error vocabulary here.
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
if (response.status !== 200)
|
|
66
|
+
return null;
|
|
67
|
+
const body = await response.blob();
|
|
68
|
+
// Exactly the requested length means the host did honour the range and only
|
|
69
|
+
// got the status code wrong — FetchSource's own `200` path handles that, and
|
|
70
|
+
// buffering 16 KiB of a much larger archive would break every later read.
|
|
71
|
+
if (body.size === PROBE_LENGTH)
|
|
72
|
+
return null;
|
|
73
|
+
// Anything else is the whole archive: larger because the range was ignored,
|
|
74
|
+
// smaller because the archive really is that small.
|
|
75
|
+
return body;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Point the protocol at {@link RangeTolerantSource} for one archive URL.
|
|
80
|
+
*
|
|
81
|
+
* Registering ahead of the first tile request is what makes this take effect:
|
|
82
|
+
* `Protocol` creates a plain {@link FetchSource} for any `pmtiles://` URL it
|
|
83
|
+
* has not already been given an instance for.
|
|
84
|
+
*
|
|
85
|
+
* Only string-URL styles are covered. An inline style object carries absolute
|
|
86
|
+
* URLs the SDK never resolves, so its PMTiles sources keep the stock source.
|
|
87
|
+
*/
|
|
88
|
+
export function registerPmtilesArchive(protocol, url) {
|
|
89
|
+
if (protocol.get(url))
|
|
90
|
+
return;
|
|
91
|
+
protocol.add(new PMTiles(new RangeTolerantSource(url)));
|
|
92
|
+
}
|
|
93
|
+
function throwIfAborted(signal) {
|
|
94
|
+
if (!signal?.aborted)
|
|
95
|
+
return;
|
|
96
|
+
// `AbortSignal.throwIfAborted` and `.reason` are both newer than the WebViews
|
|
97
|
+
// the SDK targets, so raise the equivalent by hand.
|
|
98
|
+
throw signal.reason ?? new DOMException('The operation was aborted.', 'AbortError');
|
|
99
|
+
}
|
|
100
|
+
async function blobToArrayBuffer(blob) {
|
|
101
|
+
// `Blob.arrayBuffer()` is Chrome 76+; fall back for the older Android WebViews.
|
|
102
|
+
if (typeof blob.arrayBuffer === 'function')
|
|
103
|
+
return blob.arrayBuffer();
|
|
104
|
+
return new Promise((resolve, reject) => {
|
|
105
|
+
const reader = new FileReader();
|
|
106
|
+
reader.onload = () => resolve(reader.result);
|
|
107
|
+
reader.onerror = () => reject(reader.error);
|
|
108
|
+
reader.readAsArrayBuffer(blob);
|
|
109
|
+
});
|
|
110
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Screen-space hit-test (viewport `clientX`/`clientY`) against the outdoor PoI
|
|
3
|
+
* symbol/cluster layers, set by `usePoiMarkers` while active. The plan's click
|
|
4
|
+
* seam (`clickedPlan` in Map/pointer.ts) consults it so a click handled by a
|
|
5
|
+
* native MapLibre layer does not also select the booth underneath.
|
|
6
|
+
*/
|
|
7
|
+
export declare const poiMarkerHitTest: import("./hit-test-registry.js").HitTestRegistry;
|
|
8
|
+
//# sourceMappingURL=poi-marker-hit-test.d.ts.map
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { createHitTestRegistry } from './hit-test-registry.js';
|
|
2
|
+
/**
|
|
3
|
+
* Screen-space hit-test (viewport `clientX`/`clientY`) against the outdoor PoI
|
|
4
|
+
* symbol/cluster layers, set by `usePoiMarkers` while active. The plan's click
|
|
5
|
+
* seam (`clickedPlan` in Map/pointer.ts) consults it so a click handled by a
|
|
6
|
+
* native MapLibre layer does not also select the booth underneath.
|
|
7
|
+
*/
|
|
8
|
+
export const poiMarkerHitTest = createHitTestRegistry();
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { type StyleSpecification, type TransformStyleFunction } from 'maplibre-gl';
|
|
2
|
+
/**
|
|
3
|
+
* Build a MapLibre `transformStyle` hook that makes a style's internal URLs
|
|
4
|
+
* safe to use, or `undefined` when none is needed.
|
|
5
|
+
*
|
|
6
|
+
* MapLibre requires the URLs *inside* a style — `sprite`, `glyphs`, source
|
|
7
|
+
* `url`, and source `tiles` — to be fully absolute before it consumes them;
|
|
8
|
+
* for example, `normalizeSpriteURL` calls `new URL(url)` with no base and
|
|
9
|
+
* rejects rooted or relative values.
|
|
10
|
+
*
|
|
11
|
+
* Inline style objects have no style URL to resolve against; callers must pass
|
|
12
|
+
* already-absolute internals for those.
|
|
13
|
+
*
|
|
14
|
+
* `restyle`, when given, edits the style last — after URL resolution — for
|
|
15
|
+
* changes the style document cannot carry itself, such as a palette applied to
|
|
16
|
+
* a hosted style.
|
|
17
|
+
*/
|
|
18
|
+
export declare function createStyleTransform(style: string | StyleSpecification, onPmtilesArchive?: (url: string) => void, restyle?: (style: StyleSpecification) => StyleSpecification): TransformStyleFunction | undefined;
|
|
19
|
+
//# sourceMappingURL=resolve-map-style.d.ts.map
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build a MapLibre `transformStyle` hook that makes a style's internal URLs
|
|
3
|
+
* safe to use, or `undefined` when none is needed.
|
|
4
|
+
*
|
|
5
|
+
* MapLibre requires the URLs *inside* a style — `sprite`, `glyphs`, source
|
|
6
|
+
* `url`, and source `tiles` — to be fully absolute before it consumes them;
|
|
7
|
+
* for example, `normalizeSpriteURL` calls `new URL(url)` with no base and
|
|
8
|
+
* rejects rooted or relative values.
|
|
9
|
+
*
|
|
10
|
+
* Inline style objects have no style URL to resolve against; callers must pass
|
|
11
|
+
* already-absolute internals for those.
|
|
12
|
+
*
|
|
13
|
+
* `restyle`, when given, edits the style last — after URL resolution — for
|
|
14
|
+
* changes the style document cannot carry itself, such as a palette applied to
|
|
15
|
+
* a hosted style.
|
|
16
|
+
*/
|
|
17
|
+
export function createStyleTransform(style, onPmtilesArchive, restyle) {
|
|
18
|
+
if (typeof style !== 'string') {
|
|
19
|
+
return restyle ? (_previous, next) => restyle(next) : undefined;
|
|
20
|
+
}
|
|
21
|
+
// Base-URL resolution only (a relative style path resolves against the page URL) —
|
|
22
|
+
// not a query read (plan §4.11).
|
|
23
|
+
const styleUrl = new URL(style, window.location.href).href;
|
|
24
|
+
// `new URL` percent-encodes `{`/`}`, which MapLibre glyph/tile templates
|
|
25
|
+
// (`{fontstack}`, `{range}`, `{z}/{x}/{y}`) rely on — restore them.
|
|
26
|
+
const absolutize = (url) => new URL(url, styleUrl).href.replace(/%7B/g, '{').replace(/%7D/g, '}');
|
|
27
|
+
const absolutizeStyleUrl = (url) => {
|
|
28
|
+
if (!url.startsWith('pmtiles://'))
|
|
29
|
+
return absolutize(url);
|
|
30
|
+
// This is the only point where the archive's serving URL is known: the
|
|
31
|
+
// style is MapLibre's to fetch, and `Protocol` binds a source to a URL the
|
|
32
|
+
// first time it sees one. `transformStyle` runs before MapLibre creates the
|
|
33
|
+
// sources, so a listener here is still early enough to choose that source.
|
|
34
|
+
const archive = absolutize(url.slice('pmtiles://'.length));
|
|
35
|
+
onPmtilesArchive?.(archive);
|
|
36
|
+
return `pmtiles://${archive}`;
|
|
37
|
+
};
|
|
38
|
+
return (_previous, next) => {
|
|
39
|
+
const resolved = { ...next };
|
|
40
|
+
if (typeof resolved.sprite === 'string')
|
|
41
|
+
resolved.sprite = absolutize(resolved.sprite);
|
|
42
|
+
else if (Array.isArray(resolved.sprite)) {
|
|
43
|
+
resolved.sprite = resolved.sprite.map((sprite) => {
|
|
44
|
+
if (!sprite || typeof sprite !== 'object')
|
|
45
|
+
return sprite;
|
|
46
|
+
const withUrl = sprite;
|
|
47
|
+
if (typeof withUrl.url !== 'string')
|
|
48
|
+
return sprite;
|
|
49
|
+
return { ...withUrl, url: absolutize(withUrl.url) };
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
if (typeof resolved.glyphs === 'string')
|
|
53
|
+
resolved.glyphs = absolutize(resolved.glyphs);
|
|
54
|
+
const sources = resolved.sources;
|
|
55
|
+
if (sources) {
|
|
56
|
+
resolved.sources = { ...sources };
|
|
57
|
+
for (const [id, source] of Object.entries(sources)) {
|
|
58
|
+
if (!source || typeof source !== 'object')
|
|
59
|
+
continue;
|
|
60
|
+
const withUrls = source;
|
|
61
|
+
const nextSource = { ...withUrls };
|
|
62
|
+
if (typeof nextSource.url === 'string') {
|
|
63
|
+
nextSource.url = absolutizeStyleUrl(nextSource.url);
|
|
64
|
+
}
|
|
65
|
+
if (Array.isArray(nextSource.tiles)) {
|
|
66
|
+
nextSource.tiles = nextSource.tiles.map((tileUrl) => typeof tileUrl === 'string' ? absolutizeStyleUrl(tileUrl) : tileUrl);
|
|
67
|
+
}
|
|
68
|
+
resolved.sources[id] = nextSource;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return restyle ? restyle(resolved) : resolved;
|
|
72
|
+
};
|
|
73
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
interface GeoAnchorPoint {
|
|
2
|
+
x: number;
|
|
3
|
+
y: number;
|
|
4
|
+
lat: number;
|
|
5
|
+
lng: number;
|
|
6
|
+
}
|
|
7
|
+
export interface TransformGeoConfig {
|
|
8
|
+
p0: GeoAnchorPoint;
|
|
9
|
+
p1?: GeoAnchorPoint;
|
|
10
|
+
p2: GeoAnchorPoint;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Affine matrix mapping plan (SVG) coordinates to Mercator, used as the
|
|
14
|
+
* `staticTransform` in the `SceneDef` so the renderer can position the floor
|
|
15
|
+
* plan inside a Maplibre `CustomLayerInterface`.
|
|
16
|
+
*
|
|
17
|
+
* Solved by Gaussian elimination from 3 anchors. The third anchor is synthesized
|
|
18
|
+
* perpendicular to the p0->p2 diagonal, so the result is a similarity transform
|
|
19
|
+
* (uniform scale + rotation, no shear).
|
|
20
|
+
*/
|
|
21
|
+
export declare function calculateTransformMatrix(geoConfig: TransformGeoConfig, units?: string | null): number[];
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=solver.d.ts.map
|
|
@@ -0,0 +1,238 @@
|
|
|
1
|
+
import { MercatorCoordinate } from 'maplibre-gl';
|
|
2
|
+
const PIVOT_EPSILON = 1e-12;
|
|
3
|
+
const FEET_PER_METER = 3.28084;
|
|
4
|
+
const EARTH_RADIUS_METERS = 6371000;
|
|
5
|
+
// Angle/side-ratio gap beyond which an explicit p1 is treated as inconsistent
|
|
6
|
+
// with the p0->p2 diagonal.
|
|
7
|
+
const P1_ANGLE_TOLERANCE_DEG = 1;
|
|
8
|
+
const P1_RATIO_TOLERANCE = 0.02;
|
|
9
|
+
/**
|
|
10
|
+
* Affine matrix mapping plan (SVG) coordinates to Mercator, used as the
|
|
11
|
+
* `staticTransform` in the `SceneDef` so the renderer can position the floor
|
|
12
|
+
* plan inside a Maplibre `CustomLayerInterface`.
|
|
13
|
+
*
|
|
14
|
+
* Solved by Gaussian elimination from 3 anchors. The third anchor is synthesized
|
|
15
|
+
* perpendicular to the p0->p2 diagonal, so the result is a similarity transform
|
|
16
|
+
* (uniform scale + rotation, no shear).
|
|
17
|
+
*/
|
|
18
|
+
export function calculateTransformMatrix(geoConfig, units) {
|
|
19
|
+
// Place the plan from the p0->p2 diagonal plus a synthesized perpendicular,
|
|
20
|
+
// forcing a similarity (no shear). An explicit p1 is ignored: an inconsistent
|
|
21
|
+
// one shears the plan. Fall back to it only when the diagonal is degenerate
|
|
22
|
+
// (p0 ~ p2) and the perpendicular can't be built.
|
|
23
|
+
let p1;
|
|
24
|
+
let p1Source;
|
|
25
|
+
try {
|
|
26
|
+
p1 = createPerpendicularAnchorPoint(geoConfig);
|
|
27
|
+
p1Source = 'perpendicular';
|
|
28
|
+
}
|
|
29
|
+
catch (error) {
|
|
30
|
+
if (!geoConfig.p1)
|
|
31
|
+
throw error;
|
|
32
|
+
p1 = geoConfig.p1;
|
|
33
|
+
p1Source = 'explicit-fallback';
|
|
34
|
+
}
|
|
35
|
+
// A dropped p1 that disagrees with the diagonal signals inconsistent anchor
|
|
36
|
+
// data; warn so it's visible.
|
|
37
|
+
const explicitP1Consistency = checkExplicitP1Consistency(geoConfig);
|
|
38
|
+
if (p1Source === 'perpendicular' && explicitP1Consistency?.inconsistent) {
|
|
39
|
+
console.warn('Maplibre geo: ignoring inconsistent anchor p1; placing venue from the p0->p2 diagonal.', {
|
|
40
|
+
angleErrorDeg: explicitP1Consistency.angleErrorDeg,
|
|
41
|
+
sideRatioError: explicitP1Consistency.ratioError,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
const points = [geoConfig.p0, p1, geoConfig.p2];
|
|
45
|
+
const scalesZ = [];
|
|
46
|
+
// Convert lat/lng to Mercator coordinates
|
|
47
|
+
const svgCoords = [];
|
|
48
|
+
const mercatorCoords = [];
|
|
49
|
+
for (const point of points) {
|
|
50
|
+
assertFiniteAnchorPoint(point);
|
|
51
|
+
svgCoords.push([point.x, point.y]);
|
|
52
|
+
const mercator = MercatorCoordinate.fromLngLat([point.lng, point.lat], 0);
|
|
53
|
+
const scaleZ = mercator.meterInMercatorCoordinateUnits();
|
|
54
|
+
assertFiniteNumber(mercator.x);
|
|
55
|
+
assertFiniteNumber(mercator.y);
|
|
56
|
+
assertFiniteNumber(scaleZ);
|
|
57
|
+
scalesZ.push(scaleZ);
|
|
58
|
+
mercatorCoords.push([mercator.x, mercator.y]);
|
|
59
|
+
}
|
|
60
|
+
// Solve for affine transformation matrix: [a b tx; c d ty; 0 0 1]
|
|
61
|
+
// System of equations:
|
|
62
|
+
// mercator_x = a * svg_x + b * svg_y + tx
|
|
63
|
+
// mercator_y = c * svg_x + d * svg_y + ty
|
|
64
|
+
// Build matrix equation: A * params = B
|
|
65
|
+
// params = [a, b, tx, c, d, ty]
|
|
66
|
+
const A = [];
|
|
67
|
+
const B = [];
|
|
68
|
+
for (let i = 0; i < 3; i++) {
|
|
69
|
+
const [svgX, svgY] = svgCoords[i];
|
|
70
|
+
const [mercX, mercY] = mercatorCoords[i];
|
|
71
|
+
// Equation for mercator_x
|
|
72
|
+
A.push([svgX, svgY, 1, 0, 0, 0]);
|
|
73
|
+
B.push(mercX);
|
|
74
|
+
// Equation for mercator_y
|
|
75
|
+
A.push([0, 0, 0, svgX, svgY, 1]);
|
|
76
|
+
B.push(mercY);
|
|
77
|
+
}
|
|
78
|
+
// This is a determined 6x6 system: 3 anchor points * 2 coordinates.
|
|
79
|
+
const params = gaussianElimination(A, B);
|
|
80
|
+
const [a, b, tx, c, d, ty] = params;
|
|
81
|
+
const unitsScale = units?.toLowerCase?.().trim() === 'ft' ? 1 / FEET_PER_METER : 1;
|
|
82
|
+
// Z values in renderer geometry are plan units; Maplibre expects Mercator units per meter.
|
|
83
|
+
const scaleZ = (scalesZ.reduce((acc, val) => acc + val, 0) / scalesZ.length) * unitsScale;
|
|
84
|
+
// prettier-ignore
|
|
85
|
+
const matrix = [
|
|
86
|
+
a, c, 0, 0,
|
|
87
|
+
b, d, 0, 0,
|
|
88
|
+
0, 0, scaleZ, 0,
|
|
89
|
+
tx, ty, 0, 1,
|
|
90
|
+
];
|
|
91
|
+
if (!matrix.every(Number.isFinite)) {
|
|
92
|
+
throw new Error('Cannot calculate Maplibre transform: geo anchor points produced a non-finite matrix.');
|
|
93
|
+
}
|
|
94
|
+
return matrix;
|
|
95
|
+
}
|
|
96
|
+
// Compares the p0/p1/p2 triangle in plan space against its real-world (ground)
|
|
97
|
+
// shape, measuring how far an explicit p1 disagrees. Null when p1 is absent.
|
|
98
|
+
function checkExplicitP1Consistency(geoConfig) {
|
|
99
|
+
const explicitP1 = geoConfig.p1;
|
|
100
|
+
if (!explicitP1)
|
|
101
|
+
return null;
|
|
102
|
+
const svg = describeTriangle(geoConfig.p0.x, geoConfig.p0.y, explicitP1.x, explicitP1.y, geoConfig.p2.x, geoConfig.p2.y);
|
|
103
|
+
const ground = describeGroundTriangle(geoConfig.p0, explicitP1, geoConfig.p2);
|
|
104
|
+
const angleErrorDeg = Math.abs(svg.angleDeg - ground.angleDeg);
|
|
105
|
+
const ratioError = Number.isFinite(ground.axisRatio) && ground.axisRatio > 0
|
|
106
|
+
? Math.abs(svg.axisRatio / ground.axisRatio - 1)
|
|
107
|
+
: Infinity;
|
|
108
|
+
return {
|
|
109
|
+
angleErrorDeg,
|
|
110
|
+
ratioError,
|
|
111
|
+
inconsistent: angleErrorDeg > P1_ANGLE_TOLERANCE_DEG || ratioError > P1_RATIO_TOLERANCE,
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
// Side-length ratio |a->c| / |a->b| and the angle at `a`, in a flat 2D space.
|
|
115
|
+
function describeTriangle(ax, ay, bx, by, cx, cy) {
|
|
116
|
+
const ab = Math.hypot(bx - ax, by - ay);
|
|
117
|
+
const ac = Math.hypot(cx - ax, cy - ay);
|
|
118
|
+
const dot = (bx - ax) * (cx - ax) + (by - ay) * (cy - ay);
|
|
119
|
+
const cos = ab > 0 && ac > 0 ? dot / (ab * ac) : NaN;
|
|
120
|
+
return {
|
|
121
|
+
axisRatio: ab > 0 ? ac / ab : Infinity,
|
|
122
|
+
angleDeg: toDeg(Math.acos(Math.max(-1, Math.min(1, cos)))),
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
// describeTriangle on the sphere: true ground distances and bearing gap at p0.
|
|
126
|
+
function describeGroundTriangle(p0, p1, p2) {
|
|
127
|
+
const toP1 = distance(p0.lat, p0.lng, p1.lat, p1.lng);
|
|
128
|
+
const toP2 = distance(p0.lat, p0.lng, p2.lat, p2.lng);
|
|
129
|
+
const bearingP1 = bearing(p0.lat, p0.lng, p1.lat, p1.lng);
|
|
130
|
+
const bearingP2 = bearing(p0.lat, p0.lng, p2.lat, p2.lng);
|
|
131
|
+
let angleDeg = Math.abs(bearingP2 - bearingP1) % 360;
|
|
132
|
+
if (angleDeg > 180)
|
|
133
|
+
angleDeg = 360 - angleDeg;
|
|
134
|
+
return {
|
|
135
|
+
axisRatio: toP1 > 0 ? toP2 / toP1 : Infinity,
|
|
136
|
+
angleDeg,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
// Third anchor perpendicular to the p0->p2 diagonal, equal length in both plan
|
|
140
|
+
// and ground space, so the solved transform is a similarity (no shear).
|
|
141
|
+
function createPerpendicularAnchorPoint(geoConfig) {
|
|
142
|
+
const dx = geoConfig.p2.x - geoConfig.p0.x;
|
|
143
|
+
const dy = geoConfig.p2.y - geoConfig.p0.y;
|
|
144
|
+
if (dx === 0 && dy === 0) {
|
|
145
|
+
throw new Error('Cannot calculate Maplibre transform: p0 and p2 have identical SVG coordinates.');
|
|
146
|
+
}
|
|
147
|
+
const x = geoConfig.p0.x - dy;
|
|
148
|
+
const y = geoConfig.p0.y + dx;
|
|
149
|
+
const gpsDistance = distance(geoConfig.p0.lat, geoConfig.p0.lng, geoConfig.p2.lat, geoConfig.p2.lng);
|
|
150
|
+
const gpsBearing = bearing(geoConfig.p0.lat, geoConfig.p0.lng, geoConfig.p2.lat, geoConfig.p2.lng);
|
|
151
|
+
const [lng, lat] = destinationPoint(geoConfig.p0.lat, geoConfig.p0.lng, gpsDistance, gpsBearing + 90);
|
|
152
|
+
return { x, y, lat, lng };
|
|
153
|
+
}
|
|
154
|
+
function assertFiniteAnchorPoint(point) {
|
|
155
|
+
assertFiniteNumber(point.x);
|
|
156
|
+
assertFiniteNumber(point.y);
|
|
157
|
+
assertFiniteNumber(point.lat);
|
|
158
|
+
assertFiniteNumber(point.lng);
|
|
159
|
+
}
|
|
160
|
+
function assertFiniteNumber(value) {
|
|
161
|
+
if (!Number.isFinite(value)) {
|
|
162
|
+
throw new Error('Cannot calculate Maplibre transform: geo anchor points contain invalid coordinates.');
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
function toRad(value) {
|
|
166
|
+
return (value * Math.PI) / 180;
|
|
167
|
+
}
|
|
168
|
+
function toDeg(value) {
|
|
169
|
+
return (value * 180) / Math.PI;
|
|
170
|
+
}
|
|
171
|
+
// Great-circle distance between two GPS points, matching the legacy GPS conversion model.
|
|
172
|
+
function distance(lat1, lng1, lat2, lng2) {
|
|
173
|
+
const phi1 = toRad(lat1);
|
|
174
|
+
const phi2 = toRad(lat2);
|
|
175
|
+
const deltaPhi = toRad(lat2 - lat1);
|
|
176
|
+
const deltaLambda = toRad(lng2 - lng1);
|
|
177
|
+
const a = Math.sin(deltaPhi / 2) * Math.sin(deltaPhi / 2) +
|
|
178
|
+
Math.cos(phi1) * Math.cos(phi2) * Math.sin(deltaLambda / 2) * Math.sin(deltaLambda / 2);
|
|
179
|
+
const c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
|
|
180
|
+
return EARTH_RADIUS_METERS * c;
|
|
181
|
+
}
|
|
182
|
+
// Initial bearing from the first GPS point to the second, in degrees.
|
|
183
|
+
function bearing(lat1, lng1, lat2, lng2) {
|
|
184
|
+
const phi1 = toRad(lat1);
|
|
185
|
+
const phi2 = toRad(lat2);
|
|
186
|
+
const deltaLambda = toRad(lng2 - lng1);
|
|
187
|
+
const y = Math.sin(deltaLambda) * Math.cos(phi2);
|
|
188
|
+
const x = Math.cos(phi1) * Math.sin(phi2) - Math.sin(phi1) * Math.cos(phi2) * Math.cos(deltaLambda);
|
|
189
|
+
return (toDeg(Math.atan2(y, x)) + 360) % 360;
|
|
190
|
+
}
|
|
191
|
+
// Projects a GPS point by distance and bearing on a spherical earth model.
|
|
192
|
+
function destinationPoint(lat, lng, distanceMeters, bearingDegrees) {
|
|
193
|
+
const delta = distanceMeters / EARTH_RADIUS_METERS;
|
|
194
|
+
const theta = toRad(bearingDegrees);
|
|
195
|
+
const phi1 = toRad(lat);
|
|
196
|
+
const lambda1 = toRad(lng);
|
|
197
|
+
const phi2 = Math.asin(Math.sin(phi1) * Math.cos(delta) + Math.cos(phi1) * Math.sin(delta) * Math.cos(theta));
|
|
198
|
+
const lambda2 = lambda1 +
|
|
199
|
+
Math.atan2(Math.sin(theta) * Math.sin(delta) * Math.cos(phi1), Math.cos(delta) - Math.sin(phi1) * Math.sin(phi2));
|
|
200
|
+
return [toDeg(lambda2), toDeg(phi2)];
|
|
201
|
+
}
|
|
202
|
+
// Gaussian elimination solver with partial pivoting
|
|
203
|
+
function gaussianElimination(A, b) {
|
|
204
|
+
const n = A.length;
|
|
205
|
+
const augmented = A.map((row, i) => [...row, b[i]]);
|
|
206
|
+
// Forward elimination
|
|
207
|
+
for (let i = 0; i < n; i++) {
|
|
208
|
+
// Find pivot
|
|
209
|
+
let maxRow = i;
|
|
210
|
+
for (let k = i + 1; k < n; k++) {
|
|
211
|
+
if (Math.abs(augmented[k][i]) > Math.abs(augmented[maxRow][i])) {
|
|
212
|
+
maxRow = k;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
// Swap rows
|
|
216
|
+
[augmented[i], augmented[maxRow]] = [augmented[maxRow], augmented[i]];
|
|
217
|
+
if (Math.abs(augmented[i][i]) < PIVOT_EPSILON) {
|
|
218
|
+
throw new Error('Cannot calculate Maplibre transform: geo anchor points are collinear or invalid.');
|
|
219
|
+
}
|
|
220
|
+
// Make all rows below this one 0 in current column
|
|
221
|
+
for (let k = i + 1; k < n; k++) {
|
|
222
|
+
const factor = augmented[k][i] / augmented[i][i];
|
|
223
|
+
for (let j = i; j <= n; j++) {
|
|
224
|
+
augmented[k][j] -= factor * augmented[i][j];
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
// Back substitution
|
|
229
|
+
const x = new Array(n);
|
|
230
|
+
for (let i = n - 1; i >= 0; i--) {
|
|
231
|
+
x[i] = augmented[i][n];
|
|
232
|
+
for (let j = i + 1; j < n; j++) {
|
|
233
|
+
x[i] -= augmented[i][j] * x[j];
|
|
234
|
+
}
|
|
235
|
+
x[i] /= augmented[i][i];
|
|
236
|
+
}
|
|
237
|
+
return x;
|
|
238
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Map as MaplibreMap } from 'maplibre-gl';
|
|
2
|
+
/**
|
|
3
|
+
* Picks a text font stack that the style's glyph ranges can actually serve:
|
|
4
|
+
* reuses the font of an existing symbol layer rather than guessing a name.
|
|
5
|
+
* Prefers an upright face — some styles (e.g. Positron) lead with italics.
|
|
6
|
+
* The 'Noto Sans Regular' fallback matches the offline basemap's bundled
|
|
7
|
+
* fontstack, so offline copies render labels too.
|
|
8
|
+
*/
|
|
9
|
+
export declare function pickUprightTextFont(map: MaplibreMap): string[];
|
|
10
|
+
//# sourceMappingURL=style-fonts.d.ts.map
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Picks a text font stack that the style's glyph ranges can actually serve:
|
|
3
|
+
* reuses the font of an existing symbol layer rather than guessing a name.
|
|
4
|
+
* Prefers an upright face — some styles (e.g. Positron) lead with italics.
|
|
5
|
+
* The 'Noto Sans Regular' fallback matches the offline basemap's bundled
|
|
6
|
+
* fontstack, so offline copies render labels too.
|
|
7
|
+
*/
|
|
8
|
+
export function pickUprightTextFont(map) {
|
|
9
|
+
let fallback = null;
|
|
10
|
+
for (const layer of map.getStyle()?.layers ?? []) {
|
|
11
|
+
if (layer.type !== 'symbol')
|
|
12
|
+
continue;
|
|
13
|
+
const font = layer.layout?.['text-font'];
|
|
14
|
+
if (!Array.isArray(font) || !font.every((name) => typeof name === 'string'))
|
|
15
|
+
continue;
|
|
16
|
+
if (!font.some((name) => /italic/i.test(name)))
|
|
17
|
+
return font;
|
|
18
|
+
// `??=` (ES2021) is not downlevelled by the es2022 `tsc` build, and the SDK
|
|
19
|
+
// ships to chrome66-class WebViews — keep the assignment explicit.
|
|
20
|
+
if (fallback === null)
|
|
21
|
+
fallback = font;
|
|
22
|
+
}
|
|
23
|
+
return fallback ?? ['Noto Sans Regular'];
|
|
24
|
+
}
|