@kalisio/kdk 1.4.0 → 1.5.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (356) hide show
  1. package/.nyc_output/{0f1a87aa-d3bb-4c61-8c1e-12294055358d.json → 058fc679-d60a-4501-ac04-71171e5200b8.json} +0 -0
  2. package/.nyc_output/2226bcce-9d22-4dad-b9fa-46564b5565c7.json +1 -0
  3. package/.nyc_output/6dc4b140-1a8a-4d69-b91c-89c557883d6e.json +1 -0
  4. package/.nyc_output/{8be4cd9f-124a-41f9-80f4-f267ced63c86.json → 8b1830fa-932e-4a61-9837-4a5b18f83ea9.json} +0 -0
  5. package/.nyc_output/{a63b0924-fd09-4e30-974f-cb4be2243b66.json → afd2d144-3570-4858-b94a-b523dbd023dd.json} +0 -0
  6. package/.nyc_output/processinfo/058fc679-d60a-4501-ac04-71171e5200b8.json +1 -0
  7. package/.nyc_output/processinfo/{27204015-ebfd-456f-a3bb-6a94f71946b8.json → 2226bcce-9d22-4dad-b9fa-46564b5565c7.json} +1 -1
  8. package/.nyc_output/processinfo/6dc4b140-1a8a-4d69-b91c-89c557883d6e.json +1 -0
  9. package/.nyc_output/processinfo/8b1830fa-932e-4a61-9837-4a5b18f83ea9.json +1 -0
  10. package/.nyc_output/processinfo/afd2d144-3570-4858-b94a-b523dbd023dd.json +1 -0
  11. package/.nyc_output/processinfo/index.json +1 -1
  12. package/CHANGELOG.md +219 -68
  13. package/coverage/core/api/application.js.html +455 -455
  14. package/coverage/core/api/authentication.js.html +119 -119
  15. package/coverage/core/api/db.js.html +201 -201
  16. package/coverage/core/api/hooks/hooks.account.js.html +48 -48
  17. package/coverage/core/api/hooks/hooks.authentication.js.html +64 -64
  18. package/coverage/core/api/hooks/hooks.authorisations.js.html +353 -353
  19. package/coverage/core/api/hooks/hooks.devices.js.html +22 -22
  20. package/coverage/core/api/hooks/hooks.groups.js.html +37 -37
  21. package/coverage/core/api/hooks/hooks.logger.js.html +27 -27
  22. package/coverage/core/api/hooks/hooks.model.js.html +269 -269
  23. package/coverage/core/api/hooks/hooks.organisations.js.html +183 -231
  24. package/coverage/core/api/hooks/hooks.pusher.js.html +114 -114
  25. package/coverage/core/api/hooks/hooks.query.js.html +200 -200
  26. package/coverage/core/api/hooks/hooks.service.js.html +82 -82
  27. package/coverage/core/api/hooks/hooks.storage.js.html +121 -121
  28. package/coverage/core/api/hooks/hooks.tags.js.html +232 -232
  29. package/coverage/core/api/hooks/hooks.users.js.html +261 -261
  30. package/coverage/core/api/hooks/index.html +167 -167
  31. package/coverage/core/api/hooks/index.js.html +24 -24
  32. package/coverage/core/api/index.html +75 -75
  33. package/coverage/core/api/index.js.html +26 -26
  34. package/coverage/core/api/marshall.js.html +57 -57
  35. package/coverage/core/api/models/groups.model.mongodb.js.html +20 -20
  36. package/coverage/core/api/models/index.html +50 -50
  37. package/coverage/core/api/models/organisations.model.mongodb.js.html +12 -12
  38. package/coverage/core/api/models/tags.model.mongodb.js.html +22 -22
  39. package/coverage/core/api/models/users.model.mongodb.js.html +20 -20
  40. package/coverage/core/api/oauth2-handler.js.html +18 -18
  41. package/coverage/core/api/oauth2-verifier.js.html +38 -38
  42. package/coverage/core/api/services/account/account.hooks.js.html +16 -16
  43. package/coverage/core/api/services/account/account.service.js.html +108 -108
  44. package/coverage/core/api/services/account/index.html +32 -32
  45. package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +9 -9
  46. package/coverage/core/api/services/authorisations/authorisations.service.js.html +132 -132
  47. package/coverage/core/api/services/authorisations/index.html +28 -28
  48. package/coverage/core/api/services/databases/databases.hooks.js.html +9 -9
  49. package/coverage/core/api/services/databases/databases.service.js.html +12 -12
  50. package/coverage/core/api/services/databases/index.html +24 -24
  51. package/coverage/core/api/services/devices/devices.hooks.js.html +9 -9
  52. package/coverage/core/api/services/devices/devices.service.js.html +61 -61
  53. package/coverage/core/api/services/devices/index.html +22 -22
  54. package/coverage/core/api/services/groups/groups.hooks.js.html +9 -9
  55. package/coverage/core/api/services/groups/index.html +13 -13
  56. package/coverage/core/api/services/index.html +21 -21
  57. package/coverage/core/api/services/index.js.html +137 -137
  58. package/coverage/core/api/services/mailer/index.html +24 -24
  59. package/coverage/core/api/services/mailer/mailer.hooks.js.html +9 -9
  60. package/coverage/core/api/services/mailer/mailer.service.js.html +19 -19
  61. package/coverage/core/api/services/organisations/index.html +24 -24
  62. package/coverage/core/api/services/organisations/organisations.hooks.js.html +8 -8
  63. package/coverage/core/api/services/organisations/organisations.service.js.html +67 -67
  64. package/coverage/core/api/services/pusher/index.html +32 -32
  65. package/coverage/core/api/services/pusher/pusher.channels.js.html +8 -8
  66. package/coverage/core/api/services/pusher/pusher.hooks.js.html +10 -10
  67. package/coverage/core/api/services/pusher/pusher.service.js.html +336 -336
  68. package/coverage/core/api/services/storage/index.html +21 -21
  69. package/coverage/core/api/services/storage/storage.hooks.js.html +35 -35
  70. package/coverage/core/api/services/tags/index.html +21 -21
  71. package/coverage/core/api/services/tags/tags.hooks.js.html +25 -25
  72. package/coverage/core/api/services/users/index.html +21 -21
  73. package/coverage/core/api/services/users/users.hooks.js.html +33 -33
  74. package/coverage/core/common/errors.js.html +1 -1
  75. package/coverage/core/common/index.html +42 -27
  76. package/coverage/core/common/index.js.html +16 -16
  77. package/coverage/core/common/permissions.js.html +274 -274
  78. package/coverage/index.html +174 -174
  79. package/coverage/lcov-report/core/api/application.js.html +455 -455
  80. package/coverage/lcov-report/core/api/authentication.js.html +119 -119
  81. package/coverage/lcov-report/core/api/db.js.html +201 -201
  82. package/coverage/lcov-report/core/api/hooks/hooks.account.js.html +48 -48
  83. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +64 -64
  84. package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +353 -353
  85. package/coverage/lcov-report/core/api/hooks/hooks.devices.js.html +22 -22
  86. package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +37 -37
  87. package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +27 -27
  88. package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +269 -269
  89. package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +183 -231
  90. package/coverage/lcov-report/core/api/hooks/hooks.pusher.js.html +114 -114
  91. package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +200 -200
  92. package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +82 -82
  93. package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +121 -121
  94. package/coverage/lcov-report/core/api/hooks/hooks.tags.js.html +232 -232
  95. package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +261 -261
  96. package/coverage/lcov-report/core/api/hooks/index.html +167 -167
  97. package/coverage/lcov-report/core/api/hooks/index.js.html +24 -24
  98. package/coverage/lcov-report/core/api/index.html +75 -75
  99. package/coverage/lcov-report/core/api/index.js.html +26 -26
  100. package/coverage/lcov-report/core/api/marshall.js.html +57 -57
  101. package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +20 -20
  102. package/coverage/lcov-report/core/api/models/index.html +50 -50
  103. package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +12 -12
  104. package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +22 -22
  105. package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +20 -20
  106. package/coverage/lcov-report/core/api/oauth2-handler.js.html +18 -18
  107. package/coverage/lcov-report/core/api/oauth2-verifier.js.html +38 -38
  108. package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +16 -16
  109. package/coverage/lcov-report/core/api/services/account/account.service.js.html +108 -108
  110. package/coverage/lcov-report/core/api/services/account/index.html +32 -32
  111. package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +9 -9
  112. package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +132 -132
  113. package/coverage/lcov-report/core/api/services/authorisations/index.html +28 -28
  114. package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +9 -9
  115. package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +12 -12
  116. package/coverage/lcov-report/core/api/services/databases/index.html +24 -24
  117. package/coverage/lcov-report/core/api/services/devices/devices.hooks.js.html +9 -9
  118. package/coverage/lcov-report/core/api/services/devices/devices.service.js.html +61 -61
  119. package/coverage/lcov-report/core/api/services/devices/index.html +22 -22
  120. package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +9 -9
  121. package/coverage/lcov-report/core/api/services/groups/index.html +13 -13
  122. package/coverage/lcov-report/core/api/services/index.html +21 -21
  123. package/coverage/lcov-report/core/api/services/index.js.html +137 -137
  124. package/coverage/lcov-report/core/api/services/mailer/index.html +24 -24
  125. package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +9 -9
  126. package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +19 -19
  127. package/coverage/lcov-report/core/api/services/organisations/index.html +24 -24
  128. package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +8 -8
  129. package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +67 -67
  130. package/coverage/lcov-report/core/api/services/pusher/index.html +32 -32
  131. package/coverage/lcov-report/core/api/services/pusher/pusher.channels.js.html +8 -8
  132. package/coverage/lcov-report/core/api/services/pusher/pusher.hooks.js.html +10 -10
  133. package/coverage/lcov-report/core/api/services/pusher/pusher.service.js.html +336 -336
  134. package/coverage/lcov-report/core/api/services/storage/index.html +21 -21
  135. package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +35 -35
  136. package/coverage/lcov-report/core/api/services/tags/index.html +21 -21
  137. package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +25 -25
  138. package/coverage/lcov-report/core/api/services/users/index.html +21 -21
  139. package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +33 -33
  140. package/coverage/lcov-report/core/common/errors.js.html +1 -1
  141. package/coverage/lcov-report/core/common/index.html +42 -27
  142. package/coverage/lcov-report/core/common/index.js.html +16 -16
  143. package/coverage/lcov-report/core/common/permissions.js.html +274 -274
  144. package/coverage/lcov-report/index.html +174 -174
  145. package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +1 -1
  146. package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +72 -18
  147. package/coverage/lcov-report/map/api/hooks/index.html +7 -7
  148. package/coverage/lcov-report/map/api/hooks/index.js.html +1 -1
  149. package/coverage/lcov-report/map/api/index.html +1 -1
  150. package/coverage/lcov-report/map/api/index.js.html +1 -1
  151. package/coverage/lcov-report/map/api/marshall.js.html +1 -1
  152. package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +1 -1
  153. package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +1 -1
  154. package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +1 -1
  155. package/coverage/lcov-report/map/api/models/index.html +1 -1
  156. package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +1 -1
  157. package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +1 -1
  158. package/coverage/lcov-report/map/api/services/alerts/index.html +1 -1
  159. package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +1 -1
  160. package/coverage/lcov-report/map/api/services/catalog/index.html +1 -1
  161. package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
  162. package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
  163. package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +1 -1
  164. package/coverage/lcov-report/map/api/services/features/index.html +1 -1
  165. package/coverage/lcov-report/map/api/services/geocoder/geocoder.hooks.js.html +1 -1
  166. package/coverage/lcov-report/map/api/services/geocoder/geocoder.service.js.html +1 -1
  167. package/coverage/lcov-report/map/api/services/geocoder/index.html +1 -1
  168. package/coverage/lcov-report/map/api/services/index.html +1 -1
  169. package/coverage/lcov-report/map/api/services/index.js.html +1 -1
  170. package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +1 -1
  171. package/coverage/lcov-report/map/common/errors.js.html +1 -1
  172. package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +1 -1
  173. package/coverage/lcov-report/map/common/grid.js.html +1 -1
  174. package/coverage/lcov-report/map/common/index.html +1 -1
  175. package/coverage/lcov-report/map/common/index.js.html +1 -1
  176. package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +1 -1
  177. package/coverage/lcov-report/map/common/moment-utils.js.html +1 -1
  178. package/coverage/lcov-report/map/common/opendap-grid-source.js.html +1 -1
  179. package/coverage/lcov-report/map/common/opendap-utils.js.html +1 -1
  180. package/coverage/lcov-report/map/common/permissions.js.html +1 -1
  181. package/coverage/lcov-report/map/common/time-based-grid-source.js.html +1 -1
  182. package/coverage/lcov-report/map/common/tms-utils.js.html +1 -1
  183. package/coverage/lcov-report/map/common/wcs-grid-source.js.html +1 -1
  184. package/coverage/lcov-report/map/common/wcs-utils.js.html +1 -1
  185. package/coverage/lcov-report/map/common/weacast-grid-source.js.html +1 -1
  186. package/coverage/lcov-report/map/common/wfs-utils.js.html +1 -1
  187. package/coverage/lcov-report/map/common/wms-utils.js.html +1 -1
  188. package/coverage/lcov-report/map/common/wmts-utils.js.html +1 -1
  189. package/coverage/lcov.info +3289 -3610
  190. package/coverage/map/api/hooks/hooks.catalog.js.html +1 -1
  191. package/coverage/map/api/hooks/hooks.query.js.html +72 -18
  192. package/coverage/map/api/hooks/index.html +7 -7
  193. package/coverage/map/api/hooks/index.js.html +1 -1
  194. package/coverage/map/api/index.html +1 -1
  195. package/coverage/map/api/index.js.html +1 -1
  196. package/coverage/map/api/marshall.js.html +1 -1
  197. package/coverage/map/api/models/alerts.model.mongodb.js.html +1 -1
  198. package/coverage/map/api/models/catalog.model.mongodb.js.html +1 -1
  199. package/coverage/map/api/models/features.model.mongodb.js.html +1 -1
  200. package/coverage/map/api/models/index.html +1 -1
  201. package/coverage/map/api/services/alerts/alerts.hooks.js.html +1 -1
  202. package/coverage/map/api/services/alerts/alerts.service.js.html +1 -1
  203. package/coverage/map/api/services/alerts/index.html +1 -1
  204. package/coverage/map/api/services/catalog/catalog.hooks.js.html +1 -1
  205. package/coverage/map/api/services/catalog/index.html +1 -1
  206. package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
  207. package/coverage/map/api/services/daptiles/index.html +1 -1
  208. package/coverage/map/api/services/features/features.hooks.js.html +1 -1
  209. package/coverage/map/api/services/features/index.html +1 -1
  210. package/coverage/map/api/services/geocoder/geocoder.hooks.js.html +1 -1
  211. package/coverage/map/api/services/geocoder/geocoder.service.js.html +1 -1
  212. package/coverage/map/api/services/geocoder/index.html +1 -1
  213. package/coverage/map/api/services/index.html +1 -1
  214. package/coverage/map/api/services/index.js.html +1 -1
  215. package/coverage/map/common/dynamic-grid-source.js.html +1 -1
  216. package/coverage/map/common/errors.js.html +1 -1
  217. package/coverage/map/common/geotiff-grid-source.js.html +1 -1
  218. package/coverage/map/common/grid.js.html +1 -1
  219. package/coverage/map/common/index.html +1 -1
  220. package/coverage/map/common/index.js.html +1 -1
  221. package/coverage/map/common/meteo-model-grid-source.js.html +1 -1
  222. package/coverage/map/common/moment-utils.js.html +1 -1
  223. package/coverage/map/common/opendap-grid-source.js.html +1 -1
  224. package/coverage/map/common/opendap-utils.js.html +1 -1
  225. package/coverage/map/common/permissions.js.html +1 -1
  226. package/coverage/map/common/time-based-grid-source.js.html +1 -1
  227. package/coverage/map/common/tms-utils.js.html +1 -1
  228. package/coverage/map/common/wcs-grid-source.js.html +1 -1
  229. package/coverage/map/common/wcs-utils.js.html +1 -1
  230. package/coverage/map/common/weacast-grid-source.js.html +1 -1
  231. package/coverage/map/common/wfs-utils.js.html +1 -1
  232. package/coverage/map/common/wms-utils.js.html +1 -1
  233. package/coverage/map/common/wmts-utils.js.html +1 -1
  234. package/lib/core/client/components/collection/KBoard.vue +6 -0
  235. package/lib/core/client/components/collection/KColumn.vue +2 -2
  236. package/lib/core/client/components/collection/KHistory.vue +14 -6
  237. package/lib/core/client/components/collection/KHistoryEntry.vue +7 -3
  238. package/lib/core/client/components/form/KFileField.vue +11 -40
  239. package/lib/core/client/components/frame/KChipsPane.vue +2 -2
  240. package/lib/core/client/components/input/KOptionsChooser.vue +2 -2
  241. package/lib/core/client/i18n/core_en.json +7 -1
  242. package/lib/core/client/i18n/core_fr.json +7 -1
  243. package/lib/core/client/index.js +18 -0
  244. package/lib/core/client/index.js.map +1 -1
  245. package/lib/core/client/layout.js +8 -1
  246. package/lib/core/client/layout.js.map +1 -1
  247. package/lib/core/client/mixins/mixin.base-collection.js +8 -2
  248. package/lib/core/client/mixins/mixin.base-collection.js.map +1 -1
  249. package/lib/core/client/reader.js +54 -0
  250. package/lib/core/client/reader.js.map +1 -0
  251. package/lib/core/client/readers/index.js +30 -0
  252. package/lib/core/client/readers/index.js.map +1 -0
  253. package/lib/core/client/readers/reader.csv.js +43 -0
  254. package/lib/core/client/readers/reader.csv.js.map +1 -0
  255. package/lib/core/client/readers/reader.json.js +38 -0
  256. package/lib/core/client/readers/reader.json.js.map +1 -0
  257. package/lib/core/client/services/index.js +1 -3
  258. package/lib/core/client/services/index.js.map +1 -1
  259. package/lib/core/client/time.js +4 -1
  260. package/lib/core/client/time.js.map +1 -1
  261. package/lib/map/api/hooks/hooks.query.js +30 -13
  262. package/lib/map/api/hooks/hooks.query.js.map +1 -1
  263. package/lib/map/client/components/KCaptureToolbar.vue +156 -0
  264. package/lib/map/client/components/KFeaturesFilter.vue +3 -1
  265. package/lib/map/client/components/KLayerEditionToolbar.vue +19 -11
  266. package/lib/map/client/components/KLayerStyleEditor.vue +2 -1
  267. package/lib/map/client/components/KLayerStyleForm.vue +34 -23
  268. package/lib/map/client/components/KLocationMap.vue +3 -1
  269. package/lib/map/client/components/KMeasureTool.vue +340 -0
  270. package/lib/map/client/components/KPositionIndicator.vue +1 -0
  271. package/lib/map/client/components/KTimeline.vue +7 -8
  272. package/lib/map/client/components/catalog/KImportLayer.vue +8 -35
  273. package/lib/map/client/components/catalog/KLayersSelector.vue +13 -11
  274. package/lib/map/client/components/form/KOwsLayerField.vue +7 -0
  275. package/lib/map/client/components/widget/KMapillaryViewer.vue +1 -1
  276. package/lib/map/client/components/widget/KTimeSeries.vue +81 -3
  277. package/lib/map/client/i18n/map_en.json +43 -5
  278. package/lib/map/client/i18n/map_fr.json +43 -5
  279. package/lib/map/client/init.js +6 -1
  280. package/lib/map/client/init.js.map +1 -1
  281. package/lib/map/client/leaflet/MaskLayer.js +12 -3
  282. package/lib/map/client/leaflet/MaskLayer.js.map +1 -1
  283. package/lib/map/client/mixins/globe/mixin.base-globe.js +3 -5
  284. package/lib/map/client/mixins/globe/mixin.base-globe.js.map +1 -1
  285. package/lib/map/client/mixins/globe/mixin.geojson-layers.js +0 -4
  286. package/lib/map/client/mixins/globe/mixin.geojson-layers.js.map +1 -1
  287. package/lib/map/client/mixins/globe/mixin.popup.js +4 -0
  288. package/lib/map/client/mixins/globe/mixin.popup.js.map +1 -1
  289. package/lib/map/client/mixins/globe/mixin.tooltip.js +4 -0
  290. package/lib/map/client/mixins/globe/mixin.tooltip.js.map +1 -1
  291. package/lib/map/client/mixins/map/mixin.base-map.js +46 -7
  292. package/lib/map/client/mixins/map/mixin.base-map.js.map +1 -1
  293. package/lib/map/client/mixins/map/mixin.canvas-layers.js +2 -0
  294. package/lib/map/client/mixins/map/mixin.canvas-layers.js.map +1 -1
  295. package/lib/map/client/mixins/map/mixin.file-layers.js +47 -101
  296. package/lib/map/client/mixins/map/mixin.file-layers.js.map +1 -1
  297. package/lib/map/client/mixins/map/mixin.geojson-layers.js +9 -5
  298. package/lib/map/client/mixins/map/mixin.geojson-layers.js.map +1 -1
  299. package/lib/map/client/mixins/map/mixin.heatmap-layers.js +0 -4
  300. package/lib/map/client/mixins/map/mixin.heatmap-layers.js.map +1 -1
  301. package/lib/map/client/mixins/map/mixin.popup.js +4 -0
  302. package/lib/map/client/mixins/map/mixin.popup.js.map +1 -1
  303. package/lib/map/client/mixins/map/mixin.tooltip.js +4 -0
  304. package/lib/map/client/mixins/map/mixin.tooltip.js.map +1 -1
  305. package/lib/map/client/mixins/mixin.activity.js +2 -0
  306. package/lib/map/client/mixins/mixin.activity.js.map +1 -1
  307. package/lib/map/client/mixins/mixin.context.js +26 -3
  308. package/lib/map/client/mixins/mixin.context.js.map +1 -1
  309. package/lib/map/client/mixins/mixin.feature-service.js +4 -4
  310. package/lib/map/client/mixins/mixin.feature-service.js.map +1 -1
  311. package/lib/map/client/mixins/mixin.infobox.js +4 -0
  312. package/lib/map/client/mixins/mixin.infobox.js.map +1 -1
  313. package/lib/map/client/readers/index.js +42 -0
  314. package/lib/map/client/readers/index.js.map +1 -0
  315. package/lib/map/client/readers/reader.geojson.js +59 -0
  316. package/lib/map/client/readers/reader.geojson.js.map +1 -0
  317. package/lib/map/client/readers/reader.gpx.js +41 -0
  318. package/lib/map/client/readers/reader.gpx.js.map +1 -0
  319. package/lib/map/client/readers/reader.kml.js +41 -0
  320. package/lib/map/client/readers/reader.kml.js.map +1 -0
  321. package/lib/map/client/utils.js +2 -1
  322. package/lib/map/client/utils.js.map +1 -1
  323. package/lib/test/client/core/runner.js +1 -2
  324. package/lib/test/client/core/runner.js.map +1 -1
  325. package/lib/test/client/core/utils.js +58 -38
  326. package/lib/test/client/core/utils.js.map +1 -1
  327. package/lib/test/client/map/catalog.js +50 -49
  328. package/lib/test/client/map/catalog.js.map +1 -1
  329. package/package.json +3 -3
  330. package/.nyc_output/27204015-ebfd-456f-a3bb-6a94f71946b8.json +0 -1
  331. package/.nyc_output/d3d1fa81-57ca-4287-8fbe-96466b0e5aa1.json +0 -1
  332. package/.nyc_output/e921974a-3076-4e89-8dbf-6f37bef10583.json +0 -1
  333. package/.nyc_output/fb790367-ba9f-474f-84c1-f836caf9f50a.json +0 -1
  334. package/.nyc_output/processinfo/0f1a87aa-d3bb-4c61-8c1e-12294055358d.json +0 -1
  335. package/.nyc_output/processinfo/8be4cd9f-124a-41f9-80f4-f267ced63c86.json +0 -1
  336. package/.nyc_output/processinfo/a63b0924-fd09-4e30-974f-cb4be2243b66.json +0 -1
  337. package/.nyc_output/processinfo/d3d1fa81-57ca-4287-8fbe-96466b0e5aa1.json +0 -1
  338. package/.nyc_output/processinfo/e921974a-3076-4e89-8dbf-6f37bef10583.json +0 -1
  339. package/.nyc_output/processinfo/fb790367-ba9f-474f-84c1-f836caf9f50a.json +0 -1
  340. package/extras/testcafe/Dockerfile +0 -48
  341. package/extras/testcafe/docker-entrypoint.sh +0 -27
  342. package/extras/testcafe/page-models/core/account.js +0 -75
  343. package/extras/testcafe/page-models/core/base-collection.js +0 -41
  344. package/extras/testcafe/page-models/core/base-page.js +0 -25
  345. package/extras/testcafe/page-models/core/groups.js +0 -36
  346. package/extras/testcafe/page-models/core/index.js +0 -140
  347. package/extras/testcafe/page-models/core/layout.js +0 -145
  348. package/extras/testcafe/page-models/core/members.js +0 -98
  349. package/extras/testcafe/page-models/core/organisations.js +0 -76
  350. package/extras/testcafe/page-models/core/screens.js +0 -99
  351. package/extras/testcafe/page-models/core/tags.js +0 -21
  352. package/extras/testcafe/page-models/map/add-layer.js +0 -51
  353. package/extras/testcafe/page-models/map/catalog.js +0 -132
  354. package/extras/testcafe/page-models/map/index.js +0 -36
  355. package/extras/testcafe/page-models/map/map-activity.js +0 -42
  356. package/extras/testcafe/page-models/map/timeline.js +0 -67
@@ -1,76 +0,0 @@
1
- import { Selector } from 'testcafe'
2
- import VueSelector from 'testcafe-vue-selectors'
3
- import BaseCollection from './base-collection'
4
- import Layout from './layout'
5
-
6
- export default class Organisations extends BaseCollection {
7
- constructor () {
8
- super('organisationsGrid', 'QCard')
9
- this.layout = new Layout()
10
- // Organisation editor
11
- this.editorNameField = VueSelector('k-text-field').nth(0)
12
- this.editoDescriptionField = VueSelector('k-text-field').nth(1)
13
- }
14
-
15
- static get ENTRY () {
16
- return 'my-organisations'
17
- }
18
-
19
- static get PROPERTIES_ENTRY () {
20
- return 'edit-organisation'
21
- }
22
-
23
- static get MEMBERS_ENTRY () {
24
- return 'organisation-members'
25
- }
26
-
27
- static get TAGS_ENTRY () {
28
- return 'organisation-tags'
29
- }
30
-
31
- static get GROUPS_ENTRY () {
32
- return 'organisation-groups'
33
- }
34
-
35
- async goTo (test, name, route, wait = Organisations.LONG_WAIT) {
36
- await this.clickAction(test, name, route, wait)
37
- }
38
-
39
- async goToMembers (test, name) {
40
- await this.goTo(test, name, Organisations.MEMBERS_ENTRY)
41
- }
42
-
43
- async goToTags (test, name) {
44
- await this.goTo(test, name, Organisations.TAGS_ENTRY)
45
- }
46
-
47
- async goToGroups (test, name) {
48
- await this.goTo(test, name, Organisations.GROUPS_ENTRY)
49
- }
50
-
51
- async create (test, name, description) {
52
- await this.layout.clickFab(test, 'create-organisation')
53
- await test
54
- .typeText(this.editorNameField, name, { replace: true })
55
- .typeText(this.editoDescriptionField, description, { replace: true })
56
- .click(Selector('.q-dialog #apply-button'))
57
- .wait(Organisations.EXTRA_LONG_WAIT)
58
- }
59
-
60
- async edit (test, name, data) {
61
- await this.clickAction(test, name, 'edit-organisation', Organisations.LONG_WAIT)
62
- await test
63
- .typeText(this.editorNameField, data.name, { replace: true })
64
- .typeText(this.editoDescriptionField, data.description, { replace: true })
65
- .click(Selector('.q-dialog #apply-button'))
66
- .wait(Organisations.EXTRA_LONG_WAIT)
67
- }
68
-
69
- async delete (test, name) {
70
- await this.clickAction(test, name, 'remove-organisation')
71
- await test
72
- .typeText(Selector('.q-dialog-plugin input[type=text]'), name)
73
- .click(Selector('.q-dialog-plugin button').nth(1))
74
- .wait(Organisations.EXTRA_LONG_WAIT)
75
- }
76
- }
@@ -1,99 +0,0 @@
1
- import { Selector } from 'testcafe'
2
- import VueSelector from 'testcafe-vue-selectors'
3
- import BasePage from './base-page'
4
-
5
- export default class Screens extends BasePage {
6
- constructor () {
7
- super()
8
- // Login Screen
9
- this.loginScreen = VueSelector('k-login k-screen')
10
- this.emailInput = VueSelector('k-login k-email-field')
11
- this.passwordInput = VueSelector('k-login k-password-field')
12
- this.loginLocalButton = Selector('#local')
13
- this.loginGoogleButton = Selector('#google')
14
- this.emailInputGoogle = Selector('input[type=email]')
15
- this.nextEmailGoogle = Selector('#identifierNext')
16
- this.passwordInputGoogle = Selector('input[type=password]')
17
- this.signInGoogle = Selector('#passwordNext')
18
- this.loginGitHubButton = Selector('#github')
19
- this.emailInputGitHub = Selector('input[type=text]')
20
- this.passwordInputGitHub = Selector('input[type=password]')
21
- this.signInGitHub = Selector('input[type=submit]')
22
- this.authorizeGitHub = Selector('button[type=submit]')
23
- this.registerLink = Selector('#register-link')
24
- // Logout screen
25
- this.logoutScreen = VueSelector('k-logout k-screen')
26
- // Register screen
27
- this.registerScreen = VueSelector('k-register k-screen')
28
- this.registerNameInput = VueSelector('k-register k-text-field')
29
- this.registerEmailInput = VueSelector('k-register k-email-field')
30
- this.registerPasswordInput = VueSelector('k-register k-password-field').nth(0)
31
- this.registerConfirmPasswordInput = VueSelector('k-register k-password-field').nth(1)
32
- this.registerAcceptTerms = VueSelector('k-register k-toggle-field').find('.q-toggle')
33
- this.registerButton = Selector('button[type=button]').nth(0)
34
- // Register/Logout screens
35
- this.loginLink = Selector('#login-link')
36
- }
37
-
38
- // Login screen functions
39
- async goToLoginScreen (test) {
40
- await test.click(this.loginLink)
41
- }
42
-
43
- async login (test, credentials) {
44
- await test
45
- .typeText(this.emailInput, credentials.email, { replace: true })
46
- .typeText(this.passwordInput, credentials.password, { replace: true })
47
- .click(this.loginLocalButton)
48
- // Need this so that we are sure dynamic components, user, etc. have been loaded
49
- .wait(5000)
50
- }
51
-
52
- async loginGoogle (test) {
53
- await test
54
- .click(this.loginGoogleButton)
55
- .typeText(this.emailInputGoogle, process.env.GOOGLE_USER, { replace: true })
56
- .click(this.nextEmailGoogle)
57
- // Need this so that we are sure google login page is loaded
58
- .wait(2000)
59
- .typeText(this.passwordInputGoogle, process.env.GOOGLE_PASSWORD, { replace: true })
60
- .click(this.signInGoogle)
61
- // Need this so that we are sure google page is loaded & dynamic components, user, etc. have been loaded
62
- .wait(5000)
63
- }
64
-
65
- async loginGitHub (test) {
66
- await test
67
- .click(this.loginGitHubButton)
68
- .typeText(this.emailInputGitHub, process.env.GITHUB_USER, { replace: true })
69
- .typeText(this.passwordInputGitHub, process.env.GITHUB_PASSWORD, { replace: true })
70
- .click(this.signInGitHub)
71
- // Need this so that we are sure github authorize page or user has been loaded
72
- .wait(5000)
73
- // Check if we need to authorize the app
74
- const authorize = await this.authorizeGitHub()
75
- if (authorize) {
76
- await test
77
- .click(this.authorizeGitHub)
78
- // Need this so that we are sure dynamic components, user, etc. have been loaded
79
- .wait(5000)
80
- }
81
- }
82
-
83
- // Register screen functions
84
- async goToRegisterScreen (test) {
85
- await test.click(this.registerLink)
86
- }
87
-
88
- async register (test, identity) {
89
- await test
90
- .typeText(this.registerNameInput, identity.name, { replace: true })
91
- .typeText(this.registerEmailInput, identity.email, { replace: true })
92
- .typeText(this.registerPasswordInput, identity.password, { replace: true })
93
- .typeText(this.registerConfirmPasswordInput, identity.password, { replace: true })
94
- .click(this.registerAcceptTerms)
95
- .click(this.registerButton)
96
- // Need this so that we are sure dynamic components, user, etc. have been loaded
97
- .wait(5000)
98
- }
99
- }
@@ -1,21 +0,0 @@
1
- import { Selector } from 'testcafe'
2
- import VueSelector from 'testcafe-vue-selectors'
3
- import BaseCollection from './base-collection'
4
-
5
- export default class Tags extends BaseCollection {
6
- constructor () {
7
- super('tagsGrid', 'QCard')
8
- }
9
-
10
- async title (name) {
11
- return this.tags.withText(name).find('.text-subtitle1').innerText
12
- }
13
-
14
- async edit (test, name, data) {
15
- await this.clickAction(test, name, 'edit-tag')
16
- await test
17
- .typeText(VueSelector('k-text-field').nth(0), data.name, { replace: true })
18
- .click(Selector('.q-dialog #apply-button'))
19
- .wait(2000)
20
- }
21
- }
@@ -1,51 +0,0 @@
1
- import { Selector, t } from 'testcafe'
2
- import BasePage from '../core/base-page'
3
-
4
- export default class AddLayer extends BasePage {
5
- constructor () {
6
- super()
7
-
8
- this.dialog = Selector('.q-dialog')
9
- }
10
-
11
- async importLayer (file, featureId) {
12
- await t
13
- .click(this.dialog.find('#import-layer'))
14
- .setFilesToUpload(this.dialog.find('#file-field'), file)
15
- .click(this.dialog.find('#featureId-field'))
16
- .wait(1000)
17
- .click(Selector('.q-menu').find(`#${featureId}`))
18
- .wait(1000)
19
- .click(this.dialog.find('#import-layer-action'))
20
- .wait(1000)
21
- }
22
-
23
- async connectLayer (service, layerId) {
24
- await t
25
- .click(this.dialog.find('#connect-layer'))
26
- .typeText(this.dialog.find('#service-field'), service)
27
- .pressKey('enter')
28
- .wait(5000) // Need to wait for capabilities parsing
29
- .click(this.dialog.find('#layer-field'))
30
- .wait(500)
31
- // Selection based on text content does not seem to work
32
- .click(Selector('.q-menu').find(`#${layerId}`))
33
- .wait(1000)
34
- .click(this.dialog.find('#connect-layer-action'))
35
- .wait(1000)
36
- }
37
-
38
- async createLayer (layer, schema, featureId) {
39
- await t
40
- .click(this.dialog.find('#create-layer'))
41
- .typeText(this.dialog.find('#name-field'), layer)
42
- .typeText(this.dialog.find('#description-field'), `${layer} description`)
43
- .setFilesToUpload(this.dialog.find('#schema-field'), schema)
44
- .click(this.dialog.find('#featureId-field'))
45
- .wait(1000)
46
- .click(Selector('.q-menu').find(`#${featureId}`))
47
- .wait(1000)
48
- .click(this.dialog.find('#create-layer-action'))
49
- .wait(1000)
50
- }
51
- }
@@ -1,132 +0,0 @@
1
- import { Selector, t } from 'testcafe'
2
- import VueSelector from 'testcafe-vue-selectors'
3
- import BasePage from '../core/base-page'
4
-
5
- export default class Catalog extends BasePage {
6
- constructor () {
7
- super()
8
- this.catalog = VueSelector('k-catalog')
9
- this.categories = VueSelector('k-catalog QExpansionItem')
10
- this.layers = VueSelector('k-catalog QCard')
11
- }
12
-
13
- // Categories
14
- async getCategoryElement (category) {
15
- const categoryId = 'KCatalogPanel.' + category
16
- const categoriesCount = await this.categories.count
17
- let categoryEl = null
18
- for (let i = 0; i < categoriesCount; ++i) {
19
- if (!categoryEl) {
20
- const cat = this.categories.nth(i)
21
- const id = await cat.id
22
- if (id === categoryId) categoryEl = cat
23
- }
24
- }
25
- if (!categoryEl) throw new Error(`Catalog category '${category}' not found !`)
26
- return categoryEl
27
- }
28
-
29
- async getCategory (category) {
30
- const categoryEl = await this.getCategoryElement(category)
31
- const categoryVue = await categoryEl.getVue()
32
- return categoryVue
33
- }
34
-
35
- async clickCategory (test, category, state) {
36
- const categoryEl = await this.getCategoryElement(category)
37
- await test
38
- .click(categoryEl.find('.q-item'))
39
- const categoryVue = await categoryEl.getVue()
40
- await test
41
- .expect(categoryVue.state.showing).eql(state)
42
- }
43
-
44
- async checkCategoryExpanded (test, category, state) {
45
- const categoryVue = await this.getCategory(category)
46
- await test
47
- .expect(categoryVue.state.showing).eql(state)
48
- }
49
-
50
- async manageCategories (test) {
51
- await test
52
- .click(VueSelector('k-catalog #manage-layer-categories'))
53
- }
54
-
55
- // layers
56
- async getLayerElement (layer) {
57
- const layersCount = await this.layers.count
58
- let layerEl = null
59
- for (let i = 0; i < layersCount; ++i) {
60
- if (!layerEl) {
61
- const lay = this.layers.nth(i)
62
- const id = await lay.id
63
- if (id === layer) layerEl = lay
64
- }
65
- }
66
- if (!layerEl) throw new Error(`Catalog layer '${layer}' not found !`)
67
- return layerEl
68
- }
69
-
70
- async getLayer (layer) {
71
- const layerEl = await this.getLayerElement(layer)
72
- const layerVue = await layerEl.getVue()
73
- return layerVue
74
- }
75
-
76
- async clickLayer (test, layer) {
77
- const layerEl = await this.getLayerElement(layer)
78
- await test
79
- .click(layerEl)
80
- }
81
-
82
- async clickLayerAction (test, layer, action) {
83
- const layerEl = await this.getLayerElement(layer)
84
- await test
85
- .click(layerEl.find('#layer-actions'))
86
- .click(Selector('.q-menu').find(`#${action}`))
87
- }
88
-
89
- async checkLayerDisabled (test, layer, state) {
90
- const layerVue = await this.getLayer(layer)
91
- await test
92
- .expect(layerVue.props.disable).eql(state)
93
- }
94
-
95
- async checkLayerActive (test, layer, state) {
96
- const layerVue = await this.getLayer(layer)
97
- await test
98
- .expect(layerVue.props.active).eql(state)
99
- }
100
-
101
- // Meteo models
102
- async getMeteoModel (model) {
103
- return Selector('.q-menu').find(`#${model}`)
104
- }
105
-
106
- async clickForecastMode (test, mode) {
107
- const item = await this.getForecastMode(mode)
108
- await test
109
- .click(item)
110
- .expect(item.getVue(({ computed }) => computed.isActive)).ok(`forecast mode '${mode}' isn't active`)
111
- }
112
-
113
- async clickForecast () {
114
- await this.clickForecastMode('forecast')
115
- }
116
-
117
- async clickArchives () {
118
- await this.clickForecastMode('archive')
119
- }
120
-
121
- async selectMeteoModel (model) {
122
- const select = VueSelector('k-catalog k-weather-layers-selector QSelect')
123
- await t.click(select)
124
- const entry = await this.getMeteoModel(model)
125
- const label = await Selector(entry).child('.q-item__section--main').child(0).innerText
126
- await t
127
- .click(entry)
128
- // robin: test may fail here, in that case, chrome was probably out of focus
129
- // try again and let chrome window focused ...
130
- .expect(select.getVue(({ computed }) => computed.selectedString)).eql(label, `meteo model '${model}' isn't selected`)
131
- }
132
- }
@@ -1,36 +0,0 @@
1
- import { ClientFunction } from 'testcafe'
2
- import Timeline from './timeline'
3
- import MapActivity from './map-activity'
4
- import Catalog from './catalog'
5
- import AddLayer from './add-layer'
6
-
7
- export { Timeline }
8
- export { MapActivity }
9
- export { Catalog }
10
- export { AddLayer }
11
-
12
- // Mock Geolocation API that does not work well in headless browsers
13
- // See https://github.com/DevExpress/testcafe/issues/1991
14
- export const mockLocationAPI = ClientFunction(() => {
15
- navigator.geolocation.getCurrentPosition = (f) => f({
16
- coords: {
17
- latitude: 43.2996151,
18
- longitude: 1.9287062
19
- },
20
- timestamp: Date.now()
21
- })
22
- })
23
-
24
- export const getLayers = ClientFunction(() => {
25
- const globalCatalogService = window.$api.getService('catalog', '')
26
- const catalogService = window.$api.getService('catalog')
27
-
28
- const p = []
29
-
30
- // We get layers coming from global catalog first if any
31
- if (globalCatalogService) p.push(globalCatalogService.find())
32
- // Then we get layers coming from contextual catalog if any
33
- if (catalogService && (catalogService !== globalCatalogService)) p.push(catalogService.find())
34
-
35
- return Promise.all(p).then((responses) => responses.flatMap(r => r.data))
36
- })
@@ -1,42 +0,0 @@
1
- import { Selector } from 'testcafe'
2
- import BasePage from '../core/base-page'
3
- import { getCurrentUrl, refresh } from '../core'
4
-
5
- export default class MapActivity extends BasePage {
6
- constructor () {
7
- super()
8
- this.map = Selector('#map')
9
- }
10
-
11
- async click (test) {
12
- await test
13
- .click(this.map)
14
- .wait(500)
15
- }
16
-
17
- async clickAt (test, x, y) {
18
- await test
19
- .click(this.map, { offsetX: x, offsetY: y })
20
- .wait(500)
21
- }
22
-
23
- async move (test, dx, dy) {
24
- await test
25
- .drag(this.map, dx, dy)
26
- .click(this.map)
27
- .wait(500)
28
- }
29
-
30
- async zoomTo (test, bbox) {
31
- let url = await getCurrentUrl()
32
- // Create URL parser
33
- url = new URL(url)
34
- // Remove current bbox from URL if any
35
- url.hash = url.hash.replace(/[0-9]/g, '')
36
- // Then push new one
37
- url.hash += '/' + bbox.join('/')
38
- await test.navigateTo(url.toString())
39
- await refresh()
40
- await test.wait(MapActivity.LONG_WAIT)
41
- }
42
- }
@@ -1,67 +0,0 @@
1
- import { Selector, t } from 'testcafe'
2
- import VueSelector from 'testcafe-vue-selectors'
3
- import BasePage from '../core/base-page'
4
-
5
- export default class Timeline extends BasePage {
6
- constructor () {
7
- super()
8
-
9
- this.opener = Selector('#opener-bottom')
10
- this.timeline = VueSelector('k-timeline')
11
- }
12
-
13
- async open () {
14
- const timeline = Selector(this.timeline, { visibilityCheck: true })
15
- await t
16
- .click(this.opener)
17
- .wait(100)
18
- .expect(timeline.exists).ok()
19
- }
20
-
21
- async close () {
22
- await t
23
- .click(this.opener)
24
- }
25
-
26
- async isVisible () {
27
- const exists = await this.timeline.exists
28
- if (!exists) return false
29
- return this.timeline.visible
30
- }
31
-
32
- getDay (day) {
33
- if (day === '+') return this.timeline.find('i.la-calendar-plus')
34
- if (day === '-') return this.timeline.find('i.la-calendar-minus')
35
- return this.timeline.find('.ellipsis').withExactText(day)
36
- }
37
-
38
- getHour (hour) {
39
- if (hour === '+') return this.timeline.find('i.la-angle-right')
40
- if (hour === '-') return this.timeline.find('i.la-angle-left')
41
- return this.timeline.find('.k-timeline-hour-frame').withExactText(hour)
42
- }
43
-
44
- getStep (step) {
45
- if (step === '+') return this.timeline.find('i.la-step-forward')
46
- if (step === '-') return this.timeline.find('i.la-step-backward')
47
- return null
48
- }
49
-
50
- async clickDay (day) {
51
- const button = this.getDay(day)
52
- await t
53
- .click(button)
54
- }
55
-
56
- async clickHour (hour) {
57
- const button = this.getHour(hour)
58
- await t
59
- .click(button)
60
- }
61
-
62
- async clickStep (step) {
63
- const button = this.getStep(step)
64
- await t
65
- .click(button)
66
- }
67
- }