mobility-toolbox-js 2.0.0-beta.46 → 2.0.0-beta.47
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/api/RealtimeAPI.d.ts +80 -64
- package/api/RealtimeAPI.d.ts.map +1 -1
- package/api/RealtimeAPI.js +58 -45
- package/api/RoutingAPI.d.ts +2 -2
- package/api/RoutingAPI.d.ts.map +1 -1
- package/api/RoutingAPI.js +1 -1
- package/api/StopsAPI.d.ts +14 -12
- package/api/StopsAPI.d.ts.map +1 -1
- package/api/StopsAPI.js +7 -9
- package/api/typedefs.d.ts +84 -10
- package/api/typedefs.d.ts.map +1 -1
- package/api/typedefs.js +3 -1
- package/common/api/WebSocketAPI.d.ts +80 -24
- package/common/api/WebSocketAPI.d.ts.map +1 -1
- package/common/api/WebSocketAPI.js +28 -16
- package/common/controls/{Control.d.ts → ControlCommon.d.ts} +21 -19
- package/common/controls/ControlCommon.d.ts.map +1 -0
- package/common/controls/{Control.js → ControlCommon.js} +21 -8
- 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 +54 -0
- package/common/controls/StopFinderControlCommon.d.ts.map +1 -0
- package/common/{mixins/StopFinderMixin.js → controls/StopFinderControlCommon.js} +25 -38
- package/common/layers/{Layer.d.ts → LayerCommon.d.ts} +34 -21
- package/common/layers/LayerCommon.d.ts.map +1 -0
- package/common/layers/{Layer.js → LayerCommon.js} +15 -9
- package/common/mixins/RealtimeLayerMixin.d.ts +243 -19
- package/common/mixins/RealtimeLayerMixin.d.ts.map +1 -1
- package/common/mixins/RealtimeLayerMixin.js +598 -569
- package/common/mixins/UserInteractionsLayerMixin.d.ts +18 -8
- package/common/mixins/UserInteractionsLayerMixin.d.ts.map +1 -1
- package/common/mixins/UserInteractionsLayerMixin.js +170 -159
- package/common/styles/realtimeDefaultStyle.d.ts +30 -9
- package/common/styles/realtimeDefaultStyle.d.ts.map +1 -1
- package/common/styles/realtimeDefaultStyle.js +41 -17
- package/common/styles/realtimeDelayStyle.d.ts +3 -2
- package/common/styles/realtimeDelayStyle.d.ts.map +1 -1
- package/common/styles/realtimeSimpleStyle.d.ts +1 -1
- package/common/styles/realtimeSimpleStyle.d.ts.map +1 -1
- package/common/styles/realtimeSimpleStyle.js +9 -7
- package/common/typedefs.d.ts +64 -3
- package/common/typedefs.d.ts.map +1 -1
- package/common/typedefs.js +34 -4
- package/common/utils/cleanStopTime.d.ts +3 -2
- package/common/utils/cleanStopTime.d.ts.map +1 -1
- package/common/utils/cleanStopTime.js +0 -3
- package/common/utils/compareDepartures.d.ts +6 -4
- package/common/utils/compareDepartures.d.ts.map +1 -1
- package/common/utils/compareDepartures.js +3 -2
- package/common/utils/createCanvas.d.ts +3 -2
- package/common/utils/createCanvas.d.ts.map +1 -1
- package/common/utils/createTrackerFilters.d.ts +3 -2
- package/common/utils/createTrackerFilters.d.ts.map +1 -1
- package/common/utils/createTrackerFilters.js +3 -3
- package/common/utils/getLayersAsFlatArray.d.ts +1 -1
- package/common/utils/getLayersAsFlatArray.d.ts.map +1 -1
- package/common/utils/getLayersAsFlatArray.js +1 -0
- package/common/utils/getMapboxMapCopyrights.d.ts +13 -3
- package/common/utils/getMapboxMapCopyrights.d.ts.map +1 -1
- package/common/utils/getMapboxMapCopyrights.js +10 -4
- package/common/utils/getMapboxRender.d.ts +3 -1
- package/common/utils/getMapboxRender.d.ts.map +1 -1
- package/common/utils/getMapboxRender.js +1 -2
- package/common/utils/getVehiclePosition.d.ts +1 -1
- package/common/utils/getVehiclePosition.d.ts.map +1 -1
- package/common/utils/removeDuplicate.d.ts +2 -2
- package/common/utils/removeDuplicate.d.ts.map +1 -1
- package/common/utils/renderTrajectories.d.ts +3 -6
- package/common/utils/renderTrajectories.d.ts.map +1 -1
- package/common/utils/renderTrajectories.js +17 -8
- package/common/utils/trackerConfig.d.ts.map +1 -1
- package/common/utils/trackerConfig.js +3 -0
- package/mapbox/controls/CopyrightControl.d.ts +6 -8
- package/mapbox/controls/CopyrightControl.d.ts.map +1 -1
- package/mapbox/controls/CopyrightControl.js +3 -8
- package/mapbox/layers/Layer.js +1 -1
- package/mapbox/layers/RealtimeLayer.d.ts +1 -1
- package/mapbox/layers/RealtimeLayer.d.ts.map +1 -1
- package/mapbox/utils.d.ts +1 -1
- package/mapbox/utils.d.ts.map +1 -1
- package/mbt.js +824 -702
- package/mbt.js.map +3 -3
- package/mbt.min.js +84 -84
- package/mbt.min.js.map +3 -3
- package/ol/controls/CopyrightControl.d.ts +10 -10
- package/ol/controls/CopyrightControl.d.ts.map +1 -1
- package/ol/controls/CopyrightControl.js +8 -8
- package/ol/controls/RoutingControl.d.ts +10 -3
- package/ol/controls/RoutingControl.d.ts.map +1 -1
- package/ol/controls/RoutingControl.js +2 -2
- package/ol/controls/StopFinderControl.d.ts +5 -7
- package/ol/controls/StopFinderControl.d.ts.map +1 -1
- package/ol/controls/StopFinderControl.js +4 -8
- package/ol/layers/Layer.d.ts +57 -9
- package/ol/layers/Layer.d.ts.map +1 -1
- package/ol/layers/Layer.js +17 -8
- package/ol/layers/MapGlLayer.d.ts +67 -0
- package/ol/layers/MapGlLayer.d.ts.map +1 -0
- package/{common/mixins/MapboxLayerMixin.js → ol/layers/MapGlLayer.js} +66 -44
- package/ol/layers/MapboxLayer.d.ts +15 -17
- package/ol/layers/MapboxLayer.d.ts.map +1 -1
- package/ol/layers/MapboxLayer.js +10 -7
- package/ol/layers/MapboxStyleLayer.d.ts +6 -0
- package/ol/layers/MapboxStyleLayer.d.ts.map +1 -1
- package/ol/layers/MaplibreLayer.d.ts +4 -4
- package/ol/layers/MaplibreLayer.d.ts.map +1 -1
- package/ol/layers/MaplibreLayer.js +2 -3
- package/ol/layers/RealtimeLayer.d.ts +106 -30
- package/ol/layers/RealtimeLayer.d.ts.map +1 -1
- package/ol/layers/RealtimeLayer.js +22 -14
- package/ol/styles/fullTrajectoryStyle.d.ts +3 -2
- package/ol/styles/fullTrajectoryStyle.d.ts.map +1 -1
- package/package.json +15 -9
- package/types/common.d.ts +111 -0
- package/types/index.d.ts +1 -0
- package/types/realtime.d.ts +290 -9
- package/api/RealtimeAPI.test.d.ts +0 -2
- package/api/RealtimeAPI.test.d.ts.map +0 -1
- package/api/RealtimeAPI.test.js +0 -67
- package/api/RoutingAPI.test.d.ts +0 -2
- package/api/RoutingAPI.test.d.ts.map +0 -1
- package/api/RoutingAPI.test.js +0 -29
- package/api/StopsAPI.test.d.ts +0 -2
- package/api/StopsAPI.test.d.ts.map +0 -1
- package/api/StopsAPI.test.js +0 -26
- package/common/api/HttpAPI.test.d.ts +0 -2
- package/common/api/HttpAPI.test.d.ts.map +0 -1
- package/common/api/HttpAPI.test.js +0 -54
- package/common/api/WebSocketAPI.test.d.ts +0 -2
- package/common/api/WebSocketAPI.test.d.ts.map +0 -1
- package/common/api/WebSocketAPI.test.js +0 -380
- package/common/controls/Control.d.ts.map +0 -1
- package/common/controls/Control.test.d.ts +0 -2
- package/common/controls/Control.test.d.ts.map +0 -1
- package/common/controls/Control.test.js +0 -89
- package/common/layers/Layer.d.ts.map +0 -1
- package/common/layers/Layer.test.d.ts +0 -2
- package/common/layers/Layer.test.d.ts.map +0 -1
- package/common/layers/Layer.test.js +0 -137
- package/common/mixins/CopyrightMixin.d.ts +0 -22
- package/common/mixins/CopyrightMixin.d.ts.map +0 -1
- package/common/mixins/CopyrightMixin.js +0 -43
- package/common/mixins/MapboxLayerMixin.d.ts +0 -27
- package/common/mixins/MapboxLayerMixin.d.ts.map +0 -1
- package/common/mixins/StopFinderMixin.d.ts +0 -40
- package/common/mixins/StopFinderMixin.d.ts.map +0 -1
- package/common/mixins/UserInteractionsLayerMixin.test.d.ts +0 -2
- package/common/mixins/UserInteractionsLayerMixin.test.d.ts.map +0 -1
- package/common/mixins/UserInteractionsLayerMixin.test.js +0 -214
- package/common/utils/createTrackerFilters.test.d.ts +0 -2
- package/common/utils/createTrackerFilters.test.d.ts.map +0 -1
- package/common/utils/createTrackerFilters.test.js +0 -79
- package/common/utils/getMapboxMapCopyrights.test.d.ts +0 -2
- package/common/utils/getMapboxMapCopyrights.test.d.ts.map +0 -1
- package/common/utils/getMapboxMapCopyrights.test.js +0 -40
- package/common/utils/removeDuplicate.test.d.ts +0 -2
- package/common/utils/removeDuplicate.test.d.ts.map +0 -1
- package/common/utils/removeDuplicate.test.js +0 -19
- package/common/utils/timeUtils.test.d.ts +0 -2
- package/common/utils/timeUtils.test.d.ts.map +0 -1
- package/common/utils/timeUtils.test.js +0 -10
- package/common/utils/trackerConfig.test.d.ts +0 -2
- package/common/utils/trackerConfig.test.d.ts.map +0 -1
- package/common/utils/trackerConfig.test.js +0 -23
- package/mapbox/layers/Layer.test.d.ts +0 -2
- package/mapbox/layers/Layer.test.d.ts.map +0 -1
- package/mapbox/layers/Layer.test.js +0 -204
- package/mapbox/layers/RealtimeLayer.test.d.ts +0 -2
- package/mapbox/layers/RealtimeLayer.test.d.ts.map +0 -1
- package/mapbox/layers/RealtimeLayer.test.js +0 -10
- package/ol/controls/CopyrightControl.test.d.ts +0 -2
- package/ol/controls/CopyrightControl.test.d.ts.map +0 -1
- package/ol/controls/CopyrightControl.test.js +0 -177
- package/ol/controls/RoutingControl.test.d.ts +0 -2
- package/ol/controls/RoutingControl.test.d.ts.map +0 -1
- package/ol/controls/RoutingControl.test.js +0 -150
- package/ol/controls/StopFinderControl.test.d.ts +0 -2
- package/ol/controls/StopFinderControl.test.d.ts.map +0 -1
- package/ol/controls/StopFinderControl.test.js +0 -49
- package/ol/layers/Layer.test.d.ts +0 -2
- package/ol/layers/Layer.test.d.ts.map +0 -1
- package/ol/layers/Layer.test.js +0 -196
- package/ol/layers/MapboxLayer.test.d.ts +0 -2
- package/ol/layers/MapboxLayer.test.d.ts.map +0 -1
- package/ol/layers/MapboxLayer.test.js +0 -164
- package/ol/layers/MapboxStyleLayer.test.d.ts +0 -2
- package/ol/layers/MapboxStyleLayer.test.d.ts.map +0 -1
- package/ol/layers/MapboxStyleLayer.test.js +0 -232
- package/ol/layers/RealtimeLayer.test.d.ts +0 -2
- package/ol/layers/RealtimeLayer.test.d.ts.map +0 -1
- package/ol/layers/RealtimeLayer.test.js +0 -71
- package/ol/layers/RoutingLayer.test.d.ts +0 -2
- package/ol/layers/RoutingLayer.test.d.ts.map +0 -1
- package/ol/layers/RoutingLayer.test.js +0 -39
- package/ol/layers/VectorLayer.test.d.ts +0 -2
- package/ol/layers/VectorLayer.test.d.ts.map +0 -1
- package/ol/layers/VectorLayer.test.js +0 -87
- package/ol/layers/WMSLayer.test.d.ts +0 -2
- package/ol/layers/WMSLayer.test.d.ts.map +0 -1
- package/ol/layers/WMSLayer.test.js +0 -66
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
/* eslint-disable class-methods-use-this */
|
|
2
|
-
/* eslint-disable max-classes-per-file */
|
|
3
|
-
/**
|
|
4
|
-
* Copyright control interface.
|
|
5
|
-
*
|
|
6
|
-
*/
|
|
7
|
-
export class CopyrightInterface {
|
|
8
|
-
/**
|
|
9
|
-
* Return an array of layer's copyright.
|
|
10
|
-
*
|
|
11
|
-
* @return {String[]} A list of copyrights to render.
|
|
12
|
-
*/
|
|
13
|
-
getCopyrights() { }
|
|
14
|
-
}
|
|
15
|
-
/**
|
|
16
|
-
* Mixin for CopyrightInterface.
|
|
17
|
-
*
|
|
18
|
-
* @param {Class} Base A class to extend with {CopyrightInterface} functionnalities.
|
|
19
|
-
* @return {Class} A class that implements <CopyrightInterface> class and extends Base;
|
|
20
|
-
* @private
|
|
21
|
-
*/
|
|
22
|
-
const CopyrightMixin = (Base) => class extends Base {
|
|
23
|
-
render() {
|
|
24
|
-
if (!this.element) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
this.element.innerHTML = this.active
|
|
28
|
-
? this.getCopyrights().join(' | ')
|
|
29
|
-
: '';
|
|
30
|
-
}
|
|
31
|
-
createDefaultElement() {
|
|
32
|
-
this.element = document.createElement('div');
|
|
33
|
-
this.element.id = 'mbt-copyright';
|
|
34
|
-
Object.assign(this.element.style, {
|
|
35
|
-
position: 'absolute',
|
|
36
|
-
bottom: 0,
|
|
37
|
-
right: 0,
|
|
38
|
-
fontSize: '.8rem',
|
|
39
|
-
padding: '0 10px',
|
|
40
|
-
});
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
export default CopyrightMixin;
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* MapboxLayerInterface
|
|
3
|
-
*/
|
|
4
|
-
export class MapboxLayerInterface {
|
|
5
|
-
/**
|
|
6
|
-
* Return the render function function for the ol layer.
|
|
7
|
-
*
|
|
8
|
-
*/
|
|
9
|
-
getOlLayerRender(): void;
|
|
10
|
-
/**
|
|
11
|
-
* Return the Class to instanciate for the mapbox map.
|
|
12
|
-
*
|
|
13
|
-
* @return {mapboxgl.Map|maplibregl.Map} map
|
|
14
|
-
*/
|
|
15
|
-
getMapboxMapClass(): mapboxgl.Map | maplibregl.Map;
|
|
16
|
-
}
|
|
17
|
-
export default MapboxLayerMixin;
|
|
18
|
-
/**
|
|
19
|
-
* Mixin for MapboxLayerLayerInterface.
|
|
20
|
-
* It's used to share code between Mapbox and Maplibre layers without importing both libs
|
|
21
|
-
*
|
|
22
|
-
* @param {Class} Base A class to extend with {MapboxLayerLayerInterface} functionnalities.
|
|
23
|
-
* @return {Class} A class that implements {MapboxLayerLayerInterface} class and extends Base;
|
|
24
|
-
* @private
|
|
25
|
-
*/
|
|
26
|
-
declare function MapboxLayerMixin(Base: Class): Class;
|
|
27
|
-
//# sourceMappingURL=MapboxLayerMixin.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MapboxLayerMixin.d.ts","sourceRoot":"","sources":["../../../src/common/mixins/MapboxLayerMixin.js"],"names":[],"mappings":"AAOA;;GAEG;AACH;IACE;;;OAGG;IAEH,yBAAqB;IAErB;;;;OAIG;IAEH,qBAHY,eAAa,cAAc,CAGjB;CACvB;;AAED;;;;;;;GAOG;AACH,sDA6MG"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* StopFinder control interface.
|
|
3
|
-
*
|
|
4
|
-
* @classproperty {StopsSearchParams} apiParams - Default request parameters used by the search method. See [Stops service documentation](https://developer.geops.io/apis/5dcbd702a256d90001cf1361/).
|
|
5
|
-
*/
|
|
6
|
-
export class StopFinderInterface {
|
|
7
|
-
/**
|
|
8
|
-
* Constructor.
|
|
9
|
-
*
|
|
10
|
-
* @param {Object} options Map options
|
|
11
|
-
* @param {string} options.apiKey Access key for [geOps services](https://developer.geops.io/). See StopsAPI.
|
|
12
|
-
* @param {string} [options.url='https://api.geops.io/tracker/v1'] Stops service url. See StopsAPI.
|
|
13
|
-
* @param {string} [options.placeholder='Search for a stop...'] Input field placeholder.
|
|
14
|
-
* @param {StopsSearchParams} [options.apiParams={ limit: 20 }] Request parameters. See [Stops service documentation](https://developer.geops.io/apis/5dcbd702a256d90001cf1361/).
|
|
15
|
-
*/
|
|
16
|
-
constructor(options?: {
|
|
17
|
-
apiKey: string;
|
|
18
|
-
url?: string | undefined;
|
|
19
|
-
placeholder?: string | undefined;
|
|
20
|
-
apiParams?: any;
|
|
21
|
-
});
|
|
22
|
-
/**
|
|
23
|
-
* Launch a search.
|
|
24
|
-
*
|
|
25
|
-
* @param {String} query The query to search for.
|
|
26
|
-
* @param {AbortController} abortController Abort controller used to cancel the request.
|
|
27
|
-
* @return {Promise<Array<GeoJSONFeature>>} An array of GeoJSON features with coordinates in [EPSG:4326](http://epsg.io/4326).
|
|
28
|
-
*/
|
|
29
|
-
search(query: string, abortController: AbortController): Promise<Array<GeoJSONFeature>>;
|
|
30
|
-
}
|
|
31
|
-
export default StopFinderMixin;
|
|
32
|
-
/**
|
|
33
|
-
* Mixin for StopFinderInterface.
|
|
34
|
-
*
|
|
35
|
-
* @param {Class} Base A class to extend with {StopFinderInterface} functionnalities.
|
|
36
|
-
* @return {Class} A class that implements <StopFinderInterface> class and extends Base;
|
|
37
|
-
* @private
|
|
38
|
-
*/
|
|
39
|
-
declare function StopFinderMixin(Base: Class): Class;
|
|
40
|
-
//# sourceMappingURL=StopFinderMixin.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"StopFinderMixin.d.ts","sourceRoot":"","sources":["../../../src/common/mixins/StopFinderMixin.js"],"names":[],"mappings":"AAMA;;;;GAIG;AACH;IACE;;;;;;;;OAQG;IAEH;QAN2B,MAAM,EAAtB,MAAM;QACW,GAAG;QACH,WAAW;QACA,SAAS;OAGpB;IAE5B;;;;;;OAMG;IAEH,uCAJW,eAAe,GACd,QAAQ,qBAAqB,CAAC,CAGT;CAClC;;AAED;;;;;;GAMG;AACH,qDAoIG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UserInteractionsLayerMixin.test.d.ts","sourceRoot":"","sources":["../../../src/common/mixins/UserInteractionsLayerMixin.test.js"],"names":[],"mappings":""}
|
|
@@ -1,214 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import VectorLayer from 'ol/layer/Vector';
|
|
11
|
-
import VectorSource from 'ol/source/Vector';
|
|
12
|
-
import BaseLayer from '../layers/Layer';
|
|
13
|
-
import mixin from './UserInteractionsLayerMixin';
|
|
14
|
-
const olLayer = new VectorLayer({ source: new VectorSource() });
|
|
15
|
-
const Layer = mixin(BaseLayer);
|
|
16
|
-
describe('Layer', () => {
|
|
17
|
-
test('should initialize.', () => {
|
|
18
|
-
const layer = new Layer();
|
|
19
|
-
expect(layer).toBeInstanceOf(Layer);
|
|
20
|
-
});
|
|
21
|
-
test('should define default properties.', () => {
|
|
22
|
-
const layer = new Layer();
|
|
23
|
-
expect(layer).toBeInstanceOf(Layer);
|
|
24
|
-
expect(layer.userInteractions).toEqual(true);
|
|
25
|
-
expect(layer.userClickInteractions).toEqual(true);
|
|
26
|
-
expect(layer.userHoverInteractions).toEqual(true);
|
|
27
|
-
expect(layer.defaultUserInteractions).toBe(true);
|
|
28
|
-
expect(layer.userClickCallbacks).toEqual([]);
|
|
29
|
-
expect(layer.userHoverCallbacks).toEqual([]);
|
|
30
|
-
expect(layer.userClickEventsKeys).toEqual([]);
|
|
31
|
-
expect(layer.userHoverEventsKeys).toEqual([]);
|
|
32
|
-
});
|
|
33
|
-
test('should set userInteractionsXXX to false.', () => {
|
|
34
|
-
const options = {
|
|
35
|
-
userInteractions: false,
|
|
36
|
-
userClickInteractions: false,
|
|
37
|
-
userHoverInteractions: false,
|
|
38
|
-
defaultUserInteractions: false,
|
|
39
|
-
};
|
|
40
|
-
const layer = new Layer(options);
|
|
41
|
-
expect(layer).toBeInstanceOf(Layer);
|
|
42
|
-
expect(layer.userInteractions).toBe(false);
|
|
43
|
-
expect(layer.userClickInteractions).toBe(false);
|
|
44
|
-
expect(layer.userHoverInteractions).toBe(false);
|
|
45
|
-
expect(layer.defaultUserInteractions).toBe(false);
|
|
46
|
-
});
|
|
47
|
-
test('should set onClick using constructor', () => {
|
|
48
|
-
const fn = () => { };
|
|
49
|
-
const layer = new Layer({
|
|
50
|
-
onClick: fn,
|
|
51
|
-
onHover: fn,
|
|
52
|
-
});
|
|
53
|
-
expect(layer.userClickCallbacks[0]).toBe(fn);
|
|
54
|
-
expect(layer.userHoverCallbacks[0]).toBe(fn);
|
|
55
|
-
expect(layer.userClickEventsKeys.length).toBe(0);
|
|
56
|
-
expect(layer.userHoverEventsKeys.length).toBe(0);
|
|
57
|
-
});
|
|
58
|
-
describe('#attachToMap()', () => {
|
|
59
|
-
test('should not add events if no callbacks', () => {
|
|
60
|
-
const layer = new Layer({
|
|
61
|
-
olLayer,
|
|
62
|
-
});
|
|
63
|
-
expect(layer.map).toBe(undefined);
|
|
64
|
-
const obj = {};
|
|
65
|
-
layer.attachToMap(obj);
|
|
66
|
-
expect(layer.userClickEventsKeys.length).toBe(0);
|
|
67
|
-
expect(layer.userHoverEventsKeys.length).toBe(0);
|
|
68
|
-
});
|
|
69
|
-
test('should add events', () => {
|
|
70
|
-
const fn = () => { };
|
|
71
|
-
const layer = new Layer({
|
|
72
|
-
olLayer,
|
|
73
|
-
onClick: fn,
|
|
74
|
-
onHover: fn,
|
|
75
|
-
});
|
|
76
|
-
expect(layer.map).toBe(undefined);
|
|
77
|
-
const obj = {};
|
|
78
|
-
layer.attachToMap(obj);
|
|
79
|
-
expect(layer.userClickEventsKeys.length).toBe(1);
|
|
80
|
-
expect(layer.userHoverEventsKeys.length).toBe(1);
|
|
81
|
-
});
|
|
82
|
-
});
|
|
83
|
-
describe('#onClick()', () => {
|
|
84
|
-
test('adds function to callback array', () => {
|
|
85
|
-
const layer = new Layer();
|
|
86
|
-
const fn = jest.fn();
|
|
87
|
-
const fn2 = jest.fn();
|
|
88
|
-
layer.onClick(fn);
|
|
89
|
-
expect(layer.userClickCallbacks).toEqual([fn]);
|
|
90
|
-
layer.onClick(fn2);
|
|
91
|
-
expect(layer.userClickCallbacks).toEqual([fn, fn2]);
|
|
92
|
-
expect(layer.userClickEventsKeys.length).toBe(0);
|
|
93
|
-
layer.attachToMap({});
|
|
94
|
-
expect(layer.userClickEventsKeys.length).toBe(2);
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
describe('#onHover()', () => {
|
|
98
|
-
test('adds function to callback array', () => {
|
|
99
|
-
const layer = new Layer();
|
|
100
|
-
const fn = jest.fn();
|
|
101
|
-
const fn2 = jest.fn();
|
|
102
|
-
layer.onHover(fn);
|
|
103
|
-
expect(layer.userHoverCallbacks).toEqual([fn]);
|
|
104
|
-
layer.onHover(fn2);
|
|
105
|
-
expect(layer.userHoverCallbacks).toEqual([fn, fn2]);
|
|
106
|
-
expect(layer.userHoverEventsKeys.length).toBe(0);
|
|
107
|
-
layer.attachToMap({});
|
|
108
|
-
expect(layer.userHoverEventsKeys.length).toBe(2);
|
|
109
|
-
});
|
|
110
|
-
});
|
|
111
|
-
describe('#onUserClickCallback()', () => {
|
|
112
|
-
const evt = { type: 'signleclick', coordinate: [0, 0] };
|
|
113
|
-
const getFeatureInfo = (layer, features = []) => ({
|
|
114
|
-
features,
|
|
115
|
-
layer,
|
|
116
|
-
coordinate: evt.coordinate,
|
|
117
|
-
event: evt,
|
|
118
|
-
});
|
|
119
|
-
test('calls click callback functions', (done) => __awaiter(void 0, void 0, void 0, function* () {
|
|
120
|
-
const layer = new Layer();
|
|
121
|
-
const goodFeatureInfo = getFeatureInfo(layer, [{ name: 'test' }]);
|
|
122
|
-
const fn = jest.fn();
|
|
123
|
-
const fn2 = jest.fn();
|
|
124
|
-
const spy = jest
|
|
125
|
-
.spyOn(layer, 'getFeatureInfoAtCoordinate')
|
|
126
|
-
.mockResolvedValue(goodFeatureInfo);
|
|
127
|
-
layer.onClick(fn);
|
|
128
|
-
layer.onClick(fn2);
|
|
129
|
-
layer.attachToMap({});
|
|
130
|
-
layer.onUserClickCallback(evt).then((featureInfo) => {
|
|
131
|
-
expect(spy).toHaveBeenCalledTimes(1);
|
|
132
|
-
expect(spy).toHaveBeenCalledWith(evt.coordinate);
|
|
133
|
-
expect(featureInfo).toBe(goodFeatureInfo);
|
|
134
|
-
expect(fn).toHaveBeenCalledTimes(1);
|
|
135
|
-
expect(fn.mock.calls[0][0]).toBe(goodFeatureInfo.features);
|
|
136
|
-
expect(fn.mock.calls[0][1]).toBe(goodFeatureInfo.layer);
|
|
137
|
-
expect(fn.mock.calls[0][2]).toBe(goodFeatureInfo.coordinate);
|
|
138
|
-
expect(fn2).toHaveBeenCalledTimes(1);
|
|
139
|
-
expect(fn2.mock.calls[0][0]).toBe(goodFeatureInfo.features);
|
|
140
|
-
expect(fn2.mock.calls[0][1]).toBe(goodFeatureInfo.layer);
|
|
141
|
-
expect(fn2.mock.calls[0][2]).toBe(goodFeatureInfo.coordinate);
|
|
142
|
-
done();
|
|
143
|
-
});
|
|
144
|
-
}));
|
|
145
|
-
describe('returns empty feature info', () => {
|
|
146
|
-
test('if an error is thrown in click callback', (done) => {
|
|
147
|
-
const layer = new Layer();
|
|
148
|
-
layer.onClick(() => {
|
|
149
|
-
throw new Error('foo');
|
|
150
|
-
});
|
|
151
|
-
const goodFeatureInfo = getFeatureInfo(layer, [{ name: 'test' }]);
|
|
152
|
-
jest
|
|
153
|
-
.spyOn(layer, 'getFeatureInfoAtCoordinate')
|
|
154
|
-
.mockResolvedValue(goodFeatureInfo);
|
|
155
|
-
layer.attachToMap({});
|
|
156
|
-
layer.onUserClickCallback(evt).then((featureInfo) => {
|
|
157
|
-
expect(featureInfo).toEqual(getFeatureInfo(layer));
|
|
158
|
-
done();
|
|
159
|
-
});
|
|
160
|
-
});
|
|
161
|
-
});
|
|
162
|
-
});
|
|
163
|
-
describe('#onUserMoveCallback()', () => {
|
|
164
|
-
const evt = { type: 'pointermove', coordinate: [0, 0] };
|
|
165
|
-
const getFeatureInfo = (layer, features = []) => ({
|
|
166
|
-
features,
|
|
167
|
-
layer,
|
|
168
|
-
coordinate: evt.coordinate,
|
|
169
|
-
event: evt,
|
|
170
|
-
});
|
|
171
|
-
test('calls hover callback functions', (done) => {
|
|
172
|
-
const layer = new Layer();
|
|
173
|
-
const goodFeatureInfo = getFeatureInfo(layer, [{ name: 'test' }]);
|
|
174
|
-
const fn = jest.fn();
|
|
175
|
-
const fn2 = jest.fn();
|
|
176
|
-
const spy = jest
|
|
177
|
-
.spyOn(layer, 'getFeatureInfoAtCoordinate')
|
|
178
|
-
.mockResolvedValue(goodFeatureInfo);
|
|
179
|
-
layer.onHover(fn);
|
|
180
|
-
layer.onHover(fn2);
|
|
181
|
-
layer.attachToMap({});
|
|
182
|
-
layer.onUserMoveCallback(evt).then((featureInfo) => {
|
|
183
|
-
expect(spy).toHaveBeenCalledTimes(1);
|
|
184
|
-
expect(spy).toHaveBeenCalledWith(evt.coordinate);
|
|
185
|
-
expect(featureInfo).toBe(goodFeatureInfo);
|
|
186
|
-
expect(fn).toHaveBeenCalledTimes(1);
|
|
187
|
-
expect(fn.mock.calls[0][0]).toBe(goodFeatureInfo.features);
|
|
188
|
-
expect(fn.mock.calls[0][1]).toBe(goodFeatureInfo.layer);
|
|
189
|
-
expect(fn.mock.calls[0][2]).toBe(goodFeatureInfo.coordinate);
|
|
190
|
-
expect(fn2).toHaveBeenCalledTimes(1);
|
|
191
|
-
expect(fn2.mock.calls[0][0]).toBe(goodFeatureInfo.features);
|
|
192
|
-
expect(fn2.mock.calls[0][1]).toBe(goodFeatureInfo.layer);
|
|
193
|
-
expect(fn2.mock.calls[0][2]).toBe(goodFeatureInfo.coordinate);
|
|
194
|
-
done();
|
|
195
|
-
});
|
|
196
|
-
});
|
|
197
|
-
describe('returns empty feature info', () => {
|
|
198
|
-
test('if an error is thrown in hover callback', (done) => {
|
|
199
|
-
const layer = new Layer();
|
|
200
|
-
layer.onHover(() => {
|
|
201
|
-
throw new Error('foo');
|
|
202
|
-
});
|
|
203
|
-
jest
|
|
204
|
-
.spyOn(layer, 'getFeatureInfoAtCoordinate')
|
|
205
|
-
.mockResolvedValue(getFeatureInfo(layer, [{ name: 'test' }]));
|
|
206
|
-
layer.attachToMap({});
|
|
207
|
-
layer.onUserMoveCallback(evt).then((featureInfo) => {
|
|
208
|
-
expect(featureInfo).toEqual(getFeatureInfo(layer));
|
|
209
|
-
done();
|
|
210
|
-
});
|
|
211
|
-
});
|
|
212
|
-
});
|
|
213
|
-
});
|
|
214
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"createTrackerFilters.test.d.ts","sourceRoot":"","sources":["../../../src/common/utils/createTrackerFilters.test.js"],"names":[],"mappings":""}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import createTrackerFilters from './createTrackerFilters';
|
|
2
|
-
const u1 = {
|
|
3
|
-
properties: {
|
|
4
|
-
routeIdentifier: '001.000827.004:7',
|
|
5
|
-
operator: 'FoO',
|
|
6
|
-
line: {
|
|
7
|
-
name: 'U1',
|
|
8
|
-
},
|
|
9
|
-
},
|
|
10
|
-
};
|
|
11
|
-
const ireta = {
|
|
12
|
-
properties: {
|
|
13
|
-
routeIdentifier: '0022.000827.004:7',
|
|
14
|
-
operator: 'BAR',
|
|
15
|
-
line: {
|
|
16
|
-
name: 'IRETA',
|
|
17
|
-
},
|
|
18
|
-
},
|
|
19
|
-
};
|
|
20
|
-
const arb = {
|
|
21
|
-
properties: {
|
|
22
|
-
routeIdentifier: '00333.000827.004:7',
|
|
23
|
-
operator: 'qux',
|
|
24
|
-
line: {
|
|
25
|
-
name: 'ARB',
|
|
26
|
-
},
|
|
27
|
-
},
|
|
28
|
-
};
|
|
29
|
-
const trajectories = [u1, ireta, arb];
|
|
30
|
-
describe('#createTrackerFilter()', () => {
|
|
31
|
-
test('returns null', () => {
|
|
32
|
-
const filterFunc = createTrackerFilters();
|
|
33
|
-
expect(filterFunc).toBe(null);
|
|
34
|
-
});
|
|
35
|
-
describe('using line', () => {
|
|
36
|
-
test('as string', () => {
|
|
37
|
-
const filterFunc = createTrackerFilters('u1,foo');
|
|
38
|
-
expect(trajectories.filter(filterFunc)).toEqual([u1]);
|
|
39
|
-
});
|
|
40
|
-
test('as array of string', () => {
|
|
41
|
-
const filterFunc = createTrackerFilters(['u1', 'foo', 'IRETA']);
|
|
42
|
-
expect(trajectories.filter(filterFunc)).toEqual([u1, ireta]);
|
|
43
|
-
});
|
|
44
|
-
});
|
|
45
|
-
describe('using route identifier', () => {
|
|
46
|
-
test('as string', () => {
|
|
47
|
-
const filterFunc = createTrackerFilters(null, '1,foo');
|
|
48
|
-
expect(trajectories.filter(filterFunc)).toEqual([u1]);
|
|
49
|
-
});
|
|
50
|
-
test('as array of string', () => {
|
|
51
|
-
const filterFunc = createTrackerFilters(null, ['22', 'foo', '1']);
|
|
52
|
-
expect(trajectories.filter(filterFunc)).toEqual([u1, ireta]);
|
|
53
|
-
});
|
|
54
|
-
});
|
|
55
|
-
describe('using operator', () => {
|
|
56
|
-
test('as string', () => {
|
|
57
|
-
const filterFunc = createTrackerFilters(null, null, 'foo');
|
|
58
|
-
expect(trajectories.filter(filterFunc)).toEqual([u1]);
|
|
59
|
-
});
|
|
60
|
-
test('as array of string', () => {
|
|
61
|
-
const filterFunc = createTrackerFilters(null, null, ['bar', 'foo', '1']);
|
|
62
|
-
expect(trajectories.filter(filterFunc)).toEqual([u1, ireta]);
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
describe('using regexLine', () => {
|
|
66
|
-
test('as string', () => {
|
|
67
|
-
const filterFunc = createTrackerFilters(null, null, null, '^(S|R$|RE|PE|D|IRE|RB|TER)');
|
|
68
|
-
expect(trajectories.filter(filterFunc)).toEqual([ireta]);
|
|
69
|
-
});
|
|
70
|
-
test('as array of string', () => {
|
|
71
|
-
const filterFunc = createTrackerFilters(null, null, null, [
|
|
72
|
-
'^IR',
|
|
73
|
-
'^ARB$',
|
|
74
|
-
'foo',
|
|
75
|
-
]);
|
|
76
|
-
expect(trajectories.filter(filterFunc)).toEqual([ireta, arb]);
|
|
77
|
-
});
|
|
78
|
-
});
|
|
79
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"getMapboxMapCopyrights.test.d.ts","sourceRoot":"","sources":["../../../src/common/utils/getMapboxMapCopyrights.test.js"],"names":[],"mappings":""}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import getMapboxMapCopyrights from './getMapboxMapCopyrights';
|
|
2
|
-
describe('getMapboxMapCopyrights()', () => {
|
|
3
|
-
test('returns an empty array if map is not defined', () => {
|
|
4
|
-
expect(getMapboxMapCopyrights().length).toBe(0);
|
|
5
|
-
});
|
|
6
|
-
test('returns an empty array if map.style is not defined', () => {
|
|
7
|
-
expect(getMapboxMapCopyrights({}).length).toBe(0);
|
|
8
|
-
});
|
|
9
|
-
test('returns non depluicated copyrights in an array', () => {
|
|
10
|
-
expect(getMapboxMapCopyrights({
|
|
11
|
-
style: {
|
|
12
|
-
sourceCaches: {
|
|
13
|
-
used: {
|
|
14
|
-
used: true,
|
|
15
|
-
getSource() {
|
|
16
|
-
return {
|
|
17
|
-
attribution: '<a href="https://www.openmaptiles.org/" target="_blank">© OpenMapTiles</a> <a href="https://www.openstreetmap.org/about/" target="_blank">© OpenStreetMap contributors</a>',
|
|
18
|
-
};
|
|
19
|
-
},
|
|
20
|
-
},
|
|
21
|
-
'not used': {
|
|
22
|
-
used: false,
|
|
23
|
-
},
|
|
24
|
-
'also used': {
|
|
25
|
-
used: true,
|
|
26
|
-
getSource() {
|
|
27
|
-
return {
|
|
28
|
-
attribution: '<a href="https://www.openmaptiles.org/" target="_blank">© OpenMapTiles</a> <a href="https://www.imagico.de/" target="_blank">© imagico</a>',
|
|
29
|
-
};
|
|
30
|
-
},
|
|
31
|
-
},
|
|
32
|
-
},
|
|
33
|
-
},
|
|
34
|
-
})).toEqual([
|
|
35
|
-
'<a href="https://www.openmaptiles.org/" target="_blank">© OpenMapTiles</a>',
|
|
36
|
-
'<a href="https://www.openstreetmap.org/about/" target="_blank">© OpenStreetMap contributors</a>',
|
|
37
|
-
'<a href="https://www.imagico.de/" target="_blank">© imagico</a>',
|
|
38
|
-
]);
|
|
39
|
-
});
|
|
40
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"removeDuplicate.test.d.ts","sourceRoot":"","sources":["../../../src/common/utils/removeDuplicate.test.js"],"names":[],"mappings":""}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import removeDuplicate from './removeDuplicate';
|
|
2
|
-
describe('removeDuplicate()', () => {
|
|
3
|
-
test('removes duplicates', () => {
|
|
4
|
-
expect(removeDuplicate([
|
|
5
|
-
'a',
|
|
6
|
-
' ',
|
|
7
|
-
' ',
|
|
8
|
-
'b',
|
|
9
|
-
'a',
|
|
10
|
-
undefined,
|
|
11
|
-
null,
|
|
12
|
-
'A',
|
|
13
|
-
0,
|
|
14
|
-
'c',
|
|
15
|
-
'b',
|
|
16
|
-
'B',
|
|
17
|
-
])).toEqual(['a', 'b', 'c']);
|
|
18
|
-
});
|
|
19
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"timeUtils.test.d.ts","sourceRoot":"","sources":["../../../src/common/utils/timeUtils.test.js"],"names":[],"mappings":""}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { getUTCDateString, getUTCTimeString } from './timeUtils';
|
|
2
|
-
describe('timeUtils', () => {
|
|
3
|
-
test('getUTCDateString should be correct.', () => {
|
|
4
|
-
expect(getUTCDateString(new Date(2020, 5, 30))).toBe('20200630');
|
|
5
|
-
expect(getUTCDateString(new Date('January 1, 2021 00:15:30 GMT+2:00'))).toBe('20201231');
|
|
6
|
-
});
|
|
7
|
-
test('getUTCTimeString should be correct.', () => {
|
|
8
|
-
expect(getUTCTimeString(new Date(2020, 5, 30, 11, 5, 1, 123))).toBe('11:5:1.123');
|
|
9
|
-
});
|
|
10
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"trackerConfig.test.d.ts","sourceRoot":"","sources":["../../../src/common/utils/trackerConfig.test.js"],"names":[],"mappings":""}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { getTypeIndex } from './trackerConfig';
|
|
2
|
-
describe('trackerConfig', () => {
|
|
3
|
-
describe('#getTypeIndex()', () => {
|
|
4
|
-
test("retrurn the type is it's not a string", () => {
|
|
5
|
-
const obj = { foo: 'foo' };
|
|
6
|
-
expect(getTypeIndex(obj)).toBe(obj);
|
|
7
|
-
expect(getTypeIndex(0)).toBe(0);
|
|
8
|
-
expect(getTypeIndex(null)).toBe(null);
|
|
9
|
-
expect(getTypeIndex(undefined)).toBe(undefined);
|
|
10
|
-
});
|
|
11
|
-
test('find good index for new tracker values', () => {
|
|
12
|
-
expect(getTypeIndex('tram')).toBe(0);
|
|
13
|
-
expect(getTypeIndex('subway')).toBe(1);
|
|
14
|
-
expect(getTypeIndex('bus')).toBe(3);
|
|
15
|
-
expect(getTypeIndex('ferry')).toBe(4);
|
|
16
|
-
expect(getTypeIndex('cablecar')).toBe(5);
|
|
17
|
-
expect(getTypeIndex('gondola')).toBe(6);
|
|
18
|
-
expect(getTypeIndex('funicular')).toBe(7);
|
|
19
|
-
expect(getTypeIndex('coach')).toBe(8);
|
|
20
|
-
expect(getTypeIndex('rail')).toBe(9);
|
|
21
|
-
});
|
|
22
|
-
});
|
|
23
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Layer.test.d.ts","sourceRoot":"","sources":["../../../src/mapbox/layers/Layer.test.js"],"names":[],"mappings":""}
|