mobility-toolbox-js 2.0.0-beta.34 → 2.0.0-beta.37

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.
Files changed (195) hide show
  1. package/README.md +14 -8
  2. package/api/RealtimeAPI.d.ts +6 -6
  3. package/api/RealtimeAPI.d.ts.map +1 -1
  4. package/api/RealtimeAPI.js +170 -197
  5. package/api/RealtimeAPI.test.d.ts +2 -0
  6. package/api/RealtimeAPI.test.d.ts.map +1 -0
  7. package/api/RealtimeAPI.test.js +67 -0
  8. package/api/RoutingAPI.d.ts +6 -2
  9. package/api/RoutingAPI.d.ts.map +1 -1
  10. package/api/RoutingAPI.js +8 -38
  11. package/api/RoutingAPI.test.d.ts +2 -0
  12. package/api/RoutingAPI.test.d.ts.map +1 -0
  13. package/api/RoutingAPI.test.js +29 -0
  14. package/api/StopsAPI.d.ts +1 -1
  15. package/api/StopsAPI.d.ts.map +1 -1
  16. package/api/StopsAPI.js +8 -40
  17. package/api/StopsAPI.test.d.ts +2 -0
  18. package/api/StopsAPI.test.d.ts.map +1 -0
  19. package/api/StopsAPI.test.js +26 -0
  20. package/api/index.d.ts +3 -4
  21. package/api/index.d.ts.map +1 -1
  22. package/api/index.js +3 -10
  23. package/api/typedefs.js +1 -0
  24. package/common/api/HttpAPI.d.ts +2 -2
  25. package/common/api/HttpAPI.d.ts.map +1 -1
  26. package/common/api/HttpAPI.js +21 -48
  27. package/common/api/HttpAPI.test.d.ts +2 -0
  28. package/common/api/HttpAPI.test.d.ts.map +1 -0
  29. package/common/api/HttpAPI.test.js +54 -0
  30. package/common/api/WebSocketAPI.d.ts +8 -4
  31. package/common/api/WebSocketAPI.d.ts.map +1 -1
  32. package/common/api/WebSocketAPI.js +125 -129
  33. package/common/api/WebSocketAPI.test.d.ts +2 -0
  34. package/common/api/WebSocketAPI.test.d.ts.map +1 -0
  35. package/common/api/WebSocketAPI.test.js +380 -0
  36. package/common/controls/Control.d.ts +5 -5
  37. package/common/controls/Control.d.ts.map +1 -1
  38. package/common/controls/Control.js +44 -77
  39. package/common/controls/Control.test.d.ts +2 -0
  40. package/common/controls/Control.test.d.ts.map +1 -0
  41. package/common/controls/Control.test.js +89 -0
  42. package/common/index.js +2 -18
  43. package/common/layers/Layer.d.ts +11 -11
  44. package/common/layers/Layer.d.ts.map +1 -1
  45. package/common/layers/Layer.js +70 -104
  46. package/common/layers/Layer.test.d.ts +2 -0
  47. package/common/layers/Layer.test.d.ts.map +1 -0
  48. package/common/layers/Layer.test.js +137 -0
  49. package/common/mixins/CopyrightMixin.js +23 -52
  50. package/common/mixins/MapboxLayerMixin.js +162 -204
  51. package/common/mixins/RealtimeLayerMixin.js +580 -635
  52. package/common/mixins/StopFinderMixin.d.ts +3 -3
  53. package/common/mixins/StopFinderMixin.d.ts.map +1 -1
  54. package/common/mixins/StopFinderMixin.js +115 -157
  55. package/common/mixins/UserInteractionsLayerMixin.js +142 -175
  56. package/common/mixins/UserInteractionsLayerMixin.test.d.ts +2 -0
  57. package/common/mixins/UserInteractionsLayerMixin.test.d.ts.map +1 -0
  58. package/common/mixins/UserInteractionsLayerMixin.test.js +214 -0
  59. package/common/styles/index.js +4 -24
  60. package/common/styles/realtimeDefaultStyle.d.ts.map +1 -1
  61. package/common/styles/realtimeDefaultStyle.js +67 -78
  62. package/common/styles/realtimeDelayStyle.js +4 -17
  63. package/common/styles/realtimeSimpleStyle.js +5 -7
  64. package/common/typedefs.js +1 -0
  65. package/common/utils/cleanStopTime.js +3 -5
  66. package/common/utils/compareDepartures.d.ts +1 -1
  67. package/common/utils/compareDepartures.d.ts.map +1 -1
  68. package/common/utils/compareDepartures.js +8 -11
  69. package/common/utils/createCanvas.js +3 -5
  70. package/common/utils/createTrackerFilters.d.ts +1 -1
  71. package/common/utils/createTrackerFilters.d.ts.map +1 -1
  72. package/common/utils/createTrackerFilters.js +22 -32
  73. package/common/utils/createTrackerFilters.test.d.ts +2 -0
  74. package/common/utils/createTrackerFilters.test.d.ts.map +1 -0
  75. package/common/utils/createTrackerFilters.test.js +79 -0
  76. package/common/utils/getLayersAsFlatArray.js +6 -8
  77. package/common/utils/getMapboxMapCopyrights.js +9 -11
  78. package/common/utils/getMapboxMapCopyrights.test.d.ts +2 -0
  79. package/common/utils/getMapboxMapCopyrights.test.d.ts.map +1 -0
  80. package/common/utils/getMapboxMapCopyrights.test.js +40 -0
  81. package/common/utils/getMapboxRender.js +12 -15
  82. package/common/utils/getMaplibreRender.js +10 -13
  83. package/common/utils/getRealtimeModeSuffix.js +2 -6
  84. package/common/utils/getUrlWithParams.js +5 -8
  85. package/common/utils/getVehiclePosition.js +20 -23
  86. package/common/utils/index.js +12 -37
  87. package/common/utils/removeDuplicate.d.ts +1 -1
  88. package/common/utils/removeDuplicate.d.ts.map +1 -1
  89. package/common/utils/removeDuplicate.js +6 -21
  90. package/common/utils/removeDuplicate.test.d.ts +2 -0
  91. package/common/utils/removeDuplicate.test.d.ts.map +1 -0
  92. package/common/utils/removeDuplicate.test.js +19 -0
  93. package/common/utils/renderTrajectories.js +31 -43
  94. package/common/utils/sortByDelay.js +4 -6
  95. package/common/utils/timeUtils.js +14 -24
  96. package/common/utils/timeUtils.test.d.ts +2 -0
  97. package/common/utils/timeUtils.test.d.ts.map +1 -0
  98. package/common/utils/timeUtils.test.js +10 -0
  99. package/common/utils/trackerConfig.js +27 -39
  100. package/common/utils/trackerConfig.test.d.ts +2 -0
  101. package/common/utils/trackerConfig.test.d.ts.map +1 -0
  102. package/common/utils/trackerConfig.test.js +23 -0
  103. package/iife.js +3 -5
  104. package/index.d.ts +4 -0
  105. package/index.js +9 -10
  106. package/mapbox/controls/CopyrightControl.d.ts +0 -1
  107. package/mapbox/controls/CopyrightControl.d.ts.map +1 -1
  108. package/mapbox/controls/CopyrightControl.js +18 -38
  109. package/mapbox/controls/index.js +1 -5
  110. package/mapbox/index.js +4 -20
  111. package/mapbox/layers/Layer.d.ts +1 -1
  112. package/mapbox/layers/Layer.d.ts.map +1 -1
  113. package/mapbox/layers/Layer.js +29 -71
  114. package/mapbox/layers/Layer.test.d.ts +2 -0
  115. package/mapbox/layers/Layer.test.d.ts.map +1 -0
  116. package/mapbox/layers/Layer.test.js +204 -0
  117. package/mapbox/layers/RealtimeLayer.d.ts +4 -4
  118. package/mapbox/layers/RealtimeLayer.d.ts.map +1 -1
  119. package/mapbox/layers/RealtimeLayer.js +83 -125
  120. package/mapbox/layers/RealtimeLayer.test.d.ts +2 -0
  121. package/mapbox/layers/RealtimeLayer.test.d.ts.map +1 -0
  122. package/mapbox/layers/RealtimeLayer.test.js +10 -0
  123. package/mapbox/layers/index.js +2 -7
  124. package/mapbox/utils.js +19 -33
  125. package/mbt.js +59 -37
  126. package/mbt.js.map +2 -2
  127. package/mbt.min.js +10 -10
  128. package/mbt.min.js.map +2 -2
  129. package/ol/controls/CopyrightControl.js +26 -47
  130. package/ol/controls/CopyrightControl.test.d.ts +2 -0
  131. package/ol/controls/CopyrightControl.test.d.ts.map +1 -0
  132. package/ol/controls/CopyrightControl.test.js +177 -0
  133. package/ol/controls/RoutingControl.d.ts +6 -5
  134. package/ol/controls/RoutingControl.d.ts.map +1 -1
  135. package/ol/controls/RoutingControl.js +209 -270
  136. package/ol/controls/RoutingControl.test.d.ts +2 -0
  137. package/ol/controls/RoutingControl.test.d.ts.map +1 -0
  138. package/ol/controls/RoutingControl.test.js +150 -0
  139. package/ol/controls/StopFinderControl.js +9 -32
  140. package/ol/controls/StopFinderControl.test.d.ts +2 -0
  141. package/ol/controls/StopFinderControl.test.d.ts.map +1 -0
  142. package/ol/controls/StopFinderControl.test.js +49 -0
  143. package/ol/controls/index.js +3 -9
  144. package/ol/index.js +5 -21
  145. package/ol/layers/Layer.d.ts +1 -1
  146. package/ol/layers/Layer.d.ts.map +1 -1
  147. package/ol/layers/Layer.js +40 -72
  148. package/ol/layers/Layer.test.d.ts +2 -0
  149. package/ol/layers/Layer.test.d.ts.map +1 -0
  150. package/ol/layers/Layer.test.js +196 -0
  151. package/ol/layers/MapboxLayer.d.ts +7 -7
  152. package/ol/layers/MapboxLayer.d.ts.map +1 -1
  153. package/ol/layers/MapboxLayer.js +30 -66
  154. package/ol/layers/MapboxLayer.test.d.ts +2 -0
  155. package/ol/layers/MapboxLayer.test.d.ts.map +1 -0
  156. package/ol/layers/MapboxLayer.test.js +164 -0
  157. package/ol/layers/MapboxStyleLayer.d.ts +3 -3
  158. package/ol/layers/MapboxStyleLayer.d.ts.map +1 -1
  159. package/ol/layers/MapboxStyleLayer.js +92 -135
  160. package/ol/layers/MapboxStyleLayer.test.d.ts +2 -0
  161. package/ol/layers/MapboxStyleLayer.test.d.ts.map +1 -0
  162. package/ol/layers/MapboxStyleLayer.test.js +232 -0
  163. package/ol/layers/MaplibreLayer.d.ts +1 -1
  164. package/ol/layers/MaplibreLayer.d.ts.map +1 -1
  165. package/ol/layers/MaplibreLayer.js +14 -48
  166. package/ol/layers/RealtimeLayer.d.ts +2 -2
  167. package/ol/layers/RealtimeLayer.d.ts.map +1 -1
  168. package/ol/layers/RealtimeLayer.js +111 -147
  169. package/ol/layers/RealtimeLayer.test.d.ts +2 -0
  170. package/ol/layers/RealtimeLayer.test.d.ts.map +1 -0
  171. package/ol/layers/RealtimeLayer.test.js +71 -0
  172. package/ol/layers/RoutingLayer.d.ts +2 -2
  173. package/ol/layers/RoutingLayer.d.ts.map +1 -1
  174. package/ol/layers/RoutingLayer.js +29 -61
  175. package/ol/layers/RoutingLayer.test.d.ts +2 -0
  176. package/ol/layers/RoutingLayer.test.d.ts.map +1 -0
  177. package/ol/layers/RoutingLayer.test.js +39 -0
  178. package/ol/layers/VectorLayer.d.ts +1 -1
  179. package/ol/layers/VectorLayer.d.ts.map +1 -1
  180. package/ol/layers/VectorLayer.js +14 -48
  181. package/ol/layers/VectorLayer.test.d.ts +2 -0
  182. package/ol/layers/VectorLayer.test.d.ts.map +1 -0
  183. package/ol/layers/VectorLayer.test.js +87 -0
  184. package/ol/layers/WMSLayer.d.ts +1 -1
  185. package/ol/layers/WMSLayer.d.ts.map +1 -1
  186. package/ol/layers/WMSLayer.js +34 -68
  187. package/ol/layers/WMSLayer.test.d.ts +2 -0
  188. package/ol/layers/WMSLayer.test.d.ts.map +1 -0
  189. package/ol/layers/WMSLayer.test.js +66 -0
  190. package/ol/layers/index.js +8 -19
  191. package/ol/styles/fullTrajectoryDelayStyle.js +11 -13
  192. package/ol/styles/fullTrajectoryStyle.js +16 -18
  193. package/ol/styles/index.js +2 -7
  194. package/package.json +5 -2
  195. package/setupTests.js +12 -14
@@ -1,44 +1,7 @@
1
- "use strict";
2
- var __extends = (this && this.__extends) || (function () {
3
- var extendStatics = function (d, b) {
4
- extendStatics = Object.setPrototypeOf ||
5
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
- return extendStatics(d, b);
8
- };
9
- return function (d, b) {
10
- if (typeof b !== "function" && b !== null)
11
- throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
- extendStatics(d, b);
13
- function __() { this.constructor = d; }
14
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
- };
16
- })();
17
- var __assign = (this && this.__assign) || function () {
18
- __assign = Object.assign || function(t) {
19
- for (var s, i = 1, n = arguments.length; i < n; i++) {
20
- s = arguments[i];
21
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
22
- t[p] = s[p];
23
- }
24
- return t;
25
- };
26
- return __assign.apply(this, arguments);
27
- };
28
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
29
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
30
- if (ar || !(i in from)) {
31
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
32
- ar[i] = from[i];
33
- }
34
- }
35
- return to.concat(ar || Array.prototype.slice.call(from));
36
- };
37
- Object.defineProperty(exports, "__esModule", { value: true });
38
- var Observable_1 = require("ol/Observable");
39
- var proj_1 = require("ol/proj");
40
- var Layer_1 = require("../../common/layers/Layer");
41
- var UserInteractionsLayerMixin_1 = require("../../common/mixins/UserInteractionsLayerMixin");
1
+ import { unByKey } from 'ol/Observable';
2
+ import { transformExtent } from 'ol/proj';
3
+ import LayerCommon from '../../common/layers/Layer';
4
+ import userInteractionsMixin from '../../common/mixins/UserInteractionsLayerMixin';
42
5
  /**
43
6
  * A class representing a layer to display on an OpenLayers map.
44
7
  *
@@ -54,17 +17,13 @@ var UserInteractionsLayerMixin_1 = require("../../common/mixins/UserInteractions
54
17
  * @classproperty {ol/Map~Map} map - The map where the layer is displayed.
55
18
  * @extends {Layer}
56
19
  */
57
- var Layer = /** @class */ (function (_super) {
58
- __extends(Layer, _super);
59
- function Layer() {
60
- return _super !== null && _super.apply(this, arguments) || this;
61
- }
20
+ class Layer extends userInteractionsMixin(LayerCommon) {
62
21
  /**
63
22
  * Initialize the layer and listen to user events.
64
23
  * @param {ol/Map~Map} map
65
24
  */
66
- Layer.prototype.attachToMap = function (map) {
67
- _super.prototype.attachToMap.call(this, map);
25
+ attachToMap(map) {
26
+ super.attachToMap(map);
68
27
  if (!this.map) {
69
28
  return;
70
29
  }
@@ -72,15 +31,15 @@ var Layer = /** @class */ (function (_super) {
72
31
  this.toggleVisibleListeners();
73
32
  this.onChangeVisibleKey = this.on('change:visible', this.toggleVisibleListeners);
74
33
  }
75
- };
76
- Layer.prototype.detachFromMap = function () {
34
+ }
35
+ detachFromMap() {
77
36
  if (this.map) {
78
37
  this.deactivateUserInteractions();
79
- (0, Observable_1.unByKey)(this.onChangeVisibleKey);
38
+ unByKey(this.onChangeVisibleKey);
80
39
  }
81
- _super.prototype.detachFromMap.call(this);
82
- };
83
- Layer.prototype.activateUserInteractions = function () {
40
+ super.detachFromMap();
41
+ }
42
+ activateUserInteractions() {
84
43
  this.deactivateUserInteractions();
85
44
  if (this.map &&
86
45
  this.userInteractions &&
@@ -94,46 +53,45 @@ var Layer = /** @class */ (function (_super) {
94
53
  this.userHoverCallbacks.length) {
95
54
  this.map.on('mousemove', this.onUserMoveCallback);
96
55
  }
97
- };
98
- Layer.prototype.deactivateUserInteractions = function () {
56
+ }
57
+ deactivateUserInteractions() {
99
58
  if (this.map) {
100
59
  this.map.off('mousemove', this.onUserMoveCallback);
101
60
  this.map.off('click', this.onUserClickCallback);
102
61
  }
103
- };
62
+ }
104
63
  /**
105
64
  * Toggle listeners needed when a layer is avisible or not.
106
65
  * @private
107
66
  */
108
- Layer.prototype.toggleVisibleListeners = function () {
67
+ toggleVisibleListeners() {
109
68
  if (this.visible) {
110
69
  this.activateUserInteractions();
111
70
  }
112
71
  else {
113
72
  this.deactivateUserInteractions();
114
73
  }
115
- };
74
+ }
116
75
  /**
117
76
  * Returns the current extent in mercator coordinates.
118
77
  */
119
- Layer.prototype.getMercatorExtent = function () {
120
- var bounds = this.map.getBounds().toArray();
121
- return (0, proj_1.transformExtent)(__spreadArray(__spreadArray([], bounds[0], true), bounds[1], true), 'EPSG:4326', 'EPSG:3857');
122
- };
78
+ getMercatorExtent() {
79
+ const bounds = this.map.getBounds().toArray();
80
+ return transformExtent([...bounds[0], ...bounds[1]], 'EPSG:4326', 'EPSG:3857');
81
+ }
123
82
  /**
124
83
  * Returns the equivalent zoom in Openlayers.
125
84
  */
126
- Layer.prototype.getOlZoom = function () {
85
+ getOlZoom() {
127
86
  return this.map.getZoom() + 1;
128
- };
87
+ }
129
88
  /**
130
89
  * Create a copy of the Layer.
131
90
  * @param {Object} newOptions Options to override
132
91
  * @return {Layer} A Layer
133
92
  */
134
- Layer.prototype.clone = function (newOptions) {
135
- return new Layer(__assign(__assign({}, this.options), newOptions));
136
- };
137
- return Layer;
138
- }((0, UserInteractionsLayerMixin_1.default)(Layer_1.default)));
139
- exports.default = Layer;
93
+ clone(newOptions) {
94
+ return new Layer(Object.assign(Object.assign({}, this.options), newOptions));
95
+ }
96
+ }
97
+ export default Layer;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=Layer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Layer.test.d.ts","sourceRoot":"","sources":["../../../src/mapbox/layers/Layer.test.js"],"names":[],"mappings":""}
@@ -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
+ });
@@ -49,8 +49,8 @@ declare class RealtimeLayer extends Layer implements RealtimeLayerInterface {
49
49
  coordinates: any[][];
50
50
  animate: boolean;
51
51
  attribution: any;
52
- };
53
- beforeId: string;
52
+ } | undefined;
53
+ beforeId: string | undefined;
54
54
  layer: {
55
55
  id: any;
56
56
  type: string;
@@ -63,8 +63,8 @@ declare class RealtimeLayer extends Layer implements RealtimeLayerInterface {
63
63
  'raster-fade-duration': number;
64
64
  'raster-resampling': string;
65
65
  };
66
- };
67
- listeners: any[];
66
+ } | undefined;
67
+ listeners: any[] | undefined;
68
68
  /**
69
69
  * Start updating vehicles position.
70
70
  *
@@ -1 +1 @@
1
- {"version":3,"file":"RealtimeLayer.d.ts","sourceRoot":"","sources":["../../../src/mapbox/layers/RealtimeLayer.js"],"names":[],"mappings":";AASA;;;;;;;;;;;;;;;;GAgBG;AACH,qDAFgB,sBAAsB;IAGpC,0BAmBC;IAuGD,eAOC;IA0HD;;;;OAIG;IACH,eAEC;IAcD;;;;;OAKG;IACH,2BAMC;IA9QC,cAAc;IACd,eAA0C;IAoM5C,2BAYC;IA1MD;;;;;;OAMG;IACH,kDAHW,MAAM,QA8ChB;IA/BC;;;;;;MAOC;IAED,iBAAwB;IACxB;;;;;;;;;;;;MAYC;IAQD,iBAAqE;IAuBvE;;;;;;OAMG;IACH,uBAMC;IAED;;;;OAIG;IACH,sBAOC;IAWD;;;OAGG;IACH,4CAKC;IAED;;;;OAIG;IACH,kCAHW,OAAO,QAkDjB;IAED;;OAEG;IACH,0BAEC;IAED,+DAMC;IAgBD;;;;OAIG;IACH,wBAMC;IAED;;OAEG;IACH,sCAQC;IAWD,oEAUC;IAgBD;;;;;OAKG;IACH,gCAKC;CACF"}
1
+ {"version":3,"file":"RealtimeLayer.d.ts","sourceRoot":"","sources":["../../../src/mapbox/layers/RealtimeLayer.js"],"names":[],"mappings":";AASA;;;;;;;;;;;;;;;;GAgBG;AACH,qDAFgB,sBAAsB;IAGpC,0BAmBC;IAuGD,eAOC;IA0HD;;;;OAIG;IACH,eAEC;IAcD;;;;;OAKG;IACH,2BAMC;IA9QC,cAAc;IACd,eAA0C;IAoM5C,2BAYC;IA1MD;;;;;;OAMG;IACH,kDAHW,MAAM,QA8ChB;IA/BC;;;;;;kBAOC;IAED,6BAAwB;IACxB;;;;;;;;;;;;kBAYC;IAQD,6BAAqE;IAuBvE;;;;;;OAMG;IACH,uBAMC;IAED;;;;OAIG;IACH,sBAOC;IAWD;;;OAGG;IACH,4CAKC;IAED;;;;OAIG;IACH,kCAHW,OAAO,QAkDjB;IAED;;OAEG;IACH,0BAEC;IAED,+DAMC;IAgBD;;;;OAIG;IACH,wBAMC;IAED;;OAEG;IACH,sCAQC;IAWD,oEAUC;IAgBD;;;;;OAKG;IACH,gCAKC;CACF"}