@expofp/floorplan 0.0.0-experimental.d269d30
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/CookieConsent-DZIIxu4v.js +6380 -0
- package/dist/browser/Debug-B2pPaW8y.js +52 -0
- package/dist/browser/Demo-D6ACk7Lt.js +66 -0
- package/dist/browser/Free-B7Am4PYj.js +63 -0
- package/dist/browser/Gallery-DYS3RwB3.js +3258 -0
- package/dist/browser/GpsLoader-DhK72G9P.js +153 -0
- package/dist/browser/KioskStore-CTJSodJs.js +212 -0
- package/dist/browser/MaplibreAdapter-3ujg3BCh.js +35017 -0
- package/dist/browser/SetKioskMode-DHDfCkNQ.js +56 -0
- package/dist/browser/ShowKiosk-B1daYsE7.js +26 -0
- package/dist/browser/TouchHand-fqKeD7y7.js +66 -0
- package/dist/browser/ViewerMenuPanel-D4i_cD73.js +116 -0
- package/dist/browser/add-debug-secret-listener-BvojUazA.js +26 -0
- package/dist/browser/boolean-editor-DKUDhw69.js +150 -0
- package/dist/browser/bootIntercom-BJncDYGP.js +40 -0
- package/dist/browser/box-CTTzrqzn.js +740 -0
- package/dist/browser/browser-2bfSJOPy.js +198 -0
- package/dist/browser/bundle.json +320 -0
- package/dist/browser/classnames-BvasRm8d.js +39 -0
- package/dist/browser/client-BFA2iU9V.js +7601 -0
- package/dist/browser/compat-helper.js +5 -0
- package/dist/browser/debug-overlay-Kuk4KTK1.js +1419 -0
- package/dist/browser/debug-ui-D-tzXame.js +86 -0
- package/dist/browser/dimming-DQIxZLxV.js +1494 -0
- package/dist/browser/dist-B14_hNIG.js +2581 -0
- package/dist/browser/dist-BE8V5GAe.js +205 -0
- package/dist/browser/dist-C3tL5Vk8.js +21 -0
- package/dist/browser/efp-debug-init-nxNDeCAc.js +41 -0
- package/dist/browser/enum-editor-DuvRBoa2.js +1381 -0
- package/dist/browser/expofp-overlay.png +0 -0
- package/dist/browser/exports-D5d2LZL8.js +1537 -0
- package/dist/browser/favicon-DlRUd3Qx.js +12 -0
- package/dist/browser/fetch-retry.umd-B_Vi0pxE.js +78 -0
- package/dist/browser/flex-CsdK7JHd.js +25 -0
- package/dist/browser/flex.props-Ct0C6bp-.js +112 -0
- package/dist/browser/floorplan.loader-BtXqnnYM.js +2921 -0
- package/dist/browser/floorplan.ready-CVu6wT7j.js +1318 -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/fuse-8wF58EzS.js +1177 -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/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 +15 -0
- package/dist/browser/index.js +225 -0
- package/dist/browser/is-debug-DPdTc3ov.js +5721 -0
- package/dist/browser/jsx-runtime-BYH0bwck.js +30 -0
- package/dist/browser/lib-BUACBAyg.js +1859 -0
- package/dist/browser/locales/ar.json +211 -0
- package/dist/browser/locales/de.json +211 -0
- package/dist/browser/locales/es.json +211 -0
- package/dist/browser/locales/fr.json +211 -0
- package/dist/browser/locales/he.json +211 -0
- package/dist/browser/locales/it.json +211 -0
- package/dist/browser/locales/kk.json +211 -0
- package/dist/browser/locales/ko.json +211 -0
- package/dist/browser/locales/mn.json +211 -0
- package/dist/browser/locales/nl.json +211 -0
- package/dist/browser/locales/pl.json +211 -0
- package/dist/browser/locales/pt.json +211 -0
- package/dist/browser/locales/ru.json +211 -0
- package/dist/browser/locales/sv.json +211 -0
- package/dist/browser/locales/th.json +211 -0
- package/dist/browser/locales/tr.json +211 -0
- package/dist/browser/locales/uk.json +211 -0
- package/dist/browser/locales/vi.json +211 -0
- package/dist/browser/locales/zh.json +211 -0
- package/dist/browser/main-DMN_b5iM.js +289 -0
- package/dist/browser/mobx-BiRyH1I7.js +24 -0
- package/dist/browser/particles.min-DIUddENc.js +133 -0
- package/dist/browser/prop-types-gTuqEv98.js +57 -0
- package/dist/browser/react-Bm8UQkxX.js +301 -0
- package/dist/browser/react-dom-uwXLXn13.js +139 -0
- package/dist/browser/reset-all-settings-CHuQ4o3B.js +138 -0
- package/dist/browser/rolldown-runtime-DuTZ4nBm.js +28 -0
- package/dist/browser/settings-DHplBjk5.js +9 -0
- package/dist/browser/settings-item-Z_PlPpqS.js +67 -0
- package/dist/browser/store-BxBB8rRf.js +36182 -0
- package/dist/browser/string-editor-BqyDa6Mf.js +106 -0
- package/dist/browser/theme-v_UhDkxL.js +2803 -0
- package/dist/browser/ui-m6uIJBl8.js +43 -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/warning.png +0 -0
- package/dist/esm/RouteCutIn.d.ts +23 -0
- package/dist/esm/RouteCutIn.js +1 -0
- package/dist/esm/_NEW_types.d.ts +6 -0
- package/dist/esm/_NEW_types.js +1 -0
- package/dist/esm/_misc_to_move/initHtmlHead.d.ts +2 -0
- package/dist/esm/_misc_to_move/initHtmlHead.js +1 -0
- package/dist/esm/_misc_to_move/logBuildInfo.d.ts +2 -0
- package/dist/esm/_misc_to_move/logBuildInfo.js +1 -0
- package/dist/esm/_misc_to_move/manifest.d.ts +14 -0
- package/dist/esm/_misc_to_move/manifest.js +1 -0
- package/dist/esm/_misc_to_move/ref.d.ts +6 -0
- package/dist/esm/_misc_to_move/ref.js +1 -0
- package/dist/esm/components/Alert.d.ts +20 -0
- package/dist/esm/components/Alert.js +1 -0
- package/dist/esm/components/Autocomplete.d.ts +16 -0
- package/dist/esm/components/Autocomplete.js +1 -0
- package/dist/esm/components/Badge.d.ts +15 -0
- package/dist/esm/components/Badge.js +1 -0
- package/dist/esm/components/BaseFilterModal.d.ts +11 -0
- package/dist/esm/components/BaseFilterModal.js +1 -0
- package/dist/esm/components/BookmarkSvg.d.ts +3 -0
- package/dist/esm/components/BookmarkSvg.js +1 -0
- package/dist/esm/components/Bookmarks.d.ts +3 -0
- package/dist/esm/components/Bookmarks.js +1 -0
- package/dist/esm/components/Booth/Booth.d.ts +5 -0
- package/dist/esm/components/Booth/Booth.js +1 -0
- package/dist/esm/components/Booth/BoothOnHold.d.ts +13 -0
- package/dist/esm/components/Booth/BoothOnHold.js +1 -0
- package/dist/esm/components/Booth/BoothReserved.d.ts +3 -0
- package/dist/esm/components/Booth/BoothReserved.js +1 -0
- package/dist/esm/components/Booth/BoothSpecial.d.ts +8 -0
- package/dist/esm/components/Booth/BoothSpecial.js +1 -0
- package/dist/esm/components/Booth/BoothWithoutExhibitor.d.ts +13 -0
- package/dist/esm/components/Booth/BoothWithoutExhibitor.js +1 -0
- package/dist/esm/components/Button.d.ts +25 -0
- package/dist/esm/components/Button.js +1 -0
- package/dist/esm/components/Category.d.ts +4 -0
- package/dist/esm/components/Category.js +1 -0
- package/dist/esm/components/CategoryFilterModal.d.ts +3 -0
- package/dist/esm/components/CategoryFilterModal.js +1 -0
- package/dist/esm/components/Checkbox.d.ts +13 -0
- package/dist/esm/components/Checkbox.js +1 -0
- package/dist/esm/components/CheckboxButton.d.ts +11 -0
- package/dist/esm/components/CheckboxButton.js +1 -0
- package/dist/esm/components/Controls.d.ts +2 -0
- package/dist/esm/components/Controls.js +1 -0
- package/dist/esm/components/CookieConsent.d.ts +9 -0
- package/dist/esm/components/CookieConsent.js +1 -0
- package/dist/esm/components/Debug.d.ts +4 -0
- package/dist/esm/components/Debug.js +1 -0
- package/dist/esm/components/Demo.d.ts +3 -0
- package/dist/esm/components/Demo.js +1 -0
- package/dist/esm/components/Draggable.d.ts +10 -0
- package/dist/esm/components/Draggable.js +1 -0
- package/dist/esm/components/EntityItem.d.ts +43 -0
- package/dist/esm/components/EntityItem.js +1 -0
- package/dist/esm/components/EntityList.d.ts +9 -0
- package/dist/esm/components/EntityList.js +1 -0
- package/dist/esm/components/EntityListRow.d.ts +12 -0
- package/dist/esm/components/EntityListRow.js +1 -0
- package/dist/esm/components/ErrorBoundary.d.ts +15 -0
- package/dist/esm/components/ErrorBoundary.js +1 -0
- package/dist/esm/components/Event.d.ts +5 -0
- package/dist/esm/components/Event.js +1 -0
- package/dist/esm/components/EventBadge.d.ts +10 -0
- package/dist/esm/components/EventBadge.js +1 -0
- package/dist/esm/components/Exhibitor.d.ts +4 -0
- package/dist/esm/components/Exhibitor.js +1 -0
- package/dist/esm/components/Filter.d.ts +3 -0
- package/dist/esm/components/Filter.js +1 -0
- package/dist/esm/components/Free.d.ts +3 -0
- package/dist/esm/components/Free.js +1 -0
- package/dist/esm/components/Gallery/Gallery.d.ts +13 -0
- package/dist/esm/components/Gallery/Gallery.js +1 -0
- package/dist/esm/components/Gallery/GalleryBadges/GalleryBadges.d.ts +8 -0
- package/dist/esm/components/Gallery/GalleryBadges/GalleryBadges.js +1 -0
- package/dist/esm/components/Gallery/GalleryControls/GalleryControls.d.ts +9 -0
- package/dist/esm/components/Gallery/GalleryControls/GalleryControls.js +1 -0
- package/dist/esm/components/Gallery/GalleryImg/GalleryImg.d.ts +14 -0
- package/dist/esm/components/Gallery/GalleryImg/GalleryImg.js +1 -0
- package/dist/esm/components/Gallery/GalleryItem/GalleryItem.d.ts +13 -0
- package/dist/esm/components/Gallery/GalleryItem/GalleryItem.js +1 -0
- package/dist/esm/components/Gallery/GalleryModal/GalleryModal.d.ts +12 -0
- package/dist/esm/components/Gallery/GalleryModal/GalleryModal.js +1 -0
- package/dist/esm/components/Gallery/GalleryPreLoader.d.ts +7 -0
- package/dist/esm/components/Gallery/GalleryPreLoader.js +1 -0
- package/dist/esm/components/Gallery/TransformImg/TransformImg.d.ts +10 -0
- package/dist/esm/components/Gallery/TransformImg/TransformImg.js +1 -0
- package/dist/esm/components/GlobalErrorMessage.d.ts +4 -0
- package/dist/esm/components/GlobalErrorMessage.js +1 -0
- package/dist/esm/components/GpsLoader.d.ts +4 -0
- package/dist/esm/components/GpsLoader.js +1 -0
- package/dist/esm/components/HeatmapLegend.d.ts +12 -0
- package/dist/esm/components/HeatmapLegend.js +1 -0
- package/dist/esm/components/HighlightText.d.ts +6 -0
- package/dist/esm/components/HighlightText.js +1 -0
- package/dist/esm/components/Kiosk/KioskStore.d.ts +33 -0
- package/dist/esm/components/Kiosk/KioskStore.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/Confirm/ConfirmDialog.d.ts +4 -0
- package/dist/esm/components/Kiosk/SetKiosk/Confirm/ConfirmDialog.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/FormInput/RangeInput.d.ts +4 -0
- package/dist/esm/components/Kiosk/SetKiosk/FormInput/RangeInput.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/Message/InfoMessage.d.ts +4 -0
- package/dist/esm/components/Kiosk/SetKiosk/Message/InfoMessage.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskComponent.d.ts +4 -0
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskComponent.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskForm.d.ts +4 -0
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskForm.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskStatusMessages.d.ts +4 -0
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskStatusMessages.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/constants.d.ts +5 -0
- package/dist/esm/components/Kiosk/SetKiosk/constants.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/getKioskUrlParamKey.d.ts +2 -0
- package/dist/esm/components/Kiosk/SetKiosk/getKioskUrlParamKey.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/getName.d.ts +2 -0
- package/dist/esm/components/Kiosk/SetKiosk/getName.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/getSlug.d.ts +2 -0
- package/dist/esm/components/Kiosk/SetKiosk/getSlug.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/index.d.ts +7 -0
- package/dist/esm/components/Kiosk/SetKiosk/index.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/storage.d.ts +5 -0
- package/dist/esm/components/Kiosk/SetKiosk/storage.js +1 -0
- package/dist/esm/components/Kiosk/SetKiosk/types.d.ts +106 -0
- package/dist/esm/components/Kiosk/SetKiosk/types.js +1 -0
- package/dist/esm/components/Kiosk/SetKioskMode.d.ts +4 -0
- package/dist/esm/components/Kiosk/SetKioskMode.js +1 -0
- package/dist/esm/components/Kiosk/ShowKiosk.d.ts +4 -0
- package/dist/esm/components/Kiosk/ShowKiosk.js +1 -0
- package/dist/esm/components/Kiosk/integrateKiosk.d.ts +4 -0
- package/dist/esm/components/Kiosk/integrateKiosk.js +1 -0
- package/dist/esm/components/Kiosk/kioskUrlParam.d.ts +4 -0
- package/dist/esm/components/Kiosk/kioskUrlParam.js +1 -0
- package/dist/esm/components/Kiosk/recoverKioskFromUrlPrams.d.ts +2 -0
- package/dist/esm/components/Kiosk/recoverKioskFromUrlPrams.js +1 -0
- package/dist/esm/components/Kiosk/requestKioskKey.d.ts +3 -0
- package/dist/esm/components/Kiosk/requestKioskKey.js +1 -0
- package/dist/esm/components/Language.d.ts +4 -0
- package/dist/esm/components/Language.js +1 -0
- package/dist/esm/components/LanguageRow.d.ts +7 -0
- package/dist/esm/components/LanguageRow.js +1 -0
- package/dist/esm/components/LargeMessage.d.ts +3 -0
- package/dist/esm/components/LargeMessage.js +1 -0
- package/dist/esm/components/LayersLoading.d.ts +9 -0
- package/dist/esm/components/LayersLoading.js +1 -0
- package/dist/esm/components/Layout.d.ts +10 -0
- package/dist/esm/components/Layout.js +1 -0
- package/dist/esm/components/LevelBadge.d.ts +8 -0
- package/dist/esm/components/LevelBadge.js +1 -0
- package/dist/esm/components/LevelSelector.d.ts +3 -0
- package/dist/esm/components/LevelSelector.js +1 -0
- package/dist/esm/components/List.d.ts +9 -0
- package/dist/esm/components/List.js +1 -0
- package/dist/esm/components/LogoOverlay.d.ts +4 -0
- package/dist/esm/components/LogoOverlay.js +1 -0
- package/dist/esm/components/Map/Map.d.ts +2 -0
- package/dist/esm/components/Map/Map.js +1 -0
- package/dist/esm/components/Map/booth-by-xy.d.ts +3 -0
- package/dist/esm/components/Map/booth-by-xy.js +1 -0
- package/dist/esm/components/Map/drawing/config/BoothDrawerBase.d.ts +8 -0
- package/dist/esm/components/Map/drawing/config/BoothDrawerBase.js +1 -0
- package/dist/esm/components/Map/drawing/config/BoothShape.d.ts +8 -0
- package/dist/esm/components/Map/drawing/config/BoothShape.js +1 -0
- package/dist/esm/components/Map/drawing/config/Rect.d.ts +7 -0
- package/dist/esm/components/Map/drawing/config/Rect.js +1 -0
- package/dist/esm/components/Map/drawing/config/TextFitter.d.ts +11 -0
- package/dist/esm/components/Map/drawing/config/TextFitter.js +1 -0
- package/dist/esm/components/Map/drawing/config/canvases.d.ts +8 -0
- package/dist/esm/components/Map/drawing/config/canvases.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-all.d.ts +4 -0
- package/dist/esm/components/Map/drawing/config/config-all.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-bg.d.ts +9 -0
- package/dist/esm/components/Map/drawing/config/config-bg.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-booth-badge.d.ts +9 -0
- package/dist/esm/components/Map/drawing/config/config-booth-badge.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-booth-bg.d.ts +20 -0
- package/dist/esm/components/Map/drawing/config/config-booth-bg.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-booth-bookmark.d.ts +20 -0
- package/dist/esm/components/Map/drawing/config/config-booth-bookmark.js +1 -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 +1 -0
- package/dist/esm/components/Map/drawing/config/config-booth-labels-special.d.ts +17 -0
- package/dist/esm/components/Map/drawing/config/config-booth-labels-special.js +2 -0
- package/dist/esm/components/Map/drawing/config/config-booth-labels.d.ts +42 -0
- package/dist/esm/components/Map/drawing/config/config-booth-labels.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-booth-scaled.d.ts +14 -0
- package/dist/esm/components/Map/drawing/config/config-booth-scaled.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-booths.d.ts +6 -0
- package/dist/esm/components/Map/drawing/config/config-booths.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-load-layer.d.ts +5 -0
- package/dist/esm/components/Map/drawing/config/config-load-layer.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-markers.d.ts +5 -0
- package/dist/esm/components/Map/drawing/config/config-markers.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-wf.d.ts +8 -0
- package/dist/esm/components/Map/drawing/config/config-wf.js +1 -0
- package/dist/esm/components/Map/drawing/config/config-yah.d.ts +2 -0
- package/dist/esm/components/Map/drawing/config/config-yah.js +1 -0
- package/dist/esm/components/Map/drawing/config/loadBoothsImages.d.ts +11 -0
- package/dist/esm/components/Map/drawing/config/loadBoothsImages.js +1 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/index.d.ts +5 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/index.js +1 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/snapPositionToRoute.d.ts +21 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/snapPositionToRoute.js +1 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/splitRouteByPoint.d.ts +6 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/splitRouteByPoint.js +1 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/types.d.ts +18 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/types.js +1 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/utils.d.ts +29 -0
- package/dist/esm/components/Map/drawing/config/route-snapping/utils.js +1 -0
- package/dist/esm/components/Map/traffic/UpdateQueue.d.ts +13 -0
- package/dist/esm/components/Map/traffic/UpdateQueue.js +1 -0
- package/dist/esm/components/Map/traffic/trafficLayers.d.ts +17 -0
- package/dist/esm/components/Map/traffic/trafficLayers.js +1 -0
- package/dist/esm/components/Map/traffic/useBuildRoute.d.ts +8 -0
- package/dist/esm/components/Map/traffic/useBuildRoute.js +7 -0
- package/dist/esm/components/Map/traffic/useManageTraffic.d.ts +9 -0
- package/dist/esm/components/Map/traffic/useManageTraffic.js +1 -0
- package/dist/esm/components/Map/visibleArea.d.ts +15 -0
- package/dist/esm/components/Map/visibleArea.js +1 -0
- package/dist/esm/components/MapControls.d.ts +28 -0
- package/dist/esm/components/MapControls.js +1 -0
- package/dist/esm/components/Maplibre/MapLoader.d.ts +3 -0
- package/dist/esm/components/Maplibre/MapLoader.js +1 -0
- package/dist/esm/components/Maplibre/MaplibreAdapter.d.ts +15 -0
- package/dist/esm/components/Maplibre/MaplibreAdapter.js +1 -0
- package/dist/esm/components/Maplibre/MaplibreWrapper.d.ts +57 -0
- package/dist/esm/components/Maplibre/MaplibreWrapper.js +1 -0
- package/dist/esm/components/Maplibre/utils/solver.d.ts +24 -0
- package/dist/esm/components/Maplibre/utils/solver.js +1 -0
- package/dist/esm/components/MarketMaterialList.d.ts +9 -0
- package/dist/esm/components/MarketMaterialList.js +1 -0
- package/dist/esm/components/Menu.d.ts +9 -0
- package/dist/esm/components/Menu.js +1 -0
- package/dist/esm/components/MobileToggleButton.d.ts +4 -0
- package/dist/esm/components/MobileToggleButton.js +1 -0
- package/dist/esm/components/Modal.d.ts +37 -0
- package/dist/esm/components/Modal.js +1 -0
- package/dist/esm/components/MultiSelectGroups.d.ts +33 -0
- package/dist/esm/components/MultiSelectGroups.js +1 -0
- package/dist/esm/components/Overlay.d.ts +22 -0
- package/dist/esm/components/Overlay.js +1 -0
- package/dist/esm/components/OverlayContainer.d.ts +8 -0
- package/dist/esm/components/OverlayContainer.js +1 -0
- package/dist/esm/components/OverlayGrip.d.ts +5 -0
- package/dist/esm/components/OverlayGrip.js +1 -0
- package/dist/esm/components/OverlayParticles.d.ts +5 -0
- package/dist/esm/components/OverlayParticles.js +1 -0
- package/dist/esm/components/PermissionNotice/PermissionNotice.d.ts +14 -0
- package/dist/esm/components/PermissionNotice/PermissionNotice.js +1 -0
- package/dist/esm/components/QrCode.d.ts +46 -0
- package/dist/esm/components/QrCode.js +1 -0
- package/dist/esm/components/Radio.d.ts +12 -0
- package/dist/esm/components/Radio.js +1 -0
- package/dist/esm/components/RebookingNotes.d.ts +12 -0
- package/dist/esm/components/RebookingNotes.js +1 -0
- package/dist/esm/components/RebookingRadioGroup.d.ts +24 -0
- package/dist/esm/components/RebookingRadioGroup.js +1 -0
- package/dist/esm/components/RoutePlanner/RoutePlanner.d.ts +4 -0
- package/dist/esm/components/RoutePlanner/RoutePlanner.js +1 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerHeader.d.ts +4 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerHeader.js +1 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerStartPoint.d.ts +9 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerStartPoint.js +1 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerStopItem.d.ts +9 -0
- package/dist/esm/components/RoutePlanner/RoutePlannerStopItem.js +1 -0
- package/dist/esm/components/RouteQR.d.ts +8 -0
- package/dist/esm/components/RouteQR.js +1 -0
- package/dist/esm/components/Schedule.d.ts +14 -0
- package/dist/esm/components/Schedule.js +1 -0
- package/dist/esm/components/ScrollableRow.d.ts +20 -0
- package/dist/esm/components/ScrollableRow.js +1 -0
- package/dist/esm/components/Search.d.ts +4 -0
- package/dist/esm/components/Search.js +1 -0
- package/dist/esm/components/SearchBox.d.ts +7 -0
- package/dist/esm/components/SearchBox.js +1 -0
- package/dist/esm/components/SearchButtons/SearchButton.d.ts +20 -0
- package/dist/esm/components/SearchButtons/SearchButton.js +1 -0
- package/dist/esm/components/SearchButtons/SearchButtons.d.ts +5 -0
- package/dist/esm/components/SearchButtons/SearchButtons.js +1 -0
- package/dist/esm/components/SearchButtons/SearchSubButton.d.ts +14 -0
- package/dist/esm/components/SearchButtons/SearchSubButton.js +1 -0
- package/dist/esm/components/SearchButtons/SearchSubButtons.d.ts +5 -0
- package/dist/esm/components/SearchButtons/SearchSubButtons.js +1 -0
- package/dist/esm/components/SearchButtons/index.d.ts +7 -0
- package/dist/esm/components/SearchButtons/index.js +1 -0
- package/dist/esm/components/Sessions.d.ts +8 -0
- package/dist/esm/components/Sessions.js +1 -0
- package/dist/esm/components/SessionsFiltersModal.d.ts +11 -0
- package/dist/esm/components/SessionsFiltersModal.js +1 -0
- package/dist/esm/components/Share.d.ts +9 -0
- package/dist/esm/components/Share.js +1 -0
- package/dist/esm/components/Shortcuts/ShortcutButton.d.ts +9 -0
- package/dist/esm/components/Shortcuts/ShortcutButton.js +1 -0
- package/dist/esm/components/Shortcuts/ShortcutsFiltersButton.d.ts +9 -0
- package/dist/esm/components/Shortcuts/ShortcutsFiltersButton.js +1 -0
- package/dist/esm/components/Shortcuts/ShortcutsToolbar.d.ts +10 -0
- package/dist/esm/components/Shortcuts/ShortcutsToolbar.js +1 -0
- package/dist/esm/components/Shortcuts/index.d.ts +4 -0
- package/dist/esm/components/Shortcuts/index.js +1 -0
- package/dist/esm/components/SidebarActions.d.ts +20 -0
- package/dist/esm/components/SidebarActions.js +1 -0
- package/dist/esm/components/SimpleRow.d.ts +17 -0
- package/dist/esm/components/SimpleRow.js +1 -0
- package/dist/esm/components/Speaker.d.ts +5 -0
- package/dist/esm/components/Speaker.js +1 -0
- package/dist/esm/components/Speakers.d.ts +8 -0
- package/dist/esm/components/Speakers.js +1 -0
- package/dist/esm/components/SpeakersFiltersModal.d.ts +11 -0
- package/dist/esm/components/SpeakersFiltersModal.js +1 -0
- package/dist/esm/components/Toast/ToastContainer.d.ts +11 -0
- package/dist/esm/components/Toast/ToastContainer.js +1 -0
- package/dist/esm/components/Toast/ToastContext.d.ts +2 -0
- package/dist/esm/components/Toast/ToastContext.js +1 -0
- package/dist/esm/components/Toast/ToastProvider.d.ts +5 -0
- package/dist/esm/components/Toast/ToastProvider.js +1 -0
- package/dist/esm/components/Toast/index.d.ts +2 -0
- package/dist/esm/components/Toast/index.js +1 -0
- package/dist/esm/components/ToggleButton.d.ts +11 -0
- package/dist/esm/components/ToggleButton.js +1 -0
- package/dist/esm/components/ToggleSwitch.d.ts +12 -0
- package/dist/esm/components/ToggleSwitch.js +1 -0
- package/dist/esm/components/TouchHand.d.ts +4 -0
- package/dist/esm/components/TouchHand.js +1 -0
- package/dist/esm/components/TourPoints.d.ts +3 -0
- package/dist/esm/components/TourPoints.js +1 -0
- package/dist/esm/components/Tours.d.ts +7 -0
- package/dist/esm/components/Tours.js +1 -0
- package/dist/esm/components/ToursList.d.ts +10 -0
- package/dist/esm/components/ToursList.js +1 -0
- package/dist/esm/components/ViewerMenuPanel.d.ts +5 -0
- package/dist/esm/components/ViewerMenuPanel.js +1 -0
- package/dist/esm/components/Visited.d.ts +3 -0
- package/dist/esm/components/Visited.js +1 -0
- package/dist/esm/components/WayInformation.d.ts +14 -0
- package/dist/esm/components/WayInformation.js +1 -0
- package/dist/esm/components/Wayfinding.d.ts +4 -0
- package/dist/esm/components/Wayfinding.js +1 -0
- package/dist/esm/components/WayfindingFloorSelector.d.ts +21 -0
- package/dist/esm/components/WayfindingFloorSelector.js +1 -0
- package/dist/esm/components/WayfindingTemplate.d.ts +40 -0
- package/dist/esm/components/WayfindingTemplate.js +1 -0
- package/dist/esm/components/Ws.d.ts +4 -0
- package/dist/esm/components/Ws.js +1 -0
- package/dist/esm/components/YahRow.d.ts +8 -0
- package/dist/esm/components/YahRow.js +1 -0
- package/dist/esm/components/gps/GpsManager.d.ts +12 -0
- package/dist/esm/components/gps/GpsManager.js +1 -0
- package/dist/esm/components/gps/GpsPermissionRequest.d.ts +8 -0
- package/dist/esm/components/gps/GpsPermissionRequest.js +1 -0
- package/dist/esm/components/gps/index.d.ts +5 -0
- package/dist/esm/components/gps/index.js +1 -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 +1 -0
- package/dist/esm/components/gps/utils.d.ts +5 -0
- package/dist/esm/components/gps/utils.js +1 -0
- package/dist/esm/components/index.d.ts +106 -0
- package/dist/esm/components/index.js +1 -0
- package/dist/esm/components/stories/Alert.stories.d.ts +6 -0
- package/dist/esm/components/stories/Alert.stories.js +1 -0
- package/dist/esm/components/stories/Autocomplete.stories.d.ts +6 -0
- package/dist/esm/components/stories/Autocomplete.stories.js +1 -0
- package/dist/esm/components/stories/Badge.stories.d.ts +5 -0
- package/dist/esm/components/stories/Badge.stories.js +1 -0
- package/dist/esm/components/stories/Button.stories.d.ts +5 -0
- package/dist/esm/components/stories/Button.stories.js +1 -0
- package/dist/esm/components/stories/Checkbox.stories.d.ts +5 -0
- package/dist/esm/components/stories/Checkbox.stories.js +1 -0
- package/dist/esm/components/stories/CheckboxButton.stories.d.ts +5 -0
- package/dist/esm/components/stories/CheckboxButton.stories.js +1 -0
- package/dist/esm/components/stories/CookieConsent.stories.d.ts +5 -0
- package/dist/esm/components/stories/CookieConsent.stories.js +1 -0
- package/dist/esm/components/stories/EntityItem.stories.d.ts +8 -0
- package/dist/esm/components/stories/EntityItem.stories.js +1 -0
- package/dist/esm/components/stories/Gallery.stories.d.ts +5 -0
- package/dist/esm/components/stories/Gallery.stories.js +1 -0
- package/dist/esm/components/stories/Loading.stories.d.ts +5 -0
- package/dist/esm/components/stories/Loading.stories.js +1 -0
- package/dist/esm/components/stories/MapControls.stories.d.ts +5 -0
- package/dist/esm/components/stories/MapControls.stories.js +1 -0
- package/dist/esm/components/stories/MarketMaterialList.stories.d.ts +5 -0
- package/dist/esm/components/stories/MarketMaterialList.stories.js +1 -0
- package/dist/esm/components/stories/Modal.storiesss.d.ts +5 -0
- package/dist/esm/components/stories/Modal.storiesss.js +1 -0
- package/dist/esm/components/stories/Overlay.stories.d.ts +8 -0
- package/dist/esm/components/stories/Overlay.stories.js +1 -0
- package/dist/esm/components/stories/Radio.stories.d.ts +10 -0
- package/dist/esm/components/stories/Radio.stories.js +1 -0
- package/dist/esm/components/stories/RebookingNotes.stories.d.ts +5 -0
- package/dist/esm/components/stories/RebookingNotes.stories.js +1 -0
- package/dist/esm/components/stories/RebookingRadioGroup.stories.d.ts +5 -0
- package/dist/esm/components/stories/RebookingRadioGroup.stories.js +1 -0
- package/dist/esm/components/stories/RouteQR.stories.d.ts +7 -0
- package/dist/esm/components/stories/RouteQR.stories.js +1 -0
- package/dist/esm/components/stories/Share.storiesSS.d.ts +5 -0
- package/dist/esm/components/stories/Share.storiesSS.js +1 -0
- package/dist/esm/components/stories/SidebarActions.stories.d.ts +5 -0
- package/dist/esm/components/stories/SidebarActions.stories.js +1 -0
- package/dist/esm/components/stories/Toast.stories.d.ts +5 -0
- package/dist/esm/components/stories/Toast.stories.js +1 -0
- package/dist/esm/components/stories/ToggleButton.stories.d.ts +5 -0
- package/dist/esm/components/stories/ToggleButton.stories.js +1 -0
- package/dist/esm/components/stories/ToggleSwitch.stories.d.ts +5 -0
- package/dist/esm/components/stories/ToggleSwitch.stories.js +1 -0
- package/dist/esm/components/stories/TouchHand.stories.d.ts +5 -0
- package/dist/esm/components/stories/TouchHand.stories.js +1 -0
- package/dist/esm/components/stories/WayInformation.storiesss.d.ts +5 -0
- package/dist/esm/components/stories/WayInformation.storiesss.js +1 -0
- package/dist/esm/components/stories/WayfindingFloorSelector.storiesss.d.ts +5 -0
- package/dist/esm/components/stories/WayfindingFloorSelector.storiesss.js +1 -0
- package/dist/esm/components/stories/WayfindingTemplate.storiesss.d.ts +5 -0
- package/dist/esm/components/stories/WayfindingTemplate.storiesss.js +1 -0
- package/dist/esm/constants.d.ts +39 -0
- package/dist/esm/constants.js +1 -0
- package/dist/esm/core/Line.d.ts +12 -0
- package/dist/esm/core/Line.js +1 -0
- package/dist/esm/core/Polygon.d.ts +16 -0
- package/dist/esm/core/Polygon.js +1 -0
- package/dist/esm/core/Rect.d.ts +36 -0
- package/dist/esm/core/Rect.js +1 -0
- package/dist/esm/core/Size.d.ts +7 -0
- package/dist/esm/core/Size.js +1 -0
- package/dist/esm/data/fpGeo.d.ts +31 -0
- package/dist/esm/data/fpGeo.js +1 -0
- package/dist/esm/data/index.d.ts +4 -0
- package/dist/esm/data/index.js +1 -0
- package/dist/esm/data/svg.d.ts +13 -0
- package/dist/esm/data/svg.js +1 -0
- package/dist/esm/data/tours.json +262 -0
- package/dist/esm/data/validate-data.d.ts +3 -0
- package/dist/esm/data/validate-data.js +1 -0
- package/dist/esm/floorplan.loader.d.ts +109 -0
- package/dist/esm/floorplan.loader.js +1 -0
- package/dist/esm/floorplan.ready.d.ts +88 -0
- package/dist/esm/floorplan.ready.js +1 -0
- package/dist/esm/hooks/useDragGesture.d.ts +19 -0
- package/dist/esm/hooks/useDragGesture.js +1 -0
- package/dist/esm/hooks/useURLFilters.d.ts +15 -0
- package/dist/esm/hooks/useURLFilters.js +1 -0
- package/dist/esm/hooks/useWindowSize.d.ts +5 -0
- package/dist/esm/hooks/useWindowSize.js +1 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.js +1 -0
- package/dist/esm/intercom/bootIntercom.d.ts +3 -0
- package/dist/esm/intercom/bootIntercom.js +19 -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 +1 -0
- package/dist/esm/intercom/types.d.ts +6 -0
- package/dist/esm/intercom/types.js +1 -0
- package/dist/esm/load.d.ts +14 -0
- package/dist/esm/load.js +56 -0
- package/dist/esm/locales.d.ts +24 -0
- package/dist/esm/locales.js +1 -0
- package/dist/esm/offline/constants.d.ts +5 -0
- package/dist/esm/offline/constants.js +1 -0
- package/dist/esm/offline/offlineManager.d.ts +2 -0
- package/dist/esm/offline/offlineManager.js +1 -0
- package/dist/esm/renderer/HandlerRegistry.d.ts +18 -0
- package/dist/esm/renderer/HandlerRegistry.js +1 -0
- package/dist/esm/renderer/RendererService.d.ts +31 -0
- package/dist/esm/renderer/RendererService.js +1 -0
- package/dist/esm/renderer/engine-core/animation.d.ts +7 -0
- package/dist/esm/renderer/engine-core/animation.js +1 -0
- package/dist/esm/renderer/engine-core/canvases.d.ts +5 -0
- package/dist/esm/renderer/engine-core/canvases.js +1 -0
- package/dist/esm/renderer/engine-core/defs.d.ts +21 -0
- package/dist/esm/renderer/engine-core/defs.js +3 -0
- package/dist/esm/renderer/engine-core/fonts.d.ts +9 -0
- package/dist/esm/renderer/engine-core/fonts.js +1 -0
- package/dist/esm/renderer/engine-core/settings.d.ts +4 -0
- package/dist/esm/renderer/engine-core/settings.js +1 -0
- package/dist/esm/renderer/engine-core/types.d.ts +39 -0
- package/dist/esm/renderer/engine-core/types.js +1 -0
- package/dist/esm/renderer/engine-core/update-def.d.ts +11 -0
- package/dist/esm/renderer/engine-core/update-def.js +1 -0
- package/dist/esm/renderer/engine-core/utils/rotation.d.ts +5 -0
- package/dist/esm/renderer/engine-core/utils/rotation.js +1 -0
- package/dist/esm/renderer/index.d.ts +19 -0
- package/dist/esm/renderer/index.js +1 -0
- package/dist/esm/schemas/sdk.schemas.d.ts +25 -0
- package/dist/esm/schemas/sdk.schemas.js +1 -0
- package/dist/esm/services/URLFilterManager.d.ts +24 -0
- package/dist/esm/services/URLFilterManager.js +1 -0
- package/dist/esm/services/routing.d.ts +7 -0
- package/dist/esm/services/routing.js +1 -0
- package/dist/esm/store/BaseFilterStore.d.ts +17 -0
- package/dist/esm/store/BaseFilterStore.js +1 -0
- package/dist/esm/store/BookmarksStore.d.ts +12 -0
- package/dist/esm/store/BookmarksStore.js +2 -0
- package/dist/esm/store/BoothStore.d.ts +79 -0
- package/dist/esm/store/BoothStore.js +1 -0
- package/dist/esm/store/CategoryFilterStore.d.ts +13 -0
- package/dist/esm/store/CategoryFilterStore.js +1 -0
- package/dist/esm/store/CategoryStore.d.ts +21 -0
- package/dist/esm/store/CategoryStore.js +1 -0
- package/dist/esm/store/EventStore.d.ts +56 -0
- package/dist/esm/store/EventStore.js +1 -0
- package/dist/esm/store/ExhibitorStore.d.ts +77 -0
- package/dist/esm/store/ExhibitorStore.js +1 -0
- package/dist/esm/store/FuzzySearchEngineStore.d.ts +15 -0
- package/dist/esm/store/FuzzySearchEngineStore.js +1 -0
- package/dist/esm/store/HeatmapStore.d.ts +42 -0
- package/dist/esm/store/HeatmapStore.js +1 -0
- package/dist/esm/store/LayerStore.d.ts +53 -0
- package/dist/esm/store/LayerStore.js +1 -0
- package/dist/esm/store/MaplibreStore.d.ts +21 -0
- package/dist/esm/store/MaplibreStore.js +1 -0
- package/dist/esm/store/PoiTypeStore.d.ts +8 -0
- package/dist/esm/store/PoiTypeStore.js +1 -0
- package/dist/esm/store/RootStore.d.ts +97 -0
- package/dist/esm/store/RootStore.js +1 -0
- package/dist/esm/store/RoutePlannerStore.d.ts +58 -0
- package/dist/esm/store/RoutePlannerStore.js +1 -0
- package/dist/esm/store/RouteStore.d.ts +99 -0
- package/dist/esm/store/RouteStore.js +1 -0
- package/dist/esm/store/SearchButtonsStore.d.ts +2 -0
- package/dist/esm/store/SearchButtonsStore.js +1 -0
- package/dist/esm/store/SearchStore.d.ts +75 -0
- package/dist/esm/store/SearchStore.js +1 -0
- package/dist/esm/store/SessionsFilterStore.d.ts +50 -0
- package/dist/esm/store/SessionsFilterStore.js +1 -0
- package/dist/esm/store/ShortcutProvider.d.ts +26 -0
- package/dist/esm/store/ShortcutProvider.js +1 -0
- package/dist/esm/store/ShortcutRegistry.d.ts +19 -0
- package/dist/esm/store/ShortcutRegistry.js +1 -0
- package/dist/esm/store/SpeakerFilterStore.d.ts +39 -0
- package/dist/esm/store/SpeakerFilterStore.js +1 -0
- package/dist/esm/store/SpeakerStore.d.ts +45 -0
- package/dist/esm/store/SpeakerStore.js +1 -0
- package/dist/esm/store/SubButtonProvider.d.ts +16 -0
- package/dist/esm/store/SubButtonProvider.js +1 -0
- package/dist/esm/store/SubButtonRegistry.d.ts +16 -0
- package/dist/esm/store/SubButtonRegistry.js +1 -0
- package/dist/esm/store/ToursStore.d.ts +30 -0
- package/dist/esm/store/ToursStore.js +1 -0
- package/dist/esm/store/UIState.d.ts +256 -0
- package/dist/esm/store/UIState.js +1 -0
- package/dist/esm/store/index.d.ts +12 -0
- package/dist/esm/store/index.js +1 -0
- package/dist/esm/store/init/index.d.ts +3 -0
- package/dist/esm/store/init/index.js +1 -0
- package/dist/esm/store/init/init-bookmarks.d.ts +7 -0
- package/dist/esm/store/init/init-bookmarks.js +1 -0
- package/dist/esm/store/init/init-booths.d.ts +6 -0
- package/dist/esm/store/init/init-booths.js +1 -0
- package/dist/esm/store/init/init-categories.d.ts +3 -0
- package/dist/esm/store/init/init-categories.js +1 -0
- package/dist/esm/store/init/init-events.d.ts +3 -0
- package/dist/esm/store/init/init-events.js +1 -0
- package/dist/esm/store/init/init-exhibitors.d.ts +3 -0
- package/dist/esm/store/init/init-exhibitors.js +1 -0
- package/dist/esm/store/init/init-heatmap.d.ts +3 -0
- package/dist/esm/store/init/init-heatmap.js +1 -0
- package/dist/esm/store/init/init-layers.d.ts +8 -0
- package/dist/esm/store/init/init-layers.js +1 -0
- package/dist/esm/store/init/init-poiTypes.d.ts +3 -0
- package/dist/esm/store/init/init-poiTypes.js +1 -0
- package/dist/esm/store/init/init-speakers.d.ts +3 -0
- package/dist/esm/store/init/init-speakers.js +1 -0
- package/dist/esm/store/init/init-ui.d.ts +4 -0
- package/dist/esm/store/init/init-ui.js +5 -0
- package/dist/esm/store/providers/SearchShortcutProvider.d.ts +14 -0
- package/dist/esm/store/providers/SearchShortcutProvider.js +1 -0
- package/dist/esm/store/providers/SessionsShortcutProvider.d.ts +18 -0
- package/dist/esm/store/providers/SessionsShortcutProvider.js +1 -0
- package/dist/esm/store/providers/SessionsSubButtonProvider.d.ts +15 -0
- package/dist/esm/store/providers/SessionsSubButtonProvider.js +1 -0
- package/dist/esm/store/providers/SpeakerShortcutProvider.d.ts +12 -0
- package/dist/esm/store/providers/SpeakerShortcutProvider.js +1 -0
- package/dist/esm/store/search-buttons/SearchButtonsActions.d.ts +33 -0
- package/dist/esm/store/search-buttons/SearchButtonsActions.js +1 -0
- package/dist/esm/store/search-buttons/SearchButtonsFactory.d.ts +36 -0
- package/dist/esm/store/search-buttons/SearchButtonsFactory.js +1 -0
- package/dist/esm/store/search-buttons/SearchButtonsFilters.d.ts +20 -0
- package/dist/esm/store/search-buttons/SearchButtonsFilters.js +1 -0
- package/dist/esm/store/search-buttons/SearchButtonsState.d.ts +24 -0
- package/dist/esm/store/search-buttons/SearchButtonsState.js +1 -0
- package/dist/esm/store/search-buttons/SearchButtonsStore.d.ts +58 -0
- package/dist/esm/store/search-buttons/SearchButtonsStore.js +1 -0
- package/dist/esm/store/search-buttons/constants.d.ts +24 -0
- package/dist/esm/store/search-buttons/constants.js +1 -0
- package/dist/esm/store/search-buttons/index.d.ts +8 -0
- package/dist/esm/store/search-buttons/index.js +1 -0
- package/dist/esm/store/search-buttons/utils.d.ts +6 -0
- package/dist/esm/store/search-buttons/utils.js +1 -0
- package/dist/esm/store/types.d.ts +185 -0
- package/dist/esm/store/types.js +1 -0
- package/dist/esm/storybook/contexts/ResponsiveClassContext.d.ts +3 -0
- package/dist/esm/storybook/contexts/ResponsiveClassContext.js +1 -0
- package/dist/esm/storybook/decorators/StoryWrapper.d.ts +5 -0
- package/dist/esm/storybook/decorators/StoryWrapper.js +1 -0
- package/dist/esm/storybook/decorators/WithResize.d.ts +3 -0
- package/dist/esm/storybook/decorators/WithResize.js +1 -0
- package/dist/esm/storybook/store/index.stub.d.ts +20 -0
- package/dist/esm/storybook/store/index.stub.js +1 -0
- package/dist/esm/tools/Color.d.ts +2 -0
- package/dist/esm/tools/Color.js +1 -0
- package/dist/esm/tools/base-runtime-url.d.ts +3 -0
- package/dist/esm/tools/base-runtime-url.js +1 -0
- package/dist/esm/tools/debounce.d.ts +2 -0
- package/dist/esm/tools/debounce.js +1 -0
- package/dist/esm/tools/debugCanvases.d.ts +3 -0
- package/dist/esm/tools/debugCanvases.js +1 -0
- package/dist/esm/tools/expofpUrl.d.ts +7 -0
- package/dist/esm/tools/expofpUrl.js +1 -0
- package/dist/esm/tools/freeBanner.d.ts +5 -0
- package/dist/esm/tools/freeBanner.js +1 -0
- package/dist/esm/tools/gtag.d.ts +30 -0
- package/dist/esm/tools/gtag.js +1 -0
- package/dist/esm/tools/handleDebugMode.d.ts +2 -0
- package/dist/esm/tools/handleDebugMode.js +1 -0
- package/dist/esm/tools/id.d.ts +2 -0
- package/dist/esm/tools/id.js +1 -0
- package/dist/esm/tools/loaders.d.ts +7 -0
- package/dist/esm/tools/loaders.js +1 -0
- package/dist/esm/tools/logger.d.ts +38 -0
- package/dist/esm/tools/logger.js +1 -0
- package/dist/esm/tools/rebookingUrl.d.ts +11 -0
- package/dist/esm/tools/rebookingUrl.js +1 -0
- package/dist/esm/tools/report-error.d.ts +2 -0
- package/dist/esm/tools/report-error.js +3 -0
- package/dist/esm/tools/reset.d.ts +2 -0
- package/dist/esm/tools/reset.js +1 -0
- package/dist/esm/tools/sentry.d.ts +7 -0
- package/dist/esm/tools/sentry.js +1 -0
- package/dist/esm/tools/settings.d.ts +31 -0
- package/dist/esm/tools/settings.js +1 -0
- package/dist/esm/tools/slug.d.ts +2 -0
- package/dist/esm/tools/slug.js +1 -0
- package/dist/esm/tools/telemetry.d.ts +35 -0
- package/dist/esm/tools/telemetry.js +1 -0
- package/dist/esm/tools/track-event.d.ts +4 -0
- package/dist/esm/tools/track-event.js +1 -0
- package/dist/esm/tools/webgl-logger.d.ts +2 -0
- package/dist/esm/tools/webgl-logger.js +1 -0
- package/dist/esm/types/sdk.types.d.ts +49 -0
- package/dist/esm/types/sdk.types.js +1 -0
- package/dist/esm/types.d.ts +361 -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 +1 -0
- package/dist/esm/utils/_OLD_should-use-backdrop.d.ts +3 -0
- package/dist/esm/utils/_OLD_should-use-backdrop.js +1 -0
- package/dist/esm/utils/areLayersEnabled.d.ts +2 -0
- package/dist/esm/utils/areLayersEnabled.js +1 -0
- package/dist/esm/utils/browser.d.ts +4 -0
- package/dist/esm/utils/browser.js +1 -0
- package/dist/esm/utils/buildOptimizedRoute.d.ts +11 -0
- package/dist/esm/utils/buildOptimizedRoute.js +1 -0
- package/dist/esm/utils/calcSpeed.d.ts +2 -0
- package/dist/esm/utils/calcSpeed.js +1 -0
- package/dist/esm/utils/calcTravelTime.d.ts +2 -0
- package/dist/esm/utils/calcTravelTime.js +1 -0
- package/dist/esm/utils/customCommands.d.ts +2 -0
- package/dist/esm/utils/customCommands.js +1 -0
- package/dist/esm/utils/detectLimitedModeViaImage.d.ts +2 -0
- package/dist/esm/utils/detectLimitedModeViaImage.js +1 -0
- package/dist/esm/utils/dimming.d.ts +16 -0
- package/dist/esm/utils/dimming.js +1 -0
- package/dist/esm/utils/entity-storage.d.ts +14 -0
- package/dist/esm/utils/entity-storage.js +1 -0
- package/dist/esm/utils/eventFullBadge.d.ts +3 -0
- package/dist/esm/utils/eventFullBadge.js +1 -0
- package/dist/esm/utils/eventTime.d.ts +14 -0
- package/dist/esm/utils/eventTime.js +1 -0
- package/dist/esm/utils/extractMetaFromString.d.ts +5 -0
- package/dist/esm/utils/extractMetaFromString.js +1 -0
- package/dist/esm/utils/geometry.d.ts +2 -0
- package/dist/esm/utils/geometry.js +1 -0
- package/dist/esm/utils/getContrastTextColor.d.ts +2 -0
- package/dist/esm/utils/getContrastTextColor.js +1 -0
- package/dist/esm/utils/getLogoUrl.d.ts +2 -0
- package/dist/esm/utils/getLogoUrl.js +1 -0
- package/dist/esm/utils/getMostFrequent.d.ts +2 -0
- package/dist/esm/utils/getMostFrequent.js +1 -0
- package/dist/esm/utils/getRenderTargetFromRoot.d.ts +2 -0
- package/dist/esm/utils/getRenderTargetFromRoot.js +1 -0
- package/dist/esm/utils/gps.d.ts +33 -0
- package/dist/esm/utils/gps.js +1 -0
- package/dist/esm/utils/i18n.d.ts +9 -0
- package/dist/esm/utils/i18n.js +1 -0
- package/dist/esm/utils/imageloader.d.ts +17 -0
- package/dist/esm/utils/imageloader.js +1 -0
- package/dist/esm/utils/index.d.ts +10 -0
- package/dist/esm/utils/index.js +1 -0
- package/dist/esm/utils/is-debug.d.ts +11 -0
- package/dist/esm/utils/is-debug.js +1 -0
- package/dist/esm/utils/is-from-designer.d.ts +3 -0
- package/dist/esm/utils/is-from-designer.js +1 -0
- package/dist/esm/utils/is-iframe.d.ts +3 -0
- package/dist/esm/utils/is-iframe.js +1 -0
- package/dist/esm/utils/is-localhost.d.ts +3 -0
- package/dist/esm/utils/is-localhost.js +1 -0
- package/dist/esm/utils/is-mac.d.ts +3 -0
- package/dist/esm/utils/is-mac.js +1 -0
- package/dist/esm/utils/is-mobile.d.ts +3 -0
- package/dist/esm/utils/is-mobile.js +1 -0
- package/dist/esm/utils/is-scroll-ugly.d.ts +3 -0
- package/dist/esm/utils/is-scroll-ugly.js +3 -0
- package/dist/esm/utils/is-webview.d.ts +3 -0
- package/dist/esm/utils/is-webview.js +1 -0
- package/dist/esm/utils/loadCustomCss.d.ts +3 -0
- package/dist/esm/utils/loadCustomCss.js +1 -0
- package/dist/esm/utils/loadIcons.d.ts +3 -0
- package/dist/esm/utils/loadIcons.js +1 -0
- package/dist/esm/utils/loadImage.d.ts +2 -0
- package/dist/esm/utils/loadImage.js +1 -0
- package/dist/esm/utils/loadImagesInBatches.d.ts +7 -0
- package/dist/esm/utils/loadImagesInBatches.js +1 -0
- package/dist/esm/utils/localStorage.d.ts +2 -0
- package/dist/esm/utils/localStorage.js +1 -0
- package/dist/esm/utils/lz-utils.d.ts +8 -0
- package/dist/esm/utils/lz-utils.js +1 -0
- package/dist/esm/utils/mapEntity.d.ts +2 -0
- package/dist/esm/utils/mapEntity.js +1 -0
- package/dist/esm/utils/math.d.ts +7 -0
- package/dist/esm/utils/math.js +1 -0
- package/dist/esm/utils/mergeExhibitors.d.ts +3 -0
- package/dist/esm/utils/mergeExhibitors.js +1 -0
- package/dist/esm/utils/mobx.d.ts +6 -0
- package/dist/esm/utils/mobx.js +1 -0
- package/dist/esm/utils/preview-exhibitor.d.ts +4 -0
- package/dist/esm/utils/preview-exhibitor.js +1 -0
- package/dist/esm/utils/responsiveClass.d.ts +2 -0
- package/dist/esm/utils/responsiveClass.js +1 -0
- package/dist/esm/utils/rtl.d.ts +2 -0
- package/dist/esm/utils/rtl.js +1 -0
- package/dist/esm/utils/sanitizeHtml.d.ts +3 -0
- package/dist/esm/utils/sanitizeHtml.js +1 -0
- package/dist/esm/utils/sanitizeText.d.ts +9 -0
- package/dist/esm/utils/sanitizeText.js +1 -0
- package/dist/esm/utils/shortenName.d.ts +2 -0
- package/dist/esm/utils/shortenName.js +1 -0
- package/dist/esm/utils/silence-mobx-react-lite-warning.d.ts +1 -0
- package/dist/esm/utils/silence-mobx-react-lite-warning.js +1 -0
- package/dist/esm/utils/strEqual.d.ts +2 -0
- package/dist/esm/utils/strEqual.js +1 -0
- package/dist/esm/utils/urlEncoding.d.ts +7 -0
- package/dist/esm/utils/urlEncoding.js +1 -0
- package/dist/esm/utils/use-shadow.d.ts +3 -0
- package/dist/esm/utils/use-shadow.js +1 -0
- package/dist/esm/utils/useHeatmapData.d.ts +10 -0
- package/dist/esm/utils/useHeatmapData.js +1 -0
- package/dist/esm/utils/useHeatmapOverlay.d.ts +8 -0
- package/dist/esm/utils/useHeatmapOverlay.js +1 -0
- package/dist/esm/utils/useOnClickOutside.d.ts +3 -0
- package/dist/esm/utils/useOnClickOutside.js +1 -0
- package/dist/esm/utils/useRenderTarget.d.ts +2 -0
- package/dist/esm/utils/useRenderTarget.js +1 -0
- package/dist/esm/utils/useTimeout.d.ts +2 -0
- package/dist/esm/utils/useTimeout.js +1 -0
- package/dist/esm/utils/yah.d.ts +8 -0
- package/dist/esm/utils/yah.js +1 -0
- package/dist/esm/utils/yah_icon.d.ts +6 -0
- package/dist/esm/utils/yah_icon.js +1 -0
- package/dist/esm/wayfinding/_PLAN-public-api.d.ts +220 -0
- package/dist/esm/wayfinding/_PLAN-public-api.js +1 -0
- package/dist/esm/wayfinding/__integration__/legacy/legacyWayfinding.d.ts +27 -0
- package/dist/esm/wayfinding/__integration__/legacy/legacyWayfinding.js +1 -0
- package/dist/esm/wayfinding/__tests__/helpers.d.ts +21 -0
- package/dist/esm/wayfinding/__tests__/helpers.js +1 -0
- package/dist/esm/wayfinding/adapters/boothToWaypoint.d.ts +12 -0
- package/dist/esm/wayfinding/adapters/boothToWaypoint.js +1 -0
- package/dist/esm/wayfinding/adapters/graphDataSource.d.ts +3 -0
- package/dist/esm/wayfinding/adapters/graphDataSource.js +1 -0
- package/dist/esm/wayfinding/graph/buildGraph.d.ts +3 -0
- package/dist/esm/wayfinding/graph/buildGraph.js +1 -0
- package/dist/esm/wayfinding/graph/buildNGraph.d.ts +9 -0
- package/dist/esm/wayfinding/graph/buildNGraph.js +1 -0
- package/dist/esm/wayfinding/graph/constants.d.ts +3 -0
- package/dist/esm/wayfinding/graph/constants.js +1 -0
- package/dist/esm/wayfinding/graph/findShortestPath.d.ts +14 -0
- package/dist/esm/wayfinding/graph/findShortestPath.js +1 -0
- package/dist/esm/wayfinding/graph/graphCache.d.ts +6 -0
- package/dist/esm/wayfinding/graph/graphCache.js +1 -0
- package/dist/esm/wayfinding/graph/graphHelpers.d.ts +8 -0
- package/dist/esm/wayfinding/graph/graphHelpers.js +1 -0
- package/dist/esm/wayfinding/graph/linkCost.d.ts +4 -0
- package/dist/esm/wayfinding/graph/linkCost.js +1 -0
- package/dist/esm/wayfinding/graph/pathfinder/aStarPathFinder.d.ts +3 -0
- package/dist/esm/wayfinding/graph/pathfinder/aStarPathFinder.js +1 -0
- package/dist/esm/wayfinding/graph/pathfinder/parseNodeId.d.ts +9 -0
- package/dist/esm/wayfinding/graph/pathfinder/parseNodeId.js +1 -0
- package/dist/esm/wayfinding/index.d.ts +18 -0
- package/dist/esm/wayfinding/index.js +1 -0
- package/dist/esm/wayfinding/rendering/computeTransitionPoints.d.ts +31 -0
- package/dist/esm/wayfinding/rendering/computeTransitionPoints.js +1 -0
- package/dist/esm/wayfinding/rendering/normalizeRouteDirection.d.ts +19 -0
- package/dist/esm/wayfinding/rendering/normalizeRouteDirection.js +1 -0
- package/dist/esm/wayfinding/rendering/routeGeometry.d.ts +16 -0
- package/dist/esm/wayfinding/rendering/routeGeometry.js +1 -0
- package/dist/esm/wayfinding/routing/buildMultiPointRoute.d.ts +11 -0
- package/dist/esm/wayfinding/routing/buildMultiPointRoute.js +1 -0
- package/dist/esm/wayfinding/routing/buildRoute.d.ts +9 -0
- package/dist/esm/wayfinding/routing/buildRoute.js +1 -0
- package/dist/esm/wayfinding/routing/findNearestGraphPoint.d.ts +21 -0
- package/dist/esm/wayfinding/routing/findNearestGraphPoint.js +1 -0
- package/dist/esm/wayfinding/routing/getGraphLines.d.ts +14 -0
- package/dist/esm/wayfinding/routing/getGraphLines.js +1 -0
- package/dist/esm/wayfinding/routing/getRouteLength.d.ts +3 -0
- package/dist/esm/wayfinding/routing/getRouteLength.js +1 -0
- package/dist/esm/wayfinding/routing/routeResult.d.ts +4 -0
- package/dist/esm/wayfinding/routing/routeResult.js +1 -0
- package/dist/esm/wayfinding/types.d.ts +76 -0
- package/dist/esm/wayfinding/types.js +1 -0
- package/package.json +107 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Booth, SpecialBooth } from "../../../../store/BoothStore";
|
|
2
|
+
import { BoothLabelDrawer } from "./config-booth-labels";
|
|
3
|
+
import { RendererService } from "../../../../renderer";
|
|
4
|
+
import { FontSizeFactor } from "../../../../renderer";
|
|
5
|
+
import { ImageDef, TextDef } from "@expofp/renderer";
|
|
6
|
+
export default function configBoothLabelsSpecial(rendererService: RendererService, booth: Booth): BoothLabelSpecialDrawer | undefined;
|
|
7
|
+
declare class BoothLabelSpecialDrawer extends BoothLabelDrawer {
|
|
8
|
+
protected steps: FontSizeFactor[];
|
|
9
|
+
protected labelIsVertical: boolean;
|
|
10
|
+
protected text: string;
|
|
11
|
+
constructor(rendererService: RendererService, booth: SpecialBooth);
|
|
12
|
+
getShape(): (ImageDef | TextDef)[];
|
|
13
|
+
setFactors(text: string): void;
|
|
14
|
+
setText(): void;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=config-booth-labels-special.d.ts.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{SpecialBooth as R}from"../../../../store/BoothStore";import x from"../../../../tools/settings";import{heatmapStore as L,uiState as l,boothStore as D,layersStore as v}from"../../../../store";import F from"./TextFitter";import{Rect as d}from"./Rect";import{getFont as y}from"./canvases";import{BoothLabelDrawer as T,getFontUrlByWeight as P,getMinZoomFactorForDot as w,isDirectionsMode as z}from"./config-booth-labels";import{reaction as u}from"mobx";import{createTextDef as k,updateTextDefRotation as C,getRotation as I,shouldFlip as M,updateRectRotation as B,getRollValue as W}from"../../../../renderer";import{FONT_WEIGHT_PRIMARY_BOOTH as V,FONT_WEIGHT_PRIMARY_SPECIAL as _}from"../../../../constants";const p=new Map;function $(i){let t=p.get(i);if(!t){const s=[18,16,14,12,10,7].map(n=>n*i),o=14*i;t=new F(y,s,o),p.set(i,t),setTimeout(()=>p.delete(i),5e3)}return t}export default function H(i,t){if(!(!(t instanceof R)||t.noLabels))return new N(i,t)}class N extends T{steps;labelIsVertical;text;constructor(t,s){super(t,s);const o=s.borderWidth/2||D.borderWidth/2,n=this.booth.rect,S=Number(getComputedStyle(document.body).getPropertyValue(_))||Number(getComputedStyle(document.body).getPropertyValue(V))||500,g=P(S,this.rendererService.fontUrls),m=n.withPadding(n.w*.05+o,n.h*.05+o);this.setText(),this.canvasRect=d.fromCoreRect(m,s.rotate),this.setFactors(this.text),this.labelIsVertical=Math.abs(Math.abs(s.rotate)-Math.PI/2)<.01,this.fontSizes=[this.steps,[]],this.minZoomDotVisible=w(this.steps.map(e=>e.scaleFactor)),this.shapeLabel=k([{text:this.text,color:s.labelColor||x.boothLabelColor,fontUrl:g,fontSize:0}],d.fromCoreRect(m,s.rotate),[o,o],{horizontal:"center",text:"center",vertical:"center"}),this.getShapeDot(),u(()=>[this.booth.skipDim,l.selectedRoute,v.layersLoaded],()=>{const e=z();this.shapeLabel.dim=e||this.booth.skipDim?!1:void 0,this.shapeDot.dim=e||this.booth.skipDim?!1:void 0,this.rendererService.update(this.shapeLabel,this.shapeDot)});const f=e=>{let a=this.steps.find(r=>r.scaleFactor<1/e);return a?(this.shapeLabel.lines[0].fontSize=a.value/devicePixelRatio*e,this.shapeLabel.lines[0].text=a.lines.join(`
|
|
2
|
+
`),this.shapeLabel.padding=[this.paddingScaled[0]*e+this.padding,this.paddingScaled[1]*e+this.padding],this.shapeLabel):(this.shapeLabel.lines[0].fontSize=0,this.shapeLabel)},b=e=>{let a=this.steps.find(c=>c.scaleFactor<1/e);const r=this.shapeDot.source.width*e,h=this.shapeDot.source.height*e;return this.shapeDot.bounds=new d({x:this.canvasRect.center.x-r/2,y:this.canvasRect.center.y-h/2},{x:this.canvasRect.center.x+r/2,y:this.canvasRect.center.y+h/2}),this.shapeDot.hidden=!!a,this.shapeDot};this.rendererService.onPtScale(`booth-special-label-${s.id}`,f),this.rendererService.onPtScale(`booth-special-dot-${s.id}`,b),u(()=>l.mapSettings,({roll:e})=>{W(e)&&this.rendererService.onRoll(`booth-special-roll-${s.id}`,a=>{const r=this.shapeLabel.bounds.rotation;if(this.labelIsVertical)M(a,r)&&(this.shapeLabel.bounds.rotation=-r);else{const h=I(a,r);if(h!==void 0){const{size:c}=this.canvasRect;this.shapeLabel=C(this.shapeLabel,h),c.x!==c.y&&!this.shapeLabel.hidden&&(this.canvasRect=B(this.canvasRect,h),this.setFactors(this.text),f(this.rendererService.scale),b(this.rendererService.scale))}}return[this.shapeLabel,this.shapeDot]})})}getShape(){return[this.shapeLabel,this.shapeDot]}setFactors(t){this.steps=$(devicePixelRatio).getStepsForRect(t,this.canvasRect.size.x,this.canvasRect.size.y)}setText(){const t=this.booth.title||this.booth.name,o=`Clicks: ${L.getTotalClicksByBooth(this.booth)}`;this.text=l.heatmap?`${t} - ${o}`:t}}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Booth } from "../../../../store/BoothStore";
|
|
2
|
+
import { ImageDef, Rect as RectShape, TextAlignment, TextDef } from "@expofp/renderer";
|
|
3
|
+
import { BoothDrawerBaseWithoutPainter } from "./BoothDrawerBase";
|
|
4
|
+
import { Exhibitor } from "../../../../store/ExhibitorStore";
|
|
5
|
+
import { RendererService } from "../../../../renderer";
|
|
6
|
+
import { FontSizeFactor, CustomFonts } from "../../../../renderer";
|
|
7
|
+
type Prefix = {
|
|
8
|
+
fontSize: number;
|
|
9
|
+
name: string;
|
|
10
|
+
short?: boolean;
|
|
11
|
+
};
|
|
12
|
+
export default function configBoothLabels(rendererService: RendererService, booth: Booth): BoothLabelDrawer | undefined;
|
|
13
|
+
export declare function getMinZoomFactorForDot(scaleFactors: number[]): number;
|
|
14
|
+
export declare const isDirectionsMode: () => boolean;
|
|
15
|
+
export declare function getFontUrlByWeight(weight: number, customFonts?: CustomFonts[], style?: string): string;
|
|
16
|
+
export declare class BoothLabelDrawer extends BoothDrawerBaseWithoutPainter {
|
|
17
|
+
protected readonly rendererService: RendererService;
|
|
18
|
+
protected canvasRect: RectShape;
|
|
19
|
+
protected paddingScaled: [number, number];
|
|
20
|
+
protected padding: number;
|
|
21
|
+
protected minZoomDotVisible: number;
|
|
22
|
+
protected maxZoomDotVisible: number;
|
|
23
|
+
protected exh: Exhibitor[];
|
|
24
|
+
protected shapeLabel: TextDef;
|
|
25
|
+
protected shapeDot: ImageDef;
|
|
26
|
+
protected fontSizes: [FontSizeFactor[], FontSizeFactor[]];
|
|
27
|
+
protected lines: [string[], string[]];
|
|
28
|
+
protected topLeftAlignment: TextAlignment;
|
|
29
|
+
protected centerAlignment: TextAlignment;
|
|
30
|
+
protected prefixes: Prefix[];
|
|
31
|
+
protected fontUrls: [string, string];
|
|
32
|
+
constructor(rendererService: RendererService, booth: Booth);
|
|
33
|
+
getShape(): (ImageDef | TextDef)[];
|
|
34
|
+
getShapeDot(): void;
|
|
35
|
+
private createLines;
|
|
36
|
+
private calculateFontSizeFactors;
|
|
37
|
+
private calcArea;
|
|
38
|
+
private optimizationLevel;
|
|
39
|
+
private measureText;
|
|
40
|
+
}
|
|
41
|
+
export {};
|
|
42
|
+
//# sourceMappingURL=config-booth-labels.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{layersStore as O,uiState as p}from"../../../../store";import{RegularBooth as H,SpecialBooth as I}from"../../../../store/BoothStore";import x from"../../../../tools/settings";import V from"../../../../utils/is-mobile";import U from"../../../../utils/is-webview";import{Rect as E}from"./Rect";import u from"../../../../data";import{BoothDrawerBaseWithoutPainter as Z}from"./BoothDrawerBase";import{getFont as M}from"./canvases";import{isArabicText as X}from"../../../../utils/rtl";import{t as L}from"../../../../utils/i18n";import{reaction as B}from"mobx";import{createTextDef as G,createTextDefLines as Y,updateLinesScale as $,updateTextDefRotation as k,getRotation as q,createShapeDot as j,DEFAULT_FONT_LIGHT_URL as J,DEFAULT_FONT_URL as _,getRollValue as K,updateRectRotation as Q}from"../../../../renderer";import{FONT_WEIGHT_PRIMARY_BOOTH as ee,FONT_WEIGHT_PRIMARY_EXHIBITOR as te,FONT_WEIGHT_SECONDARY_BOOTH as ie,FONT_WEIGHT_SECONDARY_EXHIBITOR as se}from"../../../../constants";let v=x.boothLabelColor;x.EXPO==="tqs2021"&&(v="#000");const b=V||U,D=h=>h.replace(" ","").substring(0,4).replace(/[0-9]/g,"3").replace(/[A-Z]/gi,"A"),P=document.createElement("canvas").getContext("2d");export default function oe(h,e){if(!(!(e instanceof H)||e.noLabels))return new BoothLabelDrawer(h,e)}export function getMinZoomFactorForDot(h){return Array.isArray(h)&&h.length>0?Math.max(...h.map(e=>e)):typeof h=="number"?h:-0}export const isDirectionsMode=()=>!!(p.selectedRoute?.from&&p.selectedRoute?.to);export function getFontUrlByWeight(h,e=[],t="normal"){return[...e,{weight:500,url:_,style:"normal"},{weight:300,url:J,style:"normal"}].find(i=>+i.weight===h&&i.style===t)?.url||_}const z="Details";export class BoothLabelDrawer extends Z{rendererService;canvasRect;paddingScaled;padding;minZoomDotVisible;maxZoomDotVisible;exh;shapeLabel;shapeDot;fontSizes;lines;topLeftAlignment;centerAlignment;prefixes;fontUrls;constructor(e,t){if(super(t),this.rendererService=e,this.canvasRect=E.fromCoreRect(t.rect,t.rotate),this.paddingScaled=[4,4],this.padding=(t.borderWidth||x.boothBorderWidth)/2,this.topLeftAlignment={horizontal:p.rtl?"right":"left",vertical:"top"},this.centerAlignment={horizontal:"center",vertical:"center"},this.prefixes=b?[{fontSize:7,name:"XS",short:!0},{fontSize:10,name:"S",short:!0},{fontSize:16,name:z,short:!1}]:[{fontSize:7,name:"XS",short:!0},{fontSize:10,name:"S",short:!0},{fontSize:12,name:"M",short:!0},{fontSize:14,name:"L",short:!0},{fontSize:18,name:z,short:!1}],t instanceof I)return;this.exh=u.hideExhibitors?[]:u.onlyFeaturedExhibitors?t.exhibitors.filter(i=>i.featured):t.exhibitors,b&&this.optimizationLevel()>=3&&(this.prefixes=this.prefixes.filter(i=>i.name!=="S")),this.createLines(),this.calculateFontSizeFactors(),this.shapeLabel=G(Y(this.lines,this.booth.labelColor||v,0,this.fontUrls),E.fromCoreRect(this.booth.rect,this.booth.rotate),[...this.paddingScaled],{horizontal:"left",vertical:"top"}),this.getShapeDot();const r=i=>{const o=this.lines[1]??[],s=this.fontSizes[1]??[];if(x.EXPO!=="wineparis2026"){const m=this.exh.length?this.topLeftAlignment:o.length?i<s[s.length-1].scaleFactor?this.topLeftAlignment:this.centerAlignment:this.topLeftAlignment;this.shapeLabel.alignment=m}if(!$(this.shapeLabel.lines,i,this.fontSizes,this.booth.name))return;const l=this.paddingScaled[0]*i+this.padding,d=this.paddingScaled[1]*i+this.padding;return this.shapeLabel.padding[0]=l,this.shapeLabel.padding[1]=d,this.shapeLabel},a=i=>{const o=i>=this.minZoomDotVisible&&i<=this.maxZoomDotVisible,s=this.shapeDot.source.width*i,n=this.shapeDot.source.height*i;if(!(!o&&this.shapeDot.hidden))return this.shapeDot.bounds.size={x:s,y:n},this.shapeDot.hidden=!o,this.shapeDot};B(()=>[this.booth.skipDim,p.selectedRoute,O.layersLoaded],()=>{if(!O.layersLoaded)return;const i=isDirectionsMode();this.shapeLabel.dim=i||this.booth.skipDim?!1:void 0,this.shapeDot.dim=i||this.booth.skipDim?!1:void 0,this.rendererService.update(this.shapeLabel,this.shapeDot)}),B(()=>p.mapSettings,({roll:i})=>{K(i)&&this.rendererService.onRoll(`booth-roll-${t.id}`,o=>{const s=q(o,this.shapeLabel.bounds.rotation),{size:n}=this.canvasRect;return s!==void 0&&(this.shapeLabel=k(this.shapeLabel,s),!this.shapeLabel.hidden&&!this.exh.length&&n.x!==n.y&&(this.canvasRect=Q(this.canvasRect,s),this.calculateFontSizeFactors(),r(this.rendererService.scale),a(this.rendererService.scale))),[this.shapeLabel,this.shapeDot]})}),this.rendererService.onPtScale(`booth-label-${t.id}`,r),this.rendererService.onPtScale(`booth-dot-${t.id}`,a)}getShape(){return[this.shapeLabel,this.shapeDot]}getShapeDot(){this.shapeDot=j(this.canvasRect,this.booth.labelColor||v),this.shapeDot.hidden=!0,this.maxZoomDotVisible=Math.min(this.canvasRect.size.x/this.shapeDot.source.width,this.canvasRect.size.y/this.shapeDot.source.height)}createLines(){const e=this.booth,t=[],r=[],a=b&&this.optimizationLevel()>=3?1:3;if(this.exh.length){const i=e.exhibitors.filter(s=>s.order===0),o=e.exhibitors.filter(s=>s.order);if(i.length>0)t.push(...i.map(s=>s.name));else if(u.onlyFeaturedExhibitors)t.push(...e.exhibitors.filter(s=>s.featured).map(s=>s.name));else if(o.length>0){t.push(...o.map(n=>n.name));const s=e.exhibitors.filter(n=>n.order===void 0);s.length>0&&t.push(L("and {{moreCount}} more",{moreCount:s.length}))}else e.exhibitors.length>a?t.push(`${e.exhibitors.length} ${u.exhibitorTermPlural}`):t.push(...e.exhibitors.map(s=>s.name));r.push(e.title||e.name)}else{const i=!!e.exhibitors.length;t.push(e.title||e.name),e.onHold?r.push(L("On Hold")):e.reserved?r.push(L("Reserved")):i||r.push(...e.exhibitors.map(o=>o.name).sort((o,s)=>o>s?1:-1)),e.size&&r.push(e.size.indexOf("/")>-1?e.size.substring(0,e.size.indexOf("/")).trim():e.size),e.price&&e.price!=="0"&&!p.previewMode&&r.push(e.price)}p.rtl&&t.forEach((i,o)=>{(i.endsWith(".")||i.endsWith("!")||i.endsWith("?"))&&(t[o]=t[o]+"\u200F"),X(i)&&(t[o]=t[o]+" ")}),this.lines=[t,r]}calculateFontSizeFactors(){let[e,t]=this.lines;const r=this.canvasRect,a=[],i=[],o=this.prefixes.slice(0,this.exh.length?this.prefixes.length:this.prefixes.length-1);let s=500,n=300;this.exh.length?(s=Number(getComputedStyle(document.body).getPropertyValue(te))||s,n=Number(getComputedStyle(document.body).getPropertyValue(se))||n):(s=Number(getComputedStyle(document.body).getPropertyValue(ee))||s,n=Number(getComputedStyle(document.body).getPropertyValue(ie))||n);for(const{fontSize:l,short:d}of o){const m=l*devicePixelRatio,R=.9*l*devicePixelRatio,f=M(m,s),y=M(R,n),F=u.hideExhibitorBoothNumber||d;let T,A,S,g;if(this.exh.length)d?t=[]:t=this.lines[1],S=Math.max(...e.map(c=>this.measureText(c,f).width),...t.map(c=>this.measureText(c,y).width)),T=Math.max(...e.map(c=>this.exh.length?this.measureText(D(c),f).width:this.measureText(D(c),f).width+3+3),...t.map(c=>this.measureText(D(c),y).width)),g=m*e.length+R*t.length+devicePixelRatio*(e.length+t.length)+3,A=F?g/e.length:null;else{const c=e[0].replace(/[0-9]/g,"3").replace(/[A-Z]/g,"A"),N=4;S=this.measureText(c,f).width+3+3,g=m+N}const W=r.size.x/(T||S),C=r.size.y/(A||g),w=Math.min(W,C);a.push({scaleFactor:w,value:l}),!F&&i.push({scaleFactor:w,value:.9*l})}if(!this.exh.length){const l=a[a.length-1],d=this.prefixes.find(m=>m.name===z);a.push({scaleFactor:l.scaleFactor/1.8,value:d.fontSize}),i.push({scaleFactor:l.scaleFactor/1.8,value:d.fontSize*(b?1:.9)})}this.fontUrls=[getFontUrlByWeight(s,this.rendererService.fontUrls),getFontUrlByWeight(n,this.rendererService.fontUrls)],this.minZoomDotVisible=getMinZoomFactorForDot(a.map(l=>l.scaleFactor)),this.fontSizes=[a,i]}calcArea(e,t){return Math.floor(Math.max(0,e)*Math.max(0,t)/1e3)}optimizationLevel(){return Math.min(u.viewOptimizationLevel?u.viewOptimizationLevel:Math.floor(this.calcArea(this.canvasRect.size.x,this.canvasRect.size.y)/5e3),3)}measureText(e,t){return P.font=t,P.measureText(e)}}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Booth } from "../../../../store/BoothStore";
|
|
2
|
+
import { BoothDrawerBaseWithoutPainter } from "./BoothDrawerBase";
|
|
3
|
+
import { PathInfo } from "../../../../data/Data";
|
|
4
|
+
import { RendererService } from "../../../../renderer";
|
|
5
|
+
import { ImageDef, ImageSource } from "@expofp/renderer";
|
|
6
|
+
export declare function canvasFromPath(paths: PathInfo[], scale: number | undefined, suffix: string): ImageSource;
|
|
7
|
+
export default function configScaledBooth(rendererService: RendererService, booth: Booth): ScaledBoothDrawer;
|
|
8
|
+
declare class ScaledBoothDrawer extends BoothDrawerBaseWithoutPainter {
|
|
9
|
+
protected shape: ImageDef;
|
|
10
|
+
constructor(rendererService: RendererService, booth: Booth);
|
|
11
|
+
getShape(): ImageDef[];
|
|
12
|
+
}
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=config-booth-scaled.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import d,{layersStore as f}from"../../../../store";import{LayersMode as h}from"../../../../store/LayerStore";import{BoothDrawerBaseWithoutPainter as u}from"./BoothDrawerBase";import{getTrianglesFromFpPaths as g}from"../../../../data/svg";import{reaction as p}from"mobx";import{Rect as E}from"./Rect";import{createImageDef as y}from"../../../../renderer";const l=document.createElement("canvas"),a=l.getContext("2d");export function canvasFromPath(m,s=.5,t){var e=[Number.MAX_VALUE,Number.MAX_VALUE,Number.MIN_VALUE,Number.MIN_VALUE];m.forEach(c=>{c.triangles=g(c.index,t),c.triangles.forEach(r=>{r.forEach(o=>{o[0]<e[0]?e[0]=o[0]:o[0]>e[2]&&(e[2]=o[0]),o[1]<e[1]?e[1]=o[1]:o[1]>e[3]&&(e[3]=o[1])})})});const n=e[0],i=e[1];return a.scale(s,s),m.forEach(c=>{a.beginPath(),a.fillStyle=c.color,c.triangles.forEach(r=>{a.moveTo(r[0][0]-n,r[0][1]-i),a.lineTo(r[1][0]-n,r[1][1]-i),a.lineTo(r[2][0]-n,r[2][1]-i),a.lineTo(r[0][0]-n,r[0][1]-i)}),a.fill()}),l}export default function x(m,s){return new L(m,s)}class L extends u{shape;constructor(s,t){super(t);const e=E.fromCoreRect(t.rect,t.rotate),n=canvasFromPath(t.paths,.5,d.layerStore.mode!==h.Default?t.layer.name:"");this.shape=y(n,e,{hidden:!0,dim:!0}),p(()=>[this.booth.skipDim,f.layersLoaded],()=>{f.layersLoaded&&(this.shape.dim=this.booth.skipDim?!1:void 0,s.update(this.shape))})}getShape(){return[this.shape]}}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { Booth } from "../../../../store/BoothStore";
|
|
2
|
+
import { LayerDef } from "@expofp/renderer";
|
|
3
|
+
import { RendererService } from "../../../../renderer";
|
|
4
|
+
export declare const BOOTHS_CHUNK_SIZE = 350;
|
|
5
|
+
export default function configBooths(rendererService: RendererService, layerID: string, booths: Booth[]): LayerDef;
|
|
6
|
+
//# sourceMappingURL=config-booths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import U from"./config-booth-bg";import{Rect as g}from"./Rect";import W from"./config-booth-labels";import{SEPARATOR as s}from"../../../../constants";import F from"./config-booth-labels-special";import K from"./config-booth-border";import P from"./config-booth-bookmark";import Z from"../../../../tools/settings";import R,{boothStore as j,uiState as q}from"../../../../store";import z from"./config-booth-scaled";import{toRadians as G}from"../../../../utils/math";import{loadImagesInBatchesById as J}from"../../../../utils/loadImagesInBatches";import{createBoothImg as M,getImageLayerName as Q,mapBoothsLogos as V}from"./loadBoothsImages";import{createImageDef as X}from"../../../../renderer";export const BOOTHS_CHUNK_SIZE=350;export default function Y(a,d,D){return(l=>{const t=d,b=[],m=[],f=[],B=[],u=[],y=Q(t),L={name:y,children:[]};for(const o of l){const i=U(a,o)?.getShape();i&&b.push(...i);const n=W(a,o)?.getShape();n&&m.push(...n);const c=F(a,o)?.getShape();if(c&&f.push(...c),!Z.borderless){const e=K(a,o)?.getShape();e&&B.push(e)}const h=P(a,o)?.getShape();h&&u.push(h)}const x=m.filter(o=>o.lines),_=f.filter(o=>o.lines),w=m.filter(o=>o.source),N=f.filter(o=>o.source);if(!q.hideLogoInBooth){const o=V(l);a.onLayerImages(y,async()=>{const i=await J(o,BOOTHS_CHUNK_SIZE),n=[];for(const[c,h]of i){const e=R.boothStore.boothById.get(c);if(!e)continue;const{bounds:{x:I,y:S,height:O,angle:A,width:C},htmlImage:E}=M(e,h),k=X(E,new g({x:I,y:S},{x:I+C,y:S+O},G(A))),H=g.fromCoreRect(e.rect,e.rotate),T=g.inflateRect(H,e.borderWidth||j.borderWidth);e.shapes.push(k),n.push({shape:k,parentRect:T})}return{layer:L,children:n}})}let p=[];l.length&&(p=[{name:`${t}${s}boothBackground`,children:b,interactive:!0},{name:`${t}${s}labels`,children:x},{name:`${t}${s}specialLabels`,children:_},{name:`${t}${s}bots`,children:w},{name:`${t}${s}specialDots`,children:N},L,{name:`${t}${s}boothsBookmark`,children:u},{name:`${t}${s}boothBorder`,children:B}]);const{defaultFrom:r}=R.routeStore,$=(d+":").split(":")[0];if(r?.layer===null||r?.layer?.name===$||r?.layer?.childLayers.find(o=>o.name===$)){const o=z(a,r);o&&p.push({name:`${t}${s}yahBooth`,children:o.getShape()})}return{name:t,children:p}})(D)}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Layer } from "../../../../store/LayerStore";
|
|
2
|
+
import { LayerDef } from "@expofp/renderer";
|
|
3
|
+
import { RendererService } from "../../../../renderer";
|
|
4
|
+
export default function loadLayer(layer: Layer, rendererService: RendererService): Promise<LayerDef>;
|
|
5
|
+
//# sourceMappingURL=config-load-layer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import c,{boothStore as O}from"../../../../store";import x from"../../../../store/init/init-booths";import{LayersMode as T}from"../../../../store/LayerStore";import{loadJs as D}from"../../../../tools/loaders";import H,{BOOTHS_CHUNK_SIZE as k}from"./config-booths";import{chunkArray as G}from"../../../../utils";import{BOOTHS_PAINTER_MARKER as K,SEPARATOR as m}from"../../../../constants";import{Rect as U}from"@expofp/renderer";import Y,{BG_LAYER_NAME as b,FG_LAYER_NAME as P}from"./config-bg";import{getChildLayers as j}from"../../../../store/init/init-layers";import{createImageDef as v,createLayerDef as F}from"../../../../renderer";import{getImageLayerName as J,getLayerIcons as Z}from"./loadBoothsImages";import{loadIcons as q}from"../../../../utils/imageloader";import{toRadians as z}from"../../../../utils/math";function Q(e){return e.childLayers.length?e.childLayers:j(e,e.basePriority,15).layers}function _(e,t,h){return new Promise(async f=>{let r=[];const s=x(c,t),a=await Y(t),i=[],d=G(s,k),l=O.booths.filter(o=>o.rect&&(!o.layer||o.layer===t||o.layer.childLayers.includes(t))&&o.exhibitors.find(n=>!!n.logoInBooth&&!!n.logo)&&!c.uiState.hideLogoInBooth),B=new Map(l.map(o=>[o.id,o.noLabels]));l.forEach(o=>o.noLabels=!0),s.length&&d.forEach((o,n)=>{i.push(H(e,`${t.name}${m}${K}${m}${n}`,o))}),l.forEach(o=>{o.noLabels=B.get(o.id)}),t.loaded=!0;const u=a.children.find(o=>o.name===b),y=a.children.find(o=>o.name===P),p=J(t.name),g=Z(t),L={name:p,children:[]};g.length&&e.onLayerImages(p,async()=>{const o=await q(g),n=[];for(const I of o.filter(Boolean)){const{bounds:{x:$,y:w,height:A,angle:R,width:S},htmlImage:N}=I,C=new U({x:$,y:w},{x:$+S,y:w+A},z(R)),M=v(N,C);n.push({shape:M})}return{layer:L,children:n}}),u&&r.push({...u,name:`${a.name}${m}${b}`}),i.length&&r.push(...i),y&&r.push({...y,name:`${a.name}${m}${P}`}),g.length&&r.push(L);const E=t.childLayers.sort((o,n)=>o.basePriority-n.basePriority).map(async o=>_(e,o,!0));Promise.all(E).then(o=>{const n=o.flat();n.length&&r.push(...n),t.children=r,t.configured=!0,f(F(t.name,r,{hidden:!h}))})})}export default async function V(e,t){return e.configured?Promise.resolve({name:e.name,children:e.children}):new Promise(async(h,f)=>{if(c.layerStore.mode!==T.Default&&!window[`__fpPaths${e.name}`]&&!e.rootParent)try{await D(`${window.__dataUrlBase}fp.svg.${e.name}.js`)}catch{return f()}const r=Q(e);r.length&&(e.childLayers=r);const{layers:s}=c.layerStore;c.layerStore.layers=[...s,...r.filter(i=>!s.some(d=>d.name===i.name))];const a=await _(t,e,e.visible);h(a)})}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { RendererService } from "../../../../renderer";
|
|
2
|
+
export declare const MARKER_LAYER_NAME = "markers";
|
|
3
|
+
export declare function configMarkers(rendererService: RendererService): () => void;
|
|
4
|
+
export declare function getMarkerFromClick(x: number, y: number, scale: number): import("../../../../store/RouteStore").Marker | null;
|
|
5
|
+
//# sourceMappingURL=config-markers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import u,{layersStore as S}from"../../../../store";import{reaction as v}from"mobx";import{createImageCanvas as x}from"./canvases";import{createImageDef as C,getBounds as E}from"../../../../renderer";import{toRadians as K}from"../../../../utils/math";const L="_selected";export const MARKER_LAYER_NAME="markers";export function configMarkers(s){const h=[],l=new Map,a=new Map;let n=[];const f=s.scene.rootLayer.children.find(t=>t.name===MARKER_LAYER_NAME);async function k(t){const o=[];t.forEach(r=>{const{name:e,content:i,width:c,height:g,scale:y}=r;if(l.has(e))return;const m=new Image,D=new Promise((w,M)=>{m.onload=()=>{l.set(e,{img:m,width:c,height:g,scale:y}),w()},m.onerror=b=>{M(b)}});o.push(D),m.src=i,m.crossOrigin="anonymous"}),await Promise.all(o)}const d=t=>`marker-ptScaleHandlers-${t.id}`,I=t=>`marker-rollHandlers-${t.id}`,P=(t,o)=>{s.onPtScale(o,r=>{const{center:e,rotation:i}=t.bounds,{width:c,height:g}=t.source;return t.bounds=E(e.x,e.y,c,g,r,i),t})},H=(t,o)=>{s.onRoll(o,r=>(t.bounds.rotation=r,t))};function $(){const t=u.routeStore.markersData.markers;if(!t.length)return;n=[];const o=s.scale,r=K(s.angle);t.forEach(e=>{const i=l.get(e.icon);if(!i)return;const c=i.scale||window.devicePixelRatio,g=e.icon;if(!a.has(g)){const R=x(i.img,i.width,i.height,c);a.set(g,R)}const y=a.get(g),m=l.get(e.selectedIcon),D=e.selectedIcon;if(!a.has(D)){const R=x(m.img,m.width,m.height,c);a.set(D,R)}const w=a.get(D),M=S.findLayer(e.z)?.visible??!0,b=E(e.x,e.y,y.width,y.height,o,r),_=E(e.x,e.y,w.width,w.height,o,r);let p;switch(e.position){case"lefttop":p=[0,0];break;case"centertop":p=[.5,0];break;case"centerbottom":p=[.5,1];break;default:p=[.5,.5]}const z={...C(y,b,{hidden:!M,origin:p}),id:e.id,scale:c},A={...C(w,_,{hidden:!(M&&e.active),origin:p}),id:`${e.id}${L}`,scale:c};n.push(z,A)}),f.children=n,n.forEach(e=>{P(e,d(e)),H(e,I(e))})}function B(){n.forEach(t=>{s.ptScaleRegistry.unregisterByName(d(t)),s.rollRegistry.unregisterByName(I(t))}),f.children=[],n=[]}function N(){const t=u.routeStore.markersData.markers;t.length&&t.forEach(o=>{const r=n.find(c=>c.id===o.id),e=n.find(c=>c.id===`${o.id}${L}`);if(!r)return;const i=S.findLayer(o.z)?.visible??!0;o.active?(r.hidden=!0,e.hidden=!(i&&o.active)):(r.hidden=!i,e.hidden=!0)})}return h.push(v(()=>[u.routeStore.selectedMarkers,u.layerStore.visible],()=>{if(!u.routeStore.markersData.markers.length){B(),s.update(f);return}N(),s.update(...n)})),h.push(v(()=>u.routeStore.markersData.markers,()=>{k(u.routeStore.markersData.icons).then(()=>{$(),s.update(f)})},{fireImmediately:!0})),function(){h.forEach(o=>o()),h.length=0}}export function getMarkerFromClick(s,h,l){for(const a of u.routeStore.markersData.markers){const n=u.routeStore.markersData.icons.find(d=>d.name===a.icon);if(!n)continue;const f=n.width*l*devicePixelRatio,k=n.height*l*devicePixelRatio;if(F(s,h,a.x,a.y,f,k)){const d=u.layerStore.findLayer(a.z);if(!d||d&&d.visible)return a}}return null}function F(s,h,l,a,n,f){const k=s>=l-n&&s<=l+n,d=h>=a-f&&h<=a+f;return k&&d}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RendererService } from "../../../../renderer";
|
|
2
|
+
export declare const WF_TRAIL_LAYER_NAME = "wf-trail-points";
|
|
3
|
+
export declare const WF_POINTS_LAYER_NAME = "wf-points";
|
|
4
|
+
export declare const WF_CURRENT_POSITION_NAME = "wf-current-position";
|
|
5
|
+
export declare const WF_LINES_LAYER_NAME = "wf-lines";
|
|
6
|
+
export declare const WF_LINES_ANIMATED_LAYER_NAME = "wf-lines-animated";
|
|
7
|
+
export default function configWf(rendererService: RendererService): () => void;
|
|
8
|
+
//# sourceMappingURL=config-wf.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import ne from"color";import{observable as he,reaction as q}from"mobx";import{lineLength as Se}from"simple-geometry";import We from"../../../../core/Rect";import o,{layersStore as Ae,uiState as c}from"../../../../store";import{LayersMode as _e}from"../../../../store/LayerStore";import{boothToWaypoint as me,getGraphLines as Ye,graphDataSource as Ue,computeTransitionPoints as Ge,normalizeRouteDirection as qe,bezierCurve as Ke,splitPolyLine as Ve}from"../../../../wayfinding";import{decreaseByPercentage as oe}from"../../../../utils/math";import{strEqual as ie}from"../../../../utils/strEqual";import{createArrowCurrentCanvas as De,createCurrentCanvas as re,createImageCanvas as k,createTargetCanvas as Xe,createYahCanvas as je}from"./canvases";import{toRadians as Ie}from"../../../../utils/math";import{areLayersEnabled as ve}from"../../../../utils/areLayersEnabled";import{createImageDef as H,createLineDef as ye,createCircleCanvas as Je,getBounds as R,getRotation as Qe}from"../../../../renderer";import{animateLineSegments as Ze}from"../../../../renderer/engine-core/animation";import{splitRouteByPoint as et,snapPositionToRoute as tt,getThresholdSafe as nt,getThresholdFromMetersToSvg as ot,SNAP_THRESHOLD_METERS as it}from"./route-snapping";import{fpGeo as Ne}from"../../../../data/fpGeo";import{getRouteLength as pe}from"../../../../wayfinding";import{pickDefaultScene as Fe}from"../../../../renderer/engine-core/defs";const L=devicePixelRatio;let I=[],X=null,T=[],Q=ne("#00A2FF"),rt=ne("#FF9F06"),ke="#A4CCE2",at="#0794EA";const W=34;let z,B,M,$,Y,ge,Re,Le,xe,Z,C,E,N,F,O,we=[];function st(){I=[];const t=o.routeStore.currentRouteLayer?.name;X=ct();const r=X&&(ve()?ie(t,X.destination?.layer):!0);if(X){const l=X?.routePoint;l&&ie(t,l.layer)&&(I=dt(l,I))}let a=[],f=[];for(let l=0;l<T.length;l++){let _=T[l],x=o.layerStore.mode==_e.Default?!0:o.layerStore.layers.find(m=>m.name==t&&t===_.p0.layer)?.visible||!1;!_.virtual&&x&&a.push(_),(_.virtual||!x||l===T.length-1)&&a.length&&(f=a.map(({p0:m,p1:w})=>(I.push({x:m.x,y:m.y},{x:w.x,y:w.y}),{p0:m,p1:w})))}I.length||(E.hidden=!0,C.hidden=!0);let y=1e6,s=1e6,p=0,u=0;I.forEach(l=>{l.x<y&&(y=l.x),l.y<s&&(s=l.y),l.x>p&&(p=l.x),l.y>u&&(u=l.y)});const d=We.fromX1y1x2y2(y,s,p,u);return{rect:I.length&&(d.w||d.h)?d.withPadding(d.w,d.h):null,lines:f,addTrailPoints:r}}export const WF_TRAIL_LAYER_NAME="wf-trail-points",WF_POINTS_LAYER_NAME="wf-points",WF_CURRENT_POSITION_NAME="wf-current-position",WF_LINES_LAYER_NAME="wf-lines",WF_LINES_ANIMATED_LAYER_NAME="wf-lines-animated";export default function ut(t){let r=null;const a=[];let f=null,y=he.box([]),s=he.box([],{deep:!1}),p=[],u=he.box([],{deep:!1});const d=t.scene.rootLayer.children,l=d.find(e=>e.name===WF_POINTS_LAYER_NAME),_=d.find(e=>e.name===WF_CURRENT_POSITION_NAME),x=d.find(e=>e.name===WF_LINES_LAYER_NAME),m=d.find(e=>e.name===WF_TRAIL_LAYER_NAME),w=d.find(e=>e.name===WF_LINES_ANIMATED_LAYER_NAME),U=nt(Ne?.properties?.config?.snapThreshold)||it,ae=ot({thresholdInMeters:U,gpsConfig:Ne?.properties?.config});let ee=[];const j=o.fp.icons.get("destination");j?(j.id="destination",B=k(j,W,W,L)):B=Xe(L,rt.hex()),E=H(B,R(0,0,B.width,B.height),{hidden:!0});const G=o.fp.icons.get("departure");G?(G.id="departure",z=k(G,W,W,L)):z=re(L,Q.hex()),C=H(z,R(0,0,z.width,z.height),{hidden:!0}),M=re(L,Q.hex()),M.id="current-location",N=H(M,R(0,0,M.width,M.height),{hidden:!0,origin:[.5,.5]});const K=o.fp.icons.get("transition");K?(K.id="transition",ge=k(K,34,34,L)):ge=re(L,Q.hex());const se=o.fp.icons.get("transition_up");se&&(se.id="transition_up",Re=k(se,56,34,L));const ue=o.fp.icons.get("transition_down");ue&&(ue.id="transition_down",Le=k(ue,56,34,L)),G?xe=k(G,W,W,L):xe=re(L,Q.hex());const le=o.fp.icons.get("direction");le?(le.id="direction",$=k(le,W,W,L)):$=De(L,Q.hex()),F=H($,R(0,0,$.width,$.height),{hidden:!0});const Pe=o.fp.icons.get("yah");Pe?Y=k(Pe,oe(64,32),oe(90,32),L):Y=je(L,"#ff4343"),Y.id="current-location-2",O=H(Y,R(0,0,Y.width,Y.height),{hidden:!0,origin:[.5,1]}),Z=Je(4,ne("#b5b7bc").hex());function ce(e=null){const n=o.layerStore.visible.map(i=>i.name);if(I=[],y.set([]),e||(T=[]),n.length&&c.selectedRoute?.from?.rect&&c.selectedRoute?.to?.rect){let i=c.selectedRoute.from,h=c.selectedRoute.to;if(!T.length&&!e&&(T=Ye(Ue,me(i),me(h),o.routeStore.onlyAccessible,c.selectedRoute.waypoints?.map(me))),!T.length){if(o.routeStore.updateRoute(T),o.routeStore.updateRouteDistance(0),i.name!==h.name)throw new Error(`Route not found. From: ${i.name} to: ${h.name}`);return}const{rect:g,lines:D,addTrailPoints:b}=st();D.length?(lt(t.scale),ft(t.scale,s,p),ze(t,m,!b),t.ptScaleRegistry.unregisterByName(m.name),b&&t.onPtScale(m.name,()=>{const P=ze(t,m)||[];return m.children=P,we=P,m})):t.ptScaleRegistry.unregisterByName(m.name),ee=D,fe(),g&&(c.moveToRect=g)}else C.hidden=!0,E.hidden=!0;o.routeStore.updateRoute(T.filter(i=>!i.virtual)),y.get()||(C.hidden=!0,E.hidden=!0)}function J(){const e=o.routeStore.currentPosition,n=e?.angle?Ie(e.angle):null,i=o.routeStore.currentRouteLayer?.name,h=T.filter(A=>o.layerStore.mode==_e.Default?!0:o.layerStore.layers.find(He=>He.name==i&&i===A.p0.layer)?.visible).filter(A=>!A.virtual);if(c.kioskData&&c.selectedRoute?.from){const A=o.routeStore.currentRouteLayer;C.hidden=c.selectedRoute?.from?.entity?.type==="route-cut-in"&&A?.name===c.selectedRoute?.from?.layer?.name,E.hidden=c.selectedRoute?.to?.entity?.type==="route-cut-in"&&A?.name===c.selectedRoute?.to?.layer?.name}if(e){const A=Ae.findLayer(e.z)?.visible??!0;o.routeStore.iconType===0||c.selectedRoute?.from&&c.selectedRoute?.to?(O.hidden=!0,N.hidden=!A,N.dim=!A,N.bounds=R(e.x,e.y,M.width,M.height,t.scale),n!=null?(N.hidden=!0,F.hidden=!A,F.dim=!A,F.bounds=R(e.x,e.y,$.width,$.height,t.scale,n)):F.hidden=!0):(N.hidden=!0,F.hidden=!0,O.dim=!A,O.hidden=!A,O.bounds=R(e.x,e.y,Y.width,Y.height,t.scale))}else N.hidden=!0,O.hidden=!0,F.hidden=!0,de(),fe();if(!e||!I.length){t.update(F,N,O);return}const g=c.selectedRoute?.to,D=c.selectedRoute?.from,b={layer:D?.layer?.name,x:C.bounds.center.x,y:C.bounds.center.y},P={layer:g?.layer?.name,x:E.bounds.center.x,y:E.bounds.center.y},S=tt(e,h,{snapThreshold:ae,fromPoint:b,toPoint:P,fromRect:D?.rect,toRect:g?.rect}),v=S.snapped?S.snappedPoint:e;fe(S,!0),F.bounds=R(v.x,v.y,$.width,$.height,t.scale,n),N.bounds=R(v.x,v.y,M.width,M.height,t.scale,n),t.update(F,N,O)}function Be(){const e=[{point:F,name:"wf-current-arrow"},{point:N,name:"wf-current-location"},{point:O,name:"wf-current-location-2"}];_.children=e.map(({point:n})=>n),e.forEach(({point:n,name:i})=>te(n,i)),t.update(_)}function V(e=!1){const n=[C,E,...s.get(),...u.get()];e&&(Me(!0),m.children=[],n.forEach(i=>{i.source.id.includes("kiosk")||(i.hidden=!0)})),l.children=n,t.update(l,m)}function de(e,n){const i=T.filter(P=>!P.virtual),h=pe(i);if(!e?.snapped){o.routeStore.updateRouteDistance(h);return}const g=c.selectedRoute?.to,D=pe(n);let b;if(e.snappedPoint?.layer===g?.layer?.name||g?.layer?.name===o.routeStore.currentRouteLayer?.name)b=D;else if(e.snappedPoint?.layer!==g?.layer?.name&&e.snappedPoint?.layer===o.routeStore.currentRouteLayer?.name){const P=i.filter(v=>v.p0.layer!==e?.snappedPoint?.layer&&v.p1.layer!==e?.snappedPoint?.layer),S=pe(P);b=D+S}b&&o.routeStore.updateRouteDistance(b)}function fe(e,n=!1){const i=c.selectedRoute?.from,h=c.selectedRoute?.to;if(!i||!h)return;const g=T[0]?.p0.layer,D=qe(T,ee,{layer:i.layer?.name??g,x:i.rect.cx,y:i.rect.cy},{layer:h.layer?.name??g,x:h.rect.cx,y:h.rect.cy});if(!e?.snapped){const S=D.map(v=>ye(v,ke));o.routeStore.currentPosition&&o.routeStore.currentRouteLayer&&o.routeStore.currentPosition?.z?.toString()===o.routeStore.currentRouteLayer?.name.toString()&&de(),Ce([],S,n);return}const{passed:b,remaining:P}=et(D,e.snappedPoint);P.length&&(P[0]={...P[0],p0:e.snappedPoint}),de(e,P),Ce(b.map(S=>ye(S,"#B5B7BC")),P.map(S=>ye(S,ke)),n)}const te=(e,n)=>t.onPtScale(n,i=>(e.hidden||(e.bounds=R(e.bounds.center.x,e.bounds.center.y,e.source.width,e.source.height,i,e.bounds.rotation)),e)),be=(e,n)=>t.onRoll(n,i=>{const h=Qe(i,e.bounds.rotation);return h!==void 0&&(e.bounds.rotation=e.bounds.rotation+h),e});function Me(e){r&&(r.stop(),r=null),w.children=[],e&&(x.children=[]),t.update(w,x)}function Ce(e=[],n=[],i=!1){let h=0;if(r&&(i&&(h=r.getProgress()),r.stop(),r=null),x.children=[...e,...n],!n.length){w.children=[],t.update(w,x);return}const g=n.map(b=>({...b,color:at}));r=Ze(g,(b,P,S)=>{if(S)w.children=[];else{const v=g.slice(0,P);w.children=[...v,b]}t.update(w)},()=>t.scale,h)??null,t.update(x)}a.push(q(()=>[o.layerStore.layersLoaded],()=>{ce(),J(),V()}));const $e=q(()=>[o.routeStore.currentRouteLayer,c.getRouteNextFloor],()=>{o.layerStore.layersLoaded&&(f!==null&&clearTimeout(f),f=setTimeout(()=>{ce(o.routeStore.currentRouteLayer),J(),V(),f=null},0))});a.push(()=>{f!==null&&(clearTimeout(f),f=null),$e()}),a.push(q(()=>[c.selectedRoute,o.routeStore.onlyAccessible],()=>{ce(),J(),V(!c.selectedRoute)})),a.push(q(()=>o.routeStore.currentPosition,()=>{J(),V()})),a.push(q(()=>s.get(),e=>{const n="transitionPoints";t.ptScaleRegistry.unregisterByPrefix(n),t.rollRegistry.unregisterByPrefix(n),e.length&&e.forEach((i,h)=>{const g=`${n}-${h}`;te(i,g),be(i,g)})})),a.push(q(()=>[u.get()],()=>{const e=u.get(),n="kioskArrows";t.ptScaleRegistry.unregisterByPrefix(n),e.length&&e.forEach((i,h)=>te(i,`${n}-${h}`))})),a.push(q(()=>[c.kioskData,Ae.floors.find(e=>e.active),c.selectedRoute],([e,n])=>{u.set([]);const i=ve()?e?.z===n?.name:!0;e&&i&&ht(e,{skipdim:!0,visible:!0,pixelRatio:L},t.scale,u),V()}));function Ee({data:e}){const{defs:n}=Fe(e),i=p.find(h=>n.includes(h.imageDef));i&&o.layerStore.updateVisibility(i.targetLayer,!0)}t.renderer.events.addEventListener("pointer:click",Ee),a.push(()=>t.renderer.events.removeEventListener("pointer:click",Ee));function Te({data:e}){const{defs:n}=Fe(e),i=p.some(h=>n.includes(h.imageDef));t.renderer.canvas.style.cursor=i?"pointer":""}t.renderer.events.addEventListener("pointer:move",Te),a.push(()=>t.renderer.events.removeEventListener("pointer:move",Te)),[{point:C,name:"wf-source"},{point:E,name:"wf-destination"}].forEach(({point:e,name:n})=>{te(e,n),be(e,n)}),V(),J(),Be();function Oe(){r&&(r.stop(),r=null),a.forEach(e=>e()),a.length=0}return Oe}function lt(t){const r=o.routeStore.currentRouteLayer?.name,a=I;let f=c.selectedRoute?.from,y=c.selectedRoute?.to;const s=c.selectedRoute?.waypoints;if(f?.entity.type==="route-cut-in"&&(f=null),y?.entity.type==="route-cut-in"&&(y=null),!a.length)return;const p=[{key:"sourceLocation",rect:f?.rect,index:void 0},{key:"destinationLocation",rect:y?.rect,index:void 0}];s&&p.push(...s?.map((x,m)=>({key:`waypoint-${x.externalId}`,index:m,rect:x.rect})));const u=r?ie(r,f?.layer?.name):!0,d=r?ie(r,y?.layer?.name):!0;let l=!1,_=!1;a.forEach(({x,y:m})=>{for(const{key:w,rect:U,index:ae}of p)if(U?.containsPoint(x,m)){w==="sourceLocation"&&(C.bounds=R(x,m,z.width,z.height,t),C.hidden=!u,C.dim=!u,l=u),w==="destinationLocation"&&(E.bounds=R(x,m,B.width,B.height,t),E.hidden=!d,E.dim=!d,_=d);break}}),l||(C.bounds=R(a[a.length-1].x,a[a.length-1].y,z.width,z.height,t),C.hidden=!1,C.dim=!1),_||(E.bounds=R(a[0].x,a[0].y,B.width,B.height,t),E.hidden=!d,E.dim=!d)}function ct(){const{from:t,to:r}=o.uiState.selectedRoute||{},a="route-cut-in";return t&&t?.entity.type===a||r&&r?.entity.type===a?o.routeStore.defaultFrom:null}function dt(t,r){if(!t||!r.length)return r;const a=r.reduce((f,y,s)=>Se(t,y)<Se(t,r[f])?s:f,0);return a<=r.length/2?r.slice(a):r.slice(0,a)}function ft(t,r,a){const f=o.routeStore.currentRouteLayer?.name,y=o.layerStore.floors.map(u=>u.name).reverse(),s=Ge({routeLines:T,currentLayerName:f,floorOrder:y});a.length=0;const p=s.map(u=>{const d=u.role==="entry"?xe:u.direction==="up"&&Re?Re:u.direction==="down"&&Le?Le:ge,l=H(d,R(u.x,u.y,d.width,d.height,t),{hidden:!1,dim:!1});return u.role==="exit"&&a.push({imageDef:l,targetLayer:u.targetLayer}),l});r.set(p)}function ht(t,r,a=1,f){if(!t)return;const y=o.fp.icons.get("kiosk");y.id="kiosk";let s;if(y){const u=t?.iconSizePercent?t.iconSizePercent/100:1,d=55;s=k(y,oe(199*u,d),oe(152*u,d),L)}else s=De(L,ne("#ee4422").hex());const p=H(s,R(t.x,t.y,s.width,s.height,a,Ie(t.heading||0)),{hidden:!r.visible,dim:!r.skipdim});f.set([...f.get(),p])}function ze(t,r,a=!1){let f=I.length-1;if(c.selectedRoute?.to?.entity.type==="route-cut-in"&&(f=0),a){we=[],r.children=[],t.update(r);return}const y=t.scale,s=I[f],p=X?.destination;if(!s||!p)return;const u=Z.width,d=Ve([{p0:s,p1:p}],u*2*y);if(d.length<2)return;const l=p.x-s.x,_=p.y-s.y,x=Math.hypot(l,_),m={x:(s.x+p.x)/2,y:(s.y+p.y)/2-x*.2},w=[s,m,p],U=d.map((ae,ee,j)=>{const G=(ee+1)/(j.length+1),K=Ke(w,G);return H(Z,R(K.x,K.y,Z.width,Z.height,y),{hidden:!1,dim:!1})})||[];return r.children=U,we=U,U}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{Point as n}from"simple-geometry";import r from"../../../../store";import{getYah as s}from"../../../../utils/yah";export default function a(){let t=s();const e=window.location.search.length>1?decodeURIComponent(window.location.search.substring(1)):"";if(!t&&e.startsWith("route")){const o=e.split(":").find(h=>h.startsWith("yah_"));o&&(t=o)}const i=Array.isArray(t)||!1;return r.routeStore.defaultFrom=i?r.boothStore.getBoothAtPoint(new n(t[0],t[1])):r.boothStore.booths.find(o=>o.name===t),r.boothStore.booths.filter(o=>o.yah).forEach(o=>r.boothStore.booths.splice(r.boothStore.booths.indexOf(o),1)),()=>{}}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ImageUrls } from "../../../../utils/loadImagesInBatches";
|
|
2
|
+
import { Img } from "../../../../utils/imageloader";
|
|
3
|
+
import type { Booth } from "../../../../store/BoothStore";
|
|
4
|
+
import type { Layer } from "../../../../store/LayerStore";
|
|
5
|
+
import { RendererService } from "../../../../renderer";
|
|
6
|
+
export declare function loadLayersImages(rendererService: RendererService): Promise<void>;
|
|
7
|
+
export declare const getImageLayerName: (layerName: string) => string;
|
|
8
|
+
export declare function mapBoothsLogos(booths: Booth[]): Map<number, ImageUrls>;
|
|
9
|
+
export declare function getLayerIcons(layer: Layer): SVGImageElement[];
|
|
10
|
+
export declare function createBoothImg(booth: Booth, htmlImage: HTMLImageElement): Img;
|
|
11
|
+
//# sourceMappingURL=loadBoothsImages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{getLayerSvg as f}from"../../../../data/svg";import{select as h}from"d3";import{getLogoUrl as d}from"../../../../utils/getLogoUrl";import{flipImageDef as u,isInnerInsideOuter as y}from"../../../../renderer";import{SEPARATOR as w}from"../../../../constants";import{rotateImageDef as x}from"../../../../renderer/engine-core/utils/rotation";export async function loadLayersImages(t){const n=t.layerImagesRegistry.invoke();await Promise.all(n.map(async e=>{const l=await e;if(!l)return;const{layer:i,children:o}=l;if(o.length){const a=[];for(let r=0;r<o.length;r++){const{shape:s,parentRect:c}=o[r],g=y(s.bounds,c);if(!i.name.includes("Pathway_")){const m=g?"image-rotate":"image-flip";t.onRoll(`${m}-${i.name}-${r}`,g?p=>x(s,p):p=>u(s,p))}a.push(s)}i.children.push(...a),t.update(i)}}))}export const getImageLayerName=t=>`${t}${w}images`;export function mapBoothsLogos(t){return new Map(t.map(n=>{const e=n.rect&&n.exhibitors.find(l=>l.logoInBooth&&l.logo);return e?[n.id,{preferred:d(e.logo),fallback:e.logo}]:null}).filter(Boolean))}export function getLayerIcons(t){const n=h(f(t)).select(`[data-layer="${t.name}"]`);return(window.__fpVersion>5?n.selectAll(":scope > image, :scope > g:not([data-layer]) image").nodes():n.selectAll(":scope > g[data-is-editable='false'] image").nodes()).filter(Boolean)}export function createBoothImg(t,n){const e=t.rect,l=e.h?e.w/e.h:1,i=n.height?n.width/n.height:1;let o,a,r;const s=.9;l>i?(a=e.h*s,o=a*i):(o=e.w*s,a=o/i);const c=t.rotate||0;i>=2&&!c&&e.h>=e.w*2?(a=e.w*s,o=a*i,r=-90):r=-c*180/Math.PI,o>e.w&&(o=e.w,a=o/i),a>e.h&&(a=e.h,o=a*i);const g=e.cx-o/2,m=e.cy-a/2;return{name:t.slug,bounds:{x:g,y:m,width:o,height:a,angle:r},htmlImage:n,booth:t}}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export type { SplitRouteResult, RouteSnapResult } from "./types";
|
|
2
|
+
export { splitRouteByPoint } from "./splitRouteByPoint";
|
|
3
|
+
export { snapPositionToRoute, SNAP_THRESHOLD_METERS } from "./snapPositionToRoute";
|
|
4
|
+
export { distancePointToRouteOnLayer, getThresholdFromMetersToSvg, findBoothInRadius, getThresholdSafe } from "./utils";
|
|
5
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{splitRouteByPoint}from"./splitRouteByPoint";export{snapPositionToRoute,SNAP_THRESHOLD_METERS}from"./snapPositionToRoute";export{distancePointToRouteOnLayer,getThresholdFromMetersToSvg,findBoothInRadius,getThresholdSafe}from"./utils";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { RouteLine, RoutePoint } from "../../../../../wayfinding/types";
|
|
2
|
+
import { CurrentPosition } from "../../../../../store/RouteStore";
|
|
3
|
+
import type { RouteSnapResult } from "./types";
|
|
4
|
+
type Rect = {
|
|
5
|
+
x1: number;
|
|
6
|
+
x2: number;
|
|
7
|
+
y1: number;
|
|
8
|
+
y2: number;
|
|
9
|
+
};
|
|
10
|
+
export declare const SNAP_THRESHOLD_METERS = 7.5;
|
|
11
|
+
export type SnapToRouteConfig = {
|
|
12
|
+
snapThreshold: number;
|
|
13
|
+
minRemainingUnits?: number;
|
|
14
|
+
toPoint: RoutePoint;
|
|
15
|
+
toRect?: Rect;
|
|
16
|
+
fromPoint?: RoutePoint;
|
|
17
|
+
fromRect?: Rect;
|
|
18
|
+
};
|
|
19
|
+
export declare function snapPositionToRoute(position: CurrentPosition, routeLines: RouteLine[], config: SnapToRouteConfig): RouteSnapResult;
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=snapPositionToRoute.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const SNAP_THRESHOLD_METERS=7.5;function O(t,n){return t.x>=n.x1&&t.x<=n.x2&&t.y>=n.y1&&t.y<=n.y2}function E(t,n){let r=0;for(const e of t){const a=Math.hypot(e.p1.x-e.p0.x,e.p1.y-e.p0.y);if(a!==0){if(r+a>=n){const d=(n-r)/a,x=e.p0.x+(e.p1.x-e.p0.x)*d,f=e.p0.y+(e.p1.y-e.p0.y)*d;return{point:{layer:e.p0.layer,x,y:f},line:e}}r+=a}}const l=t[t.length-1];return{point:{layer:l.p0.layer,x:l.p1.x,y:l.p1.y},line:l}}export function snapPositionToRoute(t,n,r){const l=n.length;if(!l)return{snapped:!1};const{snapThreshold:e,toPoint:a,minRemainingUnits:d=.5,fromPoint:x,fromRect:f,toRect:A}=r,i=t.z!=null?String(t.z):null;let M=1/0,u=null,S=0,I=i==null;for(let s=0;s<l;s++){const p=n[s],{p0:o,p1:y}=p,g=y.x-o.x,P=y.y-o.y,D=g*g+P*P;if(D===0)continue;const F=Math.sqrt(D);if(i!=null&&String(o.layer)!==i){S+=F;continue}I=!0;const N=((t.x-o.x)*g+(t.y-o.y)*P)/D,R=Math.max(0,Math.min(1,N)),U=o.x+g*R,j=o.y+P*R,H=Math.hypot(t.x-U,t.y-j);H<M&&(M=H,u={segmentIndex:s,t:R,distanceFromPolylineStart:S+F*R}),S+=F}if(i!=null&&!I)return{snapped:!1};const c=S,b=n[0].p0,q=n[l-1].p1,_=Math.hypot(a.x-b.x,a.y-b.y),w=Math.hypot(a.x-q.x,a.y-q.y),m=_<=w,T=Math.min(d,c),v={layer:(i??n[0].p0.layer).toString(),x:t.x,y:t.y};if(f&&x&&(i==null||String(x.layer)===i)&&O(v,f)){const s=c,p=m?s:c-s,o=E(n,p);return{snapped:!0,snappedPoint:o.point,snappedLine:o.line}}if(A&&(i==null||String(a.layer)===i)&&O(v,A)){const s=T,p=c-s,y=E(n,m?s:p);return{snapped:!0,snappedPoint:y.point,snappedLine:y.line}}if(!u||M>e)return{snapped:!1};let h=m?u.distanceFromPolylineStart:c-u.distanceFromPolylineStart;h<T&&(h=T);const L=c-h,z=E(n,m?h:L);return{snapped:!0,snappedPoint:z.point,snappedLine:z.line}}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { RouteLine, RoutePoint } from "../../../../../wayfinding/types";
|
|
2
|
+
export declare function splitRouteByPoint(routeLines: RouteLine[], snapPoint: RoutePoint): {
|
|
3
|
+
passed: RouteLine[];
|
|
4
|
+
remaining: RouteLine[];
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=splitRouteByPoint.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export function splitRouteByPoint(t,i){let n=-1,e=0,f=1/0;for(let l=0;l<t.length;l++){const c=t[l];if(c.p0.layer!==i.layer)continue;const s=c.p1.x-c.p0.x,y=c.p1.y-c.p0.y,r=s*s+y*y;if(r===0)continue;const x=((i.x-c.p0.x)*s+(i.y-c.p0.y)*y)/r;if(x<-1e-6||x>1+1e-6)continue;const a=Math.min(1,Math.max(0,x)),m=c.p0.x+a*s,g=c.p0.y+a*y,o=(i.x-m)**2+(i.y-g)**2;o<f&&(f=o,n=l,e=a)}if(n===-1)return{passed:[],remaining:t};if(e<1e-6)return{passed:t.slice(0,n),remaining:t.slice(n)};if(e>1-1e-6)return{passed:t.slice(0,n+1),remaining:t.slice(n+1)};const p=t[n],d={layer:p.p0.layer,x:p.p0.x+e*(p.p1.x-p.p0.x),y:p.p0.y+e*(p.p1.y-p.p0.y)};return{passed:[...t.slice(0,n),{...p,p1:d}],remaining:[{...p,p0:d},...t.slice(n+1)]}}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { RouteLine, RoutePoint } from "../../../../../wayfinding/types";
|
|
2
|
+
export type RouteSnapResult = {
|
|
3
|
+
snapped: false;
|
|
4
|
+
} | {
|
|
5
|
+
snapped: true;
|
|
6
|
+
snappedPoint: RoutePoint;
|
|
7
|
+
snappedLine: RouteLine;
|
|
8
|
+
};
|
|
9
|
+
export type SplitRouteResult = {
|
|
10
|
+
snapped: true;
|
|
11
|
+
passed: RouteLine[];
|
|
12
|
+
remaining: RouteLine[];
|
|
13
|
+
splitPoint: RoutePoint;
|
|
14
|
+
} | {
|
|
15
|
+
snapped: false;
|
|
16
|
+
remaining: RouteLine[];
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export{};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { RouteLine, RoutePoint } from "../../../../../wayfinding/types";
|
|
2
|
+
import { Booth } from "../../../../../store/BoothStore";
|
|
3
|
+
export declare function distancePointToRouteOnLayer(point: RoutePoint, lines: RouteLine[]): number;
|
|
4
|
+
export declare function findBoothInRadius<T extends Booth>(position: {
|
|
5
|
+
x: number;
|
|
6
|
+
y: number;
|
|
7
|
+
z?: string | number;
|
|
8
|
+
} | null | undefined, booths: T[] | null | undefined, excludeBooths?: T[], radius?: number): T | null;
|
|
9
|
+
type GpsProjectionConfig = {
|
|
10
|
+
p0: {
|
|
11
|
+
x: number;
|
|
12
|
+
y: number;
|
|
13
|
+
lat: number;
|
|
14
|
+
lng: number;
|
|
15
|
+
};
|
|
16
|
+
p2: {
|
|
17
|
+
x: number;
|
|
18
|
+
y: number;
|
|
19
|
+
lat: number;
|
|
20
|
+
lng: number;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export declare const getThresholdSafe: (value: number) => number | undefined;
|
|
24
|
+
export declare function getThresholdFromMetersToSvg({ thresholdInMeters, gpsConfig }: {
|
|
25
|
+
thresholdInMeters?: number;
|
|
26
|
+
gpsConfig?: GpsProjectionConfig;
|
|
27
|
+
}): number;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{lineLength as b}from"simple-geometry";import{distance as L}from"../../../../../utils/gps";export function distancePointToRouteOnLayer(t,r){let e=1/0;for(const o of r){if(t.layer&&(o.p0.layer!==t.layer||o.p1.layer!==t.layer))continue;const i=B(t.x,t.y,o.p0.x,o.p0.y,o.p1.x,o.p1.y);i<e&&(e=i)}return e}function B(t,r,e,o,i,d){const f=i-e,a=d-o,S=t-e,x=r-o,y=f*f+a*a;if(y===0)return Math.hypot(t-e,r-o);let n=(S*f+x*a)/y;n<0?n=0:n>1&&(n=1);const s=e+n*f,c=o+n*a;return Math.hypot(t-s,r-c)}const M=20;export function findBoothInRadius(t,r,e,o=M){if(!t||!r?.length)return null;const i=t.z?String(t.z):null,d=o*o,f=new Set;e?.forEach(n=>n?.id&&f.add(String(n.id)));function a(n){const s=n?.x1,c=n?.x2,u=n?.y1,l=n?.y2;if(s==null||c===null||c===void 0||u===null||u===void 0||l===null||l===void 0)return null;const m=Math.min(s,c),h=Math.max(s,c),g=Math.min(u,l),T=Math.max(u,l);return{x1:m,x2:h,y1:g,y2:T}}function S(n,s,c){const u=n<c.x1?c.x1-n:n>c.x2?n-c.x2:0,l=s<c.y1?c.y1-s:s>c.y2?s-c.y2:0;return u*u+l*l}let x=null,y=1/0;for(const n of r){const s=!(n.id&&f.has(String(n.id))),c=n.layer?.name??n.layer??null,u=!i||c&&String(c)===i,l=a(n.rect);if(s&&u&&!!l){const h=S(t.x,t.y,l);h<=d&&h<y&&(y=h,x=n)}}return x}const R=20;export const getThresholdSafe=t=>{if(typeof t=="number"&&Number.isFinite(t))return t};function O(t,r){const{p0:e,p2:o}=r,i=L(e.lat,e.lng,o.lat,o.lng),d=b(e,o);return!i||!d?0:t*(d/i)}export function getThresholdFromMetersToSvg({thresholdInMeters:t,gpsConfig:r}){let e=0;return t&&r&&(e=O(t,r)),e||(e=R),e}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare class UpdateQueue {
|
|
2
|
+
private queue;
|
|
3
|
+
private isProcessing;
|
|
4
|
+
private rafId;
|
|
5
|
+
private readonly CHUNK_SIZE;
|
|
6
|
+
private readonly TIME_BUDGET;
|
|
7
|
+
add(fn: () => void): void;
|
|
8
|
+
private scheduleProcessing;
|
|
9
|
+
private processMicrotaskQueue;
|
|
10
|
+
private processQueue;
|
|
11
|
+
destroy(): void;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=UpdateQueue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export class UpdateQueue{queue=[];isProcessing=!1;rafId=null;CHUNK_SIZE=100;TIME_BUDGET=4;add(e){this.queue.push(e),this.scheduleProcessing()}scheduleProcessing(){this.isProcessing||this.queue.length===0||(this.isProcessing=!0,this.queue.length<=this.CHUNK_SIZE*2?Promise.resolve().then(()=>this.processMicrotaskQueue()):this.rafId=requestAnimationFrame(e=>{this.processQueue(e)}))}processMicrotaskQueue(){const e=performance.now();let s=0;for(;this.queue.length>0&&s<this.CHUNK_SIZE;){const t=this.queue.shift();try{t()}catch(i){console.warn("UpdateQueue task error:",i)}if(s++,performance.now()-e>this.TIME_BUDGET)break}this.queue.length>0?Promise.resolve().then(()=>this.processMicrotaskQueue()):this.isProcessing=!1}processQueue(e){this.rafId=null;let s=0;for(;this.queue.length>0&&s<this.CHUNK_SIZE;){const t=this.queue.shift();try{t()}catch(i){console.warn("UpdateQueue task error:",i)}if(s++,performance.now()-e>this.TIME_BUDGET)break}this.queue.length>0?this.rafId=requestAnimationFrame(t=>this.processQueue(t)):this.isProcessing=!1}destroy(){this.rafId!==null&&(cancelAnimationFrame(this.rafId),this.rafId=null),this.queue=[],this.isProcessing=!1}}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const TRAFFIC_ROUTE_PREFIX = "traffic_route";
|
|
2
|
+
export declare const TRAFFIC_ROUTE_STOP_PREFIX = "traffic_route_stop";
|
|
3
|
+
export declare const TRAFFIC_VEHICLES = "traffic_vehicles";
|
|
4
|
+
export declare const BUILD_ROUTE_LINES = "build_route_lines";
|
|
5
|
+
export declare const BUILD_ROUTE_DOTS = "build_route_dots";
|
|
6
|
+
export declare function createTrafficLayers(): ({
|
|
7
|
+
name: string;
|
|
8
|
+
children: never[];
|
|
9
|
+
interactive?: undefined;
|
|
10
|
+
} | {
|
|
11
|
+
name: string;
|
|
12
|
+
children: never[];
|
|
13
|
+
interactive: boolean;
|
|
14
|
+
})[];
|
|
15
|
+
export declare function getRouteLayerRegex(): RegExp;
|
|
16
|
+
export declare function getRouteStopLayerRegex(): RegExp;
|
|
17
|
+
//# sourceMappingURL=trafficLayers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export const TRAFFIC_ROUTE_PREFIX="traffic_route",TRAFFIC_ROUTE_STOP_PREFIX="traffic_route_stop",TRAFFIC_VEHICLES="traffic_vehicles",BUILD_ROUTE_LINES="build_route_lines",BUILD_ROUTE_DOTS="build_route_dots";const o=5;export function createTrafficLayers(){const e=[];for(let t=0;t<5;t++)e.push({name:r(t),children:[]}),e.push({name:n(t),children:[],interactive:!0});return e.push({name:TRAFFIC_VEHICLES,children:[],interactive:!0}),e.push({name:BUILD_ROUTE_LINES,children:[]}),e.push({name:BUILD_ROUTE_DOTS,children:[],interactive:!0}),e}function r(e){return`${TRAFFIC_ROUTE_PREFIX}_${e+1}`}function n(e){return`${TRAFFIC_ROUTE_STOP_PREFIX}_${e+1}`}export function getRouteLayerRegex(){return new RegExp(`^${TRAFFIC_ROUTE_PREFIX}_\\d+$`)}export function getRouteStopLayerRegex(){return new RegExp(`^${TRAFFIC_ROUTE_STOP_PREFIX}_\\d+$`)}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { RendererService } from "../../../renderer";
|
|
2
|
+
export interface BuildRouteParams {
|
|
3
|
+
enabled: boolean;
|
|
4
|
+
rendererService: RendererService;
|
|
5
|
+
cb?: () => void;
|
|
6
|
+
}
|
|
7
|
+
export declare function useBuildRoute({ enabled, rendererService }: BuildRouteParams): void;
|
|
8
|
+
//# sourceMappingURL=useBuildRoute.d.ts.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import{useCallback as _,useEffect as M,useMemo as L,useRef as P}from"react";import{BUILD_ROUTE_DOTS as U,BUILD_ROUTE_LINES as $}from"./trafficLayers";import{createCircleCanvas as S,getBounds as I}from"../../../renderer/engine-core/canvases";import{UpdateQueue as A}from"./UpdateQueue";import{isDefaultScene as K,pickDefaultScene as T}from"../../../renderer/engine-core/defs";const v=49,C=`hsl(257, 76%, ${v}%)`,H=`hsl(339.903, 82%, ${v}%)`,Y=`hsl(257, 76%, ${Math.round(v*1.82)}%)`,O=4,B=O,D="U",R="R",b="S",N="P";class J{_state=[[]];index=0;pointHashSet=new Set;locked=!1;storageKey="expofp_build_route_state";_selected=0;get points(){return this._state[this.index]}set points(t){this._state.push(t),this.setIndex(),this.save()}setIndex(){this.index=Math.max(this._state.length-1,0)}genPointHash(t){return`${t.x},${t.y}`}add(t){const a=this.genPointHash(t);this.pointHashSet.has(a)||(this.pointHashSet.add(a),this.points=[...this.points,t])}undo(){this.index&&(this._state.pop(),this.setIndex(),this.save(),this.select(this.points.length-1))}execute(t){try{if(this.locked)return;this.locked=!0,t()}finally{requestAnimationFrame(()=>{this.locked=!1})}}log(t,a=12){console.log(`%c${t}`,`color: black; font-size: ${a}px; background: LemonChiffon;`)}instruct(){this.log(`How to Build a Route:
|
|
2
|
+
Add Point: Click on the map.
|
|
3
|
+
Apply Smoothing: Press ${R}.
|
|
4
|
+
Apply Simplification: Press ${b}.
|
|
5
|
+
Undo: Press ${D}.
|
|
6
|
+
Enable/Disable Preview: Press ${N}.
|
|
7
|
+
`,16)}applyChaikinSmoothing(t,a,y){let c=[];if(y>=1&&t.length>=2){c=[t[0]];for(let h=1;h<t.length;h++){const s=t[h-1],u=t[h];for(let o=1;o<=y;o++){const n=o/(y+1);c.push({x:s.x+(u.x-s.x)*n,y:s.y+(u.y-s.y)*n})}c.push(u)}}else c=t.slice();for(let h=0;h<a&&!(c.length<2);h++){const s=[{...c[0]}];for(let u=1;u<c.length;u++){const o=c[u-1],n=c[u];s.push({x:.75*o.x+.25*n.x,y:.75*o.y+.25*n.y}),s.push({x:.25*o.x+.75*n.x,y:.25*o.y+.75*n.y})}s.push({...c[c.length-1]}),c=s}return c}applySmoothing(){this.points.length<3||(this.points=this.applyChaikinSmoothing(this.points,1,0),this.select(this.points.length-1))}save(){try{this.points.length?sessionStorage.setItem(this.storageKey,JSON.stringify(this.points)):sessionStorage.removeItem(this.storageKey)}catch(t){console.warn(t)}}restore(){try{const t=sessionStorage.getItem(this.storageKey);if(!t)return;const a=JSON.parse(t);if(!Array.isArray(a))return;a.forEach(y=>this.add(y)),this.select(this.points.length-1)}catch(t){console.warn(t)}}topologyPreservingSimplify(t,a){if(t.length<=2)return t.map(o=>({...o}));const y=(o,n,f)=>{const d=o.x,p=o.y,e=n.x,i=n.y,r=f.x,l=f.y,x=Math.abs((l-i)*d-(r-e)*p+r*i-l*e),g=Math.sqrt((l-i)**2+(r-e)**2);return x/(g||1e-10)},c=(o,n,f,d)=>{const p=(e,i,r)=>(r.y-e.y)*(i.x-e.x)-(i.y-e.y)*(r.x-e.x);return p(o,f,d)*p(n,f,d)<0&&p(f,o,n)*p(d,o,n)<0},h=new Array(t.length).fill(!1);h[0]=h[h.length-1]=!0;const s=[],u=(o,n)=>{if(n<=o+1)return;const f=t[o],d=t[n];let p=0,e=0;for(let i=o+1;i<n;i++){const r=y(t[i],f,d);r>p&&(p=r,e=i)}if(p>a){const i=t[e];let r=!0;for(let l=0;l<s.length-1;l++)if(c(s[l],s[l+1],f,i)||c(s[l],s[l+1],i,d)){r=!1;break}r&&(h[e]=!0,u(o,e),u(e,n))}};return u(0,t.length-1),t.filter((o,n)=>h[n])}applySimplification(){this.points=this.topologyPreservingSimplify(this.points,.5),this.select(this.points.length-1)}get selected(){return this._selected}select(t){this._selected=Math.max(0,Math.min(t,this.points.length-1))}}export function useBuildRoute({enabled:k,rendererService:t}){const a=P(!1),y=P(),c=L(()=>S(O,C),[]),h=L(()=>S(O,H),[]),s=L(()=>new J,[]),u=P(new A),o=L(()=>{if(!t.scene)return{};const e=t.scene.rootLayer.children,i=e.find(l=>l.name===$),r=e.find(l=>l.name===U);return{linesLayer:i,pointsLayer:r}},[t.scene]),n=_(()=>{if(!t?.renderer||!o||!c||!h)return;const{linesLayer:e,pointsLayer:i}=o;if(!e||!i)return;const r=s.points,l=a.current;l?i.children.length=0:i.children=r.map(({x:g,y:m},w)=>{const E=w==s.selected?h:c;return{source:E,bounds:I(g,m,E.width,E.height,y.current)}});const x=[];for(let g=1;g<r.length;g++){const m=r[g-1],w=r[g];x.push({points:[m,w],color:l?C:Y,width:B})}x.length?e.children=x:e.children.length=0,u.current.add(()=>t.update(i,e)),s.instruct(),s.log(JSON.stringify(s.points))},[t,s,o,c,h]),f=_(e=>{const i=e.key.toUpperCase();s.execute(()=>{switch(i){case D:e.preventDefault(),s.undo(),a.current=!1,n();break;case R:e.preventDefault(),s.applySmoothing(),a.current=!1,n();break;case b:e.preventDefault(),s.applySimplification(),a.current=!1,n();break;case N:e.preventDefault(),a.current=!a.current,n();break}})},[s,n]),d=_(({ptScale:e,sceneId:i})=>{if(!K(i)||!t?.renderer||!o)return;const{pointsLayer:r}=o;r&&(y.current=e,s.execute(()=>{const l=r.children,x=[];for(let g=0;g<l.length;g++){const m=l[g];m.bounds=I(m.bounds.center.x,m.bounds.center.y,m.source.width,m.source.height,y.current),x.push(m)}u.current.add(()=>t.update(...x))}))},[t,o,s]),p=_(({data:e})=>{s.execute(()=>{const{point:i}=T(e);s.add({x:i.x,y:i.y}),s.select(s.points.length-1),n()})},[s,n]);M(()=>{const e=t.renderer;if(!(!k||!e))return y.current=t.scale,s.execute(()=>{s.restore(),n()}),e.events.addEventListener("pointer:click",p),e.events.addEventListener("viewport:ptscale",d),window.addEventListener("keyup",f),()=>{window.removeEventListener("keyup",f),e.events.removeEventListener("pointer:click",p),e.events.removeEventListener("viewport:ptscale",d),u.current.destroy()}},[k,t,s,n,p,d,f])}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { RendererService } from "../../../renderer";
|
|
2
|
+
export interface ManageTrafficParams {
|
|
3
|
+
permission: boolean;
|
|
4
|
+
rendererService: RendererService;
|
|
5
|
+
dataJsonUrl: string;
|
|
6
|
+
websocketUrl: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function useManageTraffic({ permission, rendererService, dataJsonUrl, websocketUrl }: ManageTrafficParams): void;
|
|
9
|
+
//# sourceMappingURL=useManageTraffic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{useEffect as pt,useRef as F}from"react";import{getBounds as k}from"../../../renderer";import{getRouteLayerRegex as wt,getRouteStopLayerRegex as xt,TRAFFIC_VEHICLES as Et}from"./trafficLayers";import{loadImage as It}from"../../../utils/loadImage";import{createImageCanvas as Mt}from"../drawing/config/canvases";import{UpdateQueue as Lt}from"./UpdateQueue";import bt from"../../../tools/base-runtime-url";import{toRadians as Ft}from"../../../utils/math";import{isDefaultScene as Rt}from"../../../renderer/engine-core/defs";const et=2,At=et*3.5,Q=et*12,at=Q*.7,Pt=8,Tt="transport_locations",vt=150,nt="#a4aab6",ut=1e3,_t=2e4,lt=500;export function useManageTraffic({permission:t,rendererService:n,dataJsonUrl:c,websocketUrl:i}){const e=F(window.devicePixelRatio),s=F(new Map),o=F(new Map),r=F(),p=F(),f=F(performance.now()),M=F(1),E=F(new Lt),A=F(new Map),I=F(),g=F(ut),w=F(new Map),u=F();pt(()=>{let T;async function N(){if(!(!t||!n.scene))try{let d;try{const a=await fetch(c,{method:"GET",headers:{"Content-Type":"application/json"}});if(!a.ok||a.status===204)return;d=await a.json()}catch(a){console.warn("useManageTraffic failed to get JSON",a)}if(!d||d?.disabled||d?.error)return;e.current=dt(n.scale);const Y=new Map(d.routes.map(({id:a,color:x})=>[a,x])),H=n.scene.rootLayer.children,V=new Map;Y.forEach(a=>{V.set(a,St({radius:At,color:a,scale:window.devicePixelRatio}))});const B=wt(),q=H.filter(a=>B.test(a.name)),G=xt(),z=H.filter(a=>G.test(a.name));d.routes.slice(0,q.length).forEach(({id:a,color:x,path:C,stops:W,hiddenPoints:_},h)=>{A.current.set(a,C);const m=q[h];if(m){const y=new Map(_?.map(l=>[ct(l),l])??[]);for(let l=1;l<C.length;l++){const D=C[l-1],O=C[l];y.has(ct(D))||y.has(ct(O))||m.children.push({points:[D,O],color:x,width:et})}m.children.length&&E.current.add(()=>n.update(m))}const b=z[h];if(b&&W?.length){const y=V.get(x);W.forEach(l=>{b.children.push({source:y,bounds:k(l.x,l.y,y.width,y.height,e.current)})}),b.children.length&&E.current.add(()=>n.update(b))}});const U=H.find(a=>a.name===Et),Z=new Map;I.current=a=>{try{const{ptScale:x,sceneId:C}=Ct(a);if(!Rt(C))return;e.current=dt(x);const W=[];for(let h=0;h<z.length;h++){const m=z[h].children;for(let b=0;b<m.length;b++){const y=m[b];y.bounds=k(y.bounds.center.x,y.bounds.center.y,y.source.width,y.source.height,e.current,y.bounds.rotation),W.push(y)}}const _=[...s.current.values()];for(let h=0;h<_.length;h++){const m=_[h];m.bounds=k(m.bounds.center.x,m.bounds.center.y,m.source.width,m.source.height,e.current,m.bounds.rotation)}E.current.add(()=>n.update(...W,..._))}catch(x){console.error("ptscale",x)}},n.renderer.events.addEventListener("viewport:ptscale",I.current),T=requestAnimationFrame(()=>{I.current?.(n.scale)}),Y.forEach((a,x)=>{Z.set(x,ht({id:x,width:Q,height:Q,color:a,scale:window.devicePixelRatio}))}),Z.set(nt,ht({id:"orphan",width:Q,height:Q,color:nt,scale:window.devicePixelRatio}));let $=null;try{const a=await It(`${bt}icons/bus-white.svg`);$=Mt(a,at,at,window.devicePixelRatio)}catch(a){console.error(a)}p.current=a=>{try{const x=JSON.parse(a.data);if(x.type!==Tt)return;const C=a.timeStamp||performance.now();M.current=Math.round(C-f.current),f.current=C;const W=Math.max(M.current??lt,lt),_=o.current,h=s.current,m=U.children,b=E.current;let y=!1;x.data.forEach(({id:l,x:D,y:O,route_id:st,hidden:mt})=>{if(_.has(l)&&(_.get(l)?.(),_.delete(l)),mt&&h.has(l)&&h.has(X(l))){const P=h.get(l);P.hidden=!0;const R=h.get(X(l));R.hidden=!0,b.add(()=>n.update(P,R));return}if(w.current.set(l,performance.now()),!h.has(l)){const P=Z.get(st)||Z.get(nt),R={id:l,source:P,bounds:k(D,O,P.width,P.height,e.current,0)};if(h.set(l,R),$){const j=X(l),it={id:j,source:$,bounds:k(D,O,$.width,$.height,e.current,0)};$.setAttribute("id",j),h.set(j,it),m.push(R,it)}else m.push(R);y=!0;return}const J=h.get(l),rt=h.get(X(l)),yt=J.bounds.center,tt=Ot(yt,{x:D,y:O},A.current.get(st));if(tt.reduce((P,R,j)=>j===0?P:P+ot(tt[j-1],R),0)>=vt||document.hidden)ft({rendererService:n,updateQueue:b,vehicle:J,vehicleFinery:rt,x:D,y:O,scale:e.current,angle:Nt(J.bounds.center,{x:D,y:O})});else{const P=Ht(tt,W,R=>{ft({rendererService:n,updateQueue:b,vehicle:J,vehicleFinery:rt,x:R.x,y:R.y,scale:e.current,angle:R.angle})});_.set(l,P)}}),y&&b.add(()=>n.update(U))}catch(x){console.error("handleSocketMessage",x)}},L(),S(d.config?(Number(d.config.vehicle_inactive_interval)||20)*1e3:_t)}catch(d){console.warn(d)}}N();function L(){r.current?.readyState===WebSocket.OPEN||r.current?.readyState===WebSocket.CONNECTING||(r.current=new WebSocket(i),r.current.onmessage=p.current,r.current.onopen=()=>{g.current=ut},r.current.onclose=()=>{if(!navigator.onLine)return;setTimeout(L,g.current);const d=3e4;g.current=Math.min(g.current*2,d)})}function v(){L()}window.addEventListener("online",v);function S(d){clearInterval(u.current),u.current=window.setInterval(()=>{const Y=performance.now(),H=[],V=[];w.current.forEach((B,q)=>{if(Y-B<d)return;const G=s.current.get(q);G&&(G.hidden=!0,V.push(G),H.push(q));const z=X(q),U=s.current.get(z);U&&(U.hidden=!0,V.push(U),H.push(z))}),V.length&&E.current.add(()=>n.update(...V)),H.forEach(B=>w.current.delete(B))},d)}return()=>{I.current&&n.renderer&&n.renderer.events.removeEventListener("viewport:ptscale",I.current),T!==void 0&&cancelAnimationFrame(T),o.current.forEach(d=>d?.()),o.current.clear(),s.current.clear(),E.current.destroy(),window.removeEventListener("online",v),clearInterval(u.current)}},[t,n,c,i])}function dt(t){return Math.min(t||window.devicePixelRatio,Pt)}function Ct(t){return typeof t=="number"?{ptScale:t}:t}function Nt(t,n){return Math.atan2(n.y-t.y,n.x-t.x)}function St({radius:t,scale:n,color:c}){const i=document.createElement("canvas"),e=i.getContext("2d");e.imageSmoothingEnabled=!1;const s=Math.ceil(t*2*n),o=s/2,r=t*.78,p=t*.33;return i.width=s,i.height=s,e.translate(o,o),e.scale(n,n),e.beginPath(),e.arc(0,0,t,0,2*Math.PI),e.fillStyle="#FFFFFF",e.fill(),e.beginPath(),e.arc(0,0,r,0,2*Math.PI),e.fillStyle=c,e.fill(),e.beginPath(),e.arc(0,0,p,0,2*Math.PI),e.fillStyle="#FFFFFF",e.fill(),i}function ht({id:t,width:n,height:c,color:i,scale:e}){const s=2*e,o=n/2*e,r=c*e,p=.6,f=.01,M=r*p,E=r,A=8*e,I=E+s+M/2+A*2,g=o*2+M+s+A*2,w=document.createElement("canvas");w.setAttribute("id",t),w.width=I,w.height=g;const u=w.getContext("2d"),T=I/2,N=g/2;u.save(),u.translate(T,N),u.rotate(-Math.PI/2),u.translate(-T,-N);const L=T,v=N-E/2+o,S=v+M;return u.shadowColor="rgba(16, 24, 40, 0.2)",u.shadowBlur=A/2,u.beginPath(),u.arc(L,v,o,Math.PI,0,!1),u.bezierCurveTo(L+o,v+r*.3,L+f*o,S,L,S),u.bezierCurveTo(L-f*o,S,L-o,v+r*.3,L-o,v),u.closePath(),u.fillStyle=i,u.fill(),u.strokeStyle="#FFFFFF",u.lineWidth=s,u.stroke(),u.restore(),w}function ot(t,n){return Math.hypot(t.x-n.x,t.y-n.y)}function X(t){return`${t}_finery`}function ft({rendererService:t,updateQueue:n,vehicle:c,vehicleFinery:i,x:e,y:s,scale:o,angle:r}){c.bounds=k(e,s,c.source.width,c.source.height,o,r),c.hidden=!1,i?(i.bounds=k(e,s,i.source.width,i.source.height,o,Ft(t.angle)),i.hidden=!1,n.add(()=>t.update(i,c))):n.add(()=>t.update(c))}function K(t,n,c){return{x:t.x+(n.x-t.x)*c,y:t.y+(n.y-t.y)*c}}function gt(t,n){let c=1/0,i={index:0,t:0};for(let e=0;e<n.length-1;e++){const s=n[e],o=n[e+1],r=o.x-s.x,p=o.y-s.y,f=r*r+p*p,M=f?((t.x-s.x)*r+(t.y-s.y)*p)/f:0,E=Math.max(0,Math.min(1,M)),A=K(s,o,E),I=ot(t,A);I<c&&(c=I,i={index:e,t:E})}return i}function Dt(t,n,c){const i=ot(t,n),e=Math.max(2,Math.ceil(i/c)+1),s=[];for(let o=0;o<e;o++){const r=o/(e-1),p=K(t,n,r);s.push({x:p.x,y:p.y})}return s}function Ot(t,n,c){if(!c||!c.length)return Dt(t,n,10);const i=gt(t,c),e=gt(n,c),s=[],o=r=>s.push({x:r.x,y:r.y});i.index+1<c.length?o(K(c[i.index],c[i.index+1],i.t)):o(c[i.index]);for(let r=i.index+1;r<=e.index&&r<c.length;r++)o(c[r]);return e.index+1<c.length?o(K(c[e.index],c[e.index+1],e.t)):o(c[e.index]),s}function Ht(t,n,c,i){if(t.length<2)return()=>{};let e=null,s;const o=[];let r=0;for(let f=0;f<t.length-1;f++){const M=Math.hypot(t[f+1].x-t[f].x,t[f+1].y-t[f].y);o.push(M),r+=M}const p=f=>{e||(e=f);const M=f-e,E=Math.min(M/n,1),A=E*r;let I=0,g=0;for(;g<o.length&&I+o[g]<A;)I+=o[g],g++;g>=o.length&&(g=o.length-1);const w=t[g],u=t[Math.min(g+1,t.length-1)],T=o[g]||0,N=T===0?0:(A-I)/T,L=w.x+(u.x-w.x)*N,v=w.y+(u.y-w.y)*N,S=u.x-w.x,d=u.y-w.y,Y=S===0&&d===0?0:Math.atan2(d,S);c({x:L,y:v,angle:Y}),E<1?s=requestAnimationFrame(p):i&&i()};return s=requestAnimationFrame(p),()=>{s&&cancelAnimationFrame(s)}}function ct(t){return`${t.x},${t.y}`}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Renderer, Vector2Like } from "@expofp/renderer";
|
|
2
|
+
export interface MapEngineVisibleArea {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
left: number;
|
|
8
|
+
right: number;
|
|
9
|
+
top: number;
|
|
10
|
+
bottom: number;
|
|
11
|
+
center: Vector2Like;
|
|
12
|
+
}
|
|
13
|
+
export declare function getVisibleArea(renderer: Renderer): MapEngineVisibleArea;
|
|
14
|
+
export declare function isPointVisible(renderer: Renderer, point: Vector2Like): boolean;
|
|
15
|
+
//# sourceMappingURL=visibleArea.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{pickDefaultScenePoint as s}from"../../renderer/engine-core/defs";export function getVisibleArea(t){const o=s(t.viewport.canvasToSvg({x:0,y:0})),i=s(t.viewport.canvasToSvg({x:t.canvas.clientWidth,y:0})),a=s(t.viewport.canvasToSvg({x:0,y:t.canvas.clientHeight})),c=s(t.viewport.canvasToSvg({x:t.canvas.clientWidth,y:t.canvas.clientHeight})),n=Math.min(o.x,i.x,a.x,c.x),v=Math.max(o.x,i.x,a.x,c.x),x=Math.min(o.y,i.y,a.y,c.y),y=Math.max(o.y,i.y,a.y,c.y);return{x:n,y:x,width:v-n,height:y-x,left:n,right:v,top:y,bottom:x,center:{x:(n+v)/2,y:(x+y)/2}}}export function isPointVisible(t,o){const i=getVisibleArea(t);return o.x>=i.left&&o.x<=i.right&&o.y>=i.bottom&&o.y<=i.top}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import "./MapControls.scss";
|
|
3
|
+
export interface MapControlLayersItem {
|
|
4
|
+
id: string;
|
|
5
|
+
name: string;
|
|
6
|
+
}
|
|
7
|
+
export interface MapControlsProps {
|
|
8
|
+
className?: string;
|
|
9
|
+
style?: React.CSSProperties;
|
|
10
|
+
title: string;
|
|
11
|
+
titles: string[];
|
|
12
|
+
viewModeSwitch: boolean;
|
|
13
|
+
findLocation: boolean;
|
|
14
|
+
viewMode: boolean;
|
|
15
|
+
layersOpen?: boolean;
|
|
16
|
+
layersList?: MapControlLayersItem[];
|
|
17
|
+
layersActiveItems?: string[];
|
|
18
|
+
layersWidth?: number;
|
|
19
|
+
onViewModeSwitch: () => void;
|
|
20
|
+
onClickFindLocation: () => void;
|
|
21
|
+
onClickZoomIn: () => void;
|
|
22
|
+
onClickZoomOut: () => void;
|
|
23
|
+
onClickByWidth: () => void;
|
|
24
|
+
onChangeLayers: (value: string) => void;
|
|
25
|
+
}
|
|
26
|
+
declare const MapControls: React.FC<MapControlsProps>;
|
|
27
|
+
export default MapControls;
|
|
28
|
+
//# sourceMappingURL=MapControls.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as e,jsxs as c}from"react/jsx-runtime";import l from"classnames";import{useEffect as _,useLayoutEffect as H,useRef as r,useState as f,useMemo as I}from"react";import L from"../utils/useOnClickOutside";import{uiState as P}from"../store";import"./MapControls.scss";const q=({className:h,style:b,title:y,titles:o,viewMode:N,viewModeSwitch:w,findLocation:C,layersOpen:k=!1,layersList:d,layersActiveItems:g=[],layersWidth:v,onViewModeSwitch:x,onClickFindLocation:R,onClickZoomIn:O,onClickZoomOut:z,onClickByWidth:j,onChangeLayers:B})=>{const a=r(null),M=r(null),s=r(null),[t,p]=f(k),[u,m]=f("down");L(a,()=>p(!1));const i=I(()=>({find:o[0],zoomIn:o[1],zoomOut:o[2],mode:o[3],width:o[4],layers:o[5]}),[o]);_(()=>{s.current&&(P.mapControlsDOMRect=s.current.getBoundingClientRect())}),H(()=>{if(t&&a.current){const n=a.current.getBoundingClientRect();window.innerHeight-n.bottom<250?m("up"):m("down")}},[t]);const S=n=>B(n);return c("div",{ref:s,className:l("efp-map-controls",h),style:b,role:"toolbar","aria-label":y,children:[C&&e("button",{type:"button",className:"efp-map-control",title:i.find,onClick:R,children:e("i",{className:"icon-navigation","aria-hidden":"true"})}),d&&c("div",{className:"efp-layers-button",ref:a,children:[e("button",{type:"button",className:l("efp-map-control",{isActive:t}),title:i.layers,"aria-haspopup":"true","aria-expanded":t,onClick:()=>p(!t),children:e("i",{className:"icon-layers","aria-hidden":"true"})}),t&&e("div",{ref:M,className:l("efp-checked-panel",{"is-opens-up":u==="up","is-opens-down":u==="down"}),style:{minWidth:v},children:e("ul",{children:d.map(n=>c("li",{children:[e("input",{type:"checkbox",value:n.id,id:`layer-${n.id}`,checked:g.includes(n.id),onChange:()=>S(n.id)}),e("label",{htmlFor:`layer-${n.id}`,children:e("div",{className:"efp-checked-panel__item-name",children:n.name})})]},n.id))})})]}),w&&e("button",{type:"button",className:"efp-map-control",title:i.mode,onClick:x,children:e("i",{className:N?"icon-two-dim":"icon-three-dim","aria-hidden":"true"})}),c("div",{className:"efp-map-control-group",children:[e("button",{type:"button",className:"efp-map-control",title:i.zoomIn,onClick:O,children:e("i",{className:"icon-plus","aria-hidden":"true"})}),e("div",{className:"efp-map-control-divider"}),e("button",{type:"button",className:"efp-map-control",title:i.zoomOut,onClick:z,children:e("i",{className:"icon-minus","aria-hidden":"true"})})]}),e("button",{type:"button",className:"efp-map-control",title:i.width,onClick:j,children:e("i",{className:"icon-maximize","aria-hidden":"true"})})]})};export default q;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as d,jsxs as i}from"react/jsx-runtime";import"./MapLoader.scss";export function MapLoader(){return d("div",{className:"map-loader",style:{left:0},children:i("div",{className:"lds-grid",children:[d("div",{}),d("div",{}),d("div",{}),d("div",{}),d("div",{}),d("div",{}),d("div",{}),d("div",{}),d("div",{})]})})}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import type { MaplibreViewMode } from '../../store/MaplibreStore';
|
|
3
|
+
/**
|
|
4
|
+
* Main MobX adapter component that bridges application state to the
|
|
5
|
+
* state-agnostic MaplibreWrapper.
|
|
6
|
+
*
|
|
7
|
+
* Reused renderer config modules still read singleton stores internally;
|
|
8
|
+
* MaplibreWrapper itself remains pure and decoupled from application state.
|
|
9
|
+
*/
|
|
10
|
+
interface MaplibreAdapterProps {
|
|
11
|
+
viewMode: MaplibreViewMode;
|
|
12
|
+
}
|
|
13
|
+
declare const MaplibreAdapter: React.FunctionComponent<MaplibreAdapterProps>;
|
|
14
|
+
export default MaplibreAdapter;
|
|
15
|
+
//# sourceMappingURL=MaplibreAdapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{jsx as ye}from"react/jsx-runtime";import{useCallback as z,useEffect as Y,useMemo as _,useRef as h,useState as he}from"react";import{runInAction as ve}from"mobx";import{observer as be}from"mobx-react-lite";import Me from"../../core/Rect";import u,{boothStore as Le,uiState as r}from"../../store";import{fpGeo as W}from"../../data/fpGeo";import xe,{MAP_DIM_LAYER_ID as H}from"./MaplibreWrapper";import{calculateTransformMatrix as Se}from"./utils/solver";import{convertLocalToGps as N}from"../../utils/gps";import Ce from"../Map/drawing/config/config-all";import{Rect as Re}from"../Map/drawing/config/Rect";import Pe from"../Map/drawing/config/config-wf";import{configMarkers as Te,getMarkerFromClick as De}from"../Map/drawing/config/config-markers";import{loadLayersImages as Ee}from"../Map/drawing/config/loadBoothsImages";import{createSceneDef as _e}from"../../renderer";import{getLayerSvg as ke,svgArea as v}from"../../data/svg";import I from"../../tools/settings";import Ae from"color";import{useReaction as x}from"../../utils/mobx";import{LayerMode as J}from"../../store/LayerStore";import Q from"../Map/booth-by-xy";import{pickDefaultScene as q}from"../../renderer/engine-core/defs";import{useBuildRoute as Be}from"../Map/traffic/useBuildRoute";import{useManageTraffic as Ne}from"../Map/traffic/useManageTraffic";import{applyVenueDimValue as Ie,createDimmingAnimator as ee,DIM_INTENSITY as te,VENUE_DIM_INTENSITY as we}from"../../utils/dimming";const Fe={style:"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json"},Oe={pitch:30,maxPitch:70,minZoom:14},Ue={pitch:0,maxPitch:0,minZoom:14},ne="routes-api.expofp.com",oe=3,re=.02;function ze(t){const n=[[v.x1,v.y1],[v.x2,v.y1],[v.x2,v.y2],[v.x1,v.y2]].map(([p,M])=>N(p,M,t));if(!n.every(([p,M])=>Number.isFinite(p)&&Number.isFinite(M)))return;const s=n.map(([p])=>p),d=n.map(([,p])=>p),o=Math.min(...s),b=Math.max(...s),f=Math.min(...d),R=Math.max(...d),L=Math.max((b-o)*oe,re),S=Math.max((R-f)*oe,re);return[[o-L,f-S],[b+L,R+S]]}function Ge(){if(!W?.properties?.config)return null;const t=W.properties.config,n=(t.p0.lng+t.p2.lng)/2,s=(t.p0.lat+t.p2.lat)/2;return{center:[n,s],bearing:t.bearing??0,zoom:16,gpsConfig:t}}function ie(t){return t?.shape?Le.booths.find(n=>n.shapes?.some(s=>s.shape===t.shape)):null}function G(t,n=new Map){if(t.name){const s=n.get(t.name)??[];s.push(t),n.set(t.name,s)}for(const s of t.children??[])s&&"children"in s&&G(s,n);return n}function se(t,n){t?.getLayer(H)&&(t.setPaintProperty(H,"fill-opacity",n),t.triggerRepaint())}function ae(t,n,s=!1){if(!t)return;t.setMinZoom(n.minZoom??null),t.setMaxZoom(n.maxZoom??null),t.setMaxBounds(n.maxBounds??null);const d=n.pitch,o=n.maxPitch,b=t.getPitch(),f=!!(s&&d!=null&&o!=null&&o<b);o!=null&&!f&&t.setMaxPitch(n.maxPitch),!(d==null||b===d)&&(s?(t.easeTo({pitch:d,duration:300}),f&&t.once("moveend",()=>t.setMaxPitch(o))):t.jumpTo({pitch:d}))}function w(t,n,s){if(!t||!n||!s||n.h===1/0||n.w===1/0||n.h<=0||n.w<=0)return;const d=N(n.x1,n.y1,s.gpsConfig),o=N(n.x2,n.y2,s.gpsConfig);t.fitBounds([d,o],{padding:50,duration:1e3,bearing:s.bearing})}function $e(){const t=u.fp?.maplibre??window.__efpMaplibre;return t?.style?{style:t.style}:t?.styleUrl?{style:t.styleUrl}:Fe}const Ve=be(function({viewMode:n}){const[s,d]=he(null),o=u.rendererService,b=h(null),f=h(null),R=h(null),L=h(ee(e=>{se(f.current,e*te)})),S=h(ee(e=>{Ie(o,e*we)})),p=h(null),M=h(null),k=h(null),$=h(null),P=h(null),a=_(()=>Ge(),[]),T=_(()=>a?{center:a.center,bearing:a.bearing,zoom:a.zoom}:null,[a]),V=_(()=>a?Se(a.gpsConfig,ke()?.getAttribute("units")):null,[a]),D=_(()=>({...n==="map2d"?Ue:Oe,maxBounds:a?ze(a.gpsConfig):void 0}),[a,n]),Z=h(D),ce=_(()=>$e(),[]);function j(){ve(()=>{u.layerStore.layers.forEach(e=>{e.configured=!1,e.children=[],e.loaded=!1}),u.layerStore.layersLoaded=!1})}Y(()=>{if(!a)return;let e=!1;const i=L.current,c=S.current;j();const m=Ce(o).then(l=>{if(e)return;const y=Ae(I.backgroundColor==="none"?"#ebebeb":I.backgroundColor).string("rgba"),g=_e(l,Re.fromCoreRect(v),y);d(g)}).catch(l=>{e||console.warn("Maplibre scene configuration failed.",l)});return()=>{e=!0,p.current?.(),M.current?.(),k.current?.(),p.current=null,M.current=null,k.current=null,j(),P.current=null;const l=b.current;m.finally(()=>o.disposeIfCurrent(l)),b.current=null,f.current=null,R.current=null,i.stop(),c.stop(),r.sceneDefReady=!1}},[a,o]);const le=z((e,i,c,m)=>{b.current=e,f.current=i,R.current=m,o.attach(e,c,m),P.current={rootLayer:c.rootLayer,defsByName:G(c.rootLayer)},ae(i,Z.current),L.current.setTarget(r.dimmed,{immediate:!0}),S.current.setTarget(r.dimmed,{immediate:!0}),p.current?.(),M.current?.(),k.current?.(),p.current=Pe(o),M.current=Te(o),k.current=(()=>{const g=({data:F})=>{if(r.setKioskModeEnabled)return;const{point:C,defs:O}=q(F),A=Q(C.x,C.y),B=ie(O[0]);r.hoveredBooth=A||B},E=()=>{r.setKioskModeEnabled||(r.hoveredBooth=null)},X=({data:F})=>{if(!r?.rootElement)return;window.__resett?.(),r.overlayPosition==="bottom"&&r.overlaySize==="full"&&u.showMap();const{point:C,defs:O}=q(F),{x:A,y:B}=C;if(r.onGetCoordsClick){const ge=u.layerStore.layers.find(U=>U.visible&&(U.mode===J.TurnedOn||U.mode===J.TurnedOff));r.onGetCoordsClick({x:A,y:B,z:ge?.name||null})}if(r.setKioskModeEnabled)return;r.onMarkerClick&&r.onMarkerClick(De(A,B,o.scale));const de=Q(C.x,C.y),pe=ie(O[0]);u.clickBooth(de||pe)},K=()=>window.__resett?.();return e.events.addEventListener("pointer:move",g),e.events.addEventListener("pointer:out",E),e.events.addEventListener("pointer:click",X),e.events.addEventListener("navigation:change",K),()=>{e.events.removeEventListener("pointer:move",g),e.events.removeEventListener("pointer:out",E),e.events.removeEventListener("pointer:click",X),e.events.removeEventListener("navigation:change",K)}})(),Ee(o);const l=o.ptScaleRegistry.invoke(o.scale||1);l.length&&o.update(...l);const y=o.rollRegistry.invoke(o.angle||0).flatMap(g=>Array.isArray(g)?g:[g]);y.length&&o.update(...y),u.layerStore.layersLoaded=!0,u.fp.onFpConfigured&&u.fp.onFpConfigured(),r.sceneDefReady=!0,m()},[o]);Y(()=>{Z.current=D,ae(f.current,D,!0)},[D]),x(()=>r.dimmed,e=>{L.current.setTarget(e),S.current.setTarget(e)});const ue=z(e=>{const i=L.current?.getValue()??(r.dimmed?1:0);se(e,i*te)},[]);x(()=>u.layerStore.layers.map(e=>`${e.name}:${e.visible?1:0}`),()=>{const e=o.scene;if(!e)return;P.current?.rootLayer!==e.rootLayer&&(P.current={rootLayer:e.rootLayer,defsByName:G(e.rootLayer)});const i=P.current.defsByName,c=[];for(const l of u.layerStore.layers){const y=i.get(l.name);if(y?.length)for(const g of y){const E=!l.visible;g.hidden!==E&&(g.hidden=E,c.push(g))}}c.length&&o.update(...c);const m=u.layerStore.layers.find(l=>l.visible&&!l.frozen&&!l.rootParent&&!l.pathway);!m||$.current===m.name||($.current=m.name,w(f.current,m.viewbox??m.rect,a))}),x(()=>r.moveToBooths,e=>{const i=f.current;if(!e||!i||!a)return;const c=e.filter(y=>y.rect);if(c.length===0)return;const m=c.map(y=>y.rect),l=Me.fromMultiple(m);w(i,l,a),r.moveToBooths=null}),x(()=>r.moveToRect,e=>{const i=f.current;!e||!i||!a||(w(i,e,a),r.moveToRect=null)}),x(()=>r.zoomBy,e=>{const i=f.current;!e||!i||(i.flyTo({zoom:i.getZoom()+(e>1?.5:-.5),animate:!0,duration:500}),r.zoomBy=null)}),x(()=>r.moveToLocation,e=>{const i=f.current,c=u.routeStore.currentPosition;if(!e||!i||!c)return;const m=Number.isFinite(c.lng)&&Number.isFinite(c.lat);if(!m&&!a)return;const l=m?[c.lng,c.lat]:N(c.x,c.y,a.gpsConfig);i.flyTo({center:l,animate:!0,duration:1e3}),i.once("moveend",()=>{r.moveToLocation=!1})}),x(()=>r.centerMap,e=>{const i=f.current;if(!e||!i||!a)return;const c=u.layerStore.rectangle||v;w(i,c,a),r.centerMap=!1}),Be({enabled:u.layerStore.layersLoaded&&r.buildRoute,rendererService:o}),Ne({permission:u.layerStore.layersLoaded,rendererService:o,dataJsonUrl:`https://${ne}/v1/routes?expo=${I.EXPO}`,websocketUrl:`wss://${ne}/locations?expo=${I.EXPO}`});const fe=z(e=>{console.warn("Maplibre map failed to load; falling back to floorplan mode.",e),u.maplibreStore.deactivateMaplibre()},[]);if(!a||!T||!V||!s)return null;const me=`${T.center.join(",")}:${T.bearing}:${T.zoom}`;return ye(xe,{sceneDef:s,geoConfig:T,staticTransform:V,tileSource:ce,mapOptions:D,onRendererReady:le,onMapDimLayerReady:ue,onMapLoadError:fe},me)});export default Ve;
|