mobility-toolbox-js 2.0.0-beta.3 → 2.0.0-beta.33

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (220) hide show
  1. package/README.md +4 -1
  2. package/api/RealtimeAPI.d.ts +268 -0
  3. package/api/RealtimeAPI.d.ts.map +1 -0
  4. package/api/RoutingAPI.d.ts +33 -0
  5. package/api/RoutingAPI.d.ts.map +1 -0
  6. package/api/StopsAPI.d.ts +36 -0
  7. package/api/StopsAPI.d.ts.map +1 -0
  8. package/api/index.d.ts +5 -0
  9. package/api/index.d.ts.map +1 -0
  10. package/api/typedefs.d.ts +105 -0
  11. package/api/typedefs.d.ts.map +1 -0
  12. package/common/api/HttpAPI.d.ts +31 -0
  13. package/common/api/HttpAPI.d.ts.map +1 -0
  14. package/common/api/WebSocketAPI.d.ts +95 -0
  15. package/common/api/WebSocketAPI.d.ts.map +1 -0
  16. package/common/controls/Control.d.ts +74 -0
  17. package/common/controls/Control.d.ts.map +1 -0
  18. package/common/index.d.ts +3 -0
  19. package/common/index.d.ts.map +1 -0
  20. package/common/layers/Layer.d.ts +80 -0
  21. package/common/layers/Layer.d.ts.map +1 -0
  22. package/common/mixins/CopyrightMixin.d.ts +22 -0
  23. package/common/mixins/CopyrightMixin.d.ts.map +1 -0
  24. package/common/mixins/MapboxLayerMixin.d.ts +27 -0
  25. package/common/mixins/MapboxLayerMixin.d.ts.map +1 -0
  26. package/common/mixins/RealtimeLayerMixin.d.ts +58 -0
  27. package/common/mixins/RealtimeLayerMixin.d.ts.map +1 -0
  28. package/common/mixins/StopFinderMixin.d.ts +40 -0
  29. package/common/mixins/StopFinderMixin.d.ts.map +1 -0
  30. package/common/mixins/UserInteractionsLayerMixin.d.ts +42 -0
  31. package/common/mixins/UserInteractionsLayerMixin.d.ts.map +1 -0
  32. package/common/styles/index.d.ts +5 -0
  33. package/common/styles/index.d.ts.map +1 -0
  34. package/common/styles/realtimeDefaultStyle.d.ts +15 -0
  35. package/common/styles/realtimeDefaultStyle.d.ts.map +1 -0
  36. package/common/styles/{trackerDelayStyle.js → realtimeDelayStyle.d.ts} +3 -9
  37. package/common/styles/realtimeDelayStyle.d.ts.map +1 -0
  38. package/common/styles/realtimeSimpleStyle.d.ts +3 -0
  39. package/common/styles/realtimeSimpleStyle.d.ts.map +1 -0
  40. package/common/typedefs.d.ts +50 -0
  41. package/common/typedefs.d.ts.map +1 -0
  42. package/common/utils/cleanStopTime.d.ts +7 -0
  43. package/common/utils/cleanStopTime.d.ts.map +1 -0
  44. package/common/utils/compareDepartures.d.ts +9 -0
  45. package/common/utils/compareDepartures.d.ts.map +1 -0
  46. package/common/utils/createCanvas.d.ts +9 -0
  47. package/common/utils/createCanvas.d.ts.map +1 -0
  48. package/common/utils/createTrackerFilters.d.ts +12 -0
  49. package/common/utils/createTrackerFilters.d.ts.map +1 -0
  50. package/common/utils/getLayersAsFlatArray.d.ts +3 -0
  51. package/common/utils/getLayersAsFlatArray.d.ts.map +1 -0
  52. package/common/utils/getMapboxMapCopyrights.d.ts +8 -0
  53. package/common/utils/getMapboxMapCopyrights.d.ts.map +1 -0
  54. package/common/utils/getMapboxRender.d.ts +5 -0
  55. package/common/utils/getMapboxRender.d.ts.map +1 -0
  56. package/common/utils/getMaplibreRender.d.ts +5 -0
  57. package/common/utils/getMaplibreRender.d.ts.map +1 -0
  58. package/common/utils/getRealtimeModeSuffix.d.ts +8 -0
  59. package/common/utils/getRealtimeModeSuffix.d.ts.map +1 -0
  60. package/common/utils/getUrlWithParams.d.ts +9 -0
  61. package/common/utils/getUrlWithParams.d.ts.map +1 -0
  62. package/common/utils/getVehiclePosition.d.ts +14 -0
  63. package/common/utils/getVehiclePosition.d.ts.map +1 -0
  64. package/common/utils/index.d.ts +12 -0
  65. package/common/utils/index.d.ts.map +1 -0
  66. package/common/utils/removeDuplicate.d.ts +10 -0
  67. package/common/utils/removeDuplicate.d.ts.map +1 -0
  68. package/common/utils/renderTrajectories.d.ts +20 -0
  69. package/common/utils/renderTrajectories.d.ts.map +1 -0
  70. package/common/utils/sortByDelay.d.ts +3 -0
  71. package/common/utils/sortByDelay.d.ts.map +1 -0
  72. package/common/utils/timeUtils.d.ts +5 -0
  73. package/common/utils/timeUtils.d.ts.map +1 -0
  74. package/common/utils/trackerConfig.d.ts +24 -0
  75. package/common/utils/trackerConfig.d.ts.map +1 -0
  76. package/iife.d.ts +3 -0
  77. package/iife.d.ts.map +1 -0
  78. package/index.d.ts +6 -0
  79. package/index.d.ts.map +1 -0
  80. package/mapbox/controls/CopyrightControl.d.ts +32 -0
  81. package/mapbox/controls/CopyrightControl.d.ts.map +1 -0
  82. package/mapbox/controls/index.d.ts +2 -0
  83. package/mapbox/controls/index.d.ts.map +1 -0
  84. package/mapbox/index.d.ts +5 -0
  85. package/mapbox/index.d.ts.map +1 -0
  86. package/mapbox/layers/Layer.d.ts +47 -0
  87. package/mapbox/layers/Layer.d.ts.map +1 -0
  88. package/mapbox/layers/RealtimeLayer.d.ts +118 -0
  89. package/mapbox/layers/RealtimeLayer.d.ts.map +1 -0
  90. package/mapbox/layers/index.d.ts +3 -0
  91. package/mapbox/layers/index.d.ts.map +1 -0
  92. package/mapbox/utils.d.ts +8 -0
  93. package/mapbox/utils.d.ts.map +1 -0
  94. package/mbt.js +50042 -0
  95. package/mbt.js.map +7 -0
  96. package/mbt.min.js +1008 -0
  97. package/mbt.min.js.map +7 -0
  98. package/ol/controls/CopyrightControl.d.ts +31 -0
  99. package/ol/controls/CopyrightControl.d.ts.map +1 -0
  100. package/ol/controls/RoutingControl.d.ts +180 -0
  101. package/ol/controls/RoutingControl.d.ts.map +1 -0
  102. package/ol/controls/StopFinderControl.d.ts +32 -0
  103. package/ol/controls/StopFinderControl.d.ts.map +1 -0
  104. package/ol/controls/index.d.ts +4 -0
  105. package/ol/controls/index.d.ts.map +1 -0
  106. package/ol/index.d.ts +6 -0
  107. package/ol/index.d.ts.map +1 -0
  108. package/ol/layers/Layer.d.ts +49 -0
  109. package/ol/layers/Layer.d.ts.map +1 -0
  110. package/ol/layers/MapboxLayer.d.ts +42 -0
  111. package/ol/layers/MapboxLayer.d.ts.map +1 -0
  112. package/ol/layers/MapboxStyleLayer.d.ts +146 -0
  113. package/ol/layers/MapboxStyleLayer.d.ts.map +1 -0
  114. package/ol/layers/MaplibreLayer.d.ts +27 -0
  115. package/ol/layers/MaplibreLayer.d.ts.map +1 -0
  116. package/ol/layers/RealtimeLayer.d.ts +119 -0
  117. package/ol/layers/RealtimeLayer.d.ts.map +1 -0
  118. package/ol/layers/RoutingLayer.d.ts +24 -0
  119. package/ol/layers/RoutingLayer.d.ts.map +1 -0
  120. package/ol/layers/VectorLayer.d.ts +23 -0
  121. package/ol/layers/VectorLayer.d.ts.map +1 -0
  122. package/ol/layers/WMSLayer.d.ts +38 -0
  123. package/ol/layers/WMSLayer.d.ts.map +1 -0
  124. package/ol/layers/index.d.ts +9 -0
  125. package/ol/layers/index.d.ts.map +1 -0
  126. package/ol/styles/fullTrajectoryDelayStyle.d.ts +4 -0
  127. package/ol/styles/fullTrajectoryDelayStyle.d.ts.map +1 -0
  128. package/ol/styles/fullTrajectoryStyle.d.ts +4 -0
  129. package/ol/styles/fullTrajectoryStyle.d.ts.map +1 -0
  130. package/ol/styles/index.d.ts +3 -0
  131. package/ol/styles/index.d.ts.map +1 -0
  132. package/package.json +56 -95
  133. package/setupTests.d.ts +2 -0
  134. package/setupTests.d.ts.map +1 -0
  135. package/types/index.d.ts +10 -0
  136. package/types/realtime.d.ts +24 -0
  137. package/types/routing.d.ts +206 -0
  138. package/types/stops.d.ts +143 -0
  139. package/api/index.js +0 -3
  140. package/api/routing/RoutingAPI.js +0 -44
  141. package/api/routing/RoutingAPI.test.js +0 -41
  142. package/api/stops/StopsAPI.js +0 -41
  143. package/api/stops/StopsAPI.test.js +0 -34
  144. package/api/tralis/TralisAPI.js +0 -731
  145. package/api/tralis/TralisAPI.test.js +0 -75
  146. package/api/tralis/TralisAPIUtils.js +0 -73
  147. package/api/tralis/WebSocketConnector.js +0 -338
  148. package/api/tralis/WebSocketConnector.test.js +0 -356
  149. package/api/tralis/typedefs.js +0 -81
  150. package/common/Tracker.js +0 -197
  151. package/common/api/api.js +0 -64
  152. package/common/api/api.test.js +0 -68
  153. package/common/controls/Control.js +0 -146
  154. package/common/controls/Control.test.js +0 -98
  155. package/common/layers/Layer.js +0 -404
  156. package/common/layers/Layer.test.js +0 -585
  157. package/common/mixins/CopyrightMixin.js +0 -48
  158. package/common/mixins/SearchMixin.js +0 -176
  159. package/common/mixins/TralisLayerMixin.js +0 -930
  160. package/common/styles/index.js +0 -4
  161. package/common/styles/trackerDefaultStyle.js +0 -333
  162. package/common/styles/trackerSimpleStyle.js +0 -22
  163. package/common/trackerConfig.js +0 -190
  164. package/common/trackerConfig.test.js +0 -25
  165. package/common/typedefs.js +0 -23
  166. package/common/utils/createTrackerFilters.js +0 -87
  167. package/common/utils/createTrackerFilters.test.js +0 -95
  168. package/common/utils/getMapboxMapCopyrights.js +0 -32
  169. package/common/utils/getMapboxMapCopyrights.test.js +0 -47
  170. package/common/utils/getMapboxStyleUrl.js +0 -32
  171. package/common/utils/getVehiclePosition.js +0 -72
  172. package/common/utils/index.js +0 -6
  173. package/common/utils/removeDuplicate.js +0 -22
  174. package/common/utils/removeDuplicate.test.js +0 -22
  175. package/common/utils/sortByDelay.js +0 -23
  176. package/common/utils/timeUtils.js +0 -44
  177. package/common/utils/timeUtils.test.js +0 -16
  178. package/index.js +0 -2
  179. package/index.js.map +0 -1
  180. package/mapbox/controls/CopyrightControl.js +0 -58
  181. package/mapbox/index.js +0 -3
  182. package/mapbox/layers/Layer.js +0 -118
  183. package/mapbox/layers/Layer.test.js +0 -202
  184. package/mapbox/layers/TralisLayer.js +0 -329
  185. package/mapbox/layers/TralisLayer.test.js +0 -40
  186. package/mapbox/utils.js +0 -46
  187. package/module.js +0 -23
  188. package/ol/README.md +0 -0
  189. package/ol/controls/CopyrightControl.js +0 -80
  190. package/ol/controls/CopyrightControl.test.js +0 -211
  191. package/ol/controls/RoutingControl.js +0 -752
  192. package/ol/controls/RoutingControl.test.js +0 -216
  193. package/ol/controls/StopFinderControl.js +0 -38
  194. package/ol/controls/StopFinderControl.test.js +0 -59
  195. package/ol/controls/snapshots/RoutingControlRouteGen10.json +0 -58
  196. package/ol/controls/snapshots/RoutingControlRouteGen100.json +0 -292
  197. package/ol/controls/snapshots/RoutingControlRouteGen30.json +0 -69
  198. package/ol/controls/snapshots/RoutingControlRouteGen5.json +0 -58
  199. package/ol/controls/snapshots/RoutingControlRouteOSM.json +0 -759
  200. package/ol/controls/snapshots/RoutingControlStation1.json +0 -60
  201. package/ol/controls/snapshots/RoutingControlStation2.json +0 -49
  202. package/ol/index.js +0 -13
  203. package/ol/layers/Layer.js +0 -193
  204. package/ol/layers/Layer.test.js +0 -197
  205. package/ol/layers/MapboxLayer.js +0 -378
  206. package/ol/layers/MapboxLayer.test.js +0 -186
  207. package/ol/layers/MapboxStyleLayer.js +0 -417
  208. package/ol/layers/MapboxStyleLayer.test.js +0 -262
  209. package/ol/layers/MaplibreLayer.js +0 -280
  210. package/ol/layers/RoutingLayer.js +0 -91
  211. package/ol/layers/RoutingLayer.test.js +0 -49
  212. package/ol/layers/TralisLayer.js +0 -359
  213. package/ol/layers/TralisLayer.test.js +0 -97
  214. package/ol/layers/VectorLayer.js +0 -43
  215. package/ol/layers/VectorLayer.test.js +0 -98
  216. package/ol/layers/WMSLayer.js +0 -80
  217. package/ol/layers/WMSLayer.test.js +0 -84
  218. package/ol/styles/fullTrajectoryDelayStyle.js +0 -35
  219. package/ol/styles/fullTrajectoryStyle.js +0 -51
  220. package/ol/styles/index.js +0 -2
@@ -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: ['&copy: copyright', 'another copyright'],
144
- });
145
-
146
- expect(layer.copyrights[0]).toEqual('&copy: 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;