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

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 (303) hide show
  1. package/.babelrc +6 -0
  2. package/.esdoc.json +17 -0
  3. package/.eslintignore +1 -0
  4. package/.github/workflows/conventional-pr-title.yml +21 -0
  5. package/.github/workflows/cypress.yml +29 -0
  6. package/.github/workflows/nodejs.yml +28 -0
  7. package/.husky/commit-msg +4 -0
  8. package/.husky/post-checkout +4 -0
  9. package/.husky/post-merge +4 -0
  10. package/.husky/post-rebase +4 -0
  11. package/.husky/pre-commit +4 -0
  12. package/.neutrinorc.js +176 -0
  13. package/.nvmrc +1 -0
  14. package/CHANGELOG.md +10 -0
  15. package/LICENSE +21 -0
  16. package/Layer.js +2 -0
  17. package/Layer.js.map +7 -0
  18. package/README.md +7 -4
  19. package/__mocks__/mapbox-gl.js +81 -0
  20. package/__mocks__/maplibre-gl.js +81 -0
  21. package/commitlint.config.js +1 -0
  22. package/cypress/fixtures/example.json +5 -0
  23. package/cypress/integration/examples/api.spec.js +7 -0
  24. package/cypress/integration/examples/examples.spec.js +7 -0
  25. package/cypress/integration/examples/navigation.spec.js +29 -0
  26. package/cypress/plugins/index.js +21 -0
  27. package/cypress/support/commands.js +25 -0
  28. package/cypress/support/index.js +20 -0
  29. package/cypress.json +4 -0
  30. package/data/fetchRoute.json +292 -0
  31. package/data/fetchTrajectories.json +18 -0
  32. package/data/fetchTrajectoryById.json +3 -0
  33. package/data/fetchTrajectoryStations.json +18 -0
  34. package/data/stopsSearch.json +15 -0
  35. package/documentation.yml +4 -0
  36. package/esdoc/README.md +27 -0
  37. package/esdoc/plugins/MyPlugin.js +69 -0
  38. package/esdoc/plugins/dynamic-property-plugin/Plugin.js +50 -0
  39. package/esdoc/plugins/externals-plugin/Plugin.js +45 -0
  40. package/esdoc/plugins/externals-plugin/externals.js +96 -0
  41. package/global-setup.js +3 -0
  42. package/{ol/README.md → index.html} +0 -0
  43. package/indexweb.html +49 -0
  44. package/jest.config.js +5 -0
  45. package/package.json +34 -13
  46. package/pull_request_template.md +17 -0
  47. package/renovate.json +4 -0
  48. package/scripts/read-pkg-json.js +22 -0
  49. package/{api → src/api}/index.js +0 -1
  50. package/{api → src/api}/routing/RoutingAPI.js +0 -0
  51. package/{api → src/api}/routing/RoutingAPI.test.js +0 -0
  52. package/{api → src/api}/stops/StopsAPI.js +0 -0
  53. package/{api → src/api}/stops/StopsAPI.test.js +0 -0
  54. package/{api → src/api}/tralis/TralisAPI.js +1 -1
  55. package/{api → src/api}/tralis/TralisAPI.test.js +0 -0
  56. package/{api → src/api}/tralis/TralisAPIUtils.js +0 -0
  57. package/{api → src/api}/tralis/WebSocketConnector.js +0 -0
  58. package/{api → src/api}/tralis/WebSocketConnector.test.js +0 -0
  59. package/{api → src/api}/tralis/typedefs.js +0 -0
  60. package/src/assets/Lato-Black.ttf +0 -0
  61. package/src/assets/Lato-BlackItalic.ttf +0 -0
  62. package/src/assets/Lato-Bold.ttf +0 -0
  63. package/src/assets/Lato-BoldItalic.ttf +0 -0
  64. package/src/assets/Lato-Italic.ttf +0 -0
  65. package/src/assets/Lato-Light.ttf +0 -0
  66. package/src/assets/Lato-LightItalic.ttf +0 -0
  67. package/src/assets/Lato-Regular.ttf +0 -0
  68. package/src/assets/Lato-Thin.ttf +0 -0
  69. package/src/assets/Lato-ThinItalic.ttf +0 -0
  70. package/src/assets/OFL.txt +93 -0
  71. package/{common → src/common}/Tracker.js +0 -0
  72. package/{common → src/common}/api/api.js +0 -0
  73. package/{common → src/common}/api/api.test.js +0 -0
  74. package/{common → src/common}/controls/Control.js +4 -1
  75. package/{common → src/common}/controls/Control.test.js +0 -0
  76. package/{common → src/common}/layers/Layer.js +18 -49
  77. package/{common → src/common}/layers/Layer.test.js +2 -106
  78. package/{common → src/common}/mixins/CopyrightMixin.js +0 -0
  79. package/{common → src/common}/mixins/SearchMixin.js +1 -1
  80. package/{common/mixins/TrackerLayerMixin.js → src/common/mixins/TralisLayerMixin.js} +380 -195
  81. package/src/common/styles/index.js +4 -0
  82. package/{common/utils/delayTrackerStyle.js → src/common/styles/trackerDefaultStyle.js} +8 -8
  83. package/src/common/styles/trackerDelayStyle.js +17 -0
  84. package/src/common/styles/trackerSimpleStyle.js +22 -0
  85. package/{common → src/common}/trackerConfig.js +0 -0
  86. package/{common → src/common}/trackerConfig.test.js +0 -13
  87. package/{common → src/common}/typedefs.js +0 -0
  88. package/{common → src/common}/utils/createTrackerFilters.js +0 -0
  89. package/{common → src/common}/utils/createTrackerFilters.test.js +0 -0
  90. package/{common → src/common}/utils/getMapboxMapCopyrights.js +1 -0
  91. package/{common → src/common}/utils/getMapboxMapCopyrights.test.js +0 -0
  92. package/{common → src/common}/utils/getMapboxStyleUrl.js +0 -0
  93. package/{common → src/common}/utils/getVehiclePosition.js +0 -0
  94. package/{common → src/common}/utils/index.js +2 -3
  95. package/{common → src/common}/utils/removeDuplicate.js +0 -0
  96. package/{common → src/common}/utils/removeDuplicate.test.js +0 -0
  97. package/src/common/utils/sortByDelay.js +23 -0
  98. package/{common → src/common}/utils/timeUtils.js +0 -0
  99. package/{common → src/common}/utils/timeUtils.test.js +0 -0
  100. package/src/doc/App.js +116 -0
  101. package/src/doc/App.scss +51 -0
  102. package/src/doc/_redirects +2 -0
  103. package/src/doc/components/CodeSandboxButton.js +103 -0
  104. package/src/doc/components/Documentation.js +40 -0
  105. package/src/doc/components/Esdoc/Anchor.js +57 -0
  106. package/src/doc/components/Esdoc/ClassDoc.js +272 -0
  107. package/src/doc/components/Esdoc/DeprecatedHTML.js +16 -0
  108. package/src/doc/components/Esdoc/DetailDocs.js +281 -0
  109. package/src/doc/components/Esdoc/DetailHTML.js +33 -0
  110. package/src/doc/components/Esdoc/DirectSubclassHTML.js +30 -0
  111. package/src/doc/components/Esdoc/DocBuilderUtils.js +694 -0
  112. package/src/doc/components/Esdoc/DocLinkHTML.js +62 -0
  113. package/src/doc/components/Esdoc/DocsLinkHTML.js +38 -0
  114. package/src/doc/components/Esdoc/Esdoc.js +63 -0
  115. package/src/doc/components/Esdoc/EsdocContent.js +51 -0
  116. package/src/doc/components/Esdoc/EsdocNavigation.js +13 -0
  117. package/src/doc/components/Esdoc/EsdocSearch.js +81 -0
  118. package/src/doc/components/Esdoc/ExperimentalHTML.js +17 -0
  119. package/src/doc/components/Esdoc/ExtendsChainHTML.js +32 -0
  120. package/src/doc/components/Esdoc/FileDocLinkHTML.js +60 -0
  121. package/src/doc/components/Esdoc/IdentifiersDoc.js +113 -0
  122. package/src/doc/components/Esdoc/IndirectSubclassHTML.js +30 -0
  123. package/src/doc/components/Esdoc/InheritedSummaryDoc.js +70 -0
  124. package/src/doc/components/Esdoc/InheritedSummaryHTML.js +38 -0
  125. package/src/doc/components/Esdoc/MixinClassesHTML.js +29 -0
  126. package/src/doc/components/Esdoc/NavDoc.js +112 -0
  127. package/src/doc/components/Esdoc/OverrideMethod.js +44 -0
  128. package/src/doc/components/Esdoc/OverrideMethodDescription.js +35 -0
  129. package/src/doc/components/Esdoc/Properties.js +89 -0
  130. package/src/doc/components/Esdoc/README.md +45 -0
  131. package/src/doc/components/Esdoc/SignatureHTML.js +123 -0
  132. package/src/doc/components/Esdoc/SingleDoc.js +31 -0
  133. package/src/doc/components/Esdoc/SummaryDoc.js +160 -0
  134. package/src/doc/components/Esdoc/SummaryHTML.js +96 -0
  135. package/src/doc/components/Esdoc/TypeDocLinkHTML.js +249 -0
  136. package/src/doc/components/Esdoc/css/identifiers.css +38 -0
  137. package/src/doc/components/Esdoc/css/search.css +76 -0
  138. package/src/doc/components/Esdoc/css/style.css +603 -0
  139. package/src/doc/components/Esdoc/index.js +7 -0
  140. package/src/doc/components/Example.js +153 -0
  141. package/src/doc/components/Examples.js +183 -0
  142. package/src/doc/components/Home.js +106 -0
  143. package/src/doc/components/TrackerExample.js +38 -0
  144. package/src/doc/components/esm.min.js +2 -0
  145. package/src/doc/components/examples/assets/tralis-live-map/index.js +11 -0
  146. package/src/doc/components/examples/assets/tralis-live-map/s1kreis.svg +105 -0
  147. package/src/doc/components/examples/assets/tralis-live-map/s20kreis.svg +101 -0
  148. package/src/doc/components/examples/assets/tralis-live-map/s2kreis.svg +95 -0
  149. package/src/doc/components/examples/assets/tralis-live-map/s3kreis.svg +95 -0
  150. package/src/doc/components/examples/assets/tralis-live-map/s4kreis.svg +95 -0
  151. package/src/doc/components/examples/assets/tralis-live-map/s6kreis.svg +95 -0
  152. package/src/doc/components/examples/assets/tralis-live-map/s7kreis.svg +95 -0
  153. package/src/doc/components/examples/assets/tralis-live-map/s8kreis.svg +93 -0
  154. package/src/doc/components/examples/assets/tralis-live-map/unknown.svg +107 -0
  155. package/src/doc/components/examples/mb-copyright.html +26 -0
  156. package/src/doc/components/examples/mb-copyright.js +37 -0
  157. package/src/doc/components/examples/mb-tracker.html +1 -0
  158. package/src/doc/components/examples/mb-tracker.js +39 -0
  159. package/src/doc/components/examples/mb-tracker.md +1 -0
  160. package/src/doc/components/examples/mb-tralis.html +1 -0
  161. package/src/doc/components/examples/mb-tralis.js +34 -0
  162. package/src/doc/components/examples/ol-copyright.html +26 -0
  163. package/src/doc/components/examples/ol-copyright.js +43 -0
  164. package/src/doc/components/examples/ol-mapbox-layer.html +1 -0
  165. package/src/doc/components/examples/ol-mapbox-layer.js +28 -0
  166. package/src/doc/components/examples/ol-mapbox-layer.md +0 -0
  167. package/src/doc/components/examples/ol-mapbox-style-layer.html +12 -0
  168. package/src/doc/components/examples/ol-mapbox-style-layer.js +44 -0
  169. package/src/doc/components/examples/ol-query.html +32 -0
  170. package/src/doc/components/examples/ol-query.js +83 -0
  171. package/src/doc/components/examples/ol-routing.html +26 -0
  172. package/src/doc/components/examples/ol-routing.js +59 -0
  173. package/src/doc/components/examples/ol-routing.md +1 -0
  174. package/src/doc/components/examples/ol-stop-finder.html +15 -0
  175. package/src/doc/components/examples/ol-stop-finder.js +31 -0
  176. package/src/doc/components/examples/ol-stop-finder.md +1 -0
  177. package/src/doc/components/examples/ol-tracker.html +1 -0
  178. package/src/doc/components/examples/ol-tracker.js +44 -0
  179. package/src/doc/components/examples/ol-tracker.md +1 -0
  180. package/src/doc/components/examples/ol-tralis.html +5 -0
  181. package/src/doc/components/examples/ol-tralis.js +57 -0
  182. package/src/doc/components/examples/tralis-live-map.html +1 -0
  183. package/src/doc/components/examples/tralis-live-map.js +51 -0
  184. package/src/doc/components/examples/tralis-live-map.md +3 -0
  185. package/src/doc/examples/assets/tralis-live-map/index.js +11 -0
  186. package/src/doc/examples/assets/tralis-live-map/s1kreis.svg +105 -0
  187. package/src/doc/examples/assets/tralis-live-map/s20kreis.svg +101 -0
  188. package/src/doc/examples/assets/tralis-live-map/s2kreis.svg +95 -0
  189. package/src/doc/examples/assets/tralis-live-map/s3kreis.svg +95 -0
  190. package/src/doc/examples/assets/tralis-live-map/s4kreis.svg +95 -0
  191. package/src/doc/examples/assets/tralis-live-map/s6kreis.svg +95 -0
  192. package/src/doc/examples/assets/tralis-live-map/s7kreis.svg +95 -0
  193. package/src/doc/examples/assets/tralis-live-map/s8kreis.svg +93 -0
  194. package/src/doc/examples/assets/tralis-live-map/unknown.svg +107 -0
  195. package/src/doc/examples/mb-copyright.html +26 -0
  196. package/src/doc/examples/mb-copyright.js +37 -0
  197. package/src/doc/examples/mb-tracker.html +1 -0
  198. package/src/doc/examples/mb-tracker.js +39 -0
  199. package/src/doc/examples/mb-tracker.md +1 -0
  200. package/src/doc/examples/mb-tralis.html +1 -0
  201. package/src/doc/examples/mb-tralis.js +34 -0
  202. package/src/doc/examples/ol-copyright.html +26 -0
  203. package/src/doc/examples/ol-copyright.js +43 -0
  204. package/src/doc/examples/ol-mapbox-layer.html +1 -0
  205. package/src/doc/examples/ol-mapbox-layer.js +28 -0
  206. package/src/doc/examples/ol-mapbox-layer.md +0 -0
  207. package/src/doc/examples/ol-mapbox-style-layer.html +12 -0
  208. package/src/doc/examples/ol-mapbox-style-layer.js +44 -0
  209. package/src/doc/examples/ol-query.html +32 -0
  210. package/src/doc/examples/ol-query.js +83 -0
  211. package/src/doc/examples/ol-routing.html +26 -0
  212. package/src/doc/examples/ol-routing.js +59 -0
  213. package/src/doc/examples/ol-routing.md +1 -0
  214. package/src/doc/examples/ol-stop-finder.html +15 -0
  215. package/src/doc/examples/ol-stop-finder.js +31 -0
  216. package/src/doc/examples/ol-stop-finder.md +1 -0
  217. package/src/doc/examples/ol-tracker.html +1 -0
  218. package/src/doc/examples/ol-tracker.js +44 -0
  219. package/src/doc/examples/ol-tracker.md +1 -0
  220. package/src/doc/examples/ol-tralis.html +5 -0
  221. package/src/doc/examples/ol-tralis.js +57 -0
  222. package/src/doc/examples/tralis-live-map.html +1 -0
  223. package/src/doc/examples/tralis-live-map.js +51 -0
  224. package/src/doc/examples/tralis-live-map.md +3 -0
  225. package/src/doc/examples.js +107 -0
  226. package/src/doc/img/examples/live_tracker_mb.jpg +0 -0
  227. package/src/doc/img/examples/live_tracker_munich.jpg +0 -0
  228. package/src/doc/img/examples/live_tracker_ol.jpg +0 -0
  229. package/src/doc/img/examples/mapbox.jpg +0 -0
  230. package/src/doc/img/examples/mapbox_style.jpg +0 -0
  231. package/src/doc/img/examples/ol-copyright.png +0 -0
  232. package/src/doc/img/examples/query_objects.jpg +0 -0
  233. package/src/doc/img/examples/routing.jpg +0 -0
  234. package/src/doc/img/examples/simple_map.jpg +0 -0
  235. package/src/doc/img/examples/stops.jpg +0 -0
  236. package/src/doc/img/favico.ico +0 -0
  237. package/src/doc/index.js +21 -0
  238. package/src/iife.js +7 -0
  239. package/{module.js → src/index.js} +3 -9
  240. package/{mapbox → src/mapbox}/controls/CopyrightControl.js +5 -1
  241. package/{mapbox → src/mapbox}/index.js +0 -2
  242. package/{mapbox → src/mapbox}/layers/Layer.js +0 -0
  243. package/{mapbox → src/mapbox}/layers/Layer.test.js +2 -2
  244. package/{mapbox/layers/TrackerLayer.js → src/mapbox/layers/TralisLayer.js} +71 -24
  245. package/src/mapbox/layers/TralisLayer.test.js +40 -0
  246. package/{mapbox → src/mapbox}/utils.js +0 -0
  247. package/src/ol/README.md +0 -0
  248. package/{ol → src/ol}/controls/CopyrightControl.js +4 -4
  249. package/{ol → src/ol}/controls/CopyrightControl.test.js +16 -16
  250. package/{ol → src/ol}/controls/RoutingControl.js +9 -7
  251. package/{ol → src/ol}/controls/RoutingControl.test.js +1 -1
  252. package/{ol → src/ol}/controls/StopFinderControl.js +8 -6
  253. package/{ol → src/ol}/controls/StopFinderControl.test.js +1 -1
  254. package/{ol → src/ol}/controls/snapshots/RoutingControlRouteGen10.json +0 -0
  255. package/{ol → src/ol}/controls/snapshots/RoutingControlRouteGen100.json +0 -0
  256. package/{ol → src/ol}/controls/snapshots/RoutingControlRouteGen30.json +0 -0
  257. package/{ol → src/ol}/controls/snapshots/RoutingControlRouteGen5.json +0 -0
  258. package/{ol → src/ol}/controls/snapshots/RoutingControlRouteOSM.json +0 -0
  259. package/{ol → src/ol}/controls/snapshots/RoutingControlStation1.json +0 -0
  260. package/{ol → src/ol}/controls/snapshots/RoutingControlStation2.json +0 -0
  261. package/{ol → src/ol}/index.js +3 -3
  262. package/{ol → src/ol}/layers/Layer.js +9 -0
  263. package/{ol → src/ol}/layers/Layer.test.js +22 -7
  264. package/{ol → src/ol}/layers/MapboxLayer.js +39 -44
  265. package/{ol → src/ol}/layers/MapboxLayer.test.js +5 -5
  266. package/{ol → src/ol}/layers/MapboxStyleLayer.js +0 -6
  267. package/{ol → src/ol}/layers/MapboxStyleLayer.test.js +22 -6
  268. package/src/ol/layers/MaplibreLayer.js +280 -0
  269. package/{ol → src/ol}/layers/RoutingLayer.js +0 -0
  270. package/{ol → src/ol}/layers/RoutingLayer.test.js +1 -1
  271. package/{ol/layers/TrackerLayer.js → src/ol/layers/TralisLayer.js} +96 -33
  272. package/{ol → src/ol}/layers/TralisLayer.test.js +1 -49
  273. package/{ol → src/ol}/layers/VectorLayer.js +0 -0
  274. package/{ol → src/ol}/layers/VectorLayer.test.js +1 -1
  275. package/{ol → src/ol}/layers/WMSLayer.js +0 -0
  276. package/{ol → src/ol}/layers/WMSLayer.test.js +6 -2
  277. package/src/ol/styles/fullTrajectoryDelayStyle.js +35 -0
  278. package/src/ol/styles/fullTrajectoryStyle.js +51 -0
  279. package/src/ol/styles/index.js +2 -0
  280. package/src/setupTests.js +15 -0
  281. package/webpack.config.js +6 -0
  282. package/api/trajserv/TrajservAPI.js +0 -71
  283. package/api/trajserv/TrajservAPI.test.js +0 -171
  284. package/api/trajserv/TrajservAPIUtils.js +0 -191
  285. package/api/trajserv/TrajservAPIUtils.test.js +0 -40
  286. package/api/trajserv/typedefs.js +0 -44
  287. package/common/mixins/MapMixin.js +0 -103
  288. package/common/mixins/TrajservLayerMixin.js +0 -544
  289. package/common/mixins/TralisLayerMixin.js +0 -402
  290. package/common/utils/simpleTrackerStyle.js +0 -18
  291. package/index.js +0 -2
  292. package/index.js.map +0 -1
  293. package/mapbox/Map.js +0 -87
  294. package/mapbox/layers/TrackerLayer.test.js +0 -68
  295. package/mapbox/layers/TrajservLayer.js +0 -114
  296. package/mapbox/layers/TrajservLayer.test.js +0 -90
  297. package/mapbox/layers/TralisLayer.js +0 -64
  298. package/ol/Map.js +0 -109
  299. package/ol/Map.test.js +0 -34
  300. package/ol/layers/TrackerLayer.test.js +0 -70
  301. package/ol/layers/TrajservLayer.js +0 -190
  302. package/ol/layers/TrajservLayer.test.js +0 -113
  303. package/ol/layers/TralisLayer.js +0 -177
@@ -1,191 +0,0 @@
1
- import { LineString } from 'ol/geom';
2
-
3
- /**
4
- * Translate the response date object into a readable object.
5
- * @return {Date[]}
6
- * @ignore
7
- */
8
- const translateDates = (dates = []) => {
9
- const newDates = [];
10
-
11
- for (let i = 0; i < dates.length; i += 1) {
12
- const { d: day, m: month, y: year } = dates[i];
13
- newDates.push({
14
- day,
15
- month,
16
- year,
17
- });
18
- }
19
- return newDates;
20
- };
21
-
22
- /**
23
- * Translate the trajstations response into a readable object.
24
- * @return {Object} returns a readable object
25
- * @private
26
- */
27
- export const translateTrajStationsResp = (data) => {
28
- const newData = { ...data };
29
-
30
- // MAke sure all property exists.
31
- ['a', 'f', 'tt'].forEach((prop) => {
32
- if (!newData[prop]) {
33
- newData[prop] = {};
34
- }
35
- });
36
-
37
- const {
38
- id,
39
- hs: destination,
40
- t: vehicleType,
41
- ln: longName,
42
- sn: shortName,
43
- wa: wheelchairAccessible,
44
- ba: bicyclesAllowed,
45
- rt: realTime,
46
- fid: feedsId,
47
- rid: routeIdentifier,
48
- c: bgColor,
49
- tc: datacolor,
50
- a: { n: operator, u: operatorUrl, tz: operatorTimeZone },
51
- f: { n: publisher, u: publisherUrl, tz: publisherTimeZone },
52
- tt: {
53
- n: dateNotOperatingDays,
54
- p: dateAdditionalOperatingDays,
55
- t: operatingPeriod,
56
- },
57
- sts: dataStations,
58
- } = newData;
59
-
60
- const notOperatingDays = translateDates(dateNotOperatingDays);
61
- const additionalOperatingDays = translateDates(dateAdditionalOperatingDays);
62
- const backgroundColor = bgColor && `#${bgColor}`;
63
- const color = datacolor && `#${datacolor}`;
64
-
65
- const stations = [];
66
- for (let i = 0; i < (dataStations || []).length; i += 1) {
67
- const {
68
- sid: stationId,
69
- n: stationName,
70
- p: coordinates,
71
- at: arrivalTime,
72
- dt: departureTime,
73
- ap: arrivalDate,
74
- dp: departureDate,
75
- ad: arrivalDelay,
76
- dd: departureDelay,
77
- dot: noDropOff,
78
- put: noPickUp,
79
- c: cancelled,
80
- wa: stWheelchairAccessible,
81
- } = dataStations[i];
82
-
83
- stations.push({
84
- stationId,
85
- stationName,
86
- coordinates,
87
- arrivalTime: arrivalTime !== -1 ? arrivalDate * 1000 : null,
88
- departureTime: departureTime !== -1 ? departureDate * 1000 : null,
89
- arrivalDelay,
90
- departureDelay,
91
- noDropOff: !!noDropOff,
92
- noPickUp: !!noPickUp,
93
- cancelled: !!cancelled,
94
- wheelchairAccessible: !!stWheelchairAccessible,
95
- });
96
- }
97
-
98
- return {
99
- id,
100
- destination,
101
- backgroundColor,
102
- color,
103
- vehicleType,
104
- routeIdentifier,
105
- longName,
106
- shortName,
107
- stations,
108
- wheelchairAccessible: !!wheelchairAccessible,
109
- bicyclesAllowed: !!bicyclesAllowed,
110
- realTime,
111
- feedsId,
112
- operatingInformations: {
113
- operatingPeriod,
114
- notOperatingDays,
115
- additionalOperatingDays,
116
- },
117
- operator,
118
- operatorUrl,
119
- operatorTimeZone,
120
- publisher,
121
- publisherUrl,
122
- publisherTimeZone,
123
- };
124
- };
125
-
126
- /**
127
- * Translate the trajectory_collection response into a js usable object.
128
- * @return {Array} returns an array of trajectories.
129
- * @ignore
130
- */
131
- export const translateTrajCollResponse = (features = []) => {
132
- const trajectories = [];
133
- for (let i = 0; i < features.length; i += 1) {
134
- const traj = features[i];
135
- const geometry = new LineString(traj.geometry.coordinates);
136
- const {
137
- ID: id,
138
- ProductIdentifier: type,
139
- PublishedLineName: name,
140
- RouteIdentifier: routeIdentifier,
141
- DirectionText: directionText,
142
- Operator: operator,
143
- OperatorURL: operatorUrl,
144
- Publisher: publisher,
145
- PublisherURL: publisherUrl,
146
- License: license,
147
- LicenseUrl: licenseUrl,
148
- LicenseNote: licenseNote,
149
- Color: color,
150
- JourneyIdentifier: journeyIdentifier,
151
- RealtimeAvailable: realtimeAvailable,
152
- OperatorProvidesRealtime: operatorProvidesRealtime,
153
- DayOfOperation: dayOfOperation,
154
- Delay: delay,
155
- TimeIntervals: timeIntervals,
156
- TextColor: textColor,
157
- Cancelled: cancelled,
158
- } = traj.properties;
159
-
160
- trajectories.push({
161
- id,
162
- type,
163
- name,
164
- routeIdentifier,
165
- directionText,
166
- operator,
167
- operatorUrl,
168
- publisher,
169
- publisherUrl,
170
- license,
171
- licenseUrl,
172
- licenseNote,
173
- journeyIdentifier,
174
- realtimeAvailable,
175
- operatorProvidesRealtime,
176
- dayOfOperation,
177
- delay,
178
- timeIntervals,
179
- color: color && `#${color}`,
180
- textColor: textColor && `#${textColor}`,
181
- geometry,
182
- cancelled,
183
- });
184
- }
185
- return trajectories;
186
- };
187
-
188
- export default {
189
- translateTrajCollResponse,
190
- translateTrajStationsResp,
191
- };
@@ -1,40 +0,0 @@
1
- import { translateTrajStationsResp } from './TrajservAPIUtils';
2
-
3
- describe('TrajservAPIUtils', () => {
4
- describe('#translateTrajStationsResp', () => {
5
- test("should success even if data doesn't have all properties set", () => {
6
- const empty = {
7
- backgroundColor: undefined,
8
- bicyclesAllowed: false,
9
- color: undefined,
10
- destination: undefined,
11
- feedsId: undefined,
12
- id: undefined,
13
- longName: undefined,
14
- operatingInformations: {
15
- additionalOperatingDays: [],
16
- notOperatingDays: [],
17
- operatingPeriod: undefined,
18
- },
19
- operator: undefined,
20
- operatorTimeZone: undefined,
21
- operatorUrl: undefined,
22
- publisher: undefined,
23
- publisherTimeZone: undefined,
24
- publisherUrl: undefined,
25
- realTime: undefined,
26
- routeIdentifier: undefined,
27
- shortName: undefined,
28
- stations: [],
29
- vehicleType: undefined,
30
- wheelchairAccessible: false,
31
- };
32
- let a = translateTrajStationsResp({});
33
- expect(a).toEqual(empty);
34
- a = translateTrajStationsResp(null);
35
- expect(a).toEqual(empty);
36
- a = translateTrajStationsResp(undefined);
37
- expect(a).toEqual(empty);
38
- });
39
- });
40
- });
@@ -1,44 +0,0 @@
1
- /**
2
- * @typedef {Object} OperatingInformations
3
- * @property {string} operatingPeriod
4
- * @property {string} notOperatingDays
5
- * @property {string} additionalOperatingDays
6
- *
7
- */
8
-
9
- /**
10
- * @typedef {Object} TrajservTrajectory
11
- * @property {string} id
12
- * @property {string} type
13
- * @property {string} name
14
- * @property {string} color
15
- * @property {string} textColor
16
- * @property {string} delay
17
- * @property {string} operator
18
- * @property {string} journeyIdentifier
19
- * @property {string} routeIdentifier
20
- * @property {string} timeIntervals
21
- * @property {ol/geom/LineString~LineString} geometry A LineString in [EPSG:4326](http://epsg.io/4326).
22
- * @property {string} cancelled
23
- */
24
-
25
- /**
26
- * @typedef {Object} TrajectoryStation
27
- * @property {string} id
28
- * @property {string} destination
29
- * @property {string} backgroundColor
30
- * @property {string} color
31
- * @property {string} vehicleType
32
- * @property {string} routeIdentifier
33
- * @property {string} longName
34
- * @property {string} shortName
35
- * @property {string} stations
36
- * @property {string} wheelchairAccessible
37
- * @property {string} bicyclesAllowed
38
- * @property {string} realTime
39
- * @property {string} feedsId
40
- * @property {OperatingInformations} operatingInformations
41
- * @property {string} operator
42
- * @property {string} operatorUrl
43
- * @property {string} operatorTimeZone
44
- */
@@ -1,103 +0,0 @@
1
- /* eslint-disable no-empty-function */
2
- /* eslint-disable no-useless-constructor */
3
- /* eslint-disable class-methods-use-this */
4
- // eslint-disable-next-line max-classes-per-file
5
- import Control from '../controls/Control';
6
-
7
- /**
8
- * Map interface.
9
- */
10
- export class MapInterface {
11
- /**
12
- * Constructor.
13
- *
14
- * @param {Object} options Map options
15
- * @param {Array<Layer>} [options.layers] Custom layers of the map.
16
- * @param {Array<Control>} [options.controls] Custom controls of the map.
17
- */
18
- // eslint-disable-next-line no-unused-vars
19
- constructor(options = {}) {}
20
-
21
- /**
22
- * Returns the HTML element of the map.
23
- * @return {HTMLElement}
24
- */
25
- getContainer() {}
26
-
27
- /**
28
- * Returns a list of mobility layers.
29
- * @return {Layer[]}
30
- */
31
- getMobilityLayers() {}
32
-
33
- /**
34
- * Returns a list of mobility controls.
35
- * @return {Control[]}
36
- */
37
- getMobilityControls() {}
38
- }
39
-
40
- /**
41
- * Mixin for MapInterface.
42
- * @ignore
43
- */
44
- const MapMixin = (Base) =>
45
- class extends Base {
46
- constructor(options = {}) {
47
- super({ ...options, layers: [], controls: [] });
48
- this.mobilityLayers = [];
49
- this.mobilityControls = [];
50
-
51
- // Add controls
52
- (options.controls || []).forEach((control) => {
53
- this.addControl(control);
54
- });
55
-
56
- // Add layers
57
- (options.layers || []).forEach((layer) => {
58
- this.addLayer(layer);
59
- });
60
- }
61
-
62
- getMobilityLayers() {
63
- return this.mobilityLayers;
64
- }
65
-
66
- getMobilityControls() {
67
- return this.mobilityControls;
68
- }
69
-
70
- addMobilityControl(control) {
71
- this.mobilityControls.push(control);
72
- // eslint-disable-next-line no-param-reassign
73
- control.map = this;
74
- }
75
-
76
- removeMobilityControl(control) {
77
- // eslint-disable-next-line no-param-reassign
78
- control.map = null;
79
- this.mobilityControls = this.mobilityControls.filter(
80
- (c) => c !== control,
81
- );
82
- }
83
-
84
- /** Documentation in inherited classes */
85
- addControl(control, position) {
86
- if (control instanceof Control) {
87
- this.addMobilityControl(control);
88
- } else {
89
- super.addControl(control, position);
90
- }
91
- }
92
-
93
- /** Documentation in inherited classes */
94
- removeControl(control) {
95
- if (control instanceof Control) {
96
- this.removeMobilityControl(control);
97
- } else {
98
- super.removeControl(control);
99
- }
100
- }
101
- };
102
-
103
- export default MapMixin;