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
@@ -0,0 +1,79 @@
1
+ import createTrackerFilters from './createTrackerFilters';
2
+ const u1 = {
3
+ properties: {
4
+ routeIdentifier: '001.000827.004:7',
5
+ operator: 'FoO',
6
+ line: {
7
+ name: 'U1',
8
+ },
9
+ },
10
+ };
11
+ const ireta = {
12
+ properties: {
13
+ routeIdentifier: '0022.000827.004:7',
14
+ operator: 'BAR',
15
+ line: {
16
+ name: 'IRETA',
17
+ },
18
+ },
19
+ };
20
+ const arb = {
21
+ properties: {
22
+ routeIdentifier: '00333.000827.004:7',
23
+ operator: 'qux',
24
+ line: {
25
+ name: 'ARB',
26
+ },
27
+ },
28
+ };
29
+ const trajectories = [u1, ireta, arb];
30
+ describe('#createTrackerFilter()', () => {
31
+ test('returns null', () => {
32
+ const filterFunc = createTrackerFilters();
33
+ expect(filterFunc).toBe(null);
34
+ });
35
+ describe('using line', () => {
36
+ test('as string', () => {
37
+ const filterFunc = createTrackerFilters('u1,foo');
38
+ expect(trajectories.filter(filterFunc)).toEqual([u1]);
39
+ });
40
+ test('as array of string', () => {
41
+ const filterFunc = createTrackerFilters(['u1', 'foo', 'IRETA']);
42
+ expect(trajectories.filter(filterFunc)).toEqual([u1, ireta]);
43
+ });
44
+ });
45
+ describe('using route identifier', () => {
46
+ test('as string', () => {
47
+ const filterFunc = createTrackerFilters(null, '1,foo');
48
+ expect(trajectories.filter(filterFunc)).toEqual([u1]);
49
+ });
50
+ test('as array of string', () => {
51
+ const filterFunc = createTrackerFilters(null, ['22', 'foo', '1']);
52
+ expect(trajectories.filter(filterFunc)).toEqual([u1, ireta]);
53
+ });
54
+ });
55
+ describe('using operator', () => {
56
+ test('as string', () => {
57
+ const filterFunc = createTrackerFilters(null, null, 'foo');
58
+ expect(trajectories.filter(filterFunc)).toEqual([u1]);
59
+ });
60
+ test('as array of string', () => {
61
+ const filterFunc = createTrackerFilters(null, null, ['bar', 'foo', '1']);
62
+ expect(trajectories.filter(filterFunc)).toEqual([u1, ireta]);
63
+ });
64
+ });
65
+ describe('using regexLine', () => {
66
+ test('as string', () => {
67
+ const filterFunc = createTrackerFilters(null, null, null, '^(S|R$|RE|PE|D|IRE|RB|TER)');
68
+ expect(trajectories.filter(filterFunc)).toEqual([ireta]);
69
+ });
70
+ test('as array of string', () => {
71
+ const filterFunc = createTrackerFilters(null, null, null, [
72
+ '^IR',
73
+ '^ARB$',
74
+ 'foo',
75
+ ]);
76
+ expect(trajectories.filter(filterFunc)).toEqual([ireta, arb]);
77
+ });
78
+ });
79
+ });
@@ -1,16 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var getLayersAsFlatArray = function (layersOrLayer) {
4
- var layers = layersOrLayer;
1
+ const getLayersAsFlatArray = (layersOrLayer) => {
2
+ let layers = layersOrLayer;
5
3
  if (!Array.isArray(layers)) {
6
4
  layers = [layersOrLayer];
7
5
  }
8
- var flatLayers = [];
9
- layers.forEach(function (layer) {
6
+ let flatLayers = [];
7
+ layers.forEach((layer) => {
10
8
  flatLayers.push(layer);
11
- var children = layer.children;
9
+ const { children } = layer;
12
10
  flatLayers = flatLayers.concat(getLayersAsFlatArray(children || []));
13
11
  });
14
12
  return flatLayers;
15
13
  };
16
- exports.default = getLayersAsFlatArray;
14
+ export default getLayersAsFlatArray;
@@ -1,26 +1,24 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var removeDuplicate_1 = require("./removeDuplicate");
1
+ import removeDuplicate from './removeDuplicate';
4
2
  /**
5
3
  * Return the copyright a Mapbox map.
6
4
  * @param {mapboxgl.Map} map A Mapbox map
7
5
  * @ignore
8
6
  */
9
- var getMapboxMapCopyrights = function (map) {
7
+ const getMapboxMapCopyrights = (map) => {
10
8
  if (!map || !map.style) {
11
9
  return [];
12
10
  }
13
- var sourceCaches = map.style.sourceCaches;
14
- var copyrights = [];
15
- Object.values(sourceCaches).forEach(function (sourceCache) {
11
+ const { sourceCaches } = map.style;
12
+ let copyrights = [];
13
+ Object.values(sourceCaches).forEach((sourceCache) => {
16
14
  if (sourceCache.used) {
17
- var source = sourceCache.getSource();
18
- var attribution = source.attribution || (source.options && source.options.attribution);
15
+ const source = sourceCache.getSource();
16
+ const attribution = source.attribution || (source.options && source.options.attribution);
19
17
  if (attribution) {
20
18
  copyrights = copyrights.concat(attribution.replace(/&copy;/g, '©').split(/(<a.*?<\/a>)/));
21
19
  }
22
20
  }
23
21
  });
24
- return (0, removeDuplicate_1.default)(copyrights);
22
+ return removeDuplicate(copyrights);
25
23
  };
26
- exports.default = getMapboxMapCopyrights;
24
+ export default getMapboxMapCopyrights;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=getMapboxMapCopyrights.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMapboxMapCopyrights.test.d.ts","sourceRoot":"","sources":["../../../src/common/utils/getMapboxMapCopyrights.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ import getMapboxMapCopyrights from './getMapboxMapCopyrights';
2
+ describe('getMapboxMapCopyrights()', () => {
3
+ test('returns an empty array if map is not defined', () => {
4
+ expect(getMapboxMapCopyrights().length).toBe(0);
5
+ });
6
+ test('returns an empty array if map.style is not defined', () => {
7
+ expect(getMapboxMapCopyrights({}).length).toBe(0);
8
+ });
9
+ test('returns non depluicated copyrights in an array', () => {
10
+ expect(getMapboxMapCopyrights({
11
+ style: {
12
+ sourceCaches: {
13
+ used: {
14
+ used: true,
15
+ getSource() {
16
+ return {
17
+ attribution: '<a href="https://www.openmaptiles.org/" target="_blank">© OpenMapTiles</a> <a href="https://www.openstreetmap.org/about/" target="_blank">&copy; OpenStreetMap contributors</a>',
18
+ };
19
+ },
20
+ },
21
+ 'not used': {
22
+ used: false,
23
+ },
24
+ 'also used': {
25
+ used: true,
26
+ getSource() {
27
+ return {
28
+ attribution: '<a href="https://www.openmaptiles.org/" target="_blank">&copy; OpenMapTiles</a> <a href="https://www.imagico.de/" target="_blank">&copy; imagico</a>',
29
+ };
30
+ },
31
+ },
32
+ },
33
+ },
34
+ })).toEqual([
35
+ '<a href="https://www.openmaptiles.org/" target="_blank">© OpenMapTiles</a>',
36
+ '<a href="https://www.openstreetmap.org/about/" target="_blank">© OpenStreetMap contributors</a>',
37
+ '<a href="https://www.imagico.de/" target="_blank">© imagico</a>',
38
+ ]);
39
+ });
40
+ });
@@ -1,20 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
1
  /* eslint-disable no-underscore-dangle */
4
- var proj_1 = require("ol/proj");
2
+ import { toLonLat } from 'ol/proj';
5
3
  /**
6
4
  * Return the render function fo the olLayer of a MaplibreLayer
7
5
  */
8
- function getMapboxRender(mapoxLayer) {
9
- return function (frameState) {
10
- var map = mapoxLayer.map, mbMap = mapoxLayer.mbMap, renderState = mapoxLayer.renderState, olLayer = mapoxLayer.olLayer;
6
+ export default function getMapboxRender(mapoxLayer) {
7
+ return (frameState) => {
8
+ const { map, mbMap, renderState, olLayer } = mapoxLayer;
11
9
  if (!map || !mbMap) {
12
10
  return null;
13
11
  }
14
- var changed = false;
15
- var canvas = mbMap.getCanvas();
16
- var viewState = frameState.viewState;
17
- var visible = olLayer.getVisible();
12
+ let changed = false;
13
+ const canvas = mbMap.getCanvas();
14
+ const { viewState } = frameState;
15
+ const visible = olLayer.getVisible();
18
16
  if (renderState.visible !== visible) {
19
17
  canvas.style.display = visible ? 'block' : 'none';
20
18
  renderState.visible = visible;
@@ -22,13 +20,13 @@ function getMapboxRender(mapoxLayer) {
22
20
  // Without you don't see others ol layers on top.
23
21
  canvas.style.position = 'absolute';
24
22
  }
25
- var opacity = olLayer.getOpacity();
23
+ const opacity = olLayer.getOpacity();
26
24
  if (renderState.opacity !== opacity) {
27
25
  canvas.style.opacity = opacity;
28
26
  renderState.opacity = opacity;
29
27
  }
30
28
  // adjust view parameters in mapbox
31
- var rotation = viewState.rotation;
29
+ const { rotation } = viewState;
32
30
  if (renderState.rotation !== rotation) {
33
31
  mbMap.rotateTo((-(rotation || 0) * 180) / Math.PI, {
34
32
  animate: false,
@@ -40,7 +38,7 @@ function getMapboxRender(mapoxLayer) {
40
38
  renderState.center[0] !== viewState.center[0] ||
41
39
  renderState.center[1] !== viewState.center[1]) {
42
40
  mbMap.jumpTo({
43
- center: (0, proj_1.toLonLat)(viewState.center),
41
+ center: toLonLat(viewState.center),
44
42
  zoom: viewState.zoom - 1,
45
43
  animate: false,
46
44
  });
@@ -48,7 +46,7 @@ function getMapboxRender(mapoxLayer) {
48
46
  renderState.zoom = viewState.zoom;
49
47
  renderState.center = viewState.center;
50
48
  }
51
- var size = map.getSize();
49
+ const size = map.getSize();
52
50
  if (renderState.size[0] !== size[0] || renderState.size[1] !== size[1]) {
53
51
  changed = true;
54
52
  renderState.size = size;
@@ -74,4 +72,3 @@ function getMapboxRender(mapoxLayer) {
74
72
  return mbMap.getContainer();
75
73
  };
76
74
  }
77
- exports.default = getMapboxRender;
@@ -1,25 +1,23 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var proj_1 = require("ol/proj");
4
- var math_1 = require("ol/math");
1
+ import { toLonLat } from 'ol/proj';
2
+ import { toDegrees } from 'ol/math';
5
3
  /**
6
4
  * Return the render function fo the olLayer of a MaplibreLayer
7
5
  */
8
- function getMaplibreRender(maplibreLayer) {
9
- return function (frameState) {
10
- var map = maplibreLayer.map, mbMap = maplibreLayer.mbMap, olLayer = maplibreLayer.olLayer;
6
+ export default function getMaplibreRender(maplibreLayer) {
7
+ return (frameState) => {
8
+ const { map, mbMap, olLayer } = maplibreLayer;
11
9
  if (!map || !mbMap) {
12
10
  return null;
13
11
  }
14
- var canvas = mbMap.getCanvas();
15
- var viewState = frameState.viewState;
16
- var opacity = olLayer.getOpacity();
12
+ const canvas = mbMap.getCanvas();
13
+ const { viewState } = frameState;
14
+ const opacity = olLayer.getOpacity();
17
15
  canvas.style.opacity = opacity;
18
16
  // adjust view parameters in mapbox
19
17
  mbMap.jumpTo({
20
- center: (0, proj_1.toLonLat)(viewState.center),
18
+ center: toLonLat(viewState.center),
21
19
  zoom: viewState.zoom - 1,
22
- bearing: (0, math_1.toDegrees)(-viewState.rotation),
20
+ bearing: toDegrees(-viewState.rotation),
23
21
  animate: false,
24
22
  });
25
23
  if (!canvas.isConnected) {
@@ -35,4 +33,3 @@ function getMaplibreRender(maplibreLayer) {
35
33
  return mbMap.getContainer();
36
34
  };
37
35
  }
38
- exports.default = getMaplibreRender;
@@ -1,11 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
1
  /**
4
2
  * Get the websocket channel suffix, depending on the current mode.
5
3
  * @param {String} mode Mode 'topographic' ou 'schematic'.
6
4
  * @private
7
5
  */
8
- var getModeSuffix = function (mode, modes) {
9
- return mode === modes.SCHEMATIC ? '_schematic' : '';
10
- };
11
- exports.default = getModeSuffix;
6
+ const getModeSuffix = (mode, modes) => mode === modes.SCHEMATIC ? '_schematic' : '';
7
+ export default getModeSuffix;
@@ -1,21 +1,18 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
1
  /**
4
2
  * Return the styleUrl with apiKey parameters set.
5
3
  * @param {string} url a url.
6
4
  * @param {Object<String,String>} params a list of key/value pair to add to the url.
7
5
  * @ignore
8
6
  */
9
- var getUrlWithParams = function (url, params) {
7
+ const getUrlWithParams = (url, params) => {
10
8
  // Clean requets parameters, removing undefined and null values.
11
- var newUrl = new URL(url);
12
- var searchParams = params || {};
13
- Object.entries(searchParams).forEach(function (_a) {
14
- var key = _a[0], value = _a[1];
9
+ const newUrl = new URL(url);
10
+ const searchParams = params || {};
11
+ Object.entries(searchParams).forEach(([key, value]) => {
15
12
  if (value !== undefined && value !== null) {
16
13
  newUrl.searchParams.set(key, value);
17
14
  }
18
15
  });
19
16
  return newUrl;
20
17
  };
21
- exports.default = getUrlWithParams;
18
+ export default getUrlWithParams;
@@ -1,6 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- var GeometryType_1 = require("ol/geom/GeometryType");
1
+ import GeomType from 'ol/geom/GeometryType';
4
2
  /**
5
3
  * Interpolate or not the vehicle position from a trajectory at a specific date.
6
4
  *
@@ -9,21 +7,20 @@ var GeometryType_1 = require("ol/geom/GeometryType");
9
7
  * @param {boolean} noInterpolate If true, the vehicle position is not interpolated on each render but only once.
10
8
  * @returns
11
9
  */
12
- var getVehiclePosition = function (now, trajectory, noInterpolate) {
13
- var _a;
14
- var _b = trajectory.properties, timeIntervals = _b.time_intervals, geometry = _b.olGeometry, coordinate = _b.coordinate;
15
- var coord;
16
- var rotation;
10
+ const getVehiclePosition = (now, trajectory, noInterpolate) => {
11
+ const { time_intervals: timeIntervals, olGeometry: geometry, coordinate, } = trajectory.properties;
12
+ let coord;
13
+ let rotation;
17
14
  if (noInterpolate && coordinate) {
18
15
  coord = coordinate;
19
16
  }
20
- else if (geometry.getType() === GeometryType_1.default.POINT) {
17
+ else if (geometry.getType() === GeomType.POINT) {
21
18
  coord = geometry.getCoordinates();
22
19
  }
23
- else if (geometry.getType() === GeometryType_1.default.LINE_STRING) {
24
- var intervals = timeIntervals || [[]];
25
- var firstInterval = intervals[0];
26
- var lastInterval = intervals[intervals.length - 1];
20
+ else if (geometry.getType() === GeomType.LINE_STRING) {
21
+ const intervals = timeIntervals || [[]];
22
+ const firstInterval = intervals[0];
23
+ const lastInterval = intervals[intervals.length - 1];
27
24
  // Between the last time interval of a trajectory event and the beginning
28
25
  // of the new trajectory event, there is few seconds, can be 6 to 30
29
26
  // seconds (that's why the vehicle jumps sometimes).
@@ -32,26 +29,26 @@ var getVehiclePosition = function (now, trajectory, noInterpolate) {
32
29
  // outside the time intervals we display the vehicle at the last (or first) position known.
33
30
  if (now < firstInterval[0]) {
34
31
  // Display first position known.
35
- rotation = firstInterval[2];
32
+ [, , rotation] = firstInterval;
36
33
  coord = geometry.getFirstCoordinate();
37
34
  }
38
35
  else if (now > lastInterval[0]) {
39
36
  // Display last position known.
40
- rotation = lastInterval[2];
37
+ [, , rotation] = lastInterval;
41
38
  coord = geometry.getLastCoordinate();
42
39
  }
43
40
  else {
44
41
  // Interpolate position using time intervals.
45
- for (var j = 0; j < intervals.length - 1; j += 1) {
42
+ for (let j = 0; j < intervals.length - 1; j += 1) {
46
43
  // Rotation only available in realtime layer.
47
- var _c = intervals[j], start = _c[0], startFrac = _c[1];
48
- var _d = intervals[j + 1], end = _d[0], endFrac = _d[1];
44
+ const [start, startFrac] = intervals[j];
45
+ const [end, endFrac] = intervals[j + 1];
49
46
  if (start <= now && now <= end) {
50
47
  // interpolate position inside the time interval.
51
- var timeFrac = Math.min((now - start) / (end - start), 1);
52
- var geomFrac = timeFrac * (endFrac - startFrac) + startFrac;
48
+ const timeFrac = Math.min((now - start) / (end - start), 1);
49
+ const geomFrac = timeFrac * (endFrac - startFrac) + startFrac;
53
50
  coord = geometry.getCoordinateAt(geomFrac);
54
- _a = intervals[j], rotation = _a[2];
51
+ [, , rotation] = intervals[j];
55
52
  break;
56
53
  }
57
54
  }
@@ -61,6 +58,6 @@ var getVehiclePosition = function (now, trajectory, noInterpolate) {
61
58
  // eslint-disable-next-line no-console
62
59
  console.error('This geometry type is not supported. Only Point or LineString are. Current geometry: ', geometry);
63
60
  }
64
- return { coord: coord, rotation: rotation };
61
+ return { coord, rotation };
65
62
  };
66
- exports.default = getVehiclePosition;
63
+ export default getVehiclePosition;
@@ -1,37 +1,12 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
- for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
- };
16
- Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.trackerConfig = exports.getMapboxRender = exports.getMaplibreRender = exports.renderTrajectories = exports.sortByDelay = exports.getLayersAsFlatArray = exports.createTrackerFilters = exports.removeDuplicate = exports.getMapboxMapCopyrights = exports.getUrlWithParams = void 0;
18
- var getUrlWithParams_1 = require("./getUrlWithParams");
19
- Object.defineProperty(exports, "getUrlWithParams", { enumerable: true, get: function () { return getUrlWithParams_1.default; } });
20
- var getMapboxMapCopyrights_1 = require("./getMapboxMapCopyrights");
21
- Object.defineProperty(exports, "getMapboxMapCopyrights", { enumerable: true, get: function () { return getMapboxMapCopyrights_1.default; } });
22
- var removeDuplicate_1 = require("./removeDuplicate");
23
- Object.defineProperty(exports, "removeDuplicate", { enumerable: true, get: function () { return removeDuplicate_1.default; } });
24
- var createTrackerFilters_1 = require("./createTrackerFilters");
25
- Object.defineProperty(exports, "createTrackerFilters", { enumerable: true, get: function () { return createTrackerFilters_1.default; } });
26
- var getLayersAsFlatArray_1 = require("./getLayersAsFlatArray");
27
- Object.defineProperty(exports, "getLayersAsFlatArray", { enumerable: true, get: function () { return getLayersAsFlatArray_1.default; } });
28
- __exportStar(require("./timeUtils"), exports);
29
- var sortByDelay_1 = require("./sortByDelay");
30
- Object.defineProperty(exports, "sortByDelay", { enumerable: true, get: function () { return sortByDelay_1.default; } });
31
- var renderTrajectories_1 = require("./renderTrajectories");
32
- Object.defineProperty(exports, "renderTrajectories", { enumerable: true, get: function () { return renderTrajectories_1.default; } });
33
- var getMaplibreRender_1 = require("./getMaplibreRender");
34
- Object.defineProperty(exports, "getMaplibreRender", { enumerable: true, get: function () { return getMaplibreRender_1.default; } });
35
- var getMapboxRender_1 = require("./getMapboxRender");
36
- Object.defineProperty(exports, "getMapboxRender", { enumerable: true, get: function () { return getMapboxRender_1.default; } });
37
- exports.trackerConfig = require("./trackerConfig");
1
+ export { default as getUrlWithParams } from './getUrlWithParams';
2
+ export { default as getMapboxMapCopyrights } from './getMapboxMapCopyrights';
3
+ export { default as removeDuplicate } from './removeDuplicate';
4
+ export { default as createTrackerFilters } from './createTrackerFilters';
5
+ export { default as getLayersAsFlatArray } from './getLayersAsFlatArray';
6
+ export * from './timeUtils';
7
+ export { default as sortByDelay } from './sortByDelay';
8
+ export { default as renderTrajectories } from './renderTrajectories';
9
+ export { default as getMaplibreRender } from './getMaplibreRender';
10
+ export { default as getMapboxRender } from './getMapboxRender';
11
+ import * as trackerConfig_1 from './trackerConfig';
12
+ export { trackerConfig_1 as trackerConfig };
@@ -6,5 +6,5 @@ export default removeDuplicate;
6
6
  * @param {array} array Array of values.
7
7
  * @ignore
8
8
  */
9
- declare function removeDuplicate(array: any[]): any[];
9
+ declare function removeDuplicate(array: any): any[];
10
10
  //# sourceMappingURL=removeDuplicate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"removeDuplicate.d.ts","sourceRoot":"","sources":["../../../src/common/utils/removeDuplicate.js"],"names":[],"mappings":";AAAA;;;;;;GAMG;AACH,sDAYC"}
1
+ {"version":3,"file":"removeDuplicate.d.ts","sourceRoot":"","sources":["../../../src/common/utils/removeDuplicate.js"],"names":[],"mappings":";AAAA;;;;;;GAMG;AACH,oDAYC"}
@@ -1,14 +1,3 @@
1
- "use strict";
2
- var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
3
- if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
4
- if (ar || !(i in from)) {
5
- if (!ar) ar = Array.prototype.slice.call(from, 0, i);
6
- ar[i] = from[i];
7
- }
8
- }
9
- return to.concat(ar || Array.prototype.slice.call(from));
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
1
  /**
13
2
  * This function remove duplicates lower case string value of an array.
14
3
  * It removes also null, undefined or non string values.
@@ -16,15 +5,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
16
5
  * @param {array} array Array of values.
17
6
  * @ignore
18
7
  */
19
- var removeDuplicate = function (array) {
20
- var arrWithoutEmptyValues = array.filter(function (val) { return val !== undefined && val !== null && val.trim && val.trim(); });
21
- var lowerCasesValues = arrWithoutEmptyValues.map(function (str) {
22
- return str.toLowerCase();
23
- });
24
- var uniqueLowerCaseValues = __spreadArray([], new Set(lowerCasesValues), true);
25
- var uniqueValues = uniqueLowerCaseValues.map(function (uniqueStr) {
26
- return arrWithoutEmptyValues.find(function (str) { return str.toLowerCase() === uniqueStr; });
27
- });
8
+ const removeDuplicate = (array) => {
9
+ const arrWithoutEmptyValues = array.filter((val) => val !== undefined && val !== null && val.trim && val.trim());
10
+ const lowerCasesValues = arrWithoutEmptyValues.map((str) => str.toLowerCase());
11
+ const uniqueLowerCaseValues = [...new Set(lowerCasesValues)];
12
+ const uniqueValues = uniqueLowerCaseValues.map((uniqueStr) => arrWithoutEmptyValues.find((str) => str.toLowerCase() === uniqueStr));
28
13
  return uniqueValues;
29
14
  };
30
- exports.default = removeDuplicate;
15
+ export default removeDuplicate;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=removeDuplicate.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeDuplicate.test.d.ts","sourceRoot":"","sources":["../../../src/common/utils/removeDuplicate.test.js"],"names":[],"mappings":""}
@@ -0,0 +1,19 @@
1
+ import removeDuplicate from './removeDuplicate';
2
+ describe('removeDuplicate()', () => {
3
+ test('removes duplicates', () => {
4
+ expect(removeDuplicate([
5
+ 'a',
6
+ ' ',
7
+ ' ',
8
+ 'b',
9
+ 'a',
10
+ undefined,
11
+ null,
12
+ 'A',
13
+ 0,
14
+ 'c',
15
+ 'b',
16
+ 'B',
17
+ ])).toEqual(['a', 'b', 'c']);
18
+ });
19
+ });