@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,130 @@
|
|
|
1
|
+
import { Box } from '@expofp/geometry';
|
|
2
|
+
import { type RegularBooth } from '../../../../store/BoothStore.js';
|
|
3
|
+
/** What a badge's anchor search reads off its booth. */
|
|
4
|
+
export type BadgeBooth = Pick<RegularBooth, 'rect' | 'rotate'>;
|
|
5
|
+
/** Where a badge sits in one booth corner, and how large it may grow there. */
|
|
6
|
+
export interface BadgeFit {
|
|
7
|
+
/** The x of the badge's top-left corner on the plan, before rotation. */
|
|
8
|
+
readonly x: number;
|
|
9
|
+
/** The y of the badge's top-left corner on the plan, before rotation. */
|
|
10
|
+
readonly y: number;
|
|
11
|
+
/** The largest scale that keeps the badge inside the booth's footprint. */
|
|
12
|
+
readonly maxScale: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The places a booth's badge can sit, one per booth corner, each computed on the first visit to
|
|
16
|
+
* that corner and kept.
|
|
17
|
+
*
|
|
18
|
+
* The plan's roll moves the badge to another booth corner every quarter turn, and every badge on
|
|
19
|
+
* the plan moves in the same frame. Finding a corner's anchor tests the booth's vertices against
|
|
20
|
+
* its own triangles, so it is too slow to repeat for hundreds of badges at once. The result
|
|
21
|
+
* depends only on the corner: the rotation the scale search uses is the booth's own plus the
|
|
22
|
+
* quarter turns to that corner, the same at every visit to it up to whole turns of 2π.
|
|
23
|
+
*
|
|
24
|
+
* The first visit to a corner still searches, for every badge at once, so {@link prefetch} works
|
|
25
|
+
* the other corners out ahead, while the page is idle.
|
|
26
|
+
*/
|
|
27
|
+
export declare class BoothBadgeAnchors {
|
|
28
|
+
private readonly booth;
|
|
29
|
+
private readonly triangles;
|
|
30
|
+
private readonly border;
|
|
31
|
+
private readonly source;
|
|
32
|
+
/** The badges with corners still to work out while the page is idle, in the order queued. */
|
|
33
|
+
private static readonly idle;
|
|
34
|
+
private static idleScheduled;
|
|
35
|
+
private readonly fits;
|
|
36
|
+
/** The rotation at corner 0 the idle work counts quarter turns from. */
|
|
37
|
+
private prefetchRotation;
|
|
38
|
+
private readonly polygon;
|
|
39
|
+
private readonly bbox;
|
|
40
|
+
/** The booth's distinct vertices in first-seen order, built on the first search. */
|
|
41
|
+
private vertices;
|
|
42
|
+
/**
|
|
43
|
+
* @param booth - The booth the badge belongs to.
|
|
44
|
+
* @param triangles - The booth's footprint as triangles; empty when it has no paths.
|
|
45
|
+
* @param border - How far the badge stays in from the booth's edge.
|
|
46
|
+
* @param source - The badge's width and height at scale 1.
|
|
47
|
+
*/
|
|
48
|
+
constructor(booth: BadgeBooth, triangles: number[][][], border: number, source: {
|
|
49
|
+
readonly x: number;
|
|
50
|
+
readonly y: number;
|
|
51
|
+
});
|
|
52
|
+
/**
|
|
53
|
+
* The badge's place in a booth corner.
|
|
54
|
+
* @param corner - The booth corner, clockwise from top-left (0) to bottom-left (3).
|
|
55
|
+
* @param rotation - The badge's rotation in radians: the booth's own plus the quarter turns that
|
|
56
|
+
* brought the badge to this corner. Read on the first visit only.
|
|
57
|
+
* @returns The anchor and the largest scale, the same object at every visit.
|
|
58
|
+
*/
|
|
59
|
+
fit(corner: number, rotation: number): BadgeFit;
|
|
60
|
+
/**
|
|
61
|
+
* Works out the three corners not yet visited while the page is idle, so the first quarter turn
|
|
62
|
+
* into each finds it ready. Queuing again while queued changes nothing.
|
|
63
|
+
* @param rotation - The badge's rotation at corner 0: the booth's own.
|
|
64
|
+
*/
|
|
65
|
+
prefetch(rotation: number): void;
|
|
66
|
+
/** Drops the idle work {@link prefetch} queued and has not done yet. */
|
|
67
|
+
cancelPrefetch(): void;
|
|
68
|
+
private static scheduleIdle;
|
|
69
|
+
/** Runs the idle work for one {@link FRAME_SLICE_MS} slice, where no idle period is on offer. */
|
|
70
|
+
private static runSlice;
|
|
71
|
+
/**
|
|
72
|
+
* Works out one corner after another while the idle period lasts, for at most a slice, then asks
|
|
73
|
+
* for another.
|
|
74
|
+
* @param deadline - How much of the idle period is left.
|
|
75
|
+
*/
|
|
76
|
+
private static runIdle;
|
|
77
|
+
/**
|
|
78
|
+
* Works out the next corner not yet known, at the rotation the quarter turns to it give.
|
|
79
|
+
* @returns Whether a corner is still unknown after this one.
|
|
80
|
+
*/
|
|
81
|
+
private prefetchNext;
|
|
82
|
+
/**
|
|
83
|
+
* Searches a corner: the anchor, then the largest scale at it.
|
|
84
|
+
* @param corner - The booth corner, clockwise from top-left (0).
|
|
85
|
+
* @param rotation - The badge's rotation at that corner, in radians.
|
|
86
|
+
* @returns The corner's fit.
|
|
87
|
+
*/
|
|
88
|
+
private compute;
|
|
89
|
+
/**
|
|
90
|
+
* The largest scale the booth's rect allows. At odd corners the badge's width and height lie
|
|
91
|
+
* along the booth's height and width.
|
|
92
|
+
* @param swapped - Whether the badge's axes are swapped against the booth's.
|
|
93
|
+
* @returns The scale.
|
|
94
|
+
*/
|
|
95
|
+
private rectMaxScale;
|
|
96
|
+
/**
|
|
97
|
+
* The booth vertex, moved in by the border, nearest the target corner of the booth's bounding
|
|
98
|
+
* box and still inside the booth. Uses booth.rotate (the booth's true tilt) for the fallback,
|
|
99
|
+
* never the badge's stepped rotation: the booth does not move when the badge steps.
|
|
100
|
+
*
|
|
101
|
+
* The candidates are tested nearest first, so the search stops at the first one inside instead
|
|
102
|
+
* of testing every vertex. Ties keep the vertex seen first, as a full scan would.
|
|
103
|
+
* @param signX - 1 to aim at the left edge, -1 at the right.
|
|
104
|
+
* @param signY - 1 to aim at the top edge, -1 at the bottom.
|
|
105
|
+
* @returns The anchor.
|
|
106
|
+
*/
|
|
107
|
+
private findAnchor;
|
|
108
|
+
/**
|
|
109
|
+
* Binary-searches the largest scale, up to the rect's cap, that keeps all badge corners inside
|
|
110
|
+
* the booth's footprint.
|
|
111
|
+
* @param anchorX - The badge's anchor.
|
|
112
|
+
* @param anchorY - The badge's anchor.
|
|
113
|
+
* @param rectMaxScale - The cap the booth's rect allows.
|
|
114
|
+
* @param rotation - The badge's rotation, in radians.
|
|
115
|
+
* @returns The scale; the cap itself when the booth has no footprint or the anchor lies outside.
|
|
116
|
+
*/
|
|
117
|
+
private clampScale;
|
|
118
|
+
/**
|
|
119
|
+
* The booth's distinct vertices, in the order the triangles first name them.
|
|
120
|
+
* @returns The vertices, built once.
|
|
121
|
+
*/
|
|
122
|
+
private distinctVertices;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* The bounding box of a booth's triangles.
|
|
126
|
+
* @param triangles - The triangles, as `[x, y]` vertex triples.
|
|
127
|
+
* @returns The box, or `null` when there are no triangles.
|
|
128
|
+
*/
|
|
129
|
+
export declare function trianglesBoundingBox(triangles: number[][][]): Box | null;
|
|
130
|
+
//# sourceMappingURL=booth-badge-anchor.d.ts.map
|
|
@@ -0,0 +1,306 @@
|
|
|
1
|
+
import { Box, pointRotate, Polygon } from '@expofp/geometry';
|
|
2
|
+
const MAX_BADGE_WIDTH_RATIO = 0.5;
|
|
3
|
+
const MAX_BADGE_HEIGHT_RATIO = 0.3;
|
|
4
|
+
const SCALE_SEARCH_ITERATIONS = 10;
|
|
5
|
+
// The longest the idle work runs at a time, so a gesture that starts meanwhile waits at most this
|
|
6
|
+
// long. Browsers grant idle periods of up to 50 ms.
|
|
7
|
+
const IDLE_SLICE_MS = 8;
|
|
8
|
+
// Without requestIdleCallback (Safari, every iOS browser), the work runs in a slice this long right
|
|
9
|
+
// after each frame, when the next frame is furthest away.
|
|
10
|
+
const FRAME_SLICE_MS = 4;
|
|
11
|
+
// Without requestAnimationFrame either, the slices run on a timer this far apart.
|
|
12
|
+
const TIMER_SLICE_GAP_MS = 50;
|
|
13
|
+
/**
|
|
14
|
+
* The places a booth's badge can sit, one per booth corner, each computed on the first visit to
|
|
15
|
+
* that corner and kept.
|
|
16
|
+
*
|
|
17
|
+
* The plan's roll moves the badge to another booth corner every quarter turn, and every badge on
|
|
18
|
+
* the plan moves in the same frame. Finding a corner's anchor tests the booth's vertices against
|
|
19
|
+
* its own triangles, so it is too slow to repeat for hundreds of badges at once. The result
|
|
20
|
+
* depends only on the corner: the rotation the scale search uses is the booth's own plus the
|
|
21
|
+
* quarter turns to that corner, the same at every visit to it up to whole turns of 2π.
|
|
22
|
+
*
|
|
23
|
+
* The first visit to a corner still searches, for every badge at once, so {@link prefetch} works
|
|
24
|
+
* the other corners out ahead, while the page is idle.
|
|
25
|
+
*/
|
|
26
|
+
export class BoothBadgeAnchors {
|
|
27
|
+
/** The badges with corners still to work out while the page is idle, in the order queued. */
|
|
28
|
+
static { this.idle = new Set(); }
|
|
29
|
+
static { this.idleScheduled = false; }
|
|
30
|
+
/**
|
|
31
|
+
* @param booth - The booth the badge belongs to.
|
|
32
|
+
* @param triangles - The booth's footprint as triangles; empty when it has no paths.
|
|
33
|
+
* @param border - How far the badge stays in from the booth's edge.
|
|
34
|
+
* @param source - The badge's width and height at scale 1.
|
|
35
|
+
*/
|
|
36
|
+
constructor(booth, triangles, border, source) {
|
|
37
|
+
this.booth = booth;
|
|
38
|
+
this.triangles = triangles;
|
|
39
|
+
this.border = border;
|
|
40
|
+
this.source = source;
|
|
41
|
+
this.fits = [];
|
|
42
|
+
/** The rotation at corner 0 the idle work counts quarter turns from. */
|
|
43
|
+
this.prefetchRotation = 0;
|
|
44
|
+
/** The booth's distinct vertices in first-seen order, built on the first search. */
|
|
45
|
+
this.vertices = null;
|
|
46
|
+
this.polygon = trianglesToPolygon(triangles);
|
|
47
|
+
this.bbox = trianglesBoundingBox(triangles);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The badge's place in a booth corner.
|
|
51
|
+
* @param corner - The booth corner, clockwise from top-left (0) to bottom-left (3).
|
|
52
|
+
* @param rotation - The badge's rotation in radians: the booth's own plus the quarter turns that
|
|
53
|
+
* brought the badge to this corner. Read on the first visit only.
|
|
54
|
+
* @returns The anchor and the largest scale, the same object at every visit.
|
|
55
|
+
*/
|
|
56
|
+
fit(corner, rotation) {
|
|
57
|
+
let fit = this.fits[corner];
|
|
58
|
+
if (!fit) {
|
|
59
|
+
this.fits[corner] = fit = this.compute(corner, rotation);
|
|
60
|
+
// Every corner is known: the vertices will not be searched again.
|
|
61
|
+
if (this.fits.filter(Boolean).length === 4)
|
|
62
|
+
this.vertices = null;
|
|
63
|
+
}
|
|
64
|
+
return fit;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Works out the three corners not yet visited while the page is idle, so the first quarter turn
|
|
68
|
+
* into each finds it ready. Queuing again while queued changes nothing.
|
|
69
|
+
* @param rotation - The badge's rotation at corner 0: the booth's own.
|
|
70
|
+
*/
|
|
71
|
+
prefetch(rotation) {
|
|
72
|
+
if (BoothBadgeAnchors.idle.has(this))
|
|
73
|
+
return;
|
|
74
|
+
this.prefetchRotation = rotation;
|
|
75
|
+
BoothBadgeAnchors.idle.add(this);
|
|
76
|
+
BoothBadgeAnchors.scheduleIdle();
|
|
77
|
+
}
|
|
78
|
+
/** Drops the idle work {@link prefetch} queued and has not done yet. */
|
|
79
|
+
cancelPrefetch() {
|
|
80
|
+
BoothBadgeAnchors.idle.delete(this);
|
|
81
|
+
}
|
|
82
|
+
static scheduleIdle() {
|
|
83
|
+
if (BoothBadgeAnchors.idleScheduled || !BoothBadgeAnchors.idle.size)
|
|
84
|
+
return;
|
|
85
|
+
BoothBadgeAnchors.idleScheduled = true;
|
|
86
|
+
if (typeof requestIdleCallback === 'function') {
|
|
87
|
+
requestIdleCallback(BoothBadgeAnchors.runIdle);
|
|
88
|
+
}
|
|
89
|
+
else if (typeof requestAnimationFrame === 'function') {
|
|
90
|
+
// A timeout set from a frame callback runs once that frame has been drawn.
|
|
91
|
+
requestAnimationFrame(() => setTimeout(BoothBadgeAnchors.runSlice, 0));
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
setTimeout(BoothBadgeAnchors.runSlice, TIMER_SLICE_GAP_MS);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** Runs the idle work for one {@link FRAME_SLICE_MS} slice, where no idle period is on offer. */
|
|
98
|
+
static runSlice() {
|
|
99
|
+
const end = performance.now() + FRAME_SLICE_MS;
|
|
100
|
+
BoothBadgeAnchors.runIdle({ timeRemaining: () => end - performance.now() });
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Works out one corner after another while the idle period lasts, for at most a slice, then asks
|
|
104
|
+
* for another.
|
|
105
|
+
* @param deadline - How much of the idle period is left.
|
|
106
|
+
*/
|
|
107
|
+
static runIdle(deadline) {
|
|
108
|
+
BoothBadgeAnchors.idleScheduled = false;
|
|
109
|
+
const sliceEnd = performance.now() + IDLE_SLICE_MS;
|
|
110
|
+
try {
|
|
111
|
+
for (const anchors of BoothBadgeAnchors.idle) {
|
|
112
|
+
if (deadline.timeRemaining() <= 0 || performance.now() >= sliceEnd)
|
|
113
|
+
break;
|
|
114
|
+
let more = false;
|
|
115
|
+
try {
|
|
116
|
+
more = anchors.prefetchNext();
|
|
117
|
+
}
|
|
118
|
+
finally {
|
|
119
|
+
// A badge whose search throws is dropped, so it cannot stall the badges behind it.
|
|
120
|
+
if (!more)
|
|
121
|
+
BoothBadgeAnchors.idle.delete(anchors);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
finally {
|
|
126
|
+
BoothBadgeAnchors.scheduleIdle();
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Works out the next corner not yet known, at the rotation the quarter turns to it give.
|
|
131
|
+
* @returns Whether a corner is still unknown after this one.
|
|
132
|
+
*/
|
|
133
|
+
prefetchNext() {
|
|
134
|
+
for (let corner = 1; corner < 4; corner++) {
|
|
135
|
+
if (this.fits[corner])
|
|
136
|
+
continue;
|
|
137
|
+
this.fit(corner, this.prefetchRotation + (corner * Math.PI) / 2);
|
|
138
|
+
return corner < 3;
|
|
139
|
+
}
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Searches a corner: the anchor, then the largest scale at it.
|
|
144
|
+
* @param corner - The booth corner, clockwise from top-left (0).
|
|
145
|
+
* @param rotation - The badge's rotation at that corner, in radians.
|
|
146
|
+
* @returns The corner's fit.
|
|
147
|
+
*/
|
|
148
|
+
compute(corner, rotation) {
|
|
149
|
+
const signX = corner === 0 || corner === 3 ? 1 : -1;
|
|
150
|
+
const signY = corner === 0 || corner === 1 ? 1 : -1;
|
|
151
|
+
const anchor = this.findAnchor(signX, signY);
|
|
152
|
+
const maxScale = this.clampScale(anchor.x, anchor.y, this.rectMaxScale(corner % 2 === 1), rotation);
|
|
153
|
+
return { x: anchor.x, y: anchor.y, maxScale };
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* The largest scale the booth's rect allows. At odd corners the badge's width and height lie
|
|
157
|
+
* along the booth's height and width.
|
|
158
|
+
* @param swapped - Whether the badge's axes are swapped against the booth's.
|
|
159
|
+
* @returns The scale.
|
|
160
|
+
*/
|
|
161
|
+
rectMaxScale(swapped) {
|
|
162
|
+
const boothW = this.booth.rect.size.width;
|
|
163
|
+
const boothH = this.booth.rect.size.height;
|
|
164
|
+
const capW = swapped ? boothH : boothW;
|
|
165
|
+
const capH = swapped ? boothW : boothH;
|
|
166
|
+
return Math.min(capW > 0 ? (capW * MAX_BADGE_WIDTH_RATIO) / this.source.x : Infinity, capH > 0 ? (capH * MAX_BADGE_HEIGHT_RATIO) / this.source.y : Infinity);
|
|
167
|
+
}
|
|
168
|
+
/**
|
|
169
|
+
* The booth vertex, moved in by the border, nearest the target corner of the booth's bounding
|
|
170
|
+
* box and still inside the booth. Uses booth.rotate (the booth's true tilt) for the fallback,
|
|
171
|
+
* never the badge's stepped rotation: the booth does not move when the badge steps.
|
|
172
|
+
*
|
|
173
|
+
* The candidates are tested nearest first, so the search stops at the first one inside instead
|
|
174
|
+
* of testing every vertex. Ties keep the vertex seen first, as a full scan would.
|
|
175
|
+
* @param signX - 1 to aim at the left edge, -1 at the right.
|
|
176
|
+
* @param signY - 1 to aim at the top edge, -1 at the bottom.
|
|
177
|
+
* @returns The anchor.
|
|
178
|
+
*/
|
|
179
|
+
findAnchor(signX, signY) {
|
|
180
|
+
const { booth, border, bbox } = this;
|
|
181
|
+
if (bbox) {
|
|
182
|
+
const targetX = signX > 0 ? bbox.min.x : bbox.max.x;
|
|
183
|
+
const targetY = signY > 0 ? bbox.min.y : bbox.max.y;
|
|
184
|
+
const candidates = [];
|
|
185
|
+
for (const [px, py] of this.distinctVertices()) {
|
|
186
|
+
const x = px + border * signX;
|
|
187
|
+
const y = py + border * signY;
|
|
188
|
+
const score = Math.abs(x - targetX) + Math.abs(y - targetY);
|
|
189
|
+
// A full scan only takes a score below Infinity, which also leaves NaN out.
|
|
190
|
+
if (score < Infinity)
|
|
191
|
+
candidates.push({ x, y, score, order: candidates.length });
|
|
192
|
+
}
|
|
193
|
+
// The order is compared explicitly: Array#sort is not stable before Chrome 70.
|
|
194
|
+
candidates.sort((a, b) => a.score - b.score || a.order - b.order);
|
|
195
|
+
for (const c of candidates) {
|
|
196
|
+
// A plain point, as every other caller passes: one more object shape slows the test down.
|
|
197
|
+
const point = { x: c.x, y: c.y };
|
|
198
|
+
if (this.polygon.containsPoint(point))
|
|
199
|
+
return point;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
const localX = signX > 0 ? booth.rect.min.x + border : booth.rect.max.x - border;
|
|
203
|
+
const localY = signY > 0 ? booth.rect.min.y + border : booth.rect.max.y - border;
|
|
204
|
+
const boothRotation = booth.rotate ?? 0;
|
|
205
|
+
if (!boothRotation)
|
|
206
|
+
return { x: localX, y: localY };
|
|
207
|
+
return pointRotate({ x: localX, y: localY }, boothRotation, booth.rect.center);
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Binary-searches the largest scale, up to the rect's cap, that keeps all badge corners inside
|
|
211
|
+
* the booth's footprint.
|
|
212
|
+
* @param anchorX - The badge's anchor.
|
|
213
|
+
* @param anchorY - The badge's anchor.
|
|
214
|
+
* @param rectMaxScale - The cap the booth's rect allows.
|
|
215
|
+
* @param rotation - The badge's rotation, in radians.
|
|
216
|
+
* @returns The scale; the cap itself when the booth has no footprint or the anchor lies outside.
|
|
217
|
+
*/
|
|
218
|
+
clampScale(anchorX, anchorY, rectMaxScale, rotation) {
|
|
219
|
+
const { polygon, source } = this;
|
|
220
|
+
if (!this.triangles.length)
|
|
221
|
+
return rectMaxScale;
|
|
222
|
+
const anchor = { x: anchorX, y: anchorY };
|
|
223
|
+
if (!polygon.containsPoint(anchor))
|
|
224
|
+
return rectMaxScale;
|
|
225
|
+
let lo = 0;
|
|
226
|
+
let hi = rectMaxScale;
|
|
227
|
+
for (let i = 0; i < SCALE_SEARCH_ITERATIONS; i++) {
|
|
228
|
+
const mid = (lo + hi) / 2;
|
|
229
|
+
const w = source.x * mid;
|
|
230
|
+
const h = source.y * mid;
|
|
231
|
+
const allInside = polygon.containsPoint(pointRotate({ x: anchorX + w, y: anchorY }, rotation, anchor)) &&
|
|
232
|
+
polygon.containsPoint(pointRotate({ x: anchorX, y: anchorY + h }, rotation, anchor)) &&
|
|
233
|
+
polygon.containsPoint(pointRotate({ x: anchorX + w, y: anchorY + h }, rotation, anchor));
|
|
234
|
+
if (allInside) {
|
|
235
|
+
lo = mid;
|
|
236
|
+
}
|
|
237
|
+
else {
|
|
238
|
+
hi = mid;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
return lo;
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* The booth's distinct vertices, in the order the triangles first name them.
|
|
245
|
+
* @returns The vertices, built once.
|
|
246
|
+
*/
|
|
247
|
+
distinctVertices() {
|
|
248
|
+
if (this.vertices)
|
|
249
|
+
return this.vertices;
|
|
250
|
+
const seen = new Set();
|
|
251
|
+
const vertices = [];
|
|
252
|
+
for (const tri of this.triangles) {
|
|
253
|
+
for (const p of tri) {
|
|
254
|
+
const key = `${p[0]},${p[1]}`;
|
|
255
|
+
if (seen.has(key))
|
|
256
|
+
continue;
|
|
257
|
+
seen.add(key);
|
|
258
|
+
vertices.push([p[0], p[1]]);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
return (this.vertices = vertices);
|
|
262
|
+
}
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* The bounding box of a booth's triangles.
|
|
266
|
+
* @param triangles - The triangles, as `[x, y]` vertex triples.
|
|
267
|
+
* @returns The box, or `null` when there are no triangles.
|
|
268
|
+
*/
|
|
269
|
+
export function trianglesBoundingBox(triangles) {
|
|
270
|
+
if (!triangles.length)
|
|
271
|
+
return null;
|
|
272
|
+
let minX = Infinity;
|
|
273
|
+
let minY = Infinity;
|
|
274
|
+
let maxX = -Infinity;
|
|
275
|
+
let maxY = -Infinity;
|
|
276
|
+
for (const tri of triangles) {
|
|
277
|
+
for (const [x, y] of tri) {
|
|
278
|
+
if (x < minX)
|
|
279
|
+
minX = x;
|
|
280
|
+
if (y < minY)
|
|
281
|
+
minY = y;
|
|
282
|
+
if (x > maxX)
|
|
283
|
+
maxX = x;
|
|
284
|
+
if (y > maxY)
|
|
285
|
+
maxY = y;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
return Box.fromMinMax({ x: minX, y: minY }, { x: maxX, y: maxY });
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* The booth's triangles as one {@link Polygon}, one vertex triple per triangle.
|
|
292
|
+
* @param triangles - The triangles, as `[x, y]` vertex triples.
|
|
293
|
+
* @returns The polygon.
|
|
294
|
+
*/
|
|
295
|
+
function trianglesToPolygon(triangles) {
|
|
296
|
+
const vertices = [];
|
|
297
|
+
const indices = [];
|
|
298
|
+
for (const tri of triangles) {
|
|
299
|
+
const base = vertices.length;
|
|
300
|
+
vertices.push({ x: tri[0][0], y: tri[0][1] });
|
|
301
|
+
vertices.push({ x: tri[1][0], y: tri[1][1] });
|
|
302
|
+
vertices.push({ x: tri[2][0], y: tri[2][1] });
|
|
303
|
+
indices.push([base, base + 1, base + 2]);
|
|
304
|
+
}
|
|
305
|
+
return new Polygon(vertices, indices);
|
|
306
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { type Booth } from '../../../../store/BoothStore';
|
|
2
|
+
import { type Exhibitor } from '../../../../store/ExhibitorStore';
|
|
3
|
+
/** One booth logo, ready to draw. */
|
|
4
|
+
export interface BoothLogo {
|
|
5
|
+
/** The bytes the renderer packs. An SVG logo is rasterized and re-encoded as PNG. */
|
|
6
|
+
blob: Blob;
|
|
7
|
+
/** The logo's width divided by its height, which is what fits it inside the booth. */
|
|
8
|
+
aspectRatio: number;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* The exhibitor whose logo is painted in this booth, if any.
|
|
12
|
+
*
|
|
13
|
+
* One function, so the logo URL and the stated ratio always come off the same exhibitor. A booth
|
|
14
|
+
* can hold several.
|
|
15
|
+
* @param booth - The booth to look at.
|
|
16
|
+
* @returns The exhibitor, or undefined when no exhibitor in the booth wants its logo painted.
|
|
17
|
+
*/
|
|
18
|
+
export declare function boothLogoExhibitor(booth: Booth): Exhibitor | undefined;
|
|
19
|
+
/**
|
|
20
|
+
* The logo aspect ratio the event data states for this booth, when it states a usable one.
|
|
21
|
+
*
|
|
22
|
+
* A value that is not a finite positive number is not a ratio. It would mis-fit the logo in every
|
|
23
|
+
* booth the exhibitor holds, and nothing downstream would catch it, so it is rejected here and the
|
|
24
|
+
* caller measures the pixels instead.
|
|
25
|
+
* @param booth - The booth whose logo is being placed.
|
|
26
|
+
* @returns The ratio, or undefined when the data states none that can be used.
|
|
27
|
+
*/
|
|
28
|
+
export declare function statedLogoAspectRatio(booth: Booth): number | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Makes the logo preparer for one batch of booths.
|
|
31
|
+
*
|
|
32
|
+
* The preparer answers two questions per booth: which bytes the renderer packs, and at what ratio
|
|
33
|
+
* the logo is fitted. It holds the batch's two caches, which is why it is built per batch rather
|
|
34
|
+
* than imported: booths share logos, and both answers must be shared with them.
|
|
35
|
+
* @returns A function preparing one booth's logo. It returns null when the logo cannot be drawn.
|
|
36
|
+
*/
|
|
37
|
+
export declare function createLogoPreparer(): (booth: Booth, blob: Blob) => Promise<BoothLogo | null>;
|
|
38
|
+
//# sourceMappingURL=booth-logos.d.ts.map
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { blobImageSize } from '../../../../utils/blob-image-size';
|
|
2
|
+
import { isSvgBlob, svgToPngBlob } from '../../../../utils/rasterize-svg';
|
|
3
|
+
/**
|
|
4
|
+
* The exhibitor whose logo is painted in this booth, if any.
|
|
5
|
+
*
|
|
6
|
+
* One function, so the logo URL and the stated ratio always come off the same exhibitor. A booth
|
|
7
|
+
* can hold several.
|
|
8
|
+
* @param booth - The booth to look at.
|
|
9
|
+
* @returns The exhibitor, or undefined when no exhibitor in the booth wants its logo painted.
|
|
10
|
+
*/
|
|
11
|
+
export function boothLogoExhibitor(booth) {
|
|
12
|
+
return booth.exhibitors.find((e) => e.logoInBooth && e.logo);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* The logo aspect ratio the event data states for this booth, when it states a usable one.
|
|
16
|
+
*
|
|
17
|
+
* A value that is not a finite positive number is not a ratio. It would mis-fit the logo in every
|
|
18
|
+
* booth the exhibitor holds, and nothing downstream would catch it, so it is rejected here and the
|
|
19
|
+
* caller measures the pixels instead.
|
|
20
|
+
* @param booth - The booth whose logo is being placed.
|
|
21
|
+
* @returns The ratio, or undefined when the data states none that can be used.
|
|
22
|
+
*/
|
|
23
|
+
export function statedLogoAspectRatio(booth) {
|
|
24
|
+
const ratio = boothLogoExhibitor(booth)?.logoAspectRatio;
|
|
25
|
+
return typeof ratio === 'number' && Number.isFinite(ratio) && ratio > 0 ? ratio : undefined;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Makes the logo preparer for one batch of booths.
|
|
29
|
+
*
|
|
30
|
+
* The preparer answers two questions per booth: which bytes the renderer packs, and at what ratio
|
|
31
|
+
* the logo is fitted. It holds the batch's two caches, which is why it is built per batch rather
|
|
32
|
+
* than imported: booths share logos, and both answers must be shared with them.
|
|
33
|
+
* @returns A function preparing one booth's logo. It returns null when the logo cannot be drawn.
|
|
34
|
+
*/
|
|
35
|
+
export function createLogoPreparer() {
|
|
36
|
+
// Each unique Blob converts once, not once per booth. Two booths that share a logo must end up
|
|
37
|
+
// with the very same Blob object: the renderer dedupes image sources by identity, and that is
|
|
38
|
+
// what packs the logo into one atlas region instead of two.
|
|
39
|
+
const drawables = new Map();
|
|
40
|
+
const drawableOf = (blob) => {
|
|
41
|
+
let pending = drawables.get(blob);
|
|
42
|
+
if (!pending) {
|
|
43
|
+
pending = toDrawable(blob);
|
|
44
|
+
drawables.set(blob, pending);
|
|
45
|
+
}
|
|
46
|
+
return pending;
|
|
47
|
+
};
|
|
48
|
+
// One decode per unique Blob, and only for the logos the data states no ratio for.
|
|
49
|
+
const measured = new Map();
|
|
50
|
+
const measuredRatioOf = (drawable) => {
|
|
51
|
+
let pending = measured.get(drawable);
|
|
52
|
+
if (!pending) {
|
|
53
|
+
pending = measureAspectRatio(drawable);
|
|
54
|
+
measured.set(drawable, pending);
|
|
55
|
+
}
|
|
56
|
+
return pending;
|
|
57
|
+
};
|
|
58
|
+
return async (booth, blob) => {
|
|
59
|
+
const drawable = await drawableOf(blob);
|
|
60
|
+
if (!drawable)
|
|
61
|
+
return null;
|
|
62
|
+
// The decode runs only as a fallback. It is still the normal path: no event states a ratio
|
|
63
|
+
// until the platform starts sending one.
|
|
64
|
+
const aspectRatio = statedLogoAspectRatio(booth) ?? (await measuredRatioOf(drawable));
|
|
65
|
+
return aspectRatio === null ? null : { blob: drawable, aspectRatio };
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Turns a fetched logo into bytes the renderer can pack.
|
|
70
|
+
*
|
|
71
|
+
* The renderer decodes every source with `createImageBitmap`, and Chrome refuses SVG bytes. An SVG
|
|
72
|
+
* logo is therefore drawn into a canvas and re-encoded as PNG. It stays a `Blob` on purpose: a
|
|
73
|
+
* layer packs in the atlas worker only while every one of its sources is a `Blob`, so one canvas
|
|
74
|
+
* among a thousand logos would drop the whole layer back onto the main thread.
|
|
75
|
+
* @param blob - The bytes the logo was fetched as.
|
|
76
|
+
* @returns The bytes to pack, or null when the SVG does not render.
|
|
77
|
+
*/
|
|
78
|
+
async function toDrawable(blob) {
|
|
79
|
+
return isSvgBlob(blob) ? svgToPngBlob(blob) : blob;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Measures a logo's aspect ratio by decoding it.
|
|
83
|
+
*
|
|
84
|
+
* `blobImageSize` decodes off the main thread and closes the bitmap as soon as it has read the
|
|
85
|
+
* size, so a whole batch of logos never sits in memory together.
|
|
86
|
+
* @param blob - The bytes to measure.
|
|
87
|
+
* @returns The width divided by the height, or null when the bytes do not decode.
|
|
88
|
+
*/
|
|
89
|
+
async function measureAspectRatio(blob) {
|
|
90
|
+
const size = await blobImageSize(blob);
|
|
91
|
+
// A decoded image with no height states no ratio. The caller drops the logo, which beats
|
|
92
|
+
// drawing it at a guessed one.
|
|
93
|
+
return size?.height ? size.width / size.height : null;
|
|
94
|
+
}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
import { Rect } from '@expofp/geometry';
|
|
2
|
+
/**
|
|
3
|
+
* Creates a canvas that remembers the device pixel ratio it was rasterized at.
|
|
4
|
+
*
|
|
5
|
+
* The backing size is taken as given, and `style.width`/`style.height` hold the CSS size, the
|
|
6
|
+
* backing size over the ratio. The renderer sizes defs from that CSS size, so the ratio only sets
|
|
7
|
+
* how crisp the canvas is. A caller with a CSS size passes it times the ratio.
|
|
8
|
+
* @param width - The backing width in device pixels.
|
|
9
|
+
* @param height - The backing height in device pixels.
|
|
10
|
+
* @param pixelRatio - Device pixels per CSS pixel.
|
|
11
|
+
* @returns The canvas.
|
|
12
|
+
*/
|
|
13
|
+
export declare function createCanvas(width: number, height: number, pixelRatio?: number): HTMLCanvasElement;
|
|
14
|
+
/**
|
|
15
|
+
* The CSS size a canvas from this module was drawn at, as it recorded when it was made.
|
|
16
|
+
*
|
|
17
|
+
* For a caller that holds a canvas and no longer holds the numbers it was made from. Prefer the
|
|
18
|
+
* size function that names the creator ({@link circleCanvasCssSize}, {@link imageCanvasCssSize})
|
|
19
|
+
* where the caller made the canvas itself.
|
|
20
|
+
* @param canvas - A canvas made by one of the creators here.
|
|
21
|
+
* @returns The canvas's CSS width and height.
|
|
22
|
+
*/
|
|
23
|
+
export declare function cssSizeOf(canvas: HTMLCanvasElement): {
|
|
24
|
+
width: number;
|
|
25
|
+
height: number;
|
|
26
|
+
};
|
|
27
|
+
export declare function getBounds(x: number, y: number, width: number, height: number, scale?: number, rotate?: number, elevation?: number): Rect;
|
|
28
|
+
export declare function getFont(px: number, weight?: number, style?: string): string;
|
|
29
|
+
export declare function createLabelCanvas(text: string, fontSize: number, pixelRatio: number, color: string | undefined, fontWeight: number, strokeStyle?: string, strokeWidth?: number): HTMLCanvasElement;
|
|
30
|
+
/**
|
|
31
|
+
* The CSS size a circle canvas of this radius is drawn at — the one answer to "how big is this dot",
|
|
32
|
+
* and the number a def's bounds are sized from.
|
|
33
|
+
*
|
|
34
|
+
* A canvas's `width` is its backing store in the device pixels it was baked at, which is a different
|
|
35
|
+
* quantity: truncated to a whole pixel, and baked at a ratio that need not be the one the renderer
|
|
36
|
+
* draws into. Geometry reads this; the backing store is for crispness.
|
|
37
|
+
* @param radius - The dot's radius in CSS pixels.
|
|
38
|
+
* @returns The canvas's CSS width and height, which are equal.
|
|
39
|
+
*/
|
|
40
|
+
export declare function circleCanvasCssSize(radius: number): number;
|
|
41
|
+
export declare function createCircleCanvas(radius: number, color: string): HTMLCanvasElement;
|
|
42
|
+
/**
|
|
43
|
+
* The CSS size a bookmark canvas is drawn at: the width asked for, and the height its ribbon adds.
|
|
44
|
+
* @param maxSizePx - The ribbon's width in CSS pixels.
|
|
45
|
+
* @returns The canvas's CSS width and height.
|
|
46
|
+
*/
|
|
47
|
+
export declare function bookmarkCanvasCssSize(maxSizePx: number): {
|
|
48
|
+
width: number;
|
|
49
|
+
height: number;
|
|
50
|
+
};
|
|
51
|
+
export declare function createBookmarkCanvas(maxSizePx: number, pixelRatio: number): HTMLCanvasElement;
|
|
52
|
+
/**
|
|
53
|
+
* The CSS size {@link createImageCanvas} draws an image at: the box it was asked for, shrunk on one
|
|
54
|
+
* axis to the image's own aspect.
|
|
55
|
+
* @param image - The image the canvas is drawn from.
|
|
56
|
+
* @param width - The box's width in CSS pixels.
|
|
57
|
+
* @param height - The box's height in CSS pixels.
|
|
58
|
+
* @param ptsScale - The scale the canvas was drawn at, as {@link createImageCanvas} takes it.
|
|
59
|
+
* @returns The canvas's CSS width and height.
|
|
60
|
+
*/
|
|
61
|
+
export declare function imageCanvasCssSize(image: HTMLImageElement, width: number, height: number, ptsScale?: number): {
|
|
62
|
+
width: number;
|
|
63
|
+
height: number;
|
|
64
|
+
};
|
|
65
|
+
export declare function createImageCanvas(image: HTMLImageElement, width: number, height: number, pixelRatio: number, ptsScale?: number, flip?: 'horizontal' | 'vertical'): HTMLCanvasElement;
|
|
66
|
+
export declare function createCurrentCanvas(pixelRatio: number, color?: string, scale?: number, width?: number, height?: number, text?: string, textColor?: string): HTMLCanvasElement;
|
|
67
|
+
export declare function createTargetCanvas(pixelRatio: number, color?: string, scale?: number): HTMLCanvasElement;
|
|
68
|
+
export declare function createArrowCurrentCanvas(pixelRatio: number, color?: string, scale?: number): HTMLCanvasElement;
|
|
69
|
+
export declare function createYahCanvas(pixelRatio: number, color?: string, scale?: number): HTMLCanvasElement;
|
|
70
|
+
/**
|
|
71
|
+
* The pin marking a booth an active PoI-type filter selected: a teardrop pointing down, filled red,
|
|
72
|
+
* edged in black, with a white center in its head.
|
|
73
|
+
*
|
|
74
|
+
* The black edge is what carries the shape over a highlighted booth — the body and a highlighted
|
|
75
|
+
* booth are both red, so without it the drop dissolves into the booth and only the center reads.
|
|
76
|
+
*
|
|
77
|
+
* Hands back a canvas rather than the `ImageData` the two pins above return, because the renderer
|
|
78
|
+
* packs a canvas into its atlas directly and every pin on the plan shares this one image.
|
|
79
|
+
*/
|
|
80
|
+
export declare function createPoiPinCanvas(widthPx: number, pixelRatio: number): HTMLCanvasElement;
|
|
81
|
+
/**
|
|
82
|
+
* The marker standing for a group of booths an active PoI-type filter selected: the same teardrop
|
|
83
|
+
* the lone pin draws, with an empty white counter circle filling its head.
|
|
84
|
+
*
|
|
85
|
+
* The count is **not** baked in. A number on the canvas would make one `ImageSource` per count, and
|
|
86
|
+
* the renderer's image container repacks its atlas when the *set* of images changes, so a zoom step
|
|
87
|
+
* that moved a cluster from 7 members to 12 would repack. Drawn empty, exactly two images ever
|
|
88
|
+
* reach the atlas — this one and the lone pin — and the set is fixed for the plan's life. The count
|
|
89
|
+
* is a separate screen-space text def in a sibling layer, standing on the marker's anchor; neither
|
|
90
|
+
* carries a placement, since both draw a cluster the renderer already decided.
|
|
91
|
+
* @param widthPx - The marker's width in CSS pixels.
|
|
92
|
+
* @param pixelRatio - Device pixels per CSS pixel.
|
|
93
|
+
* @returns The canvas every cluster marker draws.
|
|
94
|
+
*/
|
|
95
|
+
export declare function createClusterPinCanvas(widthPx: number, pixelRatio: number): HTMLCanvasElement;
|
|
96
|
+
//# sourceMappingURL=canvases.d.ts.map
|