mobility-toolbox-js 2.0.0-beta.45 → 2.0.0-beta.47
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.
- package/api/RealtimeAPI.d.ts +80 -64
- package/api/RealtimeAPI.d.ts.map +1 -1
- package/api/RealtimeAPI.js +58 -45
- package/api/RoutingAPI.d.ts +2 -2
- package/api/RoutingAPI.d.ts.map +1 -1
- package/api/RoutingAPI.js +1 -1
- package/api/StopsAPI.d.ts +14 -12
- package/api/StopsAPI.d.ts.map +1 -1
- package/api/StopsAPI.js +7 -9
- package/api/typedefs.d.ts +84 -10
- package/api/typedefs.d.ts.map +1 -1
- package/api/typedefs.js +3 -1
- package/common/api/WebSocketAPI.d.ts +80 -24
- package/common/api/WebSocketAPI.d.ts.map +1 -1
- package/common/api/WebSocketAPI.js +28 -16
- package/common/controls/{Control.d.ts → ControlCommon.d.ts} +21 -19
- package/common/controls/ControlCommon.d.ts.map +1 -0
- package/common/controls/{Control.js → ControlCommon.js} +21 -8
- package/common/controls/CopyrightControlCommon.d.ts +13 -0
- package/common/controls/CopyrightControlCommon.d.ts.map +1 -0
- package/common/controls/CopyrightControlCommon.js +34 -0
- package/common/controls/StopFinderControlCommon.d.ts +54 -0
- package/common/controls/StopFinderControlCommon.d.ts.map +1 -0
- package/common/{mixins/StopFinderMixin.js → controls/StopFinderControlCommon.js} +25 -38
- package/common/layers/{Layer.d.ts → LayerCommon.d.ts} +34 -21
- package/common/layers/LayerCommon.d.ts.map +1 -0
- package/common/layers/{Layer.js → LayerCommon.js} +15 -9
- package/common/mixins/RealtimeLayerMixin.d.ts +243 -19
- package/common/mixins/RealtimeLayerMixin.d.ts.map +1 -1
- package/common/mixins/RealtimeLayerMixin.js +598 -569
- package/common/mixins/UserInteractionsLayerMixin.d.ts +18 -8
- package/common/mixins/UserInteractionsLayerMixin.d.ts.map +1 -1
- package/common/mixins/UserInteractionsLayerMixin.js +170 -159
- package/common/styles/realtimeDefaultStyle.d.ts +30 -9
- package/common/styles/realtimeDefaultStyle.d.ts.map +1 -1
- package/common/styles/realtimeDefaultStyle.js +41 -17
- package/common/styles/realtimeDelayStyle.d.ts +3 -2
- package/common/styles/realtimeDelayStyle.d.ts.map +1 -1
- package/common/styles/realtimeSimpleStyle.d.ts +1 -1
- package/common/styles/realtimeSimpleStyle.d.ts.map +1 -1
- package/common/styles/realtimeSimpleStyle.js +9 -7
- package/common/typedefs.d.ts +64 -3
- package/common/typedefs.d.ts.map +1 -1
- package/common/typedefs.js +34 -4
- package/common/utils/cleanStopTime.d.ts +3 -2
- package/common/utils/cleanStopTime.d.ts.map +1 -1
- package/common/utils/cleanStopTime.js +0 -3
- package/common/utils/compareDepartures.d.ts +6 -4
- package/common/utils/compareDepartures.d.ts.map +1 -1
- package/common/utils/compareDepartures.js +3 -2
- package/common/utils/createCanvas.d.ts +3 -2
- package/common/utils/createCanvas.d.ts.map +1 -1
- package/common/utils/createTrackerFilters.d.ts +3 -2
- package/common/utils/createTrackerFilters.d.ts.map +1 -1
- package/common/utils/createTrackerFilters.js +3 -3
- package/common/utils/getLayersAsFlatArray.d.ts +1 -1
- package/common/utils/getLayersAsFlatArray.d.ts.map +1 -1
- package/common/utils/getLayersAsFlatArray.js +1 -0
- package/common/utils/getMapboxMapCopyrights.d.ts +13 -3
- package/common/utils/getMapboxMapCopyrights.d.ts.map +1 -1
- package/common/utils/getMapboxMapCopyrights.js +10 -4
- package/common/utils/getMapboxRender.d.ts +3 -1
- package/common/utils/getMapboxRender.d.ts.map +1 -1
- package/common/utils/getMapboxRender.js +1 -2
- package/common/utils/getVehiclePosition.d.ts +1 -1
- package/common/utils/getVehiclePosition.d.ts.map +1 -1
- package/common/utils/removeDuplicate.d.ts +2 -2
- package/common/utils/removeDuplicate.d.ts.map +1 -1
- package/common/utils/renderTrajectories.d.ts +3 -6
- package/common/utils/renderTrajectories.d.ts.map +1 -1
- package/common/utils/renderTrajectories.js +17 -8
- package/common/utils/trackerConfig.d.ts.map +1 -1
- package/common/utils/trackerConfig.js +3 -0
- package/mapbox/controls/CopyrightControl.d.ts +6 -8
- package/mapbox/controls/CopyrightControl.d.ts.map +1 -1
- package/mapbox/controls/CopyrightControl.js +3 -8
- package/mapbox/layers/Layer.js +1 -1
- package/mapbox/layers/RealtimeLayer.d.ts +1 -1
- package/mapbox/layers/RealtimeLayer.d.ts.map +1 -1
- package/mapbox/utils.d.ts +1 -1
- package/mapbox/utils.d.ts.map +1 -1
- package/mbt.js +825 -703
- package/mbt.js.map +3 -3
- package/mbt.min.js +84 -84
- package/mbt.min.js.map +3 -3
- package/ol/controls/CopyrightControl.d.ts +10 -10
- package/ol/controls/CopyrightControl.d.ts.map +1 -1
- package/ol/controls/CopyrightControl.js +8 -8
- package/ol/controls/RoutingControl.d.ts +10 -3
- package/ol/controls/RoutingControl.d.ts.map +1 -1
- package/ol/controls/RoutingControl.js +2 -2
- package/ol/controls/StopFinderControl.d.ts +5 -7
- package/ol/controls/StopFinderControl.d.ts.map +1 -1
- package/ol/controls/StopFinderControl.js +4 -8
- package/ol/layers/Layer.d.ts +57 -9
- package/ol/layers/Layer.d.ts.map +1 -1
- package/ol/layers/Layer.js +17 -8
- package/ol/layers/MapGlLayer.d.ts +67 -0
- package/ol/layers/MapGlLayer.d.ts.map +1 -0
- package/{common/mixins/MapboxLayerMixin.js → ol/layers/MapGlLayer.js} +66 -44
- package/ol/layers/MapboxLayer.d.ts +15 -17
- package/ol/layers/MapboxLayer.d.ts.map +1 -1
- package/ol/layers/MapboxLayer.js +11 -8
- package/ol/layers/MapboxStyleLayer.d.ts +6 -0
- package/ol/layers/MapboxStyleLayer.d.ts.map +1 -1
- package/ol/layers/MaplibreLayer.d.ts +4 -4
- package/ol/layers/MaplibreLayer.d.ts.map +1 -1
- package/ol/layers/MaplibreLayer.js +2 -3
- package/ol/layers/RealtimeLayer.d.ts +106 -30
- package/ol/layers/RealtimeLayer.d.ts.map +1 -1
- package/ol/layers/RealtimeLayer.js +22 -14
- package/ol/styles/fullTrajectoryStyle.d.ts +3 -2
- package/ol/styles/fullTrajectoryStyle.d.ts.map +1 -1
- package/package.json +15 -9
- package/types/common.d.ts +111 -0
- package/types/index.d.ts +1 -0
- package/types/realtime.d.ts +290 -9
- package/api/RealtimeAPI.test.d.ts +0 -2
- package/api/RealtimeAPI.test.d.ts.map +0 -1
- package/api/RealtimeAPI.test.js +0 -67
- package/api/RoutingAPI.test.d.ts +0 -2
- package/api/RoutingAPI.test.d.ts.map +0 -1
- package/api/RoutingAPI.test.js +0 -29
- package/api/StopsAPI.test.d.ts +0 -2
- package/api/StopsAPI.test.d.ts.map +0 -1
- package/api/StopsAPI.test.js +0 -26
- package/common/api/HttpAPI.test.d.ts +0 -2
- package/common/api/HttpAPI.test.d.ts.map +0 -1
- package/common/api/HttpAPI.test.js +0 -54
- package/common/api/WebSocketAPI.test.d.ts +0 -2
- package/common/api/WebSocketAPI.test.d.ts.map +0 -1
- package/common/api/WebSocketAPI.test.js +0 -380
- package/common/controls/Control.d.ts.map +0 -1
- package/common/controls/Control.test.d.ts +0 -2
- package/common/controls/Control.test.d.ts.map +0 -1
- package/common/controls/Control.test.js +0 -89
- package/common/layers/Layer.d.ts.map +0 -1
- package/common/layers/Layer.test.d.ts +0 -2
- package/common/layers/Layer.test.d.ts.map +0 -1
- package/common/layers/Layer.test.js +0 -137
- package/common/mixins/CopyrightMixin.d.ts +0 -22
- package/common/mixins/CopyrightMixin.d.ts.map +0 -1
- package/common/mixins/CopyrightMixin.js +0 -43
- package/common/mixins/MapboxLayerMixin.d.ts +0 -27
- package/common/mixins/MapboxLayerMixin.d.ts.map +0 -1
- package/common/mixins/StopFinderMixin.d.ts +0 -40
- package/common/mixins/StopFinderMixin.d.ts.map +0 -1
- package/common/mixins/UserInteractionsLayerMixin.test.d.ts +0 -2
- package/common/mixins/UserInteractionsLayerMixin.test.d.ts.map +0 -1
- package/common/mixins/UserInteractionsLayerMixin.test.js +0 -214
- package/common/utils/createTrackerFilters.test.d.ts +0 -2
- package/common/utils/createTrackerFilters.test.d.ts.map +0 -1
- package/common/utils/createTrackerFilters.test.js +0 -79
- package/common/utils/getMapboxMapCopyrights.test.d.ts +0 -2
- package/common/utils/getMapboxMapCopyrights.test.d.ts.map +0 -1
- package/common/utils/getMapboxMapCopyrights.test.js +0 -40
- package/common/utils/removeDuplicate.test.d.ts +0 -2
- package/common/utils/removeDuplicate.test.d.ts.map +0 -1
- package/common/utils/removeDuplicate.test.js +0 -19
- package/common/utils/timeUtils.test.d.ts +0 -2
- package/common/utils/timeUtils.test.d.ts.map +0 -1
- package/common/utils/timeUtils.test.js +0 -10
- package/common/utils/trackerConfig.test.d.ts +0 -2
- package/common/utils/trackerConfig.test.d.ts.map +0 -1
- package/common/utils/trackerConfig.test.js +0 -23
- package/mapbox/layers/Layer.test.d.ts +0 -2
- package/mapbox/layers/Layer.test.d.ts.map +0 -1
- package/mapbox/layers/Layer.test.js +0 -204
- package/mapbox/layers/RealtimeLayer.test.d.ts +0 -2
- package/mapbox/layers/RealtimeLayer.test.d.ts.map +0 -1
- package/mapbox/layers/RealtimeLayer.test.js +0 -10
- package/ol/controls/CopyrightControl.test.d.ts +0 -2
- package/ol/controls/CopyrightControl.test.d.ts.map +0 -1
- package/ol/controls/CopyrightControl.test.js +0 -177
- package/ol/controls/RoutingControl.test.d.ts +0 -2
- package/ol/controls/RoutingControl.test.d.ts.map +0 -1
- package/ol/controls/RoutingControl.test.js +0 -150
- package/ol/controls/StopFinderControl.test.d.ts +0 -2
- package/ol/controls/StopFinderControl.test.d.ts.map +0 -1
- package/ol/controls/StopFinderControl.test.js +0 -49
- package/ol/layers/Layer.test.d.ts +0 -2
- package/ol/layers/Layer.test.d.ts.map +0 -1
- package/ol/layers/Layer.test.js +0 -196
- package/ol/layers/MapboxLayer.test.d.ts +0 -2
- package/ol/layers/MapboxLayer.test.d.ts.map +0 -1
- package/ol/layers/MapboxLayer.test.js +0 -164
- package/ol/layers/MapboxStyleLayer.test.d.ts +0 -2
- package/ol/layers/MapboxStyleLayer.test.d.ts.map +0 -1
- package/ol/layers/MapboxStyleLayer.test.js +0 -232
- package/ol/layers/RealtimeLayer.test.d.ts +0 -2
- package/ol/layers/RealtimeLayer.test.d.ts.map +0 -1
- package/ol/layers/RealtimeLayer.test.js +0 -71
- package/ol/layers/RoutingLayer.test.d.ts +0 -2
- package/ol/layers/RoutingLayer.test.d.ts.map +0 -1
- package/ol/layers/RoutingLayer.test.js +0 -39
- package/ol/layers/VectorLayer.test.d.ts +0 -2
- package/ol/layers/VectorLayer.test.d.ts.map +0 -1
- package/ol/layers/VectorLayer.test.js +0 -87
- package/ol/layers/WMSLayer.test.d.ts +0 -2
- package/ol/layers/WMSLayer.test.d.ts.map +0 -1
- package/ol/layers/WMSLayer.test.js +0 -66
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/* eslint-disable max-classes-per-file */
|
|
2
|
+
import ControlCommon from './ControlCommon';
|
|
3
|
+
/**
|
|
4
|
+
* A class representing a copyright control to display on map.
|
|
5
|
+
* This class only draw an html element, with an empty string in it.
|
|
6
|
+
* Use subclasses to use it in an ol or mapbox map.
|
|
7
|
+
*/
|
|
8
|
+
class CopyrightControlCommon extends ControlCommon {
|
|
9
|
+
render() {
|
|
10
|
+
if (!this.element) {
|
|
11
|
+
return;
|
|
12
|
+
}
|
|
13
|
+
this.element.innerHTML = this.active
|
|
14
|
+
? this.getCopyrights().join(' | ')
|
|
15
|
+
: '';
|
|
16
|
+
}
|
|
17
|
+
createDefaultElement() {
|
|
18
|
+
this.element = document.createElement('div');
|
|
19
|
+
this.element.id = 'mbt-copyright';
|
|
20
|
+
Object.assign(this.element.style, {
|
|
21
|
+
position: 'absolute',
|
|
22
|
+
bottom: 0,
|
|
23
|
+
right: 0,
|
|
24
|
+
fontSize: '.8rem',
|
|
25
|
+
padding: '0 10px',
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
getCopyrights() {
|
|
29
|
+
// eslint-disable-next-line no-console
|
|
30
|
+
console.error('The getCopyrights() function must be implemented in subclasses.', this);
|
|
31
|
+
return [];
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export default CopyrightControlCommon;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { FeatureCollection } from '@turf/helpers';
|
|
2
|
+
import { Feature } from 'geojson';
|
|
3
|
+
import { StopsAPI } from '../../api';
|
|
4
|
+
import { StopsAPIOptions } from '../../api/StopsAPI';
|
|
5
|
+
import { StopsParameters } from '../../types';
|
|
6
|
+
import ControlCommon, { ControlCommonOptions } from './ControlCommon';
|
|
7
|
+
export declare type StopFinderControlCommonOptions = ControlCommonOptions & StopsAPIOptions & {
|
|
8
|
+
placeholder?: string;
|
|
9
|
+
apiParams: StopsParameters;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* A class representing a stop finder control to display on map.
|
|
13
|
+
* This class only draw the html elements.
|
|
14
|
+
* The geographic logic must be implemented by subclasses.
|
|
15
|
+
*/
|
|
16
|
+
declare class StopFinderControlCommon extends ControlCommon {
|
|
17
|
+
apiParams: StopsParameters;
|
|
18
|
+
placeholder: string;
|
|
19
|
+
api: StopsAPI;
|
|
20
|
+
abortController?: AbortController;
|
|
21
|
+
suggestionsElt?: HTMLElement;
|
|
22
|
+
inputElt?: HTMLInputElement;
|
|
23
|
+
clearElt?: HTMLDivElement;
|
|
24
|
+
/**
|
|
25
|
+
* Constructor.
|
|
26
|
+
*
|
|
27
|
+
* @param {Object} options Map options
|
|
28
|
+
* @param {string} options.apiKey Access key for [geOps services](https://developer.geops.io/). See StopsAPI.
|
|
29
|
+
* @param {string} [options.url='https://api.geops.io/tracker/v1'] Stops service url. See StopsAPI.
|
|
30
|
+
* @param {string} [options.placeholder='Search for a stop...'] Input field placeholder.
|
|
31
|
+
* @param {StopsSearchParams} [options.apiParams={ limit: 20 }] Request parameters. See [Stops service documentation](https://developer.geops.io/apis/5dcbd702a256d90001cf1361/).
|
|
32
|
+
*/
|
|
33
|
+
constructor(options: StopFinderControlCommonOptions);
|
|
34
|
+
render(featureCollection?: FeatureCollection): void;
|
|
35
|
+
createDefaultElement(): void;
|
|
36
|
+
/**
|
|
37
|
+
* Launch a search.
|
|
38
|
+
*
|
|
39
|
+
* @param {String} query The query to search for.
|
|
40
|
+
* @param {AbortController} abortController Abort controller used to cancel the request.
|
|
41
|
+
* @return {Promise<Array<GeoJSONFeature>>} An array of GeoJSON features with coordinates in [EPSG:4326](http://epsg.io/4326).
|
|
42
|
+
*/
|
|
43
|
+
search(q: string, abortController: AbortController): Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* To be defined in inherited class
|
|
46
|
+
*/
|
|
47
|
+
onSuggestionClick(suggestion: Feature): void;
|
|
48
|
+
/**
|
|
49
|
+
* Clear the search field and close the control.
|
|
50
|
+
*/
|
|
51
|
+
clear(): void;
|
|
52
|
+
}
|
|
53
|
+
export default StopFinderControlCommon;
|
|
54
|
+
//# sourceMappingURL=StopFinderControlCommon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StopFinderControlCommon.d.ts","sourceRoot":"","sources":["../../../src/common/controls/StopFinderControlCommon.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,aAAa,EAAE,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,oBAAY,8BAA8B,GAAG,oBAAoB,GAC/D,eAAe,GAAG;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,eAAe,CAAC;CAC5B,CAAC;AAEJ;;;;GAIG;AACH,cAAM,uBAAwB,SAAQ,aAAa;IACjD,SAAS,EAAE,eAAe,CAAC;IAE3B,WAAW,EAAE,MAAM,CAAC;IAEpB,GAAG,EAAE,QAAQ,CAAC;IAEd,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,cAAc,CAAC,EAAE,WAAW,CAAC;IAE7B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAE5B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;;;;;;;OAQG;gBACS,OAAO,EAAE,8BAA8B;IAenD,MAAM,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;IAwB5C,oBAAoB;IAuDpB;;;;;;OAMG;IACH,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe;IAsBlD;;OAEG;IAEH,iBAAiB,CAAC,UAAU,EAAE,OAAO;IAErC;;OAEG;IACH,KAAK;CASN;AAED,eAAe,uBAAuB,CAAC"}
|
|
@@ -1,14 +1,11 @@
|
|
|
1
|
-
/* eslint-disable no-empty-function */
|
|
2
|
-
/* eslint-disable no-useless-constructor */
|
|
3
|
-
/* eslint-disable class-methods-use-this */
|
|
4
|
-
/* eslint-disable max-classes-per-file */
|
|
5
1
|
import { StopsAPI } from '../../api';
|
|
2
|
+
import ControlCommon from './ControlCommon';
|
|
6
3
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
4
|
+
* A class representing a stop finder control to display on map.
|
|
5
|
+
* This class only draw the html elements.
|
|
6
|
+
* The geographic logic must be implemented by subclasses.
|
|
10
7
|
*/
|
|
11
|
-
|
|
8
|
+
class StopFinderControlCommon extends ControlCommon {
|
|
12
9
|
/**
|
|
13
10
|
* Constructor.
|
|
14
11
|
*
|
|
@@ -18,27 +15,7 @@ export class StopFinderInterface {
|
|
|
18
15
|
* @param {string} [options.placeholder='Search for a stop...'] Input field placeholder.
|
|
19
16
|
* @param {StopsSearchParams} [options.apiParams={ limit: 20 }] Request parameters. See [Stops service documentation](https://developer.geops.io/apis/5dcbd702a256d90001cf1361/).
|
|
20
17
|
*/
|
|
21
|
-
|
|
22
|
-
constructor(options = {}) { }
|
|
23
|
-
/**
|
|
24
|
-
* Launch a search.
|
|
25
|
-
*
|
|
26
|
-
* @param {String} query The query to search for.
|
|
27
|
-
* @param {AbortController} abortController Abort controller used to cancel the request.
|
|
28
|
-
* @return {Promise<Array<GeoJSONFeature>>} An array of GeoJSON features with coordinates in [EPSG:4326](http://epsg.io/4326).
|
|
29
|
-
*/
|
|
30
|
-
// eslint-disable-next-line no-unused-vars, @typescript-eslint/no-unused-vars
|
|
31
|
-
search(query, abortController) { }
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Mixin for StopFinderInterface.
|
|
35
|
-
*
|
|
36
|
-
* @param {Class} Base A class to extend with {StopFinderInterface} functionnalities.
|
|
37
|
-
* @return {Class} A class that implements <StopFinderInterface> class and extends Base;
|
|
38
|
-
* @private
|
|
39
|
-
*/
|
|
40
|
-
const StopFinderMixin = (Base) => class extends Base {
|
|
41
|
-
constructor(options = {}) {
|
|
18
|
+
constructor(options) {
|
|
42
19
|
super(options);
|
|
43
20
|
const { apiParams, apiKey, url } = options;
|
|
44
21
|
this.apiParams = Object.assign({ limit: 20 }, (apiParams || {}));
|
|
@@ -58,16 +35,17 @@ const StopFinderMixin = (Base) => class extends Base {
|
|
|
58
35
|
this.suggestionsElt.style.display = suggestions.length ? 'block' : 'none';
|
|
59
36
|
this.suggestionsElt.innerHTML = '';
|
|
60
37
|
suggestions.forEach((suggestion) => {
|
|
61
|
-
|
|
38
|
+
var _a, _b;
|
|
62
39
|
const suggElt = document.createElement('div');
|
|
63
|
-
suggElt.innerHTML = properties.name;
|
|
40
|
+
suggElt.innerHTML = (_a = suggestion === null || suggestion === void 0 ? void 0 : suggestion.properties) === null || _a === void 0 ? void 0 : _a.name;
|
|
64
41
|
suggElt.onclick = () => {
|
|
42
|
+
// @ts-ignore
|
|
65
43
|
this.onSuggestionClick(suggestion);
|
|
66
44
|
};
|
|
67
45
|
Object.assign(suggElt.style, {
|
|
68
46
|
padding: '5px 12px',
|
|
69
47
|
});
|
|
70
|
-
this.suggestionsElt.appendChild(suggElt);
|
|
48
|
+
(_b = this.suggestionsElt) === null || _b === void 0 ? void 0 : _b.appendChild(suggElt);
|
|
71
49
|
});
|
|
72
50
|
}
|
|
73
51
|
createDefaultElement() {
|
|
@@ -89,10 +67,12 @@ const StopFinderMixin = (Base) => class extends Base {
|
|
|
89
67
|
this.inputElt = document.createElement('input');
|
|
90
68
|
this.inputElt.type = 'text';
|
|
91
69
|
this.inputElt.placeholder = this.placeholder;
|
|
92
|
-
this.inputElt.
|
|
70
|
+
this.inputElt.autocomplete = 'off';
|
|
93
71
|
this.inputElt.onkeyup = (evt) => {
|
|
94
|
-
|
|
72
|
+
var _a;
|
|
73
|
+
(_a = this.abortController) === null || _a === void 0 ? void 0 : _a.abort();
|
|
95
74
|
this.abortController = new AbortController();
|
|
75
|
+
// @ts-ignore
|
|
96
76
|
this.search(evt.target.value, this.abortController);
|
|
97
77
|
};
|
|
98
78
|
Object.assign(this.inputElt.style, {
|
|
@@ -120,6 +100,13 @@ const StopFinderMixin = (Base) => class extends Base {
|
|
|
120
100
|
this.clearElt.onclick = () => this.clear();
|
|
121
101
|
this.element.appendChild(this.clearElt);
|
|
122
102
|
}
|
|
103
|
+
/**
|
|
104
|
+
* Launch a search.
|
|
105
|
+
*
|
|
106
|
+
* @param {String} query The query to search for.
|
|
107
|
+
* @param {AbortController} abortController Abort controller used to cancel the request.
|
|
108
|
+
* @return {Promise<Array<GeoJSONFeature>>} An array of GeoJSON features with coordinates in [EPSG:4326](http://epsg.io/4326).
|
|
109
|
+
*/
|
|
123
110
|
search(q, abortController) {
|
|
124
111
|
if (q !== undefined || q !== null) {
|
|
125
112
|
this.apiParams.q = q;
|
|
@@ -128,7 +115,7 @@ const StopFinderMixin = (Base) => class extends Base {
|
|
|
128
115
|
this.clearElt.style.display = 'block';
|
|
129
116
|
}
|
|
130
117
|
return this.api
|
|
131
|
-
.search(this.apiParams, abortController)
|
|
118
|
+
.search(this.apiParams, abortController && { signal: abortController.signal })
|
|
132
119
|
.then((data) => {
|
|
133
120
|
this.render(data);
|
|
134
121
|
})
|
|
@@ -145,12 +132,12 @@ const StopFinderMixin = (Base) => class extends Base {
|
|
|
145
132
|
* Clear the search field and close the control.
|
|
146
133
|
*/
|
|
147
134
|
clear() {
|
|
148
|
-
if (!this.suggestionsElt) {
|
|
135
|
+
if (!this.suggestionsElt || !this.inputElt || !this.clearElt) {
|
|
149
136
|
return;
|
|
150
137
|
}
|
|
151
138
|
this.inputElt.value = '';
|
|
152
139
|
this.suggestionsElt.innerHTML = '';
|
|
153
140
|
this.clearElt.style.display = 'none';
|
|
154
141
|
}
|
|
155
|
-
}
|
|
156
|
-
export default
|
|
142
|
+
}
|
|
143
|
+
export default StopFinderControlCommon;
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
import BaseObject from 'ol/Object';
|
|
2
|
+
import type { AnyMap, LayerGetFeatureInfoOptions, LayerGetFeatureInfoResponse } from '../../types';
|
|
3
|
+
export declare type LayerCommonOptions = {
|
|
4
|
+
key?: string;
|
|
5
|
+
name?: string;
|
|
6
|
+
group?: string;
|
|
7
|
+
copyrights?: string[];
|
|
8
|
+
children?: Layer[];
|
|
9
|
+
visible?: Boolean;
|
|
10
|
+
disabled?: Boolean;
|
|
11
|
+
hitTolerance?: Number;
|
|
12
|
+
properties?: {
|
|
13
|
+
[x: string]: any;
|
|
14
|
+
};
|
|
15
|
+
map?: AnyMap;
|
|
16
|
+
};
|
|
1
17
|
/**
|
|
2
18
|
* A class representing a layer to display on map.
|
|
3
19
|
*
|
|
@@ -17,6 +33,19 @@
|
|
|
17
33
|
* @classproperty {ol/Map~Map|mapboxgl.Map} map - The map where the layer is displayed.
|
|
18
34
|
*/
|
|
19
35
|
export default class Layer extends BaseObject {
|
|
36
|
+
key?: string;
|
|
37
|
+
name?: string;
|
|
38
|
+
group?: string;
|
|
39
|
+
copyrights?: string[];
|
|
40
|
+
children?: Layer[];
|
|
41
|
+
visible?: boolean;
|
|
42
|
+
disabled?: boolean;
|
|
43
|
+
hitTolerance?: number;
|
|
44
|
+
properties?: {
|
|
45
|
+
[x: string]: any;
|
|
46
|
+
};
|
|
47
|
+
map?: AnyMap;
|
|
48
|
+
parent?: Layer;
|
|
20
49
|
/**
|
|
21
50
|
* Constructor
|
|
22
51
|
*
|
|
@@ -30,34 +59,19 @@ export default class Layer extends BaseObject {
|
|
|
30
59
|
* @param {number} [options.hitTolerance=5] Hit-detection tolerance in css pixels. Pixels inside the radius around the given position will be checked for features.
|
|
31
60
|
* @param {Object} [options.properties={}] Application-specific layer properties.
|
|
32
61
|
*/
|
|
33
|
-
constructor(options?:
|
|
34
|
-
key?: string | undefined;
|
|
35
|
-
name?: string | undefined;
|
|
36
|
-
copyrights?: string[] | undefined;
|
|
37
|
-
children?: Layer[] | undefined;
|
|
38
|
-
visible?: boolean | undefined;
|
|
39
|
-
disabled?: boolean | undefined;
|
|
40
|
-
hitTolerance?: number | undefined;
|
|
41
|
-
properties?: Object | undefined;
|
|
42
|
-
});
|
|
43
|
-
visible: boolean;
|
|
44
|
-
group: any;
|
|
45
|
-
copyrights: string[] | undefined;
|
|
46
|
-
children: Layer[] | undefined;
|
|
62
|
+
constructor(options?: LayerCommonOptions);
|
|
47
63
|
/**
|
|
48
64
|
* Define layer's properties that needs custom get and set.
|
|
49
65
|
*
|
|
50
66
|
* @ignore
|
|
51
67
|
*/
|
|
52
|
-
defineProperties(options
|
|
68
|
+
defineProperties(options?: LayerCommonOptions): void;
|
|
53
69
|
/**
|
|
54
70
|
* Initialize the layer with the map passed in parameters.
|
|
55
71
|
*
|
|
56
72
|
* @param {ol/Map~Map|mapboxgl.Map} map A map.
|
|
57
73
|
*/
|
|
58
|
-
attachToMap(map:
|
|
59
|
-
/** @ignore */
|
|
60
|
-
map: any;
|
|
74
|
+
attachToMap(map: AnyMap): void;
|
|
61
75
|
/**
|
|
62
76
|
* Terminate what was initialized in init function. Remove layer, events...
|
|
63
77
|
*/
|
|
@@ -70,11 +84,10 @@ export default class Layer extends BaseObject {
|
|
|
70
84
|
* @param {Object} options Some options. See child classes to see which are supported.
|
|
71
85
|
* @return {Promise<FeatureInfo>} An empty response.
|
|
72
86
|
*/
|
|
73
|
-
getFeatureInfoAtCoordinate(coordinate:
|
|
87
|
+
getFeatureInfoAtCoordinate(coordinate: number[], options?: LayerGetFeatureInfoOptions): Promise<LayerGetFeatureInfoResponse>;
|
|
74
88
|
/**
|
|
75
89
|
* Return the an array containing all the descendants of the layer in a flat array. Including the current layer.
|
|
76
90
|
*/
|
|
77
91
|
flat(): any[];
|
|
78
92
|
}
|
|
79
|
-
|
|
80
|
-
//# sourceMappingURL=Layer.d.ts.map
|
|
93
|
+
//# sourceMappingURL=LayerCommon.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LayerCommon.d.ts","sourceRoot":"","sources":["../../../src/common/layers/LayerCommon.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,WAAW,CAAC;AAInC,OAAO,KAAK,EACV,MAAM,EACN,0BAA0B,EAC1B,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AAErB,oBAAY,kBAAkB,GAAG;IAC/B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,CAAC,OAAO,OAAO,KAAM,SAAQ,UAAU;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAEtB,QAAQ,CAAC,EAAE,KAAK,EAAE,CAAC;IAEnB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,UAAU,CAAC,EAAE;QAAE,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE,CAAC;IAElC,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,MAAM,CAAC,EAAE,KAAK,CAAC;IAEf;;;;;;;;;;;;OAYG;gBACS,OAAO,GAAE,kBAAuB;IAkC5C;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,GAAE,kBAAuB;IA2IjD;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM;IAYvB;;OAEG;IAEH,aAAa;IAKb;;;;;;;OAOG;IAEH,0BAA0B,CACxB,UAAU,EAAE,MAAM,EAAE,EAEpB,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,2BAA2B,CAAC;IAgBvC;;OAEG;IACH,IAAI;CAGL"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import BaseObject from 'ol/Object';
|
|
2
2
|
import { v4 as uuid } from 'uuid';
|
|
3
|
+
import BaseEvent from 'ol/events/Event';
|
|
3
4
|
import getLayersAsFlatArray from '../utils/getLayersAsFlatArray';
|
|
4
5
|
/**
|
|
5
6
|
* A class representing a layer to display on map.
|
|
@@ -36,13 +37,16 @@ export default class Layer extends BaseObject {
|
|
|
36
37
|
constructor(options = {}) {
|
|
37
38
|
super();
|
|
38
39
|
this.defineProperties(options);
|
|
39
|
-
|
|
40
|
+
if (options.properties) {
|
|
41
|
+
this.setProperties(options.properties);
|
|
42
|
+
}
|
|
40
43
|
this.visible = options.visible === undefined ? true : !!options.visible;
|
|
41
44
|
this.group = options.group;
|
|
42
45
|
this.copyrights = options.copyrights;
|
|
43
46
|
this.children = options.children;
|
|
44
47
|
// Listen for group visiblity change
|
|
45
48
|
// if a layer from a group is newly visible we hide the others.
|
|
49
|
+
/* @ts-ignore */
|
|
46
50
|
this.on(`change:visible:group`, (evt) => {
|
|
47
51
|
// We hide layer of the same group
|
|
48
52
|
if (this.group === evt.target.group &&
|
|
@@ -61,7 +65,7 @@ export default class Layer extends BaseObject {
|
|
|
61
65
|
*
|
|
62
66
|
* @ignore
|
|
63
67
|
*/
|
|
64
|
-
defineProperties(options) {
|
|
68
|
+
defineProperties(options = {}) {
|
|
65
69
|
const { name, key, properties, hitTolerance } = Object.assign({}, options);
|
|
66
70
|
const uid = uuid();
|
|
67
71
|
Object.defineProperties(this, {
|
|
@@ -122,10 +126,9 @@ export default class Layer extends BaseObject {
|
|
|
122
126
|
while (higherParent.parent) {
|
|
123
127
|
higherParent = higherParent.parent;
|
|
124
128
|
}
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
});
|
|
129
|
+
const evt = new BaseEvent(`change:visible:group`);
|
|
130
|
+
evt.target = this;
|
|
131
|
+
higherParent.dispatchEvent(evt);
|
|
129
132
|
}
|
|
130
133
|
}
|
|
131
134
|
else if (!this.visible) {
|
|
@@ -139,6 +142,7 @@ export default class Layer extends BaseObject {
|
|
|
139
142
|
// If the parent has no more visible child we also hide it.
|
|
140
143
|
if (this.parent &&
|
|
141
144
|
this.parent.visible &&
|
|
145
|
+
this.parent.children &&
|
|
142
146
|
!this.parent.children.find((child) => child.visible)) {
|
|
143
147
|
this.parent.visible = false;
|
|
144
148
|
}
|
|
@@ -161,7 +165,7 @@ export default class Layer extends BaseObject {
|
|
|
161
165
|
set: (newValue) => {
|
|
162
166
|
(this.children || []).forEach((child) => {
|
|
163
167
|
// eslint-disable-next-line no-param-reassign
|
|
164
|
-
child.parent =
|
|
168
|
+
child.parent = undefined;
|
|
165
169
|
});
|
|
166
170
|
if (Array.isArray(newValue)) {
|
|
167
171
|
newValue.forEach((child) => {
|
|
@@ -204,7 +208,7 @@ export default class Layer extends BaseObject {
|
|
|
204
208
|
// eslint-disable-next-line class-methods-use-this
|
|
205
209
|
detachFromMap() {
|
|
206
210
|
/** @ignore */
|
|
207
|
-
this.map =
|
|
211
|
+
this.map = undefined;
|
|
208
212
|
}
|
|
209
213
|
/**
|
|
210
214
|
* Request feature information for a given coordinate.
|
|
@@ -215,7 +219,9 @@ export default class Layer extends BaseObject {
|
|
|
215
219
|
* @return {Promise<FeatureInfo>} An empty response.
|
|
216
220
|
*/
|
|
217
221
|
// eslint-disable-next-line no-unused-vars,@typescript-eslint/no-unused-vars
|
|
218
|
-
getFeatureInfoAtCoordinate(coordinate,
|
|
222
|
+
getFeatureInfoAtCoordinate(coordinate,
|
|
223
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
224
|
+
options) {
|
|
219
225
|
// eslint-disable-next-line no-console
|
|
220
226
|
console.error('getFeatureInfoAtCoordinate must be implemented by inheriting layers', this.key);
|
|
221
227
|
// This layer returns no feature info.
|