mobility-toolbox-js 3.0.0-beta.11 → 3.0.0-beta.13

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 (51) hide show
  1. package/api/RealtimeAPI.d.ts +28 -22
  2. package/api/RealtimeAPI.js +23 -16
  3. package/api/RoutingAPI.d.ts +16 -6
  4. package/api/RoutingAPI.js +16 -6
  5. package/api/StopsAPI.d.ts +3 -3
  6. package/api/StopsAPI.js +3 -3
  7. package/api/WebSocketAPI.d.ts +2 -2
  8. package/api/WebSocketAPI.js +2 -2
  9. package/api/typedefs.d.ts +0 -102
  10. package/api/typedefs.js +27 -42
  11. package/common/controls/StopFinderControlCommon.d.ts +1 -1
  12. package/common/controls/StopFinderControlCommon.js +1 -1
  13. package/common/mixins/RealtimeLayerMixin.d.ts +10 -11
  14. package/common/mixins/RealtimeLayerMixin.js +17 -9
  15. package/common/typedefs.d.ts +7 -0
  16. package/common/typedefs.js +6 -0
  17. package/common/utils/compareDepartures.d.ts +2 -2
  18. package/common/utils/compareDepartures.js +2 -2
  19. package/common/utils/getRealtimeModeSuffix.d.ts +1 -0
  20. package/common/utils/getRealtimeModeSuffix.js +1 -0
  21. package/common/utils/getVehiclePosition.d.ts +3 -2
  22. package/common/utils/getVehiclePosition.js +6 -1
  23. package/common/utils/renderTrajectories.d.ts +1 -1
  24. package/common/utils/renderTrajectories.js +1 -1
  25. package/common/utils/sortAndFilterDepartures.d.ts +1 -1
  26. package/common/utils/sortAndFilterDepartures.js +1 -1
  27. package/common/utils/sortByDelay.d.ts +2 -2
  28. package/common/utils/sortByDelay.js +5 -1
  29. package/maplibre/layers/Layer.d.ts +1 -1
  30. package/maplibre/layers/Layer.js +1 -1
  31. package/maplibre/layers/RealtimeLayer.d.ts +40 -11
  32. package/maplibre/layers/RealtimeLayer.js +27 -3
  33. package/mbt.js +86 -43
  34. package/mbt.js.map +4 -4
  35. package/mbt.min.js +13 -13
  36. package/mbt.min.js.map +4 -4
  37. package/ol/controls/RoutingControl.d.ts +1 -1
  38. package/ol/controls/RoutingControl.js +1 -1
  39. package/ol/index.d.ts +1 -0
  40. package/ol/index.js +1 -0
  41. package/ol/layers/Layer.d.ts +101 -0
  42. package/ol/layers/Layer.js +17 -0
  43. package/ol/layers/MaplibreLayer.d.ts +3 -3
  44. package/ol/layers/MaplibreLayer.js +3 -3
  45. package/ol/layers/RealtimeLayer.d.ts +15 -12
  46. package/ol/layers/index.d.ts +1 -0
  47. package/ol/layers/index.js +1 -0
  48. package/ol/mixins/index.d.ts +1 -0
  49. package/ol/mixins/index.js +2 -0
  50. package/ol/renderers/RealtimeLayerRenderer.js +4 -1
  51. package/package.json +1 -1
@@ -31,7 +31,7 @@ export type AbotControllersByGraph = {
31
31
  [key: string]: AbortController;
32
32
  };
33
33
  /**
34
- * This control allows the user to add and modifiy via points to a map and request a route from the [geOps Routing API](https://developer.geops.io/apis/routing/).
34
+ * This OpenLayers control allows the user to add and modifiy via points to a map and request a route from the [geOps Routing API](https://developer.geops.io/apis/routing/).
35
35
  *
36
36
  * @example
37
37
  * import { Map } from 'ol';
@@ -47,7 +47,7 @@ const getFlatCoordinatesFromSegments = (segmentArray) => {
47
47
  return coords;
48
48
  };
49
49
  /**
50
- * This control allows the user to add and modifiy via points to a map and request a route from the [geOps Routing API](https://developer.geops.io/apis/routing/).
50
+ * This OpenLayers control allows the user to add and modifiy via points to a map and request a route from the [geOps Routing API](https://developer.geops.io/apis/routing/).
51
51
  *
52
52
  * @example
53
53
  * import { Map } from 'ol';
package/ol/index.d.ts CHANGED
@@ -2,5 +2,6 @@ export * from "../api";
2
2
  export * from "../common";
3
3
  export * from "./controls";
4
4
  export * from "./layers";
5
+ export * from "./mixins";
5
6
  export * from "./styles";
6
7
  export * from "./utils";
package/ol/index.js CHANGED
@@ -2,5 +2,6 @@ export * from '../api';
2
2
  export * from '../common';
3
3
  export * from './controls';
4
4
  export * from './layers';
5
+ export * from './mixins';
5
6
  export * from './styles';
6
7
  export * from './utils';
@@ -0,0 +1,101 @@
1
+ import OLLayer from 'ol/layer/Layer';
2
+ import { MobilityLayerOptions } from '../mixins/MobilityLayerMixin';
3
+ declare const Layer_base: {
4
+ new (...args: any[]): {
5
+ options?: import("../mixins/PropertiesLayerMixin").PropertiesLayerMixinOptions | undefined;
6
+ olListenersKeys: import("ol/events").EventsKey[];
7
+ children: OLLayer<import("ol/source").Source, import("ol/renderer/Layer").default<any>>[];
8
+ get copyrights(): string;
9
+ set copyrights(newCopyrights: string | string[]);
10
+ disabled: boolean;
11
+ readonly group: string;
12
+ readonly hitTolerance: boolean;
13
+ readonly key: string;
14
+ readonly map: import("ol").Map;
15
+ readonly name: string;
16
+ olLayer: OLLayer<import("ol/source").Source, import("ol/renderer/Layer").default<any>>;
17
+ parent: OLLayer<import("ol/source").Source, import("ol/renderer/Layer").default<any>>;
18
+ visible: boolean;
19
+ setMapInternal: ((map: import("ol").Map) => void) & ((map: import("ol").Map | null) => void);
20
+ onChildrenChange(oldValue: OLLayer<import("ol/source").Source, import("ol/renderer/Layer").default<any>>[]): void;
21
+ attachToMap(map: import("ol").Map): void;
22
+ detachFromMap(): void;
23
+ flat(): any[];
24
+ addEventListener: (type: string, listener: import("ol/events").Listener) => void;
25
+ removeEventListener: (type: string, listener: import("ol/events").Listener) => void;
26
+ on: import("ol/layer/Layer").LayerOnSignature<import("ol/events").EventsKey>;
27
+ render: (frameState: import("ol/Map").FrameState | null, target: HTMLElement) => HTMLElement | null;
28
+ once: import("ol/layer/Layer").LayerOnSignature<import("ol/events").EventsKey>;
29
+ un: import("ol/layer/Layer").LayerOnSignature<void>;
30
+ getSource: () => import("ol/source").Source | null;
31
+ getRenderSource: () => import("ol/source").Source | null;
32
+ getFeatures: (pixel: import("ol/pixel").Pixel) => Promise<import("ol/Feature").FeatureLike[]>;
33
+ getData: (pixel: import("ol/pixel").Pixel) => Float32Array | Uint8ClampedArray | Uint8Array | DataView | null;
34
+ isVisible: (view?: import("ol").View | import("ol/View").ViewStateLayerStateExtent | undefined) => boolean;
35
+ getAttributions: (view?: import("ol").View | import("ol/View").ViewStateLayerStateExtent | undefined) => string[];
36
+ unrender: () => void;
37
+ getDeclutter: () => string;
38
+ renderDeclutter: (frameState: import("ol/Map").FrameState, layerState: import("ol/layer/Layer").State) => void;
39
+ renderDeferred: (frameState: import("ol/Map").FrameState) => void;
40
+ getMapInternal: () => import("ol").Map | null;
41
+ setMap: (map: import("ol").Map | null) => void;
42
+ setSource: (source: import("ol/source").Source | null) => void;
43
+ getRenderer: () => import("ol/renderer/Layer").default<any> | null;
44
+ hasRenderer: () => boolean;
45
+ getBackground: () => false | import("ol/layer/Base").BackgroundColor;
46
+ getClassName: () => string;
47
+ getLayerState: (managed?: boolean | undefined) => import("ol/layer/Layer").State;
48
+ getLayersArray: (array?: OLLayer<import("ol/source").Source, import("ol/renderer/Layer").default<any>>[] | undefined) => OLLayer<import("ol/source").Source, import("ol/renderer/Layer").default<any>>[];
49
+ getLayerStatesArray: (states?: import("ol/layer/Layer").State[] | undefined) => import("ol/layer/Layer").State[];
50
+ getExtent: () => import("ol/extent").Extent | undefined;
51
+ getMaxResolution: () => number;
52
+ getMinResolution: () => number;
53
+ getMinZoom: () => number;
54
+ getMaxZoom: () => number;
55
+ getOpacity: () => number;
56
+ getSourceState: () => import("ol/source/Source").State;
57
+ getVisible: () => boolean;
58
+ getZIndex: () => number | undefined;
59
+ setBackground: (background?: import("ol/layer/Base").BackgroundColor | undefined) => void;
60
+ setExtent: (extent: import("ol/extent").Extent | undefined) => void;
61
+ setMaxResolution: (maxResolution: number) => void;
62
+ setMinResolution: (minResolution: number) => void;
63
+ setMaxZoom: (maxZoom: number) => void;
64
+ setMinZoom: (minZoom: number) => void;
65
+ setOpacity: (opacity: number) => void;
66
+ setVisible: (visible: boolean) => void;
67
+ setZIndex: (zindex: number) => void;
68
+ get: (key: string) => any;
69
+ getKeys: () => string[];
70
+ getProperties: () => {
71
+ [x: string]: any;
72
+ };
73
+ getPropertiesInternal: () => {
74
+ [x: string]: any;
75
+ } | null;
76
+ hasProperties: () => boolean;
77
+ notify: (key: string, oldValue: any) => void;
78
+ addChangeListener: (key: string, listener: import("ol/events").Listener) => void;
79
+ removeChangeListener: (key: string, listener: import("ol/events").Listener) => void;
80
+ set: (key: string, value: any, silent?: boolean | undefined) => void;
81
+ setProperties: (values: {
82
+ [x: string]: any;
83
+ }, silent?: boolean | undefined) => void;
84
+ unset: (key: string, silent?: boolean | undefined) => void;
85
+ changed: () => void;
86
+ getRevision: () => number;
87
+ dispatchEvent: (event: string | import("ol/events/Event").default) => boolean | undefined;
88
+ getListeners: (type: string) => import("ol/events").Listener[] | undefined;
89
+ hasListener: (type?: string | undefined) => boolean;
90
+ dispose: () => void;
91
+ };
92
+ } & typeof OLLayer;
93
+ /**
94
+ * An OpenLayers layer here only for backward compatibility v2.
95
+ * @deprecated
96
+ */
97
+ declare class Layer extends Layer_base {
98
+ constructor(options: MobilityLayerOptions);
99
+ clone(newOptions: MobilityLayerOptions): Layer;
100
+ }
101
+ export default Layer;
@@ -0,0 +1,17 @@
1
+ import OLLayer from 'ol/layer/Layer';
2
+ import MobilityLayerMixin from '../mixins/MobilityLayerMixin';
3
+ /**
4
+ * An OpenLayers layer here only for backward compatibility v2.
5
+ * @deprecated
6
+ */
7
+ class Layer extends MobilityLayerMixin(OLLayer) {
8
+ constructor(options) {
9
+ super(options);
10
+ // eslint-disable-next-line no-console
11
+ console.warn('Layer is deprecated. Use an OpenLayers Layer instead.');
12
+ }
13
+ clone(newOptions) {
14
+ return new Layer(Object.assign(Object.assign({}, (this.options || {})), (newOptions || {})));
15
+ }
16
+ }
17
+ export default Layer;
@@ -149,10 +149,10 @@ declare class MaplibreLayer extends MaplibreLayer_base {
149
149
  *
150
150
  * @param {MaplibreLayerOptions} options
151
151
  * @param {string} options.apiKey Access key for [geOps apis](https://developer.geops.io/).
152
- * @param {string} [options.apiKeyName="key"] The geOps Maps api key name.
152
+ * @param {string} [options.apiKeyName="key"] The geOps Maps API key name.
153
153
  * @param {maplibregl.MapOptions} [options.mapOptions={ interactive: false, trackResize: false, attributionControl: false }] Maplibre map options.
154
- * @param {string} [options.style="travic_v2"] The geOps Maps api style.
155
- * @param {string} [options.url="https://maps.geops.io"] The geOps Maps api url.
154
+ * @param {string} [options.style="travic_v2"] The geOps Maps API style.
155
+ * @param {string} [options.url="https://maps.geops.io"] The geOps Maps API url.
156
156
  */
157
157
  constructor(options: MaplibreLayerOptions);
158
158
  /**
@@ -73,10 +73,10 @@ class MaplibreLayer extends MobilityLayerMixin(Layer) {
73
73
  *
74
74
  * @param {MaplibreLayerOptions} options
75
75
  * @param {string} options.apiKey Access key for [geOps apis](https://developer.geops.io/).
76
- * @param {string} [options.apiKeyName="key"] The geOps Maps api key name.
76
+ * @param {string} [options.apiKeyName="key"] The geOps Maps API key name.
77
77
  * @param {maplibregl.MapOptions} [options.mapOptions={ interactive: false, trackResize: false, attributionControl: false }] Maplibre map options.
78
- * @param {string} [options.style="travic_v2"] The geOps Maps api style.
79
- * @param {string} [options.url="https://maps.geops.io"] The geOps Maps api url.
78
+ * @param {string} [options.style="travic_v2"] The geOps Maps API style.
79
+ * @param {string} [options.url="https://maps.geops.io"] The geOps Maps API url.
80
80
  */
81
81
  constructor(options) {
82
82
  super(Object.assign(Object.assign({ source: new Source({
@@ -5,8 +5,7 @@ import { Map, MapEvent } from 'ol';
5
5
  import { ObjectEvent } from 'ol/Object';
6
6
  import Layer from 'ol/layer/Layer';
7
7
  import { RealtimeLayerMixinOptions } from '../../common/mixins/RealtimeLayerMixin';
8
- import { RealtimeFullTrajectory, RealtimeTrainId, ViewState } from '../../types';
9
- import { RealtimeTrajectory } from '../../api/typedefs';
8
+ import { RealtimeFullTrajectory, RealtimeTrainId, RealtimeTrajectory, ViewState } from '../../types';
10
9
  import { WebSocketAPIMessageEventData } from '../../api/WebSocketAPI';
11
10
  import RealtimeLayerRenderer from '../renderers/RealtimeLayerRenderer';
12
11
  export type RealtimeLayerOptions = RealtimeLayerMixinOptions & {
@@ -18,7 +17,7 @@ declare const RealtimeLayer_base: {
18
17
  [x: string]: any;
19
18
  debug: boolean;
20
19
  trajectories?: {
21
- [key: string]: GeoJSONFeature;
20
+ [key: string]: RealtimeTrajectory;
22
21
  } | undefined;
23
22
  canvas?: import("../../types").AnyCanvas | undefined;
24
23
  mode: import("../../types").RealtimeMode;
@@ -26,7 +25,7 @@ declare const RealtimeLayer_base: {
26
25
  tenant: string;
27
26
  bboxParameters?: {
28
27
  [index: string]: string | number | boolean | string[] | number[] | boolean[];
29
- } | undefined;
28
+ } | undefined; /** @private */
30
29
  time?: Date | undefined;
31
30
  live?: boolean | undefined;
32
31
  speed?: number | undefined;
@@ -48,12 +47,16 @@ declare const RealtimeLayer_base: {
48
47
  generalizationLevel?: import("../../types").RealtimeGeneralizationLevel | undefined;
49
48
  generalizationLevelByZoom: import("../../types").RealtimeGeneralizationLevel[];
50
49
  renderTimeIntervalByZoom: number[];
50
+ /**
51
+ * Destroy the container of the tracker.
52
+ * @private
53
+ */
51
54
  format: GeoJSON<typeof Feature>;
52
55
  requestId?: number | undefined;
53
56
  updateTimeInterval?: number | undefined;
54
57
  updateTimeDelay?: number | undefined;
55
58
  visibilityRef: import("ol/events").EventsKey;
56
- selectedVehicle: GeoJSONFeature;
59
+ selectedVehicle: RealtimeTrajectory;
57
60
  getMotsByZoom: (zoom: number) => import("../../types").RealtimeMot[];
58
61
  getGeneralizationLevelByZoom: (zoom: number) => import("../../types").RealtimeGeneralizationLevel;
59
62
  getRenderTimeIntervalByZoom: (zoom: number) => number;
@@ -72,19 +75,19 @@ declare const RealtimeLayer_base: {
72
75
  renderTrajectories(viewState: ViewState | undefined, noInterpolate: boolean | undefined): void;
73
76
  setBbox(extent: [number, number, number, number], zoom: number): void;
74
77
  getRefreshTimeInMs(zoom?: number | undefined): number;
75
- getVehicle(filterFc: Function): GeoJSONFeature[];
78
+ getVehicle(filterFc: Function): RealtimeTrajectory[];
76
79
  getFeatureInfoAtCoordinate(coordinate: import("ol/coordinate").Coordinate, options: import("../../types").LayerGetFeatureInfoOptions): Promise<import("../../types").LayerGetFeatureInfoResponse>;
77
80
  getTrajectoryInfos(id: string): Promise<{
78
- stopSequence: WebSocketAPIMessageEventData<RealtimeFullTrajectory> | WebSocketAPIMessageEventData<GeoJSONFeature[]>;
79
- fullTrajectory: WebSocketAPIMessageEventData<RealtimeFullTrajectory> | WebSocketAPIMessageEventData<GeoJSONFeature[]>;
81
+ stopSequence: WebSocketAPIMessageEventData<RealtimeFullTrajectory> | WebSocketAPIMessageEventData<import("../../types").RealtimeStopSequence[]>;
82
+ fullTrajectory: WebSocketAPIMessageEventData<RealtimeFullTrajectory> | WebSocketAPIMessageEventData<import("../../types").RealtimeStopSequence[]>;
80
83
  }>;
81
84
  purgeOutOfDateTrajectories(): void;
82
- purgeTrajectory(trajectory: GeoJSONFeature, extent: [number, number, number, number], zoom: number): boolean;
83
- addTrajectory(trajectory: GeoJSONFeature): void;
84
- removeTrajectory(trajectoryOrId: any): void;
85
+ purgeTrajectory(trajectory: RealtimeTrajectory, extent: [number, number, number, number], zoom: number): boolean;
86
+ addTrajectory(trajectory: RealtimeTrajectory): void;
87
+ removeTrajectory(trajectoryOrId: string | RealtimeTrajectory): void;
85
88
  onZoomEnd(): void;
86
89
  onDocumentVisibilityChange(): void;
87
- onTrajectoryMessage(data: WebSocketAPIMessageEventData<GeoJSONFeature>): void;
90
+ onTrajectoryMessage(data: WebSocketAPIMessageEventData<RealtimeTrajectory>): void;
88
91
  onDeleteTrajectoryMessage(data: WebSocketAPIMessageEventData<string>): void;
89
92
  highlightVehicle(id: string): void;
90
93
  selectVehicle(id: string): void;
@@ -1,3 +1,4 @@
1
1
  export { default as MaplibreLayer } from "./MaplibreLayer";
2
2
  export { default as MaplibreStyleLayer } from "./MaplibreStyleLayer";
3
3
  export { default as RealtimeLayer } from "./RealtimeLayer";
4
+ export { default as Layer } from "./Layer";
@@ -1,3 +1,4 @@
1
1
  export { default as MaplibreLayer } from './MaplibreLayer';
2
2
  export { default as MaplibreStyleLayer } from './MaplibreStyleLayer';
3
3
  export { default as RealtimeLayer } from './RealtimeLayer';
4
+ export { default as Layer } from './Layer';
@@ -0,0 +1 @@
1
+ export { default as MobilityLayerMixin } from './MobilityLayerMixin';
@@ -0,0 +1,2 @@
1
+ // eslint-disable-next-line import/prefer-default-export
2
+ export { default as MobilityLayerMixin } from './MobilityLayerMixin';
@@ -100,7 +100,10 @@ export default class RealtimeLayerRenderer extends CanvasLayerRenderer {
100
100
  const vehicles = [];
101
101
  for (let i = 0; i < trajectories.length; i += 1) {
102
102
  const trajectory = trajectories[i];
103
- if (trajectory.properties.coordinate &&
103
+ if (
104
+ // @ts-expect-error coordinate is added by the RealtimeLayer
105
+ trajectory.properties.coordinate &&
106
+ // @ts-expect-error coordinate is added by the RealtimeLayer
104
107
  containsCoordinate(ext, trajectory.properties.coordinate)) {
105
108
  vehicles.push(trajectories[i]);
106
109
  }
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "mobility-toolbox-js",
3
3
  "license": "MIT",
4
4
  "description": "Toolbox for JavaScript applications in the domains of mobility and logistics.",
5
- "version": "3.0.0-beta.11",
5
+ "version": "3.0.0-beta.13",
6
6
  "homepage": "https://mobility-toolbox-js.geops.io/",
7
7
  "exports": {
8
8
  ".": "./index.js",