@kalisio/kdk 1.5.0 → 1.7.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 (487) hide show
  1. package/.nyc_output/02a7a308-a8d7-4cc6-8e61-6066a0055a96.json +1 -0
  2. package/.nyc_output/1900d596-5e87-433a-8fd6-fb7f7ded35ec.json +1 -0
  3. package/.nyc_output/{058fc679-d60a-4501-ac04-71171e5200b8.json → 27401f21-8ccf-42fa-8230-4232189d86b3.json} +0 -0
  4. package/.nyc_output/{8b1830fa-932e-4a61-9837-4a5b18f83ea9.json → 52278ef5-c337-4724-97be-e2e4416847c5.json} +0 -0
  5. package/.nyc_output/{afd2d144-3570-4858-b94a-b523dbd023dd.json → 5dd49b8a-4c84-42f9-a3d5-712247a84775.json} +0 -0
  6. package/.nyc_output/612b4859-9645-45c1-a41e-1fae420518c4.json +1 -0
  7. package/.nyc_output/bab87fe9-d99a-4759-99e6-3fc4622eeca0.json +1 -0
  8. package/.nyc_output/processinfo/02a7a308-a8d7-4cc6-8e61-6066a0055a96.json +1 -0
  9. package/.nyc_output/processinfo/1900d596-5e87-433a-8fd6-fb7f7ded35ec.json +1 -0
  10. package/.nyc_output/processinfo/27401f21-8ccf-42fa-8230-4232189d86b3.json +1 -0
  11. package/.nyc_output/processinfo/52278ef5-c337-4724-97be-e2e4416847c5.json +1 -0
  12. package/.nyc_output/processinfo/5dd49b8a-4c84-42f9-a3d5-712247a84775.json +1 -0
  13. package/.nyc_output/processinfo/612b4859-9645-45c1-a41e-1fae420518c4.json +1 -0
  14. package/.nyc_output/processinfo/bab87fe9-d99a-4759-99e6-3fc4622eeca0.json +1 -0
  15. package/.nyc_output/processinfo/index.json +1 -1
  16. package/.travis.test.sh +1 -1
  17. package/CHANGELOG.md +107 -11
  18. package/coverage/core/api/application.js.html +323 -245
  19. package/coverage/core/api/authentication.js.html +1 -1
  20. package/coverage/core/api/db.js.html +108 -108
  21. package/coverage/core/api/hooks/hooks.account.js.html +1 -1
  22. package/coverage/core/api/hooks/hooks.authentication.js.html +1 -1
  23. package/coverage/core/api/hooks/hooks.authorisations.js.html +21 -6
  24. package/coverage/core/api/hooks/hooks.devices.js.html +1 -1
  25. package/coverage/core/api/hooks/hooks.groups.js.html +1 -1
  26. package/coverage/core/api/hooks/hooks.logger.js.html +1 -1
  27. package/coverage/core/api/hooks/hooks.model.js.html +1 -1
  28. package/coverage/core/api/hooks/hooks.organisations.js.html +1 -1
  29. package/coverage/core/api/hooks/hooks.pusher.js.html +1 -1
  30. package/coverage/core/api/hooks/hooks.query.js.html +114 -48
  31. package/coverage/core/api/hooks/hooks.service.js.html +1 -1
  32. package/coverage/core/api/hooks/hooks.storage.js.html +1 -1
  33. package/coverage/core/api/hooks/hooks.tags.js.html +1 -1
  34. package/coverage/core/api/hooks/hooks.users.js.html +1 -1
  35. package/coverage/core/api/hooks/index.html +12 -12
  36. package/coverage/core/api/hooks/index.js.html +1 -1
  37. package/coverage/core/api/index.html +34 -34
  38. package/coverage/core/api/index.js.html +26 -26
  39. package/coverage/core/api/marshall.js.html +1 -1
  40. package/coverage/core/api/models/groups.model.mongodb.js.html +1 -1
  41. package/coverage/core/api/models/index.html +1 -1
  42. package/coverage/core/api/models/organisations.model.mongodb.js.html +1 -1
  43. package/coverage/core/api/models/tags.model.mongodb.js.html +1 -1
  44. package/coverage/core/api/models/users.model.mongodb.js.html +1 -1
  45. package/coverage/core/api/oauth2-handler.js.html +1 -1
  46. package/coverage/core/api/oauth2-verifier.js.html +1 -1
  47. package/coverage/core/api/services/account/account.hooks.js.html +1 -1
  48. package/coverage/core/api/services/account/account.service.js.html +1 -1
  49. package/coverage/core/api/services/account/index.html +1 -1
  50. package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
  51. package/coverage/core/api/services/authorisations/authorisations.service.js.html +31 -7
  52. package/coverage/core/api/services/authorisations/index.html +9 -9
  53. package/coverage/core/api/services/databases/databases.hooks.js.html +1 -1
  54. package/coverage/core/api/services/databases/databases.service.js.html +1 -1
  55. package/coverage/core/api/services/databases/index.html +1 -1
  56. package/coverage/core/api/services/devices/devices.hooks.js.html +1 -1
  57. package/coverage/core/api/services/devices/devices.service.js.html +1 -1
  58. package/coverage/core/api/services/devices/index.html +1 -1
  59. package/coverage/core/api/services/groups/groups.hooks.js.html +1 -1
  60. package/coverage/core/api/services/groups/index.html +1 -1
  61. package/coverage/core/api/services/index.html +11 -11
  62. package/coverage/core/api/services/index.js.html +66 -66
  63. package/coverage/core/api/services/mailer/index.html +1 -1
  64. package/coverage/core/api/services/mailer/mailer.hooks.js.html +1 -1
  65. package/coverage/core/api/services/mailer/mailer.service.js.html +1 -1
  66. package/coverage/core/api/services/organisations/index.html +1 -1
  67. package/coverage/core/api/services/organisations/organisations.hooks.js.html +1 -1
  68. package/coverage/core/api/services/organisations/organisations.service.js.html +1 -1
  69. package/coverage/core/api/services/pusher/index.html +1 -1
  70. package/coverage/core/api/services/pusher/pusher.channels.js.html +1 -1
  71. package/coverage/core/api/services/pusher/pusher.hooks.js.html +1 -1
  72. package/coverage/core/api/services/pusher/pusher.service.js.html +1 -1
  73. package/coverage/core/api/services/storage/index.html +1 -1
  74. package/coverage/core/api/services/storage/storage.hooks.js.html +1 -1
  75. package/coverage/core/api/services/tags/index.html +1 -1
  76. package/coverage/core/api/services/tags/tags.hooks.js.html +1 -1
  77. package/coverage/core/api/services/users/index.html +1 -1
  78. package/coverage/core/api/services/users/users.hooks.js.html +1 -1
  79. package/coverage/core/common/errors.js.html +1 -1
  80. package/coverage/core/common/index.html +7 -7
  81. package/coverage/core/common/index.js.html +1 -1
  82. package/coverage/core/common/permissions.js.html +81 -51
  83. package/coverage/index.html +39 -39
  84. package/coverage/lcov-report/core/api/application.js.html +323 -245
  85. package/coverage/lcov-report/core/api/authentication.js.html +1 -1
  86. package/coverage/lcov-report/core/api/db.js.html +108 -108
  87. package/coverage/lcov-report/core/api/hooks/hooks.account.js.html +1 -1
  88. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +1 -1
  89. package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +21 -6
  90. package/coverage/lcov-report/core/api/hooks/hooks.devices.js.html +1 -1
  91. package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +1 -1
  92. package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +1 -1
  93. package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +1 -1
  94. package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +1 -1
  95. package/coverage/lcov-report/core/api/hooks/hooks.pusher.js.html +1 -1
  96. package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +114 -48
  97. package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +1 -1
  98. package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +1 -1
  99. package/coverage/lcov-report/core/api/hooks/hooks.tags.js.html +1 -1
  100. package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +1 -1
  101. package/coverage/lcov-report/core/api/hooks/index.html +12 -12
  102. package/coverage/lcov-report/core/api/hooks/index.js.html +1 -1
  103. package/coverage/lcov-report/core/api/index.html +34 -34
  104. package/coverage/lcov-report/core/api/index.js.html +26 -26
  105. package/coverage/lcov-report/core/api/marshall.js.html +1 -1
  106. package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +1 -1
  107. package/coverage/lcov-report/core/api/models/index.html +1 -1
  108. package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +1 -1
  109. package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +1 -1
  110. package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +1 -1
  111. package/coverage/lcov-report/core/api/oauth2-handler.js.html +1 -1
  112. package/coverage/lcov-report/core/api/oauth2-verifier.js.html +1 -1
  113. package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +1 -1
  114. package/coverage/lcov-report/core/api/services/account/account.service.js.html +1 -1
  115. package/coverage/lcov-report/core/api/services/account/index.html +1 -1
  116. package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
  117. package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +31 -7
  118. package/coverage/lcov-report/core/api/services/authorisations/index.html +9 -9
  119. package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +1 -1
  120. package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +1 -1
  121. package/coverage/lcov-report/core/api/services/databases/index.html +1 -1
  122. package/coverage/lcov-report/core/api/services/devices/devices.hooks.js.html +1 -1
  123. package/coverage/lcov-report/core/api/services/devices/devices.service.js.html +1 -1
  124. package/coverage/lcov-report/core/api/services/devices/index.html +1 -1
  125. package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +1 -1
  126. package/coverage/lcov-report/core/api/services/groups/index.html +1 -1
  127. package/coverage/lcov-report/core/api/services/index.html +11 -11
  128. package/coverage/lcov-report/core/api/services/index.js.html +66 -66
  129. package/coverage/lcov-report/core/api/services/mailer/index.html +1 -1
  130. package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +1 -1
  131. package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +1 -1
  132. package/coverage/lcov-report/core/api/services/organisations/index.html +1 -1
  133. package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +1 -1
  134. package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +1 -1
  135. package/coverage/lcov-report/core/api/services/pusher/index.html +1 -1
  136. package/coverage/lcov-report/core/api/services/pusher/pusher.channels.js.html +1 -1
  137. package/coverage/lcov-report/core/api/services/pusher/pusher.hooks.js.html +1 -1
  138. package/coverage/lcov-report/core/api/services/pusher/pusher.service.js.html +1 -1
  139. package/coverage/lcov-report/core/api/services/storage/index.html +1 -1
  140. package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +1 -1
  141. package/coverage/lcov-report/core/api/services/tags/index.html +1 -1
  142. package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +1 -1
  143. package/coverage/lcov-report/core/api/services/users/index.html +1 -1
  144. package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +1 -1
  145. package/coverage/lcov-report/core/common/errors.js.html +1 -1
  146. package/coverage/lcov-report/core/common/index.html +7 -7
  147. package/coverage/lcov-report/core/common/index.js.html +1 -1
  148. package/coverage/lcov-report/core/common/permissions.js.html +81 -51
  149. package/coverage/lcov-report/index.html +39 -39
  150. package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +1 -1
  151. package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +1 -1
  152. package/coverage/lcov-report/map/api/hooks/index.html +1 -1
  153. package/coverage/lcov-report/map/api/hooks/index.js.html +1 -1
  154. package/coverage/lcov-report/map/api/index.html +1 -1
  155. package/coverage/lcov-report/map/api/index.js.html +1 -1
  156. package/coverage/lcov-report/map/api/marshall.js.html +1 -1
  157. package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +1 -1
  158. package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +1 -1
  159. package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +14 -5
  160. package/coverage/lcov-report/map/api/models/index.html +7 -7
  161. package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +1 -1
  162. package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +1 -1
  163. package/coverage/lcov-report/map/api/services/alerts/index.html +1 -1
  164. package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +1 -1
  165. package/coverage/lcov-report/map/api/services/catalog/index.html +1 -1
  166. package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
  167. package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
  168. package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +1 -1
  169. package/coverage/lcov-report/map/api/services/features/index.html +1 -1
  170. package/coverage/lcov-report/map/api/services/geocoder/geocoder.hooks.js.html +1 -1
  171. package/coverage/lcov-report/map/api/services/geocoder/geocoder.service.js.html +1 -1
  172. package/coverage/lcov-report/map/api/services/geocoder/index.html +1 -1
  173. package/coverage/lcov-report/map/api/services/index.html +1 -1
  174. package/coverage/lcov-report/map/api/services/index.js.html +1 -1
  175. package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +1 -1
  176. package/coverage/lcov-report/map/common/errors.js.html +1 -1
  177. package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +1 -1
  178. package/coverage/lcov-report/map/common/grid.js.html +1 -1
  179. package/coverage/lcov-report/map/common/index.html +1 -1
  180. package/coverage/lcov-report/map/common/index.js.html +1 -1
  181. package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +1 -1
  182. package/coverage/lcov-report/map/common/moment-utils.js.html +1 -1
  183. package/coverage/lcov-report/map/common/opendap-grid-source.js.html +1 -1
  184. package/coverage/lcov-report/map/common/opendap-utils.js.html +1 -1
  185. package/coverage/lcov-report/map/common/permissions.js.html +1 -1
  186. package/coverage/lcov-report/map/common/time-based-grid-source.js.html +1 -1
  187. package/coverage/lcov-report/map/common/tms-utils.js.html +1 -1
  188. package/coverage/lcov-report/map/common/wcs-grid-source.js.html +1 -1
  189. package/coverage/lcov-report/map/common/wcs-utils.js.html +1 -1
  190. package/coverage/lcov-report/map/common/weacast-grid-source.js.html +1 -1
  191. package/coverage/lcov-report/map/common/wfs-utils.js.html +1 -1
  192. package/coverage/lcov-report/map/common/wms-utils.js.html +1 -1
  193. package/coverage/lcov-report/map/common/wmts-utils.js.html +1 -1
  194. package/coverage/lcov.info +948 -769
  195. package/coverage/map/api/hooks/hooks.catalog.js.html +1 -1
  196. package/coverage/map/api/hooks/hooks.query.js.html +1 -1
  197. package/coverage/map/api/hooks/index.html +1 -1
  198. package/coverage/map/api/hooks/index.js.html +1 -1
  199. package/coverage/map/api/index.html +1 -1
  200. package/coverage/map/api/index.js.html +1 -1
  201. package/coverage/map/api/marshall.js.html +1 -1
  202. package/coverage/map/api/models/alerts.model.mongodb.js.html +1 -1
  203. package/coverage/map/api/models/catalog.model.mongodb.js.html +1 -1
  204. package/coverage/map/api/models/features.model.mongodb.js.html +14 -5
  205. package/coverage/map/api/models/index.html +7 -7
  206. package/coverage/map/api/services/alerts/alerts.hooks.js.html +1 -1
  207. package/coverage/map/api/services/alerts/alerts.service.js.html +1 -1
  208. package/coverage/map/api/services/alerts/index.html +1 -1
  209. package/coverage/map/api/services/catalog/catalog.hooks.js.html +1 -1
  210. package/coverage/map/api/services/catalog/index.html +1 -1
  211. package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
  212. package/coverage/map/api/services/daptiles/index.html +1 -1
  213. package/coverage/map/api/services/features/features.hooks.js.html +1 -1
  214. package/coverage/map/api/services/features/index.html +1 -1
  215. package/coverage/map/api/services/geocoder/geocoder.hooks.js.html +1 -1
  216. package/coverage/map/api/services/geocoder/geocoder.service.js.html +1 -1
  217. package/coverage/map/api/services/geocoder/index.html +1 -1
  218. package/coverage/map/api/services/index.html +1 -1
  219. package/coverage/map/api/services/index.js.html +1 -1
  220. package/coverage/map/common/dynamic-grid-source.js.html +1 -1
  221. package/coverage/map/common/errors.js.html +1 -1
  222. package/coverage/map/common/geotiff-grid-source.js.html +1 -1
  223. package/coverage/map/common/grid.js.html +1 -1
  224. package/coverage/map/common/index.html +1 -1
  225. package/coverage/map/common/index.js.html +1 -1
  226. package/coverage/map/common/meteo-model-grid-source.js.html +1 -1
  227. package/coverage/map/common/moment-utils.js.html +1 -1
  228. package/coverage/map/common/opendap-grid-source.js.html +1 -1
  229. package/coverage/map/common/opendap-utils.js.html +1 -1
  230. package/coverage/map/common/permissions.js.html +1 -1
  231. package/coverage/map/common/time-based-grid-source.js.html +1 -1
  232. package/coverage/map/common/tms-utils.js.html +1 -1
  233. package/coverage/map/common/wcs-grid-source.js.html +1 -1
  234. package/coverage/map/common/wcs-utils.js.html +1 -1
  235. package/coverage/map/common/weacast-grid-source.js.html +1 -1
  236. package/coverage/map/common/wfs-utils.js.html +1 -1
  237. package/coverage/map/common/wms-utils.js.html +1 -1
  238. package/coverage/map/common/wmts-utils.js.html +1 -1
  239. package/extras/tours/map/catalog-panel.js +61 -10
  240. package/extras/tours/map/create-view.js +25 -0
  241. package/extras/tours/map/fab.js +10 -1
  242. package/extras/tours/map/navigation-bar.js +56 -10
  243. package/lib/core/api/application.js +44 -10
  244. package/lib/core/api/application.js.map +1 -1
  245. package/lib/core/api/hooks/hooks.authorisations.js +8 -1
  246. package/lib/core/api/hooks/hooks.authorisations.js.map +1 -1
  247. package/lib/core/api/hooks/hooks.query.js +135 -100
  248. package/lib/core/api/hooks/hooks.query.js.map +1 -1
  249. package/lib/core/api/services/authorisations/authorisations.service.js +13 -1
  250. package/lib/core/api/services/authorisations/authorisations.service.js.map +1 -1
  251. package/lib/core/api/services/pusher/pusher.service.js +40 -16
  252. package/lib/core/api/services/pusher/pusher.service.js.map +1 -1
  253. package/lib/core/client/components/chart/KChart.vue +115 -0
  254. package/lib/core/client/components/chart/KStatsChart.vue +76 -0
  255. package/lib/core/client/components/chart/index.js +20 -0
  256. package/lib/core/client/components/chart/index.js.map +1 -0
  257. package/lib/core/client/components/collection/KColumn.vue +29 -28
  258. package/lib/core/client/components/collection/KFilter.vue +103 -72
  259. package/lib/core/client/components/collection/KHistoryEntry.vue +1 -1
  260. package/lib/core/client/components/collection/KItem.vue +4 -4
  261. package/lib/core/client/components/editor/KModalEditor.vue +3 -4
  262. package/lib/core/client/components/editor/KSettingsEditor.vue +6 -2
  263. package/lib/core/client/components/form/KChipsField.vue +4 -4
  264. package/lib/core/client/components/form/KFileField.vue +13 -6
  265. package/lib/core/client/components/form/KRoleField.vue +5 -2
  266. package/lib/core/client/components/form/KTextField.vue +12 -2
  267. package/lib/core/client/components/form/KUnitField.vue +57 -0
  268. package/lib/core/client/components/form/KUrlField.vue +1 -1
  269. package/lib/core/client/components/form/KView.vue +1 -1
  270. package/lib/core/client/components/frame/KAction.vue +41 -7
  271. package/lib/core/client/components/frame/KBlock.vue +7 -7
  272. package/lib/core/client/components/frame/KContent.vue +1 -1
  273. package/lib/core/client/components/frame/KModal.vue +66 -20
  274. package/lib/core/client/components/frame/KOpener.vue +1 -1
  275. package/lib/core/client/components/frame/KPanel.vue +8 -7
  276. package/lib/core/client/components/frame/KPopupAction.vue +6 -0
  277. package/lib/core/client/components/frame/KScreen.vue +1 -1
  278. package/lib/core/client/components/frame/KScrollArea.vue +65 -0
  279. package/lib/core/client/components/frame/KStamp.vue +4 -2
  280. package/lib/core/client/components/frame/index.js +6 -6
  281. package/lib/core/client/components/frame/index.js.map +1 -1
  282. package/lib/core/client/components/input/KColorChooser.vue +3 -5
  283. package/lib/core/client/components/input/KIconChooser.vue +41 -40
  284. package/lib/core/client/components/input/KPalette.vue +1 -1
  285. package/lib/core/client/components/input/index.js +14 -4
  286. package/lib/core/client/components/input/index.js.map +1 -1
  287. package/lib/core/client/components/layout/KAbout.vue +47 -49
  288. package/lib/core/client/components/layout/KFab.vue +1 -1
  289. package/lib/core/client/components/layout/KLayout.vue +10 -2
  290. package/lib/core/client/components/layout/KPage.vue +19 -18
  291. package/lib/core/client/components/layout/KTour.vue +5 -3
  292. package/lib/core/client/components/layout/KWindow.vue +211 -59
  293. package/lib/core/client/components/media/KMediaBrowser.vue +6 -6
  294. package/lib/core/client/components/menu/KMenu.vue +13 -5
  295. package/lib/core/client/components/menu/KRadialFab.vue +22 -24
  296. package/lib/core/client/components/menu/KRadialFabItem.vue +17 -18
  297. package/lib/core/client/components/team/KAddMember.vue +1 -1
  298. package/lib/core/client/components/team/KChangeRole.vue +11 -14
  299. package/lib/core/client/components/team/KGroupCard.vue +12 -5
  300. package/lib/core/client/components/team/KJoinGroup.vue +22 -22
  301. package/lib/core/client/components/team/KMemberCard.vue +19 -4
  302. package/lib/core/client/components/time/KAbsoluteTimeRange.vue +190 -0
  303. package/lib/core/client/components/time/KRelativeTimeRanges.vue +192 -0
  304. package/lib/core/client/components/time/index.js +20 -0
  305. package/lib/core/client/components/time/index.js.map +1 -0
  306. package/lib/core/client/components/viewer/KModalViewer.vue +10 -9
  307. package/lib/core/client/i18n/core_en.json +99 -17
  308. package/lib/core/client/i18n/core_fr.json +94 -18
  309. package/lib/core/client/index.js +16 -3
  310. package/lib/core/client/index.js.map +1 -1
  311. package/lib/core/client/mixins/mixin.base-collection.js +11 -1
  312. package/lib/core/client/mixins/mixin.base-collection.js.map +1 -1
  313. package/lib/core/client/mixins/mixin.base-widget.js +26 -12
  314. package/lib/core/client/mixins/mixin.base-widget.js.map +1 -1
  315. package/lib/core/client/reader.js +46 -15
  316. package/lib/core/client/reader.js.map +1 -1
  317. package/lib/core/client/readers/reader.csv.js +33 -22
  318. package/lib/core/client/readers/reader.csv.js.map +1 -1
  319. package/lib/core/client/readers/reader.json.js +31 -20
  320. package/lib/core/client/readers/reader.json.js.map +1 -1
  321. package/lib/core/client/services/index.js +16 -4
  322. package/lib/core/client/services/index.js.map +1 -1
  323. package/lib/core/client/services/local-settings.service.js +10 -4
  324. package/lib/core/client/services/local-settings.service.js.map +1 -1
  325. package/lib/core/client/time.js +29 -18
  326. package/lib/core/client/time.js.map +1 -1
  327. package/lib/core/client/units.js +207 -0
  328. package/lib/core/client/units.js.map +1 -0
  329. package/lib/core/client/utils.js +11 -0
  330. package/lib/core/client/utils.js.map +1 -1
  331. package/lib/core/common/permissions.js +44 -34
  332. package/lib/core/common/permissions.js.map +1 -1
  333. package/lib/core/common/schemas/settings.update.json +86 -4
  334. package/lib/map/api/hooks/hooks.catalog.js +20 -0
  335. package/lib/map/api/hooks/hooks.catalog.js.map +1 -1
  336. package/lib/map/api/models/catalog.model.mongodb.js +6 -1
  337. package/lib/map/api/models/catalog.model.mongodb.js.map +1 -1
  338. package/lib/map/api/models/features.model.mongodb.js +8 -0
  339. package/lib/map/api/models/features.model.mongodb.js.map +1 -1
  340. package/lib/map/api/services/catalog/catalog.hooks.js +3 -1
  341. package/lib/map/api/services/catalog/catalog.hooks.js.map +1 -1
  342. package/lib/map/client/components/KCaptureToolbar.vue +2 -7
  343. package/lib/map/client/components/KColorLegend.vue +38 -25
  344. package/lib/map/client/components/KFeaturesChart.vue +84 -114
  345. package/lib/map/client/components/KFeaturesFilter.vue +37 -38
  346. package/lib/map/client/components/KFeaturesTable.vue +15 -16
  347. package/lib/map/client/components/KLayerStyleEditor.vue +1 -1
  348. package/lib/map/client/components/KLayerStyleForm.vue +123 -51
  349. package/lib/map/client/components/KLevelSlider.vue +30 -29
  350. package/lib/map/client/components/KLocationMap.vue +2 -2
  351. package/lib/map/client/components/KMeasureTool.vue +49 -28
  352. package/lib/map/client/components/KPositionIndicator.vue +4 -4
  353. package/lib/map/client/components/KTimeline.vue +30 -35
  354. package/lib/map/client/components/KTimezoneMap.vue +156 -0
  355. package/lib/map/client/components/KUrlLegend.vue +11 -10
  356. package/lib/map/client/components/catalog/KAddLayer.vue +3 -2
  357. package/lib/map/client/components/catalog/KBaseLayersSelector.vue +1 -1
  358. package/lib/map/client/components/catalog/KCatalogLayersPanel.vue +56 -0
  359. package/lib/map/client/components/catalog/KCreateView.vue +91 -0
  360. package/lib/map/client/components/catalog/KLayerCategories.vue +5 -3
  361. package/lib/map/client/components/catalog/{KCatalog.vue → KLayersPanel.vue} +23 -22
  362. package/lib/map/client/components/catalog/KLayersSelector.vue +3 -3
  363. package/lib/map/client/components/catalog/KUserLayersPanel.vue +40 -0
  364. package/lib/map/client/components/catalog/KViewSelector.vue +46 -0
  365. package/lib/map/client/components/catalog/KViewsPanel.vue +110 -0
  366. package/lib/map/client/components/catalog/KWeatherLayersSelector.vue +5 -14
  367. package/lib/map/client/components/form/KTimezoneField.vue +135 -0
  368. package/lib/map/client/components/widget/KElevationProfile.vue +488 -0
  369. package/lib/map/client/components/widget/KInformationBox.vue +53 -37
  370. package/lib/map/client/components/widget/KMapillaryViewer.vue +26 -16
  371. package/lib/map/client/components/widget/KTimeSeries.vue +283 -358
  372. package/lib/map/client/i18n/map_en.json +73 -56
  373. package/lib/map/client/i18n/map_fr.json +75 -58
  374. package/lib/map/client/init.js +4 -3
  375. package/lib/map/client/init.js.map +1 -1
  376. package/lib/map/client/leaflet/GradientPath.js +40 -19
  377. package/lib/map/client/leaflet/GradientPath.js.map +1 -1
  378. package/lib/map/client/leaflet/TiledFeatureLayer.js +527 -93
  379. package/lib/map/client/leaflet/TiledFeatureLayer.js.map +1 -1
  380. package/lib/map/client/leaflet/TiledMeshLayer.js +58 -35
  381. package/lib/map/client/leaflet/TiledMeshLayer.js.map +1 -1
  382. package/lib/map/client/leaflet/utils.js +44 -3
  383. package/lib/map/client/leaflet/utils.js.map +1 -1
  384. package/lib/map/client/mixins/globe/mixin.base-globe.js +16 -1
  385. package/lib/map/client/mixins/globe/mixin.base-globe.js.map +1 -1
  386. package/lib/map/client/mixins/globe/mixin.file-layers.js +12 -2
  387. package/lib/map/client/mixins/globe/mixin.file-layers.js.map +1 -1
  388. package/lib/map/client/mixins/globe/mixin.geojson-layers.js +23 -27
  389. package/lib/map/client/mixins/globe/mixin.geojson-layers.js.map +1 -1
  390. package/lib/map/client/mixins/globe/mixin.popup.js +7 -3
  391. package/lib/map/client/mixins/globe/mixin.popup.js.map +1 -1
  392. package/lib/map/client/mixins/globe/mixin.style.js +8 -4
  393. package/lib/map/client/mixins/globe/mixin.style.js.map +1 -1
  394. package/lib/map/client/mixins/globe/mixin.tooltip.js +7 -3
  395. package/lib/map/client/mixins/globe/mixin.tooltip.js.map +1 -1
  396. package/lib/map/client/mixins/index.js +23 -18
  397. package/lib/map/client/mixins/index.js.map +1 -1
  398. package/lib/map/client/mixins/map/mixin.base-map.js +32 -8
  399. package/lib/map/client/mixins/map/mixin.base-map.js.map +1 -1
  400. package/lib/map/client/mixins/map/mixin.edit-layers.js +8 -4
  401. package/lib/map/client/mixins/map/mixin.edit-layers.js.map +1 -1
  402. package/lib/map/client/mixins/map/mixin.file-layers.js +13 -5
  403. package/lib/map/client/mixins/map/mixin.file-layers.js.map +1 -1
  404. package/lib/map/client/mixins/map/mixin.geojson-layers.js +65 -14
  405. package/lib/map/client/mixins/map/mixin.geojson-layers.js.map +1 -1
  406. package/lib/map/client/mixins/map/mixin.heatmap-layers.js +6 -1
  407. package/lib/map/client/mixins/map/mixin.heatmap-layers.js.map +1 -1
  408. package/lib/map/client/mixins/map/mixin.popup.js +4 -2
  409. package/lib/map/client/mixins/map/mixin.popup.js.map +1 -1
  410. package/lib/map/client/mixins/map/mixin.style.js +9 -5
  411. package/lib/map/client/mixins/map/mixin.style.js.map +1 -1
  412. package/lib/map/client/mixins/map/mixin.tiled-mesh-layers.js +4 -11
  413. package/lib/map/client/mixins/map/mixin.tiled-mesh-layers.js.map +1 -1
  414. package/lib/map/client/mixins/map/mixin.tiled-wind-layers.js +0 -11
  415. package/lib/map/client/mixins/map/mixin.tiled-wind-layers.js.map +1 -1
  416. package/lib/map/client/mixins/map/mixin.tooltip.js +4 -2
  417. package/lib/map/client/mixins/map/mixin.tooltip.js.map +1 -1
  418. package/lib/map/client/mixins/mixin.activity.js +150 -150
  419. package/lib/map/client/mixins/mixin.activity.js.map +1 -1
  420. package/lib/map/client/mixins/mixin.catalog-panel.js +36 -0
  421. package/lib/map/client/mixins/mixin.catalog-panel.js.map +1 -0
  422. package/lib/map/client/mixins/mixin.feature-selection.js +17 -8
  423. package/lib/map/client/mixins/mixin.feature-selection.js.map +1 -1
  424. package/lib/map/client/mixins/mixin.feature-service.js +36 -16
  425. package/lib/map/client/mixins/mixin.feature-service.js.map +1 -1
  426. package/lib/map/client/mixins/mixin.infobox.js +1 -1
  427. package/lib/map/client/mixins/mixin.infobox.js.map +1 -1
  428. package/lib/map/client/mixins/mixin.levels.js +26 -12
  429. package/lib/map/client/mixins/mixin.levels.js.map +1 -1
  430. package/lib/map/client/mixins/mixin.style.js +1 -0
  431. package/lib/map/client/mixins/mixin.style.js.map +1 -1
  432. package/lib/map/client/mixins/mixin.weacast.js +22 -28
  433. package/lib/map/client/mixins/mixin.weacast.js.map +1 -1
  434. package/lib/map/client/pixi-utils.js +8 -177
  435. package/lib/map/client/pixi-utils.js.map +1 -1
  436. package/lib/map/client/readers/index.js +12 -0
  437. package/lib/map/client/readers/index.js.map +1 -1
  438. package/lib/map/client/readers/reader.geojson.js +62 -34
  439. package/lib/map/client/readers/reader.geojson.js.map +1 -1
  440. package/lib/map/client/readers/reader.gpx.js +32 -21
  441. package/lib/map/client/readers/reader.gpx.js.map +1 -1
  442. package/lib/map/client/readers/reader.kml.js +32 -21
  443. package/lib/map/client/readers/reader.kml.js.map +1 -1
  444. package/lib/map/client/readers/reader.shp.js +116 -0
  445. package/lib/map/client/readers/reader.shp.js.map +1 -0
  446. package/lib/map/client/utils.js +1 -8
  447. package/lib/map/client/utils.js.map +1 -1
  448. package/lib/map/common/grid.js +131 -0
  449. package/lib/map/common/grid.js.map +1 -1
  450. package/lib/map/common/index.js +22 -11
  451. package/lib/map/common/index.js.map +1 -1
  452. package/lib/map/common/meteo-model-grid-source.js +5 -2
  453. package/lib/map/common/meteo-model-grid-source.js.map +1 -1
  454. package/lib/map/common/time-based-grid-source.js +5 -2
  455. package/lib/map/common/time-based-grid-source.js.map +1 -1
  456. package/lib/test/client/core/account.js +1 -1
  457. package/lib/test/client/core/account.js.map +1 -1
  458. package/lib/test/client/core/collection.js +31 -13
  459. package/lib/test/client/core/collection.js.map +1 -1
  460. package/lib/test/client/core/layout.js +137 -49
  461. package/lib/test/client/core/layout.js.map +1 -1
  462. package/lib/test/client/core/screens.js +1 -1
  463. package/lib/test/client/core/screens.js.map +1 -1
  464. package/lib/test/client/core/utils.js +89 -22
  465. package/lib/test/client/core/utils.js.map +1 -1
  466. package/lib/test/client/map/catalog.js +134 -41
  467. package/lib/test/client/map/catalog.js.map +1 -1
  468. package/lib/test/client/map/controls.js +7 -4
  469. package/lib/test/client/map/controls.js.map +1 -1
  470. package/lib/test/client/map/index.js +12 -0
  471. package/lib/test/client/map/index.js.map +1 -1
  472. package/lib/test/client/map/utils.js +67 -0
  473. package/lib/test/client/map/utils.js.map +1 -0
  474. package/package.json +5 -6
  475. package/.nyc_output/2226bcce-9d22-4dad-b9fa-46564b5565c7.json +0 -1
  476. package/.nyc_output/6dc4b140-1a8a-4d69-b91c-89c557883d6e.json +0 -1
  477. package/.nyc_output/processinfo/058fc679-d60a-4501-ac04-71171e5200b8.json +0 -1
  478. package/.nyc_output/processinfo/2226bcce-9d22-4dad-b9fa-46564b5565c7.json +0 -1
  479. package/.nyc_output/processinfo/6dc4b140-1a8a-4d69-b91c-89c557883d6e.json +0 -1
  480. package/.nyc_output/processinfo/8b1830fa-932e-4a61-9837-4a5b18f83ea9.json +0 -1
  481. package/.nyc_output/processinfo/afd2d144-3570-4858-b94a-b523dbd023dd.json +0 -1
  482. package/extras/tours/map/favorite-views.js +0 -53
  483. package/lib/core/client/components/frame/KChart.vue +0 -60
  484. package/lib/core/client/components/input/KCodeInput.vue +0 -50
  485. package/lib/core/client/components/input/KTimeRangeChooser.vue +0 -109
  486. package/lib/core/client/components/time/KTimeRange.vue +0 -144
  487. package/lib/map/client/components/KFavoriteViews.vue +0 -217
@@ -90,7 +90,7 @@ export default {
90
90
  }
91
91
  </script>
92
92
 
93
- <style lang="stylus">
93
+ <style lang="scss">
94
94
  .k-fab {
95
95
  right: 12px;
96
96
  bottom: 12px;
@@ -4,13 +4,21 @@
4
4
  Header
5
5
  -->
6
6
  <q-header v-if="header.content" v-model="isHeaderVisible" v-bind="config.header" bordered>
7
- <k-panel id="header" :content="header.content" :mode="header.mode" :filter="header.filter" />
7
+ <k-panel
8
+ id="header"
9
+ :content="header.content"
10
+ :mode="header.mode"
11
+ :filter="header.filter" />
8
12
  </q-header>
9
13
  <!--
10
14
  Footer
11
15
  -->
12
16
  <q-footer v-if="footer.content" v-model="isFooterVisible" v-bind="config.footer" bordered>
13
- <k-panel id="footer" :content="footer.content" :mode="footer.mode" :filter="footer.filter" />
17
+ <k-panel
18
+ id="footer"
19
+ :content="footer.content"
20
+ :mode="footer.mode"
21
+ :filter="footer.filter" />
14
22
  </q-footer>
15
23
  <!--
16
24
  Page container
@@ -73,8 +73,8 @@
73
73
  <k-fab />
74
74
  </q-page-sticky>
75
75
  <!-- window -->
76
- <q-page-sticky position="top" :offset="widgetOffset">
77
- <k-window id="window" ref="window" />
76
+ <q-page-sticky position="top-left" :offset="window.position">
77
+ <k-window id="window" :style="`max-width: ${window.size[0]}px; max-height: ${window.size[1]};px`" />
78
78
  </q-page-sticky>
79
79
  <!-- left -->
80
80
  <q-page-sticky position="left">
@@ -181,6 +181,7 @@ export default {
181
181
  rightPane: this.$store.get('rightPane'),
182
182
  bottomPane: this.$store.get('bottomPane'),
183
183
  page: this.$store.get('page'),
184
+ window: this.$store.get('window'),
184
185
  hasLeftPaneOpener: false,
185
186
  hasTopPaneOpener: false,
186
187
  hasRightPaneOpener: false,
@@ -190,7 +191,6 @@ export default {
190
191
  leftPadding: 0,
191
192
  bottomPadding: 0,
192
193
  rightPadding: 0,
193
- widgetOffset: [0, 0],
194
194
  fabOffset: [16, 16]
195
195
  }
196
196
  },
@@ -280,19 +280,20 @@ export default {
280
280
  }
281
281
  </script>
282
282
 
283
- <style lang="stylus">
284
- body {
285
- background-color: #EFEFEF;
286
- }
287
- .k-pane, .k-left-pane {
288
- border: solid 1px lightgrey;
289
- border-radius: 3px;
290
- }
291
- .k-pane:hover, .k-left-pane:hover {
292
- border: solid 1px var(--q-color-primary);
293
- }
294
- .k-left-pane {
295
- height: 100vh;
296
- width: 300px;
297
- }
283
+ <style lang="scss">
284
+ body {
285
+ background-color: #EFEFEF;
286
+ }
287
+ .k-pane, .k-left-pane {
288
+ background-color: #FFFFFF;
289
+ border: solid 1px lightgrey;
290
+ border-radius: 3px;
291
+ }
292
+ .k-pane:hover, .k-left-pane:hover {
293
+ border: solid 1px var(--q-color-primary);
294
+ }
295
+ .k-left-pane {
296
+ height: 100vh;
297
+ width: 300px;
298
+ }
298
299
  </style>
@@ -429,10 +429,12 @@ export default {
429
429
  }
430
430
  </script>
431
431
 
432
- <style lang="stylus" scoped>
433
- .v-step
432
+ <style lang="scss" scoped>
433
+ .v-step {
434
434
  background: var(--q-color-accent);
435
435
  z-index: 10000;
436
- .v-tour__target--highlighted
436
+ }
437
+ .v-tour__target--highlighted {
437
438
  box-shadow: 0 0 0 99999px rgba(0,0,0,.4);
439
+ }
438
440
  </style>
@@ -1,34 +1,34 @@
1
1
  <template>
2
- <div v-if="widget" class="k-window" :style="windowStyle">
2
+ <div v-if="widget" class="k-window fit column">
3
3
  <!--
4
- Window bar
4
+ Window header
5
5
  -->
6
- <div class="row justify-between items-center q-pb-xs">
7
- <!-- Widgets tab bar -->
8
- <q-tabs
9
- v-model="widget"
10
- dense no-caps
11
- active-color="primary"
12
- align="left"
13
- narrow-indicator
14
- >
15
- <template v-for="(widget,index) in widgets">
16
- <q-tab :key="index" :name="widget.id" :icon="widget.icon" />
17
- </template>
18
- </q-tabs>
19
- <!-- Window actions -->
20
- <k-panel id="widget-actions" :content="actions" color="primary" />
6
+ <div
7
+ id="window-header"
8
+ class="k-window-header full-width"
9
+ v-touch-pan.prevent.mouse="onMoved">
10
+ <k-panel id="window-actions" :content="actions" />
21
11
  </div>
22
12
  <!--
23
13
  Window content
24
14
  -->
25
- <q-tab-panels v-model="widget" animated>
26
- <template v-for="(widget, index) in widgets">
27
- <q-tab-panel :key="index" :name="widget.id" class="no-padding">
28
- <component :is="widget.componentKey" :mode="mode" v-bind="widget.props" style="z-index: 1" />
29
- </q-tab-panel>
30
- </template>>
31
- </q-tab-panels>
15
+ <div class="fit">
16
+ <q-tab-panels v-model="widget" animated>
17
+ <template v-for="(widget, index) in widgets">
18
+ <q-tab-panel :key="index" :name="widget.id" class="no-padding no-scroll">
19
+ <component :is="widget.componentKey" :mode="mode" v-bind="widget.props" style="z-index: 1;" />
20
+ </q-tab-panel>
21
+ </template>>
22
+ </q-tab-panels>
23
+ </div>
24
+ <!--
25
+ Window footer
26
+ -->
27
+ <div
28
+ id="window-footer"
29
+ class="k-window-footer full-width row justify-end">
30
+ <q-icon v-if="mode !== 'maximized'" class="k-window-grip" name="las la-slash" size="10px" v-touch-pan.prevent.mouse="onResized" />
31
+ </div>
32
32
  </div>
33
33
  </template>
34
34
 
@@ -48,22 +48,6 @@ export default {
48
48
  this.$store.set('window.current', value)
49
49
  }
50
50
  },
51
- actions () {
52
- return [
53
- {
54
- id: 'change-mode',
55
- icon: this.mode === 'minimized' ? 'las la-expand' : 'las la-compress',
56
- tooltip: this.mode === 'minimized' ? 'KWindow.MAXIMIZE_ACTION' : 'KWindow.MINIMIZE_ACTION',
57
- handler: this.onModeChanged
58
- },
59
- {
60
- id: 'close-action',
61
- icon: 'las la-times',
62
- tooltip: this.$t('KWindow.CLOSE_ACTION'),
63
- handler: this.onClosed
64
- }
65
- ]
66
- },
67
51
  widgets () {
68
52
  let widgets = this.window.widgets
69
53
  // Apply filtering
@@ -78,43 +62,211 @@ export default {
78
62
  })
79
63
  return widgets
80
64
  },
81
- windowStyle () {
82
- if (this.mode === 'maximized') return 'width: 100vw'
83
- return this.$q.screen.gt.lg ? 'width: 55vw'
84
- : this.$q.screen.gt.md ? 'width: 70vw'
85
- : this.$q.screen.gt.sm ? 'width: 85vw'
86
- : 'width: 100vw'
65
+ actions () {
66
+ const widgetMenuItems = []
67
+ _.forEach(this.widgets, widget => {
68
+ widgetMenuItems.push({
69
+ id: widget.id,
70
+ label: widget.label,
71
+ icon: widget.icon,
72
+ handler: () => { this.widget = widget.id }
73
+ })
74
+ })
75
+ const widgetMenu = [{
76
+ id: 'widgets-menu-items',
77
+ component: 'menu/KMenu',
78
+ icon: 'las la-cube',
79
+ tooltip: 'Widgets',
80
+ size: 'sm',
81
+ actionRenderer: 'item',
82
+ content: widgetMenuItems
83
+ }]
84
+ const windowControls = [
85
+ {
86
+ id: 'pin-action',
87
+ icon: 'las la-angle-up',
88
+ tooltip: 'KWindow.PIN_ACTION',
89
+ size: 'sm',
90
+ visible: this.mode === 'floating',
91
+ handler: this.onPinned
92
+ },
93
+ {
94
+ id: 'maximize-action',
95
+ icon: 'las la-expand',
96
+ tooltip: 'KWindow.MAXIMIZE_ACTION',
97
+ size: 'sm',
98
+ visible: this.mode !== 'maximized',
99
+ handler: this.onMaximized
100
+ },
101
+ {
102
+ id: 'restore-action',
103
+ icon: 'las la-compress',
104
+ tooltip: 'KWindow.RESTORE_ACTION',
105
+ size: 'sm',
106
+ visible: this.mode === 'maximized',
107
+ handler: this.onRestored
108
+ },
109
+ {
110
+ id: 'close-action',
111
+ icon: 'las la-times',
112
+ tooltip: this.$t('KWindow.CLOSE_ACTION'),
113
+ size: 'sm',
114
+ handler: this.onClosed
115
+ }
116
+ ]
117
+ return _.concat(widgetMenu, this.window.widgetActions, [{ component: 'QSpace' }], windowControls)
87
118
  }
88
119
  },
89
120
  data () {
90
121
  return {
91
122
  window: this.$store.get('window'),
92
- mode: 'minimized'
123
+ mode: 'pinned'
124
+ }
125
+ },
126
+ watch: {
127
+ '$q.screen.width': {
128
+ handler () {
129
+ this.onScreenResized()
130
+ }
131
+ },
132
+ '$q.screen.height': {
133
+ handler () {
134
+ this.onScreenResized()
135
+ }
93
136
  }
94
137
  },
95
138
  methods: {
96
- onModeChanged () {
97
- if (this.mode === 'minimized') this.mode = 'maximized'
98
- else this.mode = 'minimized'
139
+ getGeometryKey () {
140
+ return this.$config('appName').toLowerCase() + '-window-geometry'
141
+ },
142
+ storeGeometry (position, size) {
143
+ window.localStorage.setItem(this.getGeometryKey(), JSON.stringify({ position, size }))
144
+ },
145
+ onPinned () {
146
+ window.localStorage.removeItem(this.getGeometryKey())
147
+ this.mode = 'pinned'
148
+ this.onScreenResized()
149
+ },
150
+ onMaximized () {
151
+ this.backupPosition = this.window.position
152
+ this.backupSize = this.window.size
153
+ this.backupMode = this.mode
154
+ this.mode = 'maximized'
155
+ this.onScreenResized()
156
+ },
157
+ onRestored () {
158
+ this.$store.patch('window', { position: this.backupPosition, size: this.backupSize })
159
+ this.mode = this.backupMode
99
160
  },
100
161
  onClosed () {
101
162
  const widgets = this.$store.get('window.widgets')
102
163
  this.$store.patch('window', { current: '', widgets })
164
+ },
165
+ onMoved (event) {
166
+ if (!event) return
167
+ if (this.mode !== 'maximized') {
168
+ this.mode = 'floating'
169
+ const xMax = this.$q.screen.width - this.window.size[0]
170
+ const yMax = this.$q.screen.height - this.window.size[1]
171
+ const newPosition = [
172
+ Math.max(Math.min(Math.floor(this.window.position[0] + event.delta.x), xMax), 0),
173
+ Math.min(Math.max(Math.floor(this.window.position[1] + event.delta.y), 0), yMax)
174
+ ]
175
+ this.$store.patch('window', { position: newPosition })
176
+ if (event.isFinal) this.storeGeometry(newPosition, this.window.size)
177
+ }
178
+ },
179
+ onResized (event) {
180
+ if (!event) return
181
+ // Handle the pinned and floating mode
182
+ if (this.mode !== 'maximized') {
183
+ this.mode = 'floating'
184
+ const wMax = this.$q.screen.width - this.window.position[0]
185
+ const hMax = this.$q.screen.height - this.window.position[1]
186
+ const newSize = [
187
+ Math.min(this.window.size[0] + event.delta.x, wMax),
188
+ Math.min(this.window.size[1] + event.delta.y, hMax)
189
+ ]
190
+ this.$store.patch('window', { size: newSize })
191
+ if (event.isFinal) this.storeGeometry(this.window.position, newSize)
192
+ }
193
+ },
194
+ onScreenResized () {
195
+ if (this.mode === 'pinned') {
196
+ // Pinned mode
197
+ let w = this.$q.screen.width
198
+ if (this.$q.screen.gt.lg) w *= 0.7
199
+ if (this.$q.screen.gt.md) w *= 0.8
200
+ if (this.$q.screen.gt.sm) w *= 0.9
201
+ const h = this.$q.screen.height * 0.3
202
+ const x = this.$q.screen.width / 2 - w / 2
203
+ this.$store.patch('window', { position: [x, 0], size: [w, h] })
204
+ } else if (this.mode === 'floating') {
205
+ // Floating mode
206
+ if (this.window.position && this.window.size) {
207
+ let x = this.window.position[0]
208
+ let y = this.window.position[1]
209
+ let w = this.window.size[0]
210
+ let h = this.window.size[1]
211
+ let constrained = false
212
+ if ((x + w) > this.$q.screen.width) {
213
+ x = Math.max(this.$q.screen.width - w, 0)
214
+ if (x === 0) w = this.$q.screen.width
215
+ constrained = true
216
+ }
217
+ if ((y + h) > this.$q.screen.height) {
218
+ y = Math.max(this.$q.screen.height - h, 0)
219
+ if (y === 0) h = this.$q.screen.height
220
+ constrained = true
221
+ }
222
+ if (constrained) {
223
+ this.$store.patch('window', { position: [x, y], size: [w, h] })
224
+ this.storeGeometry([x, y], [w, h])
225
+ }
226
+ }
227
+ } else {
228
+ // Maximized mode
229
+ this.$store.patch('window', { position: [0, 0], size: [this.$q.screen.width, this.$q.screen.height] })
230
+ }
103
231
  }
104
232
  },
105
- created () {
233
+ beforeCreate () {
106
234
  // Load the required components
107
235
  this.$options.components['k-panel'] = this.$load('frame/KPanel')
236
+ },
237
+ created () {
238
+ const geometry = window.localStorage.getItem(this.getGeometryKey())
239
+ if (geometry) {
240
+ const geometryObject = JSON.parse(geometry)
241
+ this.$store.patch('window', { position: geometryObject.position, size: geometryObject.size })
242
+ this.mode = 'floating'
243
+ } else {
244
+ this.onPinned()
245
+ }
108
246
  }
109
247
  }
110
248
  </script>
111
249
 
112
- <style lang="stylus">
113
- .k-window
114
- border: solid 1px lightgrey;
115
- border-radius: 5px;
116
- background: #ffffff
117
-
118
- .k-window:hover
119
- border: solid 1px var(--q-color-primary);
250
+ <style lang="scss">
251
+ .k-window {
252
+ border: solid 1px lightgrey;
253
+ border-radius: 5px;
254
+ background: #ffffff;
255
+ }
256
+ .k-window:hover {
257
+ border: solid 1px var(--q-color-primary);
258
+ }
259
+ .k-window-header {
260
+ border-radius: 5px;
261
+ cursor: move
262
+ }
263
+ .k-window-header:hover {
264
+ background: #eeeeee
265
+ }
266
+ .k-window-footer {
267
+ border-radius: 5px;
268
+ }
269
+ .k-window-grip:hover {
270
+ cursor: nwse-resize
271
+ }
120
272
  </style>
@@ -178,11 +178,11 @@ export default {
178
178
  }
179
179
  </script>
180
180
 
181
- <style lang="stylus">
182
- .k-media-browser-slide {
183
- background: transparent
184
- max-width: 85%
185
- max-height: 85%
186
- overflow: hidden
181
+ <style lang="scss">
182
+ .k-media-browser-slide {
183
+ background: transparent;
184
+ max-width: 85%;
185
+ max-height: 85%;
186
+ overflow: hidden;
187
187
  }
188
188
  </style>
@@ -14,7 +14,8 @@
14
14
  menu-self="top left"
15
15
  flat
16
16
  no-caps
17
- fab-mini>
17
+ fab-mini
18
+ @click="onClicked(arguments[0])">
18
19
  <k-panel
19
20
  id="menu-entries"
20
21
  :content="content"
@@ -28,11 +29,13 @@
28
29
  <script>
29
30
  import _ from 'lodash'
30
31
  import { QBtnDropdown } from 'quasar'
32
+ import KPanel from '../frame/KPanel.vue'
31
33
 
32
34
  export default {
33
35
  name: 'k-menu',
34
36
  components: {
35
- QBtnDropdown
37
+ QBtnDropdown,
38
+ KPanel
36
39
  },
37
40
  props: {
38
41
  id: {
@@ -75,6 +78,10 @@ export default {
75
78
  type: String,
76
79
  default: undefined
77
80
  },
81
+ propagate: {
82
+ type: Boolean,
83
+ default: true
84
+ },
78
85
  context: {
79
86
  type: Object,
80
87
  default: () => null
@@ -95,9 +102,10 @@ export default {
95
102
  return !_.isEmpty(this.content)
96
103
  }
97
104
  },
98
- created () {
99
- // load the required components
100
- this.$options.components['k-panel'] = this.$load('frame/KPanel')
105
+ methods: {
106
+ onClicked (event) {
107
+ if (!this.propagate) event.stopPropagation()
108
+ }
101
109
  }
102
110
  }
103
111
  </script>
@@ -74,28 +74,26 @@ export default {
74
74
  }
75
75
  </script>
76
76
 
77
- <style>
78
- .vue-radial-menu-wrapper {
79
- position: relative;
80
- user-select: none;
81
- border-radius: 50%;
82
- font-size: 32px;
83
- font-weight: bold;
84
- border-radius: 50%;
85
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.24), 0 0 0 rgba(0, 0, 0, 0.16);
86
- }
87
-
88
- .vue-radial-menu-container {
89
- display: flex;
90
- justify-content: center;
91
- align-items: center;
92
- border-radius: 50%;
93
- transition: all 0.2s ease;
94
- position: relative;
95
- z-index: 6;
96
- }
97
-
98
- .vue-radial-menu-container.open {
99
- transform: rotateZ(45deg);
100
- }
77
+ <style lang="scss">
78
+ .vue-radial-menu-wrapper {
79
+ position: relative;
80
+ user-select: none;
81
+ border-radius: 50%;
82
+ font-size: 32px;
83
+ font-weight: bold;
84
+ border-radius: 50%;
85
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.24), 0 0 0 rgba(0, 0, 0, 0.16);
86
+ }
87
+ .vue-radial-menu-container {
88
+ display: flex;
89
+ justify-content: center;
90
+ align-items: center;
91
+ border-radius: 50%;
92
+ transition: all 0.2s ease;
93
+ position: relative;
94
+ z-index: 6;
95
+ }
96
+ .vue-radial-menu-container.open {
97
+ transform: rotateZ(45deg);
98
+ }
101
99
  </style>
@@ -34,22 +34,21 @@ export default {
34
34
  }
35
35
  </script>
36
36
 
37
- <style>
38
- .vue-radial-menu-item {
39
- position: absolute;
40
- display: flex;
41
- justify-content: center;
42
- align-items: center;
43
- transition: all 0.2s ease;
44
- transform: none;
45
- user-select: none;
46
- }
47
-
48
- .radial-vue-radial-menu-item-enter,
49
- .radial-vue-radial-menu-item-leave-to {
50
- top: 50% !important;
51
- left: 50% !important;
52
- transform: translate(-50%, -50%);
53
- opacity: 0;
54
- }
37
+ <style lang="scss">
38
+ .vue-radial-menu-item {
39
+ position: absolute;
40
+ display: flex;
41
+ justify-content: center;
42
+ align-items: center;
43
+ transition: all 0.2s ease;
44
+ transform: none;
45
+ user-select: none;
46
+ }
47
+ .radial-vue-radial-menu-item-enter,
48
+ .radial-vue-radial-menu-item-leave-to {
49
+ top: 50% !important;
50
+ left: 50% !important;
51
+ transform: translate(-50%, -50%);
52
+ opacity: 0;
53
+ }
55
54
  </style>
@@ -5,7 +5,7 @@
5
5
  v-model="isModalOpened"
6
6
  @opened="$emit('opened')"
7
7
  @closed="$emit('closed')">
8
- <div slot="modal-content">
8
+ <div>
9
9
  <q-tabs align="justify" v-model="mode" inverted>
10
10
  <q-tab id="unique-tab" name="unique" icon="las la-user" />
11
11
  <q-tab id="multiple-tab" name="multiple" icon="las la-user-friends" />
@@ -5,10 +5,9 @@
5
5
  :buttons="getButtons()"
6
6
  v-model="isModalOpened"
7
7
  @opened="$emit('opened')"
8
- @closed="$emit('closed')">
9
- <div slot="modal-content" class="column xs-gutter">
10
- <k-form v-if="member" ref="form" :schema="getSchema()" />
11
- </div>
8
+ @closed="$emit('closed')"
9
+ >
10
+ <k-form v-if="member" ref="form" :schema="getSchema()" />
12
11
  </k-modal>
13
12
  </template>
14
13
 
@@ -61,12 +60,8 @@ export default {
61
60
  const scope = this.getScope()
62
61
  const resourceId = this.getResourceId()
63
62
  const currentRole = _.get(_.find(this.member[scope], { _id: resourceId }), 'permissions')
64
- const roles = [
65
- { label: this.$t('KChangeRole.MEMBER_LABEL'), value: 'member' },
66
- { label: this.$t('KChangeRole.MANAGER_LABEL'), value: 'manager' },
67
- { label: this.$t('KChangeRole.OWNER_LABEL'), value: 'owner' }
68
- ]
69
- _.remove(roles, role => { return role.value === currentRole })
63
+ const roles = ['member', 'manager']
64
+ if (this.getScope() === 'organisations') roles.push('owner')
70
65
  return {
71
66
  $schema: 'http://json-schema.org/draft-06/schema#',
72
67
  $id: 'http://kalisio.xyz/schemas/change-role#',
@@ -74,11 +69,11 @@ export default {
74
69
  properties: {
75
70
  role: {
76
71
  type: 'string',
72
+ default: currentRole,
77
73
  field: {
78
- component: 'form/KSelectField',
74
+ component: 'form/KRoleField',
79
75
  label: 'KChangeRole.ROLE_FIELD_LABEL',
80
- type: 'radio',
81
- options: roles
76
+ roles
82
77
  }
83
78
  }
84
79
  },
@@ -110,10 +105,12 @@ export default {
110
105
  }
111
106
  }
112
107
  },
113
- async created () {
108
+ beforeCreate () {
114
109
  // Load the required components
115
110
  this.$options.components['k-modal'] = this.$load('frame/KModal')
116
111
  this.$options.components['k-form'] = this.$load('form/KForm')
112
+ },
113
+ async created () {
117
114
  // Load the member
118
115
  this.member = await this.loadObject()
119
116
  }