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

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 (225) hide show
  1. package/api/RealtimeAPI.d.ts +268 -0
  2. package/api/RealtimeAPI.d.ts.map +1 -0
  3. package/api/RealtimeAPI.js +626 -343
  4. package/api/RoutingAPI.d.ts +33 -0
  5. package/api/RoutingAPI.d.ts.map +1 -0
  6. package/api/RoutingAPI.js +65 -15
  7. package/api/StopsAPI.d.ts +36 -0
  8. package/api/StopsAPI.d.ts.map +1 -0
  9. package/api/StopsAPI.js +70 -12
  10. package/api/index.d.ts +5 -0
  11. package/api/index.d.ts.map +1 -0
  12. package/api/index.js +10 -3
  13. package/api/typedefs.d.ts +105 -0
  14. package/api/typedefs.d.ts.map +1 -0
  15. package/api/typedefs.js +72 -0
  16. package/common/api/HttpAPI.d.ts +31 -0
  17. package/common/api/HttpAPI.d.ts.map +1 -0
  18. package/common/api/HttpAPI.js +82 -30
  19. package/common/api/WebSocketAPI.d.ts +95 -0
  20. package/common/api/WebSocketAPI.d.ts.map +1 -0
  21. package/common/api/WebSocketAPI.js +313 -168
  22. package/common/controls/Control.d.ts +74 -0
  23. package/common/controls/Control.d.ts.map +1 -0
  24. package/common/controls/Control.js +167 -78
  25. package/common/index.d.ts +3 -0
  26. package/common/index.d.ts.map +1 -0
  27. package/common/index.js +18 -2
  28. package/common/layers/Layer.d.ts +80 -0
  29. package/common/layers/Layer.d.ts.map +1 -0
  30. package/common/layers/Layer.js +251 -134
  31. package/common/mixins/CopyrightMixin.d.ts +22 -0
  32. package/common/mixins/CopyrightMixin.d.ts.map +1 -0
  33. package/common/mixins/CopyrightMixin.js +70 -22
  34. package/common/mixins/MapboxLayerMixin.d.ts +27 -0
  35. package/common/mixins/MapboxLayerMixin.d.ts.map +1 -0
  36. package/common/mixins/MapboxLayerMixin.js +240 -0
  37. package/common/mixins/RealtimeLayerMixin.d.ts +58 -0
  38. package/common/mixins/RealtimeLayerMixin.d.ts.map +1 -0
  39. package/common/mixins/RealtimeLayerMixin.js +698 -429
  40. package/common/mixins/StopFinderMixin.d.ts +40 -0
  41. package/common/mixins/StopFinderMixin.d.ts.map +1 -0
  42. package/common/mixins/StopFinderMixin.js +195 -107
  43. package/common/mixins/UserInteractionsLayerMixin.d.ts +42 -0
  44. package/common/mixins/UserInteractionsLayerMixin.d.ts.map +1 -0
  45. package/common/mixins/UserInteractionsLayerMixin.js +222 -121
  46. package/common/styles/index.d.ts +5 -0
  47. package/common/styles/index.d.ts.map +1 -0
  48. package/common/styles/index.js +24 -4
  49. package/common/styles/realtimeDefaultStyle.d.ts +15 -0
  50. package/common/styles/realtimeDefaultStyle.d.ts.map +1 -0
  51. package/common/styles/realtimeDefaultStyle.js +236 -190
  52. package/common/styles/realtimeDelayStyle.d.ts +11 -0
  53. package/common/styles/realtimeDelayStyle.d.ts.map +1 -0
  54. package/common/styles/realtimeDelayStyle.js +25 -7
  55. package/common/styles/realtimeSimpleStyle.d.ts +3 -0
  56. package/common/styles/realtimeSimpleStyle.d.ts.map +1 -0
  57. package/common/styles/realtimeSimpleStyle.js +23 -17
  58. package/common/typedefs.d.ts +50 -0
  59. package/common/typedefs.d.ts.map +1 -0
  60. package/common/typedefs.js +21 -0
  61. package/common/utils/cleanStopTime.d.ts +7 -0
  62. package/common/utils/cleanStopTime.d.ts.map +1 -0
  63. package/common/utils/cleanStopTime.js +28 -17
  64. package/common/utils/compareDepartures.d.ts +9 -0
  65. package/common/utils/compareDepartures.d.ts.map +1 -0
  66. package/common/utils/compareDepartures.js +34 -22
  67. package/common/utils/createCanvas.d.ts +9 -0
  68. package/common/utils/createCanvas.d.ts.map +1 -0
  69. package/common/utils/createCanvas.js +28 -16
  70. package/common/utils/createTrackerFilters.d.ts +12 -0
  71. package/common/utils/createTrackerFilters.d.ts.map +1 -0
  72. package/common/utils/createTrackerFilters.js +75 -54
  73. package/common/utils/getLayersAsFlatArray.d.ts +3 -0
  74. package/common/utils/getLayersAsFlatArray.d.ts.map +1 -0
  75. package/common/utils/getLayersAsFlatArray.js +15 -13
  76. package/common/utils/getMapboxMapCopyrights.d.ts +8 -0
  77. package/common/utils/getMapboxMapCopyrights.d.ts.map +1 -0
  78. package/common/utils/getMapboxMapCopyrights.js +24 -17
  79. package/common/utils/getMapboxRender.d.ts +5 -0
  80. package/common/utils/getMapboxRender.d.ts.map +1 -0
  81. package/common/utils/getMapboxRender.js +77 -0
  82. package/common/utils/getMaplibreRender.d.ts +5 -0
  83. package/common/utils/getMaplibreRender.d.ts.map +1 -0
  84. package/common/utils/getMaplibreRender.js +38 -0
  85. package/common/utils/getRealtimeModeSuffix.d.ts +8 -0
  86. package/common/utils/getRealtimeModeSuffix.d.ts.map +1 -0
  87. package/common/utils/getRealtimeModeSuffix.js +11 -2
  88. package/common/utils/getUrlWithParams.d.ts +9 -0
  89. package/common/utils/getUrlWithParams.d.ts.map +1 -0
  90. package/common/utils/getUrlWithParams.js +20 -10
  91. package/common/utils/getVehiclePosition.d.ts +14 -0
  92. package/common/utils/getVehiclePosition.d.ts.map +1 -0
  93. package/common/utils/getVehiclePosition.js +63 -39
  94. package/common/utils/index.d.ts +12 -0
  95. package/common/utils/index.d.ts.map +1 -0
  96. package/common/utils/index.js +37 -9
  97. package/common/utils/removeDuplicate.d.ts +10 -0
  98. package/common/utils/removeDuplicate.d.ts.map +1 -0
  99. package/common/utils/removeDuplicate.js +29 -7
  100. package/common/utils/renderTrajectories.d.ts +20 -0
  101. package/common/utils/renderTrajectories.d.ts.map +1 -0
  102. package/common/utils/renderTrajectories.js +111 -78
  103. package/common/utils/sortByDelay.d.ts +3 -0
  104. package/common/utils/sortByDelay.d.ts.map +1 -0
  105. package/common/utils/sortByDelay.js +21 -17
  106. package/common/utils/timeUtils.d.ts +5 -0
  107. package/common/utils/timeUtils.d.ts.map +1 -0
  108. package/common/utils/timeUtils.js +47 -18
  109. package/common/utils/trackerConfig.d.ts +24 -0
  110. package/common/utils/trackerConfig.d.ts.map +1 -0
  111. package/common/utils/trackerConfig.js +171 -118
  112. package/iife.d.ts +3 -0
  113. package/iife.d.ts.map +1 -0
  114. package/iife.js +7 -0
  115. package/index.d.ts +6 -0
  116. package/index.d.ts.map +1 -0
  117. package/index.js +10 -7
  118. package/mapbox/controls/CopyrightControl.d.ts +32 -0
  119. package/mapbox/controls/CopyrightControl.d.ts.map +1 -0
  120. package/mapbox/controls/CopyrightControl.js +72 -28
  121. package/mapbox/controls/index.d.ts +2 -0
  122. package/mapbox/controls/index.d.ts.map +1 -0
  123. package/mapbox/controls/index.js +6 -1
  124. package/mapbox/index.d.ts +5 -0
  125. package/mapbox/index.d.ts.map +1 -0
  126. package/mapbox/index.js +20 -4
  127. package/mapbox/layers/Layer.d.ts +47 -0
  128. package/mapbox/layers/Layer.d.ts.map +1 -0
  129. package/mapbox/layers/Layer.js +137 -54
  130. package/mapbox/layers/RealtimeLayer.d.ts +118 -0
  131. package/mapbox/layers/RealtimeLayer.d.ts.map +1 -0
  132. package/mapbox/layers/RealtimeLayer.js +310 -183
  133. package/mapbox/layers/index.d.ts +3 -0
  134. package/mapbox/layers/index.d.ts.map +1 -0
  135. package/mapbox/layers/index.js +7 -2
  136. package/mapbox/utils.d.ts +8 -0
  137. package/mapbox/utils.d.ts.map +1 -0
  138. package/mapbox/utils.js +54 -29
  139. package/mbt.js +2052 -2109
  140. package/mbt.js.map +3 -3
  141. package/mbt.min.js +18 -18
  142. package/mbt.min.js.map +3 -3
  143. package/ol/controls/CopyrightControl.d.ts +31 -0
  144. package/ol/controls/CopyrightControl.d.ts.map +1 -0
  145. package/ol/controls/CopyrightControl.js +89 -41
  146. package/ol/controls/RoutingControl.d.ts +180 -0
  147. package/ol/controls/RoutingControl.d.ts.map +1 -0
  148. package/ol/controls/RoutingControl.js +666 -371
  149. package/ol/controls/StopFinderControl.d.ts +32 -0
  150. package/ol/controls/StopFinderControl.d.ts.map +1 -0
  151. package/ol/controls/StopFinderControl.js +59 -10
  152. package/ol/controls/index.d.ts +4 -0
  153. package/ol/controls/index.d.ts.map +1 -0
  154. package/ol/controls/index.js +9 -3
  155. package/ol/index.d.ts +6 -0
  156. package/ol/index.d.ts.map +1 -0
  157. package/ol/index.js +21 -5
  158. package/ol/layers/Layer.d.ts +49 -0
  159. package/ol/layers/Layer.d.ts.map +1 -0
  160. package/ol/layers/Layer.js +178 -81
  161. package/ol/layers/MapboxLayer.d.ts +42 -0
  162. package/ol/layers/MapboxLayer.d.ts.map +1 -0
  163. package/ol/layers/MapboxLayer.js +131 -198
  164. package/ol/layers/MapboxStyleLayer.d.ts +146 -0
  165. package/ol/layers/MapboxStyleLayer.d.ts.map +1 -0
  166. package/ol/layers/MapboxStyleLayer.js +382 -186
  167. package/ol/layers/MaplibreLayer.d.ts +27 -0
  168. package/ol/layers/MaplibreLayer.d.ts.map +1 -0
  169. package/ol/layers/MaplibreLayer.js +67 -138
  170. package/ol/layers/RealtimeLayer.d.ts +119 -0
  171. package/ol/layers/RealtimeLayer.d.ts.map +1 -0
  172. package/ol/layers/RealtimeLayer.js +327 -184
  173. package/ol/layers/RoutingLayer.d.ts +24 -0
  174. package/ol/layers/RoutingLayer.d.ts.map +1 -0
  175. package/ol/layers/RoutingLayer.js +111 -56
  176. package/ol/layers/VectorLayer.d.ts +23 -0
  177. package/ol/layers/VectorLayer.d.ts.map +1 -0
  178. package/ol/layers/VectorLayer.js +71 -21
  179. package/ol/layers/WMSLayer.d.ts +38 -0
  180. package/ol/layers/WMSLayer.d.ts.map +1 -0
  181. package/ol/layers/WMSLayer.js +105 -37
  182. package/ol/layers/index.d.ts +9 -0
  183. package/ol/layers/index.d.ts.map +1 -0
  184. package/ol/layers/index.js +19 -8
  185. package/ol/styles/fullTrajectoryDelayStyle.d.ts +4 -0
  186. package/ol/styles/fullTrajectoryDelayStyle.d.ts.map +1 -0
  187. package/ol/styles/fullTrajectoryDelayStyle.js +32 -28
  188. package/ol/styles/fullTrajectoryStyle.d.ts +4 -0
  189. package/ol/styles/fullTrajectoryStyle.d.ts.map +1 -0
  190. package/ol/styles/fullTrajectoryStyle.js +44 -40
  191. package/ol/styles/index.d.ts +3 -0
  192. package/ol/styles/index.d.ts.map +1 -0
  193. package/ol/styles/index.js +7 -2
  194. package/package.json +14 -36
  195. package/setupTests.d.ts +2 -0
  196. package/setupTests.d.ts.map +1 -0
  197. package/setupTests.js +15 -0
  198. package/types/index.d.ts +7 -6
  199. package/types/routing.d.ts +25 -25
  200. package/types/stops.d.ts +19 -19
  201. package/api/RealtimeAPI.test.js +0 -67
  202. package/api/RoutingAPI.test.js +0 -25
  203. package/api/StopsAPI.test.js +0 -22
  204. package/common/api/HttpAPI.test.js +0 -50
  205. package/common/api/WebSocketAPI.test.js +0 -311
  206. package/common/controls/Control.test.js +0 -87
  207. package/common/layers/Layer.test.js +0 -134
  208. package/common/mixins/UserInteractionsLayerMixin.test.js +0 -199
  209. package/common/utils/createTrackerFilters.test.js +0 -79
  210. package/common/utils/getMapboxMapCopyrights.test.js +0 -40
  211. package/common/utils/removeDuplicate.test.js +0 -19
  212. package/common/utils/timeUtils.test.js +0 -10
  213. package/common/utils/trackerConfig.test.js +0 -23
  214. package/mapbox/layers/Layer.test.js +0 -182
  215. package/mapbox/layers/RealtimeLayer.test.js +0 -10
  216. package/ol/controls/CopyrightControl.test.js +0 -165
  217. package/ol/controls/RoutingControl.test.js +0 -146
  218. package/ol/controls/StopFinderControl.test.js +0 -48
  219. package/ol/layers/Layer.test.js +0 -175
  220. package/ol/layers/MapboxLayer.test.js +0 -160
  221. package/ol/layers/MapboxStyleLayer.test.js +0 -226
  222. package/ol/layers/RealtimeLayer.test.js +0 -67
  223. package/ol/layers/RoutingLayer.test.js +0 -39
  224. package/ol/layers/VectorLayer.test.js +0 -76
  225. package/ol/layers/WMSLayer.test.js +0 -57
@@ -1,11 +1,21 @@
1
- const getUrlWithParams = (url, params) => {
2
- const newUrl = new URL(url);
3
- const searchParams = params || {};
4
- Object.entries(searchParams).forEach(([key, value]) => {
5
- if (value !== void 0 && value !== null) {
6
- newUrl.searchParams.set(key, value);
7
- }
8
- });
9
- return newUrl;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /**
4
+ * Return the styleUrl with apiKey parameters set.
5
+ * @param {string} url a url.
6
+ * @param {Object<String,String>} params a list of key/value pair to add to the url.
7
+ * @ignore
8
+ */
9
+ var getUrlWithParams = function (url, params) {
10
+ // 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];
15
+ if (value !== undefined && value !== null) {
16
+ newUrl.searchParams.set(key, value);
17
+ }
18
+ });
19
+ return newUrl;
10
20
  };
11
- export default getUrlWithParams;
21
+ exports.default = getUrlWithParams;
@@ -0,0 +1,14 @@
1
+ export default getVehiclePosition;
2
+ /**
3
+ * Interpolate or not the vehicle position from a trajectory at a specific date.
4
+ *
5
+ * @param {number} now Current date to interpolate a position with. In ms.
6
+ * @param {RealtimeTrajectory} trajectory The trajectory to interpolate.
7
+ * @param {boolean} noInterpolate If true, the vehicle position is not interpolated on each render but only once.
8
+ * @returns
9
+ */
10
+ declare function getVehiclePosition(now: number, trajectory: GeoJSONFeature, noInterpolate: boolean): {
11
+ coord: any;
12
+ rotation: any;
13
+ };
14
+ //# sourceMappingURL=getVehiclePosition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getVehiclePosition.d.ts","sourceRoot":"","sources":["../../../src/common/utils/getVehiclePosition.js"],"names":[],"mappings":";AAEA;;;;;;;GAOG;AACH,yCALW,MAAM,6CAEN,OAAO;;;EA8DjB"}
@@ -1,42 +1,66 @@
1
- import GeomType from "ol/geom/GeometryType";
2
- const getVehiclePosition = (now, trajectory, noInterpolate) => {
3
- const {
4
- time_intervals: timeIntervals,
5
- olGeometry: geometry,
6
- coordinate
7
- } = trajectory.properties;
8
- let coord;
9
- let rotation;
10
- if (noInterpolate && coordinate) {
11
- coord = coordinate;
12
- } else if (geometry.getType() === GeomType.POINT) {
13
- coord = geometry.getCoordinates();
14
- } else if (geometry.getType() === GeomType.LINE_STRING) {
15
- const intervals = timeIntervals || [[]];
16
- const firstInterval = intervals[0];
17
- const lastInterval = intervals[intervals.length - 1];
18
- if (now < firstInterval[0]) {
19
- [, , rotation] = firstInterval;
20
- coord = geometry.getFirstCoordinate();
21
- } else if (now > lastInterval[0]) {
22
- [, , rotation] = lastInterval;
23
- coord = geometry.getLastCoordinate();
24
- } else {
25
- for (let j = 0; j < intervals.length - 1; j += 1) {
26
- const [start, startFrac] = intervals[j];
27
- const [end, endFrac] = intervals[j + 1];
28
- if (start <= now && now <= end) {
29
- const timeFrac = Math.min((now - start) / (end - start), 1);
30
- const geomFrac = timeFrac * (endFrac - startFrac) + startFrac;
31
- coord = geometry.getCoordinateAt(geomFrac);
32
- [, , rotation] = intervals[j];
33
- break;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var GeometryType_1 = require("ol/geom/GeometryType");
4
+ /**
5
+ * Interpolate or not the vehicle position from a trajectory at a specific date.
6
+ *
7
+ * @param {number} now Current date to interpolate a position with. In ms.
8
+ * @param {RealtimeTrajectory} trajectory The trajectory to interpolate.
9
+ * @param {boolean} noInterpolate If true, the vehicle position is not interpolated on each render but only once.
10
+ * @returns
11
+ */
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;
17
+ if (noInterpolate && coordinate) {
18
+ coord = coordinate;
19
+ }
20
+ else if (geometry.getType() === GeometryType_1.default.POINT) {
21
+ coord = geometry.getCoordinates();
22
+ }
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];
27
+ // Between the last time interval of a trajectory event and the beginning
28
+ // of the new trajectory event, there is few seconds, can be 6 to 30
29
+ // seconds (that's why the vehicle jumps sometimes).
30
+ // So we make the choice here to display the last (or the first) position
31
+ // of an trajectory event instead of removing them, if the current date is
32
+ // outside the time intervals we display the vehicle at the last (or first) position known.
33
+ if (now < firstInterval[0]) {
34
+ // Display first position known.
35
+ rotation = firstInterval[2];
36
+ coord = geometry.getFirstCoordinate();
37
+ }
38
+ else if (now > lastInterval[0]) {
39
+ // Display last position known.
40
+ rotation = lastInterval[2];
41
+ coord = geometry.getLastCoordinate();
34
42
  }
35
- }
43
+ else {
44
+ // Interpolate position using time intervals.
45
+ for (var j = 0; j < intervals.length - 1; j += 1) {
46
+ // 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];
49
+ if (start <= now && now <= end) {
50
+ // interpolate position inside the time interval.
51
+ var timeFrac = Math.min((now - start) / (end - start), 1);
52
+ var geomFrac = timeFrac * (endFrac - startFrac) + startFrac;
53
+ coord = geometry.getCoordinateAt(geomFrac);
54
+ _a = intervals[j], rotation = _a[2];
55
+ break;
56
+ }
57
+ }
58
+ }
59
+ }
60
+ else {
61
+ // eslint-disable-next-line no-console
62
+ console.error('This geometry type is not supported. Only Point or LineString are. Current geometry: ', geometry);
36
63
  }
37
- } else {
38
- console.error("This geometry type is not supported. Only Point or LineString are. Current geometry: ", geometry);
39
- }
40
- return { coord, rotation };
64
+ return { coord: coord, rotation: rotation };
41
65
  };
42
- export default getVehiclePosition;
66
+ exports.default = getVehiclePosition;
@@ -0,0 +1,12 @@
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
+ export * as trackerConfig from "./trackerConfig";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/utils/index.js"],"names":[],"mappings":""}
@@ -1,9 +1,37 @@
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 * as trackerConfig from "./trackerConfig";
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");
@@ -0,0 +1,10 @@
1
+ export default removeDuplicate;
2
+ /**
3
+ * This function remove duplicates lower case string value of an array.
4
+ * It removes also null, undefined or non string values.
5
+ *
6
+ * @param {array} array Array of values.
7
+ * @ignore
8
+ */
9
+ declare function removeDuplicate(array: any[]): any[];
10
+ //# sourceMappingURL=removeDuplicate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeDuplicate.d.ts","sourceRoot":"","sources":["../../../src/common/utils/removeDuplicate.js"],"names":[],"mappings":";AAAA;;;;;;GAMG;AACH,sDAYC"}
@@ -1,8 +1,30 @@
1
- const removeDuplicate = (array) => {
2
- const arrWithoutEmptyValues = array.filter((val) => val !== void 0 && val !== null && val.trim && val.trim());
3
- const lowerCasesValues = arrWithoutEmptyValues.map((str) => str.toLowerCase());
4
- const uniqueLowerCaseValues = [...new Set(lowerCasesValues)];
5
- const uniqueValues = uniqueLowerCaseValues.map((uniqueStr) => arrWithoutEmptyValues.find((str) => str.toLowerCase() === uniqueStr));
6
- return uniqueValues;
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));
7
10
  };
8
- export default removeDuplicate;
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ /**
13
+ * This function remove duplicates lower case string value of an array.
14
+ * It removes also null, undefined or non string values.
15
+ *
16
+ * @param {array} array Array of values.
17
+ * @ignore
18
+ */
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
+ });
28
+ return uniqueValues;
29
+ };
30
+ exports.default = removeDuplicate;
@@ -0,0 +1,20 @@
1
+ export default renderTrajectories;
2
+ /**
3
+ * Draw all the trajectories available in a canvas.
4
+ * @param {HTMLCanvas|HTMLOffscreenCanvas} The canvas where to draw the trajectories.
5
+ * @param {ViewState} trajectories An array of trajectories.
6
+ * @param {Function} style A function that returns a canvas representing a vehicle of a specific trajectory.
7
+ * @param {ViewState} viewState The view state of the map.
8
+ * @param {boolean} options.hoverVehicleId The id of the vehicle to highlight.
9
+ * @param {boolean} options.selectedVehicleId The id of the vehicle to select.
10
+ * @param {boolean} options.noInterpolate If true trajectories are not interpolated but
11
+ * drawn at the last known coordinate. Use this for performance optimization
12
+ * during map navigation.
13
+ * @private
14
+ */
15
+ declare function renderTrajectories(canvas: any, trajectories: ViewState, style: Function, viewState: ViewState, options: any): {
16
+ renderedTrajectories?: undefined;
17
+ } | {
18
+ renderedTrajectories: any[];
19
+ };
20
+ //# sourceMappingURL=renderTrajectories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderTrajectories.d.ts","sourceRoot":"","sources":["../../../src/common/utils/renderTrajectories.js"],"names":[],"mappings":";AAIA;;;;;;;;;;;;GAYG;AACH,+DAVW,SAAS,8BAET,SAAS;;;;EAmKnB"}
@@ -1,86 +1,119 @@
1
- import { compose, apply, create } from "ol/transform";
2
- import getVehiclePosition from "./getVehiclePosition";
3
- const renderTrajectories = (canvas, trajectories, style, viewState, options) => {
4
- if (!canvas) {
5
- return {};
6
- }
7
- const {
8
- time = Date.now(),
9
- size = [],
10
- center,
11
- resolution,
12
- rotation = 0,
13
- pixelRatio
14
- } = viewState;
15
- const { noInterpolate = false, hoverVehicleId, selectedVehicleId } = options;
16
- const context = canvas.getContext("2d");
17
- context.clearRect(0, 0, canvas.width, canvas.height);
18
- const [width, height] = size;
19
- if (width && height && (canvas.width !== width || canvas.height !== height)) {
20
- [canvas.width, canvas.height] = [width * pixelRatio, height * pixelRatio];
21
- }
22
- const coordinateToPixelTransform = compose(create(), size[0] / 2, size[1] / 2, 1 / resolution, -1 / resolution, -rotation, -center[0], -center[1]);
23
- if (canvas.style) {
24
- canvas.style.width = `${canvas.width / pixelRatio}px`;
25
- canvas.style.height = `${canvas.height / pixelRatio}px`;
26
- }
27
- let hoverVehicleImg;
28
- let hoverVehiclePx;
29
- let hoverVehicleWidth;
30
- let hoverVehicleHeight;
31
- let selectedVehicleImg;
32
- let selectedVehiclePx;
33
- let selectedVehicleWidth;
34
- let selectedVehicleHeight;
35
- const renderedTrajectories = [];
36
- for (let i = trajectories.length - 1; i >= 0; i -= 1) {
37
- const trajectory = trajectories[i];
38
- const { train_id: id, timeOffset } = trajectory.properties;
39
- const { coord, rotation: rotationIcon } = getVehiclePosition(time - (timeOffset || 0), trajectory, noInterpolate);
40
- trajectories[i].properties.coordinate = coord;
41
- trajectories[i].properties.rotation = rotationIcon;
42
- if (!coord) {
43
- continue;
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
+ }
44
8
  }
45
- let px = apply(coordinateToPixelTransform, [...coord]);
46
- if (!px) {
47
- continue;
9
+ return to.concat(ar || Array.prototype.slice.call(from));
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ /* eslint-disable no-param-reassign */
13
+ var transform_1 = require("ol/transform");
14
+ var getVehiclePosition_1 = require("./getVehiclePosition");
15
+ /**
16
+ * Draw all the trajectories available in a canvas.
17
+ * @param {HTMLCanvas|HTMLOffscreenCanvas} The canvas where to draw the trajectories.
18
+ * @param {ViewState} trajectories An array of trajectories.
19
+ * @param {Function} style A function that returns a canvas representing a vehicle of a specific trajectory.
20
+ * @param {ViewState} viewState The view state of the map.
21
+ * @param {boolean} options.hoverVehicleId The id of the vehicle to highlight.
22
+ * @param {boolean} options.selectedVehicleId The id of the vehicle to select.
23
+ * @param {boolean} options.noInterpolate If true trajectories are not interpolated but
24
+ * drawn at the last known coordinate. Use this for performance optimization
25
+ * during map navigation.
26
+ * @private
27
+ */
28
+ var renderTrajectories = function (canvas, trajectories, style, viewState, options) {
29
+ var _a;
30
+ if (!canvas) {
31
+ return {};
48
32
  }
49
- px = px.map((p) => p * pixelRatio);
50
- if (px[0] < 0 || px[0] > canvas.width || px[1] < 0 || px[1] > canvas.height) {
51
- continue;
33
+ var _b = viewState.time, time = _b === void 0 ? Date.now() : _b, _c = viewState.size, size = _c === void 0 ? [] : _c, center = viewState.center, resolution = viewState.resolution, _d = viewState.rotation, rotation = _d === void 0 ? 0 : _d, pixelRatio = viewState.pixelRatio;
34
+ var _e = options.noInterpolate, noInterpolate = _e === void 0 ? false : _e, hoverVehicleId = options.hoverVehicleId, selectedVehicleId = options.selectedVehicleId;
35
+ var context = canvas.getContext('2d');
36
+ context.clearRect(0, 0, canvas.width, canvas.height);
37
+ var width = size[0], height = size[1];
38
+ if (width && height && (canvas.width !== width || canvas.height !== height)) {
39
+ _a = [width * pixelRatio, height * pixelRatio], canvas.width = _a[0], canvas.height = _a[1];
52
40
  }
53
- const vehicleImg = style(trajectory, viewState, options);
54
- if (!vehicleImg) {
55
- continue;
41
+ var coordinateToPixelTransform = (0, transform_1.compose)((0, transform_1.create)(), size[0] / 2, size[1] / 2, 1 / resolution, -1 / resolution, -rotation, -center[0], -center[1]);
42
+ // Offscreen canvas has not style attribute
43
+ if (canvas.style) {
44
+ canvas.style.width = "".concat(canvas.width / pixelRatio, "px");
45
+ canvas.style.height = "".concat(canvas.height / pixelRatio, "px");
56
46
  }
57
- const imgWidth = vehicleImg.width;
58
- const imgHeight = vehicleImg.height;
59
- if (hoverVehicleId !== id && selectedVehicleId !== id) {
60
- context.drawImage(vehicleImg, px[0] - imgWidth / 2, px[1] - imgHeight / 2, imgWidth, imgHeight);
47
+ var hoverVehicleImg;
48
+ var hoverVehiclePx;
49
+ var hoverVehicleWidth;
50
+ var hoverVehicleHeight;
51
+ var selectedVehicleImg;
52
+ var selectedVehiclePx;
53
+ var selectedVehicleWidth;
54
+ var selectedVehicleHeight;
55
+ var renderedTrajectories = [];
56
+ for (var i = trajectories.length - 1; i >= 0; i -= 1) {
57
+ var trajectory = trajectories[i];
58
+ // We simplify the trajectory object
59
+ var _f = trajectory.properties, id = _f.train_id, timeOffset = _f.timeOffset;
60
+ // We set the rotation and the timeFraction of the trajectory (used by tralis).
61
+ // if rotation === null that seems there is no rotation available.
62
+ var _g = (0, getVehiclePosition_1.default)(time - (timeOffset || 0), trajectory, noInterpolate), coord = _g.coord, rotationIcon = _g.rotation;
63
+ // We store the current vehicle position to the trajectory.
64
+ trajectories[i].properties.coordinate = coord;
65
+ trajectories[i].properties.rotation = rotationIcon;
66
+ if (!coord) {
67
+ // eslint-disable-next-line no-continue
68
+ continue;
69
+ }
70
+ var px = (0, transform_1.apply)(coordinateToPixelTransform, __spreadArray([], coord, true));
71
+ if (!px) {
72
+ // eslint-disable-next-line no-continue
73
+ continue;
74
+ }
75
+ px = px.map(function (p) { return p * pixelRatio; });
76
+ if (px[0] < 0 ||
77
+ px[0] > canvas.width ||
78
+ px[1] < 0 ||
79
+ px[1] > canvas.height) {
80
+ // eslint-disable-next-line no-continue
81
+ continue;
82
+ }
83
+ var vehicleImg = style(trajectory, viewState, options);
84
+ if (!vehicleImg) {
85
+ // eslint-disable-next-line no-continue
86
+ continue;
87
+ }
88
+ var imgWidth = vehicleImg.width;
89
+ var imgHeight = vehicleImg.height;
90
+ if (hoverVehicleId !== id && selectedVehicleId !== id) {
91
+ context.drawImage(vehicleImg, px[0] - imgWidth / 2, px[1] - imgHeight / 2, imgWidth, imgHeight);
92
+ }
93
+ if (hoverVehicleId && hoverVehicleId === id) {
94
+ // Store the canvas to draw it at the end
95
+ hoverVehicleImg = vehicleImg;
96
+ hoverVehiclePx = px;
97
+ hoverVehicleWidth = imgWidth;
98
+ hoverVehicleHeight = imgHeight;
99
+ }
100
+ if (selectedVehicleId && selectedVehicleId === id) {
101
+ // Store the canvas to draw it at the end
102
+ selectedVehicleImg = vehicleImg;
103
+ selectedVehiclePx = px;
104
+ selectedVehicleWidth = imgWidth;
105
+ selectedVehicleHeight = imgHeight;
106
+ }
107
+ renderedTrajectories.push(trajectory);
61
108
  }
62
- if (hoverVehicleId && hoverVehicleId === id) {
63
- hoverVehicleImg = vehicleImg;
64
- hoverVehiclePx = px;
65
- hoverVehicleWidth = imgWidth;
66
- hoverVehicleHeight = imgHeight;
109
+ if (selectedVehicleImg) {
110
+ context.drawImage(selectedVehicleImg, selectedVehiclePx[0] - selectedVehicleWidth / 2, selectedVehiclePx[1] - selectedVehicleHeight / 2, selectedVehicleWidth, selectedVehicleHeight);
67
111
  }
68
- if (selectedVehicleId && selectedVehicleId === id) {
69
- selectedVehicleImg = vehicleImg;
70
- selectedVehiclePx = px;
71
- selectedVehicleWidth = imgWidth;
72
- selectedVehicleHeight = imgHeight;
112
+ if (hoverVehicleImg) {
113
+ context.drawImage(hoverVehicleImg, hoverVehiclePx[0] - hoverVehicleWidth / 2, hoverVehiclePx[1] - hoverVehicleHeight / 2, hoverVehicleWidth, hoverVehicleHeight);
73
114
  }
74
- renderedTrajectories.push(trajectory);
75
- }
76
- if (selectedVehicleImg) {
77
- context.drawImage(selectedVehicleImg, selectedVehiclePx[0] - selectedVehicleWidth / 2, selectedVehiclePx[1] - selectedVehicleHeight / 2, selectedVehicleWidth, selectedVehicleHeight);
78
- }
79
- if (hoverVehicleImg) {
80
- context.drawImage(hoverVehicleImg, hoverVehiclePx[0] - hoverVehicleWidth / 2, hoverVehiclePx[1] - hoverVehicleHeight / 2, hoverVehicleWidth, hoverVehicleHeight);
81
- }
82
- return {
83
- renderedTrajectories
84
- };
115
+ return {
116
+ renderedTrajectories: renderedTrajectories,
117
+ };
85
118
  };
86
- export default renderTrajectories;
119
+ exports.default = renderTrajectories;
@@ -0,0 +1,3 @@
1
+ export default sortByDelay;
2
+ declare function sortByDelay(traj1: any, traj2: any): number;
3
+ //# sourceMappingURL=sortByDelay.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sortByDelay.d.ts","sourceRoot":"","sources":["../../../src/common/utils/sortByDelay.js"],"names":[],"mappings":";AAAA,6DAoBC"}
@@ -1,18 +1,22 @@
1
- const sortByDelay = (traj1, traj2) => {
2
- const props1 = traj1.properties;
3
- const props2 = traj2.properties;
4
- if (props1.delay === null && props2.delay !== null) {
5
- return 1;
6
- }
7
- if (props2.delay === null && props1.delay !== null) {
8
- return -1;
9
- }
10
- if (props1.cancelled && !props2.cancelled) {
11
- return props2.delay < 18e4 ? -1 : 1;
12
- }
13
- if (props2.cancelled && !props1.cancelled) {
14
- return props1.delay < 18e4 ? 1 : -1;
15
- }
16
- return props2.delay - props1.delay;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var sortByDelay = function (traj1, traj2) {
4
+ var props1 = traj1.properties;
5
+ var props2 = traj2.properties;
6
+ if (props1.delay === null && props2.delay !== null) {
7
+ return 1;
8
+ }
9
+ if (props2.delay === null && props1.delay !== null) {
10
+ return -1;
11
+ }
12
+ // We put cancelled train inbetween green and yellow trains
13
+ // >=180000ms corresponds to yellow train
14
+ if (props1.cancelled && !props2.cancelled) {
15
+ return props2.delay < 180000 ? -1 : 1;
16
+ }
17
+ if (props2.cancelled && !props1.cancelled) {
18
+ return props1.delay < 180000 ? 1 : -1;
19
+ }
20
+ return props2.delay - props1.delay;
17
21
  };
18
- export default sortByDelay;
22
+ exports.default = sortByDelay;
@@ -0,0 +1,5 @@
1
+ export function getUTCDateString(now?: Date): string;
2
+ export function getUTCTimeString(date: any): string;
3
+ export function pad(integer: any): any;
4
+ export function getHoursAndMinutes(timeInMs: number): string;
5
+ //# sourceMappingURL=timeUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"timeUtils.d.ts","sourceRoot":"","sources":["../../../src/common/utils/timeUtils.js"],"names":[],"mappings":"AAKO,qDAON;AAOM,oDAKM;AAMN,uCAAiE;AAOjE,6DAMN"}
@@ -1,20 +1,49 @@
1
- export const getUTCDateString = (now = new Date()) => {
2
- let month = (now.getUTCMonth() + 1).toString();
3
- month = month.length === 1 ? `0${month}` : month;
4
- let day = now.getUTCDate().toString();
5
- day = day.length === 1 ? `0${day}` : day;
6
- return [now.getUTCFullYear(), month, day].join("");
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.getHoursAndMinutes = exports.pad = exports.getUTCTimeString = exports.getUTCDateString = void 0;
4
+ /**
5
+ * Get a Date object as UTC date string .
6
+ * ex: 2019 09 01
7
+ * @ignore
8
+ */
9
+ var getUTCDateString = function (now) {
10
+ if (now === void 0) { now = new Date(); }
11
+ var month = (now.getUTCMonth() + 1).toString();
12
+ month = month.length === 1 ? "0".concat(month) : month;
13
+ var day = now.getUTCDate().toString();
14
+ day = day.length === 1 ? "0".concat(day) : day;
15
+ return [now.getUTCFullYear(), month, day].join('');
7
16
  };
8
- export const getUTCTimeString = (date) => [
9
- date.getUTCHours(),
10
- date.getUTCMinutes(),
11
- `${date.getUTCSeconds()}.${date.getUTCMilliseconds()}`
12
- ].join(":");
13
- export const pad = (integer) => integer < 10 ? `0${integer}` : integer;
14
- export const getHoursAndMinutes = (timeInMs) => {
15
- if (!timeInMs || timeInMs <= 0) {
16
- return "";
17
- }
18
- const date = new Date(timeInMs);
19
- return `${pad(date.getHours())}:${pad(date.getMinutes())}`;
17
+ exports.getUTCDateString = getUTCDateString;
18
+ /**
19
+ * Get the UTC time string of Date object.
20
+ * ex: 09:05:01.123
21
+ * @ignore
22
+ */
23
+ var getUTCTimeString = function (date) {
24
+ return [
25
+ date.getUTCHours(),
26
+ date.getUTCMinutes(),
27
+ "".concat(date.getUTCSeconds(), ".").concat(date.getUTCMilliseconds()),
28
+ ].join(':');
20
29
  };
30
+ exports.getUTCTimeString = getUTCTimeString;
31
+ /**
32
+ * Returns a string representation of a number, with a zero if the number is lower than 10.
33
+ * @ignore
34
+ */
35
+ var pad = function (integer) { return (integer < 10 ? "0".concat(integer) : integer); };
36
+ exports.pad = pad;
37
+ /**
38
+ * Returns a 'hh:mm' string from a time in ms.
39
+ * @param {Number} timeInMs Time in milliseconds.
40
+ * @ignore
41
+ */
42
+ var getHoursAndMinutes = function (timeInMs) {
43
+ if (!timeInMs || timeInMs <= 0) {
44
+ return '';
45
+ }
46
+ var date = new Date(timeInMs);
47
+ return "".concat((0, exports.pad)(date.getHours()), ":").concat((0, exports.pad)(date.getMinutes()));
48
+ };
49
+ exports.getHoursAndMinutes = getHoursAndMinutes;