mobility-toolbox-js 2.0.0-beta.3 → 2.0.0-beta.33
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 +4 -1
- package/api/RealtimeAPI.d.ts +268 -0
- package/api/RealtimeAPI.d.ts.map +1 -0
- package/api/RoutingAPI.d.ts +33 -0
- package/api/RoutingAPI.d.ts.map +1 -0
- package/api/StopsAPI.d.ts +36 -0
- package/api/StopsAPI.d.ts.map +1 -0
- package/api/index.d.ts +5 -0
- package/api/index.d.ts.map +1 -0
- package/api/typedefs.d.ts +105 -0
- package/api/typedefs.d.ts.map +1 -0
- package/common/api/HttpAPI.d.ts +31 -0
- package/common/api/HttpAPI.d.ts.map +1 -0
- package/common/api/WebSocketAPI.d.ts +95 -0
- package/common/api/WebSocketAPI.d.ts.map +1 -0
- package/common/controls/Control.d.ts +74 -0
- package/common/controls/Control.d.ts.map +1 -0
- package/common/index.d.ts +3 -0
- package/common/index.d.ts.map +1 -0
- package/common/layers/Layer.d.ts +80 -0
- package/common/layers/Layer.d.ts.map +1 -0
- package/common/mixins/CopyrightMixin.d.ts +22 -0
- package/common/mixins/CopyrightMixin.d.ts.map +1 -0
- package/common/mixins/MapboxLayerMixin.d.ts +27 -0
- package/common/mixins/MapboxLayerMixin.d.ts.map +1 -0
- package/common/mixins/RealtimeLayerMixin.d.ts +58 -0
- package/common/mixins/RealtimeLayerMixin.d.ts.map +1 -0
- package/common/mixins/StopFinderMixin.d.ts +40 -0
- package/common/mixins/StopFinderMixin.d.ts.map +1 -0
- package/common/mixins/UserInteractionsLayerMixin.d.ts +42 -0
- package/common/mixins/UserInteractionsLayerMixin.d.ts.map +1 -0
- package/common/styles/index.d.ts +5 -0
- package/common/styles/index.d.ts.map +1 -0
- package/common/styles/realtimeDefaultStyle.d.ts +15 -0
- package/common/styles/realtimeDefaultStyle.d.ts.map +1 -0
- package/common/styles/{trackerDelayStyle.js → realtimeDelayStyle.d.ts} +3 -9
- package/common/styles/realtimeDelayStyle.d.ts.map +1 -0
- package/common/styles/realtimeSimpleStyle.d.ts +3 -0
- package/common/styles/realtimeSimpleStyle.d.ts.map +1 -0
- package/common/typedefs.d.ts +50 -0
- package/common/typedefs.d.ts.map +1 -0
- package/common/utils/cleanStopTime.d.ts +7 -0
- package/common/utils/cleanStopTime.d.ts.map +1 -0
- package/common/utils/compareDepartures.d.ts +9 -0
- package/common/utils/compareDepartures.d.ts.map +1 -0
- package/common/utils/createCanvas.d.ts +9 -0
- package/common/utils/createCanvas.d.ts.map +1 -0
- package/common/utils/createTrackerFilters.d.ts +12 -0
- package/common/utils/createTrackerFilters.d.ts.map +1 -0
- package/common/utils/getLayersAsFlatArray.d.ts +3 -0
- package/common/utils/getLayersAsFlatArray.d.ts.map +1 -0
- package/common/utils/getMapboxMapCopyrights.d.ts +8 -0
- package/common/utils/getMapboxMapCopyrights.d.ts.map +1 -0
- package/common/utils/getMapboxRender.d.ts +5 -0
- package/common/utils/getMapboxRender.d.ts.map +1 -0
- package/common/utils/getMaplibreRender.d.ts +5 -0
- package/common/utils/getMaplibreRender.d.ts.map +1 -0
- package/common/utils/getRealtimeModeSuffix.d.ts +8 -0
- package/common/utils/getRealtimeModeSuffix.d.ts.map +1 -0
- package/common/utils/getUrlWithParams.d.ts +9 -0
- package/common/utils/getUrlWithParams.d.ts.map +1 -0
- package/common/utils/getVehiclePosition.d.ts +14 -0
- package/common/utils/getVehiclePosition.d.ts.map +1 -0
- package/common/utils/index.d.ts +12 -0
- package/common/utils/index.d.ts.map +1 -0
- package/common/utils/removeDuplicate.d.ts +10 -0
- package/common/utils/removeDuplicate.d.ts.map +1 -0
- package/common/utils/renderTrajectories.d.ts +20 -0
- package/common/utils/renderTrajectories.d.ts.map +1 -0
- package/common/utils/sortByDelay.d.ts +3 -0
- package/common/utils/sortByDelay.d.ts.map +1 -0
- package/common/utils/timeUtils.d.ts +5 -0
- package/common/utils/timeUtils.d.ts.map +1 -0
- package/common/utils/trackerConfig.d.ts +24 -0
- package/common/utils/trackerConfig.d.ts.map +1 -0
- package/iife.d.ts +3 -0
- package/iife.d.ts.map +1 -0
- package/index.d.ts +6 -0
- package/index.d.ts.map +1 -0
- package/mapbox/controls/CopyrightControl.d.ts +32 -0
- package/mapbox/controls/CopyrightControl.d.ts.map +1 -0
- package/mapbox/controls/index.d.ts +2 -0
- package/mapbox/controls/index.d.ts.map +1 -0
- package/mapbox/index.d.ts +5 -0
- package/mapbox/index.d.ts.map +1 -0
- package/mapbox/layers/Layer.d.ts +47 -0
- package/mapbox/layers/Layer.d.ts.map +1 -0
- package/mapbox/layers/RealtimeLayer.d.ts +118 -0
- package/mapbox/layers/RealtimeLayer.d.ts.map +1 -0
- package/mapbox/layers/index.d.ts +3 -0
- package/mapbox/layers/index.d.ts.map +1 -0
- package/mapbox/utils.d.ts +8 -0
- package/mapbox/utils.d.ts.map +1 -0
- package/mbt.js +50042 -0
- package/mbt.js.map +7 -0
- package/mbt.min.js +1008 -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/RoutingControl.d.ts +180 -0
- package/ol/controls/RoutingControl.d.ts.map +1 -0
- package/ol/controls/StopFinderControl.d.ts +32 -0
- package/ol/controls/StopFinderControl.d.ts.map +1 -0
- package/ol/controls/index.d.ts +4 -0
- package/ol/controls/index.d.ts.map +1 -0
- package/ol/index.d.ts +6 -0
- package/ol/index.d.ts.map +1 -0
- package/ol/layers/Layer.d.ts +49 -0
- package/ol/layers/Layer.d.ts.map +1 -0
- package/ol/layers/MapboxLayer.d.ts +42 -0
- package/ol/layers/MapboxLayer.d.ts.map +1 -0
- package/ol/layers/MapboxStyleLayer.d.ts +146 -0
- package/ol/layers/MapboxStyleLayer.d.ts.map +1 -0
- package/ol/layers/MaplibreLayer.d.ts +27 -0
- package/ol/layers/MaplibreLayer.d.ts.map +1 -0
- package/ol/layers/RealtimeLayer.d.ts +119 -0
- package/ol/layers/RealtimeLayer.d.ts.map +1 -0
- package/ol/layers/RoutingLayer.d.ts +24 -0
- package/ol/layers/RoutingLayer.d.ts.map +1 -0
- package/ol/layers/VectorLayer.d.ts +23 -0
- package/ol/layers/VectorLayer.d.ts.map +1 -0
- package/ol/layers/WMSLayer.d.ts +38 -0
- package/ol/layers/WMSLayer.d.ts.map +1 -0
- package/ol/layers/index.d.ts +9 -0
- package/ol/layers/index.d.ts.map +1 -0
- package/ol/styles/fullTrajectoryDelayStyle.d.ts +4 -0
- package/ol/styles/fullTrajectoryDelayStyle.d.ts.map +1 -0
- package/ol/styles/fullTrajectoryStyle.d.ts +4 -0
- package/ol/styles/fullTrajectoryStyle.d.ts.map +1 -0
- package/ol/styles/index.d.ts +3 -0
- package/ol/styles/index.d.ts.map +1 -0
- package/package.json +56 -95
- package/setupTests.d.ts +2 -0
- package/setupTests.d.ts.map +1 -0
- package/types/index.d.ts +10 -0
- package/types/realtime.d.ts +24 -0
- package/types/routing.d.ts +206 -0
- package/types/stops.d.ts +143 -0
- package/api/index.js +0 -3
- package/api/routing/RoutingAPI.js +0 -44
- package/api/routing/RoutingAPI.test.js +0 -41
- package/api/stops/StopsAPI.js +0 -41
- package/api/stops/StopsAPI.test.js +0 -34
- package/api/tralis/TralisAPI.js +0 -731
- package/api/tralis/TralisAPI.test.js +0 -75
- package/api/tralis/TralisAPIUtils.js +0 -73
- package/api/tralis/WebSocketConnector.js +0 -338
- package/api/tralis/WebSocketConnector.test.js +0 -356
- package/api/tralis/typedefs.js +0 -81
- package/common/Tracker.js +0 -197
- package/common/api/api.js +0 -64
- package/common/api/api.test.js +0 -68
- package/common/controls/Control.js +0 -146
- package/common/controls/Control.test.js +0 -98
- package/common/layers/Layer.js +0 -404
- package/common/layers/Layer.test.js +0 -585
- package/common/mixins/CopyrightMixin.js +0 -48
- package/common/mixins/SearchMixin.js +0 -176
- package/common/mixins/TralisLayerMixin.js +0 -930
- package/common/styles/index.js +0 -4
- package/common/styles/trackerDefaultStyle.js +0 -333
- package/common/styles/trackerSimpleStyle.js +0 -22
- package/common/trackerConfig.js +0 -190
- package/common/trackerConfig.test.js +0 -25
- package/common/typedefs.js +0 -23
- package/common/utils/createTrackerFilters.js +0 -87
- package/common/utils/createTrackerFilters.test.js +0 -95
- package/common/utils/getMapboxMapCopyrights.js +0 -32
- package/common/utils/getMapboxMapCopyrights.test.js +0 -47
- package/common/utils/getMapboxStyleUrl.js +0 -32
- package/common/utils/getVehiclePosition.js +0 -72
- package/common/utils/index.js +0 -6
- package/common/utils/removeDuplicate.js +0 -22
- package/common/utils/removeDuplicate.test.js +0 -22
- package/common/utils/sortByDelay.js +0 -23
- package/common/utils/timeUtils.js +0 -44
- package/common/utils/timeUtils.test.js +0 -16
- package/index.js +0 -2
- package/index.js.map +0 -1
- package/mapbox/controls/CopyrightControl.js +0 -58
- package/mapbox/index.js +0 -3
- package/mapbox/layers/Layer.js +0 -118
- package/mapbox/layers/Layer.test.js +0 -202
- package/mapbox/layers/TralisLayer.js +0 -329
- package/mapbox/layers/TralisLayer.test.js +0 -40
- package/mapbox/utils.js +0 -46
- package/module.js +0 -23
- package/ol/README.md +0 -0
- package/ol/controls/CopyrightControl.js +0 -80
- package/ol/controls/CopyrightControl.test.js +0 -211
- package/ol/controls/RoutingControl.js +0 -752
- package/ol/controls/RoutingControl.test.js +0 -216
- package/ol/controls/StopFinderControl.js +0 -38
- package/ol/controls/StopFinderControl.test.js +0 -59
- package/ol/controls/snapshots/RoutingControlRouteGen10.json +0 -58
- package/ol/controls/snapshots/RoutingControlRouteGen100.json +0 -292
- package/ol/controls/snapshots/RoutingControlRouteGen30.json +0 -69
- package/ol/controls/snapshots/RoutingControlRouteGen5.json +0 -58
- package/ol/controls/snapshots/RoutingControlRouteOSM.json +0 -759
- package/ol/controls/snapshots/RoutingControlStation1.json +0 -60
- package/ol/controls/snapshots/RoutingControlStation2.json +0 -49
- package/ol/index.js +0 -13
- package/ol/layers/Layer.js +0 -193
- package/ol/layers/Layer.test.js +0 -197
- package/ol/layers/MapboxLayer.js +0 -378
- package/ol/layers/MapboxLayer.test.js +0 -186
- package/ol/layers/MapboxStyleLayer.js +0 -417
- package/ol/layers/MapboxStyleLayer.test.js +0 -262
- package/ol/layers/MaplibreLayer.js +0 -280
- package/ol/layers/RoutingLayer.js +0 -91
- package/ol/layers/RoutingLayer.test.js +0 -49
- package/ol/layers/TralisLayer.js +0 -359
- package/ol/layers/TralisLayer.test.js +0 -97
- package/ol/layers/VectorLayer.js +0 -43
- package/ol/layers/VectorLayer.test.js +0 -98
- package/ol/layers/WMSLayer.js +0 -80
- package/ol/layers/WMSLayer.test.js +0 -84
- package/ol/styles/fullTrajectoryDelayStyle.js +0 -35
- package/ol/styles/fullTrajectoryStyle.js +0 -51
- package/ol/styles/index.js +0 -2
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"type": "FeatureCollection",
|
|
3
|
-
"features": [
|
|
4
|
-
{
|
|
5
|
-
"type": "Feature",
|
|
6
|
-
"properties": {
|
|
7
|
-
"uid": "a4dca961d199ff76",
|
|
8
|
-
"name": "Z\u00fcrich HB",
|
|
9
|
-
"country_code": "CH",
|
|
10
|
-
"rank": null,
|
|
11
|
-
"translated_names": [],
|
|
12
|
-
"mot": {
|
|
13
|
-
"bus": false,
|
|
14
|
-
"rail": true,
|
|
15
|
-
"tram": false,
|
|
16
|
-
"ferry": false,
|
|
17
|
-
"subway": false,
|
|
18
|
-
"gondola": false,
|
|
19
|
-
"cable_car": false,
|
|
20
|
-
"funicular": false
|
|
21
|
-
},
|
|
22
|
-
"platforms": {
|
|
23
|
-
"rail": [
|
|
24
|
-
"3",
|
|
25
|
-
"4",
|
|
26
|
-
"5",
|
|
27
|
-
"6",
|
|
28
|
-
"7",
|
|
29
|
-
"8",
|
|
30
|
-
"9",
|
|
31
|
-
"10",
|
|
32
|
-
"11",
|
|
33
|
-
"12",
|
|
34
|
-
"13",
|
|
35
|
-
"14",
|
|
36
|
-
"15",
|
|
37
|
-
"16",
|
|
38
|
-
"17",
|
|
39
|
-
"18",
|
|
40
|
-
"21",
|
|
41
|
-
"22",
|
|
42
|
-
"31",
|
|
43
|
-
"32",
|
|
44
|
-
"33",
|
|
45
|
-
"34",
|
|
46
|
-
"41",
|
|
47
|
-
"42",
|
|
48
|
-
"43",
|
|
49
|
-
"44"
|
|
50
|
-
]
|
|
51
|
-
},
|
|
52
|
-
"ifopt": null,
|
|
53
|
-
"ident_source": "sbb",
|
|
54
|
-
"id": "8503000",
|
|
55
|
-
"code": "ZUE"
|
|
56
|
-
},
|
|
57
|
-
"geometry": { "type": "Point", "coordinates": [8.540212, 47.378177] }
|
|
58
|
-
}
|
|
59
|
-
]
|
|
60
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"type": "FeatureCollection",
|
|
3
|
-
"features": [
|
|
4
|
-
{
|
|
5
|
-
"type": "Feature",
|
|
6
|
-
"properties": {
|
|
7
|
-
"uid": "e3666f03cba06b2b",
|
|
8
|
-
"name": "Luzern",
|
|
9
|
-
"country_code": "CH",
|
|
10
|
-
"rank": null,
|
|
11
|
-
"translated_names": [],
|
|
12
|
-
"mot": {
|
|
13
|
-
"bus": false,
|
|
14
|
-
"rail": true,
|
|
15
|
-
"tram": false,
|
|
16
|
-
"ferry": false,
|
|
17
|
-
"subway": false,
|
|
18
|
-
"gondola": false,
|
|
19
|
-
"cable_car": false,
|
|
20
|
-
"funicular": false
|
|
21
|
-
},
|
|
22
|
-
"platforms": {
|
|
23
|
-
"rail": [
|
|
24
|
-
"1",
|
|
25
|
-
"2",
|
|
26
|
-
"3",
|
|
27
|
-
"4",
|
|
28
|
-
"5",
|
|
29
|
-
"6",
|
|
30
|
-
"7",
|
|
31
|
-
"8",
|
|
32
|
-
"9",
|
|
33
|
-
"10",
|
|
34
|
-
"11",
|
|
35
|
-
"12",
|
|
36
|
-
"13",
|
|
37
|
-
"14",
|
|
38
|
-
"15"
|
|
39
|
-
]
|
|
40
|
-
},
|
|
41
|
-
"ifopt": null,
|
|
42
|
-
"ident_source": "sbb",
|
|
43
|
-
"id": "8505000",
|
|
44
|
-
"code": "LZ"
|
|
45
|
-
},
|
|
46
|
-
"geometry": { "type": "Point", "coordinates": [8.310183, 47.050178] }
|
|
47
|
-
}
|
|
48
|
-
]
|
|
49
|
-
}
|
package/ol/index.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
export { default as Layer } from './layers/Layer';
|
|
2
|
-
export { default as MapboxLayer } from './layers/MapboxLayer';
|
|
3
|
-
export { default as MaplibreLayer } from './layers/MaplibreLayer';
|
|
4
|
-
export { default as MapboxStyleLayer } from './layers/MapboxStyleLayer';
|
|
5
|
-
export { default as RoutingLayer } from './layers/RoutingLayer';
|
|
6
|
-
export { default as TralisLayer } from './layers/TralisLayer';
|
|
7
|
-
export { default as VectorLayer } from './layers/VectorLayer';
|
|
8
|
-
export { default as WMSLayer } from './layers/WMSLayer';
|
|
9
|
-
export { default as CopyrightControl } from './controls/CopyrightControl';
|
|
10
|
-
export { default as RoutingControl } from './controls/RoutingControl';
|
|
11
|
-
export { default as StopFinderControl } from './controls/StopFinderControl';
|
|
12
|
-
export * from '../common/styles';
|
|
13
|
-
export * from './styles';
|
package/ol/layers/Layer.js
DELETED
|
@@ -1,193 +0,0 @@
|
|
|
1
|
-
import { unByKey } from 'ol/Observable';
|
|
2
|
-
import Group from 'ol/layer/Group';
|
|
3
|
-
import LayerCommon from '../../common/layers/Layer';
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* A class representing a layer to display on an OpenLayers map.
|
|
7
|
-
*
|
|
8
|
-
* @example
|
|
9
|
-
* import { Layer } from 'mobility-toolbox-js/ol';
|
|
10
|
-
*
|
|
11
|
-
* const layer = new Layer({
|
|
12
|
-
* olLayer: ...,
|
|
13
|
-
* });
|
|
14
|
-
*
|
|
15
|
-
* @see <a href="/example/ol-map">Map example</a>
|
|
16
|
-
*
|
|
17
|
-
* @classproperty {ol/Map~Map} map - The map where the layer is displayed.
|
|
18
|
-
* @extends {Layer}
|
|
19
|
-
*/
|
|
20
|
-
class Layer extends LayerCommon {
|
|
21
|
-
/**
|
|
22
|
-
* Constructor.
|
|
23
|
-
*
|
|
24
|
-
* @param {Object} options
|
|
25
|
-
* @param {ol/layer/Layer~Layer} options.olLayer The layer (required).
|
|
26
|
-
* @param {string} [options.name=uuid()] Layer name. Default use a generated uuid.
|
|
27
|
-
* @param {string} [options.key=uuid().toLowerCase()] Layer key, will use options.name.toLowerCase() if not specified.
|
|
28
|
-
* @param {string} [options.copyright=undefined] Copyright-Statement.
|
|
29
|
-
* @param {Array<Layer>} [options.children=[]] Sublayers.
|
|
30
|
-
* @param {Object} [options.properties={}] Application-specific layer properties.
|
|
31
|
-
* @param {boolean} [options.visible=true] If true this layer is the currently visible layer on the map.
|
|
32
|
-
* @param {boolean} [options.isBaseLayer=false] If true this layer is a baseLayer.
|
|
33
|
-
* @param {boolean} [options.isQueryable=true] If true feature information can be queried by the react-spatial LayerService. Default is true.
|
|
34
|
-
* @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.
|
|
35
|
-
*/
|
|
36
|
-
constructor(options) {
|
|
37
|
-
super(options);
|
|
38
|
-
|
|
39
|
-
if (this.olLayer) {
|
|
40
|
-
this.olLayer.setVisible(this.visible);
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
/**
|
|
45
|
-
* Define layer's properties.
|
|
46
|
-
*
|
|
47
|
-
* @ignore
|
|
48
|
-
*/
|
|
49
|
-
defineProperties(options) {
|
|
50
|
-
super.defineProperties(options);
|
|
51
|
-
Object.defineProperties(this, {
|
|
52
|
-
olLayer: { value: options.olLayer, writable: true },
|
|
53
|
-
olListenersKeys: {
|
|
54
|
-
value: [],
|
|
55
|
-
},
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
/**
|
|
60
|
-
* Initialize the layer and listen to feature clicks.
|
|
61
|
-
* @param {ol/Map~Map} map
|
|
62
|
-
*/
|
|
63
|
-
init(map) {
|
|
64
|
-
super.init(map);
|
|
65
|
-
|
|
66
|
-
if (!this.map) {
|
|
67
|
-
return;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
if (this.map && this.olLayer) {
|
|
71
|
-
this.map.addLayer(this.olLayer);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
this.olListenersKeys.push(
|
|
75
|
-
this.map.getLayers().on('remove', (evt) => {
|
|
76
|
-
if (evt.element === this.olLayer) {
|
|
77
|
-
this.terminate();
|
|
78
|
-
}
|
|
79
|
-
}),
|
|
80
|
-
);
|
|
81
|
-
|
|
82
|
-
if (this.isClickActive || this.isHoverActive) {
|
|
83
|
-
this.toggleVisibleListeners();
|
|
84
|
-
this.olListenersKeys.push(
|
|
85
|
-
this.on('change:visible', this.toggleVisibleListeners),
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
// We set the copyright to the source used by the layer.
|
|
90
|
-
if (this.copyrights && this.olLayer) {
|
|
91
|
-
const attributions = this.copyrights || [];
|
|
92
|
-
if (this.olLayer instanceof Group) {
|
|
93
|
-
this.olLayer
|
|
94
|
-
.getLayers()
|
|
95
|
-
.getArray()
|
|
96
|
-
.forEach((layer) => {
|
|
97
|
-
layer.getSource().setAttributions(attributions);
|
|
98
|
-
});
|
|
99
|
-
} else if (this.olLayer.getSource) {
|
|
100
|
-
this.olLayer.getSource().setAttributions(attributions);
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
/**
|
|
106
|
-
* Terminate what was initialized in init function. Remove layer, events...
|
|
107
|
-
*/
|
|
108
|
-
terminate() {
|
|
109
|
-
unByKey(this.olListenersKeys);
|
|
110
|
-
|
|
111
|
-
if (this.map && this.olLayer) {
|
|
112
|
-
this.map.removeLayer(this.olLayer);
|
|
113
|
-
}
|
|
114
|
-
|
|
115
|
-
super.terminate();
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
/**
|
|
119
|
-
* Change the visibility of the layer
|
|
120
|
-
*
|
|
121
|
-
* @param {boolean} visible Defines the visibility of the layer
|
|
122
|
-
* @param {boolean} [stopPropagationDown]
|
|
123
|
-
* @param {boolean} [stopPropagationUp]
|
|
124
|
-
* @param {boolean} [stopPropagationSiblings]
|
|
125
|
-
*/
|
|
126
|
-
setVisible(
|
|
127
|
-
visible,
|
|
128
|
-
stopPropagationDown = false,
|
|
129
|
-
stopPropagationUp = false,
|
|
130
|
-
stopPropagationSiblings = false,
|
|
131
|
-
) {
|
|
132
|
-
if (visible === this.visible) {
|
|
133
|
-
return;
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
super.setVisible(
|
|
137
|
-
visible,
|
|
138
|
-
stopPropagationDown,
|
|
139
|
-
stopPropagationUp,
|
|
140
|
-
stopPropagationSiblings,
|
|
141
|
-
);
|
|
142
|
-
|
|
143
|
-
if (this.olLayer) {
|
|
144
|
-
this.olLayer.setVisible(this.visible);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
/**
|
|
149
|
-
* Toggle listeners needed when a layer is avisible or not.
|
|
150
|
-
* @private
|
|
151
|
-
*/
|
|
152
|
-
toggleVisibleListeners() {
|
|
153
|
-
// Remove previous event
|
|
154
|
-
if (this.isClickListenerKey && this.isHoverListenerKey) {
|
|
155
|
-
[this.isClickListenerKey, this.isHoverListenerKey].forEach((key) => {
|
|
156
|
-
const index = this.olListenersKeys.indexOf(key);
|
|
157
|
-
if (index > -1) {
|
|
158
|
-
this.olListenersKeys.splice(index, 1);
|
|
159
|
-
}
|
|
160
|
-
unByKey([this.isHoverListenerKey, this.isClickListenerKey]);
|
|
161
|
-
});
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
if (this.visible) {
|
|
165
|
-
if (this.isClickActive) {
|
|
166
|
-
this.isClickListenerKey = this.map.on(
|
|
167
|
-
'singleclick',
|
|
168
|
-
this.onUserClickCallback,
|
|
169
|
-
);
|
|
170
|
-
}
|
|
171
|
-
if (this.isHoverActive) {
|
|
172
|
-
this.isHoverListenerKey = this.map.on(
|
|
173
|
-
'pointermove',
|
|
174
|
-
this.onUserMoveCallback,
|
|
175
|
-
);
|
|
176
|
-
}
|
|
177
|
-
this.olListenersKeys.push(
|
|
178
|
-
this.isClickListenerKey,
|
|
179
|
-
this.isHoverListenerKey,
|
|
180
|
-
);
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
|
|
184
|
-
/**
|
|
185
|
-
* Create a copy of the Layer.
|
|
186
|
-
* @param {Object} newOptions Options to override
|
|
187
|
-
* @return {Layer} A Layer
|
|
188
|
-
*/
|
|
189
|
-
clone(newOptions) {
|
|
190
|
-
return new Layer({ ...this.options, ...newOptions });
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
export default Layer;
|
package/ol/layers/Layer.test.js
DELETED
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
import VectorLayer from 'ol/layer/Vector';
|
|
2
|
-
import VectorSource from 'ol/source/Vector';
|
|
3
|
-
import Map from 'ol/Map';
|
|
4
|
-
import Group from 'ol/layer/Group';
|
|
5
|
-
import Layer from './Layer';
|
|
6
|
-
|
|
7
|
-
let olLayer;
|
|
8
|
-
let map;
|
|
9
|
-
|
|
10
|
-
describe('Layer', () => {
|
|
11
|
-
beforeEach(() => {
|
|
12
|
-
map = new Map({});
|
|
13
|
-
olLayer = new VectorLayer({ source: new VectorSource() });
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
test('should initialize.', () => {
|
|
17
|
-
const layer = new Layer({ name: 'Layer', olLayer });
|
|
18
|
-
expect(layer).toBeInstanceOf(Layer);
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
test('should be visible by default.', () => {
|
|
22
|
-
const layer = new Layer({ name: 'Layer', olLayer });
|
|
23
|
-
expect(layer.visible).toBe(true);
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
test('should be invisible if defined.', () => {
|
|
27
|
-
const layer = new Layer({ name: 'Layer', visible: false, olLayer });
|
|
28
|
-
expect(layer.visible).toBe(false);
|
|
29
|
-
});
|
|
30
|
-
|
|
31
|
-
test('should be invisible if set.', () => {
|
|
32
|
-
const layer = new Layer({ name: 'Layer', olLayer });
|
|
33
|
-
layer.setVisible(false);
|
|
34
|
-
expect(layer.visible).toBe(false);
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
test('should visibility stay unchanged', () => {
|
|
38
|
-
const layer = new Layer({ name: 'Layer', visible: false, olLayer });
|
|
39
|
-
layer.setVisible(false);
|
|
40
|
-
expect(layer.visible).toBe(false);
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
test('should return its name.', () => {
|
|
44
|
-
const layer = new Layer({ name: 'Layer', visible: false, olLayer });
|
|
45
|
-
expect(layer.name).toEqual('Layer');
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
test('should call terminate on initialization.', () => {
|
|
49
|
-
const layer = new Layer({ name: 'Layer', olLayer });
|
|
50
|
-
const spy = jest.spyOn(layer, 'terminate');
|
|
51
|
-
layer.init();
|
|
52
|
-
expect(spy).toHaveBeenCalledTimes(1);
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
test('should remove the layer when we call terminate.', () => {
|
|
56
|
-
const layer = new Layer({ name: 'Layer', olLayer });
|
|
57
|
-
const spy = jest.spyOn(layer, 'terminate');
|
|
58
|
-
layer.init(map);
|
|
59
|
-
expect(spy).toHaveBeenCalledTimes(1);
|
|
60
|
-
layer.terminate(map);
|
|
61
|
-
expect(spy).toHaveBeenCalledTimes(2);
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
test('should manage copyrights as string.', () => {
|
|
65
|
-
const spy = jest.spyOn(VectorSource.prototype, 'setAttributions');
|
|
66
|
-
const layer = new Layer({ name: 'Layer', copyrights: 'foo', olLayer });
|
|
67
|
-
layer.init(map);
|
|
68
|
-
expect(spy).toHaveBeenCalledWith(['foo']);
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
test('should manage copyrights as array.', () => {
|
|
72
|
-
const spy = jest.spyOn(VectorSource.prototype, 'setAttributions');
|
|
73
|
-
const layer = new Layer({ name: 'Layer', copyrights: ['bar'], olLayer });
|
|
74
|
-
layer.init(map);
|
|
75
|
-
expect(spy).toHaveBeenCalledWith(['bar']);
|
|
76
|
-
});
|
|
77
|
-
|
|
78
|
-
test('should set attributions for Group.', () => {
|
|
79
|
-
const spy = jest.spyOn(VectorSource.prototype, 'setAttributions');
|
|
80
|
-
const layer = new Layer({
|
|
81
|
-
name: 'Layer',
|
|
82
|
-
copyrights: ['bar'],
|
|
83
|
-
olLayer: new Group({ layers: [olLayer] }),
|
|
84
|
-
});
|
|
85
|
-
layer.init(map);
|
|
86
|
-
expect(spy).toHaveBeenCalledWith(['bar']);
|
|
87
|
-
});
|
|
88
|
-
|
|
89
|
-
test('should listen for click/hover events when layer is visible by default then should not when hidden.', async () => {
|
|
90
|
-
global.console.error = jest.fn();
|
|
91
|
-
const layer = new Layer({ name: 'Layer', olLayer });
|
|
92
|
-
expect(layer.visible).toBe(true);
|
|
93
|
-
const spy = jest.fn();
|
|
94
|
-
const spy2 = jest.fn();
|
|
95
|
-
layer.init(map);
|
|
96
|
-
layer.onHover(spy);
|
|
97
|
-
layer.onClick(spy2);
|
|
98
|
-
expect(spy).toHaveBeenCalledTimes(0);
|
|
99
|
-
expect(spy2).toHaveBeenCalledTimes(0);
|
|
100
|
-
|
|
101
|
-
await map.dispatchEvent({ type: 'pointermove', map, coordinate: [0, 0] });
|
|
102
|
-
await map.dispatchEvent({ type: 'singleclick', map, coordinate: [0, 0] });
|
|
103
|
-
expect(spy).toHaveBeenCalledTimes(1);
|
|
104
|
-
expect(spy2).toHaveBeenCalledTimes(1);
|
|
105
|
-
spy.mockReset();
|
|
106
|
-
spy2.mockReset();
|
|
107
|
-
|
|
108
|
-
layer.setVisible(false);
|
|
109
|
-
await map.dispatchEvent({ type: 'pointermove', map, coordinate: [0, 0] });
|
|
110
|
-
await map.dispatchEvent({ type: 'singleclick', map, coordinate: [0, 0] });
|
|
111
|
-
expect(spy).toHaveBeenCalledTimes(0);
|
|
112
|
-
expect(spy2).toHaveBeenCalledTimes(0);
|
|
113
|
-
global.console.error.mockRestore();
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
test('should not listen for click/hover events when layer is not visible by default then should not when visible.', async () => {
|
|
117
|
-
global.console.error = jest.fn();
|
|
118
|
-
const layer = new Layer({ name: 'Layer', olLayer, visible: false });
|
|
119
|
-
expect(layer.visible).toBe(false);
|
|
120
|
-
const spy = jest.fn();
|
|
121
|
-
const spy2 = jest.fn();
|
|
122
|
-
layer.init(map);
|
|
123
|
-
layer.onHover(spy);
|
|
124
|
-
layer.onClick(spy2);
|
|
125
|
-
expect(spy).toHaveBeenCalledTimes(0);
|
|
126
|
-
expect(spy2).toHaveBeenCalledTimes(0);
|
|
127
|
-
|
|
128
|
-
await map.dispatchEvent({ type: 'pointermove', map, coordinate: [0, 0] });
|
|
129
|
-
await map.dispatchEvent({ type: 'singleclick', map, coordinate: [0, 0] });
|
|
130
|
-
expect(spy).toHaveBeenCalledTimes(0);
|
|
131
|
-
expect(spy2).toHaveBeenCalledTimes(0);
|
|
132
|
-
spy.mockReset();
|
|
133
|
-
spy2.mockReset();
|
|
134
|
-
|
|
135
|
-
layer.setVisible(true);
|
|
136
|
-
await map.dispatchEvent({ type: 'pointermove', map, coordinate: [0, 0] });
|
|
137
|
-
await map.dispatchEvent({ type: 'singleclick', map, coordinate: [0, 0] });
|
|
138
|
-
expect(spy).toHaveBeenCalledTimes(1);
|
|
139
|
-
expect(spy2).toHaveBeenCalledTimes(1);
|
|
140
|
-
global.console.error.mockRestore();
|
|
141
|
-
});
|
|
142
|
-
|
|
143
|
-
test('should not listen for click/hover events after layer.terminate()', async () => {
|
|
144
|
-
global.console.error = jest.fn();
|
|
145
|
-
const layer = new Layer({ name: 'Layer', olLayer, visible: true });
|
|
146
|
-
expect(layer.visible).toBe(true);
|
|
147
|
-
const spy = jest.fn();
|
|
148
|
-
const spy2 = jest.fn();
|
|
149
|
-
layer.init(map);
|
|
150
|
-
layer.onHover(spy);
|
|
151
|
-
layer.onClick(spy2);
|
|
152
|
-
expect(spy).toHaveBeenCalledTimes(0);
|
|
153
|
-
expect(spy2).toHaveBeenCalledTimes(0);
|
|
154
|
-
|
|
155
|
-
await map.dispatchEvent({
|
|
156
|
-
type: 'pointermove',
|
|
157
|
-
map,
|
|
158
|
-
coordinate: [0, 0],
|
|
159
|
-
});
|
|
160
|
-
await map.dispatchEvent({
|
|
161
|
-
type: 'singleclick',
|
|
162
|
-
map,
|
|
163
|
-
coordinate: [0, 0],
|
|
164
|
-
});
|
|
165
|
-
expect(spy).toHaveBeenCalledTimes(1);
|
|
166
|
-
expect(spy2).toHaveBeenCalledTimes(1);
|
|
167
|
-
spy.mockReset();
|
|
168
|
-
spy2.mockReset();
|
|
169
|
-
|
|
170
|
-
layer.terminate(map);
|
|
171
|
-
await map.dispatchEvent({
|
|
172
|
-
type: 'pointermove',
|
|
173
|
-
map,
|
|
174
|
-
coordinate: [0, 0],
|
|
175
|
-
});
|
|
176
|
-
await map.dispatchEvent({
|
|
177
|
-
type: 'singleclick',
|
|
178
|
-
map,
|
|
179
|
-
coordinate: [0, 0],
|
|
180
|
-
});
|
|
181
|
-
expect(spy).toHaveBeenCalledTimes(0);
|
|
182
|
-
expect(spy2).toHaveBeenCalledTimes(0);
|
|
183
|
-
global.console.error.mockRestore();
|
|
184
|
-
});
|
|
185
|
-
|
|
186
|
-
test('should clone', () => {
|
|
187
|
-
const layer = new Layer({
|
|
188
|
-
name: 'Layer',
|
|
189
|
-
copyrights: ['bar'],
|
|
190
|
-
olLayer: new Group({ layers: [olLayer] }),
|
|
191
|
-
});
|
|
192
|
-
const clone = layer.clone({ name: 'clone' });
|
|
193
|
-
expect(clone).not.toBe(layer);
|
|
194
|
-
expect(clone.name).toBe('clone');
|
|
195
|
-
expect(clone).toBeInstanceOf(Layer);
|
|
196
|
-
});
|
|
197
|
-
});
|