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

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 +50787 -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 +120 -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,328 @@
1
+ /**
2
+ * Class used to facilitate connection to a WebSocketAPI and
3
+ * also to manage properly messages send to the WebSocketAPI.
4
+ * This class must not contain any specific implementation.
5
+ */
6
+ class WebSocketAPI {
7
+ constructor() {
8
+ this.defineProperties();
9
+ }
10
+ defineProperties() {
11
+ Object.defineProperties(this, {
12
+ closed: {
13
+ get: () => !!(this.websocket &&
14
+ this.websocket.readyState === this.websocket.CLOSED),
15
+ },
16
+ closing: {
17
+ get: () => !!(this.websocket &&
18
+ this.websocket.readyState === this.websocket.CLOSING),
19
+ },
20
+ connecting: {
21
+ get: () => !!(this.websocket &&
22
+ this.websocket.readyState === this.websocket.CONNECTING),
23
+ },
24
+ open: {
25
+ get: () => !!(this.websocket && this.websocket.readyState === this.websocket.OPEN),
26
+ },
27
+ /**
28
+ * Array of message to send on open.
29
+ * @type {Array<string>}
30
+ * @private
31
+ */
32
+ messagesOnOpen: {
33
+ value: [],
34
+ writable: true,
35
+ },
36
+ /**
37
+ * Array of subscriptions.
38
+ * @type {Array<WebSocketSubscription>}
39
+ * @private
40
+ */
41
+ subscriptions: {
42
+ value: [],
43
+ writable: true,
44
+ },
45
+ /**
46
+ * List of channels subscribed.
47
+ * @type {WebSocketSubscribed}
48
+ * @private
49
+ */
50
+ subscribed: {
51
+ value: {},
52
+ writable: true,
53
+ },
54
+ });
55
+ }
56
+ /**
57
+ * Get the websocket request string.
58
+ *
59
+ * @param {string} method Request mehtod {GET, SUB}.
60
+ * @param {WebSocketParameters} params Request parameters.
61
+ * @param {string} params.channel Channel name
62
+ * @param {string} [params.args] Request arguments
63
+ * @param {Number|string} [params.id] Request identifier
64
+ * @return {string} request string
65
+ * @private
66
+ */
67
+ static getRequestString(method, params = {}) {
68
+ let reqStr = `${method} ${params.channel}`;
69
+ reqStr += params.args ? ` ${params.args}` : '';
70
+ reqStr += params.id ? ` ${params.id}` : '';
71
+ return reqStr.trim();
72
+ }
73
+ /**
74
+ * (Re)connect the websocket.
75
+ *
76
+ * @param {string} url Websocket url.
77
+ * @param {function} onOpen Callback called when the websocket connection is opened and before subscriptions of previous subscriptions.
78
+ * @private
79
+ */
80
+ connect(url, onOpen = () => { }) {
81
+ if (this.websocket && !this.closed) {
82
+ this.websocket.close();
83
+ }
84
+ /** @ignore */
85
+ this.websocket = new WebSocket(url);
86
+ if (!this.open) {
87
+ this.websocket.addEventListener('open', () => {
88
+ onOpen();
89
+ this.subscribePreviousSubscriptions();
90
+ });
91
+ }
92
+ else {
93
+ onOpen();
94
+ this.subscribePreviousSubscriptions();
95
+ }
96
+ }
97
+ /**
98
+ * Close the websocket definitively.
99
+ *
100
+ * @private
101
+ */
102
+ close() {
103
+ if (this.websocket) {
104
+ this.websocket.onclose = null;
105
+ this.websocket.close();
106
+ this.websocket = undefined;
107
+ this.messagesOnOpen = [];
108
+ }
109
+ }
110
+ /**
111
+ * Sends a message to the websocket.
112
+ *
113
+ * @param {message} message Message to send.
114
+ * @private
115
+ */
116
+ send(message) {
117
+ if (!this.websocket) {
118
+ return;
119
+ }
120
+ const send = () => {
121
+ var _a;
122
+ (_a = this.websocket) === null || _a === void 0 ? void 0 : _a.send(message);
123
+ };
124
+ if (!this.open) {
125
+ // This 'if' avoid sending 2 identical BBOX message on open,
126
+ if (!this.messagesOnOpen.includes(message)) {
127
+ this.messagesOnOpen.push(message);
128
+ this.websocket.addEventListener('open', () => {
129
+ this.messagesOnOpen = [];
130
+ send();
131
+ });
132
+ this.websocket.addEventListener('close', () => {
133
+ this.messagesOnOpen = [];
134
+ });
135
+ }
136
+ }
137
+ else if (!this.messagesOnOpen.includes(message)) {
138
+ send();
139
+ }
140
+ }
141
+ addEvents(onMessage, onError) {
142
+ if (this.websocket) {
143
+ this.websocket.addEventListener('message', onMessage);
144
+ if (onError) {
145
+ this.websocket.addEventListener('error', onError);
146
+ this.websocket.addEventListener('close', onError);
147
+ }
148
+ }
149
+ }
150
+ removeEvents(onMessage, onError) {
151
+ if (this.websocket) {
152
+ this.websocket.removeEventListener('message', onMessage);
153
+ if (onError) {
154
+ this.websocket.removeEventListener('error', onError);
155
+ this.websocket.removeEventListener('close', onError);
156
+ }
157
+ }
158
+ }
159
+ /**
160
+ * Listen to websocket messages.
161
+ *
162
+ * @param {WebSocketParameters} params Parameters for the websocket get request
163
+ * @param {function} cb callback on listen
164
+ * @param {function} errorCb Callback on error
165
+ * @return {{onMessage: function, errorCb: function}} Object with onMessage and error callbacks
166
+ * @private
167
+ */
168
+ listen(params, cb, errorCb) {
169
+ // Remove the previous identical callback
170
+ this.unlisten(params, cb);
171
+ // We wrap the message callback to be sure we only propagate the message if it is for the right channel.
172
+ const onMessage = (evt) => {
173
+ let data;
174
+ try {
175
+ data = JSON.parse(evt.data);
176
+ }
177
+ catch (err) {
178
+ // eslint-disable-next-line no-console
179
+ console.error('WebSocket: unable to parse JSON data', err, evt.data);
180
+ return;
181
+ }
182
+ let source = params.channel;
183
+ source += params.args ? ` ${params.args}` : '';
184
+ // Buffer channel message return a list of other channels to propagate to proper callbacks.
185
+ let contents;
186
+ if (data.source === 'buffer') {
187
+ contents = data
188
+ .content;
189
+ }
190
+ else {
191
+ contents = [data];
192
+ }
193
+ contents.forEach((content) => {
194
+ // Because of backend optimization, the last content is null.
195
+ if ((content === null || content === void 0 ? void 0 : content.source) === source &&
196
+ (!params.id || params.id === data.client_reference)) {
197
+ cb(content);
198
+ }
199
+ });
200
+ };
201
+ this.addEvents(onMessage, errorCb);
202
+ return { onMessageCb: onMessage, onErrorCb: errorCb };
203
+ }
204
+ /**
205
+ * Unlisten websocket messages.
206
+ *
207
+ * @param {Object} params Parameters for the websocket get request.
208
+ * @param {function} cb Callback used when listen.
209
+ * @private
210
+ */
211
+ unlisten(params, cb) {
212
+ [...(this.subscriptions || []), ...(this.requests || [])]
213
+ .filter((s) => s.params.channel === params.channel && (!cb || s.cb === cb))
214
+ .forEach(({ onMessageCb, onErrorCb }) => {
215
+ this.removeEvents(onMessageCb, onErrorCb);
216
+ });
217
+ }
218
+ /**
219
+ * Sends a get request to the websocket.
220
+ * The callback is called only once, when the response is received or when the call returns an error.
221
+ *
222
+ * @param {Object} params Parameters for the websocket get request
223
+ * @param {function} onMessage callback on message event
224
+ * @param {function} onError Callback on error and close event
225
+ * @private
226
+ */
227
+ get(params, cb, errorCb) {
228
+ const requestString = WebSocketAPI.getRequestString('GET', params);
229
+ this.send(requestString);
230
+ // We wrap the callbacks to make sure they are called only once.
231
+ const once = (callback) =>
232
+ // @ts-ignore: Spread error
233
+ (...args) => {
234
+ // @ts-ignore: Spread error
235
+ callback(...args);
236
+ const index = this.requests.findIndex((request) => requestString === request.requestString && cb === request.cb);
237
+ const { onMessageCb, onErrorCb } = this.requests[index];
238
+ this.removeEvents(onMessageCb, onErrorCb);
239
+ this.requests.splice(index, 1);
240
+ };
241
+ const { onMessageCb, onErrorCb } = this.listen(params, once(cb), errorCb && once(errorCb));
242
+ // Store requests and callbacks to be able to remove them.
243
+ if (!this.requests) {
244
+ this.requests = [];
245
+ }
246
+ const index = this.requests.findIndex((request) => requestString === request.requestString && cb === request.cb);
247
+ const newReq = {
248
+ params,
249
+ requestString,
250
+ cb,
251
+ errorCb,
252
+ onMessageCb,
253
+ onErrorCb,
254
+ };
255
+ if (index > -1) {
256
+ this.requests[index] = newReq;
257
+ }
258
+ else {
259
+ this.requests.push(newReq);
260
+ }
261
+ }
262
+ /**
263
+ * Subscribe to a given channel.
264
+ *
265
+ * @param {Object} params Parameters for the websocket get request
266
+ * @param {function} cb callback on listen
267
+ * @param {function} errorCb Callback on error
268
+ * @param {boolean} quiet if false, no GET or SUB requests are send, only the callback is registered.
269
+ * @private
270
+ */
271
+ subscribe(params, cb, errorCb, quiet = false) {
272
+ const { onMessageCb, onErrorCb } = this.listen(params, cb, errorCb);
273
+ const reqStr = WebSocketAPI.getRequestString('', params);
274
+ const index = this.subscriptions.findIndex((subcr) => params.channel === subcr.params.channel && cb === subcr.cb);
275
+ const newSubscr = { params, cb, errorCb, onMessageCb, onErrorCb, quiet };
276
+ if (index > -1) {
277
+ this.subscriptions[index] = newSubscr;
278
+ }
279
+ else {
280
+ this.subscriptions.push(newSubscr);
281
+ }
282
+ if (!this.subscribed[reqStr]) {
283
+ if (!newSubscr.quiet) {
284
+ this.send(`GET ${reqStr}`);
285
+ this.send(`SUB ${reqStr}`);
286
+ }
287
+ this.subscribed[reqStr] = true;
288
+ }
289
+ }
290
+ /**
291
+ * Unsubscribe from a channel.
292
+ * @param {string} source source to unsubscribe from
293
+ * @param {function} cb Callback function to unsubscribe. If null all subscriptions for the channel will be unsubscribed.
294
+ * @private
295
+ */
296
+ unsubscribe(source, cb) {
297
+ const toRemove = this.subscriptions.filter((s) => s.params.channel === source && (!cb || s.cb === cb));
298
+ toRemove.forEach(({ onMessageCb, onErrorCb }) => {
299
+ this.removeEvents(onMessageCb, onErrorCb);
300
+ });
301
+ this.subscriptions = this.subscriptions.filter((s) => s.params.channel !== source || (cb && s.cb !== cb));
302
+ // If there is no more subscriptions to this channel, and the removed subscriptions didn't register quietly,
303
+ // we DEL it.
304
+ if (source &&
305
+ this.subscribed[source] &&
306
+ !this.subscriptions.find((s) => s.params.channel === source) &&
307
+ toRemove.find((subscr) => !subscr.quiet)) {
308
+ this.send(`DEL ${source}`);
309
+ this.subscribed[source] = false;
310
+ }
311
+ }
312
+ /**
313
+ * After an auto reconnection we need to re-subscribe to the channels.
314
+ */
315
+ subscribePreviousSubscriptions() {
316
+ // Before to subscribe previous subscriptions we make sure they
317
+ // are all defined as unsubscribed, because this code is asynchrone
318
+ // and a subscription could have been added in between.
319
+ Object.keys(this.subscribed).forEach((key) => {
320
+ this.subscribed[key] = false;
321
+ });
322
+ // Subscribe all previous subscriptions.
323
+ [...this.subscriptions].forEach((s) => {
324
+ this.subscribe(s.params, s.cb, s.errorCb, s.quiet);
325
+ });
326
+ }
327
+ }
328
+ export default WebSocketAPI;
@@ -0,0 +1,76 @@
1
+ import BaseObject from 'ol/Object';
2
+ import type { AnyMap } from '../../types';
3
+ export declare type ControlCommonOptions = {
4
+ active?: Boolean;
5
+ element?: HTMLElement;
6
+ target?: HTMLElement;
7
+ render?: () => void;
8
+ };
9
+ /**
10
+ * A class representing a control to display on map.
11
+ *
12
+ * @example
13
+ * const control = new Control();
14
+ *
15
+ * @classproperty {ol/Map~Map|mapboxgl.Map} map - The map which the control refers to.
16
+ * @classproperty {boolean} active - Active the control.
17
+ * @classproperty {HTMLElement} element - The HTML element used to render the control.
18
+ * @classproperty {HTMLElement} target - The HTML element where to render the element property. Default is the map's element. Read only.
19
+ */
20
+ declare class ControlCommon extends BaseObject {
21
+ active: Boolean;
22
+ map?: AnyMap;
23
+ target?: HTMLElement;
24
+ element?: HTMLElement;
25
+ /**
26
+ * Constructor
27
+ *
28
+ * @param {Object} [options] Control options.
29
+ * @param {boolean} [options.active = true] Whether the control is active or not.
30
+ * @param {HTMLElement} [options.element] The HTML element used to render the control.
31
+ * @param {HTMLElement} [options.target] The HTML element where to render the element property. Default is the map's element.
32
+ * @param {function} [options.render] Render function called whenever the control needs to be rerendered.
33
+ */
34
+ constructor(options?: ControlCommonOptions);
35
+ /**
36
+ * Define control's properties.
37
+ *
38
+ * @private
39
+ * @ignore
40
+ */
41
+ defineProperties(options: ControlCommonOptions): void;
42
+ /**
43
+ * Attach the control to the map. Add events, html element ...
44
+ */
45
+ attachToMap(map: AnyMap): void;
46
+ /**
47
+ * Detach the control From the map. Remove events, html element ..
48
+ */
49
+ detachFromMap(): void;
50
+ /**
51
+ * Add listeners then renders the control.
52
+ * To be defined in inherited classes.
53
+ */
54
+ activate(): void;
55
+ /**
56
+ * Remove listeners added by activate() function then renders the control.
57
+ * To be defined in inherited classes.
58
+ */
59
+ deactivate(): void;
60
+ /**
61
+ * The default render function. It renders content in the HTML element.
62
+ * To be defined in inherited classes.
63
+ *
64
+ * @private
65
+ */
66
+ render(options?: any): void;
67
+ /**
68
+ * The default element to display if this.element is not defined.
69
+ * To be defined in inherited classes.
70
+ *
71
+ * @private
72
+ */
73
+ createDefaultElement(): void;
74
+ }
75
+ export default ControlCommon;
76
+ //# sourceMappingURL=ControlCommon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ControlCommon.d.ts","sourceRoot":"","sources":["../../../src/common/controls/ControlCommon.ts"],"names":[],"mappings":"AACA,OAAO,UAAU,MAAM,WAAW,CAAC;AACnC,OAAO,KAAK,EAAE,MAAM,EAAgB,MAAM,aAAa,CAAC;AAExD,oBAAY,oBAAoB,GAAG;IACjC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;GAUG;AACH,cAAM,aAAc,SAAQ,UAAU;IACpC,MAAM,EAAE,OAAO,CAAC;IAEhB,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB;;;;;;;;OAQG;gBACS,OAAO,GAAE,oBAAyB;IAe9C;;;;;OAKG;IACH,gBAAgB,CAAC,OAAO,EAAE,oBAAoB;IAuE9C;;OAEG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM;IAIvB;;OAEG;IACH,aAAa;IAIb;;;OAGG;IACH,QAAQ;IAIR;;;OAGG;IAEH,UAAU;IAOV;;;;;OAKG;IAEH,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG;IAKpB;;;;;OAKG;IAEH,oBAAoB;CAMrB;AAED,eAAe,aAAa,CAAC"}
@@ -0,0 +1,150 @@
1
+ import BaseObject from 'ol/Object';
2
+ /**
3
+ * A class representing a control to display on map.
4
+ *
5
+ * @example
6
+ * const control = new Control();
7
+ *
8
+ * @classproperty {ol/Map~Map|mapboxgl.Map} map - The map which the control refers to.
9
+ * @classproperty {boolean} active - Active the control.
10
+ * @classproperty {HTMLElement} element - The HTML element used to render the control.
11
+ * @classproperty {HTMLElement} target - The HTML element where to render the element property. Default is the map's element. Read only.
12
+ */
13
+ class ControlCommon extends BaseObject {
14
+ /**
15
+ * Constructor
16
+ *
17
+ * @param {Object} [options] Control options.
18
+ * @param {boolean} [options.active = true] Whether the control is active or not.
19
+ * @param {HTMLElement} [options.element] The HTML element used to render the control.
20
+ * @param {HTMLElement} [options.target] The HTML element where to render the element property. Default is the map's element.
21
+ * @param {function} [options.render] Render function called whenever the control needs to be rerendered.
22
+ */
23
+ constructor(options = {}) {
24
+ super(options);
25
+ this.defineProperties(options);
26
+ const { active } = Object.assign({ active: options.active !== false }, options);
27
+ /**
28
+ * @ignore
29
+ */
30
+ this.active = active;
31
+ }
32
+ /**
33
+ * Define control's properties.
34
+ *
35
+ * @private
36
+ * @ignore
37
+ */
38
+ defineProperties(options) {
39
+ const { target, element, render } = Object.assign({}, options);
40
+ Object.defineProperties(this, {
41
+ active: {
42
+ get: () => this.get('active'),
43
+ set: (newActive) => {
44
+ this.set('active', newActive);
45
+ if (newActive) {
46
+ this.activate();
47
+ }
48
+ else {
49
+ this.deactivate();
50
+ }
51
+ this.render();
52
+ },
53
+ },
54
+ map: {
55
+ get: () => this.get('map'),
56
+ set: (map) => {
57
+ // Remove previous node.
58
+ if (this.map && this.element && this.element.parentNode) {
59
+ this.element.parentNode.removeChild(this.element);
60
+ }
61
+ // Clean listeners
62
+ this.deactivate();
63
+ this.set('map', map);
64
+ if (this.map) {
65
+ // Add new node
66
+ const targett = this.target ||
67
+ (this.map.getTargetElement &&
68
+ this.map.getTargetElement()) ||
69
+ (this.map.getContainer &&
70
+ this.map.getContainer());
71
+ if (!this.element) {
72
+ this.createDefaultElement();
73
+ }
74
+ if (this.element) {
75
+ targett.appendChild(this.element);
76
+ }
77
+ // Add listeners
78
+ if (this.active) {
79
+ this.activate();
80
+ }
81
+ }
82
+ this.render();
83
+ },
84
+ },
85
+ target: {
86
+ value: target,
87
+ },
88
+ element: {
89
+ value: element,
90
+ writable: true,
91
+ },
92
+ render: {
93
+ /** @ignore */
94
+ value: render || this.render,
95
+ writable: true,
96
+ },
97
+ });
98
+ }
99
+ /**
100
+ * Attach the control to the map. Add events, html element ...
101
+ */
102
+ attachToMap(map) {
103
+ this.map = map;
104
+ }
105
+ /**
106
+ * Detach the control From the map. Remove events, html element ..
107
+ */
108
+ detachFromMap() {
109
+ this.map = undefined;
110
+ }
111
+ /**
112
+ * Add listeners then renders the control.
113
+ * To be defined in inherited classes.
114
+ */
115
+ activate() {
116
+ this.deactivate();
117
+ }
118
+ /**
119
+ * Remove listeners added by activate() function then renders the control.
120
+ * To be defined in inherited classes.
121
+ */
122
+ // eslint-disable-next-line class-methods-use-this
123
+ deactivate() {
124
+ // eslint-disable-next-line no-console
125
+ console.error('The function deactivate() must be implemented in subclasses');
126
+ }
127
+ /**
128
+ * The default render function. It renders content in the HTML element.
129
+ * To be defined in inherited classes.
130
+ *
131
+ * @private
132
+ */
133
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
134
+ render(options) {
135
+ // eslint-disable-next-line no-console
136
+ console.error('The function render() must be implemented in subclasses');
137
+ }
138
+ /**
139
+ * The default element to display if this.element is not defined.
140
+ * To be defined in inherited classes.
141
+ *
142
+ * @private
143
+ */
144
+ // eslint-disable-next-line class-methods-use-this
145
+ createDefaultElement() {
146
+ // eslint-disable-next-line no-console
147
+ console.error('The function createDefaultElement() must be implemented in subclasses');
148
+ }
149
+ }
150
+ export default ControlCommon;
@@ -0,0 +1,13 @@
1
+ import ControlCommon from './ControlCommon';
2
+ /**
3
+ * A class representing a copyright control to display on map.
4
+ * This class only draw an html element, with an empty string in it.
5
+ * Use subclasses to use it in an ol or mapbox map.
6
+ */
7
+ declare class CopyrightControlCommon extends ControlCommon {
8
+ render(): void;
9
+ createDefaultElement(): void;
10
+ getCopyrights(): string[];
11
+ }
12
+ export default CopyrightControlCommon;
13
+ //# sourceMappingURL=CopyrightControlCommon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyrightControlCommon.d.ts","sourceRoot":"","sources":["../../../src/common/controls/CopyrightControlCommon.ts"],"names":[],"mappings":"AACA,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAE5C;;;;GAIG;AACH,cAAM,sBAAuB,SAAQ,aAAa;IAChD,MAAM;IASN,oBAAoB;IAYpB,aAAa;CAQd;AAED,eAAe,sBAAsB,CAAC"}
@@ -0,0 +1,34 @@
1
+ /* eslint-disable max-classes-per-file */
2
+ import ControlCommon from './ControlCommon';
3
+ /**
4
+ * A class representing a copyright control to display on map.
5
+ * This class only draw an html element, with an empty string in it.
6
+ * Use subclasses to use it in an ol or mapbox map.
7
+ */
8
+ class CopyrightControlCommon extends ControlCommon {
9
+ render() {
10
+ if (!this.element) {
11
+ return;
12
+ }
13
+ this.element.innerHTML = this.active
14
+ ? this.getCopyrights().join(' | ')
15
+ : '';
16
+ }
17
+ createDefaultElement() {
18
+ this.element = document.createElement('div');
19
+ this.element.id = 'mbt-copyright';
20
+ Object.assign(this.element.style, {
21
+ position: 'absolute',
22
+ bottom: 0,
23
+ right: 0,
24
+ fontSize: '.8rem',
25
+ padding: '0 10px',
26
+ });
27
+ }
28
+ getCopyrights() {
29
+ // eslint-disable-next-line no-console
30
+ console.error('The getCopyrights() function must be implemented in subclasses.', this);
31
+ return [];
32
+ }
33
+ }
34
+ export default CopyrightControlCommon;
@@ -0,0 +1,55 @@
1
+ import { FeatureCollection } from '@turf/helpers';
2
+ import { Feature } from 'geojson';
3
+ import { StopsAPI } from '../../api';
4
+ import { StopsAPIOptions } from '../../api/StopsAPI';
5
+ import { StopsParameters } from '../../types';
6
+ import ControlCommon, { ControlCommonOptions } from './ControlCommon';
7
+ export declare type StopFinderControlCommonOptions = ControlCommonOptions & StopsAPIOptions & {
8
+ placeholder?: string;
9
+ apiParams: StopsParameters;
10
+ };
11
+ /**
12
+ * A class representing a stop finder control to display on map.
13
+ * This class only draw the html elements.
14
+ * The geographic logic must be implemented by subclasses.
15
+ */
16
+ declare class StopFinderControlCommon extends ControlCommon {
17
+ apiParams: StopsParameters;
18
+ placeholder: string;
19
+ api: StopsAPI;
20
+ abortController?: AbortController;
21
+ suggestionsElt?: HTMLElement;
22
+ inputElt?: HTMLInputElement;
23
+ clearElt?: HTMLDivElement;
24
+ /**
25
+ * Constructor.
26
+ *
27
+ * @param {Object} options Map options
28
+ * @param {string} options.apiKey Access key for [geOps services](https://developer.geops.io/). See StopsAPI.
29
+ * @param {string} [options.url='https://api.geops.io/tracker/v1'] Stops service url. See StopsAPI.
30
+ * @param {string} [options.placeholder='Search for a stop...'] Input field placeholder.
31
+ * @param {StopsSearchParams} [options.apiParams={ limit: 20 }] Request parameters. See [Stops service documentation](https://developer.geops.io/apis/5dcbd702a256d90001cf1361/).
32
+ */
33
+ constructor(options: StopFinderControlCommonOptions);
34
+ deactivate(): void;
35
+ render(featureCollection?: FeatureCollection): void;
36
+ createDefaultElement(): void;
37
+ /**
38
+ * Launch a search.
39
+ *
40
+ * @param {String} query The query to search for.
41
+ * @param {AbortController} abortController Abort controller used to cancel the request.
42
+ * @return {Promise<Array<GeoJSONFeature>>} An array of GeoJSON features with coordinates in [EPSG:4326](http://epsg.io/4326).
43
+ */
44
+ search(q: string, abortController: AbortController): Promise<void>;
45
+ /**
46
+ * To be defined in inherited class
47
+ */
48
+ onSuggestionClick(suggestion: Feature): void;
49
+ /**
50
+ * Clear the search field and close the control.
51
+ */
52
+ clear(): void;
53
+ }
54
+ export default StopFinderControlCommon;
55
+ //# sourceMappingURL=StopFinderControlCommon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StopFinderControlCommon.d.ts","sourceRoot":"","sources":["../../../src/common/controls/StopFinderControlCommon.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAC9C,OAAO,aAAa,EAAE,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEtE,oBAAY,8BAA8B,GAAG,oBAAoB,GAC/D,eAAe,GAAG;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,eAAe,CAAC;CAC5B,CAAC;AAEJ;;;;GAIG;AACH,cAAM,uBAAwB,SAAQ,aAAa;IACjD,SAAS,EAAE,eAAe,CAAC;IAE3B,WAAW,EAAE,MAAM,CAAC;IAEpB,GAAG,EAAE,QAAQ,CAAC;IAEd,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC,cAAc,CAAC,EAAE,WAAW,CAAC;IAE7B,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAE5B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAE1B;;;;;;;;OAQG;gBACS,OAAO,EAAE,8BAA8B;IAenD,UAAU;IAEV,MAAM,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;IAwB5C,oBAAoB;IAuDpB;;;;;;OAMG;IACH,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe;IAsBlD;;OAEG;IAEH,iBAAiB,CAAC,UAAU,EAAE,OAAO;IAErC;;OAEG;IACH,KAAK;CASN;AAED,eAAe,uBAAuB,CAAC"}