mobility-toolbox-js 3.0.0-beta.19 → 3.0.0-beta.20

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 (55) hide show
  1. package/api/HttpAPI.d.ts +5 -5
  2. package/api/RealtimeAPI.d.ts +204 -171
  3. package/api/RealtimeAPI.js +306 -258
  4. package/api/RoutingAPI.d.ts +4 -4
  5. package/api/StopsAPI.d.ts +4 -4
  6. package/api/WebSocketAPI.d.ts +60 -66
  7. package/api/WebSocketAPI.js +164 -164
  8. package/api/index.js +1 -1
  9. package/common/controls/StopFinderControlCommon.d.ts +11 -11
  10. package/common/controls/StopFinderControlCommon.js +30 -30
  11. package/common/index.d.ts +1 -1
  12. package/common/index.js +1 -1
  13. package/common/mixins/RealtimeLayerMixin.d.ts +149 -155
  14. package/common/mixins/RealtimeLayerMixin.js +395 -395
  15. package/common/styles/realtimeDefaultStyle.js +6 -6
  16. package/common/styles/realtimeHeadingStyle.js +5 -5
  17. package/common/utils/getMapGlCopyrights.d.ts +1 -1
  18. package/common/utils/getMapGlCopyrights.js +3 -3
  19. package/common/utils/getVehiclePosition.d.ts +2 -2
  20. package/common/utils/getVehiclePosition.js +7 -7
  21. package/common/utils/renderTrajectories.js +5 -5
  22. package/common/utils/sortByDelay.js +5 -5
  23. package/maplibre/layers/RealtimeLayer.d.ts +59 -64
  24. package/maplibre/layers/RealtimeLayer.js +8 -8
  25. package/maplibre/utils/getSourceCoordinates.js +5 -5
  26. package/mbt.js +7205 -7031
  27. package/mbt.js.map +4 -4
  28. package/mbt.min.js +25 -25
  29. package/mbt.min.js.map +4 -4
  30. package/ol/controls/RoutingControl.d.ts +81 -87
  31. package/ol/controls/RoutingControl.js +216 -218
  32. package/ol/layers/Layer.d.ts +9 -9
  33. package/ol/layers/MaplibreLayer.d.ts +10 -10
  34. package/ol/layers/MaplibreLayer.js +9 -3
  35. package/ol/layers/MaplibreStyleLayer.d.ts +77 -76
  36. package/ol/layers/MaplibreStyleLayer.js +237 -238
  37. package/ol/layers/RealtimeLayer.d.ts +92 -96
  38. package/ol/layers/RealtimeLayer.js +139 -131
  39. package/ol/mixins/MobilityLayerMixin.d.ts +9 -9
  40. package/ol/mixins/PropertiesLayerMixin.d.ts +33 -36
  41. package/ol/mixins/PropertiesLayerMixin.js +73 -72
  42. package/ol/renderers/MaplibreLayerRenderer.js +3 -3
  43. package/ol/renderers/MaplibreStyleLayerRenderer.d.ts +6 -6
  44. package/ol/renderers/MaplibreStyleLayerRenderer.js +14 -17
  45. package/ol/renderers/RealtimeLayerRenderer.d.ts +6 -6
  46. package/ol/renderers/RealtimeLayerRenderer.js +54 -52
  47. package/ol/utils/getFeatureInfoAtCoordinate.d.ts +1 -1
  48. package/ol/utils/getFeatureInfoAtCoordinate.js +10 -16
  49. package/package.json +6 -5
  50. package/setupTests.js +3 -4
  51. package/types/common.d.ts +53 -49
  52. package/types/index.d.ts +1 -1
  53. package/types/realtime.d.ts +91 -93
  54. package/types/routing.d.ts +60 -60
  55. package/types/stops.d.ts +62 -62
@@ -1,99 +1,100 @@
1
+ import { Map, MapEvent } from 'ol';
2
+ import Feature, { FeatureLike } from 'ol/Feature';
1
3
  import GeoJSON from 'ol/format/GeoJSON';
2
4
  import { Vector as VectorLayer } from 'ol/layer';
3
- import Source from 'ol/source/Source';
4
- import Feature, { FeatureLike } from 'ol/Feature';
5
- import { Map, MapEvent } from 'ol';
6
- import { ObjectEvent } from 'ol/Object';
7
5
  import Layer from 'ol/layer/Layer';
6
+ import { ObjectEvent } from 'ol/Object';
7
+ import Source from 'ol/source/Source';
8
+ import { WebSocketAPIMessageEventData } from '../../api/WebSocketAPI';
8
9
  import { RealtimeLayerMixinOptions } from '../../common/mixins/RealtimeLayerMixin';
9
10
  import { RealtimeFullTrajectory, RealtimeTrainId, RealtimeTrajectory, ViewState } from '../../types';
10
- import { WebSocketAPIMessageEventData } from '../../api/WebSocketAPI';
11
11
  import RealtimeLayerRenderer from '../renderers/RealtimeLayerRenderer';
12
- export type RealtimeLayerOptions = RealtimeLayerMixinOptions & {
13
- fullTrajectoryStyle?: (feature: FeatureLike, resolution: number, options: any) => void;
12
+ export type RealtimeLayerOptions = {
14
13
  allowRenderWhenAnimating?: boolean;
15
- };
14
+ fullTrajectoryStyle?: (feature: FeatureLike, resolution: number, options: any) => void;
15
+ } & RealtimeLayerMixinOptions;
16
16
  declare const RealtimeLayer_base: {
17
17
  new (options: RealtimeLayerMixinOptions): {
18
18
  [x: string]: any;
19
19
  [x: symbol]: any;
20
- debug: boolean;
21
- trajectories?: {
22
- [key: string]: RealtimeTrajectory;
23
- } | undefined;
24
- canvas?: import("../../types").AnyCanvas;
25
- mode: import("../../types").RealtimeMode;
26
20
  api: import("..").RealtimeAPI;
27
- tenant: import("../../types").RealtimeTenant;
28
- bboxParameters?: {
29
- [index: string]: string | number | boolean | string[] | number[] | boolean[];
30
- } | undefined;
31
- time?: Date;
32
- live?: boolean;
33
- speed?: number;
21
+ bboxParameters?: Record<string, boolean | boolean[] | number | number[] | string | string[]>;
22
+ canvas?: import("../../types").AnyCanvas;
23
+ debounceRenderTrajectories: (viewState: ViewState, noInterpolate?: boolean) => void;
24
+ debug: boolean;
34
25
  filter?: import("../../common/typedefs").FilterFunction;
35
- sort?: import("../../common/typedefs").SortFunction;
36
- style?: import("../../types").RealtimeStyleFunction;
37
- styleOptions?: import("../../types").RealtimeStyleOptions;
38
- pixelRatio?: number;
39
- minZoomInterpolation: number;
40
- isUpdateBboxOnMoveEnd: boolean;
26
+ format: GeoJSON;
27
+ generalizationLevel?: import("../../types").RealtimeGeneralizationLevel;
28
+ generalizationLevelByZoom: import("../../types").RealtimeGeneralizationLevel[];
29
+ getGeneralizationLevelByZoom: (zoom: number) => import("../../types").RealtimeGeneralizationLevel;
30
+ getMotsByZoom: (zoom: number) => import("../../types").RealtimeMot[];
31
+ getRenderTimeIntervalByZoom: (zoom: number) => number;
41
32
  hoverVehicleId?: RealtimeTrainId;
42
- selectedVehicleId?: RealtimeTrainId;
43
- renderState?: import("../../types").RealtimeRenderState;
44
- useRequestAnimationFrame?: boolean;
45
- useDebounce?: boolean;
46
- useThrottle?: boolean;
33
+ isUpdateBboxOnMoveEnd: boolean;
34
+ live?: boolean;
35
+ minZoomInterpolation: number;
36
+ mode: import("../../types").RealtimeMode;
47
37
  mots?: import("../../types").RealtimeMot[];
48
38
  motsByZoom: import("../../types").RealtimeMot[][];
49
- generalizationLevel?: import("../../types").RealtimeGeneralizationLevel;
50
- generalizationLevelByZoom: import("../../types").RealtimeGeneralizationLevel[];
39
+ onStart?: ((realtimeLayer: import("../../types").AnyLayer) => void) | undefined;
40
+ onStop?: ((realtimeLayer: import("../../types").AnyLayer) => void) | undefined;
41
+ pixelRatio?: number;
42
+ renderState?: import("../../types").RealtimeRenderState;
51
43
  renderTimeIntervalByZoom: number[];
52
- format: GeoJSON;
53
44
  requestId?: number;
54
- updateTimeInterval?: number;
55
- updateTimeDelay?: number;
56
- visibilityRef: import("ol/events").EventsKey;
57
45
  selectedVehicle: RealtimeTrajectory;
58
- getMotsByZoom: (zoom: number) => import("../../types").RealtimeMot[];
59
- getGeneralizationLevelByZoom: (zoom: number) => import("../../types").RealtimeGeneralizationLevel;
60
- getRenderTimeIntervalByZoom: (zoom: number) => number;
46
+ selectedVehicleId?: RealtimeTrainId;
47
+ sort?: import("../../common/typedefs").SortFunction;
48
+ speed?: number;
49
+ style?: import("../../types").RealtimeStyleFunction;
50
+ styleOptions?: import("../../types").RealtimeStyleOptions;
51
+ tenant: import("../../types").RealtimeTenant;
61
52
  throttleRenderTrajectories: (viewState: ViewState, noInterpolate?: boolean) => void;
62
- debounceRenderTrajectories: (viewState: ViewState, noInterpolate?: boolean) => void;
63
- onStart?: ((realtimeLayer: import("../../types").AnyLayer) => void) | undefined;
64
- onStop?: ((realtimeLayer: import("../../types").AnyLayer) => void) | undefined;
65
- defineProperties(options: RealtimeLayerMixinOptions): void;
53
+ time?: Date;
54
+ trajectories?: Record<RealtimeTrainId, RealtimeTrajectory>;
55
+ updateTimeDelay?: number;
56
+ updateTimeInterval?: number;
57
+ useDebounce?: boolean;
58
+ useRequestAnimationFrame?: boolean;
59
+ useThrottle?: boolean;
60
+ visibilityRef: import("ol/events").EventsKey;
61
+ addTrajectory(trajectory: RealtimeTrajectory): void;
66
62
  attachToMap(map: import("../../types").AnyMap): void;
63
+ defineProperties(options: RealtimeLayerMixinOptions): void;
67
64
  detachFromMap(): void;
68
- start(): void;
69
- startUpdateTime(): void;
70
- stop(): void;
71
- stopUpdateTime(): void;
72
- renderTrajectoriesInternal(viewState: ViewState, noInterpolate?: boolean): boolean;
73
- renderTrajectories(viewState: ViewState | undefined, noInterpolate: boolean | undefined): void;
74
- setBbox(extent: [number, number, number, number], zoom: number): void;
75
- getRefreshTimeInMs(zoom?: number | undefined): number;
76
- getVehicle(filterFc: import("../../common/typedefs").FilterFunction): RealtimeTrajectory[];
77
65
  getFeatureInfoAtCoordinate(coordinate: import("ol/coordinate").Coordinate, options: import("../../types").LayerGetFeatureInfoOptions): Promise<import("../../types").LayerGetFeatureInfoResponse>;
66
+ getRefreshTimeInMs(zoom?: number | undefined): number;
78
67
  getTrajectoryInfos(id: RealtimeTrainId): Promise<{
79
- stopSequence: WebSocketAPIMessageEventData<RealtimeFullTrajectory> | WebSocketAPIMessageEventData<import("../../types").RealtimeStopSequence[]>;
80
- fullTrajectory: WebSocketAPIMessageEventData<RealtimeFullTrajectory> | WebSocketAPIMessageEventData<import("../../types").RealtimeStopSequence[]>;
68
+ fullTrajectory: WebSocketAPIMessageEventData<import("../../types").RealtimeStopSequence[]> | WebSocketAPIMessageEventData<RealtimeFullTrajectory>;
69
+ stopSequence: WebSocketAPIMessageEventData<import("../../types").RealtimeStopSequence[]> | WebSocketAPIMessageEventData<RealtimeFullTrajectory>;
81
70
  }>;
82
- purgeOutOfDateTrajectories(): void;
83
- purgeTrajectory(trajectory: RealtimeTrajectory, extent: [number, number, number, number], zoom: number): boolean;
84
- addTrajectory(trajectory: RealtimeTrajectory): void;
85
- removeTrajectory(trajectoryOrId: RealtimeTrajectory | RealtimeTrainId): void;
86
- onZoomEnd(): void;
71
+ getVehicle(filterFc: import("../../common/typedefs").FilterFunction): RealtimeTrajectory[];
72
+ highlightVehicle(id: RealtimeTrainId): void;
73
+ onDeleteTrajectoryMessage(data: WebSocketAPIMessageEventData<RealtimeTrainId>): void;
87
74
  onDocumentVisibilityChange(): void;
88
75
  onTrajectoryMessage(data: WebSocketAPIMessageEventData<RealtimeTrajectory>): void;
89
- onDeleteTrajectoryMessage(data: WebSocketAPIMessageEventData<RealtimeTrainId>): void;
90
- highlightVehicle(id: RealtimeTrainId): void;
76
+ onZoomEnd(): void;
77
+ purgeOutOfDateTrajectories(): void;
78
+ purgeTrajectory(trajectory: RealtimeTrajectory, extent: [number, number, number, number], zoom: number): boolean;
79
+ removeTrajectory(trajectoryOrId: RealtimeTrainId | RealtimeTrajectory): void;
80
+ renderTrajectories(viewState: undefined | ViewState, noInterpolate: boolean | undefined): void;
81
+ renderTrajectoriesInternal(viewState: ViewState, noInterpolate?: boolean): boolean;
91
82
  selectVehicle(id: RealtimeTrainId): void;
83
+ setBbox(extent: [number, number, number, number], zoom: number): void;
84
+ start(): void;
85
+ startUpdateTime(): void;
86
+ stop(): void;
87
+ stopUpdateTime(): void;
92
88
  };
93
89
  } & {
94
90
  new (...args: any[]): {
95
- options?: import("../mixins/PropertiesLayerMixin").PropertiesLayerMixinOptions;
96
91
  olEventsKeys: import("ol/events").EventsKey[];
92
+ options?: import("../mixins/PropertiesLayerMixin").PropertiesLayerMixinOptions;
93
+ attachToMap(map: Map): void;
94
+ detachFromMap(): void;
95
+ flat(): any[];
96
+ onChildrenChange(oldValue: Layer[]): void;
97
+ setMapInternal: ((map: Map) => void) & ((map: import("ol/Map").default | null) => void);
97
98
  children: Layer<Source, import("ol/renderer/Layer").default<any>>[];
98
99
  get copyrights(): string;
99
100
  set copyrights(newCopyrights: string | string[]);
@@ -106,17 +107,10 @@ declare const RealtimeLayer_base: {
106
107
  olLayer: Layer;
107
108
  parent: Layer<Source, import("ol/renderer/Layer").default<any>>;
108
109
  visible: boolean;
109
- setMapInternal: ((map: Map) => void) & ((map: import("ol/Map").default | null) => void);
110
- onChildrenChange(oldValue: Layer[]): void;
111
- attachToMap(map: Map): void;
112
- detachFromMap(): void;
113
- flat(): any[];
114
- addEventListener: (type: string, listener: import("ol/events").Listener) => void;
115
- removeEventListener: (type: string, listener: import("ol/events").Listener) => void;
116
110
  on: import("ol/layer/Layer").LayerOnSignature<import("ol/events").EventsKey>;
117
- render: (frameState: import("ol/Map").FrameState | null, target: HTMLElement) => HTMLElement | null;
118
111
  once: import("ol/layer/Layer").LayerOnSignature<import("ol/events").EventsKey>;
119
112
  un: import("ol/layer/Layer").LayerOnSignature<void>;
113
+ render: (frameState: import("ol/Map").FrameState | null, target: HTMLElement) => HTMLElement | null;
120
114
  getSource: () => Source | null;
121
115
  getRenderSource: () => Source | null;
122
116
  getFeatures: (pixel: import("ol/pixel").Pixel) => Promise<Array<import("ol/Feature").FeatureLike>>;
@@ -174,9 +168,11 @@ declare const RealtimeLayer_base: {
174
168
  unset: (key: string, silent?: boolean | undefined) => void;
175
169
  changed: () => void;
176
170
  getRevision: () => number;
171
+ addEventListener: (type: string, listener: import("ol/events").Listener) => void;
177
172
  dispatchEvent: (event: import("ol/events/Event").default | string) => boolean | undefined;
178
173
  getListeners: (type: string) => Array<import("ol/events").Listener> | undefined;
179
174
  hasListener: (type?: string | undefined) => boolean;
175
+ removeEventListener: (type: string, listener: import("ol/events").Listener) => void;
180
176
  dispose: () => void;
181
177
  };
182
178
  } & typeof Layer;
@@ -214,42 +210,46 @@ declare class RealtimeLayer extends RealtimeLayer_base {
214
210
  *
215
211
  */
216
212
  constructor(options: RealtimeLayerOptions);
217
- /**
218
- * @private
219
- */
220
- createRenderer(): RealtimeLayerRenderer;
221
213
  /** @private */
222
214
  attachToMap(map: Map): void;
223
215
  /**
224
- * Destroy the container of the tracker.
216
+ * Create a copy of the RealtimeLayer.
217
+ * @param {Object} newOptions Options to override
218
+ * @return {RealtimeLayer} A RealtimeLayer
219
+ */
220
+ clone(newOptions: RealtimeLayerOptions): RealtimeLayer;
221
+ /**
225
222
  * @private
226
223
  */
227
- detachFromMap(): void;
224
+ createRenderer(): RealtimeLayerRenderer;
228
225
  /**
229
226
  * Render the trajectories using current map's size, resolution and rotation.
230
227
  * @param {boolean} noInterpolate if true, renders the vehicles without interpolating theirs positions.
231
228
  * @overrides
232
229
  * @private
233
230
  */
234
- renderTrajectories(noInterpolate: boolean): void;
235
231
  /**
236
- * Launch renderTrajectories. it avoids duplicating code in renderTrajectories methhod.
232
+ * Destroy the container of the tracker.
237
233
  * @private
238
- * @override
239
234
  */
240
- renderTrajectoriesInternal(viewState: ViewState, noInterpolate: boolean): boolean;
235
+ detachFromMap(): void;
241
236
  /**
242
237
  * Return the delay in ms before the next rendering.
243
238
  * @private
244
239
  */
245
240
  getRefreshTimeInMs(): number;
241
+ highlight(feature: Feature): void;
246
242
  /**
247
243
  * On move end we update the websocket with the new bbox.
248
244
  *
249
245
  * @private
250
246
  * @override
251
247
  */
252
- onMoveEnd(evt: MapEvent | ObjectEvent): void;
248
+ /**
249
+ * Highlight the trajectory of journey.
250
+ * @private
251
+ */
252
+ highlightTrajectory(id: RealtimeTrainId): Promise<Feature[] | undefined>;
253
253
  /**
254
254
  * Function called on moveend event only when the zoom has changed.
255
255
  *
@@ -257,31 +257,27 @@ declare class RealtimeLayer extends RealtimeLayer_base {
257
257
  * @private
258
258
  * @override
259
259
  */
260
+ onMoveEnd(evt: MapEvent | ObjectEvent): void;
260
261
  onZoomEnd(): void;
261
- highlight(feature: Feature): void;
262
- select(feature: Feature): void;
263
262
  /**
264
263
  * Remove the trajectory form the list if necessary.
265
264
  *
266
265
  * @private
267
266
  */
268
267
  purgeTrajectory(trajectory: RealtimeTrajectory, extent: [number, number, number, number], zoom: number): boolean;
268
+ renderTrajectories(noInterpolate: boolean): void;
269
269
  /**
270
- * Send the current bbox to the websocket
271
- *
270
+ * Launch renderTrajectories. it avoids duplicating code in renderTrajectories methhod.
272
271
  * @private
272
+ * @override
273
273
  */
274
- setBbox(extent?: [number, number, number, number], zoom?: number): void;
274
+ renderTrajectoriesInternal(viewState: ViewState, noInterpolate: boolean): boolean;
275
+ select(feature: Feature): void;
275
276
  /**
276
- * Highlight the trajectory of journey.
277
+ * Send the current bbox to the websocket
278
+ *
277
279
  * @private
278
280
  */
279
- highlightTrajectory(id: RealtimeTrainId): Promise<Feature[] | undefined>;
280
- /**
281
- * Create a copy of the RealtimeLayer.
282
- * @param {Object} newOptions Options to override
283
- * @return {RealtimeLayer} A RealtimeLayer
284
- */
285
- clone(newOptions: RealtimeLayerOptions): RealtimeLayer;
281
+ setBbox(extent?: [number, number, number, number], zoom?: number): void;
286
282
  }
287
283
  export default RealtimeLayer;