mobility-toolbox-js 2.3.9-beta.1 → 2.3.10

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/.esdoc.js +18 -0
  2. package/.eslintignore +1 -0
  3. package/.eslintrc.js +25 -0
  4. package/.fixpackrc +20 -0
  5. package/.github/workflows/build.yml +16 -0
  6. package/.github/workflows/conventional-pr-title.yml +16 -0
  7. package/.github/workflows/cypress.yml +101 -0
  8. package/.github/workflows/test.yml +17 -0
  9. package/.husky/commit-msg +4 -0
  10. package/.husky/post-checkout +4 -0
  11. package/.husky/post-merge +4 -0
  12. package/.husky/post-rebase +4 -0
  13. package/.husky/pre-commit +4 -0
  14. package/.lintstagedrc.js +10 -0
  15. package/.nvmrc +1 -0
  16. package/.prettierrc.js +5 -0
  17. package/.stylelintrc.js +4 -0
  18. package/CHANGELOG.md +132 -0
  19. package/LICENSE +21 -0
  20. package/MIGRATION-V2.md +248 -0
  21. package/README.md +42 -0
  22. package/__mocks__/mapbox-gl.js +81 -0
  23. package/__mocks__/maplibre-gl.js +81 -0
  24. package/babel.config.js +9 -0
  25. package/commitlint.config.js +1 -0
  26. package/cypress/e2e/examples/api.cy.js +7 -0
  27. package/cypress/e2e/examples/examples.cy.js +7 -0
  28. package/cypress/e2e/examples/navigation.cy.js +29 -0
  29. package/cypress/fixtures/example.json +5 -0
  30. package/cypress/plugins/index.js +21 -0
  31. package/cypress/support/commands.js +25 -0
  32. package/cypress/support/e2e.js +20 -0
  33. package/cypress.config.ts +15 -0
  34. package/data/fetchRoute.json +292 -0
  35. package/data/fetchTrajectories.json +18 -0
  36. package/data/fetchTrajectoryById.json +3 -0
  37. package/data/fetchTrajectoryStations.json +18 -0
  38. package/data/stopsSearch.json +15 -0
  39. package/dependabot.yml +15 -0
  40. package/doc/.eslintrc.json +1 -0
  41. package/doc/README.md +34 -0
  42. package/doc/next.config.js +16 -0
  43. package/doc/package.json +41 -0
  44. package/doc/pages/404.js +5 -0
  45. package/doc/pages/_app.js +61 -0
  46. package/doc/pages/_document.js +64 -0
  47. package/doc/pages/doc/[...slug].js +23 -0
  48. package/doc/pages/doc.js +23 -0
  49. package/doc/pages/example/[example].js +52 -0
  50. package/doc/pages/examples.js +34 -0
  51. package/doc/pages/index.js +25 -0
  52. package/doc/public/README.md +15 -0
  53. package/doc/public/favicon.ico +0 -0
  54. package/doc/public/static/assets/Lato-Black.ttf +0 -0
  55. package/doc/public/static/assets/Lato-BlackItalic.ttf +0 -0
  56. package/doc/public/static/assets/Lato-Bold.ttf +0 -0
  57. package/doc/public/static/assets/Lato-BoldItalic.ttf +0 -0
  58. package/doc/public/static/assets/Lato-Italic.ttf +0 -0
  59. package/doc/public/static/assets/Lato-Light.ttf +0 -0
  60. package/doc/public/static/assets/Lato-LightItalic.ttf +0 -0
  61. package/doc/public/static/assets/Lato-Regular.ttf +0 -0
  62. package/doc/public/static/assets/Lato-Thin.ttf +0 -0
  63. package/doc/public/static/assets/Lato-ThinItalic.ttf +0 -0
  64. package/doc/public/static/assets/OFL.txt +93 -0
  65. package/doc/public/static/examples/assets/tralis-live-map/index.js +11 -0
  66. package/doc/public/static/examples/assets/tralis-live-map/s1kreis.svg +105 -0
  67. package/doc/public/static/examples/assets/tralis-live-map/s20kreis.svg +101 -0
  68. package/doc/public/static/examples/assets/tralis-live-map/s2kreis.svg +95 -0
  69. package/doc/public/static/examples/assets/tralis-live-map/s3kreis.svg +95 -0
  70. package/doc/public/static/examples/assets/tralis-live-map/s4kreis.svg +95 -0
  71. package/doc/public/static/examples/assets/tralis-live-map/s6kreis.svg +95 -0
  72. package/doc/public/static/examples/assets/tralis-live-map/s7kreis.svg +95 -0
  73. package/doc/public/static/examples/assets/tralis-live-map/s8kreis.svg +93 -0
  74. package/doc/public/static/examples/assets/tralis-live-map/unknown.svg +107 -0
  75. package/doc/public/static/examples/layers.html +11 -0
  76. package/doc/public/static/examples/layers.js +97 -0
  77. package/doc/public/static/examples/mb-copyright.html +26 -0
  78. package/doc/public/static/examples/mb-copyright.js +37 -0
  79. package/doc/public/static/examples/mb-tracker.html +1 -0
  80. package/doc/public/static/examples/mb-tracker.js +40 -0
  81. package/doc/public/static/examples/mb-tracker.md +1 -0
  82. package/doc/public/static/examples/mb-tralis.html +1 -0
  83. package/doc/public/static/examples/mb-tralis.js +34 -0
  84. package/doc/public/static/examples/ol-copyright.html +26 -0
  85. package/doc/public/static/examples/ol-copyright.js +43 -0
  86. package/doc/public/static/examples/ol-mapbox-layer.html +1 -0
  87. package/doc/public/static/examples/ol-mapbox-layer.js +28 -0
  88. package/doc/public/static/examples/ol-mapbox-style-layer.html +12 -0
  89. package/doc/public/static/examples/ol-mapbox-style-layer.js +48 -0
  90. package/doc/public/static/examples/ol-query.html +32 -0
  91. package/doc/public/static/examples/ol-query.js +83 -0
  92. package/doc/public/static/examples/ol-routing.html +26 -0
  93. package/doc/public/static/examples/ol-routing.js +65 -0
  94. package/doc/public/static/examples/ol-routing.md +1 -0
  95. package/doc/public/static/examples/ol-stop-finder.html +15 -0
  96. package/doc/public/static/examples/ol-stop-finder.js +35 -0
  97. package/doc/public/static/examples/ol-stop-finder.md +1 -0
  98. package/doc/public/static/examples/ol-tracker.html +1 -0
  99. package/doc/public/static/examples/ol-tracker.js +41 -0
  100. package/doc/public/static/examples/ol-tracker.md +1 -0
  101. package/doc/public/static/examples/ol-tralis.html +5 -0
  102. package/doc/public/static/examples/ol-tralis.js +62 -0
  103. package/doc/public/static/examples/tralis-live-map.html +1 -0
  104. package/doc/public/static/examples/tralis-live-map.js +67 -0
  105. package/doc/public/static/examples/tralis-live-map.md +3 -0
  106. package/doc/public/static/img/live_tracker_mb.jpg +0 -0
  107. package/doc/public/static/img/live_tracker_munich.jpg +0 -0
  108. package/doc/public/static/img/live_tracker_ol.jpg +0 -0
  109. package/doc/public/static/img/mapbox.jpg +0 -0
  110. package/doc/public/static/img/mapbox_style.jpg +0 -0
  111. package/doc/public/static/img/ol-copyright.png +0 -0
  112. package/doc/public/static/img/query_objects.jpg +0 -0
  113. package/doc/public/static/img/routing.jpg +0 -0
  114. package/doc/public/static/img/simple_map.jpg +0 -0
  115. package/doc/public/static/img/stops.jpg +0 -0
  116. package/doc/public/vercel.svg +4 -0
  117. package/doc/src/components/CodeSandboxButton.js +102 -0
  118. package/doc/src/components/Documentation.js +42 -0
  119. package/doc/src/components/Esdoc/Anchor.js +57 -0
  120. package/doc/src/components/Esdoc/ClassDoc.js +272 -0
  121. package/doc/src/components/Esdoc/DeprecatedHTML.js +16 -0
  122. package/doc/src/components/Esdoc/DetailDocs.js +279 -0
  123. package/doc/src/components/Esdoc/DetailHTML.js +33 -0
  124. package/doc/src/components/Esdoc/DirectSubclassHTML.js +30 -0
  125. package/doc/src/components/Esdoc/DocBuilderUtils.js +697 -0
  126. package/doc/src/components/Esdoc/DocLinkHTML.js +63 -0
  127. package/doc/src/components/Esdoc/DocsLinkHTML.js +38 -0
  128. package/doc/src/components/Esdoc/Esdoc.js +63 -0
  129. package/doc/src/components/Esdoc/EsdocContent.js +56 -0
  130. package/doc/src/components/Esdoc/EsdocNavigation.js +13 -0
  131. package/doc/src/components/Esdoc/EsdocSearch.js +78 -0
  132. package/doc/src/components/Esdoc/ExperimentalHTML.js +17 -0
  133. package/doc/src/components/Esdoc/ExtendsChainHTML.js +32 -0
  134. package/doc/src/components/Esdoc/FileDocLinkHTML.js +62 -0
  135. package/doc/src/components/Esdoc/IdentifiersDoc.js +113 -0
  136. package/doc/src/components/Esdoc/IndirectSubclassHTML.js +30 -0
  137. package/doc/src/components/Esdoc/InheritedSummaryDoc.js +70 -0
  138. package/doc/src/components/Esdoc/InheritedSummaryHTML.js +38 -0
  139. package/doc/src/components/Esdoc/MixinClassesHTML.js +29 -0
  140. package/doc/src/components/Esdoc/NavDoc.js +112 -0
  141. package/doc/src/components/Esdoc/OverrideMethod.js +44 -0
  142. package/doc/src/components/Esdoc/OverrideMethodDescription.js +35 -0
  143. package/doc/src/components/Esdoc/Properties.js +89 -0
  144. package/doc/src/components/Esdoc/README.md +45 -0
  145. package/doc/src/components/Esdoc/SignatureHTML.js +123 -0
  146. package/doc/src/components/Esdoc/SingleDoc.js +31 -0
  147. package/doc/src/components/Esdoc/SummaryDoc.js +160 -0
  148. package/doc/src/components/Esdoc/SummaryHTML.js +96 -0
  149. package/doc/src/components/Esdoc/TypeDocLinkHTML.js +251 -0
  150. package/doc/src/components/Esdoc/index.js +7 -0
  151. package/doc/src/components/Esdoc/taffydb.js +2070 -0
  152. package/doc/src/components/Example.js +200 -0
  153. package/doc/src/components/ExampleCard.js +126 -0
  154. package/doc/src/components/Examples.js +78 -0
  155. package/doc/src/components/Home.js +121 -0
  156. package/doc/src/components/TrackerExample.js +39 -0
  157. package/doc/src/examples.js +117 -0
  158. package/doc/styles/App.scss +53 -0
  159. package/doc/styles/identifiers.css +38 -0
  160. package/doc/styles/search.css +76 -0
  161. package/doc/styles/style.css +603 -0
  162. package/esdoc/README.md +27 -0
  163. package/esdoc/plugins/MyPlugin.js +69 -0
  164. package/esdoc/plugins/dynamic-property-plugin/Plugin.js +50 -0
  165. package/esdoc/plugins/externals-plugin/Plugin.js +45 -0
  166. package/esdoc/plugins/externals-plugin/externals.js +93 -0
  167. package/esdoc/plugins/optional-chaining-plugin/Plugin.js +8 -0
  168. package/global-setup.js +3 -0
  169. package/jest.config.js +24 -0
  170. package/package.json +19 -19
  171. package/pull_request_template.md +17 -0
  172. package/scripts/read-pkg-json.js +22 -0
  173. package/src/api/RealtimeAPI.test.js +144 -0
  174. package/src/api/RealtimeAPI.ts +712 -0
  175. package/src/api/RoutingAPI.test.js +41 -0
  176. package/src/api/RoutingAPI.ts +47 -0
  177. package/src/api/StopsAPI.test.js +34 -0
  178. package/src/api/StopsAPI.ts +45 -0
  179. package/{api → src/api}/typedefs.js +11 -1
  180. package/src/common/api/HttpAPI.test.js +68 -0
  181. package/src/common/api/HttpAPI.ts +77 -0
  182. package/src/common/api/WebSocketAPI.test.js +421 -0
  183. package/src/common/api/WebSocketAPI.ts +515 -0
  184. package/src/common/controls/ControlCommon.test.js +106 -0
  185. package/src/common/controls/ControlCommon.ts +194 -0
  186. package/src/common/controls/CopyrightControlCommon.ts +41 -0
  187. package/src/common/controls/StopFinderControlCommon.ts +192 -0
  188. package/src/common/layers/LayerCommon.test.js +158 -0
  189. package/src/common/layers/LayerCommon.ts +321 -0
  190. package/src/common/mixins/RealtimeLayerMixin.ts +1168 -0
  191. package/src/common/mixins/UserInteractionsLayerMixin.test.js +227 -0
  192. package/src/common/mixins/UserInteractionsLayerMixin.ts +352 -0
  193. package/src/common/styles/realtimeDefaultStyle.ts +436 -0
  194. package/src/common/styles/realtimeDelayStyle.ts +27 -0
  195. package/src/common/styles/realtimeHeadingStyle.ts +138 -0
  196. package/src/common/styles/realtimeSimpleStyle.ts +25 -0
  197. package/{common → src/common}/typedefs.js +1 -1
  198. package/src/common/utils/compareDepartures.ts +46 -0
  199. package/src/common/utils/createCanvas.ts +33 -0
  200. package/src/common/utils/createRealtimeFilters.test.js +100 -0
  201. package/src/common/utils/createRealtimeFilters.ts +96 -0
  202. package/src/common/utils/debounceDeparturesMessages.ts +52 -0
  203. package/src/common/utils/debounceWebsocketMessages.ts +47 -0
  204. package/src/common/utils/getLayersAsFlatArray.ts +17 -0
  205. package/src/common/utils/getMapboxMapCopyrights.test.js +47 -0
  206. package/src/common/utils/getMapboxMapCopyrights.ts +52 -0
  207. package/src/common/utils/getMapboxRender.ts +104 -0
  208. package/src/common/utils/getMaplibreRender.ts +54 -0
  209. package/{common/utils/getRealtimeModeSuffix.d.ts → src/common/utils/getRealtimeModeSuffix.ts} +4 -2
  210. package/src/common/utils/getUrlWithParams.ts +21 -0
  211. package/src/common/utils/getVehiclePosition.ts +92 -0
  212. package/{common → src/common}/utils/index.js +1 -2
  213. package/src/common/utils/realtimeConfig.test.js +57 -0
  214. package/src/common/utils/realtimeConfig.ts +228 -0
  215. package/src/common/utils/removeDuplicate.test.js +22 -0
  216. package/src/common/utils/removeDuplicate.ts +22 -0
  217. package/src/common/utils/renderTrajectories.ts +194 -0
  218. package/src/common/utils/sortAndFilterDepartures.ts +78 -0
  219. package/src/common/utils/sortByDelay.ts +29 -0
  220. package/src/common/utils/timeUtils.test.js +16 -0
  221. package/src/common/utils/timeUtils.ts +45 -0
  222. package/{iife.js → src/iife.js} +3 -1
  223. package/src/index.js +10 -0
  224. package/{mapbox/controls/CopyrightControl.js → src/mapbox/controls/CopyrightControl.ts} +26 -21
  225. package/src/mapbox/layers/Layer.test.js +217 -0
  226. package/src/mapbox/layers/Layer.ts +144 -0
  227. package/src/mapbox/layers/RealtimeLayer.test.js +13 -0
  228. package/src/mapbox/layers/RealtimeLayer.ts +350 -0
  229. package/src/mapbox/utils/getMercatorResolution.ts +21 -0
  230. package/src/mapbox/utils/getSourceCoordinates.ts +34 -0
  231. package/src/ol/README.md +0 -0
  232. package/src/ol/controls/CopyrightControl.test.js +211 -0
  233. package/src/ol/controls/CopyrightControl.ts +82 -0
  234. package/src/ol/controls/RoutingControl.test.js +205 -0
  235. package/src/ol/controls/RoutingControl.ts +869 -0
  236. package/src/ol/controls/StopFinderControl.test.js +59 -0
  237. package/{ol/controls/StopFinderControl.js → src/ol/controls/StopFinderControl.ts} +10 -7
  238. package/src/ol/controls/snapshots/RoutingControlRouteGen10.json +58 -0
  239. package/src/ol/controls/snapshots/RoutingControlRouteGen100.json +292 -0
  240. package/src/ol/controls/snapshots/RoutingControlRouteGen30.json +69 -0
  241. package/src/ol/controls/snapshots/RoutingControlRouteGen5.json +58 -0
  242. package/src/ol/controls/snapshots/RoutingControlRouteOSM.json +759 -0
  243. package/src/ol/controls/snapshots/RoutingControlStation1.json +60 -0
  244. package/src/ol/controls/snapshots/RoutingControlStation2.json +49 -0
  245. package/src/ol/layers/Layer.test.js +212 -0
  246. package/src/ol/layers/Layer.ts +252 -0
  247. package/src/ol/layers/MapGlLayer.ts +294 -0
  248. package/src/ol/layers/MapboxLayer.test.js +190 -0
  249. package/src/ol/layers/MapboxLayer.ts +136 -0
  250. package/src/ol/layers/MapboxStyleLayer.test.js +258 -0
  251. package/src/ol/layers/MapboxStyleLayer.ts +466 -0
  252. package/{ol/layers/MaplibreLayer.d.ts → src/ol/layers/MaplibreLayer.ts} +21 -10
  253. package/src/ol/layers/RealtimeLayer.test.js +84 -0
  254. package/src/ol/layers/RealtimeLayer.ts +465 -0
  255. package/src/ol/layers/RoutingLayer.test.js +48 -0
  256. package/src/ol/layers/RoutingLayer.ts +113 -0
  257. package/src/ol/layers/VectorLayer.test.js +87 -0
  258. package/src/ol/layers/VectorLayer.ts +48 -0
  259. package/src/ol/layers/WMSLayer.test.js +65 -0
  260. package/src/ol/layers/WMSLayer.ts +114 -0
  261. package/src/ol/styles/fullTrajectoryDelayStyle.ts +37 -0
  262. package/src/ol/styles/fullTrajectoryStyle.ts +56 -0
  263. package/{setupTests.js → src/setupTests.js} +12 -7
  264. package/tsconfig.json +23 -0
  265. package/api/RealtimeAPI.d.ts +0 -290
  266. package/api/RealtimeAPI.d.ts.map +0 -1
  267. package/api/RealtimeAPI.js +0 -483
  268. package/api/RoutingAPI.d.ts +0 -37
  269. package/api/RoutingAPI.d.ts.map +0 -1
  270. package/api/RoutingAPI.js +0 -35
  271. package/api/StopsAPI.d.ts +0 -38
  272. package/api/StopsAPI.d.ts.map +0 -1
  273. package/api/StopsAPI.js +0 -36
  274. package/api/index.d.ts +0 -4
  275. package/api/index.d.ts.map +0 -1
  276. package/api/typedefs.d.ts +0 -179
  277. package/api/typedefs.d.ts.map +0 -1
  278. package/common/api/HttpAPI.d.ts +0 -31
  279. package/common/api/HttpAPI.d.ts.map +0 -1
  280. package/common/api/HttpAPI.js +0 -57
  281. package/common/api/WebSocketAPI.d.ts +0 -153
  282. package/common/api/WebSocketAPI.d.ts.map +0 -1
  283. package/common/api/WebSocketAPI.js +0 -341
  284. package/common/controls/ControlCommon.d.ts +0 -76
  285. package/common/controls/ControlCommon.d.ts.map +0 -1
  286. package/common/controls/ControlCommon.js +0 -150
  287. package/common/controls/CopyrightControlCommon.d.ts +0 -13
  288. package/common/controls/CopyrightControlCommon.d.ts.map +0 -1
  289. package/common/controls/CopyrightControlCommon.js +0 -34
  290. package/common/controls/StopFinderControlCommon.d.ts +0 -55
  291. package/common/controls/StopFinderControlCommon.d.ts.map +0 -1
  292. package/common/controls/StopFinderControlCommon.js +0 -144
  293. package/common/index.d.ts +0 -3
  294. package/common/index.d.ts.map +0 -1
  295. package/common/layers/LayerCommon.d.ts +0 -94
  296. package/common/layers/LayerCommon.d.ts.map +0 -1
  297. package/common/layers/LayerCommon.js +0 -244
  298. package/common/mixins/RealtimeLayerMixin.d.ts +0 -288
  299. package/common/mixins/RealtimeLayerMixin.d.ts.map +0 -1
  300. package/common/mixins/RealtimeLayerMixin.js +0 -778
  301. package/common/mixins/UserInteractionsLayerMixin.d.ts +0 -60
  302. package/common/mixins/UserInteractionsLayerMixin.d.ts.map +0 -1
  303. package/common/mixins/UserInteractionsLayerMixin.js +0 -241
  304. package/common/styles/index.d.ts +0 -5
  305. package/common/styles/index.d.ts.map +0 -1
  306. package/common/styles/realtimeDefaultStyle.d.ts +0 -36
  307. package/common/styles/realtimeDefaultStyle.d.ts.map +0 -1
  308. package/common/styles/realtimeDefaultStyle.js +0 -276
  309. package/common/styles/realtimeDelayStyle.d.ts +0 -12
  310. package/common/styles/realtimeDelayStyle.d.ts.map +0 -1
  311. package/common/styles/realtimeDelayStyle.js +0 -13
  312. package/common/styles/realtimeHeadingStyle.d.ts +0 -12
  313. package/common/styles/realtimeHeadingStyle.d.ts.map +0 -1
  314. package/common/styles/realtimeHeadingStyle.js +0 -87
  315. package/common/styles/realtimeSimpleStyle.d.ts +0 -4
  316. package/common/styles/realtimeSimpleStyle.d.ts.map +0 -1
  317. package/common/styles/realtimeSimpleStyle.js +0 -23
  318. package/common/typedefs.d.ts +0 -183
  319. package/common/typedefs.d.ts.map +0 -1
  320. package/common/utils/compareDepartures.d.ts +0 -11
  321. package/common/utils/compareDepartures.d.ts.map +0 -1
  322. package/common/utils/compareDepartures.js +0 -35
  323. package/common/utils/createCanvas.d.ts +0 -11
  324. package/common/utils/createCanvas.d.ts.map +0 -1
  325. package/common/utils/createCanvas.js +0 -28
  326. package/common/utils/createRealtimeFilters.d.ts +0 -13
  327. package/common/utils/createRealtimeFilters.d.ts.map +0 -1
  328. package/common/utils/createRealtimeFilters.js +0 -74
  329. package/common/utils/debounceDeparturesMessages.d.ts +0 -13
  330. package/common/utils/debounceDeparturesMessages.d.ts.map +0 -1
  331. package/common/utils/debounceDeparturesMessages.js +0 -28
  332. package/common/utils/debounceWebsocketMessages.d.ts +0 -12
  333. package/common/utils/debounceWebsocketMessages.d.ts.map +0 -1
  334. package/common/utils/debounceWebsocketMessages.js +0 -30
  335. package/common/utils/getLayersAsFlatArray.d.ts +0 -4
  336. package/common/utils/getLayersAsFlatArray.d.ts.map +0 -1
  337. package/common/utils/getLayersAsFlatArray.js +0 -16
  338. package/common/utils/getMapboxMapCopyrights.d.ts +0 -18
  339. package/common/utils/getMapboxMapCopyrights.d.ts.map +0 -1
  340. package/common/utils/getMapboxMapCopyrights.js +0 -30
  341. package/common/utils/getMapboxRender.d.ts +0 -8
  342. package/common/utils/getMapboxRender.d.ts.map +0 -1
  343. package/common/utils/getMapboxRender.js +0 -88
  344. package/common/utils/getMaplibreRender.d.ts +0 -9
  345. package/common/utils/getMaplibreRender.d.ts.map +0 -1
  346. package/common/utils/getMaplibreRender.js +0 -40
  347. package/common/utils/getRealtimeModeSuffix.d.ts.map +0 -1
  348. package/common/utils/getRealtimeModeSuffix.js +0 -7
  349. package/common/utils/getUrlWithParams.d.ts +0 -9
  350. package/common/utils/getUrlWithParams.d.ts.map +0 -1
  351. package/common/utils/getUrlWithParams.js +0 -18
  352. package/common/utils/getVehiclePosition.d.ts +0 -16
  353. package/common/utils/getVehiclePosition.d.ts.map +0 -1
  354. package/common/utils/getVehiclePosition.js +0 -72
  355. package/common/utils/index.d.ts +0 -18
  356. package/common/utils/index.d.ts.map +0 -1
  357. package/common/utils/realtimeConfig.d.ts +0 -53
  358. package/common/utils/realtimeConfig.d.ts.map +0 -1
  359. package/common/utils/realtimeConfig.js +0 -202
  360. package/common/utils/removeDuplicate.d.ts +0 -10
  361. package/common/utils/removeDuplicate.d.ts.map +0 -1
  362. package/common/utils/removeDuplicate.js +0 -15
  363. package/common/utils/renderTrajectories.d.ts +0 -17
  364. package/common/utils/renderTrajectories.d.ts.map +0 -1
  365. package/common/utils/renderTrajectories.js +0 -110
  366. package/common/utils/sortAndFilterDepartures.d.ts +0 -16
  367. package/common/utils/sortAndFilterDepartures.d.ts.map +0 -1
  368. package/common/utils/sortAndFilterDepartures.js +0 -58
  369. package/common/utils/sortByDelay.d.ts +0 -4
  370. package/common/utils/sortByDelay.d.ts.map +0 -1
  371. package/common/utils/sortByDelay.js +0 -21
  372. package/common/utils/timeUtils.d.ts +0 -24
  373. package/common/utils/timeUtils.d.ts.map +0 -1
  374. package/common/utils/timeUtils.js +0 -39
  375. package/iife.d.ts +0 -3
  376. package/iife.d.ts.map +0 -1
  377. package/index.d.ts +0 -10
  378. package/index.d.ts.map +0 -1
  379. package/index.js +0 -10
  380. package/mapbox/controls/CopyrightControl.d.ts +0 -29
  381. package/mapbox/controls/CopyrightControl.d.ts.map +0 -1
  382. package/mapbox/controls/index.d.ts +0 -2
  383. package/mapbox/controls/index.d.ts.map +0 -1
  384. package/mapbox/index.d.ts +0 -6
  385. package/mapbox/index.d.ts.map +0 -1
  386. package/mapbox/layers/Layer.d.ts +0 -59
  387. package/mapbox/layers/Layer.d.ts.map +0 -1
  388. package/mapbox/layers/Layer.js +0 -101
  389. package/mapbox/layers/RealtimeLayer.d.ts +0 -180
  390. package/mapbox/layers/RealtimeLayer.d.ts.map +0 -1
  391. package/mapbox/layers/RealtimeLayer.js +0 -270
  392. package/mapbox/layers/index.d.ts +0 -3
  393. package/mapbox/layers/index.d.ts.map +0 -1
  394. package/mapbox/utils/getMercatorResolution.d.ts +0 -9
  395. package/mapbox/utils/getMercatorResolution.d.ts.map +0 -1
  396. package/mapbox/utils/getMercatorResolution.js +0 -18
  397. package/mapbox/utils/getSourceCoordinates.d.ts +0 -9
  398. package/mapbox/utils/getSourceCoordinates.d.ts.map +0 -1
  399. package/mapbox/utils/getSourceCoordinates.js +0 -27
  400. package/mapbox/utils/index.d.ts +0 -3
  401. package/mapbox/utils/index.d.ts.map +0 -1
  402. package/mbt.js +0 -64703
  403. package/mbt.js.map +0 -7
  404. package/mbt.min.js +0 -1090
  405. package/mbt.min.js.map +0 -7
  406. package/ol/controls/CopyrightControl.d.ts +0 -31
  407. package/ol/controls/CopyrightControl.d.ts.map +0 -1
  408. package/ol/controls/CopyrightControl.js +0 -68
  409. package/ol/controls/RoutingControl.d.ts +0 -193
  410. package/ol/controls/RoutingControl.d.ts.map +0 -1
  411. package/ol/controls/RoutingControl.js +0 -631
  412. package/ol/controls/StopFinderControl.d.ts +0 -30
  413. package/ol/controls/StopFinderControl.d.ts.map +0 -1
  414. package/ol/controls/index.d.ts +0 -4
  415. package/ol/controls/index.d.ts.map +0 -1
  416. package/ol/index.d.ts +0 -6
  417. package/ol/index.d.ts.map +0 -1
  418. package/ol/layers/Layer.d.ts +0 -86
  419. package/ol/layers/Layer.d.ts.map +0 -1
  420. package/ol/layers/Layer.js +0 -174
  421. package/ol/layers/MapGlLayer.d.ts +0 -67
  422. package/ol/layers/MapGlLayer.d.ts.map +0 -1
  423. package/ol/layers/MapGlLayer.js +0 -218
  424. package/ol/layers/MapboxLayer.d.ts +0 -50
  425. package/ol/layers/MapboxLayer.d.ts.map +0 -1
  426. package/ol/layers/MapboxLayer.js +0 -109
  427. package/ol/layers/MapboxStyleLayer.d.ts +0 -130
  428. package/ol/layers/MapboxStyleLayer.d.ts.map +0 -1
  429. package/ol/layers/MapboxStyleLayer.js +0 -378
  430. package/ol/layers/MaplibreLayer.d.ts.map +0 -1
  431. package/ol/layers/MaplibreLayer.js +0 -34
  432. package/ol/layers/RealtimeLayer.d.ts +0 -202
  433. package/ol/layers/RealtimeLayer.d.ts.map +0 -1
  434. package/ol/layers/RealtimeLayer.js +0 -336
  435. package/ol/layers/RoutingLayer.d.ts +0 -35
  436. package/ol/layers/RoutingLayer.d.ts.map +0 -1
  437. package/ol/layers/RoutingLayer.js +0 -85
  438. package/ol/layers/VectorLayer.d.ts +0 -25
  439. package/ol/layers/VectorLayer.d.ts.map +0 -1
  440. package/ol/layers/VectorLayer.js +0 -38
  441. package/ol/layers/WMSLayer.d.ts +0 -42
  442. package/ol/layers/WMSLayer.d.ts.map +0 -1
  443. package/ol/layers/WMSLayer.js +0 -88
  444. package/ol/layers/index.d.ts +0 -9
  445. package/ol/layers/index.d.ts.map +0 -1
  446. package/ol/styles/fullTrajectoryDelayStyle.d.ts +0 -4
  447. package/ol/styles/fullTrajectoryDelayStyle.d.ts.map +0 -1
  448. package/ol/styles/fullTrajectoryDelayStyle.js +0 -33
  449. package/ol/styles/fullTrajectoryStyle.d.ts +0 -5
  450. package/ol/styles/fullTrajectoryStyle.d.ts.map +0 -1
  451. package/ol/styles/fullTrajectoryStyle.js +0 -44
  452. package/ol/styles/index.d.ts +0 -3
  453. package/ol/styles/index.d.ts.map +0 -1
  454. package/setupTests.d.ts +0 -2
  455. package/setupTests.d.ts.map +0 -1
  456. /package/{api → src/api}/index.js +0 -0
  457. /package/{common → src/common}/index.js +0 -0
  458. /package/{common → src/common}/styles/index.js +0 -0
  459. /package/{mapbox → src/mapbox}/controls/index.js +0 -0
  460. /package/{mapbox → src/mapbox}/index.js +0 -0
  461. /package/{mapbox → src/mapbox}/layers/index.js +0 -0
  462. /package/{mapbox → src/mapbox}/utils/index.js +0 -0
  463. /package/{ol → src/ol}/controls/index.js +0 -0
  464. /package/{ol → src/ol}/index.js +0 -0
  465. /package/{ol → src/ol}/layers/index.js +0 -0
  466. /package/{ol → src/ol}/styles/index.js +0 -0
  467. /package/{types → src/types}/common.d.ts +0 -0
  468. /package/{types → src/types}/index.d.ts +0 -0
  469. /package/{types → src/types}/realtime.d.ts +0 -0
  470. /package/{types → src/types}/routing.d.ts +0 -0
  471. /package/{types → src/types}/stops.d.ts +0 -0
@@ -0,0 +1,63 @@
1
+ /* eslint-disable no-param-reassign */
2
+ /* eslint-disable react/prop-types */
3
+ /* eslint-disable react/no-danger */
4
+ import React from 'react';
5
+ import Anchor from './Anchor';
6
+ import { _findByName, _getURL } from './DocBuilderUtils';
7
+
8
+ /**
9
+ * build html link to file page.
10
+ * https://github.com/esdoc/esdoc-plugins/blob/2de5022baa569785a189056a99acd1d7ca8284b7/esdoc-publish-html-plugin/src/Builder/DocBuilder.js#L592
11
+ * @param {DocObject} doc - target doc object.
12
+ * @param {string} text - link text.
13
+ * @returns {string} html of link.
14
+ * @private
15
+ */
16
+ function DocLinkHTML({ longname, text = null, inner = false, kind = null }) {
17
+ if (!longname) return '';
18
+
19
+ if (typeof longname !== 'string') throw new Error(JSON.stringify(longname));
20
+
21
+ const doc = _findByName(longname, kind)[0];
22
+
23
+ if (!doc) {
24
+ // Special links to typedefs main page
25
+ if (longname === 'typedefs') {
26
+ return (
27
+ <span>
28
+ {/* eslint-disable-next-line @next/next/no-html-link-for-pages */}
29
+ <a href="/doc/typedef/index%20html">{text || longname}</a>
30
+ </span>
31
+ );
32
+ }
33
+ // if longname is HTML tag, not escape.
34
+ if (longname.indexOf('<') === 0) {
35
+ return <span dangerouslySetInnerHTML={{ __html: longname }} />;
36
+ }
37
+ return <span>{text || longname}</span>;
38
+ }
39
+
40
+ if (doc.kind === 'external') {
41
+ text = doc.name;
42
+ return (
43
+ <span>
44
+ <a target="_blank" rel="noreferrer" href={doc.externalLink}>
45
+ {text}
46
+ </a>
47
+ </span>
48
+ );
49
+ }
50
+ text = text || doc.name;
51
+ const url = _getURL(doc, inner);
52
+ if (url) {
53
+ return (
54
+ <span>
55
+ <Anchor path={`/doc/${url.replace(/\./g, '%20')}-offset-anchor`}>
56
+ {text}
57
+ </Anchor>
58
+ </span>
59
+ );
60
+ }
61
+ return <span>{text}</span>;
62
+ }
63
+ export default React.memo(DocLinkHTML);
@@ -0,0 +1,38 @@
1
+ /* eslint-disable react/prop-types */
2
+ import React from 'react';
3
+ import DocLinkHTML from './DocLinkHTML';
4
+
5
+ /**
6
+ * build html links to identifiers
7
+ * https://github.com/esdoc/esdoc-plugins/blob/2de5022baa569785a189056a99acd1d7ca8284b7/esdoc-publish-html-plugin/src/Builder/DocBuilder.js#L788
8
+ * @param {string[]} longnames - link to these.
9
+ * @param {string} [text] - link text. default is name property of doc object.
10
+ * @param {boolean} [inner=false] - if true, use inner link.
11
+ * @param {string} [separator='\n'] - used link separator.
12
+ * @returns {string} html links.
13
+ * @private
14
+ */
15
+ function DocsLinkHTML({
16
+ longnames,
17
+ text = null,
18
+ inner = false,
19
+ separator = '\n',
20
+ }) {
21
+ if (!longnames) return '';
22
+ if (!longnames.length) return '';
23
+
24
+ const nonNullLongNames = longnames.filter((longname) => !!longname);
25
+ if (!nonNullLongNames.length) return '';
26
+
27
+ return (
28
+ <ul>
29
+ {nonNullLongNames.map((longname, idx) => (
30
+ <li key={longname}>
31
+ <DocLinkHTML longname={longname} text={text} inner={inner} />
32
+ {idx !== longnames.length - 1 ? `${separator}` : ''}
33
+ </li>
34
+ ))}
35
+ </ul>
36
+ );
37
+ }
38
+ export default React.memo(DocsLinkHTML);
@@ -0,0 +1,63 @@
1
+ /* eslint-disable react/prop-types */
2
+ /* eslint-disable import/no-relative-packages */
3
+ import React from 'react';
4
+ import makeStyles from '@mui/styles/makeStyles';
5
+ import Grid from '@mui/material/Grid';
6
+ import Hidden from '@mui/material/Hidden';
7
+ import { version } from '../../../../package.json';
8
+ import EsdocContent from './EsdocContent';
9
+ import EsdocNavigation from './EsdocNavigation';
10
+ import EsdocSearch from './EsdocSearch';
11
+
12
+ const useStyles = makeStyles((theme) => ({
13
+ root: {
14
+ width: '100%',
15
+ },
16
+ content: {
17
+ padding: theme.spacing(1),
18
+ paddingBottom: 115,
19
+ margin: '0 auto',
20
+ maxWidth: '740px',
21
+ },
22
+ navWrapper: {
23
+ height: 'calc(100% - 32px)',
24
+ padding: theme.spacing(2),
25
+ backgroundColor: 'rgb(239, 239, 239)',
26
+ },
27
+ }));
28
+
29
+ function Esdoc({ path }) {
30
+ const classes = useStyles();
31
+
32
+ if (!path) {
33
+ return null;
34
+ }
35
+
36
+ return (
37
+ <div className={`esdoc ${classes.root}`}>
38
+ <Hidden smUp>
39
+ <Grid container>
40
+ <Grid item xs={12} className={classes.content}>
41
+ <EsdocContent path={path} />
42
+ </Grid>
43
+ </Grid>
44
+ </Hidden>
45
+ <Hidden only="xs">
46
+ <Grid container wrap="nowrap">
47
+ <Grid item style={{ minWidth: 260, maxWidth: 300 }}>
48
+ <div className={classes.navWrapper}>
49
+ {version}
50
+ <EsdocSearch />
51
+ <EsdocNavigation />
52
+ </div>
53
+ </Grid>
54
+ <Grid item xs={9} className={classes.content}>
55
+ <EsdocContent path={path} />
56
+ </Grid>
57
+ </Grid>
58
+ </Hidden>
59
+ </div>
60
+ );
61
+ }
62
+
63
+ export default React.memo(Esdoc);
@@ -0,0 +1,56 @@
1
+ /* eslint-disable react/prop-types */
2
+ import React from 'react';
3
+ import docss from './index.json';
4
+ import ClassDoc from './ClassDoc';
5
+ import IdentifiersDoc from './IdentifiersDoc';
6
+ import SingleDoc from './SingleDoc';
7
+ import {
8
+ _resolveExtendsChain,
9
+ _resolveNecessary,
10
+ _resolveIgnore,
11
+ _resolveLink,
12
+ } from './DocBuilderUtils';
13
+
14
+ // Preprocess the index.json content.
15
+ // https://github.com/esdoc/esdoc-plugins/blob/2de5022baa569785a189056a99acd1d7ca8284b7/esdoc-publish-html-plugin/src/Builder/DocResolver.js
16
+ let docs;
17
+
18
+ function EsdocContent({ path }) {
19
+ let doc;
20
+
21
+ if (!path) {
22
+ return null;
23
+ }
24
+ if (!docs) {
25
+ // Preprocess the index.json content.
26
+ // https://github.com/esdoc/esdoc-plugins/blob/2de5022baa569785a189056a99acd1d7ca8284b7/esdoc-publish-html-plugin/src/Builder/DocResolver.js
27
+ docs = _resolveExtendsChain(docss);
28
+ docs = _resolveNecessary(docs);
29
+ docs = _resolveIgnore(docs);
30
+ docs = _resolveLink(docs);
31
+ }
32
+
33
+ const [firstPath] = path.split('#')[0].split('/');
34
+ if (path) {
35
+ doc = docs.find((item) => {
36
+ const [docLongName] = item.longname.split('#');
37
+ const reg = new RegExp(docLongName);
38
+ if (reg.test(path) && item.kind === 'class') {
39
+ return item;
40
+ }
41
+ return null;
42
+ });
43
+ }
44
+
45
+ return (
46
+ <div className="content">
47
+ {/^identifiers/.test(path) && <IdentifiersDoc docs={docs} />}
48
+ {firstPath === 'class' && doc && <ClassDoc doc={doc} />}
49
+ {firstPath === 'variable' && <SingleDoc kind={firstPath} />}
50
+ {firstPath === 'typedef' && <SingleDoc kind={firstPath} />}
51
+ {firstPath === 'function' && <SingleDoc kind={firstPath} />}
52
+ </div>
53
+ );
54
+ }
55
+
56
+ export default React.memo(EsdocContent);
@@ -0,0 +1,13 @@
1
+ /* eslint-disable react/prop-types */
2
+ import React from 'react';
3
+ import NavDoc from './NavDoc';
4
+
5
+ function EsdocNavigation() {
6
+ return (
7
+ <div className="navigation">
8
+ <NavDoc />
9
+ </div>
10
+ );
11
+ }
12
+
13
+ export default React.memo(EsdocNavigation);
@@ -0,0 +1,78 @@
1
+ import React, { useState, useMemo } from 'react';
2
+ import makeStyles from '@mui/styles/makeStyles';
3
+ import { TextField } from '@mui/material';
4
+ import { _getSearchIndex } from './DocBuilderUtils';
5
+
6
+ const useStyles = makeStyles(() => ({
7
+ filterField: {
8
+ width: '100%',
9
+ },
10
+ searchWrapper: {
11
+ backgroundColor: 'white',
12
+ },
13
+ }));
14
+
15
+ function EsdocSearch() {
16
+ const searchIndex = _getSearchIndex();
17
+ const classes = useStyles();
18
+ const [filter, setFilter] = useState('');
19
+
20
+ const resultsByKind = useMemo(() => {
21
+ const tmp = {
22
+ class: [],
23
+ method: [],
24
+ member: [],
25
+ function: [],
26
+ variable: [],
27
+ typedef: [],
28
+ external: [],
29
+ file: [],
30
+ test: [],
31
+ testFile: [],
32
+ };
33
+ for (let i = 0; i < searchIndex.length; i += 1) {
34
+ const pair = searchIndex[i];
35
+ if (filter && pair[0].indexOf(filter.toLowerCase()) > -1) {
36
+ const kind = pair[3];
37
+ tmp[kind].push(pair);
38
+ }
39
+ }
40
+ return tmp;
41
+ }, [filter, searchIndex]);
42
+
43
+ return (
44
+ <div className={`search-box active ${classes.searchWrapper}`}>
45
+ <TextField
46
+ inputProps={{
47
+ style: {
48
+ padding: 8,
49
+ fontSize: 16,
50
+ },
51
+ }}
52
+ variant="outlined"
53
+ className={classes.filterField}
54
+ placeholder="Search..."
55
+ value={filter}
56
+ onChange={(e) => setFilter(e.target.value)}
57
+ />
58
+ <ul className="search-result">
59
+ {Object.entries(resultsByKind).map(([kind, result]) => {
60
+ return !!result.length && (
61
+ <React.Fragment key={kind}>
62
+ <li className="search-separator">{kind}</li>
63
+ {result.map((pair) => {
64
+ const href = `/doc/${pair[1]}`.replace(/\./g, '%20');
65
+ return (
66
+ <li key={href}>
67
+ <a href={href}>{pair[2]}</a>
68
+ </li>
69
+ );
70
+ })}
71
+ </React.Fragment>
72
+ );
73
+ })}
74
+ </ul>
75
+ </div>
76
+ );
77
+ }
78
+ export default EsdocSearch;
@@ -0,0 +1,17 @@
1
+ /**
2
+ * build experimental html.
3
+ * https://github.com/esdoc/esdoc-plugins/blob/2de5022baa569785a189056a99acd1d7ca8284b7/esdoc-publish-html-plugin/src/Builder/DocBuilder.js#L936
4
+ * @param {DocObject} doc - target doc object.
5
+ * @returns {string} if doc is not experimental, returns empty.
6
+ * @private
7
+ */
8
+ const ExperimentalHTML = (doc) => {
9
+ if (doc.experimental) {
10
+ const experimental = [`this ${doc.kind} is experimental.`];
11
+ if (typeof doc.experimental === 'string')
12
+ experimental.push(doc.experimental);
13
+ return experimental.join(' ');
14
+ }
15
+ return '';
16
+ };
17
+ export default ExperimentalHTML;
@@ -0,0 +1,32 @@
1
+ /* eslint-disable react/prop-types */
2
+ /* eslint-disable no-underscore-dangle */
3
+ import React from 'react';
4
+ import DocLinkHTML from './DocLinkHTML';
5
+
6
+ /**
7
+ * build class ancestor extends chain.
8
+ * https://github.com/esdoc/esdoc-plugins/blob/2de5022baa569785a189056a99acd1d7ca8284b7/esdoc-publish-html-plugin/src/Builder/ClassDocBuilder.js#L172
9
+ * @param {DocObject} doc - target class doc.
10
+ * @returns {string} extends chain links html.
11
+ * @private
12
+ */
13
+ function ExtendsChainHTML({ doc }) {
14
+ if (!doc._custom_extends_chains) return '';
15
+ if (doc.extends.length > 1) return '';
16
+
17
+ return (
18
+ <div className="flat-list" data-ice="extendsChain">
19
+ <h4>Extends:</h4>
20
+ <div>
21
+ {doc._custom_extends_chains.map((extend) => (
22
+ <React.Fragment key={extend}>
23
+ <DocLinkHTML longname={extend} />
24
+ {' → '}
25
+ </React.Fragment>
26
+ ))}
27
+ {doc.name}
28
+ </div>
29
+ </div>
30
+ );
31
+ }
32
+ export default React.memo(ExtendsChainHTML);
@@ -0,0 +1,62 @@
1
+ /* eslint-disable no-param-reassign */
2
+ /* eslint-disable prefer-destructuring */
3
+ /* eslint-disable react/prop-types */
4
+ import React from 'react';
5
+
6
+ import { _find, _getURL } from './DocBuilderUtils';
7
+
8
+ /**
9
+ * build html link to file page.
10
+ * https://github.com/esdoc/esdoc-plugins/blob/2de5022baa569785a189056a99acd1d7ca8284b7/esdoc-publish-html-plugin/src/Builder/DocBuilder.js#L592
11
+ * @param {DocObject} doc - target doc object.
12
+ * @param {string} text - link text.
13
+ * @returns {string} html of link.
14
+ * @private
15
+ */
16
+ function FileDocLinkHTML({ doc, text }) {
17
+ if (!doc) return null;
18
+
19
+ if (text === 'source' && doc.memberof) {
20
+ console.log(doc);
21
+ return (
22
+ <span>
23
+ <a
24
+ target="_blank"
25
+ rel="noreferrer"
26
+ href={`https://github.com/geops/mobility-toolbox-js/blob/master/${doc.memberof
27
+ .split('~')[0]
28
+ .replace('.js', '.ts')
29
+ .replace('build/', 'src/')}#L${doc.lineNumber}`}
30
+ >
31
+ {text}
32
+ </a>
33
+ </span>
34
+ );
35
+ }
36
+
37
+ let fileDoc;
38
+ if (doc.kind === 'file' || doc.kind === 'testFile') {
39
+ fileDoc = doc;
40
+ } else {
41
+ const filePath = doc.longname.split('~')[0];
42
+ fileDoc = _find({ kind: ['file', 'testFile'], name: filePath })[0];
43
+ }
44
+
45
+ if (!fileDoc) return '';
46
+
47
+ if (!text) text = fileDoc.name;
48
+
49
+ if (doc.kind === 'file' || doc.kind === 'testFile') {
50
+ return (
51
+ <span>
52
+ <a href={`${_getURL(fileDoc)}`}>{text}</a>
53
+ </span>
54
+ );
55
+ }
56
+ return (
57
+ <span>
58
+ <a href={`${_getURL(fileDoc)}#lineNumber${doc.lineNumber}`}>{text}</a>
59
+ </span>
60
+ );
61
+ }
62
+ export default React.memo(FileDocLinkHTML);
@@ -0,0 +1,113 @@
1
+ /* eslint-disable no-continue */
2
+ /* eslint-disable no-restricted-syntax */
3
+ /* eslint-disable no-underscore-dangle */
4
+ /* eslint-disable react/prop-types */
5
+ import React from 'react';
6
+ import path from 'path';
7
+ import SummaryDoc from './SummaryDoc';
8
+ import { escapeURLHash } from './DocBuilderUtils';
9
+
10
+ /**
11
+ * build identifier output.
12
+ * https://github.com/esdoc/esdoc-plugins/blob/2de5022baa569785a189056a99acd1d7ca8284b7/esdoc-publish-html-plugin/src/Builder/IdentifiersDocBuilder.js#L18
13
+ * @return {IceCap} built output.
14
+ * @private
15
+ */
16
+ function IdentifiersDoc({ docs }) {
17
+ // traverse docs and create Map<dirPath, doc[]>
18
+ const dirDocs = new Map();
19
+ const kinds = ['class', 'interface', 'function', 'variable'];
20
+ // 'typedef',
21
+ // 'external',
22
+ // ];
23
+ const filteredDocs = docs.filter((doc) => {
24
+ return kinds.includes(doc.kind) && !doc.ignore && doc.access === 'public';
25
+ });
26
+
27
+ // Add a typedef doc to have a link to main type def page
28
+ filteredDocs.push({
29
+ access: 'public',
30
+ description: null,
31
+ export: false,
32
+ importPath: 'mobility-toolbox-js/src/index.js',
33
+ importStyle: 'typedef',
34
+ kind: 'typedef',
35
+ lineNumber: 1,
36
+ longname: 'typedefs',
37
+ memberof: 'src/index.js',
38
+ name: 'typedefs',
39
+ static: true,
40
+ undocument: true,
41
+ });
42
+
43
+ for (const doc of filteredDocs) {
44
+ const filePath = doc.memberof.replace(/^.*?[/]/, '');
45
+ const dirPath = path.dirname(filePath);
46
+ if (!dirDocs.has(dirPath)) dirDocs.set(dirPath, []);
47
+ dirDocs.get(dirPath).push(doc);
48
+ }
49
+
50
+ // create a summary of dir
51
+ const dirPaths = Array.from(dirDocs.keys()).sort((a, b) => (a > b ? 1 : -1));
52
+ const kindOrder = {
53
+ class: 0,
54
+ interface: 1,
55
+ function: 2,
56
+ variable: 3,
57
+ typedef: 4,
58
+ external: 5,
59
+ };
60
+
61
+ return (
62
+ <>
63
+ <h1>References</h1>
64
+
65
+ <div className="identifiers-wrap">
66
+ {dirPaths.map((dirPath) => {
67
+ const newDirDocs = dirDocs.get(dirPath);
68
+
69
+ // see: DocBuilder#_buildNavDoc
70
+ newDirDocs.sort((a, b) => {
71
+ const filePathA = a.longname.split('~')[0];
72
+ const filePathB = b.longname.split('~')[0];
73
+ const dirPathA = path.dirname(filePathA);
74
+ const dirPathB = path.dirname(filePathB);
75
+ const kindA = a.interface ? 'interface' : a.kind;
76
+ const kindB = b.interface ? 'interface' : b.kind;
77
+ if (dirPathA === dirPathB) {
78
+ if (kindA === kindB) {
79
+ return a.longname > b.longname ? 1 : -1;
80
+ }
81
+ return kindOrder[kindA] > kindOrder[kindB] ? 1 : -1;
82
+ }
83
+ return dirPathA > dirPathB ? 1 : -1;
84
+ });
85
+
86
+ const dirPathLabel = dirPath === '.' ? '' : dirPath;
87
+ return (
88
+ <div key={dirPathLabel} data-ice="dirSummaryWrap">
89
+ <h2 data-ice="dirPath" id={escapeURLHash(dirPath)}>
90
+ {dirPathLabel || '/'}
91
+ </h2>
92
+ <div data-ice="dirSummary">
93
+ <SummaryDoc
94
+ docs={newDirDocs}
95
+ title="summary"
96
+ innerLink={false}
97
+ kindIcon
98
+ />
99
+ </div>
100
+ </div>
101
+ );
102
+ })}
103
+ {/* TODO
104
+ <div className="identifier-dir-tree" data-ice="dirTreeWrap">
105
+ <div className="identifier-dir-tree-header">Directories</div>
106
+ <div className="identifier-dir-tree-content" data-ice="dirTree" />
107
+ </div> */}
108
+ </div>
109
+ </>
110
+ );
111
+ }
112
+
113
+ export default React.memo(IdentifiersDoc);
@@ -0,0 +1,30 @@
1
+ /* eslint-disable react/prop-types */
2
+ /* eslint-disable no-underscore-dangle */
3
+ import React from 'react';
4
+ import DocLinkHTML from './DocLinkHTML';
5
+
6
+ /**
7
+ * build in-direct subclass list.
8
+ * https://github.com/esdoc/esdoc-plugins/blob/2de5022baa569785a189056a99acd1d7ca8284b7/esdoc-publish-html-plugin/src/Builder/ClassDocBuilder.js#L186
9
+ * @param {DocObject} doc - target class doc.
10
+ * @returns {string} html of in-direct subclass links.
11
+ * @private
12
+ */
13
+ function IndirectSubclassHTML({ doc }) {
14
+ if (!doc._custom_indirect_subclasses) return '';
15
+
16
+ return (
17
+ <div className="flat-list" data-ice="directSubclass">
18
+ <h4>Direct Subclass:</h4>
19
+ <div>
20
+ {doc._custom_indirect_subclasses.map((extend, idx) => (
21
+ <React.Fragment key={extend}>
22
+ <DocLinkHTML longname={extend} />
23
+ {idx !== doc._custom_indirect_subclasses.length - 1 ? ', ' : ''}
24
+ </React.Fragment>
25
+ ))}
26
+ </div>
27
+ </div>
28
+ );
29
+ }
30
+ export default React.memo(IndirectSubclassHTML);
@@ -0,0 +1,70 @@
1
+ /* eslint-disable react/prop-types */
2
+ /* eslint-disable no-continue */
3
+ /* eslint-disable no-restricted-syntax */
4
+ /* eslint-disable react/no-array-index-key */
5
+ /* eslint-disable no-underscore-dangle */
6
+ import React, { useState } from 'react';
7
+ import { _find } from './DocBuilderUtils';
8
+ import SummaryDoc from './SummaryDoc';
9
+ import DocLinkHTML from './DocLinkHTML';
10
+
11
+ /**
12
+ * See InhertiedSummaryHTML component.
13
+ */
14
+ function InheritedSummaryDoc({ longname, kind }) {
15
+ const [open, setOpen] = useState('closed');
16
+ const superDoc = _find({ longname })[0];
17
+
18
+ if (!superDoc) return null;
19
+
20
+ const toggle = () => {
21
+ if (open === 'closed') setOpen('opened');
22
+ else setOpen('closed');
23
+ };
24
+
25
+ const targetDocs = _find({
26
+ memberof: longname,
27
+ kind: kind ? [kind] : ['member', 'method', 'get', 'set'],
28
+ });
29
+
30
+ targetDocs.sort((a, b) => {
31
+ if (a.static !== b.static) return -(a.static - b.static);
32
+
33
+ let order = { get: 0, set: 0, member: 1, method: 2 };
34
+ if (order[a.kind] !== order[b.kind]) {
35
+ return order[a.kind] - order[b.kind];
36
+ }
37
+
38
+ order = { public: 0, protected: 1, private: 2 };
39
+ if (a.access !== b.access) return order[a.access] - order[b.access];
40
+
41
+ if (a.name !== b.name) return a.name < b.name ? -1 : 1;
42
+
43
+ order = { get: 0, set: 1, member: 2 };
44
+ return order[a.kind] - order[b.kind];
45
+ });
46
+
47
+ const title = (
48
+ <span
49
+ onClick={toggle}
50
+ onKeyPress={(evt) => {
51
+ if (evt.which === 13) {
52
+ toggle();
53
+ }
54
+ }}
55
+ role="button"
56
+ tabIndex="0"
57
+ >
58
+ <span className={`toggle ${open}`} /> From {superDoc.kind}{' '}
59
+ <DocLinkHTML longname={longname} text={superDoc.name} />
60
+ </span>
61
+ );
62
+ return (
63
+ <SummaryDoc
64
+ docs={targetDocs}
65
+ title={title}
66
+ style={{ display: open === 'opened' ? 'block' : 'none' }}
67
+ />
68
+ );
69
+ }
70
+ export default React.memo(InheritedSummaryDoc);
@@ -0,0 +1,38 @@
1
+ /* eslint-disable no-continue */
2
+ /* eslint-disable no-restricted-syntax */
3
+ /* eslint-disable react/no-array-index-key */
4
+ /* eslint-disable no-underscore-dangle */
5
+ import React from 'react';
6
+ import InheritedSummaryDoc from './InheritedSummaryDoc';
7
+ import { _find } from './DocBuilderUtils';
8
+
9
+ /**
10
+ * build inherited method/member summary.
11
+ * https://github.com/esdoc/esdoc-plugins/blob/2de5022baa569785a189056a99acd1d7ca8284b7/esdoc-publish-html-plugin/src/Builder/ClassDocBuilder.js#L220
12
+ * @param {DocObject} doc - target class doc.
13
+ * @returns {string} html of inherited method/member from ancestor classes.
14
+ * @private
15
+ */
16
+ const InheritedSummaryHTML = ({ doc, kind }) => {
17
+ if (['class', 'interface'].indexOf(doc.kind) === -1) return '';
18
+
19
+ const longnames = [
20
+ ...(doc._custom_extends_chains || []),
21
+ // ...doc.implements || [],
22
+ // ...doc._custom_indirect_implements || [],
23
+ ];
24
+
25
+ return longnames.map((longname, idx) => {
26
+ const superDoc = _find({ longname })[0];
27
+
28
+ if (!superDoc) return null;
29
+
30
+ return (
31
+ <React.Fragment key={idx}>
32
+ <InheritedSummaryDoc longname={longname} kind={kind} />
33
+ {idx !== longnames.length - 1 ? '\n' : ''}
34
+ </React.Fragment>
35
+ );
36
+ });
37
+ };
38
+ export default React.memo(InheritedSummaryHTML);