@kalisio/kdk 2.2.2 → 2.3.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 (386) hide show
  1. package/.eslintignore +1 -0
  2. package/.github/workflows/main.yaml +67 -0
  3. package/.gitmodules +3 -0
  4. package/README.md +1 -2
  5. package/core/api/hooks/hooks.query.js +15 -2
  6. package/core/api/marshall.js +35 -4
  7. package/core/client/api.js +1 -1
  8. package/core/client/components/KActivity.vue +73 -0
  9. package/core/client/components/KContent.vue +1 -1
  10. package/core/client/components/KSponsor.vue +2 -13
  11. package/core/client/components/account/KDeleteAccountManager.vue +1 -1
  12. package/core/client/components/account/KPasswordManager.vue +1 -1
  13. package/core/client/components/action/KAction.vue +294 -0
  14. package/core/client/components/action/KBugReportAction.vue +37 -0
  15. package/core/client/components/action/index.js +7 -0
  16. package/core/client/components/app/KAbout.vue +16 -63
  17. package/core/client/components/app/KPlatform.vue +1 -1
  18. package/core/client/components/app/KSettings.vue +14 -14
  19. package/core/client/components/app/KTour.vue +6 -8
  20. package/core/client/components/app/KWelcome.vue +1 -1
  21. package/core/client/components/app/index.js +4 -0
  22. package/core/client/components/chart/KDataTable.vue +40 -25
  23. package/core/client/components/chart/KTimeSeriesChart.vue +20 -12
  24. package/core/client/components/collection/KCard.vue +1 -1
  25. package/core/client/components/collection/KColumn.vue +1 -1
  26. package/core/client/components/collection/KFilter.vue +6 -1
  27. package/core/client/components/document/KDocument.vue +83 -0
  28. package/core/client/components/document/KHtml.vue +23 -0
  29. package/core/client/components/document/KMarkdown.vue +37 -0
  30. package/core/client/components/document/index.js +9 -0
  31. package/core/client/components/form/KForm.vue +5 -1
  32. package/core/client/components/form/KSelectField.vue +1 -1
  33. package/core/client/components/index.js +1 -4
  34. package/core/client/components/input/KOptionsChooser.vue +1 -1
  35. package/core/client/components/layout/KFab.vue +1 -1
  36. package/core/client/components/layout/KPage.vue +3 -2
  37. package/core/client/components/layout/KWindow.vue +1 -1
  38. package/core/client/components/media/KColorScale.vue +16 -6
  39. package/core/client/components/screen/KLoginScreen.vue +1 -1
  40. package/core/client/components/screen/KRegisterScreen.vue +1 -1
  41. package/core/client/components/team/KAddMember.vue +7 -7
  42. package/core/client/components/team/KGroupCard.vue +1 -1
  43. package/core/client/components/team/KMemberFilter.vue +1 -1
  44. package/core/client/components/team/KTagCard.vue +1 -1
  45. package/core/client/components/time/KRelativeTimeRanges.vue +1 -1
  46. package/core/client/components/time/KTimeControl.vue +1 -0
  47. package/core/client/components/tool/KExportTool.vue +1 -1
  48. package/core/client/composables/collection.js +1 -1
  49. package/core/client/composables/index.js +1 -0
  50. package/core/client/composables/layout.js +50 -0
  51. package/core/client/composables/session.js +6 -0
  52. package/core/client/filter.js +9 -6
  53. package/core/client/guards.js +29 -6
  54. package/core/client/i18n/core_en.json +1 -1
  55. package/core/client/i18n/core_fr.json +1 -1
  56. package/core/client/i18n.js +14 -0
  57. package/core/client/layout.js +25 -14
  58. package/core/client/mixins/mixin.base-activity.js +16 -0
  59. package/core/client/services/index.js +27 -26
  60. package/core/client/services/local-settings.service.js +2 -3
  61. package/core/client/units.js +6 -1
  62. package/core/client/utils/index.js +3 -0
  63. package/core/client/utils/utils.actions.js +93 -0
  64. package/core/client/utils/utils.colors.js +1 -1
  65. package/core/client/utils/utils.data.js +22 -0
  66. package/core/client/utils/utils.shapes.js +16 -6
  67. package/coverage/base.css +224 -0
  68. package/coverage/block-navigation.js +87 -0
  69. package/coverage/core/api/application.js.html +1870 -0
  70. package/coverage/core/api/authentication.js.html +742 -0
  71. package/coverage/core/api/db.js.html +778 -0
  72. package/coverage/core/api/hooks/hooks.authentication.js.html +313 -0
  73. package/coverage/core/api/hooks/hooks.authorisations.js.html +1243 -0
  74. package/coverage/core/api/hooks/hooks.groups.js.html +229 -0
  75. package/coverage/core/api/hooks/hooks.logger.js.html +163 -0
  76. package/coverage/core/api/hooks/hooks.model.js.html +955 -0
  77. package/coverage/core/api/hooks/hooks.organisations.js.html +541 -0
  78. package/coverage/core/api/hooks/hooks.push.js.html +253 -0
  79. package/coverage/core/api/hooks/hooks.query.js.html +862 -0
  80. package/coverage/core/api/hooks/hooks.schemas.js.html +304 -0
  81. package/coverage/core/api/hooks/hooks.service.js.html +319 -0
  82. package/coverage/core/api/hooks/hooks.storage.js.html +193 -0
  83. package/coverage/core/api/hooks/hooks.users.js.html +868 -0
  84. package/coverage/core/api/hooks/index.html +296 -0
  85. package/coverage/core/api/hooks/index.js.html +121 -0
  86. package/coverage/core/api/index.html +191 -0
  87. package/coverage/core/api/index.js.html +148 -0
  88. package/coverage/core/api/marshall.js.html +448 -0
  89. package/coverage/core/api/models/groups.model.mongodb.js.html +109 -0
  90. package/coverage/core/api/models/index.html +161 -0
  91. package/coverage/core/api/models/organisations.model.mongodb.js.html +94 -0
  92. package/coverage/core/api/models/tags.model.mongodb.js.html +115 -0
  93. package/coverage/core/api/models/users.model.mongodb.js.html +115 -0
  94. package/coverage/core/api/services/account/account.hooks.js.html +208 -0
  95. package/coverage/core/api/services/account/account.service.js.html +436 -0
  96. package/coverage/core/api/services/account/index.html +131 -0
  97. package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +184 -0
  98. package/coverage/core/api/services/authorisations/authorisations.service.js.html +502 -0
  99. package/coverage/core/api/services/authorisations/index.html +131 -0
  100. package/coverage/core/api/services/databases/databases.hooks.js.html +193 -0
  101. package/coverage/core/api/services/databases/databases.service.js.html +100 -0
  102. package/coverage/core/api/services/databases/index.html +131 -0
  103. package/coverage/core/api/services/groups/groups.hooks.js.html +178 -0
  104. package/coverage/core/api/services/groups/index.html +116 -0
  105. package/coverage/core/api/services/import-export/import-export.hooks.js.html +184 -0
  106. package/coverage/core/api/services/import-export/import-export.service.js.html +118 -0
  107. package/coverage/core/api/services/import-export/index.html +131 -0
  108. package/coverage/core/api/services/index.html +116 -0
  109. package/coverage/core/api/services/index.js.html +499 -0
  110. package/coverage/core/api/services/mailer/index.html +131 -0
  111. package/coverage/core/api/services/mailer/mailer.hooks.js.html +190 -0
  112. package/coverage/core/api/services/mailer/mailer.service.js.html +118 -0
  113. package/coverage/core/api/services/organisations/index.html +131 -0
  114. package/coverage/core/api/services/organisations/organisations.hooks.js.html +178 -0
  115. package/coverage/core/api/services/organisations/organisations.service.js.html +343 -0
  116. package/coverage/core/api/services/push/index.html +131 -0
  117. package/coverage/core/api/services/push/push.hooks.js.html +190 -0
  118. package/coverage/core/api/services/push/push.service.js.html +121 -0
  119. package/coverage/core/api/services/storage/index.html +131 -0
  120. package/coverage/core/api/services/storage/storage.hooks.js.html +190 -0
  121. package/coverage/core/api/services/storage/storage.service.js.html +172 -0
  122. package/coverage/core/api/services/tags/index.html +116 -0
  123. package/coverage/core/api/services/tags/tags.hooks.js.html +178 -0
  124. package/coverage/core/api/services/users/index.html +116 -0
  125. package/coverage/core/api/services/users/users.hooks.js.html +307 -0
  126. package/coverage/core/api/utils.js.html +118 -0
  127. package/coverage/core/common/errors.js.html +88 -0
  128. package/coverage/core/common/index.html +176 -0
  129. package/coverage/core/common/index.js.html +115 -0
  130. package/coverage/core/common/permissions.js.html +1048 -0
  131. package/coverage/core/common/schema.js.html +190 -0
  132. package/coverage/core/common/utils.js.html +220 -0
  133. package/coverage/favicon.png +0 -0
  134. package/coverage/index.html +491 -0
  135. package/coverage/lcov-report/base.css +224 -0
  136. package/coverage/lcov-report/block-navigation.js +87 -0
  137. package/coverage/lcov-report/core/api/application.js.html +1870 -0
  138. package/coverage/lcov-report/core/api/authentication.js.html +742 -0
  139. package/coverage/lcov-report/core/api/db.js.html +778 -0
  140. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +313 -0
  141. package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +1243 -0
  142. package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +229 -0
  143. package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +163 -0
  144. package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +955 -0
  145. package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +541 -0
  146. package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +253 -0
  147. package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +862 -0
  148. package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +304 -0
  149. package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +319 -0
  150. package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +193 -0
  151. package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +868 -0
  152. package/coverage/lcov-report/core/api/hooks/index.html +296 -0
  153. package/coverage/lcov-report/core/api/hooks/index.js.html +121 -0
  154. package/coverage/lcov-report/core/api/index.html +191 -0
  155. package/coverage/lcov-report/core/api/index.js.html +148 -0
  156. package/coverage/lcov-report/core/api/marshall.js.html +448 -0
  157. package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +109 -0
  158. package/coverage/lcov-report/core/api/models/index.html +161 -0
  159. package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +94 -0
  160. package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +115 -0
  161. package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +115 -0
  162. package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +208 -0
  163. package/coverage/lcov-report/core/api/services/account/account.service.js.html +436 -0
  164. package/coverage/lcov-report/core/api/services/account/index.html +131 -0
  165. package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +184 -0
  166. package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +502 -0
  167. package/coverage/lcov-report/core/api/services/authorisations/index.html +131 -0
  168. package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +193 -0
  169. package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +100 -0
  170. package/coverage/lcov-report/core/api/services/databases/index.html +131 -0
  171. package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +178 -0
  172. package/coverage/lcov-report/core/api/services/groups/index.html +116 -0
  173. package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +184 -0
  174. package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +118 -0
  175. package/coverage/lcov-report/core/api/services/import-export/index.html +131 -0
  176. package/coverage/lcov-report/core/api/services/index.html +116 -0
  177. package/coverage/lcov-report/core/api/services/index.js.html +499 -0
  178. package/coverage/lcov-report/core/api/services/mailer/index.html +131 -0
  179. package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +190 -0
  180. package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +118 -0
  181. package/coverage/lcov-report/core/api/services/organisations/index.html +131 -0
  182. package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +178 -0
  183. package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +343 -0
  184. package/coverage/lcov-report/core/api/services/push/index.html +131 -0
  185. package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +190 -0
  186. package/coverage/lcov-report/core/api/services/push/push.service.js.html +121 -0
  187. package/coverage/lcov-report/core/api/services/storage/index.html +131 -0
  188. package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +190 -0
  189. package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +172 -0
  190. package/coverage/lcov-report/core/api/services/tags/index.html +116 -0
  191. package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +178 -0
  192. package/coverage/lcov-report/core/api/services/users/index.html +116 -0
  193. package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +307 -0
  194. package/coverage/lcov-report/core/api/utils.js.html +118 -0
  195. package/coverage/lcov-report/core/common/errors.js.html +88 -0
  196. package/coverage/lcov-report/core/common/index.html +176 -0
  197. package/coverage/lcov-report/core/common/index.js.html +115 -0
  198. package/coverage/lcov-report/core/common/permissions.js.html +1048 -0
  199. package/coverage/lcov-report/core/common/schema.js.html +190 -0
  200. package/coverage/lcov-report/core/common/utils.js.html +220 -0
  201. package/coverage/lcov-report/favicon.png +0 -0
  202. package/coverage/lcov-report/index.html +491 -0
  203. package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +457 -0
  204. package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +397 -0
  205. package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +1309 -0
  206. package/coverage/lcov-report/map/api/hooks/index.html +161 -0
  207. package/coverage/lcov-report/map/api/hooks/index.js.html +94 -0
  208. package/coverage/lcov-report/map/api/index.html +131 -0
  209. package/coverage/lcov-report/map/api/index.js.html +139 -0
  210. package/coverage/lcov-report/map/api/marshall.js.html +178 -0
  211. package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +106 -0
  212. package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +127 -0
  213. package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +196 -0
  214. package/coverage/lcov-report/map/api/models/index.html +161 -0
  215. package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +109 -0
  216. package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +274 -0
  217. package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +610 -0
  218. package/coverage/lcov-report/map/api/services/alerts/index.html +131 -0
  219. package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +316 -0
  220. package/coverage/lcov-report/map/api/services/catalog/index.html +116 -0
  221. package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1510 -0
  222. package/coverage/lcov-report/map/api/services/daptiles/index.html +116 -0
  223. package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +241 -0
  224. package/coverage/lcov-report/map/api/services/features/features.service.js.html +241 -0
  225. package/coverage/lcov-report/map/api/services/features/index.html +131 -0
  226. package/coverage/lcov-report/map/api/services/index.html +116 -0
  227. package/coverage/lcov-report/map/api/services/index.js.html +817 -0
  228. package/coverage/lcov-report/map/api/services/projects/index.html +116 -0
  229. package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +439 -0
  230. package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +466 -0
  231. package/coverage/lcov-report/map/common/errors.js.html +94 -0
  232. package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +541 -0
  233. package/coverage/lcov-report/map/common/grid.js.html +1612 -0
  234. package/coverage/lcov-report/map/common/index.html +371 -0
  235. package/coverage/lcov-report/map/common/index.js.html +172 -0
  236. package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +556 -0
  237. package/coverage/lcov-report/map/common/moment-utils.js.html +157 -0
  238. package/coverage/lcov-report/map/common/opendap-grid-source.js.html +868 -0
  239. package/coverage/lcov-report/map/common/opendap-utils.js.html +826 -0
  240. package/coverage/lcov-report/map/common/permissions.js.html +124 -0
  241. package/coverage/lcov-report/map/common/time-based-grid-source.js.html +418 -0
  242. package/coverage/lcov-report/map/common/tms-utils.js.html +274 -0
  243. package/coverage/lcov-report/map/common/wcs-grid-source.js.html +364 -0
  244. package/coverage/lcov-report/map/common/wcs-utils.js.html +586 -0
  245. package/coverage/lcov-report/map/common/weacast-grid-source.js.html +1033 -0
  246. package/coverage/lcov-report/map/common/wfs-utils.js.html +574 -0
  247. package/coverage/lcov-report/map/common/wms-utils.js.html +451 -0
  248. package/coverage/lcov-report/map/common/wmts-utils.js.html +547 -0
  249. package/coverage/lcov-report/prettify.css +1 -0
  250. package/coverage/lcov-report/prettify.js +2 -0
  251. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  252. package/coverage/lcov-report/sorter.js +196 -0
  253. package/coverage/lcov.info +11128 -0
  254. package/coverage/map/api/hooks/hooks.catalog.js.html +457 -0
  255. package/coverage/map/api/hooks/hooks.features.js.html +397 -0
  256. package/coverage/map/api/hooks/hooks.query.js.html +1309 -0
  257. package/coverage/map/api/hooks/index.html +161 -0
  258. package/coverage/map/api/hooks/index.js.html +94 -0
  259. package/coverage/map/api/index.html +131 -0
  260. package/coverage/map/api/index.js.html +139 -0
  261. package/coverage/map/api/marshall.js.html +178 -0
  262. package/coverage/map/api/models/alerts.model.mongodb.js.html +106 -0
  263. package/coverage/map/api/models/catalog.model.mongodb.js.html +127 -0
  264. package/coverage/map/api/models/features.model.mongodb.js.html +196 -0
  265. package/coverage/map/api/models/index.html +161 -0
  266. package/coverage/map/api/models/projects.model.mongodb.js.html +109 -0
  267. package/coverage/map/api/services/alerts/alerts.hooks.js.html +274 -0
  268. package/coverage/map/api/services/alerts/alerts.service.js.html +610 -0
  269. package/coverage/map/api/services/alerts/index.html +131 -0
  270. package/coverage/map/api/services/catalog/catalog.hooks.js.html +316 -0
  271. package/coverage/map/api/services/catalog/index.html +116 -0
  272. package/coverage/map/api/services/daptiles/daptiles.service.js.html +1510 -0
  273. package/coverage/map/api/services/daptiles/index.html +116 -0
  274. package/coverage/map/api/services/features/features.hooks.js.html +241 -0
  275. package/coverage/map/api/services/features/features.service.js.html +241 -0
  276. package/coverage/map/api/services/features/index.html +131 -0
  277. package/coverage/map/api/services/index.html +116 -0
  278. package/coverage/map/api/services/index.js.html +817 -0
  279. package/coverage/map/api/services/projects/index.html +116 -0
  280. package/coverage/map/api/services/projects/projects.hooks.js.html +439 -0
  281. package/coverage/map/common/dynamic-grid-source.js.html +466 -0
  282. package/coverage/map/common/errors.js.html +94 -0
  283. package/coverage/map/common/geotiff-grid-source.js.html +541 -0
  284. package/coverage/map/common/grid.js.html +1612 -0
  285. package/coverage/map/common/index.html +371 -0
  286. package/coverage/map/common/index.js.html +172 -0
  287. package/coverage/map/common/meteo-model-grid-source.js.html +556 -0
  288. package/coverage/map/common/moment-utils.js.html +157 -0
  289. package/coverage/map/common/opendap-grid-source.js.html +868 -0
  290. package/coverage/map/common/opendap-utils.js.html +826 -0
  291. package/coverage/map/common/permissions.js.html +124 -0
  292. package/coverage/map/common/time-based-grid-source.js.html +418 -0
  293. package/coverage/map/common/tms-utils.js.html +274 -0
  294. package/coverage/map/common/wcs-grid-source.js.html +364 -0
  295. package/coverage/map/common/wcs-utils.js.html +586 -0
  296. package/coverage/map/common/weacast-grid-source.js.html +1033 -0
  297. package/coverage/map/common/wfs-utils.js.html +574 -0
  298. package/coverage/map/common/wms-utils.js.html +451 -0
  299. package/coverage/map/common/wmts-utils.js.html +547 -0
  300. package/coverage/prettify.css +1 -0
  301. package/coverage/prettify.js +2 -0
  302. package/coverage/sort-arrow-sprite.png +0 -0
  303. package/coverage/sorter.js +196 -0
  304. package/coverage/tmp/coverage-137435-1719398750767-0.json +1 -0
  305. package/coverage/tmp/coverage-137447-1719398750752-0.json +1 -0
  306. package/coverage/tmp/coverage-137458-1719398750740-0.json +1 -0
  307. package/coverage/tmp/coverage-137470-1719398750728-0.json +1 -0
  308. package/coverage/tmp/coverage-137477-1719398750691-0.json +1 -0
  309. package/map/api/hooks/hooks.query.js +5 -2
  310. package/map/api/services/catalog/catalog.hooks.js +4 -5
  311. package/map/client/cesium/utils/index.js +2 -1
  312. package/map/client/cesium/utils/utils.cesium.js +8 -0
  313. package/map/client/cesium/utils/utils.features.js +2 -2
  314. package/map/client/cesium/utils/utils.style.js +19 -17
  315. package/map/client/components/KCompass.vue +25 -3
  316. package/map/client/components/KEditLayerData.vue +1 -1
  317. package/map/client/components/KPositionIndicator.vue +1 -1
  318. package/map/client/components/catalog/KConnectLayer.vue +2 -2
  319. package/map/client/components/catalog/KCreateView.vue +2 -2
  320. package/map/client/components/form/KDirectionField.vue +4 -0
  321. package/map/client/components/form/KOwsLayerField.vue +4 -4
  322. package/map/client/components/form/KOwsServiceField.vue +3 -4
  323. package/map/client/components/legend/KLegend.vue +13 -15
  324. package/map/client/components/tools/KGeolocateTool.vue +1 -1
  325. package/map/client/components/widget/KStackableTimeSeries.vue +3 -0
  326. package/map/client/composables/highlight.js +4 -1
  327. package/map/client/elevation-utils.js +2 -2
  328. package/map/client/i18n/map_en.json +3 -1
  329. package/map/client/i18n/map_fr.json +3 -1
  330. package/map/client/mixins/globe/mixin.base-globe.js +121 -80
  331. package/map/client/mixins/globe/mixin.file-layers.js +2 -2
  332. package/map/client/mixins/globe/mixin.geojson-layers.js +24 -19
  333. package/map/client/mixins/globe/mixin.globe-activity.js +3 -3
  334. package/map/client/mixins/globe/mixin.opendap-layers.js +3 -3
  335. package/map/client/mixins/globe/mixin.style.js +5 -5
  336. package/map/client/mixins/globe/mixin.tooltip.js +5 -3
  337. package/map/client/mixins/map/mixin.base-map.js +42 -4
  338. package/map/client/mixins/map/mixin.canvas-layers.js +0 -1
  339. package/map/client/mixins/map/mixin.geojson-layers.js +10 -5
  340. package/map/client/mixins/mixin.activity.js +2 -2
  341. package/map/client/mixins/mixin.feature-selection.js +7 -5
  342. package/map/client/mixins/mixin.levels.js +1 -1
  343. package/map/client/utils/utils.catalog.js +15 -0
  344. package/map/client/utils/utils.location.js +2 -1
  345. package/map/client/utils/utils.style.js +1 -1
  346. package/map/common/geotiff-grid-source.js +5 -3
  347. package/map/common/grid.js +2 -2
  348. package/map/common/meteo-model-grid-source.js +1 -1
  349. package/map/common/time-based-grid-source.js +1 -1
  350. package/map/common/wmts-utils.js +11 -11
  351. package/package.json +12 -8
  352. package/scripts/build_docs.sh +37 -0
  353. package/scripts/init_runner.sh +30 -0
  354. package/scripts/kash/.github/workflows/run_tests.yaml +33 -0
  355. package/scripts/kash/README.md +2 -0
  356. package/scripts/kash/kash.sh +1657 -0
  357. package/scripts/kash/scripts/run_tests.sh +151 -0
  358. package/scripts/run_tests.sh +48 -0
  359. package/scripts/setup_workspace.sh +42 -0
  360. package/test/api/core/hooks.test.js +31 -0
  361. package/test/api/core/test-log-2023-12-19.log +7 -0
  362. package/test/api/core/test-log-2024-01-04.log +14 -0
  363. package/test/api/core/test-log-2024-05-14.log +6 -0
  364. package/test/api/core/test-log-2024-06-06.log +23 -0
  365. package/test/api/core/test-log-2024-06-26.log +25 -0
  366. package/test/api/map/grid-sources.test.js +3 -1
  367. package/test/api/map/hooks.test.js +58 -12
  368. package/test/api/map/test-log-2023-11-24.log +121 -0
  369. package/test/api/map/test-log-2023-12-12.log +29 -0
  370. package/test/api/map/test-log-2023-12-13.log +5 -0
  371. package/test/api/map/test-log-2024-01-04.log +2 -0
  372. package/test/api/map/test-log-2024-01-11.log +1 -0
  373. package/test/api/map/test-log-2024-01-25.log +19 -0
  374. package/test/api/map/test-log-2024-06-06.log +39 -0
  375. package/test/client/core/collection.js +2 -2
  376. package/test/client/core/dialogs.js +13 -0
  377. package/test/client/core/index.js +6 -5
  378. package/test/client/core/layout.js +1 -13
  379. package/test/client/core/runner.js +41 -20
  380. package/test/client/core/screens.js +6 -0
  381. package/test/client/core/utils.js +23 -19
  382. package/.travis.doc.sh +0 -8
  383. package/.travis.test.sh +0 -72
  384. package/core/client/components/KAction.vue +0 -393
  385. package/core/client/components/KBlock.vue +0 -67
  386. package/core/client/components/app/KTerms.vue +0 -41
@@ -1,393 +0,0 @@
1
- <template>
2
- <!--
3
- Button renderer
4
- -->
5
- <q-btn v-if="renderer === 'button'"
6
- :id="id"
7
- no-caps
8
- no-wrap
9
- :color="computedColor"
10
- :icon="!iconRight ? computedIcon : undefined"
11
- :icon-right="iconRight ? computedIcon : undefined"
12
- :size="size"
13
- flat
14
- :round="label === null"
15
- :rounded="label !== null"
16
- :stack="stack"
17
- :dense="dense"
18
- :disable="computedDisabled"
19
- v-close-popup="closePopup"
20
- @click="onClicked">
21
- <!-- label -->
22
- <div v-if="computedLabel" :class="{ 'ellipsis q-pr-md': iconRight, 'ellipsis q-pl-md': !iconRight }">
23
- {{ computedLabel }}
24
- </div>
25
- <!-- tooltip -->
26
- <q-tooltip v-if="computedTooltip">
27
- {{ computedTooltip }}
28
- </q-tooltip>
29
- <!-- badge -->
30
- <q-badge v-if="badge" v-bind="badge" :label="computedBadgeLabel">
31
- <q-icon v-if="badge.icon" v-bind="badge.icon" />
32
- </q-badge>
33
- <!-- extra content -->
34
- <slot>
35
- </slot>
36
- </q-btn>
37
- <!--
38
- Form button renderer
39
- -->
40
- <q-btn v-else-if="renderer === 'form-button'"
41
- :id="id"
42
- no-wrap
43
- color="primary"
44
- :outline="outline"
45
- :size="size"
46
- :disable="computedDisabled"
47
- :loading="loading"
48
- v-close-popup="closePopup"
49
- @click="onClicked">
50
- <div class="ellipsis">
51
- {{ computedLabel }}
52
- </div>
53
- </q-btn>
54
- <!--
55
- Item renderer
56
- -->
57
- <q-item v-else-if="renderer === 'item'"
58
- :id="id"
59
- class="full-width"
60
- clickable
61
- :dense="dense"
62
- :disable="computedDisabled"
63
- v-close-popup="closePopup"
64
- @click="onClicked">
65
- <q-item-section v-if="computedIcon || badge" avatar>
66
- <q-icon v-if="computedIcon" :name="computedIcon" :color="computedColor" :dense="dense" />
67
- <!-- badge -->
68
- <q-badge v-if="badge" v-bind="badge" :label="computedBadgeLabel">
69
- <q-icon v-if="badge.icon" v-bind="badge.icon" />
70
- </q-badge>
71
- </q-item-section>
72
- <q-item-section :class="'text-' + computedColor" no-wrap>
73
- <q-item-label :lines="1">{{ computedLabel }}</q-item-label>
74
- </q-item-section>
75
- </q-item>
76
- <!--
77
- Fab renderer
78
- -->
79
- <q-btn v-else-if="renderer === 'fab'"
80
- :id="id"
81
- class="k-action-fab"
82
- :icon="computedIcon"
83
- :color="computedColor"
84
- :size="size"
85
- :round="true"
86
- :dense="dense"
87
- :disable="computedDisabled"
88
- @click="onClicked">
89
- <!-- tooltip -->
90
- <q-tooltip v-if="computedTooltip" anchor="top middle" self="bottom right">
91
- {{ computedTooltip }}
92
- </q-tooltip>
93
- <!-- badge -->
94
- <q-badge v-if="badge" v-bind="badge" :label="computedBadgeLabel">
95
- <q-icon v-if="badge.icon" v-bind="badge.icon" />
96
- </q-badge>
97
- </q-btn>
98
- <!--
99
- Fab action renderer
100
- -->
101
- <q-fab-action v-else-if="renderer === 'fab-action'"
102
- :id="id"
103
- class="k-action-fab-action"
104
- no-caps
105
- :icon="computedIcon"
106
- :color="computedColor"
107
- :label="computedLabel"
108
- square
109
- external-label
110
- :label-position="iconRight ? 'left' : 'right'"
111
- label-class="bg-primary text-white text-caption k-fab-action"
112
- :disable="computedDisabled"
113
- @click="onClicked">
114
- <!-- badge -->
115
- <q-badge v-if="badge" v-bind="badge">
116
- <q-icon v-if="badge.icon" v-bind="badge.icon" />
117
- </q-badge>
118
- </q-fab-action>
119
- <!--
120
- Tab renderer
121
- -->
122
- <q-btn v-else-if="renderer === 'tab'"
123
- :class="{'k-action-tab-active': isToggled }"
124
- :id="id"
125
- no-caps
126
- no-wrap
127
- :label="computedLabel"
128
- :color="computedColor"
129
- :size="size"
130
- flat
131
- square
132
- :dense="dense"
133
- :disable="computedDisabled"
134
- @click="onClicked">
135
- <!-- tooltip -->
136
- <q-tooltip v-if="computedTooltip">
137
- {{ computedTooltip }}
138
- </q-tooltip>
139
- <!-- badge -->
140
- <q-badge v-if="badge" v-bind="badge" :label="computedBadgeLabel">
141
- <q-icon v-if="badge.icon" v-bind="badge.icon" />
142
- </q-badge>
143
- <!-- extra content -->
144
- <slot>
145
- </slot>
146
- </q-btn>
147
- </template>
148
-
149
- <script>
150
- import _ from 'lodash'
151
- import { ref, toRef, computed, watch } from 'vue'
152
- import { useRoute, useRouter } from 'vue-router'
153
- import { useQuasar, openURL } from 'quasar'
154
- import { i18n } from '../i18n.js'
155
- import { bindParams } from '../utils/utils.content.js'
156
-
157
- export default {
158
- props: {
159
- id: {
160
- type: String,
161
- required: true
162
- },
163
- label: {
164
- type: String,
165
- default: null
166
- },
167
- icon: {
168
- type: String,
169
- default: undefined
170
- },
171
- iconRight: {
172
- type: Boolean,
173
- default: false
174
- },
175
- color: {
176
- type: String,
177
- default: 'grey-9'
178
- },
179
- size: {
180
- type: String,
181
- default: 'md'
182
- },
183
- outline: {
184
- type: Boolean,
185
- default: false
186
- },
187
- badge: {
188
- type: Object,
189
- default: () => null
190
- },
191
- tooltip: {
192
- type: String,
193
- default: ''
194
- },
195
- disabled: {
196
- type: [Boolean, Function],
197
- default: false
198
- },
199
- toggled: {
200
- type: Boolean,
201
- default: false
202
- },
203
- toggle: {
204
- type: Object,
205
- default: () => {}
206
- },
207
- stack: {
208
- type: Boolean,
209
- default: false
210
- },
211
- loading: {
212
- type: Boolean,
213
- default: false
214
- },
215
- propagate: {
216
- type: Boolean,
217
- default: true
218
- },
219
- context: {
220
- type: Object,
221
- default: () => null
222
- },
223
- handler: {
224
- type: Function,
225
- default: null
226
- },
227
- closePopup: {
228
- type: [Boolean, Number, String],
229
- default: false
230
- },
231
- dialog: {
232
- type: Object,
233
- default: null
234
- },
235
- route: {
236
- type: Object,
237
- default: () => null
238
- },
239
- url: {
240
- type: String,
241
- default: null
242
- },
243
- renderer: {
244
- type: String,
245
- default: 'button',
246
- validator: (value) => {
247
- return ['button', 'form-button', 'item', 'fab', 'fab-action', 'tab'].includes(value)
248
- }
249
- }
250
- },
251
- inheritAttrs: false,
252
- emits: ['triggered', 'toggled', 'dialog-confirmed', 'dialog-canceled'],
253
- setup (props, { emit }) {
254
- // data
255
- const route = useRoute()
256
- const router = useRouter()
257
- const $q = useQuasar()
258
- const isToggled = _.has(props, 'toggle.value') ? toRef(props.toggle, 'value') : ref(props.toggled)
259
-
260
- // computed
261
- const computedLabel = computed(() => {
262
- // Check also for translation key or already translated message
263
- if (isToggled.value && _.has(props.toggle, 'label')) return i18n.tie(props.toggle.label)
264
- return i18n.tie(props.label)
265
- })
266
- const computedIcon = computed(() => {
267
- if (isToggled.value && _.has(props.toggle, 'icon')) return props.toggle.icon
268
- return props.icon
269
- })
270
- const computedColor = computed(() => {
271
- if (isToggled.value) return _.get(props.toggle, 'color', 'accent')
272
- return props.color
273
- })
274
- const computedDisabled = computed(() => {
275
- if (!props.disabled) return false
276
- if (typeof props.disabled === 'function') return props.disabled()
277
- return props.disabled
278
- })
279
- const computedTooltip = computed(() => {
280
- if (computedDisabled.value) return
281
- // Check also for translation key or already translated message
282
- if (isToggled.value && _.has(props.toggle, 'tooltip')) return i18n.tie(props.toggle.tooltip)
283
- return i18n.tie(props.tooltip)
284
- })
285
- const computedBadgeLabel = computed(() => {
286
- // Check also for translation key or already translated message
287
- if (props.badge && _.has(props.badge, 'label')) return i18n.tie(props.badge.label)
288
- // Take care that changing this to null or '' breaks the display in Quasar
289
- return undefined
290
- })
291
- const dense = computed(() => {
292
- return $q.screen.lt.sm
293
- })
294
-
295
- // functions
296
- function toggle () {
297
- isToggled.value = !isToggled.value
298
- emit('toggled', props.context, isToggled.value)
299
- }
300
- function bindRouteParams (path) {
301
- // When action is created from code we can directly inject the params.
302
- // However, when created from the config we need to manage dynamic values.
303
- // A parameter like ':xxx' in config means xxx is a dynamic property of
304
- // the current route or the context object, not a static value.
305
- // We bind the target params object to both possible context.
306
- const currentParams = _.get(route, path, {})
307
- const targetParams = _.get(props.route, path, {})
308
- const routeParams = bindParams(targetParams, currentParams)
309
- const contextParams = bindParams(targetParams, props.context)
310
- return _.merge(routeParams, contextParams)
311
- }
312
- async function onClicked (event) {
313
- if (!props.propagate) event.stopPropagation()
314
- // handle the toggle if needed
315
- if (props.toggle) toggle()
316
- // handle the URL case
317
- if (props.url) openURL(props.url)
318
- // handle the callback case
319
- if (props.handler) {
320
- try {
321
- await props.handler(props.context, isToggled.value)
322
- } catch (error) {
323
- // in case an error is raised we assume toggling has failed
324
- if (props.toggle) toggle()
325
- throw error
326
- }
327
- return
328
- }
329
- // handle the route case
330
- if (props.route) {
331
- // allow to directly call a given URL, eg OAuth callback
332
- if (props.route.url) {
333
- location.href = props.route.url
334
- } else {
335
- // process route params
336
- router.push(Object.assign({
337
- query: bindRouteParams('query'),
338
- params: bindRouteParams('params')
339
- }, _.omit(props.route, ['query', 'params']))).catch(() => {})
340
- }
341
- return
342
- }
343
- // handle the dialog case
344
- if (props.dialog) {
345
- let dialog = props.dialog
346
- const component = _.get(props.dialog, 'component')
347
- if (component) {
348
- dialog = {
349
- component: 'KDialog',
350
- componentProps: _.clone(dialog)
351
- }
352
- }
353
- $q.dialog(dialog)
354
- .onOk((result) => {
355
- emit('dialog-confirmed', props.context, result)
356
- })
357
- .onCancel((result) => {
358
- emit('dialog-canceled', props.context, result)
359
- })
360
- }
361
- // notify listeners
362
- emit('triggered', props.context, isToggled.value)
363
- }
364
-
365
- // watch
366
- watch(() => props.toggled, (value) => {
367
- if (isToggled.value !== value) isToggled.value = value
368
- })
369
-
370
- // expose
371
- return {
372
- isToggled,
373
- computedLabel,
374
- computedIcon,
375
- computedColor,
376
- computedDisabled,
377
- computedTooltip,
378
- computedBadgeLabel,
379
- dense,
380
- onClicked
381
- }
382
- }
383
- }
384
- </script>
385
-
386
- <style lang="scss" scoped>
387
- .k-action-fab, .k-action-fab-action {
388
- border: 2px solid var(--q-secondary);
389
- }
390
- .k-action-tab-active {
391
- border-bottom: solid 2px;
392
- }
393
- </style>
@@ -1,67 +0,0 @@
1
- <template>
2
- <q-card>
3
- <!--
4
- Title section
5
- -->
6
- <q-card-section v-if="title" class="k-block-title text-subtitle1">
7
- {{ title }}
8
- </q-card-section>
9
- <!--
10
- Content section
11
- -->
12
- <q-card-section>
13
- <div class="column k-block-content">
14
- <!-- Text -->
15
- <div class="k-block-text" v-html="text" />
16
- <!-- Action -->
17
- <div v-if="action" class="self-end">
18
- <KAction v-bind="action" />
19
- </div>
20
- </div>
21
- </q-card-section>
22
- </q-card>
23
- </template>
24
-
25
- <script>
26
- import KAction from './KAction.vue'
27
-
28
- export default {
29
- components: {
30
- KAction
31
- },
32
- props: {
33
- title: {
34
- type: String,
35
- default: undefined
36
- },
37
- text: {
38
- type: String,
39
- default: ''
40
- },
41
- action: {
42
- type: Object,
43
- default: () => null
44
- },
45
- color: {
46
- type: String,
47
- default: 'grey'
48
- },
49
- disabled: {
50
- type: Boolean,
51
- default: false
52
- }
53
- }
54
- }
55
- </script>
56
-
57
- <style lang="scss">
58
- .k-block-title {
59
- background-color: v-bind(color)
60
- }
61
- .k-block-content {
62
- margin: 8px;
63
- }
64
- .k-block-text {
65
- padding: 8px;
66
- }
67
- </style>
@@ -1,41 +0,0 @@
1
- <template>
2
- <div class="q-pa-md">
3
- <KMarkdownViewer :url="url" />
4
- </div>
5
- </template>
6
-
7
- <script setup>
8
- import _ from 'lodash'
9
- import config from 'config'
10
- import { ref } from 'vue'
11
- import { getAppLocale } from '../../utils/utils.locale.js'
12
- import KMarkdownViewer from '../media/KMarkdownViewer.vue'
13
-
14
- // Data
15
- const appName = _.get(config, 'appName')
16
- const terms = _.get(config, 'terms', _.toLower(appName) + '-terms')
17
- const locale = getAppLocale()
18
- const url = ref(`${terms}_${locale}.md`)
19
- </script>
20
-
21
- <style lang="scss">
22
- // override headers size
23
- h1 {
24
- font-size: 2.5rem;
25
- }
26
- h2 {
27
- font-size: 2rem;
28
- }
29
- h3 {
30
- font-size: 1.5rem;
31
- }
32
- h4 {
33
- font-size: 1.4rem;
34
- }
35
- h5 {
36
- font-size: 1.3rem;
37
- }
38
- h6 {
39
- font-size: 1.2rem;
40
- }
41
- </style>