@kalisio/kdk 2.3.1 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (416) hide show
  1. package/.eslintignore +2 -1
  2. package/.github/workflows/main.yaml +3 -3
  3. package/README.md +1 -0
  4. package/core/api/db.js +6 -1
  5. package/core/api/hooks/hooks.model.js +1 -1
  6. package/core/api/hooks/hooks.schemas.js +0 -2
  7. package/core/api/models/messages.model.mongodb.js +13 -0
  8. package/core/api/services/authorisations/authorisations.service.js +13 -4
  9. package/core/api/services/index.js +19 -0
  10. package/core/api/services/messages/messages.hooks.js +38 -0
  11. package/core/client/api.js +7 -32
  12. package/core/client/capabilities.js +2 -2
  13. package/core/client/components/KActivity.vue +29 -6
  14. package/core/client/components/KContent.vue +2 -2
  15. package/core/client/components/KDialog.vue +4 -7
  16. package/core/client/components/KStamp.vue +3 -9
  17. package/core/client/components/KStore.vue +2 -4
  18. package/core/client/components/KTab.vue +95 -0
  19. package/core/client/components/action/KAction.vue +15 -2
  20. package/core/client/components/action/KBugReportAction.vue +4 -2
  21. package/core/client/components/action/KToggleFullscreenAction.vue +25 -0
  22. package/core/client/components/app/KSettings.vue +17 -13
  23. package/core/client/components/chart/KDataTable.vue +6 -9
  24. package/core/client/components/chart/KTimeSeriesChart.vue +74 -56
  25. package/core/client/components/collection/KBoard.vue +22 -33
  26. package/core/client/components/collection/KCard.vue +71 -56
  27. package/core/client/components/collection/KCardSection.vue +20 -10
  28. package/core/client/components/collection/KDescriptionCardSection.vue +47 -0
  29. package/core/client/components/collection/KGrid.vue +234 -54
  30. package/core/client/components/collection/KScrollDown.vue +97 -0
  31. package/core/client/components/collection/KScrollToTop.vue +93 -0
  32. package/core/client/components/collection/KTable.vue +87 -33
  33. package/core/client/components/collection/KTimeLine.vue +406 -0
  34. package/core/client/components/collection/index.js +1 -5
  35. package/core/client/components/document/KDocument.vue +20 -55
  36. package/core/client/components/document/KHtml.vue +17 -7
  37. package/core/client/components/document/KImage.vue +78 -0
  38. package/core/client/components/document/KMarkdown.vue +12 -16
  39. package/core/client/components/document/KPdf.vue +69 -0
  40. package/core/client/components/form/KFileField.vue +2 -2
  41. package/core/client/components/form/KSelectField.vue +2 -1
  42. package/core/client/components/form/KUnitField.vue +3 -1
  43. package/core/client/components/layout/KFab.vue +9 -10
  44. package/core/client/components/layout/KLayout.vue +104 -6
  45. package/core/client/components/layout/KOpener.vue +14 -19
  46. package/core/client/components/layout/KPage.vue +195 -105
  47. package/core/client/components/layout/KWindow.vue +62 -45
  48. package/core/client/components/layout/index.js +0 -2
  49. package/core/client/components/media/KRibbon.vue +95 -0
  50. package/core/client/components/menu/KMenu.vue +4 -4
  51. package/core/client/components/team/KGroupsActivity.vue +25 -27
  52. package/core/client/components/team/KMembersActivity.vue +21 -23
  53. package/core/client/components/team/KOrganisationsActivity.vue +20 -22
  54. package/core/client/components/team/KTagsActivity.vue +21 -23
  55. package/core/client/components/time/KAbsoluteTimeRange.vue +70 -170
  56. package/core/client/composables/activity.js +14 -12
  57. package/core/client/composables/collection.js +3 -1
  58. package/core/client/composables/counter.js +51 -0
  59. package/core/client/composables/index.js +3 -0
  60. package/core/client/composables/layout.js +13 -2
  61. package/core/client/composables/messages.js +15 -0
  62. package/core/client/composables/pwa.js +1 -1
  63. package/core/client/composables/schema.js +6 -6
  64. package/core/client/composables/screen.js +23 -0
  65. package/core/client/directives/index.js +1 -0
  66. package/core/client/directives/v-hover.js +23 -0
  67. package/core/client/document.js +61 -0
  68. package/core/client/exporter.js +1 -1
  69. package/core/client/filter.js +0 -1
  70. package/core/client/guards.js +1 -1
  71. package/core/client/i18n/core_en.json +14 -8
  72. package/core/client/i18n/core_fr.json +15 -9
  73. package/core/client/index.js +9 -3
  74. package/core/client/layout.js +129 -29
  75. package/core/client/local-storage.js +1 -1
  76. package/core/client/mixins/index.js +0 -1
  77. package/core/client/mixins/mixin.base-activity.js +23 -13
  78. package/core/client/mixins/mixin.base-item.js +6 -3
  79. package/core/client/services/index.js +4 -1
  80. package/core/client/services/local-settings.service.js +4 -0
  81. package/core/client/storage.js +1 -1
  82. package/core/client/store.js +1 -1
  83. package/core/client/template-context.js +17 -0
  84. package/core/client/units.js +49 -27
  85. package/core/client/utils/index.js +3 -2
  86. package/core/client/utils/utils.actions.js +4 -0
  87. package/core/client/utils/utils.colors.js +155 -2
  88. package/core/client/utils/utils.items.js +26 -0
  89. package/core/client/utils/utils.math.js +3 -0
  90. package/core/client/utils/utils.platform.js +3 -1
  91. package/core/client/utils/utils.screen.js +82 -0
  92. package/core/client/utils/utils.time.js +0 -1
  93. package/core/common/schemas/settings.update.json +12 -0
  94. package/coverage/core/api/application.js.html +1 -1
  95. package/coverage/core/api/authentication.js.html +1 -1
  96. package/coverage/core/api/db.js.html +51 -36
  97. package/coverage/core/api/hooks/hooks.authentication.js.html +1 -1
  98. package/coverage/core/api/hooks/hooks.authorisations.js.html +1 -1
  99. package/coverage/core/api/hooks/hooks.groups.js.html +1 -1
  100. package/coverage/core/api/hooks/hooks.logger.js.html +1 -1
  101. package/coverage/core/api/hooks/hooks.model.js.html +2 -2
  102. package/coverage/core/api/hooks/hooks.organisations.js.html +1 -1
  103. package/coverage/core/api/hooks/hooks.push.js.html +1 -1
  104. package/coverage/core/api/hooks/hooks.query.js.html +1 -1
  105. package/coverage/core/api/hooks/hooks.schemas.js.html +6 -12
  106. package/coverage/core/api/hooks/hooks.service.js.html +1 -1
  107. package/coverage/core/api/hooks/hooks.storage.js.html +1 -1
  108. package/coverage/core/api/hooks/hooks.users.js.html +2 -2
  109. package/coverage/core/api/hooks/index.html +10 -10
  110. package/coverage/core/api/hooks/index.js.html +1 -1
  111. package/coverage/core/api/index.html +14 -14
  112. package/coverage/core/api/index.js.html +1 -1
  113. package/coverage/core/api/marshall.js.html +1 -1
  114. package/coverage/core/api/models/groups.model.mongodb.js.html +1 -1
  115. package/coverage/core/api/models/index.html +25 -10
  116. package/coverage/core/api/models/messages.model.mongodb.js.html +121 -0
  117. package/coverage/core/api/models/organisations.model.mongodb.js.html +1 -1
  118. package/coverage/core/api/models/tags.model.mongodb.js.html +1 -1
  119. package/coverage/core/api/models/users.model.mongodb.js.html +1 -1
  120. package/coverage/core/api/services/account/account.hooks.js.html +1 -1
  121. package/coverage/core/api/services/account/account.service.js.html +1 -1
  122. package/coverage/core/api/services/account/index.html +1 -1
  123. package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
  124. package/coverage/core/api/services/authorisations/authorisations.service.js.html +43 -16
  125. package/coverage/core/api/services/authorisations/index.html +19 -19
  126. package/coverage/core/api/services/databases/databases.hooks.js.html +1 -1
  127. package/coverage/core/api/services/databases/databases.service.js.html +1 -1
  128. package/coverage/core/api/services/databases/index.html +1 -1
  129. package/coverage/core/api/services/groups/groups.hooks.js.html +1 -1
  130. package/coverage/core/api/services/groups/index.html +1 -1
  131. package/coverage/core/api/services/import-export/import-export.hooks.js.html +1 -1
  132. package/coverage/core/api/services/import-export/import-export.service.js.html +1 -1
  133. package/coverage/core/api/services/import-export/index.html +1 -1
  134. package/coverage/core/api/services/index.html +19 -19
  135. package/coverage/core/api/services/index.js.html +67 -10
  136. package/coverage/core/api/services/mailer/index.html +1 -1
  137. package/coverage/core/api/services/mailer/mailer.hooks.js.html +1 -1
  138. package/coverage/core/api/services/mailer/mailer.service.js.html +1 -1
  139. package/coverage/core/api/services/messages/index.html +116 -0
  140. package/coverage/core/api/services/messages/messages.hooks.js.html +199 -0
  141. package/coverage/core/api/services/organisations/index.html +1 -1
  142. package/coverage/core/api/services/organisations/organisations.hooks.js.html +1 -1
  143. package/coverage/core/api/services/organisations/organisations.service.js.html +1 -1
  144. package/coverage/core/api/services/push/index.html +1 -1
  145. package/coverage/core/api/services/push/push.hooks.js.html +1 -1
  146. package/coverage/core/api/services/push/push.service.js.html +1 -1
  147. package/coverage/core/api/services/storage/index.html +1 -1
  148. package/coverage/core/api/services/storage/storage.hooks.js.html +1 -1
  149. package/coverage/core/api/services/storage/storage.service.js.html +1 -1
  150. package/coverage/core/api/services/tags/index.html +1 -1
  151. package/coverage/core/api/services/tags/tags.hooks.js.html +1 -1
  152. package/coverage/core/api/services/users/index.html +1 -1
  153. package/coverage/core/api/services/users/users.hooks.js.html +1 -1
  154. package/coverage/core/api/utils.js.html +1 -1
  155. package/coverage/core/common/errors.js.html +1 -1
  156. package/coverage/core/common/index.html +1 -1
  157. package/coverage/core/common/index.js.html +1 -1
  158. package/coverage/core/common/permissions.js.html +1 -1
  159. package/coverage/core/common/schema.js.html +1 -1
  160. package/coverage/core/common/utils.js.html +1 -1
  161. package/coverage/index.html +69 -54
  162. package/coverage/lcov-report/core/api/application.js.html +1 -1
  163. package/coverage/lcov-report/core/api/authentication.js.html +1 -1
  164. package/coverage/lcov-report/core/api/db.js.html +51 -36
  165. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +1 -1
  166. package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +1 -1
  167. package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +1 -1
  168. package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +1 -1
  169. package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +2 -2
  170. package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +1 -1
  171. package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +1 -1
  172. package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +1 -1
  173. package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +6 -12
  174. package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +1 -1
  175. package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +1 -1
  176. package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +2 -2
  177. package/coverage/lcov-report/core/api/hooks/index.html +10 -10
  178. package/coverage/lcov-report/core/api/hooks/index.js.html +1 -1
  179. package/coverage/lcov-report/core/api/index.html +14 -14
  180. package/coverage/lcov-report/core/api/index.js.html +1 -1
  181. package/coverage/lcov-report/core/api/marshall.js.html +1 -1
  182. package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +1 -1
  183. package/coverage/lcov-report/core/api/models/index.html +25 -10
  184. package/coverage/lcov-report/core/api/models/messages.model.mongodb.js.html +121 -0
  185. package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +1 -1
  186. package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +1 -1
  187. package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +1 -1
  188. package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +1 -1
  189. package/coverage/lcov-report/core/api/services/account/account.service.js.html +1 -1
  190. package/coverage/lcov-report/core/api/services/account/index.html +1 -1
  191. package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
  192. package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +43 -16
  193. package/coverage/lcov-report/core/api/services/authorisations/index.html +19 -19
  194. package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +1 -1
  195. package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +1 -1
  196. package/coverage/lcov-report/core/api/services/databases/index.html +1 -1
  197. package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +1 -1
  198. package/coverage/lcov-report/core/api/services/groups/index.html +1 -1
  199. package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +1 -1
  200. package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +1 -1
  201. package/coverage/lcov-report/core/api/services/import-export/index.html +1 -1
  202. package/coverage/lcov-report/core/api/services/index.html +19 -19
  203. package/coverage/lcov-report/core/api/services/index.js.html +67 -10
  204. package/coverage/lcov-report/core/api/services/mailer/index.html +1 -1
  205. package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +1 -1
  206. package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +1 -1
  207. package/coverage/lcov-report/core/api/services/messages/index.html +116 -0
  208. package/coverage/lcov-report/core/api/services/messages/messages.hooks.js.html +199 -0
  209. package/coverage/lcov-report/core/api/services/organisations/index.html +1 -1
  210. package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +1 -1
  211. package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +1 -1
  212. package/coverage/lcov-report/core/api/services/push/index.html +1 -1
  213. package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +1 -1
  214. package/coverage/lcov-report/core/api/services/push/push.service.js.html +1 -1
  215. package/coverage/lcov-report/core/api/services/storage/index.html +1 -1
  216. package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +1 -1
  217. package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +1 -1
  218. package/coverage/lcov-report/core/api/services/tags/index.html +1 -1
  219. package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +1 -1
  220. package/coverage/lcov-report/core/api/services/users/index.html +1 -1
  221. package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +1 -1
  222. package/coverage/lcov-report/core/api/utils.js.html +1 -1
  223. package/coverage/lcov-report/core/common/errors.js.html +1 -1
  224. package/coverage/lcov-report/core/common/index.html +1 -1
  225. package/coverage/lcov-report/core/common/index.js.html +1 -1
  226. package/coverage/lcov-report/core/common/permissions.js.html +1 -1
  227. package/coverage/lcov-report/core/common/schema.js.html +1 -1
  228. package/coverage/lcov-report/core/common/utils.js.html +1 -1
  229. package/coverage/lcov-report/index.html +69 -54
  230. package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +1 -1
  231. package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +1 -1
  232. package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +1 -1
  233. package/coverage/lcov-report/map/api/hooks/index.html +1 -1
  234. package/coverage/lcov-report/map/api/hooks/index.js.html +1 -1
  235. package/coverage/lcov-report/map/api/index.html +1 -1
  236. package/coverage/lcov-report/map/api/index.js.html +1 -1
  237. package/coverage/lcov-report/map/api/marshall.js.html +1 -1
  238. package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +1 -1
  239. package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +1 -1
  240. package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +1 -1
  241. package/coverage/lcov-report/map/api/models/index.html +1 -1
  242. package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +1 -1
  243. package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +1 -1
  244. package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +1 -1
  245. package/coverage/lcov-report/map/api/services/alerts/index.html +1 -1
  246. package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +9 -15
  247. package/coverage/lcov-report/map/api/services/catalog/index.html +5 -5
  248. package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
  249. package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
  250. package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +2 -2
  251. package/coverage/lcov-report/map/api/services/features/features.service.js.html +1 -1
  252. package/coverage/lcov-report/map/api/services/features/index.html +1 -1
  253. package/coverage/lcov-report/map/api/services/index.html +1 -1
  254. package/coverage/lcov-report/map/api/services/index.js.html +1 -1
  255. package/coverage/lcov-report/map/api/services/projects/index.html +1 -1
  256. package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +1 -1
  257. package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +1 -1
  258. package/coverage/lcov-report/map/common/errors.js.html +1 -1
  259. package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +1 -1
  260. package/coverage/lcov-report/map/common/grid.js.html +1 -1
  261. package/coverage/lcov-report/map/common/index.html +1 -1
  262. package/coverage/lcov-report/map/common/index.js.html +1 -1
  263. package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +1 -1
  264. package/coverage/lcov-report/map/common/moment-utils.js.html +1 -1
  265. package/coverage/lcov-report/map/common/opendap-grid-source.js.html +1 -1
  266. package/coverage/lcov-report/map/common/opendap-utils.js.html +1 -1
  267. package/coverage/lcov-report/map/common/permissions.js.html +1 -1
  268. package/coverage/lcov-report/map/common/time-based-grid-source.js.html +1 -1
  269. package/coverage/lcov-report/map/common/tms-utils.js.html +1 -1
  270. package/coverage/lcov-report/map/common/wcs-grid-source.js.html +1 -1
  271. package/coverage/lcov-report/map/common/wcs-utils.js.html +1 -1
  272. package/coverage/lcov-report/map/common/weacast-grid-source.js.html +1 -1
  273. package/coverage/lcov-report/map/common/wfs-utils.js.html +1 -1
  274. package/coverage/lcov-report/map/common/wms-utils.js.html +1 -1
  275. package/coverage/lcov-report/map/common/wmts-utils.js.html +1 -1
  276. package/coverage/lcov.info +487 -370
  277. package/coverage/map/api/hooks/hooks.catalog.js.html +1 -1
  278. package/coverage/map/api/hooks/hooks.features.js.html +1 -1
  279. package/coverage/map/api/hooks/hooks.query.js.html +1 -1
  280. package/coverage/map/api/hooks/index.html +1 -1
  281. package/coverage/map/api/hooks/index.js.html +1 -1
  282. package/coverage/map/api/index.html +1 -1
  283. package/coverage/map/api/index.js.html +1 -1
  284. package/coverage/map/api/marshall.js.html +1 -1
  285. package/coverage/map/api/models/alerts.model.mongodb.js.html +1 -1
  286. package/coverage/map/api/models/catalog.model.mongodb.js.html +1 -1
  287. package/coverage/map/api/models/features.model.mongodb.js.html +1 -1
  288. package/coverage/map/api/models/index.html +1 -1
  289. package/coverage/map/api/models/projects.model.mongodb.js.html +1 -1
  290. package/coverage/map/api/services/alerts/alerts.hooks.js.html +1 -1
  291. package/coverage/map/api/services/alerts/alerts.service.js.html +1 -1
  292. package/coverage/map/api/services/alerts/index.html +1 -1
  293. package/coverage/map/api/services/catalog/catalog.hooks.js.html +9 -15
  294. package/coverage/map/api/services/catalog/index.html +5 -5
  295. package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
  296. package/coverage/map/api/services/daptiles/index.html +1 -1
  297. package/coverage/map/api/services/features/features.hooks.js.html +2 -2
  298. package/coverage/map/api/services/features/features.service.js.html +1 -1
  299. package/coverage/map/api/services/features/index.html +1 -1
  300. package/coverage/map/api/services/index.html +1 -1
  301. package/coverage/map/api/services/index.js.html +1 -1
  302. package/coverage/map/api/services/projects/index.html +1 -1
  303. package/coverage/map/api/services/projects/projects.hooks.js.html +1 -1
  304. package/coverage/map/common/dynamic-grid-source.js.html +1 -1
  305. package/coverage/map/common/errors.js.html +1 -1
  306. package/coverage/map/common/geotiff-grid-source.js.html +1 -1
  307. package/coverage/map/common/grid.js.html +1 -1
  308. package/coverage/map/common/index.html +1 -1
  309. package/coverage/map/common/index.js.html +1 -1
  310. package/coverage/map/common/meteo-model-grid-source.js.html +1 -1
  311. package/coverage/map/common/moment-utils.js.html +1 -1
  312. package/coverage/map/common/opendap-grid-source.js.html +1 -1
  313. package/coverage/map/common/opendap-utils.js.html +1 -1
  314. package/coverage/map/common/permissions.js.html +1 -1
  315. package/coverage/map/common/time-based-grid-source.js.html +1 -1
  316. package/coverage/map/common/tms-utils.js.html +1 -1
  317. package/coverage/map/common/wcs-grid-source.js.html +1 -1
  318. package/coverage/map/common/wcs-utils.js.html +1 -1
  319. package/coverage/map/common/weacast-grid-source.js.html +1 -1
  320. package/coverage/map/common/wfs-utils.js.html +1 -1
  321. package/coverage/map/common/wms-utils.js.html +1 -1
  322. package/coverage/map/common/wmts-utils.js.html +1 -1
  323. package/coverage/tmp/coverage-280506-1731704745613-0.json +1 -0
  324. package/coverage/tmp/coverage-280518-1731704745599-0.json +1 -0
  325. package/coverage/tmp/coverage-280529-1731704745588-0.json +1 -0
  326. package/coverage/tmp/{coverage-137470-1719398750728-0.json → coverage-280541-1731704745574-0.json} +1 -1
  327. package/coverage/tmp/{coverage-137477-1719398750691-0.json → coverage-280548-1731704745545-0.json} +1 -1
  328. package/extras/css/core.variables.scss +32 -8
  329. package/extras/icons/attribution.png +0 -0
  330. package/map/api/services/catalog/catalog.hooks.js +5 -7
  331. package/map/api/services/features/features.hooks.js +1 -1
  332. package/map/client/cesium/utils/utils.style.js +11 -2
  333. package/map/client/components/KAttribution.vue +108 -0
  334. package/map/client/components/KPositionIndicator.vue +11 -18
  335. package/map/client/components/KProjectMenu.vue +4 -4
  336. package/map/client/components/catalog/KCategoryItem.vue +74 -0
  337. package/map/client/components/catalog/KLayerCategories.vue +24 -12
  338. package/map/client/components/catalog/KLayersPanel.vue +139 -116
  339. package/map/client/components/catalog/KProjectSelector.vue +29 -17
  340. package/map/client/components/catalog/KProjectsPanel.vue +19 -35
  341. package/map/client/components/catalog/KViewSelector.vue +37 -25
  342. package/map/client/components/catalog/KViewsPanel.vue +19 -35
  343. package/map/client/components/form/KLocationField.vue +1 -2
  344. package/map/client/components/legend/KLegend.vue +34 -34
  345. package/map/client/components/location/KLocationCardSection.vue +18 -22
  346. package/map/client/components/location/KLocationMap.vue +36 -38
  347. package/map/client/components/location/KLocationTimeLineCard.vue +147 -0
  348. package/map/client/components/location/KLocationTip.vue +12 -2
  349. package/map/client/components/widget/KInformationBox.vue +0 -4
  350. package/map/client/components/widget/KStackableTimeSeries.vue +8 -1
  351. package/map/client/components/widget/KTimeSeries.vue +1 -1
  352. package/map/client/composables/highlight.js +29 -31
  353. package/map/client/composables/probe.js +7 -3
  354. package/map/client/composables/weather.js +71 -31
  355. package/map/client/i18n/map_en.json +3 -0
  356. package/map/client/i18n/map_fr.json +3 -0
  357. package/map/client/init.js +4 -3
  358. package/map/client/leaflet/ShapeMarker.js +1 -1
  359. package/map/client/leaflet/utils/utils.events.js +1 -1
  360. package/map/client/leaflet/utils/utils.style.js +20 -8
  361. package/map/client/mixins/globe/mixin.base-globe.js +111 -13
  362. package/map/client/mixins/globe/mixin.file-layers.js +10 -10
  363. package/map/client/mixins/globe/mixin.geojson-layers.js +90 -15
  364. package/map/client/mixins/globe/mixin.style.js +2 -0
  365. package/map/client/mixins/index.js +0 -1
  366. package/map/client/mixins/map/index.js +1 -0
  367. package/map/client/mixins/map/mixin.base-map.js +21 -2
  368. package/map/client/mixins/map/mixin.canvas-layers.js +7 -2
  369. package/map/client/mixins/map/mixin.edit-layers.js +12 -4
  370. package/map/client/mixins/map/mixin.file-layers.js +3 -0
  371. package/map/client/mixins/map/mixin.geojson-layers.js +90 -5
  372. package/map/client/mixins/map/mixin.pmtiles-layers.js +106 -0
  373. package/map/client/mixins/mixin.activity.js +8 -3
  374. package/map/client/mixins/mixin.feature-service.js +73 -32
  375. package/map/client/mixins/mixin.levels.js +1 -0
  376. package/map/client/mixins/mixin.weacast.js +10 -87
  377. package/map/client/utils/index.js +1 -0
  378. package/map/client/utils/utils.capture.js +1 -1
  379. package/map/client/utils/utils.catalog.js +7 -7
  380. package/map/client/utils/utils.features.js +59 -1
  381. package/map/client/utils/utils.layers.js +8 -0
  382. package/map/client/utils/utils.time-series.js +121 -0
  383. package/map/client/utils/utils.weacast.js +102 -0
  384. package/package.json +6 -6
  385. package/scripts/init_runner.sh +2 -2
  386. package/scripts/kash/CHANGELOG.md +12 -0
  387. package/scripts/kash/README.md +2 -0
  388. package/scripts/kash/kash.sh +34 -32
  389. package/scripts/run_tests.sh +2 -2
  390. package/scripts/setup_workspace.sh +24 -6
  391. package/test/api/core/hooks.test.js +6 -3
  392. package/test/api/core/test-log-2024-07-09.log +0 -0
  393. package/test/api/core/test-log-2024-08-13.log +69 -0
  394. package/test/api/core/test-log-2024-10-28.log +53 -0
  395. package/test/api/core/test-log-2024-11-05.log +30 -0
  396. package/test/api/core/test-log-2024-11-15.log +23 -0
  397. package/test/api/map/alerts.test.js +3 -1
  398. package/test/api/map/config/layers.json +3 -1
  399. package/test/api/map/index.test.js +18 -1
  400. package/test/api/map/test-log-2024-08-13.log +13 -0
  401. package/test/api/map/test-log-2024-08-20.log +55 -0
  402. package/test/api/map/test-log-2024-09-09.log +92 -0
  403. package/test/api/map/test-log-2024-10-28.log +11 -0
  404. package/test/client/core/utils.js +13 -0
  405. package/test/client/map/api.js +34 -0
  406. package/test/client/map/catalog.js +6 -2
  407. package/test/client/map/index.js +1 -0
  408. package/test/client/map/utils.js +4 -2
  409. package/core/client/components/collection/KList.vue +0 -135
  410. package/core/client/components/layout/KPageSticky.vue +0 -53
  411. package/core/client/mixins/mixin.base-collection.js +0 -162
  412. package/core/client/utils/utils.data.js +0 -22
  413. package/coverage/tmp/coverage-137435-1719398750767-0.json +0 -1
  414. package/coverage/tmp/coverage-137447-1719398750752-0.json +0 -1
  415. package/coverage/tmp/coverage-137458-1719398750740-0.json +0 -1
  416. package/map/client/mixins/mixin.catalog-panel.js +0 -26
@@ -1,53 +0,0 @@
1
- <template>
2
- <q-page-sticky
3
- v-if="hasContent"
4
- class="k-sticky"
5
- :position="position"
6
- :offset="offset"
7
- >
8
- <KContent
9
- v-bind="$props"
10
- />
11
- </q-page-sticky>
12
- </template>
13
-
14
- <script setup>
15
- import _ from 'lodash'
16
- import { computed } from 'vue'
17
- import KContent from '../KContent.vue'
18
-
19
- // Props
20
- const props = defineProps({
21
- position: {
22
- type: String,
23
- required: true
24
- },
25
- offset: {
26
- type: Array,
27
- default: () => [0, 0]
28
- },
29
- content: {
30
- type: [Object, Array],
31
- default: () => null
32
- },
33
- mode: {
34
- type: String,
35
- default: undefined
36
- },
37
- context: {
38
- type: Object,
39
- default: () => null
40
- }
41
- })
42
-
43
- // Computed
44
- const hasContent = computed(() => {
45
- return !_.isEmpty(props.content)
46
- })
47
- </script>
48
-
49
- <style lang="scss" scoped>
50
- .k-sticky {
51
- z-index: $sticky-z-index;
52
- }
53
- </style>
@@ -1,162 +0,0 @@
1
- import _ from 'lodash'
2
- import logger from 'loglevel'
3
- import { getLocale } from '../utils/utils.locale.js'
4
-
5
- export const baseCollection = {
6
- emits: [
7
- 'collection-refreshed',
8
- 'selection-changed',
9
- 'item-toggled'
10
- ],
11
- props: {
12
- // This value can be overriden in activities if they want to manage pagination by themselves
13
- // nbItemsPerPage = 0 means that the client does not handle pagination and server defaults will be used
14
- nbItemsPerPage: {
15
- type: Number,
16
- default: 12
17
- },
18
- // This value indicate if items of each page replace or are appended to previous ones
19
- appendItems: {
20
- type: Boolean,
21
- default: false
22
- },
23
- // Only invoke refresh at most once per every refreshThrottle milliseconds
24
- refreshThrottle: {
25
- type: Number,
26
- default: 500
27
- }
28
- },
29
- computed: {
30
- nbPages () {
31
- return (this.nbItemsPerPage > 0 ? Math.ceil(this.nbTotalItems / this.nbItemsPerPage) : 1)
32
- }
33
- },
34
- data () {
35
- return {
36
- items: [],
37
- nbTotalItems: 0,
38
- currentPage: 1
39
- }
40
- },
41
- methods: {
42
- subscribe (query) {
43
- // Remove previous listener if any
44
- this.unsubscribe()
45
- this.itemListener = this.getService().watch({ listStrategy: this.listStrategy || 'smart' })
46
- .find({ query })
47
- .subscribe(response => {
48
- // Manage GeoJson features collection as well
49
- if (response.type === 'FeatureCollection') {
50
- this.items = response.features
51
- } else if (this.appendItems) {
52
- // Append the response ensuring there is no duplicates
53
- this.items = _.unionBy(response.data, this.items, '_id')
54
- // We keep order from the updated list as depending on the sorting criteria a new item might have to be pushed on top of current items
55
- const sortQuery = _.get(this.getCollectionBaseQuery(), '$sort')
56
- if (sortQuery) {
57
- // By default orderBy is case sensitive while using collation we want to perform case insensitive sort
58
- this.items = _.orderBy(this.items,
59
- // Sort function for each sort property
60
- _.map(_.keys(sortQuery), property => {
61
- return item => {
62
- const value = _.get(item, property)
63
- return (typeof value === 'string' ? value.toLowerCase() : value)
64
- }
65
- }),
66
- // Sort order for each sort property
67
- _.map(_.values(sortQuery), value => { return value > 0 ? 'asc' : 'desc' }))
68
- }
69
- } else {
70
- this.items = response.data
71
- }
72
- this.nbTotalItems = response.total
73
- this.onCollectionRefreshed()
74
- }, error => {
75
- logger.error(error)
76
- })
77
- },
78
- unsubscribe () {
79
- if (this.itemListener) {
80
- this.itemListener.unsubscribe()
81
- this.itemListener = null
82
- }
83
- },
84
- getCollectionBaseQuery () {
85
- // This method should be overriden in collections
86
- return {}
87
- },
88
- getCollectionFilterQuery () {
89
- // This method should be overriden in collections
90
- return {}
91
- },
92
- getCollectionPaginationQuery () {
93
- // This method can be overriden in collections
94
- if (this.nbItemsPerPage > 0) {
95
- return {
96
- $limit: this.nbItemsPerPage,
97
- $skip: (this.currentPage - 1) * this.nbItemsPerPage
98
- }
99
- } else return {}
100
- },
101
- resetCollection () {
102
- // Reset pagination and start again refreshing the collection
103
- this.items = []
104
- this.currentPage = 1
105
- this.refreshCollection()
106
- },
107
- onPageChanged () {
108
- this.refreshCollection()
109
- },
110
- onItemToggled (item, toggled) {
111
- this.$emit('item-toggled', item, toggled)
112
- },
113
- onItemSelected (item, section) {
114
- this.$emit('selection-changed', item, section)
115
- },
116
- onItemsSelected (items) {
117
- this.$emit('selection-changed', items)
118
- },
119
- onCollectionRefreshed () {
120
- this.$emit('collection-refreshed', this.items)
121
- },
122
- onItemsUpdated (items) {
123
- // When we append items some items of the previous pages might have been updated.
124
- // In this case we need to reset the full collection as Rx only tracks changes on the current page
125
- let updatedItems = (Array.isArray(items) ? items : [items])
126
- // We keep order from the updated list as depending on the sorting criteria a new item might have to be pushed on top of current items
127
- updatedItems = _.intersectionWith(this.items, updatedItems, (item1, item2) => (item1._id.toString() === item2._id.toString()))
128
- if (updatedItems.length > 0) this.resetCollection()
129
- }
130
- },
131
- created () {
132
- // Avoid initiating too much request as the same time, this might be the case
133
- // when async UI components update simultaneously the base/filter query
134
- // see https://github.com/kalisio/kdk/issues/432
135
- const refreshCollection = () => {
136
- // Add locale to perform sorting (i.e. collation) correctly w.r.t. user's language
137
- const fullQuery = Object.assign({ $locale: getLocale() },
138
- this.getCollectionBaseQuery(),
139
- this.getCollectionFilterQuery(),
140
- this.getCollectionPaginationQuery())
141
- // Find the desired items
142
- this.subscribe(fullQuery)
143
- }
144
- this.refreshCollection = _.throttle(refreshCollection, this.refreshThrottle, { leading: false })
145
-
146
- if (this.appendItems) {
147
- const service = this.getService()
148
- service.on('patched', this.onItemsUpdated)
149
- service.on('updated', this.onItemsUpdated)
150
- service.on('removed', this.onItemsUpdated)
151
- }
152
- },
153
- beforeUnmount () {
154
- this.unsubscribe()
155
- if (this.appendItems) {
156
- const service = this.getService()
157
- service.off('patched', this.onItemsUpdated)
158
- service.off('updated', this.onItemsUpdated)
159
- service.off('removed', this.onItemsUpdated)
160
- }
161
- }
162
- }
@@ -1,22 +0,0 @@
1
- import _ from 'lodash'
2
- import { Units } from '../units.js'
3
-
4
- export function convertData (data, valuePaths, sourceUnit, targetUnit) {
5
- if (!Array.isArray(valuePaths)) valuePaths = [valuePaths]
6
- _.forEach(data, document => {
7
- _.forEach(valuePaths, valuePath => {
8
- const value = _.get(document, valuePath)
9
- if (value) _.set(document, valuePath, Units.convert(value, sourceUnit, targetUnit))
10
- })
11
- })
12
- }
13
-
14
- export function convertTimeSerie (data, variable, valuePaths) {
15
- if (!Array.isArray(valuePaths)) valuePaths = [valuePaths]
16
- const unit = variable.unit
17
- if (unit) {
18
- const targetUnit = Units.getDefaultUnit(unit)
19
- convertData(data, valuePaths, unit, targetUnit)
20
- variable.unit = targetUnit
21
- }
22
- }