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 @@
1
+ {"version":3,"file":"getMaplibreRender.d.ts","sourceRoot":"","sources":["../../../src/common/utils/getMaplibreRender.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE9C;;GAEG;AAEH,MAAM,CAAC,OAAO,UAAU,iBAAiB,CACvC,aAAa,EAAE,aAAa,GAC3B,cAAc,CAuChB"}
@@ -0,0 +1,38 @@
1
+ import { toLonLat } from 'ol/proj';
2
+ import { toDegrees } from 'ol/math';
3
+ /**
4
+ * Return the render function fo the olLayer of a MaplibreLayer
5
+ */
6
+ export default function getMaplibreRender(maplibreLayer) {
7
+ let emptyDiv;
8
+ return (frameState) => {
9
+ const { map, mbMap, olLayer } = maplibreLayer;
10
+ if (!map || !mbMap) {
11
+ if (!emptyDiv) {
12
+ emptyDiv = document.createElement('div');
13
+ }
14
+ return emptyDiv;
15
+ }
16
+ const canvas = mbMap.getCanvas();
17
+ const { viewState } = frameState;
18
+ const opacity = (olLayer === null || olLayer === void 0 ? void 0 : olLayer.getOpacity()) || 1;
19
+ canvas.style.opacity = `${opacity}`;
20
+ // adjust view parameters in mapbox
21
+ mbMap.jumpTo({
22
+ center: toLonLat(viewState.center),
23
+ zoom: viewState.zoom - 1,
24
+ bearing: toDegrees(-viewState.rotation),
25
+ });
26
+ if (!canvas.isConnected) {
27
+ // The canvas is not connected to the DOM, request a map rendering at the next animation frame
28
+ // to set the canvas size.
29
+ map.render();
30
+ }
31
+ else if (canvas.width !== frameState.size[0] ||
32
+ canvas.height !== frameState.size[1]) {
33
+ mbMap.resize();
34
+ }
35
+ mbMap.redraw();
36
+ return mbMap.getContainer();
37
+ };
38
+ }
@@ -0,0 +1,10 @@
1
+ import type { RealtimeMode } from '../../types';
2
+ import type { RealtimeModesType } from '../../api/RealtimeAPI';
3
+ /**
4
+ * Get the websocket channel suffix, depending on the current mode.
5
+ * @param {String} mode Mode 'topographic' ou 'schematic'.
6
+ * @private
7
+ */
8
+ declare const getModeSuffix: (mode: RealtimeMode, modes: RealtimeModesType) => string;
9
+ export default getModeSuffix;
10
+ //# sourceMappingURL=getRealtimeModeSuffix.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRealtimeModeSuffix.d.ts","sourceRoot":"","sources":["../../../src/common/utils/getRealtimeModeSuffix.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D;;;;GAIG;AACH,QAAA,MAAM,aAAa,SAAU,YAAY,SAAS,iBAAiB,KAAG,MACxB,CAAC;AAE/C,eAAe,aAAa,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Get the websocket channel suffix, depending on the current mode.
3
+ * @param {String} mode Mode 'topographic' ou 'schematic'.
4
+ * @private
5
+ */
6
+ const getModeSuffix = (mode, modes) => mode === modes.SCHEMATIC ? '_schematic' : '';
7
+ export default getModeSuffix;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Return the styleUrl with apiKey parameters set.
3
+ * @param {string} url a url.
4
+ * @param {Object<String,String>} params a list of key/value pair to add to the url.
5
+ * @ignore
6
+ */
7
+ declare const getUrlWithParams: (url: string, params: Object) => URL;
8
+ export default getUrlWithParams;
9
+ //# sourceMappingURL=getUrlWithParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getUrlWithParams.d.ts","sourceRoot":"","sources":["../../../src/common/utils/getUrlWithParams.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,QAAA,MAAM,gBAAgB,QAAS,MAAM,UAAU,MAAM,KAAG,GAYvD,CAAC;AAEF,eAAe,gBAAgB,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Return the styleUrl with apiKey parameters set.
3
+ * @param {string} url a url.
4
+ * @param {Object<String,String>} params a list of key/value pair to add to the url.
5
+ * @ignore
6
+ */
7
+ const getUrlWithParams = (url, params) => {
8
+ // Clean requets parameters, removing undefined and null values.
9
+ const newUrl = new URL(url);
10
+ const searchParams = params || {};
11
+ Object.entries(searchParams).forEach(([key, value]) => {
12
+ if (value !== undefined && value !== null) {
13
+ newUrl.searchParams.set(key, value);
14
+ }
15
+ });
16
+ return newUrl;
17
+ };
18
+ export default getUrlWithParams;
@@ -0,0 +1,16 @@
1
+ import { Coordinate } from 'ol/coordinate';
2
+ export declare type VehiclePosition = {
3
+ coord: Coordinate;
4
+ rotation: number;
5
+ };
6
+ /**
7
+ * Interpolate or not the vehicle position from a trajectory at a specific date.
8
+ *
9
+ * @param {number} now Current date to interpolate a position with. In ms.
10
+ * @param {RealtimeTrajectory} trajectory The trajectory to interpolate.
11
+ * @param {boolean} noInterpolate If true, the vehicle position is not interpolated on each render but only once.
12
+ * @returns
13
+ */
14
+ declare const getVehiclePosition: (now: number, trajectory: GeoJSONFeature, noInterpolate: boolean) => VehiclePosition;
15
+ export default getVehiclePosition;
16
+ //# sourceMappingURL=getVehiclePosition.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getVehiclePosition.d.ts","sourceRoot":"","sources":["../../../src/common/utils/getVehiclePosition.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAI3C,oBAAY,eAAe,GAAG;IAC5B,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;GAOG;AACH,QAAA,MAAM,kBAAkB,QACjB,MAAM,6CAEI,OAAO,KACrB,eA2DF,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,63 @@
1
+ import GeomType from 'ol/geom/GeometryType';
2
+ /**
3
+ * Interpolate or not the vehicle position from a trajectory at a specific date.
4
+ *
5
+ * @param {number} now Current date to interpolate a position with. In ms.
6
+ * @param {RealtimeTrajectory} trajectory The trajectory to interpolate.
7
+ * @param {boolean} noInterpolate If true, the vehicle position is not interpolated on each render but only once.
8
+ * @returns
9
+ */
10
+ const getVehiclePosition = (now, trajectory, noInterpolate) => {
11
+ const { time_intervals: timeIntervals, olGeometry: geometry, coordinate, } = trajectory.properties;
12
+ let coord;
13
+ let rotation;
14
+ if (noInterpolate && coordinate) {
15
+ coord = coordinate;
16
+ }
17
+ else if (geometry.getType() === GeomType.POINT) {
18
+ coord = geometry.getCoordinates();
19
+ }
20
+ else if (geometry.getType() === GeomType.LINE_STRING) {
21
+ const intervals = timeIntervals || [[]];
22
+ const firstInterval = intervals[0];
23
+ const lastInterval = intervals[intervals.length - 1];
24
+ // Between the last time interval of a trajectory event and the beginning
25
+ // of the new trajectory event, there is few seconds, can be 6 to 30
26
+ // seconds (that's why the vehicle jumps sometimes).
27
+ // So we make the choice here to display the last (or the first) position
28
+ // of an trajectory event instead of removing them, if the current date is
29
+ // outside the time intervals we display the vehicle at the last (or first) position known.
30
+ if (now < firstInterval[0]) {
31
+ // Display first position known.
32
+ [, , rotation] = firstInterval;
33
+ coord = geometry.getFirstCoordinate();
34
+ }
35
+ else if (now > lastInterval[0]) {
36
+ // Display last position known.
37
+ [, , rotation] = lastInterval;
38
+ coord = geometry.getLastCoordinate();
39
+ }
40
+ else {
41
+ // Interpolate position using time intervals.
42
+ for (let j = 0; j < intervals.length - 1; j += 1) {
43
+ // Rotation only available in realtime layer.
44
+ const [start, startFrac] = intervals[j];
45
+ const [end, endFrac] = intervals[j + 1];
46
+ if (start <= now && now <= end) {
47
+ // interpolate position inside the time interval.
48
+ const timeFrac = Math.min((now - start) / (end - start), 1);
49
+ const geomFrac = timeFrac * (endFrac - startFrac) + startFrac;
50
+ coord = geometry.getCoordinateAt(geomFrac);
51
+ [, , rotation] = intervals[j];
52
+ break;
53
+ }
54
+ }
55
+ }
56
+ }
57
+ else {
58
+ // eslint-disable-next-line no-console
59
+ console.error('This geometry type is not supported. Only Point or LineString are. Current geometry: ', geometry);
60
+ }
61
+ return { coord, rotation };
62
+ };
63
+ export default getVehiclePosition;
@@ -0,0 +1,16 @@
1
+ export { default as getUrlWithParams } from "./getUrlWithParams";
2
+ export { default as getMapboxMapCopyrights } from "./getMapboxMapCopyrights";
3
+ export { default as removeDuplicate } from "./removeDuplicate";
4
+ export { default as createRealtimeFilters } from "./createRealtimeFilters";
5
+ export { default as getLayersAsFlatArray } from "./getLayersAsFlatArray";
6
+ export * from "./timeUtils";
7
+ export { default as sortByDelay } from "./sortByDelay";
8
+ export { default as renderTrajectories } from "./renderTrajectories";
9
+ export { default as getMaplibreRender } from "./getMaplibreRender";
10
+ export { default as getMapboxRender } from "./getMapboxRender";
11
+ export { default as debounceDeparturesMessages } from "./debounceDeparturesMessages";
12
+ export { default as debounceWebsocketMessages } from "./debounceWebsocketMessages";
13
+ export { default as sortAndFilterDepartures } from "./sortAndFilterDepartures";
14
+ export { default as compareDepartures } from "./compareDepartures";
15
+ export * as realtimeConfig from "./realtimeConfig";
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/common/utils/index.js"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ export { default as getUrlWithParams } from './getUrlWithParams';
2
+ export { default as getMapboxMapCopyrights } from './getMapboxMapCopyrights';
3
+ export { default as removeDuplicate } from './removeDuplicate';
4
+ export { default as createRealtimeFilters } from './createRealtimeFilters';
5
+ export { default as getLayersAsFlatArray } from './getLayersAsFlatArray';
6
+ export * from './timeUtils';
7
+ export { default as sortByDelay } from './sortByDelay';
8
+ export { default as renderTrajectories } from './renderTrajectories';
9
+ export { default as getMaplibreRender } from './getMaplibreRender';
10
+ export { default as getMapboxRender } from './getMapboxRender';
11
+ export { default as debounceDeparturesMessages } from './debounceDeparturesMessages';
12
+ export { default as debounceWebsocketMessages } from './debounceWebsocketMessages';
13
+ export { default as sortAndFilterDepartures } from './sortAndFilterDepartures';
14
+ export { default as compareDepartures } from './compareDepartures';
15
+ import * as realtimeConfig_1 from './realtimeConfig';
16
+ export { realtimeConfig_1 as realtimeConfig };
@@ -0,0 +1,49 @@
1
+ import { AnyCanvasContext, RealtimeMot } from '../../types';
2
+ /**
3
+ * Trajserv value: 'Tram', 'Subway / Metro / S-Bahn', 'Train', 'Bus', 'Ferry', 'Cable Car', 'Gondola', 'Funicular', 'Long distance bus', 'Rail',
4
+ * New endpoint use Rail instead of Train.
5
+ * New tracker values: null, "tram", "subway", "rail", "bus", "ferry", "cablecar", "gondola", "funicular", "coach".
6
+ *
7
+ * @ignore
8
+ */
9
+ export declare const types: RegExp[];
10
+ /**
11
+ * @ignore
12
+ */
13
+ export declare const bgColors: string[];
14
+ /**
15
+ * @ignore
16
+ */
17
+ export declare const textColors: string[];
18
+ /**
19
+ * @ignore
20
+ */
21
+ export declare const getTypeIndex: (type: RealtimeMot) => number;
22
+ /**
23
+ * @ignore
24
+ */
25
+ export declare const getRadius: (type: RealtimeMot, zoom: number) => number;
26
+ /**
27
+ * @ignore
28
+ */
29
+ export declare const getBgColor: (type: RealtimeMot) => string;
30
+ /**
31
+ * @ignore
32
+ */
33
+ export declare const getTextColor: (type: RealtimeMot) => string;
34
+ /**
35
+ * @ignore
36
+ */
37
+ export declare const getTextSize: (ctx: AnyCanvasContext, markerSize: number, text: string, fontSize: number) => number;
38
+ /**
39
+ * @ignore
40
+ * @param {number} delayInMs Delay in milliseconds.
41
+ * @param {boolean} cancelled true if the journey is cancelled.
42
+ * @param {boolean} isDelayText true if the color is used for delay text of the symbol.
43
+ */
44
+ export declare const getDelayColor: (delayInMs: number, cancelled: boolean, isDelayText: boolean) => string;
45
+ /**
46
+ * @ignore
47
+ */
48
+ export declare const getDelayText: (delayInMs: number, cancelled: boolean) => string;
49
+ //# sourceMappingURL=realtimeConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtimeConfig.d.ts","sourceRoot":"","sources":["../../../src/common/utils/realtimeConfig.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAe5D;;;;;;GAMG;AACH,eAAO,MAAM,KAAK,EAAE,MAAM,EAWzB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,MAAM,EAW5B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,MAAM,EAW9B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,SAAU,WAAW,KAAG,MAKhD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,SAAS,SAAU,WAAW,QAAQ,MAAM,KAAG,MAO3D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,SAAU,WAAW,KAAG,MAO9C,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,SAAU,WAAW,KAAG,MAOhD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,WAAW,QACjB,gBAAgB,cACT,MAAM,QACZ,MAAM,YACF,MAAM,KACf,MAkBF,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,aAAa,cACb,MAAM,aACN,OAAO,eACL,OAAO,KACnB,MAoBF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,cAAe,MAAM,aAAa,OAAO,KAAG,MAmBpE,CAAC"}
@@ -0,0 +1,173 @@
1
+ const radiusMapping = [
2
+ [0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7],
3
+ [0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7],
4
+ [0, 0, 0, 0, 0, 2, 2, 3, 7, 7, 7, 12, 15, 15, 15, 15, 15],
5
+ [0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7],
6
+ [0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7],
7
+ [0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7],
8
+ [0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7],
9
+ [0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7],
10
+ [0, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7],
11
+ [0, 0, 0, 0, 0, 2, 2, 3, 7, 7, 7, 12, 15, 15, 15, 15, 15],
12
+ ];
13
+ /**
14
+ * Trajserv value: 'Tram', 'Subway / Metro / S-Bahn', 'Train', 'Bus', 'Ferry', 'Cable Car', 'Gondola', 'Funicular', 'Long distance bus', 'Rail',
15
+ * New endpoint use Rail instead of Train.
16
+ * New tracker values: null, "tram", "subway", "rail", "bus", "ferry", "cablecar", "gondola", "funicular", "coach".
17
+ *
18
+ * @ignore
19
+ */
20
+ export const types = [
21
+ /^Tram/i,
22
+ /^Subway( \/ Metro \/ S-Bahn)?/i,
23
+ /^Train/i,
24
+ /^Bus/i,
25
+ /^Ferry/i,
26
+ /^Cable ?Car/i,
27
+ /^Gondola/i,
28
+ /^Funicular/i,
29
+ /^(Long distance bus|coach)/i,
30
+ /^Rail/i, // New endpoint use Rail instead of Train.
31
+ ];
32
+ /**
33
+ * @ignore
34
+ */
35
+ export const bgColors = [
36
+ '#ffb400',
37
+ '#ff5400',
38
+ '#ff8080',
39
+ '#ea0000',
40
+ '#3000ff',
41
+ '#ffb400',
42
+ '#41a27b',
43
+ '#00d237',
44
+ '#b5b5b5',
45
+ '#ff8080',
46
+ ];
47
+ /**
48
+ * @ignore
49
+ */
50
+ export const textColors = [
51
+ '#000000',
52
+ '#ffffff',
53
+ '#000000',
54
+ '#ffffff',
55
+ '#ffffff',
56
+ '#000000',
57
+ '#ffffff',
58
+ '#000000',
59
+ '#000000',
60
+ '#000000',
61
+ ];
62
+ /**
63
+ * @ignore
64
+ */
65
+ export const getTypeIndex = (type) => {
66
+ if (typeof type === 'string') {
67
+ return types.findIndex((t) => t.test(type));
68
+ }
69
+ return type;
70
+ };
71
+ /**
72
+ * @ignore
73
+ */
74
+ export const getRadius = (type, zoom) => {
75
+ try {
76
+ const typeIdx = getTypeIndex(type || 0);
77
+ return radiusMapping[typeIdx][zoom];
78
+ }
79
+ catch (e) {
80
+ return 1;
81
+ }
82
+ };
83
+ /**
84
+ * @ignore
85
+ */
86
+ export const getBgColor = (type) => {
87
+ try {
88
+ const typeIdx = getTypeIndex(type);
89
+ return bgColors[typeIdx];
90
+ }
91
+ catch (e) {
92
+ return '#ffffff';
93
+ }
94
+ };
95
+ /**
96
+ * @ignore
97
+ */
98
+ export const getTextColor = (type) => {
99
+ try {
100
+ const typeIdx = getTypeIndex(type);
101
+ return textColors[typeIdx];
102
+ }
103
+ catch (e) {
104
+ return '#ffffff';
105
+ }
106
+ };
107
+ /**
108
+ * @ignore
109
+ */
110
+ export const getTextSize = (ctx, markerSize, text, fontSize) => {
111
+ if (!ctx) {
112
+ return 0;
113
+ }
114
+ ctx.font = `bold ${fontSize}px Arial`;
115
+ let newText = ctx.measureText(text);
116
+ const maxiter = 25;
117
+ let i = 0;
118
+ while (newText.width > markerSize - 6 && i < maxiter) {
119
+ // eslint-disable-next-line no-param-reassign
120
+ fontSize -= 0.5;
121
+ ctx.font = `bold ${fontSize}px arial, sans-serif`;
122
+ newText = ctx.measureText(text);
123
+ i += 1;
124
+ }
125
+ return fontSize;
126
+ };
127
+ /**
128
+ * @ignore
129
+ * @param {number} delayInMs Delay in milliseconds.
130
+ * @param {boolean} cancelled true if the journey is cancelled.
131
+ * @param {boolean} isDelayText true if the color is used for delay text of the symbol.
132
+ */
133
+ export const getDelayColor = (delayInMs, cancelled, isDelayText) => {
134
+ if (cancelled) {
135
+ return isDelayText ? '#ff0000' : '#a0a0a0'; // red or gray
136
+ }
137
+ if (delayInMs >= 3600000) {
138
+ return '#ed004c'; // pink { r: 237, g: 0, b: 76, s: '237,0,76' };
139
+ }
140
+ if (delayInMs >= 500000) {
141
+ return '#e80000'; // red { r: 232, g: 0, b: 0, s: '232,0,0' };
142
+ }
143
+ if (delayInMs >= 300000) {
144
+ return '#ff4a00'; // orange { r: 255, g: 74, b: 0, s: '255,74,0' };
145
+ }
146
+ if (delayInMs >= 180000) {
147
+ return '#f7bf00'; // yellow { r: 247, g: 191, b: 0, s: '247,191,0' };
148
+ }
149
+ if (delayInMs === null) {
150
+ return '#a0a0a0'; // grey { r: 160, g: 160, b: 160, s: '160,160,160' };
151
+ }
152
+ return '#00a00c'; // green { r: 0, g: 160, b: 12, s: '0,160,12' };
153
+ };
154
+ /**
155
+ * @ignore
156
+ */
157
+ export const getDelayText = (delayInMs, cancelled) => {
158
+ if (cancelled) {
159
+ return String.fromCodePoint(0x00d7);
160
+ }
161
+ if (delayInMs > 3600000) {
162
+ const rounded = Math.round(delayInMs / 3600000);
163
+ return `+${rounded}h`;
164
+ }
165
+ if (delayInMs > 59000) {
166
+ const rounded = Math.round(delayInMs / 60000);
167
+ return `+${rounded}m`;
168
+ }
169
+ if (delayInMs > 0) {
170
+ return `+${delayInMs}s`;
171
+ }
172
+ return '';
173
+ };
@@ -0,0 +1,10 @@
1
+ /**
2
+ * This function remove duplicates lower case string value of an array.
3
+ * It removes also null, undefined or non string values.
4
+ *
5
+ * @param {array} array Array of values.
6
+ * @ignore
7
+ */
8
+ declare const removeDuplicate: (array: any[]) => any[];
9
+ export default removeDuplicate;
10
+ //# sourceMappingURL=removeDuplicate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"removeDuplicate.d.ts","sourceRoot":"","sources":["../../../src/common/utils/removeDuplicate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,QAAA,MAAM,eAAe,UAAW,GAAG,EAAE,UAYpC,CAAC;AAEF,eAAe,eAAe,CAAC"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * This function remove duplicates lower case string value of an array.
3
+ * It removes also null, undefined or non string values.
4
+ *
5
+ * @param {array} array Array of values.
6
+ * @ignore
7
+ */
8
+ const removeDuplicate = (array) => {
9
+ const arrWithoutEmptyValues = array.filter((val) => val !== undefined && val !== null && val.trim && val.trim());
10
+ const lowerCasesValues = arrWithoutEmptyValues.map((str) => str.toLowerCase());
11
+ const uniqueLowerCaseValues = [...new Set(lowerCasesValues)];
12
+ const uniqueValues = uniqueLowerCaseValues.map((uniqueStr) => arrWithoutEmptyValues.find((str) => str.toLowerCase() === uniqueStr));
13
+ return uniqueValues;
14
+ };
15
+ export default removeDuplicate;
@@ -0,0 +1,17 @@
1
+ import { AnyCanvas, RealtimeRenderState, RealtimeStyleFunction, RealtimeStyleOptions, RealtimeTrajectories, ViewState } from '../../types';
2
+ /**
3
+ * Draw all the trajectories available in a canvas.
4
+ * @param {HTMLCanvas|HTMLOffscreenCanvas} The canvas where to draw the trajectories.
5
+ * @param {ViewState} trajectories An array of trajectories.
6
+ * @param {Function} style A function that returns a canvas representing a vehicle of a specific trajectory.
7
+ * @param {ViewState} viewState The view state of the map.
8
+ * @param {boolean} options.hoverVehicleId The id of the vehicle to highlight.
9
+ * @param {boolean} options.selectedVehicleId The id of the vehicle to select.
10
+ * @param {boolean} options.noInterpolate If true trajectories are not interpolated but
11
+ * drawn at the last known coordinate. Use this for performance optimization
12
+ * during map navigation.
13
+ * @private
14
+ */
15
+ declare const renderTrajectories: (canvas: AnyCanvas, trajectories: RealtimeTrajectories, style: RealtimeStyleFunction, viewState: ViewState, options: RealtimeStyleOptions) => RealtimeRenderState;
16
+ export default renderTrajectories;
17
+ //# sourceMappingURL=renderTrajectories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"renderTrajectories.d.ts","sourceRoot":"","sources":["../../../src/common/utils/renderTrajectories.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,SAAS,EACT,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,oBAAoB,EACpB,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,kBAAkB,WACd,SAAS,gBACH,oBAAoB,SAC3B,qBAAqB,aACjB,SAAS,WACX,oBAAoB,KAC5B,mBAmLF,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
@@ -0,0 +1,121 @@
1
+ /* eslint-disable no-param-reassign */
2
+ import { compose, apply, create } from 'ol/transform';
3
+ import getVehiclePosition from './getVehiclePosition';
4
+ /**
5
+ * Draw all the trajectories available in a canvas.
6
+ * @param {HTMLCanvas|HTMLOffscreenCanvas} The canvas where to draw the trajectories.
7
+ * @param {ViewState} trajectories An array of trajectories.
8
+ * @param {Function} style A function that returns a canvas representing a vehicle of a specific trajectory.
9
+ * @param {ViewState} viewState The view state of the map.
10
+ * @param {boolean} options.hoverVehicleId The id of the vehicle to highlight.
11
+ * @param {boolean} options.selectedVehicleId The id of the vehicle to select.
12
+ * @param {boolean} options.noInterpolate If true trajectories are not interpolated but
13
+ * drawn at the last known coordinate. Use this for performance optimization
14
+ * during map navigation.
15
+ * @private
16
+ */
17
+ const renderTrajectories = (canvas, trajectories, style, viewState, options) => {
18
+ if (!canvas) {
19
+ return { renderedTrajectories: [] };
20
+ }
21
+ const { time = Date.now(), size = [], center, resolution, rotation = 0, pixelRatio = 1, } = viewState;
22
+ if (!resolution || !center) {
23
+ return { renderedTrajectories: [] };
24
+ }
25
+ const { noInterpolate = false, hoverVehicleId, selectedVehicleId, filter, } = options;
26
+ const context = canvas.getContext('2d');
27
+ context === null || context === void 0 ? void 0 : context.clearRect(0, 0, canvas.width, canvas.height);
28
+ const [width, height] = size;
29
+ if (width && height && (canvas.width !== width || canvas.height !== height)) {
30
+ [canvas.width, canvas.height] = [width * pixelRatio, height * pixelRatio];
31
+ }
32
+ const coordinateToPixelTransform = compose(create(), size[0] / 2, size[1] / 2, 1 / resolution, -1 / resolution, -rotation, -center[0], -center[1]);
33
+ // Offscreen canvas has not style attribute
34
+ if (canvas.style) {
35
+ canvas.style.width = `${canvas.width / pixelRatio}px`;
36
+ canvas.style.height = `${canvas.height / pixelRatio}px`;
37
+ }
38
+ let hoverVehicleImg;
39
+ let hoverVehiclePx;
40
+ let hoverVehicleWidth;
41
+ let hoverVehicleHeight;
42
+ let selectedVehicleImg;
43
+ let selectedVehiclePx;
44
+ let selectedVehicleWidth;
45
+ let selectedVehicleHeight;
46
+ const renderedTrajectories = [];
47
+ for (let i = trajectories.length - 1; i >= 0; i -= 1) {
48
+ const trajectory = trajectories[i];
49
+ // Filter out trajectories
50
+ if (filter && !filter(trajectory)) {
51
+ // eslint-disable-next-line no-continue
52
+ continue;
53
+ }
54
+ // We simplify the trajectory object
55
+ const { train_id: id, timeOffset } = trajectory.properties;
56
+ // We set the rotation and the timeFraction of the trajectory (used by tralis).
57
+ // if rotation === null that seems there is no rotation available.
58
+ const { coord, rotation: rotationIcon } = getVehiclePosition(time - (timeOffset || 0), trajectory, noInterpolate);
59
+ // We store the current vehicle position to the trajectory.
60
+ trajectories[i].properties.coordinate = coord;
61
+ trajectories[i].properties.rotation = rotationIcon;
62
+ if (!coord) {
63
+ // eslint-disable-next-line no-continue
64
+ continue;
65
+ }
66
+ let px = apply(coordinateToPixelTransform, [...coord]);
67
+ if (!px) {
68
+ // eslint-disable-next-line no-continue
69
+ continue;
70
+ }
71
+ px = px.map((p) => p * pixelRatio);
72
+ if (px[0] < 0 ||
73
+ px[0] > canvas.width ||
74
+ px[1] < 0 ||
75
+ px[1] > canvas.height) {
76
+ // eslint-disable-next-line no-continue
77
+ continue;
78
+ }
79
+ const vehicleImg = style(trajectory, viewState, options);
80
+ if (!vehicleImg) {
81
+ // eslint-disable-next-line no-continue
82
+ continue;
83
+ }
84
+ const imgWidth = vehicleImg.width;
85
+ const imgHeight = vehicleImg.height;
86
+ if (hoverVehicleId !== id && selectedVehicleId !== id) {
87
+ context === null || context === void 0 ? void 0 : context.drawImage(vehicleImg, px[0] - imgWidth / 2, px[1] - imgHeight / 2, imgWidth, imgHeight);
88
+ }
89
+ if (hoverVehicleId && hoverVehicleId === id) {
90
+ // Store the canvas to draw it at the end
91
+ hoverVehicleImg = vehicleImg;
92
+ hoverVehiclePx = px;
93
+ hoverVehicleWidth = imgWidth;
94
+ hoverVehicleHeight = imgHeight;
95
+ }
96
+ if (selectedVehicleId && selectedVehicleId === id) {
97
+ // Store the canvas to draw it at the end
98
+ selectedVehicleImg = vehicleImg;
99
+ selectedVehiclePx = px;
100
+ selectedVehicleWidth = imgWidth;
101
+ selectedVehicleHeight = imgHeight;
102
+ }
103
+ renderedTrajectories.push(trajectory);
104
+ }
105
+ if (selectedVehicleImg &&
106
+ selectedVehiclePx &&
107
+ selectedVehicleWidth &&
108
+ selectedVehicleHeight) {
109
+ context === null || context === void 0 ? void 0 : context.drawImage(selectedVehicleImg, selectedVehiclePx[0] - selectedVehicleWidth / 2, selectedVehiclePx[1] - selectedVehicleHeight / 2, selectedVehicleWidth, selectedVehicleHeight);
110
+ }
111
+ if (hoverVehicleImg &&
112
+ hoverVehiclePx &&
113
+ hoverVehicleWidth &&
114
+ hoverVehicleHeight) {
115
+ context === null || context === void 0 ? void 0 : context.drawImage(hoverVehicleImg, hoverVehiclePx[0] - hoverVehicleWidth / 2, hoverVehiclePx[1] - hoverVehicleHeight / 2, hoverVehicleWidth, hoverVehicleHeight);
116
+ }
117
+ return {
118
+ renderedTrajectories,
119
+ };
120
+ };
121
+ export default renderTrajectories;
@@ -0,0 +1,16 @@
1
+ import { RealtimeAPIDeparturesById } from '../../api/RealtimeAPI';
2
+ import type { RealtimeDepartureExtended } from '../../types';
3
+ /**
4
+ * This function sort Departures by arrival time and filter out unwanted departures:
5
+ * - when dparture time is in the past
6
+ * - when departure are duplicated
7
+ * - when departure is not in the next 30 min
8
+ *
9
+ * @param {Object} depObject The object containing departures by id.
10
+ * @param {boolean} [sortByMinArrivalTime=false] If true sort departures by arrival time.
11
+ * @return {Array<Departure>} Return departures array.
12
+ * @private
13
+ */
14
+ declare const sortAndfilterDepartures: (depObject: RealtimeAPIDeparturesById, sortByMinArrivalTime?: boolean, maxDepartureAge?: number) => RealtimeDepartureExtended[];
15
+ export default sortAndfilterDepartures;
16
+ //# sourceMappingURL=sortAndFilterDepartures.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sortAndFilterDepartures.d.ts","sourceRoot":"","sources":["../../../src/common/utils/sortAndFilterDepartures.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAG7D;;;;;;;;;;GAUG;AACH,QAAA,MAAM,uBAAuB,cAChB,yBAAyB,yBACd,OAAO,oBACZ,MAAM,KACtB,yBAAyB,EAwD3B,CAAC;AAEF,eAAe,uBAAuB,CAAC"}