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

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 (92) hide show
  1. package/api/HttpAPI.d.ts +20 -0
  2. package/api/HttpAPI.js +1 -11
  3. package/api/RealtimeAPI.d.ts +365 -0
  4. package/api/RealtimeAPI.js +101 -88
  5. package/api/RoutingAPI.d.ts +37 -0
  6. package/api/RoutingAPI.js +1 -1
  7. package/api/StopsAPI.d.ts +44 -0
  8. package/api/StopsAPI.js +15 -9
  9. package/api/WebSocketAPI.d.ts +153 -0
  10. package/api/index.d.ts +3 -0
  11. package/api/typedefs.d.ts +178 -0
  12. package/common/controls/StopFinderControlCommon.d.ts +53 -0
  13. package/common/index.d.ts +2 -0
  14. package/common/mixins/RealtimeLayerMixin.d.ts +273 -0
  15. package/common/styles/index.d.ts +4 -0
  16. package/common/styles/realtimeDefaultStyle.d.ts +36 -0
  17. package/common/styles/realtimeDelayStyle.d.ts +12 -0
  18. package/common/styles/realtimeHeadingStyle.d.ts +12 -0
  19. package/common/styles/realtimeSimpleStyle.d.ts +4 -0
  20. package/common/typedefs.d.ts +212 -0
  21. package/common/utils/compareDepartures.d.ts +10 -0
  22. package/common/utils/constants.d.ts +5 -0
  23. package/common/utils/createCanvas.d.ts +10 -0
  24. package/common/utils/createDefaultCopyrightElt.d.ts +5 -0
  25. package/common/utils/createDefaultStopFinderElt.d.ts +5 -0
  26. package/common/utils/createRealtimeFilters.d.ts +12 -0
  27. package/common/utils/debounceDeparturesMessages.d.ts +12 -0
  28. package/common/utils/debounceWebsocketMessages.d.ts +11 -0
  29. package/common/utils/getLayersAsFlatArray.d.ts +3 -0
  30. package/common/utils/getLayersAsFlatArray.js +5 -1
  31. package/common/utils/getMapGlCopyrights.d.ts +17 -0
  32. package/common/utils/getRealtimeModeSuffix.d.ts +9 -0
  33. package/common/utils/getUrlWithParams.d.ts +8 -0
  34. package/common/utils/getVehiclePosition.d.ts +16 -0
  35. package/common/utils/getVehiclePosition.js +3 -2
  36. package/common/utils/index.d.ts +16 -0
  37. package/common/utils/realtimeConfig.d.ts +64 -0
  38. package/common/utils/removeDuplicate.d.ts +9 -0
  39. package/common/utils/renderTrajectories.d.ts +16 -0
  40. package/common/utils/sortAndFilterDepartures.d.ts +15 -0
  41. package/common/utils/sortByDelay.d.ts +3 -0
  42. package/common/utils/timeUtils.d.ts +23 -0
  43. package/common/utils/toMercatorExtent.d.ts +5 -0
  44. package/iife.d.ts +2 -0
  45. package/index.d.ts +9 -0
  46. package/maplibre/controls/CopyrightControl.d.ts +35 -0
  47. package/maplibre/controls/index.d.ts +1 -0
  48. package/maplibre/index.d.ts +5 -0
  49. package/maplibre/layers/Layer.d.ts +28 -0
  50. package/maplibre/layers/RealtimeLayer.d.ts +160 -0
  51. package/maplibre/layers/RealtimeLayer.js +2 -2
  52. package/maplibre/layers/index.d.ts +2 -0
  53. package/maplibre/utils/getMercatorResolution.d.ts +7 -0
  54. package/maplibre/utils/getSourceCoordinates.d.ts +7 -0
  55. package/maplibre/utils/index.d.ts +2 -0
  56. package/mbt.js +5752 -6987
  57. package/mbt.js.map +4 -4
  58. package/mbt.min.js +55 -55
  59. package/mbt.min.js.map +4 -4
  60. package/ol/controls/CopyrightControl.d.ts +31 -0
  61. package/ol/controls/CopyrightControl.js +18 -8
  62. package/ol/controls/RoutingControl.d.ts +209 -0
  63. package/ol/controls/RoutingControl.js +4 -1
  64. package/ol/controls/StopFinderControl.d.ts +37 -0
  65. package/ol/controls/StopFinderControl.js +4 -1
  66. package/ol/controls/index.d.ts +3 -0
  67. package/ol/index.d.ts +6 -0
  68. package/ol/layers/MaplibreLayer.d.ts +183 -0
  69. package/ol/layers/MaplibreLayer.js +133 -10
  70. package/ol/layers/MaplibreStyleLayer.d.ts +241 -0
  71. package/ol/layers/MaplibreStyleLayer.js +61 -46
  72. package/ol/layers/RealtimeLayer.d.ts +285 -0
  73. package/ol/layers/RealtimeLayer.js +12 -6
  74. package/ol/layers/index.d.ts +3 -0
  75. package/ol/mixins/MobilityLayerMixin.d.ts +98 -0
  76. package/ol/mixins/MobilityLayerMixin.js +1 -4
  77. package/ol/mixins/PropertiesLayerMixin.d.ts +127 -0
  78. package/ol/mixins/PropertiesLayerMixin.js +6 -65
  79. package/ol/renderers/MaplibreLayerRenderer.d.ts +20 -0
  80. package/ol/renderers/MaplibreStyleLayerRenderer.d.ts +20 -0
  81. package/ol/renderers/RealtimeLayerRenderer.d.ts +22 -0
  82. package/ol/renderers/RealtimeLayerRenderer.js +9 -9
  83. package/ol/styles/fullTrajectoryDelayStyle.d.ts +6 -0
  84. package/ol/styles/fullTrajectoryStyle.d.ts +5 -0
  85. package/ol/styles/index.d.ts +3 -0
  86. package/ol/styles/routingStyle.d.ts +4 -0
  87. package/ol/utils/getFeatureInfoAtCoordinate.d.ts +8 -0
  88. package/ol/utils/getFeatureInfoAtCoordinate.js +2 -2
  89. package/ol/utils/index.d.ts +1 -0
  90. package/package.json +19 -21
  91. package/setupTests.d.ts +1 -0
  92. package/ol/layers/MapGlLayer.js +0 -142
@@ -0,0 +1,285 @@
1
+ import GeoJSON from 'ol/format/GeoJSON';
2
+ import Source from 'ol/source/Source';
3
+ import Feature, { FeatureLike } from 'ol/Feature';
4
+ import { Map, MapEvent } from 'ol';
5
+ import { ObjectEvent } from 'ol/Object';
6
+ import Layer from 'ol/layer/Layer';
7
+ import { RealtimeLayerMixinOptions } from '../../common/mixins/RealtimeLayerMixin';
8
+ import { RealtimeFullTrajectory, RealtimeTrainId, ViewState } from '../../types';
9
+ import { RealtimeTrajectory } from '../../api/typedefs';
10
+ import { WebSocketAPIMessageEventData } from '../../api/WebSocketAPI';
11
+ import RealtimeLayerRenderer from '../renderers/RealtimeLayerRenderer';
12
+ export type RealtimeLayerOptions = RealtimeLayerMixinOptions & {
13
+ fullTrajectoryStyle?: (feature: FeatureLike, resolution: number, options: any) => void;
14
+ allowRenderWhenAnimating?: boolean;
15
+ };
16
+ declare const RealtimeLayer_base: {
17
+ new (options: RealtimeLayerMixinOptions): {
18
+ [x: string]: any;
19
+ debug: boolean;
20
+ trajectories?: {
21
+ [key: string]: GeoJSONFeature;
22
+ } | undefined;
23
+ canvas?: import("../../types").AnyCanvas | undefined;
24
+ mode: import("../../types").RealtimeMode;
25
+ api: import("..").RealtimeAPI;
26
+ tenant: string;
27
+ bboxParameters?: {
28
+ [index: string]: string | number | boolean | string[] | number[] | boolean[];
29
+ } | undefined;
30
+ time?: Date | undefined;
31
+ live?: boolean | undefined;
32
+ speed?: number | undefined;
33
+ filter?: Function | undefined;
34
+ sort?: Function | undefined;
35
+ style?: import("../../types").RealtimeStyleFunction | undefined;
36
+ styleOptions?: import("../../types").RealtimeStyleOptions | undefined;
37
+ pixelRatio?: number | undefined;
38
+ minZoomInterpolation: number;
39
+ isUpdateBboxOnMoveEnd: boolean;
40
+ hoverVehicleId?: string | undefined;
41
+ selectedVehicleId?: string | undefined;
42
+ renderState?: import("../../types").RealtimeRenderState | undefined;
43
+ useRequestAnimationFrame?: boolean | undefined;
44
+ useDebounce?: boolean | undefined;
45
+ useThrottle?: boolean | undefined;
46
+ mots?: import("../../types").RealtimeMot[] | undefined;
47
+ motsByZoom: import("../../types").RealtimeMot[][];
48
+ generalizationLevel?: import("../../types").RealtimeGeneralizationLevel | undefined;
49
+ generalizationLevelByZoom: import("../../types").RealtimeGeneralizationLevel[];
50
+ renderTimeIntervalByZoom: number[];
51
+ format: GeoJSON<typeof Feature>;
52
+ requestId?: number | undefined;
53
+ updateTimeInterval?: number | undefined;
54
+ updateTimeDelay?: number | undefined;
55
+ visibilityRef: import("ol/events").EventsKey;
56
+ selectedVehicle: GeoJSONFeature;
57
+ getMotsByZoom: (zoom: number) => import("../../types").RealtimeMot[];
58
+ getGeneralizationLevelByZoom: (zoom: number) => import("../../types").RealtimeGeneralizationLevel;
59
+ getRenderTimeIntervalByZoom: (zoom: number) => number;
60
+ throttleRenderTrajectories: (viewState: ViewState, noInterpolate?: boolean | undefined) => void;
61
+ debounceRenderTrajectories: (viewState: ViewState, noInterpolate?: boolean | undefined) => void;
62
+ onStart?: ((realtimeLayer: any) => void) | undefined;
63
+ onStop?: ((realtimeLayer: any) => void) | undefined;
64
+ defineProperties(options: RealtimeLayerMixinOptions): void;
65
+ attachToMap(map: any): void;
66
+ detachFromMap(): void;
67
+ start(): void;
68
+ startUpdateTime(): void;
69
+ stop(): void;
70
+ stopUpdateTime(): void;
71
+ renderTrajectoriesInternal(viewState: ViewState, noInterpolate?: boolean): boolean;
72
+ renderTrajectories(viewState: ViewState | undefined, noInterpolate: boolean | undefined): void;
73
+ setBbox(extent: [number, number, number, number], zoom: number): void;
74
+ getRefreshTimeInMs(zoom?: number | undefined): number;
75
+ getVehicle(filterFc: Function): GeoJSONFeature[];
76
+ getFeatureInfoAtCoordinate(coordinate: import("ol/coordinate").Coordinate, options: import("../../types").LayerGetFeatureInfoOptions): Promise<import("../../types").LayerGetFeatureInfoResponse>;
77
+ getTrajectoryInfos(id: string): Promise<{
78
+ stopSequence: WebSocketAPIMessageEventData<RealtimeFullTrajectory> | WebSocketAPIMessageEventData<GeoJSONFeature[]>;
79
+ fullTrajectory: WebSocketAPIMessageEventData<RealtimeFullTrajectory> | WebSocketAPIMessageEventData<GeoJSONFeature[]>;
80
+ }>;
81
+ 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
+ onZoomEnd(): void;
86
+ onDocumentVisibilityChange(): void;
87
+ onTrajectoryMessage(data: WebSocketAPIMessageEventData<GeoJSONFeature>): void;
88
+ onDeleteTrajectoryMessage(data: WebSocketAPIMessageEventData<string>): void;
89
+ highlightVehicle(id: string): void;
90
+ selectVehicle(id: string): void;
91
+ };
92
+ } & {
93
+ new (...args: any[]): {
94
+ options?: import("../mixins/PropertiesLayerMixin").PropertiesLayerMixinOptions | undefined;
95
+ olListenersKeys: import("ol/events").EventsKey[];
96
+ children: Layer<Source, import("ol/renderer/Layer").default<any>>[];
97
+ get copyrights(): string;
98
+ set copyrights(newCopyrights: string | string[]);
99
+ disabled: boolean;
100
+ readonly group: string;
101
+ readonly hitTolerance: boolean;
102
+ readonly key: string;
103
+ readonly map: Map;
104
+ readonly name: string;
105
+ olLayer: Layer<Source, import("ol/renderer/Layer").default<any>>;
106
+ parent: Layer<Source, import("ol/renderer/Layer").default<any>>;
107
+ visible: boolean;
108
+ setMapInternal: ((map: Map) => void) & ((map: Map | null) => void);
109
+ onChildrenChange(oldValue: Layer<Source, import("ol/renderer/Layer").default<any>>[]): void;
110
+ attachToMap(map: Map): void;
111
+ detachFromMap(): void;
112
+ flat(): any[];
113
+ addEventListener: (type: string, listener: import("ol/events").Listener) => void;
114
+ removeEventListener: (type: string, listener: import("ol/events").Listener) => void;
115
+ on: import("ol/layer/Layer").LayerOnSignature<import("ol/events").EventsKey>;
116
+ render: (frameState: import("ol/Map").FrameState | null, target: HTMLElement) => HTMLElement | null;
117
+ once: import("ol/layer/Layer").LayerOnSignature<import("ol/events").EventsKey>;
118
+ un: import("ol/layer/Layer").LayerOnSignature<void>;
119
+ getSource: () => Source | null;
120
+ getRenderSource: () => Source | null;
121
+ getFeatures: (pixel: import("ol/pixel").Pixel) => Promise<FeatureLike[]>;
122
+ getData: (pixel: import("ol/pixel").Pixel) => Float32Array | Uint8ClampedArray | Uint8Array | DataView | null;
123
+ isVisible: (view?: import("ol").View | import("ol/View").ViewStateLayerStateExtent | undefined) => boolean;
124
+ getAttributions: (view?: import("ol").View | import("ol/View").ViewStateLayerStateExtent | undefined) => string[];
125
+ unrender: () => void;
126
+ getDeclutter: () => string;
127
+ renderDeclutter: (frameState: import("ol/Map").FrameState, layerState: import("ol/layer/Layer").State) => void;
128
+ renderDeferred: (frameState: import("ol/Map").FrameState) => void;
129
+ getMapInternal: () => Map | null;
130
+ setMap: (map: Map | null) => void;
131
+ setSource: (source: Source | null) => void;
132
+ getRenderer: () => import("ol/renderer/Layer").default<any> | null;
133
+ hasRenderer: () => boolean;
134
+ getBackground: () => false | import("ol/layer/Base").BackgroundColor;
135
+ getClassName: () => string;
136
+ getLayerState: (managed?: boolean | undefined) => import("ol/layer/Layer").State;
137
+ getLayersArray: (array?: Layer<Source, import("ol/renderer/Layer").default<any>>[] | undefined) => Layer<Source, import("ol/renderer/Layer").default<any>>[];
138
+ getLayerStatesArray: (states?: import("ol/layer/Layer").State[] | undefined) => import("ol/layer/Layer").State[];
139
+ getExtent: () => import("ol/extent").Extent | undefined;
140
+ getMaxResolution: () => number;
141
+ getMinResolution: () => number;
142
+ getMinZoom: () => number;
143
+ getMaxZoom: () => number;
144
+ getOpacity: () => number;
145
+ getSourceState: () => import("ol/source/Source").State;
146
+ getVisible: () => boolean;
147
+ getZIndex: () => number | undefined;
148
+ setBackground: (background?: import("ol/layer/Base").BackgroundColor | undefined) => void;
149
+ setExtent: (extent: import("ol/extent").Extent | undefined) => void;
150
+ setMaxResolution: (maxResolution: number) => void;
151
+ setMinResolution: (minResolution: number) => void;
152
+ setMaxZoom: (maxZoom: number) => void;
153
+ setMinZoom: (minZoom: number) => void;
154
+ setOpacity: (opacity: number) => void;
155
+ setVisible: (visible: boolean) => void;
156
+ setZIndex: (zindex: number) => void;
157
+ get: (key: string) => any;
158
+ getKeys: () => string[];
159
+ getProperties: () => {
160
+ [x: string]: any;
161
+ };
162
+ getPropertiesInternal: () => {
163
+ [x: string]: any;
164
+ } | null;
165
+ hasProperties: () => boolean;
166
+ notify: (key: string, oldValue: any) => void;
167
+ addChangeListener: (key: string, listener: import("ol/events").Listener) => void;
168
+ removeChangeListener: (key: string, listener: import("ol/events").Listener) => void;
169
+ set: (key: string, value: any, silent?: boolean | undefined) => void;
170
+ setProperties: (values: {
171
+ [x: string]: any;
172
+ }, silent?: boolean | undefined) => void;
173
+ unset: (key: string, silent?: boolean | undefined) => void;
174
+ changed: () => void;
175
+ getRevision: () => number;
176
+ dispatchEvent: (event: string | import("ol/events/Event").default) => boolean | undefined;
177
+ getListeners: (type: string) => import("ol/events").Listener[] | undefined;
178
+ hasListener: (type?: string | undefined) => boolean;
179
+ dispose: () => void;
180
+ };
181
+ } & typeof Layer;
182
+ /**
183
+ * An OpenLayers layer able to display data from the [geOps Realtime API](https://developer.geops.io/apis/realtime/).
184
+ *
185
+ * @example
186
+ * import { RealtimeLayer } from 'mobility-toolbox-js/ol';
187
+ *
188
+ * const layer = new RealtimeLayer({
189
+ * apiKey: "yourApiKey"
190
+ * // allowRenderWhenAnimating: false,
191
+ * // url: "wss://api.geops.io/tracker-ws/v1/",
192
+ * });
193
+ *
194
+ *
195
+ * @see <a href="/api/class/src/api/RealtimeAPI%20js~RealtimeAPI%20html">RealtimeAPI</a>
196
+ *
197
+ * @extends {ol/layer/Layer~Layer}
198
+ *
199
+ * @classproperty {boolean} allowRenderWhenAnimating - Allow rendering of the layer when the map is animating.
200
+ * @public
201
+ */
202
+ declare class RealtimeLayer extends RealtimeLayer_base {
203
+ /** @private */
204
+ allowRenderWhenAnimating?: boolean;
205
+ /**
206
+ * Constructor.
207
+ *
208
+ * @param {RealtimeLayerOptions} options
209
+ * @param {boolean} [options.allowRenderWhenAnimating=false] Allow rendering of the layer when the map is animating.
210
+ * @param {string} options.apiKey Access key for [geOps apis](https://developer.geops.io/).
211
+ * @param {string} [options.url="wss://api.geops.io/tracker-ws/v1/"] The geOps Realtime API url.
212
+ *
213
+ */
214
+ constructor(options: RealtimeLayerOptions);
215
+ /**
216
+ * @private
217
+ */
218
+ createRenderer(): RealtimeLayerRenderer;
219
+ /** @private */
220
+ attachToMap(map: Map): void;
221
+ /**
222
+ * Destroy the container of the tracker.
223
+ * @private
224
+ */
225
+ detachFromMap(): void;
226
+ /**
227
+ * Render the trajectories using current map's size, resolution and rotation.
228
+ * @param {boolean} noInterpolate if true, renders the vehicles without interpolating theirs positions.
229
+ * @overrides
230
+ * @private
231
+ */
232
+ renderTrajectories(noInterpolate: boolean): void;
233
+ /**
234
+ * Launch renderTrajectories. it avoids duplicating code in renderTrajectories methhod.
235
+ * @private
236
+ * @override
237
+ */
238
+ renderTrajectoriesInternal(viewState: ViewState, noInterpolate: boolean): boolean;
239
+ /**
240
+ * Return the delay in ms before the next rendering.
241
+ * @private
242
+ */
243
+ getRefreshTimeInMs(): number;
244
+ /**
245
+ * On move end we update the websocket with the new bbox.
246
+ *
247
+ * @private
248
+ * @override
249
+ */
250
+ onMoveEnd(evt: MapEvent | ObjectEvent): void;
251
+ /**
252
+ * Function called on moveend event only when the zoom has changed.
253
+ *
254
+ * @param {ol/MapEvent~MapEvent} evt Moveend event.
255
+ * @private
256
+ * @override
257
+ */
258
+ onZoomEnd(): void;
259
+ highlight(feature: Feature): void;
260
+ select(feature: Feature): void;
261
+ /**
262
+ * Remove the trajectory form the list if necessary.
263
+ *
264
+ * @private
265
+ */
266
+ purgeTrajectory(trajectory: RealtimeTrajectory, extent: [number, number, number, number], zoom: number): boolean;
267
+ /**
268
+ * Send the current bbox to the websocket
269
+ *
270
+ * @private
271
+ */
272
+ setBbox(extent?: [number, number, number, number], zoom?: number): void;
273
+ /**
274
+ * Highlight the trajectory of journey.
275
+ * @private
276
+ */
277
+ highlightTrajectory(id: RealtimeTrainId): Promise<Feature[] | undefined>;
278
+ /**
279
+ * Create a copy of the RealtimeLayer.
280
+ * @param {Object} newOptions Options to override
281
+ * @return {RealtimeLayer} A RealtimeLayer
282
+ */
283
+ clone(newOptions: RealtimeLayerOptions): RealtimeLayer;
284
+ }
285
+ export default RealtimeLayer;
@@ -11,7 +11,7 @@ import RealtimeLayerRenderer from '../renderers/RealtimeLayerRenderer';
11
11
  /** @private */
12
12
  const format = new GeoJSON();
13
13
  /**
14
- * Responsible for loading and display data from the geOps Realtime API.
14
+ * An OpenLayers layer able to display data from the [geOps Realtime API](https://developer.geops.io/apis/realtime/).
15
15
  *
16
16
  * @example
17
17
  * import { RealtimeLayer } from 'mobility-toolbox-js/ol';
@@ -86,9 +86,12 @@ class RealtimeLayer extends RealtimeLayerMixin(MobilityLayerMixin(Layer)) {
86
86
  if (this.visible) {
87
87
  this.start();
88
88
  }
89
+ // @ts-expect-error - bad ts check RealtimeLayer is a BaseLayer
89
90
  const index = this.map.getLayers().getArray().indexOf(this);
90
91
  this.map.getLayers().insertAt(index, this.vectorLayer);
91
- this.olListenersKeys.push(...this.map.on(['moveend', 'change:target'], (evt) => {
92
+ this.olListenersKeys.push(...this.map.on(['moveend', 'change:target'],
93
+ // @ts-expect-error - bad ol definitions
94
+ (evt) => {
92
95
  const view = (evt.map || evt.target).getView();
93
96
  if (view.getAnimating() || view.getInteracting()) {
94
97
  return;
@@ -174,8 +177,10 @@ class RealtimeLayer extends RealtimeLayerMixin(MobilityLayerMixin(Layer)) {
174
177
  if (isRendered) {
175
178
  /** @private */
176
179
  this.renderedViewState = Object.assign({}, viewState);
177
- if (this.getRenderer().container) {
178
- this.getRenderer().container.style.transform = '';
180
+ // @ts-expect-error - we are in the same class
181
+ const { container } = this.getRenderer();
182
+ if (container) {
183
+ container.style.transform = '';
179
184
  }
180
185
  }
181
186
  return isRendered;
@@ -266,7 +271,7 @@ class RealtimeLayer extends RealtimeLayerMixin(MobilityLayerMixin(Layer)) {
266
271
  // it will trigger a js error on calculateExtent function.
267
272
  return false;
268
273
  }
269
- return super.purgeTrajectory(trajectory, extent || this.map.getView().calculateExtent(), zoom || this.map.getView().getZoom());
274
+ return super.purgeTrajectory(trajectory, extent || this.map.getView().calculateExtent(), zoom || this.map.getView().getZoom() || 0);
270
275
  }
271
276
  /**
272
277
  * Send the current bbox to the websocket
@@ -274,7 +279,8 @@ class RealtimeLayer extends RealtimeLayerMixin(MobilityLayerMixin(Layer)) {
274
279
  * @private
275
280
  */
276
281
  setBbox(extent, zoom) {
277
- super.setBbox(extent || this.map.getView().calculateExtent(), zoom || this.map.getView().getZoom());
282
+ super.setBbox(extent ||
283
+ this.map.getView().calculateExtent(), zoom || this.map.getView().getZoom() || 0);
278
284
  }
279
285
  /**
280
286
  * Highlight the trajectory of journey.
@@ -0,0 +1,3 @@
1
+ export { default as MaplibreLayer } from "./MaplibreLayer";
2
+ export { default as MaplibreStyleLayer } from "./MaplibreStyleLayer";
3
+ export { default as RealtimeLayer } from "./RealtimeLayer";
@@ -0,0 +1,98 @@
1
+ import { Layer } from 'ol/layer';
2
+ import { PropertiesLayerMixinOptions } from './PropertiesLayerMixin';
3
+ export type MobilityLayerOptions = PropertiesLayerMixinOptions & {
4
+ [x: string]: any;
5
+ };
6
+ type GConstructor<T = {}> = new (...args: any[]) => T;
7
+ export type Layerable = GConstructor<Omit<Layer, keyof string>>;
8
+ declare function MobilityLayerMixin<TBase extends Layerable>(Base: TBase): {
9
+ new (...args: any[]): {
10
+ options?: PropertiesLayerMixinOptions | undefined;
11
+ olListenersKeys: import("ol/events").EventsKey[];
12
+ children: Layer<import("ol/source").Source, import("ol/renderer/Layer").default<any>>[];
13
+ get copyrights(): string;
14
+ set copyrights(newCopyrights: string | string[]);
15
+ disabled: boolean;
16
+ readonly group: string;
17
+ readonly hitTolerance: boolean;
18
+ readonly key: string;
19
+ readonly map: import("ol").Map;
20
+ readonly name: string;
21
+ olLayer: Layer<import("ol/source").Source, import("ol/renderer/Layer").default<any>>;
22
+ parent: Layer<import("ol/source").Source, import("ol/renderer/Layer").default<any>>;
23
+ visible: boolean;
24
+ setMapInternal: ((map: import("ol").Map) => void) & ((map: import("ol").Map | null) => void);
25
+ onChildrenChange(oldValue: Layer<import("ol/source").Source, import("ol/renderer/Layer").default<any>>[]): void;
26
+ attachToMap(map: import("ol").Map): void;
27
+ detachFromMap(): void;
28
+ flat(): any[];
29
+ addEventListener: (type: string, listener: import("ol/events").Listener) => void;
30
+ removeEventListener: (type: string, listener: import("ol/events").Listener) => void;
31
+ on: import("ol/layer/Layer").LayerOnSignature<import("ol/events").EventsKey>;
32
+ render: (frameState: import("ol/Map").FrameState | null, target: HTMLElement) => HTMLElement | null;
33
+ once: import("ol/layer/Layer").LayerOnSignature<import("ol/events").EventsKey>;
34
+ un: import("ol/layer/Layer").LayerOnSignature<void>;
35
+ getSource: () => import("ol/source").Source | null;
36
+ getRenderSource: () => import("ol/source").Source | null;
37
+ getFeatures: (pixel: import("ol/pixel").Pixel) => Promise<import("ol/Feature").FeatureLike[]>;
38
+ getData: (pixel: import("ol/pixel").Pixel) => Float32Array | Uint8ClampedArray | Uint8Array | DataView | null;
39
+ isVisible: (view?: import("ol").View | import("ol/View").ViewStateLayerStateExtent | undefined) => boolean;
40
+ getAttributions: (view?: import("ol").View | import("ol/View").ViewStateLayerStateExtent | undefined) => string[];
41
+ unrender: () => void;
42
+ getDeclutter: () => string;
43
+ renderDeclutter: (frameState: import("ol/Map").FrameState, layerState: import("ol/layer/Layer").State) => void;
44
+ renderDeferred: (frameState: import("ol/Map").FrameState) => void;
45
+ getMapInternal: () => import("ol").Map | null;
46
+ setMap: (map: import("ol").Map | null) => void;
47
+ setSource: (source: import("ol/source").Source | null) => void;
48
+ getRenderer: () => import("ol/renderer/Layer").default<any> | null;
49
+ hasRenderer: () => boolean;
50
+ getBackground: () => false | import("ol/layer/Base").BackgroundColor;
51
+ getClassName: () => string;
52
+ getLayerState: (managed?: boolean | undefined) => import("ol/layer/Layer").State;
53
+ getLayersArray: (array?: Layer<import("ol/source").Source, import("ol/renderer/Layer").default<any>>[] | undefined) => Layer<import("ol/source").Source, import("ol/renderer/Layer").default<any>>[];
54
+ getLayerStatesArray: (states?: import("ol/layer/Layer").State[] | undefined) => import("ol/layer/Layer").State[];
55
+ getExtent: () => import("ol/extent").Extent | undefined;
56
+ getMaxResolution: () => number;
57
+ getMinResolution: () => number;
58
+ getMinZoom: () => number;
59
+ getMaxZoom: () => number;
60
+ getOpacity: () => number;
61
+ getSourceState: () => import("ol/source/Source").State;
62
+ getVisible: () => boolean;
63
+ getZIndex: () => number | undefined;
64
+ setBackground: (background?: import("ol/layer/Base").BackgroundColor | undefined) => void;
65
+ setExtent: (extent: import("ol/extent").Extent | undefined) => void;
66
+ setMaxResolution: (maxResolution: number) => void;
67
+ setMinResolution: (minResolution: number) => void;
68
+ setMaxZoom: (maxZoom: number) => void;
69
+ setMinZoom: (minZoom: number) => void;
70
+ setOpacity: (opacity: number) => void;
71
+ setVisible: (visible: boolean) => void;
72
+ setZIndex: (zindex: number) => void;
73
+ get: (key: string) => any;
74
+ getKeys: () => string[];
75
+ getProperties: () => {
76
+ [x: string]: any;
77
+ };
78
+ getPropertiesInternal: () => {
79
+ [x: string]: any;
80
+ } | null;
81
+ hasProperties: () => boolean;
82
+ notify: (key: string, oldValue: any) => void;
83
+ addChangeListener: (key: string, listener: import("ol/events").Listener) => void;
84
+ removeChangeListener: (key: string, listener: import("ol/events").Listener) => void;
85
+ set: (key: string, value: any, silent?: boolean | undefined) => void;
86
+ setProperties: (values: {
87
+ [x: string]: any;
88
+ }, silent?: boolean | undefined) => void;
89
+ unset: (key: string, silent?: boolean | undefined) => void;
90
+ changed: () => void;
91
+ getRevision: () => number;
92
+ dispatchEvent: (event: string | import("ol/events/Event").default) => boolean | undefined;
93
+ getListeners: (type: string) => import("ol/events").Listener[] | undefined;
94
+ hasListener: (type?: string | undefined) => boolean;
95
+ dispose: () => void;
96
+ };
97
+ } & TBase;
98
+ export default MobilityLayerMixin;
@@ -1,9 +1,6 @@
1
1
  import PropertiesLayerMixin from './PropertiesLayerMixin';
2
2
  function MobilityLayerMixin(Base) {
3
- return class extends PropertiesLayerMixin(Base) {
4
- constructor(options = {}) {
5
- super(options);
6
- }
3
+ return class MobilityLayer extends PropertiesLayerMixin(Base) {
7
4
  };
8
5
  }
9
6
  export default MobilityLayerMixin;
@@ -0,0 +1,127 @@
1
+ import { Layer } from 'ol/layer';
2
+ import { EventsKey } from 'ol/events';
3
+ import { Map } from 'ol';
4
+ import type { Options } from 'ol/layer/Layer';
5
+ import type { Layerable } from './MobilityLayerMixin';
6
+ export type PropertiesLayerMixinOptions = Options & {
7
+ key?: string;
8
+ name?: string;
9
+ group?: string;
10
+ copyrights?: string[];
11
+ children?: any[];
12
+ visible?: boolean;
13
+ disabled?: boolean;
14
+ hitTolerance?: number;
15
+ properties?: {
16
+ [x: string]: any;
17
+ };
18
+ map?: Map;
19
+ } & {
20
+ [x: string]: any;
21
+ };
22
+ /**
23
+ * This mixin adds some properties to access ol custom properties easily.
24
+ */
25
+ declare function PropertiesLayerMixin<TBase extends Layerable>(Base: TBase): {
26
+ new (...args: any[]): {
27
+ options?: PropertiesLayerMixinOptions | undefined;
28
+ olListenersKeys: EventsKey[];
29
+ children: Layer<import("ol/source").Source, import("ol/renderer/Layer").default<any>>[];
30
+ get copyrights(): string;
31
+ set copyrights(newCopyrights: string | string[]);
32
+ disabled: boolean;
33
+ readonly group: string;
34
+ readonly hitTolerance: boolean;
35
+ readonly key: string;
36
+ readonly map: Map;
37
+ readonly name: string;
38
+ olLayer: Layer<import("ol/source").Source, import("ol/renderer/Layer").default<any>>;
39
+ parent: Layer<import("ol/source").Source, import("ol/renderer/Layer").default<any>>;
40
+ visible: boolean;
41
+ setMapInternal(map: Map): void;
42
+ /** @private */
43
+ onChildrenChange(oldValue: Layer[]): void;
44
+ /**
45
+ * Initialize the layer with the map passed in parameters.
46
+ *
47
+ * @param {ol/Map~Map} map A map.
48
+ */
49
+ attachToMap(map: Map): void;
50
+ /**
51
+ * Terminate what was initialized in init function. Remove layer, events...
52
+ */
53
+ detachFromMap(): void;
54
+ /**
55
+ * Return the an array containing all the descendants of the layer in a flat array. Including the current layer.
56
+ */
57
+ flat(): any[];
58
+ addEventListener: (type: string, listener: import("ol/events").Listener) => void;
59
+ removeEventListener: (type: string, listener: import("ol/events").Listener) => void;
60
+ on: import("ol/layer/Layer").LayerOnSignature<EventsKey>;
61
+ render: (frameState: import("ol/Map").FrameState | null, target: HTMLElement) => HTMLElement | null;
62
+ once: import("ol/layer/Layer").LayerOnSignature<EventsKey>;
63
+ un: import("ol/layer/Layer").LayerOnSignature<void>;
64
+ getSource: () => import("ol/source").Source | null;
65
+ getRenderSource: () => import("ol/source").Source | null;
66
+ getFeatures: (pixel: import("ol/pixel").Pixel) => Promise<import("ol/Feature").FeatureLike[]>;
67
+ getData: (pixel: import("ol/pixel").Pixel) => Float32Array | Uint8ClampedArray | Uint8Array | DataView | null;
68
+ isVisible: (view?: import("ol").View | import("ol/View").ViewStateLayerStateExtent | undefined) => boolean;
69
+ getAttributions: (view?: import("ol").View | import("ol/View").ViewStateLayerStateExtent | undefined) => string[];
70
+ unrender: () => void;
71
+ getDeclutter: () => string;
72
+ renderDeclutter: (frameState: import("ol/Map").FrameState, layerState: import("ol/layer/Layer").State) => void;
73
+ renderDeferred: (frameState: import("ol/Map").FrameState) => void;
74
+ getMapInternal: () => Map | null;
75
+ setMap: (map: Map | null) => void;
76
+ setSource: (source: import("ol/source").Source | null) => void;
77
+ getRenderer: () => import("ol/renderer/Layer").default<any> | null;
78
+ hasRenderer: () => boolean;
79
+ getBackground: () => false | import("ol/layer/Base").BackgroundColor;
80
+ getClassName: () => string;
81
+ getLayerState: (managed?: boolean | undefined) => import("ol/layer/Layer").State;
82
+ getLayersArray: (array?: Layer<import("ol/source").Source, import("ol/renderer/Layer").default<any>>[] | undefined) => Layer<import("ol/source").Source, import("ol/renderer/Layer").default<any>>[];
83
+ getLayerStatesArray: (states?: import("ol/layer/Layer").State[] | undefined) => import("ol/layer/Layer").State[];
84
+ getExtent: () => import("ol/extent").Extent | undefined;
85
+ getMaxResolution: () => number;
86
+ getMinResolution: () => number;
87
+ getMinZoom: () => number;
88
+ getMaxZoom: () => number;
89
+ getOpacity: () => number;
90
+ getSourceState: () => import("ol/source/Source").State;
91
+ getVisible: () => boolean;
92
+ getZIndex: () => number | undefined;
93
+ setBackground: (background?: import("ol/layer/Base").BackgroundColor | undefined) => void;
94
+ setExtent: (extent: import("ol/extent").Extent | undefined) => void;
95
+ setMaxResolution: (maxResolution: number) => void;
96
+ setMinResolution: (minResolution: number) => void;
97
+ setMaxZoom: (maxZoom: number) => void;
98
+ setMinZoom: (minZoom: number) => void;
99
+ setOpacity: (opacity: number) => void;
100
+ setVisible: (visible: boolean) => void;
101
+ setZIndex: (zindex: number) => void;
102
+ get: (key: string) => any;
103
+ getKeys: () => string[];
104
+ getProperties: () => {
105
+ [x: string]: any;
106
+ };
107
+ getPropertiesInternal: () => {
108
+ [x: string]: any;
109
+ } | null;
110
+ hasProperties: () => boolean;
111
+ notify: (key: string, oldValue: any) => void;
112
+ addChangeListener: (key: string, listener: import("ol/events").Listener) => void;
113
+ removeChangeListener: (key: string, listener: import("ol/events").Listener) => void;
114
+ set: (key: string, value: any, silent?: boolean | undefined) => void;
115
+ setProperties: (values: {
116
+ [x: string]: any;
117
+ }, silent?: boolean | undefined) => void;
118
+ unset: (key: string, silent?: boolean | undefined) => void;
119
+ changed: () => void;
120
+ getRevision: () => number;
121
+ dispatchEvent: (event: string | import("ol/events/Event").default) => boolean | undefined;
122
+ getListeners: (type: string) => import("ol/events").Listener[] | undefined;
123
+ hasListener: (type?: string | undefined) => boolean;
124
+ dispose: () => void;
125
+ };
126
+ } & TBase;
127
+ export default PropertiesLayerMixin;