mobility-toolbox-js 2.0.0-beta.6 → 2.0.0-beta.60

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 (487) hide show
  1. package/README.md +29 -8
  2. package/api/RealtimeAPI.d.ts +279 -0
  3. package/api/RealtimeAPI.d.ts.map +1 -0
  4. package/api/RealtimeAPI.js +462 -0
  5. package/api/RoutingAPI.d.ts +37 -0
  6. package/api/RoutingAPI.d.ts.map +1 -0
  7. package/api/RoutingAPI.js +35 -0
  8. package/api/StopsAPI.d.ts +38 -0
  9. package/api/StopsAPI.d.ts.map +1 -0
  10. package/api/StopsAPI.js +36 -0
  11. package/api/index.d.ts +4 -0
  12. package/api/index.d.ts.map +1 -0
  13. package/api/index.js +3 -0
  14. package/api/typedefs.d.ts +179 -0
  15. package/api/typedefs.d.ts.map +1 -0
  16. package/{src/api/tralis → api}/typedefs.js +4 -10
  17. package/common/api/HttpAPI.d.ts +31 -0
  18. package/common/api/HttpAPI.d.ts.map +1 -0
  19. package/common/api/HttpAPI.js +57 -0
  20. package/common/api/WebSocketAPI.d.ts +153 -0
  21. package/common/api/WebSocketAPI.d.ts.map +1 -0
  22. package/common/api/WebSocketAPI.js +328 -0
  23. package/common/controls/ControlCommon.d.ts +76 -0
  24. package/common/controls/ControlCommon.d.ts.map +1 -0
  25. package/common/controls/ControlCommon.js +150 -0
  26. package/common/controls/CopyrightControlCommon.d.ts +13 -0
  27. package/common/controls/CopyrightControlCommon.d.ts.map +1 -0
  28. package/common/controls/CopyrightControlCommon.js +34 -0
  29. package/common/controls/StopFinderControlCommon.d.ts +55 -0
  30. package/common/controls/StopFinderControlCommon.d.ts.map +1 -0
  31. package/common/controls/StopFinderControlCommon.js +144 -0
  32. package/common/index.d.ts +3 -0
  33. package/common/index.d.ts.map +1 -0
  34. package/common/index.js +2 -0
  35. package/common/layers/LayerCommon.d.ts +94 -0
  36. package/common/layers/LayerCommon.d.ts.map +1 -0
  37. package/common/layers/LayerCommon.js +244 -0
  38. package/common/mixins/RealtimeLayerMixin.d.ts +289 -0
  39. package/common/mixins/RealtimeLayerMixin.d.ts.map +1 -0
  40. package/common/mixins/RealtimeLayerMixin.js +746 -0
  41. package/common/mixins/UserInteractionsLayerMixin.d.ts +60 -0
  42. package/common/mixins/UserInteractionsLayerMixin.d.ts.map +1 -0
  43. package/common/mixins/UserInteractionsLayerMixin.js +241 -0
  44. package/common/styles/index.d.ts +5 -0
  45. package/common/styles/index.d.ts.map +1 -0
  46. package/common/styles/index.js +4 -0
  47. package/common/styles/realtimeDefaultStyle.d.ts +36 -0
  48. package/common/styles/realtimeDefaultStyle.d.ts.map +1 -0
  49. package/common/styles/realtimeDefaultStyle.js +261 -0
  50. package/{src/common/styles/trackerDelayStyle.js → common/styles/realtimeDelayStyle.d.ts} +4 -9
  51. package/common/styles/realtimeDelayStyle.d.ts.map +1 -0
  52. package/common/styles/realtimeDelayStyle.js +13 -0
  53. package/common/styles/realtimeSimpleStyle.d.ts +4 -0
  54. package/common/styles/realtimeSimpleStyle.d.ts.map +1 -0
  55. package/common/styles/realtimeSimpleStyle.js +24 -0
  56. package/common/typedefs.d.ts +111 -0
  57. package/common/typedefs.d.ts.map +1 -0
  58. package/common/typedefs.js +52 -0
  59. package/common/utils/compareDepartures.d.ts +11 -0
  60. package/common/utils/compareDepartures.d.ts.map +1 -0
  61. package/common/utils/compareDepartures.js +35 -0
  62. package/common/utils/createCanvas.d.ts +10 -0
  63. package/common/utils/createCanvas.d.ts.map +1 -0
  64. package/common/utils/createCanvas.js +27 -0
  65. package/common/utils/createRealtimeFilters.d.ts +13 -0
  66. package/common/utils/createRealtimeFilters.d.ts.map +1 -0
  67. package/common/utils/createRealtimeFilters.js +74 -0
  68. package/common/utils/debounceDeparturesMessages.d.ts +12 -0
  69. package/common/utils/debounceDeparturesMessages.d.ts.map +1 -0
  70. package/common/utils/debounceDeparturesMessages.js +24 -0
  71. package/common/utils/debounceWebsocketMessages.d.ts +11 -0
  72. package/common/utils/debounceWebsocketMessages.d.ts.map +1 -0
  73. package/common/utils/debounceWebsocketMessages.js +29 -0
  74. package/common/utils/getLayersAsFlatArray.d.ts +3 -0
  75. package/common/utils/getLayersAsFlatArray.d.ts.map +1 -0
  76. package/common/utils/getLayersAsFlatArray.js +15 -0
  77. package/common/utils/getMapboxMapCopyrights.d.ts +18 -0
  78. package/common/utils/getMapboxMapCopyrights.d.ts.map +1 -0
  79. package/common/utils/getMapboxMapCopyrights.js +30 -0
  80. package/common/utils/getMapboxRender.d.ts +7 -0
  81. package/common/utils/getMapboxRender.d.ts.map +1 -0
  82. package/common/utils/getMapboxRender.js +87 -0
  83. package/common/utils/getMaplibreRender.d.ts +7 -0
  84. package/common/utils/getMaplibreRender.d.ts.map +1 -0
  85. package/common/utils/getMaplibreRender.js +38 -0
  86. package/common/utils/getRealtimeModeSuffix.d.ts +10 -0
  87. package/common/utils/getRealtimeModeSuffix.d.ts.map +1 -0
  88. package/common/utils/getRealtimeModeSuffix.js +7 -0
  89. package/common/utils/getUrlWithParams.d.ts +9 -0
  90. package/common/utils/getUrlWithParams.d.ts.map +1 -0
  91. package/common/utils/getUrlWithParams.js +18 -0
  92. package/common/utils/getVehiclePosition.d.ts +16 -0
  93. package/common/utils/getVehiclePosition.d.ts.map +1 -0
  94. package/common/utils/getVehiclePosition.js +63 -0
  95. package/common/utils/index.d.ts +16 -0
  96. package/common/utils/index.d.ts.map +1 -0
  97. package/common/utils/index.js +16 -0
  98. package/common/utils/realtimeConfig.d.ts +49 -0
  99. package/common/utils/realtimeConfig.d.ts.map +1 -0
  100. package/common/utils/realtimeConfig.js +173 -0
  101. package/common/utils/removeDuplicate.d.ts +10 -0
  102. package/common/utils/removeDuplicate.d.ts.map +1 -0
  103. package/common/utils/removeDuplicate.js +15 -0
  104. package/common/utils/renderTrajectories.d.ts +17 -0
  105. package/common/utils/renderTrajectories.d.ts.map +1 -0
  106. package/common/utils/renderTrajectories.js +121 -0
  107. package/common/utils/sortAndFilterDepartures.d.ts +16 -0
  108. package/common/utils/sortAndFilterDepartures.d.ts.map +1 -0
  109. package/common/utils/sortAndFilterDepartures.js +58 -0
  110. package/common/utils/sortByDelay.d.ts +3 -0
  111. package/common/utils/sortByDelay.d.ts.map +1 -0
  112. package/common/utils/sortByDelay.js +20 -0
  113. package/common/utils/timeUtils.d.ts +24 -0
  114. package/common/utils/timeUtils.d.ts.map +1 -0
  115. package/{src/common → common}/utils/timeUtils.js +13 -18
  116. package/iife.d.ts +3 -0
  117. package/iife.d.ts.map +1 -0
  118. package/{src/iife.js → iife.js} +2 -4
  119. package/index.d.ts +10 -0
  120. package/index.d.ts.map +1 -0
  121. package/index.js +10 -0
  122. package/mapbox/controls/CopyrightControl.d.ts +29 -0
  123. package/mapbox/controls/CopyrightControl.d.ts.map +1 -0
  124. package/mapbox/controls/CopyrightControl.js +48 -0
  125. package/mapbox/controls/index.d.ts +2 -0
  126. package/mapbox/controls/index.d.ts.map +1 -0
  127. package/mapbox/controls/index.js +2 -0
  128. package/mapbox/index.d.ts +6 -0
  129. package/mapbox/index.d.ts.map +1 -0
  130. package/mapbox/index.js +5 -0
  131. package/mapbox/layers/Layer.d.ts +59 -0
  132. package/mapbox/layers/Layer.d.ts.map +1 -0
  133. package/mapbox/layers/Layer.js +101 -0
  134. package/mapbox/layers/RealtimeLayer.d.ts +180 -0
  135. package/mapbox/layers/RealtimeLayer.d.ts.map +1 -0
  136. package/mapbox/layers/RealtimeLayer.js +276 -0
  137. package/mapbox/layers/index.d.ts +3 -0
  138. package/mapbox/layers/index.d.ts.map +1 -0
  139. package/mapbox/layers/index.js +2 -0
  140. package/mapbox/utils/getMercatorResolution.d.ts +9 -0
  141. package/mapbox/utils/getMercatorResolution.d.ts.map +1 -0
  142. package/mapbox/utils/getMercatorResolution.js +18 -0
  143. package/mapbox/utils/getSourceCoordinates.d.ts +9 -0
  144. package/mapbox/utils/getSourceCoordinates.d.ts.map +1 -0
  145. package/mapbox/utils/getSourceCoordinates.js +27 -0
  146. package/mapbox/utils/index.d.ts +3 -0
  147. package/mapbox/utils/index.d.ts.map +1 -0
  148. package/mapbox/utils/index.js +2 -0
  149. package/mbt.js +50785 -0
  150. package/mbt.js.map +7 -0
  151. package/mbt.min.js +1083 -0
  152. package/mbt.min.js.map +7 -0
  153. package/ol/controls/CopyrightControl.d.ts +31 -0
  154. package/ol/controls/CopyrightControl.d.ts.map +1 -0
  155. package/ol/controls/CopyrightControl.js +68 -0
  156. package/ol/controls/RoutingControl.d.ts +193 -0
  157. package/ol/controls/RoutingControl.d.ts.map +1 -0
  158. package/ol/controls/RoutingControl.js +632 -0
  159. package/ol/controls/StopFinderControl.d.ts +30 -0
  160. package/ol/controls/StopFinderControl.d.ts.map +1 -0
  161. package/{src/ol → ol}/controls/StopFinderControl.js +10 -16
  162. package/ol/controls/index.d.ts +4 -0
  163. package/ol/controls/index.d.ts.map +1 -0
  164. package/ol/controls/index.js +3 -0
  165. package/ol/index.d.ts +6 -0
  166. package/ol/index.d.ts.map +1 -0
  167. package/ol/index.js +5 -0
  168. package/ol/layers/Layer.d.ts +86 -0
  169. package/ol/layers/Layer.d.ts.map +1 -0
  170. package/ol/layers/Layer.js +159 -0
  171. package/ol/layers/MapGlLayer.d.ts +67 -0
  172. package/ol/layers/MapGlLayer.d.ts.map +1 -0
  173. package/ol/layers/MapGlLayer.js +218 -0
  174. package/ol/layers/MapboxLayer.d.ts +50 -0
  175. package/ol/layers/MapboxLayer.d.ts.map +1 -0
  176. package/ol/layers/MapboxLayer.js +109 -0
  177. package/ol/layers/MapboxStyleLayer.d.ts +129 -0
  178. package/ol/layers/MapboxStyleLayer.d.ts.map +1 -0
  179. package/ol/layers/MapboxStyleLayer.js +374 -0
  180. package/ol/layers/MaplibreLayer.d.ts +28 -0
  181. package/ol/layers/MaplibreLayer.d.ts.map +1 -0
  182. package/ol/layers/MaplibreLayer.js +34 -0
  183. package/ol/layers/RealtimeLayer.d.ts +201 -0
  184. package/ol/layers/RealtimeLayer.d.ts.map +1 -0
  185. package/ol/layers/RealtimeLayer.js +310 -0
  186. package/ol/layers/RoutingLayer.d.ts +34 -0
  187. package/ol/layers/RoutingLayer.d.ts.map +1 -0
  188. package/ol/layers/RoutingLayer.js +85 -0
  189. package/ol/layers/VectorLayer.d.ts +25 -0
  190. package/ol/layers/VectorLayer.d.ts.map +1 -0
  191. package/ol/layers/VectorLayer.js +38 -0
  192. package/ol/layers/WMSLayer.d.ts +42 -0
  193. package/ol/layers/WMSLayer.d.ts.map +1 -0
  194. package/ol/layers/WMSLayer.js +88 -0
  195. package/ol/layers/index.d.ts +9 -0
  196. package/ol/layers/index.d.ts.map +1 -0
  197. package/ol/layers/index.js +8 -0
  198. package/ol/styles/fullTrajectoryDelayStyle.d.ts +4 -0
  199. package/ol/styles/fullTrajectoryDelayStyle.d.ts.map +1 -0
  200. package/ol/styles/fullTrajectoryDelayStyle.js +33 -0
  201. package/ol/styles/fullTrajectoryStyle.d.ts +5 -0
  202. package/ol/styles/fullTrajectoryStyle.d.ts.map +1 -0
  203. package/ol/styles/fullTrajectoryStyle.js +44 -0
  204. package/ol/styles/index.d.ts +3 -0
  205. package/ol/styles/index.d.ts.map +1 -0
  206. package/{src/ol → ol}/styles/index.js +0 -0
  207. package/package.json +71 -126
  208. package/setupTests.d.ts +2 -0
  209. package/setupTests.d.ts.map +1 -0
  210. package/{src/setupTests.js → setupTests.js} +0 -2
  211. package/types/common.d.ts +118 -0
  212. package/types/index.d.ts +11 -0
  213. package/types/realtime.d.ts +315 -0
  214. package/types/routing.d.ts +206 -0
  215. package/types/stops.d.ts +143 -0
  216. package/.babelrc +0 -6
  217. package/.esdoc.json +0 -17
  218. package/.eslintignore +0 -1
  219. package/.github/workflows/conventional-pr-title.yml +0 -21
  220. package/.github/workflows/cypress.yml +0 -29
  221. package/.github/workflows/nodejs.yml +0 -28
  222. package/.husky/commit-msg +0 -4
  223. package/.husky/post-checkout +0 -4
  224. package/.husky/post-merge +0 -4
  225. package/.husky/post-rebase +0 -4
  226. package/.husky/pre-commit +0 -4
  227. package/.neutrinorc.js +0 -176
  228. package/.nvmrc +0 -1
  229. package/CHANGELOG.md +0 -10
  230. package/LICENSE +0 -21
  231. package/Layer.js +0 -2
  232. package/Layer.js.map +0 -7
  233. package/__mocks__/mapbox-gl.js +0 -81
  234. package/__mocks__/maplibre-gl.js +0 -81
  235. package/commitlint.config.js +0 -1
  236. package/cypress/fixtures/example.json +0 -5
  237. package/cypress/integration/examples/api.spec.js +0 -7
  238. package/cypress/integration/examples/examples.spec.js +0 -7
  239. package/cypress/integration/examples/navigation.spec.js +0 -29
  240. package/cypress/plugins/index.js +0 -21
  241. package/cypress/support/commands.js +0 -25
  242. package/cypress/support/index.js +0 -20
  243. package/cypress.json +0 -4
  244. package/data/fetchRoute.json +0 -292
  245. package/data/fetchTrajectories.json +0 -18
  246. package/data/fetchTrajectoryById.json +0 -3
  247. package/data/fetchTrajectoryStations.json +0 -18
  248. package/data/stopsSearch.json +0 -15
  249. package/documentation.yml +0 -4
  250. package/esdoc/README.md +0 -27
  251. package/esdoc/plugins/MyPlugin.js +0 -69
  252. package/esdoc/plugins/dynamic-property-plugin/Plugin.js +0 -50
  253. package/esdoc/plugins/externals-plugin/Plugin.js +0 -45
  254. package/esdoc/plugins/externals-plugin/externals.js +0 -96
  255. package/global-setup.js +0 -3
  256. package/index.html +0 -0
  257. package/indexweb.html +0 -49
  258. package/jest.config.js +0 -5
  259. package/pull_request_template.md +0 -17
  260. package/renovate.json +0 -4
  261. package/scripts/read-pkg-json.js +0 -22
  262. package/src/api/index.js +0 -3
  263. package/src/api/routing/RoutingAPI.js +0 -44
  264. package/src/api/routing/RoutingAPI.test.js +0 -41
  265. package/src/api/stops/StopsAPI.js +0 -41
  266. package/src/api/stops/StopsAPI.test.js +0 -34
  267. package/src/api/tralis/TralisAPI.js +0 -731
  268. package/src/api/tralis/TralisAPI.test.js +0 -75
  269. package/src/api/tralis/TralisAPIUtils.js +0 -73
  270. package/src/api/tralis/WebSocketConnector.js +0 -338
  271. package/src/api/tralis/WebSocketConnector.test.js +0 -356
  272. package/src/assets/Lato-Black.ttf +0 -0
  273. package/src/assets/Lato-BlackItalic.ttf +0 -0
  274. package/src/assets/Lato-Bold.ttf +0 -0
  275. package/src/assets/Lato-BoldItalic.ttf +0 -0
  276. package/src/assets/Lato-Italic.ttf +0 -0
  277. package/src/assets/Lato-Light.ttf +0 -0
  278. package/src/assets/Lato-LightItalic.ttf +0 -0
  279. package/src/assets/Lato-Regular.ttf +0 -0
  280. package/src/assets/Lato-Thin.ttf +0 -0
  281. package/src/assets/Lato-ThinItalic.ttf +0 -0
  282. package/src/assets/OFL.txt +0 -93
  283. package/src/common/Tracker.js +0 -197
  284. package/src/common/api/api.js +0 -64
  285. package/src/common/api/api.test.js +0 -68
  286. package/src/common/controls/Control.js +0 -146
  287. package/src/common/controls/Control.test.js +0 -98
  288. package/src/common/layers/Layer.js +0 -404
  289. package/src/common/layers/Layer.test.js +0 -585
  290. package/src/common/mixins/CopyrightMixin.js +0 -48
  291. package/src/common/mixins/SearchMixin.js +0 -176
  292. package/src/common/mixins/TralisLayerMixin.js +0 -930
  293. package/src/common/styles/index.js +0 -4
  294. package/src/common/styles/trackerDefaultStyle.js +0 -333
  295. package/src/common/styles/trackerSimpleStyle.js +0 -22
  296. package/src/common/trackerConfig.js +0 -190
  297. package/src/common/trackerConfig.test.js +0 -25
  298. package/src/common/typedefs.js +0 -23
  299. package/src/common/utils/createTrackerFilters.js +0 -87
  300. package/src/common/utils/createTrackerFilters.test.js +0 -95
  301. package/src/common/utils/getMapboxMapCopyrights.js +0 -32
  302. package/src/common/utils/getMapboxMapCopyrights.test.js +0 -47
  303. package/src/common/utils/getMapboxStyleUrl.js +0 -32
  304. package/src/common/utils/getVehiclePosition.js +0 -72
  305. package/src/common/utils/index.js +0 -6
  306. package/src/common/utils/removeDuplicate.js +0 -22
  307. package/src/common/utils/removeDuplicate.test.js +0 -22
  308. package/src/common/utils/sortByDelay.js +0 -23
  309. package/src/common/utils/timeUtils.test.js +0 -16
  310. package/src/doc/App.js +0 -116
  311. package/src/doc/App.scss +0 -51
  312. package/src/doc/_redirects +0 -2
  313. package/src/doc/components/CodeSandboxButton.js +0 -103
  314. package/src/doc/components/Documentation.js +0 -40
  315. package/src/doc/components/Esdoc/Anchor.js +0 -57
  316. package/src/doc/components/Esdoc/ClassDoc.js +0 -272
  317. package/src/doc/components/Esdoc/DeprecatedHTML.js +0 -16
  318. package/src/doc/components/Esdoc/DetailDocs.js +0 -281
  319. package/src/doc/components/Esdoc/DetailHTML.js +0 -33
  320. package/src/doc/components/Esdoc/DirectSubclassHTML.js +0 -30
  321. package/src/doc/components/Esdoc/DocBuilderUtils.js +0 -694
  322. package/src/doc/components/Esdoc/DocLinkHTML.js +0 -62
  323. package/src/doc/components/Esdoc/DocsLinkHTML.js +0 -38
  324. package/src/doc/components/Esdoc/Esdoc.js +0 -63
  325. package/src/doc/components/Esdoc/EsdocContent.js +0 -51
  326. package/src/doc/components/Esdoc/EsdocNavigation.js +0 -13
  327. package/src/doc/components/Esdoc/EsdocSearch.js +0 -81
  328. package/src/doc/components/Esdoc/ExperimentalHTML.js +0 -17
  329. package/src/doc/components/Esdoc/ExtendsChainHTML.js +0 -32
  330. package/src/doc/components/Esdoc/FileDocLinkHTML.js +0 -60
  331. package/src/doc/components/Esdoc/IdentifiersDoc.js +0 -113
  332. package/src/doc/components/Esdoc/IndirectSubclassHTML.js +0 -30
  333. package/src/doc/components/Esdoc/InheritedSummaryDoc.js +0 -70
  334. package/src/doc/components/Esdoc/InheritedSummaryHTML.js +0 -38
  335. package/src/doc/components/Esdoc/MixinClassesHTML.js +0 -29
  336. package/src/doc/components/Esdoc/NavDoc.js +0 -112
  337. package/src/doc/components/Esdoc/OverrideMethod.js +0 -44
  338. package/src/doc/components/Esdoc/OverrideMethodDescription.js +0 -35
  339. package/src/doc/components/Esdoc/Properties.js +0 -89
  340. package/src/doc/components/Esdoc/README.md +0 -45
  341. package/src/doc/components/Esdoc/SignatureHTML.js +0 -123
  342. package/src/doc/components/Esdoc/SingleDoc.js +0 -31
  343. package/src/doc/components/Esdoc/SummaryDoc.js +0 -160
  344. package/src/doc/components/Esdoc/SummaryHTML.js +0 -96
  345. package/src/doc/components/Esdoc/TypeDocLinkHTML.js +0 -249
  346. package/src/doc/components/Esdoc/css/identifiers.css +0 -38
  347. package/src/doc/components/Esdoc/css/search.css +0 -76
  348. package/src/doc/components/Esdoc/css/style.css +0 -603
  349. package/src/doc/components/Esdoc/index.js +0 -7
  350. package/src/doc/components/Example.js +0 -153
  351. package/src/doc/components/Examples.js +0 -183
  352. package/src/doc/components/Home.js +0 -106
  353. package/src/doc/components/TrackerExample.js +0 -38
  354. package/src/doc/components/esm.min.js +0 -2
  355. package/src/doc/components/examples/assets/tralis-live-map/index.js +0 -11
  356. package/src/doc/components/examples/assets/tralis-live-map/s1kreis.svg +0 -105
  357. package/src/doc/components/examples/assets/tralis-live-map/s20kreis.svg +0 -101
  358. package/src/doc/components/examples/assets/tralis-live-map/s2kreis.svg +0 -95
  359. package/src/doc/components/examples/assets/tralis-live-map/s3kreis.svg +0 -95
  360. package/src/doc/components/examples/assets/tralis-live-map/s4kreis.svg +0 -95
  361. package/src/doc/components/examples/assets/tralis-live-map/s6kreis.svg +0 -95
  362. package/src/doc/components/examples/assets/tralis-live-map/s7kreis.svg +0 -95
  363. package/src/doc/components/examples/assets/tralis-live-map/s8kreis.svg +0 -93
  364. package/src/doc/components/examples/assets/tralis-live-map/unknown.svg +0 -107
  365. package/src/doc/components/examples/mb-copyright.html +0 -26
  366. package/src/doc/components/examples/mb-copyright.js +0 -37
  367. package/src/doc/components/examples/mb-tracker.html +0 -1
  368. package/src/doc/components/examples/mb-tracker.js +0 -39
  369. package/src/doc/components/examples/mb-tracker.md +0 -1
  370. package/src/doc/components/examples/mb-tralis.html +0 -1
  371. package/src/doc/components/examples/mb-tralis.js +0 -34
  372. package/src/doc/components/examples/ol-copyright.html +0 -26
  373. package/src/doc/components/examples/ol-copyright.js +0 -43
  374. package/src/doc/components/examples/ol-mapbox-layer.html +0 -1
  375. package/src/doc/components/examples/ol-mapbox-layer.js +0 -28
  376. package/src/doc/components/examples/ol-mapbox-layer.md +0 -0
  377. package/src/doc/components/examples/ol-mapbox-style-layer.html +0 -12
  378. package/src/doc/components/examples/ol-mapbox-style-layer.js +0 -44
  379. package/src/doc/components/examples/ol-query.html +0 -32
  380. package/src/doc/components/examples/ol-query.js +0 -83
  381. package/src/doc/components/examples/ol-routing.html +0 -26
  382. package/src/doc/components/examples/ol-routing.js +0 -59
  383. package/src/doc/components/examples/ol-routing.md +0 -1
  384. package/src/doc/components/examples/ol-stop-finder.html +0 -15
  385. package/src/doc/components/examples/ol-stop-finder.js +0 -31
  386. package/src/doc/components/examples/ol-stop-finder.md +0 -1
  387. package/src/doc/components/examples/ol-tracker.html +0 -1
  388. package/src/doc/components/examples/ol-tracker.js +0 -44
  389. package/src/doc/components/examples/ol-tracker.md +0 -1
  390. package/src/doc/components/examples/ol-tralis.html +0 -5
  391. package/src/doc/components/examples/ol-tralis.js +0 -57
  392. package/src/doc/components/examples/tralis-live-map.html +0 -1
  393. package/src/doc/components/examples/tralis-live-map.js +0 -51
  394. package/src/doc/components/examples/tralis-live-map.md +0 -3
  395. package/src/doc/examples/assets/tralis-live-map/index.js +0 -11
  396. package/src/doc/examples/assets/tralis-live-map/s1kreis.svg +0 -105
  397. package/src/doc/examples/assets/tralis-live-map/s20kreis.svg +0 -101
  398. package/src/doc/examples/assets/tralis-live-map/s2kreis.svg +0 -95
  399. package/src/doc/examples/assets/tralis-live-map/s3kreis.svg +0 -95
  400. package/src/doc/examples/assets/tralis-live-map/s4kreis.svg +0 -95
  401. package/src/doc/examples/assets/tralis-live-map/s6kreis.svg +0 -95
  402. package/src/doc/examples/assets/tralis-live-map/s7kreis.svg +0 -95
  403. package/src/doc/examples/assets/tralis-live-map/s8kreis.svg +0 -93
  404. package/src/doc/examples/assets/tralis-live-map/unknown.svg +0 -107
  405. package/src/doc/examples/mb-copyright.html +0 -26
  406. package/src/doc/examples/mb-copyright.js +0 -37
  407. package/src/doc/examples/mb-tracker.html +0 -1
  408. package/src/doc/examples/mb-tracker.js +0 -39
  409. package/src/doc/examples/mb-tracker.md +0 -1
  410. package/src/doc/examples/mb-tralis.html +0 -1
  411. package/src/doc/examples/mb-tralis.js +0 -34
  412. package/src/doc/examples/ol-copyright.html +0 -26
  413. package/src/doc/examples/ol-copyright.js +0 -43
  414. package/src/doc/examples/ol-mapbox-layer.html +0 -1
  415. package/src/doc/examples/ol-mapbox-layer.js +0 -28
  416. package/src/doc/examples/ol-mapbox-layer.md +0 -0
  417. package/src/doc/examples/ol-mapbox-style-layer.html +0 -12
  418. package/src/doc/examples/ol-mapbox-style-layer.js +0 -44
  419. package/src/doc/examples/ol-query.html +0 -32
  420. package/src/doc/examples/ol-query.js +0 -83
  421. package/src/doc/examples/ol-routing.html +0 -26
  422. package/src/doc/examples/ol-routing.js +0 -59
  423. package/src/doc/examples/ol-routing.md +0 -1
  424. package/src/doc/examples/ol-stop-finder.html +0 -15
  425. package/src/doc/examples/ol-stop-finder.js +0 -31
  426. package/src/doc/examples/ol-stop-finder.md +0 -1
  427. package/src/doc/examples/ol-tracker.html +0 -1
  428. package/src/doc/examples/ol-tracker.js +0 -44
  429. package/src/doc/examples/ol-tracker.md +0 -1
  430. package/src/doc/examples/ol-tralis.html +0 -5
  431. package/src/doc/examples/ol-tralis.js +0 -57
  432. package/src/doc/examples/tralis-live-map.html +0 -1
  433. package/src/doc/examples/tralis-live-map.js +0 -51
  434. package/src/doc/examples/tralis-live-map.md +0 -3
  435. package/src/doc/examples.js +0 -107
  436. package/src/doc/img/examples/live_tracker_mb.jpg +0 -0
  437. package/src/doc/img/examples/live_tracker_munich.jpg +0 -0
  438. package/src/doc/img/examples/live_tracker_ol.jpg +0 -0
  439. package/src/doc/img/examples/mapbox.jpg +0 -0
  440. package/src/doc/img/examples/mapbox_style.jpg +0 -0
  441. package/src/doc/img/examples/ol-copyright.png +0 -0
  442. package/src/doc/img/examples/query_objects.jpg +0 -0
  443. package/src/doc/img/examples/routing.jpg +0 -0
  444. package/src/doc/img/examples/simple_map.jpg +0 -0
  445. package/src/doc/img/examples/stops.jpg +0 -0
  446. package/src/doc/img/favico.ico +0 -0
  447. package/src/doc/index.js +0 -21
  448. package/src/index.js +0 -25
  449. package/src/mapbox/controls/CopyrightControl.js +0 -58
  450. package/src/mapbox/index.js +0 -3
  451. package/src/mapbox/layers/Layer.js +0 -118
  452. package/src/mapbox/layers/Layer.test.js +0 -202
  453. package/src/mapbox/layers/TralisLayer.js +0 -329
  454. package/src/mapbox/layers/TralisLayer.test.js +0 -40
  455. package/src/mapbox/utils.js +0 -46
  456. package/src/ol/README.md +0 -0
  457. package/src/ol/controls/CopyrightControl.js +0 -80
  458. package/src/ol/controls/CopyrightControl.test.js +0 -211
  459. package/src/ol/controls/RoutingControl.js +0 -752
  460. package/src/ol/controls/RoutingControl.test.js +0 -216
  461. package/src/ol/controls/StopFinderControl.test.js +0 -59
  462. package/src/ol/controls/snapshots/RoutingControlRouteGen10.json +0 -58
  463. package/src/ol/controls/snapshots/RoutingControlRouteGen100.json +0 -292
  464. package/src/ol/controls/snapshots/RoutingControlRouteGen30.json +0 -69
  465. package/src/ol/controls/snapshots/RoutingControlRouteGen5.json +0 -58
  466. package/src/ol/controls/snapshots/RoutingControlRouteOSM.json +0 -759
  467. package/src/ol/controls/snapshots/RoutingControlStation1.json +0 -60
  468. package/src/ol/controls/snapshots/RoutingControlStation2.json +0 -49
  469. package/src/ol/index.js +0 -13
  470. package/src/ol/layers/Layer.js +0 -193
  471. package/src/ol/layers/Layer.test.js +0 -197
  472. package/src/ol/layers/MapboxLayer.js +0 -378
  473. package/src/ol/layers/MapboxLayer.test.js +0 -186
  474. package/src/ol/layers/MapboxStyleLayer.js +0 -417
  475. package/src/ol/layers/MapboxStyleLayer.test.js +0 -262
  476. package/src/ol/layers/MaplibreLayer.js +0 -280
  477. package/src/ol/layers/RoutingLayer.js +0 -91
  478. package/src/ol/layers/RoutingLayer.test.js +0 -49
  479. package/src/ol/layers/TralisLayer.js +0 -359
  480. package/src/ol/layers/TralisLayer.test.js +0 -97
  481. package/src/ol/layers/VectorLayer.js +0 -43
  482. package/src/ol/layers/VectorLayer.test.js +0 -98
  483. package/src/ol/layers/WMSLayer.js +0 -80
  484. package/src/ol/layers/WMSLayer.test.js +0 -84
  485. package/src/ol/styles/fullTrajectoryDelayStyle.js +0 -35
  486. package/src/ol/styles/fullTrajectoryStyle.js +0 -51
  487. package/webpack.config.js +0 -6
@@ -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 ADDED
@@ -0,0 +1,5 @@
1
+ export * from '../api';
2
+ export * from '../common';
3
+ export * from './controls';
4
+ export * from './layers';
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 declare 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,oBAAY,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;IAQnC;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,cAAc;IAUxC;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,GAAG;IA4DpB;;OAEG;IACH,aAAa;IAcb,wBAAwB;IA2BxB,0BAA0B;IAI1B;;;OAGG;IACH,sBAAsB;IAQtB;;;;OAIG;IACH,KAAK,CAAC,UAAU,EAAE,cAAc;CAGjC;AACD,eAAe,KAAK,CAAC"}
@@ -0,0 +1,159 @@
1
+ import { unByKey } from 'ol/Observable';
2
+ import LayerCommon from '../../common/layers/LayerCommon';
3
+ import userInteractionsMixin from '../../common/mixins/UserInteractionsLayerMixin';
4
+ /**
5
+ * A class representing a layer to display on an OpenLayers map.
6
+ *
7
+ * @example
8
+ * import { Layer } from 'mobility-toolbox-js/ol';
9
+ *
10
+ * const layer = new Layer({
11
+ * olLayer: ...,
12
+ * });
13
+ *
14
+ * @see <a href="/example/ol-map">Map example</a>
15
+ *
16
+ * @classproperty {ol/Map~Map} map - The map where the layer is displayed.
17
+ * @extends {LayerCommon}
18
+ */
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
+ super(options);
34
+ if (this.olLayer) {
35
+ this.olLayer.setVisible(this.visible);
36
+ }
37
+ }
38
+ /**
39
+ * Define layer's properties.
40
+ *
41
+ * @ignore
42
+ */
43
+ defineProperties(options) {
44
+ super.defineProperties(options);
45
+ Object.defineProperties(this, {
46
+ olLayer: { value: options.olLayer, writable: true },
47
+ olListenersKeys: {
48
+ value: [],
49
+ },
50
+ });
51
+ }
52
+ /**
53
+ * Initialize the layer and listen to feature clicks.
54
+ * @param {ol/Map~Map} map
55
+ */
56
+ attachToMap(map) {
57
+ var _a, _b, _c, _d;
58
+ super.attachToMap(map);
59
+ if (!this.map) {
60
+ return;
61
+ }
62
+ if (this.olLayer &&
63
+ !((_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))) {
64
+ this.map.addLayer(this.olLayer);
65
+ }
66
+ this.olListenersKeys.push(
67
+ // @ts-ignore
68
+ this.on('change:visible', () => {
69
+ if (this.olLayer) {
70
+ this.olLayer.setVisible(this.visible);
71
+ }
72
+ }));
73
+ this.olListenersKeys.push(this.map.getLayers().on('remove', (evt) => {
74
+ if (evt.element === this.olLayer) {
75
+ this.detachFromMap();
76
+ }
77
+ }));
78
+ this.toggleVisibleListeners();
79
+ this.olListenersKeys.push(
80
+ // @ts-ignore
81
+ this.on('change:visible', this.toggleVisibleListeners));
82
+ // We set the copyright to the source used by the layer.
83
+ if (this.copyrights && this.olLayer) {
84
+ const attributions = this.copyrights || [];
85
+ if (this.olLayer.getLayers) {
86
+ this.olLayer
87
+ .getLayers()
88
+ .getArray()
89
+ .forEach((layer) => {
90
+ var _a;
91
+ // @ts-ignore
92
+ if (layer.getSource) {
93
+ // @ts-ignore
94
+ (_a = layer.getSource()) === null || _a === void 0 ? void 0 : _a.setAttributions(attributions);
95
+ }
96
+ });
97
+ // @ts-ignore
98
+ }
99
+ else if (this.olLayer.getSource) {
100
+ // @ts-ignore
101
+ (_d = this.olLayer.getSource()) === null || _d === void 0 ? void 0 : _d.setAttributions(attributions);
102
+ }
103
+ }
104
+ }
105
+ /**
106
+ * Terminate what was initialized in init function. Remove layer, events...
107
+ */
108
+ detachFromMap() {
109
+ var _a, _b, _c;
110
+ this.deactivateUserInteractions();
111
+ unByKey(this.olListenersKeys);
112
+ if (this.olLayer &&
113
+ ((_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))) {
114
+ this.map.removeLayer(this.olLayer);
115
+ }
116
+ super.detachFromMap();
117
+ }
118
+ activateUserInteractions() {
119
+ var _a, _b;
120
+ this.deactivateUserInteractions();
121
+ if (this.map &&
122
+ this.userInteractions &&
123
+ this.userClickInteractions &&
124
+ ((_a = this.userClickCallbacks) === null || _a === void 0 ? void 0 : _a.length)) {
125
+ this.singleClickListenerKey = this.map.on('singleclick', this.onUserClickCallback);
126
+ this.olListenersKeys.push(this.singleClickListenerKey);
127
+ }
128
+ if (this.map &&
129
+ this.userInteractions &&
130
+ this.userHoverInteractions &&
131
+ ((_b = this.userHoverCallbacks) === null || _b === void 0 ? void 0 : _b.length)) {
132
+ this.pointerMoveListenerKey = this.map.on('pointermove', this.onUserMoveCallback);
133
+ }
134
+ }
135
+ deactivateUserInteractions() {
136
+ unByKey([this.pointerMoveListenerKey, this.singleClickListenerKey]);
137
+ }
138
+ /**
139
+ * Toggle listeners needed when a layer is avisible or not.
140
+ * @private
141
+ */
142
+ toggleVisibleListeners() {
143
+ if (this.visible) {
144
+ this.activateUserInteractions();
145
+ }
146
+ else {
147
+ this.deactivateUserInteractions();
148
+ }
149
+ }
150
+ /**
151
+ * Create a copy of the Layer.
152
+ * @param {Object} newOptions Options to override
153
+ * @return {Layer} A Layer
154
+ */
155
+ clone(newOptions) {
156
+ return new Layer(Object.assign(Object.assign({}, this.options), newOptions));
157
+ }
158
+ }
159
+ 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 declare 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,oBAAY,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"}
@@ -0,0 +1,218 @@
1
+ /* eslint-disable max-classes-per-file */
2
+ import { toLonLat } from 'ol/proj';
3
+ import OlLayer from 'ol/layer/Layer';
4
+ import Source from 'ol/source/Source';
5
+ import GeoJSON from 'ol/format/GeoJSON';
6
+ import BaseEvent from 'ol/events/Event';
7
+ import { getUrlWithParams, getMapboxMapCopyrights } from '../../common/utils';
8
+ import Layer from './Layer';
9
+ /**
10
+ * Common class for Mapbox and Maplibre and potential other fork from Mapbox.
11
+ * It's used to share code between Mapbox and Maplibre layers without importing both libs.
12
+ */
13
+ class MapGlLayer extends Layer {
14
+ constructor(options) {
15
+ super(options);
16
+ this.olLayer = new OlLayer({
17
+ source: new Source({}),
18
+ render: this.getOlLayerRender(),
19
+ });
20
+ /**
21
+ * Url of the mapbox style.
22
+ * @type {string}
23
+ * @private
24
+ */
25
+ this.styleUrl = options.url;
26
+ /**
27
+ * Api key for the url of the mapbox style.
28
+ * If set to false, the apiKey is not required.
29
+ * @type {string}
30
+ * @private
31
+ */
32
+ this.apiKey = options.apiKey;
33
+ /**
34
+ * Name of the apiKey to set in the url request.
35
+ * Default is 'key'.
36
+ * @type {string}
37
+ * @private
38
+ */
39
+ this.apiKeyName = options.apiKeyName || 'key';
40
+ /** @ignore */
41
+ this.updateAttribution = this.updateAttribution.bind(this);
42
+ }
43
+ /**
44
+ * Initialize the layer and listen to feature clicks.
45
+ * @param {ol/Map~Map} map
46
+ */
47
+ attachToMap(map) {
48
+ super.attachToMap(map);
49
+ if (!this.map) {
50
+ return;
51
+ }
52
+ /**
53
+ * The feature format.
54
+ * @type {ol/format/GeoJSON}
55
+ */
56
+ this.format = new GeoJSON({
57
+ featureProjection: this.map.getView().getProjection(),
58
+ });
59
+ this.loadMbMap();
60
+ }
61
+ /**
62
+ * Terminate what was initialized in init function. Remove layer, events...
63
+ */
64
+ detachFromMap() {
65
+ if (this.mbMap) {
66
+ this.mbMap.off('idle', this.updateAttribution);
67
+ // Some asynchrone repaints are triggered even if the mbMap has been removed,
68
+ // to avoid display of errors we set an empty function.
69
+ this.mbMap.triggerRepaint = () => { };
70
+ this.mbMap.remove();
71
+ this.mbMap = undefined;
72
+ }
73
+ this.loaded = false;
74
+ super.detachFromMap();
75
+ }
76
+ /**
77
+ * Create the mapbox map.
78
+ * @private
79
+ */
80
+ loadMbMap() {
81
+ var _a, _b, _c;
82
+ this.olListenersKeys.push(
83
+ // @ts-ignore
84
+ (_a = this.map) === null || _a === void 0 ? void 0 : _a.on('change:target', () => {
85
+ this.loadMbMap();
86
+ }));
87
+ if (!((_b = this.map) === null || _b === void 0 ? void 0 : _b.getTargetElement())) {
88
+ return;
89
+ }
90
+ if (!this.visible) {
91
+ // On next change of visibility we load the map
92
+ this.olListenersKeys.push(
93
+ // @ts-ignore
94
+ this.once('change:visible', () => {
95
+ this.loadMbMap();
96
+ }));
97
+ return;
98
+ }
99
+ const container = document.createElement('div');
100
+ container.style.position = 'absolute';
101
+ container.style.width = '100%';
102
+ container.style.height = '100%';
103
+ if (!this.styleUrl) {
104
+ // eslint-disable-next-line no-console
105
+ console.error(`No styleUrl defined for mapbox layer: ${this.styleUrl}`);
106
+ return;
107
+ }
108
+ if (!this.apiKey && !((_c = this.styleUrl) === null || _c === void 0 ? void 0 : _c.includes(this.apiKeyName))) {
109
+ // eslint-disable-next-line no-console
110
+ console.error(`No apiKey defined for mapbox layer with style url to ${this.styleUrl}`);
111
+ }
112
+ const Map = this.getMapboxMapClass();
113
+ /**
114
+ * A mapbox map
115
+ * @type {mapboxgl.Map}
116
+ */
117
+ this.mbMap = new Map(Object.assign({ style: getUrlWithParams(this.styleUrl, {
118
+ [this.apiKeyName]: this.apiKey,
119
+ }).toString(), container, interactive: false, trackResize: false, attributionControl: false }, (this.options.mapOptions || {})));
120
+ this.mbMap.once('load', () => {
121
+ /**
122
+ * Is the map loaded.
123
+ * @type {boolean}
124
+ */
125
+ this.loaded = true;
126
+ this.dispatchEvent(new BaseEvent('load'));
127
+ });
128
+ this.mbMap.on('idle', this.updateAttribution);
129
+ }
130
+ /**
131
+ * Update attributions of the source.
132
+ * @private
133
+ */
134
+ updateAttribution(evt) {
135
+ var _a, _b, _c;
136
+ const newAttributions = getMapboxMapCopyrights(evt.target) || [];
137
+ if (((_a = this.copyrights) === null || _a === void 0 ? void 0 : _a.toString()) !== newAttributions.toString()) {
138
+ this.copyrights = newAttributions;
139
+ // @ts-ignore
140
+ (_c = (_b = this.olLayer) === null || _b === void 0 ? void 0 : _b.getSource()) === null || _c === void 0 ? void 0 : _c.setAttributions(newAttributions);
141
+ }
142
+ }
143
+ /**
144
+ * Request feature information for a given coordinate.
145
+ * @param {ol/coordinate~Coordinate} coordinate Coordinate to request the information at.
146
+ * @param {Object} options A [mapboxgl.Map#queryrenderedfeatures](https://docs.mapbox.com/mapbox-gl-js/api/map/#map#queryrenderedfeatures) options parameter.
147
+ * @return {Promise<FeatureInfo>} Promise with features, layer and coordinate. The original Mapbox feature is available as a property named 'mapboxFeature'.
148
+ */
149
+ getFeatureInfoAtCoordinate(coordinate, options) {
150
+ // Ignore the getFeatureInfo until the mapbox map is loaded
151
+ if (!options ||
152
+ !this.format ||
153
+ !this.mbMap ||
154
+ !this.mbMap.isStyleLoaded()) {
155
+ return Promise.resolve({ coordinate, features: [], layer: this });
156
+ }
157
+ const pixel = coordinate &&
158
+ this.mbMap.project(toLonLat(coordinate));
159
+ let pixels;
160
+ if (this.hitTolerance) {
161
+ const { x, y } = pixel;
162
+ pixels = [
163
+ {
164
+ x: x - this.hitTolerance,
165
+ y: y - this.hitTolerance,
166
+ },
167
+ {
168
+ x: x + this.hitTolerance,
169
+ y: y + this.hitTolerance,
170
+ },
171
+ ];
172
+ }
173
+ // At this point we get GeoJSON Mapbox feature, we transform it to an OpenLayers
174
+ // feature to be consistent with other layers.
175
+ const features = this.mbMap
176
+ // @ts-ignore
177
+ .queryRenderedFeatures(pixels || pixel, options)
178
+ .map((feature) => {
179
+ const olFeature = this.format.readFeature(feature);
180
+ if (olFeature) {
181
+ // We save the original mapbox feature to avoid losing informations
182
+ // potentially needed for other functionnality like highlighting
183
+ // (id, layer id, source, sourceLayer ...)
184
+ olFeature.set('mapboxFeature', feature);
185
+ }
186
+ return olFeature;
187
+ });
188
+ return Promise.resolve({
189
+ layer: this,
190
+ features,
191
+ coordinate,
192
+ });
193
+ }
194
+ /**
195
+ * Return the render function function for the ol layer.
196
+ *
197
+ */
198
+ // eslint-disable-next-line class-methods-use-this
199
+ getOlLayerRender() {
200
+ // eslint-disable-next-line no-console
201
+ console.error('This function must be implemented in subclasses');
202
+ const div = document.createElement('div');
203
+ return () => div;
204
+ }
205
+ /**
206
+ * Return the Class to instanciate for the mapbox map.
207
+ *
208
+ * @return {mapboxgl.Map|maplibregl.Map} map
209
+ */
210
+ // eslint-disable-next-line class-methods-use-this
211
+ getMapboxMapClass() {
212
+ // eslint-disable-next-line no-console
213
+ console.error('This function must be implemented in subclasses');
214
+ // @ts-ignore
215
+ return null;
216
+ }
217
+ }
218
+ export default MapGlLayer;
@@ -0,0 +1,50 @@
1
+ import { Map } from 'mapbox-gl';
2
+ import { Coordinate } from 'ol/coordinate';
3
+ import type OlMap from 'ol/Map';
4
+ import { Size } from 'ol/size';
5
+ import MapGlLayer, { MapGlLayerOptions } from './MapGlLayer';
6
+ /**
7
+ * A class representing Mapboxlayer to display on BasicMap
8
+ *
9
+ * @example
10
+ * import { MapboxLayer } from 'mobility-toolbox-js/ol';
11
+ *
12
+ * const layer = new MapboxLayer({
13
+ * url: 'https://maps.geops.io/styles/travic_v2/style.json',
14
+ * apikey: 'yourApiKey',
15
+ * });
16
+ *
17
+ * @classproperty {ol/Map~Map} map - The map where the layer is displayed.
18
+ * @extends {Layer}
19
+ */
20
+ export default class MapboxLayer extends MapGlLayer {
21
+ renderState?: {
22
+ center?: Coordinate;
23
+ zoom?: number;
24
+ visible?: boolean;
25
+ opacity?: number;
26
+ resolution?: number;
27
+ rotation?: number;
28
+ size?: Size;
29
+ };
30
+ tabIndex?: number;
31
+ /**
32
+ * Initialize the layer and listen to feature clicks.
33
+ * @param {ol/Map~Map} map
34
+ */
35
+ attachToMap(map: OlMap): void;
36
+ /**
37
+ * Create the mapbox map.
38
+ * @private
39
+ */
40
+ loadMbMap(): void;
41
+ getOlLayerRender(): import("ol/layer/Layer").RenderFunction;
42
+ getMapboxMapClass(): typeof Map;
43
+ /**
44
+ * Create a copy of the MapboxLayer.
45
+ * @param {Object} newOptions Options to override
46
+ * @return {MapboxLayer} A MapboxLayer
47
+ */
48
+ clone(newOptions: MapGlLayerOptions): MapboxLayer;
49
+ }
50
+ //# sourceMappingURL=MapboxLayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MapboxLayer.d.ts","sourceRoot":"","sources":["../../../src/ol/layers/MapboxLayer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,QAAQ,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,UAAU,EAAE,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AAE7D;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,UAAU;IACjD,WAAW,CAAC,EAAE;QACZ,MAAM,CAAC,EAAE,UAAU,CAAC;QACpB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,IAAI,CAAC,EAAE,IAAI,CAAC;KACb,CAAC;IAEF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,WAAW,CAAC,GAAG,EAAE,KAAK;IAsBtB;;;OAGG;IACH,SAAS;IAqDT,gBAAgB;IAKhB,iBAAiB;IAIjB;;;;OAIG;IACH,KAAK,CAAC,UAAU,EAAE,iBAAiB;CAGpC"}