@kalisio/kdk 2.3.2 → 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 (441) 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 +62 -49
  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 +54 -32
  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/base.css +224 -0
  95. package/coverage/block-navigation.js +87 -0
  96. package/coverage/core/api/application.js.html +1870 -0
  97. package/coverage/core/api/authentication.js.html +742 -0
  98. package/coverage/core/api/db.js.html +793 -0
  99. package/coverage/core/api/hooks/hooks.authentication.js.html +313 -0
  100. package/coverage/core/api/hooks/hooks.authorisations.js.html +1243 -0
  101. package/coverage/core/api/hooks/hooks.groups.js.html +229 -0
  102. package/coverage/core/api/hooks/hooks.logger.js.html +163 -0
  103. package/coverage/core/api/hooks/hooks.model.js.html +955 -0
  104. package/coverage/core/api/hooks/hooks.organisations.js.html +541 -0
  105. package/coverage/core/api/hooks/hooks.push.js.html +253 -0
  106. package/coverage/core/api/hooks/hooks.query.js.html +862 -0
  107. package/coverage/core/api/hooks/hooks.schemas.js.html +298 -0
  108. package/coverage/core/api/hooks/hooks.service.js.html +319 -0
  109. package/coverage/core/api/hooks/hooks.storage.js.html +193 -0
  110. package/coverage/core/api/hooks/hooks.users.js.html +868 -0
  111. package/coverage/core/api/hooks/index.html +296 -0
  112. package/coverage/core/api/hooks/index.js.html +121 -0
  113. package/coverage/core/api/index.html +191 -0
  114. package/coverage/core/api/index.js.html +148 -0
  115. package/coverage/core/api/marshall.js.html +448 -0
  116. package/coverage/core/api/models/groups.model.mongodb.js.html +109 -0
  117. package/coverage/core/api/models/index.html +176 -0
  118. package/coverage/core/api/models/messages.model.mongodb.js.html +121 -0
  119. package/coverage/core/api/models/organisations.model.mongodb.js.html +94 -0
  120. package/coverage/core/api/models/tags.model.mongodb.js.html +115 -0
  121. package/coverage/core/api/models/users.model.mongodb.js.html +115 -0
  122. package/coverage/core/api/services/account/account.hooks.js.html +208 -0
  123. package/coverage/core/api/services/account/account.service.js.html +436 -0
  124. package/coverage/core/api/services/account/index.html +131 -0
  125. package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +184 -0
  126. package/coverage/core/api/services/authorisations/authorisations.service.js.html +529 -0
  127. package/coverage/core/api/services/authorisations/index.html +131 -0
  128. package/coverage/core/api/services/databases/databases.hooks.js.html +193 -0
  129. package/coverage/core/api/services/databases/databases.service.js.html +100 -0
  130. package/coverage/core/api/services/databases/index.html +131 -0
  131. package/coverage/core/api/services/groups/groups.hooks.js.html +178 -0
  132. package/coverage/core/api/services/groups/index.html +116 -0
  133. package/coverage/core/api/services/import-export/import-export.hooks.js.html +184 -0
  134. package/coverage/core/api/services/import-export/import-export.service.js.html +118 -0
  135. package/coverage/core/api/services/import-export/index.html +131 -0
  136. package/coverage/core/api/services/index.html +116 -0
  137. package/coverage/core/api/services/index.js.html +556 -0
  138. package/coverage/core/api/services/mailer/index.html +131 -0
  139. package/coverage/core/api/services/mailer/mailer.hooks.js.html +190 -0
  140. package/coverage/core/api/services/mailer/mailer.service.js.html +118 -0
  141. package/coverage/core/api/services/messages/index.html +116 -0
  142. package/coverage/core/api/services/messages/messages.hooks.js.html +199 -0
  143. package/coverage/core/api/services/organisations/index.html +131 -0
  144. package/coverage/core/api/services/organisations/organisations.hooks.js.html +178 -0
  145. package/coverage/core/api/services/organisations/organisations.service.js.html +343 -0
  146. package/coverage/core/api/services/push/index.html +131 -0
  147. package/coverage/core/api/services/push/push.hooks.js.html +190 -0
  148. package/coverage/core/api/services/push/push.service.js.html +121 -0
  149. package/coverage/core/api/services/storage/index.html +131 -0
  150. package/coverage/core/api/services/storage/storage.hooks.js.html +190 -0
  151. package/coverage/core/api/services/storage/storage.service.js.html +172 -0
  152. package/coverage/core/api/services/tags/index.html +116 -0
  153. package/coverage/core/api/services/tags/tags.hooks.js.html +178 -0
  154. package/coverage/core/api/services/users/index.html +116 -0
  155. package/coverage/core/api/services/users/users.hooks.js.html +307 -0
  156. package/coverage/core/api/utils.js.html +118 -0
  157. package/coverage/core/common/errors.js.html +88 -0
  158. package/coverage/core/common/index.html +176 -0
  159. package/coverage/core/common/index.js.html +115 -0
  160. package/coverage/core/common/permissions.js.html +1048 -0
  161. package/coverage/core/common/schema.js.html +190 -0
  162. package/coverage/core/common/utils.js.html +220 -0
  163. package/coverage/favicon.png +0 -0
  164. package/coverage/index.html +506 -0
  165. package/coverage/lcov-report/base.css +224 -0
  166. package/coverage/lcov-report/block-navigation.js +87 -0
  167. package/coverage/lcov-report/core/api/application.js.html +1870 -0
  168. package/coverage/lcov-report/core/api/authentication.js.html +742 -0
  169. package/coverage/lcov-report/core/api/db.js.html +793 -0
  170. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +313 -0
  171. package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +1243 -0
  172. package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +229 -0
  173. package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +163 -0
  174. package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +955 -0
  175. package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +541 -0
  176. package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +253 -0
  177. package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +862 -0
  178. package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +298 -0
  179. package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +319 -0
  180. package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +193 -0
  181. package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +868 -0
  182. package/coverage/lcov-report/core/api/hooks/index.html +296 -0
  183. package/coverage/lcov-report/core/api/hooks/index.js.html +121 -0
  184. package/coverage/lcov-report/core/api/index.html +191 -0
  185. package/coverage/lcov-report/core/api/index.js.html +148 -0
  186. package/coverage/lcov-report/core/api/marshall.js.html +448 -0
  187. package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +109 -0
  188. package/coverage/lcov-report/core/api/models/index.html +176 -0
  189. package/coverage/lcov-report/core/api/models/messages.model.mongodb.js.html +121 -0
  190. package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +94 -0
  191. package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +115 -0
  192. package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +115 -0
  193. package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +208 -0
  194. package/coverage/lcov-report/core/api/services/account/account.service.js.html +436 -0
  195. package/coverage/lcov-report/core/api/services/account/index.html +131 -0
  196. package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +184 -0
  197. package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +529 -0
  198. package/coverage/lcov-report/core/api/services/authorisations/index.html +131 -0
  199. package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +193 -0
  200. package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +100 -0
  201. package/coverage/lcov-report/core/api/services/databases/index.html +131 -0
  202. package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +178 -0
  203. package/coverage/lcov-report/core/api/services/groups/index.html +116 -0
  204. package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +184 -0
  205. package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +118 -0
  206. package/coverage/lcov-report/core/api/services/import-export/index.html +131 -0
  207. package/coverage/lcov-report/core/api/services/index.html +116 -0
  208. package/coverage/lcov-report/core/api/services/index.js.html +556 -0
  209. package/coverage/lcov-report/core/api/services/mailer/index.html +131 -0
  210. package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +190 -0
  211. package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +118 -0
  212. package/coverage/lcov-report/core/api/services/messages/index.html +116 -0
  213. package/coverage/lcov-report/core/api/services/messages/messages.hooks.js.html +199 -0
  214. package/coverage/lcov-report/core/api/services/organisations/index.html +131 -0
  215. package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +178 -0
  216. package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +343 -0
  217. package/coverage/lcov-report/core/api/services/push/index.html +131 -0
  218. package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +190 -0
  219. package/coverage/lcov-report/core/api/services/push/push.service.js.html +121 -0
  220. package/coverage/lcov-report/core/api/services/storage/index.html +131 -0
  221. package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +190 -0
  222. package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +172 -0
  223. package/coverage/lcov-report/core/api/services/tags/index.html +116 -0
  224. package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +178 -0
  225. package/coverage/lcov-report/core/api/services/users/index.html +116 -0
  226. package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +307 -0
  227. package/coverage/lcov-report/core/api/utils.js.html +118 -0
  228. package/coverage/lcov-report/core/common/errors.js.html +88 -0
  229. package/coverage/lcov-report/core/common/index.html +176 -0
  230. package/coverage/lcov-report/core/common/index.js.html +115 -0
  231. package/coverage/lcov-report/core/common/permissions.js.html +1048 -0
  232. package/coverage/lcov-report/core/common/schema.js.html +190 -0
  233. package/coverage/lcov-report/core/common/utils.js.html +220 -0
  234. package/coverage/lcov-report/favicon.png +0 -0
  235. package/coverage/lcov-report/index.html +506 -0
  236. package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +457 -0
  237. package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +397 -0
  238. package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +1309 -0
  239. package/coverage/lcov-report/map/api/hooks/index.html +161 -0
  240. package/coverage/lcov-report/map/api/hooks/index.js.html +94 -0
  241. package/coverage/lcov-report/map/api/index.html +131 -0
  242. package/coverage/lcov-report/map/api/index.js.html +139 -0
  243. package/coverage/lcov-report/map/api/marshall.js.html +178 -0
  244. package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +106 -0
  245. package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +127 -0
  246. package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +196 -0
  247. package/coverage/lcov-report/map/api/models/index.html +161 -0
  248. package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +109 -0
  249. package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +274 -0
  250. package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +610 -0
  251. package/coverage/lcov-report/map/api/services/alerts/index.html +131 -0
  252. package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +310 -0
  253. package/coverage/lcov-report/map/api/services/catalog/index.html +116 -0
  254. package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1510 -0
  255. package/coverage/lcov-report/map/api/services/daptiles/index.html +116 -0
  256. package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +241 -0
  257. package/coverage/lcov-report/map/api/services/features/features.service.js.html +241 -0
  258. package/coverage/lcov-report/map/api/services/features/index.html +131 -0
  259. package/coverage/lcov-report/map/api/services/index.html +116 -0
  260. package/coverage/lcov-report/map/api/services/index.js.html +817 -0
  261. package/coverage/lcov-report/map/api/services/projects/index.html +116 -0
  262. package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +439 -0
  263. package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +466 -0
  264. package/coverage/lcov-report/map/common/errors.js.html +94 -0
  265. package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +541 -0
  266. package/coverage/lcov-report/map/common/grid.js.html +1612 -0
  267. package/coverage/lcov-report/map/common/index.html +371 -0
  268. package/coverage/lcov-report/map/common/index.js.html +172 -0
  269. package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +556 -0
  270. package/coverage/lcov-report/map/common/moment-utils.js.html +157 -0
  271. package/coverage/lcov-report/map/common/opendap-grid-source.js.html +868 -0
  272. package/coverage/lcov-report/map/common/opendap-utils.js.html +826 -0
  273. package/coverage/lcov-report/map/common/permissions.js.html +124 -0
  274. package/coverage/lcov-report/map/common/time-based-grid-source.js.html +418 -0
  275. package/coverage/lcov-report/map/common/tms-utils.js.html +274 -0
  276. package/coverage/lcov-report/map/common/wcs-grid-source.js.html +364 -0
  277. package/coverage/lcov-report/map/common/wcs-utils.js.html +586 -0
  278. package/coverage/lcov-report/map/common/weacast-grid-source.js.html +1033 -0
  279. package/coverage/lcov-report/map/common/wfs-utils.js.html +574 -0
  280. package/coverage/lcov-report/map/common/wms-utils.js.html +451 -0
  281. package/coverage/lcov-report/map/common/wmts-utils.js.html +547 -0
  282. package/coverage/lcov-report/prettify.css +1 -0
  283. package/coverage/lcov-report/prettify.js +2 -0
  284. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  285. package/coverage/lcov-report/sorter.js +196 -0
  286. package/coverage/lcov.info +11245 -0
  287. package/coverage/map/api/hooks/hooks.catalog.js.html +457 -0
  288. package/coverage/map/api/hooks/hooks.features.js.html +397 -0
  289. package/coverage/map/api/hooks/hooks.query.js.html +1309 -0
  290. package/coverage/map/api/hooks/index.html +161 -0
  291. package/coverage/map/api/hooks/index.js.html +94 -0
  292. package/coverage/map/api/index.html +131 -0
  293. package/coverage/map/api/index.js.html +139 -0
  294. package/coverage/map/api/marshall.js.html +178 -0
  295. package/coverage/map/api/models/alerts.model.mongodb.js.html +106 -0
  296. package/coverage/map/api/models/catalog.model.mongodb.js.html +127 -0
  297. package/coverage/map/api/models/features.model.mongodb.js.html +196 -0
  298. package/coverage/map/api/models/index.html +161 -0
  299. package/coverage/map/api/models/projects.model.mongodb.js.html +109 -0
  300. package/coverage/map/api/services/alerts/alerts.hooks.js.html +274 -0
  301. package/coverage/map/api/services/alerts/alerts.service.js.html +610 -0
  302. package/coverage/map/api/services/alerts/index.html +131 -0
  303. package/coverage/map/api/services/catalog/catalog.hooks.js.html +310 -0
  304. package/coverage/map/api/services/catalog/index.html +116 -0
  305. package/coverage/map/api/services/daptiles/daptiles.service.js.html +1510 -0
  306. package/coverage/map/api/services/daptiles/index.html +116 -0
  307. package/coverage/map/api/services/features/features.hooks.js.html +241 -0
  308. package/coverage/map/api/services/features/features.service.js.html +241 -0
  309. package/coverage/map/api/services/features/index.html +131 -0
  310. package/coverage/map/api/services/index.html +116 -0
  311. package/coverage/map/api/services/index.js.html +817 -0
  312. package/coverage/map/api/services/projects/index.html +116 -0
  313. package/coverage/map/api/services/projects/projects.hooks.js.html +439 -0
  314. package/coverage/map/common/dynamic-grid-source.js.html +466 -0
  315. package/coverage/map/common/errors.js.html +94 -0
  316. package/coverage/map/common/geotiff-grid-source.js.html +541 -0
  317. package/coverage/map/common/grid.js.html +1612 -0
  318. package/coverage/map/common/index.html +371 -0
  319. package/coverage/map/common/index.js.html +172 -0
  320. package/coverage/map/common/meteo-model-grid-source.js.html +556 -0
  321. package/coverage/map/common/moment-utils.js.html +157 -0
  322. package/coverage/map/common/opendap-grid-source.js.html +868 -0
  323. package/coverage/map/common/opendap-utils.js.html +826 -0
  324. package/coverage/map/common/permissions.js.html +124 -0
  325. package/coverage/map/common/time-based-grid-source.js.html +418 -0
  326. package/coverage/map/common/tms-utils.js.html +274 -0
  327. package/coverage/map/common/wcs-grid-source.js.html +364 -0
  328. package/coverage/map/common/wcs-utils.js.html +586 -0
  329. package/coverage/map/common/weacast-grid-source.js.html +1033 -0
  330. package/coverage/map/common/wfs-utils.js.html +574 -0
  331. package/coverage/map/common/wms-utils.js.html +451 -0
  332. package/coverage/map/common/wmts-utils.js.html +547 -0
  333. package/coverage/prettify.css +1 -0
  334. package/coverage/prettify.js +2 -0
  335. package/coverage/sort-arrow-sprite.png +0 -0
  336. package/coverage/sorter.js +196 -0
  337. package/coverage/tmp/coverage-280506-1731704745613-0.json +1 -0
  338. package/coverage/tmp/coverage-280518-1731704745599-0.json +1 -0
  339. package/coverage/tmp/coverage-280529-1731704745588-0.json +1 -0
  340. package/coverage/tmp/coverage-280541-1731704745574-0.json +1 -0
  341. package/coverage/tmp/coverage-280548-1731704745545-0.json +1 -0
  342. package/extras/css/core.variables.scss +32 -8
  343. package/extras/icons/attribution.png +0 -0
  344. package/map/api/services/catalog/catalog.hooks.js +5 -7
  345. package/map/api/services/features/features.hooks.js +1 -1
  346. package/map/client/cesium/utils/utils.style.js +11 -2
  347. package/map/client/components/KAttribution.vue +108 -0
  348. package/map/client/components/KPositionIndicator.vue +11 -18
  349. package/map/client/components/KProjectMenu.vue +4 -4
  350. package/map/client/components/catalog/KCategoryItem.vue +74 -0
  351. package/map/client/components/catalog/KLayerCategories.vue +24 -12
  352. package/map/client/components/catalog/KLayersPanel.vue +139 -116
  353. package/map/client/components/catalog/KProjectSelector.vue +29 -17
  354. package/map/client/components/catalog/KProjectsPanel.vue +19 -35
  355. package/map/client/components/catalog/KViewSelector.vue +37 -25
  356. package/map/client/components/catalog/KViewsPanel.vue +19 -35
  357. package/map/client/components/form/KLocationField.vue +1 -2
  358. package/map/client/components/legend/KLegend.vue +34 -34
  359. package/map/client/components/location/KLocationCardSection.vue +18 -22
  360. package/map/client/components/location/KLocationMap.vue +36 -38
  361. package/map/client/components/location/KLocationTimeLineCard.vue +147 -0
  362. package/map/client/components/location/KLocationTip.vue +12 -2
  363. package/map/client/components/widget/KInformationBox.vue +0 -4
  364. package/map/client/components/widget/KStackableTimeSeries.vue +8 -1
  365. package/map/client/components/widget/KTimeSeries.vue +1 -1
  366. package/map/client/composables/highlight.js +29 -31
  367. package/map/client/composables/probe.js +7 -3
  368. package/map/client/composables/weather.js +71 -31
  369. package/map/client/i18n/map_en.json +3 -0
  370. package/map/client/i18n/map_fr.json +3 -0
  371. package/map/client/init.js +4 -3
  372. package/map/client/leaflet/ShapeMarker.js +1 -1
  373. package/map/client/leaflet/utils/utils.events.js +1 -1
  374. package/map/client/leaflet/utils/utils.style.js +20 -8
  375. package/map/client/mixins/globe/mixin.base-globe.js +111 -13
  376. package/map/client/mixins/globe/mixin.file-layers.js +10 -10
  377. package/map/client/mixins/globe/mixin.geojson-layers.js +90 -15
  378. package/map/client/mixins/globe/mixin.style.js +2 -0
  379. package/map/client/mixins/index.js +0 -1
  380. package/map/client/mixins/map/index.js +1 -0
  381. package/map/client/mixins/map/mixin.base-map.js +21 -2
  382. package/map/client/mixins/map/mixin.canvas-layers.js +7 -2
  383. package/map/client/mixins/map/mixin.edit-layers.js +12 -4
  384. package/map/client/mixins/map/mixin.file-layers.js +3 -0
  385. package/map/client/mixins/map/mixin.geojson-layers.js +90 -5
  386. package/map/client/mixins/map/mixin.pmtiles-layers.js +106 -0
  387. package/map/client/mixins/mixin.activity.js +8 -3
  388. package/map/client/mixins/mixin.feature-service.js +73 -32
  389. package/map/client/mixins/mixin.levels.js +1 -0
  390. package/map/client/mixins/mixin.weacast.js +10 -87
  391. package/map/client/utils/index.js +1 -0
  392. package/map/client/utils/utils.capture.js +1 -1
  393. package/map/client/utils/utils.catalog.js +7 -7
  394. package/map/client/utils/utils.features.js +59 -1
  395. package/map/client/utils/utils.layers.js +8 -0
  396. package/map/client/utils/utils.time-series.js +121 -0
  397. package/map/client/utils/utils.weacast.js +102 -0
  398. package/package.json +6 -6
  399. package/scripts/init_runner.sh +2 -2
  400. package/scripts/kash/CHANGELOG.md +12 -0
  401. package/scripts/kash/README.md +2 -0
  402. package/scripts/kash/kash.sh +34 -32
  403. package/scripts/run_tests.sh +2 -2
  404. package/scripts/setup_workspace.sh +24 -6
  405. package/test/api/core/hooks.test.js +6 -3
  406. package/test/api/core/test-log-2023-12-19.log +7 -0
  407. package/test/api/core/test-log-2024-01-04.log +14 -0
  408. package/test/api/core/test-log-2024-05-14.log +6 -0
  409. package/test/api/core/{test-log-2024-04-23.log → test-log-2024-06-06.log} +3 -3
  410. package/test/api/core/test-log-2024-06-26.log +25 -0
  411. package/test/api/core/test-log-2024-06-28.log +2 -0
  412. package/test/api/core/test-log-2024-07-09.log +0 -0
  413. package/test/api/core/test-log-2024-08-13.log +69 -0
  414. package/test/api/core/test-log-2024-10-28.log +53 -0
  415. package/test/api/core/test-log-2024-11-05.log +30 -0
  416. package/test/api/core/test-log-2024-11-15.log +23 -0
  417. package/test/api/map/alerts.test.js +3 -1
  418. package/test/api/map/config/layers.json +3 -1
  419. package/test/api/map/index.test.js +18 -1
  420. package/test/api/map/test-log-2023-11-24.log +121 -0
  421. package/test/api/map/test-log-2023-12-12.log +29 -0
  422. package/test/api/map/test-log-2023-12-13.log +5 -0
  423. package/test/api/map/test-log-2024-01-04.log +2 -0
  424. package/test/api/map/test-log-2024-01-11.log +1 -0
  425. package/test/api/map/test-log-2024-01-25.log +19 -0
  426. package/test/api/map/test-log-2024-06-06.log +39 -0
  427. package/test/api/map/test-log-2024-08-13.log +13 -0
  428. package/test/api/map/test-log-2024-08-20.log +55 -0
  429. package/test/api/map/test-log-2024-09-09.log +92 -0
  430. package/test/api/map/test-log-2024-10-28.log +11 -0
  431. package/test/client/core/utils.js +13 -0
  432. package/test/client/map/api.js +34 -0
  433. package/test/client/map/catalog.js +6 -2
  434. package/test/client/map/index.js +1 -0
  435. package/test/client/map/utils.js +4 -2
  436. package/core/client/components/collection/KList.vue +0 -135
  437. package/core/client/components/layout/KPageSticky.vue +0 -53
  438. package/core/client/mixins/mixin.base-collection.js +0 -162
  439. package/core/client/utils/utils.data.js +0 -22
  440. package/map/client/mixins/mixin.catalog-panel.js +0 -26
  441. package/test/api/core/test-log-2024-04-22.log +0 -84
@@ -4,23 +4,41 @@
4
4
  Specific page content: can be provided as slot or/and by configuration
5
5
  -->
6
6
  <div id="page-content-container" :style="contentStyleFunction">
7
- <div class="fit">
8
- <q-resize-observer @resize="onContentResized" />
9
- <slot name="page-content" />
7
+ <q-resize-observer @resize="onContentResized" />
8
+ <slot>
10
9
  <KContent
11
10
  id="page"
12
11
  v-show="page.visible"
13
12
  :content="page.components"
14
- />
15
- </div>
13
+ class="fit"
14
+ />
15
+ </slot>
16
16
  </div>
17
+ <!--
18
+ Custom stickies
19
+ -->
20
+ <template v-for="sticky in stickies.components" :key="sticky.id">
21
+ <q-page-sticky
22
+ :id="sticky.id"
23
+ :position="getStickyPosition(sticky)"
24
+ :offset="getStickyOffset(sticky)"
25
+ class="k-sticky"
26
+ >
27
+ <KContent :content="[sticky]" />
28
+ </q-page-sticky>
29
+ </template>
17
30
  <!--
18
31
  Managed stickies
19
32
  Be careful of the order
20
33
  -->
21
- <!-- bottom pane -->
22
- <q-page-sticky position="bottom" class="k-sticky">
23
- <div id="bottom-pane" v-show="hasBottomPaneComponents" class="column items-center">
34
+ <!-- Bottom pane -->
35
+ <q-page-sticky
36
+ v-show="hasBottomPaneComponents"
37
+ position="bottom"
38
+ class="k-bottom-pane-sticky"
39
+ @click="onClicked('panes.bottom')"
40
+ >
41
+ <div id="bottom-pane" class="column items-center">
24
42
  <KOpener id="bottom-opener" v-if="bottomPane.opener" v-model="isBottomPaneOpened" position="bottom" />
25
43
  <div>
26
44
  <KPanel
@@ -28,15 +46,21 @@
28
46
  v-show="bottomPane.visible"
29
47
  :content="bottomPane.components"
30
48
  :mode="bottomPane.mode"
49
+ :style="bottomPaneStyle"
31
50
  class="k-pane"
32
51
  />
33
52
  <q-resize-observer v-if="padding" debounce="200" @resize="onBottomPaneResized" />
34
53
  </div>
35
54
  </div>
36
55
  </q-page-sticky>
37
- <!-- right pane -->
38
- <q-page-sticky position="right" class="k-sticky">
39
- <div id="right-pane" v-show="hasRightPaneComponents" class="row items-center">
56
+ <!-- Right pane -->
57
+ <q-page-sticky
58
+ v-show="hasRightPaneComponents"
59
+ position="right"
60
+ class="k-right-pane-sticky"
61
+ @click="onClicked('panes.right')"
62
+ >
63
+ <div id="right-pane" class="row items-center">
40
64
  <KOpener id="right-opener" v-if="rightPane.opener" v-model="isRightPaneOpened" position="right" />
41
65
  <div>
42
66
  <KPanel
@@ -45,21 +69,28 @@
45
69
  :content="rightPane.components"
46
70
  :mode="rightPane.mode"
47
71
  direction="vertical"
72
+ :style="rightPaneStyle"
48
73
  class="k-pane"
49
74
  />
50
75
  <q-resize-observer v-if="padding" debounce="200" @resize="onRightPaneResized" />
51
76
  </div>
52
77
  </div>
53
78
  </q-page-sticky>
54
- <!-- top pane -->
55
- <q-page-sticky position="top" class="k-sticky">
56
- <div id="top-pane" v-show="hasTopPaneComponents" class="column items-center">
79
+ <!-- Top pane -->
80
+ <q-page-sticky
81
+ v-show="hasTopPaneComponents"
82
+ position="top"
83
+ class="k-top-pane-sticky"
84
+ @click="onClicked('panes.top')"
85
+ >
86
+ <div id="top-pane" class="column items-center">
57
87
  <div>
58
88
  <KPanel
59
89
  id="top-panel"
60
90
  v-show="topPane.visible"
61
91
  :content="topPane.components"
62
92
  :mode="topPane.mode"
93
+ :style="topPaneStyle"
63
94
  class="k-pane"
64
95
  />
65
96
  <q-resize-observer v-if="padding" debounce="200" @resize="onTopPaneResized" />
@@ -67,76 +98,89 @@
67
98
  <KOpener id="top-opener" v-if="topPane.opener" v-model="isTopPaneOpened" position="top" />
68
99
  </div>
69
100
  </q-page-sticky>
70
- <!-- fab -->
71
- <q-page-sticky :position="fab.position" :offset="fab.offset" class="k-sticky">
101
+ <!-- Fab -->
102
+ <q-page-sticky
103
+ :position="fab.position"
104
+ :offset="fab.offset"
105
+ class="k-fab-sticky"
106
+ @click="onClicked('fab')"
107
+ >
72
108
  <KFab
73
109
  id="fab"
74
110
  v-if="fab.visible"
75
- :direction="fabBehaviour.direction"
76
- :actions-align="fabBehaviour.actionsAlign"
111
+ :direction="fabBehavior.direction"
112
+ :actions-align="fabBehavior.actionsAlign"
77
113
  />
78
114
  </q-page-sticky>
79
- <!-- windows -->
80
- <q-page-sticky position="top-left" :offset="leftWindow.position" class="k-sticky">
115
+ <!-- left Window -->
116
+ <q-page-sticky
117
+ v-if="hasLeftWindowComponents && leftWindow.visible"
118
+ position="top-left"
119
+ :offset="leftWindow.position"
120
+ class="k-left-window-sticky"
121
+ @click="onClicked('windows.left')"
122
+ >
81
123
  <KWindow
82
124
  id="left-window"
83
- v-if="leftWindow.visible"
84
125
  placement="left"
85
126
  :layout-offset="layoutOffset"
86
- :style="`max-width: ${leftWindowSize[0]}px; max-height: ${leftWindowSize[1]};px;`"
127
+ :style="leftWindowStyle"
87
128
  />
88
129
  </q-page-sticky>
89
- <q-page-sticky position="top-left" :offset="topWindow.position" class="k-sticky">
130
+ <!-- top Window -->
131
+ <q-page-sticky
132
+ v-if="hasTopWindowComponents && topWindow.visible"
133
+ position="top-left"
134
+ :offset="topWindow.position"
135
+ class="k-top-window-sticky"
136
+ @click="onClicked('windows.top')"
137
+ >
90
138
  <KWindow
91
139
  id="top-window"
92
- v-if="topWindow.visible"
93
140
  placement="top"
94
141
  :layout-offset="layoutOffset"
95
- :style="`max-width: ${topWindowSize[0]}px; max-height: ${topWindowSize[1]};px`"
142
+ :style="topWindowStyle"
96
143
  />
97
144
  </q-page-sticky>
98
- <q-page-sticky position="top-left" :offset="rightWindow.position" class="k-sticky">
145
+ <!-- right Window -->
146
+ <q-page-sticky
147
+ v-if="hasRightWindowComponents && rightWindow.visible"
148
+ position="top-left"
149
+ :offset="rightWindow.position"
150
+ class="k-right-window-sticky"
151
+ @click="onClicked('windows.right')"
152
+ >
99
153
  <KWindow
100
154
  id="right-window"
101
- v-if="rightWindow.visible"
102
155
  placement="right"
103
156
  :layout-offset="layoutOffset"
104
- :style="`max-width: ${rightWindowSize[0]}px; max-height: ${rightWindowSize[1]};px`"
157
+ :style="rightWindowStyle"
105
158
  />
106
159
  </q-page-sticky>
107
- <q-page-sticky position="top-left" :offset="bottomWindow.position" class="k-sticky">
160
+ <!-- bottom Window -->
161
+ <q-page-sticky
162
+ v-if="hasBottomWindowComponents && bottomWindow.visible"
163
+ position="top-left"
164
+ :offset="bottomWindow.position"
165
+ class="k-bottom-window-sticky"
166
+ @click="onClicked('windows.bottom')"
167
+ >
108
168
  <KWindow
109
169
  id="bottom-window"
110
- v-if="bottomWindow.visible"
111
170
  placement="bottom"
112
171
  :layout-offset="layoutOffset"
113
- :style="`max-width: ${bottomWindowSize[0]}px; max-height: ${bottomWindowSize[1]};px`"
172
+ :style="bottomWindowStyle"
114
173
  />
115
174
  </q-page-sticky>
116
- <!-- left pane -->
117
- <q-page-sticky position="left" class="k-sticky">
118
- <div id="left-pane" v-show="hasLeftPaneComponents" class="row items-center">
119
- <div>
120
- <KPanel
121
- id="left-panel"
122
- v-show="leftPane.visible"
123
- :content="leftPane.components"
124
- :mode="leftPane.mode"
125
- direction="vertical"
126
- class="k-left-pane"
127
- @triggered="setLeftPaneVisible(false)"
128
- />
129
- </div>
130
- <KOpener id="left-opener" v-if="leftPane.opener" v-model="isLeftPaneOpened" position="left" />
131
- </div>
132
- </q-page-sticky>
133
175
  </q-page>
134
176
  </template>
135
177
 
136
178
  <script setup>
137
179
  import _ from 'lodash'
138
- import { ref, computed, watch } from 'vue'
139
- import { Layout } from '../../layout.js'
180
+ import { ref, computed } from 'vue'
181
+ import { useQuasar } from 'quasar'
182
+ import { computeResponsiveWidth, computeResponsiveSize } from '../../utils'
183
+ import { useLayout } from '../../composables'
140
184
  import KContent from '../KContent.vue'
141
185
  import KPanel from '../KPanel.vue'
142
186
  import KOpener from './KOpener.vue'
@@ -151,13 +195,12 @@ const props = defineProps({
151
195
  }
152
196
  })
153
197
 
154
- // Emit
155
- const emit = defineEmits(['content-resized'])
156
-
157
198
  // Data
199
+ const $q = useQuasar()
200
+ const { Layout } = useLayout()
158
201
  const page = Layout.getPage()
202
+ const stickies = Layout.getStickies()
159
203
  const fab = Layout.getFab()
160
- const leftPane = Layout.getPane('left')
161
204
  const topPane = Layout.getPane('top')
162
205
  const rightPane = Layout.getPane('right')
163
206
  const bottomPane = Layout.getPane('bottom')
@@ -166,20 +209,19 @@ const topWindow = Layout.getWindow('top')
166
209
  const rightWindow = Layout.getWindow('right')
167
210
  const bottomWindow = Layout.getWindow('bottom')
168
211
  const layoutOffset = ref(0)
169
- const topPadding = ref(0)
170
- const bottomPadding = ref(0)
171
- const rightPadding = ref(0)
172
212
 
173
213
  // Computed
174
214
  const contentStyleFunction = computed(() => {
175
- const layoutPadding = props.padding ? 24 * 2 : 0
215
+ const layoutPadding = props.padding ? $q.screen.xs ? 16 : $q.screen.lt.lg ? 32 : 48 : 0
176
216
  const widthOffset = layoutPadding
177
217
  const heightOffset = layoutOffset.value + layoutPadding
178
218
  return {
179
- paddingTop: `${topPadding.value}px`,
180
- paddingBottom: `${bottomPadding.value}px`,
181
- widht: `calc(100vw - ${widthOffset}px)`,
182
- height: `calc(100vh - ${heightOffset}px)`
219
+ paddingTop: `${topPane.size[1]}px`,
220
+ paddingBottom: `${bottomPane.size[1]}px`,
221
+ width: `calc(100vw - ${widthOffset}px)`,
222
+ height: `calc(100vh - ${heightOffset}px)`,
223
+ maxWidth: `calc(100vw - ${widthOffset}px)`,
224
+ maxHeight: `calc(100vh - ${heightOffset}px)`
183
225
  }
184
226
  })
185
227
  const isTopPaneOpened = computed({
@@ -190,14 +232,6 @@ const isTopPaneOpened = computed({
190
232
  setTopPaneVisible(value)
191
233
  }
192
234
  })
193
- const isLeftPaneOpened = computed({
194
- get: function () {
195
- return leftPane.visible
196
- },
197
- set: function (value) {
198
- setLeftPaneVisible(value)
199
- }
200
- })
201
235
  const isRightPaneOpened = computed({
202
236
  get: function () {
203
237
  return rightPane.visible
@@ -214,9 +248,6 @@ const isBottomPaneOpened = computed({
214
248
  setBottomPaneVisible(value)
215
249
  }
216
250
  })
217
- const hasLeftPaneComponents = computed(() => {
218
- return !_.isEmpty(leftPane.components)
219
- })
220
251
  const hasTopPaneComponents = computed(() => {
221
252
  return !_.isEmpty(topPane.components)
222
253
  })
@@ -226,19 +257,64 @@ const hasRightPaneComponents = computed(() => {
226
257
  const hasBottomPaneComponents = computed(() => {
227
258
  return !_.isEmpty(bottomPane.components)
228
259
  })
260
+ const topPaneSize = computed(() => {
261
+ if (topPane.sizes) return computeResponsiveWidth(topPane.sizes)
262
+ return undefined
263
+ })
264
+ const topPaneStyle = computed(() => {
265
+ return topPaneSize.value ? { width: topPaneSize.value + 'px' } : {}
266
+ })
267
+ const rightPaneSize = computed(() => {
268
+ if (rightPane.sizes) return computeResponsiveSize(rightPane.sizes)
269
+ return undefined
270
+ })
271
+ const rightPaneStyle = computed(() => {
272
+ return rightPaneSize.value ? { width: rightPaneSize.value[0] + 'px', height: rightPaneSize.value[1] + 'px' } : {}
273
+ })
274
+ const bottomPaneSize = computed(() => {
275
+ if (bottomPane.sizes) return computeResponsiveWidth(bottomPane.sizes)
276
+ return undefined
277
+ })
278
+ const bottomPaneStyle = computed(() => {
279
+ return bottomPaneSize.value ? { width: bottomPaneSize.value + 'px' } : {}
280
+ })
281
+ const hasLeftWindowComponents = computed(() => {
282
+ return !_.isEmpty(leftWindow.components)
283
+ })
229
284
  const leftWindowSize = computed(() => {
230
285
  return leftWindow.size || leftWindow.sizePolicy.minSize
231
286
  })
287
+ const leftWindowStyle = computed(() => {
288
+ return { maxWidth: leftWindowSize[0] + 'px', maxHeight: leftWindowSize[1] + 'px' }
289
+ })
290
+ const hasTopWindowComponents = computed(() => {
291
+ return !_.isEmpty(topWindow.components)
292
+ })
232
293
  const topWindowSize = computed(() => {
233
294
  return topWindow.size || topWindow.sizePolicy.minSize
234
295
  })
296
+ const topWindowStyle = computed(() => {
297
+ return { maxWidth: topWindowSize[0] + 'px', maxHeight: topWindowSize[1] + 'px' }
298
+ })
299
+ const hasRightWindowComponents = computed(() => {
300
+ return !_.isEmpty(rightWindow.components)
301
+ })
235
302
  const rightWindowSize = computed(() => {
236
303
  return rightWindow.size || rightWindow.sizePolicy.minSize
237
304
  })
305
+ const rightWindowStyle = computed(() => {
306
+ return { maxWidth: rightWindowSize[0] + 'px', maxHeight: rightWindowSize[1] + 'px' }
307
+ })
308
+ const hasBottomWindowComponents = computed(() => {
309
+ return !_.isEmpty(bottomWindow.components)
310
+ })
238
311
  const bottomWindowSize = computed(() => {
239
312
  return bottomWindow.size || bottomWindow.sizePolicy.minSize
240
313
  })
241
- const fabBehaviour = computed(() => {
314
+ const bottomWindowStyle = computed(() => {
315
+ return { maxWidth: bottomWindowSize[0] + 'px', maxHeight: bottomWindowSize[1] + 'px' }
316
+ })
317
+ const fabBehavior = computed(() => {
242
318
  switch (fab.position) {
243
319
  case 'bottom-right': return { direction: 'up', actionsAlign: 'left' }
244
320
  case 'bottom-left': return { direction: 'up', actionsAlign: 'right' }
@@ -247,17 +323,6 @@ const fabBehaviour = computed(() => {
247
323
  }
248
324
  })
249
325
 
250
- // Watch
251
- watch(() => leftPane.visible, (visible) => {
252
- if (visible) {
253
- setTimeout(() => {
254
- document.addEventListener('click', clickOutsideLeftPanelListener, true)
255
- }, 500)
256
- } else {
257
- document.removeEventListener('click', clickOutsideLeftPanelListener, true)
258
- }
259
- }, { immediate: true })
260
-
261
326
  // Functions
262
327
  function layoutOffsetListener (offset) {
263
328
  // Catch layout offset and returns default Quasar function. "offset" is a Number
@@ -266,36 +331,41 @@ function layoutOffsetListener (offset) {
266
331
  layoutOffset.value = offset
267
332
  return { minHeight: offset ? `calc(100vh - ${offset}px)` : '100vh' }
268
333
  }
334
+ function getStickyPosition (sticky) {
335
+ if (sticky.position === 'center') return 'top'
336
+ return sticky.position
337
+ }
338
+ function getStickyOffset (sticky) {
339
+ if (sticky.position === 'center') {
340
+ const heightOffset = page.size[1] / 2
341
+ if (sticky.offset) return [sticky.offset[0], sticky.offset[1] + heightOffset]
342
+ return [0, heightOffset]
343
+ }
344
+ return sticky.offset
345
+ }
269
346
  function onContentResized (size) {
270
- emit('content-resized', size)
347
+ Layout.setElementSize('page', [size.width, size.height])
271
348
  }
272
349
  function onTopPaneResized (size) {
273
- topPadding.value = size.height
350
+ Layout.setElementSize('panes.top', [size.width, size.height])
274
351
  }
275
352
  function onRightPaneResized (size) {
276
- rightPadding.value = size.width
353
+ Layout.setElementSize('panes.right', [size.width, size.height])
277
354
  }
278
355
  function onBottomPaneResized (size) {
279
- bottomPadding.value = size.height
356
+ Layout.setElementSize('panes.bottom', [size.width, size.height])
280
357
  }
281
358
  function setTopPaneVisible (visible) {
282
359
  Layout.setPaneVisible('top', visible)
283
360
  }
284
- function setLeftPaneVisible (visible) {
285
- Layout.setPaneVisible('left', visible)
286
- }
287
361
  function setRightPaneVisible (visible) {
288
362
  Layout.setPaneVisible('right', visible)
289
363
  }
290
364
  function setBottomPaneVisible (visible) {
291
365
  Layout.setPaneVisible('bottom', visible)
292
366
  }
293
- function clickOutsideLeftPanelListener (event) {
294
- const leftPanelElement = document.getElementById('left-panel')
295
- if (leftPanelElement && leftPanelElement.contains(event.target)) return
296
- const leftOpenerElement = document.getElementById('left-opener')
297
- if (leftOpenerElement && leftOpenerElement.contains(event.target)) return
298
- setLeftPaneVisible(false)
367
+ function onClicked (element) {
368
+ Layout.setFocus(element)
299
369
  }
300
370
  </script>
301
371
 
@@ -303,20 +373,40 @@ function clickOutsideLeftPanelListener (event) {
303
373
  body {
304
374
  background-color: #EFEFEF;
305
375
  }
306
- .k-sticky {
307
- z-index: $sticky-z-index;
376
+ .k-top-pane-sticky {
377
+ z-index: v-bind('topPane.zIndex');
308
378
  }
309
- .k-pane, .k-left-pane {
379
+ .k-right-pane-sticky {
380
+ z-index: v-bind('rightPane.zIndex');
381
+ }
382
+ .k-bottom-pane-sticky {
383
+ z-index: v-bind('bottomPane.zIndex');
384
+ }
385
+ .k-pane {
310
386
  background-color: #FFFFFF;
311
387
  border: solid 1px lightgrey;
312
388
  border-radius: 3px;
313
389
  position: relative;
314
390
  }
315
- .k-pane:hover, .k-left-pane:hover {
391
+ .k-pane:hover {
316
392
  border: solid 1px $primary;
317
393
  }
318
- .k-left-pane {
319
- height: 100vh;
320
- width: $left-pane-width;
394
+ .k-left-window-sticky {
395
+ z-index: v-bind('leftWindow.zIndex');
396
+ }
397
+ .k-top-window-sticky {
398
+ z-index: v-bind('topWindow.zIndex');
399
+ }
400
+ .k-right-window-sticky {
401
+ z-index: v-bind('rightWindow.zIndex');
402
+ }
403
+ .k-bottom-window-sticky {
404
+ z-index: v-bind('bottomWindow.zIndex');
405
+ }
406
+ .k-fab-sticky {
407
+ z-index: v-bind('fab.zIndex');
408
+ }
409
+ .k-sticky {
410
+ z-index: v-bind('stickies.zIndex');
321
411
  }
322
412
  </style>