@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 +1 @@
|
|
|
1
|
-
import{jsx as i}from"react/jsx-runtime";import{useState as r}from"react";import{useTimeout as n}from"../../utils/useTimeout";
|
|
1
|
+
import{jsx as i}from"react/jsx-runtime";import"./Toast.scss";import{useState as r}from"react";import{useTimeout as n}from"../../utils/useTimeout";const m=({message:e,duration:o,onClose:t})=>{const[s,a]=r(!0);return n(()=>{a(!1),t()},o),i("div",{className:`toast ${s?"is-visible":""}`,onClick:t,children:e})};export const ToastContainer=({toasts:e,handleToastClose:o})=>i("div",{className:"toast-container",children:e.map((t,s)=>i(m,{message:t.message,duration:t.duration,onClose:()=>o(s)},`toast-${s}`))});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as p,jsxs as d}from"react/jsx-runtime";import{useState as l}from"react";import{
|
|
1
|
+
import{jsx as p,jsxs as d}from"react/jsx-runtime";import{useState as l}from"react";import{ToastContainer as m}from"./ToastContainer";import{ToastContext as c}from"./ToastContext";export const ToastProvider=({children:r})=>{const[a,e]=l([]),n=o=>{e(s=>{const t=[...s];return t.splice(o,1),t})},i={open:(o,s)=>{e(t=>[...t,{message:o,duration:s}])}};return d(c.Provider,{value:i,children:[p(m,{toasts:a,handleToastClose:n}),r]})};export default ToastProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as o,jsxs as u}from"react/jsx-runtime";import
|
|
1
|
+
import{jsx as o,jsxs as u}from"react/jsx-runtime";import l from"classnames";import{useObserver as s}from"mobx-react-lite";import{useRef as a}from"react";import e,{uiState as r}from"../store";import c from"./EntityList";const m=()=>{const i=a(null);return s(()=>{const t=e.toursStore.currentTour;if(!t)return null;const n=t.points&&t.points.length>0;return u("div",{className:l("efp-tour-points",{hidden:r.kiosk}),children:[r.tourDescription&&o("div",{className:"efp-wayfinding-description",children:r.tourDescription}),n&&o(c,{updatedScrollableRef:i})]})})};export default()=>s(()=>!r.menu&&!r.details&&e.toursStore.currentTour&&o(m,{}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsxs as a,jsx as r}from"react/jsx-runtime";import
|
|
1
|
+
import{jsxs as a,jsx as r}from"react/jsx-runtime";import"./Tours.scss";import T from"fuse.js";import{useObserver as v}from"mobx-react-lite";import{observer as l}from"mobx-react-lite";import{useMemo as x}from"react";import e,{uiState as d}from"../store";import{t as n}from"../utils/i18n";import{ToursList as N}from"./";const S=l(()=>{const o=e.toursStore.tourItems,m=e.toursStore.hasTours,p=e.toursStore.currentExpo,c=e.toursStore.toursLoadError,i=x(()=>{let t=o;const s=e.searchStore.searchText;if(s){const u={keys:["name"],threshold:.3,ignoreLocation:!0,includeScore:!0};t=new T(t,u).search(s).map(h=>h.item)}return t},[o,e.searchStore.searchText]),f=(t,s,u)=>{e.toursStore.launchTour(t,s,u)};return v(()=>c?r("div",{className:"efp-tours-content",children:r("div",{className:"efp-tours-empty",children:a("p",{children:[n("Error loading Guided Tours"),": ",c]})})}):m?i.length===0?r("div",{className:"efp-tours-content",children:r("div",{className:"efp-tours-empty",children:r("p",{children:n("No Guided Tours found matching your search")})})}):r("div",{className:"efp-tours-content",children:r(N,{tours:i,onTourClick:f})}):r("div",{className:"efp-tours-content",children:r("div",{className:"efp-tours-empty",children:a("p",{children:[n("No Guided Tours available for")," ",p]})})}))}),y=l(o=>d.list.type!=="tours"||d.details?null:r(S,{...o}));export default y;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import type { TourItem } from "../store/types";
|
|
3
1
|
import "./ToursList.scss";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { type TourItem } from "../store/types";
|
|
4
4
|
export interface ToursListProps {
|
|
5
5
|
tours: TourItem[];
|
|
6
6
|
onTourClick?: (tour: TourItem, name: string, description?: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as l}from"react/jsx-runtime";import{observer as m}from"mobx-react-lite";import{t as o}from"../utils/i18n";import d from"./HighlightTextContainer";
|
|
1
|
+
import{jsx as e,jsxs as l}from"react/jsx-runtime";import"./ToursList.scss";import{observer as m}from"mobx-react-lite";import{t as o}from"../utils/i18n";import d from"./HighlightTextContainer";const c=m(({tours:s,onTourClick:r})=>{const n=(i,t,a)=>{r&&r(i,t,a)};return s.length===0?e("div",{className:"efp-tours-empty",children:e("p",{children:o("No Guided Tours found")})}):e("div",{className:"efp-tours-list",children:s.map(i=>e("div",{className:"efp-tour-item",onClick:()=>n(i,i.name,i.description),role:"button",tabIndex:0,onKeyDown:t=>{(t.key==="Enter"||t.key===" ")&&(t.preventDefault(),n(i,i.name,i.description))},children:l("div",{className:"efp-tour-item__body",children:[e("div",{className:"efp-tour-item__left",children:e("div",{className:"efp-tour-item__icon",children:e("i",{className:"icon-route-solid"})})}),e("div",{className:"efp-tour-item__right",children:e("div",{className:"efp-tour-item__content",children:e("div",{className:"efp-tour-item__title",children:e(d,{text:i.name})})})})]})},i.id))})});export default c;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as a}from"react/jsx-runtime";import{observer as w}from"mobx-react-lite";import s from"../data";import o,{uiState as g}from"../store";import{t as r}from"../utils/i18n";import{Button as l}from"./";
|
|
1
|
+
import{jsx as e,jsxs as a}from"react/jsx-runtime";import"./ViewerMenuPanel.scss";import{observer as w}from"mobx-react-lite";import s from"../data";import o,{uiState as g}from"../store";import{t as r}from"../utils/i18n";import{Button as l}from"./";function _(n){if(!n)return{venue:"",dateRange:""};const t=n.split(" | ");return{venue:t[0]?.trim()||"",dateRange:t[1]?.trim()||""}}function N(n,t){if(!n||!t)return!1;const c=Date.now();return c>=new Date(n).getTime()&&c<=new Date(t+"T23:59:59").getTime()}const x=w(()=>{const{venue:n,dateRange:t}=_(s.subtitle),u=!(!!s.startDate&&!!s.endDate),D=N(s.startDate,s.endDate),d=o.eventStore.eventItems.length>0,v=o.toursStore.hasTours;function m(i){i.preventDefault(),g.menu=!1}function p(i){i.preventDefault(),o.selectExhibitors()}function h(i){i.preventDefault(),o.selectSessions()}function f(i){i.preventDefault(),o.selectTours()}return a("div",{className:"viewer-panel",children:[a("div",{className:"viewer-panel__info",children:[e("div",{className:"viewer-panel__title",children:s.title}),a("div",{className:"viewer-panel__row",children:[e("i",{className:"viewer-panel__icon icon-schedule"}),u?e("span",{children:r("Ongoing")}):a("div",{className:"viewer-panel__date-range",children:[t,"\xA0\xA0",e("div",{className:"viewer-panel__now-badge",children:r("Now")})]})]}),n&&a("div",{className:"viewer-panel__row",children:[e("i",{className:"viewer-panel__icon icon-marker-pin"}),e("span",{children:n})]})]}),a("div",{className:"viewer-panel__buttons",children:[e(l,{variant:"gray",size:"lg",text:r("Map"),onClick:m}),e(l,{variant:"gray",size:"lg",text:r("Exhibitors"),onClick:p}),d&&e(l,{variant:"gray",size:"lg",text:r("Sessions"),onClick:h}),v&&e(l,{variant:"gray",size:"lg",text:r("Guided Tours"),onClick:f})]})]})});export default x;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as a,jsxs as l}from"react/jsx-runtime";import i from"classnames";import
|
|
1
|
+
import{jsx as a,jsxs as l}from"react/jsx-runtime";import"./WayInformation.scss";import i from"classnames";import{t as n}from"../utils/i18n";const m=({items:s,accessible:o,onClick:r})=>s?.length?a("div",{className:"efp-wayInformation",onClick:r,role:"button",tabIndex:0,"aria-label":n("Show detailed route steps"),children:s.map((t,e)=>l("div",{className:i("efp-wayInformation__item",{"is-accessible":o&&e===0}),children:[a("span",{children:t.title}),a("strong",{children:t.text})]},e))}):null;export default m;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as y,jsxs as H}from"react/jsx-runtime";import L from"classnames";import{useObserver as O}from"mobx-react-lite";import{useEffect as R,useMemo as B,
|
|
1
|
+
import{jsx as y,jsxs as H}from"react/jsx-runtime";import"./Wayfinding.scss";import L from"classnames";import{useObserver as O}from"mobx-react-lite";import{useEffect as R,useMemo as B,useRef as Q,useState as F}from"react";import{DEFAULT_UNITS as X}from"../constants";import q from"../data";import{getLayerSvg as G}from"../data/svg";import l,{boothStore as w,exhibitorStore as k,uiState as e}from"../store";import{BoothBase as S,RegularBooth as D}from"../store/BoothStore";import{Route as I}from"../store/RouteStore";import P from"../tools/settings";import{calcSpeed as J}from"../utils/calcSpeed";import{calcTravelTime as Y}from"../utils/calcTravelTime";import{t as v}from"../utils/i18n";import{CURRENT_POSITION_POINT_ID as A,KIOSK_ANCHOR_POINT_ID as Z}from"../wayfinding/adapters";import ee from"./EntityList";import te from"./WayfindingTemplate";function oe(){const M=Q(null),b=B(()=>{const o=l.routeStore.pathLayers;return o.map((i,c)=>{const u=o[c+1],a=i.layer?.basePriority??0,r=u?.layer?.basePriority??0,d=u?r<a?"up":"down":void 0;return{id:i.id,name:i.layer?.shortName,description:i.layer?.description,directionToNext:d}})},[l.routeStore.pathLayers]),[C,E]=F(),[g,_]=F({}),N=o=>{o&&_(i=>({...i,[o.value]:o}))};R(()=>{C||E(b[0])},[l.routeStore.pathLayers,b]),R(()=>{const o=b.find(i=>i.description?.toLowerCase()===l.routeStore.currentRouteLayer?.description?.toLowerCase());o&&E(o)},[l.routeStore.currentRouteLayer,b]),R(()=>{const o=e.selectedRoute;if(!o){e.setIsMultiPointRoute(!1);return}const c=(o.waypoints?.length||0)>0;e.setIsMultiPointRoute(c)},[e.selectedRoute]);const W=()=>{const{from:o,to:i}=e.selectedRoute;return!!(o&&i)},U=()=>e.overlaySize==="full",V=()=>!!(W()&&!U()),T=()=>{const o=e.selectedRoute;return o?(o.waypoints?.length||0)>0?"multi":"simple":"none"};R(()=>{T()==="multi"&&e.selectedRoute},[e.selectedRoute]);const x=B(()=>{const o=[],i=w.booths,c=i.filter(r=>r instanceof D),u=i.filter(r=>!(r instanceof D));let a=[];return k.exhibitors.forEach(r=>{o.push(...r.booths.map(d=>d.id)),a.push(...r.booths.map(d=>({value:d.id.toString(),label:r.name+" - "+d.fullName,exhibitorId:r.id})))}),u.filter(r=>o.indexOf(r.id)===-1).forEach(r=>{a.push({value:r.id.toString(),label:r.fullName})}),a=a.sort((r,d)=>r.label.localeCompare(d.label,void 0,{sensitivity:"base"})),c.filter(r=>o.indexOf(r.id)===-1).forEach(r=>{a.push({value:r.id.toString(),label:r.fullName})}),a},[k.exhibitors.length,w.booths.length]);return R(()=>{const o=e.selectedRoute?.to?.id?.toString(),i=l.routeStore.currentRouteExhibitor;if(!i)return;const c=x.find(u=>u.value===o&&u.exhibitorId===i.id);l.routeStore.currentRouteExhibitor=null,N(c)},[l.routeStore.currentRouteExhibitor,e.selectedRoute?.to?.id,x]),O(()=>{if(T()==="multi")return H("div",{className:L("main-wayfinding",{hidden:e.kiosk&&e.selectedRoute?.from&&e.selectedRoute?.to}),children:[e.routeDescription&&y("div",{className:"efp-wayfinding-description",children:e.routeDescription}),y(ee,{updatedScrollableRef:M})]});const i=e.selectedRoute?.from&&!(e.selectedRoute.from instanceof S)?e.selectedRoute.from:null,c=e.selectedRoute?.to&&!(e.selectedRoute.to instanceof S)?e.selectedRoute.to:null,u=[];i&&u.push({value:i.id,label:i.name}),c&&c.id!==i?.id&&u.push({value:c.id,label:c.name}),u.push(...x);const a=(t,s=!0)=>{const n=t?.value;if(n===A||n===Z)return;const f=w.booths.find(h=>h.id.toString()===n)??null,{from:m,to:p}=e.selectedRoute;N(t),s?l.routeStore.selectRoute(new I(f,p)):l.routeStore.selectRoute(new I(m,f))},r=t=>{const s=[],n=G().getAttribute("units")||X,f=Y(t,J(n));let m=new Date;m.setMinutes(m.getMinutes()+f/60);const p=m.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit"});return s.push({title:v("Travel time"),text:f<60?"< 1 min":`~ ${Math.round(f/60)} min`},{title:v("Distance"),text:Math.round(t)+` ${n}`},{title:v("Est arrival"),text:p}),s},d=()=>{const{from:t,to:s}=e.selectedRoute;t?.id!==A&&l.routeStore.selectRoute(new I(s,t))},j=e.selectedRoute?.from&&e.selectedRoute?.to&&!l.routeStore.routeLines.length;function K(){const t=e.selectedRoute?.from?.id?.toString(),s=t?g[t]:void 0;return u.find(n=>s?n.value===s.value&&n.label===s.label:n.value===t)}function z(){const t=e.selectedRoute?.to?.id?.toString(),s=t?g[t]:void 0;return u.find(n=>s?n.value===s.value&&n.label===s.label:n.value===t)}const $=!!(!q.hideWayInformation&&P.EXPO!=="bloomberg"&&e.selectedRoute?.from&&e.selectedRoute?.to);return y("div",{className:L("main-wayfinding",{hidden:e.kiosk&&e.selectedRoute?.from&&e.selectedRoute?.to}),children:y(te,{showForm:!V(),showInfo:$,floors:b,currentFloor:C,onClickFloor:t=>{const s=l.routeStore.pathLayers.find(n=>n.id===t.id);s?.layer&&l.layerStore.updateVisibility(s.layer,!0)},routeFound:!j,options:u,fromValue:K(),toValue:z(),onChangeFrom:t=>a(t,!0),onChangeTo:t=>a(t,!1),onSwitch:d,infoItems:r(l.routeStore.routeDistance),infoAccessible:l.routeStore.onlyAccessible,showAccessible:l.routeStore.showAccessible,onAccessibleCheck:t=>l.routeStore.setOnlyAccessible(t),onClickInfo:()=>l.showOverlay(),routeUrl:e.routeQRCodeUrl,isKiosk:e.kiosk,showDetailsIcon:e.showRouteInstantly,onDetailsIconClick:()=>{const{from:t,to:s}=e.selectedRoute||{},n=(s instanceof S?s:null)??(t instanceof S?t:null);if(n){const f=n.id.toString(),m=g[f]??u.find(h=>h.value===f),p=m?.exhibitorId!=null?n.exhibitors.find(h=>h.id===m.exhibitorId):n.exhibitors.find(h=>m?.label.includes(h.name));e.details=p||n}}})})})}function re(){return O(()=>P.wayfinding&&!e.menu&&e.selectedRoute&&e.list.type!=="route-planner"&&y(oe,{}))}export default re;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type
|
|
2
|
+
import { type WayfindingFloorSelectorProps } from "../ui/WayfindingFloorSelector";
|
|
3
3
|
declare const WayfindingFloorSelectorContainer: ({ floors, floorSelectionLabel, ...rest }: WayfindingFloorSelectorProps) => React.JSX.Element;
|
|
4
4
|
export default WayfindingFloorSelectorContainer;
|
|
5
5
|
//# sourceMappingURL=WayfindingFloorSelectorContainer.d.ts.map
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import type { AutocompleteOptionObject } from "./Autocomplete";
|
|
3
|
-
import type { WayfindingFloorSelectorProps } from "../ui/WayfindingFloorSelector";
|
|
4
1
|
import "./WayfindingTemplate.scss";
|
|
5
|
-
import
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { type WayfindingFloorSelectorProps } from "../ui/WayfindingFloorSelector";
|
|
4
|
+
import { type AutocompleteOptionObject } from "./Autocomplete";
|
|
5
|
+
import { type WayInformationItem } from "./WayInformation";
|
|
6
6
|
export interface WayfindingTemplateProps {
|
|
7
7
|
options: AutocompleteOptionObject[];
|
|
8
8
|
fromValue?: AutocompleteOptionObject;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as e,jsxs as i,Fragment as R}from"react/jsx-runtime";import M from"classnames";import{t as l}from"../utils/i18n";import s from"./Autocomplete";import
|
|
1
|
+
import{jsx as e,jsxs as i,Fragment as R}from"react/jsx-runtime";import"./WayfindingTemplate.scss";import M from"classnames";import Z from"../ui/ToggleSwitch";import{t as l}from"../utils/i18n";import s from"./Autocomplete";import B from"./RouteQR";import E from"./WayfindingFloorSelectorContainer";import j from"./WayInformation";const D=({options:n=[],fromValue:d,toValue:r,showForm:o=!0,showAccessible:c=!1,showInfo:f=!1,routeFound:m=!1,infoItems:h=[],infoAccessible:a,floors:t=[],currentFloor:p,routeUrl:C,isKiosk:g,onChangeFrom:w,onChangeTo:v,onSwitch:y,onClickInfo:_,onClickFloor:u,onAccessibleCheck:F,showDetailsIcon:N,onDetailsIconClick:x})=>i("div",{className:M("efp-wayfinding",{isCollapsed:!o}),children:[o&&i("div",{className:"efp-wayfinding__top",children:[i("div",{className:"efp-wayfindingForm",children:[i("div",{className:"efp-wayfindingForm__icons",children:[e("div",{className:"efp-wayfindingForm__from",children:i("svg",{width:"18",height:"18",viewBox:"0 0 18 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[e("path",{d:"M18 9C18 13.9706 13.9706 18 9 18C4.02944 18 0 13.9706 0 9C0 4.02944 4.02944 0 9 0C13.9706 0 18 4.02944 18 9Z",fill:"white"}),e("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9 13.375C11.4162 13.375 13.375 11.4162 13.375 9C13.375 6.58375 11.4162 4.625 9 4.625C6.58375 4.625 4.625 6.58375 4.625 9C4.625 11.4162 6.58375 13.375 9 13.375ZM9 16C12.866 16 16 12.866 16 9C16 5.13401 12.866 2 9 2C5.13401 2 2 5.13401 2 9C2 12.866 5.13401 16 9 16Z",fill:"#30AFEB"})]})}),e("div",{className:"efp-wayfindingForm__to",children:i("svg",{width:"18",height:"25",viewBox:"0 0 18 25",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[e("path",{fillRule:"evenodd",clipRule:"evenodd",d:"M9 24.1571L10.5475 22.267C11.0023 21.7114 11.4571 21.1656 11.9041 20.6291C13.2939 18.9611 14.6088 17.3829 15.6182 15.8814C16.988 13.8436 18 11.668 18 9.125C18 4.09562 14.0267 0 9 0C3.97332 0 0 4.09562 0 9.125C0 11.668 1.01202 13.8436 2.38182 15.8814C3.39116 17.3829 4.70613 18.9611 6.09588 20.6291C6.54291 21.1656 6.99767 21.7114 7.45249 22.267L9 24.1571Z",fill:"white"}),e("path",{d:"M9 2C5.11111 2 2 5.16667 2 9.125C2 13.0833 5.11111 16.25 9 21C12.8889 16.25 16 13.0833 16 9.125C16 5.16667 12.8889 2 9 2ZM9 6.75C10.2911 6.75 11.3333 7.81083 11.3333 9.125C11.3333 10.4392 10.2911 11.5 9 11.5C7.70889 11.5 6.66667 10.4392 6.66667 9.125C6.66667 7.81083 7.70889 6.75 9 6.75Z",fill:"#FF9E2C"})]})}),e("div",{className:"efp-wayfindingForm__dots",children:i("svg",{width:"4",height:"18",viewBox:"0 0 4 18",fill:"none",xmlns:"http://www.w3.org/2000/svg",children:[e("circle",{cx:"2",cy:"2",r:"2",fill:"#DCDFE9"}),e("circle",{cx:"2",cy:"16",r:"2",fill:"#DCDFE9"})]})})]}),i("div",{className:"efp-wayfindingForm__controls",children:[e("div",{style:{marginBottom:10},children:e(s,{placeholder:l("Choose starting point"),options:n,value:d,onChange:w})}),e("div",{children:e(s,{placeholder:l("Choose destination point"),options:n,value:r,onChange:v})})]}),i("div",{className:"efp-wayfindingForm__actions",children:[e("button",{type:"button",className:"efp-wayfindingForm__switch",onClick:y}),N&&e("button",{type:"button",className:"efp-wayfindingForm__details",onClick:x})]})]}),c&&e("div",{className:"efp-wayfindingForm__accessible",children:e(Z,{name:"onlyAccessible",label:l("Accessible"),value:a,onChange:b=>F(b)})})]}),t.length>1&&e(E,{floors:t,value:p,onSelect:u}),f&&e("div",{className:"efp-wayfindingInfo",children:m?i(R,{children:[e(j,{items:h,accessible:a,onClick:_}),g&&e(B,{url:C})]}):e("div",{className:"efp-wayfindingError",children:l("Route not found")})})]});export default D;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as s}from"react/jsx-runtime";import p from"classnames";import{reaction as x}from"mobx";import{useLocalStore as w,useObserver as g}from"mobx-react-lite";import b,{createRef as I,useCallback as m}from"react";import{CSSTransition as y,TransitionGroup as S}from"react-transition-group";import T,{exhibitorStore as k,uiState as n}from"../store";import{remsToPixels as v,shuffle as N}from"../utils";import{
|
|
1
|
+
import{jsx as s}from"react/jsx-runtime";import"./Ws.scss";import p from"classnames";import{reaction as x}from"mobx";import{useLocalStore as w,useObserver as g}from"mobx-react-lite";import b,{createRef as I,useCallback as m}from"react";import{CSSTransition as y,TransitionGroup as S}from"react-transition-group";import T,{exhibitorStore as k,uiState as n}from"../store";import{remsToPixels as v,shuffle as N}from"../utils";import{loadImagesInBatchesById as E}from"../utils/loadImagesInBatches";import{useInit as B}from"../utils/mobx";const h=8e3,L=b.memo(()=>{const e=w(()=>({el:null,all:[],adv:[],keySeq:0,index:0,imgByExhibitorId:new Map,batchSize:100,loading:!1,leftToNextLoad:0,timeoutId:0,get sectionStyle(){const{wsStarted:t,wsPosition:o}=n,a=o==="top",i={right:0,width:"100%",opacity:t?1:0};return a?i.top=0:i.bottom=0,i}})),l=m(()=>{const o=(e.el?.getBoundingClientRect().width??0)-v(.3)*2;let a=0;const i=[];do{const r=e.all[e.index%e.all.length],c=e.imgByExhibitorId.get(r.id);if(!c)break;const f=c.width*n.wsImageHeightPx/c.height+20;if(a+f>o&&i.length)break;a+=f,i.push({key:e.keySeq++,e:r}),e.index=(e.index+1)%e.all.length}while(!0);e.adv=i.map(r=>({...r,nodeRef:I()})),e.leftToNextLoad=Math.max(0,e.leftToNextLoad-i.length)},[e]),d=m(async()=>{e.loading=!0;let t=e.all.slice(e.index,e.index+e.batchSize);t.length<e.batchSize&&(t=t.concat(e.all.slice(0,e.batchSize-t.length)));const o=await E(new Map(t.map(a=>[a.id,{fallback:a.logo}])));return e.leftToNextLoad=o.size,e.loading=!1,o},[e]),u=m(()=>{const t=async()=>{if(e.loading){e.timeoutId=window.setTimeout(t,h);return}e.leftToNextLoad<=e.adv.length&&(e.imgByExhibitorId=await d()),l(),e.timeoutId=window.setTimeout(t,h)};clearTimeout(e.timeoutId),e.timeoutId=window.setTimeout(t,h)},[d,l]);return B(()=>{let t,o=!0;return(async()=>(e.all=N(k.advertised),e.imgByExhibitorId=await d(),o&&(l(),u(),n.wsStarted=!0,t=x(()=>n.screenSize,l))))(),()=>{o=!1,t?.(),clearInterval(e.timeoutId)}}),g(()=>s("section",{className:p("ws",{"efp-semi-transparent":n.setKioskModeEnabled}),ref:t=>e.el=t,onMouseOver:()=>clearInterval(e.timeoutId),onMouseOut:u,style:e.sectionStyle,children:s(S,{component:null,children:e.adv.map(t=>s(y,{timeout:500,nodeRef:t.nodeRef,children:s("a",{ref:t.nodeRef,href:`?${t.e.slug}`,className:"ws__exhibitor",style:{height:`${n.wsImageHeightPx}px`},onClick:o=>{o.preventDefault(),T.clickExhibitor(t.e)},children:s("img",{src:t.e.logo,alt:t.e.name,crossOrigin:"anonymous"})})},t.key))})}))});export default()=>g(()=>n.wsShown?s(L,{}):null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as l}from"react/jsx-runtime";import{useObserver as s}from"mobx-react-lite";import m,{layersStore as r,uiState as u}from"../store";import c from"
|
|
1
|
+
import{jsx as l}from"react/jsx-runtime";import{useObserver as s}from"mobx-react-lite";import m,{layersStore as r,uiState as u}from"../store";import c from"../utils/useHeatmapData";import p from"./SimpleRow";const d=({yah:e,className:i})=>{const{clicks:o,background:n}=c(e);return s(()=>l(p,{style:{background:u.heatmapYah?`linear-gradient(to right, transparent 98%, ${n} 93%) center / 100% 99% no-repeat`:null},className:i,slug:e.id.toString(),onClick:a,line1:e.name,line2:e.z?`Level ${e.z}`:"",lineEnd:o.toString(),highlight:!1}));function a(){const t=r.findLayer(e.z);t&&r.updateVisibility(t,!0),m.routeStore.selectMarker(e.id.toString(),!0)}};export default d;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as E}from"react/jsx-runtime";import{useCallback as w,useEffect as m,useState as p}from"react";import
|
|
1
|
+
import{jsx as E}from"react/jsx-runtime";import{useCallback as w,useEffect as m,useState as p}from"react";import C from"../../tools/logger";import M from"../../utils/is-mobile";import P from"./GpsPermissionRequest";import{useUserLocationAndHeading as b}from"./useUserLocationAndHeading";export default function h({onPositionUpdate:d,onAllowCompass:g,onRejectCompass:r,orientationStorageKey:t="compass-permission-granted",requestCompass:a=!0,requestCompassAllowed:s=!0}){const{startOrientation:v,startGeolocation:i,stopOrientation:l,stopGeolocation:c}=b(d),[f,u]=p(!1),[G,o]=p(!1);m(()=>(navigator.geolocation.getCurrentPosition(()=>{u(!0),i()},e=>{C.warn("Geolocation error:",e),u(!1)}),()=>{l(),c()}),[i,c,l]);const n=async()=>{typeof DeviceOrientationEvent<"u"&&typeof DeviceOrientationEvent.requestPermission=="function"&&await DeviceOrientationEvent.requestPermission()!=="granted"||(localStorage.setItem(t,"true"),v(),o(!1),g?.())},O=w(()=>{localStorage.setItem(t,"false"),o(!1),r?.()},[r]);return m(()=>{if(!f||!s||typeof navigator>"u"||!M)return;const e=localStorage.getItem(t);if(!e||a){o(!0);return}e==="true"&&n()},[f,a,s,n]),E(P,{isOpen:G,onAllow:n,onCancel:O})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as i}from"react/jsx-runtime";import{observer as s}from"mobx-react-lite";import
|
|
1
|
+
import{jsx as i}from"react/jsx-runtime";import{observer as s}from"mobx-react-lite";import n from"../../ui/PermissionNotice";import{t as o}from"../../utils/i18n";export default s(function({isOpen:e,onAllow:t,onCancel:r}){return e?i(n,{title:o("Show your position on the map"),acceptText:o("Allow compass access"),rejectText:o("Not now"),onAccept:t,onReject:r,children:o("To display your current position and orient the map around you, we\u2019ll ask for permission to access your device orientation")}):null});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{useCallback as v,useRef as e}from"react";import
|
|
1
|
+
import{useCallback as v,useRef as e}from"react";import A from"../../tools/logger";import{haversineDistance as O}from"../../utils/haversineDistance";import{hasMeaningfulChange as H,MOVE_THRESHOLD_M as E,normalizeHeading as L}from"./utils";const _=120,C=3e3,G=360;export function useUserLocationAndHeading(g){const o=e(null),s=e(null),f=e(0),u=e(null),d=e(!1),t=e(null),a=e(!1),l=e(null),h=n=>g(n),m=n=>{const r=Date.now();if(r-f.current<_)return;const i=u.current;if(!t.current){t.current=n,f.current=r,u.current=n,h(n);return}const w=O(t.current.lat,t.current.lng,n.lat,n.lng);let c;a.current?w<=E?(a.current=!1,t.current=n,c={...t.current,heading:n.heading}):(t.current=n,c=n):w>=E?(a.current=!0,t.current=n,l.current=null,c=n):(l.current==null&&(l.current=r),r-l.current>C&&(t.current=n),c={...t.current,heading:n.heading}),!(i&&!H(i,c))&&(f.current=r,u.current=c,h(c))},R=v(n=>{const r=n.webkitCompassHeading??(n.alpha!=null?G-n.alpha:null);if(r==null)return;const i=L(r);s.current!==i&&(s.current=i,u.current&&m({...u.current,heading:i}))},[g]);return{startGeolocation:()=>{o.current==null&&(o.current=navigator.geolocation.watchPosition(n=>{m({lat:n.coords.latitude,lng:n.coords.longitude,heading:s.current})},n=>A.warn("Geolocation watch error:",n),{enableHighAccuracy:!0,maximumAge:0}))},startOrientation:()=>{d.current||(d.current=!0,window.addEventListener("deviceorientation",R,!0))},stopGeolocation:()=>{o.current!=null&&(navigator.geolocation.clearWatch(o.current),o.current=null),t.current=null,a.current=!1},stopOrientation:()=>{d.current=!1,window.removeEventListener("deviceorientation",R,!0)}}}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type GpsPosition } from "./types";
|
|
2
2
|
export declare const MOVE_THRESHOLD_M = 3;
|
|
3
3
|
export declare function normalizeHeading(heading: number): number;
|
|
4
4
|
export declare function hasMeaningfulChange(prev: GpsPosition, curr: GpsPosition): boolean;
|
package/dist/esm/data/fpGeo.d.ts
CHANGED
package/dist/esm/data/index.d.ts
CHANGED
package/dist/esm/data/svg.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import*as a from"d3-selection";import
|
|
1
|
+
import*as a from"d3-selection";import{STRING_META_DELIMITER as u}from"../constants";import w from"../core/Rect";import _ from"../tools/logger";import b from"../tools/settings";import{extractMetaFromString as v}from"../utils/extractMetaFromString";import A from".";const r=new Map;function g(t,n=""){if(r.has(n))return r.get(n);const s=new DOMParser().parseFromString(t,"image/svg+xml").documentElement;s.firstChild.tagName==="parsererror"&&_.error("Parsed svg with error: ",l);const e=new Map;return a.select(s).selectAll("style").each(function(){const i=this.textContent,x=/\.([a-z0-9.]+)\s*{[^}]*fill\s*:\s*([^};]+);[^}]*}/gi;let h;for(;(h=x.exec(i))!==null;){const P=h[1],M=h[2];e.set(P,M)}}),a.select(s).selectAll("*[class]").each(function(){const i=this;i.style.fill=e.get(i.className.baseVal)}),S(s),r.set(n,s),s}let l=g(window.__fp);const m=window.__viewbox,d=a.select(l).select("rect#VIEWBOX").node(),p=l.viewBox.baseVal,c=w.fromXywh(p.x,p.y,p.width,p.height);let f;m?(f=w.fromXywh(m.x,m.y,m.width,m.height),d?.remove()):d?(f=w.fromSvgRectElement(d),d.remove()):f=c.withPadding(-c.w*.05,-c.h*.05),a.select(l).attr("width",c.w),a.select(l).attr("height",c.h),_.log("svgArea",f,"svgViewBox",c),b.wayfinding=!!(!A.hideDirections&&window.__wfData);let E=window.__fpLayersMode?a.select(l).selectAll("[data-floor]").nodes().map(t=>(t.remove(),{name:t.dataset.floor,rect:w.fromSvgRectElement(t)})).sort():[];export{f as svgArea,c as svgViewBox,E as floors};export function getTrianglesFromFpPaths(t,n){const o=gtePathByIndex(t,n);for(const e of o.positions)e[1]=Math.abs(e[1]),e.length=2;const s=[];for(const e of o.cells)s.push([o.positions[e[0]],o.positions[e[1]],o.positions[e[2]]]);return s}export let gtePathByIndex=(t,n="")=>{try{return window[`__fpPaths${n}`][t]}catch{return window.__fpPaths[t]}},getLayerSvg=(t="")=>typeof t=="string"?r.has(t)?r.get(t):window[`__fp${t}`]?g(window[`__fp${t}`],t):r.get(""):t.rootParent?r.has(t.rootParent.name)?r.get(t.rootParent.name):window[`__fp${t.rootParent.name}`]?g(window[`__fp${t.rootParent.name}`],t.rootParent.name):r.get(""):window[`__fp${t.name}`]?g(window[`__fp${t.name}`],t.name):r.get("");function S(t){a.select(t).selectAll("[id], [data-name]").each(function(){const n=this;let o={};const s=n.getAttribute("data-name");if(s&&s.includes(u)){const{meta:i}=v(s);o={...o,...i}}const e=n.getAttribute("id");if(e&&e.includes(u)){const{meta:i}=v(e);o={...o,...i}}n.setAttribute("data-meta",JSON.stringify(o))})}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{PREVIEW_MODE_ATTRIBUTE as M}from"./constants";import c from"./tools/base-runtime-url";import{
|
|
1
|
+
import{PREVIEW_MODE_ATTRIBUTE as M}from"./constants";import c from"./tools/base-runtime-url";import{loadCss as R,loadFont as g,loadJs as k}from"./tools/loaders";import I from"./tools/logger";import{buildRebookingUrl as T,getRebookingToken as A,retainRebookingToken as F}from"./tools/rebookingUrl";import{initSentry as V}from"./tools/sentry";import{sleep as H}from"./utils";import{initI18n as z}from"./utils/i18n";import G from"./utils/is-debug";import N from"./utils/is-localhost";import U from"./utils/is-webview";import{loadCustomCss as Q}from"./utils/loadCustomCss";import{loadIcons as q}from"./utils/loadIcons";import W from"./utils/mergeExhibitors";import E from"./utils/use-shadow";function t(){throw new Error("FloorPlan not ready")}export default class ${options;renderTarget;_ready;element;eventId;dataUrl;noOverlay;offHistory;ignoreQuery;allowConsent;onInit;disableRuntimeAlerts;viewerMode;maplibre;efpStyleLoadHandler;resolveReady;icons=new Map;enableRotation=!0;alwaysShowSidebar=!1;get ready(){return this._ready}get previewMode(){return this.options.previewMode||this.element.hasAttribute(M)}onBoothClick;onBookmarkClick;onVisitedClick;onCategoryClick;onFpConfigured;onDirection;onDetails;onExhibitorCustomButtonClick;onGetCoordsClick;onMarkerClick;onLeaveEvent;selectBooth(e){t()}selectExhibitor(e){t()}selectRoute(e,r){t()}getOptimizedRoutes(e){t()}selectCurrentPosition(e,r,h){t()}setBookmarks(e){t()}setEntitiesBookmarks(e){t()}setEntitiesVisited(e){t()}setMarkers(e){t()}updateLayerVisibility(e,r){t()}getCenterCoordinates(){t()}applyParameters(e){t()}exhibitorsList(){t()}boothsList(){t()}categoriesList(){t()}selectCategory(e){t()}getVisibility(){t()}setVisibility(e){t()}findLocation(){t()}zoomIn(){t()}zoomOut(){t()}zoomTo(e,r){t()}switchView(){t()}fitBounds(){t()}getBounds(e){t()}getBoothRect(e){t()}convertToGeo(e,r){t()}getGeoConfig(){t()}unstable_destroy(){t()}highlightExhibitors(e){t()}highlightBooths(e){t()}onCurrentPositionChanged(e){t()}search(e){t()}getFloors(){t()}onFloorActivated(e){t()}activateFloor(e){t()}showPathway(e,r){t()}showPathwayOnly(e,r){t()}hidePathways(){t()}showSearch(){t()}changeLanguage(e){t()}isGpsTrackingEnabled(){t()}setGpsTrackingEnabled(e){t()}deselectCurrentPosition(){t()}deselectRoute(){t()}reset(){t()}selectAccessibleRoute(e){t()}constructor(e){this.options=e,this.noOverlay=!!e.noOverlay,this.offHistory=!!e.offHistory,this.ignoreQuery=e.ignoreQuery,this.allowConsent=N&&!G?!1:e.allowConsent,this.onBoothClick=e.onBoothClick,this.onBookmarkClick=e.onBookmarkClick,this.onVisitedClick=e.onVisitedClick,this.onCategoryClick=e.onCategoryClick,this.onDetails=e.onDetails,this.onExhibitorCustomButtonClick=e.onExhibitorCustomButtonClick,this.onGetCoordsClick=e.onGetCoordsClick,this.onMarkerClick=e.onMarkerClick,this.onFpConfigured=e.onFpConfigured,this.onDirection=e.onDirection,this.onInit=e.onInit,this.onCurrentPositionChanged=e.onCurrentPositionChanged,this.onFloorActivated=e.onFloorActivated,this.onLeaveEvent=e.onLeaveEvent,this.viewerMode=!!e.viewerMode,this.disableRuntimeAlerts=e.disableRuntimeAlerts??!0,this.maplibre=e.maplibre,window.__efpMaplibre=e.maplibre,this._ready=new Promise((l,a)=>{this.resolveReady=l});const r=e.element;if(this.element=r,r.__expofp)throw new Error("Element already in use");if(r.__expofp=this,r.getAttribute("data-event-id")||r.getAttribute("data-event"))throw new Error("data-xxx attributes are removed, use options instead");const h=e.expo||e.event;if(!h)throw new Error("`expo` option is required");V({eventId:h||"",isWebview:U}),this.eventId=h,window.__efpEvent=h,window.__efpElement=r;const w=document.createElement("div");w.style.height="100%",w.style.width="100%",r.appendChild(w);let n;if(U&&(this.allowConsent=!0),e.allowConsent===void 0){const a=new URL(window.location.href).searchParams.get("allowConsent");a&&(this.allowConsent=a==="true")}if(E){n=w.attachShadow({mode:"open"});const l=n,a=document;l.createElement=(...i)=>a.createElement(...i),l.createElementNS=(...i)=>a.createElementNS(...i),l.createTextNode=(...i)=>a.createTextNode(...i)}else n=w;const y=document.createElement("div");if(y.style.height="100%",y.style.width="100%",n.appendChild(y),E&&Object.defineProperty(y,"ownerDocument",{value:n}),window.__efpShadowDOMStyleParent=E?n:void 0,this.renderTarget=y,r.getAttribute("data-data-url"))throw new Error("data-xxx attributes are removed, use options instead");const u=e.legacyDataUrlBase;window.__dataUrlBase=u,this.dataUrl=u,I.log("Instantiating ExpoFP floorplan",e.element,h);const S=u+"data.js",L=u+"wf.data.js",x=u+"fp.svg.js",O=[k(L),k(S),k(x)];let v=0;this.efpStyleLoadHandler=function(l){const a=window.__efpStyleElements;for(;v<a.length;){const i=a[v];n.appendChild(i),v++}},window.addEventListener("__efpStyleLoad",this.efpStyleLoadHandler);const b=this;(async function(){await Promise.all(O);let a=0;for(;window.__fpPending&&!window.__fp;)await H(2e3),await k(x+`?v=${++a}`);const i=window.__data;if(!i){const{showEventNotFound:o}=await import("./tools/event-not-found");o(r);return}await z();const m=new URLSearchParams(window.location.search);let f,C;if(i?.trackerUrl)try{f=new URL(i.trackerUrl),C=f.searchParams.get("expoId")}catch(o){console.error(o)}const _=async o=>{if(!f||!C)return Promise.reject(new Error("trackerUrl or expoId is missing"));const s=new URL(o.dataUrl,f.origin),d=await fetch(s.toString(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({expoId:C,token:decodeURIComponent(m.get("t"))})});let p=[];d.ok&&(p=(await d.json()).map(o.dataMapper)),window.__heatmapDataYah={yah:p}};if(m.get("heatmap")==="true")try{if(m.get("type")==="yah")m.get("subtype")==="kiosk"?await _({dataUrl:"/api/kiosks/list/viewer",dataMapper:o=>({...o,id:o.key,name:`Kiosk ${o.key}`})}):await _({dataUrl:"/api/v1/you-are-here/qr-code/list/viewer",dataMapper:(o,s)=>({...o,name:`QR Code #${s+1}`})});else{const o=new URL("/api/fp-stats/get",f.origin);o.searchParams.set("expoId",C),o.searchParams.set("type","booview"),o.searchParams.set("t",decodeURIComponent(m.get("t")));const s=new URL("api/fp-stats/get",f.origin);s.searchParams.set("expoId",C),s.searchParams.set("type","exview"),s.searchParams.set("t",decodeURIComponent(m.get("t")));const[d,p]=await Promise.all([fetch(o.toString()),fetch(s.toString())]),[P,j]=await Promise.all([d.json(),p.json()]);window.__heatmapData={booths:P,exhibitors:j}}}catch(o){console.error("Heatmap: Initialization error",o)}try{const o=A();if(o){F(o);const s=T("api/rebooking-data",{rt:o,expoKey:h}),d=await fetch(s);if(d.ok){const p=await d.json();W(i,p)}i.isRebooking=d.ok}else i.isRebooking=!1}catch(o){console.error(o)}const B=[R(c+"vendor/sanitize-css/sanitize.css",n),R(c+"vendor/perfect-scrollbar/css/perfect-scrollbar.css",n),g("Oswald",c+"fonts/oswald-v17-cyrillic_latin-300.woff",{weight:300}),g("Oswald",c+"fonts/oswald-v17-cyrillic_latin-500.woff",{weight:500}),g("Inter",c+"fonts/inter-400.woff2",{weight:400}),g("Inter",c+"fonts/inter-500.woff2",{weight:500}),g("Inter",c+"fonts/inter-600.woff2",{weight:600}),g("efp-symbols",c+"fonts/efp-symbols.woff",{weight:400}),Q(i,n),q(b.icons)];await Promise.all(B),b.enableRotation=i?.enableRotation??!1,b.alwaysShowSidebar=i?.alwaysShowSidebar??!1,I.log("Data loaded"),window.__storeInitAllowed=!0;const{default:D}=await import("./floorplan.ready");for(document.querySelectorAll(".expofp-floorplan-loader").forEach(o=>o.remove());r.firstChild&&r.firstChild!==w;)r.removeChild(r.firstChild);Object.setPrototypeOf(b,D.prototype).init()})()}}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { createRoot } from "react-dom/client";
|
|
2
|
+
import Rect from "./core/Rect";
|
|
2
3
|
import FloorPlanLoader from "./floorplan.loader";
|
|
3
4
|
import { CurrentPosition, MarkersData } from "./store/RouteStore";
|
|
4
5
|
import { Visibility } from "./store/types";
|
|
5
|
-
import Rect from "./core/Rect";
|
|
6
|
-
import { Bounds, POISelectors } from "./types/sdk.types";
|
|
7
6
|
import type { GeoConfig } from "./types";
|
|
7
|
+
import { Bounds, POISelectors } from "./types/sdk.types";
|
|
8
8
|
export default class FloorPlanReady extends FloorPlanLoader {
|
|
9
9
|
root: ReturnType<typeof createRoot>;
|
|
10
10
|
protected init(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{jsx as g,Fragment as L,jsxs as C}from"react/jsx-runtime";import{reaction as T}from"mobx";import{createRoot as R}from"react-dom/client";import{install as I}from"resize-observer";import V from"./components/Layout";import $ from"./floorplan.loader";import{applyParameters as M,destroyHistory as _,initRouting as j}from"./services/routing";import t from"./store";import{Route as x,findBooth as E,separateExternalIds as P}from"./store/RouteStore";import{destroyUiHandlers as z}from"./store/init/init-ui";import{GaEventActions as w,destroyGtag as G,sendEventToGa as B,setConsentSettings as q}from"./tools/gtag";import N from"./tools/report-error";import{resetGlobalVariables as Y}from"./tools/reset";import H from"./tools/track-event";import{fpGeo as b}from"./data/fpGeo";import{convertLocalToGps as O,isValidPointCoords as d}from"./utils/gps";import m from"./core/Rect";import{mapEntity as y}from"./utils/mapEntity";import{LANG_KEY as X,MAX_ROUTE_WAYPOINTS as p,PATHWAY_KEY as U}from"./constants";import{getStorage as v}from"./utils/entity-storage";import{ErrorBoundary as D}from"@sentry/react";import{POISelectorsSchema as F,BoundsSchema as K,ZoomToOptionsSchema as A}from"./schemas/sdk.schemas";import W from"debug";import{optimizeWaypointOrder as Q}from"./wayfinding/core/routing/optimizeWaypointOrder";import{hasLocale as Z,getLocales as J}from"./utils/i18n";import{shouldLoadIntercom as ee}from"./intercom";const S=W("efp:api");I();export default class te extends ${root;init(){this.ignoreQuery||j(this.offHistory),H("load"),t.fp=this,q(this.allowConsent),B(w.Load,""),this.root=R(this.renderTarget),this.root.render(g(D,{children:g(V,{offHistory:this.offHistory,allowConsent:this.allowConsent})})),B(w.Rendered,""),T(()=>t.layerStore.layersLoaded,()=>{this.resolveReady(),t.initialized||this.onInit?.(this),t.initialized=!0});const e=ee(window.__data);e&&import("./intercom/bootIntercom").then(({bootIntercom:o})=>o(e)).catch(()=>{})}selectBooth(e){if(typeof e!="string"&&!Array.isArray(e)){a("selectBooth","Parameter must be a string or an array of strings.","EFP000000");return}const o=t.boothStore.booths.filter(i=>typeof e=="string"?i.name===e||i.externalId===e:e.includes(i.name)||e.includes(i.externalId));t.selectBooth(o)}selectExhibitor(e){if(typeof e!="string"&&!Array.isArray(e)){a("selectExhibitor","Parameter must be a string or an array of strings.","EFP000100");return}if(!e?.length){t.uiState.menu=!1,t.searchStore.resetSearchBox(),t.uiState.details=null;return}const o=t.exhibitorStore.exhibitors.filter(s=>typeof e=="string"?s.name===e||s.externalId===e:e.includes(s.name)||e.includes(s.externalId));if(!o?.length)return;if(typeof e=="string"){t.selectExhibitor(o[0]),t.moveToList([o[0]]);return}const i=o.flatMap(s=>s.booths.map(r=>r.layer)),{description:n}=i.reduce((s,r)=>(s.freq[r.description]=(s.freq[r.description]||0)+1,s.freq[r.description]>s.maxCount&&(s.maxCount=s.freq[r.description],s.mostFrequent=r),s),{freq:{},mostFrequent:i[0],maxCount:0}).mostFrequent;t.layerStore.updateVisibility(n,!0),t.uiState.menu=!1,t.searchStore.resetSearchBox(),t.uiState.details=null,t.uiState.list={type:"filter",items:o,query:{key:"exhibitors",value:o.map(s=>s.externalId).join(",")}},t.moveToList()}highlightExhibitors(e){Array.isArray(e)||a("highlightExhibitors","Parameter must be an array of strings.","EFP000200"),t.boothStore.highlightedByExternalIds=[],t.exhibitorStore.highlightedByExternalIds=[...e]}highlightBooths(e){Array.isArray(e)||a("highlightBooths","Parameter must be an array of strings.","EFP000300"),t.exhibitorStore.highlightedByExternalIds=[],t.boothStore.highlightedByExternalIds=[...e]}highlightEntities(e){Array.isArray(e)||a("highlightEntities","Parameter must be an array of strings.","EFP000400");const{boothExternalIds:o,exhibitorExternalIds:i}=P(e);t.boothStore.highlightedByExternalIds=[...o],t.exhibitorStore.highlightedByExternalIds=[...i]}selectRoute(e,o){if(Array.isArray(e)){let i=[...e];const n=i.shift(),s=i.pop();if(i.length>p)throw new Error(`The maximum number of waypoints is ${p}.`);if(!n||!s){a("selectRoute","Invalid route format: When providing an array, it must include at least two points: a start and a destination.","EFP000401");return}t.routeStore.selectRoute(new x(f(n),f(s),i.map(f)));return}e||a("selectRoute","At a minimum, the starting point must be passed.","EFP000402"),t.routeStore.selectRoute(new x(f(e),f(o)))}getOptimizedRoutes(e){if(!Array.isArray(e))return a("getOptimizedRoutes","Parameter must be an array.","EFP000500"),[];if(e.length>p)throw new Error(`The maximum number of waypoints is ${p}.`);const o=e.map(f).filter(n=>!!n);if(!o.length)throw new Error("No booths found for the provided waypoints.");const i=new Map;for(const n of o){const s=n.layer?.name??"",r=i.get(s);r?r.push(n):i.set(s,[n])}return Array.from(i.values()).map(n=>({waypoints:Q(n.map(s=>[s.name,{cx:s.rect.cx,cy:s.rect.cy}]))}))}selectCurrentPosition(e,o,i){const n=d(e.x)&&d(e.y),s=d(e.lng)&&d(e.lat);!n&&!s&&a("selectCurrentPosition","A point must be passed. Either (x,y) or (lat,lng) are required.","EFP000600"),t.routeStore.selectCurrentPosition(e,o,i),this.onCurrentPositionChanged?.(e)}setBookmarks(e){(!Array.isArray(e)||!e.length)&&a("setBookmarks","Parameter must be an array.","EFP000700"),e.forEach(o=>{const i=t.exhibitorStore.exhibitors.find(n=>n.name===o.name||n.externalId===o.externalId);i&&(i.bookmarked=o.bookmarked)})}setEntitiesBookmarks(e){if(!Array.isArray(e)||!e.length){a("setEntitiesBookmarks","Parameter must be an array.","EFP000701");return}const o=["exhibitor","event","speaker","booth"],i=e.find(r=>!r.type||!o.includes(r.type));if(i){a("setEntitiesBookmarks",`Invalid entity type: ${i.type}. Must be one of: ${o.join(", ")}.`,"EFP000702");return}const n=v("bookmarked"),s={exhibitor:{existingIds:new Set(n.exhibitors||[]),finder:r=>t.exhibitorStore.findExhibitor(r),replacer:r=>t.exhibitorStore.replaceBookmarked(r)},event:{existingIds:new Set(n.events||[]),finder:r=>t.eventStore.findByNameOrSlug(r),replacer:r=>t.eventStore.replaceBookmarked(r)},speaker:{existingIds:new Set(n.speakers||[]),finder:r=>t.speakerStore.speakers.find(l=>l.name===r||l.externalId===r||l.slug===r),replacer:r=>t.speakerStore.replaceBookmarked(r)},booth:{existingIds:new Set(n.booths||[]),finder:r=>{const l=t.boothStore.findBooth(r);return l?.exhibitors.length===0?l:void 0},replacer:r=>t.boothStore.replaceBookmarked(r)}};e.forEach(r=>{const l=s[r.type],h=r.name||r.externalId||"",c=l.finder(h);c?r.bookmarked?l.existingIds.add(c.id):l.existingIds.delete(c.id):console.warn(`Entity not found: ${r.type} with query "${h}"`)}),Object.values(s).forEach(r=>{r.replacer(Array.from(r.existingIds))})}setEntitiesVisited(e){if(!Array.isArray(e)||!e.length){a("setEntitiesVisited","Parameter must be an array.","EFP000703");return}const o=["exhibitor","event"],i=e.find(r=>!r.type||!o.includes(r.type));if(i){a("setEntitiesVisited",`Invalid entity type: ${i.type}. Must be one of: ${o.join(", ")}.`,"EFP000704");return}const n=v("visited"),s={exhibitor:{existingIds:new Set(n.exhibitors||[]),finder:r=>t.exhibitorStore.findExhibitor(r),replacer:r=>t.exhibitorStore.replaceVisited(r)},event:{existingIds:new Set(n.events||[]),finder:r=>t.eventStore.findByNameOrSlug(r),replacer:r=>t.eventStore.replaceVisited(r)}};e.forEach(r=>{const l=s[r.type],h=r.name||r.externalId||"",c=l.finder(h);c?r.visited?l.existingIds.add(c.id):l.existingIds.delete(c.id):console.warn(`Entity not found: ${r.type} with query "${h}"`)}),Object.values(s).forEach(r=>{r.replacer(Array.from(r.existingIds))})}setMarkers(e){if(!e||!Array.isArray(e.icons)||!Array.isArray(e.markers)){a("setMarkers","Invalid input.","EFP000800");return}t.routeStore.setMarkers(e)}selectMarker(e,o=!0){return typeof e!="string"&&a("selectMarker","The identifier must be passed.","EFP000900"),t.routeStore.selectMarker(e,o)}drawCircles(e){Array.isArray(e)||a("drawCircles","Invalid input.","EFP000A00"),t.uiState.debugCircles=e}checkRoutes(){t.routeStore.checkRoutes()}updateLayerVisibility(e,o){typeof e!="string"&&a("updateLayerVisibility","The layer name (string) must be passed.","EFP000B00"),o||a("updateLayerVisibility","Passing a false value to visible will have no effect.","EFP000B01"),t.layerStore.updateVisibility(e,o)}getCenterCoordinates(){return t.fp.getCenterCoordinates()}exhibitorsList(){return t.exhibitorStore.exhibitors.map(e=>y(e))}boothsList(){return t.boothStore.booths.map(e=>y(e))}categoriesList(){return t.categoryStore.categories.map(e=>y(e))}selectCategory(e){if(e==null||typeof e!="string"){t.searchStore.selectSearch();return}const o=e?.toLowerCase(),i=t.categoryStore.categories.find(({name:n,slug:s})=>n?.toLowerCase()===o||s?.toLowerCase()===o);if(!i){a("selectCategory",`Category ${e} not found.`,"EFP000C01");return}t.selectCategory(i)}applyParameters(e){typeof e!="string"&&a("applyParameters","A query string must be passed.","EFP000D00"),M(e)}getVisibility(){return t.uiState.visibility}setVisibility(e){(typeof e!="object"||!Object.keys(e).length)&&a("setVisibility","The parameter must be passed.","EFP000E00"),t.uiState.setVisibility(e)}findLocation(){t.routeStore.findLocation()}zoomIn(){t.uiState.zoomIn()}zoomOut(){t.uiState.zoomOut()}switchView(){t.maplibreStore.activateMaplibre()}zoomTo(e,o){S("zoomTo called with selectors=%O options=%O",e,o);const i=F.safeParse(e);if(!i.success){a("zoomTo",i.error.message,"EFP001600");return}const n=A.safeParse(o);if(!n.success){a("zoomTo",n.error.message,"EFP001601");return}const s=this.getBounds(e);s&&this.fitBounds(s,o)}getBounds(e){S("getBounds called with selectors=%O",e);const o=F.safeParse(e);if(!o.success){a("getBounds",o.error.message,"EFP001400");return}const i=[];if(e.booths?.forEach(s=>{let r;s.externalId?r=t.boothStore.boothByExternalId.get(s.externalId):s.name&&(r=t.boothStore.boothByName.get(s.name.toLowerCase())),r?.rect&&i.push(r.rect)}),e.exhibitors?.forEach(s=>{let r;s.externalId?r=t.exhibitorStore.exhibitorByExternalId.get(s.externalId):s.name&&(r=t.exhibitorStore.exhibitorByName.get(s.name.toLowerCase())),r?.booths?.forEach(l=>{l.rect&&i.push(l.rect)})}),i.length===0)return;const n=m.fromMultiple(i);return{leftTop:{x:n.x1,y:n.y1},rightBottom:{x:n.x2,y:n.y2}}}fitBounds(e,o){if(S("fitBounds called with bounds=%O options=%O",e,o),!e){t.uiState.fitBounds();return}const i=K.safeParse(e);if(!i.success){a("fitBounds",i.error.message,"EFP001500");return}const n=A.safeParse(o);if(!n.success){a("fitBounds",n.error.message,"EFP001501");return}let s;if(o?.padding){const r=o.padding;s=m.fromX1y1x2y2(e.leftTop.x-r,e.leftTop.y-r,e.rightBottom.x+r,e.rightBottom.y+r)}else s=m.fromX1y1x2y2(e.leftTop.x,e.leftTop.y,e.rightBottom.x,e.rightBottom.y);t.uiState.moveToRect=s}getBoothRect(e){return typeof e!="string"&&a("getBoothRect","A booth name must be passed.","EFP000F00"),E(e)?.rect}convertToGeo(e,o){if(!b?.properties?.config){a("convertToGeo","The coordinates cannot be converted because the GPS configuration is not defined.","EFP001000");return}if(!e||!o){a("convertToGeo","Both coordinates must be passed.","EFP001001");return}return O(e,o,b.properties.config)}getGeoConfig(){const e=b?.properties?.config;return e?{bearing:e.bearing??0,p0:e.p0,p1:e.p1,p2:e.p2}:null}unstable_destroy(){let e=window.__efpElement.firstChild;Y(),window.removeEventListener("__efpStyleLoad",this.efpStyleLoadHandler),window.removeEventListener("error",N),t.maplibreStore.dispose(),_(),z(),G(),[...document.getElementsByTagName("script")].filter(i=>i.src.indexOf("/fp.svg")>-1||i.src.indexOf("/wf.data.js")>-1||i.src.indexOf("/data.js")>-1).forEach(i=>i.remove()),this.root.unmount(),e.remove()}search(e){return typeof e!="string"&&a("search","A search string must be passed.","EFP001100"),t.fuzzySearchEngineStore.loadEngine().then(()=>(t.searchStore.selectSearch(e),t.uiState.fuzzySearchItems.map(o=>({item:y(o.item),score:o.score}))))}getFloors(){return t.layerStore.floors.map(e=>({name:e.name,shortName:e.shortName,description:e.description,active:e.active,disabled:e.disabled,index:e.index}))}activateFloor(e){if(!e?.name&&e?.index==null){a("activateFloor","Invalid floorId. It must contain either a name or an index.","EFP001200");return}const o=this.getFloors();if(e.name){const i=o.find(n=>n.name===e.name||n.shortName===e.name);if(!i){a("activateFloor",`Floor with name "${e.name}" not found.`,"EFP001201");return}if(i.active)return;this.updateLayerVisibility(i.name,!0);return}if(e.index!==null){const i=o.find(s=>s.index===e.index),n=i?.name;if(!n){a("activateFloor",`Floor at index ${e.index} does not exist.`,"EFP001203");return}if(i.active)return;this.updateLayerVisibility(n,!0);return}}showPathway(e,o){const i=new URLSearchParams;if(i.set(U,e),o?.length){const{boothExternalIds:n,exhibitorExternalIds:s}=P(o);n.length>0&&i.set("booths",n.join(",")),s.length>0&&i.set("exhibitors",s.join(","))}this.applyParameters(i.toString())}showPathwayOnly(e,o){this.activateFloor({name:o}),t.layerStore.showPathWay(e),t.uiState.setPathwayOnlyMode(!0);const i=t.layerStore.findLayer(e),n=t.layerStore.findLayer(o),s=i?.rect||i?.viewbox?i:n;if(s?.rect||s?.viewbox){const r=s.viewbox??s.rect;t.uiState.moveToRect=m.fromX1y1x2y2(r.x1,r.y1,r.x2,r.y2)}}hidePathways(){this.highlightBooths([]),t.layerStore.hidePathways(),t.uiState.setPathwayOnlyMode(!1)}showSearch(){t.selectSearch("")}changeLanguage(e){const o=e?.toLowerCase?.();if(!Z(o)){a("changeLanguage",`Language "${e}" was not found. Available languages: ${J().map(n=>n.id).join(",")}`,"EFP001300");return}const i=new URLSearchParams;i.set(X,o),this.applyParameters(i.toString())}isGpsTrackingEnabled(){return t.routeStore.gpsEnabled}setGpsTrackingEnabled(e){t.routeStore.setGpsTrackingEnabled(e)}deselectCurrentPosition(){t.routeStore.selectCurrentPosition(null,!1)}deselectRoute(){t.routeStore.selectRoute(null),t.routeStore.setOnlyAccessible(!1)}reset(){this.selectBooth(""),this.selectExhibitor(""),this.selectCategory(),this.deselectCurrentPosition(),this.deselectRoute(),this.highlightEntities([]),t.uiState.kioskData&&t.resetCameraFn?t.resetCameraFn?.():this.fitBounds()}selectAccessibleRoute(e){t.routeStore.setOnlyAccessible(!0),this.selectRoute(e)}}function f(u){return typeof u=="string"?E(u):t.routeStore.getNearestBooth(u)}let k=0;function a(u,e,o){const i=`Error calling "${u}" SDK method.`,n=`${e.endsWith(".")?e:e+"."} More information at`;let s="https://js-sdk.expofp.com/api/packages";if(o&&(s+=`#error-${o}`),console.error(`${i} ${n} ${s}`),t.fp.disableRuntimeAlerts)return;t.uiState.setGlobalErrorMessage({title:i,body:C(L,{children:[n," ",g("a",{href:s,target:"_blank",rel:"noreferrer",children:s})]})}),clearTimeout(k);const r=8e3;k=window.setTimeout(()=>{const l=async()=>{t.uiState.globalErrorMessages.length>0&&(t.uiState.popGlobalErrorMessage(),await new Promise(h=>setTimeout(h,r/2)),l())};l()},r)}
|
|
1
|
+
import{jsx as g,Fragment as L,jsxs as C}from"react/jsx-runtime";import{ErrorBoundary as T}from"@sentry/react";import R from"debug";import{reaction as I}from"mobx";import{createRoot as V}from"react-dom/client";import{install as $}from"resize-observer";import M from"./components/Layout";import{LANG_KEY as _,MAX_ROUTE_WAYPOINTS as d,PATHWAY_KEY as j}from"./constants";import m from"./core/Rect";import{fpGeo as b}from"./data/fpGeo";import z from"./floorplan.loader";import{shouldLoadIntercom as G}from"./intercom";import{BoundsSchema as q,POISelectorsSchema as x,ZoomToOptionsSchema as E}from"./schemas/sdk.schemas";import{applyParameters as N,destroyHistory as Y,initRouting as H}from"./services/routing";import t from"./store";import{destroyUiHandlers as O}from"./store/init/init-ui";import{findBooth as P,Route as w,separateExternalIds as B}from"./store/RouteStore";import{destroyGtag as X,GaEventActions as v,sendEventToGa as F,setConsentSettings as U}from"./tools/gtag";import D from"./tools/report-error";import{resetGlobalVariables as K}from"./tools/reset";import W from"./tools/track-event";import{getStorage as A}from"./utils/entity-storage";import{convertLocalToGps as Q,isValidPointCoords as y}from"./utils/gps";import{getLocales as Z,hasLocale as J}from"./utils/i18n";import{mapEntity as p}from"./utils/mapEntity";import{optimizeWaypointOrder as ee}from"./wayfinding/core/routing/optimizeWaypointOrder";const S=R("efp:api");$();export default class te extends z{root;init(){this.ignoreQuery||H(this.offHistory),W("load"),t.fp=this,U(this.allowConsent),F(v.Load,""),this.root=V(this.renderTarget),this.root.render(g(T,{children:g(M,{offHistory:this.offHistory,allowConsent:this.allowConsent})})),F(v.Rendered,""),I(()=>t.layerStore.layersLoaded,()=>{this.resolveReady(),t.initialized||this.onInit?.(this),t.initialized=!0});const e=G(window.__data);e&&import("./intercom/bootIntercom").then(({bootIntercom:o})=>o(e)).catch(()=>{})}selectBooth(e){if(typeof e!="string"&&!Array.isArray(e)){a("selectBooth","Parameter must be a string or an array of strings.","EFP000000");return}const o=t.boothStore.booths.filter(i=>typeof e=="string"?i.name===e||i.externalId===e:e.includes(i.name)||e.includes(i.externalId));t.selectBooth(o)}selectExhibitor(e){if(typeof e!="string"&&!Array.isArray(e)){a("selectExhibitor","Parameter must be a string or an array of strings.","EFP000100");return}if(!e?.length){t.uiState.menu=!1,t.searchStore.resetSearchBox(),t.uiState.details=null;return}const o=t.exhibitorStore.exhibitors.filter(s=>typeof e=="string"?s.name===e||s.externalId===e:e.includes(s.name)||e.includes(s.externalId));if(!o?.length)return;if(typeof e=="string"){t.selectExhibitor(o[0]),t.moveToList([o[0]]);return}const i=o.flatMap(s=>s.booths.map(r=>r.layer)),{description:n}=i.reduce((s,r)=>(s.freq[r.description]=(s.freq[r.description]||0)+1,s.freq[r.description]>s.maxCount&&(s.maxCount=s.freq[r.description],s.mostFrequent=r),s),{freq:{},mostFrequent:i[0],maxCount:0}).mostFrequent;t.layerStore.updateVisibility(n,!0),t.uiState.menu=!1,t.searchStore.resetSearchBox(),t.uiState.details=null,t.uiState.list={type:"filter",items:o,query:{key:"exhibitors",value:o.map(s=>s.externalId).join(",")}},t.moveToList()}highlightExhibitors(e){Array.isArray(e)||a("highlightExhibitors","Parameter must be an array of strings.","EFP000200"),t.boothStore.highlightedByExternalIds=[],t.exhibitorStore.highlightedByExternalIds=[...e]}highlightBooths(e){Array.isArray(e)||a("highlightBooths","Parameter must be an array of strings.","EFP000300"),t.exhibitorStore.highlightedByExternalIds=[],t.boothStore.highlightedByExternalIds=[...e]}highlightEntities(e){Array.isArray(e)||a("highlightEntities","Parameter must be an array of strings.","EFP000400");const{boothExternalIds:o,exhibitorExternalIds:i}=B(e);t.boothStore.highlightedByExternalIds=[...o],t.exhibitorStore.highlightedByExternalIds=[...i]}selectRoute(e,o){if(Array.isArray(e)){let i=[...e];const n=i.shift(),s=i.pop();if(i.length>d)throw new Error(`The maximum number of waypoints is ${d}.`);if(!n||!s){a("selectRoute","Invalid route format: When providing an array, it must include at least two points: a start and a destination.","EFP000401");return}t.routeStore.selectRoute(new w(f(n),f(s),i.map(f)));return}e||a("selectRoute","At a minimum, the starting point must be passed.","EFP000402"),t.routeStore.selectRoute(new w(f(e),f(o)))}getOptimizedRoutes(e){if(!Array.isArray(e))return a("getOptimizedRoutes","Parameter must be an array.","EFP000500"),[];if(e.length>d)throw new Error(`The maximum number of waypoints is ${d}.`);const o=e.map(f).filter(n=>!!n);if(!o.length)throw new Error("No booths found for the provided waypoints.");const i=new Map;for(const n of o){const s=n.layer?.name??"",r=i.get(s);r?r.push(n):i.set(s,[n])}return Array.from(i.values()).map(n=>({waypoints:ee(n.map(s=>[s.name,{cx:s.rect.cx,cy:s.rect.cy}]))}))}selectCurrentPosition(e,o,i){const n=y(e.x)&&y(e.y),s=y(e.lng)&&y(e.lat);!n&&!s&&a("selectCurrentPosition","A point must be passed. Either (x,y) or (lat,lng) are required.","EFP000600"),t.routeStore.selectCurrentPosition(e,o,i),this.onCurrentPositionChanged?.(e)}setBookmarks(e){(!Array.isArray(e)||!e.length)&&a("setBookmarks","Parameter must be an array.","EFP000700"),e.forEach(o=>{const i=t.exhibitorStore.exhibitors.find(n=>n.name===o.name||n.externalId===o.externalId);i&&(i.bookmarked=o.bookmarked)})}setEntitiesBookmarks(e){if(!Array.isArray(e)||!e.length){a("setEntitiesBookmarks","Parameter must be an array.","EFP000701");return}const o=["exhibitor","event","speaker","booth"],i=e.find(r=>!r.type||!o.includes(r.type));if(i){a("setEntitiesBookmarks",`Invalid entity type: ${i.type}. Must be one of: ${o.join(", ")}.`,"EFP000702");return}const n=A("bookmarked"),s={exhibitor:{existingIds:new Set(n.exhibitors||[]),finder:r=>t.exhibitorStore.findExhibitor(r),replacer:r=>t.exhibitorStore.replaceBookmarked(r)},event:{existingIds:new Set(n.events||[]),finder:r=>t.eventStore.findByNameOrSlug(r),replacer:r=>t.eventStore.replaceBookmarked(r)},speaker:{existingIds:new Set(n.speakers||[]),finder:r=>t.speakerStore.speakers.find(l=>l.name===r||l.externalId===r||l.slug===r),replacer:r=>t.speakerStore.replaceBookmarked(r)},booth:{existingIds:new Set(n.booths||[]),finder:r=>{const l=t.boothStore.findBooth(r);return l?.exhibitors.length===0?l:void 0},replacer:r=>t.boothStore.replaceBookmarked(r)}};e.forEach(r=>{const l=s[r.type],h=r.name||r.externalId||"",c=l.finder(h);c?r.bookmarked?l.existingIds.add(c.id):l.existingIds.delete(c.id):console.warn(`Entity not found: ${r.type} with query "${h}"`)}),Object.values(s).forEach(r=>{r.replacer(Array.from(r.existingIds))})}setEntitiesVisited(e){if(!Array.isArray(e)||!e.length){a("setEntitiesVisited","Parameter must be an array.","EFP000703");return}const o=["exhibitor","event"],i=e.find(r=>!r.type||!o.includes(r.type));if(i){a("setEntitiesVisited",`Invalid entity type: ${i.type}. Must be one of: ${o.join(", ")}.`,"EFP000704");return}const n=A("visited"),s={exhibitor:{existingIds:new Set(n.exhibitors||[]),finder:r=>t.exhibitorStore.findExhibitor(r),replacer:r=>t.exhibitorStore.replaceVisited(r)},event:{existingIds:new Set(n.events||[]),finder:r=>t.eventStore.findByNameOrSlug(r),replacer:r=>t.eventStore.replaceVisited(r)}};e.forEach(r=>{const l=s[r.type],h=r.name||r.externalId||"",c=l.finder(h);c?r.visited?l.existingIds.add(c.id):l.existingIds.delete(c.id):console.warn(`Entity not found: ${r.type} with query "${h}"`)}),Object.values(s).forEach(r=>{r.replacer(Array.from(r.existingIds))})}setMarkers(e){if(!e||!Array.isArray(e.icons)||!Array.isArray(e.markers)){a("setMarkers","Invalid input.","EFP000800");return}t.routeStore.setMarkers(e)}selectMarker(e,o=!0){return typeof e!="string"&&a("selectMarker","The identifier must be passed.","EFP000900"),t.routeStore.selectMarker(e,o)}drawCircles(e){Array.isArray(e)||a("drawCircles","Invalid input.","EFP000A00"),t.uiState.debugCircles=e}checkRoutes(){t.routeStore.checkRoutes()}updateLayerVisibility(e,o){typeof e!="string"&&a("updateLayerVisibility","The layer name (string) must be passed.","EFP000B00"),o||a("updateLayerVisibility","Passing a false value to visible will have no effect.","EFP000B01"),t.layerStore.updateVisibility(e,o)}getCenterCoordinates(){return t.fp.getCenterCoordinates()}exhibitorsList(){return t.exhibitorStore.exhibitors.map(e=>p(e))}boothsList(){return t.boothStore.booths.map(e=>p(e))}categoriesList(){return t.categoryStore.categories.map(e=>p(e))}selectCategory(e){if(e==null||typeof e!="string"){t.searchStore.selectSearch();return}const o=e?.toLowerCase(),i=t.categoryStore.categories.find(({name:n,slug:s})=>n?.toLowerCase()===o||s?.toLowerCase()===o);if(!i){a("selectCategory",`Category ${e} not found.`,"EFP000C01");return}t.selectCategory(i)}applyParameters(e){typeof e!="string"&&a("applyParameters","A query string must be passed.","EFP000D00"),N(e)}getVisibility(){return t.uiState.visibility}setVisibility(e){(typeof e!="object"||!Object.keys(e).length)&&a("setVisibility","The parameter must be passed.","EFP000E00"),t.uiState.setVisibility(e)}findLocation(){t.routeStore.findLocation()}zoomIn(){t.uiState.zoomIn()}zoomOut(){t.uiState.zoomOut()}switchView(){t.maplibreStore.activateMaplibre()}zoomTo(e,o){S("zoomTo called with selectors=%O options=%O",e,o);const i=x.safeParse(e);if(!i.success){a("zoomTo",i.error.message,"EFP001600");return}const n=E.safeParse(o);if(!n.success){a("zoomTo",n.error.message,"EFP001601");return}const s=this.getBounds(e);s&&this.fitBounds(s,o)}getBounds(e){S("getBounds called with selectors=%O",e);const o=x.safeParse(e);if(!o.success){a("getBounds",o.error.message,"EFP001400");return}const i=[];if(e.booths?.forEach(s=>{let r;s.externalId?r=t.boothStore.boothByExternalId.get(s.externalId):s.name&&(r=t.boothStore.boothByName.get(s.name.toLowerCase())),r?.rect&&i.push(r.rect)}),e.exhibitors?.forEach(s=>{let r;s.externalId?r=t.exhibitorStore.exhibitorByExternalId.get(s.externalId):s.name&&(r=t.exhibitorStore.exhibitorByName.get(s.name.toLowerCase())),r?.booths?.forEach(l=>{l.rect&&i.push(l.rect)})}),i.length===0)return;const n=m.fromMultiple(i);return{leftTop:{x:n.x1,y:n.y1},rightBottom:{x:n.x2,y:n.y2}}}fitBounds(e,o){if(S("fitBounds called with bounds=%O options=%O",e,o),!e){t.uiState.fitBounds();return}const i=q.safeParse(e);if(!i.success){a("fitBounds",i.error.message,"EFP001500");return}const n=E.safeParse(o);if(!n.success){a("fitBounds",n.error.message,"EFP001501");return}let s;if(o?.padding){const r=o.padding;s=m.fromX1y1x2y2(e.leftTop.x-r,e.leftTop.y-r,e.rightBottom.x+r,e.rightBottom.y+r)}else s=m.fromX1y1x2y2(e.leftTop.x,e.leftTop.y,e.rightBottom.x,e.rightBottom.y);t.uiState.moveToRect=s}getBoothRect(e){return typeof e!="string"&&a("getBoothRect","A booth name must be passed.","EFP000F00"),P(e)?.rect}convertToGeo(e,o){if(!b?.properties?.config){a("convertToGeo","The coordinates cannot be converted because the GPS configuration is not defined.","EFP001000");return}if(!e||!o){a("convertToGeo","Both coordinates must be passed.","EFP001001");return}return Q(e,o,b.properties.config)}getGeoConfig(){const e=b?.properties?.config;return e?{bearing:e.bearing??0,p0:e.p0,p1:e.p1,p2:e.p2}:null}unstable_destroy(){let e=window.__efpElement.firstChild;K(),window.removeEventListener("__efpStyleLoad",this.efpStyleLoadHandler),window.removeEventListener("error",D),t.maplibreStore.dispose(),Y(),O(),X(),[...document.getElementsByTagName("script")].filter(i=>i.src.indexOf("/fp.svg")>-1||i.src.indexOf("/wf.data.js")>-1||i.src.indexOf("/data.js")>-1).forEach(i=>i.remove()),this.root.unmount(),e.remove()}search(e){return typeof e!="string"&&a("search","A search string must be passed.","EFP001100"),t.fuzzySearchEngineStore.loadEngine().then(()=>(t.searchStore.selectSearch(e),t.uiState.fuzzySearchItems.map(o=>({item:p(o.item),score:o.score}))))}getFloors(){return t.layerStore.floors.map(e=>({name:e.name,shortName:e.shortName,description:e.description,active:e.active,disabled:e.disabled,index:e.index}))}activateFloor(e){if(!e?.name&&e?.index==null){a("activateFloor","Invalid floorId. It must contain either a name or an index.","EFP001200");return}const o=this.getFloors();if(e.name){const i=o.find(n=>n.name===e.name||n.shortName===e.name);if(!i){a("activateFloor",`Floor with name "${e.name}" not found.`,"EFP001201");return}if(i.active)return;this.updateLayerVisibility(i.name,!0);return}if(e.index!==null){const i=o.find(s=>s.index===e.index),n=i?.name;if(!n){a("activateFloor",`Floor at index ${e.index} does not exist.`,"EFP001203");return}if(i.active)return;this.updateLayerVisibility(n,!0);return}}showPathway(e,o){const i=new URLSearchParams;if(i.set(j,e),o?.length){const{boothExternalIds:n,exhibitorExternalIds:s}=B(o);n.length>0&&i.set("booths",n.join(",")),s.length>0&&i.set("exhibitors",s.join(","))}this.applyParameters(i.toString())}showPathwayOnly(e,o){this.activateFloor({name:o}),t.layerStore.showPathWay(e),t.uiState.setPathwayOnlyMode(!0);const i=t.layerStore.findLayer(e),n=t.layerStore.findLayer(o),s=i?.rect||i?.viewbox?i:n;if(s?.rect||s?.viewbox){const r=s.viewbox??s.rect;t.uiState.moveToRect=m.fromX1y1x2y2(r.x1,r.y1,r.x2,r.y2)}}hidePathways(){this.highlightBooths([]),t.layerStore.hidePathways(),t.uiState.setPathwayOnlyMode(!1)}showSearch(){t.selectSearch("")}changeLanguage(e){const o=e?.toLowerCase?.();if(!J(o)){a("changeLanguage",`Language "${e}" was not found. Available languages: ${Z().map(n=>n.id).join(",")}`,"EFP001300");return}const i=new URLSearchParams;i.set(_,o),this.applyParameters(i.toString())}isGpsTrackingEnabled(){return t.routeStore.gpsEnabled}setGpsTrackingEnabled(e){t.routeStore.setGpsTrackingEnabled(e)}deselectCurrentPosition(){t.routeStore.selectCurrentPosition(null,!1)}deselectRoute(){t.routeStore.selectRoute(null),t.routeStore.setOnlyAccessible(!1)}reset(){this.selectBooth(""),this.selectExhibitor(""),this.selectCategory(),this.deselectCurrentPosition(),this.deselectRoute(),this.highlightEntities([]),t.uiState.kioskData&&t.resetCameraFn?t.resetCameraFn?.():this.fitBounds()}selectAccessibleRoute(e){t.routeStore.setOnlyAccessible(!0),this.selectRoute(e)}}function f(u){return typeof u=="string"?P(u):t.routeStore.getNearestBooth(u)}let k=0;function a(u,e,o){const i=`Error calling "${u}" SDK method.`,n=`${e.endsWith(".")?e:e+"."} More information at`;let s="https://js-sdk.expofp.com/api/packages";if(o&&(s+=`#error-${o}`),console.error(`${i} ${n} ${s}`),t.fp.disableRuntimeAlerts)return;t.uiState.setGlobalErrorMessage({title:i,body:C(L,{children:[n," ",g("a",{href:s,target:"_blank",rel:"noreferrer",children:s})]})}),clearTimeout(k);const r=8e3;k=window.setTimeout(()=>{const l=async()=>{t.uiState.globalErrorMessages.length>0&&(t.uiState.popGlobalErrorMessage(),await new Promise(h=>setTimeout(h,r/2)),l())};l()},r)}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{useCallback as t,useRef as d}from"react";export const useDragGesture=({onDragStart:n,onDragMove:c,onDragEnd:r})=>{const e=d(!1),s=t(u=>{e.current=!0,n(u.touches[0].clientY)},[n]),o=t(u=>{e.current&&c(u.touches[0].clientY)},[c]),l=t(()=>{e.current&&(e.current=!1,r())},[r]),h=t(u=>{e.current=!0,n(u.clientY)},[n]),i=t(u=>{e.current&&c(u.clientY)},[c]),f=t(()=>{e.current&&(e.current=!1,r())},[r]);return{touchHandlers:{onTouchStart:s,onTouchMove:o,onTouchEnd:l},mouseHandlers:{onMouseDown:h,onMouseMove:i,onMouseUp:f}}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{useObserver as c}from"mobx-react-lite";import{useCallback as s,useEffect as p}from"react";import F from"../store";export const useURLFilters=()=>{const{urlFilterManager:e,uiState:t}=F,r=c(()=>({categories:t.selectedCategoryFilters.map(i=>i.name),poiType:t.selectedPoiTypeFilters.length>0?t.selectedPoiTypeFilters[0].name:null,exhibitors:e.currentFilters.exhibitors,isActive:t.hasAppliedFilters||e.currentFilters.exhibitors})),l=s(i=>{e.isInitialized&&e.setCategories(i)},[e]),o=s(i=>{e.isInitialized&&e.setPoiType(i)},[e]),a=s(()=>{e.isInitialized&&e.clearAllFilters()},[e]),n=s(i=>e.validateFilters(i),[e]);return p(()=>{e.isInitialized||e.initialize()},[e]),{currentFilters:r,setCategories:l,setPoiType:o,clearAllFilters:a,validateFilters:n,isInitialized:e.isInitialized}};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{useEffect as o,useState as d}from"react";export const useWindowSize=()=>{const[i,n]=d(()=>window!==window.top?{width:document.documentElement.clientWidth||window.innerWidth,height:document.documentElement.clientHeight||window.innerHeight}:{width:window.innerWidth,height:window.innerHeight});return o(()=>{const e=()=>{const t=window!==window.top;n(t?{width:document.documentElement.clientWidth||window.innerWidth,height:document.documentElement.clientHeight||window.innerHeight}:{width:window.innerWidth,height:window.innerHeight})};return window.addEventListener("resize",e),window.addEventListener("orientationchange",e),()=>{window.removeEventListener("resize",e),window.removeEventListener("orientationchange",e)}},[]),i};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type
|
|
1
|
+
import { type Data } from "../data/Data";
|
|
2
|
+
import { type IntercomContext } from "./types";
|
|
3
3
|
export declare function shouldLoadIntercom(data: Data): IntercomContext | null;
|
|
4
4
|
//# sourceMappingURL=shouldLoad.d.ts.map
|
package/dist/esm/load.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import './utils/silence-mobx-react-lite-warning';
|
|
2
|
-
import type
|
|
3
|
-
import type
|
|
4
|
-
import type
|
|
2
|
+
import { type Manifest } from './_misc_to_move/manifest';
|
|
3
|
+
import { type Ref } from './_misc_to_move/ref';
|
|
4
|
+
import { type FloorPlan, type FloorPlanOptions } from './types';
|
|
5
5
|
export declare function load(manifestRef: Manifest | Ref<Manifest>, options?: FloorPlanOptions): Promise<FloorPlan>;
|
|
6
6
|
declare global {
|
|
7
7
|
interface Window {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{__esDecorate as l,__runInitializers as y}from"tslib";import{action as h,observable as A,reaction as F}from"mobx";import
|
|
1
|
+
import{__esDecorate as l,__runInitializers as y}from"tslib";import{action as h,observable as A,reaction as F}from"mobx";import{PREFIXES as $}from"../store/search-buttons/constants";import a from"../tools/logger";import{decodeString as X,decodeStringArray as M,encodeString as G,encodeStringArray as N,toLowerCaseArray as m,toLowerCaseString as k}from"../utils/urlEncoding";const d={CATEGORIES:"categories",POI_TYPE:"poiType",POI_TYPES:"poiTypes",EXHIBITORS:"exhibitors"};let H=(()=>{let n=[],f,T=[],S=[],P,L=[],I=[],C,_,R,b,w,O,U,x,E,z;return class{static{const t=typeof Symbol=="function"&&Symbol.metadata?Object.create(null):void 0;f=[A],P=[A],C=[h],_=[h],R=[h],b=[h],w=[h],O=[h],U=[h],x=[h],E=[h],z=[h],l(this,null,C,{kind:"method",name:"initialize",static:!1,private:!1,access:{has:e=>"initialize"in e,get:e=>e.initialize},metadata:t},null,n),l(this,null,_,{kind:"method",name:"parseURLFilters",static:!1,private:!1,access:{has:e=>"parseURLFilters"in e,get:e=>e.parseURLFilters},metadata:t},null,n),l(this,null,R,{kind:"method",name:"applyFiltersToStore",static:!1,private:!1,access:{has:e=>"applyFiltersToStore"in e,get:e=>e.applyFiltersToStore},metadata:t},null,n),l(this,null,b,{kind:"method",name:"updateURLFromFilters",static:!1,private:!1,access:{has:e=>"updateURLFromFilters"in e,get:e=>e.updateURLFromFilters},metadata:t},null,n),l(this,null,w,{kind:"method",name:"setCategories",static:!1,private:!1,access:{has:e=>"setCategories"in e,get:e=>e.setCategories},metadata:t},null,n),l(this,null,O,{kind:"method",name:"setPoiType",static:!1,private:!1,access:{has:e=>"setPoiType"in e,get:e=>e.setPoiType},metadata:t},null,n),l(this,null,U,{kind:"method",name:"setPoiTypes",static:!1,private:!1,access:{has:e=>"setPoiTypes"in e,get:e=>e.setPoiTypes},metadata:t},null,n),l(this,null,x,{kind:"method",name:"clearAllFilters",static:!1,private:!1,access:{has:e=>"clearAllFilters"in e,get:e=>e.clearAllFilters},metadata:t},null,n),l(this,null,E,{kind:"method",name:"focusOnFilteredBooths",static:!1,private:!1,access:{has:e=>"focusOnFilteredBooths"in e,get:e=>e.focusOnFilteredBooths},metadata:t},null,n),l(this,null,z,{kind:"method",name:"openExhibitorsList",static:!1,private:!1,access:{has:e=>"openExhibitorsList"in e,get:e=>e.openExhibitorsList},metadata:t},null,n),l(null,null,f,{kind:"field",name:"currentFilters",static:!1,private:!1,access:{has:e=>"currentFilters"in e,get:e=>e.currentFilters,set:(e,r)=>{e.currentFilters=r}},metadata:t},T,S),l(null,null,P,{kind:"field",name:"isInitialized",static:!1,private:!1,access:{has:e=>"isInitialized"in e,get:e=>e.isInitialized,set:(e,r)=>{e.isInitialized=r}},metadata:t},L,I),t&&Object.defineProperty(this,Symbol.metadata,{enumerable:!0,configurable:!0,writable:!0,value:t})}rootStore=y(this,n);currentFilters=y(this,T,{categories:[],poiType:null,poiTypes:[],exhibitors:!1});isInitialized=(y(this,S),y(this,L,!1));constructor(t){y(this,I),this.rootStore=t,this.setupReactions()}initialize(){this.parseURLFilters(),this.applyFiltersToStore(),this.isInitialized=!0,a.log("URLFilterManager initialized with filters:",this.currentFilters)}parseURLFilters(){const t=new URLSearchParams(window.location.search),e=t.get(d.CATEGORIES),r=e?M(e):[],i=t.get(d.POI_TYPE),s=i?X(i):null,o=t.get(d.POI_TYPES),c=o?M(o):[],p=t.get(d.EXHIBITORS),u=p==="true"||p==="",v=c.filter(g=>{if(!g)return!1;const B=this.rootStore.poiTypeStore.poiTypes.some(Y=>Y.name.toLowerCase()===g.toLowerCase());return B||a.warn(`POI type not found in data: ${g}`),B});r.length>0&&(s||v.length>0)?(a.warn("URL contains both categories and POI types. Clearing POI types."),this.currentFilters={categories:r,poiType:null,poiTypes:[],exhibitors:u}):this.currentFilters={categories:r,poiType:s,poiTypes:v,exhibitors:u},a.log("URLFilterManager parsed filters:",{categories:r,poiType:s,poiTypes:c,exhibitors:u}),this.validateFilters(this.currentFilters)}applyFiltersToStore(){const{uiState:t,categoryFilterStore:e,searchButtonsStore:r}=this.rootStore;if(this.currentFilters.categories.length>0){const i=this.currentFilters.categories.map(s=>this.rootStore.categoryStore.categories.find(o=>o.name.toLowerCase()===s.toLowerCase())).filter(s=>s!==void 0);i.length>0?(t.selectedCategoryFilters=i,e.state.selectedItems=i.map(s=>({id:s.id,name:s.name})),t.categoryFilterOpen=!0,a.log("URLFilterManager applied categories:",i.map(s=>s.name)),setTimeout(()=>{this.focusOnFilteredBooths(),this.rootStore.searchStore.setFocused(!0)},100)):a.warn("URLFilterManager: no categories found for names:",this.currentFilters.categories)}if(this.currentFilters.poiType){const i=this.rootStore.poiTypeStore.poiTypes.find(s=>s.name.toLowerCase()===this.currentFilters.poiType.toLowerCase());i?(t.selectedPoiTypeFilters=[i],r.setPoiFilterId(`${$.POI_TYPE}${i.id}`),a.log("URLFilterManager applied POI type:",i.name),setTimeout(()=>{this.focusOnFilteredBooths(),this.rootStore.searchStore.setFocused(!0)},100)):a.warn("URLFilterManager: no POI type found for name:",this.currentFilters.poiType)}if(this.currentFilters.poiTypes.length>0){const i=this.currentFilters.poiTypes.map(s=>s?this.rootStore.poiTypeStore.poiTypes.find(o=>o.name.toLowerCase()===s.toLowerCase()):null).filter(s=>s!=null);i.length>0?(t.selectedPoiTypeFilters=i,a.log("URLFilterManager applied POI types:",i.map(s=>s.name)),setTimeout(()=>{this.focusOnFilteredBooths(),this.rootStore.searchStore.setFocused(!0)},100)):(a.warn("URLFilterManager: no POI types found for names:",this.currentFilters.poiTypes),this.currentFilters.poiTypes=[])}this.currentFilters.exhibitors&&this.openExhibitorsList()}updateURLFromFilters(){const{uiState:t}=this.rootStore,e=new URLSearchParams;if(t.selectedCategoryFilters.length>0){const i=t.selectedCategoryFilters.map(o=>o.name.toLowerCase()),s=N(i);s&&e.set(d.CATEGORIES,s)}if(t.selectedPoiTypeFilters.length>0&&t.selectedCategoryFilters.length===0)if(t.selectedPoiTypeFilters.length===1){const i=t.selectedPoiTypeFilters[0].name.toLowerCase();if(i){const s=G(i);s&&e.set(d.POI_TYPE,s)}}else{const i=t.selectedPoiTypeFilters.map(o=>o.name.toLowerCase()),s=N(i);s&&e.set(d.POI_TYPES,s)}this.currentFilters.exhibitors&&t.selectedCategoryFilters.length===0&&t.selectedPoiTypeFilters.length===0&&e.set(d.EXHIBITORS,"true");const r=window.location.pathname+(e.toString()?`?${e.toString()}`:"");window.history.replaceState({},"",r),this.currentFilters={categories:t.selectedCategoryFilters.length>0?t.selectedCategoryFilters.map(i=>i.name):[],poiType:t.selectedPoiTypeFilters.length===1&&t.selectedCategoryFilters.length===0?t.selectedPoiTypeFilters[0].name:null,poiTypes:t.selectedPoiTypeFilters.length>1&&t.selectedCategoryFilters.length===0?t.selectedPoiTypeFilters.map(i=>i.name):[],exhibitors:this.currentFilters.exhibitors}}setCategories(t){this.currentFilters.categories=m(t),this.currentFilters.poiType=null,this.isInitialized&&this.updateURLFromFilters()}setPoiType(t){this.currentFilters.poiType=k(t),this.currentFilters.poiTypes=[],this.currentFilters.categories=[],this.isInitialized&&this.updateURLFromFilters()}setPoiTypes(t){this.currentFilters.poiTypes=m(t),this.currentFilters.poiType=null,this.currentFilters.categories=[],this.isInitialized&&this.updateURLFromFilters()}clearAllFilters(){this.currentFilters={categories:[],poiType:null,poiTypes:[],exhibitors:!1};const{uiState:t}=this.rootStore;t.categoryFilterOpen=!1,this.updateURLFromFilters()}getCurrentFilters(){return{...this.currentFilters}}setupReactions(){F(()=>this.rootStore.uiState.selectedCategoryFilters,t=>{if(this.isInitialized&&t.length>0){const e=m(t.map(r=>r.name));this.setCategories(e)}}),F(()=>this.rootStore.uiState.selectedPoiTypeFilters,t=>{if(this.isInitialized&&t.length>0)if(t.length===1){const e=k(t[0].name);e&&this.setPoiType(e)}else{const e=m(t.map(r=>r.name));this.setPoiTypes(e)}})}validateFilters(t){if(t.categories.length>0&&(t.poiType||t.poiTypes.length>0))return a.warn("Categories and POI types cannot be active simultaneously"),!1;if(t.poiType&&t.poiTypes.length>0)return a.warn("Both single POI type and multiple POI types cannot be active simultaneously"),!1;for(const e of t.categories)if(!this.getCategoryIdByName(e))return a.warn(`Category not found: ${e}`),!1;if(t.poiType&&!this.getPoiTypeIdByName(t.poiType))return a.warn(`POI type not found: ${t.poiType}`),!1;for(const e of t.poiTypes)if(!this.getPoiTypeIdByName(e))return a.warn(`POI type not found: ${e}`),!1;return!0}getCategoryIdByName(t){const e=this.rootStore.categoryStore.categories.find(r=>r.name.toLowerCase()===t.toLowerCase());return e?e.id:null}getPoiTypeIdByName(t){const e=this.rootStore.poiTypeStore.poiTypes.find(r=>r.name.toLowerCase()===t.toLowerCase());return e?e.id:null}focusOnFilteredBooths(){if(!this.rootStore.layerStore.layersLoaded){F(()=>this.rootStore.layerStore.layersLoaded,()=>{this.focusOnFilteredBooths()},{fireImmediately:!1});return}const{uiState:t,exhibitorStore:e,boothStore:r}=this.rootStore;let i=[];if(t.selectedCategoryFilters.length>0){const o=e.exhibitors.filter(c=>t.selectedCategoryFilters.some(p=>c.categories.some(u=>u.id===p.id)));i=r.booths.filter(c=>o.some(p=>p.id===c.exhibitors[0]?.id))}if(t.selectedPoiTypeFilters.length>0){const o=r.booths.filter(c=>t.selectedPoiTypeFilters.some(p=>c.poiTypeId===p.id));i.length>0?i=i.filter(c=>o.some(p=>p.id===c.id)):i=o}const s=i.filter(o=>o.visible);s.length>0?(t.moveToBooths=s,this.rootStore.moveToList(s)):i.length>0&&(this.rootStore.showMap(),this.rootStore.moveToList(i))}openExhibitorsList(){const{uiState:t}=this.rootStore;t.list={type:"exhibitors",text:"",focused:!1},setTimeout(()=>{this.rootStore.searchStore.setFocused(!0)},100),a.log("URLFilterManager opened exhibitors list")}}})();export{H as URLFilterManager};
|