mobility-toolbox-js 2.0.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/RealtimeAPI.d.ts +279 -0
- package/api/RealtimeAPI.d.ts.map +1 -0
- package/api/RealtimeAPI.js +466 -0
- package/api/RoutingAPI.d.ts +37 -0
- package/api/RoutingAPI.d.ts.map +1 -0
- package/api/RoutingAPI.js +35 -0
- package/api/StopsAPI.d.ts +38 -0
- package/api/StopsAPI.d.ts.map +1 -0
- package/api/StopsAPI.js +36 -0
- package/api/index.d.ts +4 -0
- package/api/index.d.ts.map +1 -0
- package/api/index.js +3 -3
- package/api/typedefs.d.ts +179 -0
- package/api/typedefs.d.ts.map +1 -0
- package/api/{tralis/typedefs.js → typedefs.js} +4 -10
- package/common/api/HttpAPI.d.ts +31 -0
- package/common/api/HttpAPI.d.ts.map +1 -0
- package/common/api/HttpAPI.js +57 -0
- package/common/api/WebSocketAPI.d.ts +153 -0
- package/common/api/WebSocketAPI.d.ts.map +1 -0
- package/common/api/WebSocketAPI.js +341 -0
- package/common/controls/ControlCommon.d.ts +76 -0
- package/common/controls/ControlCommon.d.ts.map +1 -0
- package/common/controls/ControlCommon.js +150 -0
- package/common/controls/CopyrightControlCommon.d.ts +13 -0
- package/common/controls/CopyrightControlCommon.d.ts.map +1 -0
- package/common/controls/CopyrightControlCommon.js +34 -0
- package/common/controls/StopFinderControlCommon.d.ts +55 -0
- package/common/controls/StopFinderControlCommon.d.ts.map +1 -0
- package/common/controls/StopFinderControlCommon.js +144 -0
- package/common/index.d.ts +3 -0
- package/common/index.d.ts.map +1 -0
- package/common/index.js +2 -0
- package/common/layers/LayerCommon.d.ts +94 -0
- package/common/layers/LayerCommon.d.ts.map +1 -0
- package/common/layers/LayerCommon.js +244 -0
- package/common/mixins/RealtimeLayerMixin.d.ts +286 -0
- package/common/mixins/RealtimeLayerMixin.d.ts.map +1 -0
- package/common/mixins/RealtimeLayerMixin.js +776 -0
- package/common/mixins/UserInteractionsLayerMixin.d.ts +60 -0
- package/common/mixins/UserInteractionsLayerMixin.d.ts.map +1 -0
- package/common/mixins/UserInteractionsLayerMixin.js +241 -0
- package/common/styles/index.d.ts +5 -0
- package/common/styles/index.d.ts.map +1 -0
- package/common/styles/index.js +4 -4
- package/common/styles/realtimeDefaultStyle.d.ts +36 -0
- package/common/styles/realtimeDefaultStyle.d.ts.map +1 -0
- package/common/styles/realtimeDefaultStyle.js +275 -0
- package/common/styles/{trackerDelayStyle.js → realtimeDelayStyle.d.ts} +4 -9
- package/common/styles/realtimeDelayStyle.d.ts.map +1 -0
- package/common/styles/realtimeDelayStyle.js +13 -0
- package/common/styles/realtimeHeadingStyle.d.ts +12 -0
- package/common/styles/realtimeHeadingStyle.d.ts.map +1 -0
- package/common/styles/realtimeHeadingStyle.js +85 -0
- package/common/styles/realtimeSimpleStyle.d.ts +4 -0
- package/common/styles/realtimeSimpleStyle.d.ts.map +1 -0
- package/common/styles/realtimeSimpleStyle.js +23 -0
- package/common/typedefs.d.ts +111 -0
- package/common/typedefs.d.ts.map +1 -0
- package/common/typedefs.js +35 -6
- package/common/utils/compareDepartures.d.ts +11 -0
- package/common/utils/compareDepartures.d.ts.map +1 -0
- package/common/utils/compareDepartures.js +35 -0
- package/common/utils/createCanvas.d.ts +10 -0
- package/common/utils/createCanvas.d.ts.map +1 -0
- package/common/utils/createCanvas.js +27 -0
- package/common/utils/createRealtimeFilters.d.ts +13 -0
- package/common/utils/createRealtimeFilters.d.ts.map +1 -0
- package/common/utils/createRealtimeFilters.js +74 -0
- package/common/utils/debounceDeparturesMessages.d.ts +12 -0
- package/common/utils/debounceDeparturesMessages.d.ts.map +1 -0
- package/common/utils/debounceDeparturesMessages.js +24 -0
- package/common/utils/debounceWebsocketMessages.d.ts +11 -0
- package/common/utils/debounceWebsocketMessages.d.ts.map +1 -0
- package/common/utils/debounceWebsocketMessages.js +29 -0
- package/common/utils/getLayersAsFlatArray.d.ts +3 -0
- package/common/utils/getLayersAsFlatArray.d.ts.map +1 -0
- package/common/utils/getLayersAsFlatArray.js +15 -0
- package/common/utils/getMapboxMapCopyrights.d.ts +18 -0
- package/common/utils/getMapboxMapCopyrights.d.ts.map +1 -0
- package/common/utils/getMapboxMapCopyrights.js +21 -23
- package/common/utils/getMapboxRender.d.ts +7 -0
- package/common/utils/getMapboxRender.d.ts.map +1 -0
- package/common/utils/getMapboxRender.js +87 -0
- package/common/utils/getMaplibreRender.d.ts +7 -0
- package/common/utils/getMaplibreRender.d.ts.map +1 -0
- package/common/utils/getMaplibreRender.js +38 -0
- package/common/utils/getRealtimeModeSuffix.d.ts +10 -0
- package/common/utils/getRealtimeModeSuffix.d.ts.map +1 -0
- package/common/utils/getRealtimeModeSuffix.js +7 -0
- package/common/utils/getUrlWithParams.d.ts +9 -0
- package/common/utils/getUrlWithParams.d.ts.map +1 -0
- package/common/utils/getUrlWithParams.js +18 -0
- package/common/utils/getVehiclePosition.d.ts +16 -0
- package/common/utils/getVehiclePosition.d.ts.map +1 -0
- package/common/utils/getVehiclePosition.js +60 -60
- package/common/utils/index.d.ts +17 -0
- package/common/utils/index.d.ts.map +1 -0
- package/common/utils/index.js +13 -2
- package/common/utils/realtimeConfig.d.ts +49 -0
- package/common/utils/realtimeConfig.d.ts.map +1 -0
- package/common/utils/realtimeConfig.js +173 -0
- package/common/utils/removeDuplicate.d.ts +10 -0
- package/common/utils/removeDuplicate.d.ts.map +1 -0
- package/common/utils/removeDuplicate.js +5 -12
- package/common/utils/renderTrajectories.d.ts +17 -0
- package/common/utils/renderTrajectories.d.ts.map +1 -0
- package/common/utils/renderTrajectories.js +110 -0
- package/common/utils/sortAndFilterDepartures.d.ts +16 -0
- package/common/utils/sortAndFilterDepartures.d.ts.map +1 -0
- package/common/utils/sortAndFilterDepartures.js +58 -0
- package/common/utils/sortByDelay.d.ts +3 -0
- package/common/utils/sortByDelay.d.ts.map +1 -0
- package/common/utils/sortByDelay.js +17 -20
- package/common/utils/timeUtils.d.ts +24 -0
- package/common/utils/timeUtils.d.ts.map +1 -0
- package/common/utils/timeUtils.js +13 -18
- package/iife.d.ts +3 -0
- package/iife.d.ts.map +1 -0
- package/iife.js +5 -0
- package/index.d.ts +10 -0
- package/index.d.ts.map +1 -0
- package/index.js +10 -2
- package/mapbox/controls/CopyrightControl.d.ts +29 -0
- package/mapbox/controls/CopyrightControl.d.ts.map +1 -0
- package/mapbox/controls/CopyrightControl.js +25 -35
- package/mapbox/controls/index.d.ts +2 -0
- package/mapbox/controls/index.d.ts.map +1 -0
- package/mapbox/controls/index.js +2 -0
- package/mapbox/index.d.ts +6 -0
- package/mapbox/index.d.ts.map +1 -0
- package/mapbox/index.js +5 -3
- package/mapbox/layers/Layer.d.ts +59 -0
- package/mapbox/layers/Layer.d.ts.map +1 -0
- package/mapbox/layers/Layer.js +78 -95
- package/mapbox/layers/RealtimeLayer.d.ts +181 -0
- package/mapbox/layers/RealtimeLayer.d.ts.map +1 -0
- package/mapbox/layers/RealtimeLayer.js +276 -0
- package/mapbox/layers/index.d.ts +3 -0
- package/mapbox/layers/index.d.ts.map +1 -0
- package/mapbox/layers/index.js +2 -0
- package/mapbox/utils/getMercatorResolution.d.ts +9 -0
- package/mapbox/utils/getMercatorResolution.d.ts.map +1 -0
- package/mapbox/utils/getMercatorResolution.js +18 -0
- package/mapbox/utils/getSourceCoordinates.d.ts +9 -0
- package/mapbox/utils/getSourceCoordinates.d.ts.map +1 -0
- package/mapbox/utils/getSourceCoordinates.js +27 -0
- package/mapbox/utils/index.d.ts +3 -0
- package/mapbox/utils/index.d.ts.map +1 -0
- package/mapbox/utils/index.js +2 -0
- package/mbt.js +60005 -0
- package/mbt.js.map +7 -0
- package/mbt.min.js +1084 -0
- package/mbt.min.js.map +7 -0
- package/ol/controls/CopyrightControl.d.ts +31 -0
- package/ol/controls/CopyrightControl.d.ts.map +1 -0
- package/ol/controls/CopyrightControl.js +44 -56
- package/ol/controls/RoutingControl.d.ts +193 -0
- package/ol/controls/RoutingControl.d.ts.map +1 -0
- package/ol/controls/RoutingControl.js +546 -667
- package/ol/controls/StopFinderControl.d.ts +30 -0
- package/ol/controls/StopFinderControl.d.ts.map +1 -0
- package/ol/controls/StopFinderControl.js +10 -16
- package/ol/controls/index.d.ts +4 -0
- package/ol/controls/index.d.ts.map +1 -0
- package/ol/controls/index.js +3 -0
- package/ol/index.d.ts +6 -0
- package/ol/index.d.ts.map +1 -0
- package/ol/index.js +4 -12
- package/ol/layers/Layer.d.ts +86 -0
- package/ol/layers/Layer.d.ts.map +1 -0
- package/ol/layers/Layer.js +147 -166
- package/ol/layers/MapGlLayer.d.ts +67 -0
- package/ol/layers/MapGlLayer.d.ts.map +1 -0
- package/ol/layers/MapGlLayer.js +218 -0
- package/ol/layers/MapboxLayer.d.ts +50 -0
- package/ol/layers/MapboxLayer.d.ts.map +1 -0
- package/ol/layers/MapboxLayer.js +79 -348
- package/ol/layers/MapboxStyleLayer.d.ts +129 -0
- package/ol/layers/MapboxStyleLayer.d.ts.map +1 -0
- package/ol/layers/MapboxStyleLayer.js +329 -368
- package/ol/layers/MaplibreLayer.d.ts +28 -0
- package/ol/layers/MaplibreLayer.d.ts.map +1 -0
- package/ol/layers/MaplibreLayer.js +13 -259
- package/ol/layers/RealtimeLayer.d.ts +202 -0
- package/ol/layers/RealtimeLayer.d.ts.map +1 -0
- package/ol/layers/RealtimeLayer.js +340 -0
- package/ol/layers/RoutingLayer.d.ts +34 -0
- package/ol/layers/RoutingLayer.d.ts.map +1 -0
- package/ol/layers/RoutingLayer.js +62 -68
- package/ol/layers/VectorLayer.d.ts +25 -0
- package/ol/layers/VectorLayer.d.ts.map +1 -0
- package/ol/layers/VectorLayer.js +27 -32
- package/ol/layers/WMSLayer.d.ts +42 -0
- package/ol/layers/WMSLayer.d.ts.map +1 -0
- package/ol/layers/WMSLayer.js +74 -66
- package/ol/layers/index.d.ts +9 -0
- package/ol/layers/index.d.ts.map +1 -0
- package/ol/layers/index.js +8 -0
- package/ol/styles/fullTrajectoryDelayStyle.d.ts +4 -0
- package/ol/styles/fullTrajectoryDelayStyle.d.ts.map +1 -0
- package/ol/styles/fullTrajectoryDelayStyle.js +23 -25
- package/ol/styles/fullTrajectoryStyle.d.ts +5 -0
- package/ol/styles/fullTrajectoryStyle.d.ts.map +1 -0
- package/ol/styles/fullTrajectoryStyle.js +37 -44
- package/ol/styles/index.d.ts +3 -0
- package/ol/styles/index.d.ts.map +1 -0
- package/package.json +98 -177
- package/setupTests.d.ts +2 -0
- package/setupTests.d.ts.map +1 -0
- package/setupTests.js +26 -0
- package/types/common.d.ts +122 -0
- package/types/index.d.ts +11 -0
- package/types/realtime.d.ts +320 -0
- package/types/routing.d.ts +206 -0
- package/types/stops.d.ts +143 -0
- package/README.md +0 -23
- 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/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/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/utils/createTrackerFilters.js +0 -87
- package/common/utils/createTrackerFilters.test.js +0 -95
- package/common/utils/getMapboxMapCopyrights.test.js +0 -47
- package/common/utils/getMapboxStyleUrl.js +0 -32
- package/common/utils/removeDuplicate.test.js +0 -22
- package/common/utils/timeUtils.test.js +0 -16
- package/index.js.map +0 -1
- 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.test.js +0 -211
- package/ol/controls/RoutingControl.test.js +0 -216
- 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/layers/Layer.test.js +0 -197
- package/ol/layers/MapboxLayer.test.js +0 -186
- package/ol/layers/MapboxStyleLayer.test.js +0 -262
- 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.test.js +0 -98
- package/ol/layers/WMSLayer.test.js +0 -84
|
@@ -1,585 +0,0 @@
|
|
|
1
|
-
import VectorLayer from 'ol/layer/Vector';
|
|
2
|
-
import VectorSource from 'ol/source/Vector';
|
|
3
|
-
import Layer from './Layer';
|
|
4
|
-
|
|
5
|
-
const olLayer = new VectorLayer({ source: new VectorSource() });
|
|
6
|
-
|
|
7
|
-
describe('Layer', () => {
|
|
8
|
-
test('should initialize.', () => {
|
|
9
|
-
const layer = new Layer({ name: 'Layer', olLayer });
|
|
10
|
-
expect(layer).toBeInstanceOf(Layer);
|
|
11
|
-
});
|
|
12
|
-
|
|
13
|
-
test('should define default properties.', () => {
|
|
14
|
-
const options = {
|
|
15
|
-
name: 'Layer',
|
|
16
|
-
olLayer,
|
|
17
|
-
};
|
|
18
|
-
const layer = new Layer(options);
|
|
19
|
-
|
|
20
|
-
expect(layer).toBeInstanceOf(Layer);
|
|
21
|
-
expect(layer.options).toEqual(options);
|
|
22
|
-
expect(layer.name).toEqual(options.name);
|
|
23
|
-
expect(layer.key).toEqual('layer');
|
|
24
|
-
expect(layer.isBaseLayer).toBe(false);
|
|
25
|
-
expect(layer.isBaseLayer).toBe(false);
|
|
26
|
-
expect(layer.isQueryable).toBe(true);
|
|
27
|
-
expect(layer.isClickActive).toBe(true);
|
|
28
|
-
expect(layer.isHoverActive).toBe(true);
|
|
29
|
-
expect(layer.hitTolerance).toBe(5);
|
|
30
|
-
expect(layer.isMobilityLayer).toBe(true);
|
|
31
|
-
expect(layer.copyrights).toBe();
|
|
32
|
-
expect(layer.visible).toBe(true);
|
|
33
|
-
expect(layer.properties).toEqual({});
|
|
34
|
-
expect(layer.map).toBe(undefined);
|
|
35
|
-
expect(layer.clickCallbacks).toEqual([]);
|
|
36
|
-
expect(layer.hoverCallbacks).toEqual([]);
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
test('should be visible by default.', () => {
|
|
40
|
-
const layer = new Layer({ name: 'Layer', olLayer });
|
|
41
|
-
expect(layer.visible).toBe(true);
|
|
42
|
-
});
|
|
43
|
-
|
|
44
|
-
test('should be hidden using constructor.', () => {
|
|
45
|
-
const layer = new Layer({ name: 'Layer', visible: false, olLayer });
|
|
46
|
-
expect(layer.visible).toBe(false);
|
|
47
|
-
});
|
|
48
|
-
|
|
49
|
-
test('should be hidden using setter.', () => {
|
|
50
|
-
const layer = new Layer({ name: 'Layer', olLayer });
|
|
51
|
-
layer.setVisible(false);
|
|
52
|
-
expect(layer.visible).toBe(false);
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
test('should visibility stay unchanged', () => {
|
|
56
|
-
const layer = new Layer({ name: 'Layer', visible: false, olLayer });
|
|
57
|
-
layer.setVisible(false);
|
|
58
|
-
expect(layer.visible).toBe(false);
|
|
59
|
-
});
|
|
60
|
-
|
|
61
|
-
test('should return its name.', () => {
|
|
62
|
-
const layer = new Layer({ name: 'Layer', visible: false, olLayer });
|
|
63
|
-
expect(layer.name).toEqual('Layer');
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
test('should set isClickActive and isHoverActive to false if isQueryable is set to false.', () => {
|
|
67
|
-
const options = {
|
|
68
|
-
name: 'Layer',
|
|
69
|
-
isQueryable: false,
|
|
70
|
-
isClickActive: true,
|
|
71
|
-
isHoverActive: true,
|
|
72
|
-
olLayer,
|
|
73
|
-
};
|
|
74
|
-
const layer = new Layer(options);
|
|
75
|
-
expect(layer).toBeInstanceOf(Layer);
|
|
76
|
-
expect(layer.isQueryable).toBe(false);
|
|
77
|
-
expect(layer.isClickActive).toBe(false);
|
|
78
|
-
expect(layer.isHoverActive).toBe(false);
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
test('should called terminate on initialization.', () => {
|
|
82
|
-
const layer = new Layer({ name: 'Layer', olLayer });
|
|
83
|
-
const spy = jest.spyOn(layer, 'terminate');
|
|
84
|
-
layer.init();
|
|
85
|
-
expect(spy).toHaveBeenCalledTimes(1);
|
|
86
|
-
});
|
|
87
|
-
|
|
88
|
-
test('should properties correctly set and get.', () => {
|
|
89
|
-
const layer = new Layer({
|
|
90
|
-
name: 'Layer',
|
|
91
|
-
olLayer,
|
|
92
|
-
properties: {
|
|
93
|
-
abc: 'foo',
|
|
94
|
-
},
|
|
95
|
-
});
|
|
96
|
-
expect(layer).toBeInstanceOf(Layer);
|
|
97
|
-
expect(layer.get('abc')).toEqual('foo');
|
|
98
|
-
|
|
99
|
-
layer.set('abc', 'bar');
|
|
100
|
-
expect(layer.get('abc')).toEqual('bar');
|
|
101
|
-
});
|
|
102
|
-
|
|
103
|
-
test('should set children', () => {
|
|
104
|
-
const layer = new Layer({
|
|
105
|
-
name: 'foo',
|
|
106
|
-
children: [
|
|
107
|
-
new Layer({
|
|
108
|
-
name: 'bar',
|
|
109
|
-
}),
|
|
110
|
-
new Layer({
|
|
111
|
-
name: 'foobar',
|
|
112
|
-
visible: false,
|
|
113
|
-
}),
|
|
114
|
-
],
|
|
115
|
-
});
|
|
116
|
-
expect(layer.getVisibleChildren().length).toBe(1);
|
|
117
|
-
expect(layer.hasVisibleChildren()).toBe(true);
|
|
118
|
-
});
|
|
119
|
-
|
|
120
|
-
test('should set onClick using constructor.', () => {
|
|
121
|
-
const fn = () => {};
|
|
122
|
-
const layer = new Layer({
|
|
123
|
-
name: 'Layer',
|
|
124
|
-
olLayer,
|
|
125
|
-
onClick: fn,
|
|
126
|
-
onHover: fn,
|
|
127
|
-
});
|
|
128
|
-
expect(layer.clickCallbacks[0]).toBe(fn);
|
|
129
|
-
expect(layer.hoverCallbacks[0]).toBe(fn);
|
|
130
|
-
});
|
|
131
|
-
|
|
132
|
-
test('should onClick throw error.', () => {
|
|
133
|
-
const layer = new Layer({ name: 'Layer', olLayer });
|
|
134
|
-
expect(() => {
|
|
135
|
-
layer.onClick('not of type function');
|
|
136
|
-
}).toThrow(Error);
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
test('should initialize copyrights property.', () => {
|
|
140
|
-
const layer = new Layer({
|
|
141
|
-
name: 'Layer',
|
|
142
|
-
olLayer,
|
|
143
|
-
copyrights: ['©: copyright', 'another copyright'],
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
expect(layer.copyrights[0]).toEqual('©: copyright');
|
|
147
|
-
});
|
|
148
|
-
|
|
149
|
-
test('should set and get copyright property.', () => {
|
|
150
|
-
const layer = new Layer({
|
|
151
|
-
name: 'Layer',
|
|
152
|
-
olLayer,
|
|
153
|
-
});
|
|
154
|
-
expect(layer).toBeInstanceOf(Layer);
|
|
155
|
-
expect(layer.copyright).toEqual(undefined);
|
|
156
|
-
|
|
157
|
-
layer.copyright = '© OSM Contributors';
|
|
158
|
-
expect(layer.copyright).toEqual('© OSM Contributors');
|
|
159
|
-
});
|
|
160
|
-
|
|
161
|
-
describe('#init()', () => {
|
|
162
|
-
test('should set map.', () => {
|
|
163
|
-
const layer = new Layer({
|
|
164
|
-
name: 'Layer',
|
|
165
|
-
olLayer,
|
|
166
|
-
});
|
|
167
|
-
|
|
168
|
-
expect(layer.map).toBe(undefined);
|
|
169
|
-
const obj = {};
|
|
170
|
-
layer.init(obj);
|
|
171
|
-
expect(layer.map).toBe(obj);
|
|
172
|
-
});
|
|
173
|
-
|
|
174
|
-
test('should call terminate.', () => {
|
|
175
|
-
const layer = new Layer({
|
|
176
|
-
name: 'Layer',
|
|
177
|
-
olLayer,
|
|
178
|
-
});
|
|
179
|
-
const spy = jest.spyOn(layer, 'terminate');
|
|
180
|
-
layer.init();
|
|
181
|
-
expect(spy).toHaveBeenCalledTimes(1);
|
|
182
|
-
});
|
|
183
|
-
});
|
|
184
|
-
|
|
185
|
-
describe('#get() and #set()', () => {
|
|
186
|
-
test('should get/set a properties.', () => {
|
|
187
|
-
const layer = new Layer({
|
|
188
|
-
name: 'Layer',
|
|
189
|
-
olLayer,
|
|
190
|
-
});
|
|
191
|
-
expect(layer.get('foo')).toBe(undefined);
|
|
192
|
-
layer.set('foo', 'bar');
|
|
193
|
-
expect(layer.get('foo')).toBe('bar');
|
|
194
|
-
});
|
|
195
|
-
});
|
|
196
|
-
|
|
197
|
-
describe('#set()', () => {
|
|
198
|
-
test('should dispatch a change event.', () => {
|
|
199
|
-
const layer = new Layer({
|
|
200
|
-
name: 'Layer',
|
|
201
|
-
olLayer,
|
|
202
|
-
});
|
|
203
|
-
const spy = jest.spyOn(layer, 'dispatchEvent');
|
|
204
|
-
layer.set('foo', 'bar');
|
|
205
|
-
expect(spy).toHaveBeenCalledWith({ type: 'change:foo', target: layer });
|
|
206
|
-
});
|
|
207
|
-
});
|
|
208
|
-
|
|
209
|
-
describe('#setVisible()', () => {
|
|
210
|
-
test("should not trigger a change event if the visiblity hasn't changed.", () => {
|
|
211
|
-
const layer = new Layer({
|
|
212
|
-
name: 'Layer',
|
|
213
|
-
visible: false,
|
|
214
|
-
olLayer,
|
|
215
|
-
});
|
|
216
|
-
const spy = jest.spyOn(layer, 'dispatchEvent');
|
|
217
|
-
layer.setVisible(false, 'foo', 'bar', 'qux');
|
|
218
|
-
expect(spy).toHaveBeenCalledTimes(0);
|
|
219
|
-
});
|
|
220
|
-
|
|
221
|
-
test('should trigger a change event only if the visiblity change.', () => {
|
|
222
|
-
const layer = new Layer({
|
|
223
|
-
name: 'Layer',
|
|
224
|
-
visible: false,
|
|
225
|
-
olLayer,
|
|
226
|
-
});
|
|
227
|
-
const spy = jest.spyOn(layer, 'dispatchEvent');
|
|
228
|
-
layer.setVisible(true, 'foo', 'bar', 'qux');
|
|
229
|
-
expect(layer.visible).toBe(true);
|
|
230
|
-
expect(spy).toHaveBeenCalledTimes(1);
|
|
231
|
-
expect(spy).toHaveBeenCalledWith({
|
|
232
|
-
type: 'change:visible',
|
|
233
|
-
target: layer,
|
|
234
|
-
stopPropagationDown: 'foo',
|
|
235
|
-
stopPropagationUp: 'bar',
|
|
236
|
-
stopPropagationSiblings: 'qux',
|
|
237
|
-
});
|
|
238
|
-
});
|
|
239
|
-
});
|
|
240
|
-
|
|
241
|
-
describe('#getVisibleChildren()', () => {
|
|
242
|
-
test('should return only visible child.', () => {
|
|
243
|
-
const layerVisible = { visible: true };
|
|
244
|
-
const layerVisible2 = { visible: true };
|
|
245
|
-
const layerHidden = { visible: false };
|
|
246
|
-
const layer = new Layer({
|
|
247
|
-
name: 'Layer',
|
|
248
|
-
visible: false,
|
|
249
|
-
olLayer,
|
|
250
|
-
children: [layerVisible, layerHidden, layerVisible2],
|
|
251
|
-
});
|
|
252
|
-
expect(layer.getVisibleChildren()).toEqual([layerVisible, layerVisible2]);
|
|
253
|
-
});
|
|
254
|
-
});
|
|
255
|
-
|
|
256
|
-
describe('#hasVisibleChildren()', () => {
|
|
257
|
-
test('should return true.', () => {
|
|
258
|
-
const layerVisible = { visible: true };
|
|
259
|
-
const layerVisible2 = { visible: true };
|
|
260
|
-
const layerHidden = { visible: false };
|
|
261
|
-
const layer = new Layer({
|
|
262
|
-
name: 'Layer',
|
|
263
|
-
visible: false,
|
|
264
|
-
olLayer,
|
|
265
|
-
children: [layerVisible, layerHidden, layerVisible2],
|
|
266
|
-
});
|
|
267
|
-
expect(layer.hasVisibleChildren()).toEqual(true);
|
|
268
|
-
});
|
|
269
|
-
|
|
270
|
-
test('should return false.', () => {
|
|
271
|
-
const layerHidden = { visible: false };
|
|
272
|
-
const layer = new Layer({
|
|
273
|
-
name: 'Layer',
|
|
274
|
-
visible: false,
|
|
275
|
-
olLayer,
|
|
276
|
-
children: [layerHidden],
|
|
277
|
-
});
|
|
278
|
-
expect(layer.hasVisibleChildren()).toEqual(false);
|
|
279
|
-
});
|
|
280
|
-
});
|
|
281
|
-
|
|
282
|
-
describe('#getFeatureInfoAtCoordinate()', () => {
|
|
283
|
-
test('return an empty fetaureInfo object and display an error message', (done) => {
|
|
284
|
-
// eslint-disable-next-line no-console
|
|
285
|
-
console.error = jest.fn();
|
|
286
|
-
const layer = new Layer({
|
|
287
|
-
name: 'Layer',
|
|
288
|
-
olLayer,
|
|
289
|
-
});
|
|
290
|
-
const coord = [0, 0];
|
|
291
|
-
layer.getFeatureInfoAtCoordinate(coord).then((featureInfo) => {
|
|
292
|
-
expect(featureInfo.features).toEqual([]);
|
|
293
|
-
expect(featureInfo.layer).toEqual(layer);
|
|
294
|
-
expect(featureInfo.coordinate).toEqual(coord);
|
|
295
|
-
// eslint-disable-next-line no-console
|
|
296
|
-
expect(console.error).toHaveBeenCalledTimes(1);
|
|
297
|
-
done();
|
|
298
|
-
// eslint-disable-next-line no-console
|
|
299
|
-
console.error.mockRestore();
|
|
300
|
-
});
|
|
301
|
-
});
|
|
302
|
-
});
|
|
303
|
-
|
|
304
|
-
describe('#onClick()', () => {
|
|
305
|
-
test('adds function to clickCallbacks array', () => {
|
|
306
|
-
const layer = new Layer({
|
|
307
|
-
name: 'Layer',
|
|
308
|
-
olLayer,
|
|
309
|
-
});
|
|
310
|
-
const fn = jest.fn();
|
|
311
|
-
const fn2 = jest.fn();
|
|
312
|
-
layer.onClick(fn);
|
|
313
|
-
expect(layer.clickCallbacks).toEqual([fn]);
|
|
314
|
-
layer.onClick(fn2);
|
|
315
|
-
expect(layer.clickCallbacks).toEqual([fn, fn2]);
|
|
316
|
-
});
|
|
317
|
-
|
|
318
|
-
test('triggers Error if parameter is not a function', (done) => {
|
|
319
|
-
const layer = new Layer({
|
|
320
|
-
name: 'Layer',
|
|
321
|
-
olLayer,
|
|
322
|
-
});
|
|
323
|
-
try {
|
|
324
|
-
layer.onClick('test');
|
|
325
|
-
} catch (e) {
|
|
326
|
-
expect(e).toBeDefined();
|
|
327
|
-
done();
|
|
328
|
-
}
|
|
329
|
-
});
|
|
330
|
-
});
|
|
331
|
-
|
|
332
|
-
describe('#unClick()', () => {
|
|
333
|
-
test('removes function from clickCallbacks array', () => {
|
|
334
|
-
const layer = new Layer({
|
|
335
|
-
name: 'Layer',
|
|
336
|
-
olLayer,
|
|
337
|
-
});
|
|
338
|
-
const fn = jest.fn();
|
|
339
|
-
const fn2 = jest.fn();
|
|
340
|
-
layer.onClick(fn);
|
|
341
|
-
expect(layer.clickCallbacks).toEqual([fn]);
|
|
342
|
-
layer.onClick(fn2);
|
|
343
|
-
expect(layer.clickCallbacks).toEqual([fn, fn2]);
|
|
344
|
-
layer.unClick(fn);
|
|
345
|
-
expect(layer.clickCallbacks).toEqual([fn2]);
|
|
346
|
-
// Make sure no callbacks are removed if the callback is not in the list.
|
|
347
|
-
layer.unClick(fn);
|
|
348
|
-
expect(layer.clickCallbacks).toEqual([fn2]);
|
|
349
|
-
});
|
|
350
|
-
});
|
|
351
|
-
|
|
352
|
-
describe('#onUserClickCallback()', () => {
|
|
353
|
-
const evt = { type: 'signleclick', coordinate: [0, 0] };
|
|
354
|
-
|
|
355
|
-
const getFeatureInfo = (layer, features = []) => ({
|
|
356
|
-
features,
|
|
357
|
-
layer,
|
|
358
|
-
coordinate: evt.coordinate,
|
|
359
|
-
event: evt,
|
|
360
|
-
});
|
|
361
|
-
|
|
362
|
-
test('calls click callback functions', (done) => {
|
|
363
|
-
const layer = new Layer({
|
|
364
|
-
name: 'Layer',
|
|
365
|
-
olLayer,
|
|
366
|
-
});
|
|
367
|
-
const goodFeatureInfo = getFeatureInfo(layer, [{ name: 'test' }]);
|
|
368
|
-
const fn = jest.fn();
|
|
369
|
-
const fn2 = jest.fn();
|
|
370
|
-
const spy = jest
|
|
371
|
-
.spyOn(layer, 'getFeatureInfoAtCoordinate')
|
|
372
|
-
.mockResolvedValue(goodFeatureInfo);
|
|
373
|
-
layer.onClick(fn);
|
|
374
|
-
layer.onClick(fn2);
|
|
375
|
-
layer.onUserClickCallback(evt).then((featureInfo) => {
|
|
376
|
-
expect(spy).toHaveBeenCalledTimes(1);
|
|
377
|
-
expect(spy).toHaveBeenCalledWith(evt.coordinate);
|
|
378
|
-
expect(featureInfo).toBe(goodFeatureInfo);
|
|
379
|
-
expect(fn).toHaveBeenCalledTimes(1);
|
|
380
|
-
expect(fn.mock.calls[0][0]).toBe(goodFeatureInfo.features);
|
|
381
|
-
expect(fn.mock.calls[0][1]).toBe(goodFeatureInfo.layer);
|
|
382
|
-
expect(fn.mock.calls[0][2]).toBe(goodFeatureInfo.coordinate);
|
|
383
|
-
expect(fn2).toHaveBeenCalledTimes(1);
|
|
384
|
-
expect(fn2.mock.calls[0][0]).toBe(goodFeatureInfo.features);
|
|
385
|
-
expect(fn2.mock.calls[0][1]).toBe(goodFeatureInfo.layer);
|
|
386
|
-
expect(fn2.mock.calls[0][2]).toBe(goodFeatureInfo.coordinate);
|
|
387
|
-
done();
|
|
388
|
-
});
|
|
389
|
-
});
|
|
390
|
-
|
|
391
|
-
describe('returns empty feature info', () => {
|
|
392
|
-
test('if isClickActive = false', (done) => {
|
|
393
|
-
const layer = new Layer({
|
|
394
|
-
name: 'Layer',
|
|
395
|
-
isClickActive: false,
|
|
396
|
-
olLayer,
|
|
397
|
-
});
|
|
398
|
-
layer.onClick(jest.fn());
|
|
399
|
-
layer.onUserClickCallback(evt).then((featureInfo) => {
|
|
400
|
-
expect(featureInfo).toEqual(getFeatureInfo(layer));
|
|
401
|
-
done();
|
|
402
|
-
});
|
|
403
|
-
});
|
|
404
|
-
|
|
405
|
-
test('if clickCallbacks is empty', (done) => {
|
|
406
|
-
const layer = new Layer({
|
|
407
|
-
name: 'Layer',
|
|
408
|
-
olLayer,
|
|
409
|
-
});
|
|
410
|
-
layer.onUserClickCallback(evt).then((featureInfo) => {
|
|
411
|
-
expect(featureInfo).toEqual(getFeatureInfo(layer));
|
|
412
|
-
done();
|
|
413
|
-
});
|
|
414
|
-
});
|
|
415
|
-
|
|
416
|
-
test('if an error is thrown in click callback', (done) => {
|
|
417
|
-
const layer = new Layer({
|
|
418
|
-
name: 'Layer',
|
|
419
|
-
olLayer,
|
|
420
|
-
});
|
|
421
|
-
layer.onClick(() => {
|
|
422
|
-
throw new Error('foo');
|
|
423
|
-
});
|
|
424
|
-
layer.onUserClickCallback(evt).then((featureInfo) => {
|
|
425
|
-
expect(featureInfo).toEqual(getFeatureInfo(layer));
|
|
426
|
-
done();
|
|
427
|
-
});
|
|
428
|
-
});
|
|
429
|
-
});
|
|
430
|
-
|
|
431
|
-
test('triggers Error if parameter is not a function', (done) => {
|
|
432
|
-
const layer = new Layer({
|
|
433
|
-
name: 'Layer',
|
|
434
|
-
olLayer,
|
|
435
|
-
});
|
|
436
|
-
try {
|
|
437
|
-
layer.onClick('test');
|
|
438
|
-
} catch (e) {
|
|
439
|
-
expect(e).toBeDefined();
|
|
440
|
-
done();
|
|
441
|
-
}
|
|
442
|
-
});
|
|
443
|
-
});
|
|
444
|
-
|
|
445
|
-
describe('#onHover()', () => {
|
|
446
|
-
test('adds function to clickCallbacks array', () => {
|
|
447
|
-
const layer = new Layer({
|
|
448
|
-
name: 'Layer',
|
|
449
|
-
olLayer,
|
|
450
|
-
});
|
|
451
|
-
const fn = jest.fn();
|
|
452
|
-
const fn2 = jest.fn();
|
|
453
|
-
layer.onHover(fn);
|
|
454
|
-
expect(layer.hoverCallbacks).toEqual([fn]);
|
|
455
|
-
layer.onHover(fn2);
|
|
456
|
-
expect(layer.hoverCallbacks).toEqual([fn, fn2]);
|
|
457
|
-
});
|
|
458
|
-
|
|
459
|
-
test('triggers Error if parameter is not a function', (done) => {
|
|
460
|
-
const layer = new Layer({
|
|
461
|
-
name: 'Layer',
|
|
462
|
-
olLayer,
|
|
463
|
-
});
|
|
464
|
-
try {
|
|
465
|
-
layer.onHover('test');
|
|
466
|
-
} catch (e) {
|
|
467
|
-
expect(e).toBeDefined();
|
|
468
|
-
done();
|
|
469
|
-
}
|
|
470
|
-
});
|
|
471
|
-
});
|
|
472
|
-
|
|
473
|
-
describe('#unHover()', () => {
|
|
474
|
-
test('removes function from clickCallbacks array', () => {
|
|
475
|
-
const layer = new Layer({
|
|
476
|
-
name: 'Layer',
|
|
477
|
-
olLayer,
|
|
478
|
-
});
|
|
479
|
-
const fn = jest.fn();
|
|
480
|
-
const fn2 = jest.fn();
|
|
481
|
-
layer.onHover(fn);
|
|
482
|
-
expect(layer.hoverCallbacks).toEqual([fn]);
|
|
483
|
-
layer.onHover(fn2);
|
|
484
|
-
expect(layer.hoverCallbacks).toEqual([fn, fn2]);
|
|
485
|
-
layer.unHover(fn);
|
|
486
|
-
expect(layer.hoverCallbacks).toEqual([fn2]);
|
|
487
|
-
// Make sure no callbacks are removed if the callback is not in the list.
|
|
488
|
-
layer.unHover(fn);
|
|
489
|
-
expect(layer.hoverCallbacks).toEqual([fn2]);
|
|
490
|
-
});
|
|
491
|
-
});
|
|
492
|
-
|
|
493
|
-
describe('#onUserMoveCallback()', () => {
|
|
494
|
-
const evt = { type: 'pointermove', coordinate: [0, 0] };
|
|
495
|
-
|
|
496
|
-
const getFeatureInfo = (layer, features = []) => ({
|
|
497
|
-
features,
|
|
498
|
-
layer,
|
|
499
|
-
coordinate: evt.coordinate,
|
|
500
|
-
event: evt,
|
|
501
|
-
});
|
|
502
|
-
|
|
503
|
-
test('calls hover callback functions', (done) => {
|
|
504
|
-
const layer = new Layer({
|
|
505
|
-
name: 'Layer',
|
|
506
|
-
olLayer,
|
|
507
|
-
});
|
|
508
|
-
const goodFeatureInfo = getFeatureInfo(layer, [{ name: 'test' }]);
|
|
509
|
-
const fn = jest.fn();
|
|
510
|
-
const fn2 = jest.fn();
|
|
511
|
-
const spy = jest
|
|
512
|
-
.spyOn(layer, 'getFeatureInfoAtCoordinate')
|
|
513
|
-
.mockResolvedValue(goodFeatureInfo);
|
|
514
|
-
layer.onHover(fn);
|
|
515
|
-
layer.onHover(fn2);
|
|
516
|
-
layer.onUserMoveCallback(evt).then((featureInfo) => {
|
|
517
|
-
expect(spy).toHaveBeenCalledTimes(1);
|
|
518
|
-
expect(spy).toHaveBeenCalledWith(evt.coordinate);
|
|
519
|
-
expect(featureInfo).toBe(goodFeatureInfo);
|
|
520
|
-
expect(fn).toHaveBeenCalledTimes(1);
|
|
521
|
-
expect(fn.mock.calls[0][0]).toBe(goodFeatureInfo.features);
|
|
522
|
-
expect(fn.mock.calls[0][1]).toBe(goodFeatureInfo.layer);
|
|
523
|
-
expect(fn.mock.calls[0][2]).toBe(goodFeatureInfo.coordinate);
|
|
524
|
-
expect(fn2).toHaveBeenCalledTimes(1);
|
|
525
|
-
expect(fn2.mock.calls[0][0]).toBe(goodFeatureInfo.features);
|
|
526
|
-
expect(fn2.mock.calls[0][1]).toBe(goodFeatureInfo.layer);
|
|
527
|
-
expect(fn2.mock.calls[0][2]).toBe(goodFeatureInfo.coordinate);
|
|
528
|
-
done();
|
|
529
|
-
});
|
|
530
|
-
});
|
|
531
|
-
|
|
532
|
-
describe('returns empty feature info', () => {
|
|
533
|
-
test('if isHoverActive = false', (done) => {
|
|
534
|
-
const layer = new Layer({
|
|
535
|
-
name: 'Layer',
|
|
536
|
-
isHoverActive: false,
|
|
537
|
-
olLayer,
|
|
538
|
-
});
|
|
539
|
-
layer.onHover(jest.fn());
|
|
540
|
-
layer.onUserMoveCallback(evt).then((featureInfo) => {
|
|
541
|
-
expect(featureInfo).toEqual(getFeatureInfo(layer));
|
|
542
|
-
done();
|
|
543
|
-
});
|
|
544
|
-
});
|
|
545
|
-
|
|
546
|
-
test('if hoverCallbacks is empty', (done) => {
|
|
547
|
-
const layer = new Layer({
|
|
548
|
-
name: 'Layer',
|
|
549
|
-
olLayer,
|
|
550
|
-
});
|
|
551
|
-
layer.onUserMoveCallback(evt).then((featureInfo) => {
|
|
552
|
-
expect(featureInfo).toEqual(getFeatureInfo(layer));
|
|
553
|
-
done();
|
|
554
|
-
});
|
|
555
|
-
});
|
|
556
|
-
|
|
557
|
-
test('if an error is thrown in hover callback', (done) => {
|
|
558
|
-
const layer = new Layer({
|
|
559
|
-
name: 'Layer',
|
|
560
|
-
olLayer,
|
|
561
|
-
});
|
|
562
|
-
layer.onHover(() => {
|
|
563
|
-
throw new Error('foo');
|
|
564
|
-
});
|
|
565
|
-
layer.onUserMoveCallback(evt).then((featureInfo) => {
|
|
566
|
-
expect(featureInfo).toEqual(getFeatureInfo(layer));
|
|
567
|
-
done();
|
|
568
|
-
});
|
|
569
|
-
});
|
|
570
|
-
});
|
|
571
|
-
|
|
572
|
-
test('triggers Error if parameter is not a function', (done) => {
|
|
573
|
-
const layer = new Layer({
|
|
574
|
-
name: 'Layer',
|
|
575
|
-
olLayer,
|
|
576
|
-
});
|
|
577
|
-
try {
|
|
578
|
-
layer.onHover('test');
|
|
579
|
-
} catch (e) {
|
|
580
|
-
expect(e).toBeDefined();
|
|
581
|
-
done();
|
|
582
|
-
}
|
|
583
|
-
});
|
|
584
|
-
});
|
|
585
|
-
});
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/* eslint-disable class-methods-use-this */
|
|
2
|
-
/* eslint-disable max-classes-per-file */
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Copyright control interface.
|
|
6
|
-
*
|
|
7
|
-
*/
|
|
8
|
-
export class CopyrightInterface {
|
|
9
|
-
/**
|
|
10
|
-
* Return an array of layer's copyright.
|
|
11
|
-
*
|
|
12
|
-
* @return {String[]} A list of copyrights to render.
|
|
13
|
-
*/
|
|
14
|
-
getCopyrights() {}
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Mixin for CopyrightInterface.
|
|
19
|
-
*
|
|
20
|
-
* @param {Class} Base A class to extend with {CopyrightInterface} functionnalities.
|
|
21
|
-
* @return {Class} A class that implements <CopyrightInterface> class and extends Base;
|
|
22
|
-
* @private
|
|
23
|
-
*/
|
|
24
|
-
const CopyrightMixin = (Base) =>
|
|
25
|
-
class extends Base {
|
|
26
|
-
render() {
|
|
27
|
-
if (!this.element) {
|
|
28
|
-
return;
|
|
29
|
-
}
|
|
30
|
-
this.element.innerHTML = this.active
|
|
31
|
-
? this.getCopyrights().join(' | ')
|
|
32
|
-
: '';
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
createDefaultElement() {
|
|
36
|
-
this.element = document.createElement('div');
|
|
37
|
-
this.element.id = 'mbt-copyright';
|
|
38
|
-
Object.assign(this.element.style, {
|
|
39
|
-
position: 'absolute',
|
|
40
|
-
bottom: 0,
|
|
41
|
-
right: 0,
|
|
42
|
-
fontSize: '.8rem',
|
|
43
|
-
padding: '0 10px',
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
|
|
48
|
-
export default CopyrightMixin;
|