mobility-toolbox-js 2.0.0 → 2.1.0

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 (271) hide show
  1. package/api/RealtimeAPI.d.ts +279 -0
  2. package/api/RealtimeAPI.d.ts.map +1 -0
  3. package/api/RealtimeAPI.js +466 -0
  4. package/api/RoutingAPI.d.ts +37 -0
  5. package/api/RoutingAPI.d.ts.map +1 -0
  6. package/api/RoutingAPI.js +35 -0
  7. package/api/StopsAPI.d.ts +38 -0
  8. package/api/StopsAPI.d.ts.map +1 -0
  9. package/api/StopsAPI.js +36 -0
  10. package/api/index.d.ts +4 -0
  11. package/api/index.d.ts.map +1 -0
  12. package/api/index.js +3 -3
  13. package/api/typedefs.d.ts +179 -0
  14. package/api/typedefs.d.ts.map +1 -0
  15. package/api/{tralis/typedefs.js → typedefs.js} +4 -10
  16. package/common/api/HttpAPI.d.ts +31 -0
  17. package/common/api/HttpAPI.d.ts.map +1 -0
  18. package/common/api/HttpAPI.js +57 -0
  19. package/common/api/WebSocketAPI.d.ts +153 -0
  20. package/common/api/WebSocketAPI.d.ts.map +1 -0
  21. package/common/api/WebSocketAPI.js +341 -0
  22. package/common/controls/ControlCommon.d.ts +76 -0
  23. package/common/controls/ControlCommon.d.ts.map +1 -0
  24. package/common/controls/ControlCommon.js +150 -0
  25. package/common/controls/CopyrightControlCommon.d.ts +13 -0
  26. package/common/controls/CopyrightControlCommon.d.ts.map +1 -0
  27. package/common/controls/CopyrightControlCommon.js +34 -0
  28. package/common/controls/StopFinderControlCommon.d.ts +55 -0
  29. package/common/controls/StopFinderControlCommon.d.ts.map +1 -0
  30. package/common/controls/StopFinderControlCommon.js +144 -0
  31. package/common/index.d.ts +3 -0
  32. package/common/index.d.ts.map +1 -0
  33. package/common/index.js +2 -0
  34. package/common/layers/LayerCommon.d.ts +94 -0
  35. package/common/layers/LayerCommon.d.ts.map +1 -0
  36. package/common/layers/LayerCommon.js +244 -0
  37. package/common/mixins/RealtimeLayerMixin.d.ts +286 -0
  38. package/common/mixins/RealtimeLayerMixin.d.ts.map +1 -0
  39. package/common/mixins/RealtimeLayerMixin.js +776 -0
  40. package/common/mixins/UserInteractionsLayerMixin.d.ts +60 -0
  41. package/common/mixins/UserInteractionsLayerMixin.d.ts.map +1 -0
  42. package/common/mixins/UserInteractionsLayerMixin.js +241 -0
  43. package/common/styles/index.d.ts +5 -0
  44. package/common/styles/index.d.ts.map +1 -0
  45. package/common/styles/index.js +4 -4
  46. package/common/styles/realtimeDefaultStyle.d.ts +36 -0
  47. package/common/styles/realtimeDefaultStyle.d.ts.map +1 -0
  48. package/common/styles/realtimeDefaultStyle.js +275 -0
  49. package/common/styles/{trackerDelayStyle.js → realtimeDelayStyle.d.ts} +4 -9
  50. package/common/styles/realtimeDelayStyle.d.ts.map +1 -0
  51. package/common/styles/realtimeDelayStyle.js +13 -0
  52. package/common/styles/realtimeHeadingStyle.d.ts +12 -0
  53. package/common/styles/realtimeHeadingStyle.d.ts.map +1 -0
  54. package/common/styles/realtimeHeadingStyle.js +85 -0
  55. package/common/styles/realtimeSimpleStyle.d.ts +4 -0
  56. package/common/styles/realtimeSimpleStyle.d.ts.map +1 -0
  57. package/common/styles/realtimeSimpleStyle.js +23 -0
  58. package/common/typedefs.d.ts +111 -0
  59. package/common/typedefs.d.ts.map +1 -0
  60. package/common/typedefs.js +35 -6
  61. package/common/utils/compareDepartures.d.ts +11 -0
  62. package/common/utils/compareDepartures.d.ts.map +1 -0
  63. package/common/utils/compareDepartures.js +35 -0
  64. package/common/utils/createCanvas.d.ts +10 -0
  65. package/common/utils/createCanvas.d.ts.map +1 -0
  66. package/common/utils/createCanvas.js +27 -0
  67. package/common/utils/createRealtimeFilters.d.ts +13 -0
  68. package/common/utils/createRealtimeFilters.d.ts.map +1 -0
  69. package/common/utils/createRealtimeFilters.js +74 -0
  70. package/common/utils/debounceDeparturesMessages.d.ts +12 -0
  71. package/common/utils/debounceDeparturesMessages.d.ts.map +1 -0
  72. package/common/utils/debounceDeparturesMessages.js +24 -0
  73. package/common/utils/debounceWebsocketMessages.d.ts +11 -0
  74. package/common/utils/debounceWebsocketMessages.d.ts.map +1 -0
  75. package/common/utils/debounceWebsocketMessages.js +29 -0
  76. package/common/utils/getLayersAsFlatArray.d.ts +3 -0
  77. package/common/utils/getLayersAsFlatArray.d.ts.map +1 -0
  78. package/common/utils/getLayersAsFlatArray.js +15 -0
  79. package/common/utils/getMapboxMapCopyrights.d.ts +18 -0
  80. package/common/utils/getMapboxMapCopyrights.d.ts.map +1 -0
  81. package/common/utils/getMapboxMapCopyrights.js +21 -23
  82. package/common/utils/getMapboxRender.d.ts +7 -0
  83. package/common/utils/getMapboxRender.d.ts.map +1 -0
  84. package/common/utils/getMapboxRender.js +87 -0
  85. package/common/utils/getMaplibreRender.d.ts +7 -0
  86. package/common/utils/getMaplibreRender.d.ts.map +1 -0
  87. package/common/utils/getMaplibreRender.js +38 -0
  88. package/common/utils/getRealtimeModeSuffix.d.ts +10 -0
  89. package/common/utils/getRealtimeModeSuffix.d.ts.map +1 -0
  90. package/common/utils/getRealtimeModeSuffix.js +7 -0
  91. package/common/utils/getUrlWithParams.d.ts +9 -0
  92. package/common/utils/getUrlWithParams.d.ts.map +1 -0
  93. package/common/utils/getUrlWithParams.js +18 -0
  94. package/common/utils/getVehiclePosition.d.ts +16 -0
  95. package/common/utils/getVehiclePosition.d.ts.map +1 -0
  96. package/common/utils/getVehiclePosition.js +60 -60
  97. package/common/utils/index.d.ts +17 -0
  98. package/common/utils/index.d.ts.map +1 -0
  99. package/common/utils/index.js +13 -2
  100. package/common/utils/realtimeConfig.d.ts +49 -0
  101. package/common/utils/realtimeConfig.d.ts.map +1 -0
  102. package/common/utils/realtimeConfig.js +173 -0
  103. package/common/utils/removeDuplicate.d.ts +10 -0
  104. package/common/utils/removeDuplicate.d.ts.map +1 -0
  105. package/common/utils/removeDuplicate.js +5 -12
  106. package/common/utils/renderTrajectories.d.ts +17 -0
  107. package/common/utils/renderTrajectories.d.ts.map +1 -0
  108. package/common/utils/renderTrajectories.js +110 -0
  109. package/common/utils/sortAndFilterDepartures.d.ts +16 -0
  110. package/common/utils/sortAndFilterDepartures.d.ts.map +1 -0
  111. package/common/utils/sortAndFilterDepartures.js +58 -0
  112. package/common/utils/sortByDelay.d.ts +3 -0
  113. package/common/utils/sortByDelay.d.ts.map +1 -0
  114. package/common/utils/sortByDelay.js +17 -20
  115. package/common/utils/timeUtils.d.ts +24 -0
  116. package/common/utils/timeUtils.d.ts.map +1 -0
  117. package/common/utils/timeUtils.js +13 -18
  118. package/iife.d.ts +3 -0
  119. package/iife.d.ts.map +1 -0
  120. package/iife.js +5 -0
  121. package/index.d.ts +10 -0
  122. package/index.d.ts.map +1 -0
  123. package/index.js +10 -2
  124. package/mapbox/controls/CopyrightControl.d.ts +29 -0
  125. package/mapbox/controls/CopyrightControl.d.ts.map +1 -0
  126. package/mapbox/controls/CopyrightControl.js +25 -35
  127. package/mapbox/controls/index.d.ts +2 -0
  128. package/mapbox/controls/index.d.ts.map +1 -0
  129. package/mapbox/controls/index.js +2 -0
  130. package/mapbox/index.d.ts +6 -0
  131. package/mapbox/index.d.ts.map +1 -0
  132. package/mapbox/index.js +5 -3
  133. package/mapbox/layers/Layer.d.ts +59 -0
  134. package/mapbox/layers/Layer.d.ts.map +1 -0
  135. package/mapbox/layers/Layer.js +78 -95
  136. package/mapbox/layers/RealtimeLayer.d.ts +181 -0
  137. package/mapbox/layers/RealtimeLayer.d.ts.map +1 -0
  138. package/mapbox/layers/RealtimeLayer.js +276 -0
  139. package/mapbox/layers/index.d.ts +3 -0
  140. package/mapbox/layers/index.d.ts.map +1 -0
  141. package/mapbox/layers/index.js +2 -0
  142. package/mapbox/utils/getMercatorResolution.d.ts +9 -0
  143. package/mapbox/utils/getMercatorResolution.d.ts.map +1 -0
  144. package/mapbox/utils/getMercatorResolution.js +18 -0
  145. package/mapbox/utils/getSourceCoordinates.d.ts +9 -0
  146. package/mapbox/utils/getSourceCoordinates.d.ts.map +1 -0
  147. package/mapbox/utils/getSourceCoordinates.js +27 -0
  148. package/mapbox/utils/index.d.ts +3 -0
  149. package/mapbox/utils/index.d.ts.map +1 -0
  150. package/mapbox/utils/index.js +2 -0
  151. package/mbt.js +60005 -0
  152. package/mbt.js.map +7 -0
  153. package/mbt.min.js +1084 -0
  154. package/mbt.min.js.map +7 -0
  155. package/ol/controls/CopyrightControl.d.ts +31 -0
  156. package/ol/controls/CopyrightControl.d.ts.map +1 -0
  157. package/ol/controls/CopyrightControl.js +44 -56
  158. package/ol/controls/RoutingControl.d.ts +193 -0
  159. package/ol/controls/RoutingControl.d.ts.map +1 -0
  160. package/ol/controls/RoutingControl.js +546 -667
  161. package/ol/controls/StopFinderControl.d.ts +30 -0
  162. package/ol/controls/StopFinderControl.d.ts.map +1 -0
  163. package/ol/controls/StopFinderControl.js +10 -16
  164. package/ol/controls/index.d.ts +4 -0
  165. package/ol/controls/index.d.ts.map +1 -0
  166. package/ol/controls/index.js +3 -0
  167. package/ol/index.d.ts +6 -0
  168. package/ol/index.d.ts.map +1 -0
  169. package/ol/index.js +4 -12
  170. package/ol/layers/Layer.d.ts +86 -0
  171. package/ol/layers/Layer.d.ts.map +1 -0
  172. package/ol/layers/Layer.js +147 -166
  173. package/ol/layers/MapGlLayer.d.ts +67 -0
  174. package/ol/layers/MapGlLayer.d.ts.map +1 -0
  175. package/ol/layers/MapGlLayer.js +218 -0
  176. package/ol/layers/MapboxLayer.d.ts +50 -0
  177. package/ol/layers/MapboxLayer.d.ts.map +1 -0
  178. package/ol/layers/MapboxLayer.js +79 -348
  179. package/ol/layers/MapboxStyleLayer.d.ts +129 -0
  180. package/ol/layers/MapboxStyleLayer.d.ts.map +1 -0
  181. package/ol/layers/MapboxStyleLayer.js +329 -368
  182. package/ol/layers/MaplibreLayer.d.ts +28 -0
  183. package/ol/layers/MaplibreLayer.d.ts.map +1 -0
  184. package/ol/layers/MaplibreLayer.js +13 -259
  185. package/ol/layers/RealtimeLayer.d.ts +202 -0
  186. package/ol/layers/RealtimeLayer.d.ts.map +1 -0
  187. package/ol/layers/RealtimeLayer.js +340 -0
  188. package/ol/layers/RoutingLayer.d.ts +34 -0
  189. package/ol/layers/RoutingLayer.d.ts.map +1 -0
  190. package/ol/layers/RoutingLayer.js +62 -68
  191. package/ol/layers/VectorLayer.d.ts +25 -0
  192. package/ol/layers/VectorLayer.d.ts.map +1 -0
  193. package/ol/layers/VectorLayer.js +27 -32
  194. package/ol/layers/WMSLayer.d.ts +42 -0
  195. package/ol/layers/WMSLayer.d.ts.map +1 -0
  196. package/ol/layers/WMSLayer.js +74 -66
  197. package/ol/layers/index.d.ts +9 -0
  198. package/ol/layers/index.d.ts.map +1 -0
  199. package/ol/layers/index.js +8 -0
  200. package/ol/styles/fullTrajectoryDelayStyle.d.ts +4 -0
  201. package/ol/styles/fullTrajectoryDelayStyle.d.ts.map +1 -0
  202. package/ol/styles/fullTrajectoryDelayStyle.js +23 -25
  203. package/ol/styles/fullTrajectoryStyle.d.ts +5 -0
  204. package/ol/styles/fullTrajectoryStyle.d.ts.map +1 -0
  205. package/ol/styles/fullTrajectoryStyle.js +37 -44
  206. package/ol/styles/index.d.ts +3 -0
  207. package/ol/styles/index.d.ts.map +1 -0
  208. package/package.json +98 -177
  209. package/setupTests.d.ts +2 -0
  210. package/setupTests.d.ts.map +1 -0
  211. package/setupTests.js +26 -0
  212. package/types/common.d.ts +122 -0
  213. package/types/index.d.ts +11 -0
  214. package/types/realtime.d.ts +320 -0
  215. package/types/routing.d.ts +206 -0
  216. package/types/stops.d.ts +143 -0
  217. package/README.md +0 -23
  218. package/api/routing/RoutingAPI.js +0 -44
  219. package/api/routing/RoutingAPI.test.js +0 -41
  220. package/api/stops/StopsAPI.js +0 -41
  221. package/api/stops/StopsAPI.test.js +0 -34
  222. package/api/tralis/TralisAPI.js +0 -731
  223. package/api/tralis/TralisAPI.test.js +0 -75
  224. package/api/tralis/TralisAPIUtils.js +0 -73
  225. package/api/tralis/WebSocketConnector.js +0 -338
  226. package/api/tralis/WebSocketConnector.test.js +0 -356
  227. package/common/Tracker.js +0 -197
  228. package/common/api/api.js +0 -64
  229. package/common/api/api.test.js +0 -68
  230. package/common/controls/Control.js +0 -146
  231. package/common/controls/Control.test.js +0 -98
  232. package/common/layers/Layer.js +0 -404
  233. package/common/layers/Layer.test.js +0 -585
  234. package/common/mixins/CopyrightMixin.js +0 -48
  235. package/common/mixins/SearchMixin.js +0 -176
  236. package/common/mixins/TralisLayerMixin.js +0 -930
  237. package/common/styles/trackerDefaultStyle.js +0 -333
  238. package/common/styles/trackerSimpleStyle.js +0 -22
  239. package/common/trackerConfig.js +0 -190
  240. package/common/trackerConfig.test.js +0 -25
  241. package/common/utils/createTrackerFilters.js +0 -87
  242. package/common/utils/createTrackerFilters.test.js +0 -95
  243. package/common/utils/getMapboxMapCopyrights.test.js +0 -47
  244. package/common/utils/getMapboxStyleUrl.js +0 -32
  245. package/common/utils/removeDuplicate.test.js +0 -22
  246. package/common/utils/timeUtils.test.js +0 -16
  247. package/index.js.map +0 -1
  248. package/mapbox/layers/Layer.test.js +0 -202
  249. package/mapbox/layers/TralisLayer.js +0 -329
  250. package/mapbox/layers/TralisLayer.test.js +0 -40
  251. package/mapbox/utils.js +0 -46
  252. package/module.js +0 -23
  253. package/ol/README.md +0 -0
  254. package/ol/controls/CopyrightControl.test.js +0 -211
  255. package/ol/controls/RoutingControl.test.js +0 -216
  256. package/ol/controls/StopFinderControl.test.js +0 -59
  257. package/ol/controls/snapshots/RoutingControlRouteGen10.json +0 -58
  258. package/ol/controls/snapshots/RoutingControlRouteGen100.json +0 -292
  259. package/ol/controls/snapshots/RoutingControlRouteGen30.json +0 -69
  260. package/ol/controls/snapshots/RoutingControlRouteGen5.json +0 -58
  261. package/ol/controls/snapshots/RoutingControlRouteOSM.json +0 -759
  262. package/ol/controls/snapshots/RoutingControlStation1.json +0 -60
  263. package/ol/controls/snapshots/RoutingControlStation2.json +0 -49
  264. package/ol/layers/Layer.test.js +0 -197
  265. package/ol/layers/MapboxLayer.test.js +0 -186
  266. package/ol/layers/MapboxStyleLayer.test.js +0 -262
  267. package/ol/layers/RoutingLayer.test.js +0 -49
  268. package/ol/layers/TralisLayer.js +0 -359
  269. package/ol/layers/TralisLayer.test.js +0 -97
  270. package/ol/layers/VectorLayer.test.js +0 -98
  271. package/ol/layers/WMSLayer.test.js +0 -84
@@ -0,0 +1,30 @@
1
+ import { Feature } from 'geojson';
2
+ import StopFinderControlCommon from '../../common/controls/StopFinderControlCommon';
3
+ /**
4
+ * Search stations.
5
+ *
6
+ * @example
7
+ * import { Map } from 'ol';
8
+ * import { StopFinderControl } from 'mobility-toolbox-js/ol';
9
+ *
10
+ * const map = new Map({
11
+ * target: 'map',
12
+ * });
13
+ *
14
+ * const control = new StopFinderControl({
15
+ * apiKey: [yourApiKey]
16
+ * });
17
+ *
18
+ * control.attachToMap(map);
19
+ *
20
+ *
21
+ * @see <a href="/example/ol-search">Openlayers search example</a>
22
+ */
23
+ declare class StopFinderControl extends StopFinderControlCommon {
24
+ /**
25
+ * @private
26
+ */
27
+ onSuggestionClick(suggestion: Feature): void;
28
+ }
29
+ export default StopFinderControl;
30
+ //# sourceMappingURL=StopFinderControl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StopFinderControl.d.ts","sourceRoot":"","sources":["../../../src/ol/controls/StopFinderControl.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,SAAS,CAAC;AAEzC,OAAO,uBAAuB,MAAM,+CAA+C,CAAC;AAEpF;;;;;;;;;;;;;;;;;;;GAmBG;AACH,cAAM,iBAAkB,SAAQ,uBAAuB;IACrD;;OAEG;IACH,iBAAiB,CAAC,UAAU,EAAE,OAAO;CAItC;AAED,eAAe,iBAAiB,CAAC"}
@@ -1,7 +1,5 @@
1
1
  import { fromLonLat } from 'ol/proj';
2
- import Control from '../../common/controls/Control';
3
- import mixin from '../../common/mixins/SearchMixin';
4
-
2
+ import StopFinderControlCommon from '../../common/controls/StopFinderControlCommon';
5
3
  /**
6
4
  * Search stations.
7
5
  *
@@ -17,22 +15,18 @@ import mixin from '../../common/mixins/SearchMixin';
17
15
  * apiKey: [yourApiKey]
18
16
  * });
19
17
  *
20
- * control.map = map;
18
+ * control.attachToMap(map);
21
19
  *
22
20
  *
23
21
  * @see <a href="/example/ol-search">Openlayers search example</a>
24
- *
25
- * @extends {Control}
26
- * @implements {SearchInterface}
27
22
  */
28
- class StopFinderControl extends mixin(Control) {
29
- /**
30
- * @private
31
- */
32
- onSuggestionClick({ geometry }) {
33
- const coord = fromLonLat(geometry.coordinates);
34
- this.map.getView().setCenter(coord);
35
- }
23
+ class StopFinderControl extends StopFinderControlCommon {
24
+ /**
25
+ * @private
26
+ */
27
+ onSuggestionClick(suggestion) {
28
+ const coord = fromLonLat(suggestion.geometry.coordinates);
29
+ this.map.getView().setCenter(coord);
30
+ }
36
31
  }
37
-
38
32
  export default StopFinderControl;
@@ -0,0 +1,4 @@
1
+ export { default as CopyrightControl } from "./CopyrightControl";
2
+ export { default as RoutingControl } from "./RoutingControl";
3
+ export { default as StopFinderControl } from "./StopFinderControl";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ol/controls/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,3 @@
1
+ export { default as CopyrightControl } from './CopyrightControl';
2
+ export { default as RoutingControl } from './RoutingControl';
3
+ export { default as StopFinderControl } from './StopFinderControl';
package/ol/index.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ export * from "../api";
2
+ export * from "../common";
3
+ export * from "./controls";
4
+ export * from "./layers";
5
+ export * from "./styles";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ol/index.js"],"names":[],"mappings":""}
package/ol/index.js CHANGED
@@ -1,13 +1,5 @@
1
- export { default as Layer } from './layers/Layer';
2
- export { default as MapboxLayer } from './layers/MapboxLayer';
3
- export { default as MaplibreLayer } from './layers/MaplibreLayer';
4
- export { default as MapboxStyleLayer } from './layers/MapboxStyleLayer';
5
- export { default as RoutingLayer } from './layers/RoutingLayer';
6
- export { default as TralisLayer } from './layers/TralisLayer';
7
- export { default as VectorLayer } from './layers/VectorLayer';
8
- export { default as WMSLayer } from './layers/WMSLayer';
9
- export { default as CopyrightControl } from './controls/CopyrightControl';
10
- export { default as RoutingControl } from './controls/RoutingControl';
11
- export { default as StopFinderControl } from './controls/StopFinderControl';
12
- export * from '../common/styles';
1
+ export * from '../api';
2
+ export * from '../common';
3
+ export * from './controls';
4
+ export * from './layers';
13
5
  export * from './styles';
@@ -0,0 +1,86 @@
1
+ import { Map } from 'ol';
2
+ import { EventsKey } from 'ol/events';
3
+ import LayerGroup from 'ol/layer/Group';
4
+ import OlLayer from 'ol/layer/Layer';
5
+ import LayerCommon from '../../common/layers/LayerCommon';
6
+ import type { LayerCommonOptions } from '../../common/layers/LayerCommon';
7
+ import type { UserInteractionCallback } from '../../types';
8
+ export type OlLayerOptions = LayerCommonOptions & {
9
+ olLayer?: OlLayer;
10
+ };
11
+ declare const Layer_base: typeof LayerCommon;
12
+ /**
13
+ * A class representing a layer to display on an OpenLayers map.
14
+ *
15
+ * @example
16
+ * import { Layer } from 'mobility-toolbox-js/ol';
17
+ *
18
+ * const layer = new Layer({
19
+ * olLayer: ...,
20
+ * });
21
+ *
22
+ * @see <a href="/example/ol-map">Map example</a>
23
+ *
24
+ * @classproperty {ol/Map~Map} map - The map where the layer is displayed.
25
+ * @extends {LayerCommon}
26
+ */
27
+ declare class Layer extends Layer_base {
28
+ olLayer?: OlLayer | LayerGroup;
29
+ olListenersKeys: EventsKey[];
30
+ options: OlLayerOptions;
31
+ visible: boolean;
32
+ copyrights: string[];
33
+ map?: Map;
34
+ singleClickListenerKey: EventsKey;
35
+ pointerMoveListenerKey: EventsKey;
36
+ userInteractions?: boolean;
37
+ userClickInteractions?: boolean;
38
+ userHoverInteractions?: boolean;
39
+ userClickCallbacks?: UserInteractionCallback[];
40
+ userHoverCallbacks?: UserInteractionCallback[];
41
+ onUserClickCallback: () => void;
42
+ onUserMoveCallback: () => void;
43
+ /**
44
+ * Constructor.
45
+ *
46
+ * @param {LayerCommonOptions} options
47
+ * @param {ol/layer/Layer~Layer} options.olLayer The layer (required).
48
+ * @param {string} [options.name=uuid()] Layer name. Default use a generated uuid.
49
+ * @param {string} [options.key=uuid().toLowerCase()] Layer key, will use options.name.toLowerCase() if not specified.
50
+ * @param {string} [options.copyright=undefined] Copyright-Statement.
51
+ * @param {Array<Layer>} [options.children=[]] Sublayers.
52
+ * @param {Object} [options.properties={}] Application-specific layer properties.
53
+ * @param {boolean} [options.visible=true] If true this layer is the currently visible layer on the map.
54
+ */
55
+ constructor(options: OlLayerOptions);
56
+ /**
57
+ * Define layer's properties.
58
+ *
59
+ * @ignore
60
+ */
61
+ defineProperties(options: OlLayerOptions): void;
62
+ /**
63
+ * Initialize the layer and listen to feature clicks.
64
+ * @param {ol/Map~Map} map
65
+ */
66
+ attachToMap(map: Map): void;
67
+ /**
68
+ * Terminate what was initialized in init function. Remove layer, events...
69
+ */
70
+ detachFromMap(): void;
71
+ activateUserInteractions(): void;
72
+ deactivateUserInteractions(): void;
73
+ /**
74
+ * Toggle listeners needed when a layer is avisible or not.
75
+ * @private
76
+ */
77
+ toggleVisibleListeners(): void;
78
+ /**
79
+ * Create a copy of the Layer.
80
+ * @param {Object} newOptions Options to override
81
+ * @return {Layer} A Layer
82
+ */
83
+ clone(newOptions: OlLayerOptions): Layer;
84
+ }
85
+ export default Layer;
86
+ //# sourceMappingURL=Layer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Layer.d.ts","sourceRoot":"","sources":["../../../src/ol/layers/Layer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,UAAU,MAAM,gBAAgB,CAAC;AACxC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAErC,OAAO,WAAW,MAAM,iCAAiC,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAC;AAE1E,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AAE3D,MAAM,MAAM,cAAc,GAAG,kBAAkB,GAAG;IAChD,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;;AAEF;;;;;;;;;;;;;;GAcG;AACH,cAAM,KAAM,SAAQ,UAAkC;IACpD,OAAO,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;IAE/B,eAAe,EAAG,SAAS,EAAE,CAAC;IAI9B,OAAO,EAAG,cAAc,CAAC;IAEzB,OAAO,EAAG,OAAO,CAAC;IAElB,UAAU,EAAG,MAAM,EAAE,CAAC;IAEtB,GAAG,CAAC,EAAE,GAAG,CAAC;IAEV,sBAAsB,EAAG,SAAS,CAAC;IAEnC,sBAAsB,EAAG,SAAS,CAAC;IAInC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAEhC,kBAAkB,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAE/C,kBAAkB,CAAC,EAAE,uBAAuB,EAAE,CAAC;IAE/C,mBAAmB,EAAG,MAAM,IAAI,CAAC;IAEjC,kBAAkB,EAAG,MAAM,IAAI,CAAC;IAEhC;;;;;;;;;;;OAWG;gBACS,OAAO,EAAE,cAAc;IAMnC;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,cAAc;IAUxC;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,GAAG;IAiFpB;;OAEG;IACH,aAAa;IAcb,wBAAwB;IA2BxB,0BAA0B;IAI1B;;;OAGG;IACH,sBAAsB;IAQtB;;;;OAIG;IACH,KAAK,CAAC,UAAU,EAAE,cAAc;CAGjC;AACD,eAAe,KAAK,CAAC"}
@@ -1,7 +1,6 @@
1
1
  import { unByKey } from 'ol/Observable';
2
- import Group from 'ol/layer/Group';
3
- import LayerCommon from '../../common/layers/Layer';
4
-
2
+ import LayerCommon from '../../common/layers/LayerCommon';
3
+ import userInteractionsMixin from '../../common/mixins/UserInteractionsLayerMixin';
5
4
  /**
6
5
  * A class representing a layer to display on an OpenLayers map.
7
6
  *
@@ -15,179 +14,161 @@ import LayerCommon from '../../common/layers/Layer';
15
14
  * @see <a href="/example/ol-map">Map example</a>
16
15
  *
17
16
  * @classproperty {ol/Map~Map} map - The map where the layer is displayed.
18
- * @extends {Layer}
17
+ * @extends {LayerCommon}
19
18
  */
20
- class Layer extends LayerCommon {
21
- /**
22
- * Constructor.
23
- *
24
- * @param {Object} options
25
- * @param {ol/layer/Layer~Layer} options.olLayer The layer (required).
26
- * @param {string} [options.name=uuid()] Layer name. Default use a generated uuid.
27
- * @param {string} [options.key=uuid().toLowerCase()] Layer key, will use options.name.toLowerCase() if not specified.
28
- * @param {string} [options.copyright=undefined] Copyright-Statement.
29
- * @param {Array<Layer>} [options.children=[]] Sublayers.
30
- * @param {Object} [options.properties={}] Application-specific layer properties.
31
- * @param {boolean} [options.visible=true] If true this layer is the currently visible layer on the map.
32
- * @param {boolean} [options.isBaseLayer=false] If true this layer is a baseLayer.
33
- * @param {boolean} [options.isQueryable=true] If true feature information can be queried by the react-spatial LayerService. Default is true.
34
- * @param {boolean} [options.isClickActive=true] If true feature information will be queried on 'singleclick' event. All results will be passed to function registered using `onClick` function. Default is true.
35
- */
36
- constructor(options) {
37
- super(options);
38
-
39
- if (this.olLayer) {
40
- this.olLayer.setVisible(this.visible);
19
+ class Layer extends userInteractionsMixin(LayerCommon) {
20
+ /**
21
+ * Constructor.
22
+ *
23
+ * @param {LayerCommonOptions} options
24
+ * @param {ol/layer/Layer~Layer} options.olLayer The layer (required).
25
+ * @param {string} [options.name=uuid()] Layer name. Default use a generated uuid.
26
+ * @param {string} [options.key=uuid().toLowerCase()] Layer key, will use options.name.toLowerCase() if not specified.
27
+ * @param {string} [options.copyright=undefined] Copyright-Statement.
28
+ * @param {Array<Layer>} [options.children=[]] Sublayers.
29
+ * @param {Object} [options.properties={}] Application-specific layer properties.
30
+ * @param {boolean} [options.visible=true] If true this layer is the currently visible layer on the map.
31
+ */
32
+ constructor(options) {
33
+ var _a;
34
+ super(options);
35
+ (_a = this.olLayer) === null || _a === void 0 ? void 0 : _a.setVisible(this.visible);
41
36
  }
42
- }
43
-
44
- /**
45
- * Define layer's properties.
46
- *
47
- * @ignore
48
- */
49
- defineProperties(options) {
50
- super.defineProperties(options);
51
- Object.defineProperties(this, {
52
- olLayer: { value: options.olLayer, writable: true },
53
- olListenersKeys: {
54
- value: [],
55
- },
56
- });
57
- }
58
-
59
- /**
60
- * Initialize the layer and listen to feature clicks.
61
- * @param {ol/Map~Map} map
62
- */
63
- init(map) {
64
- super.init(map);
65
-
66
- if (!this.map) {
67
- return;
37
+ /**
38
+ * Define layer's properties.
39
+ *
40
+ * @ignore
41
+ */
42
+ defineProperties(options) {
43
+ super.defineProperties(options);
44
+ Object.defineProperties(this, {
45
+ olLayer: { value: options.olLayer, writable: true },
46
+ olListenersKeys: {
47
+ value: [],
48
+ },
49
+ });
68
50
  }
69
-
70
- if (this.map && this.olLayer) {
71
- this.map.addLayer(this.olLayer);
72
- }
73
-
74
- this.olListenersKeys.push(
75
- this.map.getLayers().on('remove', (evt) => {
76
- if (evt.element === this.olLayer) {
77
- this.terminate();
51
+ /**
52
+ * Initialize the layer and listen to feature clicks.
53
+ * @param {ol/Map~Map} map
54
+ */
55
+ attachToMap(map) {
56
+ var _a, _b, _c, _d, _e;
57
+ super.attachToMap(map);
58
+ if (!this.map) {
59
+ return;
60
+ }
61
+ // Make sure the visiblity is correct
62
+ (_a = this.olLayer) === null || _a === void 0 ? void 0 : _a.setVisible(this.visible);
63
+ if (this.olLayer &&
64
+ !((_d = (_c = (_b = this.map) === null || _b === void 0 ? void 0 : _b.getLayers()) === null || _c === void 0 ? void 0 : _c.getArray()) === null || _d === void 0 ? void 0 : _d.includes(this.olLayer))) {
65
+ this.map.addLayer(this.olLayer);
66
+ }
67
+ this.olListenersKeys.push(
68
+ // @ts-ignore
69
+ this.on('change:visible', () => {
70
+ if (this.olLayer) {
71
+ this.olLayer.setVisible(this.visible);
72
+ }
73
+ }));
74
+ this.olListenersKeys.push(
75
+ // @ts-ignore
76
+ this.on('change:minZoom', () => {
77
+ if (this.olLayer && this.get('minZoom')) {
78
+ this.olLayer.setMinZoom(this.get('minZoom'));
79
+ }
80
+ }));
81
+ this.olListenersKeys.push(
82
+ // @ts-ignore
83
+ this.on('change:maxZoom', () => {
84
+ if (this.olLayer && this.get('maxZoom')) {
85
+ this.olLayer.setMaxZoom(this.get('maxZoom'));
86
+ }
87
+ }));
88
+ this.olListenersKeys.push(this.map.getLayers().on('remove', (evt) => {
89
+ if (evt.element === this.olLayer) {
90
+ this.detachFromMap();
91
+ }
92
+ }));
93
+ this.toggleVisibleListeners();
94
+ this.olListenersKeys.push(
95
+ // @ts-ignore
96
+ this.on('change:visible', this.toggleVisibleListeners));
97
+ // We set the copyright to the source used by the layer.
98
+ if (this.copyrights && this.olLayer) {
99
+ const attributions = this.copyrights || [];
100
+ if (this.olLayer.getLayers) {
101
+ this.olLayer
102
+ .getLayers()
103
+ .getArray()
104
+ .forEach((layer) => {
105
+ var _a;
106
+ // @ts-ignore
107
+ if (layer.getSource) {
108
+ // @ts-ignore
109
+ (_a = layer.getSource()) === null || _a === void 0 ? void 0 : _a.setAttributions(attributions);
110
+ }
111
+ });
112
+ // @ts-ignore
113
+ }
114
+ else if (this.olLayer.getSource) {
115
+ // @ts-ignore
116
+ (_e = this.olLayer.getSource()) === null || _e === void 0 ? void 0 : _e.setAttributions(attributions);
117
+ }
78
118
  }
79
- }),
80
- );
81
-
82
- if (this.isClickActive || this.isHoverActive) {
83
- this.toggleVisibleListeners();
84
- this.olListenersKeys.push(
85
- this.on('change:visible', this.toggleVisibleListeners),
86
- );
87
- }
88
-
89
- // We set the copyright to the source used by the layer.
90
- if (this.copyrights && this.olLayer) {
91
- const attributions = this.copyrights || [];
92
- if (this.olLayer instanceof Group) {
93
- this.olLayer
94
- .getLayers()
95
- .getArray()
96
- .forEach((layer) => {
97
- layer.getSource().setAttributions(attributions);
98
- });
99
- } else if (this.olLayer.getSource) {
100
- this.olLayer.getSource().setAttributions(attributions);
101
- }
102
119
  }
103
- }
104
-
105
- /**
106
- * Terminate what was initialized in init function. Remove layer, events...
107
- */
108
- terminate() {
109
- unByKey(this.olListenersKeys);
110
-
111
- if (this.map && this.olLayer) {
112
- this.map.removeLayer(this.olLayer);
120
+ /**
121
+ * Terminate what was initialized in init function. Remove layer, events...
122
+ */
123
+ detachFromMap() {
124
+ var _a, _b, _c;
125
+ this.deactivateUserInteractions();
126
+ unByKey(this.olListenersKeys);
127
+ if (this.olLayer &&
128
+ ((_c = (_b = (_a = this.map) === null || _a === void 0 ? void 0 : _a.getLayers()) === null || _b === void 0 ? void 0 : _b.getArray()) === null || _c === void 0 ? void 0 : _c.includes(this.olLayer))) {
129
+ this.map.removeLayer(this.olLayer);
130
+ }
131
+ super.detachFromMap();
113
132
  }
114
-
115
- super.terminate();
116
- }
117
-
118
- /**
119
- * Change the visibility of the layer
120
- *
121
- * @param {boolean} visible Defines the visibility of the layer
122
- * @param {boolean} [stopPropagationDown]
123
- * @param {boolean} [stopPropagationUp]
124
- * @param {boolean} [stopPropagationSiblings]
125
- */
126
- setVisible(
127
- visible,
128
- stopPropagationDown = false,
129
- stopPropagationUp = false,
130
- stopPropagationSiblings = false,
131
- ) {
132
- if (visible === this.visible) {
133
- return;
133
+ activateUserInteractions() {
134
+ var _a, _b;
135
+ this.deactivateUserInteractions();
136
+ if (this.map &&
137
+ this.userInteractions &&
138
+ this.userClickInteractions &&
139
+ ((_a = this.userClickCallbacks) === null || _a === void 0 ? void 0 : _a.length)) {
140
+ this.singleClickListenerKey = this.map.on('singleclick', this.onUserClickCallback);
141
+ this.olListenersKeys.push(this.singleClickListenerKey);
142
+ }
143
+ if (this.map &&
144
+ this.userInteractions &&
145
+ this.userHoverInteractions &&
146
+ ((_b = this.userHoverCallbacks) === null || _b === void 0 ? void 0 : _b.length)) {
147
+ this.pointerMoveListenerKey = this.map.on('pointermove', this.onUserMoveCallback);
148
+ }
134
149
  }
135
-
136
- super.setVisible(
137
- visible,
138
- stopPropagationDown,
139
- stopPropagationUp,
140
- stopPropagationSiblings,
141
- );
142
-
143
- if (this.olLayer) {
144
- this.olLayer.setVisible(this.visible);
150
+ deactivateUserInteractions() {
151
+ unByKey([this.pointerMoveListenerKey, this.singleClickListenerKey]);
145
152
  }
146
- }
147
-
148
- /**
149
- * Toggle listeners needed when a layer is avisible or not.
150
- * @private
151
- */
152
- toggleVisibleListeners() {
153
- // Remove previous event
154
- if (this.isClickListenerKey && this.isHoverListenerKey) {
155
- [this.isClickListenerKey, this.isHoverListenerKey].forEach((key) => {
156
- const index = this.olListenersKeys.indexOf(key);
157
- if (index > -1) {
158
- this.olListenersKeys.splice(index, 1);
153
+ /**
154
+ * Toggle listeners needed when a layer is avisible or not.
155
+ * @private
156
+ */
157
+ toggleVisibleListeners() {
158
+ if (this.visible) {
159
+ this.activateUserInteractions();
160
+ }
161
+ else {
162
+ this.deactivateUserInteractions();
159
163
  }
160
- unByKey([this.isHoverListenerKey, this.isClickListenerKey]);
161
- });
162
164
  }
163
-
164
- if (this.visible) {
165
- if (this.isClickActive) {
166
- this.isClickListenerKey = this.map.on(
167
- 'singleclick',
168
- this.onUserClickCallback,
169
- );
170
- }
171
- if (this.isHoverActive) {
172
- this.isHoverListenerKey = this.map.on(
173
- 'pointermove',
174
- this.onUserMoveCallback,
175
- );
176
- }
177
- this.olListenersKeys.push(
178
- this.isClickListenerKey,
179
- this.isHoverListenerKey,
180
- );
165
+ /**
166
+ * Create a copy of the Layer.
167
+ * @param {Object} newOptions Options to override
168
+ * @return {Layer} A Layer
169
+ */
170
+ clone(newOptions) {
171
+ return new Layer(Object.assign(Object.assign({}, this.options), newOptions));
181
172
  }
182
- }
183
-
184
- /**
185
- * Create a copy of the Layer.
186
- * @param {Object} newOptions Options to override
187
- * @return {Layer} A Layer
188
- */
189
- clone(newOptions) {
190
- return new Layer({ ...this.options, ...newOptions });
191
- }
192
173
  }
193
174
  export default Layer;
@@ -0,0 +1,67 @@
1
+ /// <reference types="mapbox-gl" />
2
+ import { RenderFunction } from 'ol/layer/Layer';
3
+ import GeoJSON from 'ol/format/GeoJSON';
4
+ import OlMap from 'ol/Map';
5
+ import { Coordinate } from 'ol/coordinate';
6
+ import { AnyMapboxMap, AnyMapboxMapClass, LayerGetFeatureInfoResponse } from '../../types';
7
+ import Layer, { OlLayerOptions } from './Layer';
8
+ export type MapGlLayerOptions = OlLayerOptions & {
9
+ url?: string;
10
+ apiKey?: string;
11
+ apiKeyName?: string;
12
+ mapOptions?: any;
13
+ tabIndex?: number;
14
+ };
15
+ /**
16
+ * Common class for Mapbox and Maplibre and potential other fork from Mapbox.
17
+ * It's used to share code between Mapbox and Maplibre layers without importing both libs.
18
+ */
19
+ declare class MapGlLayer extends Layer {
20
+ mbMap?: AnyMapboxMap;
21
+ styleUrl?: string;
22
+ apiKey?: string;
23
+ apiKeyName: string;
24
+ format: GeoJSON;
25
+ loaded: boolean;
26
+ options: MapGlLayerOptions;
27
+ constructor(options: MapGlLayerOptions);
28
+ /**
29
+ * Initialize the layer and listen to feature clicks.
30
+ * @param {ol/Map~Map} map
31
+ */
32
+ attachToMap(map: OlMap): void;
33
+ /**
34
+ * Terminate what was initialized in init function. Remove layer, events...
35
+ */
36
+ detachFromMap(): void;
37
+ /**
38
+ * Create the mapbox map.
39
+ * @private
40
+ */
41
+ loadMbMap(): void;
42
+ /**
43
+ * Update attributions of the source.
44
+ * @private
45
+ */
46
+ updateAttribution(evt: maplibregl.MapLibreEvent | mapboxgl.MapboxEvent): void;
47
+ /**
48
+ * Request feature information for a given coordinate.
49
+ * @param {ol/coordinate~Coordinate} coordinate Coordinate to request the information at.
50
+ * @param {Object} options A [mapboxgl.Map#queryrenderedfeatures](https://docs.mapbox.com/mapbox-gl-js/api/map/#map#queryrenderedfeatures) options parameter.
51
+ * @return {Promise<FeatureInfo>} Promise with features, layer and coordinate. The original Mapbox feature is available as a property named 'mapboxFeature'.
52
+ */
53
+ getFeatureInfoAtCoordinate(coordinate: Coordinate, options: any): Promise<LayerGetFeatureInfoResponse>;
54
+ /**
55
+ * Return the render function function for the ol layer.
56
+ *
57
+ */
58
+ getOlLayerRender(): RenderFunction;
59
+ /**
60
+ * Return the Class to instanciate for the mapbox map.
61
+ *
62
+ * @return {mapboxgl.Map|maplibregl.Map} map
63
+ */
64
+ getMapboxMapClass(): AnyMapboxMapClass;
65
+ }
66
+ export default MapGlLayer;
67
+ //# sourceMappingURL=MapGlLayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapGlLayer.d.ts","sourceRoot":"","sources":["../../../src/ol/layers/MapGlLayer.ts"],"names":[],"mappings":";AAEA,OAAgB,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEzD,OAAO,OAAO,MAAM,mBAAmB,CAAC;AACxC,OAAO,KAAK,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAG3C,OAAO,EACL,YAAY,EACZ,iBAAiB,EACjB,2BAA2B,EAC5B,MAAM,aAAa,CAAC;AACrB,OAAO,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEhD,MAAM,MAAM,iBAAiB,GAAG,cAAc,GAAG;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF;;;GAGG;AACH,cAAM,UAAW,SAAQ,KAAK;IAC5B,KAAK,CAAC,EAAE,YAAY,CAAC;IAErB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,UAAU,EAAG,MAAM,CAAC;IAEpB,MAAM,EAAG,OAAO,CAAC;IAEjB,MAAM,EAAG,OAAO,CAAC;IAEjB,OAAO,EAAG,iBAAiB,CAAC;gBAEhB,OAAO,EAAE,iBAAiB;IAmCtC;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,KAAK;IAkBtB;;OAEG;IACH,aAAa;IAab;;;OAGG;IACH,SAAS;IAuET;;;OAGG;IACH,iBAAiB,CAAC,GAAG,EAAE,UAAU,CAAC,aAAa,GAAG,QAAQ,CAAC,WAAW;IAStE;;;;;OAKG;IACH,0BAA0B,CACxB,UAAU,EAAE,UAAU,EACtB,OAAO,EAAE,GAAG,GACX,OAAO,CAAC,2BAA2B,CAAC;IAqDvC;;;OAGG;IAEH,gBAAgB,IAAI,cAAc;IAOlC;;;;OAIG;IAEH,iBAAiB,IAAI,iBAAiB;CAMvC;AAED,eAAe,UAAU,CAAC"}