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,204 @@
|
|
|
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 { Map } from 'maplibre-gl';
|
|
11
|
+
import { toLonLat } from 'ol/proj';
|
|
12
|
+
import Layer from './Layer';
|
|
13
|
+
let map;
|
|
14
|
+
let mapElement;
|
|
15
|
+
describe('Layer', () => {
|
|
16
|
+
beforeEach(() => {
|
|
17
|
+
mapElement = document.createElement('div');
|
|
18
|
+
const { style } = mapElement;
|
|
19
|
+
style.position = 'absolute';
|
|
20
|
+
style.left = '0px';
|
|
21
|
+
style.top = '0px';
|
|
22
|
+
style.width = '400px';
|
|
23
|
+
style.height = '400px';
|
|
24
|
+
mapElement.setAttribute('id', 'map');
|
|
25
|
+
document.body.appendChild(mapElement);
|
|
26
|
+
map = new Map({
|
|
27
|
+
container: document.getElementById('map'),
|
|
28
|
+
style: `path/to/style`,
|
|
29
|
+
center: toLonLat([831634, 5933959]),
|
|
30
|
+
zoom: 9,
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
afterEach(() => {
|
|
34
|
+
document.body.removeChild(mapElement);
|
|
35
|
+
});
|
|
36
|
+
test('should initialize.', () => {
|
|
37
|
+
const layer = new Layer({ name: 'Layer' });
|
|
38
|
+
expect(layer).toBeInstanceOf(Layer);
|
|
39
|
+
});
|
|
40
|
+
test('should be visible by default.', () => {
|
|
41
|
+
const layer = new Layer({ name: 'Layer' });
|
|
42
|
+
expect(layer.visible).toBe(true);
|
|
43
|
+
});
|
|
44
|
+
test('should be invisible if defined.', () => {
|
|
45
|
+
const layer = new Layer({ name: 'Layer', visible: false });
|
|
46
|
+
expect(layer.visible).toBe(false);
|
|
47
|
+
});
|
|
48
|
+
test('should be invisible if set.', () => {
|
|
49
|
+
const layer = new Layer({ name: 'Layer' });
|
|
50
|
+
layer.visible = false;
|
|
51
|
+
expect(layer.visible).toBe(false);
|
|
52
|
+
});
|
|
53
|
+
test('should visibility stay unchanged', () => {
|
|
54
|
+
const layer = new Layer({ name: 'Layer', visible: false });
|
|
55
|
+
layer.visible = false;
|
|
56
|
+
expect(layer.visible).toBe(false);
|
|
57
|
+
});
|
|
58
|
+
test('should return its name.', () => {
|
|
59
|
+
const layer = new Layer({ name: 'Layer', visible: false });
|
|
60
|
+
expect(layer.name).toEqual('Layer');
|
|
61
|
+
});
|
|
62
|
+
test('should call terminate on initialization.', () => {
|
|
63
|
+
const layer = new Layer({ name: 'Layer' });
|
|
64
|
+
const spy = jest.spyOn(layer, 'detachFromMap');
|
|
65
|
+
layer.attachToMap(map);
|
|
66
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
67
|
+
});
|
|
68
|
+
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* () {
|
|
69
|
+
global.console.error = jest.fn();
|
|
70
|
+
const layer = new Layer({ name: 'Layer' });
|
|
71
|
+
expect(layer.visible).toBe(true);
|
|
72
|
+
const spy = jest.fn();
|
|
73
|
+
const spy2 = jest.fn();
|
|
74
|
+
layer.onHover(spy);
|
|
75
|
+
layer.onClick(spy2);
|
|
76
|
+
layer.attachToMap(map);
|
|
77
|
+
expect(spy).toHaveBeenCalledTimes(0);
|
|
78
|
+
expect(spy2).toHaveBeenCalledTimes(0);
|
|
79
|
+
yield map.fire('mousemove', {
|
|
80
|
+
type: 'mousemove',
|
|
81
|
+
lngLat: { toArray: () => [0, 0] },
|
|
82
|
+
coordinate: [0, 0],
|
|
83
|
+
});
|
|
84
|
+
yield map.fire('click', {
|
|
85
|
+
type: 'click',
|
|
86
|
+
lngLat: { toArray: () => [0, 0] },
|
|
87
|
+
});
|
|
88
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
89
|
+
expect(spy2).toHaveBeenCalledTimes(1);
|
|
90
|
+
spy.mockReset();
|
|
91
|
+
spy2.mockReset();
|
|
92
|
+
layer.visible = false;
|
|
93
|
+
yield map.fire('mousemove', {
|
|
94
|
+
type: 'mousemove',
|
|
95
|
+
lngLat: { toArray: () => [0, 0] },
|
|
96
|
+
});
|
|
97
|
+
yield map.fire('click', {
|
|
98
|
+
type: 'click',
|
|
99
|
+
lngLat: { toArray: () => [0, 0] },
|
|
100
|
+
});
|
|
101
|
+
expect(spy).toHaveBeenCalledTimes(0);
|
|
102
|
+
expect(spy2).toHaveBeenCalledTimes(0);
|
|
103
|
+
global.console.error.mockRestore();
|
|
104
|
+
}));
|
|
105
|
+
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* () {
|
|
106
|
+
global.console.error = jest.fn();
|
|
107
|
+
const layer = new Layer({ name: 'Layer', visible: false });
|
|
108
|
+
expect(layer.visible).toBe(false);
|
|
109
|
+
const spy = jest.fn();
|
|
110
|
+
const spy2 = jest.fn();
|
|
111
|
+
layer.onHover(spy);
|
|
112
|
+
layer.onClick(spy2);
|
|
113
|
+
layer.attachToMap(map);
|
|
114
|
+
expect(spy).toHaveBeenCalledTimes(0);
|
|
115
|
+
expect(spy2).toHaveBeenCalledTimes(0);
|
|
116
|
+
yield map.fire('mousemove', {
|
|
117
|
+
type: 'mousemove',
|
|
118
|
+
lngLat: { toArray: () => [0, 0] },
|
|
119
|
+
coordinate: [0, 0],
|
|
120
|
+
});
|
|
121
|
+
yield map.fire('click', {
|
|
122
|
+
type: 'click',
|
|
123
|
+
lngLat: { toArray: () => [0, 0] },
|
|
124
|
+
});
|
|
125
|
+
expect(spy).toHaveBeenCalledTimes(0);
|
|
126
|
+
expect(spy2).toHaveBeenCalledTimes(0);
|
|
127
|
+
spy.mockReset();
|
|
128
|
+
spy2.mockReset();
|
|
129
|
+
layer.visible = true;
|
|
130
|
+
yield map.fire('mousemove', {
|
|
131
|
+
type: 'mousemove',
|
|
132
|
+
lngLat: { toArray: () => [0, 0] },
|
|
133
|
+
coordinate: [0, 0],
|
|
134
|
+
});
|
|
135
|
+
yield map.fire('click', {
|
|
136
|
+
type: 'click',
|
|
137
|
+
lngLat: { toArray: () => [0, 0] },
|
|
138
|
+
});
|
|
139
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
140
|
+
expect(spy2).toHaveBeenCalledTimes(1);
|
|
141
|
+
global.console.error.mockRestore();
|
|
142
|
+
}));
|
|
143
|
+
test('should not listen for click/hover events after layer.detachFromMap()', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
144
|
+
global.console.error = jest.fn();
|
|
145
|
+
const layer = new Layer({ name: 'Layer', visible: true });
|
|
146
|
+
expect(layer.visible).toBe(true);
|
|
147
|
+
const spy = jest.fn();
|
|
148
|
+
const spy2 = jest.fn();
|
|
149
|
+
const spy3 = jest.fn();
|
|
150
|
+
const spy4 = jest.fn();
|
|
151
|
+
layer.onHover(spy);
|
|
152
|
+
layer.onClick(spy2);
|
|
153
|
+
layer.attachToMap(map);
|
|
154
|
+
// Test event after attached to map
|
|
155
|
+
layer.onHover(spy3);
|
|
156
|
+
layer.onClick(spy4);
|
|
157
|
+
expect(spy).toHaveBeenCalledTimes(0);
|
|
158
|
+
expect(spy2).toHaveBeenCalledTimes(0);
|
|
159
|
+
expect(spy3).toHaveBeenCalledTimes(0);
|
|
160
|
+
expect(spy4).toHaveBeenCalledTimes(0);
|
|
161
|
+
yield map.fire('mousemove', {
|
|
162
|
+
type: 'mousemove',
|
|
163
|
+
lngLat: { toArray: () => [0, 0] },
|
|
164
|
+
coordinate: [0, 0],
|
|
165
|
+
});
|
|
166
|
+
yield map.fire('click', {
|
|
167
|
+
type: 'click',
|
|
168
|
+
lngLat: { toArray: () => [0, 0] },
|
|
169
|
+
});
|
|
170
|
+
expect(spy).toHaveBeenCalledTimes(1);
|
|
171
|
+
expect(spy2).toHaveBeenCalledTimes(1);
|
|
172
|
+
expect(spy3).toHaveBeenCalledTimes(1);
|
|
173
|
+
expect(spy4).toHaveBeenCalledTimes(1);
|
|
174
|
+
spy.mockReset();
|
|
175
|
+
spy2.mockReset();
|
|
176
|
+
spy3.mockReset();
|
|
177
|
+
spy4.mockReset();
|
|
178
|
+
layer.detachFromMap();
|
|
179
|
+
yield map.fire('mousemove', {
|
|
180
|
+
type: 'mousemove',
|
|
181
|
+
lngLat: { toArray: () => [0, 0] },
|
|
182
|
+
coordinate: [0, 0],
|
|
183
|
+
});
|
|
184
|
+
yield map.fire('click', {
|
|
185
|
+
type: 'click',
|
|
186
|
+
lngLat: { toArray: () => [0, 0] },
|
|
187
|
+
});
|
|
188
|
+
expect(spy).toHaveBeenCalledTimes(0);
|
|
189
|
+
expect(spy2).toHaveBeenCalledTimes(0);
|
|
190
|
+
expect(spy3).toHaveBeenCalledTimes(0);
|
|
191
|
+
expect(spy4).toHaveBeenCalledTimes(0);
|
|
192
|
+
global.console.error.mockRestore();
|
|
193
|
+
}));
|
|
194
|
+
test('should clone', () => {
|
|
195
|
+
const layer = new Layer({
|
|
196
|
+
name: 'Layer',
|
|
197
|
+
copyrights: ['bar'],
|
|
198
|
+
});
|
|
199
|
+
const clone = layer.clone({ name: 'clone' });
|
|
200
|
+
expect(clone).not.toBe(layer);
|
|
201
|
+
expect(clone.name).toBe('clone');
|
|
202
|
+
expect(clone).toBeInstanceOf(Layer);
|
|
203
|
+
});
|
|
204
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RealtimeLayer.test.d.ts","sourceRoot":"","sources":["../../../src/mapbox/layers/RealtimeLayer.test.js"],"names":[],"mappings":""}
|
package/mbt.js
CHANGED
|
@@ -33492,8 +33492,26 @@ uniform ${i3} ${o3} u_${a3};
|
|
|
33492
33492
|
send();
|
|
33493
33493
|
}
|
|
33494
33494
|
}
|
|
33495
|
+
addEvents(onMessage, onError) {
|
|
33496
|
+
if (this.websocket) {
|
|
33497
|
+
this.websocket.addEventListener("message", onMessage);
|
|
33498
|
+
if (onError) {
|
|
33499
|
+
this.websocket.addEventListener("error", onError);
|
|
33500
|
+
this.websocket.addEventListener("close", onError);
|
|
33501
|
+
}
|
|
33502
|
+
}
|
|
33503
|
+
}
|
|
33504
|
+
removeEvents(onMessage, onError) {
|
|
33505
|
+
if (this.websocket) {
|
|
33506
|
+
this.websocket.removeEventListener("message", onMessage);
|
|
33507
|
+
if (onError) {
|
|
33508
|
+
this.websocket.removeEventListener("error", onError);
|
|
33509
|
+
this.websocket.removeEventListener("close", onError);
|
|
33510
|
+
}
|
|
33511
|
+
}
|
|
33512
|
+
}
|
|
33495
33513
|
listen(params, cb, errorCb) {
|
|
33496
|
-
this.unlisten(params, cb);
|
|
33514
|
+
this.unlisten(params, cb, errorCb);
|
|
33497
33515
|
const onMessage = (evt) => {
|
|
33498
33516
|
let data = {};
|
|
33499
33517
|
try {
|
|
@@ -33510,33 +33528,42 @@ uniform ${i3} ${o3} u_${a3};
|
|
|
33510
33528
|
}
|
|
33511
33529
|
});
|
|
33512
33530
|
};
|
|
33513
|
-
|
|
33514
|
-
this.websocket.addEventListener("message", onMessage);
|
|
33515
|
-
if (errorCb) {
|
|
33516
|
-
this.websocket.addEventListener("error", errorCb);
|
|
33517
|
-
this.websocket.addEventListener("close", errorCb);
|
|
33518
|
-
}
|
|
33519
|
-
}
|
|
33531
|
+
this.addEvents(onMessage, errorCb);
|
|
33520
33532
|
return { onMessageCb: onMessage, onErrorCb: errorCb };
|
|
33521
33533
|
}
|
|
33522
33534
|
unlisten(params, cb) {
|
|
33523
|
-
|
|
33524
|
-
|
|
33525
|
-
}
|
|
33526
|
-
this.subscriptions.filter((s) => s.params.channel === params.channel && (!cb || s.cb === cb)).forEach(({ onMessageCb, onErrorCb }) => {
|
|
33527
|
-
if (this.websocket) {
|
|
33528
|
-
this.websocket.removeEventListener("message", onMessageCb);
|
|
33529
|
-
if (onErrorCb) {
|
|
33530
|
-
this.websocket.removeEventListener("error", onErrorCb);
|
|
33531
|
-
this.websocket.removeEventListener("close", onErrorCb);
|
|
33532
|
-
}
|
|
33533
|
-
}
|
|
33535
|
+
[...this.subscriptions || [], ...this.requests || []].filter((s) => s.params.channel === params.channel && (!cb || s.cb === cb)).forEach(({ onMessageCb, onErrorCb }) => {
|
|
33536
|
+
this.removeEvents(onMessageCb, onErrorCb);
|
|
33534
33537
|
});
|
|
33535
33538
|
}
|
|
33536
33539
|
get(params, cb, errorCb) {
|
|
33537
|
-
const
|
|
33538
|
-
this.send(
|
|
33539
|
-
|
|
33540
|
+
const requestString = WebSocketAPI.getRequestString("GET", params);
|
|
33541
|
+
this.send(requestString);
|
|
33542
|
+
const once = (callback) => (...args) => {
|
|
33543
|
+
callback(...args);
|
|
33544
|
+
const index2 = this.requests.findIndex((request) => requestString === request.requestString && cb === request.cb);
|
|
33545
|
+
const { onMessageCb: onMessageCb2, onErrorCb: onErrorCb2 } = this.requests[index2];
|
|
33546
|
+
this.removeEvents(onMessageCb2, onErrorCb2);
|
|
33547
|
+
this.requests.splice(index2, 1);
|
|
33548
|
+
};
|
|
33549
|
+
const { onMessageCb, onErrorCb } = this.listen(params, once(cb), once(errorCb));
|
|
33550
|
+
if (!this.requests) {
|
|
33551
|
+
this.requests = [];
|
|
33552
|
+
}
|
|
33553
|
+
const index = this.requests.findIndex((request) => requestString === request.requestString && cb === request.cb);
|
|
33554
|
+
const newReq = {
|
|
33555
|
+
params,
|
|
33556
|
+
requestString,
|
|
33557
|
+
cb,
|
|
33558
|
+
errorCb,
|
|
33559
|
+
onMessageCb,
|
|
33560
|
+
onErrorCb
|
|
33561
|
+
};
|
|
33562
|
+
if (index > -1) {
|
|
33563
|
+
this.requests[index] = newReq;
|
|
33564
|
+
} else {
|
|
33565
|
+
this.requests.push(newReq);
|
|
33566
|
+
}
|
|
33540
33567
|
}
|
|
33541
33568
|
subscribe(params, cb, errorCb, quiet = false) {
|
|
33542
33569
|
const { onMessageCb, onErrorCb } = this.listen(params, cb, errorCb);
|
|
@@ -33559,13 +33586,7 @@ uniform ${i3} ${o3} u_${a3};
|
|
|
33559
33586
|
unsubscribe(source, cb) {
|
|
33560
33587
|
const toRemove = this.subscriptions.filter((s) => s.params.channel === source && (!cb || s.cb === cb));
|
|
33561
33588
|
toRemove.forEach(({ onMessageCb, onErrorCb }) => {
|
|
33562
|
-
|
|
33563
|
-
this.websocket.removeEventListener("message", onMessageCb);
|
|
33564
|
-
if (onErrorCb) {
|
|
33565
|
-
this.websocket.removeEventListener("error", onErrorCb);
|
|
33566
|
-
this.websocket.removeEventListener("close", onErrorCb);
|
|
33567
|
-
}
|
|
33568
|
-
}
|
|
33589
|
+
this.removeEvents(onMessageCb, onErrorCb);
|
|
33569
33590
|
});
|
|
33570
33591
|
this.subscriptions = this.subscriptions.filter((s) => s.params.channel !== source || cb && s.cb !== cb);
|
|
33571
33592
|
if (source && this.subscribed[source] && !this.subscriptions.find((s) => s.params.channel === source) && toRemove.find((subscr) => !subscr.quiet)) {
|
|
@@ -35649,7 +35670,7 @@ uniform ${i3} ${o3} u_${a3};
|
|
|
35649
35670
|
getTextSize: getTextSize2
|
|
35650
35671
|
} = options;
|
|
35651
35672
|
const { zoom, pixelRatio } = viewState;
|
|
35652
|
-
let { type
|
|
35673
|
+
let { type } = trajectory.properties;
|
|
35653
35674
|
const {
|
|
35654
35675
|
train_id: id,
|
|
35655
35676
|
line,
|
|
@@ -35658,7 +35679,7 @@ uniform ${i3} ${o3} u_${a3};
|
|
|
35658
35679
|
operator_provides_realtime_journey: operatorProvidesRealtime
|
|
35659
35680
|
} = trajectory.properties;
|
|
35660
35681
|
let { name, text_color: textColor, color } = line || {};
|
|
35661
|
-
cancelled =
|
|
35682
|
+
const cancelled = state === "JOURNEY_CANCELLED";
|
|
35662
35683
|
if (!type) {
|
|
35663
35684
|
type = "Rail";
|
|
35664
35685
|
}
|
|
@@ -35756,7 +35777,7 @@ uniform ${i3} ${o3} u_${a3};
|
|
|
35756
35777
|
var canvas;
|
|
35757
35778
|
var realtimeSimpleStyle = () => {
|
|
35758
35779
|
if (!canvas) {
|
|
35759
|
-
document.createElement("canvas");
|
|
35780
|
+
canvas = document.createElement("canvas");
|
|
35760
35781
|
canvas.width = 15;
|
|
35761
35782
|
canvas.height = 15;
|
|
35762
35783
|
const ctx = canvas.getContext("2d");
|
|
@@ -48271,6 +48292,9 @@ uniform ${i3} ${o3} u_${a3};
|
|
|
48271
48292
|
size: [0, 0]
|
|
48272
48293
|
};
|
|
48273
48294
|
super.loadMbMap();
|
|
48295
|
+
if (!this.mbMap) {
|
|
48296
|
+
return;
|
|
48297
|
+
}
|
|
48274
48298
|
this.mbMap.once("load", () => {
|
|
48275
48299
|
this.mbMap.resize();
|
|
48276
48300
|
this.copyrights = getMapboxMapCopyrights_default(this.mbMap) || [];
|