mobility-toolbox-js 2.0.0-beta.1 → 2.0.0-beta.6
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/.babelrc +6 -0
- package/.esdoc.json +17 -0
- package/.eslintignore +1 -0
- package/.github/workflows/conventional-pr-title.yml +21 -0
- package/.github/workflows/cypress.yml +29 -0
- package/.github/workflows/nodejs.yml +28 -0
- package/.husky/commit-msg +4 -0
- package/.husky/post-checkout +4 -0
- package/.husky/post-merge +4 -0
- package/.husky/post-rebase +4 -0
- package/.husky/pre-commit +4 -0
- package/.neutrinorc.js +176 -0
- package/.nvmrc +1 -0
- package/CHANGELOG.md +10 -0
- package/LICENSE +21 -0
- package/Layer.js +2 -0
- package/Layer.js.map +7 -0
- package/README.md +7 -4
- package/__mocks__/mapbox-gl.js +81 -0
- package/__mocks__/maplibre-gl.js +81 -0
- package/commitlint.config.js +1 -0
- package/cypress/fixtures/example.json +5 -0
- package/cypress/integration/examples/api.spec.js +7 -0
- package/cypress/integration/examples/examples.spec.js +7 -0
- package/cypress/integration/examples/navigation.spec.js +29 -0
- package/cypress/plugins/index.js +21 -0
- package/cypress/support/commands.js +25 -0
- package/cypress/support/index.js +20 -0
- package/cypress.json +4 -0
- package/data/fetchRoute.json +292 -0
- package/data/fetchTrajectories.json +18 -0
- package/data/fetchTrajectoryById.json +3 -0
- package/data/fetchTrajectoryStations.json +18 -0
- package/data/stopsSearch.json +15 -0
- package/documentation.yml +4 -0
- package/esdoc/README.md +27 -0
- package/esdoc/plugins/MyPlugin.js +69 -0
- package/esdoc/plugins/dynamic-property-plugin/Plugin.js +50 -0
- package/esdoc/plugins/externals-plugin/Plugin.js +45 -0
- package/esdoc/plugins/externals-plugin/externals.js +96 -0
- package/global-setup.js +3 -0
- package/{ol/README.md → index.html} +0 -0
- package/indexweb.html +49 -0
- package/jest.config.js +5 -0
- package/package.json +34 -13
- package/pull_request_template.md +17 -0
- package/renovate.json +4 -0
- package/scripts/read-pkg-json.js +22 -0
- package/{api → src/api}/index.js +0 -1
- package/{api → src/api}/routing/RoutingAPI.js +0 -0
- package/{api → src/api}/routing/RoutingAPI.test.js +0 -0
- package/{api → src/api}/stops/StopsAPI.js +0 -0
- package/{api → src/api}/stops/StopsAPI.test.js +0 -0
- package/{api → src/api}/tralis/TralisAPI.js +1 -1
- package/{api → src/api}/tralis/TralisAPI.test.js +0 -0
- package/{api → src/api}/tralis/TralisAPIUtils.js +0 -0
- package/{api → src/api}/tralis/WebSocketConnector.js +0 -0
- package/{api → src/api}/tralis/WebSocketConnector.test.js +0 -0
- package/{api → src/api}/tralis/typedefs.js +0 -0
- 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 +93 -0
- package/{common → src/common}/Tracker.js +0 -0
- package/{common → src/common}/api/api.js +0 -0
- package/{common → src/common}/api/api.test.js +0 -0
- package/{common → src/common}/controls/Control.js +4 -1
- package/{common → src/common}/controls/Control.test.js +0 -0
- package/{common → src/common}/layers/Layer.js +18 -49
- package/{common → src/common}/layers/Layer.test.js +2 -106
- package/{common → src/common}/mixins/CopyrightMixin.js +0 -0
- package/{common → src/common}/mixins/SearchMixin.js +1 -1
- package/{common/mixins/TrackerLayerMixin.js → src/common/mixins/TralisLayerMixin.js} +380 -195
- package/src/common/styles/index.js +4 -0
- package/{common/utils/delayTrackerStyle.js → src/common/styles/trackerDefaultStyle.js} +8 -8
- package/src/common/styles/trackerDelayStyle.js +17 -0
- package/src/common/styles/trackerSimpleStyle.js +22 -0
- package/{common → src/common}/trackerConfig.js +0 -0
- package/{common → src/common}/trackerConfig.test.js +0 -13
- package/{common → src/common}/typedefs.js +0 -0
- package/{common → src/common}/utils/createTrackerFilters.js +0 -0
- package/{common → src/common}/utils/createTrackerFilters.test.js +0 -0
- package/{common → src/common}/utils/getMapboxMapCopyrights.js +1 -0
- package/{common → src/common}/utils/getMapboxMapCopyrights.test.js +0 -0
- package/{common → src/common}/utils/getMapboxStyleUrl.js +0 -0
- package/{common → src/common}/utils/getVehiclePosition.js +0 -0
- package/{common → src/common}/utils/index.js +2 -3
- package/{common → src/common}/utils/removeDuplicate.js +0 -0
- package/{common → src/common}/utils/removeDuplicate.test.js +0 -0
- package/src/common/utils/sortByDelay.js +23 -0
- package/{common → src/common}/utils/timeUtils.js +0 -0
- package/{common → src/common}/utils/timeUtils.test.js +0 -0
- package/src/doc/App.js +116 -0
- package/src/doc/App.scss +51 -0
- package/src/doc/_redirects +2 -0
- package/src/doc/components/CodeSandboxButton.js +103 -0
- package/src/doc/components/Documentation.js +40 -0
- package/src/doc/components/Esdoc/Anchor.js +57 -0
- package/src/doc/components/Esdoc/ClassDoc.js +272 -0
- package/src/doc/components/Esdoc/DeprecatedHTML.js +16 -0
- package/src/doc/components/Esdoc/DetailDocs.js +281 -0
- package/src/doc/components/Esdoc/DetailHTML.js +33 -0
- package/src/doc/components/Esdoc/DirectSubclassHTML.js +30 -0
- package/src/doc/components/Esdoc/DocBuilderUtils.js +694 -0
- package/src/doc/components/Esdoc/DocLinkHTML.js +62 -0
- package/src/doc/components/Esdoc/DocsLinkHTML.js +38 -0
- package/src/doc/components/Esdoc/Esdoc.js +63 -0
- package/src/doc/components/Esdoc/EsdocContent.js +51 -0
- package/src/doc/components/Esdoc/EsdocNavigation.js +13 -0
- package/src/doc/components/Esdoc/EsdocSearch.js +81 -0
- package/src/doc/components/Esdoc/ExperimentalHTML.js +17 -0
- package/src/doc/components/Esdoc/ExtendsChainHTML.js +32 -0
- package/src/doc/components/Esdoc/FileDocLinkHTML.js +60 -0
- package/src/doc/components/Esdoc/IdentifiersDoc.js +113 -0
- package/src/doc/components/Esdoc/IndirectSubclassHTML.js +30 -0
- package/src/doc/components/Esdoc/InheritedSummaryDoc.js +70 -0
- package/src/doc/components/Esdoc/InheritedSummaryHTML.js +38 -0
- package/src/doc/components/Esdoc/MixinClassesHTML.js +29 -0
- package/src/doc/components/Esdoc/NavDoc.js +112 -0
- package/src/doc/components/Esdoc/OverrideMethod.js +44 -0
- package/src/doc/components/Esdoc/OverrideMethodDescription.js +35 -0
- package/src/doc/components/Esdoc/Properties.js +89 -0
- package/src/doc/components/Esdoc/README.md +45 -0
- package/src/doc/components/Esdoc/SignatureHTML.js +123 -0
- package/src/doc/components/Esdoc/SingleDoc.js +31 -0
- package/src/doc/components/Esdoc/SummaryDoc.js +160 -0
- package/src/doc/components/Esdoc/SummaryHTML.js +96 -0
- package/src/doc/components/Esdoc/TypeDocLinkHTML.js +249 -0
- package/src/doc/components/Esdoc/css/identifiers.css +38 -0
- package/src/doc/components/Esdoc/css/search.css +76 -0
- package/src/doc/components/Esdoc/css/style.css +603 -0
- package/src/doc/components/Esdoc/index.js +7 -0
- package/src/doc/components/Example.js +153 -0
- package/src/doc/components/Examples.js +183 -0
- package/src/doc/components/Home.js +106 -0
- package/src/doc/components/TrackerExample.js +38 -0
- package/src/doc/components/esm.min.js +2 -0
- package/src/doc/components/examples/assets/tralis-live-map/index.js +11 -0
- package/src/doc/components/examples/assets/tralis-live-map/s1kreis.svg +105 -0
- package/src/doc/components/examples/assets/tralis-live-map/s20kreis.svg +101 -0
- package/src/doc/components/examples/assets/tralis-live-map/s2kreis.svg +95 -0
- package/src/doc/components/examples/assets/tralis-live-map/s3kreis.svg +95 -0
- package/src/doc/components/examples/assets/tralis-live-map/s4kreis.svg +95 -0
- package/src/doc/components/examples/assets/tralis-live-map/s6kreis.svg +95 -0
- package/src/doc/components/examples/assets/tralis-live-map/s7kreis.svg +95 -0
- package/src/doc/components/examples/assets/tralis-live-map/s8kreis.svg +93 -0
- package/src/doc/components/examples/assets/tralis-live-map/unknown.svg +107 -0
- package/src/doc/components/examples/mb-copyright.html +26 -0
- package/src/doc/components/examples/mb-copyright.js +37 -0
- package/src/doc/components/examples/mb-tracker.html +1 -0
- package/src/doc/components/examples/mb-tracker.js +39 -0
- package/src/doc/components/examples/mb-tracker.md +1 -0
- package/src/doc/components/examples/mb-tralis.html +1 -0
- package/src/doc/components/examples/mb-tralis.js +34 -0
- package/src/doc/components/examples/ol-copyright.html +26 -0
- package/src/doc/components/examples/ol-copyright.js +43 -0
- package/src/doc/components/examples/ol-mapbox-layer.html +1 -0
- package/src/doc/components/examples/ol-mapbox-layer.js +28 -0
- package/src/doc/components/examples/ol-mapbox-layer.md +0 -0
- package/src/doc/components/examples/ol-mapbox-style-layer.html +12 -0
- package/src/doc/components/examples/ol-mapbox-style-layer.js +44 -0
- package/src/doc/components/examples/ol-query.html +32 -0
- package/src/doc/components/examples/ol-query.js +83 -0
- package/src/doc/components/examples/ol-routing.html +26 -0
- package/src/doc/components/examples/ol-routing.js +59 -0
- package/src/doc/components/examples/ol-routing.md +1 -0
- package/src/doc/components/examples/ol-stop-finder.html +15 -0
- package/src/doc/components/examples/ol-stop-finder.js +31 -0
- package/src/doc/components/examples/ol-stop-finder.md +1 -0
- package/src/doc/components/examples/ol-tracker.html +1 -0
- package/src/doc/components/examples/ol-tracker.js +44 -0
- package/src/doc/components/examples/ol-tracker.md +1 -0
- package/src/doc/components/examples/ol-tralis.html +5 -0
- package/src/doc/components/examples/ol-tralis.js +57 -0
- package/src/doc/components/examples/tralis-live-map.html +1 -0
- package/src/doc/components/examples/tralis-live-map.js +51 -0
- package/src/doc/components/examples/tralis-live-map.md +3 -0
- package/src/doc/examples/assets/tralis-live-map/index.js +11 -0
- package/src/doc/examples/assets/tralis-live-map/s1kreis.svg +105 -0
- package/src/doc/examples/assets/tralis-live-map/s20kreis.svg +101 -0
- package/src/doc/examples/assets/tralis-live-map/s2kreis.svg +95 -0
- package/src/doc/examples/assets/tralis-live-map/s3kreis.svg +95 -0
- package/src/doc/examples/assets/tralis-live-map/s4kreis.svg +95 -0
- package/src/doc/examples/assets/tralis-live-map/s6kreis.svg +95 -0
- package/src/doc/examples/assets/tralis-live-map/s7kreis.svg +95 -0
- package/src/doc/examples/assets/tralis-live-map/s8kreis.svg +93 -0
- package/src/doc/examples/assets/tralis-live-map/unknown.svg +107 -0
- package/src/doc/examples/mb-copyright.html +26 -0
- package/src/doc/examples/mb-copyright.js +37 -0
- package/src/doc/examples/mb-tracker.html +1 -0
- package/src/doc/examples/mb-tracker.js +39 -0
- package/src/doc/examples/mb-tracker.md +1 -0
- package/src/doc/examples/mb-tralis.html +1 -0
- package/src/doc/examples/mb-tralis.js +34 -0
- package/src/doc/examples/ol-copyright.html +26 -0
- package/src/doc/examples/ol-copyright.js +43 -0
- package/src/doc/examples/ol-mapbox-layer.html +1 -0
- package/src/doc/examples/ol-mapbox-layer.js +28 -0
- package/src/doc/examples/ol-mapbox-layer.md +0 -0
- package/src/doc/examples/ol-mapbox-style-layer.html +12 -0
- package/src/doc/examples/ol-mapbox-style-layer.js +44 -0
- package/src/doc/examples/ol-query.html +32 -0
- package/src/doc/examples/ol-query.js +83 -0
- package/src/doc/examples/ol-routing.html +26 -0
- package/src/doc/examples/ol-routing.js +59 -0
- package/src/doc/examples/ol-routing.md +1 -0
- package/src/doc/examples/ol-stop-finder.html +15 -0
- package/src/doc/examples/ol-stop-finder.js +31 -0
- package/src/doc/examples/ol-stop-finder.md +1 -0
- package/src/doc/examples/ol-tracker.html +1 -0
- package/src/doc/examples/ol-tracker.js +44 -0
- package/src/doc/examples/ol-tracker.md +1 -0
- package/src/doc/examples/ol-tralis.html +5 -0
- package/src/doc/examples/ol-tralis.js +57 -0
- package/src/doc/examples/tralis-live-map.html +1 -0
- package/src/doc/examples/tralis-live-map.js +51 -0
- package/src/doc/examples/tralis-live-map.md +3 -0
- package/src/doc/examples.js +107 -0
- 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 +21 -0
- package/src/iife.js +7 -0
- package/{module.js → src/index.js} +3 -9
- package/{mapbox → src/mapbox}/controls/CopyrightControl.js +5 -1
- package/{mapbox → src/mapbox}/index.js +0 -2
- package/{mapbox → src/mapbox}/layers/Layer.js +0 -0
- package/{mapbox → src/mapbox}/layers/Layer.test.js +2 -2
- package/{mapbox/layers/TrackerLayer.js → src/mapbox/layers/TralisLayer.js} +71 -24
- package/src/mapbox/layers/TralisLayer.test.js +40 -0
- package/{mapbox → src/mapbox}/utils.js +0 -0
- package/src/ol/README.md +0 -0
- package/{ol → src/ol}/controls/CopyrightControl.js +4 -4
- package/{ol → src/ol}/controls/CopyrightControl.test.js +16 -16
- package/{ol → src/ol}/controls/RoutingControl.js +9 -7
- package/{ol → src/ol}/controls/RoutingControl.test.js +1 -1
- package/{ol → src/ol}/controls/StopFinderControl.js +8 -6
- package/{ol → src/ol}/controls/StopFinderControl.test.js +1 -1
- package/{ol → src/ol}/controls/snapshots/RoutingControlRouteGen10.json +0 -0
- package/{ol → src/ol}/controls/snapshots/RoutingControlRouteGen100.json +0 -0
- package/{ol → src/ol}/controls/snapshots/RoutingControlRouteGen30.json +0 -0
- package/{ol → src/ol}/controls/snapshots/RoutingControlRouteGen5.json +0 -0
- package/{ol → src/ol}/controls/snapshots/RoutingControlRouteOSM.json +0 -0
- package/{ol → src/ol}/controls/snapshots/RoutingControlStation1.json +0 -0
- package/{ol → src/ol}/controls/snapshots/RoutingControlStation2.json +0 -0
- package/{ol → src/ol}/index.js +3 -3
- package/{ol → src/ol}/layers/Layer.js +9 -0
- package/{ol → src/ol}/layers/Layer.test.js +22 -7
- package/{ol → src/ol}/layers/MapboxLayer.js +39 -44
- package/{ol → src/ol}/layers/MapboxLayer.test.js +5 -5
- package/{ol → src/ol}/layers/MapboxStyleLayer.js +0 -6
- package/{ol → src/ol}/layers/MapboxStyleLayer.test.js +22 -6
- package/src/ol/layers/MaplibreLayer.js +280 -0
- package/{ol → src/ol}/layers/RoutingLayer.js +0 -0
- package/{ol → src/ol}/layers/RoutingLayer.test.js +1 -1
- package/{ol/layers/TrackerLayer.js → src/ol/layers/TralisLayer.js} +96 -33
- package/{ol → src/ol}/layers/TralisLayer.test.js +1 -49
- package/{ol → src/ol}/layers/VectorLayer.js +0 -0
- package/{ol → src/ol}/layers/VectorLayer.test.js +1 -1
- package/{ol → src/ol}/layers/WMSLayer.js +0 -0
- package/{ol → src/ol}/layers/WMSLayer.test.js +6 -2
- package/src/ol/styles/fullTrajectoryDelayStyle.js +35 -0
- package/src/ol/styles/fullTrajectoryStyle.js +51 -0
- package/src/ol/styles/index.js +2 -0
- package/src/setupTests.js +15 -0
- package/webpack.config.js +6 -0
- package/api/trajserv/TrajservAPI.js +0 -71
- package/api/trajserv/TrajservAPI.test.js +0 -171
- package/api/trajserv/TrajservAPIUtils.js +0 -191
- package/api/trajserv/TrajservAPIUtils.test.js +0 -40
- package/api/trajserv/typedefs.js +0 -44
- package/common/mixins/MapMixin.js +0 -103
- package/common/mixins/TrajservLayerMixin.js +0 -544
- package/common/mixins/TralisLayerMixin.js +0 -402
- package/common/utils/simpleTrackerStyle.js +0 -18
- package/index.js +0 -2
- package/index.js.map +0 -1
- package/mapbox/Map.js +0 -87
- package/mapbox/layers/TrackerLayer.test.js +0 -68
- package/mapbox/layers/TrajservLayer.js +0 -114
- package/mapbox/layers/TrajservLayer.test.js +0 -90
- package/mapbox/layers/TralisLayer.js +0 -64
- package/ol/Map.js +0 -109
- package/ol/Map.test.js +0 -34
- package/ol/layers/TrackerLayer.test.js +0 -70
- package/ol/layers/TrajservLayer.js +0 -190
- package/ol/layers/TrajservLayer.test.js +0 -113
- package/ol/layers/TralisLayer.js +0 -177
package/.babelrc
ADDED
package/.esdoc.json
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"source": "./src",
|
|
3
|
+
"destination": "./apidoc",
|
|
4
|
+
"includes": ["\\.js$"],
|
|
5
|
+
"excludes": ["\\.test\\.js$", "doc/", "(u|U)tils"],
|
|
6
|
+
"plugins": [
|
|
7
|
+
{
|
|
8
|
+
"name": "esdoc-standard-plugin"
|
|
9
|
+
},
|
|
10
|
+
{ "name": "esdoc-ecmascript-proposal-plugin", "option": { "all": true } },
|
|
11
|
+
{
|
|
12
|
+
"name": "esdoc-publish-html-plugin"
|
|
13
|
+
},
|
|
14
|
+
{ "name": "./esdoc/plugins/dynamic-property-plugin/Plugin.js" },
|
|
15
|
+
{ "name": "./esdoc/plugins/externals-plugin/Plugin.js" }
|
|
16
|
+
]
|
|
17
|
+
}
|
package/.eslintignore
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
build/*
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
name: Check PR title
|
|
2
|
+
on:
|
|
3
|
+
pull_request:
|
|
4
|
+
types:
|
|
5
|
+
- opened
|
|
6
|
+
- reopened
|
|
7
|
+
- edited
|
|
8
|
+
- synchronize
|
|
9
|
+
|
|
10
|
+
jobs:
|
|
11
|
+
lint:
|
|
12
|
+
runs-on: ubuntu-latest
|
|
13
|
+
steps:
|
|
14
|
+
- uses: aslafy-z/conventional-pr-title-action@v2.2.0
|
|
15
|
+
with:
|
|
16
|
+
success-state: Title follows the specification.
|
|
17
|
+
failure-state: Title does not follow the specification.
|
|
18
|
+
context-name: conventional-pr-title
|
|
19
|
+
preset: conventional-changelog-angular@latest
|
|
20
|
+
env:
|
|
21
|
+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
name: Cypress
|
|
2
|
+
|
|
3
|
+
on: [push]
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
build:
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
steps:
|
|
9
|
+
- uses: actions/checkout@v1
|
|
10
|
+
|
|
11
|
+
- uses: actions/setup-node@v1
|
|
12
|
+
with:
|
|
13
|
+
node-version: '14.x'
|
|
14
|
+
|
|
15
|
+
- name: Get yarn cache
|
|
16
|
+
id: yarn-cache
|
|
17
|
+
run: echo "::set-output name=dir::$(yarn cache dir)"
|
|
18
|
+
|
|
19
|
+
- uses: actions/cache@v1
|
|
20
|
+
with:
|
|
21
|
+
path: ${{ steps.yarn-cache.outputs.dir }}
|
|
22
|
+
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
|
|
23
|
+
restore-keys: |
|
|
24
|
+
${{ runner.os }}-yarn-
|
|
25
|
+
- name: Install dependencies
|
|
26
|
+
run: yarn install --frozen-lockfile
|
|
27
|
+
|
|
28
|
+
- name: Run and record Cypress tests
|
|
29
|
+
run: yarn run cy:test
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
name: Build
|
|
2
|
+
|
|
3
|
+
on: [push]
|
|
4
|
+
|
|
5
|
+
jobs:
|
|
6
|
+
build:
|
|
7
|
+
runs-on: ubuntu-latest
|
|
8
|
+
|
|
9
|
+
strategy:
|
|
10
|
+
matrix:
|
|
11
|
+
node-version: [14.x]
|
|
12
|
+
|
|
13
|
+
steps:
|
|
14
|
+
- uses: actions/checkout@v1
|
|
15
|
+
- name: Use Node.js ${{ matrix.node-version }}
|
|
16
|
+
uses: actions/setup-node@v1
|
|
17
|
+
with:
|
|
18
|
+
node-version: ${{ matrix.node-version }}
|
|
19
|
+
- name: yarn install, build, and test
|
|
20
|
+
run: |
|
|
21
|
+
echo '[]' > src/doc/components/Esdoc/index.json
|
|
22
|
+
npm install -g yarn
|
|
23
|
+
yarn install
|
|
24
|
+
yarn lint
|
|
25
|
+
yarn test
|
|
26
|
+
yarn build
|
|
27
|
+
env:
|
|
28
|
+
CI: true
|
package/.neutrinorc.js
ADDED
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
const react = require('@neutrinojs/react');
|
|
2
|
+
const library = require('@neutrinojs/library');
|
|
3
|
+
const copy = require('@neutrinojs/copy');
|
|
4
|
+
const jest = require('@neutrinojs/jest');
|
|
5
|
+
const styles = require('@neutrinojs/style-loader');
|
|
6
|
+
const merge = require('deepmerge');
|
|
7
|
+
const path = require('path');
|
|
8
|
+
|
|
9
|
+
const webpackDevServer = (neutrino) => {
|
|
10
|
+
neutrino.config.watchOptions({
|
|
11
|
+
ignored: /node_modules/,
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
if (process.env.REACT_APP_LIB_MODE) {
|
|
16
|
+
module.exports = {
|
|
17
|
+
options: {
|
|
18
|
+
root: __dirname,
|
|
19
|
+
mains: {
|
|
20
|
+
index: './index.js',
|
|
21
|
+
},
|
|
22
|
+
},
|
|
23
|
+
use: [
|
|
24
|
+
(neutrino) => {
|
|
25
|
+
neutrino.config.output
|
|
26
|
+
.globalObject('this') // will prevent `window`
|
|
27
|
+
.end()
|
|
28
|
+
.module.rule('worker')
|
|
29
|
+
.test(neutrino.regexFromExtensions(['worker.js']))
|
|
30
|
+
.use('worker')
|
|
31
|
+
.loader(require.resolve('worker-loader'))
|
|
32
|
+
.options({
|
|
33
|
+
// See: https://github.com/webpack-contrib/worker-loader#options
|
|
34
|
+
});
|
|
35
|
+
},
|
|
36
|
+
library({
|
|
37
|
+
name: 'mobility-toolbox-js',
|
|
38
|
+
targets: {
|
|
39
|
+
browsers: [
|
|
40
|
+
'last 2 Chrome versions',
|
|
41
|
+
'last 2 Firefox versions',
|
|
42
|
+
'last 2 Edge versions',
|
|
43
|
+
'last 2 Opera versions',
|
|
44
|
+
'last 2 Safari versions',
|
|
45
|
+
'last 2 iOS versions',
|
|
46
|
+
'ie 11',
|
|
47
|
+
],
|
|
48
|
+
},
|
|
49
|
+
}),
|
|
50
|
+
jest({
|
|
51
|
+
testRegex: 'src/.*.test.js$',
|
|
52
|
+
coveragePathIgnorePatterns: ['src/doc/'],
|
|
53
|
+
coverageReporters: ['text', 'html'],
|
|
54
|
+
snapshotSerializers: ['jest-serializer-html'],
|
|
55
|
+
setupFilesAfterEnv: ['<rootDir>/src/setupTests.js'],
|
|
56
|
+
globalSetup: './global-setup.js',
|
|
57
|
+
transformIgnorePatterns: [
|
|
58
|
+
'/node_modules/(?!(ol|ol-mapbox-style|geotiff)/).*/',
|
|
59
|
+
],
|
|
60
|
+
}),
|
|
61
|
+
(neutrino) => {
|
|
62
|
+
if (process.env.NODE_ENV === 'test') {
|
|
63
|
+
neutrino.config.module
|
|
64
|
+
.rule('compile')
|
|
65
|
+
.use('babel')
|
|
66
|
+
.tap((options) =>
|
|
67
|
+
merge(options, {
|
|
68
|
+
env: {
|
|
69
|
+
test: {
|
|
70
|
+
plugins: ['@babel/plugin-transform-runtime'], // async/await
|
|
71
|
+
},
|
|
72
|
+
},
|
|
73
|
+
}),
|
|
74
|
+
);
|
|
75
|
+
}
|
|
76
|
+
},
|
|
77
|
+
copy({
|
|
78
|
+
patterns: [
|
|
79
|
+
{
|
|
80
|
+
from: path.join(__dirname, 'README.md'),
|
|
81
|
+
to: path.join(__dirname, 'build/README.md'),
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
from: path.join(__dirname, 'src/api'),
|
|
85
|
+
to: path.join(__dirname, 'build/api'),
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
from: path.join(__dirname, 'src/common'),
|
|
89
|
+
to: path.join(__dirname, 'build/common'),
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
from: path.join(__dirname, 'src/ol'),
|
|
93
|
+
to: path.join(__dirname, 'build/ol'),
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
from: path.join(__dirname, 'src/mapbox'),
|
|
97
|
+
to: path.join(__dirname, 'build/mapbox'),
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
from: path.join(__dirname, 'package.json'),
|
|
101
|
+
to: path.join(__dirname, 'build/package.json'),
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
from: path.join(__dirname, 'src/index.js'),
|
|
105
|
+
to: path.join(__dirname, 'build/module.js'),
|
|
106
|
+
},
|
|
107
|
+
],
|
|
108
|
+
}),
|
|
109
|
+
],
|
|
110
|
+
};
|
|
111
|
+
} else {
|
|
112
|
+
module.exports = {
|
|
113
|
+
options: {
|
|
114
|
+
root: __dirname,
|
|
115
|
+
mains: {
|
|
116
|
+
index: 'doc/index.js',
|
|
117
|
+
},
|
|
118
|
+
},
|
|
119
|
+
use: [
|
|
120
|
+
react({
|
|
121
|
+
html: {
|
|
122
|
+
title: 'mobility-toolbox-js',
|
|
123
|
+
favicon: 'src/doc/img/favico.ico',
|
|
124
|
+
},
|
|
125
|
+
targets: {
|
|
126
|
+
browsers: [
|
|
127
|
+
'last 2 Chrome versions',
|
|
128
|
+
'last 2 Firefox versions',
|
|
129
|
+
'last 2 Edge versions',
|
|
130
|
+
'last 2 Opera versions',
|
|
131
|
+
'last 2 Safari versions',
|
|
132
|
+
'last 2 iOS versions',
|
|
133
|
+
'ie 11',
|
|
134
|
+
],
|
|
135
|
+
},
|
|
136
|
+
style: {
|
|
137
|
+
// Override the default file extension of `.css` if needed
|
|
138
|
+
test: /\.(css|sass|scss)$/,
|
|
139
|
+
modulesTest: /\.module\.(css|sass|scss)$/,
|
|
140
|
+
loaders: [
|
|
141
|
+
// Define loaders as objects. Note: loaders must be specified in reverse order.
|
|
142
|
+
// ie: for the loaders below the actual execution order would be:
|
|
143
|
+
// input file -> sass-loader -> postcss-loader -> css-loader -> style-loader/mini-css-extract-plugin
|
|
144
|
+
{
|
|
145
|
+
loader: 'postcss-loader',
|
|
146
|
+
options: {
|
|
147
|
+
plugins: [require('autoprefixer')],
|
|
148
|
+
},
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
loader: 'sass-loader',
|
|
152
|
+
useId: 'sass',
|
|
153
|
+
},
|
|
154
|
+
],
|
|
155
|
+
},
|
|
156
|
+
}),
|
|
157
|
+
webpackDevServer,
|
|
158
|
+
copy({
|
|
159
|
+
patterns: [
|
|
160
|
+
{
|
|
161
|
+
from: path.join(__dirname, 'README.md'),
|
|
162
|
+
to: path.join(__dirname, 'build/README.md'),
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
from: path.join(__dirname, 'src/doc/examples'),
|
|
166
|
+
to: path.join(__dirname, 'build/examples'),
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
from: path.join(__dirname, 'src/doc/_redirects'),
|
|
170
|
+
to: path.join(__dirname, 'build/'),
|
|
171
|
+
},
|
|
172
|
+
],
|
|
173
|
+
}),
|
|
174
|
+
],
|
|
175
|
+
};
|
|
176
|
+
}
|
package/.nvmrc
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
14
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
|
+
|
|
5
|
+
## [2.0.0](https://github.com/geops/mobility-toolbox-js/compare/v1.7.5...v2.0.0) (2022-06-20)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* use standard-version for automatic versioning and changelog ([#167](https://github.com/geops/mobility-toolbox-js/issues/167)) ([045ad0b](https://github.com/geops/mobility-toolbox-js/commit/045ad0b533aaa56d84b90178de8e6aa18c2cbd89))
|
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2020 geOps
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/Layer.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{unByKey as r}from"ol/Observable";import h from"ol/layer/Group";import l from"../../common/layers/Layer";class t extends l{constructor(e){super(e),this.olLayer&&this.olLayer.setVisible(this.visible)}defineProperties(e){super.defineProperties(e),Object.defineProperties(this,{olLayer:{value:e.olLayer,writable:!0},olListenersKeys:{value:[]}})}init(e){if(super.init(e),!!this.map&&(this.map&&this.olLayer&&this.map.addLayer(this.olLayer),this.olListenersKeys.push(this.map.getLayers().on("remove",i=>{i.element===this.olLayer&&this.terminate()})),(this.isClickActive||this.isHoverActive)&&(this.toggleVisibleListeners(),this.olListenersKeys.push(this.on("change:visible",this.toggleVisibleListeners))),this.copyrights&&this.olLayer)){const i=this.copyrights||[];this.olLayer instanceof h?this.olLayer.getLayers().getArray().forEach(s=>{s.getSource().setAttributions(i)}):this.olLayer.getSource&&this.olLayer.getSource().setAttributions(i)}}terminate(){r(this.olListenersKeys),this.map&&this.olLayer&&this.map.removeLayer(this.olLayer),super.terminate()}setVisible(e,i=!1,s=!1,o=!1){e!==this.visible&&(super.setVisible(e,i,s,o),this.olLayer&&this.olLayer.setVisible(this.visible))}toggleVisibleListeners(){this.isClickListenerKey&&this.isHoverListenerKey&&[this.isClickListenerKey,this.isHoverListenerKey].forEach(e=>{const i=this.olListenersKeys.indexOf(e);i>-1&&this.olListenersKeys.splice(i,1),r([this.isHoverListenerKey,this.isClickListenerKey])}),this.visible&&(this.isClickActive&&(this.isClickListenerKey=this.map.on("singleclick",this.onUserClickCallback)),this.isHoverActive&&(this.isHoverListenerKey=this.map.on("pointermove",this.onUserMoveCallback)),this.olListenersKeys.push(this.isClickListenerKey,this.isHoverListenerKey))}clone(e){return new t({...this.options,...e})}}export default t;
|
|
2
|
+
//# sourceMappingURL=Layer.js.map
|
package/Layer.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["src/ol/layers/Layer.js"],
|
|
4
|
+
"sourcesContent": ["import { unByKey } from 'ol/Observable';\nimport Group from 'ol/layer/Group';\nimport LayerCommon from '../../common/layers/Layer';\n\n/**\n * A class representing a layer to display on an OpenLayers map.\n *\n * @example\n * import { Layer } from 'mobility-toolbox-js/ol';\n *\n * const layer = new Layer({\n * olLayer: ...,\n * });\n *\n * @see <a href=\"/example/ol-map\">Map example</a>\n *\n * @classproperty {ol/Map~Map} map - The map where the layer is displayed.\n * @extends {Layer}\n */\nclass Layer extends LayerCommon {\n /**\n * Constructor.\n *\n * @param {Object} options\n * @param {ol/layer/Layer~Layer} options.olLayer The layer (required).\n * @param {string} [options.name=uuid()] Layer name. Default use a generated uuid.\n * @param {string} [options.key=uuid().toLowerCase()] Layer key, will use options.name.toLowerCase() if not specified.\n * @param {string} [options.copyright=undefined] Copyright-Statement.\n * @param {Array<Layer>} [options.children=[]] Sublayers.\n * @param {Object} [options.properties={}] Application-specific layer properties.\n * @param {boolean} [options.visible=true] If true this layer is the currently visible layer on the map.\n * @param {boolean} [options.isBaseLayer=false] If true this layer is a baseLayer.\n * @param {boolean} [options.isQueryable=true] If true feature information can be queried by the react-spatial LayerService. Default is true.\n * @param {boolean} [options.isClickActive=true] If true feature information will be queried on 'singleclick' event. All results will be passed to function registered using `onClick` function. Default is true.\n */\n constructor(options) {\n super(options);\n\n if (this.olLayer) {\n this.olLayer.setVisible(this.visible);\n }\n }\n\n /**\n * Define layer's properties.\n *\n * @ignore\n */\n defineProperties(options) {\n super.defineProperties(options);\n Object.defineProperties(this, {\n olLayer: { value: options.olLayer, writable: true },\n olListenersKeys: {\n value: [],\n },\n });\n }\n\n /**\n * Initialize the layer and listen to feature clicks.\n * @param {ol/Map~Map} map\n */\n init(map) {\n super.init(map);\n\n if (!this.map) {\n return;\n }\n\n if (this.map && this.olLayer) {\n this.map.addLayer(this.olLayer);\n }\n\n this.olListenersKeys.push(\n this.map.getLayers().on('remove', (evt) => {\n if (evt.element === this.olLayer) {\n this.terminate();\n }\n }),\n );\n\n if (this.isClickActive || this.isHoverActive) {\n this.toggleVisibleListeners();\n this.olListenersKeys.push(\n this.on('change:visible', this.toggleVisibleListeners),\n );\n }\n\n // We set the copyright to the source used by the layer.\n if (this.copyrights && this.olLayer) {\n const attributions = this.copyrights || [];\n if (this.olLayer instanceof Group) {\n this.olLayer\n .getLayers()\n .getArray()\n .forEach((layer) => {\n layer.getSource().setAttributions(attributions);\n });\n } else if (this.olLayer.getSource) {\n this.olLayer.getSource().setAttributions(attributions);\n }\n }\n }\n\n /**\n * Terminate what was initialized in init function. Remove layer, events...\n */\n terminate() {\n unByKey(this.olListenersKeys);\n\n if (this.map && this.olLayer) {\n this.map.removeLayer(this.olLayer);\n }\n\n super.terminate();\n }\n\n /**\n * Change the visibility of the layer\n *\n * @param {boolean} visible Defines the visibility of the layer\n * @param {boolean} [stopPropagationDown]\n * @param {boolean} [stopPropagationUp]\n * @param {boolean} [stopPropagationSiblings]\n */\n setVisible(\n visible,\n stopPropagationDown = false,\n stopPropagationUp = false,\n stopPropagationSiblings = false,\n ) {\n if (visible === this.visible) {\n return;\n }\n\n super.setVisible(\n visible,\n stopPropagationDown,\n stopPropagationUp,\n stopPropagationSiblings,\n );\n\n if (this.olLayer) {\n this.olLayer.setVisible(this.visible);\n }\n }\n\n /**\n * Toggle listeners needed when a layer is avisible or not.\n * @private\n */\n toggleVisibleListeners() {\n // Remove previous event\n if (this.isClickListenerKey && this.isHoverListenerKey) {\n [this.isClickListenerKey, this.isHoverListenerKey].forEach((key) => {\n const index = this.olListenersKeys.indexOf(key);\n if (index > -1) {\n this.olListenersKeys.splice(index, 1);\n }\n unByKey([this.isHoverListenerKey, this.isClickListenerKey]);\n });\n }\n\n if (this.visible) {\n if (this.isClickActive) {\n this.isClickListenerKey = this.map.on(\n 'singleclick',\n this.onUserClickCallback,\n );\n }\n if (this.isHoverActive) {\n this.isHoverListenerKey = this.map.on(\n 'pointermove',\n this.onUserMoveCallback,\n );\n }\n this.olListenersKeys.push(\n this.isClickListenerKey,\n this.isHoverListenerKey,\n );\n }\n }\n\n /**\n * Create a copy of the Layer.\n * @param {Object} newOptions Options to override\n * @return {Layer} A Layer\n */\n clone(newOptions) {\n return new Layer({ ...this.options, ...newOptions });\n }\n}\nexport default Layer;\n"],
|
|
5
|
+
"mappings": "AAAA,wCACA,8BACA,yCAiBA,MAAM,SAAc,EAAY,CAgB9B,YAAY,EAAS,CACnB,MAAM,CAAO,EAET,KAAK,SACP,KAAK,QAAQ,WAAW,KAAK,OAAO,CAExC,CAOA,iBAAiB,EAAS,CACxB,MAAM,iBAAiB,CAAO,EAC9B,OAAO,iBAAiB,KAAM,CAC5B,QAAS,CAAE,MAAO,EAAQ,QAAS,SAAU,EAAK,EAClD,gBAAiB,CACf,MAAO,CAAC,CACV,CACF,CAAC,CACH,CAMA,KAAK,EAAK,CAGR,GAFA,MAAM,KAAK,CAAG,EAEV,EAAC,KAAK,KAIN,MAAK,KAAO,KAAK,SACnB,KAAK,IAAI,SAAS,KAAK,OAAO,EAGhC,KAAK,gBAAgB,KACnB,KAAK,IAAI,UAAU,EAAE,GAAG,SAAU,AAAC,GAAQ,CACzC,AAAI,EAAI,UAAY,KAAK,SACvB,KAAK,UAAU,CAEnB,CAAC,CACH,EAEI,MAAK,eAAiB,KAAK,gBAC7B,MAAK,uBAAuB,EAC5B,KAAK,gBAAgB,KACnB,KAAK,GAAG,iBAAkB,KAAK,sBAAsB,CACvD,GAIE,KAAK,YAAc,KAAK,SAAS,CACnC,KAAM,GAAe,KAAK,YAAc,CAAC,EACzC,AAAI,KAAK,kBAAmB,GAC1B,KAAK,QACF,UAAU,EACV,SAAS,EACT,QAAQ,AAAC,GAAU,CAClB,EAAM,UAAU,EAAE,gBAAgB,CAAY,CAChD,CAAC,EACM,KAAK,QAAQ,WACtB,KAAK,QAAQ,UAAU,EAAE,gBAAgB,CAAY,CAEzD,CACF,CAKA,WAAY,CACV,EAAQ,KAAK,eAAe,EAExB,KAAK,KAAO,KAAK,SACnB,KAAK,IAAI,YAAY,KAAK,OAAO,EAGnC,MAAM,UAAU,CAClB,CAUA,WACE,EACA,EAAsB,GACtB,EAAoB,GACpB,EAA0B,GAC1B,CACA,AAAI,IAAY,KAAK,SAIrB,OAAM,WACJ,EACA,EACA,EACA,CACF,EAEI,KAAK,SACP,KAAK,QAAQ,WAAW,KAAK,OAAO,EAExC,CAMA,wBAAyB,CAEvB,AAAI,KAAK,oBAAsB,KAAK,oBAClC,CAAC,KAAK,mBAAoB,KAAK,kBAAkB,EAAE,QAAQ,AAAC,GAAQ,CAClE,KAAM,GAAQ,KAAK,gBAAgB,QAAQ,CAAG,EAC9C,AAAI,EAAQ,IACV,KAAK,gBAAgB,OAAO,EAAO,CAAC,EAEtC,EAAQ,CAAC,KAAK,mBAAoB,KAAK,kBAAkB,CAAC,CAC5D,CAAC,EAGC,KAAK,SACH,MAAK,eACP,MAAK,mBAAqB,KAAK,IAAI,GACjC,cACA,KAAK,mBACP,GAEE,KAAK,eACP,MAAK,mBAAqB,KAAK,IAAI,GACjC,cACA,KAAK,kBACP,GAEF,KAAK,gBAAgB,KACnB,KAAK,mBACL,KAAK,kBACP,EAEJ,CAOA,MAAM,EAAY,CAChB,MAAO,IAAI,GAAM,CAAE,GAAG,KAAK,QAAS,GAAG,CAAW,CAAC,CACrD,CACF,CACA,cAAe",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/README.md
CHANGED
|
@@ -7,14 +7,17 @@ The tools in this library have been inspired by many projects realized for publi
|
|
|
7
7
|
[](https://github.com/geops/mobility-toolbox-js/actions?query=workflow%3ABuild)
|
|
8
8
|
[](https://app.netlify.com/sites/mobility-toolbox-js/deploys)
|
|
9
9
|
|
|
10
|
-
## Version 1.x.x
|
|
11
|
-
The master branch is now open for the version 2 development. The version 1 is now available in 1.x.x branch.
|
|
12
|
-
|
|
13
10
|
## Main Features
|
|
11
|
+
|
|
14
12
|
* Display [real-time vehicle positions and prognosis data](http://tracker.geops.ch/) on a map.
|
|
15
13
|
* Search for [stops and stations](https://maps2.trafimage.ch) all over the world.
|
|
16
14
|
* Get [precise geographic courses](https://geops.github.io/geops-routing-demo/) for all modes of transport.
|
|
17
15
|
* Generate beautiful maps for public transport, mobility and logistics
|
|
18
16
|
|
|
19
17
|
## Documentation and examples
|
|
20
|
-
|
|
18
|
+
|
|
19
|
+
Visit https://master--mobility-toolbox-js.netlify.app/
|
|
20
|
+
|
|
21
|
+
## Version 1.x.x
|
|
22
|
+
|
|
23
|
+
The master branch is now open for the version 2 development. The version 1 is still available in [1.x.x](https://github.com/geops/mobility-toolbox-js/tree/1.x.x) branch.
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
const callbacks = {};
|
|
2
|
+
|
|
3
|
+
/* eslint-disable class-methods-use-this */
|
|
4
|
+
class Map {
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.options = options;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
addLayer() {}
|
|
10
|
+
|
|
11
|
+
addSource() {}
|
|
12
|
+
|
|
13
|
+
isStyleLoaded() {}
|
|
14
|
+
|
|
15
|
+
getLayer() {}
|
|
16
|
+
|
|
17
|
+
getBounds() {
|
|
18
|
+
return {
|
|
19
|
+
toArray: () => [
|
|
20
|
+
[1, 2],
|
|
21
|
+
[1, 2],
|
|
22
|
+
],
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
getCanvas() {
|
|
27
|
+
return {
|
|
28
|
+
height: '100px',
|
|
29
|
+
width: '100px',
|
|
30
|
+
setAttribute: () => {},
|
|
31
|
+
removeAttribute: () => {},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
getCenter() {
|
|
36
|
+
return { lng: 0, lat: 0 };
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
getZoom() {}
|
|
40
|
+
|
|
41
|
+
getBearing() {
|
|
42
|
+
return 0;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
once() {}
|
|
46
|
+
|
|
47
|
+
on(type, func) {
|
|
48
|
+
if (!callbacks[type]) {
|
|
49
|
+
callbacks[type] = [];
|
|
50
|
+
}
|
|
51
|
+
callbacks[type].push(func);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
off(type, func) {
|
|
55
|
+
if (!callbacks[type]) {
|
|
56
|
+
callbacks[type] = [];
|
|
57
|
+
}
|
|
58
|
+
const index = callbacks[type].indexOf(func);
|
|
59
|
+
if (index > -1) {
|
|
60
|
+
callbacks[type].splice(index, 1);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
fire(type, evt) {
|
|
65
|
+
if (!callbacks[type]) {
|
|
66
|
+
callbacks[type] = [];
|
|
67
|
+
}
|
|
68
|
+
callbacks[type].forEach((callback) => callback(evt));
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
loaded() {}
|
|
72
|
+
|
|
73
|
+
remove() {}
|
|
74
|
+
|
|
75
|
+
unproject() {
|
|
76
|
+
return { lng: 0, lat: 0 };
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
module.exports = {
|
|
80
|
+
Map,
|
|
81
|
+
};
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
const callbacks = {};
|
|
2
|
+
|
|
3
|
+
/* eslint-disable class-methods-use-this */
|
|
4
|
+
class Map {
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.options = options;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
addLayer() {}
|
|
10
|
+
|
|
11
|
+
addSource() {}
|
|
12
|
+
|
|
13
|
+
isStyleLoaded() {}
|
|
14
|
+
|
|
15
|
+
getLayer() {}
|
|
16
|
+
|
|
17
|
+
getBounds() {
|
|
18
|
+
return {
|
|
19
|
+
toArray: () => [
|
|
20
|
+
[1, 2],
|
|
21
|
+
[1, 2],
|
|
22
|
+
],
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
getCanvas() {
|
|
27
|
+
return {
|
|
28
|
+
height: '100px',
|
|
29
|
+
width: '100px',
|
|
30
|
+
setAttribute: () => {},
|
|
31
|
+
removeAttribute: () => {},
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
getCenter() {
|
|
36
|
+
return { lng: 0, lat: 0 };
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
getZoom() {}
|
|
40
|
+
|
|
41
|
+
getBearing() {
|
|
42
|
+
return 0;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
once() {}
|
|
46
|
+
|
|
47
|
+
on(type, func) {
|
|
48
|
+
if (!callbacks[type]) {
|
|
49
|
+
callbacks[type] = [];
|
|
50
|
+
}
|
|
51
|
+
callbacks[type].push(func);
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
off(type, func) {
|
|
55
|
+
if (!callbacks[type]) {
|
|
56
|
+
callbacks[type] = [];
|
|
57
|
+
}
|
|
58
|
+
const index = callbacks[type].indexOf(func);
|
|
59
|
+
if (index > -1) {
|
|
60
|
+
callbacks[type].splice(index, 1);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
fire(type, evt) {
|
|
65
|
+
if (!callbacks[type]) {
|
|
66
|
+
callbacks[type] = [];
|
|
67
|
+
}
|
|
68
|
+
callbacks[type].forEach((callback) => callback(evt));
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
loaded() {}
|
|
72
|
+
|
|
73
|
+
remove() {}
|
|
74
|
+
|
|
75
|
+
unproject() {
|
|
76
|
+
return { lng: 0, lat: 0 };
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
module.exports = {
|
|
80
|
+
Map,
|
|
81
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = { extends: ['@commitlint/config-conventional'] };
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
// / <reference types="cypress" />
|
|
2
|
+
|
|
3
|
+
context('Navigation', () => {
|
|
4
|
+
beforeEach(() => {
|
|
5
|
+
cy.visit('');
|
|
6
|
+
cy.get('header').contains('API').click();
|
|
7
|
+
cy.get('header').contains('Examples').click();
|
|
8
|
+
});
|
|
9
|
+
|
|
10
|
+
it("cy.go() - go back or forward in the browser's history", () => {
|
|
11
|
+
// https://on.cypress.io/go
|
|
12
|
+
|
|
13
|
+
cy.location('pathname').should('include', 'examples');
|
|
14
|
+
|
|
15
|
+
cy.go('back');
|
|
16
|
+
cy.location('pathname').should('include', 'api');
|
|
17
|
+
|
|
18
|
+
cy.go('forward');
|
|
19
|
+
cy.location('pathname').should('include', 'examples');
|
|
20
|
+
|
|
21
|
+
// clicking back
|
|
22
|
+
cy.go(-1);
|
|
23
|
+
cy.location('pathname').should('include', 'api');
|
|
24
|
+
|
|
25
|
+
// clicking forward
|
|
26
|
+
cy.go(1);
|
|
27
|
+
cy.location('pathname').should('include', 'examples');
|
|
28
|
+
});
|
|
29
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/// <reference types="cypress" />
|
|
2
|
+
// ***********************************************************
|
|
3
|
+
// This example plugins/index.js can be used to load plugins
|
|
4
|
+
//
|
|
5
|
+
// You can change the location of this file or turn off loading
|
|
6
|
+
// the plugins file with the 'pluginsFile' configuration option.
|
|
7
|
+
//
|
|
8
|
+
// You can read more here:
|
|
9
|
+
// https://on.cypress.io/plugins-guide
|
|
10
|
+
// ***********************************************************
|
|
11
|
+
|
|
12
|
+
// This function is called when a project is opened or re-opened (e.g. due to
|
|
13
|
+
// the project's config changing)
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @type {Cypress.PluginConfig}
|
|
17
|
+
*/
|
|
18
|
+
module.exports = (on, config) => {
|
|
19
|
+
// `on` is used to hook into various events Cypress emits
|
|
20
|
+
// `config` is the resolved Cypress config
|
|
21
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
// ***********************************************
|
|
2
|
+
// This example commands.js shows you how to
|
|
3
|
+
// create various custom commands and overwrite
|
|
4
|
+
// existing commands.
|
|
5
|
+
//
|
|
6
|
+
// For more comprehensive examples of custom
|
|
7
|
+
// commands please read more here:
|
|
8
|
+
// https://on.cypress.io/custom-commands
|
|
9
|
+
// ***********************************************
|
|
10
|
+
//
|
|
11
|
+
//
|
|
12
|
+
// -- This is a parent command --
|
|
13
|
+
// Cypress.Commands.add("login", (email, password) => { ... })
|
|
14
|
+
//
|
|
15
|
+
//
|
|
16
|
+
// -- This is a child command --
|
|
17
|
+
// Cypress.Commands.add("drag", { prevSubject: 'element'}, (subject, options) => { ... })
|
|
18
|
+
//
|
|
19
|
+
//
|
|
20
|
+
// -- This is a dual command --
|
|
21
|
+
// Cypress.Commands.add("dismiss", { prevSubject: 'optional'}, (subject, options) => { ... })
|
|
22
|
+
//
|
|
23
|
+
//
|
|
24
|
+
// -- This will overwrite an existing command --
|
|
25
|
+
// Cypress.Commands.overwrite("visit", (originalFn, url, options) => { ... })
|