@expofp/floorplan 3.7.5 → 3.7.7
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/dist/browser/{Button-C2KZSXb2.js → Button-be7-qIF6.js} +8 -8
- package/dist/browser/{CookieConsent-Cq4qcueB.js → CookieConsent-B03ekG96.js} +7 -7
- package/dist/browser/{Debug-D1JNigN7.js → Debug-B1UNFScp.js} +7 -7
- package/dist/browser/{Demo-XVDEqvrA.js → Demo-CTtUvDQs.js} +15 -13
- package/dist/browser/{Free-C3wcDnvz.js → Free-BZd4QeSR.js} +15 -13
- package/dist/browser/{Gallery-CGxt4BEQ.js → Gallery-z592Fa7j.js} +2739 -2739
- package/dist/browser/{GpsLoader-BL9r9aBb.js → GpsLoader-DWmPBJyy.js} +61 -64
- package/dist/browser/{KioskStore-CEjAu1fS.js → KioskStore-BSqmbs3E.js} +7 -7
- package/dist/browser/{MaplibreAdapter-CFCATr0R.js → MaplibreAdapter-DIRCFD3I.js} +100 -100
- package/dist/browser/{Modal-DwvgaUJ4.js → Modal-Ud1JA7hD.js} +18 -18
- package/dist/browser/{PermissionNotice-Bfmg473m.js → PermissionNotice-BbZJ6-58.js} +11 -11
- package/dist/browser/{SetKioskMode-DgZnzdyw.js → SetKioskMode-34D-0WuZ.js} +15 -15
- package/dist/browser/ShowKiosk-BtV44Rii.js +27 -0
- package/dist/browser/{TouchHand-CW3feM7g.js → TouchHand-CNtsbSKe.js} +5 -7
- package/dist/browser/{ViewerMenuPanel-DTLGFJdO.js → ViewerMenuPanel-pOtBzzsw.js} +9 -11
- package/dist/browser/{add-debug-secret-listener-DLq_05Ya.js → add-debug-secret-listener-BGsmVhBN.js} +1 -1
- package/dist/browser/{boolean-editor-CPZmUe0k.js → boolean-editor-Cl6OlT2C.js} +9 -9
- package/dist/browser/{bootIntercom-OQUPpNv5.js → bootIntercom-uRX6nuBs.js} +2 -2
- package/dist/browser/{browser-CuHRVR45.js → browser-BHDrnFTi.js} +2 -2
- package/dist/browser/bundle.json +57 -57
- package/dist/browser/{classnames-Bua-vCkl.js → classnames-QBzO007b.js} +2 -2
- package/dist/browser/{client-BtBjpMA2.js → client-ygx4Nlgh.js} +4 -4
- package/dist/browser/{components-Bk-VYz6V.js → components-BnDl8_Vi.js} +2164 -2170
- package/dist/browser/{createWayfinding-BcyMyZfV.js → createWayfinding-Buli80Pv.js} +408 -408
- package/dist/browser/{debug-overlay-Bee-ID_e.js → debug-overlay-DYbF5EFf.js} +10 -10
- package/dist/browser/{debug-ui-C6Mu7jmE.js → debug-ui-v2AnaEsF.js} +6 -6
- package/dist/browser/{dist-Ypj0lz96.js → dist-64g9ko-T.js} +6 -6
- package/dist/browser/{dist-C3qJPKIL.js → dist-DtdB9fNn.js} +5 -5
- package/dist/browser/{dist-C6Bwrbur.js → dist-lpbRWIMA.js} +3 -3
- package/dist/browser/{efp-debug-init-BmXxwF3h.js → efp-debug-init-V-KZyjzu.js} +2 -2
- package/dist/browser/{enum-editor-BtytGwbn.js → enum-editor-BvuPhm1F.js} +11 -11
- package/dist/browser/{event-not-found-DtnrzyTS.js → event-not-found-B98QInDb.js} +1 -1
- package/dist/browser/{exports-DwNV9Fce.js → exports-DYQuAXct.js} +36 -36
- package/dist/browser/{favicon-Bg82OSpr.js → favicon-BfWHVf7B.js} +1 -1
- package/dist/browser/{fetch-retry.umd-C5JqTz5u.js → fetch-retry.umd-DRv91bwh.js} +2 -2
- package/dist/browser/{flex-BoTx9ho3.js → flex-x_PLPZk0.js} +5 -5
- package/dist/browser/{floorplan.loader-CJNw0Cge.js → floorplan.loader-OxPB-Vst.js} +856 -831
- package/dist/browser/{floorplan.ready-DOhcGKtR.js → floorplan.ready-CNMM3R0a.js} +374 -372
- package/dist/browser/{fuse-DJzKEeDA.js → fuse-B5q1zvj5.js} +2 -2
- package/dist/browser/{i18n-Cir_gINd.js → i18n-0QOfbI49.js} +664 -659
- package/dist/browser/index.js +11 -11
- package/dist/browser/{jsx-runtime-DCZPOiVu.js → jsx-runtime-DWNe7L8O.js} +2 -2
- package/dist/browser/{lib-DQt-k78K.js → lib-Ct9T4Ext.js} +4 -4
- package/dist/browser/{is-debug-0pBDODSU.js → loadImage-B1THebfH.js} +13 -16
- package/dist/browser/{main-CIgf7ksx.js → main-BpCLd01e.js} +1 -1
- package/dist/browser/{mobx-pMkzJ1bN.js → mobx-D6-09X_8.js} +4 -4
- package/dist/browser/{particles.min-Q2r1icQ9.js → particles.min-O_0S2sjU.js} +2 -2
- package/dist/browser/{prop-types-GavRCOPR.js → prop-types-C5Q7z09t.js} +2 -2
- package/dist/browser/{react-BlsmLtRd.js → react-CE6J-REN.js} +2 -2
- package/dist/browser/{react-dom-DgLQ5tL0.js → react-dom-Bz1SyK6u.js} +3 -3
- package/dist/browser/{reset-all-settings-CxUO3y2o.js → reset-all-settings-CxljY5vH.js} +7 -7
- package/dist/browser/{rolldown-runtime-C9CB_XOZ.js → rolldown-runtime-MSULzasX.js} +1 -1
- package/dist/browser/{settings-O5svYOVy.js → settings-LxDXcdq2.js} +2 -2
- package/dist/browser/{settings-item-354rDOkM.js → settings-item-BTHbu4gE.js} +6 -6
- package/dist/browser/{store-CVf_IY9i.js → store-FxMdLToE.js} +10175 -10152
- package/dist/browser/{string-editor-C1jvvzZY.js → string-editor-CLZ-xXO6.js} +7 -7
- package/dist/browser/{theme-BewQdo5w.js → theme-CKyrzkaN.js} +8 -8
- package/dist/browser/{ui-DeHsnIKK.js → ui-CaURu_-A.js} +8 -8
- package/dist/browser/{useRenderTarget-Cpug5PXZ.js → useRenderTarget-DlU37Ln7.js} +4 -4
- package/dist/esm/components/AlertContainer.d.ts +1 -1
- package/dist/esm/components/Autocomplete.d.ts +1 -1
- package/dist/esm/components/Autocomplete.js +1 -1
- package/dist/esm/components/BaseFilterModal.d.ts +1 -1
- package/dist/esm/components/Booth/Booth.d.ts +1 -1
- package/dist/esm/components/Booth/Booth.js +1 -1
- package/dist/esm/components/Booth/BoothOnHold.js +1 -1
- package/dist/esm/components/Booth/BoothReserved.js +1 -1
- package/dist/esm/components/Booth/BoothSpecial.d.ts +2 -2
- package/dist/esm/components/Booth/BoothWithoutExhibitor.d.ts +1 -1
- package/dist/esm/components/Booth/BoothWithoutExhibitor.js +1 -1
- package/dist/esm/components/Category.d.ts +1 -1
- package/dist/esm/components/Category.js +1 -1
- package/dist/esm/components/CategoryFilterModal.js +1 -1
- package/dist/esm/components/CookieConsent.js +1 -1
- package/dist/esm/components/Debug.d.ts +1 -1
- package/dist/esm/components/Debug.js +1 -1
- package/dist/esm/components/Demo.d.ts +1 -1
- package/dist/esm/components/Demo.js +1 -1
- package/dist/esm/components/EntityItemContainer.d.ts +1 -1
- package/dist/esm/components/EntityList.d.ts +1 -1
- package/dist/esm/components/EntityList.js +1 -1
- package/dist/esm/components/EntityListRow.d.ts +2 -2
- package/dist/esm/components/EntityListRow.js +1 -1
- package/dist/esm/components/ErrorBoundary.js +1 -1
- package/dist/esm/components/Event.d.ts +1 -1
- package/dist/esm/components/Event.js +1 -1
- package/dist/esm/components/EventBadge.d.ts +2 -2
- package/dist/esm/components/EventBadge.js +1 -1
- package/dist/esm/components/Exhibitor.d.ts +1 -1
- package/dist/esm/components/Exhibitor.js +1 -1
- package/dist/esm/components/Filter.js +1 -1
- package/dist/esm/components/Free.d.ts +1 -1
- package/dist/esm/components/Free.js +1 -1
- package/dist/esm/components/Gallery/Gallery.d.ts +1 -1
- package/dist/esm/components/Gallery/Gallery.js +1 -1
- package/dist/esm/components/Gallery/GalleryModal/GalleryModal.d.ts +1 -1
- package/dist/esm/components/Gallery/GalleryModal/GalleryModal.js +1 -1
- package/dist/esm/components/Gallery/TransformImg/TransformImg.d.ts +1 -1
- package/dist/esm/components/Gallery/TransformImg/TransformImg.js +1 -1
- package/dist/esm/components/GpsLoader.js +1 -1
- package/dist/esm/components/IntercomLauncher.d.ts +1 -1
- package/dist/esm/components/IntercomLauncher.js +1 -1
- package/dist/esm/components/Kiosk/KioskStore.d.ts +3 -3
- package/dist/esm/components/Kiosk/SetKiosk/Confirm/ConfirmDialog.d.ts +1 -1
- package/dist/esm/components/Kiosk/SetKiosk/FormInput/RangeInput.d.ts +1 -1
- package/dist/esm/components/Kiosk/SetKiosk/Message/InfoMessage.d.ts +1 -1
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskComponent.d.ts +1 -1
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskComponent.js +1 -1
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskForm.d.ts +1 -1
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskForm.js +1 -1
- package/dist/esm/components/Kiosk/SetKiosk/SetKioskStatusMessages.d.ts +1 -1
- package/dist/esm/components/Kiosk/SetKioskMode.js +1 -1
- package/dist/esm/components/Kiosk/ShowKiosk.js +1 -1
- package/dist/esm/components/Kiosk/kioskApi.d.ts +1 -1
- package/dist/esm/components/Language.js +1 -1
- package/dist/esm/components/LanguageRow.d.ts +1 -1
- package/dist/esm/components/LanguageRow.js +1 -1
- package/dist/esm/components/LargeMessage.d.ts +1 -1
- package/dist/esm/components/LargeMessage.js +1 -1
- package/dist/esm/components/Layout.d.ts +1 -1
- package/dist/esm/components/Layout.js +1 -1
- package/dist/esm/components/LevelSelector.d.ts +1 -1
- package/dist/esm/components/LevelSelector.js +1 -1
- package/dist/esm/components/List.d.ts +1 -1
- package/dist/esm/components/List.js +1 -1
- package/dist/esm/components/LogoOverlay.d.ts +1 -1
- package/dist/esm/components/LogoOverlay.js +1 -1
- package/dist/esm/components/Map/Map.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-all.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-bg.d.ts +2 -2
- package/dist/esm/components/Map/drawing/config/config-bg.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-booth-badge.d.ts +1 -1
- package/dist/esm/components/Map/drawing/config/config-booth-badge.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-booth-bg.d.ts +4 -4
- package/dist/esm/components/Map/drawing/config/config-booth-bg.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-booth-bookmark.d.ts +2 -2
- package/dist/esm/components/Map/drawing/config/config-booth-bookmark.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-booth-border.d.ts +2 -2
- package/dist/esm/components/Map/drawing/config/config-booth-border.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-booth-labels-special.d.ts +3 -3
- package/dist/esm/components/Map/drawing/config/config-booth-labels-special.js +2 -2
- package/dist/esm/components/Map/drawing/config/config-booth-labels.d.ts +4 -4
- package/dist/esm/components/Map/drawing/config/config-booth-labels.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-booths.d.ts +1 -1
- package/dist/esm/components/Map/drawing/config/config-booths.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-load-layer.d.ts +1 -1
- package/dist/esm/components/Map/drawing/config/config-load-layer.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-markers.js +1 -1
- package/dist/esm/components/Map/drawing/config/loadBoothsImages.d.ts +3 -3
- package/dist/esm/components/Map/drawing/config/loadBoothsImages.js +1 -1
- package/dist/esm/components/Map/pointInConvexQuad.d.ts +1 -1
- package/dist/esm/components/Map/traffic/useBuildRoute.js +2 -2
- package/dist/esm/components/Map/traffic/useManageTraffic.js +1 -1
- package/dist/esm/components/MapControls.d.ts +1 -1
- package/dist/esm/components/MapControls.js +1 -1
- package/dist/esm/components/Maplibre/MaplibreAdapter.d.ts +1 -1
- package/dist/esm/components/Maplibre/MaplibreWrapper.d.ts +1 -2
- package/dist/esm/components/Maplibre/useCameraReactions.d.ts +3 -3
- package/dist/esm/components/Maplibre/useDimming.d.ts +4 -4
- package/dist/esm/components/Maplibre/useLayerVisibilitySync.d.ts +4 -4
- package/dist/esm/components/Maplibre/useRendererEvents.d.ts +2 -2
- package/dist/esm/components/Maplibre/useWayfindingAndMarkers.d.ts +2 -2
- package/dist/esm/components/Maplibre/utils/geo-config.d.ts +3 -3
- package/dist/esm/components/Maplibre/utils/layer-defs.d.ts +1 -1
- package/dist/esm/components/Maplibre/utils/map-helpers.d.ts +2 -2
- package/dist/esm/components/MarketMaterialList.d.ts +1 -1
- package/dist/esm/components/MarketMaterialList.js +1 -1
- package/dist/esm/components/Menu.js +1 -1
- package/dist/esm/components/MobileToggleButton.d.ts +1 -1
- package/dist/esm/components/MobileToggleButton.js +1 -1
- package/dist/esm/components/Modal.d.ts +1 -1
- package/dist/esm/components/Modal.js +1 -1
- package/dist/esm/components/MultiSelectGroups.d.ts +1 -1
- package/dist/esm/components/MultiSelectGroups.js +1 -1
- package/dist/esm/components/Overlay.d.ts +1 -1
- package/dist/esm/components/Overlay.js +1 -1
- package/dist/esm/components/OverlayContainer.js +1 -1
- package/dist/esm/components/OverlayGripContainer.js +1 -1
- package/dist/esm/components/OverlayParticles.d.ts +1 -1
- package/dist/esm/components/OverlayParticles.js +1 -1
- package/dist/esm/components/RebookingNotes.d.ts +1 -1
- package/dist/esm/components/RebookingNotes.js +1 -1
- package/dist/esm/components/RebookingRadioGroup.d.ts +1 -1
- package/dist/esm/components/RebookingRadioGroup.js +1 -1
- package/dist/esm/components/RoutePlanner/RoutePlanner.d.ts +1 -1
- package/dist/esm/components/RoutePlanner/RoutePlanner.js +1 -1
- package/dist/esm/components/RoutePlanner/RoutePlannerHeader.js +1 -1
- package/dist/esm/components/RoutePlanner/RoutePlannerStopItem.d.ts +1 -1
- package/dist/esm/components/RoutePlanner/RoutePlannerStopItem.js +1 -1
- package/dist/esm/components/RouteQR.d.ts +1 -1
- package/dist/esm/components/RouteQR.js +1 -1
- package/dist/esm/components/Schedule.d.ts +2 -2
- package/dist/esm/components/Schedule.js +1 -1
- package/dist/esm/components/ScrollableRowContainer.js +1 -1
- package/dist/esm/components/Search.d.ts +1 -1
- package/dist/esm/components/Search.js +1 -1
- package/dist/esm/components/SearchBox.d.ts +1 -1
- package/dist/esm/components/SearchBox.js +1 -1
- package/dist/esm/components/SearchButtons/SearchButton.d.ts +1 -1
- package/dist/esm/components/SearchButtons/SearchButton.js +1 -1
- package/dist/esm/components/SearchButtons/SearchButtons.d.ts +1 -1
- package/dist/esm/components/SearchButtons/SearchButtons.js +1 -1
- package/dist/esm/components/SearchButtons/SearchSubButton.d.ts +1 -1
- package/dist/esm/components/SearchButtons/SearchSubButton.js +1 -1
- package/dist/esm/components/SearchButtons/SearchSubButtons.d.ts +1 -1
- package/dist/esm/components/SearchButtons/SearchSubButtons.js +1 -1
- package/dist/esm/components/Sessions.d.ts +1 -1
- package/dist/esm/components/Sessions.js +1 -1
- package/dist/esm/components/SessionsFiltersModal.d.ts +1 -1
- package/dist/esm/components/SessionsFiltersModal.js +1 -1
- package/dist/esm/components/Share.d.ts +1 -1
- package/dist/esm/components/Share.js +1 -1
- package/dist/esm/components/Shortcuts/ShortcutButton.d.ts +2 -2
- package/dist/esm/components/Shortcuts/ShortcutButton.js +1 -1
- package/dist/esm/components/Shortcuts/ShortcutsFiltersButton.d.ts +1 -1
- package/dist/esm/components/Shortcuts/ShortcutsFiltersButton.js +1 -1
- package/dist/esm/components/Shortcuts/ShortcutsToolbar.d.ts +1 -1
- package/dist/esm/components/Shortcuts/ShortcutsToolbar.js +1 -1
- package/dist/esm/components/ShowMoreButton.d.ts +1 -1
- package/dist/esm/components/ShowMoreButton.js +1 -1
- package/dist/esm/components/SidebarActions.d.ts +1 -1
- package/dist/esm/components/SidebarActions.js +1 -1
- package/dist/esm/components/SimpleRow.d.ts +1 -1
- package/dist/esm/components/SimpleRow.js +1 -1
- package/dist/esm/components/Speaker.d.ts +1 -1
- package/dist/esm/components/Speaker.js +1 -1
- package/dist/esm/components/Speakers.d.ts +1 -1
- package/dist/esm/components/Speakers.js +1 -1
- package/dist/esm/components/SpeakersFiltersModal.d.ts +1 -1
- package/dist/esm/components/SpeakersFiltersModal.js +1 -1
- package/dist/esm/components/Toast/ToastContainer.d.ts +1 -1
- package/dist/esm/components/Toast/ToastContainer.js +1 -1
- package/dist/esm/components/Toast/ToastProvider.js +1 -1
- package/dist/esm/components/TourPoints.js +1 -1
- package/dist/esm/components/Tours.d.ts +1 -1
- package/dist/esm/components/Tours.js +1 -1
- package/dist/esm/components/ToursList.d.ts +2 -2
- package/dist/esm/components/ToursList.js +1 -1
- package/dist/esm/components/ViewerMenuPanel.d.ts +1 -1
- package/dist/esm/components/ViewerMenuPanel.js +1 -1
- package/dist/esm/components/WayInformation.d.ts +1 -1
- package/dist/esm/components/WayInformation.js +1 -1
- package/dist/esm/components/Wayfinding.d.ts +1 -1
- package/dist/esm/components/Wayfinding.js +1 -1
- package/dist/esm/components/WayfindingFloorSelectorContainer.d.ts +1 -1
- package/dist/esm/components/WayfindingTemplate.d.ts +4 -4
- package/dist/esm/components/WayfindingTemplate.js +1 -1
- package/dist/esm/components/Ws.d.ts +1 -1
- package/dist/esm/components/Ws.js +1 -1
- package/dist/esm/components/YahRow.d.ts +1 -1
- package/dist/esm/components/YahRow.js +1 -1
- package/dist/esm/components/gps/GpsManager.d.ts +1 -1
- package/dist/esm/components/gps/GpsManager.js +1 -1
- package/dist/esm/components/gps/GpsPermissionRequest.js +1 -1
- package/dist/esm/components/gps/useUserLocationAndHeading.d.ts +1 -1
- package/dist/esm/components/gps/useUserLocationAndHeading.js +1 -1
- package/dist/esm/components/gps/utils.d.ts +1 -1
- package/dist/esm/data/fpGeo.d.ts +1 -1
- package/dist/esm/data/index.d.ts +1 -1
- package/dist/esm/data/svg.js +1 -1
- package/dist/esm/data/validate-data.d.ts +1 -1
- package/dist/esm/floorplan.loader.js +1 -1
- package/dist/esm/floorplan.ready.d.ts +2 -2
- package/dist/esm/floorplan.ready.js +1 -1
- package/dist/esm/hooks/useDragGesture.js +1 -1
- package/dist/esm/hooks/useURLFilters.d.ts +1 -1
- package/dist/esm/hooks/useURLFilters.js +1 -1
- package/dist/esm/hooks/useWindowSize.js +1 -1
- package/dist/esm/intercom/shouldLoad.d.ts +2 -2
- package/dist/esm/load.d.ts +3 -3
- package/dist/esm/services/URLFilterManager.d.ts +1 -1
- package/dist/esm/services/URLFilterManager.js +1 -1
- package/dist/esm/services/routing.js +1 -1
- package/dist/esm/store/BaseFilterStore.d.ts +1 -1
- package/dist/esm/store/BookmarksStore.js +1 -1
- package/dist/esm/store/BoothStore.d.ts +2 -2
- package/dist/esm/store/BoothStore.js +1 -1
- package/dist/esm/store/CategoryFilterStore.d.ts +2 -2
- package/dist/esm/store/CategoryFilterStore.js +1 -1
- package/dist/esm/store/CategoryStore.d.ts +1 -1
- package/dist/esm/store/ExhibitorStore.d.ts +1 -1
- package/dist/esm/store/ExhibitorStore.js +1 -1
- package/dist/esm/store/HeatmapStore.d.ts +3 -3
- package/dist/esm/store/HeatmapStore.js +1 -1
- package/dist/esm/store/LayerStore.d.ts +1 -1
- package/dist/esm/store/LayerStore.js +1 -1
- package/dist/esm/store/MaplibreStore.js +1 -1
- package/dist/esm/store/RootStore.d.ts +15 -15
- package/dist/esm/store/RootStore.js +1 -1
- package/dist/esm/store/RoutePlannerStore.d.ts +2 -2
- package/dist/esm/store/RoutePlannerStore.js +1 -1
- package/dist/esm/store/RouteStore.d.ts +1 -1
- package/dist/esm/store/RouteStore.js +1 -1
- package/dist/esm/store/SearchStore.js +1 -1
- package/dist/esm/store/SessionsFilterStore.d.ts +2 -2
- package/dist/esm/store/ShortcutRegistry.d.ts +1 -1
- package/dist/esm/store/SpeakerStore.d.ts +1 -1
- package/dist/esm/store/SubButtonProvider.d.ts +1 -1
- package/dist/esm/store/SubButtonRegistry.d.ts +2 -2
- package/dist/esm/store/ToursStore.js +1 -1
- package/dist/esm/store/UIState.d.ts +6 -6
- package/dist/esm/store/UIState.js +1 -1
- package/dist/esm/store/init/index.js +1 -1
- package/dist/esm/store/init/init-booths.js +1 -1
- package/dist/esm/store/init/init-events.js +1 -1
- package/dist/esm/store/init/init-exhibitors.js +1 -1
- package/dist/esm/store/init/init-heatmap.js +1 -1
- package/dist/esm/store/init/init-layers.js +1 -1
- package/dist/esm/store/init/init-ui.js +1 -1
- package/dist/esm/store/providers/SearchShortcutProvider.d.ts +1 -2
- package/dist/esm/store/providers/SessionsShortcutProvider.d.ts +1 -1
- package/dist/esm/store/providers/SessionsSubButtonProvider.d.ts +2 -2
- package/dist/esm/store/providers/SessionsSubButtonProvider.js +1 -1
- package/dist/esm/store/providers/SpeakerShortcutProvider.d.ts +1 -1
- package/dist/esm/store/search-buttons/SearchButtonsActions.d.ts +2 -2
- package/dist/esm/store/search-buttons/SearchButtonsActions.js +1 -1
- package/dist/esm/store/search-buttons/SearchButtonsFactory.d.ts +3 -3
- package/dist/esm/store/search-buttons/SearchButtonsFactory.js +1 -1
- package/dist/esm/store/search-buttons/SearchButtonsFilters.d.ts +2 -2
- package/dist/esm/store/search-buttons/SearchButtonsState.d.ts +1 -1
- package/dist/esm/store/search-buttons/SearchButtonsState.js +1 -1
- package/dist/esm/store/search-buttons/SearchButtonsStore.d.ts +1 -1
- package/dist/esm/store/search-buttons/SearchButtonsStore.js +1 -1
- package/dist/esm/store/search-buttons/utils.d.ts +1 -1
- package/dist/esm/store/search-buttons/utils.js +1 -1
- package/dist/esm/store/types.d.ts +3 -3
- package/dist/esm/storybook/decorators/StoryWrapper.js +1 -1
- package/dist/esm/storybook/decorators/WithResize.js +1 -1
- package/dist/esm/tools/gtag.js +1 -1
- package/dist/esm/tools/loaders.js +1 -1
- package/dist/esm/tools/sentry.d.ts +2 -2
- package/dist/esm/tools/sentry.js +1 -1
- package/dist/esm/ui/Alert/Alert.d.ts +1 -2
- package/dist/esm/ui/Alert/Alert.js +1 -1
- package/dist/esm/ui/Badge/Badge.d.ts +1 -2
- package/dist/esm/ui/Badge/Badge.js +1 -1
- package/dist/esm/ui/Button/Button.d.ts +1 -2
- package/dist/esm/ui/Button/Button.js +1 -1
- package/dist/esm/ui/Checkbox/Checkbox.d.ts +1 -1
- package/dist/esm/ui/Checkbox/Checkbox.js +1 -1
- package/dist/esm/ui/CheckboxButton/CheckboxButton.d.ts +1 -1
- package/dist/esm/ui/CheckboxButton/CheckboxButton.js +1 -1
- package/dist/esm/ui/Draggable/Draggable.js +1 -1
- package/dist/esm/ui/EntityItem/EntityItem.d.ts +1 -1
- package/dist/esm/ui/EntityItem/EntityItem.js +1 -1
- package/dist/esm/ui/HeatmapLegend/HeatmapLegend.d.ts +1 -1
- package/dist/esm/ui/HeatmapLegend/HeatmapLegend.js +1 -1
- package/dist/esm/ui/LevelBadge/LevelBadge.d.ts +1 -1
- package/dist/esm/ui/OverlayGrip/OverlayGrip.d.ts +1 -1
- package/dist/esm/ui/OverlayGrip/OverlayGrip.js +1 -1
- package/dist/esm/ui/PermissionNotice/PermissionNotice.d.ts +1 -1
- package/dist/esm/ui/PermissionNotice/PermissionNotice.js +1 -1
- package/dist/esm/ui/Radio/Radio.d.ts +1 -1
- package/dist/esm/ui/Radio/Radio.js +1 -1
- package/dist/esm/ui/ScrollableRow/ScrollableRow.d.ts +1 -1
- package/dist/esm/ui/ScrollableRow/ScrollableRow.js +1 -1
- package/dist/esm/ui/Spinner/Spinner.d.ts +1 -1
- package/dist/esm/ui/Spinner/Spinner.js +1 -1
- package/dist/esm/ui/ToggleButton/ToggleButton.d.ts +1 -1
- package/dist/esm/ui/ToggleButton/ToggleButton.js +1 -1
- package/dist/esm/ui/ToggleSwitch/ToggleSwitch.d.ts +1 -1
- package/dist/esm/ui/ToggleSwitch/ToggleSwitch.js +1 -1
- package/dist/esm/ui/TouchHand/TouchHand.d.ts +1 -1
- package/dist/esm/ui/WayfindingFloorSelector/WayfindingFloorSelector.d.ts +1 -1
- package/dist/esm/ui/WayfindingFloorSelector/WayfindingFloorSelector.js +1 -1
- package/dist/esm/utils/customCommands.js +1 -1
- package/dist/esm/utils/dimming.d.ts +1 -1
- package/dist/esm/utils/entity-storage.js +1 -1
- package/dist/esm/utils/eventFullBadge.d.ts +1 -1
- package/dist/esm/utils/gps.js +1 -1
- package/dist/esm/utils/i18n.d.ts +1 -1
- package/dist/esm/utils/i18n.js +1 -1
- package/dist/esm/utils/imageloader.d.ts +3 -3
- package/dist/esm/utils/loadCustomCss.d.ts +1 -1
- package/dist/esm/utils/loadIcons.d.ts +1 -1
- package/dist/esm/utils/loadImagesInBatches.js +1 -1
- package/dist/esm/utils/mergeExhibitors.d.ts +1 -1
- package/dist/esm/utils/mobx.d.ts +1 -1
- package/dist/esm/utils/mobx.js +1 -1
- package/dist/esm/utils/preview-exhibitor.d.ts +1 -1
- package/dist/esm/utils/sanitizeText.d.ts +2 -2
- package/dist/esm/utils/sanitizeText.js +1 -1
- package/dist/esm/utils/trackingParams.d.ts +3 -0
- package/dist/esm/utils/trackingParams.js +1 -0
- package/dist/esm/utils/useHeatmapData.d.ts +3 -3
- package/dist/esm/utils/useHeatmapOverlay.d.ts +3 -3
- package/dist/esm/wayfinding/adapters/floorContext.d.ts +1 -1
- package/dist/esm/wayfinding/adapters/graphDataSource.d.ts +1 -1
- package/dist/esm/wayfinding/adapters/kioskCanvas.js +1 -1
- package/dist/esm/wayfinding/adapters/positionInput.d.ts +2 -2
- package/dist/esm/wayfinding/core/__tests__/helpers.d.ts +1 -1
- package/dist/esm/wayfinding/core/geometry/pointInPolygon.d.ts +3 -3
- package/dist/esm/wayfinding/core/graph/buildNGraph.d.ts +4 -4
- package/dist/esm/wayfinding/core/graph/findShortestPath.d.ts +1 -1
- package/dist/esm/wayfinding/core/graph/findShortestPath.js +1 -1
- package/dist/esm/wayfinding/core/graph/graphCache.d.ts +1 -1
- package/dist/esm/wayfinding/core/graph/linkCost.d.ts +1 -1
- package/dist/esm/wayfinding/core/graph/pathfinder/aStarPathFinder.d.ts +1 -1
- package/dist/esm/wayfinding/core/graph/pathfinder/aStarPathFinder.js +1 -1
- package/dist/esm/wayfinding/core/position/distanceToRoute.d.ts +1 -1
- package/dist/esm/wayfinding/core/position/rerouteController.d.ts +1 -1
- package/dist/esm/wayfinding/core/position/snapToRoute.d.ts +1 -1
- package/dist/esm/wayfinding/core/position/splitRouteByPoint.d.ts +1 -1
- package/dist/esm/wayfinding/core/rendering/computeTrailPoints.d.ts +1 -1
- package/dist/esm/wayfinding/core/rendering/computeTransitionPoints.d.ts +1 -1
- package/dist/esm/wayfinding/core/rendering/getVisibleRouteLines.d.ts +2 -2
- package/dist/esm/wayfinding/core/rendering/normalizeRouteDirection.d.ts +1 -1
- package/dist/esm/wayfinding/core/routing/buildMultiPointRoute.d.ts +1 -1
- package/dist/esm/wayfinding/core/routing/buildRoute.d.ts +1 -1
- package/dist/esm/wayfinding/core/routing/graphPointResolvers.d.ts +2 -2
- package/dist/esm/wayfinding/core/routing/routeResult.d.ts +1 -1
- package/dist/esm/wayfinding/handlers/yahHandler.d.ts +3 -3
- package/dist/esm/wayfinding/runtime/endpointView.d.ts +5 -5
- package/dist/esm/wayfinding/runtime/getRouteLines.d.ts +2 -2
- package/dist/esm/wayfinding/runtime/positionView.d.ts +3 -3
- package/dist/esm/wayfinding/runtime/routeLinesView.d.ts +2 -2
- package/dist/esm/wayfinding/runtime/routeRenderData.d.ts +1 -1
- package/dist/esm/wayfinding/runtime/trailView.d.ts +4 -4
- package/package.json +13 -12
- package/dist/browser/ShowKiosk-Ddu65pot.js +0 -27
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { BoothLabelDrawer } from "./config-booth-labels";
|
|
1
|
+
import { ImageDef, TextDef } from "@expofp/renderer";
|
|
3
2
|
import { RendererService } from "../../../../renderer";
|
|
4
3
|
import { FontSizeFactor } from "../../../../renderer";
|
|
5
|
-
import {
|
|
4
|
+
import { Booth, SpecialBooth } from "../../../../store/BoothStore";
|
|
5
|
+
import { BoothLabelDrawer } from "./config-booth-labels";
|
|
6
6
|
export default function configBoothLabelsSpecial(rendererService: RendererService, booth: Booth): BoothLabelSpecialDrawer | undefined;
|
|
7
7
|
declare class BoothLabelSpecialDrawer extends BoothLabelDrawer {
|
|
8
8
|
protected steps: FontSizeFactor[];
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
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})=>{
|
|
1
|
+
import{reaction as u}from"mobx";import{FONT_WEIGHT_PRIMARY_BOOTH as R,FONT_WEIGHT_PRIMARY_SPECIAL as x}from"../../../../constants";import{createTextDef as L,getRollValue as D,getRotation as v,shouldFlip as F,updateRectRotation as y,updateTextDefRotation as T}from"../../../../renderer";import{boothStore as P,heatmapStore as w,layersStore as z,uiState as l}from"../../../../store";import{SpecialBooth as k}from"../../../../store/BoothStore";import C from"../../../../tools/settings";import{getFont as I}from"./canvases";import{BoothLabelDrawer as M,getFontUrlByWeight as B,getMinZoomFactorForDot as W,isDirectionsMode as V}from"./config-booth-labels";import{Rect as d}from"./Rect";import _ from"./TextFitter";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 _(I,s,o),p.set(i,t),setTimeout(()=>p.delete(i),5e3)}return t}export default function H(i,t){if(!(!(t instanceof k)||t.noLabels))return new N(i,t)}class N extends M{steps;labelIsVertical;text;constructor(t,s){super(t,s);const o=s.borderWidth/2||P.borderWidth/2,n=this.booth.rect,S=Number(getComputedStyle(document.body).getPropertyValue(x))||Number(getComputedStyle(document.body).getPropertyValue(R))||500,g=B(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=L([{text:this.text,color:s.labelColor||C.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,z.layersLoaded],()=>{const e=V();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})=>{D(e)&&this.rendererService.onRoll(`booth-special-roll-${s.id}`,a=>{const r=this.shapeLabel.bounds.rotation;if(this.labelIsVertical)F(a,r)&&(this.shapeLabel.bounds.rotation=-r);else{const h=v(a,r);if(h!==void 0){const{size:c}=this.canvasRect;this.shapeLabel=T(this.shapeLabel,h),c.x!==c.y&&!this.shapeLabel.hidden&&(this.canvasRect=y(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: ${w.getTotalClicksByBooth(this.booth)}`;this.text=l.heatmap?`${t} - ${o}`:t}}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Booth } from "../../../../store/BoothStore";
|
|
2
1
|
import { ImageDef, Rect as RectShape, TextAlignment, TextDef } from "@expofp/renderer";
|
|
3
|
-
import { BoothDrawerBaseWithoutPainter } from "./BoothDrawerBase";
|
|
4
|
-
import { Exhibitor } from "../../../../store/ExhibitorStore";
|
|
5
2
|
import { RendererService } from "../../../../renderer";
|
|
6
|
-
import {
|
|
3
|
+
import { CustomFonts, FontSizeFactor } from "../../../../renderer";
|
|
4
|
+
import { Booth } from "../../../../store/BoothStore";
|
|
5
|
+
import { Exhibitor } from "../../../../store/ExhibitorStore";
|
|
6
|
+
import { BoothDrawerBaseWithoutPainter } from "./BoothDrawerBase";
|
|
7
7
|
type Prefix = {
|
|
8
8
|
fontSize: number;
|
|
9
9
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{reaction as E}from"mobx";import{FONT_WEIGHT_PRIMARY_BOOTH as N,FONT_WEIGHT_PRIMARY_EXHIBITOR as U,FONT_WEIGHT_SECONDARY_BOOTH as V,FONT_WEIGHT_SECONDARY_EXHIBITOR as Z}from"../../../../constants";import p from"../../../../data";import{createShapeDot as X,createTextDef as G,createTextDefLines as Y,DEFAULT_FONT_LIGHT_URL as $,DEFAULT_FONT_URL as W,getRollValue as k,getRotation as q,updateLinesScale as j,updateRectRotation as J,updateTextDefRotation as K}from"../../../../renderer";import{layersStore as B,uiState as f}from"../../../../store";import{RegularBooth as Q,SpecialBooth as ee}from"../../../../store/BoothStore";import x from"../../../../tools/settings";import{t as v}from"../../../../utils/i18n";import te from"../../../../utils/is-mobile";import ie from"../../../../utils/is-webview";import{isArabicText as se}from"../../../../utils/rtl";import{BoothDrawerBaseWithoutPainter as oe}from"./BoothDrawerBase";import{getFont as M}from"./canvases";import{Rect as _}from"./Rect";let D=x.boothLabelColor;x.EXPO==="tqs2021"&&(D="#000");const b=te||ie,z=r=>r.replace(" ","").substring(0,4).replace(/[0-9]/g,"3").replace(/[A-Z]/gi,"A"),C=document.createElement("canvas").getContext("2d");export default function ne(r,e){if(!(!(e instanceof Q)||e.noLabels))return new BoothLabelDrawer(r,e)}export function getMinZoomFactorForDot(r){return Array.isArray(r)&&r.length>0?Math.max(...r.map(e=>e)):typeof r=="number"?r:-0}export const isDirectionsMode=()=>!!(f.selectedRoute?.from&&f.selectedRoute?.to);export function getFontUrlByWeight(r,e=[],t="normal"){return[...e,{weight:500,url:W,style:"normal"},{weight:300,url:$,style:"normal"}].find(i=>+i.weight===r&&i.style===t)?.url||W}function S(r,e){return Number(getComputedStyle(document.body).getPropertyValue(r))||e}export function getBoothLabelWeights(){return{main:S(N,500),details:S(V,300)}}export function getExhibitorLabelWeights(){return{main:S(U,500),details:S(Z,300)}}export function getBadgeFontWeight(){return getExhibitorLabelWeights().details}const R="Details";export class BoothLabelDrawer extends oe{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=_.fromCoreRect(t.rect,t.rotate),this.paddingScaled=[4,4],this.padding=(t.borderWidth||x.boothBorderWidth)/2,this.topLeftAlignment={horizontal:f.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:R,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:R,short:!1}],t instanceof ee)return;this.exh=p.hideExhibitors?[]:p.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||D,0,this.fontUrls),_.fromCoreRect(this.booth.rect,this.booth.rotate),[...this.paddingScaled],{horizontal:"left",vertical:"top"}),this.getShapeDot();const n=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(!j(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},h=i=>{const o=i>=this.minZoomDotVisible&&i<=this.maxZoomDotVisible,s=this.shapeDot.source.width*i,a=this.shapeDot.source.height*i;if(!(!o&&this.shapeDot.hidden))return this.shapeDot.bounds.size={x:s,y:a},this.shapeDot.hidden=!o,this.shapeDot};E(()=>[this.booth.skipDim,f.selectedRoute,B.layersLoaded],()=>{if(!B.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)}),E(()=>f.mapSettings,({roll:i})=>{k(i)&&this.rendererService.onRoll(`booth-roll-${t.id}`,o=>{const s=q(o,this.shapeLabel.bounds.rotation),{size:a}=this.canvasRect;return s!==void 0&&(this.shapeLabel=K(this.shapeLabel,s),!this.shapeLabel.hidden&&!this.exh.length&&a.x!==a.y&&(this.canvasRect=J(this.canvasRect,s),this.calculateFontSizeFactors(),n(this.rendererService.scale),h(this.rendererService.scale))),[this.shapeLabel,this.shapeDot]})}),this.rendererService.onPtScale(`booth-label-${t.id}`,n),this.rendererService.onPtScale(`booth-dot-${t.id}`,h)}getShape(){return[this.shapeLabel,this.shapeDot]}getShapeDot(){this.shapeDot=X(this.canvasRect,this.booth.labelColor||D),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=[],n=[],h=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(p.onlyFeaturedExhibitors)t.push(...e.exhibitors.filter(s=>s.featured).map(s=>s.name));else if(o.length>0){t.push(...o.map(a=>a.name));const s=e.exhibitors.filter(a=>a.order===void 0);s.length>0&&t.push(v("and {{moreCount}} more",{moreCount:s.length}))}else e.exhibitors.length>h?t.push(`${e.exhibitors.length} ${p.exhibitorTermPlural}`):t.push(...e.exhibitors.map(s=>s.name));n.push(e.title||e.name)}else{const i=!!e.exhibitors.length;t.push(e.title||e.name),e.onHold?n.push(v("On Hold")):e.reserved?n.push(v("Reserved")):i||n.push(...e.exhibitors.map(o=>o.name).sort((o,s)=>o>s?1:-1)),e.size&&n.push(e.size.indexOf("/")>-1?e.size.substring(0,e.size.indexOf("/")).trim():e.size),e.price&&e.price!=="0"&&!f.previewMode&&n.push(e.price)}f.rtl&&t.forEach((i,o)=>{(i.endsWith(".")||i.endsWith("!")||i.endsWith("?"))&&(t[o]=t[o]+"\u200F"),se(i)&&(t[o]=t[o]+" ")}),this.lines=[t,n]}calculateFontSizeFactors(){let[e,t]=this.lines;const n=this.canvasRect,h=[],i=[],o=this.prefixes.slice(0,this.exh.length?this.prefixes.length:this.prefixes.length-1),{main:s,details:a}=this.exh.length?getExhibitorLabelWeights():getBoothLabelWeights();for(const{fontSize:l,short:d}of o){const m=l*devicePixelRatio,F=.9*l*devicePixelRatio,u=M(m,s),T=M(F,a),y=p.hideExhibitorBoothNumber||d;let A,w,L,g;if(this.exh.length)d?t=[]:t=this.lines[1],L=Math.max(...e.map(c=>this.measureText(c,u).width),...t.map(c=>this.measureText(c,T).width)),A=Math.max(...e.map(c=>this.exh.length?this.measureText(z(c),u).width:this.measureText(z(c),u).width+3+3),...t.map(c=>this.measureText(z(c),T).width)),g=m*e.length+F*t.length+devicePixelRatio*(e.length+t.length)+3,w=y?g/e.length:null;else{const c=e[0].replace(/[0-9]/g,"3").replace(/[A-Z]/g,"A"),P=4;L=this.measureText(c,u).width+3+3,g=m+P}const H=n.size.x/(A||L),I=n.size.y/(w||g),O=Math.min(H,I);h.push({scaleFactor:O,value:l}),!y&&i.push({scaleFactor:O,value:.9*l})}if(!this.exh.length){const l=h[h.length-1],d=this.prefixes.find(m=>m.name===R);h.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(a,this.rendererService.fontUrls)],this.minZoomDotVisible=getMinZoomFactorForDot(h.map(l=>l.scaleFactor)),this.fontSizes=[h,i]}calcArea(e,t){return Math.floor(Math.max(0,e)*Math.max(0,t)/1e3)}optimizationLevel(){return Math.min(p.viewOptimizationLevel?p.viewOptimizationLevel:Math.floor(this.calcArea(this.canvasRect.size.x,this.canvasRect.size.y)/5e3),3)}measureText(e,t){return C.font=t,C.measureText(e)}}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { Booth } from "../../../../store/BoothStore";
|
|
2
1
|
import { LayerDef } from "@expofp/renderer";
|
|
3
2
|
import { RendererService } from "../../../../renderer";
|
|
3
|
+
import { Booth } from "../../../../store/BoothStore";
|
|
4
4
|
export declare const BOOTHS_CHUNK_SIZE = 350;
|
|
5
5
|
export default function configBooths(rendererService: RendererService, layerID: string, booths: Booth[]): LayerDef;
|
|
6
6
|
//# sourceMappingURL=config-booths.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{SEPARATOR as s}from"../../../../constants";import{createImageDef as H}from"../../../../renderer";import T,{boothStore as U,uiState as W}from"../../../../store";import _ from"../../../../tools/settings";import{loadImagesInBatchesById as K}from"../../../../utils/loadImagesInBatches";import{toRadians as P}from"../../../../utils/math";import Z from"./config-booth-bg";import j from"./config-booth-bookmark";import q from"./config-booth-border";import z from"./config-booth-labels";import F from"./config-booth-labels-special";import{createBoothImg as G,getImageLayerName as J,mapBoothsLogos as M}from"./loadBoothsImages";import{Rect as f}from"./Rect";export const BOOTHS_CHUNK_SIZE=350;export default function Q(a,I,k){return(h=>{const t=I,p=[],m=[],l=[],g=[],b=[],d=J(t),B={name:d,children:[]};for(const o of h){const r=Z(a,o)?.getShape();r&&p.push(...r);const n=z(a,o)?.getShape();n&&m.push(...n);const i=F(a,o)?.getShape();if(i&&l.push(...i),!_.borderless){const e=q(a,o)?.getShape();e&&g.push(e)}const c=j(a,o)?.getShape();c&&b.push(c)}const S=m.filter(o=>o.lines),R=l.filter(o=>o.lines),D=m.filter(o=>o.source),x=l.filter(o=>o.source);if(!W.hideLogoInBooth){const o=M(h);a.onLayerImages(d,async()=>{const r=await K(o,BOOTHS_CHUNK_SIZE),n=[];for(const[i,c]of r){const e=T.boothStore.boothById.get(i);if(!e)continue;const{bounds:{x:L,y:$,height:w,angle:N,width:O},htmlImage:A}=G(e,c),y=H(A,new f({x:L,y:$},{x:L+O,y:$+w},P(N))),C=f.fromCoreRect(e.rect,e.rotate),E=f.inflateRect(C,e.borderWidth||U.borderWidth);e.shapes.push(y),n.push({shape:y,parentRect:E})}return{layer:B,children:n}})}let u=[];return h.length&&(u=[{name:`${t}${s}boothBackground`,children:p,interactive:!0},{name:`${t}${s}labels`,children:S},{name:`${t}${s}specialLabels`,children:R},{name:`${t}${s}bots`,children:D},{name:`${t}${s}specialDots`,children:x},B,{name:`${t}${s}boothsBookmark`,children:b},{name:`${t}${s}boothBorder`,children:g}]),{name:t,children:u}})(k)}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { Layer } from "../../../../store/LayerStore";
|
|
2
1
|
import { LayerDef } from "@expofp/renderer";
|
|
3
2
|
import { RendererService } from "../../../../renderer";
|
|
3
|
+
import { Layer } from "../../../../store/LayerStore";
|
|
4
4
|
export default function loadLayer(layer: Layer, rendererService: RendererService): Promise<LayerDef>;
|
|
5
5
|
//# sourceMappingURL=config-load-layer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{Rect as O}from"@expofp/renderer";import{BOOTHS_PAINTER_MARKER as x,SEPARATOR as m}from"../../../../constants";import{createImageDef as T,createLayerDef as D}from"../../../../renderer";import c,{boothStore as H}from"../../../../store";import k from"../../../../store/init/init-booths";import{getChildLayers as G}from"../../../../store/init/init-layers";import{LayersMode as K}from"../../../../store/LayerStore";import{loadJs as U}from"../../../../tools/loaders";import{chunkArray as Y}from"../../../../utils";import{loadIcons as j}from"../../../../utils/imageloader";import{toRadians as v}from"../../../../utils/math";import F,{BG_LAYER_NAME as b,FG_LAYER_NAME as P}from"./config-bg";import J,{BOOTHS_CHUNK_SIZE as Z}from"./config-booths";import{getImageLayerName as q,getLayerIcons as z}from"./loadBoothsImages";function Q(e){return e.childLayers.length?e.childLayers:G(e,e.basePriority,15).layers}function _(e,t,h){return new Promise(async f=>{let r=[];const s=k(c,t),a=await F(t),i=[],d=Y(s,Z),l=H.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(J(e,`${t.name}${m}${x}${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=q(t.name),g=z(t),L={name:p,children:[]};g.length&&e.onLayerImages(p,async()=>{const o=await j(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 O({x:$,y:w},{x:$+S,y:w+A},v(R)),M=T(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(D(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!==K.Default&&!window[`__fpPaths${e.name}`]&&!e.rootParent)try{await U(`${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)})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import
|
|
1
|
+
import{reaction as S}from"mobx";import{createImageDef as v,getBounds as E}from"../../../../renderer";import u,{layersStore as x}from"../../../../store";import{toRadians as K}from"../../../../utils/math";import{createImageCanvas as C}from"./canvases";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=C(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=C(m.img,m.width,m.height,c);a.set(D,R)}const w=a.get(D),M=x.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={...v(y,b,{hidden:!M,origin:p}),id:e.id,scale:c},A={...v(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=x.findLayer(o.z)?.visible??!0;o.active?(r.hidden=!0,e.hidden=!(i&&o.active)):(r.hidden=!i,e.hidden=!0)})}return h.push(S(()=>[u.routeStore.selectedMarkers,u.layerStore.visible],()=>{if(!u.routeStore.markersData.markers.length){B(),s.update(f);return}N(),s.update(...n)})),h.push(S(()=>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}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Img } from "../../../../utils/imageloader";
|
|
1
|
+
import { RendererService } from "../../../../renderer";
|
|
3
2
|
import type { Booth } from "../../../../store/BoothStore";
|
|
4
3
|
import type { Layer } from "../../../../store/LayerStore";
|
|
5
|
-
import {
|
|
4
|
+
import { Img } from "../../../../utils/imageloader";
|
|
5
|
+
import { ImageUrls } from "../../../../utils/loadImagesInBatches";
|
|
6
6
|
export declare function loadLayersImages(rendererService: RendererService): Promise<void>;
|
|
7
7
|
export declare const getImageLayerName: (layerName: string) => string;
|
|
8
8
|
export declare function mapBoothsLogos(booths: Booth[]): Map<number, ImageUrls>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{select as f}from"d3";import{SEPARATOR as h}from"../../../../constants";import{getLayerSvg as d}from"../../../../data/svg";import{flipImageDef as u,isInnerInsideOuter as y}from"../../../../renderer";import{rotateImageDef as w}from"../../../../renderer/engine-core/utils/rotation";import{getLogoUrl as x}from"../../../../utils/getLogoUrl";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=>w(s,p):p=>u(s,p))}a.push(s)}i.children.push(...a),t.update(i)}}))}export const getImageLayerName=t=>`${t}${h}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:x(e.logo),fallback:e.logo}]:null}).filter(Boolean))}export function getLayerIcons(t){const n=f(d(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}}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Vector2Like } from "@expofp/renderer";
|
|
2
2
|
export declare function isPointInConvexQuad(point: Vector2Like, quad: [Vector2Like, Vector2Like, Vector2Like, Vector2Like]): boolean;
|
|
3
3
|
//# sourceMappingURL=pointInConvexQuad.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import{useCallback as _,useEffect as M,useMemo as L,useRef as P}from"react";import{
|
|
1
|
+
import{useCallback as _,useEffect as M,useMemo as L,useRef as P}from"react";import{createCircleCanvas as S,getBounds as I}from"../../../renderer/engine-core/canvases";import{isDefaultScene as U,pickDefaultScene as $}from"../../../renderer/engine-core/defs";import{BUILD_ROUTE_DOTS as A,BUILD_ROUTE_LINES as K}from"./trafficLayers";import{UpdateQueue as T}from"./UpdateQueue";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
2
|
Add Point: Click on the map.
|
|
3
3
|
Apply Smoothing: Press ${R}.
|
|
4
4
|
Apply Simplification: Press ${b}.
|
|
5
5
|
Undo: Press ${D}.
|
|
6
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
|
|
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 T),o=L(()=>{if(!t.scene)return{};const e=t.scene.rootLayer.children,i=e.find(l=>l.name===K),r=e.find(l=>l.name===A);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(!U(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}=$(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])}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useEffect as pt,useRef as F}from"react";import{getBounds as k}from"../../../renderer";import{
|
|
1
|
+
import{useEffect as pt,useRef as F}from"react";import{getBounds as k}from"../../../renderer";import{isDefaultScene as wt}from"../../../renderer/engine-core/defs";import xt from"../../../tools/base-runtime-url";import{loadImage as Et}from"../../../utils/loadImage";import{toRadians as It}from"../../../utils/math";import{createImageCanvas as Mt}from"../drawing/config/canvases";import{getRouteLayerRegex as Lt,getRouteStopLayerRegex as bt,TRAFFIC_VEHICLES as Ft}from"./trafficLayers";import{UpdateQueue as Rt}from"./UpdateQueue";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 Rt),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=Lt(),q=H.filter(a=>B.test(a.name)),G=bt(),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===Ft),Z=new Map;I.current=a=>{try{const{ptScale:x,sceneId:C}=Ct(a);if(!wt(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 Et(`${xt}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,It(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}`}
|
|
@@ -1 +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
|
|
1
|
+
import{jsx as e,jsxs as c}from"react/jsx-runtime";import"./MapControls.scss";import l from"classnames";import{useEffect as _,useLayoutEffect as H,useMemo as I,useRef as r,useState as f}from"react";import{uiState as L}from"../store";import P from"../utils/useOnClickOutside";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");P(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&&(L.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;
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import 'maplibre-gl/dist/maplibre-gl.css';
|
|
2
2
|
import { Renderer, type SceneDef } from '@expofp/renderer';
|
|
3
|
-
import type
|
|
4
|
-
import { Map as MaplibreMap } from 'maplibre-gl';
|
|
3
|
+
import { type LngLatBoundsLike, Map as MaplibreMap, type StyleSpecification } from 'maplibre-gl';
|
|
5
4
|
export declare const MAP_DIM_LAYER_ID = "expofp-map-dim";
|
|
6
5
|
/**
|
|
7
6
|
* Configuration for the map tile source.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
1
|
+
import { type Map as MaplibreMap } from 'maplibre-gl';
|
|
2
|
+
import { type RefObject } from 'react';
|
|
3
|
+
import { type GeoConfig } from './utils/geo-config';
|
|
4
4
|
/**
|
|
5
5
|
* Bundles all camera-related MobX reactions: moveToBooths, moveToRect,
|
|
6
6
|
* zoomBy, moveToLocation, and centerMap. Each watches a uiState trigger,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
4
|
-
import type
|
|
1
|
+
import { type Map as MaplibreMap } from 'maplibre-gl';
|
|
2
|
+
import { type RefObject } from 'react';
|
|
3
|
+
import { type RendererService } from '../../renderer/RendererService';
|
|
4
|
+
import { type DimmingAnimator } from '../../utils/dimming';
|
|
5
5
|
export interface DimmingControls {
|
|
6
6
|
mapDimAnimatorRef: RefObject<DimmingAnimator | null>;
|
|
7
7
|
venueDimAnimatorRef: RefObject<DimmingAnimator | null>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
4
|
-
import type
|
|
1
|
+
import { type Map as MaplibreMap } from 'maplibre-gl';
|
|
2
|
+
import { type RefObject } from 'react';
|
|
3
|
+
import { type RendererService } from '../../renderer/RendererService';
|
|
4
|
+
import { type GeoConfig } from './utils/geo-config';
|
|
5
5
|
/**
|
|
6
6
|
* Keeps the 3D scene layer visibility in sync with LayerStore.
|
|
7
7
|
* When a layer's visibility changes, updates the corresponding LayerDefs
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
1
|
+
import { type Renderer } from '@expofp/renderer';
|
|
2
|
+
import { type RendererService } from '../../renderer/RendererService';
|
|
3
3
|
/**
|
|
4
4
|
* Attaches pointer and navigation event listeners to the renderer.
|
|
5
5
|
* Listeners are set up when the renderer becomes available and
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
1
|
+
import { type Renderer } from '@expofp/renderer';
|
|
2
|
+
import { type RendererService } from '../../renderer/RendererService';
|
|
3
3
|
/**
|
|
4
4
|
* Sets up wayfinding and markers when the renderer becomes available,
|
|
5
5
|
* and tears them down when the renderer changes or the component unmounts.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type LngLatBoundsLike, type Map as MaplibreMap } from 'maplibre-gl';
|
|
2
2
|
import type CoreRect from '../../../core/Rect';
|
|
3
|
-
import type
|
|
4
|
-
import type
|
|
3
|
+
import { type GeoConfig as MaplibreGeoConfig } from '../MaplibreWrapper';
|
|
4
|
+
import { type TransformGeoConfig } from './solver';
|
|
5
5
|
export interface GeoConfig extends MaplibreGeoConfig {
|
|
6
6
|
gpsConfig: TransformGeoConfig;
|
|
7
7
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type LayerDef, type ShapeDef } from '@expofp/renderer';
|
|
2
2
|
export declare function collectLayerDefsByName(layer: LayerDef, acc?: Map<string, LayerDef[]>): Map<string, LayerDef[]>;
|
|
3
3
|
export declare function getBooth(shapeDef: ShapeDef): import("../../../store/BoothStore").Booth | null | undefined;
|
|
4
4
|
//# sourceMappingURL=layer-defs.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
1
|
+
import { type Map as MaplibreMap } from 'maplibre-gl';
|
|
2
|
+
import { type MapOptions, type TileSourceConfig } from '../MaplibreWrapper';
|
|
3
3
|
export declare const DEFAULT_TILE_SOURCE: TileSourceConfig;
|
|
4
4
|
export declare const DEFAULT_MAP_OPTIONS: MapOptions;
|
|
5
5
|
export declare const MAP_2D_OPTIONS: MapOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as a,jsxs as i}from"react/jsx-runtime";import{observer as s}from"mobx-react-lite";import{t}from"../utils/i18n";
|
|
1
|
+
import{jsx as a,jsxs as i}from"react/jsx-runtime";import"./MarketMaterialList.scss";import{observer as s}from"mobx-react-lite";import{t}from"../utils/i18n";const l=({fileName:e,path:r})=>i("a",{className:"market-materials__item",href:r,download:!0,target:"_blank",rel:"noopener noreferrer","aria-label":t("Download {{fileName}}",{fileName:e}),children:[a("div",{className:"market-materials__item-icon",children:a("i",{className:"icon-file-solid"})}),a("div",{className:"market-materials__item-name",children:a("span",{children:e})}),a("div",{className:"market-materials__item-download",children:a("i",{className:"icon-download"})})]}),m=({list:e})=>i("div",{className:"market-materials",children:[a("div",{className:"market-materials__title font-medium",children:t("Read More")}),a("div",{className:"market-materials__list",role:"list",children:e.map(r=>a(l,{...r},r.path))})]});export default s(m);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as s,Fragment as y}from"react/jsx-runtime";import
|
|
1
|
+
import{jsx as e,jsxs as s,Fragment as y}from"react/jsx-runtime";import{autorun as N}from"mobx";import{useLocalStore as L,useObserver as h}from"mobx-react-lite";import S,{Suspense as C}from"react";import r from"../data";import a,{uiState as n}from"../store";import x from"../ui/Badge";import{getLocale as D,getLocales as T,t as m}from"../utils/i18n";import d from"../utils/is-iframe";const U=S.lazy(()=>import("./ViewerMenuPanel"));import"./Menu.scss";import"./Menu_custom.scss";import f from"../tools/logger";import g from"../tools/settings";const u=/^https?:\/\//i.test(r.logo)?r.logo:window.__dataUrlBase+r.logo;f.log("Logo url: ",u),window.setTimeout(function(){const l=new Image;l.onload=()=>{f.log("Logo image loaded")},l.crossOrigin="anonymous",l.src=u},1500);function E({allowConsent:l,isGDPR:c}){const t=L(()=>({logoVisibility:"visible",shown:!1,shownTimeout:void 0,modalOpen:!1,selectedCategoryIds:(n.selectedCategoryFilters||[]).map(o=>Number(o.id)),pendingSelectedIds:(n.selectedCategoryFilters||[]).map(o=>Number(o.id))}));N(()=>{n.menu?(t.shownTimeout=window.setTimeout(()=>t.shown=!0,1),n.list.type==="sessions"&&a.searchStore.selectSearch()):(t.shown=!1,t.shownTimeout&&window.clearTimeout(t.shownTimeout))});function p(o){if(n.kiosk)return o.preventDefault()}function v(o){o.preventDefault(),w(),a.searchStore.selectSearch()}function _(o){o.preventDefault(),a.fp?.onLeaveEvent?.()}function k(o){o.preventDefault(),a.clickLanguage()}return h(()=>{if(!n.menu)return null;const o=a.boothStore.booths.filter(i=>i.bookmarked).map(i=>i.name),b=window.__fpSettings?.fpVer?`https://api-v2.expofp.com/export/v2/${g.EXPO}/pdf`:`https://api.expofp.com/service/convert/${g.EXPO}/pdf`;return s("div",{className:`menu ${t.shown?"shown":""}`,children:[d?e("div",{className:"menu__cover -empty"}):e("div",{className:"menu__cover",children:e("a",{href:r.homeUrl,target:"_blank",rel:"noopener noreferrer",onClick:p,children:e("img",{src:u,onError:()=>t.logoVisibility="hidden",style:{visibility:t.logoVisibility},alt:"",crossOrigin:"anonymous"})})}),s("div",{className:"menu__content",children:[n.viewerMode&&e(C,{fallback:null,children:e(U,{})}),!n.viewerMode&&e("a",{href:"/#",onClick:v,className:"menu__item",children:m("Search")}),!r.hideEventHomeLink&&!n.kiosk&&!d&&!!r.homeUrl&&s("a",{href:r.homeUrl,target:"_blank",className:"menu__item",rel:"noopener noreferrer",children:[m("Event Home").replace(/ /g,"\xA0"),e("i",{className:"icon-link-external"})]}),!r.hideRegisterToAttendLink&&!n.kiosk&&!d&&!!r.registerUrl&&s("a",{href:r.registerUrl,target:"_blank",className:"menu__item",rel:"noopener noreferrer",children:[m("Register to Attend").replace(/ /g,"\xA0"),e("i",{className:"icon-link-external"})]}),!n.hideLanguage&&!r.hideLanguage&&!r.hideLanguageLink&&s("a",{href:"?language",onClick:k,className:"menu__item -language",children:[s("span",{children:[m("Language")," "]}),s("span",{className:"menu__icons",children:[e(x,{variant:"gray",size:"md",noMargins:!0,rounded:!0,children:T().find(i=>i.id===D())?.name}),e("i",{className:"icon-chevron-right"})]})]}),!r.hideDownloadPdfLink&&!n.kiosk&&e("a",{className:"menu__item -pdf",target:"_blank",rel:"noopener noreferrer",href:`${b}/?exhibitors=true&bookmarks=${o.join(",")}&layers=${(a.layerStore.layers.length>=a.layerStore.visible.length?a.layerStore.visible.map(i=>i.name).join(","):"").replace(/&/g,"%26")}`,children:m("Download PDF")}),l===void 0&&c&&e("a",{href:"/#",className:"menu__item -cookie-consent",onClick:i=>{i.preventDefault(),n.hideCookieConsent=!1},children:m("Review Cookie Consent")}),n.viewerMode&&e("div",{className:"menu__item-leave",children:e("a",{href:"/#",className:"menu__item -leave-event menu__leave-link",onClick:_,children:m("Select another event")})})]})]})});function w(){n.menu=!1}}export default({isGDPR:l,allowConsent:c})=>h(()=>e(y,{children:n.menu?e(E,{isGDPR:l,allowConsent:c}):null}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as s,jsxs as u}from"react/jsx-runtime";import{useObserver as
|
|
1
|
+
import{jsx as s,jsxs as u}from"react/jsx-runtime";import"./MobileToggleButton.scss";import m from"classnames";import{useObserver as p}from"mobx-react-lite";import{useCallback as c}from"react";import{LANGUAGE_TYPE as S}from"../constants";import t,{searchStore as b}from"../store";import{t as i}from"../utils/i18n";function f(){const o=c(()=>{t.uiState.isOverlayOpen&&t.uiState.overlaySize==="full"?t.uiState.desiredOverlaySize="small":b.openOverlayWithoutInputFocus()},[]);return p(()=>{const a=t.uiState.list.type==="route-planner";if(!(t.uiState.overlayPosition==="bottom"&&(a||!t.uiState.details&&!t.uiState.menu&&t.uiState.list.type!==S&&t.uiState.list.type!=="bookmarks"&&t.uiState.list.type!=="sessions")))return null;const e=!t.uiState.isOverlayOpen||t.uiState.overlaySize!=="full",l=e?i("List"):i("Map"),r=e?"is-list":"is-map",n=e?"icon-list":"icon-map";return u("button",{className:m("efp-mobile-toggle-button",{"is-with-banner":t.uiState.isBannerVisible},r),onClick:o,type:"button","aria-label":e?i("List"):i("Map"),children:[s("i",{className:n}),s("span",{className:"efp-mobile-toggle-button__text",children:l})]})})}export default f;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as i}from"react/jsx-runtime";import{useEffect as
|
|
1
|
+
import{jsx as e,jsxs as i}from"react/jsx-runtime";import"./Modal.scss";import B from"classnames";import{useEffect as I,useRef as O,useState as h}from"react";import{createPortal as P}from"react-dom";import V from"../ui/Button";import{t as $}from"../utils/i18n";import{useRenderTarget as z}from"../utils/useRenderTarget";const L=({open:l,className:v,type:p="default",title:b,badge:M,maxWidth:d,children:N,closeLabel:y,footerLeft:o=[],footerRight:r=[],onClickClose:s})=>{const n=z(),m=O(null),[g,c]=h(l),[x,u]=h(l);if(I(()=>{if(l)u(!0),setTimeout(()=>{c(!0)},10),document.body.style.overflow="hidden",setTimeout(()=>m.current?.focus(),0);else{c(!1);const a=setTimeout(()=>{u(!1)},200);return()=>clearTimeout(a)}const t=a=>{a.key==="Escape"&&s()};return document.addEventListener("keydown",t),()=>{document.removeEventListener("keydown",t),document.body.style.overflow=""}},[l,s]),!x||!n)return null;const f=y??$("Close"),_=t=>t?.map(({label:a,onClick:w,variant:E="primary",disabled:T,withBadge:j},k)=>e(V,{onClick:w,variant:E,size:"md",inline:!0,disabled:T,withBadge:j,children:a},k));return P(e("div",{className:B("modal",`modal--${p}`,{isOpen:g},v),role:"dialog","aria-modal":"true",ref:m,tabIndex:-1,onClick:s,children:i("div",{className:"modal__box",style:d?{maxWidth:`${d}px`}:void 0,onClick:t=>t.stopPropagation(),children:[i("div",{className:"modal__header",children:[e("div",{className:"modal__title-container",children:e("div",{className:"modal__title",children:b})}),e("button",{type:"button",className:"modal__close",onClick:s,"aria-label":f,title:f,children:e("i",{className:"icon-close","aria-hidden":"true"})})]}),e("div",{className:"modal__body",children:N}),(o.length>0||r.length>0)&&i("div",{className:"modal__footer",children:[e("div",{className:"modal__footer-left",children:o.length>0&&_(o)}),r.length>0&&e("div",{className:"modal__footer-right",children:_(r)})]})]})}),n)};export default L;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Fragment as F,jsx as i,jsxs as d}from"react/jsx-runtime";import
|
|
1
|
+
import{Fragment as F,jsx as i,jsxs as d}from"react/jsx-runtime";import"./MultiSelectGroups.scss";import v from"classnames";import{observer as I}from"mobx-react-lite";import M,{useCallback as h,useMemo as P,useState as q}from"react";import{t as N}from"../utils/i18n";import B from"./ShowMoreButton";const R=M.memo(({item:r,isSelected:s,variant:m,showCount:_,count:p,onClick:c,customRenderer:a})=>a?i(F,{children:a(r,s)}):d("button",{type:"button",className:v("multi-select-groups__item",{"is-selected":s,"is-disabled":r.disabled,[`multi-select-groups__item--${m}`]:m}),onClick:()=>!r.disabled&&c(r.id),disabled:r.disabled,"aria-pressed":s,children:[i("div",{className:"multi-select-groups__item-name",children:r.name}),_&&p>0&&i("span",{className:"multi-select-groups__item-count",children:p})]},r.id)),T=({groups:r=[],selectedIds:s=[],showItemCounts:m=!0,showGroupActions:_=!0,variant:p="default",maxItemsVisible:c=20,itemCountProvider:a,customItemRenderer:S,onChange:u})=>{const[G,x]=q(new Set),y=h(e=>{const t=s.includes(e)?s.filter(l=>l!==e):[...s,e];u(t)},[s,u]),A=h(e=>{const l=e.items.filter(n=>n.id&&!n.disabled).map(n=>n.id).filter(n=>!s.includes(n));l.length!==0&&u([...s,...l])},[s,u]),C=h(e=>{const t=new Set(e.items.map(n=>n.id)),l=s.filter(n=>!t.has(n));u(l)},[s,u]),k=h(e=>{x(t=>{const l=new Set(t);return l.has(e)?l.delete(e):l.add(e),l})},[]),j=e=>e.count!==void 0?e.count:e.countProvider?e.countProvider():a?a(e):0,f=P(()=>new Set(s),[s]);return!Array.isArray(r)||!r.length?null:i("div",{className:"multi-select-groups",children:i("div",{className:"multi-select-groups__list",children:r.map(e=>{if(!e?.groupName||!Array.isArray(e.items))return null;const t=e.items.filter(o=>o.id),l=t.filter(o=>f.has(o.id)),n=l.length===t.length&&t.length>0,E=l.length>0&&!n,g=G.has(e.groupName),b=g||t.length<=c?t:t.slice(0,c),w=t.length-b.length>0?t.slice(c).filter(o=>f.has(o.id)).length:0;return d("div",{className:v("multi-select-groups__group",{"multi-select-groups__group--full-width":e.fullWidth},e.customGroupClass),children:[d("div",{className:"multi-select-groups__group-header",children:[i("div",{className:"multi-select-groups__group-title",children:e.groupName}),_&&e.showGroupActions!==!1&&d("div",{className:"multi-select-groups__group-actions",children:[!n&&i("button",{type:"button",className:"multi-select-groups__action-btn",onClick:()=>A(e),children:N("Select all")}),(E||n)&&i("button",{type:"button",className:"multi-select-groups__action-btn",onClick:()=>C(e),children:N("Clear all")})]})]}),i("div",{className:"multi-select-groups__group-items",children:b.map(o=>i(R,{item:o,isSelected:f.has(o.id),variant:p,showCount:m,count:j(o),onClick:y,customRenderer:S},o.id))}),t.length>c&&i(B,{className:"multi-select-groups__show-more",expanded:g,onClick:()=>k(e.groupName),suffix:!g&&w>0&&d("span",{className:"multi-select-groups__show-more-badge",children:[w," ",N("selected")]})})]},e.groupName)})})})};export default I(T);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as _,jsxs as Q}from"react/jsx-runtime";import fe from"classnames";import{
|
|
1
|
+
import{jsx as _,jsxs as Q}from"react/jsx-runtime";import"./Overlay.scss";import fe from"classnames";import{createContext as de,useCallback as m,useEffect as x,useMemo as X,useRef as v,useState as u}from"react";import{MOBILE_BREAKPOINT as Y}from"../constants";import{useDragGesture as me}from"../hooks/useDragGesture";import{useWindowSize as ge}from"../hooks/useWindowSize";import he from"../tools/debounce";import{t as ve}from"../utils/i18n";import we from"./OverlayParticles";export const OverlayScrollContext=de(null);const Z=70,pe="0.3s",ye=10,D=()=>window!==window.top&&(document.documentElement.clientHeight||document.body.clientHeight)||window.innerHeight,$=(a=D(),r,s,I)=>({small:a/r,medium:a/s,full:a-I}),He=({children:a,open:r,size:s="medium",particles:I=!1,className:V,onChangeSize:U,onScrollStateChange:w,smallSizeMultiplier:O=12.6,mediumSizeMultiplier:A=2.6,fullSizeOffset:S=0,scrollThreshold:C=ye,disableDrag:G=!1,forceFull:N=!1,scrollResetKey:z})=>{const{width:M,height:ee}=ge(),[t,te]=u(()=>$(D(),O,A,S)),[l,oe]=u(()=>M<=Y),[p,W]=u(!1),[i,ne]=u(()=>t[s]),[g,b]=u(()=>t[s]),[h,y]=u(!1),[re,K]=u(r),[L,P]=u(!1),j=v(),k=v(),q=v(null),F=v(null),f=v(null),c=m(e=>{const o=t[e];ne(o),b(o),U?.(e)},[t,U]),se=X(()=>l?N&&r?{height:D()}:{height:r||h?g:0}:{height:r?"auto":void 0},[l,r,g,p,s,h,N]),J=m(e=>{const o=[t.small,t.medium,t.full].sort();if(e>=t.full){c("full");return}if(e<=t.small){c("small");return}const n=i||t.medium,d=e>n?o.find(E=>E+Z>=e)||t.full:o.reverse().find(E=>E-Z<=e)||t.small;d===t.full?c("full"):d===t.medium?c("medium"):c("small")},[t,i,c]),le=m(e=>{W(!0),j.current=e},[]),ie=m(e=>{const o=j.current;if(o===void 0)return;const n=f.current;if(n?.scrollTop>0&&i===t.full)return;const d=o-e;let R=(i||t.medium)+d;n&&i===t.full&&R<i&&(n.style.overflow="hidden"),R=Math.min(Math.max(R,t.small),t.full),k.current=d,b(R)},[i,t]),ce=m(()=>{W(!1),j.current=void 0;const e=f.current;e&&e.style.removeProperty("overflow");const o=k.current;k.current=void 0,o!==void 0&&g!==void 0&&J(g)},[g,J]),B=m(e=>{if(p)return;c(s==="small"?"medium":s==="medium"?"full":"small")},[p,s,c]),{touchHandlers:H,mouseHandlers:T}=me({onDragStart:le,onDragMove:ie,onDragEnd:ce}),ue=m(()=>{const e=f.current;if(!e)return;const n=e.scrollTop>=C;L!==n&&(P(n),w?.(n))},[C,L,w]),ae=X(()=>he(()=>{window.__resett?.()},250),[]);return x(()=>{if(!l||G)return;const e=q.current,o=F.current,n=f.current;e&&(e.ontouchstart=H.onTouchStart,e.ontouchend=H.onTouchEnd,window.ontouchmove=H.onTouchMove,e.onmousedown=T.onMouseDown,e.onmouseup=T.onMouseUp,window.onmousemove=T.onMouseMove),o&&o.addEventListener("mouseup",B);const d=()=>{i&&i<t.full&&n&&(n.style.overflow="hidden")};return n&&(n.ontouchstart=d),()=>{e&&(window.ontouchmove=null,window.onmousemove=null),o&&o.removeEventListener("mouseup",B)}},[l,H,T,B,i,t]),x(()=>{oe(M<=Y);const e=D();te($(e,O,A,S))},[M,ee,O,A,S]),x(()=>{if(r){K(!0),y(!0);const e=setTimeout(()=>{c(s),y(!1)},10);return()=>clearTimeout(e)}else{y(!0),l&&b(0);const e=setTimeout(()=>{K(!1),y(!1),P(!1)},parseFloat(pe)*1e3);return()=>clearTimeout(e)}},[r,s,c,l]),x(()=>{r&&!h&&(f.current?.scrollTo({top:0}),P(!1),w?.(!1))},[r,h,w,z]),re?_(OverlayScrollContext.Provider,{value:f.current,children:Q("div",{className:fe("efp-overlay",{"is-open":r,"is-draggable":p,"is-small":s==="small","is-medium":s==="medium","is-full":s==="full","is-mobile":l,"is-desktop":!l,"is-hidden":!l&&!r,"is-animating":h,"is-scrolled":L,"is-forced-full":N&&l},V),style:se,ref:q,children:[!G&&_("div",{className:"efp-overlay__draghandle",ref:F}),Q("div",{className:"efp-overlay__scroll",ref:f,onScroll:e=>{ue(),ae()},children:[I?_(we,{}):null,_("div",{className:"efp-overlay__content",children:a||ve("No content")})]})]})}):null};export default He;
|