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
@@ -0,0 +1,201 @@
1
+ import GeoJSON from 'ol/format/GeoJSON';
2
+ import Feature, { FeatureLike } from 'ol/Feature';
3
+ import { MapEvent } from 'ol';
4
+ import { Coordinate } from 'ol/coordinate';
5
+ import { ObjectEvent } from 'ol/Object';
6
+ import Layer from './Layer';
7
+ import { RealtimeLayerMixinOptions } from '../../common/mixins/RealtimeLayerMixin';
8
+ import { AnyMap, LayerGetFeatureInfoResponse, RealtimeFullTrajectory, RealtimeTrainId } from '../../types';
9
+ import { RealtimeTrajectory } from '../../api/typedefs';
10
+ import { WebSocketAPIMessageEventData } from '../../common/api/WebSocketAPI';
11
+ export declare type OlRealtimeLayerOptions = RealtimeLayerMixinOptions & {
12
+ fullTrajectoryStyle: (feature: FeatureLike, resolution: number, options: any) => void;
13
+ allowRenderWhenAnimating?: boolean;
14
+ };
15
+ declare const RealtimeLayer_base: {
16
+ new (options: RealtimeLayerMixinOptions): {
17
+ [x: string]: any;
18
+ debug: boolean;
19
+ trajectories?: {
20
+ [key: string]: GeoJSONFeature;
21
+ } | undefined;
22
+ canvas?: import("../../types").AnyCanvas | undefined;
23
+ mode: import("../../types").RealtimeMode;
24
+ api: import("../../api/RealtimeAPI").default;
25
+ tenant: string;
26
+ time?: Date | undefined;
27
+ live?: boolean | undefined;
28
+ speed?: number | undefined;
29
+ filter?: Function | undefined;
30
+ sort?: Function | undefined;
31
+ style?: import("../../types").RealtimeStyleFunction | undefined;
32
+ styleOptions?: import("../../types").RealtimeStyleOptions | undefined;
33
+ pixelRatio?: number | undefined;
34
+ minZoomInterpolation: number;
35
+ isUpdateBboxOnMoveEnd: boolean;
36
+ hoverVehicleId?: string | undefined;
37
+ selectedVehicleId?: string | undefined;
38
+ renderState?: import("../../types").RealtimeRenderState | undefined;
39
+ useRequestAnimationFrame?: boolean | undefined;
40
+ useDebounce?: boolean | undefined;
41
+ useThrottle?: boolean | undefined;
42
+ mots?: import("../../types").RealtimeMot[] | undefined;
43
+ motsByZoom: import("../../types").RealtimeMot[][];
44
+ generalizationLevel?: import("../../types").RealtimeGeneralizationLevel | undefined;
45
+ generalizationLevelByZoom: import("../../types").RealtimeGeneralizationLevel[];
46
+ renderTimeIntervalByZoom: number[];
47
+ format: GeoJSON;
48
+ requestId?: number | undefined;
49
+ updateTimeInterval?: number | undefined;
50
+ updateTimeDelay?: number | undefined;
51
+ visibilityRef: import("ol/events").EventsKey;
52
+ selectedVehicle: GeoJSONFeature;
53
+ getMotsByZoom: (zoom: number) => import("../../types").RealtimeMot[];
54
+ getGeneralizationLevelByZoom: (zoom: number) => import("../../types").RealtimeGeneralizationLevel;
55
+ getRenderTimeIntervalByZoom: (zoom: number) => number;
56
+ throttleRenderTrajectories: (viewState: import("../../types").ViewState, noInterpolate?: boolean | undefined) => void;
57
+ debounceRenderTrajectories: (viewState: import("../../types").ViewState, noInterpolate?: boolean | undefined) => void;
58
+ defineProperties(options: RealtimeLayerMixinOptions): void;
59
+ attachToMap(map: any): void;
60
+ detachFromMap(): void;
61
+ start(): void;
62
+ startUpdateTime(): void;
63
+ stop(): void;
64
+ stopUpdateTime(): void;
65
+ renderTrajectoriesInternal(viewState: import("../../types").ViewState, noInterpolate?: boolean): boolean;
66
+ renderTrajectories(viewState: import("../../types").ViewState | undefined, noInterpolate: boolean | undefined): void;
67
+ setBbox(extent?: [number, number, number, number] | undefined, zoom?: number | undefined): void;
68
+ setMode(mode: import("../../types").RealtimeMode): void;
69
+ getRefreshTimeInMs(zoom?: number | undefined): number;
70
+ getVehicle(filterFc: Function): GeoJSONFeature[];
71
+ getFeatureInfoAtCoordinate(coordinate: Coordinate, options: import("../../types").LayerGetFeatureInfoOptions): Promise<{
72
+ layer: any;
73
+ features: Feature<import("ol/geom/Geometry").default>[];
74
+ coordinate: Coordinate;
75
+ }>;
76
+ getTrajectoryInfos(id: string): Promise<{
77
+ stopSequence: WebSocketAPIMessageEventData<RealtimeFullTrajectory> | WebSocketAPIMessageEventData<GeoJSONFeature[]>;
78
+ fullTrajectory: WebSocketAPIMessageEventData<RealtimeFullTrajectory> | WebSocketAPIMessageEventData<GeoJSONFeature[]>;
79
+ }>;
80
+ purgeOutOfDateTrajectories(): void;
81
+ purgeTrajectory(trajectory: GeoJSONFeature, extent: [number, number, number, number], zoom: number): boolean;
82
+ addTrajectory(trajectory: GeoJSONFeature): void;
83
+ removeTrajectory(trajectoryOrId: any): void;
84
+ onZoomEnd(): void;
85
+ onDocumentVisibilityChange(): void;
86
+ onTrajectoryMessage(data: WebSocketAPIMessageEventData<GeoJSONFeature>): void;
87
+ onDeleteTrajectoryMessage(data: WebSocketAPIMessageEventData<string>): void;
88
+ onFeatureHover(features: Feature<import("ol/geom/Geometry").default>[], layer: import("../../types").AnyRealtimeLayer, coordinate: Coordinate): void;
89
+ onFeatureClick(features: Feature<import("ol/geom/Geometry").default>[], layer: import("../../types").AnyRealtimeLayer, coordinate: Coordinate): void;
90
+ };
91
+ } & typeof Layer;
92
+ /**
93
+ * Responsible for loading and display data from a Realtime service.
94
+ *
95
+ * @example
96
+ * import { RealtimeLayer } from 'mobility-toolbox-js/ol';
97
+ *
98
+ * const layer = new RealtimeLayer({
99
+ * url: [yourUrl],
100
+ * apiKey: [yourApiKey],
101
+ * });
102
+ *
103
+ *
104
+ * @see <a href="/api/class/src/api/RealtimeAPI%20js~RealtimeAPI%20html">RealtimeAPI</a>
105
+ *
106
+ * @extends {Layer}
107
+ * @implements {UserInteractionsLayerInterface}
108
+ * @implements {RealtimeLayerInterface}
109
+ */
110
+ declare class RealtimeLayer extends RealtimeLayer_base {
111
+ allowRenderWhenAnimating?: boolean;
112
+ /**
113
+ * Constructor.
114
+ *
115
+ * @param {Object} options
116
+ * @private
117
+ */
118
+ constructor(options: OlRealtimeLayerOptions);
119
+ attachToMap(map: AnyMap): void;
120
+ /**
121
+ * Destroy the container of the tracker.
122
+ */
123
+ detachFromMap(): void;
124
+ /**
125
+ * Detect in the canvas if there is data to query at a specific coordinate.
126
+ * @param {ol/coordinate~Coordinate} coordinate The coordinate to test
127
+ * @returns
128
+ */
129
+ hasFeatureInfoAtCoordinate(coordinate: Coordinate): boolean;
130
+ /**
131
+ * Render the trajectories using current map's size, resolution and rotation.
132
+ * @param {boolean} noInterpolate if true, renders the vehicles without interpolating theirs positions.
133
+ * @overrides
134
+ */
135
+ renderTrajectories(noInterpolate: boolean): void;
136
+ /**
137
+ * Launch renderTrajectories. it avoids duplicating code in renderTrajectories methhod.
138
+ * @private
139
+ * @override
140
+ */
141
+ renderTrajectoriesInternal(viewState: ViewState, noInterpolate: boolean): boolean;
142
+ /**
143
+ * Return the delay in ms before the next rendering.
144
+ */
145
+ getRefreshTimeInMs(): number;
146
+ getFeatureInfoAtCoordinate(coordinate: Coordinate, options?: {}): Promise<LayerGetFeatureInfoResponse>;
147
+ /**
148
+ * On move end we update the websocket with the new bbox.
149
+ *
150
+ * @private
151
+ * @override
152
+ */
153
+ onMoveEnd(evt: MapEvent | ObjectEvent): void;
154
+ /**
155
+ * Function called on moveend event only when the zoom has changed.
156
+ *
157
+ * @param {ol/MapEvent~MapEvent} evt Moveend event.
158
+ * @private
159
+ * @override
160
+ */
161
+ onZoomEnd(): void;
162
+ /**
163
+ * Update the cursor style when hovering a vehicle.
164
+ *
165
+ * @private
166
+ * @override
167
+ */
168
+ onFeatureHover(features: Feature[], layer: RealtimeLayer, coordinate: Coordinate): void;
169
+ /**
170
+ * Display the complete trajectory of the vehicle.
171
+ *
172
+ * @private
173
+ * @override
174
+ */
175
+ onFeatureClick(features: Feature[], layer: RealtimeLayer, coordinate: Coordinate): void;
176
+ /**
177
+ * Remove the trajectory form the list if necessary.
178
+ *
179
+ * @private
180
+ */
181
+ purgeTrajectory(trajectory: RealtimeTrajectory, extent: [number, number, number, number], zoom: number): boolean;
182
+ /**
183
+ * Send the current bbox to the websocket
184
+ *
185
+ * @private
186
+ */
187
+ setBbox(extent?: [number, number, number, number], zoom?: number): void;
188
+ /**
189
+ * Highlight the trajectory of journey.
190
+ * @private
191
+ */
192
+ highlightTrajectory(id: RealtimeTrainId): void;
193
+ /**
194
+ * Create a copy of the RealtimeLayer.
195
+ * @param {Object} newOptions Options to override
196
+ * @return {RealtimeLayer} A RealtimeLayer
197
+ */
198
+ clone(newOptions: OlRealtimeLayerOptions): RealtimeLayer;
199
+ }
200
+ export default RealtimeLayer;
201
+ //# sourceMappingURL=RealtimeLayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RealtimeLayer.d.ts","sourceRoot":"","sources":["../../../src/ol/layers/RealtimeLayer.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,mBAAmB,CAAC;AAKxC,OAAO,OAAO,EAAE,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,IAAI,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAc,EACZ,yBAAyB,EAC1B,MAAM,wCAAwC,CAAC;AAEhD,OAAO,EACL,MAAM,EACN,2BAA2B,EAC3B,sBAAsB,EACtB,eAAe,EAChB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC;AAK7E,oBAAY,sBAAsB,GAAG,yBAAyB,GAAG;IAC/D,mBAAmB,EAAE,CACnB,OAAO,EAAE,WAAW,EACpB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,GAAG,KACT,IAAI,CAAC;IACV,wBAAwB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEF;;;;;;;;;;;;;;;;;GAiBG;AAEH,cAAM,aAAc,SAAQ,kBAAY;IACtC,wBAAwB,CAAC,EAAE,OAAO,CAAS;IAE3C;;;;;OAKG;gBACS,OAAO,EAAE,sBAAsB;IAmG3C,WAAW,CAAC,GAAG,EAAE,MAAM;IA4BvB;;OAEG;IACH,aAAa;IAKb;;;;OAIG;IACH,0BAA0B,CAAC,UAAU,EAAE,UAAU;IAcjD;;;;OAIG;IAEH,kBAAkB,CAAC,aAAa,EAAE,OAAO;IAoBzC;;;;OAIG;IACH,0BAA0B,CAAC,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO;IA2BvE;;OAEG;IACH,kBAAkB;IAIlB,0BAA0B,CACxB,UAAU,EAAE,UAAU,EACtB,OAAO,KAAK,GACX,OAAO,CAAC,2BAA2B,CAAC;IAQvC;;;;;OAKG;IAEH,SAAS,CAAC,GAAG,EAAE,QAAQ,GAAG,WAAW;IAerC;;;;;;OAMG;IAEH,SAAS;IAIT;;;;;OAKG;IACH,cAAc,CACZ,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,UAAU;IAQxB;;;;;OAKG;IACH,cAAc,CACZ,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,aAAa,EACpB,UAAU,EAAE,UAAU;IAWxB;;;;OAIG;IACH,eAAe,CACb,UAAU,EAAE,kBAAkB,EAC9B,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EACxC,IAAI,EAAE,MAAM;IASd;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,EAAE,MAAM;IAUhE;;;OAGG;IACH,mBAAmB,CAAC,EAAE,EAAE,eAAe;IAmBvC;;;;OAIG;IACH,KAAK,CAAC,UAAU,EAAE,sBAAsB;CAGzC;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,310 @@
1
+ import GeoJSON from 'ol/format/GeoJSON';
2
+ import { Layer as OLLayer, Group, Vector as VectorLayer } from 'ol/layer';
3
+ import Source from 'ol/source/Source';
4
+ import { composeCssTransform } from 'ol/transform';
5
+ import { Vector as VectorSource } from 'ol/source';
6
+ import Layer from './Layer';
7
+ import mixin from '../../common/mixins/RealtimeLayerMixin';
8
+ import { fullTrajectoryStyle } from '../styles';
9
+ /** @private */
10
+ const format = new GeoJSON();
11
+ /**
12
+ * Responsible for loading and display data from a Realtime service.
13
+ *
14
+ * @example
15
+ * import { RealtimeLayer } from 'mobility-toolbox-js/ol';
16
+ *
17
+ * const layer = new RealtimeLayer({
18
+ * url: [yourUrl],
19
+ * apiKey: [yourApiKey],
20
+ * });
21
+ *
22
+ *
23
+ * @see <a href="/api/class/src/api/RealtimeAPI%20js~RealtimeAPI%20html">RealtimeAPI</a>
24
+ *
25
+ * @extends {Layer}
26
+ * @implements {UserInteractionsLayerInterface}
27
+ * @implements {RealtimeLayerInterface}
28
+ */
29
+ // @ts-ignore
30
+ class RealtimeLayer extends mixin(Layer) {
31
+ /**
32
+ * Constructor.
33
+ *
34
+ * @param {Object} options
35
+ * @private
36
+ */
37
+ constructor(options) {
38
+ // We use a group to be able to add custom vector layer in extended class.
39
+ // For example TrajservLayer use a vectorLayer to display the complete trajectory.
40
+ super(Object.assign({}, options));
41
+ this.allowRenderWhenAnimating = false;
42
+ this.allowRenderWhenAnimating = !!options.allowRenderWhenAnimating;
43
+ /** @ignore */
44
+ this.olLayer =
45
+ options.olLayer ||
46
+ new Group({
47
+ layers: [
48
+ new VectorLayer({
49
+ source: new VectorSource({ features: [] }),
50
+ style: (feature, resolution) => {
51
+ return (options.fullTrajectoryStyle || fullTrajectoryStyle)(feature, resolution, this.styleOptions);
52
+ },
53
+ }),
54
+ new OLLayer({
55
+ source: new Source({}),
56
+ render: (frameState) => {
57
+ var _a, _b, _c;
58
+ if (!this.container) {
59
+ this.container = document.createElement('div');
60
+ this.container.style.position = 'absolute';
61
+ this.container.style.width = '100%';
62
+ this.container.style.height = '100%';
63
+ this.transformContainer = document.createElement('div');
64
+ this.transformContainer.style.position = 'absolute';
65
+ this.transformContainer.style.width = '100%';
66
+ this.transformContainer.style.height = '100%';
67
+ this.container.appendChild(this.transformContainer);
68
+ if (this.canvas) {
69
+ this.canvas.style.position =
70
+ 'absolute';
71
+ this.canvas.style.top = '0';
72
+ this.canvas.style.left = '0';
73
+ this.canvas.style.transformOrigin =
74
+ 'top left';
75
+ this.transformContainer.appendChild(this.canvas);
76
+ }
77
+ }
78
+ if (this.renderedViewState) {
79
+ const { center, resolution, rotation } = frameState.viewState;
80
+ const { center: renderedCenter, resolution: renderedResolution, rotation: renderedRotation, } = this.renderedViewState;
81
+ if (renderedResolution / resolution >= 3) {
82
+ // Avoid having really big points when zooming fast.
83
+ const context = (_a = this.canvas) === null || _a === void 0 ? void 0 : _a.getContext('2d');
84
+ context === null || context === void 0 ? void 0 : context.clearRect(0, 0, (_b = this.canvas) === null || _b === void 0 ? void 0 : _b.width, (_c = this.canvas) === null || _c === void 0 ? void 0 : _c.height);
85
+ }
86
+ else {
87
+ const pixelCenterRendered = this.map.getPixelFromCoordinate(renderedCenter);
88
+ const pixelCenter = this.map.getPixelFromCoordinate(center);
89
+ this.transformContainer.style.transform = composeCssTransform(pixelCenterRendered[0] - pixelCenter[0], pixelCenterRendered[1] - pixelCenter[1], renderedResolution / resolution, renderedResolution / resolution, rotation - renderedRotation, 0, 0);
90
+ }
91
+ }
92
+ return this.container;
93
+ },
94
+ }),
95
+ ],
96
+ });
97
+ // We store the layer used to highlight the full Trajectory
98
+ this.vectorLayer = this.olLayer.getLayers().item(0);
99
+ // Options the last render run did happen. If something changes
100
+ // we have to render again
101
+ /** @ignore */
102
+ this.renderState = {
103
+ center: [0, 0],
104
+ zoom: undefined,
105
+ rotation: 0,
106
+ };
107
+ }
108
+ attachToMap(map) {
109
+ super.attachToMap(map);
110
+ if (this.map) {
111
+ this.olListenersKeys.push(...this.map.on(['moveend', 'change:target'], (evt) => {
112
+ const view = (evt.map || evt.target).getView();
113
+ if (view.getAnimating() || view.getInteracting()) {
114
+ return;
115
+ }
116
+ const zoom = view.getZoom();
117
+ // Update the interval between render updates
118
+ if (this.currentZoom !== zoom) {
119
+ this.onZoomEnd();
120
+ }
121
+ this.currentZoom = zoom;
122
+ this.onMoveEnd(evt);
123
+ }));
124
+ }
125
+ }
126
+ /**
127
+ * Destroy the container of the tracker.
128
+ */
129
+ detachFromMap() {
130
+ super.detachFromMap();
131
+ this.container = null;
132
+ }
133
+ /**
134
+ * Detect in the canvas if there is data to query at a specific coordinate.
135
+ * @param {ol/coordinate~Coordinate} coordinate The coordinate to test
136
+ * @returns
137
+ */
138
+ hasFeatureInfoAtCoordinate(coordinate) {
139
+ if (this.map && this.canvas) {
140
+ const context = this.canvas.getContext('2d');
141
+ const pixel = this.map.getPixelFromCoordinate(coordinate);
142
+ return !!(context === null || context === void 0 ? void 0 : context.getImageData(pixel[0] * (this.pixelRatio || 1), pixel[1] * (this.pixelRatio || 1), 1, 1).data[3]);
143
+ }
144
+ return false;
145
+ }
146
+ /**
147
+ * Render the trajectories using current map's size, resolution and rotation.
148
+ * @param {boolean} noInterpolate if true, renders the vehicles without interpolating theirs positions.
149
+ * @overrides
150
+ */
151
+ // @ts-ignore
152
+ renderTrajectories(noInterpolate) {
153
+ if (!this.map) {
154
+ return;
155
+ }
156
+ const view = this.map.getView();
157
+ super.renderTrajectories({
158
+ size: this.map.getSize(),
159
+ center: this.map.getView().getCenter(),
160
+ extent: view.calculateExtent(),
161
+ resolution: view.getResolution(),
162
+ rotation: view.getRotation(),
163
+ zoom: view.getZoom(),
164
+ pixelRatio: this.pixelRatio,
165
+ }, noInterpolate);
166
+ }
167
+ /**
168
+ * Launch renderTrajectories. it avoids duplicating code in renderTrajectories methhod.
169
+ * @private
170
+ * @override
171
+ */
172
+ renderTrajectoriesInternal(viewState, noInterpolate) {
173
+ if (!this.map) {
174
+ return false;
175
+ }
176
+ let isRendered = false;
177
+ const blockRendering = this.allowRenderWhenAnimating
178
+ ? false
179
+ : this.map.getView().getAnimating() ||
180
+ this.map.getView().getInteracting();
181
+ // Don't render the map when the map is animating or interacting.
182
+ isRendered = blockRendering
183
+ ? false
184
+ : super.renderTrajectoriesInternal(viewState, noInterpolate);
185
+ // We update the current render state.
186
+ if (isRendered) {
187
+ this.renderedViewState = Object.assign({}, viewState);
188
+ if (this.transformContainer) {
189
+ this.transformContainer.style.transform = '';
190
+ }
191
+ }
192
+ return isRendered;
193
+ }
194
+ /**
195
+ * Return the delay in ms before the next rendering.
196
+ */
197
+ getRefreshTimeInMs() {
198
+ return super.getRefreshTimeInMs(this.map.getView().getZoom());
199
+ }
200
+ getFeatureInfoAtCoordinate(coordinate, options = {}) {
201
+ const resolution = this.map.getView().getResolution();
202
+ return super.getFeatureInfoAtCoordinate(coordinate, Object.assign({ resolution }, options));
203
+ }
204
+ /**
205
+ * On move end we update the websocket with the new bbox.
206
+ *
207
+ * @private
208
+ * @override
209
+ */
210
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
211
+ onMoveEnd(evt) {
212
+ if (this.visible && this.isUpdateBboxOnMoveEnd) {
213
+ this.setBbox();
214
+ }
215
+ if (this.visible &&
216
+ this.isUpdateBboxOnMoveEnd &&
217
+ this.userClickInteractions &&
218
+ this.selectedVehicleId) {
219
+ this.highlightTrajectory(this.selectedVehicleId);
220
+ }
221
+ }
222
+ /**
223
+ * Function called on moveend event only when the zoom has changed.
224
+ *
225
+ * @param {ol/MapEvent~MapEvent} evt Moveend event.
226
+ * @private
227
+ * @override
228
+ */
229
+ // eslint-disable-next-line no-unused-vars
230
+ onZoomEnd() {
231
+ super.onZoomEnd();
232
+ }
233
+ /**
234
+ * Update the cursor style when hovering a vehicle.
235
+ *
236
+ * @private
237
+ * @override
238
+ */
239
+ onFeatureHover(features, layer, coordinate) {
240
+ super.onFeatureHover(features, layer, coordinate);
241
+ this.map.getTargetElement().style.cursor = features.length
242
+ ? 'pointer'
243
+ : 'auto';
244
+ }
245
+ /**
246
+ * Display the complete trajectory of the vehicle.
247
+ *
248
+ * @private
249
+ * @override
250
+ */
251
+ onFeatureClick(features, layer, coordinate) {
252
+ super.onFeatureClick(features, layer, coordinate);
253
+ if (!features.length && this.vectorLayer) {
254
+ this.vectorLayer.getSource().clear();
255
+ }
256
+ if (this.selectedVehicleId) {
257
+ this.highlightTrajectory(this.selectedVehicleId);
258
+ }
259
+ }
260
+ /**
261
+ * Remove the trajectory form the list if necessary.
262
+ *
263
+ * @private
264
+ */
265
+ purgeTrajectory(trajectory, extent, zoom) {
266
+ return super.purgeTrajectory(trajectory, extent || this.map.getView().calculateExtent(), zoom || this.map.getView().getZoom());
267
+ }
268
+ /**
269
+ * Send the current bbox to the websocket
270
+ *
271
+ * @private
272
+ */
273
+ setBbox(extent, zoom) {
274
+ let newExtent = extent;
275
+ let newZoom = zoom;
276
+ if (!newExtent && this.isUpdateBboxOnMoveEnd) {
277
+ newExtent = extent || this.map.getView().calculateExtent();
278
+ newZoom = Math.floor(this.map.getView().getZoom());
279
+ }
280
+ super.setBbox(newExtent, newZoom);
281
+ }
282
+ /**
283
+ * Highlight the trajectory of journey.
284
+ * @private
285
+ */
286
+ highlightTrajectory(id) {
287
+ this.api
288
+ .getFullTrajectory(id, this.mode, this.generalizationLevel)
289
+ .then((data) => {
290
+ const fullTrajectory = data.content;
291
+ this.vectorLayer.getSource().clear();
292
+ if (!fullTrajectory ||
293
+ !fullTrajectory.features ||
294
+ !fullTrajectory.features.length) {
295
+ return;
296
+ }
297
+ const features = format.readFeatures(fullTrajectory);
298
+ this.vectorLayer.getSource().addFeatures(features);
299
+ });
300
+ }
301
+ /**
302
+ * Create a copy of the RealtimeLayer.
303
+ * @param {Object} newOptions Options to override
304
+ * @return {RealtimeLayer} A RealtimeLayer
305
+ */
306
+ clone(newOptions) {
307
+ return new RealtimeLayer(Object.assign(Object.assign({}, this.options), newOptions));
308
+ }
309
+ }
310
+ export default RealtimeLayer;
@@ -0,0 +1,34 @@
1
+ import { Vector as VectorSource } from 'ol/source';
2
+ import { Vector } from 'ol/layer';
3
+ import type { StyleLike } from 'ol/style/Style';
4
+ import { Geometry } from 'ol/geom';
5
+ import Layer from './Layer';
6
+ import type { OlLayerOptions } from './Layer';
7
+ export declare type OlRoutingLayerOptions = OlLayerOptions & {
8
+ olLayer?: Vector<VectorSource<Geometry>>;
9
+ style?: StyleLike;
10
+ };
11
+ /**
12
+ * A class use to display vector data.
13
+ *
14
+ * @classproperty {ol/Map~Map} map - The map where the layer is displayed.
15
+ * @extends {Layer}
16
+ */
17
+ declare class RoutingLayer extends Layer {
18
+ olLayer?: Vector<VectorSource<Geometry>>;
19
+ options: OlRoutingLayerOptions;
20
+ /**
21
+ * Constructor.
22
+ * @param {Object} [options]
23
+ * @param {ol/style/Style~StyleLike} [options.style] Style to be used for routes, uses (ol/StyleLike) [https://openlayers.org/en/latest/apidoc/module-ol_style_Style.html#~StyleLike] instances
24
+ */
25
+ constructor(options: OlRoutingLayerOptions);
26
+ /**
27
+ * Create a copy of the RoutingLayer.
28
+ * @param {Object} newOptions Options to override
29
+ * @return {RoutingLayer} A RoutingLayer
30
+ */
31
+ clone(newOptions: OlRoutingLayerOptions): RoutingLayer;
32
+ }
33
+ export default RoutingLayer;
34
+ //# sourceMappingURL=RoutingLayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RoutingLayer.d.ts","sourceRoot":"","sources":["../../../src/ol/layers/RoutingLayer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,KAAK,EAAiB,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C,oBAAY,qBAAqB,GAAG,cAAc,GAAG;IACnD,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AA8DF;;;;;GAKG;AACH,cAAM,YAAa,SAAQ,KAAK;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEzC,OAAO,EAAE,qBAAqB,CAAM;IAEpC;;;;OAIG;gBACS,OAAO,EAAE,qBAAqB;IAW1C;;;;OAIG;IACH,KAAK,CAAC,UAAU,EAAE,qBAAqB;CAGxC;AAED,eAAe,YAAY,CAAC"}
@@ -0,0 +1,85 @@
1
+ import { Circle, Fill, Stroke, Style } from 'ol/style';
2
+ import { Vector as VectorSource } from 'ol/source';
3
+ import { Vector } from 'ol/layer';
4
+ import Layer from './Layer';
5
+ /** @private */
6
+ const circleStyle = new Circle({
7
+ radius: 6,
8
+ fill: new Fill({
9
+ color: [255, 0, 0, 1],
10
+ }),
11
+ stroke: new Stroke({
12
+ color: [0, 0, 0, 1],
13
+ width: 1,
14
+ }),
15
+ });
16
+ /** @private */
17
+ const blackBorder = new Style({
18
+ stroke: new Stroke({
19
+ color: [0, 0, 0, 1],
20
+ width: 5,
21
+ }),
22
+ });
23
+ /** @private */
24
+ const redLine = new Style({
25
+ image: circleStyle,
26
+ stroke: new Stroke({
27
+ color: [255, 0, 0, 1],
28
+ width: 3,
29
+ }),
30
+ });
31
+ /** @private */
32
+ const dashedRedLine = new Style({
33
+ image: circleStyle,
34
+ stroke: new Stroke({
35
+ color: [255, 0, 0, 1],
36
+ width: 3,
37
+ lineDash: [1, 10],
38
+ }),
39
+ });
40
+ /** @private */
41
+ const defaultStyleFunction = (feature, resolution) => {
42
+ const minResolution = feature.get('minResolution');
43
+ const maxResolution = feature.get('maxResolution');
44
+ const inRange = resolution <= minResolution && resolution > maxResolution;
45
+ if (minResolution && maxResolution && !inRange) {
46
+ return [];
47
+ }
48
+ const mot = feature.get('mot');
49
+ if (mot !== 'foot') {
50
+ return [blackBorder, redLine];
51
+ }
52
+ return [dashedRedLine];
53
+ };
54
+ /**
55
+ * A class use to display vector data.
56
+ *
57
+ * @classproperty {ol/Map~Map} map - The map where the layer is displayed.
58
+ * @extends {Layer}
59
+ */
60
+ class RoutingLayer extends Layer {
61
+ /**
62
+ * Constructor.
63
+ * @param {Object} [options]
64
+ * @param {ol/style/Style~StyleLike} [options.style] Style to be used for routes, uses (ol/StyleLike) [https://openlayers.org/en/latest/apidoc/module-ol_style_Style.html#~StyleLike] instances
65
+ */
66
+ constructor(options) {
67
+ super(options);
68
+ this.options = {};
69
+ this.olLayer =
70
+ options.olLayer ||
71
+ new Vector({
72
+ source: new VectorSource(),
73
+ style: options.style || defaultStyleFunction,
74
+ });
75
+ }
76
+ /**
77
+ * Create a copy of the RoutingLayer.
78
+ * @param {Object} newOptions Options to override
79
+ * @return {RoutingLayer} A RoutingLayer
80
+ */
81
+ clone(newOptions) {
82
+ return new RoutingLayer(Object.assign(Object.assign({}, this.options), newOptions));
83
+ }
84
+ }
85
+ export default RoutingLayer;
@@ -0,0 +1,25 @@
1
+ import { Coordinate } from 'ol/coordinate';
2
+ import { LayerGetFeatureInfoResponse } from '../../types';
3
+ import Layer, { OlLayerOptions } from './Layer';
4
+ /**
5
+ * A class use to display vector data.
6
+ *
7
+ * @classproperty {ol/Map~Map} map - The map where the layer is displayed.
8
+ * @extends {Layer}
9
+ */
10
+ declare class VectorLayer extends Layer {
11
+ /**
12
+ * Request feature information for a given coordinate.
13
+ * @param {ol/coordinate~Coordinate} coordinate the coordinate to request the information at.
14
+ * @return {Promise<FeatureInfo>} Promise with features, layer and coordinate.
15
+ */
16
+ getFeatureInfoAtCoordinate(coordinate: Coordinate): Promise<LayerGetFeatureInfoResponse>;
17
+ /**
18
+ * Create a copy of the VectorLayer.
19
+ * @param {Object} newOptions Options to override
20
+ * @return {VectorLayer} A VectorLayer
21
+ */
22
+ clone(newOptions: OlLayerOptions): VectorLayer;
23
+ }
24
+ export default VectorLayer;
25
+ //# sourceMappingURL=VectorLayer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"VectorLayer.d.ts","sourceRoot":"","sources":["../../../src/ol/layers/VectorLayer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,2BAA2B,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,KAAK,EAAE,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEhD;;;;;GAKG;AACH,cAAM,WAAY,SAAQ,KAAK;IAC7B;;;;OAIG;IACH,0BAA0B,CACxB,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,2BAA2B,CAAC;IAkBvC;;;;OAIG;IACH,KAAK,CAAC,UAAU,EAAE,cAAc;CAGjC;AAED,eAAe,WAAW,CAAC"}