mobility-toolbox-js 2.0.0-beta.35 → 2.0.0-beta.38
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 +14 -8
- package/api/RealtimeAPI.test.d.ts +2 -0
- package/api/RealtimeAPI.test.d.ts.map +1 -0
- package/api/RealtimeAPI.test.js +67 -0
- package/api/RoutingAPI.d.ts +6 -2
- package/api/RoutingAPI.d.ts.map +1 -1
- package/api/RoutingAPI.test.d.ts +2 -0
- package/api/RoutingAPI.test.d.ts.map +1 -0
- package/api/RoutingAPI.test.js +29 -0
- package/api/StopsAPI.test.d.ts +2 -0
- package/api/StopsAPI.test.d.ts.map +1 -0
- package/api/StopsAPI.test.js +26 -0
- package/common/api/HttpAPI.d.ts +4 -4
- package/common/api/HttpAPI.d.ts.map +1 -1
- package/common/api/HttpAPI.test.d.ts +2 -0
- package/common/api/HttpAPI.test.d.ts.map +1 -0
- package/common/api/HttpAPI.test.js +54 -0
- package/common/api/WebSocketAPI.d.ts +6 -2
- package/common/api/WebSocketAPI.d.ts.map +1 -1
- package/common/api/WebSocketAPI.js +57 -31
- package/common/api/WebSocketAPI.test.d.ts +2 -0
- package/common/api/WebSocketAPI.test.d.ts.map +1 -0
- package/common/api/WebSocketAPI.test.js +380 -0
- package/common/controls/Control.test.d.ts +2 -0
- package/common/controls/Control.test.d.ts.map +1 -0
- package/common/controls/Control.test.js +89 -0
- package/common/layers/Layer.test.d.ts +2 -0
- package/common/layers/Layer.test.d.ts.map +1 -0
- package/common/layers/Layer.test.js +137 -0
- package/common/mixins/UserInteractionsLayerMixin.test.d.ts +2 -0
- package/common/mixins/UserInteractionsLayerMixin.test.d.ts.map +1 -0
- package/common/mixins/UserInteractionsLayerMixin.test.js +214 -0
- package/common/styles/realtimeDefaultStyle.d.ts.map +1 -1
- package/common/styles/realtimeDefaultStyle.js +2 -4
- package/common/styles/realtimeSimpleStyle.js +1 -1
- package/common/utils/createTrackerFilters.test.d.ts +2 -0
- package/common/utils/createTrackerFilters.test.d.ts.map +1 -0
- package/common/utils/createTrackerFilters.test.js +79 -0
- package/common/utils/getMapboxMapCopyrights.test.d.ts +2 -0
- package/common/utils/getMapboxMapCopyrights.test.d.ts.map +1 -0
- package/common/utils/getMapboxMapCopyrights.test.js +40 -0
- package/common/utils/removeDuplicate.test.d.ts +2 -0
- package/common/utils/removeDuplicate.test.d.ts.map +1 -0
- package/common/utils/removeDuplicate.test.js +19 -0
- package/common/utils/timeUtils.test.d.ts +2 -0
- package/common/utils/timeUtils.test.d.ts.map +1 -0
- package/common/utils/timeUtils.test.js +10 -0
- package/common/utils/trackerConfig.test.d.ts +2 -0
- package/common/utils/trackerConfig.test.d.ts.map +1 -0
- package/common/utils/trackerConfig.test.js +23 -0
- package/index.d.ts +4 -0
- package/mapbox/index.d.ts +1 -0
- package/mapbox/layers/Layer.test.d.ts +2 -0
- package/mapbox/layers/Layer.test.d.ts.map +1 -0
- package/mapbox/layers/Layer.test.js +204 -0
- package/mapbox/layers/RealtimeLayer.test.d.ts +2 -0
- package/mapbox/layers/RealtimeLayer.test.d.ts.map +1 -0
- package/mapbox/layers/RealtimeLayer.test.js +10 -0
- package/mbt.js +56 -32
- package/mbt.js.map +2 -2
- package/mbt.min.js +10 -10
- package/mbt.min.js.map +2 -2
- package/ol/controls/CopyrightControl.test.d.ts +2 -0
- package/ol/controls/CopyrightControl.test.d.ts.map +1 -0
- package/ol/controls/CopyrightControl.test.js +177 -0
- package/ol/controls/RoutingControl.d.ts +2 -1
- package/ol/controls/RoutingControl.d.ts.map +1 -1
- package/ol/controls/RoutingControl.test.d.ts +2 -0
- package/ol/controls/RoutingControl.test.d.ts.map +1 -0
- package/ol/controls/RoutingControl.test.js +150 -0
- package/ol/controls/StopFinderControl.test.d.ts +2 -0
- package/ol/controls/StopFinderControl.test.d.ts.map +1 -0
- package/ol/controls/StopFinderControl.test.js +49 -0
- package/ol/index.d.ts +1 -0
- package/ol/layers/Layer.test.d.ts +2 -0
- package/ol/layers/Layer.test.d.ts.map +1 -0
- package/ol/layers/Layer.test.js +196 -0
- package/ol/layers/MapboxLayer.d.ts.map +1 -1
- package/ol/layers/MapboxLayer.js +4 -0
- package/ol/layers/MapboxLayer.test.d.ts +2 -0
- package/ol/layers/MapboxLayer.test.d.ts.map +1 -0
- package/ol/layers/MapboxLayer.test.js +164 -0
- package/ol/layers/MapboxStyleLayer.test.d.ts +2 -0
- package/ol/layers/MapboxStyleLayer.test.d.ts.map +1 -0
- package/ol/layers/MapboxStyleLayer.test.js +232 -0
- package/ol/layers/RealtimeLayer.test.d.ts +2 -0
- package/ol/layers/RealtimeLayer.test.d.ts.map +1 -0
- package/ol/layers/RealtimeLayer.test.js +71 -0
- package/ol/layers/RoutingLayer.test.d.ts +2 -0
- package/ol/layers/RoutingLayer.test.d.ts.map +1 -0
- package/ol/layers/RoutingLayer.test.js +39 -0
- package/ol/layers/VectorLayer.test.d.ts +2 -0
- package/ol/layers/VectorLayer.test.d.ts.map +1 -0
- package/ol/layers/VectorLayer.test.js +87 -0
- package/ol/layers/WMSLayer.test.d.ts +2 -0
- package/ol/layers/WMSLayer.test.d.ts.map +1 -0
- package/ol/layers/WMSLayer.test.js +66 -0
- package/package.json +5 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyrightControl.test.d.ts","sourceRoot":"","sources":["../../../src/ol/controls/CopyrightControl.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
import View from 'ol/View';
|
|
2
|
+
import Tile from 'ol/Tile';
|
|
3
|
+
import TileLayer from 'ol/layer/Tile';
|
|
4
|
+
import TileSource from 'ol/source/Tile';
|
|
5
|
+
import { createXYZ } from 'ol/tilegrid';
|
|
6
|
+
import { Map } from 'ol';
|
|
7
|
+
import Layer from '../layers/Layer';
|
|
8
|
+
import CopyrightControl from './CopyrightControl';
|
|
9
|
+
const tileLoadFunction = () => {
|
|
10
|
+
const tile = new Tile([0, 0, -1], 2 /* LOADED */);
|
|
11
|
+
tile.getImage = () => {
|
|
12
|
+
const image = new Image();
|
|
13
|
+
image.width = 256;
|
|
14
|
+
image.height = 256;
|
|
15
|
+
return image;
|
|
16
|
+
};
|
|
17
|
+
return tile;
|
|
18
|
+
};
|
|
19
|
+
const getOLTileLayer = () => {
|
|
20
|
+
const layer = new TileLayer({
|
|
21
|
+
source: new TileSource({
|
|
22
|
+
projection: 'EPSG:3857',
|
|
23
|
+
tileGrid: createXYZ(),
|
|
24
|
+
}),
|
|
25
|
+
});
|
|
26
|
+
layer.getSource().getTile = tileLoadFunction;
|
|
27
|
+
return layer;
|
|
28
|
+
};
|
|
29
|
+
const getLayer = (copyrights, visible = true) => new Layer({
|
|
30
|
+
visible,
|
|
31
|
+
copyrights,
|
|
32
|
+
olLayer: getOLTileLayer(),
|
|
33
|
+
});
|
|
34
|
+
describe('CopyrightControl', () => {
|
|
35
|
+
let map;
|
|
36
|
+
beforeEach(() => {
|
|
37
|
+
const target = document.createElement('div');
|
|
38
|
+
document.body.appendChild(target);
|
|
39
|
+
map = new Map({
|
|
40
|
+
target,
|
|
41
|
+
view: new View({
|
|
42
|
+
center: [0, 0],
|
|
43
|
+
zoom: 0,
|
|
44
|
+
}),
|
|
45
|
+
});
|
|
46
|
+
getLayer(true, 'bar').attachToMap(map);
|
|
47
|
+
map.setSize([200, 200]);
|
|
48
|
+
map.renderSync();
|
|
49
|
+
});
|
|
50
|
+
afterEach(() => {
|
|
51
|
+
if (map) {
|
|
52
|
+
map.setTarget(null);
|
|
53
|
+
map = null;
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
test('should be activate by default', () => {
|
|
57
|
+
const control = new CopyrightControl();
|
|
58
|
+
expect(control.active).toBe(true);
|
|
59
|
+
});
|
|
60
|
+
test('renders a string copyright', () => {
|
|
61
|
+
const control = new CopyrightControl();
|
|
62
|
+
control.attachToMap(map);
|
|
63
|
+
expect(control.element.innerHTML).toBe('');
|
|
64
|
+
getLayer('copyright').attachToMap(map);
|
|
65
|
+
map.renderSync();
|
|
66
|
+
expect(control.element.innerHTML).toBe('copyright');
|
|
67
|
+
});
|
|
68
|
+
test('renders an array of copyrights', () => {
|
|
69
|
+
const control = new CopyrightControl();
|
|
70
|
+
control.attachToMap(map);
|
|
71
|
+
expect(control.element.innerHTML).toBe('');
|
|
72
|
+
getLayer(['copyright 1', 'copyright 2']).attachToMap(map);
|
|
73
|
+
map.renderSync();
|
|
74
|
+
expect(control.element.innerHTML).toBe('copyright 1 | copyright 2');
|
|
75
|
+
});
|
|
76
|
+
test('renders unique copyrights', () => {
|
|
77
|
+
const control = new CopyrightControl();
|
|
78
|
+
control.attachToMap(map);
|
|
79
|
+
expect(control.element.innerHTML).toBe('');
|
|
80
|
+
getLayer(['copyright 1', 'copyright 2']).attachToMap(map);
|
|
81
|
+
getLayer('copyright 1').attachToMap(map);
|
|
82
|
+
getLayer(['copyright 2']).attachToMap(map);
|
|
83
|
+
map.renderSync();
|
|
84
|
+
expect(control.element.innerHTML).toBe('copyright 1 | copyright 2');
|
|
85
|
+
});
|
|
86
|
+
test("doesn't render copyright of an hidden layer", () => {
|
|
87
|
+
const control = new CopyrightControl();
|
|
88
|
+
control.attachToMap(map);
|
|
89
|
+
expect(control.element.innerHTML).toBe('');
|
|
90
|
+
const layer1 = getLayer('copyright hidden', false);
|
|
91
|
+
layer1.attachToMap(map);
|
|
92
|
+
const layer2 = getLayer('copyright', true);
|
|
93
|
+
layer2.attachToMap(map);
|
|
94
|
+
map.renderSync();
|
|
95
|
+
expect(control.element.innerHTML).toBe('copyright');
|
|
96
|
+
// the we update visibility of both layers
|
|
97
|
+
layer1.visible = true;
|
|
98
|
+
map.renderSync();
|
|
99
|
+
layer2.visible = false;
|
|
100
|
+
map.renderSync();
|
|
101
|
+
expect(control.element.innerHTML).toBe('copyright hidden');
|
|
102
|
+
});
|
|
103
|
+
test('should activate the control on construction then deactivate it', () => {
|
|
104
|
+
getLayer('copyright 1').attachToMap(map);
|
|
105
|
+
const control = new CopyrightControl({ active: true });
|
|
106
|
+
control.attachToMap(map);
|
|
107
|
+
map.renderSync();
|
|
108
|
+
expect(control.element.parentNode).toBe(map.getTargetElement());
|
|
109
|
+
// Should be activated by default.
|
|
110
|
+
expect(control.active).toBe(true);
|
|
111
|
+
expect(control.element.innerHTML).toBe('copyright 1');
|
|
112
|
+
// on deactivation
|
|
113
|
+
control.active = false;
|
|
114
|
+
map.renderSync();
|
|
115
|
+
expect(control.element.innerHTML).toBe('');
|
|
116
|
+
});
|
|
117
|
+
test('should deactivate the control on constrcution then activate it', () => {
|
|
118
|
+
getLayer('copyright 1').attachToMap(map);
|
|
119
|
+
const control = new CopyrightControl({ active: false });
|
|
120
|
+
control.attachToMap(map);
|
|
121
|
+
map.renderSync();
|
|
122
|
+
expect(control.element.parentNode).toBe(map.getTargetElement());
|
|
123
|
+
// Should be activated by default.
|
|
124
|
+
expect(control.active).toBe(false);
|
|
125
|
+
map.renderSync();
|
|
126
|
+
expect(control.element.innerHTML).toBe('');
|
|
127
|
+
// on deactivation
|
|
128
|
+
control.active = true;
|
|
129
|
+
map.renderSync();
|
|
130
|
+
expect(control.element.innerHTML).toBe('copyright 1');
|
|
131
|
+
});
|
|
132
|
+
test('should add copyrights in the map container element then remove it.', () => {
|
|
133
|
+
getLayer('copyright value').attachToMap(map);
|
|
134
|
+
map.renderSync();
|
|
135
|
+
const control = new CopyrightControl();
|
|
136
|
+
// Add control
|
|
137
|
+
control.attachToMap(map);
|
|
138
|
+
expect(control.element.parentNode).toBe(map.getTargetElement());
|
|
139
|
+
// Remove control
|
|
140
|
+
control.detachFromMap();
|
|
141
|
+
expect(control.element.parentNode).toBe(null);
|
|
142
|
+
});
|
|
143
|
+
test('should add copyrights in the target element then remove it.', () => {
|
|
144
|
+
getLayer(['copyright value']).attachToMap(map);
|
|
145
|
+
map.renderSync();
|
|
146
|
+
const target = document.createElement('div');
|
|
147
|
+
target.setAttribute('id', 'copyright');
|
|
148
|
+
document.body.appendChild(target);
|
|
149
|
+
const control = new CopyrightControl({
|
|
150
|
+
target: document.getElementById('copyright'),
|
|
151
|
+
});
|
|
152
|
+
// Add control
|
|
153
|
+
control.attachToMap(map);
|
|
154
|
+
expect(control.element.parentNode).toBe(target);
|
|
155
|
+
// Remove control
|
|
156
|
+
control.detachFromMap();
|
|
157
|
+
expect(control.element.parentNode).toBe(null);
|
|
158
|
+
});
|
|
159
|
+
test('renders custom copyrights with the render method ', () => {
|
|
160
|
+
const control = new CopyrightControl({
|
|
161
|
+
active: true,
|
|
162
|
+
render() {
|
|
163
|
+
if (!this.element) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
this.element.innerHTML = this.active
|
|
167
|
+
? this.getCopyrights().join(', ')
|
|
168
|
+
: '';
|
|
169
|
+
},
|
|
170
|
+
});
|
|
171
|
+
control.attachToMap(map);
|
|
172
|
+
getLayer(['copyright 1', 'copyright 2', 'copyright 3']).attachToMap(map);
|
|
173
|
+
map.renderSync();
|
|
174
|
+
// Add control
|
|
175
|
+
expect(control.element.innerHTML).toBe('copyright 1, copyright 2, copyright 3');
|
|
176
|
+
});
|
|
177
|
+
});
|
|
@@ -65,7 +65,7 @@ declare class RoutingControl extends Control implements RoutingInterface {
|
|
|
65
65
|
/** @ignore */
|
|
66
66
|
stopsApiUrl: any;
|
|
67
67
|
/** @ignore */
|
|
68
|
-
api:
|
|
68
|
+
api: RoutingAPI;
|
|
69
69
|
/** @ignore */
|
|
70
70
|
routingLayer: any;
|
|
71
71
|
/** @ignore */
|
|
@@ -175,6 +175,7 @@ declare class RoutingControl extends Control implements RoutingInterface {
|
|
|
175
175
|
graphsResolutions: any;
|
|
176
176
|
}
|
|
177
177
|
import Control from "../../common/controls/Control";
|
|
178
|
+
import { RoutingAPI } from "../../api";
|
|
178
179
|
import { Feature } from "ol";
|
|
179
180
|
import { GeoJSON } from "ol/format";
|
|
180
181
|
//# sourceMappingURL=RoutingControl.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RoutingControl.d.ts","sourceRoot":"","sources":["../../../src/ol/controls/RoutingControl.js"],"names":[],"mappings":";AAiDA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wDAFgB,gBAAgB;IAoH9B;;;;OAIG;IACH,oCAMC;IA5HD,0BA+GC;IAlFC,qDAAqD;IACrD,iBAAoB;IAEpB,cAAc;IACd,YAAgD;IAEhD,cAAc;IACd,SAA+B;IAE/B,cAAc;IACd,gBAAsC;IAEtC,cAAc;IACd,sBAAsD;IAEtD,cAAc;IACd,qBAAuD;IAEvD,cAAc;IACd,0BAAiE;IAEjE,cAAc;IACd,qBAA0B;IAE1B,cAAc;IACd,wBAA0B;IAE1B,cAAc;IACd,YAA4B;IAE5B,cAAc;IACd,iBAAqD;IAErD,cAAc;IACd,gBAAkB;IAElB,cAAc;IACd,iBAA0E;IAE1E,cAAc;IACd,
|
|
1
|
+
{"version":3,"file":"RoutingControl.d.ts","sourceRoot":"","sources":["../../../src/ol/controls/RoutingControl.js"],"names":[],"mappings":";AAiDA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,wDAFgB,gBAAgB;IAoH9B;;;;OAIG;IACH,oCAMC;IA5HD,0BA+GC;IAlFC,qDAAqD;IACrD,iBAAoB;IAEpB,cAAc;IACd,YAAgD;IAEhD,cAAc;IACd,SAA+B;IAE/B,cAAc;IACd,gBAAsC;IAEtC,cAAc;IACd,sBAAsD;IAEtD,cAAc;IACd,qBAAuD;IAEvD,cAAc;IACd,0BAAiE;IAEjE,cAAc;IACd,qBAA0B;IAE1B,cAAc;IACd,wBAA0B;IAE1B,cAAc;IACd,YAA4B;IAE5B,cAAc;IACd,iBAAqD;IAErD,cAAc;IACd,gBAAkB;IAElB,cAAc;IACd,iBAA0E;IAE1E,cAAc;IACd,gBAEE;IAEF,cAAc;IACd,kBAKI;IAEJ,cAAc;IACd,kBAUI;IAEJ,cAAc;IACd,iBAAmB;IAoXrB;;;;;OAKG;IACH,mBAeC;IA4CD;;;;;OAKG;IACH,oBAqBC;IArED;;;;OAIG;IACH,sBAmCC;IAxaC,cAAc;IACd,2KAA+C;IAmBjD;;;;;;;;;OASG;IACH,wGAYC;IAED;;;;OAIG;IACH,uBAFW,MAAM,QAYhB;IAED;;;OAGG;IACH,8BAFW,MAAM,MAAM,MAAM,CAAC,CAAC,QAS9B;IAED;;OAEG;IACH,cASC;IAED;;;OAGG;IACH,sBAeC;IAED;;;;;;OAMG;IACH,kBA0HC;IAED;;;;OAIG;IACH,qBAkHC;IA2DC,cAAc;IACd;;;;kBAIC;IAsCD,cAAc;IACd,uCAA+C;IAYjD;;;OAGG;IACH,gCA8BC;IA7BC;;;OAGG;IAEH,0BAoBE;IAMJ;;;OAGG;IACH,qBAOC;IAFC,cAAc;IACd,mBAAgE;IAGlE;;;OAGG;IACH,wBAEC;IAKG,cAAc;IACd,4BAEE;IAEF,cAAc;IACd,uBAGC;CA2BN"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RoutingControl.test.d.ts","sourceRoot":"","sources":["../../../src/ol/controls/RoutingControl.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
import fetch from 'jest-fetch-mock';
|
|
2
|
+
import View from 'ol/View';
|
|
3
|
+
import Map from 'ol/Map';
|
|
4
|
+
import RoutingControl from './RoutingControl';
|
|
5
|
+
import RoutingControlStation1 from './snapshots/RoutingControlStation1.json';
|
|
6
|
+
import RoutingControlStation2 from './snapshots/RoutingControlStation2.json';
|
|
7
|
+
import RoutingControlRouteGen5 from './snapshots/RoutingControlRouteGen5.json';
|
|
8
|
+
import RoutingControlRouteGen10 from './snapshots/RoutingControlRouteGen10.json';
|
|
9
|
+
import RoutingControlRouteGen30 from './snapshots/RoutingControlRouteGen30.json';
|
|
10
|
+
import RoutingControlRouteGen100 from './snapshots/RoutingControlRouteGen100.json';
|
|
11
|
+
import RoutingControlRouteOSM from './snapshots/RoutingControlRouteOSM.json';
|
|
12
|
+
describe('RoutingControl', () => {
|
|
13
|
+
let map;
|
|
14
|
+
beforeEach(() => {
|
|
15
|
+
const target = document.createElement('div');
|
|
16
|
+
document.body.appendChild(target);
|
|
17
|
+
map = new Map({
|
|
18
|
+
target,
|
|
19
|
+
view: new View({
|
|
20
|
+
center: [0, 0],
|
|
21
|
+
zoom: 0,
|
|
22
|
+
}),
|
|
23
|
+
});
|
|
24
|
+
global.fetch = fetch;
|
|
25
|
+
});
|
|
26
|
+
afterEach(() => {
|
|
27
|
+
if (map) {
|
|
28
|
+
map.setTarget(null);
|
|
29
|
+
map = null;
|
|
30
|
+
}
|
|
31
|
+
fetch.resetMocks();
|
|
32
|
+
});
|
|
33
|
+
test('should be activate by default', () => {
|
|
34
|
+
const control = new RoutingControl();
|
|
35
|
+
expect(control.active).toBe(true);
|
|
36
|
+
expect(control.snapToClosestStation).toBe(false);
|
|
37
|
+
expect(control.useRawViaPoints).toBe(false);
|
|
38
|
+
});
|
|
39
|
+
test('launch routing and add features', (done) => {
|
|
40
|
+
fetch.mockResponseOnce(JSON.stringify(global.fetchRouteResponse));
|
|
41
|
+
const control = new RoutingControl({
|
|
42
|
+
url: 'https://foo.ch',
|
|
43
|
+
apiKey: 'foo',
|
|
44
|
+
});
|
|
45
|
+
control.attachToMap(map);
|
|
46
|
+
expect(map.getTargetElement().querySelector('#ol-toggle-routing')).toBeDefined();
|
|
47
|
+
control.viaPoints = [
|
|
48
|
+
[950476.4055933182, 6003322.253698345],
|
|
49
|
+
[950389.0813034325, 6003656.659274571],
|
|
50
|
+
];
|
|
51
|
+
control.drawRoute(control.viaPoints).then(() => {
|
|
52
|
+
// Should use correct URL
|
|
53
|
+
expect(fetch.mock.calls[0][0]).toEqual('https://foo.ch/?key=foo&graph=osm&via=47.3739194713294%2C8.538274823394632%7C47.37595378493421%2C8.537490375951839&mot=bus&resolve-hops=false&elevation=false&coord-radius=100&coord-punish=1000');
|
|
54
|
+
// routingLayer should contain three features (2 x viapoints, 1 x route)
|
|
55
|
+
expect(control.routingLayer.olLayer.getSource().getFeatures().length).toEqual(3);
|
|
56
|
+
done();
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
test('launch routing and add features for multiple graphs', (done) => {
|
|
60
|
+
fetch.mockResponses([JSON.stringify(RoutingControlStation1), { status: 200 }], [JSON.stringify(RoutingControlStation2), { status: 200 }], [JSON.stringify(RoutingControlRouteGen5), { status: 200 }], [JSON.stringify(RoutingControlRouteGen10), { status: 200 }], [JSON.stringify(RoutingControlRouteGen30), { status: 200 }], [JSON.stringify(RoutingControlRouteGen100), { status: 200 }], [JSON.stringify(RoutingControlRouteOSM), { status: 200 }]);
|
|
61
|
+
const control = new RoutingControl({
|
|
62
|
+
url: 'https://foo.ch/',
|
|
63
|
+
stopsApiUrl: 'https://foo.ch/',
|
|
64
|
+
apiKey: 'foo',
|
|
65
|
+
graphs: [
|
|
66
|
+
['gen5', 6, 7],
|
|
67
|
+
['gen10', 8],
|
|
68
|
+
['gen30', 9, 10],
|
|
69
|
+
['gen100', 11, 13],
|
|
70
|
+
['osm', 14, 99],
|
|
71
|
+
],
|
|
72
|
+
});
|
|
73
|
+
control.attachToMap(map);
|
|
74
|
+
control.viaPoints = ['a4dca961d199ff76', 'e3666f03cba06b2b'];
|
|
75
|
+
control.drawRoute(control.viaPoints).then(() => {
|
|
76
|
+
// Should use correct URL
|
|
77
|
+
expect(fetch.mock.calls[0][0]).toEqual('https://foo.ch/lookup/a4dca961d199ff76?key=foo');
|
|
78
|
+
expect(fetch.mock.calls[1][0]).toEqual('https://foo.ch/lookup/e3666f03cba06b2b?key=foo');
|
|
79
|
+
expect(fetch.mock.calls[2][0]).toEqual('https://foo.ch/?key=foo&graph=gen5&via=%21a4dca961d199ff76%7C%21e3666f03cba06b2b&mot=bus&resolve-hops=false&elevation=false&coord-radius=100&coord-punish=1000');
|
|
80
|
+
expect(fetch.mock.calls[3][0]).toEqual('https://foo.ch/?key=foo&graph=gen10&via=%21a4dca961d199ff76%7C%21e3666f03cba06b2b&mot=bus&resolve-hops=false&elevation=false&coord-radius=100&coord-punish=1000');
|
|
81
|
+
expect(fetch.mock.calls[4][0]).toEqual('https://foo.ch/?key=foo&graph=gen30&via=%21a4dca961d199ff76%7C%21e3666f03cba06b2b&mot=bus&resolve-hops=false&elevation=false&coord-radius=100&coord-punish=1000');
|
|
82
|
+
expect(fetch.mock.calls[5][0]).toEqual('https://foo.ch/?key=foo&graph=gen100&via=%21a4dca961d199ff76%7C%21e3666f03cba06b2b&mot=bus&resolve-hops=false&elevation=false&coord-radius=100&coord-punish=1000');
|
|
83
|
+
expect(fetch.mock.calls[6][0]).toEqual('https://foo.ch/?key=foo&graph=osm&via=%21a4dca961d199ff76%7C%21e3666f03cba06b2b&mot=bus&resolve-hops=false&elevation=false&coord-radius=100&coord-punish=1000');
|
|
84
|
+
// routingLayer should contain seven features (2 x viapoints, 5 x route for each graph)
|
|
85
|
+
expect(control.routingLayer.olLayer.getSource().getFeatures().length).toEqual(7);
|
|
86
|
+
done();
|
|
87
|
+
});
|
|
88
|
+
});
|
|
89
|
+
test('ignores Abort Error and returns undefined', (done) => {
|
|
90
|
+
const control = new RoutingControl({
|
|
91
|
+
url: 'https://foo.ch',
|
|
92
|
+
apiKey: 'foo',
|
|
93
|
+
});
|
|
94
|
+
control.attachToMap(map);
|
|
95
|
+
control.viaPoints = [
|
|
96
|
+
[950476.4055933182, 6003322.253698345],
|
|
97
|
+
[950389.0813034325, 6003656.659274571],
|
|
98
|
+
];
|
|
99
|
+
const error = new Error('Error');
|
|
100
|
+
error.name = 'AbortError';
|
|
101
|
+
fetch.mockRejectOnce(error);
|
|
102
|
+
return control.drawRoute().then((data) => {
|
|
103
|
+
expect(data).toEqual([undefined]);
|
|
104
|
+
done();
|
|
105
|
+
});
|
|
106
|
+
});
|
|
107
|
+
test('calls routing api with @ before the coordinates when snapToClosestStation is true', (done) => {
|
|
108
|
+
fetch.mockResponses([JSON.stringify(RoutingControlStation1), { status: 200 }], [JSON.stringify(global.fetchRouteResponse), { status: 200 }]);
|
|
109
|
+
const control = new RoutingControl({
|
|
110
|
+
apiKey: 'foo',
|
|
111
|
+
snapToClosestStation: true,
|
|
112
|
+
});
|
|
113
|
+
control.attachToMap(map);
|
|
114
|
+
expect(map.getTarget().querySelector('#ol-toggle-routing')).toBeDefined();
|
|
115
|
+
control.viaPoints = [
|
|
116
|
+
[950476.4055933182, 6003322.253698345],
|
|
117
|
+
[950389.0813034325, 6003656.659274571],
|
|
118
|
+
'e3666f03cba06b2b',
|
|
119
|
+
];
|
|
120
|
+
control.drawRoute(control.viaPoints).then(() => {
|
|
121
|
+
const { searchParams } = new URL(fetch.mock.calls[1][0]);
|
|
122
|
+
expect(searchParams.get('via')).toBe('@47.3739194713294,8.538274823394632|@47.37595378493421,8.537490375951839|!e3666f03cba06b2b');
|
|
123
|
+
done();
|
|
124
|
+
});
|
|
125
|
+
});
|
|
126
|
+
test('calls routing api with raw via points', (done) => {
|
|
127
|
+
fetch.mockResponses([JSON.stringify(RoutingControlStation1), { status: 200 }], [JSON.stringify(RoutingControlStation2), { status: 200 }], [JSON.stringify(global.fetchRouteResponse), { status: 200 }]);
|
|
128
|
+
const control = new RoutingControl({
|
|
129
|
+
apiKey: 'foo',
|
|
130
|
+
useRawViaPoints: true,
|
|
131
|
+
});
|
|
132
|
+
control.attachToMap(map);
|
|
133
|
+
expect(map.getTarget().querySelector('#ol-toggle-routing')).toBeDefined();
|
|
134
|
+
control.viaPoints = [
|
|
135
|
+
'46.2,7.1',
|
|
136
|
+
'@46.2,7.1',
|
|
137
|
+
'@46.2,7$1',
|
|
138
|
+
'station name$2',
|
|
139
|
+
'station name@46.2,7',
|
|
140
|
+
'stationname@46.2,7.7$3',
|
|
141
|
+
'!stationid',
|
|
142
|
+
[950389, 6003656],
|
|
143
|
+
];
|
|
144
|
+
control.drawRoute(control.viaPoints).then(() => {
|
|
145
|
+
const params = new URL(fetch.mock.calls[2][0]).searchParams;
|
|
146
|
+
expect(params.get('via')).toBe('46.2,7.1|@46.2,7.1|@46.2,7$1|station name$2|station name@46.2,7|stationname@46.2,7.7$3|!stationid|47.375949774398805,8.537489645590679');
|
|
147
|
+
done();
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StopFinderControl.test.d.ts","sourceRoot":"","sources":["../../../src/ol/controls/StopFinderControl.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import fetch from 'jest-fetch-mock';
|
|
2
|
+
import View from 'ol/View';
|
|
3
|
+
import Map from 'ol/Map';
|
|
4
|
+
import StopFinderControl from './StopFinderControl';
|
|
5
|
+
describe('StopFinderControl', () => {
|
|
6
|
+
let map;
|
|
7
|
+
beforeEach(() => {
|
|
8
|
+
const target = document.createElement('div');
|
|
9
|
+
document.body.appendChild(target);
|
|
10
|
+
map = new Map({
|
|
11
|
+
target,
|
|
12
|
+
view: new View({
|
|
13
|
+
center: [0, 0],
|
|
14
|
+
zoom: 0,
|
|
15
|
+
}),
|
|
16
|
+
});
|
|
17
|
+
global.fetch = fetch;
|
|
18
|
+
});
|
|
19
|
+
afterEach(() => {
|
|
20
|
+
if (map) {
|
|
21
|
+
map.setTarget(null);
|
|
22
|
+
map = null;
|
|
23
|
+
}
|
|
24
|
+
fetch.resetMocks();
|
|
25
|
+
});
|
|
26
|
+
test('should be activate by default', () => {
|
|
27
|
+
const control = new StopFinderControl();
|
|
28
|
+
expect(control.active).toBe(true);
|
|
29
|
+
});
|
|
30
|
+
test('launch a search and display results', (done) => {
|
|
31
|
+
fetch.mockResponseOnce(JSON.stringify(global.stopsSearchResponse));
|
|
32
|
+
const control = new StopFinderControl({
|
|
33
|
+
url: 'https://foo.ch',
|
|
34
|
+
apiKey: 'foo',
|
|
35
|
+
apiParams: {
|
|
36
|
+
limit: 10,
|
|
37
|
+
foo: 'bar',
|
|
38
|
+
},
|
|
39
|
+
});
|
|
40
|
+
control.attachToMap(map);
|
|
41
|
+
expect(control.element).toBeDefined();
|
|
42
|
+
control.search('foo').then(() => {
|
|
43
|
+
// Correct url
|
|
44
|
+
expect(fetch.mock.calls[0][0]).toEqual('https://foo.ch/?key=foo&limit=10&foo=bar&q=foo');
|
|
45
|
+
expect(control.element.querySelector('div').querySelector('div').innerHTML).toBe('Bern');
|
|
46
|
+
done();
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
});
|
package/ol/index.d.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Layer.test.d.ts","sourceRoot":"","sources":["../../../src/ol/layers/Layer.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,196 @@
|
|
|
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 Map from 'ol/Map';
|
|
13
|
+
import Group from 'ol/layer/Group';
|
|
14
|
+
import Layer from './Layer';
|
|
15
|
+
let olLayer;
|
|
16
|
+
let map;
|
|
17
|
+
describe('Layer', () => {
|
|
18
|
+
beforeEach(() => {
|
|
19
|
+
map = new Map({});
|
|
20
|
+
olLayer = new VectorLayer({ source: new VectorSource() });
|
|
21
|
+
});
|
|
22
|
+
test('should initialize.', () => {
|
|
23
|
+
const layer = new Layer({ name: 'Layer', olLayer });
|
|
24
|
+
expect(layer).toBeInstanceOf(Layer);
|
|
25
|
+
});
|
|
26
|
+
test('should be visible by default.', () => {
|
|
27
|
+
const layer = new Layer({ name: 'Layer', olLayer });
|
|
28
|
+
expect(layer.visible).toBe(true);
|
|
29
|
+
});
|
|
30
|
+
test('should be invisible if defined.', () => {
|
|
31
|
+
const layer = new Layer({ name: 'Layer', visible: false, olLayer });
|
|
32
|
+
expect(layer.visible).toBe(false);
|
|
33
|
+
});
|
|
34
|
+
test('should be invisible if set.', () => {
|
|
35
|
+
const layer = new Layer({ name: 'Layer', olLayer });
|
|
36
|
+
layer.visible = false;
|
|
37
|
+
expect(layer.visible).toBe(false);
|
|
38
|
+
});
|
|
39
|
+
test('should visibility stay unchanged', () => {
|
|
40
|
+
const layer = new Layer({ name: 'Layer', visible: false, olLayer });
|
|
41
|
+
layer.visible = false;
|
|
42
|
+
expect(layer.visible).toBe(false);
|
|
43
|
+
});
|
|
44
|
+
test('should return its name.', () => {
|
|
45
|
+
const layer = new Layer({ name: 'Layer', visible: false, olLayer });
|
|
46
|
+
expect(layer.name).toEqual('Layer');
|
|
47
|
+
});
|
|
48
|
+
test('should call terminate on initialization.', () => {
|
|
49
|
+
const layer = new Layer({ name: 'Layer', olLayer });
|
|
50
|
+
const spy = jest.spyOn(layer, 'detachFromMap');
|
|
51
|
+
layer.attachToMap();
|
|
52
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
53
|
+
});
|
|
54
|
+
test('should remove the layer when we call terminate.', () => {
|
|
55
|
+
const layer = new Layer({ name: 'Layer', olLayer });
|
|
56
|
+
const spy = jest.spyOn(layer, 'detachFromMap');
|
|
57
|
+
layer.attachToMap(map);
|
|
58
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
59
|
+
layer.detachFromMap(map);
|
|
60
|
+
expect(spy).toHaveBeenCalledTimes(2);
|
|
61
|
+
});
|
|
62
|
+
test('should manage copyrights as string.', () => {
|
|
63
|
+
const spy = jest.spyOn(VectorSource.prototype, 'setAttributions');
|
|
64
|
+
const layer = new Layer({ name: 'Layer', copyrights: 'foo', olLayer });
|
|
65
|
+
layer.attachToMap(map);
|
|
66
|
+
expect(spy).toHaveBeenCalledWith(['foo']);
|
|
67
|
+
});
|
|
68
|
+
test('should manage copyrights as array.', () => {
|
|
69
|
+
const spy = jest.spyOn(VectorSource.prototype, 'setAttributions');
|
|
70
|
+
const layer = new Layer({ name: 'Layer', copyrights: ['bar'], olLayer });
|
|
71
|
+
layer.attachToMap(map);
|
|
72
|
+
expect(spy).toHaveBeenCalledWith(['bar']);
|
|
73
|
+
});
|
|
74
|
+
test('should set attributions for Group.', () => {
|
|
75
|
+
const spy = jest.spyOn(VectorSource.prototype, 'setAttributions');
|
|
76
|
+
const layer = new Layer({
|
|
77
|
+
name: 'Layer',
|
|
78
|
+
copyrights: ['bar'],
|
|
79
|
+
olLayer: new Group({ layers: [olLayer] }),
|
|
80
|
+
});
|
|
81
|
+
layer.attachToMap(map);
|
|
82
|
+
expect(spy).toHaveBeenCalledWith(['bar']);
|
|
83
|
+
});
|
|
84
|
+
test('should listen for click/hover events when layer is visible by default then should not when hidden.', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
85
|
+
global.console.error = jest.fn();
|
|
86
|
+
const layer = new Layer({ name: 'Layer', olLayer });
|
|
87
|
+
expect(layer.visible).toBe(true);
|
|
88
|
+
const spy = jest.fn();
|
|
89
|
+
const spy2 = jest.fn();
|
|
90
|
+
layer.onHover(spy);
|
|
91
|
+
layer.onClick(spy2);
|
|
92
|
+
layer.attachToMap(map);
|
|
93
|
+
expect(spy).toHaveBeenCalledTimes(0);
|
|
94
|
+
expect(spy2).toHaveBeenCalledTimes(0);
|
|
95
|
+
yield map.dispatchEvent({ type: 'pointermove', map, coordinate: [0, 0] });
|
|
96
|
+
yield map.dispatchEvent({ type: 'singleclick', map, coordinate: [0, 0] });
|
|
97
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
98
|
+
expect(spy2).toHaveBeenCalledTimes(1);
|
|
99
|
+
spy.mockReset();
|
|
100
|
+
spy2.mockReset();
|
|
101
|
+
layer.visible = false;
|
|
102
|
+
yield map.dispatchEvent({ type: 'pointermove', map, coordinate: [0, 0] });
|
|
103
|
+
yield map.dispatchEvent({ type: 'singleclick', map, coordinate: [0, 0] });
|
|
104
|
+
expect(spy).toHaveBeenCalledTimes(0);
|
|
105
|
+
expect(spy2).toHaveBeenCalledTimes(0);
|
|
106
|
+
global.console.error.mockRestore();
|
|
107
|
+
}));
|
|
108
|
+
test('should not listen for click/hover events when layer is not visible by default then should not when visible.', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
109
|
+
global.console.error = jest.fn();
|
|
110
|
+
const layer = new Layer({ name: 'Layer', olLayer, visible: false });
|
|
111
|
+
expect(layer.visible).toBe(false);
|
|
112
|
+
const spy = jest.fn();
|
|
113
|
+
const spy2 = jest.fn();
|
|
114
|
+
layer.onHover(spy);
|
|
115
|
+
layer.onClick(spy2);
|
|
116
|
+
layer.attachToMap(map);
|
|
117
|
+
expect(spy).toHaveBeenCalledTimes(0);
|
|
118
|
+
expect(spy2).toHaveBeenCalledTimes(0);
|
|
119
|
+
yield map.dispatchEvent({ type: 'pointermove', map, coordinate: [0, 0] });
|
|
120
|
+
yield map.dispatchEvent({ type: 'singleclick', map, coordinate: [0, 0] });
|
|
121
|
+
expect(spy).toHaveBeenCalledTimes(0);
|
|
122
|
+
expect(spy2).toHaveBeenCalledTimes(0);
|
|
123
|
+
spy.mockReset();
|
|
124
|
+
spy2.mockReset();
|
|
125
|
+
layer.visible = true;
|
|
126
|
+
yield map.dispatchEvent({ type: 'pointermove', map, coordinate: [0, 0] });
|
|
127
|
+
yield map.dispatchEvent({ type: 'singleclick', map, coordinate: [0, 0] });
|
|
128
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
129
|
+
expect(spy2).toHaveBeenCalledTimes(1);
|
|
130
|
+
global.console.error.mockRestore();
|
|
131
|
+
}));
|
|
132
|
+
test('should not listen for click/hover events after layer.detachFromMap()', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
133
|
+
global.console.error = jest.fn();
|
|
134
|
+
const layer = new Layer({ name: 'Layer', olLayer, visible: true });
|
|
135
|
+
expect(layer.visible).toBe(true);
|
|
136
|
+
const spy = jest.fn();
|
|
137
|
+
const spy2 = jest.fn();
|
|
138
|
+
const spy3 = jest.fn();
|
|
139
|
+
const spy4 = jest.fn();
|
|
140
|
+
layer.onHover(spy);
|
|
141
|
+
layer.onClick(spy2);
|
|
142
|
+
layer.attachToMap(map);
|
|
143
|
+
// Test event after attached to map
|
|
144
|
+
layer.onHover(spy3);
|
|
145
|
+
layer.onClick(spy4);
|
|
146
|
+
expect(spy).toHaveBeenCalledTimes(0);
|
|
147
|
+
expect(spy2).toHaveBeenCalledTimes(0);
|
|
148
|
+
expect(spy3).toHaveBeenCalledTimes(0);
|
|
149
|
+
expect(spy4).toHaveBeenCalledTimes(0);
|
|
150
|
+
yield map.dispatchEvent({
|
|
151
|
+
type: 'pointermove',
|
|
152
|
+
map,
|
|
153
|
+
coordinate: [0, 0],
|
|
154
|
+
});
|
|
155
|
+
yield map.dispatchEvent({
|
|
156
|
+
type: 'singleclick',
|
|
157
|
+
map,
|
|
158
|
+
coordinate: [0, 0],
|
|
159
|
+
});
|
|
160
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
161
|
+
expect(spy2).toHaveBeenCalledTimes(1);
|
|
162
|
+
expect(spy3).toHaveBeenCalledTimes(1);
|
|
163
|
+
expect(spy4).toHaveBeenCalledTimes(1);
|
|
164
|
+
spy.mockReset();
|
|
165
|
+
spy2.mockReset();
|
|
166
|
+
spy3.mockReset();
|
|
167
|
+
spy4.mockReset();
|
|
168
|
+
layer.detachFromMap(map);
|
|
169
|
+
yield map.dispatchEvent({
|
|
170
|
+
type: 'pointermove',
|
|
171
|
+
map,
|
|
172
|
+
coordinate: [0, 0],
|
|
173
|
+
});
|
|
174
|
+
yield map.dispatchEvent({
|
|
175
|
+
type: 'singleclick',
|
|
176
|
+
map,
|
|
177
|
+
coordinate: [0, 0],
|
|
178
|
+
});
|
|
179
|
+
expect(spy).toHaveBeenCalledTimes(0);
|
|
180
|
+
expect(spy2).toHaveBeenCalledTimes(0);
|
|
181
|
+
expect(spy3).toHaveBeenCalledTimes(0);
|
|
182
|
+
expect(spy4).toHaveBeenCalledTimes(0);
|
|
183
|
+
global.console.error.mockRestore();
|
|
184
|
+
}));
|
|
185
|
+
test('should clone', () => {
|
|
186
|
+
const layer = new Layer({
|
|
187
|
+
name: 'Layer',
|
|
188
|
+
copyrights: ['bar'],
|
|
189
|
+
olLayer: new Group({ layers: [olLayer] }),
|
|
190
|
+
});
|
|
191
|
+
const clone = layer.clone({ name: 'clone' });
|
|
192
|
+
expect(clone).not.toBe(layer);
|
|
193
|
+
expect(clone.name).toBe('clone');
|
|
194
|
+
expect(clone).toBeInstanceOf(Layer);
|
|
195
|
+
});
|
|
196
|
+
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MapboxLayer.d.ts","sourceRoot":"","sources":["../../../src/ol/layers/MapboxLayer.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;GAaG;AACH;IA2BE;;;OAGG;IACH,
|
|
1
|
+
{"version":3,"file":"MapboxLayer.d.ts","sourceRoot":"","sources":["../../../src/ol/layers/MapboxLayer.js"],"names":[],"mappings":"AAMA;;;;;;;;;;;;;GAaG;AACH;IA2BE;;;OAGG;IACH,kBA+CC;IApCC,cAAc;IACd;;;;;;;kBAOC;IAYC,cAAc;IACd,8BAA0D;IAiB9D,6CAEC;IAGD,yBAEC;IAED;;;;OAIG;IACH,kBAHW,MAAM,GACL,WAAW,CAItB;CACF"}
|
package/ol/layers/MapboxLayer.js
CHANGED
|
@@ -64,6 +64,10 @@ export default class MapboxLayer extends mixin(Layer) {
|
|
|
64
64
|
size: [0, 0],
|
|
65
65
|
};
|
|
66
66
|
super.loadMbMap();
|
|
67
|
+
if (!this.mbMap) {
|
|
68
|
+
// mbMap could ne bull if the map is not in the dom yet.
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
67
71
|
this.mbMap.once('load', () => {
|
|
68
72
|
var _a;
|
|
69
73
|
this.mbMap.resize();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MapboxLayer.test.d.ts","sourceRoot":"","sources":["../../../src/ol/layers/MapboxLayer.test.js"],"names":[],"mappings":""}
|