mobility-toolbox-js 2.0.0-beta.6 → 2.0.0-beta.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +29 -8
- package/api/RealtimeAPI.d.ts +279 -0
- package/api/RealtimeAPI.d.ts.map +1 -0
- package/api/RealtimeAPI.js +462 -0
- package/api/RoutingAPI.d.ts +37 -0
- package/api/RoutingAPI.d.ts.map +1 -0
- package/api/RoutingAPI.js +35 -0
- package/api/StopsAPI.d.ts +38 -0
- package/api/StopsAPI.d.ts.map +1 -0
- package/api/StopsAPI.js +36 -0
- package/api/index.d.ts +4 -0
- package/api/index.d.ts.map +1 -0
- package/api/index.js +3 -0
- package/api/typedefs.d.ts +179 -0
- package/api/typedefs.d.ts.map +1 -0
- package/{src/api/tralis → api}/typedefs.js +4 -10
- package/common/api/HttpAPI.d.ts +31 -0
- package/common/api/HttpAPI.d.ts.map +1 -0
- package/common/api/HttpAPI.js +57 -0
- package/common/api/WebSocketAPI.d.ts +153 -0
- package/common/api/WebSocketAPI.d.ts.map +1 -0
- package/common/api/WebSocketAPI.js +328 -0
- package/common/controls/ControlCommon.d.ts +76 -0
- package/common/controls/ControlCommon.d.ts.map +1 -0
- package/common/controls/ControlCommon.js +150 -0
- package/common/controls/CopyrightControlCommon.d.ts +13 -0
- package/common/controls/CopyrightControlCommon.d.ts.map +1 -0
- package/common/controls/CopyrightControlCommon.js +34 -0
- package/common/controls/StopFinderControlCommon.d.ts +55 -0
- package/common/controls/StopFinderControlCommon.d.ts.map +1 -0
- package/common/controls/StopFinderControlCommon.js +144 -0
- package/common/index.d.ts +3 -0
- package/common/index.d.ts.map +1 -0
- package/common/index.js +2 -0
- package/common/layers/LayerCommon.d.ts +94 -0
- package/common/layers/LayerCommon.d.ts.map +1 -0
- package/common/layers/LayerCommon.js +244 -0
- package/common/mixins/RealtimeLayerMixin.d.ts +289 -0
- package/common/mixins/RealtimeLayerMixin.d.ts.map +1 -0
- package/common/mixins/RealtimeLayerMixin.js +746 -0
- package/common/mixins/UserInteractionsLayerMixin.d.ts +60 -0
- package/common/mixins/UserInteractionsLayerMixin.d.ts.map +1 -0
- package/common/mixins/UserInteractionsLayerMixin.js +241 -0
- package/common/styles/index.d.ts +5 -0
- package/common/styles/index.d.ts.map +1 -0
- package/common/styles/index.js +4 -0
- package/common/styles/realtimeDefaultStyle.d.ts +36 -0
- package/common/styles/realtimeDefaultStyle.d.ts.map +1 -0
- package/common/styles/realtimeDefaultStyle.js +261 -0
- package/{src/common/styles/trackerDelayStyle.js → common/styles/realtimeDelayStyle.d.ts} +4 -9
- package/common/styles/realtimeDelayStyle.d.ts.map +1 -0
- package/common/styles/realtimeDelayStyle.js +13 -0
- package/common/styles/realtimeSimpleStyle.d.ts +4 -0
- package/common/styles/realtimeSimpleStyle.d.ts.map +1 -0
- package/common/styles/realtimeSimpleStyle.js +24 -0
- package/common/typedefs.d.ts +111 -0
- package/common/typedefs.d.ts.map +1 -0
- package/common/typedefs.js +52 -0
- package/common/utils/compareDepartures.d.ts +11 -0
- package/common/utils/compareDepartures.d.ts.map +1 -0
- package/common/utils/compareDepartures.js +35 -0
- package/common/utils/createCanvas.d.ts +10 -0
- package/common/utils/createCanvas.d.ts.map +1 -0
- package/common/utils/createCanvas.js +27 -0
- package/common/utils/createRealtimeFilters.d.ts +13 -0
- package/common/utils/createRealtimeFilters.d.ts.map +1 -0
- package/common/utils/createRealtimeFilters.js +74 -0
- package/common/utils/debounceDeparturesMessages.d.ts +12 -0
- package/common/utils/debounceDeparturesMessages.d.ts.map +1 -0
- package/common/utils/debounceDeparturesMessages.js +24 -0
- package/common/utils/debounceWebsocketMessages.d.ts +11 -0
- package/common/utils/debounceWebsocketMessages.d.ts.map +1 -0
- package/common/utils/debounceWebsocketMessages.js +29 -0
- package/common/utils/getLayersAsFlatArray.d.ts +3 -0
- package/common/utils/getLayersAsFlatArray.d.ts.map +1 -0
- package/common/utils/getLayersAsFlatArray.js +15 -0
- package/common/utils/getMapboxMapCopyrights.d.ts +18 -0
- package/common/utils/getMapboxMapCopyrights.d.ts.map +1 -0
- package/common/utils/getMapboxMapCopyrights.js +30 -0
- package/common/utils/getMapboxRender.d.ts +7 -0
- package/common/utils/getMapboxRender.d.ts.map +1 -0
- package/common/utils/getMapboxRender.js +87 -0
- package/common/utils/getMaplibreRender.d.ts +7 -0
- package/common/utils/getMaplibreRender.d.ts.map +1 -0
- package/common/utils/getMaplibreRender.js +38 -0
- package/common/utils/getRealtimeModeSuffix.d.ts +10 -0
- package/common/utils/getRealtimeModeSuffix.d.ts.map +1 -0
- package/common/utils/getRealtimeModeSuffix.js +7 -0
- package/common/utils/getUrlWithParams.d.ts +9 -0
- package/common/utils/getUrlWithParams.d.ts.map +1 -0
- package/common/utils/getUrlWithParams.js +18 -0
- package/common/utils/getVehiclePosition.d.ts +16 -0
- package/common/utils/getVehiclePosition.d.ts.map +1 -0
- package/common/utils/getVehiclePosition.js +63 -0
- package/common/utils/index.d.ts +16 -0
- package/common/utils/index.d.ts.map +1 -0
- package/common/utils/index.js +16 -0
- package/common/utils/realtimeConfig.d.ts +49 -0
- package/common/utils/realtimeConfig.d.ts.map +1 -0
- package/common/utils/realtimeConfig.js +173 -0
- package/common/utils/removeDuplicate.d.ts +10 -0
- package/common/utils/removeDuplicate.d.ts.map +1 -0
- package/common/utils/removeDuplicate.js +15 -0
- package/common/utils/renderTrajectories.d.ts +17 -0
- package/common/utils/renderTrajectories.d.ts.map +1 -0
- package/common/utils/renderTrajectories.js +121 -0
- package/common/utils/sortAndFilterDepartures.d.ts +16 -0
- package/common/utils/sortAndFilterDepartures.d.ts.map +1 -0
- package/common/utils/sortAndFilterDepartures.js +58 -0
- package/common/utils/sortByDelay.d.ts +3 -0
- package/common/utils/sortByDelay.d.ts.map +1 -0
- package/common/utils/sortByDelay.js +20 -0
- package/common/utils/timeUtils.d.ts +24 -0
- package/common/utils/timeUtils.d.ts.map +1 -0
- package/{src/common → common}/utils/timeUtils.js +13 -18
- package/iife.d.ts +3 -0
- package/iife.d.ts.map +1 -0
- package/{src/iife.js → iife.js} +2 -4
- package/index.d.ts +10 -0
- package/index.d.ts.map +1 -0
- package/index.js +10 -0
- package/mapbox/controls/CopyrightControl.d.ts +29 -0
- package/mapbox/controls/CopyrightControl.d.ts.map +1 -0
- package/mapbox/controls/CopyrightControl.js +48 -0
- package/mapbox/controls/index.d.ts +2 -0
- package/mapbox/controls/index.d.ts.map +1 -0
- package/mapbox/controls/index.js +2 -0
- package/mapbox/index.d.ts +6 -0
- package/mapbox/index.d.ts.map +1 -0
- package/mapbox/index.js +5 -0
- package/mapbox/layers/Layer.d.ts +59 -0
- package/mapbox/layers/Layer.d.ts.map +1 -0
- package/mapbox/layers/Layer.js +101 -0
- package/mapbox/layers/RealtimeLayer.d.ts +180 -0
- package/mapbox/layers/RealtimeLayer.d.ts.map +1 -0
- package/mapbox/layers/RealtimeLayer.js +276 -0
- package/mapbox/layers/index.d.ts +3 -0
- package/mapbox/layers/index.d.ts.map +1 -0
- package/mapbox/layers/index.js +2 -0
- package/mapbox/utils/getMercatorResolution.d.ts +9 -0
- package/mapbox/utils/getMercatorResolution.d.ts.map +1 -0
- package/mapbox/utils/getMercatorResolution.js +18 -0
- package/mapbox/utils/getSourceCoordinates.d.ts +9 -0
- package/mapbox/utils/getSourceCoordinates.d.ts.map +1 -0
- package/mapbox/utils/getSourceCoordinates.js +27 -0
- package/mapbox/utils/index.d.ts +3 -0
- package/mapbox/utils/index.d.ts.map +1 -0
- package/mapbox/utils/index.js +2 -0
- package/mbt.js +50785 -0
- package/mbt.js.map +7 -0
- package/mbt.min.js +1083 -0
- package/mbt.min.js.map +7 -0
- package/ol/controls/CopyrightControl.d.ts +31 -0
- package/ol/controls/CopyrightControl.d.ts.map +1 -0
- package/ol/controls/CopyrightControl.js +68 -0
- package/ol/controls/RoutingControl.d.ts +193 -0
- package/ol/controls/RoutingControl.d.ts.map +1 -0
- package/ol/controls/RoutingControl.js +632 -0
- package/ol/controls/StopFinderControl.d.ts +30 -0
- package/ol/controls/StopFinderControl.d.ts.map +1 -0
- package/{src/ol → ol}/controls/StopFinderControl.js +10 -16
- package/ol/controls/index.d.ts +4 -0
- package/ol/controls/index.d.ts.map +1 -0
- package/ol/controls/index.js +3 -0
- package/ol/index.d.ts +6 -0
- package/ol/index.d.ts.map +1 -0
- package/ol/index.js +5 -0
- package/ol/layers/Layer.d.ts +86 -0
- package/ol/layers/Layer.d.ts.map +1 -0
- package/ol/layers/Layer.js +159 -0
- package/ol/layers/MapGlLayer.d.ts +67 -0
- package/ol/layers/MapGlLayer.d.ts.map +1 -0
- package/ol/layers/MapGlLayer.js +218 -0
- package/ol/layers/MapboxLayer.d.ts +50 -0
- package/ol/layers/MapboxLayer.d.ts.map +1 -0
- package/ol/layers/MapboxLayer.js +109 -0
- package/ol/layers/MapboxStyleLayer.d.ts +129 -0
- package/ol/layers/MapboxStyleLayer.d.ts.map +1 -0
- package/ol/layers/MapboxStyleLayer.js +374 -0
- package/ol/layers/MaplibreLayer.d.ts +28 -0
- package/ol/layers/MaplibreLayer.d.ts.map +1 -0
- package/ol/layers/MaplibreLayer.js +34 -0
- package/ol/layers/RealtimeLayer.d.ts +201 -0
- package/ol/layers/RealtimeLayer.d.ts.map +1 -0
- package/ol/layers/RealtimeLayer.js +310 -0
- package/ol/layers/RoutingLayer.d.ts +34 -0
- package/ol/layers/RoutingLayer.d.ts.map +1 -0
- package/ol/layers/RoutingLayer.js +85 -0
- package/ol/layers/VectorLayer.d.ts +25 -0
- package/ol/layers/VectorLayer.d.ts.map +1 -0
- package/ol/layers/VectorLayer.js +38 -0
- package/ol/layers/WMSLayer.d.ts +42 -0
- package/ol/layers/WMSLayer.d.ts.map +1 -0
- package/ol/layers/WMSLayer.js +88 -0
- package/ol/layers/index.d.ts +9 -0
- package/ol/layers/index.d.ts.map +1 -0
- package/ol/layers/index.js +8 -0
- package/ol/styles/fullTrajectoryDelayStyle.d.ts +4 -0
- package/ol/styles/fullTrajectoryDelayStyle.d.ts.map +1 -0
- package/ol/styles/fullTrajectoryDelayStyle.js +33 -0
- package/ol/styles/fullTrajectoryStyle.d.ts +5 -0
- package/ol/styles/fullTrajectoryStyle.d.ts.map +1 -0
- package/ol/styles/fullTrajectoryStyle.js +44 -0
- package/ol/styles/index.d.ts +3 -0
- package/ol/styles/index.d.ts.map +1 -0
- package/{src/ol → ol}/styles/index.js +0 -0
- package/package.json +71 -126
- package/setupTests.d.ts +2 -0
- package/setupTests.d.ts.map +1 -0
- package/{src/setupTests.js → setupTests.js} +0 -2
- package/types/common.d.ts +118 -0
- package/types/index.d.ts +11 -0
- package/types/realtime.d.ts +315 -0
- package/types/routing.d.ts +206 -0
- package/types/stops.d.ts +143 -0
- package/.babelrc +0 -6
- package/.esdoc.json +0 -17
- package/.eslintignore +0 -1
- package/.github/workflows/conventional-pr-title.yml +0 -21
- package/.github/workflows/cypress.yml +0 -29
- package/.github/workflows/nodejs.yml +0 -28
- package/.husky/commit-msg +0 -4
- package/.husky/post-checkout +0 -4
- package/.husky/post-merge +0 -4
- package/.husky/post-rebase +0 -4
- package/.husky/pre-commit +0 -4
- package/.neutrinorc.js +0 -176
- package/.nvmrc +0 -1
- package/CHANGELOG.md +0 -10
- package/LICENSE +0 -21
- package/Layer.js +0 -2
- package/Layer.js.map +0 -7
- package/__mocks__/mapbox-gl.js +0 -81
- package/__mocks__/maplibre-gl.js +0 -81
- package/commitlint.config.js +0 -1
- package/cypress/fixtures/example.json +0 -5
- package/cypress/integration/examples/api.spec.js +0 -7
- package/cypress/integration/examples/examples.spec.js +0 -7
- package/cypress/integration/examples/navigation.spec.js +0 -29
- package/cypress/plugins/index.js +0 -21
- package/cypress/support/commands.js +0 -25
- package/cypress/support/index.js +0 -20
- package/cypress.json +0 -4
- package/data/fetchRoute.json +0 -292
- package/data/fetchTrajectories.json +0 -18
- package/data/fetchTrajectoryById.json +0 -3
- package/data/fetchTrajectoryStations.json +0 -18
- package/data/stopsSearch.json +0 -15
- package/documentation.yml +0 -4
- package/esdoc/README.md +0 -27
- package/esdoc/plugins/MyPlugin.js +0 -69
- package/esdoc/plugins/dynamic-property-plugin/Plugin.js +0 -50
- package/esdoc/plugins/externals-plugin/Plugin.js +0 -45
- package/esdoc/plugins/externals-plugin/externals.js +0 -96
- package/global-setup.js +0 -3
- package/index.html +0 -0
- package/indexweb.html +0 -49
- package/jest.config.js +0 -5
- package/pull_request_template.md +0 -17
- package/renovate.json +0 -4
- package/scripts/read-pkg-json.js +0 -22
- package/src/api/index.js +0 -3
- package/src/api/routing/RoutingAPI.js +0 -44
- package/src/api/routing/RoutingAPI.test.js +0 -41
- package/src/api/stops/StopsAPI.js +0 -41
- package/src/api/stops/StopsAPI.test.js +0 -34
- package/src/api/tralis/TralisAPI.js +0 -731
- package/src/api/tralis/TralisAPI.test.js +0 -75
- package/src/api/tralis/TralisAPIUtils.js +0 -73
- package/src/api/tralis/WebSocketConnector.js +0 -338
- package/src/api/tralis/WebSocketConnector.test.js +0 -356
- package/src/assets/Lato-Black.ttf +0 -0
- package/src/assets/Lato-BlackItalic.ttf +0 -0
- package/src/assets/Lato-Bold.ttf +0 -0
- package/src/assets/Lato-BoldItalic.ttf +0 -0
- package/src/assets/Lato-Italic.ttf +0 -0
- package/src/assets/Lato-Light.ttf +0 -0
- package/src/assets/Lato-LightItalic.ttf +0 -0
- package/src/assets/Lato-Regular.ttf +0 -0
- package/src/assets/Lato-Thin.ttf +0 -0
- package/src/assets/Lato-ThinItalic.ttf +0 -0
- package/src/assets/OFL.txt +0 -93
- package/src/common/Tracker.js +0 -197
- package/src/common/api/api.js +0 -64
- package/src/common/api/api.test.js +0 -68
- package/src/common/controls/Control.js +0 -146
- package/src/common/controls/Control.test.js +0 -98
- package/src/common/layers/Layer.js +0 -404
- package/src/common/layers/Layer.test.js +0 -585
- package/src/common/mixins/CopyrightMixin.js +0 -48
- package/src/common/mixins/SearchMixin.js +0 -176
- package/src/common/mixins/TralisLayerMixin.js +0 -930
- package/src/common/styles/index.js +0 -4
- package/src/common/styles/trackerDefaultStyle.js +0 -333
- package/src/common/styles/trackerSimpleStyle.js +0 -22
- package/src/common/trackerConfig.js +0 -190
- package/src/common/trackerConfig.test.js +0 -25
- package/src/common/typedefs.js +0 -23
- package/src/common/utils/createTrackerFilters.js +0 -87
- package/src/common/utils/createTrackerFilters.test.js +0 -95
- package/src/common/utils/getMapboxMapCopyrights.js +0 -32
- package/src/common/utils/getMapboxMapCopyrights.test.js +0 -47
- package/src/common/utils/getMapboxStyleUrl.js +0 -32
- package/src/common/utils/getVehiclePosition.js +0 -72
- package/src/common/utils/index.js +0 -6
- package/src/common/utils/removeDuplicate.js +0 -22
- package/src/common/utils/removeDuplicate.test.js +0 -22
- package/src/common/utils/sortByDelay.js +0 -23
- package/src/common/utils/timeUtils.test.js +0 -16
- package/src/doc/App.js +0 -116
- package/src/doc/App.scss +0 -51
- package/src/doc/_redirects +0 -2
- package/src/doc/components/CodeSandboxButton.js +0 -103
- package/src/doc/components/Documentation.js +0 -40
- package/src/doc/components/Esdoc/Anchor.js +0 -57
- package/src/doc/components/Esdoc/ClassDoc.js +0 -272
- package/src/doc/components/Esdoc/DeprecatedHTML.js +0 -16
- package/src/doc/components/Esdoc/DetailDocs.js +0 -281
- package/src/doc/components/Esdoc/DetailHTML.js +0 -33
- package/src/doc/components/Esdoc/DirectSubclassHTML.js +0 -30
- package/src/doc/components/Esdoc/DocBuilderUtils.js +0 -694
- package/src/doc/components/Esdoc/DocLinkHTML.js +0 -62
- package/src/doc/components/Esdoc/DocsLinkHTML.js +0 -38
- package/src/doc/components/Esdoc/Esdoc.js +0 -63
- package/src/doc/components/Esdoc/EsdocContent.js +0 -51
- package/src/doc/components/Esdoc/EsdocNavigation.js +0 -13
- package/src/doc/components/Esdoc/EsdocSearch.js +0 -81
- package/src/doc/components/Esdoc/ExperimentalHTML.js +0 -17
- package/src/doc/components/Esdoc/ExtendsChainHTML.js +0 -32
- package/src/doc/components/Esdoc/FileDocLinkHTML.js +0 -60
- package/src/doc/components/Esdoc/IdentifiersDoc.js +0 -113
- package/src/doc/components/Esdoc/IndirectSubclassHTML.js +0 -30
- package/src/doc/components/Esdoc/InheritedSummaryDoc.js +0 -70
- package/src/doc/components/Esdoc/InheritedSummaryHTML.js +0 -38
- package/src/doc/components/Esdoc/MixinClassesHTML.js +0 -29
- package/src/doc/components/Esdoc/NavDoc.js +0 -112
- package/src/doc/components/Esdoc/OverrideMethod.js +0 -44
- package/src/doc/components/Esdoc/OverrideMethodDescription.js +0 -35
- package/src/doc/components/Esdoc/Properties.js +0 -89
- package/src/doc/components/Esdoc/README.md +0 -45
- package/src/doc/components/Esdoc/SignatureHTML.js +0 -123
- package/src/doc/components/Esdoc/SingleDoc.js +0 -31
- package/src/doc/components/Esdoc/SummaryDoc.js +0 -160
- package/src/doc/components/Esdoc/SummaryHTML.js +0 -96
- package/src/doc/components/Esdoc/TypeDocLinkHTML.js +0 -249
- package/src/doc/components/Esdoc/css/identifiers.css +0 -38
- package/src/doc/components/Esdoc/css/search.css +0 -76
- package/src/doc/components/Esdoc/css/style.css +0 -603
- package/src/doc/components/Esdoc/index.js +0 -7
- package/src/doc/components/Example.js +0 -153
- package/src/doc/components/Examples.js +0 -183
- package/src/doc/components/Home.js +0 -106
- package/src/doc/components/TrackerExample.js +0 -38
- package/src/doc/components/esm.min.js +0 -2
- package/src/doc/components/examples/assets/tralis-live-map/index.js +0 -11
- package/src/doc/components/examples/assets/tralis-live-map/s1kreis.svg +0 -105
- package/src/doc/components/examples/assets/tralis-live-map/s20kreis.svg +0 -101
- package/src/doc/components/examples/assets/tralis-live-map/s2kreis.svg +0 -95
- package/src/doc/components/examples/assets/tralis-live-map/s3kreis.svg +0 -95
- package/src/doc/components/examples/assets/tralis-live-map/s4kreis.svg +0 -95
- package/src/doc/components/examples/assets/tralis-live-map/s6kreis.svg +0 -95
- package/src/doc/components/examples/assets/tralis-live-map/s7kreis.svg +0 -95
- package/src/doc/components/examples/assets/tralis-live-map/s8kreis.svg +0 -93
- package/src/doc/components/examples/assets/tralis-live-map/unknown.svg +0 -107
- package/src/doc/components/examples/mb-copyright.html +0 -26
- package/src/doc/components/examples/mb-copyright.js +0 -37
- package/src/doc/components/examples/mb-tracker.html +0 -1
- package/src/doc/components/examples/mb-tracker.js +0 -39
- package/src/doc/components/examples/mb-tracker.md +0 -1
- package/src/doc/components/examples/mb-tralis.html +0 -1
- package/src/doc/components/examples/mb-tralis.js +0 -34
- package/src/doc/components/examples/ol-copyright.html +0 -26
- package/src/doc/components/examples/ol-copyright.js +0 -43
- package/src/doc/components/examples/ol-mapbox-layer.html +0 -1
- package/src/doc/components/examples/ol-mapbox-layer.js +0 -28
- package/src/doc/components/examples/ol-mapbox-layer.md +0 -0
- package/src/doc/components/examples/ol-mapbox-style-layer.html +0 -12
- package/src/doc/components/examples/ol-mapbox-style-layer.js +0 -44
- package/src/doc/components/examples/ol-query.html +0 -32
- package/src/doc/components/examples/ol-query.js +0 -83
- package/src/doc/components/examples/ol-routing.html +0 -26
- package/src/doc/components/examples/ol-routing.js +0 -59
- package/src/doc/components/examples/ol-routing.md +0 -1
- package/src/doc/components/examples/ol-stop-finder.html +0 -15
- package/src/doc/components/examples/ol-stop-finder.js +0 -31
- package/src/doc/components/examples/ol-stop-finder.md +0 -1
- package/src/doc/components/examples/ol-tracker.html +0 -1
- package/src/doc/components/examples/ol-tracker.js +0 -44
- package/src/doc/components/examples/ol-tracker.md +0 -1
- package/src/doc/components/examples/ol-tralis.html +0 -5
- package/src/doc/components/examples/ol-tralis.js +0 -57
- package/src/doc/components/examples/tralis-live-map.html +0 -1
- package/src/doc/components/examples/tralis-live-map.js +0 -51
- package/src/doc/components/examples/tralis-live-map.md +0 -3
- package/src/doc/examples/assets/tralis-live-map/index.js +0 -11
- package/src/doc/examples/assets/tralis-live-map/s1kreis.svg +0 -105
- package/src/doc/examples/assets/tralis-live-map/s20kreis.svg +0 -101
- package/src/doc/examples/assets/tralis-live-map/s2kreis.svg +0 -95
- package/src/doc/examples/assets/tralis-live-map/s3kreis.svg +0 -95
- package/src/doc/examples/assets/tralis-live-map/s4kreis.svg +0 -95
- package/src/doc/examples/assets/tralis-live-map/s6kreis.svg +0 -95
- package/src/doc/examples/assets/tralis-live-map/s7kreis.svg +0 -95
- package/src/doc/examples/assets/tralis-live-map/s8kreis.svg +0 -93
- package/src/doc/examples/assets/tralis-live-map/unknown.svg +0 -107
- package/src/doc/examples/mb-copyright.html +0 -26
- package/src/doc/examples/mb-copyright.js +0 -37
- package/src/doc/examples/mb-tracker.html +0 -1
- package/src/doc/examples/mb-tracker.js +0 -39
- package/src/doc/examples/mb-tracker.md +0 -1
- package/src/doc/examples/mb-tralis.html +0 -1
- package/src/doc/examples/mb-tralis.js +0 -34
- package/src/doc/examples/ol-copyright.html +0 -26
- package/src/doc/examples/ol-copyright.js +0 -43
- package/src/doc/examples/ol-mapbox-layer.html +0 -1
- package/src/doc/examples/ol-mapbox-layer.js +0 -28
- package/src/doc/examples/ol-mapbox-layer.md +0 -0
- package/src/doc/examples/ol-mapbox-style-layer.html +0 -12
- package/src/doc/examples/ol-mapbox-style-layer.js +0 -44
- package/src/doc/examples/ol-query.html +0 -32
- package/src/doc/examples/ol-query.js +0 -83
- package/src/doc/examples/ol-routing.html +0 -26
- package/src/doc/examples/ol-routing.js +0 -59
- package/src/doc/examples/ol-routing.md +0 -1
- package/src/doc/examples/ol-stop-finder.html +0 -15
- package/src/doc/examples/ol-stop-finder.js +0 -31
- package/src/doc/examples/ol-stop-finder.md +0 -1
- package/src/doc/examples/ol-tracker.html +0 -1
- package/src/doc/examples/ol-tracker.js +0 -44
- package/src/doc/examples/ol-tracker.md +0 -1
- package/src/doc/examples/ol-tralis.html +0 -5
- package/src/doc/examples/ol-tralis.js +0 -57
- package/src/doc/examples/tralis-live-map.html +0 -1
- package/src/doc/examples/tralis-live-map.js +0 -51
- package/src/doc/examples/tralis-live-map.md +0 -3
- package/src/doc/examples.js +0 -107
- package/src/doc/img/examples/live_tracker_mb.jpg +0 -0
- package/src/doc/img/examples/live_tracker_munich.jpg +0 -0
- package/src/doc/img/examples/live_tracker_ol.jpg +0 -0
- package/src/doc/img/examples/mapbox.jpg +0 -0
- package/src/doc/img/examples/mapbox_style.jpg +0 -0
- package/src/doc/img/examples/ol-copyright.png +0 -0
- package/src/doc/img/examples/query_objects.jpg +0 -0
- package/src/doc/img/examples/routing.jpg +0 -0
- package/src/doc/img/examples/simple_map.jpg +0 -0
- package/src/doc/img/examples/stops.jpg +0 -0
- package/src/doc/img/favico.ico +0 -0
- package/src/doc/index.js +0 -21
- package/src/index.js +0 -25
- package/src/mapbox/controls/CopyrightControl.js +0 -58
- package/src/mapbox/index.js +0 -3
- package/src/mapbox/layers/Layer.js +0 -118
- package/src/mapbox/layers/Layer.test.js +0 -202
- package/src/mapbox/layers/TralisLayer.js +0 -329
- package/src/mapbox/layers/TralisLayer.test.js +0 -40
- package/src/mapbox/utils.js +0 -46
- package/src/ol/README.md +0 -0
- package/src/ol/controls/CopyrightControl.js +0 -80
- package/src/ol/controls/CopyrightControl.test.js +0 -211
- package/src/ol/controls/RoutingControl.js +0 -752
- package/src/ol/controls/RoutingControl.test.js +0 -216
- package/src/ol/controls/StopFinderControl.test.js +0 -59
- package/src/ol/controls/snapshots/RoutingControlRouteGen10.json +0 -58
- package/src/ol/controls/snapshots/RoutingControlRouteGen100.json +0 -292
- package/src/ol/controls/snapshots/RoutingControlRouteGen30.json +0 -69
- package/src/ol/controls/snapshots/RoutingControlRouteGen5.json +0 -58
- package/src/ol/controls/snapshots/RoutingControlRouteOSM.json +0 -759
- package/src/ol/controls/snapshots/RoutingControlStation1.json +0 -60
- package/src/ol/controls/snapshots/RoutingControlStation2.json +0 -49
- package/src/ol/index.js +0 -13
- package/src/ol/layers/Layer.js +0 -193
- package/src/ol/layers/Layer.test.js +0 -197
- package/src/ol/layers/MapboxLayer.js +0 -378
- package/src/ol/layers/MapboxLayer.test.js +0 -186
- package/src/ol/layers/MapboxStyleLayer.js +0 -417
- package/src/ol/layers/MapboxStyleLayer.test.js +0 -262
- package/src/ol/layers/MaplibreLayer.js +0 -280
- package/src/ol/layers/RoutingLayer.js +0 -91
- package/src/ol/layers/RoutingLayer.test.js +0 -49
- package/src/ol/layers/TralisLayer.js +0 -359
- package/src/ol/layers/TralisLayer.test.js +0 -97
- package/src/ol/layers/VectorLayer.js +0 -43
- package/src/ol/layers/VectorLayer.test.js +0 -98
- package/src/ol/layers/WMSLayer.js +0 -80
- package/src/ol/layers/WMSLayer.test.js +0 -84
- package/src/ol/styles/fullTrajectoryDelayStyle.js +0 -35
- package/src/ol/styles/fullTrajectoryStyle.js +0 -51
- package/webpack.config.js +0 -6
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A very simple tracker style.
|
|
3
|
+
* Display blue point for each train.
|
|
4
|
+
*/
|
|
5
|
+
let canvas;
|
|
6
|
+
const realtimeSimpleStyle = () => {
|
|
7
|
+
if (!canvas) {
|
|
8
|
+
canvas = document.createElement('canvas');
|
|
9
|
+
canvas.width = 15;
|
|
10
|
+
canvas.height = 15;
|
|
11
|
+
const ctx = canvas.getContext('2d');
|
|
12
|
+
if (ctx) {
|
|
13
|
+
ctx.arc(8, 8, 5, 0, 2 * Math.PI, false);
|
|
14
|
+
ctx.fillStyle = '#8ED6FF';
|
|
15
|
+
ctx.fill();
|
|
16
|
+
ctx.lineWidth = 3;
|
|
17
|
+
ctx.strokeStyle = 'black';
|
|
18
|
+
ctx.stroke();
|
|
19
|
+
ctx.lineWidth = 3;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return canvas;
|
|
23
|
+
};
|
|
24
|
+
export default realtimeSimpleStyle;
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
type FilterFunction = Function;
|
|
2
|
+
type SortFunction = Function;
|
|
3
|
+
type ViewState = {
|
|
4
|
+
/**
|
|
5
|
+
* A time in ms.
|
|
6
|
+
*/
|
|
7
|
+
time: number | undefined;
|
|
8
|
+
/**
|
|
9
|
+
* A center in mercator coordinate.
|
|
10
|
+
*/
|
|
11
|
+
center: number[2] | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* An Extent in mercator coordinates.
|
|
14
|
+
*/
|
|
15
|
+
extent: any;
|
|
16
|
+
/**
|
|
17
|
+
* A size ([width, height]).
|
|
18
|
+
*/
|
|
19
|
+
size: any;
|
|
20
|
+
/**
|
|
21
|
+
* A rotation in radians.
|
|
22
|
+
*/
|
|
23
|
+
rotation: number;
|
|
24
|
+
/**
|
|
25
|
+
* A resolution.
|
|
26
|
+
*/
|
|
27
|
+
resolution: number;
|
|
28
|
+
/**
|
|
29
|
+
* A zoom level.
|
|
30
|
+
*/
|
|
31
|
+
zoom: number;
|
|
32
|
+
/**
|
|
33
|
+
* A pixel ratio.
|
|
34
|
+
*/
|
|
35
|
+
pixelRatio: number | undefined;
|
|
36
|
+
};
|
|
37
|
+
type FeatureInfo = {
|
|
38
|
+
/**
|
|
39
|
+
* A layer.
|
|
40
|
+
*/
|
|
41
|
+
layer: Layer;
|
|
42
|
+
/**
|
|
43
|
+
* /Feature~Feature[]} features An array of features.
|
|
44
|
+
*/
|
|
45
|
+
"": ol;
|
|
46
|
+
/**
|
|
47
|
+
* The coordinate where to find the featue.
|
|
48
|
+
*/
|
|
49
|
+
coordinate: any;
|
|
50
|
+
};
|
|
51
|
+
type ControlCommonOptions = {
|
|
52
|
+
/**
|
|
53
|
+
* Whether the control is active or not.
|
|
54
|
+
*/
|
|
55
|
+
active?: boolean | undefined;
|
|
56
|
+
/**
|
|
57
|
+
* The HTML element used to render the control.
|
|
58
|
+
*/
|
|
59
|
+
element: HTMLElement;
|
|
60
|
+
/**
|
|
61
|
+
* The HTML element where to render the element property. Default is the map's element.
|
|
62
|
+
*/
|
|
63
|
+
target: HTMLElement;
|
|
64
|
+
/**
|
|
65
|
+
* Render function called whenever the control needs to be rerendered.
|
|
66
|
+
*/
|
|
67
|
+
render: Function;
|
|
68
|
+
};
|
|
69
|
+
type LayerCommonOptions = {
|
|
70
|
+
/**
|
|
71
|
+
* Identifier of the layer. Must be unique.
|
|
72
|
+
*/
|
|
73
|
+
key: string;
|
|
74
|
+
/**
|
|
75
|
+
* Name of the layer.
|
|
76
|
+
*/
|
|
77
|
+
name: string;
|
|
78
|
+
/**
|
|
79
|
+
* Group of the layer.
|
|
80
|
+
*/
|
|
81
|
+
group: string;
|
|
82
|
+
/**
|
|
83
|
+
* List of copyrights.
|
|
84
|
+
*/
|
|
85
|
+
copyrights: string[];
|
|
86
|
+
/**
|
|
87
|
+
* List of children layers.
|
|
88
|
+
*/
|
|
89
|
+
children: Layer[];
|
|
90
|
+
/**
|
|
91
|
+
* Define if the layer is currently display on the map.
|
|
92
|
+
*/
|
|
93
|
+
visible: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Define if the layer is currently display on the map but can't be seen (extent, zoom ,data restrictions).
|
|
96
|
+
*/
|
|
97
|
+
disabled: boolean;
|
|
98
|
+
/**
|
|
99
|
+
* Hit-detection tolerance in css pixels. Pixels inside the radius around the given position will be checked for features.
|
|
100
|
+
*/
|
|
101
|
+
hittolerance: number;
|
|
102
|
+
/**
|
|
103
|
+
* - Custom properties.
|
|
104
|
+
*/
|
|
105
|
+
properties: Object;
|
|
106
|
+
/**
|
|
107
|
+
* - The map used to display the layer.
|
|
108
|
+
*/
|
|
109
|
+
map: AnyMap;
|
|
110
|
+
};
|
|
111
|
+
//# sourceMappingURL=typedefs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"typedefs.d.ts","sourceRoot":"","sources":["../../src/common/typedefs.js"],"names":[],"mappings":";;;;;;UAcc,MAAM,GAAC,SAAS;;;;YAChB,MAAM,CAAC,CAAC,CAAC,GAAC,SAAS;;;;;;;;;;;;cAGnB,MAAM;;;;gBACN,MAAM;;;;UACN,MAAM;;;;gBACN,MAAM,GAAC,SAAS;;;;;;;;;;;;;;;;;;;;;;;;aAiBhB,WAAW;;;;YACX,WAAW;;;;;;;;;;SAMX,MAAM;;;;UACN,MAAM;;;;WACN,MAAM;;;;gBACN,MAAM,EAAE;;;;cACR,OAAO;;;;aACP,OAAO;;;;cACP,OAAO;;;;kBACP,MAAM;;;;gBACN,MAAM"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @typedef {function} FilterFunction
|
|
4
|
+
* @param {Vehicle} vehicle Vehicle to filter.
|
|
5
|
+
* @returns boolean
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* @typedef {function} SortFunction
|
|
9
|
+
* @param {any} a Object a to compare.
|
|
10
|
+
* @param {any} b Object b to compare.
|
|
11
|
+
* @returns number
|
|
12
|
+
*/
|
|
13
|
+
/**
|
|
14
|
+
* @typedef {Object} ViewState
|
|
15
|
+
* @property {number|undefined} time A time in ms.
|
|
16
|
+
* @property {number[2]|undefined} center A center in mercator coordinate.
|
|
17
|
+
* @property {number[4]} extent An Extent in mercator coordinates.
|
|
18
|
+
* @property {number[2]} size A size ([width, height]).
|
|
19
|
+
* @property {number} rotation A rotation in radians.
|
|
20
|
+
* @property {number} resolution A resolution.
|
|
21
|
+
* @property {number} zoom A zoom level.
|
|
22
|
+
* @property {number|undefined} pixelRatio A pixel ratio.
|
|
23
|
+
*/
|
|
24
|
+
/**
|
|
25
|
+
* @typedef {Object} FeatureInfo
|
|
26
|
+
* @property {Layer} layer A layer.
|
|
27
|
+
* @property {ol/Feature~Feature[]} features An array of features.
|
|
28
|
+
* @property {number[2]} coordinate The coordinate where to find the featue.
|
|
29
|
+
*/
|
|
30
|
+
/**
|
|
31
|
+
* @typedef {ol/Map~Map|mapboxgl.Map|maplibregl.Map} AnyMap
|
|
32
|
+
*/
|
|
33
|
+
/**
|
|
34
|
+
* @typedef {Object} ControlCommonOptions
|
|
35
|
+
* @property {boolean} [active = true] Whether the control is active or not.
|
|
36
|
+
* @property {HTMLElement} element The HTML element used to render the control.
|
|
37
|
+
* @property {HTMLElement} target The HTML element where to render the element property. Default is the map's element.
|
|
38
|
+
* @property {function} render Render function called whenever the control needs to be rerendered.
|
|
39
|
+
*/
|
|
40
|
+
/**
|
|
41
|
+
* @typedef {Object} LayerCommonOptions
|
|
42
|
+
* @property {string!} key Identifier of the layer. Must be unique.
|
|
43
|
+
* @property {string!} name Name of the layer.
|
|
44
|
+
* @property {string!} group Group of the layer.
|
|
45
|
+
* @property {string[]!} copyrights List of copyrights.
|
|
46
|
+
* @property {Layer[]!} children List of children layers.
|
|
47
|
+
* @property {boolean!} visible Define if the layer is currently display on the map.
|
|
48
|
+
* @property {boolean!} disabled Define if the layer is currently display on the map but can't be seen (extent, zoom ,data restrictions).
|
|
49
|
+
* @property {number!} hittolerance Hit-detection tolerance in css pixels. Pixels inside the radius around the given position will be checked for features.
|
|
50
|
+
* @property {Object!} properties - Custom properties.
|
|
51
|
+
* @property {AnyMap!} map - The map used to display the layer.
|
|
52
|
+
*/
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { RealtimeDeparture } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Compare two given departures for sort alogithm,
|
|
4
|
+
* @param {Departure} a First departure.
|
|
5
|
+
* @param {Departure} b Second departure.
|
|
6
|
+
* @param {boolean} [sortByMinArrivalTime=false] Sort departures by arrival time.
|
|
7
|
+
* @private
|
|
8
|
+
*/
|
|
9
|
+
declare const compareDepartures: (a: RealtimeDeparture, b: RealtimeDeparture, sortByMinArrivalTime?: boolean) => number;
|
|
10
|
+
export default compareDepartures;
|
|
11
|
+
//# sourceMappingURL=compareDepartures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compareDepartures.d.ts","sourceRoot":"","sources":["../../../src/common/utils/compareDepartures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEhD;;;;;;GAMG;AACH,QAAA,MAAM,iBAAiB,MAClB,iBAAiB,KACjB,iBAAiB,yBACE,OAAO,KAC5B,MA8BF,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Compare two given departures for sort alogithm,
|
|
3
|
+
* @param {Departure} a First departure.
|
|
4
|
+
* @param {Departure} b Second departure.
|
|
5
|
+
* @param {boolean} [sortByMinArrivalTime=false] Sort departures by arrival time.
|
|
6
|
+
* @private
|
|
7
|
+
*/
|
|
8
|
+
const compareDepartures = (a, b, sortByMinArrivalTime = false) => {
|
|
9
|
+
// First LEAVING and HIDDEN, then BOARDING and then sorted by time.
|
|
10
|
+
const topStates = ['HIDDEN', 'LEAVING', 'BOARDING'];
|
|
11
|
+
const aTop = a.has_fzo && topStates.indexOf(a.state) > -1;
|
|
12
|
+
const bTop = b.has_fzo && topStates.indexOf(b.state) > -1;
|
|
13
|
+
if (aTop || bTop) {
|
|
14
|
+
if (aTop !== bTop) {
|
|
15
|
+
return aTop ? -1 : 1;
|
|
16
|
+
}
|
|
17
|
+
if (a.state !== b.state) {
|
|
18
|
+
// one is leaving
|
|
19
|
+
return topStates.indexOf(a.state) - topStates.indexOf(b.state);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
let aDuration = null;
|
|
23
|
+
let bDuration = null;
|
|
24
|
+
const now = Date.now();
|
|
25
|
+
if (sortByMinArrivalTime) {
|
|
26
|
+
aDuration = new Date(a.min_arrival_time || a.time).getTime() - now;
|
|
27
|
+
bDuration = new Date(b.min_arrival_time || b.time).getTime() - now;
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
aDuration = new Date(a.time).getTime() - now;
|
|
31
|
+
bDuration = new Date(b.time).getTime() - now;
|
|
32
|
+
}
|
|
33
|
+
return aDuration - bDuration;
|
|
34
|
+
};
|
|
35
|
+
export default compareDepartures;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { AnyCanvas } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* This function try to create a canvas element and return it.
|
|
4
|
+
* it uses document.createElement('canvas') if document is available
|
|
5
|
+
* or new OffscreenCanvas(width, height) if OffscreenCanvas is avalaible (for web worker)
|
|
6
|
+
* or it returns null if neither is available.
|
|
7
|
+
*/
|
|
8
|
+
declare const createCanvas: (width: number, height: number) => AnyCanvas | null;
|
|
9
|
+
export default createCanvas;
|
|
10
|
+
//# sourceMappingURL=createCanvas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createCanvas.d.ts","sourceRoot":"","sources":["../../../src/common/utils/createCanvas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;GAKG;AACH,QAAA,MAAM,YAAY,UAAW,MAAM,UAAU,MAAM,KAAG,SAAS,GAAG,IAqBjE,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This function try to create a canvas element and return it.
|
|
3
|
+
* it uses document.createElement('canvas') if document is available
|
|
4
|
+
* or new OffscreenCanvas(width, height) if OffscreenCanvas is avalaible (for web worker)
|
|
5
|
+
* or it returns null if neither is available.
|
|
6
|
+
*/
|
|
7
|
+
const createCanvas = (width, height) => {
|
|
8
|
+
let canvas = null;
|
|
9
|
+
// Prevent SSR errors
|
|
10
|
+
if (typeof window === 'undefined') {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
if (document === null || document === void 0 ? void 0 : document.createElement) {
|
|
14
|
+
canvas = document.createElement('canvas');
|
|
15
|
+
canvas.width = width;
|
|
16
|
+
canvas.height = height;
|
|
17
|
+
}
|
|
18
|
+
else if (OffscreenCanvas) {
|
|
19
|
+
canvas = new OffscreenCanvas(width, height);
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
// eslint-disable-next-line no-console
|
|
23
|
+
console.error("We didn't find a way to create a canvas element, document.createElement('canvas') and new OffscrenCanvas() are not supported");
|
|
24
|
+
}
|
|
25
|
+
return canvas;
|
|
26
|
+
};
|
|
27
|
+
export default createCanvas;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { RealtimeTrajectory } from '../../types';
|
|
2
|
+
/**
|
|
3
|
+
* Return a filter functions based on some parameters of a vehicle.
|
|
4
|
+
*
|
|
5
|
+
* @param {string|Array<string>} line - A list of vehicle's name to filter. Names can be separated by a comma. Ex: 'S1,S2,S3'
|
|
6
|
+
* @param {string|Array<string} route - A list of vehicle's route (contained in route_identifier property) to filter. Indentifiers can be separated by a comma. Ex: 'id1,id2,id3'
|
|
7
|
+
* @param {string|Array<string} operator A list of vehicle's operator to filter. Operators can be separated by a comma. Ex: 'SBB,DB'
|
|
8
|
+
* @param {Regexp} regexLine - A regex aplly of vehcile's name.
|
|
9
|
+
* @private
|
|
10
|
+
*/
|
|
11
|
+
declare const createRealtimeFilters: (line: string | string[], route: string | string[], operator: string | string[], regexLine: string | string[]) => ((trajectory: RealtimeTrajectory) => boolean) | null;
|
|
12
|
+
export default createRealtimeFilters;
|
|
13
|
+
//# sourceMappingURL=createRealtimeFilters.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"createRealtimeFilters.d.ts","sourceRoot":"","sources":["../../../src/common/utils/createRealtimeFilters.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD;;;;;;;;GAQG;AACH,QAAA,MAAM,qBAAqB,SACnB,MAAM,GAAG,MAAM,EAAE,SAChB,MAAM,GAAG,MAAM,EAAE,YACd,MAAM,GAAG,MAAM,EAAE,aAChB,MAAM,GAAG,MAAM,EAAE,mBACb,kBAAkB,KAAK,OAAO,QA8E9C,CAAC;AAEF,eAAe,qBAAqB,CAAC"}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Return a filter functions based on some parameters of a vehicle.
|
|
3
|
+
*
|
|
4
|
+
* @param {string|Array<string>} line - A list of vehicle's name to filter. Names can be separated by a comma. Ex: 'S1,S2,S3'
|
|
5
|
+
* @param {string|Array<string} route - A list of vehicle's route (contained in route_identifier property) to filter. Indentifiers can be separated by a comma. Ex: 'id1,id2,id3'
|
|
6
|
+
* @param {string|Array<string} operator A list of vehicle's operator to filter. Operators can be separated by a comma. Ex: 'SBB,DB'
|
|
7
|
+
* @param {Regexp} regexLine - A regex aplly of vehcile's name.
|
|
8
|
+
* @private
|
|
9
|
+
*/
|
|
10
|
+
const createRealtimeFilters = (line, route, operator, regexLine) => {
|
|
11
|
+
const filterList = [];
|
|
12
|
+
if (!line && !route && !operator && !regexLine) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
if (regexLine) {
|
|
16
|
+
const regexLineList = typeof regexLine === 'string' ? [regexLine] : regexLine;
|
|
17
|
+
const lineFilter = (item) => {
|
|
18
|
+
const name = item.properties.name ||
|
|
19
|
+
(item.properties.line && item.properties.line.name) ||
|
|
20
|
+
'';
|
|
21
|
+
if (!name) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
return regexLineList.some((regexStr) => new RegExp(regexStr, 'i').test(name));
|
|
25
|
+
};
|
|
26
|
+
filterList.push(lineFilter);
|
|
27
|
+
}
|
|
28
|
+
if (line) {
|
|
29
|
+
const lineFiltersList = typeof line === 'string' ? line.split(',') : line;
|
|
30
|
+
const lineList = lineFiltersList.map((l) => l.replace(/\s+/g, '').toUpperCase());
|
|
31
|
+
const lineFilter = (item) => {
|
|
32
|
+
const { line: linee, name } = item.properties;
|
|
33
|
+
const lineName = (name || (linee && linee.name) || '').toUpperCase();
|
|
34
|
+
if (!lineName) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
return lineList.includes(lineName);
|
|
38
|
+
};
|
|
39
|
+
filterList.push(lineFilter);
|
|
40
|
+
}
|
|
41
|
+
if (route) {
|
|
42
|
+
const routes = typeof route === 'string' ? route.split(',') : route;
|
|
43
|
+
const routeList = routes.map((item) => parseInt(item, 10));
|
|
44
|
+
const routeFilter = (item) => {
|
|
45
|
+
const routeIdentifier = item.properties.route_identifier ||
|
|
46
|
+
item.properties.routeIdentifier ||
|
|
47
|
+
'';
|
|
48
|
+
const routeId = parseInt(routeIdentifier.split('.')[0], 10);
|
|
49
|
+
return routeList.includes(routeId);
|
|
50
|
+
};
|
|
51
|
+
filterList.push(routeFilter);
|
|
52
|
+
}
|
|
53
|
+
if (operator) {
|
|
54
|
+
const operatorList = typeof operator === 'string' ? [operator] : operator;
|
|
55
|
+
const operatorFilter = (item) => operatorList.some((op) => {
|
|
56
|
+
// operaotr is the old property tenant is the new one
|
|
57
|
+
const tenant = item.properties.operator || item.properties.tenant || '';
|
|
58
|
+
return new RegExp(op, 'i').test(tenant);
|
|
59
|
+
});
|
|
60
|
+
filterList.push(operatorFilter);
|
|
61
|
+
}
|
|
62
|
+
if (!filterList.length) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
return (item) => {
|
|
66
|
+
for (let i = 0; i < filterList.length; i += 1) {
|
|
67
|
+
if (!filterList[i](item)) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return true;
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
export default createRealtimeFilters;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { RealtimeDeparture, RealtimeDepartureExtended } from '../../types';
|
|
2
|
+
import type { WebSocketAPIMessageCallback } from '../api/WebSocketAPI';
|
|
3
|
+
/**
|
|
4
|
+
* This function returns a WebSocket api callback, and call the onDeparturesUpdate function with the list of current departures to display.
|
|
5
|
+
* @param {function(departures: RealtimeDeparture[])} onDeparturesUpdate callback when list of departures changes, called after 100 ms
|
|
6
|
+
* @param {boolean} [sortByMinArrivalTime = true] Sort departures by arrival time
|
|
7
|
+
* @param {number} [maxDepartureAge = 30] max departure age of departures in minutes
|
|
8
|
+
* @param {number} [timeout = 100] debounce timeout in ms
|
|
9
|
+
*/
|
|
10
|
+
declare const debounceDeparturesMessages: (onDeparturesUpdate: (departures: RealtimeDepartureExtended[]) => {}, sortByMinArrivalTime?: boolean, maxDepartureAge?: number, timeout?: number) => WebSocketAPIMessageCallback<RealtimeDeparture>;
|
|
11
|
+
export default debounceDeparturesMessages;
|
|
12
|
+
//# sourceMappingURL=debounceDeparturesMessages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debounceDeparturesMessages.d.ts","sourceRoot":"","sources":["../../../src/common/utils/debounceDeparturesMessages.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,KAAK,EACV,2BAA2B,EAE5B,MAAM,qBAAqB,CAAC;AAG7B;;;;;;GAMG;AACH,QAAA,MAAM,0BAA0B,oCACG,yBAAyB,EAAE,KAAK,EAAE,iFAIlE,4BAA4B,iBAAiB,CAwB/C,CAAC;AAEF,eAAe,0BAA0B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import sortAndFilterDepartures from './sortAndFilterDepartures';
|
|
2
|
+
/**
|
|
3
|
+
* This function returns a WebSocket api callback, and call the onDeparturesUpdate function with the list of current departures to display.
|
|
4
|
+
* @param {function(departures: RealtimeDeparture[])} onDeparturesUpdate callback when list of departures changes, called after 100 ms
|
|
5
|
+
* @param {boolean} [sortByMinArrivalTime = true] Sort departures by arrival time
|
|
6
|
+
* @param {number} [maxDepartureAge = 30] max departure age of departures in minutes
|
|
7
|
+
* @param {number} [timeout = 100] debounce timeout in ms
|
|
8
|
+
*/
|
|
9
|
+
const debounceDeparturesMessages = (onDeparturesUpdate, sortByMinArrivalTime = false, maxDepartureAge = 30, timeout = 100) => {
|
|
10
|
+
const departureUpdateTimeout = {};
|
|
11
|
+
const departureObject = {};
|
|
12
|
+
return (data) => {
|
|
13
|
+
const { source, content: departure } = data;
|
|
14
|
+
if (departureUpdateTimeout[source]) {
|
|
15
|
+
window.clearTimeout(departureUpdateTimeout[source]);
|
|
16
|
+
}
|
|
17
|
+
departureObject[departure.call_id] = departure;
|
|
18
|
+
departureUpdateTimeout[source] = window.setTimeout(() => {
|
|
19
|
+
const departures = sortAndFilterDepartures(departureObject, sortByMinArrivalTime || false, maxDepartureAge);
|
|
20
|
+
onDeparturesUpdate(departures);
|
|
21
|
+
}, timeout);
|
|
22
|
+
};
|
|
23
|
+
};
|
|
24
|
+
export default debounceDeparturesMessages;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { WebSocketAPIMessageCallback } from '../api/WebSocketAPI';
|
|
2
|
+
/**
|
|
3
|
+
* This function returns a WebSocket api callback, and call the onUpdate function with the list of of subscribed objects changes.
|
|
4
|
+
*
|
|
5
|
+
* @param {function(objects: any[])} onUpdate callback when list of subscribed objects changes, called after 100 ms
|
|
6
|
+
* @param {function(object: any)} [getObjectId = true] function returning the id of an object
|
|
7
|
+
* @param {number} [timeout = 100] debounce timeout in ms
|
|
8
|
+
*/
|
|
9
|
+
declare const debounceWebsocketMessages: (onUpdate: (objects: any[]) => void, getObjectId?: ((object: any) => string) | undefined, timeout?: number) => WebSocketAPIMessageCallback<any>;
|
|
10
|
+
export default debounceWebsocketMessages;
|
|
11
|
+
//# sourceMappingURL=debounceWebsocketMessages.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"debounceWebsocketMessages.d.ts","sourceRoot":"","sources":["../../../src/common/utils/debounceWebsocketMessages.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,2BAA2B,EAE5B,MAAM,qBAAqB,CAAC;AAE7B;;;;;;GAMG;AACH,QAAA,MAAM,yBAAyB,uBACT,GAAG,EAAE,KAAK,IAAI,0BACX,GAAG,KAAK,MAAM,oCAEpC,4BAA4B,GAAG,CA2BjC,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This function returns a WebSocket api callback, and call the onUpdate function with the list of of subscribed objects changes.
|
|
3
|
+
*
|
|
4
|
+
* @param {function(objects: any[])} onUpdate callback when list of subscribed objects changes, called after 100 ms
|
|
5
|
+
* @param {function(object: any)} [getObjectId = true] function returning the id of an object
|
|
6
|
+
* @param {number} [timeout = 100] debounce timeout in ms
|
|
7
|
+
*/
|
|
8
|
+
const debounceWebsocketMessages = (onUpdate, getObjectId, timeout = 100) => {
|
|
9
|
+
const updateTimeout = {};
|
|
10
|
+
const objectsById = {};
|
|
11
|
+
const objects = [];
|
|
12
|
+
return (data) => {
|
|
13
|
+
const { source, content } = data;
|
|
14
|
+
if (updateTimeout[source]) {
|
|
15
|
+
window.clearTimeout(updateTimeout[source]);
|
|
16
|
+
}
|
|
17
|
+
if (getObjectId) {
|
|
18
|
+
objectsById[getObjectId(content)] = content;
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
objects.push(content);
|
|
22
|
+
}
|
|
23
|
+
updateTimeout[source] = window.setTimeout(() => {
|
|
24
|
+
const objectToReturn = getObjectId ? Object.values(objectsById) : objects;
|
|
25
|
+
onUpdate(objectToReturn);
|
|
26
|
+
}, timeout);
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export default debounceWebsocketMessages;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getLayersAsFlatArray.d.ts","sourceRoot":"","sources":["../../../src/common/utils/getLayersAsFlatArray.ts"],"names":[],"mappings":"AACA,QAAA,MAAM,oBAAoB,kBAAmB,GAAG,GAAG,GAAG,EAAE,KAAG,GAAG,EAY7D,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// TODO: I use any to avoid circular dependency with common/layers/layer
|
|
2
|
+
const getLayersAsFlatArray = (layersOrLayer) => {
|
|
3
|
+
let layers = layersOrLayer;
|
|
4
|
+
if (!Array.isArray(layers)) {
|
|
5
|
+
layers = [layersOrLayer];
|
|
6
|
+
}
|
|
7
|
+
let flatLayers = [];
|
|
8
|
+
layers.forEach((layer) => {
|
|
9
|
+
flatLayers.push(layer);
|
|
10
|
+
const { children } = layer;
|
|
11
|
+
flatLayers = flatLayers.concat(getLayersAsFlatArray(children || []));
|
|
12
|
+
});
|
|
13
|
+
return flatLayers;
|
|
14
|
+
};
|
|
15
|
+
export default getLayersAsFlatArray;
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface Source {
|
|
2
|
+
attribution: string;
|
|
3
|
+
options: {
|
|
4
|
+
attribution: string;
|
|
5
|
+
};
|
|
6
|
+
}
|
|
7
|
+
export interface SourceCache {
|
|
8
|
+
used: boolean;
|
|
9
|
+
getSource: () => Source;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Return the copyright a Mapbox map.
|
|
13
|
+
* @param {mapboxgl.Map | maplibregl.Map} map A Mapbox map
|
|
14
|
+
* @ignore
|
|
15
|
+
*/
|
|
16
|
+
declare const getMapboxMapCopyrights: (map: mapboxgl.Map | maplibregl.Map) => any[];
|
|
17
|
+
export default getMapboxMapCopyrights;
|
|
18
|
+
//# sourceMappingURL=getMapboxMapCopyrights.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getMapboxMapCopyrights.d.ts","sourceRoot":"","sources":["../../../src/common/utils/getMapboxMapCopyrights.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,MAAM;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC;CACH;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,SAAS,EAAE,MAAM,MAAM,CAAC;CACzB;AAED;;;;GAIG;AACH,QAAA,MAAM,sBAAsB,QAAS,YAAY,GAAG,cAAc,UA8BjE,CAAC;AAEF,eAAe,sBAAsB,CAAC"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import removeDuplicate from './removeDuplicate';
|
|
2
|
+
/**
|
|
3
|
+
* Return the copyright a Mapbox map.
|
|
4
|
+
* @param {mapboxgl.Map | maplibregl.Map} map A Mapbox map
|
|
5
|
+
* @ignore
|
|
6
|
+
*/
|
|
7
|
+
const getMapboxMapCopyrights = (map) => {
|
|
8
|
+
if (!map) {
|
|
9
|
+
return [];
|
|
10
|
+
}
|
|
11
|
+
// @ts-ignore
|
|
12
|
+
const { style } = map;
|
|
13
|
+
if (!style) {
|
|
14
|
+
return [];
|
|
15
|
+
}
|
|
16
|
+
const { sourceCaches } = style;
|
|
17
|
+
let copyrights = [];
|
|
18
|
+
Object.values(sourceCaches).forEach((sourceCache) => {
|
|
19
|
+
if (sourceCache.used) {
|
|
20
|
+
const source = sourceCache.getSource();
|
|
21
|
+
const attribution = // @ts-ignore
|
|
22
|
+
source.attribution || (source.options && source.options.attribution);
|
|
23
|
+
if (attribution) {
|
|
24
|
+
copyrights = copyrights.concat(attribution.replace(/©/g, '©').split(/(<a.*?<\/a>)/));
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
return removeDuplicate(copyrights);
|
|
29
|
+
};
|
|
30
|
+
export default getMapboxMapCopyrights;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { RenderFunction } from 'ol/layer/Layer';
|
|
2
|
+
import type { MapboxLayer } from '../../ol';
|
|
3
|
+
/**
|
|
4
|
+
* Return the render function fo the olLayer of a MaplibreLayer
|
|
5
|
+
*/
|
|
6
|
+
export default function getMapboxRender(mapoxLayer: MapboxLayer): RenderFunction;
|
|
7
|
+
//# sourceMappingURL=getMapboxRender.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getMapboxRender.d.ts","sourceRoot":"","sources":["../../../src/common/utils/getMapboxRender.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGhD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC5C;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,eAAe,CACrC,UAAU,EAAE,WAAW,GACtB,cAAc,CA4FhB"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { toLonLat } from 'ol/proj';
|
|
2
|
+
/**
|
|
3
|
+
* Return the render function fo the olLayer of a MaplibreLayer
|
|
4
|
+
*/
|
|
5
|
+
export default function getMapboxRender(mapoxLayer) {
|
|
6
|
+
// We cretae emptyDiv only in render finction to work with serverside rendering
|
|
7
|
+
let emptyDiv;
|
|
8
|
+
return (frameState) => {
|
|
9
|
+
const { map, mbMap, renderState, olLayer } = mapoxLayer;
|
|
10
|
+
if (!map || !mbMap) {
|
|
11
|
+
if (!emptyDiv) {
|
|
12
|
+
emptyDiv = document.createElement('div');
|
|
13
|
+
}
|
|
14
|
+
return emptyDiv;
|
|
15
|
+
}
|
|
16
|
+
let changed = false;
|
|
17
|
+
const canvas = mbMap.getCanvas();
|
|
18
|
+
const { viewState } = frameState;
|
|
19
|
+
const visible = olLayer === null || olLayer === void 0 ? void 0 : olLayer.getVisible();
|
|
20
|
+
if (renderState && (renderState === null || renderState === void 0 ? void 0 : renderState.visible) !== visible) {
|
|
21
|
+
canvas.style.display = visible ? 'block' : 'none';
|
|
22
|
+
renderState.visible = visible;
|
|
23
|
+
// Needed since mapbox-gl 1.9.0.
|
|
24
|
+
// Without you don't see others ol layers on top.
|
|
25
|
+
canvas.style.position = 'absolute';
|
|
26
|
+
}
|
|
27
|
+
const opacity = olLayer === null || olLayer === void 0 ? void 0 : olLayer.getOpacity();
|
|
28
|
+
if (canvas && renderState && renderState.opacity !== opacity) {
|
|
29
|
+
// @ts-ignore
|
|
30
|
+
canvas.style.opacity = opacity;
|
|
31
|
+
renderState.opacity = opacity;
|
|
32
|
+
}
|
|
33
|
+
// adjust view parameters in mapbox
|
|
34
|
+
const { rotation } = viewState;
|
|
35
|
+
if (renderState && renderState.rotation !== rotation) {
|
|
36
|
+
mbMap.rotateTo((-(rotation || 0) * 180) / Math.PI, {
|
|
37
|
+
animate: false,
|
|
38
|
+
});
|
|
39
|
+
changed = true;
|
|
40
|
+
renderState.rotation = rotation;
|
|
41
|
+
}
|
|
42
|
+
if (renderState &&
|
|
43
|
+
renderState.center &&
|
|
44
|
+
(renderState.zoom !== viewState.zoom ||
|
|
45
|
+
renderState.center[0] !== viewState.center[0] ||
|
|
46
|
+
renderState.center[1] !== viewState.center[1])) {
|
|
47
|
+
mbMap.jumpTo({
|
|
48
|
+
center: toLonLat(viewState.center),
|
|
49
|
+
zoom: viewState.zoom - 1,
|
|
50
|
+
});
|
|
51
|
+
changed = true;
|
|
52
|
+
renderState.zoom = viewState.zoom;
|
|
53
|
+
renderState.center = viewState.center;
|
|
54
|
+
}
|
|
55
|
+
const size = map.getSize() || [0, 0];
|
|
56
|
+
if (renderState &&
|
|
57
|
+
renderState.size &&
|
|
58
|
+
(renderState.size[0] !== size[0] || renderState.size[1] !== size[1])) {
|
|
59
|
+
changed = true;
|
|
60
|
+
renderState.size = size;
|
|
61
|
+
}
|
|
62
|
+
// cancel the scheduled update & trigger synchronous redraw
|
|
63
|
+
// see https://github.com/mapbox/mapbox-gl-js/issues/7893#issue-408992184
|
|
64
|
+
// NOTE: THIS MIGHT BREAK WHEN UPDATING MAPBOX
|
|
65
|
+
// @ts-ignore
|
|
66
|
+
if (mbMap && mbMap.style && mbMap.isStyleLoaded() && changed) {
|
|
67
|
+
try {
|
|
68
|
+
// @ts-ignore
|
|
69
|
+
if (mbMap._frame) {
|
|
70
|
+
// @ts-ignore
|
|
71
|
+
mbMap._frame.cancel();
|
|
72
|
+
// @ts-ignore
|
|
73
|
+
mbMap._frame = null;
|
|
74
|
+
}
|
|
75
|
+
// @ts-ignore
|
|
76
|
+
mbMap._render();
|
|
77
|
+
}
|
|
78
|
+
catch (err) {
|
|
79
|
+
// ignore render errors because it's probably related to
|
|
80
|
+
// a render during an update of the style.
|
|
81
|
+
// eslint-disable-next-line no-console
|
|
82
|
+
console.warn(err);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
return mbMap.getContainer();
|
|
86
|
+
};
|
|
87
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { RenderFunction } from 'ol/layer/Layer';
|
|
2
|
+
import type { MaplibreLayer } from '../../ol';
|
|
3
|
+
/**
|
|
4
|
+
* Return the render function fo the olLayer of a MaplibreLayer
|
|
5
|
+
*/
|
|
6
|
+
export default function getMaplibreRender(maplibreLayer: MaplibreLayer): RenderFunction;
|
|
7
|
+
//# sourceMappingURL=getMaplibreRender.d.ts.map
|