@expofp/floorplan 3.11.11 → 3.12.0
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-DmRjgZlq.js → Button-C5CmZ0so.js} +6 -6
- package/dist/browser/CookieConsent-kl_B6sH5.js +38 -0
- package/dist/browser/{Debug-aXNyyjt9.js → Debug-DymHiO2Z.js} +14 -14
- package/dist/browser/{Demo-Br_48fiP.js → Demo-5tRIgVJF.js} +14 -14
- package/dist/browser/{Free-CPqp0AlV.js → Free-hYQaAEbK.js} +16 -16
- package/dist/browser/{Gallery-DybTjssU.js → Gallery-D10tiZuW.js} +24 -24
- package/dist/browser/{GpsLoader-4QcLlh63.js → GpsLoader-CNkUVJdS.js} +51 -50
- package/dist/browser/{KioskStore-CwHiYm_-.js → KioskStore-2WAOxGM0.js} +31 -31
- package/dist/browser/{MaplibreAdapter-Cts8OaYm.js → MaplibreAdapter-B_tNIXx4.js} +2360 -2331
- package/dist/browser/{ModalContainer-BG7y_r6K.js → ModalContainer-CckyeoUG.js} +13 -13
- package/dist/browser/{PermissionNotice-DwlyTCP5.js → PermissionNotice-qetBrmIY.js} +7 -7
- package/dist/browser/{SetKioskMode-CvWZVqNw.js → SetKioskMode-BOjaqczc.js} +9 -9
- package/dist/browser/ShowKiosk-CcQHeM8K.js +33 -0
- package/dist/browser/{TouchHand-RuKsL9Wb.js → TouchHand-DKpxmOwz.js} +5 -5
- package/dist/browser/{ViewerMenuPanel-Dhd7sWsi.js → ViewerMenuPanel-HULfvF54.js} +25 -25
- package/dist/browser/{add-debug-secret-listener-BRMVj2bX.js → add-debug-secret-listener-BTGIVZFY.js} +1 -1
- package/dist/browser/{boolean-editor-DpmP-U1q.js → boolean-editor-oT7I3D0U.js} +10 -10
- package/dist/browser/{bootIntercom-C1k788Mx.js → bootIntercom-YnsJPGCs.js} +3 -3
- package/dist/browser/{booth-by-xy-CP-xbS2r.js → booth-by-xy-DTknn14w.js} +292 -295
- package/dist/browser/bundle.json +78 -63
- package/dist/browser/{classnames-BkI7JKtT.js → classnames-VfuHc9uB.js} +2 -2
- package/dist/browser/{client-C3mnANrs.js → client-Bevofhdz.js} +5 -5
- package/dist/browser/{components-Cg-q6o6G.js → components-COUCtdev.js} +1369 -1316
- package/dist/browser/{debug-overlay-BtQ-2fHJ.js → debug-overlay-BLN24Eyb.js} +415 -415
- package/dist/browser/{debug-ui-CjzERnaO.js → debug-ui-BT7Ddvoj.js} +7 -7
- package/dist/browser/{dist-Bn99_f_N.js → dist-CWBtHMZR.js} +6 -6
- package/dist/browser/{dist-Bn-20xtu.js → dist-CtKSG8GG.js} +4 -4
- package/dist/browser/{dist-DO20gNXa.js → dist-saTnlhyc.js} +7 -7
- package/dist/browser/{browser-BO13Zt0K.js → efp-debug-init-CYoM0s-a.js} +61 -14
- package/dist/browser/enum-editor-vF4eKelT.js +34 -0
- package/dist/browser/{es5-Dvav8ihy.js → es5-COzmRHZr.js} +2 -2
- package/dist/browser/{event-not-found-CC0X5cEh.js → event-not-found-BZkFh-P9.js} +1 -1
- package/dist/browser/{exports-D1Nac_lG.js → exports-BsqJX0o4.js} +1 -1
- package/dist/browser/{favicon-Bid1H1Jx.js → favicon-BBgsGFil.js} +1 -1
- package/dist/browser/{fetch-retry.umd-ETXiLKL-.js → fetch-retry.umd-BFTNSvNa.js} +2 -2
- package/dist/browser/{flex-B6lY7ZeN.js → flex-DnOM12q-.js} +6 -6
- package/dist/browser/{floorplan.loader-g70WUpYB.js → floorplan.loader-DuVsbJsr.js} +893 -901
- package/dist/browser/floorplan.ready-B2SvQNh9.js +1326 -0
- package/dist/browser/{fuse-BlXhXkUq.js → fuse-Ddn6vCOL.js} +2 -2
- package/dist/browser/i18n-D9dsV3GV.js +8659 -0
- package/dist/browser/index.js +49 -117
- package/dist/browser/{index.module-X_SYTiEf.js → index.module-CFTe1PiT.js} +23 -23
- package/dist/browser/integrateKiosk-vlZ9-8EP.js +28 -0
- package/dist/browser/{is-webview-zoAn2Bb4.js → is-webview-SfodrdWn.js} +1 -1
- package/dist/browser/{jsx-runtime-uErsjC2N.js → jsx-runtime-DEIf9CUU.js} +2 -2
- package/dist/browser/{lib-HG4Gm1_q.js → lib-CCkkeprZ.js} +5 -5
- package/dist/browser/loadImage-C356B0zk.js +58 -0
- package/dist/browser/locales/ru.json +1 -1
- package/dist/browser/{logDeviceInfo-DHyhFPeb.js → logDeviceInfo-UnfHYhqR.js} +9 -9
- package/dist/browser/{main-CTeBxXij.js → main-JnTe8DvY.js} +1 -1
- package/dist/browser/mobx-DPek3UBx.js +24 -0
- package/dist/browser/optional-boolean-editor-HEZXOpAy.js +20 -0
- package/dist/browser/optional-enum-editor-DpN8qtqv.js +34 -0
- package/dist/browser/optional-string-editor-iR5VHFAR.js +30 -0
- package/dist/browser/{particles.min-aU8uhhyJ.js → particles.min-BWlVGdrr.js} +2 -2
- package/dist/browser/{prop-types-90IFj1US.js → prop-types-DA-Iew4C.js} +2 -2
- package/dist/browser/{react-Cr4w3-kF.js → react-C02q0n7M.js} +2 -2
- package/dist/browser/{react-dom-BqelOkAi.js → react-dom-BV1hX9nO.js} +4 -4
- package/dist/browser/reset-all-settings-BQgeIRam.js +190 -0
- package/dist/browser/{rolldown-runtime-CMis-gOy.js → rolldown-runtime-DYSU24gn.js} +1 -1
- package/dist/browser/{enum-editor-CDtermvp.js → select-D0S5iMvJ.js} +261 -283
- package/dist/browser/{settings-BGmwy5RM.js → settings-Dw78gtQ_.js} +3 -3
- package/dist/browser/{settings-item-CDNsKf0A.js → settings-item-BSR8Iz1R.js} +7 -7
- package/dist/browser/{store-CcwBnHB2.js → store-DxRBdgZM.js} +7719 -7991
- package/dist/browser/string-editor-BwtRnquZ.js +30 -0
- package/dist/browser/text-field-D5x33kIn.js +88 -0
- package/dist/browser/{theme-C1rg17tG.js → theme-uaffdJE1.js} +9 -9
- package/dist/browser/ui-jO3fquPn.js +43 -0
- package/dist/browser/{useRenderTarget-gmu3Wzj0.js → useRenderTarget-NdsPPF5u.js} +5 -5
- package/dist/esm/components/Booth/Booth.js +1 -1
- package/dist/esm/components/EntityListRow.js +1 -1
- package/dist/esm/components/Exhibitor.js +1 -1
- package/dist/esm/components/Kiosk/ShowKiosk.js +1 -1
- package/dist/esm/components/LanguageRowContainer.d.ts +1 -0
- package/dist/esm/components/Layout.d.ts +2 -1
- package/dist/esm/components/Layout.js +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-bg.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 +1 -1
- package/dist/esm/components/Map/drawing/config/config-booth-bg.js +1 -1
- package/dist/esm/components/Map/drawing/config/config-load-layer.js +1 -1
- package/dist/esm/components/Map/drawing/config/loadBoothsImages.js +1 -1
- package/dist/esm/components/Maplibre/MaplibreAdapter.js +1 -1
- package/dist/esm/components/Maplibre/MaplibreWrapper.js +1 -1
- package/dist/esm/components/Maplibre/utils/resolve-map-style.d.ts +15 -0
- package/dist/esm/components/Maplibre/utils/resolve-map-style.js +1 -0
- package/dist/esm/components/Menu.d.ts +3 -2
- package/dist/esm/components/Menu.js +1 -1
- package/dist/esm/components/OverlayContainer.d.ts +2 -1
- package/dist/esm/components/OverlayContainer.js +1 -1
- package/dist/esm/components/Ws.js +1 -1
- package/dist/esm/constants.d.ts +7 -13
- package/dist/esm/constants.js +1 -1
- package/dist/esm/data/fp-payloads.d.ts +27 -0
- package/dist/esm/data/fp-payloads.js +1 -0
- package/dist/esm/data/fpGeo.js +1 -1
- package/dist/esm/data/index.d.ts +8 -2
- package/dist/esm/data/index.js +1 -1
- package/dist/esm/data/svg.d.ts +4 -1
- package/dist/esm/data/svg.js +1 -1
- package/dist/esm/floorplan.loader.d.ts +13 -4
- package/dist/esm/floorplan.loader.js +1 -1
- package/dist/esm/floorplan.ready.d.ts +8 -0
- package/dist/esm/floorplan.ready.js +1 -1
- package/dist/esm/index.d.ts +0 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/intercom/shouldLoad.d.ts +2 -2
- package/dist/esm/intercom/shouldLoad.js +1 -1
- package/dist/esm/load-dev.d.ts +44 -0
- package/dist/esm/load-dev.js +1 -0
- package/dist/esm/load.d.ts +3 -3
- package/dist/esm/load.js +3 -3
- package/dist/esm/renderer/engine-core/fonts.js +1 -1
- package/dist/esm/services/URLFilterManager.d.ts +15 -0
- package/dist/esm/services/URLFilterManager.js +1 -1
- package/dist/esm/services/multi-slug.d.ts +20 -0
- package/dist/esm/services/multi-slug.js +1 -0
- package/dist/esm/services/url-dispatch.d.ts +24 -0
- package/dist/esm/services/url-dispatch.js +1 -0
- package/dist/esm/services/url-sync.d.ts +36 -0
- package/dist/esm/services/url-sync.js +1 -0
- package/dist/esm/store/BoothStore.d.ts +2 -1
- package/dist/esm/store/ExhibitorStore.d.ts +3 -2
- package/dist/esm/store/ExhibitorStore.js +1 -1
- package/dist/esm/store/LayerStore.js +1 -1
- package/dist/esm/store/MaplibreStore.js +1 -1
- package/dist/esm/store/PoiTypeStore.d.ts +1 -1
- package/dist/esm/store/SearchStore.js +1 -1
- package/dist/esm/store/UIState.d.ts +1 -5
- package/dist/esm/store/UIState.js +1 -1
- package/dist/esm/store/init/init-bookmarks.d.ts +2 -0
- package/dist/esm/store/init/init-booths.js +1 -1
- package/dist/esm/store/init/init-categories.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-layers.js +1 -1
- package/dist/esm/store/types.d.ts +2 -1
- package/dist/esm/tools/event-not-found.d.ts +4 -3
- package/dist/esm/tools/gtag.d.ts +3 -2
- package/dist/esm/tools/gtag.js +1 -1
- package/dist/esm/tools/handleDebugMode.d.ts +17 -0
- package/dist/esm/tools/handleDebugMode.js +1 -1
- package/dist/esm/tools/loaders.d.ts +0 -2
- package/dist/esm/tools/loaders.js +1 -1
- package/dist/esm/tools/rebookingUrl.js +1 -1
- package/dist/esm/tools/reset.js +1 -1
- package/dist/esm/tools/settings.js +1 -1
- package/dist/esm/tools/track-event.js +1 -1
- package/dist/esm/types/drawing.types.d.ts +18 -0
- package/dist/esm/types.d.ts +52 -38
- package/dist/esm/utils/areLayersEnabled.js +1 -1
- package/dist/esm/utils/camera-map-settings.d.ts +20 -0
- package/dist/esm/utils/camera-map-settings.js +1 -0
- package/dist/esm/utils/customCommands.js +1 -1
- package/dist/esm/utils/getLogoUrl.d.ts +8 -1
- package/dist/esm/utils/getLogoUrl.js +1 -1
- package/dist/esm/utils/heatmap-enabled.d.ts +13 -0
- package/dist/esm/utils/heatmap-enabled.js +1 -0
- package/dist/esm/utils/i18n.js +1 -1
- package/dist/esm/utils/imageloader.js +1 -1
- package/dist/esm/utils/is-debug.d.ts +0 -8
- package/dist/esm/utils/is-debug.js +1 -1
- package/dist/esm/utils/legacy-storage-keys.d.ts +16 -0
- package/dist/esm/utils/legacy-storage-keys.js +1 -0
- package/dist/esm/utils/loadCustomCss.d.ts +2 -2
- package/dist/esm/utils/loadCustomCss.js +1 -1
- package/dist/esm/utils/mapEntity.d.ts +1 -0
- package/dist/esm/utils/preview-exhibitor.d.ts +1 -1
- package/dist/esm/wayfinding/adapters/arbitraryPoint.d.ts +1 -1
- package/dist/esm/wayfinding/adapters/arbitraryPoint.js +1 -1
- package/dist/esm/wayfinding/adapters/boothToEndpoint.d.ts +4 -4
- package/dist/esm/wayfinding/adapters/canvasIconProvider.d.ts +1 -1
- package/dist/esm/wayfinding/adapters/floorContext.d.ts +1 -1
- package/dist/esm/wayfinding/adapters/graphDataSource.d.ts +2 -2
- package/dist/esm/wayfinding/adapters/graphDataSource.js +1 -1
- package/dist/esm/wayfinding/adapters/positionInput.d.ts +8 -7
- package/dist/esm/wayfinding/adapters/positionInput.js +1 -1
- package/dist/esm/wayfinding/bindMobxReactions.d.ts +10 -23
- package/dist/esm/wayfinding/bindMobxReactions.js +1 -1
- package/dist/esm/wayfinding/createWayfinding.d.ts +1 -1
- package/dist/esm/wayfinding/createWayfinding.js +1 -1
- package/dist/esm/wayfinding/handlers/kioskHandler.d.ts +3 -3
- package/dist/esm/wayfinding/handlers/kioskHandler.js +1 -1
- package/dist/esm/wayfinding/handlers/yahHandler.d.ts +3 -4
- package/dist/esm/wayfinding/handlers/yahHandler.js +1 -1
- package/dist/esm/wayfinding/index.d.ts +4 -7
- package/dist/esm/wayfinding/index.js +1 -1
- package/dist/esm/wayfinding/storePorts.d.ts +60 -0
- package/package.json +9 -5
- package/dist/browser/CookieConsent-BJLQ1IVh.js +0 -38
- package/dist/browser/ShowKiosk-B60doTCj.js +0 -28
- package/dist/browser/efp-debug-init-Dif87fzy.js +0 -42
- package/dist/browser/floorplan.ready-CZQeXSCk.js +0 -1406
- package/dist/browser/i18n-CU-BJOBJ.js +0 -3942
- package/dist/browser/loadImage-vQZ4dq8v.js +0 -121
- package/dist/browser/mobx-Cnw3_TUT.js +0 -24
- package/dist/browser/reset-all-settings-O_33LwUw.js +0 -141
- package/dist/browser/string-editor-01VxR0gn.js +0 -108
- package/dist/browser/ui-gZWduhVn.js +0 -43
- package/dist/esm/_NEW_types.d.ts +0 -6
- package/dist/esm/_NEW_types.js +0 -1
- package/dist/esm/_misc_to_move/manifest.d.ts +0 -14
- package/dist/esm/_misc_to_move/ref.d.ts +0 -6
- package/dist/esm/data/Flags.d.ts +0 -23
- package/dist/esm/data/Flags.js +0 -1
- package/dist/esm/data/validate-data.d.ts +0 -3
- package/dist/esm/data/validate-data.js +0 -1
- package/dist/esm/services/routing.d.ts +0 -7
- package/dist/esm/services/routing.js +0 -1
- package/dist/esm/utils/mergeExhibitors.d.ts +0 -3
- package/dist/esm/utils/mergeExhibitors.js +0 -1
- package/dist/esm/wayfinding/core/__tests__/helpers.d.ts +0 -16
- package/dist/esm/wayfinding/core/__tests__/helpers.js +0 -1
- package/dist/esm/wayfinding/core/createWayfindingEngine.d.ts +0 -16
- package/dist/esm/wayfinding/core/createWayfindingEngine.js +0 -1
- package/dist/esm/wayfinding/core/geometry/pointInPolygon.d.ts +0 -11
- package/dist/esm/wayfinding/core/geometry/pointInPolygon.js +0 -1
- package/dist/esm/wayfinding/core/geometry/projectPointOnSegment.d.ts +0 -24
- package/dist/esm/wayfinding/core/geometry/projectPointOnSegment.js +0 -1
- package/dist/esm/wayfinding/core/graph/buildGraph.d.ts +0 -3
- package/dist/esm/wayfinding/core/graph/buildGraph.js +0 -1
- package/dist/esm/wayfinding/core/graph/buildNGraph.d.ts +0 -9
- package/dist/esm/wayfinding/core/graph/buildNGraph.js +0 -1
- package/dist/esm/wayfinding/core/graph/constants.d.ts +0 -17
- package/dist/esm/wayfinding/core/graph/constants.js +0 -1
- package/dist/esm/wayfinding/core/graph/findShortestPath.d.ts +0 -14
- package/dist/esm/wayfinding/core/graph/findShortestPath.js +0 -1
- package/dist/esm/wayfinding/core/graph/graphCache.d.ts +0 -7
- package/dist/esm/wayfinding/core/graph/graphCache.js +0 -1
- package/dist/esm/wayfinding/core/graph/graphHelpers.d.ts +0 -8
- package/dist/esm/wayfinding/core/graph/graphHelpers.js +0 -1
- package/dist/esm/wayfinding/core/graph/linkCost.d.ts +0 -4
- package/dist/esm/wayfinding/core/graph/linkCost.js +0 -1
- package/dist/esm/wayfinding/core/graph/pathfinder/aStarPathFinder.d.ts +0 -3
- package/dist/esm/wayfinding/core/graph/pathfinder/aStarPathFinder.js +0 -1
- package/dist/esm/wayfinding/core/graph/pathfinder/parseNodeId.d.ts +0 -9
- package/dist/esm/wayfinding/core/graph/pathfinder/parseNodeId.js +0 -1
- package/dist/esm/wayfinding/core/index.d.ts +0 -17
- package/dist/esm/wayfinding/core/index.js +0 -1
- package/dist/esm/wayfinding/core/position/distanceToRoute.d.ts +0 -3
- package/dist/esm/wayfinding/core/position/distanceToRoute.js +0 -1
- package/dist/esm/wayfinding/core/position/gpsThreshold.d.ts +0 -31
- package/dist/esm/wayfinding/core/position/gpsThreshold.js +0 -1
- package/dist/esm/wayfinding/core/position/rerouteController.d.ts +0 -10
- package/dist/esm/wayfinding/core/position/rerouteController.js +0 -1
- package/dist/esm/wayfinding/core/position/snapToRoute.d.ts +0 -4
- package/dist/esm/wayfinding/core/position/snapToRoute.js +0 -1
- package/dist/esm/wayfinding/core/position/splitRouteByPoint.d.ts +0 -6
- package/dist/esm/wayfinding/core/position/splitRouteByPoint.js +0 -1
- package/dist/esm/wayfinding/core/rendering/computeTrailPoints.d.ts +0 -19
- package/dist/esm/wayfinding/core/rendering/computeTrailPoints.js +0 -1
- package/dist/esm/wayfinding/core/rendering/computeTransitionPoints.d.ts +0 -31
- package/dist/esm/wayfinding/core/rendering/computeTransitionPoints.js +0 -1
- package/dist/esm/wayfinding/core/rendering/getVisibleRouteLines.d.ts +0 -11
- package/dist/esm/wayfinding/core/rendering/getVisibleRouteLines.js +0 -1
- package/dist/esm/wayfinding/core/rendering/normalizeRouteDirection.d.ts +0 -20
- package/dist/esm/wayfinding/core/rendering/normalizeRouteDirection.js +0 -1
- package/dist/esm/wayfinding/core/rendering/routeGeometry.d.ts +0 -11
- package/dist/esm/wayfinding/core/rendering/routeGeometry.js +0 -1
- package/dist/esm/wayfinding/core/routing/buildMultiPointRoute.d.ts +0 -11
- package/dist/esm/wayfinding/core/routing/buildMultiPointRoute.js +0 -1
- package/dist/esm/wayfinding/core/routing/buildRoute.d.ts +0 -9
- package/dist/esm/wayfinding/core/routing/buildRoute.js +0 -1
- package/dist/esm/wayfinding/core/routing/getRouteLength.d.ts +0 -3
- package/dist/esm/wayfinding/core/routing/getRouteLength.js +0 -1
- package/dist/esm/wayfinding/core/routing/graphPointResolvers.d.ts +0 -4
- package/dist/esm/wayfinding/core/routing/graphPointResolvers.js +0 -1
- package/dist/esm/wayfinding/core/routing/optimizeWaypointOrder.d.ts +0 -19
- package/dist/esm/wayfinding/core/routing/optimizeWaypointOrder.js +0 -1
- package/dist/esm/wayfinding/core/routing/resolveWaypointCandidates.d.ts +0 -18
- package/dist/esm/wayfinding/core/routing/resolveWaypointCandidates.js +0 -1
- package/dist/esm/wayfinding/core/routing/routeResult.d.ts +0 -4
- package/dist/esm/wayfinding/core/routing/routeResult.js +0 -1
- package/dist/esm/wayfinding/core/types.d.ts +0 -106
- package/dist/esm/wayfinding/core/types.js +0 -1
- package/dist/esm/wayfinding/renderer/createWayfindingRenderer.d.ts +0 -13
- package/dist/esm/wayfinding/renderer/createWayfindingRenderer.js +0 -1
- package/dist/esm/wayfinding/renderer/iconManager.d.ts +0 -37
- package/dist/esm/wayfinding/renderer/iconManager.js +0 -1
- package/dist/esm/wayfinding/renderer/index.d.ts +0 -3
- package/dist/esm/wayfinding/renderer/index.js +0 -1
- package/dist/esm/wayfinding/renderer/layerManager.d.ts +0 -26
- package/dist/esm/wayfinding/renderer/layerManager.js +0 -1
- package/dist/esm/wayfinding/renderer/lineAnimation.d.ts +0 -7
- package/dist/esm/wayfinding/renderer/lineAnimation.js +0 -1
- package/dist/esm/wayfinding/renderer/routeLineManager.d.ts +0 -41
- package/dist/esm/wayfinding/renderer/routeLineManager.js +0 -1
- package/dist/esm/wayfinding/renderer/trailManager.d.ts +0 -30
- package/dist/esm/wayfinding/renderer/trailManager.js +0 -1
- package/dist/esm/wayfinding/renderer/types.d.ts +0 -129
- package/dist/esm/wayfinding/renderer/types.js +0 -1
- package/dist/esm/wayfinding/runtime/createWayfindingRuntime.d.ts +0 -3
- package/dist/esm/wayfinding/runtime/createWayfindingRuntime.js +0 -1
- package/dist/esm/wayfinding/runtime/endpointView.d.ts +0 -18
- package/dist/esm/wayfinding/runtime/endpointView.js +0 -1
- package/dist/esm/wayfinding/runtime/getRouteLines.d.ts +0 -13
- package/dist/esm/wayfinding/runtime/getRouteLines.js +0 -1
- package/dist/esm/wayfinding/runtime/positionTrailView.d.ts +0 -50
- package/dist/esm/wayfinding/runtime/positionTrailView.js +0 -1
- package/dist/esm/wayfinding/runtime/positionView.d.ts +0 -23
- package/dist/esm/wayfinding/runtime/positionView.js +0 -1
- package/dist/esm/wayfinding/runtime/routeLinesView.d.ts +0 -18
- package/dist/esm/wayfinding/runtime/routeLinesView.js +0 -1
- package/dist/esm/wayfinding/runtime/routeRenderData.d.ts +0 -29
- package/dist/esm/wayfinding/runtime/routeRenderData.js +0 -1
- package/dist/esm/wayfinding/runtime/routeUpdate.d.ts +0 -15
- package/dist/esm/wayfinding/runtime/routeUpdate.js +0 -1
- package/dist/esm/wayfinding/runtime/trailView.d.ts +0 -20
- package/dist/esm/wayfinding/runtime/trailView.js +0 -1
- package/dist/esm/wayfinding/runtime/transitionView.d.ts +0 -17
- package/dist/esm/wayfinding/runtime/transitionView.js +0 -1
- package/dist/esm/wayfinding/runtime/types.d.ts +0 -82
- package/dist/esm/wayfinding/runtime/types.js +0 -1
- /package/dist/esm/{_misc_to_move/manifest.js → types/drawing.types.js} +0 -0
- /package/dist/esm/{_misc_to_move/ref.js → wayfinding/storePorts.js} +0 -0
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import type { RenderableDef } from '@expofp/renderer';
|
|
2
|
-
import type { LayerManager } from './layerManager';
|
|
3
|
-
import type { IconConfig, RendererPort } from './types';
|
|
4
|
-
/**
|
|
5
|
-
* Manages `ImageDef` icons in the scene graph.
|
|
6
|
-
*
|
|
7
|
-
* Icons are keyed by `(name, key?)`. First `setIcon` creates the `ImageDef`;
|
|
8
|
-
* subsequent calls mutate in place. Pass `config: null` to hide an icon
|
|
9
|
-
* without destroying it.
|
|
10
|
-
*
|
|
11
|
-
* Exposes pure `applyScale`/`applyRoll`/`handleClick`/`handleHover` that the
|
|
12
|
-
* app glue drives from engine events.
|
|
13
|
-
*/
|
|
14
|
-
export interface IconManager {
|
|
15
|
-
/** Place, update, or hide an icon. See {@link WayfindingRenderer.setIcon}. */
|
|
16
|
-
setIcon(name: string, config: IconConfig | null, key?: string | number): void;
|
|
17
|
-
/** Hide all icons matching the given name(s). */
|
|
18
|
-
clearIcons(names: string | readonly string[]): void;
|
|
19
|
-
/** Hide every managed icon (used by `clearRoute`). */
|
|
20
|
-
hideAll(): void;
|
|
21
|
-
/** Clear internal state. */
|
|
22
|
-
destroy(): void;
|
|
23
|
-
/** Recompute bounds of all visible icons for `scale`; returns changed defs. */
|
|
24
|
-
applyScale(scale: number): RenderableDef[];
|
|
25
|
-
/** Apply camera roll to cardinal-snap icons; returns changed defs. */
|
|
26
|
-
applyRoll(cameraAngle: number): RenderableDef[];
|
|
27
|
-
/** Fire the first hit clickable icon's `onClick` from already-picked defs. */
|
|
28
|
-
handleClick(defs: readonly RenderableDef[]): void;
|
|
29
|
-
/** Whether a clickable icon is under the already-picked defs. */
|
|
30
|
-
handleHover(defs: readonly RenderableDef[]): boolean;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Create an {@link IconManager} that places `ImageDef` icons into layers
|
|
34
|
-
* managed by the given {@link LayerManager}.
|
|
35
|
-
*/
|
|
36
|
-
export declare function createIconManager(layerManager: LayerManager, rendererPort: RendererPort): IconManager;
|
|
37
|
-
//# sourceMappingURL=iconManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Rect as f}from"@expofp/geometry";export function createIconManager(s,c){const l=new Map,r=new Map,u=new Map;function h(n,t){return t===void 0?n:`${n}#${t}`}function y(n,t){let e=r.get(n);e||(e=new Set,r.set(n,e)),e.add(t),u.set(t,n)}function D(n){const t=u.get(n);if(!t)return;const e=r.get(t);e&&e.delete(n),u.delete(n)}function m(n,t,e){const a=s.touchLayer(e.layer),o=c.getScale(),i=c.createImageDef(e.canvas,new f({x:e.x,y:e.y},{x:e.canvas.width*o,y:e.canvas.height*o},e.rotation),{hidden:e.hidden??!1,dim:e.dimmed??!1,origin:e.origin});a.children.push(i);const d={imageDef:i,layerName:e.layer,cardinalSnap:e.cardinalSnap??!1,callback:e.onClick??null};return l.set(n,d),y(t,n),d}function p(n,t,e,a){const o=s.resolveLayer(e.layerName),i=o.children,d=i.indexOf(e.imageDef);d>=0&&i.splice(d,1),s.touchedLayers.set(e.layerName,o),l.delete(n),D(n),m(n,t,a)}function v(n,t,e,a){if(e.layerName!==a.layer)throw new Error(`renderer: icon "${n}" cannot move between layers (was "${e.layerName}", got "${a.layer}")`);if(e.imageDef.source!==a.canvas){p(n,t,e,a);return}const o=c.getScale();e.imageDef.bounds=c.rectToRenderer(new f({x:a.x,y:a.y},{x:a.canvas.width*o,y:a.canvas.height*o},a.rotation)),e.imageDef.hidden=a.hidden??!1,e.imageDef.dim=a.dimmed??!1,e.callback=a.onClick??null,s.touchLayer(a.layer)}return{setIcon(n,t,e){const a=h(n,e);if(t===null){const i=l.get(a);i&&(i.imageDef.hidden=!0,i.callback=null,s.touchLayer(i.layerName));return}const o=l.get(a);o?v(a,n,o,t):m(a,n,t)},clearIcons(n){const t=typeof n=="string"?[n]:n;for(const e of t){const a=r.get(e);if(a)for(const o of a){const i=l.get(o);i&&(i.imageDef.hidden=!0,i.callback=null,s.touchLayer(i.layerName))}}},hideAll(){for(const n of l.values())n.imageDef.hidden=!0,n.callback=null,s.touchedLayers.set(n.layerName,s.resolveLayer(n.layerName))},destroy(){l.clear(),r.clear(),u.clear()},applyScale(n){const t=[];for(const e of l.values()){if(e.imageDef.hidden)continue;const{center:a,rotation:o}=e.imageDef.bounds;e.imageDef.bounds=c.rectToRenderer(new f({x:a.x,y:a.y},{x:e.imageDef.source.width*n,y:e.imageDef.source.height*n},o)),t.push(e.imageDef)}return t},applyRoll(n){const t=[];for(const e of l.values()){if(!e.cardinalSnap)continue;const a=c.getRotation(n,e.imageDef.bounds.rotation);a!==void 0&&(e.imageDef.bounds.rotation+=a,t.push(e.imageDef))}return t},handleClick(n){for(const t of l.values())if(t.callback&&!t.imageDef.hidden&&n.includes(t.imageDef)){t.callback();return}},handleHover(n){for(const t of l.values())if(t.callback&&!t.imageDef.hidden&&n.includes(t.imageDef))return!0;return!1}}}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export{createWayfindingRenderer}from"./createWayfindingRenderer";
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import type { LayerDef } from '@expofp/renderer';
|
|
2
|
-
import type { RendererPort } from './types';
|
|
3
|
-
/**
|
|
4
|
-
* Manages scene layer resolution, caching, dirty-tracking, and flush.
|
|
5
|
-
*
|
|
6
|
-
* Layers are resolved by name from `rendererPort.getLayers()` and cached. `touchLayer`
|
|
7
|
-
* marks a layer as dirty; `flush` commits all dirty layers via `rendererPort.update`
|
|
8
|
-
* in a single call.
|
|
9
|
-
*/
|
|
10
|
-
export interface LayerManager {
|
|
11
|
-
/** Layers modified since the last {@link flush}. */
|
|
12
|
-
readonly touchedLayers: Map<string, LayerDef>;
|
|
13
|
-
/** Resolve a layer by name (cached). Throws if not found. */
|
|
14
|
-
resolveLayer(name: string): LayerDef;
|
|
15
|
-
/** Resolve a layer and mark it as dirty for the next {@link flush}. */
|
|
16
|
-
touchLayer(name: string): LayerDef;
|
|
17
|
-
/** Commit all dirty layers to `RendererService` and clear the dirty set. */
|
|
18
|
-
flush(): void;
|
|
19
|
-
/** Clear caches and dirty set. */
|
|
20
|
-
destroy(): void;
|
|
21
|
-
}
|
|
22
|
-
/**
|
|
23
|
-
* Create a {@link LayerManager} bound to the given {@link RendererPort}.
|
|
24
|
-
*/
|
|
25
|
-
export declare function createLayerManager(rendererPort: RendererPort): LayerManager;
|
|
26
|
-
//# sourceMappingURL=layerManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export function createLayerManager(s){const c=s.getLayers(),a=new Map,r=new Map;return{touchedLayers:r,resolveLayer(e){const t=a.get(e);if(t)return t;const n=c.find(o=>o.name===e);if(!n)throw new Error(`renderer: layer "${e}" not found in scene`);return a.set(e,n),n},touchLayer(e){const t=this.resolveLayer(e);return r.set(e,t),t},flush(){if(r.size!==0){for(const e of r.values())e.children=[...e.children];s.update(...r.values()),r.clear()}},destroy(){r.clear(),a.clear()}}}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import type { LineDef } from '@expofp/renderer';
|
|
2
|
-
export interface AnimationHandle {
|
|
3
|
-
stop: () => void;
|
|
4
|
-
getProgress: () => number;
|
|
5
|
-
}
|
|
6
|
-
export declare function animateLineSegments(lineSegments: LineDef[], callback: (segment: LineDef, segmentIndex: number, reset: boolean) => void, getScale: () => number, startProgress?: number): AnimationHandle | undefined;
|
|
7
|
-
//# sourceMappingURL=lineAnimation.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export function animateLineSegments(f,b,v,m=0){let i=0,r=0,c=null,s=null;if(!f.length)return;const a=f.map(t=>{const e=t.points[1].x-t.points[0].x,n=t.points[1].y-t.points[0].y;return Math.sqrt(e*e+n*n)}),l=a.reduce((t,e)=>t+e,0);if(!l)return;const F=Math.max(20,Math.min(l/2,300));function q(t){const e=t%1*l;let n=0;i=0,r=0;for(let o=0;o<a.length;o++){if(n+a[o]>e){i=o,r=e-n;break}n+=a[o],o===a.length-1&&(i=0,r=0)}}function M(t,e){const n=t.points[0],o=t.points[1],u=o.x-n.x,d=o.y-n.y,S=Math.sqrt(u*u+d*d),x=Math.min(e/S,1);return{points:[{x:n.x,y:n.y},{x:n.x+u*x,y:n.y+d*x}],color:t.color,width:t.width}}function h(t){c||(c=t);const e=(t-c)/1e3;c=t;const n=v();if(!(Number.isFinite(n)&&n>0)){s=requestAnimationFrame(h);return}const o=F*Math.sqrt(n);for(r+=o*e,r%=l;r>=a[i];)r-=a[i],i++,i>=f.length&&(i=0);const u=f[i],d=M(u,r);b(d,i,!1),s=requestAnimationFrame(h)}function p(){g(),m<=0&&(i=0,r=0),c=null,s=requestAnimationFrame(h)}function g(){s&&(cancelAnimationFrame(s),s=null,c=null)}function L(){if(l<=0)return 0;let t=0;for(let e=0;e<i;e++)t+=a[e];return t+=r,t/l}function y(){document.visibilityState==="visible"?p():g()}return m>0&&q(m),document.addEventListener("visibilitychange",y),p(),{stop:()=>{g(),document.removeEventListener("visibilitychange",y)},getProgress:L}}
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import type { LayerManager } from './layerManager';
|
|
2
|
-
import type { RendererPort, RouteColors } from './types';
|
|
3
|
-
/**
|
|
4
|
-
* Manages static route lines (passed + remaining) and an animated overlay
|
|
5
|
-
* on the remaining segment.
|
|
6
|
-
*/
|
|
7
|
-
export interface RouteLineManager {
|
|
8
|
-
setRouteLines(passed: readonly {
|
|
9
|
-
readonly p0: {
|
|
10
|
-
x: number;
|
|
11
|
-
y: number;
|
|
12
|
-
};
|
|
13
|
-
readonly p1: {
|
|
14
|
-
x: number;
|
|
15
|
-
y: number;
|
|
16
|
-
};
|
|
17
|
-
}[], remaining: readonly {
|
|
18
|
-
readonly p0: {
|
|
19
|
-
x: number;
|
|
20
|
-
y: number;
|
|
21
|
-
};
|
|
22
|
-
readonly p1: {
|
|
23
|
-
x: number;
|
|
24
|
-
y: number;
|
|
25
|
-
};
|
|
26
|
-
}[], options: {
|
|
27
|
-
readonly linesLayer: string;
|
|
28
|
-
readonly animatedLinesLayer: string;
|
|
29
|
-
readonly resetAnimation?: boolean;
|
|
30
|
-
}): void;
|
|
31
|
-
/** Stop animation, wipe both lines layers. */
|
|
32
|
-
clearLines(): void;
|
|
33
|
-
/** Alias for {@link clearLines}. */
|
|
34
|
-
destroy(): void;
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Create a {@link RouteLineManager} that renders `LineDef` segments
|
|
38
|
-
* into layers managed by the given {@link LayerManager}.
|
|
39
|
-
*/
|
|
40
|
-
export declare function createRouteLineManager(layerManager: LayerManager, colors: RouteColors, rendererPort: RendererPort): RouteLineManager;
|
|
41
|
-
//# sourceMappingURL=routeLineManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{animateLineSegments as D}from"./lineAnimation";export function createRouteLineManager(a,c,s){let e=null,n=null,i=null;return{setRouteLines(d,f,m){const L=a.touchLayer(m.linesLayer),l=a.touchLayer(m.animatedLinesLayer);n=L,i=l;const h=m.resetAnimation??!0;let u=0;e&&(h||(u=e.getProgress()),e.stop(),e=null);const p=d.map(t=>s.createLineDef(t,c.passed)),r=f.map(t=>s.createLineDef(t,c.remaining));if(L.children=[...p,...r],!r.length){l.children=[];return}const o=r.map(t=>({...t,color:c.active}));e=D(o,(t,y,g)=>{l.children=g?[]:[...o.slice(0,y),t],s.update(l)},()=>s.getScale(),u)??null},clearLines(){e&&(e.stop(),e=null),n&&(n.children=[],a.touchedLayers.set(n.name,n)),i&&(i.children=[],a.touchedLayers.set(i.name,i))},destroy(){this.clearLines()}}}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { type Point2Like } from '@expofp/geometry';
|
|
2
|
-
import type { RenderableDef } from '@expofp/renderer';
|
|
3
|
-
import type { LayerManager } from './layerManager';
|
|
4
|
-
import type { RendererPort } from './types';
|
|
5
|
-
/**
|
|
6
|
-
* Manages named trails of evenly-spaced dots between two points.
|
|
7
|
-
*
|
|
8
|
-
* On camera zoom the app glue calls `applyScale` so dots are recalculated and
|
|
9
|
-
* visual spacing stays constant.
|
|
10
|
-
*/
|
|
11
|
-
export interface TrailManager {
|
|
12
|
-
/**
|
|
13
|
-
* Place, update, or remove a named trail.
|
|
14
|
-
* Pass `from/to = null` to remove the trail.
|
|
15
|
-
*/
|
|
16
|
-
setTrail(name: string, from: Point2Like | null, to: Point2Like | null, options?: {
|
|
17
|
-
readonly canvas: HTMLCanvasElement;
|
|
18
|
-
readonly layer: string;
|
|
19
|
-
}): void;
|
|
20
|
-
/** Redraw all trails for `scale`; returns changed layer defs. */
|
|
21
|
-
applyScale(scale: number): RenderableDef[];
|
|
22
|
-
/** Remove all trails. */
|
|
23
|
-
destroy(): void;
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Create a {@link TrailManager} that renders dot trails into layers
|
|
27
|
-
* managed by the given {@link LayerManager}.
|
|
28
|
-
*/
|
|
29
|
-
export declare function createTrailManager(layerManager: LayerManager, rendererPort: RendererPort): TrailManager;
|
|
30
|
-
//# sourceMappingURL=trailManager.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Rect as w}from"@expofp/geometry";import{computeTrailPoints as d}from"../core";const m=40;export function createTrailManager(c,l){const o=new Map;function f(e){if(!e.dotDefs.length)return;const t=c.touchLayer(e.layerName),r=new Set(e.dotDefs);t.children=t.children.filter(a=>!r.has(a)),e.dotDefs=[]}function i(e,t){const r=c.touchLayer(e.layerName),a=m*t,n=d(e.from,e.to,a),s=e.canvas,y=n.map(h=>l.createImageDef(s,new w({x:h.x,y:h.y},{x:s.width*t,y:s.height*t})));f(e),r.children.push(...y),e.dotDefs=y}function u(e){const t=o.get(e);t&&(f(t),o.delete(e))}return{setTrail(e,t,r,a){if(t===null||r===null){u(e);return}if(!a)throw new Error(`renderer: setTrail("${e}") requires options when from/to are non-null`);const n=o.get(e);if(n){if(n.canvas!==a.canvas||n.layerName!==a.layer)throw new Error(`renderer: trail "${e}" cannot change canvas or layer after first call`);n.from=t,n.to=r,i(n,l.getScale());return}const s={from:t,to:r,canvas:a.canvas,layerName:a.layer,dotDefs:[]};o.set(e,s),i(s,l.getScale())},applyScale(e){const t=new Set;for(const r of o.values())i(r,e),t.add(c.touchLayer(r.layerName));return[...t]},destroy(){for(const e of[...o.keys()])u(e)}}}
|
|
@@ -1,129 +0,0 @@
|
|
|
1
|
-
import type { Point2Like, Rect } from '@expofp/geometry';
|
|
2
|
-
import type { ImageDef, ImageSource, LayerDef, LineDef, RenderableDef } from '@expofp/renderer';
|
|
3
|
-
/**
|
|
4
|
-
* The renderer this layer talks to, injected so it stays free of a concrete
|
|
5
|
-
* renderer. Typed only against `@expofp/renderer` / `@expofp/geometry` so it
|
|
6
|
-
* carries no dependency on `src/renderer`.
|
|
7
|
-
*/
|
|
8
|
-
export interface RendererPort {
|
|
9
|
-
createImageDef(source: ImageSource, bounds: Rect, options?: {
|
|
10
|
-
hidden?: boolean;
|
|
11
|
-
dim?: boolean;
|
|
12
|
-
interactive?: boolean;
|
|
13
|
-
origin?: [number, number];
|
|
14
|
-
}): ImageDef;
|
|
15
|
-
createLineDef(line: {
|
|
16
|
-
p0: Point2Like;
|
|
17
|
-
p1: Point2Like;
|
|
18
|
-
}, color?: string, width?: number): LineDef;
|
|
19
|
-
getRotation(newAngle: number, currentRotation: number): number | undefined;
|
|
20
|
-
/** Convert a geometry rect to the renderer's bounds rect (`ImageDef['bounds']`). */
|
|
21
|
-
rectToRenderer(rect: Rect): ImageDef['bounds'];
|
|
22
|
-
/** Current camera point-scale. */
|
|
23
|
-
getScale(): number;
|
|
24
|
-
/** Scene root-layer children, used to resolve wf layers by name. */
|
|
25
|
-
getLayers(): LayerDef[];
|
|
26
|
-
/** Commit changed defs/layers to the renderer. */
|
|
27
|
-
update(...defs: RenderableDef[]): void;
|
|
28
|
-
}
|
|
29
|
-
export interface RouteColors {
|
|
30
|
-
readonly passed: string;
|
|
31
|
-
readonly remaining: string;
|
|
32
|
-
readonly active: string;
|
|
33
|
-
}
|
|
34
|
-
export interface IconConfig {
|
|
35
|
-
readonly canvas: HTMLCanvasElement;
|
|
36
|
-
/**
|
|
37
|
-
* Target layer name in the scene. Renderer locates the layer once per
|
|
38
|
-
* (name, layer) slot and reuses it.
|
|
39
|
-
*
|
|
40
|
-
* TODO(future): when renderer learns to create layers dynamically
|
|
41
|
-
* inside `createWayfindingRenderer`, this field is removed — renderer
|
|
42
|
-
* will own layer creation by icon name.
|
|
43
|
-
*/
|
|
44
|
-
readonly layer: string;
|
|
45
|
-
readonly x: number;
|
|
46
|
-
readonly y: number;
|
|
47
|
-
/** Rotation in radians. */
|
|
48
|
-
readonly rotation?: number;
|
|
49
|
-
readonly hidden?: boolean;
|
|
50
|
-
readonly dimmed?: boolean;
|
|
51
|
-
/**
|
|
52
|
-
* Anchor point [0..1, 0..1]. Set at first setIcon for an icon key;
|
|
53
|
-
* ignored on subsequent updates (origin is fixed in ImageDef at creation).
|
|
54
|
-
*/
|
|
55
|
-
readonly origin?: [number, number];
|
|
56
|
-
/**
|
|
57
|
-
* When true, renderer registers a camera-roll handler that snaps the icon
|
|
58
|
-
* rotation to the nearest cardinal direction (N/S/E/W, 90° steps) as the
|
|
59
|
-
* camera rotates past 45° thresholds. Used for label-like icons
|
|
60
|
-
* (source/destination/transition) that should remain readable.
|
|
61
|
-
*
|
|
62
|
-
* Do NOT enable for icons whose `rotation` carries meaning (e.g. position
|
|
63
|
-
* arrow heading, kiosk heading) — the snap would override that meaning.
|
|
64
|
-
*
|
|
65
|
-
* Set at first setIcon for an icon key; ignored on subsequent updates.
|
|
66
|
-
*/
|
|
67
|
-
readonly cardinalSnap?: boolean;
|
|
68
|
-
readonly onClick?: () => void;
|
|
69
|
-
}
|
|
70
|
-
export interface WayfindingRendererConfig {
|
|
71
|
-
/** Optional color overrides; defaults applied if omitted. */
|
|
72
|
-
readonly colors?: Partial<RouteColors>;
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* WayfindingRenderer — generic ImageDef/LineDef renderer for wayfinding visuals.
|
|
76
|
-
*
|
|
77
|
-
* Mutators (`setIcon`/`clearIcons`/`setTrail`/`setRouteLines`/`clearRoute`) only
|
|
78
|
-
* mutate scene state; call `flush()` to commit a batch. The route animation tick
|
|
79
|
-
* updates the renderer directly, outside any batch.
|
|
80
|
-
*/
|
|
81
|
-
export interface WayfindingRenderer {
|
|
82
|
-
/**
|
|
83
|
-
* Place or update an icon by `(name, key)`. First call creates it in
|
|
84
|
-
* `config.layer`; later calls mutate in place. `config: null` hides it.
|
|
85
|
-
* `config.layer` must stay stable for a `(name, key)`. Buffered — `flush()` to commit.
|
|
86
|
-
*/
|
|
87
|
-
setIcon(name: string, config: IconConfig | null, key?: string | number): void;
|
|
88
|
-
/** Hide every icon sharing one of `names` (kept alive for reuse). Buffered. */
|
|
89
|
-
clearIcons(names: string | readonly string[]): void;
|
|
90
|
-
/**
|
|
91
|
-
* Place or update a named dot trail between two points; `from/to = null`
|
|
92
|
-
* clears it. `options` required when non-null; `canvas`/`layer` must stay
|
|
93
|
-
* stable. Buffered — `flush()` to commit.
|
|
94
|
-
*/
|
|
95
|
-
setTrail(name: string, from: Point2Like | null, to: Point2Like | null, options?: {
|
|
96
|
-
readonly canvas: HTMLCanvasElement;
|
|
97
|
-
readonly layer: string;
|
|
98
|
-
}): void;
|
|
99
|
-
/**
|
|
100
|
-
* Replace static route lines (passed + remaining) and (re)start the remaining
|
|
101
|
-
* animation. Buffered — `flush()` to commit.
|
|
102
|
-
*/
|
|
103
|
-
setRouteLines(passed: readonly {
|
|
104
|
-
readonly p0: Point2Like;
|
|
105
|
-
readonly p1: Point2Like;
|
|
106
|
-
}[], remaining: readonly {
|
|
107
|
-
readonly p0: Point2Like;
|
|
108
|
-
readonly p1: Point2Like;
|
|
109
|
-
}[], options: {
|
|
110
|
-
readonly linesLayer: string;
|
|
111
|
-
readonly animatedLinesLayer: string;
|
|
112
|
-
readonly resetAnimation?: boolean;
|
|
113
|
-
}): void;
|
|
114
|
-
/** Recompute icon/trail bounds for `scale`; returns changed defs to render. */
|
|
115
|
-
applyScale(scale: number): RenderableDef[];
|
|
116
|
-
/** Apply camera roll to cardinal-snap icons; returns changed defs to render. */
|
|
117
|
-
applyRoll(cameraAngle: number): RenderableDef[];
|
|
118
|
-
/** Fire the hit clickable icon's `onClick` from already-picked defs. */
|
|
119
|
-
handleClick(defs: readonly RenderableDef[]): void;
|
|
120
|
-
/** Whether a clickable icon is under the already-picked defs (for cursor). */
|
|
121
|
-
handleHover(defs: readonly RenderableDef[]): boolean;
|
|
122
|
-
/** Clear route lines, drop trails, hide icons. Buffered — `flush()` to commit. */
|
|
123
|
-
clearRoute(): void;
|
|
124
|
-
/** Commit buffered mutations to the renderer (via the injected port). */
|
|
125
|
-
flush(): void;
|
|
126
|
-
/** Full teardown (managers cleared). Does NOT flush. */
|
|
127
|
-
destroy(): void;
|
|
128
|
-
}
|
|
129
|
-
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export{};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import type { WayfindingRuntime, WayfindingRuntimeConfig } from './types';
|
|
2
|
-
export declare function createWayfindingRuntime({ engine, renderer, iconProvider, floorContext, layers, snapThreshold, onTransitionClick, onRouteUpdate, onRouteDistance, }: WayfindingRuntimeConfig): WayfindingRuntime;
|
|
3
|
-
//# sourceMappingURL=createWayfindingRuntime.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{Box as C}from"@expofp/geometry";import{getRouteLength as G,snapToRoute as H}from"../core";import{createEndpointView as J}from"./endpointView";import{getRouteLines as K}from"./getRouteLines";import{createPositionTrailView as Q}from"./positionTrailView";import{CURRENT_POSITION_POINT_ID as X}from"./positionView";import{createRouteLinesView as Y}from"./routeLinesView";import{computeRouteRenderData as Z}from"./routeRenderData";import{computeRouteUpdate as $}from"./routeUpdate";import{createTrailView as D}from"./trailView";import{createTransitionView as x}from"./transitionView";const tt=A=>A.flatMap(e=>[e.p0,e.p1]);export function createWayfindingRuntime({engine:A,renderer:e,iconProvider:P,floorContext:c,layers:f,snapThreshold:E,onTransitionClick:B,onRouteUpdate:N,onRouteDistance:R}){const d=J({renderer:e,iconProvider:P,floorContext:c,layer:f.points}),I=x({renderer:e,iconProvider:P,floorContext:c,onTransitionClick:B,layer:f.points}),M=D({renderer:e,iconProvider:P,floorContext:c,layer:f.trail}),l=Q({renderer:e,iconProvider:P,floorContext:c,trails:M,iconLayer:f.currentPosition,snapThreshold:E}),O=Y({renderer:e,linesLayer:f.lines,animatedLinesLayer:f.linesAnimated});let u=[],o=null,r=null,s=null,p=0,y=!1,T=!1;function S(){return c.showAllFloors()?null:c.getActiveFloor()}function _(){const t=S();return t===null?u.filter(n=>!n.virtual):u.filter(n=>n.p0.layer===t&&!n.virtual)}function V(){if(!o||!r)return null;const t=_();return t.length?{from:o,to:r,routePoints:tt(t),visibleLines:t}:null}function m(t=null,n=!1){if(!o||!r)return;const i=Z({routeLines:u,currentRouteLayer:S(),from:o,to:r,snap:t});O.draw(i,n),p=i.distance}function g(t){const n=V();if(!n){l.setTrail(null,null);return}const i=s&&t&&!t.snapped?s:null,h=a=>a.bounds?.length?null:a.id===X?i:a,L=y?null:h(n.from);if(L){l.setTrail(n.routePoints[n.routePoints.length-1],L);return}const b=h(n.to);l.setTrail(b?n.routePoints[0]:null,b)}function U(){if(!o||!r)return;const t=V();if(!t){d.hide(),I.clear(),l.clearTrail(),m();return}d.place(o,r,t.routePoints,T),I.place(u),m(),g(null)}function w(){if(!o||!r)return;const t=V();t&&d.place(o,r,t.routePoints,T)}function F(){if(T=!1,!s||!o||!r)return null;const t=u.filter(h=>!h.virtual);if(!t.length)return null;const n=V(),i=n?l.applyToRoute(s,n,t):H(s,t,{snapThreshold:E,from:o,to:r});return i.snapped&&(y=!0),T=i.snapped,i}function k(){const t=$(u,_());return N(t.lines,t.bounds),t}function W({from:t,to:n,waypoints:i,accessible:h}){const L=K({engine:A,from:t,to:n,waypoints:i,accessible:h});if(!L.length)return v(),!1;y=!1,o=t,r=n,u=L,U();const{lines:b}=k(),a=F();return w(),g(a),a&&m(a,!0),R(a?p:G(b)),e.flush(),!0}function j(t){const n=s!==null;if(s=t,!t){T=!1,l.hideIcon(),g(null),n&&w(),m(),R(p),e.flush();return}l.placeIcon(t);const i=F();w(),g(i),i&&m(i,!0),R(p),e.flush()}function q(){U();const t=F();w(),g(t),t&&m(t,!0),u.length&&k(),R(p),e.flush()}function v(){y=!1,u=[],o=null,r=null,p=0,d.hide(),I.clear(),l.clearTrail(),O.clear(),N([],new C),R(0),e.flush()}function z(){v(),s=null,e.destroy()}return{setRoute:W,onPositionChanged:j,onFloorChanged:q,clearRoute:v,destroy:z}}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { type RouteEndpoint, type RoutePoint } from '../core';
|
|
2
|
-
import { type WayfindingRenderer } from '../renderer';
|
|
3
|
-
import { type FloorContext, type IconProvider } from './types';
|
|
4
|
-
interface EndpointView {
|
|
5
|
-
/** Place source/destination icons. `snapped` — the live CP is currently on the route, so its
|
|
6
|
-
* source shows greyed-out. A kiosk anchor (off-graph origin that isn't the CP) stays hidden;
|
|
7
|
-
* everything else (booth, CP off-route, no live CP) shows full-colour. */
|
|
8
|
-
place(from: RouteEndpoint, to: RouteEndpoint, visibleRoutePoints: readonly RoutePoint[], snapped: boolean): void;
|
|
9
|
-
hide(): void;
|
|
10
|
-
}
|
|
11
|
-
export declare function createEndpointView({ renderer, iconProvider, floorContext, layer, }: {
|
|
12
|
-
renderer: WayfindingRenderer;
|
|
13
|
-
iconProvider: IconProvider;
|
|
14
|
-
floorContext: FloorContext;
|
|
15
|
-
layer: string;
|
|
16
|
-
}): EndpointView;
|
|
17
|
-
export {};
|
|
18
|
-
//# sourceMappingURL=endpointView.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{CURRENT_POSITION_POINT_ID as I}from"./positionView";function p(n,c){return!c||!n.bounds&&n.id!==I}export function createEndpointView({renderer:n,iconProvider:c,floorContext:e,layer:i}){return{place(s,o,t,l){if(!t.length)return;const a=e.isLayerVisible(s.layer),d=e.isLayerVisible(o.layer),u=t[t.length-1],r=t[0],y=s.id===I&&l;n.setIcon("source",{canvas:c.getIcon(y?"source_inactive":"source").canvas,layer:i,x:u.x,y:u.y,hidden:p(s,a),dimmed:!a,cardinalSnap:!0}),n.setIcon("destination",{canvas:c.getIcon("destination").canvas,layer:i,x:r.x,y:r.y,hidden:!d||!o.bounds,dimmed:!d,cardinalSnap:!0})},hide(){n.setIcon("source",null),n.setIcon("destination",null)}}}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { type RouteEndpoint, type RouteLine, type WayfindingEngine } from '../core';
|
|
2
|
-
/**
|
|
3
|
-
* Choose between `engine.buildRoute` and `engine.buildWaypointsRoute` based on
|
|
4
|
-
* whether intermediate waypoints are supplied, and return the resulting route lines.
|
|
5
|
-
*/
|
|
6
|
-
export declare function getRouteLines({ engine, from, to, waypoints, accessible, }: {
|
|
7
|
-
readonly engine: WayfindingEngine;
|
|
8
|
-
readonly from: RouteEndpoint;
|
|
9
|
-
readonly to: RouteEndpoint;
|
|
10
|
-
readonly waypoints?: readonly RouteEndpoint[];
|
|
11
|
-
readonly accessible: boolean;
|
|
12
|
-
}): RouteLine[];
|
|
13
|
-
//# sourceMappingURL=getRouteLines.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export function getRouteLines({engine:t,from:u,to:e,waypoints:n,accessible:i}){return n?.length?t.buildWaypointsRoute([u,...n,e],{accessible:i}).lines:t.buildRoute(u,e,{accessible:i}).lines}
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { type RouteEndpoint, type RouteLine, type RoutePoint, type RouteSnapResult } from '../core';
|
|
2
|
-
import type { WayfindingRenderer } from '../renderer';
|
|
3
|
-
import type { TrailView } from './trailView';
|
|
4
|
-
import type { FloorContext, IconProvider, PositionInput } from './types';
|
|
5
|
-
/**
|
|
6
|
-
* Snapshot of the visible route the position-trail view operates on. The runtime computes it
|
|
7
|
-
* (visibility filtering, route-points derivation) and passes it in so the view stays free of
|
|
8
|
-
* route-state knowledge.
|
|
9
|
-
*/
|
|
10
|
-
export interface RouteSnapshot {
|
|
11
|
-
readonly from: RouteEndpoint;
|
|
12
|
-
readonly to: RouteEndpoint;
|
|
13
|
-
readonly routePoints: readonly RoutePoint[];
|
|
14
|
-
readonly visibleLines: readonly RouteLine[];
|
|
15
|
-
}
|
|
16
|
-
/**
|
|
17
|
-
* Owns the user-position icon and the single off-graph trail slot. The runtime decides which end of
|
|
18
|
-
* the route needs a trail (kiosk FROM, kiosk TO, or off-route CP FROM — never both at once in
|
|
19
|
-
* practice) and passes the corresponding `tip` + `anchor` here.
|
|
20
|
-
*/
|
|
21
|
-
interface PositionTrailView {
|
|
22
|
-
/** Place the position icon at the raw position. */
|
|
23
|
-
placeIcon(position: PositionInput): void;
|
|
24
|
-
/** Hide the position icon. */
|
|
25
|
-
hideIcon(): void;
|
|
26
|
-
/**
|
|
27
|
-
* Snap the position to `routeLines` (caller-provided — typically the full non-virtual route
|
|
28
|
-
* across all floors) and place the position icon at the snap point or at the raw position.
|
|
29
|
-
* Returns the snap result; the trail is **not** touched — call `setTrail` separately.
|
|
30
|
-
*
|
|
31
|
-
* `routeLines` is decoupled from `route.visibleLines` so the snap stays correct regardless of
|
|
32
|
-
* which floor is currently selected in the UI.
|
|
33
|
-
*/
|
|
34
|
-
applyToRoute(position: PositionInput, route: RouteSnapshot, routeLines: readonly RouteLine[]): RouteSnapResult;
|
|
35
|
-
/** Draw the trail from `tip` (a route's graph endpoint) to `anchor` (the off-graph point).
|
|
36
|
-
* Passing either as null hides the trail. */
|
|
37
|
-
setTrail(tip: RoutePoint | null, anchor: RoutePoint | null): void;
|
|
38
|
-
/** Clear the trail slot (does not touch the icon). */
|
|
39
|
-
clearTrail(): void;
|
|
40
|
-
}
|
|
41
|
-
export declare function createPositionTrailView({ renderer, iconProvider, floorContext, trails, iconLayer, snapThreshold, }: {
|
|
42
|
-
renderer: WayfindingRenderer;
|
|
43
|
-
iconProvider: IconProvider;
|
|
44
|
-
floorContext: FloorContext;
|
|
45
|
-
trails: TrailView;
|
|
46
|
-
iconLayer: string;
|
|
47
|
-
snapThreshold: number;
|
|
48
|
-
}): PositionTrailView;
|
|
49
|
-
export {};
|
|
50
|
-
//# sourceMappingURL=positionTrailView.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{snapToRoute as T}from"../core";import{createPositionView as f}from"./positionView";const n="trail";export function createPositionTrailView({renderer:p,iconProvider:s,floorContext:l,trails:i,iconLayer:t,snapThreshold:d}){const r=f({renderer:p,iconProvider:s,layer:t});return{placeIcon(e){const a=!l.isLayerVisible(e.layer);r.place(e,a)},hideIcon(){r.hide()},applyToRoute(e,a,y){const c=T(e,[...y],{snapThreshold:d,from:a.from,to:a.to}),o=!l.isLayerVisible(e.layer);return c.snapped?r.place({...e,x:c.snappedPoint.x,y:c.snappedPoint.y},o):r.place(e,o),c},setTrail(e,a){e&&a?i.place(n,e,a):i.clear(n)},clearTrail(){i.clear(n)}}}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { type WayfindingRenderer } from '../renderer';
|
|
2
|
-
import { type IconProvider, type PositionInput } from './types';
|
|
3
|
-
export declare const CURRENT_POSITION_POINT_ID = "current-position";
|
|
4
|
-
interface PositionView {
|
|
5
|
-
/**
|
|
6
|
-
* Place or update the current-position icon. The icon variant (dot vs
|
|
7
|
-
* arrow) is derived from `input.angle`: finite angle → arrow, otherwise
|
|
8
|
-
* → dot.
|
|
9
|
-
*
|
|
10
|
-
* `hidden` collapses the monolith's dual (hidden, dimmed) fields into a
|
|
11
|
-
* single boolean — they were always driven by the same
|
|
12
|
-
* `!isLayerVisible(position.layer)` source.
|
|
13
|
-
*/
|
|
14
|
-
place(input: PositionInput, hidden: boolean): void;
|
|
15
|
-
hide(): void;
|
|
16
|
-
}
|
|
17
|
-
export declare function createPositionView({ renderer, iconProvider, layer, }: {
|
|
18
|
-
renderer: WayfindingRenderer;
|
|
19
|
-
iconProvider: IconProvider;
|
|
20
|
-
layer: string;
|
|
21
|
-
}): PositionView;
|
|
22
|
-
export {};
|
|
23
|
-
//# sourceMappingURL=positionView.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{degToRad as I}from"@expofp/geometry";export const CURRENT_POSITION_POINT_ID="current-position";const c="position";export function createPositionView({renderer:n,iconProvider:i,layer:r}){return{place(o,e){const t=Number.isFinite(o.angle),s=t?"current_arrow":"current",a=t?I(o.angle):void 0;n.setIcon(c,{canvas:i.getIcon(s).canvas,layer:r,x:o.x,y:o.y,rotation:a,hidden:e,dimmed:e,origin:[.5,.5]})},hide(){n.setIcon(c,null)}}}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { type RouteLine } from '../core';
|
|
2
|
-
import { type WayfindingRenderer } from '../renderer';
|
|
3
|
-
interface RouteLinesView {
|
|
4
|
-
/** Push pre-split passed/remaining route lines to the renderer. */
|
|
5
|
-
draw(data: {
|
|
6
|
-
readonly passed: RouteLine[];
|
|
7
|
-
readonly remaining: RouteLine[];
|
|
8
|
-
}, preserveProgress?: boolean): void;
|
|
9
|
-
/** Clear all rendered route lines + animated segments. */
|
|
10
|
-
clear(): void;
|
|
11
|
-
}
|
|
12
|
-
export declare function createRouteLinesView({ renderer, linesLayer, animatedLinesLayer, }: {
|
|
13
|
-
renderer: WayfindingRenderer;
|
|
14
|
-
linesLayer: string;
|
|
15
|
-
animatedLinesLayer: string;
|
|
16
|
-
}): RouteLinesView;
|
|
17
|
-
export {};
|
|
18
|
-
//# sourceMappingURL=routeLinesView.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export function createRouteLinesView({renderer:t,linesLayer:e,animatedLinesLayer:o}){return{draw({passed:i,remaining:n},s=!1){t.setRouteLines(i,n,{linesLayer:e,animatedLinesLayer:o,resetAnimation:!s})},clear(){t.setRouteLines([],[],{linesLayer:e,animatedLinesLayer:o,resetAnimation:!0})}}}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { type RouteEndpoint, type RouteLine, type RouteSnapResult } from '../core';
|
|
2
|
-
interface RouteRenderData {
|
|
3
|
-
/** Route lines behind the current user position (empty when no snap). */
|
|
4
|
-
readonly passed: RouteLine[];
|
|
5
|
-
/** Route lines ahead of the current user position (the full normalized route when no snap). */
|
|
6
|
-
readonly remaining: RouteLine[];
|
|
7
|
-
/** Remaining route distance along the polyline. */
|
|
8
|
-
readonly distance: number;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Pure pipeline that produces the data needed to render the route: the
|
|
12
|
-
* passed/remaining split for the visible floor plus the remaining
|
|
13
|
-
* distance to the destination.
|
|
14
|
-
*
|
|
15
|
-
* The full non-virtual route is normalized to from→to direction once and
|
|
16
|
-
* sliced down to the visible floor for rendering. The remaining distance
|
|
17
|
-
* is read from `snap.distance` (computed once inside `snapToRoute`); when
|
|
18
|
-
* no snap is active we fall back to the full route length.
|
|
19
|
-
*/
|
|
20
|
-
export declare function computeRouteRenderData({ routeLines, currentRouteLayer, from, to, snap, }: {
|
|
21
|
-
readonly routeLines: RouteLine[];
|
|
22
|
-
/** null = show-all mode; otherwise the active route floor. */
|
|
23
|
-
readonly currentRouteLayer: string | null;
|
|
24
|
-
readonly from: RouteEndpoint;
|
|
25
|
-
readonly to: RouteEndpoint;
|
|
26
|
-
readonly snap: RouteSnapResult | null;
|
|
27
|
-
}): RouteRenderData;
|
|
28
|
-
export {};
|
|
29
|
-
//# sourceMappingURL=routeRenderData.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{getRouteLength as u,normalizeRouteDirection as m,splitRouteByPoint as g}from"../core";export function computeRouteRenderData({routeLines:s,currentRouteLayer:r,from:a,to:c,snap:t}){const i=m(s.filter(n=>!n.virtual),a,c),o=n=>r===null?n:n.filter(p=>p.p0.layer===r);if(!t?.snapped)return{passed:[],remaining:o(i),distance:u(i)};const{passed:d,remaining:e}=g(i,t.snappedPoint),l=e!==i&&e.length>0?[{...e[0],p0:t.snappedPoint},...e.slice(1)]:e;return{passed:o(d),remaining:o(l),distance:t.distance}}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { type Box } from '@expofp/geometry';
|
|
2
|
-
import { type RouteLine } from '../core';
|
|
3
|
-
/**
|
|
4
|
-
* Compute the payload for the runtime's `onRouteUpdate` callback:
|
|
5
|
-
* - `lines`: route lines as the consumer sees them — virtual graph-internal
|
|
6
|
-
* segments are filtered out before publication.
|
|
7
|
-
* - `bounds`: bounding box over the visible route points. It is an EMPTY box
|
|
8
|
-
* (`bounds.isEmpty()`) when the route is empty or collapses to a single point
|
|
9
|
-
* (no useful viewport to fit); consumers check `isEmpty()` rather than null.
|
|
10
|
-
*/
|
|
11
|
-
export declare function computeRouteUpdate(routeLines: readonly RouteLine[], visibleLines: readonly RouteLine[]): {
|
|
12
|
-
lines: RouteLine[];
|
|
13
|
-
bounds: Box;
|
|
14
|
-
};
|
|
15
|
-
//# sourceMappingURL=routeUpdate.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{computeBoundingBox as r}from"../core";export function computeRouteUpdate(t,n){const p=t.filter(o=>!o.virtual),u=n.flatMap(o=>[o.p0,o.p1]),e=r(u);return{lines:p,bounds:e}}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { type RoutePoint } from '../core';
|
|
2
|
-
import { type WayfindingRenderer } from '../renderer';
|
|
3
|
-
import { type FloorContext, type IconProvider } from './types';
|
|
4
|
-
/**
|
|
5
|
-
* Callers choose the slot name and provide two route-points; the view draws a dotted trail between them (or hides
|
|
6
|
-
* them if the layers are not on the active floor)
|
|
7
|
-
*/
|
|
8
|
-
export interface TrailView {
|
|
9
|
-
/** Draws dotted points between two route-points in the named slot. */
|
|
10
|
-
place(slot: string, from: RoutePoint, to: RoutePoint): void;
|
|
11
|
-
clear(slot: string): void;
|
|
12
|
-
clearAll(): void;
|
|
13
|
-
}
|
|
14
|
-
export declare function createTrailView({ renderer, iconProvider, floorContext, layer, }: {
|
|
15
|
-
renderer: WayfindingRenderer;
|
|
16
|
-
iconProvider: IconProvider;
|
|
17
|
-
floorContext: FloorContext;
|
|
18
|
-
layer: string;
|
|
19
|
-
}): TrailView;
|
|
20
|
-
//# sourceMappingURL=trailView.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export function createTrailView({renderer:r,iconProvider:c,floorContext:i,layer:u}){const a=new Set;function o(l,t){if(i.showAllFloors())return!0;const e=i.getActiveFloor();return e?l===e&&t===e:!1}function n(l){r.setTrail(l,null,null),a.delete(l)}return{place(l,t,e){if(!o(t.layer,e.layer)){n(l);return}r.setTrail(l,t,e,{canvas:c.getIcon("trail").canvas,layer:u}),a.add(l)},clear(l){n(l)},clearAll(){for(const l of a)r.setTrail(l,null,null);a.clear()}}}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { type RouteLine, type TransitionPointDef } from '../core';
|
|
2
|
-
import type { WayfindingRenderer } from '../renderer';
|
|
3
|
-
import type { FloorContext, IconProvider } from './types';
|
|
4
|
-
interface TransitionView {
|
|
5
|
-
/** Recomputes transition points from route lines + floor context and places their icons. */
|
|
6
|
-
place(routeLines: RouteLine[]): void;
|
|
7
|
-
clear(): void;
|
|
8
|
-
}
|
|
9
|
-
export declare function createTransitionView({ renderer, iconProvider, floorContext, onTransitionClick, layer, }: {
|
|
10
|
-
renderer: WayfindingRenderer;
|
|
11
|
-
iconProvider: IconProvider;
|
|
12
|
-
floorContext: FloorContext;
|
|
13
|
-
onTransitionClick: (point: TransitionPointDef) => void;
|
|
14
|
-
layer: string;
|
|
15
|
-
}): TransitionView;
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=transitionView.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{computeTransitionPoints as f}from"../core";const a="transition";export function createTransitionView({renderer:t,iconProvider:r,floorContext:i,onTransitionClick:c,layer:s}){return{place(l){t.clearIcons(a);let e;if(i.showAllFloors())e=null;else{const o=i.getActiveFloor();if(!o)return;e=o}const u=f({routeLines:l,currentLayerName:e,floorOrder:i.getFloorOrder()});for(const[o,n]of u.entries())t.setIcon(a,{canvas:r.getIcon(p(n.role,n.direction)).canvas,layer:s,x:n.x,y:n.y,cardinalSnap:!0,onClick:n.role==="exit"?()=>c(n):void 0},o)},clear(){t.clearIcons(a)}}}function p(t,r){return t==="entry"?"transition_entry":r==="up"?"transition_up":r==="down"?"transition_down":"transition"}
|