@kalisio/kdk 2.5.3 → 2.6.1

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 (541) hide show
  1. package/.github/workflows/main.yaml +35 -6
  2. package/.vscode/settings.json +5 -0
  3. package/client.globe.js +8 -0
  4. package/client.js +8 -0
  5. package/client.map.js +8 -0
  6. package/core/api/hooks/hooks.push.js +3 -2
  7. package/core/api/hooks/hooks.tags.js +56 -0
  8. package/core/api/models/tags.model.mongodb.js +8 -0
  9. package/core/api/services/index.js +33 -2
  10. package/core/api/services/tags/tags.hooks.js +47 -0
  11. package/core/client/api.js +5 -5
  12. package/core/client/components/KActivity.vue +3 -2
  13. package/core/client/components/KChip.vue +2 -2
  14. package/core/client/components/KEditor.vue +3 -1
  15. package/core/client/components/KFollower.vue +4 -4
  16. package/core/client/components/KStore.vue +1 -1
  17. package/core/client/components/KTab.vue +20 -7
  18. package/core/client/components/account/KProfile.vue +9 -25
  19. package/core/client/components/action/KAction.vue +10 -10
  20. package/core/client/components/action/KToggleFullscreenAction.vue +2 -11
  21. package/core/client/components/app/KHome.vue +3 -2
  22. package/core/client/components/collection/KFilter.vue +5 -4
  23. package/core/client/components/collection/KGrid.vue +5 -1
  24. package/core/client/components/collection/KItemsFilter.vue +47 -0
  25. package/core/client/components/collection/KItemsSorter.vue +42 -0
  26. package/core/client/components/collection/KScrollDown.vue +2 -2
  27. package/core/client/components/collection/KSearchFilterControl.vue +3 -2
  28. package/core/client/components/collection/KSorter.vue +33 -37
  29. package/core/client/components/collection/KTagsFilterControl.vue +14 -40
  30. package/core/client/components/collection/KTagsFilterView.vue +10 -45
  31. package/core/client/components/collection/KTimeFilterControl.vue +6 -7
  32. package/core/client/components/collection/KTimeFilterView.vue +13 -22
  33. package/core/client/components/collection/KTimeLine.vue +18 -9
  34. package/core/client/components/form/KColorField.vue +13 -6
  35. package/core/client/components/form/KColorScaleField.vue +7 -12
  36. package/core/client/components/form/KFileField.vue +118 -89
  37. package/core/client/components/form/KForm.vue +30 -18
  38. package/core/client/components/form/KIconField.vue +4 -1
  39. package/core/client/components/form/KNumberField.vue +9 -2
  40. package/core/client/components/form/KSelectField.vue +1 -4
  41. package/core/client/components/form/KTagField.vue +229 -0
  42. package/core/client/components/form/KTextField.vue +4 -0
  43. package/core/client/components/form/KTextareaField.vue +3 -1
  44. package/core/client/components/input/KShapePicker.vue +3 -3
  45. package/core/client/components/layout/KFab.vue +32 -20
  46. package/core/client/components/layout/KPage.vue +11 -6
  47. package/core/client/components/layout/KWindow.vue +6 -1
  48. package/core/client/components/media/index.js +2 -6
  49. package/core/client/components/menu/KMenu.vue +12 -10
  50. package/core/client/components/menu/KSubMenu.vue +12 -12
  51. package/core/client/components/messages/KMessageCard.vue +13 -12
  52. package/core/client/components/messages/KMessageComposer.vue +13 -9
  53. package/core/client/components/messages/KMessagesTimeLine.vue +16 -8
  54. package/core/client/components/tags/KTagFilter.vue +99 -0
  55. package/core/client/components/tags/KTagItem.vue +65 -0
  56. package/core/client/components/tags/KTagManager.vue +198 -0
  57. package/core/client/components/tags/KTagSelection.vue +82 -0
  58. package/core/client/components/time/KDate.vue +3 -17
  59. package/core/client/components/time/KDateTime.vue +1 -1
  60. package/core/client/components/time/KTime.vue +0 -4
  61. package/core/client/composables/collection-filter.js +41 -2
  62. package/core/client/composables/collection.js +3 -3
  63. package/core/client/composables/index.js +1 -0
  64. package/core/client/composables/pwa.js +13 -0
  65. package/core/client/composables/session.js +7 -8
  66. package/core/client/composables/user.js +36 -0
  67. package/core/client/directives/index.js +1 -0
  68. package/core/client/directives/v-drop-file.js +174 -0
  69. package/core/client/document.js +2 -1
  70. package/core/client/exporter.js +17 -3
  71. package/core/client/i18n/core_en.json +34 -7
  72. package/core/client/i18n/core_fr.json +36 -9
  73. package/core/client/i18n.js +26 -11
  74. package/core/client/layout.js +5 -5
  75. package/core/client/mixins/mixin.base-activity.js +8 -5
  76. package/core/client/mixins/mixin.base-editor.js +2 -1
  77. package/core/client/mixins/mixin.base-field.js +3 -2
  78. package/core/client/mixins/mixin.base-item.js +12 -10
  79. package/core/client/mixins/mixin.service.js +3 -1
  80. package/core/client/platform.js +0 -3
  81. package/core/client/readers/reader.json.js +2 -2
  82. package/core/client/utils/index.js +2 -0
  83. package/core/client/utils/utils.collection.js +6 -6
  84. package/core/client/utils/utils.colors.js +473 -173
  85. package/core/client/utils/utils.files.js +19 -0
  86. package/core/client/utils/utils.locale.js +13 -17
  87. package/core/client/utils/utils.services.js +27 -0
  88. package/core/client/utils/utils.shapes.js +2 -2
  89. package/core/client/utils/utils.tags.js +17 -0
  90. package/core/client/utils/utils.tours.js +31 -0
  91. package/core/common/permissions.js +3 -0
  92. package/core/common/schemas/tags.update.json +35 -0
  93. package/core/common/schemas/users.update-profile.json +1 -1
  94. package/core/common/utils.js +5 -5
  95. package/coverage/core/api/application.js.html +464 -464
  96. package/coverage/core/api/authentication.js.html +219 -351
  97. package/coverage/core/api/db.js.html +194 -209
  98. package/coverage/core/api/hooks/hooks.authentication.js.html +208 -34
  99. package/coverage/core/api/hooks/hooks.authorisations.js.html +717 -432
  100. package/coverage/core/api/hooks/hooks.groups.js.html +52 -52
  101. package/coverage/core/api/hooks/hooks.logger.js.html +43 -43
  102. package/coverage/core/api/hooks/hooks.model.js.html +300 -312
  103. package/coverage/core/api/hooks/hooks.organisations.js.html +264 -264
  104. package/coverage/core/api/hooks/hooks.push.js.html +107 -119
  105. package/coverage/core/api/hooks/hooks.query.js.html +279 -279
  106. package/coverage/core/api/hooks/hooks.schemas.js.html +135 -135
  107. package/coverage/core/api/hooks/hooks.service.js.html +28 -28
  108. package/coverage/core/api/hooks/hooks.storage.js.html +7 -7
  109. package/coverage/core/api/hooks/hooks.users.js.html +478 -205
  110. package/coverage/core/api/hooks/index.html +132 -102
  111. package/coverage/core/api/hooks/index.js.html +19 -13
  112. package/coverage/core/api/index.html +69 -54
  113. package/coverage/core/api/index.js.html +25 -25
  114. package/coverage/core/api/marshall.js.html +127 -127
  115. package/coverage/core/api/models/groups.model.mongodb.js.html +26 -26
  116. package/coverage/core/api/models/index.html +66 -21
  117. package/coverage/core/api/models/messages.model.mongodb.js.html +27 -39
  118. package/coverage/core/api/models/organisations.model.mongodb.js.html +16 -16
  119. package/coverage/core/api/models/tags.model.mongodb.js.html +30 -30
  120. package/coverage/core/api/models/users.model.mongodb.js.html +11 -11
  121. package/coverage/core/api/services/account/account.hooks.js.html +46 -46
  122. package/coverage/core/api/services/account/account.service.js.html +139 -139
  123. package/coverage/core/api/services/account/index.html +22 -22
  124. package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +34 -34
  125. package/coverage/core/api/services/authorisations/authorisations.service.js.html +230 -221
  126. package/coverage/core/api/services/authorisations/index.html +20 -20
  127. package/coverage/core/api/services/databases/databases.hooks.js.html +1 -1
  128. package/coverage/core/api/services/databases/databases.service.js.html +1 -1
  129. package/coverage/core/api/services/databases/index.html +1 -1
  130. package/coverage/core/api/services/groups/groups.hooks.js.html +72 -72
  131. package/coverage/core/api/services/groups/index.html +21 -21
  132. package/coverage/core/api/services/import-export/import-export.hooks.js.html +76 -76
  133. package/coverage/core/api/services/import-export/import-export.service.js.html +32 -32
  134. package/coverage/core/api/services/import-export/index.html +32 -32
  135. package/coverage/core/api/services/index.html +21 -21
  136. package/coverage/core/api/services/index.js.html +195 -171
  137. package/coverage/core/api/services/mailer/index.html +32 -32
  138. package/coverage/core/api/services/mailer/mailer.hooks.js.html +80 -80
  139. package/coverage/core/api/services/mailer/mailer.service.js.html +32 -32
  140. package/coverage/core/api/services/messages/index.html +21 -21
  141. package/coverage/core/api/services/messages/messages.hooks.js.html +76 -94
  142. package/coverage/core/api/services/organisations/index.html +32 -32
  143. package/coverage/core/api/services/organisations/organisations.hooks.js.html +72 -72
  144. package/coverage/core/api/services/organisations/organisations.service.js.html +163 -163
  145. package/coverage/core/api/services/push/index.html +32 -32
  146. package/coverage/core/api/services/push/push.hooks.js.html +80 -80
  147. package/coverage/core/api/services/push/push.service.js.html +34 -34
  148. package/coverage/core/api/services/storage/index.html +29 -29
  149. package/coverage/core/api/services/storage/storage.hooks.js.html +80 -80
  150. package/coverage/core/api/services/storage/storage.service.js.html +37 -37
  151. package/coverage/core/api/services/tags/index.html +21 -21
  152. package/coverage/core/api/services/tags/tags.hooks.js.html +72 -72
  153. package/coverage/core/api/services/users/index.html +12 -27
  154. package/coverage/core/api/services/users/users.hooks.js.html +84 -87
  155. package/coverage/core/api/utils.js.html +1 -1
  156. package/coverage/core/common/errors.js.html +2 -2
  157. package/coverage/core/common/index.html +32 -47
  158. package/coverage/core/common/index.js.html +11 -11
  159. package/coverage/core/common/permissions.js.html +579 -264
  160. package/coverage/core/common/schema.js.html +26 -26
  161. package/coverage/core/common/utils.js.html +59 -65
  162. package/coverage/index.html +286 -256
  163. package/coverage/lcov-report/core/api/application.js.html +464 -464
  164. package/coverage/lcov-report/core/api/authentication.js.html +219 -351
  165. package/coverage/lcov-report/core/api/db.js.html +194 -209
  166. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +208 -34
  167. package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +717 -432
  168. package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +52 -52
  169. package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +43 -43
  170. package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +300 -312
  171. package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +264 -264
  172. package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +107 -119
  173. package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +279 -279
  174. package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +135 -135
  175. package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +28 -28
  176. package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +7 -7
  177. package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +478 -205
  178. package/coverage/lcov-report/core/api/hooks/index.html +132 -102
  179. package/coverage/lcov-report/core/api/hooks/index.js.html +19 -13
  180. package/coverage/lcov-report/core/api/index.html +69 -54
  181. package/coverage/lcov-report/core/api/index.js.html +25 -25
  182. package/coverage/lcov-report/core/api/marshall.js.html +127 -127
  183. package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +26 -26
  184. package/coverage/lcov-report/core/api/models/index.html +66 -21
  185. package/coverage/lcov-report/core/api/models/messages.model.mongodb.js.html +27 -39
  186. package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +16 -16
  187. package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +30 -30
  188. package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +11 -11
  189. package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +46 -46
  190. package/coverage/lcov-report/core/api/services/account/account.service.js.html +139 -139
  191. package/coverage/lcov-report/core/api/services/account/index.html +22 -22
  192. package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +34 -34
  193. package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +230 -221
  194. package/coverage/lcov-report/core/api/services/authorisations/index.html +20 -20
  195. package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +1 -1
  196. package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +1 -1
  197. package/coverage/lcov-report/core/api/services/databases/index.html +1 -1
  198. package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +72 -72
  199. package/coverage/lcov-report/core/api/services/groups/index.html +21 -21
  200. package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +76 -76
  201. package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +32 -32
  202. package/coverage/lcov-report/core/api/services/import-export/index.html +32 -32
  203. package/coverage/lcov-report/core/api/services/index.html +21 -21
  204. package/coverage/lcov-report/core/api/services/index.js.html +195 -171
  205. package/coverage/lcov-report/core/api/services/mailer/index.html +32 -32
  206. package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +80 -80
  207. package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +32 -32
  208. package/coverage/lcov-report/core/api/services/messages/index.html +21 -21
  209. package/coverage/lcov-report/core/api/services/messages/messages.hooks.js.html +76 -94
  210. package/coverage/lcov-report/core/api/services/organisations/index.html +32 -32
  211. package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +72 -72
  212. package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +163 -163
  213. package/coverage/lcov-report/core/api/services/push/index.html +32 -32
  214. package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +80 -80
  215. package/coverage/lcov-report/core/api/services/push/push.service.js.html +34 -34
  216. package/coverage/lcov-report/core/api/services/storage/index.html +29 -29
  217. package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +80 -80
  218. package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +37 -37
  219. package/coverage/lcov-report/core/api/services/tags/index.html +21 -21
  220. package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +72 -72
  221. package/coverage/lcov-report/core/api/services/users/index.html +12 -27
  222. package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +84 -87
  223. package/coverage/lcov-report/core/api/utils.js.html +1 -1
  224. package/coverage/lcov-report/core/common/errors.js.html +2 -2
  225. package/coverage/lcov-report/core/common/index.html +32 -47
  226. package/coverage/lcov-report/core/common/index.js.html +11 -11
  227. package/coverage/lcov-report/core/common/permissions.js.html +579 -264
  228. package/coverage/lcov-report/core/common/schema.js.html +26 -26
  229. package/coverage/lcov-report/core/common/utils.js.html +59 -65
  230. package/coverage/lcov-report/index.html +286 -256
  231. package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +257 -353
  232. package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +218 -218
  233. package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +810 -795
  234. package/coverage/lcov-report/map/api/hooks/index.html +54 -54
  235. package/coverage/lcov-report/map/api/hooks/index.js.html +16 -16
  236. package/coverage/lcov-report/map/api/index.html +32 -32
  237. package/coverage/lcov-report/map/api/index.js.html +46 -46
  238. package/coverage/lcov-report/map/api/marshall.js.html +72 -72
  239. package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +24 -24
  240. package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +27 -69
  241. package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +80 -80
  242. package/coverage/lcov-report/map/api/models/index.html +54 -69
  243. package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +26 -26
  244. package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +136 -136
  245. package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +343 -343
  246. package/coverage/lcov-report/map/api/services/alerts/index.html +32 -32
  247. package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +160 -178
  248. package/coverage/lcov-report/map/api/services/catalog/index.html +21 -21
  249. package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
  250. package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
  251. package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +114 -183
  252. package/coverage/lcov-report/map/api/services/features/features.service.js.html +56 -359
  253. package/coverage/lcov-report/map/api/services/features/index.html +31 -31
  254. package/coverage/lcov-report/map/api/services/index.html +21 -21
  255. package/coverage/lcov-report/map/api/services/index.js.html +258 -495
  256. package/coverage/lcov-report/map/api/services/projects/index.html +21 -21
  257. package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +237 -237
  258. package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +68 -68
  259. package/coverage/lcov-report/map/common/errors.js.html +16 -16
  260. package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +267 -270
  261. package/coverage/lcov-report/map/common/grid.js.html +554 -554
  262. package/coverage/lcov-report/map/common/index.html +158 -158
  263. package/coverage/lcov-report/map/common/index.js.html +68 -68
  264. package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +73 -73
  265. package/coverage/lcov-report/map/common/moment-utils.js.html +18 -18
  266. package/coverage/lcov-report/map/common/opendap-grid-source.js.html +484 -484
  267. package/coverage/lcov-report/map/common/opendap-utils.js.html +353 -353
  268. package/coverage/lcov-report/map/common/permissions.js.html +36 -42
  269. package/coverage/lcov-report/map/common/time-based-grid-source.js.html +59 -59
  270. package/coverage/lcov-report/map/common/tms-utils.js.html +6 -6
  271. package/coverage/lcov-report/map/common/wcs-grid-source.js.html +190 -190
  272. package/coverage/lcov-report/map/common/wcs-utils.js.html +339 -339
  273. package/coverage/lcov-report/map/common/weacast-grid-source.js.html +345 -345
  274. package/coverage/lcov-report/map/common/wfs-utils.js.html +11 -11
  275. package/coverage/lcov-report/map/common/wms-utils.js.html +8 -8
  276. package/coverage/lcov-report/map/common/wmts-utils.js.html +7 -7
  277. package/coverage/lcov.info +7793 -8564
  278. package/coverage/map/api/hooks/hooks.catalog.js.html +257 -353
  279. package/coverage/map/api/hooks/hooks.features.js.html +218 -218
  280. package/coverage/map/api/hooks/hooks.query.js.html +810 -795
  281. package/coverage/map/api/hooks/index.html +54 -54
  282. package/coverage/map/api/hooks/index.js.html +16 -16
  283. package/coverage/map/api/index.html +32 -32
  284. package/coverage/map/api/index.js.html +46 -46
  285. package/coverage/map/api/marshall.js.html +72 -72
  286. package/coverage/map/api/models/alerts.model.mongodb.js.html +24 -24
  287. package/coverage/map/api/models/catalog.model.mongodb.js.html +27 -69
  288. package/coverage/map/api/models/features.model.mongodb.js.html +80 -80
  289. package/coverage/map/api/models/index.html +54 -69
  290. package/coverage/map/api/models/projects.model.mongodb.js.html +26 -26
  291. package/coverage/map/api/services/alerts/alerts.hooks.js.html +136 -136
  292. package/coverage/map/api/services/alerts/alerts.service.js.html +343 -343
  293. package/coverage/map/api/services/alerts/index.html +32 -32
  294. package/coverage/map/api/services/catalog/catalog.hooks.js.html +160 -178
  295. package/coverage/map/api/services/catalog/index.html +21 -21
  296. package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
  297. package/coverage/map/api/services/daptiles/index.html +1 -1
  298. package/coverage/map/api/services/features/features.hooks.js.html +114 -183
  299. package/coverage/map/api/services/features/features.service.js.html +56 -359
  300. package/coverage/map/api/services/features/index.html +31 -31
  301. package/coverage/map/api/services/index.html +21 -21
  302. package/coverage/map/api/services/index.js.html +258 -495
  303. package/coverage/map/api/services/projects/index.html +21 -21
  304. package/coverage/map/api/services/projects/projects.hooks.js.html +237 -237
  305. package/coverage/map/common/dynamic-grid-source.js.html +68 -68
  306. package/coverage/map/common/errors.js.html +16 -16
  307. package/coverage/map/common/geotiff-grid-source.js.html +267 -270
  308. package/coverage/map/common/grid.js.html +554 -554
  309. package/coverage/map/common/index.html +158 -158
  310. package/coverage/map/common/index.js.html +68 -68
  311. package/coverage/map/common/meteo-model-grid-source.js.html +73 -73
  312. package/coverage/map/common/moment-utils.js.html +18 -18
  313. package/coverage/map/common/opendap-grid-source.js.html +484 -484
  314. package/coverage/map/common/opendap-utils.js.html +353 -353
  315. package/coverage/map/common/permissions.js.html +36 -42
  316. package/coverage/map/common/time-based-grid-source.js.html +59 -59
  317. package/coverage/map/common/tms-utils.js.html +6 -6
  318. package/coverage/map/common/wcs-grid-source.js.html +190 -190
  319. package/coverage/map/common/wcs-utils.js.html +339 -339
  320. package/coverage/map/common/weacast-grid-source.js.html +345 -345
  321. package/coverage/map/common/wfs-utils.js.html +11 -11
  322. package/coverage/map/common/wms-utils.js.html +8 -8
  323. package/coverage/map/common/wmts-utils.js.html +7 -7
  324. package/coverage/tmp/coverage-151166-1723543324307-0.json +1 -0
  325. package/coverage/tmp/coverage-151178-1723543324283-0.json +1 -0
  326. package/coverage/tmp/coverage-151189-1723543324271-0.json +1 -0
  327. package/coverage/tmp/coverage-151201-1723543324248-0.json +1 -0
  328. package/coverage/tmp/coverage-151208-1723543324227-0.json +1 -0
  329. package/extras/configs/panes.top.js +33 -11
  330. package/extras/configs/stickies.js +26 -16
  331. package/extras/configs/widgets.left.js +13 -1
  332. package/extras/libs/jsts.min.js +8 -0
  333. package/{test/client/core/account.js → extras/tests/core/account.mjs} +4 -4
  334. package/extras/tests/core/api.mjs +114 -0
  335. package/{test/client/core/collection.js → extras/tests/core/collection.mjs} +8 -8
  336. package/{test/client/core/dialogs.js → extras/tests/core/dialogs.mjs} +1 -1
  337. package/extras/tests/core/index.mjs +9 -0
  338. package/{test/client/core/layout.js → extras/tests/core/layout.mjs} +7 -3
  339. package/{test/client/core/runner.js → extras/tests/core/runner.mjs} +3 -3
  340. package/{test/client/core/screens.js → extras/tests/core/screens.mjs} +1 -1
  341. package/{test/client/core/utils.js → extras/tests/core/utils.mjs} +79 -26
  342. package/extras/tests/index.mjs +4 -0
  343. package/{test/client/map/api.js → extras/tests/map/api.mjs} +1 -1
  344. package/{test/client/map/catalog.js → extras/tests/map/catalog.mjs} +18 -18
  345. package/{test/client/map/controls.js → extras/tests/map/controls.mjs} +3 -3
  346. package/extras/tests/map/index.mjs +5 -0
  347. package/{test/client/map/time.js → extras/tests/map/time.mjs} +3 -3
  348. package/{test/client/map/utils.js → extras/tests/map/utils.mjs} +6 -5
  349. package/extras/tours/fab.js +36 -0
  350. package/extras/tours/layout.js +49 -0
  351. package/extras/tours/pane.left.js +78 -0
  352. package/extras/tours/pane.right.js +145 -0
  353. package/extras/tours/pane.top.js +239 -0
  354. package/map/api/config/layers.cjs +28 -13
  355. package/map/api/hooks/hooks.query.js +12 -7
  356. package/map/api/models/catalog.model.mongodb.js +17 -6
  357. package/map/api/services/catalog/catalog.hooks.js +1 -1
  358. package/map/api/services/index.js +18 -1
  359. package/map/client/cesium/utils/utils.cesium.js +25 -65
  360. package/map/client/cesium/utils/utils.features.js +1 -0
  361. package/map/client/cesium/utils/utils.geojson.js +1 -0
  362. package/map/client/cesium/utils/utils.style.js +7 -6
  363. package/map/client/components/KFeatureEditor.vue +3 -3
  364. package/map/client/components/KFeaturesChart.vue +4 -4
  365. package/map/client/components/KFeaturesFilterEditor.vue +19 -13
  366. package/map/client/components/KFeaturesFilterManager.vue +7 -4
  367. package/map/client/components/KFeaturesTable.vue +2 -2
  368. package/map/client/components/KLayerEditor.vue +6 -6
  369. package/map/client/components/KMeasureTool.vue +2 -1
  370. package/map/client/components/catalog/KBaseLayersSelector.vue +1 -1
  371. package/map/client/components/catalog/KCategoryItem.vue +15 -1
  372. package/map/client/components/catalog/KConnectLayer.vue +2 -2
  373. package/map/client/components/catalog/KCreateView.vue +3 -2
  374. package/map/client/components/catalog/KFilteredLayerItem.vue +26 -6
  375. package/map/client/components/catalog/KImportLayer.vue +6 -3
  376. package/map/client/components/catalog/KLayerCategories.vue +6 -6
  377. package/map/client/components/catalog/KLayerItem.vue +12 -2
  378. package/map/client/components/catalog/KLayersList.vue +180 -0
  379. package/map/client/components/catalog/KLayersPanel.vue +146 -36
  380. package/map/client/components/catalog/KLayersSelector.vue +96 -48
  381. package/map/client/components/catalog/KProjectEditor.vue +0 -9
  382. package/map/client/components/catalog/KProjectSelector.vue +3 -2
  383. package/map/client/components/catalog/KProjectsPanel.vue +23 -8
  384. package/map/client/components/catalog/KViewsPanel.vue +18 -8
  385. package/map/client/components/catalog/KWeatherLayersSelector.vue +3 -3
  386. package/map/client/components/form/KDirectionField.vue +3 -6
  387. package/map/client/components/form/KLayerCategoryField.vue +2 -2
  388. package/map/client/components/form/KOwsServiceField.vue +25 -24
  389. package/map/client/components/form/KSelectLayersField.vue +4 -4
  390. package/map/client/components/form/KSelectViewsField.vue +4 -4
  391. package/map/client/components/legend/KLayerLegend.vue +11 -2
  392. package/map/client/components/legend/KLegend.vue +44 -51
  393. package/map/client/components/location/KLocationCardSection.vue +6 -7
  394. package/map/client/components/location/KLocationMap.vue +23 -13
  395. package/map/client/components/stickies/KPosition.vue +5 -0
  396. package/map/client/components/stickies/KZoomControl.vue +70 -0
  397. package/map/client/components/styles/KLayerStyleAction.vue +59 -12
  398. package/map/client/components/styles/KStyleEditor.vue +71 -8
  399. package/map/client/components/styles/KStyleEditorSection.vue +82 -33
  400. package/map/client/components/styles/KStyleManager.vue +119 -59
  401. package/map/client/components/styles/KStylePreview.vue +9 -25
  402. package/map/client/components/styles/KStylePreviewItem.vue +22 -1
  403. package/map/client/components/tools/KSearchTool.vue +1 -1
  404. package/map/client/components/widget/KElevationProfile.vue +20 -17
  405. package/map/client/components/widget/KInformationBox.vue +5 -5
  406. package/map/client/components/widget/KMapillaryViewer.vue +2 -1
  407. package/map/client/components/widget/KTimeSeries.vue +11 -9
  408. package/map/client/globe.js +2 -0
  409. package/map/client/i18n/map_en.json +30 -7
  410. package/map/client/i18n/map_fr.json +30 -7
  411. package/map/client/leaflet/GradientPath.js +61 -24
  412. package/map/client/leaflet/ShapeMarker.js +12 -5
  413. package/map/client/leaflet/TiledMeshLayer.js +3 -3
  414. package/map/client/leaflet/utils/utils.geojson.js +66 -8
  415. package/map/client/leaflet/utils/utils.style.js +14 -15
  416. package/map/client/mixins/globe/mixin.base-globe.js +190 -34
  417. package/map/client/mixins/globe/mixin.file-layers.js +3 -0
  418. package/map/client/mixins/globe/mixin.geojson-layers.js +179 -31
  419. package/map/client/mixins/globe/mixin.opendap-layers.js +2 -1
  420. package/map/client/mixins/globe/mixin.style.js +23 -1
  421. package/map/client/mixins/globe/mixin.tooltip.js +14 -2
  422. package/map/client/mixins/map/mixin.base-map.js +156 -58
  423. package/map/client/mixins/map/mixin.edit-layers.js +18 -15
  424. package/map/client/mixins/map/mixin.geojson-layers.js +181 -106
  425. package/map/client/mixins/map/mixin.heatmap-layers.js +3 -2
  426. package/map/client/mixins/map/mixin.map-activity.js +6 -1
  427. package/map/client/mixins/map/mixin.mapillary-layers.js +2 -1
  428. package/map/client/mixins/map/mixin.pmtiles-layers.js +3 -3
  429. package/map/client/mixins/map/mixin.tiled-mesh-layers.js +3 -2
  430. package/map/client/mixins/map/mixin.tiled-wind-layers.js +3 -2
  431. package/map/client/mixins/mixin.activity.js +199 -55
  432. package/map/client/mixins/mixin.context.js +11 -11
  433. package/map/client/mixins/mixin.feature-service.js +11 -9
  434. package/map/client/mixins/mixin.weacast.js +5 -3
  435. package/map/client/readers/reader.geojson.js +3 -1
  436. package/map/client/utils/utils.capture.js +3 -3
  437. package/map/client/utils/utils.catalog.js +9 -5
  438. package/map/client/utils/utils.features.js +120 -54
  439. package/map/client/utils/utils.js +25 -10
  440. package/map/client/utils/utils.layers.js +148 -24
  441. package/map/client/utils/utils.location.js +26 -9
  442. package/map/client/utils/utils.schema.js +2 -1
  443. package/map/client/utils/utils.style.js +53 -9
  444. package/map/common/geotiff-grid-source.js +1 -3
  445. package/map/common/opendap-utils.js +0 -1
  446. package/map/common/tms-utils.js +0 -1
  447. package/map/common/wcs-utils.js +0 -1
  448. package/map/common/wfs-utils.js +0 -1
  449. package/map/common/wms-utils.js +7 -1
  450. package/map/common/wmts-utils.js +0 -1
  451. package/package.json +12 -12
  452. package/scripts/init_runner.sh +3 -3
  453. package/scripts/kash/CHANGELOG.md +27 -0
  454. package/scripts/kash/kash.sh +556 -237
  455. package/scripts/kash/scripts/run_tests.sh +44 -5
  456. package/scripts/setup_workspace.sh +23 -13
  457. package/test/api/core/config/default.cjs +2 -1
  458. package/test/api/core/tags.test.js +62 -0
  459. package/test/api/core/test-log-2024-04-22.log +84 -0
  460. package/test/api/core/{test-log-2025-02-05.log → test-log-2024-04-23.log} +3 -3
  461. package/test/api/core/test-log-2024-08-13.log +3 -0
  462. package/test/api/map/config/default.cjs +2 -1
  463. package/test/api/map/config/layers.json +9 -0
  464. package/test/api/map/data/openradiation.json +13811 -0
  465. package/test/api/map/grid-sources.test.js +1 -3
  466. package/test/api/map/index.test.js +60 -1
  467. package/test/api/map/style.test.js +30 -1
  468. package/test/api/map/test-log-2025-03-08.log +0 -0
  469. package/test.api.js +1 -1
  470. package/vite/App.vue +18 -0
  471. package/vite/AppWithGlobe.vue +84 -0
  472. package/vite/GlobeActivity.vue +58 -0
  473. package/vite/MapActivity.vue +63 -0
  474. package/vite/MapActivityWithGlobe.vue +63 -0
  475. package/vite/README.md +169 -0
  476. package/vite/config.js +221 -0
  477. package/vite/index_with_globe.html +50 -0
  478. package/vite/index_with_map.html +50 -0
  479. package/vite/package.json +173 -0
  480. package/vite/quasar.variables.scss +17 -0
  481. package/vite/vite.config.js +166 -0
  482. package/vite/yarn.lock +11641 -0
  483. package/core/client/components/media/KImageViewer.vue +0 -68
  484. package/core/client/components/media/KMarkdownViewer.vue +0 -55
  485. package/core/client/components/media/KMediaBrowser.vue +0 -301
  486. package/coverage/core/api/services/users/users.service.js.html +0 -100
  487. package/coverage/core/common/utils.offline.js.html +0 -199
  488. package/coverage/lcov-report/core/api/services/users/users.service.js.html +0 -100
  489. package/coverage/lcov-report/core/common/utils.offline.js.html +0 -199
  490. package/coverage/lcov-report/map/api/models/styles.model.mongodb.js.html +0 -112
  491. package/coverage/lcov-report/map/api/services/styles/index.html +0 -116
  492. package/coverage/lcov-report/map/api/services/styles/styles.hooks.js.html +0 -196
  493. package/coverage/map/api/models/styles.model.mongodb.js.html +0 -112
  494. package/coverage/map/api/services/styles/index.html +0 -116
  495. package/coverage/map/api/services/styles/styles.hooks.js.html +0 -196
  496. package/coverage/tmp/coverage-151198-1753351220086-0.json +0 -1
  497. package/coverage/tmp/coverage-151210-1753351220070-0.json +0 -1
  498. package/coverage/tmp/coverage-151221-1753351129816-0.json +0 -1
  499. package/coverage/tmp/coverage-151233-1753351129803-0.json +0 -1
  500. package/coverage/tmp/coverage-151240-1753351129770-0.json +0 -1
  501. package/coverage/tmp/coverage-151307-1753351220058-0.json +0 -1
  502. package/coverage/tmp/coverage-151319-1753351220044-0.json +0 -1
  503. package/coverage/tmp/coverage-151326-1753351220010-0.json +0 -1
  504. package/extras/tours/core/account-profile.js +0 -32
  505. package/extras/tours/core/account.js +0 -143
  506. package/extras/tours/core/add-member.js +0 -75
  507. package/extras/tours/core/add-tag.js +0 -13
  508. package/extras/tours/core/create-group.js +0 -19
  509. package/extras/tours/core/create-organisation.js +0 -19
  510. package/extras/tours/core/create-tag.js +0 -26
  511. package/extras/tours/core/edit-member-role.js +0 -13
  512. package/extras/tours/core/groups.js +0 -65
  513. package/extras/tours/core/join-group.js +0 -13
  514. package/extras/tours/core/login.js +0 -41
  515. package/extras/tours/core/members.js +0 -108
  516. package/extras/tours/core/register.js +0 -61
  517. package/extras/tours/core/send-reset-password.js +0 -14
  518. package/extras/tours/core/tags.js +0 -65
  519. package/extras/tours/map/catalog-panel.js +0 -112
  520. package/extras/tours/map/fab.js +0 -26
  521. package/extras/tours/map/navigation-bar.js +0 -187
  522. package/extras/tours/map/side-nav.js +0 -36
  523. package/test/api/core/test-log-2025-05-21.log +0 -15
  524. package/test/api/core/test-log-2025-06-25.log +0 -9
  525. package/test/api/core/test-log-2025-07-24.log +0 -44
  526. package/test/api/map/test-log-2025-05-27.log +0 -13
  527. package/test/api/map/test-log-2025-06-23.log +0 -7
  528. package/test/api/map/test-log-2025-07-24.log +0 -11
  529. package/test/client/core/api.js +0 -361
  530. package/test/client/core/index.js +0 -9
  531. package/test/client/index.js +0 -4
  532. package/test/client/map/index.js +0 -5
  533. package/test.client.js +0 -1
  534. /package/{test/client/core/time.js → extras/tests/core/time.mjs} +0 -0
  535. /package/extras/tours/{map/add-layer.js → add-layer.js} +0 -0
  536. /package/extras/tours/{map/catalog-categories.js → catalog-categories.js} +0 -0
  537. /package/extras/tours/{map/connect-layer.js → connect-layer.js} +0 -0
  538. /package/extras/tours/{map/create-layer.js → create-layer.js} +0 -0
  539. /package/extras/tours/{map/create-view.js → create-view.js} +0 -0
  540. /package/extras/tours/{map/import-layer.js → import-layer.js} +0 -0
  541. /package/extras/tours/{map/timeline.js → pane.bottom.js} +0 -0
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">100% </span>
26
+ <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>29/29</span>
28
+ <span class='fraction'>0/29</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>5/5</span>
35
+ <span class='fraction'>0/1</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">57.14% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>4/7</span>
42
+ <span class='fraction'>0/1</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">100% </span>
47
+ <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>29/29</span>
49
+ <span class='fraction'>0/29</span>
50
50
  </div>
51
51
 
52
52
 
@@ -61,7 +61,7 @@
61
61
  </div>
62
62
  </template>
63
63
  </div>
64
- <div class='status-line high'></div>
64
+ <div class='status-line low'></div>
65
65
  <pre><table class="coverage">
66
66
  <tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
67
67
  <a name='L2'></a><a href='#L2'>2</a>
@@ -92,64 +92,64 @@
92
92
  <a name='L27'></a><a href='#L27'>27</a>
93
93
  <a name='L28'></a><a href='#L28'>28</a>
94
94
  <a name='L29'></a><a href='#L29'>29</a>
95
- <a name='L30'></a><a href='#L30'>30</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
96
- <span class="cline-any cline-yes">1x</span>
97
- <span class="cline-any cline-yes">1x</span>
98
- <span class="cline-any cline-yes">1x</span>
99
- <span class="cline-any cline-yes">1x</span>
100
- <span class="cline-any cline-yes">1x</span>
101
- <span class="cline-any cline-yes">1x</span>
102
- <span class="cline-any cline-yes">1x</span>
103
- <span class="cline-any cline-yes">1x</span>
104
- <span class="cline-any cline-yes">1x</span>
105
- <span class="cline-any cline-yes">1x</span>
106
- <span class="cline-any cline-yes">1x</span>
107
- <span class="cline-any cline-yes">1x</span>
108
- <span class="cline-any cline-yes">1x</span>
109
- <span class="cline-any cline-yes">1x</span>
110
- <span class="cline-any cline-yes">1x</span>
111
- <span class="cline-any cline-yes">1x</span>
112
- <span class="cline-any cline-yes">1x</span>
113
- <span class="cline-any cline-yes">1x</span>
114
- <span class="cline-any cline-yes">1x</span>
115
- <span class="cline-any cline-yes">1x</span>
116
- <span class="cline-any cline-yes">1x</span>
117
- <span class="cline-any cline-yes">1x</span>
118
- <span class="cline-any cline-yes">1x</span>
119
- <span class="cline-any cline-yes">1x</span>
120
- <span class="cline-any cline-yes">1x</span>
121
- <span class="cline-any cline-yes">1x</span>
122
- <span class="cline-any cline-yes">1x</span>
123
- <span class="cline-any cline-yes">1x</span>
124
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">// We faced a bug in babel so that transform-runtime with export * from 'x' generates import statements in transpiled code
125
- // Tracked here : https://github.com/babel/babel/issues/2877
126
- // We tested the workaround given here https://github.com/babel/babel/issues/2877#issuecomment-270700000 with success so far
127
- import * as errors from './errors.js'
128
- import * as permissions from './permissions.js'
129
- import * as dap from './opendap-utils.js'
130
- import * as grid from './grid.js'
131
- import { gridSourceFactories, unitConverters } from './grid.js'
132
- import { OpenDapGridSource } from './opendap-grid-source.js'
133
- import { WcsGridSource } from './wcs-grid-source.js'
134
- import { GeoTiffGridSource } from './geotiff-grid-source.js'
135
- import { WeacastGridSource } from './weacast-grid-source.js'
136
- import { MeteoModelGridSource } from './meteo-model-grid-source.js'
137
- import { TimeBasedGridSource } from './time-based-grid-source.js'
138
- &nbsp;
139
- export { errors }
140
- export { permissions }
141
- export { dap }
142
- export { grid }
143
- &nbsp;
144
- // register factories for known grid sources
145
- gridSourceFactories[OpenDapGridSource.getKey()] = function (options) { return new OpenDapGridSource(options) }
146
- gridSourceFactories[WcsGridSource.getKey()] = function (options) { return new WcsGridSource(options) }
147
- gridSourceFactories[GeoTiffGridSource.getKey()] = function (options) { return new GeoTiffGridSource(options) }
148
- gridSourceFactories[WeacastGridSource.getKey()] = function (options) { return new WeacastGridSource(options) }
149
- gridSourceFactories[MeteoModelGridSource.getKey()] = <span class="fstat-no" title="function not covered" >function (options) { return new MeteoModelGridSource(options) }</span>
150
- gridSourceFactories[TimeBasedGridSource.getKey()] = <span class="fstat-no" title="function not covered" >function (options) { return new TimeBasedGridSource(options) }</span>
151
- &nbsp;
152
- unitConverters.kelvin2celsius = <span class="fstat-no" title="function not covered" >function (kelvin) { return kelvin - 273.15 }</span>
95
+ <a name='L30'></a><a href='#L30'>30</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
96
+ <span class="cline-any cline-no">&nbsp;</span>
97
+ <span class="cline-any cline-no">&nbsp;</span>
98
+ <span class="cline-any cline-no">&nbsp;</span>
99
+ <span class="cline-any cline-no">&nbsp;</span>
100
+ <span class="cline-any cline-no">&nbsp;</span>
101
+ <span class="cline-any cline-no">&nbsp;</span>
102
+ <span class="cline-any cline-no">&nbsp;</span>
103
+ <span class="cline-any cline-no">&nbsp;</span>
104
+ <span class="cline-any cline-no">&nbsp;</span>
105
+ <span class="cline-any cline-no">&nbsp;</span>
106
+ <span class="cline-any cline-no">&nbsp;</span>
107
+ <span class="cline-any cline-no">&nbsp;</span>
108
+ <span class="cline-any cline-no">&nbsp;</span>
109
+ <span class="cline-any cline-no">&nbsp;</span>
110
+ <span class="cline-any cline-no">&nbsp;</span>
111
+ <span class="cline-any cline-no">&nbsp;</span>
112
+ <span class="cline-any cline-no">&nbsp;</span>
113
+ <span class="cline-any cline-no">&nbsp;</span>
114
+ <span class="cline-any cline-no">&nbsp;</span>
115
+ <span class="cline-any cline-no">&nbsp;</span>
116
+ <span class="cline-any cline-no">&nbsp;</span>
117
+ <span class="cline-any cline-no">&nbsp;</span>
118
+ <span class="cline-any cline-no">&nbsp;</span>
119
+ <span class="cline-any cline-no">&nbsp;</span>
120
+ <span class="cline-any cline-no">&nbsp;</span>
121
+ <span class="cline-any cline-no">&nbsp;</span>
122
+ <span class="cline-any cline-no">&nbsp;</span>
123
+ <span class="cline-any cline-no">&nbsp;</span>
124
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" >// We faced a bug in babel so that transform-runtime with export * from 'x' generates import statements in transpiled code</span></span></span>
125
+ <span class="cstat-no" title="statement not covered" >// Tracked here : https://github.com/babel/babel/issues/2877</span>
126
+ <span class="cstat-no" title="statement not covered" >// We tested the workaround given here https://github.com/babel/babel/issues/2877#issuecomment-270700000 with success so far</span>
127
+ <span class="cstat-no" title="statement not covered" >import * as errors from './errors.js'</span>
128
+ <span class="cstat-no" title="statement not covered" >import * as permissions from './permissions.js'</span>
129
+ <span class="cstat-no" title="statement not covered" >import * as dap from './opendap-utils.js'</span>
130
+ <span class="cstat-no" title="statement not covered" >import * as grid from './grid.js'</span>
131
+ <span class="cstat-no" title="statement not covered" >import { gridSourceFactories, unitConverters } from './grid.js'</span>
132
+ <span class="cstat-no" title="statement not covered" >import { OpenDapGridSource } from './opendap-grid-source.js'</span>
133
+ <span class="cstat-no" title="statement not covered" >import { WcsGridSource } from './wcs-grid-source.js'</span>
134
+ <span class="cstat-no" title="statement not covered" >import { GeoTiffGridSource } from './geotiff-grid-source.js'</span>
135
+ <span class="cstat-no" title="statement not covered" >import { WeacastGridSource } from './weacast-grid-source.js'</span>
136
+ <span class="cstat-no" title="statement not covered" >import { MeteoModelGridSource } from './meteo-model-grid-source.js'</span>
137
+ <span class="cstat-no" title="statement not covered" >import { TimeBasedGridSource } from './time-based-grid-source.js'</span>
138
+ <span class="cstat-no" title="statement not covered" ></span>
139
+ <span class="cstat-no" title="statement not covered" >export { errors }</span>
140
+ <span class="cstat-no" title="statement not covered" >export { permissions }</span>
141
+ <span class="cstat-no" title="statement not covered" >export { dap }</span>
142
+ <span class="cstat-no" title="statement not covered" >export { grid }</span>
143
+ <span class="cstat-no" title="statement not covered" ></span>
144
+ <span class="cstat-no" title="statement not covered" >// register factories for known grid sources</span>
145
+ <span class="cstat-no" title="statement not covered" >gridSourceFactories[OpenDapGridSource.getKey()] = function (options) { return new OpenDapGridSource(options) }</span>
146
+ <span class="cstat-no" title="statement not covered" >gridSourceFactories[WcsGridSource.getKey()] = function (options) { return new WcsGridSource(options) }</span>
147
+ <span class="cstat-no" title="statement not covered" >gridSourceFactories[GeoTiffGridSource.getKey()] = function (options) { return new GeoTiffGridSource(options) }</span>
148
+ <span class="cstat-no" title="statement not covered" >gridSourceFactories[WeacastGridSource.getKey()] = function (options) { return new WeacastGridSource(options) }</span>
149
+ <span class="cstat-no" title="statement not covered" >gridSourceFactories[MeteoModelGridSource.getKey()] = function (options) { return new MeteoModelGridSource(options) }</span>
150
+ <span class="cstat-no" title="statement not covered" >gridSourceFactories[TimeBasedGridSource.getKey()] = function (options) { return new TimeBasedGridSource(options) }</span>
151
+ <span class="cstat-no" title="statement not covered" ></span>
152
+ <span class="cstat-no" title="statement not covered" >unitConverters.kelvin2celsius = function (kelvin) { return kelvin - 273.15 }</span>
153
153
  &nbsp;</pre></td></tr></table></pre>
154
154
 
155
155
  <div class='push'></div><!-- for sticky footer -->
@@ -157,7 +157,7 @@ unitConverters.kelvin2celsius = <span class="fstat-no" title="function not cover
157
157
  <div class='footer quiet pad2 space-top1 center small'>
158
158
  Code coverage generated by
159
159
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
160
- at 2025-07-24T10:00:20.508Z
160
+ at 2024-08-13T10:02:04.872Z
161
161
  </div>
162
162
  <script src="../../prettify.js"></script>
163
163
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">20.38% </span>
26
+ <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>32/157</span>
28
+ <span class='fraction'>0/157</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>2/2</span>
35
+ <span class='fraction'>0/1</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">9.09% </span>
40
+ <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>1/11</span>
42
+ <span class='fraction'>0/1</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">20.38% </span>
47
+ <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>32/157</span>
49
+ <span class='fraction'>0/157</span>
50
50
  </div>
51
51
 
52
52
 
@@ -220,32 +220,16 @@
220
220
  <a name='L155'></a><a href='#L155'>155</a>
221
221
  <a name='L156'></a><a href='#L156'>156</a>
222
222
  <a name='L157'></a><a href='#L157'>157</a>
223
- <a name='L158'></a><a href='#L158'>158</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
224
- <span class="cline-any cline-yes">1x</span>
225
- <span class="cline-any cline-yes">1x</span>
226
- <span class="cline-any cline-yes">1x</span>
227
- <span class="cline-any cline-yes">1x</span>
228
- <span class="cline-any cline-yes">1x</span>
229
- <span class="cline-any cline-yes">1x</span>
230
- <span class="cline-any cline-yes">1x</span>
231
- <span class="cline-any cline-yes">1x</span>
232
- <span class="cline-any cline-yes">1x</span>
233
- <span class="cline-any cline-yes">1x</span>
234
- <span class="cline-any cline-yes">1x</span>
235
- <span class="cline-any cline-yes">1x</span>
223
+ <a name='L158'></a><a href='#L158'>158</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
236
224
  <span class="cline-any cline-no">&nbsp;</span>
237
225
  <span class="cline-any cline-no">&nbsp;</span>
238
226
  <span class="cline-any cline-no">&nbsp;</span>
239
227
  <span class="cline-any cline-no">&nbsp;</span>
240
228
  <span class="cline-any cline-no">&nbsp;</span>
241
229
  <span class="cline-any cline-no">&nbsp;</span>
242
- <span class="cline-any cline-yes">1x</span>
243
- <span class="cline-any cline-yes">1x</span>
244
230
  <span class="cline-any cline-no">&nbsp;</span>
245
231
  <span class="cline-any cline-no">&nbsp;</span>
246
232
  <span class="cline-any cline-no">&nbsp;</span>
247
- <span class="cline-any cline-yes">1x</span>
248
- <span class="cline-any cline-yes">1x</span>
249
233
  <span class="cline-any cline-no">&nbsp;</span>
250
234
  <span class="cline-any cline-no">&nbsp;</span>
251
235
  <span class="cline-any cline-no">&nbsp;</span>
@@ -254,14 +238,10 @@
254
238
  <span class="cline-any cline-no">&nbsp;</span>
255
239
  <span class="cline-any cline-no">&nbsp;</span>
256
240
  <span class="cline-any cline-no">&nbsp;</span>
257
- <span class="cline-any cline-yes">1x</span>
258
- <span class="cline-any cline-yes">1x</span>
259
241
  <span class="cline-any cline-no">&nbsp;</span>
260
242
  <span class="cline-any cline-no">&nbsp;</span>
261
243
  <span class="cline-any cline-no">&nbsp;</span>
262
244
  <span class="cline-any cline-no">&nbsp;</span>
263
- <span class="cline-any cline-yes">1x</span>
264
- <span class="cline-any cline-yes">1x</span>
265
245
  <span class="cline-any cline-no">&nbsp;</span>
266
246
  <span class="cline-any cline-no">&nbsp;</span>
267
247
  <span class="cline-any cline-no">&nbsp;</span>
@@ -291,8 +271,6 @@
291
271
  <span class="cline-any cline-no">&nbsp;</span>
292
272
  <span class="cline-any cline-no">&nbsp;</span>
293
273
  <span class="cline-any cline-no">&nbsp;</span>
294
- <span class="cline-any cline-yes">1x</span>
295
- <span class="cline-any cline-yes">1x</span>
296
274
  <span class="cline-any cline-no">&nbsp;</span>
297
275
  <span class="cline-any cline-no">&nbsp;</span>
298
276
  <span class="cline-any cline-no">&nbsp;</span>
@@ -312,16 +290,12 @@
312
290
  <span class="cline-any cline-no">&nbsp;</span>
313
291
  <span class="cline-any cline-no">&nbsp;</span>
314
292
  <span class="cline-any cline-no">&nbsp;</span>
315
- <span class="cline-any cline-yes">1x</span>
316
- <span class="cline-any cline-yes">1x</span>
317
293
  <span class="cline-any cline-no">&nbsp;</span>
318
294
  <span class="cline-any cline-no">&nbsp;</span>
319
295
  <span class="cline-any cline-no">&nbsp;</span>
320
296
  <span class="cline-any cline-no">&nbsp;</span>
321
297
  <span class="cline-any cline-no">&nbsp;</span>
322
298
  <span class="cline-any cline-no">&nbsp;</span>
323
- <span class="cline-any cline-yes">1x</span>
324
- <span class="cline-any cline-yes">1x</span>
325
299
  <span class="cline-any cline-no">&nbsp;</span>
326
300
  <span class="cline-any cline-no">&nbsp;</span>
327
301
  <span class="cline-any cline-no">&nbsp;</span>
@@ -334,8 +308,6 @@
334
308
  <span class="cline-any cline-no">&nbsp;</span>
335
309
  <span class="cline-any cline-no">&nbsp;</span>
336
310
  <span class="cline-any cline-no">&nbsp;</span>
337
- <span class="cline-any cline-yes">1x</span>
338
- <span class="cline-any cline-yes">1x</span>
339
311
  <span class="cline-any cline-no">&nbsp;</span>
340
312
  <span class="cline-any cline-no">&nbsp;</span>
341
313
  <span class="cline-any cline-no">&nbsp;</span>
@@ -358,8 +330,6 @@
358
330
  <span class="cline-any cline-no">&nbsp;</span>
359
331
  <span class="cline-any cline-no">&nbsp;</span>
360
332
  <span class="cline-any cline-no">&nbsp;</span>
361
- <span class="cline-any cline-yes">1x</span>
362
- <span class="cline-any cline-yes">1x</span>
363
333
  <span class="cline-any cline-no">&nbsp;</span>
364
334
  <span class="cline-any cline-no">&nbsp;</span>
365
335
  <span class="cline-any cline-no">&nbsp;</span>
@@ -376,33 +346,63 @@
376
346
  <span class="cline-any cline-no">&nbsp;</span>
377
347
  <span class="cline-any cline-no">&nbsp;</span>
378
348
  <span class="cline-any cline-no">&nbsp;</span>
379
- <span class="cline-any cline-yes">1x</span>
380
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import _ from 'lodash'
381
- import moment from 'moment'
382
- import { getNearestRunTime, getNearestForecastTime } from '@weacast/core/common.js'
383
- import { makeGridSource, extractGridSourceConfig } from './grid.js'
384
- import { DynamicGridSource } from './dynamic-grid-source.js'
385
- import { readAsTimeOrDuration, makeTime } from './moment-utils.js'
386
- &nbsp;
387
- export class MeteoModelGridSource extends DynamicGridSource {
388
- static getKey () {
389
- return 'meteo_model'
390
- }
391
- &nbsp;
392
- <span class="fstat-no" title="function not covered" > constructor (options) {</span>
349
+ <span class="cline-any cline-no">&nbsp;</span>
350
+ <span class="cline-any cline-no">&nbsp;</span>
351
+ <span class="cline-any cline-no">&nbsp;</span>
352
+ <span class="cline-any cline-no">&nbsp;</span>
353
+ <span class="cline-any cline-no">&nbsp;</span>
354
+ <span class="cline-any cline-no">&nbsp;</span>
355
+ <span class="cline-any cline-no">&nbsp;</span>
356
+ <span class="cline-any cline-no">&nbsp;</span>
357
+ <span class="cline-any cline-no">&nbsp;</span>
358
+ <span class="cline-any cline-no">&nbsp;</span>
359
+ <span class="cline-any cline-no">&nbsp;</span>
360
+ <span class="cline-any cline-no">&nbsp;</span>
361
+ <span class="cline-any cline-no">&nbsp;</span>
362
+ <span class="cline-any cline-no">&nbsp;</span>
363
+ <span class="cline-any cline-no">&nbsp;</span>
364
+ <span class="cline-any cline-no">&nbsp;</span>
365
+ <span class="cline-any cline-no">&nbsp;</span>
366
+ <span class="cline-any cline-no">&nbsp;</span>
367
+ <span class="cline-any cline-no">&nbsp;</span>
368
+ <span class="cline-any cline-no">&nbsp;</span>
369
+ <span class="cline-any cline-no">&nbsp;</span>
370
+ <span class="cline-any cline-no">&nbsp;</span>
371
+ <span class="cline-any cline-no">&nbsp;</span>
372
+ <span class="cline-any cline-no">&nbsp;</span>
373
+ <span class="cline-any cline-no">&nbsp;</span>
374
+ <span class="cline-any cline-no">&nbsp;</span>
375
+ <span class="cline-any cline-no">&nbsp;</span>
376
+ <span class="cline-any cline-no">&nbsp;</span>
377
+ <span class="cline-any cline-no">&nbsp;</span>
378
+ <span class="cline-any cline-no">&nbsp;</span>
379
+ <span class="cline-any cline-no">&nbsp;</span>
380
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" >import _ from 'lodash'</span></span></span>
381
+ <span class="cstat-no" title="statement not covered" >import moment from 'moment'</span>
382
+ <span class="cstat-no" title="statement not covered" >import { getNearestRunTime, getNearestForecastTime } from '@weacast/core/common.js'</span>
383
+ <span class="cstat-no" title="statement not covered" >import { makeGridSource, extractGridSourceConfig } from './grid.js'</span>
384
+ <span class="cstat-no" title="statement not covered" >import { DynamicGridSource } from './dynamic-grid-source.js'</span>
385
+ <span class="cstat-no" title="statement not covered" >import { readAsTimeOrDuration, makeTime } from './moment-utils.js'</span>
386
+ <span class="cstat-no" title="statement not covered" ></span>
387
+ <span class="cstat-no" title="statement not covered" >export class MeteoModelGridSource extends DynamicGridSource {</span>
388
+ <span class="cstat-no" title="statement not covered" > static getKey () {</span>
389
+ <span class="cstat-no" title="statement not covered" > return 'meteo_model'</span>
390
+ <span class="cstat-no" title="statement not covered" > }</span>
391
+ <span class="cstat-no" title="statement not covered" ></span>
392
+ <span class="cstat-no" title="statement not covered" > constructor (options) {</span>
393
393
  <span class="cstat-no" title="statement not covered" > super(options)</span>
394
394
  <span class="cstat-no" title="statement not covered" ></span>
395
395
  <span class="cstat-no" title="statement not covered" > this.options = options</span>
396
396
  <span class="cstat-no" title="statement not covered" > // these members are not mandatory, but still defined in the context</span>
397
397
  <span class="cstat-no" title="statement not covered" > this.updateCtx.level = undefined</span>
398
398
  <span class="cstat-no" title="statement not covered" > }</span>
399
- &nbsp;
400
- <span class="fstat-no" title="function not covered" > setModel (model) {</span>
399
+ <span class="cstat-no" title="statement not covered" ></span>
400
+ <span class="cstat-no" title="statement not covered" > setModel (model) {</span>
401
401
  <span class="cstat-no" title="statement not covered" > this.updateCtx.model = model</span>
402
402
  <span class="cstat-no" title="statement not covered" > this.queueUpdate()</span>
403
403
  <span class="cstat-no" title="statement not covered" > }</span>
404
- &nbsp;
405
- <span class="fstat-no" title="function not covered" > setTime (time) {</span>
404
+ <span class="cstat-no" title="statement not covered" ></span>
405
+ <span class="cstat-no" title="statement not covered" > setTime (time) {</span>
406
406
  <span class="cstat-no" title="statement not covered" > this.updateCtx.time = time.clone()</span>
407
407
  <span class="cstat-no" title="statement not covered" > this.updateCtx.time.utc()</span>
408
408
  <span class="cstat-no" title="statement not covered" > // reset runOffset to fetch nearest run time</span>
@@ -411,14 +411,14 @@ export class MeteoModelGridSource extends DynamicGridSource {
411
411
  <span class="cstat-no" title="statement not covered" > this.updateCtx.runOffset = 0</span>
412
412
  <span class="cstat-no" title="statement not covered" > this.queueUpdate()</span>
413
413
  <span class="cstat-no" title="statement not covered" > }</span>
414
- &nbsp;
415
- <span class="fstat-no" title="function not covered" > setLevel (level) {</span>
414
+ <span class="cstat-no" title="statement not covered" ></span>
415
+ <span class="cstat-no" title="statement not covered" > setLevel (level) {</span>
416
416
  <span class="cstat-no" title="statement not covered" > if (level !== null) this.updateCtx.level = level</span>
417
417
  <span class="cstat-no" title="statement not covered" > else if (this.updateCtx.level) delete this.updateCtx.level</span>
418
418
  <span class="cstat-no" title="statement not covered" > this.queueUpdate()</span>
419
419
  <span class="cstat-no" title="statement not covered" > }</span>
420
- &nbsp;
421
- <span class="fstat-no" title="function not covered" > async setup (config) {</span>
420
+ <span class="cstat-no" title="statement not covered" ></span>
421
+ <span class="cstat-no" title="statement not covered" > async setup (config) {</span>
422
422
  <span class="cstat-no" title="statement not covered" > this.candidates = []</span>
423
423
  <span class="cstat-no" title="statement not covered" ></span>
424
424
  <span class="cstat-no" title="statement not covered" > for (const source of config.sources) {</span>
@@ -448,8 +448,8 @@ export class MeteoModelGridSource extends DynamicGridSource {
448
448
  <span class="cstat-no" title="statement not covered" > this.candidates.push(candidate)</span>
449
449
  <span class="cstat-no" title="statement not covered" > }</span>
450
450
  <span class="cstat-no" title="statement not covered" > }</span>
451
- &nbsp;
452
- <span class="fstat-no" title="function not covered" > makeBuildContext (updateCtx) {</span>
451
+ <span class="cstat-no" title="statement not covered" ></span>
452
+ <span class="cstat-no" title="statement not covered" > makeBuildContext (updateCtx) {</span>
453
453
  <span class="cstat-no" title="statement not covered" > const ctx = Object.assign({}, updateCtx)</span>
454
454
  <span class="cstat-no" title="statement not covered" ></span>
455
455
  <span class="cstat-no" title="statement not covered" > ctx.candidate = this.selectCandidate(updateCtx.time, updateCtx.model.name)</span>
@@ -469,16 +469,16 @@ export class MeteoModelGridSource extends DynamicGridSource {
469
469
  <span class="cstat-no" title="statement not covered" ></span>
470
470
  <span class="cstat-no" title="statement not covered" > return ctx</span>
471
471
  <span class="cstat-no" title="statement not covered" > }</span>
472
- &nbsp;
473
- <span class="fstat-no" title="function not covered" > shouldSkipUpdate (newContext, oldContext) {</span>
472
+ <span class="cstat-no" title="statement not covered" ></span>
473
+ <span class="cstat-no" title="statement not covered" > shouldSkipUpdate (newContext, oldContext) {</span>
474
474
  <span class="cstat-no" title="statement not covered" > if (oldContext.candidate !== newContext.candidate) return false</span>
475
475
  <span class="cstat-no" title="statement not covered" > if (oldContext.runTime &amp;&amp; newContext.runTime &amp;&amp; !oldContext.runTime.isSame(newContext.runTime)) return false</span>
476
476
  <span class="cstat-no" title="statement not covered" > if (oldContext.forecastTime &amp;&amp; newContext.forecastTime &amp;&amp; !oldContext.forecastTime.isSame(newContext.forecastTime)) return false</span>
477
477
  <span class="cstat-no" title="statement not covered" > if (oldContext.level !== newContext.level) return false</span>
478
478
  <span class="cstat-no" title="statement not covered" > return true</span>
479
479
  <span class="cstat-no" title="statement not covered" > }</span>
480
- &nbsp;
481
- <span class="fstat-no" title="function not covered" > buildSourceAndConfig (ctx) {</span>
480
+ <span class="cstat-no" title="statement not covered" ></span>
481
+ <span class="cstat-no" title="statement not covered" > buildSourceAndConfig (ctx) {</span>
482
482
  <span class="cstat-no" title="statement not covered" > let source = null</span>
483
483
  <span class="cstat-no" title="statement not covered" > let config = null</span>
484
484
  <span class="cstat-no" title="statement not covered" ></span>
@@ -491,8 +491,8 @@ export class MeteoModelGridSource extends DynamicGridSource {
491
491
  <span class="cstat-no" title="statement not covered" ></span>
492
492
  <span class="cstat-no" title="statement not covered" > return [source, config]</span>
493
493
  <span class="cstat-no" title="statement not covered" > }</span>
494
- &nbsp;
495
- <span class="fstat-no" title="function not covered" > selectCandidate (time, model) {</span>
494
+ <span class="cstat-no" title="statement not covered" ></span>
495
+ <span class="cstat-no" title="statement not covered" > selectCandidate (time, model) {</span>
496
496
  <span class="cstat-no" title="statement not covered" > const now = moment()</span>
497
497
  <span class="cstat-no" title="statement not covered" ></span>
498
498
  <span class="cstat-no" title="statement not covered" > let candidate = null</span>
@@ -515,8 +515,8 @@ export class MeteoModelGridSource extends DynamicGridSource {
515
515
  <span class="cstat-no" title="statement not covered" ></span>
516
516
  <span class="cstat-no" title="statement not covered" > return candidate</span>
517
517
  <span class="cstat-no" title="statement not covered" > }</span>
518
- &nbsp;
519
- <span class="fstat-no" title="function not covered" > dataChanged () {</span>
518
+ <span class="cstat-no" title="statement not covered" ></span>
519
+ <span class="cstat-no" title="statement not covered" > dataChanged () {</span>
520
520
  <span class="cstat-no" title="statement not covered" > // check if we need to try to fetch data from a previous run</span>
521
521
  <span class="cstat-no" title="statement not covered" > // in case the nearest run doesn't exists or fails to provide</span>
522
522
  <span class="cstat-no" title="statement not covered" > // required data</span>
@@ -533,7 +533,7 @@ export class MeteoModelGridSource extends DynamicGridSource {
533
533
  <span class="cstat-no" title="statement not covered" ></span>
534
534
  <span class="cstat-no" title="statement not covered" > super.dataChanged()</span>
535
535
  <span class="cstat-no" title="statement not covered" > }</span>
536
- }
536
+ <span class="cstat-no" title="statement not covered" >}</span>
537
537
  &nbsp;</pre></td></tr></table></pre>
538
538
 
539
539
  <div class='push'></div><!-- for sticky footer -->
@@ -541,7 +541,7 @@ export class MeteoModelGridSource extends DynamicGridSource {
541
541
  <div class='footer quiet pad2 space-top1 center small'>
542
542
  Code coverage generated by
543
543
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
544
- at 2025-07-24T10:00:20.508Z
544
+ at 2024-08-13T10:02:04.872Z
545
545
  </div>
546
546
  <script src="../../prettify.js"></script>
547
547
  <script>
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">20.83% </span>
26
+ <span class="strong">0% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>5/24</span>
28
+ <span class='fraction'>0/24</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">100% </span>
33
+ <span class="strong">0% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>1/1</span>
35
+ <span class='fraction'>0/1</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
40
  <span class="strong">0% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>0/2</span>
42
+ <span class='fraction'>0/1</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">20.83% </span>
47
+ <span class="strong">0% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>5/24</span>
49
+ <span class='fraction'>0/24</span>
50
50
  </div>
51
51
 
52
52
 
@@ -87,9 +87,9 @@
87
87
  <a name='L22'></a><a href='#L22'>22</a>
88
88
  <a name='L23'></a><a href='#L23'>23</a>
89
89
  <a name='L24'></a><a href='#L24'>24</a>
90
- <a name='L25'></a><a href='#L25'>25</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
91
- <span class="cline-any cline-yes">1x</span>
92
- <span class="cline-any cline-yes">1x</span>
90
+ <a name='L25'></a><a href='#L25'>25</a></td><td class="line-coverage quiet"><span class="cline-any cline-no">&nbsp;</span>
91
+ <span class="cline-any cline-no">&nbsp;</span>
92
+ <span class="cline-any cline-no">&nbsp;</span>
93
93
  <span class="cline-any cline-no">&nbsp;</span>
94
94
  <span class="cline-any cline-no">&nbsp;</span>
95
95
  <span class="cline-any cline-no">&nbsp;</span>
@@ -107,13 +107,13 @@
107
107
  <span class="cline-any cline-no">&nbsp;</span>
108
108
  <span class="cline-any cline-no">&nbsp;</span>
109
109
  <span class="cline-any cline-no">&nbsp;</span>
110
- <span class="cline-any cline-yes">1x</span>
111
- <span class="cline-any cline-yes">1x</span>
112
110
  <span class="cline-any cline-no">&nbsp;</span>
113
111
  <span class="cline-any cline-no">&nbsp;</span>
114
- <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">import moment from 'moment'
115
- &nbsp;
116
- export <span class="fstat-no" title="function not covered" >function readAsTimeOrDuration (conf) {</span>
112
+ <span class="cline-any cline-no">&nbsp;</span>
113
+ <span class="cline-any cline-no">&nbsp;</span>
114
+ <span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js"><span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" ><span class="branch-0 cbranch-no" title="branch not covered" >import moment from 'moment'</span></span></span>
115
+ <span class="cstat-no" title="statement not covered" ></span>
116
+ <span class="cstat-no" title="statement not covered" >export function readAsTimeOrDuration (conf) {</span>
117
117
  <span class="cstat-no" title="statement not covered" > let ret = null</span>
118
118
  <span class="cstat-no" title="statement not covered" > if (typeof conf === 'string') {</span>
119
119
  <span class="cstat-no" title="statement not covered" > if (conf.charAt(0) === 'P') {</span>
@@ -131,8 +131,8 @@ export <span class="fstat-no" title="function not covered" >function readAsTimeO
131
131
  <span class="cstat-no" title="statement not covered" ></span>
132
132
  <span class="cstat-no" title="statement not covered" > return ret</span>
133
133
  <span class="cstat-no" title="statement not covered" >}</span>
134
- &nbsp;
135
- export <span class="fstat-no" title="function not covered" >function makeTime (timeOrDuration, referenceTime) {</span>
134
+ <span class="cstat-no" title="statement not covered" ></span>
135
+ <span class="cstat-no" title="statement not covered" >export function makeTime (timeOrDuration, referenceTime) {</span>
136
136
  <span class="cstat-no" title="statement not covered" > return moment.isDuration(timeOrDuration) ? referenceTime.clone().add(timeOrDuration) : timeOrDuration</span>
137
137
  <span class="cstat-no" title="statement not covered" >}</span>
138
138
  &nbsp;</pre></td></tr></table></pre>
@@ -142,7 +142,7 @@ export <span class="fstat-no" title="function not covered" >function makeTime (t
142
142
  <div class='footer quiet pad2 space-top1 center small'>
143
143
  Code coverage generated by
144
144
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
145
- at 2025-07-24T10:00:20.508Z
145
+ at 2024-08-13T10:02:04.872Z
146
146
  </div>
147
147
  <script src="../../prettify.js"></script>
148
148
  <script>