mobility-toolbox-js 2.3.10 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (471) hide show
  1. package/api/RealtimeAPI.d.ts +290 -0
  2. package/api/RealtimeAPI.d.ts.map +1 -0
  3. package/api/RealtimeAPI.js +483 -0
  4. package/api/RoutingAPI.d.ts +37 -0
  5. package/api/RoutingAPI.d.ts.map +1 -0
  6. package/api/RoutingAPI.js +35 -0
  7. package/api/StopsAPI.d.ts +38 -0
  8. package/api/StopsAPI.d.ts.map +1 -0
  9. package/api/StopsAPI.js +36 -0
  10. package/api/index.d.ts +4 -0
  11. package/api/index.d.ts.map +1 -0
  12. package/api/typedefs.d.ts +179 -0
  13. package/api/typedefs.d.ts.map +1 -0
  14. package/{src/api → api}/typedefs.js +1 -11
  15. package/common/api/HttpAPI.d.ts +31 -0
  16. package/common/api/HttpAPI.d.ts.map +1 -0
  17. package/common/api/HttpAPI.js +57 -0
  18. package/common/api/WebSocketAPI.d.ts +153 -0
  19. package/common/api/WebSocketAPI.d.ts.map +1 -0
  20. package/common/api/WebSocketAPI.js +341 -0
  21. package/common/controls/ControlCommon.d.ts +76 -0
  22. package/common/controls/ControlCommon.d.ts.map +1 -0
  23. package/common/controls/ControlCommon.js +150 -0
  24. package/common/controls/CopyrightControlCommon.d.ts +13 -0
  25. package/common/controls/CopyrightControlCommon.d.ts.map +1 -0
  26. package/common/controls/CopyrightControlCommon.js +34 -0
  27. package/common/controls/StopFinderControlCommon.d.ts +55 -0
  28. package/common/controls/StopFinderControlCommon.d.ts.map +1 -0
  29. package/common/controls/StopFinderControlCommon.js +144 -0
  30. package/common/index.d.ts +3 -0
  31. package/common/index.d.ts.map +1 -0
  32. package/common/layers/LayerCommon.d.ts +94 -0
  33. package/common/layers/LayerCommon.d.ts.map +1 -0
  34. package/common/layers/LayerCommon.js +244 -0
  35. package/common/mixins/RealtimeLayerMixin.d.ts +288 -0
  36. package/common/mixins/RealtimeLayerMixin.d.ts.map +1 -0
  37. package/common/mixins/RealtimeLayerMixin.js +779 -0
  38. package/common/mixins/UserInteractionsLayerMixin.d.ts +60 -0
  39. package/common/mixins/UserInteractionsLayerMixin.d.ts.map +1 -0
  40. package/common/mixins/UserInteractionsLayerMixin.js +241 -0
  41. package/common/styles/index.d.ts +5 -0
  42. package/common/styles/index.d.ts.map +1 -0
  43. package/common/styles/realtimeDefaultStyle.d.ts +36 -0
  44. package/common/styles/realtimeDefaultStyle.d.ts.map +1 -0
  45. package/common/styles/realtimeDefaultStyle.js +276 -0
  46. package/common/styles/realtimeDelayStyle.d.ts +12 -0
  47. package/common/styles/realtimeDelayStyle.d.ts.map +1 -0
  48. package/common/styles/realtimeDelayStyle.js +13 -0
  49. package/common/styles/realtimeHeadingStyle.d.ts +12 -0
  50. package/common/styles/realtimeHeadingStyle.d.ts.map +1 -0
  51. package/common/styles/realtimeHeadingStyle.js +87 -0
  52. package/common/styles/realtimeSimpleStyle.d.ts +4 -0
  53. package/common/styles/realtimeSimpleStyle.d.ts.map +1 -0
  54. package/common/styles/realtimeSimpleStyle.js +23 -0
  55. package/common/typedefs.d.ts +183 -0
  56. package/common/typedefs.d.ts.map +1 -0
  57. package/{src/common → common}/typedefs.js +1 -1
  58. package/common/utils/compareDepartures.d.ts +11 -0
  59. package/common/utils/compareDepartures.d.ts.map +1 -0
  60. package/common/utils/compareDepartures.js +35 -0
  61. package/common/utils/createCanvas.d.ts +11 -0
  62. package/common/utils/createCanvas.d.ts.map +1 -0
  63. package/common/utils/createCanvas.js +28 -0
  64. package/common/utils/createRealtimeFilters.d.ts +13 -0
  65. package/common/utils/createRealtimeFilters.d.ts.map +1 -0
  66. package/common/utils/createRealtimeFilters.js +74 -0
  67. package/common/utils/debounceDeparturesMessages.d.ts +13 -0
  68. package/common/utils/debounceDeparturesMessages.d.ts.map +1 -0
  69. package/common/utils/debounceDeparturesMessages.js +28 -0
  70. package/common/utils/debounceWebsocketMessages.d.ts +12 -0
  71. package/common/utils/debounceWebsocketMessages.d.ts.map +1 -0
  72. package/common/utils/debounceWebsocketMessages.js +30 -0
  73. package/common/utils/getLayersAsFlatArray.d.ts +4 -0
  74. package/common/utils/getLayersAsFlatArray.d.ts.map +1 -0
  75. package/common/utils/getLayersAsFlatArray.js +16 -0
  76. package/common/utils/getMapboxMapCopyrights.d.ts +18 -0
  77. package/common/utils/getMapboxMapCopyrights.d.ts.map +1 -0
  78. package/common/utils/getMapboxMapCopyrights.js +30 -0
  79. package/common/utils/getMapboxRender.d.ts +8 -0
  80. package/common/utils/getMapboxRender.d.ts.map +1 -0
  81. package/common/utils/getMapboxRender.js +88 -0
  82. package/common/utils/getMaplibreRender.d.ts +9 -0
  83. package/common/utils/getMaplibreRender.d.ts.map +1 -0
  84. package/common/utils/getMaplibreRender.js +40 -0
  85. package/{src/common/utils/getRealtimeModeSuffix.ts → common/utils/getRealtimeModeSuffix.d.ts} +2 -4
  86. package/common/utils/getRealtimeModeSuffix.d.ts.map +1 -0
  87. package/common/utils/getRealtimeModeSuffix.js +7 -0
  88. package/common/utils/getUrlWithParams.d.ts +9 -0
  89. package/common/utils/getUrlWithParams.d.ts.map +1 -0
  90. package/common/utils/getUrlWithParams.js +18 -0
  91. package/common/utils/getVehiclePosition.d.ts +16 -0
  92. package/common/utils/getVehiclePosition.d.ts.map +1 -0
  93. package/common/utils/getVehiclePosition.js +72 -0
  94. package/common/utils/index.d.ts +18 -0
  95. package/common/utils/index.d.ts.map +1 -0
  96. package/{src/common → common}/utils/index.js +2 -1
  97. package/common/utils/realtimeConfig.d.ts +53 -0
  98. package/common/utils/realtimeConfig.d.ts.map +1 -0
  99. package/common/utils/realtimeConfig.js +202 -0
  100. package/common/utils/removeDuplicate.d.ts +10 -0
  101. package/common/utils/removeDuplicate.d.ts.map +1 -0
  102. package/common/utils/removeDuplicate.js +15 -0
  103. package/common/utils/renderTrajectories.d.ts +17 -0
  104. package/common/utils/renderTrajectories.d.ts.map +1 -0
  105. package/common/utils/renderTrajectories.js +110 -0
  106. package/common/utils/sortAndFilterDepartures.d.ts +16 -0
  107. package/common/utils/sortAndFilterDepartures.d.ts.map +1 -0
  108. package/common/utils/sortAndFilterDepartures.js +58 -0
  109. package/common/utils/sortByDelay.d.ts +4 -0
  110. package/common/utils/sortByDelay.d.ts.map +1 -0
  111. package/common/utils/sortByDelay.js +21 -0
  112. package/common/utils/timeUtils.d.ts +24 -0
  113. package/common/utils/timeUtils.d.ts.map +1 -0
  114. package/common/utils/timeUtils.js +39 -0
  115. package/iife.d.ts +3 -0
  116. package/iife.d.ts.map +1 -0
  117. package/{src/iife.js → iife.js} +1 -3
  118. package/index.d.ts +10 -0
  119. package/index.d.ts.map +1 -0
  120. package/index.js +10 -0
  121. package/mapbox/controls/CopyrightControl.d.ts +29 -0
  122. package/mapbox/controls/CopyrightControl.d.ts.map +1 -0
  123. package/{src/mapbox/controls/CopyrightControl.ts → mapbox/controls/CopyrightControl.js} +21 -26
  124. package/mapbox/controls/index.d.ts +2 -0
  125. package/mapbox/controls/index.d.ts.map +1 -0
  126. package/mapbox/index.d.ts +6 -0
  127. package/mapbox/index.d.ts.map +1 -0
  128. package/mapbox/layers/Layer.d.ts +59 -0
  129. package/mapbox/layers/Layer.d.ts.map +1 -0
  130. package/mapbox/layers/Layer.js +101 -0
  131. package/mapbox/layers/RealtimeLayer.d.ts +180 -0
  132. package/mapbox/layers/RealtimeLayer.d.ts.map +1 -0
  133. package/mapbox/layers/RealtimeLayer.js +270 -0
  134. package/mapbox/layers/index.d.ts +3 -0
  135. package/mapbox/layers/index.d.ts.map +1 -0
  136. package/mapbox/utils/getMercatorResolution.d.ts +9 -0
  137. package/mapbox/utils/getMercatorResolution.d.ts.map +1 -0
  138. package/mapbox/utils/getMercatorResolution.js +18 -0
  139. package/mapbox/utils/getSourceCoordinates.d.ts +9 -0
  140. package/mapbox/utils/getSourceCoordinates.d.ts.map +1 -0
  141. package/mapbox/utils/getSourceCoordinates.js +27 -0
  142. package/mapbox/utils/index.d.ts +3 -0
  143. package/mapbox/utils/index.d.ts.map +1 -0
  144. package/mbt.js +64822 -0
  145. package/mbt.js.map +7 -0
  146. package/mbt.min.js +1090 -0
  147. package/mbt.min.js.map +7 -0
  148. package/ol/controls/CopyrightControl.d.ts +31 -0
  149. package/ol/controls/CopyrightControl.d.ts.map +1 -0
  150. package/ol/controls/CopyrightControl.js +68 -0
  151. package/ol/controls/RoutingControl.d.ts +193 -0
  152. package/ol/controls/RoutingControl.d.ts.map +1 -0
  153. package/ol/controls/RoutingControl.js +631 -0
  154. package/ol/controls/StopFinderControl.d.ts +30 -0
  155. package/ol/controls/StopFinderControl.d.ts.map +1 -0
  156. package/{src/ol/controls/StopFinderControl.ts → ol/controls/StopFinderControl.js} +7 -10
  157. package/ol/controls/index.d.ts +4 -0
  158. package/ol/controls/index.d.ts.map +1 -0
  159. package/ol/index.d.ts +6 -0
  160. package/ol/index.d.ts.map +1 -0
  161. package/ol/layers/Layer.d.ts +86 -0
  162. package/ol/layers/Layer.d.ts.map +1 -0
  163. package/ol/layers/Layer.js +174 -0
  164. package/ol/layers/MapGlLayer.d.ts +67 -0
  165. package/ol/layers/MapGlLayer.d.ts.map +1 -0
  166. package/ol/layers/MapGlLayer.js +218 -0
  167. package/ol/layers/MapboxLayer.d.ts +50 -0
  168. package/ol/layers/MapboxLayer.d.ts.map +1 -0
  169. package/ol/layers/MapboxLayer.js +109 -0
  170. package/ol/layers/MapboxStyleLayer.d.ts +131 -0
  171. package/ol/layers/MapboxStyleLayer.d.ts.map +1 -0
  172. package/ol/layers/MapboxStyleLayer.js +369 -0
  173. package/{src/ol/layers/MaplibreLayer.ts → ol/layers/MaplibreLayer.d.ts} +10 -21
  174. package/ol/layers/MaplibreLayer.d.ts.map +1 -0
  175. package/ol/layers/MaplibreLayer.js +34 -0
  176. package/ol/layers/RealtimeLayer.d.ts +202 -0
  177. package/ol/layers/RealtimeLayer.d.ts.map +1 -0
  178. package/ol/layers/RealtimeLayer.js +332 -0
  179. package/ol/layers/RoutingLayer.d.ts +35 -0
  180. package/ol/layers/RoutingLayer.d.ts.map +1 -0
  181. package/ol/layers/RoutingLayer.js +85 -0
  182. package/ol/layers/VectorLayer.d.ts +25 -0
  183. package/ol/layers/VectorLayer.d.ts.map +1 -0
  184. package/ol/layers/VectorLayer.js +38 -0
  185. package/ol/layers/WMSLayer.d.ts +42 -0
  186. package/ol/layers/WMSLayer.d.ts.map +1 -0
  187. package/ol/layers/WMSLayer.js +88 -0
  188. package/ol/layers/index.d.ts +9 -0
  189. package/ol/layers/index.d.ts.map +1 -0
  190. package/ol/styles/fullTrajectoryDelayStyle.d.ts +4 -0
  191. package/ol/styles/fullTrajectoryDelayStyle.d.ts.map +1 -0
  192. package/ol/styles/fullTrajectoryDelayStyle.js +33 -0
  193. package/ol/styles/fullTrajectoryStyle.d.ts +5 -0
  194. package/ol/styles/fullTrajectoryStyle.d.ts.map +1 -0
  195. package/ol/styles/fullTrajectoryStyle.js +44 -0
  196. package/ol/styles/index.d.ts +3 -0
  197. package/ol/styles/index.d.ts.map +1 -0
  198. package/package.json +1 -1
  199. package/setupTests.d.ts +2 -0
  200. package/setupTests.d.ts.map +1 -0
  201. package/{src/setupTests.js → setupTests.js} +7 -12
  202. package/.esdoc.js +0 -18
  203. package/.eslintignore +0 -1
  204. package/.eslintrc.js +0 -25
  205. package/.fixpackrc +0 -20
  206. package/.github/workflows/build.yml +0 -16
  207. package/.github/workflows/conventional-pr-title.yml +0 -16
  208. package/.github/workflows/cypress.yml +0 -101
  209. package/.github/workflows/test.yml +0 -17
  210. package/.husky/commit-msg +0 -4
  211. package/.husky/post-checkout +0 -4
  212. package/.husky/post-merge +0 -4
  213. package/.husky/post-rebase +0 -4
  214. package/.husky/pre-commit +0 -4
  215. package/.lintstagedrc.js +0 -10
  216. package/.nvmrc +0 -1
  217. package/.prettierrc.js +0 -5
  218. package/.stylelintrc.js +0 -4
  219. package/CHANGELOG.md +0 -132
  220. package/LICENSE +0 -21
  221. package/MIGRATION-V2.md +0 -248
  222. package/README.md +0 -42
  223. package/__mocks__/mapbox-gl.js +0 -81
  224. package/__mocks__/maplibre-gl.js +0 -81
  225. package/babel.config.js +0 -9
  226. package/commitlint.config.js +0 -1
  227. package/cypress/e2e/examples/api.cy.js +0 -7
  228. package/cypress/e2e/examples/examples.cy.js +0 -7
  229. package/cypress/e2e/examples/navigation.cy.js +0 -29
  230. package/cypress/fixtures/example.json +0 -5
  231. package/cypress/plugins/index.js +0 -21
  232. package/cypress/support/commands.js +0 -25
  233. package/cypress/support/e2e.js +0 -20
  234. package/cypress.config.ts +0 -15
  235. package/data/fetchRoute.json +0 -292
  236. package/data/fetchTrajectories.json +0 -18
  237. package/data/fetchTrajectoryById.json +0 -3
  238. package/data/fetchTrajectoryStations.json +0 -18
  239. package/data/stopsSearch.json +0 -15
  240. package/dependabot.yml +0 -15
  241. package/doc/.eslintrc.json +0 -1
  242. package/doc/README.md +0 -34
  243. package/doc/next.config.js +0 -16
  244. package/doc/package.json +0 -41
  245. package/doc/pages/404.js +0 -5
  246. package/doc/pages/_app.js +0 -61
  247. package/doc/pages/_document.js +0 -64
  248. package/doc/pages/doc/[...slug].js +0 -23
  249. package/doc/pages/doc.js +0 -23
  250. package/doc/pages/example/[example].js +0 -52
  251. package/doc/pages/examples.js +0 -34
  252. package/doc/pages/index.js +0 -25
  253. package/doc/public/README.md +0 -15
  254. package/doc/public/favicon.ico +0 -0
  255. package/doc/public/static/assets/Lato-Black.ttf +0 -0
  256. package/doc/public/static/assets/Lato-BlackItalic.ttf +0 -0
  257. package/doc/public/static/assets/Lato-Bold.ttf +0 -0
  258. package/doc/public/static/assets/Lato-BoldItalic.ttf +0 -0
  259. package/doc/public/static/assets/Lato-Italic.ttf +0 -0
  260. package/doc/public/static/assets/Lato-Light.ttf +0 -0
  261. package/doc/public/static/assets/Lato-LightItalic.ttf +0 -0
  262. package/doc/public/static/assets/Lato-Regular.ttf +0 -0
  263. package/doc/public/static/assets/Lato-Thin.ttf +0 -0
  264. package/doc/public/static/assets/Lato-ThinItalic.ttf +0 -0
  265. package/doc/public/static/assets/OFL.txt +0 -93
  266. package/doc/public/static/examples/assets/tralis-live-map/index.js +0 -11
  267. package/doc/public/static/examples/assets/tralis-live-map/s1kreis.svg +0 -105
  268. package/doc/public/static/examples/assets/tralis-live-map/s20kreis.svg +0 -101
  269. package/doc/public/static/examples/assets/tralis-live-map/s2kreis.svg +0 -95
  270. package/doc/public/static/examples/assets/tralis-live-map/s3kreis.svg +0 -95
  271. package/doc/public/static/examples/assets/tralis-live-map/s4kreis.svg +0 -95
  272. package/doc/public/static/examples/assets/tralis-live-map/s6kreis.svg +0 -95
  273. package/doc/public/static/examples/assets/tralis-live-map/s7kreis.svg +0 -95
  274. package/doc/public/static/examples/assets/tralis-live-map/s8kreis.svg +0 -93
  275. package/doc/public/static/examples/assets/tralis-live-map/unknown.svg +0 -107
  276. package/doc/public/static/examples/layers.html +0 -11
  277. package/doc/public/static/examples/layers.js +0 -97
  278. package/doc/public/static/examples/mb-copyright.html +0 -26
  279. package/doc/public/static/examples/mb-copyright.js +0 -37
  280. package/doc/public/static/examples/mb-tracker.html +0 -1
  281. package/doc/public/static/examples/mb-tracker.js +0 -40
  282. package/doc/public/static/examples/mb-tracker.md +0 -1
  283. package/doc/public/static/examples/mb-tralis.html +0 -1
  284. package/doc/public/static/examples/mb-tralis.js +0 -34
  285. package/doc/public/static/examples/ol-copyright.html +0 -26
  286. package/doc/public/static/examples/ol-copyright.js +0 -43
  287. package/doc/public/static/examples/ol-mapbox-layer.html +0 -1
  288. package/doc/public/static/examples/ol-mapbox-layer.js +0 -28
  289. package/doc/public/static/examples/ol-mapbox-style-layer.html +0 -12
  290. package/doc/public/static/examples/ol-mapbox-style-layer.js +0 -48
  291. package/doc/public/static/examples/ol-query.html +0 -32
  292. package/doc/public/static/examples/ol-query.js +0 -83
  293. package/doc/public/static/examples/ol-routing.html +0 -26
  294. package/doc/public/static/examples/ol-routing.js +0 -65
  295. package/doc/public/static/examples/ol-routing.md +0 -1
  296. package/doc/public/static/examples/ol-stop-finder.html +0 -15
  297. package/doc/public/static/examples/ol-stop-finder.js +0 -35
  298. package/doc/public/static/examples/ol-stop-finder.md +0 -1
  299. package/doc/public/static/examples/ol-tracker.html +0 -1
  300. package/doc/public/static/examples/ol-tracker.js +0 -41
  301. package/doc/public/static/examples/ol-tracker.md +0 -1
  302. package/doc/public/static/examples/ol-tralis.html +0 -5
  303. package/doc/public/static/examples/ol-tralis.js +0 -62
  304. package/doc/public/static/examples/tralis-live-map.html +0 -1
  305. package/doc/public/static/examples/tralis-live-map.js +0 -67
  306. package/doc/public/static/examples/tralis-live-map.md +0 -3
  307. package/doc/public/static/img/live_tracker_mb.jpg +0 -0
  308. package/doc/public/static/img/live_tracker_munich.jpg +0 -0
  309. package/doc/public/static/img/live_tracker_ol.jpg +0 -0
  310. package/doc/public/static/img/mapbox.jpg +0 -0
  311. package/doc/public/static/img/mapbox_style.jpg +0 -0
  312. package/doc/public/static/img/ol-copyright.png +0 -0
  313. package/doc/public/static/img/query_objects.jpg +0 -0
  314. package/doc/public/static/img/routing.jpg +0 -0
  315. package/doc/public/static/img/simple_map.jpg +0 -0
  316. package/doc/public/static/img/stops.jpg +0 -0
  317. package/doc/public/vercel.svg +0 -4
  318. package/doc/src/components/CodeSandboxButton.js +0 -102
  319. package/doc/src/components/Documentation.js +0 -42
  320. package/doc/src/components/Esdoc/Anchor.js +0 -57
  321. package/doc/src/components/Esdoc/ClassDoc.js +0 -272
  322. package/doc/src/components/Esdoc/DeprecatedHTML.js +0 -16
  323. package/doc/src/components/Esdoc/DetailDocs.js +0 -279
  324. package/doc/src/components/Esdoc/DetailHTML.js +0 -33
  325. package/doc/src/components/Esdoc/DirectSubclassHTML.js +0 -30
  326. package/doc/src/components/Esdoc/DocBuilderUtils.js +0 -697
  327. package/doc/src/components/Esdoc/DocLinkHTML.js +0 -63
  328. package/doc/src/components/Esdoc/DocsLinkHTML.js +0 -38
  329. package/doc/src/components/Esdoc/Esdoc.js +0 -63
  330. package/doc/src/components/Esdoc/EsdocContent.js +0 -56
  331. package/doc/src/components/Esdoc/EsdocNavigation.js +0 -13
  332. package/doc/src/components/Esdoc/EsdocSearch.js +0 -78
  333. package/doc/src/components/Esdoc/ExperimentalHTML.js +0 -17
  334. package/doc/src/components/Esdoc/ExtendsChainHTML.js +0 -32
  335. package/doc/src/components/Esdoc/FileDocLinkHTML.js +0 -62
  336. package/doc/src/components/Esdoc/IdentifiersDoc.js +0 -113
  337. package/doc/src/components/Esdoc/IndirectSubclassHTML.js +0 -30
  338. package/doc/src/components/Esdoc/InheritedSummaryDoc.js +0 -70
  339. package/doc/src/components/Esdoc/InheritedSummaryHTML.js +0 -38
  340. package/doc/src/components/Esdoc/MixinClassesHTML.js +0 -29
  341. package/doc/src/components/Esdoc/NavDoc.js +0 -112
  342. package/doc/src/components/Esdoc/OverrideMethod.js +0 -44
  343. package/doc/src/components/Esdoc/OverrideMethodDescription.js +0 -35
  344. package/doc/src/components/Esdoc/Properties.js +0 -89
  345. package/doc/src/components/Esdoc/README.md +0 -45
  346. package/doc/src/components/Esdoc/SignatureHTML.js +0 -123
  347. package/doc/src/components/Esdoc/SingleDoc.js +0 -31
  348. package/doc/src/components/Esdoc/SummaryDoc.js +0 -160
  349. package/doc/src/components/Esdoc/SummaryHTML.js +0 -96
  350. package/doc/src/components/Esdoc/TypeDocLinkHTML.js +0 -251
  351. package/doc/src/components/Esdoc/index.js +0 -7
  352. package/doc/src/components/Esdoc/taffydb.js +0 -2070
  353. package/doc/src/components/Example.js +0 -200
  354. package/doc/src/components/ExampleCard.js +0 -126
  355. package/doc/src/components/Examples.js +0 -78
  356. package/doc/src/components/Home.js +0 -121
  357. package/doc/src/components/TrackerExample.js +0 -39
  358. package/doc/src/examples.js +0 -117
  359. package/doc/styles/App.scss +0 -53
  360. package/doc/styles/identifiers.css +0 -38
  361. package/doc/styles/search.css +0 -76
  362. package/doc/styles/style.css +0 -603
  363. package/esdoc/README.md +0 -27
  364. package/esdoc/plugins/MyPlugin.js +0 -69
  365. package/esdoc/plugins/dynamic-property-plugin/Plugin.js +0 -50
  366. package/esdoc/plugins/externals-plugin/Plugin.js +0 -45
  367. package/esdoc/plugins/externals-plugin/externals.js +0 -93
  368. package/esdoc/plugins/optional-chaining-plugin/Plugin.js +0 -8
  369. package/global-setup.js +0 -3
  370. package/jest.config.js +0 -24
  371. package/pull_request_template.md +0 -17
  372. package/scripts/read-pkg-json.js +0 -22
  373. package/src/api/RealtimeAPI.test.js +0 -144
  374. package/src/api/RealtimeAPI.ts +0 -712
  375. package/src/api/RoutingAPI.test.js +0 -41
  376. package/src/api/RoutingAPI.ts +0 -47
  377. package/src/api/StopsAPI.test.js +0 -34
  378. package/src/api/StopsAPI.ts +0 -45
  379. package/src/common/api/HttpAPI.test.js +0 -68
  380. package/src/common/api/HttpAPI.ts +0 -77
  381. package/src/common/api/WebSocketAPI.test.js +0 -421
  382. package/src/common/api/WebSocketAPI.ts +0 -515
  383. package/src/common/controls/ControlCommon.test.js +0 -106
  384. package/src/common/controls/ControlCommon.ts +0 -194
  385. package/src/common/controls/CopyrightControlCommon.ts +0 -41
  386. package/src/common/controls/StopFinderControlCommon.ts +0 -192
  387. package/src/common/layers/LayerCommon.test.js +0 -158
  388. package/src/common/layers/LayerCommon.ts +0 -321
  389. package/src/common/mixins/RealtimeLayerMixin.ts +0 -1168
  390. package/src/common/mixins/UserInteractionsLayerMixin.test.js +0 -227
  391. package/src/common/mixins/UserInteractionsLayerMixin.ts +0 -352
  392. package/src/common/styles/realtimeDefaultStyle.ts +0 -436
  393. package/src/common/styles/realtimeDelayStyle.ts +0 -27
  394. package/src/common/styles/realtimeHeadingStyle.ts +0 -138
  395. package/src/common/styles/realtimeSimpleStyle.ts +0 -25
  396. package/src/common/utils/compareDepartures.ts +0 -46
  397. package/src/common/utils/createCanvas.ts +0 -33
  398. package/src/common/utils/createRealtimeFilters.test.js +0 -100
  399. package/src/common/utils/createRealtimeFilters.ts +0 -96
  400. package/src/common/utils/debounceDeparturesMessages.ts +0 -52
  401. package/src/common/utils/debounceWebsocketMessages.ts +0 -47
  402. package/src/common/utils/getLayersAsFlatArray.ts +0 -17
  403. package/src/common/utils/getMapboxMapCopyrights.test.js +0 -47
  404. package/src/common/utils/getMapboxMapCopyrights.ts +0 -52
  405. package/src/common/utils/getMapboxRender.ts +0 -104
  406. package/src/common/utils/getMaplibreRender.ts +0 -54
  407. package/src/common/utils/getUrlWithParams.ts +0 -21
  408. package/src/common/utils/getVehiclePosition.ts +0 -92
  409. package/src/common/utils/realtimeConfig.test.js +0 -57
  410. package/src/common/utils/realtimeConfig.ts +0 -228
  411. package/src/common/utils/removeDuplicate.test.js +0 -22
  412. package/src/common/utils/removeDuplicate.ts +0 -22
  413. package/src/common/utils/renderTrajectories.ts +0 -194
  414. package/src/common/utils/sortAndFilterDepartures.ts +0 -78
  415. package/src/common/utils/sortByDelay.ts +0 -29
  416. package/src/common/utils/timeUtils.test.js +0 -16
  417. package/src/common/utils/timeUtils.ts +0 -45
  418. package/src/index.js +0 -10
  419. package/src/mapbox/layers/Layer.test.js +0 -217
  420. package/src/mapbox/layers/Layer.ts +0 -144
  421. package/src/mapbox/layers/RealtimeLayer.test.js +0 -13
  422. package/src/mapbox/layers/RealtimeLayer.ts +0 -350
  423. package/src/mapbox/utils/getMercatorResolution.ts +0 -21
  424. package/src/mapbox/utils/getSourceCoordinates.ts +0 -34
  425. package/src/ol/README.md +0 -0
  426. package/src/ol/controls/CopyrightControl.test.js +0 -211
  427. package/src/ol/controls/CopyrightControl.ts +0 -82
  428. package/src/ol/controls/RoutingControl.test.js +0 -205
  429. package/src/ol/controls/RoutingControl.ts +0 -869
  430. package/src/ol/controls/StopFinderControl.test.js +0 -59
  431. package/src/ol/controls/snapshots/RoutingControlRouteGen10.json +0 -58
  432. package/src/ol/controls/snapshots/RoutingControlRouteGen100.json +0 -292
  433. package/src/ol/controls/snapshots/RoutingControlRouteGen30.json +0 -69
  434. package/src/ol/controls/snapshots/RoutingControlRouteGen5.json +0 -58
  435. package/src/ol/controls/snapshots/RoutingControlRouteOSM.json +0 -759
  436. package/src/ol/controls/snapshots/RoutingControlStation1.json +0 -60
  437. package/src/ol/controls/snapshots/RoutingControlStation2.json +0 -49
  438. package/src/ol/layers/Layer.test.js +0 -212
  439. package/src/ol/layers/Layer.ts +0 -252
  440. package/src/ol/layers/MapGlLayer.ts +0 -294
  441. package/src/ol/layers/MapboxLayer.test.js +0 -190
  442. package/src/ol/layers/MapboxLayer.ts +0 -136
  443. package/src/ol/layers/MapboxStyleLayer.test.js +0 -258
  444. package/src/ol/layers/MapboxStyleLayer.ts +0 -466
  445. package/src/ol/layers/RealtimeLayer.test.js +0 -84
  446. package/src/ol/layers/RealtimeLayer.ts +0 -465
  447. package/src/ol/layers/RoutingLayer.test.js +0 -48
  448. package/src/ol/layers/RoutingLayer.ts +0 -113
  449. package/src/ol/layers/VectorLayer.test.js +0 -87
  450. package/src/ol/layers/VectorLayer.ts +0 -48
  451. package/src/ol/layers/WMSLayer.test.js +0 -65
  452. package/src/ol/layers/WMSLayer.ts +0 -114
  453. package/src/ol/styles/fullTrajectoryDelayStyle.ts +0 -37
  454. package/src/ol/styles/fullTrajectoryStyle.ts +0 -56
  455. package/tsconfig.json +0 -23
  456. /package/{src/api → api}/index.js +0 -0
  457. /package/{src/common → common}/index.js +0 -0
  458. /package/{src/common → common}/styles/index.js +0 -0
  459. /package/{src/mapbox → mapbox}/controls/index.js +0 -0
  460. /package/{src/mapbox → mapbox}/index.js +0 -0
  461. /package/{src/mapbox → mapbox}/layers/index.js +0 -0
  462. /package/{src/mapbox → mapbox}/utils/index.js +0 -0
  463. /package/{src/ol → ol}/controls/index.js +0 -0
  464. /package/{src/ol → ol}/index.js +0 -0
  465. /package/{src/ol → ol}/layers/index.js +0 -0
  466. /package/{src/ol → ol}/styles/index.js +0 -0
  467. /package/{src/types → types}/common.d.ts +0 -0
  468. /package/{src/types → types}/index.d.ts +0 -0
  469. /package/{src/types → types}/realtime.d.ts +0 -0
  470. /package/{src/types → types}/routing.d.ts +0 -0
  471. /package/{src/types → types}/stops.d.ts +0 -0
@@ -1,350 +0,0 @@
1
- import { fromLonLat } from 'ol/proj';
2
- import { unByKey } from 'ol/Observable';
3
- import { getWidth, getHeight } from 'ol/extent';
4
- import transformRotate from '@turf/transform-rotate';
5
- import { point } from '@turf/helpers';
6
- import { Coordinate } from 'ol/coordinate';
7
- import { Feature } from 'ol';
8
- import mixin from '../../common/mixins/RealtimeLayerMixin';
9
- import Layer from './Layer';
10
- import { getSourceCoordinates, getMercatorResolution } from '../utils';
11
- import type {
12
- AnyMapboxMap,
13
- LayerGetFeatureInfoResponse,
14
- ViewState,
15
- } from '../../types';
16
- import type { RealtimeTrajectory } from '../../api/typedefs';
17
-
18
- /**
19
- * Responsible for loading and display data from a Realtime service.
20
- *
21
- * @example
22
- * import { RealtimeLayer } from 'mobility-toolbox-js/mapbox';
23
- *
24
- * const layer = new RealtimeLayer({
25
- * url: [yourUrl],
26
- * apiKey: [yourApiKey],
27
- * });
28
- *
29
- *
30
- * @see <a href="/api/class/src/api/RealtimeAPI%20js~RealtimeAPI%20html">RealtimeAPI</a>
31
- *
32
- * @extends {Layer}
33
- * @implements {RealtimeLayerInterface}
34
- */
35
- // @ts-ignore
36
- class RealtimeLayer extends mixin(Layer) {
37
- constructor(options = {}) {
38
- super({
39
- ...options,
40
- });
41
-
42
- /** @private */
43
- this.onLoad = this.onLoad.bind(this);
44
-
45
- /** @private */
46
- this.onMove = this.onMove.bind(this);
47
-
48
- /** @private */
49
- this.onMoveEnd = this.onMoveEnd.bind(this);
50
-
51
- /** @private */
52
- this.onZoomEnd = this.onZoomEnd.bind(this);
53
-
54
- /** @private */
55
- this.onVisibilityChange = this.onVisibilityChange.bind(this);
56
- }
57
-
58
- /**
59
- * Initialize the layer.
60
- *
61
- * @param {mapboxgl.Map} map A [mapbox Map](https://docs.mapbox.com/mapbox-gl-js/api/map/).
62
- * @param {string} beforeId Layer's id before which we want to add the new layer.
63
- * @override
64
- */
65
- // @ts-ignore
66
- attachToMap(map: AnyMapboxMap, beforeId: string) {
67
- if (!map) {
68
- return;
69
- }
70
- super.attachToMap(map);
71
-
72
- this.source = {
73
- type: 'canvas',
74
- canvas: this.canvas,
75
- coordinates: getSourceCoordinates(map, this.pixelRatio),
76
- // Set to true if the canvas source is animated. If the canvas is static, animate should be set to false to improve performance.
77
- animate: true,
78
- attribution: this.copyrights && this.copyrights.join(', '),
79
- };
80
-
81
- this.beforeId = beforeId;
82
- this.layer = {
83
- id: this.key,
84
- type: 'raster',
85
- source: this.key,
86
- layout: {
87
- visibility: this.visible ? 'visible' : 'none',
88
- },
89
- paint: {
90
- 'raster-opacity': 1,
91
- 'raster-fade-duration': 0,
92
- 'raster-resampling': 'nearest', // important otherwise it looks blurry
93
- },
94
- };
95
-
96
- if (map.isStyleLoaded()) {
97
- this.onLoad();
98
- }
99
-
100
- this.map.on('load', this.onLoad);
101
-
102
- this.listeners = [this.on('change:visible', this.onVisibilityChange)];
103
- }
104
-
105
- /**
106
- * Remove listeners from the Mapbox Map.
107
- */
108
- detachFromMap() {
109
- if (this.map) {
110
- this.map.off('load', this.onLoad);
111
-
112
- // @ts-ignore
113
- this.listeners.forEach((listener) => {
114
- unByKey(listener);
115
- });
116
- if (this.map.style && this.map.getLayer(this.key)) {
117
- this.map.removeLayer(this.key);
118
- }
119
- if (this.map.style && this.map.getSource(this.key)) {
120
- this.map.removeSource(this.key);
121
- }
122
- }
123
- super.detachFromMap();
124
- }
125
-
126
- /**
127
- * Start updating vehicles position.
128
- *
129
- * @listens {mapboxgl.map.event:zoomend} Listen to zoom end event.
130
- * @listens {mapboxgl.map.event:mousemove} Listen to mousemove end.
131
- * @override
132
- */
133
- start() {
134
- super.start();
135
-
136
- this.map.on('move', this.onMove);
137
- this.map.on('moveend', this.onMoveEnd);
138
- this.map.on('zoomend', this.onZoomEnd);
139
- }
140
-
141
- /**
142
- * Stop updating vehicles position, and unlisten events.
143
- *
144
- * @override
145
- */
146
- stop() {
147
- super.stop();
148
- if (this.map) {
149
- this.map.off('move', this.onMove);
150
- this.map.off('moveend', this.onMoveEnd);
151
- this.map.off('zoomend', this.onZoomEnd);
152
- }
153
- }
154
-
155
- onLoad() {
156
- if (!this.map.getSource(this.key)) {
157
- this.map.addSource(this.key, this.source);
158
- }
159
- if (!this.map.getLayer(this.key)) {
160
- this.map.addLayer(this.layer, this.beforeId);
161
- }
162
- }
163
-
164
- /**
165
- * Function triggered when the user moves the cursor over the map.
166
- * @override
167
- */
168
- onUserMoveCallback(
169
- evt: mapboxgl.MapLayerMouseEvent | maplibregl.MapMouseEvent,
170
- ) {
171
- super.onUserMoveCallback({
172
- coordinate: fromLonLat(evt.lngLat.toArray()),
173
- ...evt,
174
- });
175
- }
176
-
177
- /**
178
- * Render the trajectories using current map's size, resolution and rotation.
179
- * @param {boolean} noInterpolate if true, renders the vehicles without interpolating theirs positions.
180
- * @overrides
181
- */
182
- // @ts-ignore
183
- renderTrajectories(noInterpolate?: boolean = false) {
184
- if (!this.map) {
185
- return;
186
- }
187
- if (!this.pixelRatio) {
188
- this.pixelRatio = 1;
189
- }
190
-
191
- const { width, height } = this.map.getCanvas();
192
- const center = this.map.getCenter();
193
-
194
- // We use turf here to have good transform.
195
- const leftBottom = this.map.unproject({
196
- x: 0,
197
- y: height / this.pixelRatio,
198
- }); // southWest
199
- const rightTop = this.map.unproject({
200
- x: width / this.pixelRatio,
201
- y: 0,
202
- }); // north east
203
-
204
- const coord0 = transformRotate(
205
- point([leftBottom.lng, leftBottom.lat]),
206
- -this.map.getBearing(),
207
- {
208
- pivot: [center.lng, center.lat],
209
- },
210
- ).geometry.coordinates;
211
- const coord1 = transformRotate(
212
- point([rightTop.lng, rightTop.lat]),
213
- -this.map.getBearing(),
214
- {
215
- pivot: [center.lng, center.lat],
216
- },
217
- ).geometry.coordinates;
218
-
219
- const bounds = [...fromLonLat(coord0), ...fromLonLat(coord1)];
220
- const xResolution = getWidth(bounds) / (width / this.pixelRatio);
221
- const yResolution = getHeight(bounds) / (height / this.pixelRatio);
222
- const res = Math.max(xResolution, yResolution);
223
-
224
- // Coordinate of trajectories are in mercator so we have to pass the proper resolution and center in mercator.
225
- const viewState = {
226
- size: [width / this.pixelRatio, height / this.pixelRatio],
227
- center: fromLonLat([center.lng, center.lat]),
228
- extent: bounds,
229
- resolution: res,
230
- zoom: this.getOlZoom(),
231
- rotation: -(this.map.getBearing() * Math.PI) / 180,
232
- pixelRatio: this.pixelRatio,
233
- };
234
-
235
- super.renderTrajectories(viewState, noInterpolate);
236
- }
237
-
238
- /**
239
- * Return the delay in ms before the next rendering.
240
- */
241
- getRefreshTimeInMs() {
242
- return super.getRefreshTimeInMs(this.map.getZoom());
243
- }
244
-
245
- getFeatureInfoAtCoordinate(
246
- coordinate: Coordinate,
247
- options = {},
248
- ): Promise<LayerGetFeatureInfoResponse> {
249
- const resolution = getMercatorResolution(this.map);
250
- return super.getFeatureInfoAtCoordinate(coordinate, {
251
- resolution,
252
- ...options,
253
- });
254
- }
255
-
256
- onVisibilityChange() {
257
- if (this.visible && !this.map.getLayer(this.key)) {
258
- this.map.addLayer(this.layer, this.beforeId);
259
- } else if (this.map.getLayer(this.key)) {
260
- this.map.removeLayer(this.key);
261
- }
262
- // We can't use setLayoutProperty it triggers an error probably a bug in mapbox
263
- // this.map.setLayoutProperty(
264
- // this.key,
265
- // 'visibilty',
266
- // this.visible ? 'visible' : 'none',
267
- // );
268
- }
269
-
270
- /**
271
- * Remove the trajectory form the list if necessary.
272
- *
273
- * @private
274
- */
275
- purgeTrajectory(
276
- trajectory: RealtimeTrajectory,
277
- extent: [number, number, number, number],
278
- zoom: number,
279
- ) {
280
- return super.purgeTrajectory(
281
- trajectory,
282
- extent || this.getMercatorExtent(),
283
- zoom || Math.floor(this.getOlZoom()),
284
- );
285
- }
286
-
287
- /**
288
- * Send the current bbox to the websocket
289
- */
290
- setBbox(extent?: [number, number, number, number], zoom?: number) {
291
- super.setBbox(extent || this.getMercatorExtent(), zoom || this.getOlZoom());
292
- }
293
-
294
- /**
295
- * Callback on 'move' event.
296
- *
297
- * @private
298
- */
299
- onMove() {
300
- this.renderTrajectories();
301
- }
302
-
303
- renderTrajectoriesInternal(
304
- viewState: ViewState,
305
- noInterpolate: boolean = false,
306
- ) {
307
- const render = super.renderTrajectoriesInternal(viewState, noInterpolate);
308
- if (render && this.map.style) {
309
- const extent = getSourceCoordinates(this.map, this.pixelRatio);
310
- const source = this.map.getSource(this.key);
311
- if (source) {
312
- source.setCoordinates(extent);
313
- }
314
- }
315
- return render;
316
- }
317
-
318
- /**
319
- * Send the new BBOX to the websocket.
320
- *
321
- * @private
322
- * @override
323
- */
324
- onMoveEnd() {
325
- this.renderTrajectories();
326
-
327
- if (this.visible && this.isUpdateBboxOnMoveEnd) {
328
- this.setBbox();
329
- }
330
- }
331
-
332
- /**
333
- * Update the cursor style when hovering a vehicle.
334
- *
335
- * @private
336
- * @override
337
- */
338
- onFeatureHover(
339
- features: Feature[],
340
- layer: RealtimeLayer,
341
- coordinate: Coordinate,
342
- ) {
343
- super.onFeatureHover(features, layer, coordinate);
344
- this.map.getCanvasContainer().style.cursor = features.length
345
- ? 'pointer'
346
- : 'auto';
347
- }
348
- }
349
-
350
- export default RealtimeLayer;
@@ -1,21 +0,0 @@
1
- import { getWidth, getHeight } from 'ol/extent';
2
- import { fromLonLat } from 'ol/proj';
3
- import { AnyMapboxMap } from '../../types';
4
-
5
- /**
6
- * Get the current resolution of a Mapbox map.
7
- * @param {mapboxgl.Map} map A map object.
8
- * @private
9
- */
10
- const getMercatorResolution = (map: AnyMapboxMap) => {
11
- const bounds = map.getBounds().toArray();
12
- const a = fromLonLat(bounds[0]);
13
- const b = fromLonLat(bounds[1]);
14
- const extent = [...a, ...b];
15
- const { width, height } = map.getCanvas();
16
- const xResolution = getWidth(extent) / width;
17
- const yResolution = getHeight(extent) / height;
18
- return Math.max(xResolution, yResolution);
19
- };
20
-
21
- export default getMercatorResolution;
@@ -1,34 +0,0 @@
1
- import { AnyMapboxMap } from '../../types';
2
-
3
- /**
4
- * Get the canvas source coordinates of the current map's extent.
5
- * @param {mapboxgl.Map} map A map object.
6
- * @private
7
- */
8
- export const getSourceCoordinates = (
9
- map: AnyMapboxMap,
10
- pixelRatio: number = 1,
11
- ) => {
12
- // Requesting getBounds is not enough when we rotate the map, so we request manually each corner.
13
- const { width, height } = map.getCanvas();
14
- // @ts-ignore
15
- const leftTop = map.unproject({ x: 0, y: 0 });
16
- // @ts-ignore
17
- const leftBottom = map.unproject({ x: 0, y: height / pixelRatio }); // southWest
18
-
19
- // @ts-ignore
20
- const rightBottom = map.unproject({
21
- x: width / pixelRatio,
22
- y: height / pixelRatio,
23
- });
24
- // @ts-ignore
25
- const rightTop = map.unproject({ x: width / pixelRatio, y: 0 }); // north east
26
- return [
27
- [leftTop.lng, leftTop.lat],
28
- [rightTop.lng, rightTop.lat],
29
- [rightBottom.lng, rightBottom.lat],
30
- [leftBottom.lng, leftBottom.lat],
31
- ];
32
- };
33
-
34
- export default getSourceCoordinates;
package/src/ol/README.md DELETED
File without changes
@@ -1,211 +0,0 @@
1
- import View from 'ol/View';
2
- import Tile from 'ol/Tile';
3
- import TileLayer from 'ol/layer/Tile';
4
- import TileSource from 'ol/source/Tile';
5
- import { createXYZ } from 'ol/tilegrid';
6
- import { Map } from 'ol';
7
- import Layer from '../layers/Layer';
8
- import CopyrightControl from './CopyrightControl';
9
-
10
- const tileLoadFunction = () => {
11
- const tile = new Tile([0, 0, -1], 2 /* LOADED */);
12
- tile.getImage = () => {
13
- const image = new Image();
14
- image.width = 256;
15
- image.height = 256;
16
- return image;
17
- };
18
- return tile;
19
- };
20
-
21
- const getOLTileLayer = () => {
22
- const layer = new TileLayer({
23
- source: new TileSource({
24
- projection: 'EPSG:3857',
25
- tileGrid: createXYZ(),
26
- }),
27
- });
28
- layer.getSource().getTile = tileLoadFunction;
29
- return layer;
30
- };
31
-
32
- const getLayer = (copyrights, visible = true) =>
33
- new Layer({
34
- visible,
35
- copyrights,
36
- olLayer: getOLTileLayer(),
37
- });
38
-
39
- describe('CopyrightControl', () => {
40
- let map;
41
-
42
- beforeEach(() => {
43
- const target = document.createElement('div');
44
- document.body.appendChild(target);
45
- map = new Map({
46
- target,
47
- view: new View({
48
- center: [0, 0],
49
- zoom: 0,
50
- }),
51
- });
52
- getLayer(true, 'bar').attachToMap(map);
53
- map.setSize([200, 200]);
54
- map.renderSync();
55
- });
56
-
57
- afterEach(() => {
58
- if (map) {
59
- map.setTarget(null);
60
- map = null;
61
- }
62
- });
63
-
64
- test('should be activate by default', () => {
65
- const control = new CopyrightControl();
66
- expect(control.active).toBe(true);
67
- });
68
-
69
- test('renders a string copyright', () => {
70
- const control = new CopyrightControl();
71
- control.attachToMap(map);
72
- expect(control.element.innerHTML).toBe('');
73
- getLayer('copyright').attachToMap(map);
74
- map.renderSync();
75
- expect(control.element.innerHTML).toBe('copyright');
76
- });
77
-
78
- test('renders an array of copyrights', () => {
79
- const control = new CopyrightControl();
80
- control.attachToMap(map);
81
- expect(control.element.innerHTML).toBe('');
82
- getLayer(['copyright 1', 'copyright 2']).attachToMap(map);
83
- map.renderSync();
84
- expect(control.element.innerHTML).toBe('copyright 1 | copyright 2');
85
- });
86
-
87
- test('renders unique copyrights', () => {
88
- const control = new CopyrightControl();
89
- control.attachToMap(map);
90
- expect(control.element.innerHTML).toBe('');
91
- getLayer(['copyright 1', 'copyright 2']).attachToMap(map);
92
- getLayer('copyright 1').attachToMap(map);
93
- getLayer(['copyright 2']).attachToMap(map);
94
- map.renderSync();
95
- expect(control.element.innerHTML).toBe('copyright 1 | copyright 2');
96
- });
97
-
98
- test("doesn't render copyright of an hidden layer", () => {
99
- const control = new CopyrightControl();
100
- control.attachToMap(map);
101
- expect(control.element.innerHTML).toBe('');
102
- const layer1 = getLayer('copyright hidden', false);
103
- layer1.attachToMap(map);
104
- const layer2 = getLayer('copyright', true);
105
- layer2.attachToMap(map);
106
- map.renderSync();
107
- expect(control.element.innerHTML).toBe('copyright');
108
-
109
- // the we update visibility of both layers
110
- layer1.visible = true;
111
- map.renderSync();
112
- layer2.visible = false;
113
- map.renderSync();
114
- expect(control.element.innerHTML).toBe('copyright hidden');
115
- });
116
-
117
- test('should activate the control on construction then deactivate it', () => {
118
- getLayer('copyright 1').attachToMap(map);
119
- const control = new CopyrightControl({ active: true });
120
- control.attachToMap(map);
121
- map.renderSync();
122
-
123
- expect(control.element.parentNode).toBe(map.getTargetElement());
124
-
125
- // Should be activated by default.
126
- expect(control.active).toBe(true);
127
- expect(control.element.innerHTML).toBe('copyright 1');
128
-
129
- // on deactivation
130
- control.active = false;
131
- map.renderSync();
132
- expect(control.element.innerHTML).toBe('');
133
- });
134
-
135
- test('should deactivate the control on constrcution then activate it', () => {
136
- getLayer('copyright 1').attachToMap(map);
137
- const control = new CopyrightControl({ active: false });
138
- control.attachToMap(map);
139
- map.renderSync();
140
-
141
- expect(control.element.parentNode).toBe(map.getTargetElement());
142
-
143
- // Should be activated by default.
144
- expect(control.active).toBe(false);
145
- map.renderSync();
146
- expect(control.element.innerHTML).toBe('');
147
-
148
- // on deactivation
149
- control.active = true;
150
- map.renderSync();
151
- expect(control.element.innerHTML).toBe('copyright 1');
152
- });
153
-
154
- test('should add copyrights in the map container element then remove it.', () => {
155
- getLayer('copyright value').attachToMap(map);
156
- map.renderSync();
157
-
158
- const control = new CopyrightControl();
159
-
160
- // Add control
161
- control.attachToMap(map);
162
- expect(control.element.parentNode).toBe(map.getTargetElement());
163
-
164
- // Remove control
165
- control.detachFromMap();
166
- expect(control.element.parentNode).toBe(null);
167
- });
168
-
169
- test('should add copyrights in the target element then remove it.', () => {
170
- getLayer(['copyright value']).attachToMap(map);
171
- map.renderSync();
172
-
173
- const target = document.createElement('div');
174
- target.setAttribute('id', 'copyright');
175
- document.body.appendChild(target);
176
-
177
- const control = new CopyrightControl({
178
- target: document.getElementById('copyright'),
179
- });
180
-
181
- // Add control
182
- control.attachToMap(map);
183
- expect(control.element.parentNode).toBe(target);
184
-
185
- // Remove control
186
- control.detachFromMap();
187
- expect(control.element.parentNode).toBe(null);
188
- });
189
-
190
- test('renders custom copyrights with the render method ', () => {
191
- const control = new CopyrightControl({
192
- active: true,
193
- render() {
194
- if (!this.element) {
195
- return;
196
- }
197
- this.element.innerHTML = this.active
198
- ? this.getCopyrights().join(', ')
199
- : '';
200
- },
201
- });
202
- control.attachToMap(map);
203
- getLayer(['copyright 1', 'copyright 2', 'copyright 3']).attachToMap(map);
204
- map.renderSync();
205
-
206
- // Add control
207
- expect(control.element.innerHTML).toBe(
208
- 'copyright 1, copyright 2, copyright 3',
209
- );
210
- });
211
- });
@@ -1,82 +0,0 @@
1
- import { MapEvent } from 'ol';
2
- import { inView } from 'ol/layer/Layer';
3
- import type { FrameState } from 'ol/Map';
4
- import CopyrightControlCommon from '../../common/controls/CopyrightControlCommon';
5
- import removeDuplicate from '../../common/utils/removeDuplicate';
6
-
7
- /**
8
- * Display layer's copyrights.
9
- *
10
- * @example
11
- * import { Map } from 'ol';
12
- * import { CopyrightControl } from 'mobility-toolbox-js/ol';
13
- *
14
- * const map = new Map({
15
- * target: 'map',
16
- * });
17
- * const control = new CopyrightControl();
18
- * control.attachToMap(map)
19
- *
20
- *
21
- * @see <a href="/example/ol-copyright">Openlayers copyright example</a>
22
- *
23
- * @extends {CopyrightControlCommon}
24
- */
25
- class CopyrightControl extends CopyrightControlCommon {
26
- frameState?: FrameState;
27
-
28
- constructor(options: any) {
29
- super(options);
30
- this.onPostRender = this.onPostRender.bind(this);
31
- }
32
-
33
- getCopyrights() {
34
- if (!this.frameState) {
35
- return [];
36
- }
37
- let copyrights: string[] = [];
38
-
39
- // This code loop comes mainly from ol.
40
- this.frameState?.layerStatesArray.forEach((layerState: any) => {
41
- const { layer } = layerState;
42
- if (
43
- this.frameState &&
44
- inView(layerState, this.frameState.viewState) &&
45
- layer &&
46
- layer.getSource &&
47
- layer.getSource() &&
48
- layer.getSource().getAttributions()
49
- ) {
50
- copyrights = copyrights.concat(
51
- layer.getSource().getAttributions()(this.frameState),
52
- );
53
- }
54
- });
55
- return removeDuplicate(copyrights);
56
- }
57
-
58
- activate() {
59
- super.activate();
60
- if (this.map) {
61
- this.map.on('postrender', this.onPostRender);
62
- }
63
- }
64
-
65
- deactivate() {
66
- if (this.map) {
67
- this.map.un('postrender', this.onPostRender);
68
- }
69
- }
70
-
71
- onPostRender(evt: MapEvent) {
72
- if (this.map && this.element) {
73
- /**
74
- * @private
75
- */
76
- this.frameState = evt.frameState || undefined;
77
- this.render();
78
- }
79
- }
80
- }
81
-
82
- export default CopyrightControl;