@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
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../map/common/index.js"],"names":["errors","permissions","gridSourceFactories","OpenDapGridSource","getKey","options","WcsGridSource","GeoTiffGridSource","WeacastGridSource","MeteoModelGridSource","TimeBasedGridSource","unitConverters","kelvin2celsius","kelvin"],"mappings":";;;;;;;AAGA;;IAAYA,M;;AACZ;;IAAYC,W;;AACZ;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;QAESD,M,GAAAA,M,EAbT;AACA;AACA;;QAYSC,W,GAAAA,W;;AAET;;AACAC,0BAAoBC,qCAAkBC,MAAlB,EAApB,IAAkD,UAAUC,OAAV,EAAmB;AAAE,SAAO,IAAIF,oCAAJ,CAAsBE,OAAtB,CAAP;AAAuC,CAA9G;AACAH,0BAAoBI,6BAAcF,MAAd,EAApB,IAA8C,UAAUC,OAAV,EAAmB;AAAE,SAAO,IAAIC,4BAAJ,CAAkBD,OAAlB,CAAP;AAAmC,CAAtG;AACAH,0BAAoBK,qCAAkBH,MAAlB,EAApB,IAAkD,UAAUC,OAAV,EAAmB;AAAE,SAAO,IAAIE,oCAAJ,CAAsBF,OAAtB,CAAP;AAAuC,CAA9G;AACAH,0BAAoBM,qCAAkBJ,MAAlB,EAApB,IAAkD,UAAUC,OAAV,EAAmB;AAAE,SAAO,IAAIG,oCAAJ,CAAsBH,OAAtB,CAAP;AAAuC,CAA9G;AACAH,0BAAoBO,2CAAqBL,MAArB,EAApB,IAAqD,UAAUC,OAAV,EAAmB;AAAE,SAAO,IAAII,0CAAJ,CAAyBJ,OAAzB,CAAP;AAA0C,CAApH;AACAH,0BAAoBQ,yCAAoBN,MAApB,EAApB,IAAoD,UAAUC,OAAV,EAAmB;AAAE,SAAO,IAAIK,wCAAJ,CAAwBL,OAAxB,CAAP;AAAyC,CAAlH;;AAEAM,qBAAeC,cAAf,GAAgC,UAAUC,MAAV,EAAkB;AAAE,SAAOA,SAAS,MAAhB;AAAwB,CAA5E","file":"index.js","sourcesContent":["// We faced a bug in babel so that transform-runtime with export * from 'x' generates import statements in transpiled code\r\n// Tracked here : https://github.com/babel/babel/issues/2877\r\n// We tested the workaround given here https://github.com/babel/babel/issues/2877#issuecomment-270700000 with success so far\r\nimport * as errors from './errors'\r\nimport * as permissions from './permissions'\r\nimport { gridSourceFactories, unitConverters } from './grid'\r\nimport { OpenDapGridSource } from './opendap-grid-source'\r\nimport { WcsGridSource } from './wcs-grid-source'\r\nimport { GeoTiffGridSource } from './geotiff-grid-source'\r\nimport { WeacastGridSource } from './weacast-grid-source'\r\nimport { MeteoModelGridSource } from './meteo-model-grid-source'\r\nimport { TimeBasedGridSource } from './time-based-grid-source'\r\n\r\nexport { errors }\r\nexport { permissions }\r\n\r\n// register factories for known grid sources\r\ngridSourceFactories[OpenDapGridSource.getKey()] = function (options) { return new OpenDapGridSource(options) }\r\ngridSourceFactories[WcsGridSource.getKey()] = function (options) { return new WcsGridSource(options) }\r\ngridSourceFactories[GeoTiffGridSource.getKey()] = function (options) { return new GeoTiffGridSource(options) }\r\ngridSourceFactories[WeacastGridSource.getKey()] = function (options) { return new WeacastGridSource(options) }\r\ngridSourceFactories[MeteoModelGridSource.getKey()] = function (options) { return new MeteoModelGridSource(options) }\r\ngridSourceFactories[TimeBasedGridSource.getKey()] = function (options) { return new TimeBasedGridSource(options) }\r\n\r\nunitConverters.kelvin2celsius = function (kelvin) { return kelvin - 273.15 }\r\n"]}
1
+ {"version":3,"sources":["../../../map/common/index.js"],"names":["errors","permissions","dap","grid","gridSourceFactories","unitConverters","OpenDapGridSource","getKey","options","WcsGridSource","GeoTiffGridSource","WeacastGridSource","MeteoModelGridSource","TimeBasedGridSource","kelvin2celsius","kelvin"],"mappings":";;;;;;;AAGA;;IAAYA,M;;AACZ;;IAAYC,W;;AACZ;;IAAYC,G;;AACZ;;IAAYC,I;;AACZ;;AACA;;AACA;;AACA;;AACA;;AACA;;;;AAZA;AACA;AACA;QAYSH,M,GAAAA,M;QACAC,W,GAAAA,W;QACAC,G,GAAAA,G;QACAC,I,GAAAA,I;;;AAET,MAAMC,sBAAsBD,KAAKC,mBAAjC;AACA,MAAMC,iBAAiBF,KAAKE,cAA5B;;AAEA;AACAD,oBAAoBE,qCAAkBC,MAAlB,EAApB,IAAkD,UAAUC,OAAV,EAAmB;AAAE,SAAO,IAAIF,oCAAJ,CAAsBE,OAAtB,CAAP;AAAuC,CAA9G;AACAJ,oBAAoBK,6BAAcF,MAAd,EAApB,IAA8C,UAAUC,OAAV,EAAmB;AAAE,SAAO,IAAIC,4BAAJ,CAAkBD,OAAlB,CAAP;AAAmC,CAAtG;AACAJ,oBAAoBM,qCAAkBH,MAAlB,EAApB,IAAkD,UAAUC,OAAV,EAAmB;AAAE,SAAO,IAAIE,oCAAJ,CAAsBF,OAAtB,CAAP;AAAuC,CAA9G;AACAJ,oBAAoBO,qCAAkBJ,MAAlB,EAApB,IAAkD,UAAUC,OAAV,EAAmB;AAAE,SAAO,IAAIG,oCAAJ,CAAsBH,OAAtB,CAAP;AAAuC,CAA9G;AACAJ,oBAAoBQ,2CAAqBL,MAArB,EAApB,IAAqD,UAAUC,OAAV,EAAmB;AAAE,SAAO,IAAII,0CAAJ,CAAyBJ,OAAzB,CAAP;AAA0C,CAApH;AACAJ,oBAAoBS,yCAAoBN,MAApB,EAApB,IAAoD,UAAUC,OAAV,EAAmB;AAAE,SAAO,IAAIK,wCAAJ,CAAwBL,OAAxB,CAAP;AAAyC,CAAlH;;AAEAH,eAAeS,cAAf,GAAgC,UAAUC,MAAV,EAAkB;AAAE,SAAOA,SAAS,MAAhB;AAAwB,CAA5E","file":"index.js","sourcesContent":["// We faced a bug in babel so that transform-runtime with export * from 'x' generates import statements in transpiled code\r\n// Tracked here : https://github.com/babel/babel/issues/2877\r\n// We tested the workaround given here https://github.com/babel/babel/issues/2877#issuecomment-270700000 with success so far\r\nimport * as errors from './errors'\r\nimport * as permissions from './permissions'\r\nimport * as dap from './opendap-utils'\r\nimport * as grid from './grid'\r\nimport { OpenDapGridSource } from './opendap-grid-source'\r\nimport { WcsGridSource } from './wcs-grid-source'\r\nimport { GeoTiffGridSource } from './geotiff-grid-source'\r\nimport { WeacastGridSource } from './weacast-grid-source'\r\nimport { MeteoModelGridSource } from './meteo-model-grid-source'\r\nimport { TimeBasedGridSource } from './time-based-grid-source'\r\n\r\nexport { errors }\r\nexport { permissions }\r\nexport { dap }\r\nexport { grid }\r\n\r\nconst gridSourceFactories = grid.gridSourceFactories\r\nconst unitConverters = grid.unitConverters\r\n\r\n// register factories for known grid sources\r\ngridSourceFactories[OpenDapGridSource.getKey()] = function (options) { return new OpenDapGridSource(options) }\r\ngridSourceFactories[WcsGridSource.getKey()] = function (options) { return new WcsGridSource(options) }\r\ngridSourceFactories[GeoTiffGridSource.getKey()] = function (options) { return new GeoTiffGridSource(options) }\r\ngridSourceFactories[WeacastGridSource.getKey()] = function (options) { return new WeacastGridSource(options) }\r\ngridSourceFactories[MeteoModelGridSource.getKey()] = function (options) { return new MeteoModelGridSource(options) }\r\ngridSourceFactories[TimeBasedGridSource.getKey()] = function (options) { return new TimeBasedGridSource(options) }\r\n\r\nunitConverters.kelvin2celsius = function (kelvin) { return kelvin - 273.15 }\r\n"]}
@@ -78,8 +78,11 @@ class MeteoModelGridSource extends _dynamicGridSource.DynamicGridSource {
78
78
  model: item.model
79
79
 
80
80
  // handle dynamic properties
81
- };for (const prop of _lodash2.default.keys(item.dynprops)) {
82
- const value = item.dynprops[prop];
81
+ // dynprops may be 'scoped' per grid source, that's what we check here
82
+ // if not scoped, use the dynprops object
83
+ };const dynprops = _lodash2.default.has(item.dynprops, candidate.key) ? item.dynprops[candidate.key] : item.dynprops;
84
+ for (const prop of _lodash2.default.keys(dynprops)) {
85
+ const value = dynprops[prop];
83
86
  const generator = _this.dynpropGenerator(value);
84
87
  if (generator) candidate.dynamicProps[prop] = generator;
85
88
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../map/common/meteo-model-grid-source.js"],"names":["MeteoModelGridSource","DynamicGridSource","getKey","constructor","options","updateCtx","level","undefined","setModel","model","queueUpdate","setTime","time","clone","utc","runOffset","setLevel","setup","config","candidates","source","sources","item","Object","assign","default","key","conf","candidate","staticProps","dynamicProps","from","to","prop","_","keys","dynprops","value","generator","dynpropGenerator","push","makeBuildContext","ctx","selectCandidate","name","runTime","runInterval","subtract","forecastTime","interval","forecastOffset","moment","duration","diff","shouldSkipUpdate","newContext","oldContext","isSame","buildSourceAndConfig","deriveConfig","now","isBetween","isSameOrAfter","isSameOrBefore","dataChanged","usable"],"mappings":"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","file":"meteo-model-grid-source.js","sourcesContent":["import _ from 'lodash'\r\nimport moment from 'moment'\r\nimport { getNearestRunTime, getNearestForecastTime } from 'weacast-core/common'\r\nimport { makeGridSource, extractGridSourceConfig } from './grid'\r\nimport { DynamicGridSource } from './dynamic-grid-source'\r\nimport { readAsTimeOrDuration, makeTime } from './moment-utils'\r\n\r\nexport class MeteoModelGridSource extends DynamicGridSource {\r\n static getKey () {\r\n return 'meteo_model'\r\n }\r\n\r\n constructor (options) {\r\n super(options)\r\n\r\n this.options = options\r\n // these members are not mandatory, but still defined in the context\r\n this.updateCtx.level = undefined\r\n }\r\n\r\n setModel (model) {\r\n this.updateCtx.model = model\r\n this.queueUpdate()\r\n }\r\n\r\n setTime (time) {\r\n this.updateCtx.time = time.clone()\r\n this.updateCtx.time.utc()\r\n // reset runOffset to fetch nearest run time\r\n // when there's no data in the nearest run, we may try to fetch\r\n // data in the run before the nearest (cf. dataChanged())\r\n this.updateCtx.runOffset = 0\r\n this.queueUpdate()\r\n }\r\n\r\n setLevel (level) {\r\n if (level !== null) this.updateCtx.level = level\r\n else if (this.updateCtx.level) delete this.updateCtx.level\r\n this.queueUpdate()\r\n }\r\n\r\n async setup (config) {\r\n this.candidates = []\r\n\r\n for (const source of config.sources) {\r\n // use default props and override with current source\r\n const item = Object.assign(Object.assign({}, config.default), source)\r\n\r\n const [key, conf] = extractGridSourceConfig(item)\r\n const candidate = {\r\n key: key,\r\n staticProps: conf,\r\n dynamicProps: {},\r\n from: item.from ? readAsTimeOrDuration(item.from) : null,\r\n to: item.to ? readAsTimeOrDuration(item.to) : null,\r\n model: item.model\r\n }\r\n\r\n // handle dynamic properties\r\n for (const prop of _.keys(item.dynprops)) {\r\n const value = item.dynprops[prop]\r\n const generator = this.dynpropGenerator(value)\r\n if (generator) candidate.dynamicProps[prop] = generator\r\n }\r\n\r\n this.candidates.push(candidate)\r\n }\r\n }\r\n\r\n makeBuildContext (updateCtx) {\r\n const ctx = Object.assign({}, updateCtx)\r\n\r\n ctx.candidate = this.selectCandidate(updateCtx.time, updateCtx.model.name)\r\n if (ctx.candidate) {\r\n // update context\r\n ctx.runTime = getNearestRunTime(updateCtx.time, updateCtx.model.runInterval)\r\n // take runOffset into account\r\n ctx.runTime.subtract(ctx.runOffset * updateCtx.model.runInterval, 'seconds')\r\n ctx.forecastTime = getNearestForecastTime(updateCtx.time, updateCtx.model.interval)\r\n ctx.forecastOffset = moment.duration(ctx.forecastTime.diff(ctx.runTime))\r\n\r\n // switch to utc mode, all display methods will display in UTC\r\n ctx.time.utc()\r\n ctx.runTime.utc()\r\n ctx.forecastTime.utc()\r\n }\r\n\r\n return ctx\r\n }\r\n\r\n shouldSkipUpdate (newContext, oldContext) {\r\n if (oldContext.candidate !== newContext.candidate) return false\r\n if (oldContext.runTime && newContext.runTime && !oldContext.runTime.isSame(newContext.runTime)) return false\r\n if (oldContext.forecastTime && newContext.forecastTime && !oldContext.forecastTime.isSame(newContext.forecastTime)) return false\r\n if (oldContext.level !== newContext.level) return false\r\n return true\r\n }\r\n\r\n buildSourceAndConfig (ctx) {\r\n let source = null\r\n let config = null\r\n\r\n if (ctx.candidate) {\r\n config = this.deriveConfig(ctx, ctx.candidate.staticProps, ctx.candidate.dynamicProps)\r\n if (config) {\r\n source = makeGridSource(ctx.candidate.key, this.options)\r\n }\r\n }\r\n\r\n return [source, config]\r\n }\r\n\r\n selectCandidate (time, model) {\r\n const now = moment()\r\n\r\n let candidate = null\r\n // select a source for the requested time\r\n for (const source of this.candidates) {\r\n if (source.model !== model) continue\r\n\r\n const from = source.from ? makeTime(source.from, now) : null\r\n const to = source.to ? makeTime(source.to, now) : null\r\n if (from && to) {\r\n candidate = time.isBetween(from, to) ? source : null\r\n } else if (from) {\r\n candidate = time.isSameOrAfter(from) ? source : null\r\n } else if (to) {\r\n candidate = time.isSameOrBefore(to) ? source : null\r\n }\r\n\r\n if (candidate) break\r\n }\r\n\r\n return candidate\r\n }\r\n\r\n dataChanged () {\r\n // check if we need to try to fetch data from a previous run\r\n // in case the nearest run doesn't exists or fails to provide\r\n // required data\r\n\r\n if (this.source && !this.source.usable) {\r\n // if we have a selected source but it's not usable\r\n if (this.updateCtx.runOffset === 0) {\r\n // queue updaty with an offseted run\r\n this.updateCtx.runOffset = 1\r\n this.queueUpdate()\r\n return\r\n }\r\n }\r\n\r\n super.dataChanged()\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../map/common/meteo-model-grid-source.js"],"names":["MeteoModelGridSource","DynamicGridSource","getKey","constructor","options","updateCtx","level","undefined","setModel","model","queueUpdate","setTime","time","clone","utc","runOffset","setLevel","setup","config","candidates","source","sources","item","Object","assign","default","key","conf","candidate","staticProps","dynamicProps","from","to","dynprops","_","has","prop","keys","value","generator","dynpropGenerator","push","makeBuildContext","ctx","selectCandidate","name","runTime","runInterval","subtract","forecastTime","interval","forecastOffset","moment","duration","diff","shouldSkipUpdate","newContext","oldContext","isSame","buildSourceAndConfig","deriveConfig","now","isBetween","isSameOrAfter","isSameOrBefore","dataChanged","usable"],"mappings":"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","file":"meteo-model-grid-source.js","sourcesContent":["import _ from 'lodash'\r\nimport moment from 'moment'\r\nimport { getNearestRunTime, getNearestForecastTime } from 'weacast-core/common'\r\nimport { makeGridSource, extractGridSourceConfig } from './grid'\r\nimport { DynamicGridSource } from './dynamic-grid-source'\r\nimport { readAsTimeOrDuration, makeTime } from './moment-utils'\r\n\r\nexport class MeteoModelGridSource extends DynamicGridSource {\r\n static getKey () {\r\n return 'meteo_model'\r\n }\r\n\r\n constructor (options) {\r\n super(options)\r\n\r\n this.options = options\r\n // these members are not mandatory, but still defined in the context\r\n this.updateCtx.level = undefined\r\n }\r\n\r\n setModel (model) {\r\n this.updateCtx.model = model\r\n this.queueUpdate()\r\n }\r\n\r\n setTime (time) {\r\n this.updateCtx.time = time.clone()\r\n this.updateCtx.time.utc()\r\n // reset runOffset to fetch nearest run time\r\n // when there's no data in the nearest run, we may try to fetch\r\n // data in the run before the nearest (cf. dataChanged())\r\n this.updateCtx.runOffset = 0\r\n this.queueUpdate()\r\n }\r\n\r\n setLevel (level) {\r\n if (level !== null) this.updateCtx.level = level\r\n else if (this.updateCtx.level) delete this.updateCtx.level\r\n this.queueUpdate()\r\n }\r\n\r\n async setup (config) {\r\n this.candidates = []\r\n\r\n for (const source of config.sources) {\r\n // use default props and override with current source\r\n const item = Object.assign(Object.assign({}, config.default), source)\r\n\r\n const [key, conf] = extractGridSourceConfig(item)\r\n const candidate = {\r\n key: key,\r\n staticProps: conf,\r\n dynamicProps: {},\r\n from: item.from ? readAsTimeOrDuration(item.from) : null,\r\n to: item.to ? readAsTimeOrDuration(item.to) : null,\r\n model: item.model\r\n }\r\n\r\n // handle dynamic properties\r\n // dynprops may be 'scoped' per grid source, that's what we check here\r\n // if not scoped, use the dynprops object\r\n const dynprops = _.has(item.dynprops, candidate.key) ? item.dynprops[candidate.key] : item.dynprops\r\n for (const prop of _.keys(dynprops)) {\r\n const value = dynprops[prop]\r\n const generator = this.dynpropGenerator(value)\r\n if (generator) candidate.dynamicProps[prop] = generator\r\n }\r\n\r\n this.candidates.push(candidate)\r\n }\r\n }\r\n\r\n makeBuildContext (updateCtx) {\r\n const ctx = Object.assign({}, updateCtx)\r\n\r\n ctx.candidate = this.selectCandidate(updateCtx.time, updateCtx.model.name)\r\n if (ctx.candidate) {\r\n // update context\r\n ctx.runTime = getNearestRunTime(updateCtx.time, updateCtx.model.runInterval)\r\n // take runOffset into account\r\n ctx.runTime.subtract(ctx.runOffset * updateCtx.model.runInterval, 'seconds')\r\n ctx.forecastTime = getNearestForecastTime(updateCtx.time, updateCtx.model.interval)\r\n ctx.forecastOffset = moment.duration(ctx.forecastTime.diff(ctx.runTime))\r\n\r\n // switch to utc mode, all display methods will display in UTC\r\n ctx.time.utc()\r\n ctx.runTime.utc()\r\n ctx.forecastTime.utc()\r\n }\r\n\r\n return ctx\r\n }\r\n\r\n shouldSkipUpdate (newContext, oldContext) {\r\n if (oldContext.candidate !== newContext.candidate) return false\r\n if (oldContext.runTime && newContext.runTime && !oldContext.runTime.isSame(newContext.runTime)) return false\r\n if (oldContext.forecastTime && newContext.forecastTime && !oldContext.forecastTime.isSame(newContext.forecastTime)) return false\r\n if (oldContext.level !== newContext.level) return false\r\n return true\r\n }\r\n\r\n buildSourceAndConfig (ctx) {\r\n let source = null\r\n let config = null\r\n\r\n if (ctx.candidate) {\r\n config = this.deriveConfig(ctx, ctx.candidate.staticProps, ctx.candidate.dynamicProps)\r\n if (config) {\r\n source = makeGridSource(ctx.candidate.key, this.options)\r\n }\r\n }\r\n\r\n return [source, config]\r\n }\r\n\r\n selectCandidate (time, model) {\r\n const now = moment()\r\n\r\n let candidate = null\r\n // select a source for the requested time\r\n for (const source of this.candidates) {\r\n if (source.model !== model) continue\r\n\r\n const from = source.from ? makeTime(source.from, now) : null\r\n const to = source.to ? makeTime(source.to, now) : null\r\n if (from && to) {\r\n candidate = time.isBetween(from, to) ? source : null\r\n } else if (from) {\r\n candidate = time.isSameOrAfter(from) ? source : null\r\n } else if (to) {\r\n candidate = time.isSameOrBefore(to) ? source : null\r\n }\r\n\r\n if (candidate) break\r\n }\r\n\r\n return candidate\r\n }\r\n\r\n dataChanged () {\r\n // check if we need to try to fetch data from a previous run\r\n // in case the nearest run doesn't exists or fails to provide\r\n // required data\r\n\r\n if (this.source && !this.source.usable) {\r\n // if we have a selected source but it's not usable\r\n if (this.updateCtx.runOffset === 0) {\r\n // queue updaty with an offseted run\r\n this.updateCtx.runOffset = 1\r\n this.queueUpdate()\r\n return\r\n }\r\n }\r\n\r\n super.dataChanged()\r\n }\r\n}\r\n"]}
@@ -60,8 +60,11 @@ class TimeBasedGridSource extends _dynamicGridSource.DynamicGridSource {
60
60
  every: _moment2.default.duration(item.every)
61
61
 
62
62
  // handle dynamic properties
63
- };for (const prop of _lodash2.default.keys(item.dynprops)) {
64
- const value = item.dynprops[prop];
63
+ // dynprops may be 'scoped' per grid source, that's what we check here
64
+ // if not scoped, use the dynprops object
65
+ };const dynprops = _lodash2.default.has(item.dynprops, candidate.key) ? item.dynprops[candidate.key] : item.dynprops;
66
+ for (const prop of _lodash2.default.keys(dynprops)) {
67
+ const value = dynprops[prop];
65
68
  const generator = _this.dynpropGenerator(value);
66
69
  if (generator) candidate.dynamicProps[prop] = generator;
67
70
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../map/common/time-based-grid-source.js"],"names":["TimeBasedGridSource","DynamicGridSource","getKey","constructor","options","setTime","time","updateCtx","clone","utc","queueUpdate","setup","config","candidates","source","sources","item","Object","assign","default","key","conf","candidate","staticProps","dynamicProps","from","to","every","moment","duration","prop","_","keys","dynprops","value","generator","dynpropGenerator","push","makeBuildContext","ctx","selectCandidate","stepTime","Math","trunc","shouldSkipUpdate","newContext","oldContext","isSame","buildSourceAndConfig","deriveConfig","now","isBetween","isSameOrAfter","isSameOrBefore"],"mappings":"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","file":"time-based-grid-source.js","sourcesContent":["import _ from 'lodash'\r\nimport moment from 'moment'\r\nimport { makeGridSource, extractGridSourceConfig } from './grid'\r\nimport { DynamicGridSource } from './dynamic-grid-source'\r\nimport { readAsTimeOrDuration, makeTime } from './moment-utils'\r\n\r\nexport class TimeBasedGridSource extends DynamicGridSource {\r\n static getKey () {\r\n return 'time_based'\r\n }\r\n\r\n constructor (options) {\r\n super(options)\r\n\r\n this.options = options\r\n }\r\n\r\n setTime (time) {\r\n this.updateCtx.time = time.clone()\r\n this.updateCtx.time.utc()\r\n this.queueUpdate()\r\n }\r\n\r\n async setup (config) {\r\n this.candidates = []\r\n\r\n for (const source of config.sources) {\r\n // use default props and override with current source\r\n const item = Object.assign(Object.assign({}, config.default), source)\r\n\r\n const [key, conf] = extractGridSourceConfig(item)\r\n const candidate = {\r\n key: key,\r\n staticProps: conf,\r\n dynamicProps: {},\r\n from: item.from ? readAsTimeOrDuration(item.from) : null,\r\n to: item.to ? readAsTimeOrDuration(item.to) : null,\r\n every: moment.duration(item.every)\r\n }\r\n\r\n // handle dynamic properties\r\n for (const prop of _.keys(item.dynprops)) {\r\n const value = item.dynprops[prop]\r\n const generator = this.dynpropGenerator(value)\r\n if (generator) candidate.dynamicProps[prop] = generator\r\n }\r\n\r\n this.candidates.push(candidate)\r\n }\r\n }\r\n\r\n makeBuildContext (updateCtx) {\r\n const ctx = Object.assign({}, updateCtx)\r\n\r\n ctx.candidate = this.selectCandidate(ctx.time)\r\n if (ctx.candidate) {\r\n ctx.stepTime = moment(Math.trunc(ctx.time / ctx.candidate.every) * ctx.candidate.every)\r\n\r\n // switch to utc mode, all display methods will display in UTC\r\n ctx.time.utc()\r\n ctx.stepTime.utc()\r\n }\r\n\r\n return ctx\r\n }\r\n\r\n shouldSkipUpdate (newContext, oldContext) {\r\n if (oldContext.candidate !== newContext.candidate) return false\r\n if (oldContext.stepTime && newContext.stepTime && !oldContext.stepTime.isSame(newContext.stepTime)) return false\r\n return true\r\n }\r\n\r\n buildSourceAndConfig (ctx) {\r\n let source = null\r\n let config = null\r\n\r\n if (ctx.candidate) {\r\n config = this.deriveConfig(ctx, ctx.candidate.staticProps, ctx.candidate.dynamicProps)\r\n if (config) {\r\n source = makeGridSource(ctx.candidate.key, this.options)\r\n }\r\n }\r\n\r\n return [source, config]\r\n }\r\n\r\n selectCandidate (time) {\r\n const now = moment()\r\n\r\n let candidate = null\r\n // select a source for the requested time\r\n for (const source of this.candidates) {\r\n const from = source.from ? makeTime(source.from, now) : null\r\n const to = source.to ? makeTime(source.to, now) : null\r\n if (from && to) {\r\n candidate = time.isBetween(from, to) ? source : null\r\n } else if (from) {\r\n candidate = time.isSameOrAfter(from) ? source : null\r\n } else if (to) {\r\n candidate = time.isSameOrBefore(to) ? source : null\r\n }\r\n\r\n if (candidate) break\r\n }\r\n\r\n return candidate\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../map/common/time-based-grid-source.js"],"names":["TimeBasedGridSource","DynamicGridSource","getKey","constructor","options","setTime","time","updateCtx","clone","utc","queueUpdate","setup","config","candidates","source","sources","item","Object","assign","default","key","conf","candidate","staticProps","dynamicProps","from","to","every","moment","duration","dynprops","_","has","prop","keys","value","generator","dynpropGenerator","push","makeBuildContext","ctx","selectCandidate","stepTime","Math","trunc","shouldSkipUpdate","newContext","oldContext","isSame","buildSourceAndConfig","deriveConfig","now","isBetween","isSameOrAfter","isSameOrBefore"],"mappings":"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","file":"time-based-grid-source.js","sourcesContent":["import _ from 'lodash'\r\nimport moment from 'moment'\r\nimport { makeGridSource, extractGridSourceConfig } from './grid'\r\nimport { DynamicGridSource } from './dynamic-grid-source'\r\nimport { readAsTimeOrDuration, makeTime } from './moment-utils'\r\n\r\nexport class TimeBasedGridSource extends DynamicGridSource {\r\n static getKey () {\r\n return 'time_based'\r\n }\r\n\r\n constructor (options) {\r\n super(options)\r\n\r\n this.options = options\r\n }\r\n\r\n setTime (time) {\r\n this.updateCtx.time = time.clone()\r\n this.updateCtx.time.utc()\r\n this.queueUpdate()\r\n }\r\n\r\n async setup (config) {\r\n this.candidates = []\r\n\r\n for (const source of config.sources) {\r\n // use default props and override with current source\r\n const item = Object.assign(Object.assign({}, config.default), source)\r\n\r\n const [key, conf] = extractGridSourceConfig(item)\r\n const candidate = {\r\n key: key,\r\n staticProps: conf,\r\n dynamicProps: {},\r\n from: item.from ? readAsTimeOrDuration(item.from) : null,\r\n to: item.to ? readAsTimeOrDuration(item.to) : null,\r\n every: moment.duration(item.every)\r\n }\r\n\r\n // handle dynamic properties\r\n // dynprops may be 'scoped' per grid source, that's what we check here\r\n // if not scoped, use the dynprops object\r\n const dynprops = _.has(item.dynprops, candidate.key) ? item.dynprops[candidate.key] : item.dynprops\r\n for (const prop of _.keys(dynprops)) {\r\n const value = dynprops[prop]\r\n const generator = this.dynpropGenerator(value)\r\n if (generator) candidate.dynamicProps[prop] = generator\r\n }\r\n\r\n this.candidates.push(candidate)\r\n }\r\n }\r\n\r\n makeBuildContext (updateCtx) {\r\n const ctx = Object.assign({}, updateCtx)\r\n\r\n ctx.candidate = this.selectCandidate(ctx.time)\r\n if (ctx.candidate) {\r\n ctx.stepTime = moment(Math.trunc(ctx.time / ctx.candidate.every) * ctx.candidate.every)\r\n\r\n // switch to utc mode, all display methods will display in UTC\r\n ctx.time.utc()\r\n ctx.stepTime.utc()\r\n }\r\n\r\n return ctx\r\n }\r\n\r\n shouldSkipUpdate (newContext, oldContext) {\r\n if (oldContext.candidate !== newContext.candidate) return false\r\n if (oldContext.stepTime && newContext.stepTime && !oldContext.stepTime.isSame(newContext.stepTime)) return false\r\n return true\r\n }\r\n\r\n buildSourceAndConfig (ctx) {\r\n let source = null\r\n let config = null\r\n\r\n if (ctx.candidate) {\r\n config = this.deriveConfig(ctx, ctx.candidate.staticProps, ctx.candidate.dynamicProps)\r\n if (config) {\r\n source = makeGridSource(ctx.candidate.key, this.options)\r\n }\r\n }\r\n\r\n return [source, config]\r\n }\r\n\r\n selectCandidate (time) {\r\n const now = moment()\r\n\r\n let candidate = null\r\n // select a source for the requested time\r\n for (const source of this.candidates) {\r\n const from = source.from ? makeTime(source.from, now) : null\r\n const to = source.to ? makeTime(source.to, now) : null\r\n if (from && to) {\r\n candidate = time.isBetween(from, to) ? source : null\r\n } else if (from) {\r\n candidate = time.isSameOrAfter(from) ? source : null\r\n } else if (to) {\r\n candidate = time.isSameOrBefore(to) ? source : null\r\n }\r\n\r\n if (candidate) break\r\n }\r\n\r\n return candidate\r\n }\r\n}\r\n"]}
@@ -67,7 +67,7 @@ let updateAccountEmail = exports.updateAccountEmail = (() => {
67
67
  })();
68
68
 
69
69
  let deleteAccount = exports.deleteAccount = (() => {
70
- var _ref5 = _asyncToGenerator(function* (page, name, wait = 5000) {
70
+ var _ref5 = _asyncToGenerator(function* (page, name, wait = 10000) {
71
71
  yield manageAccount(page, 'danger-zone');
72
72
  yield (0, _utils.click)(page, '#block-action');
73
73
  yield (0, _utils.type)(page, '.q-dialog input', name);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../test/client/core/account.js"],"names":["page","tab","url","includes","manageAccount","name","avatarPath","wait","updateAccountProfile","oldPassword","newPassword","updateAccountPassword","password","email","updateAccountEmail","waitForTimeout","deleteAccount","closeSignupAlert"],"mappings":"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","file":"account.js","sourcesContent":["import { click, type, uploadFile } from './utils'\r\nimport { clickAction, clickLeftPaneAction, clickTopPaneAction } from './layout'\r\n\r\nexport async function manageAccount (page, tab = 'profile') {\r\n const url = page.url()\r\n if (!url.includes('account')) await clickLeftPaneAction(page, 'manage-account')\r\n if (tab === 'profile') {\r\n if (!url.includes('profile')) await clickTopPaneAction(page, 'profile')\r\n } else if (tab === 'security') {\r\n if (!url.includes('security')) await clickTopPaneAction(page, 'security')\r\n } else {\r\n if (!url.includes('danger-zone')) await clickTopPaneAction(page, 'danger-zone')\r\n }\r\n}\r\n\r\nexport async function updateAccountProfile (page, name, avatarPath, wait = 3000) {\r\n await manageAccount(page, 'profile')\r\n await type(page, '#name-field', name, false, true)\r\n if (avatarPath) await uploadFile(page, '.dz-hidden-input', avatarPath)\r\n await clickAction(page, 'apply-button', wait)\r\n}\r\n\r\nexport async function updateAccountPassword (page, oldPassword, newPassword, wait = 1000) {\r\n await manageAccount(page, 'security')\r\n await click(page, '#password-block button', 1000)\r\n await type(page, '#oldPassword-field', oldPassword)\r\n await type(page, '#password-field', newPassword)\r\n await type(page, '#confirmPassword-field', newPassword)\r\n await click(page, 'button', 20000)\r\n await click(page, '.la-arrow-left', wait)\r\n}\r\n\r\nexport async function updateAccountEmail (page, password, email, wait = 5000) {\r\n await manageAccount(page, 'security')\r\n await click(page, '#email-block button', 1000)\r\n await type(page, '#password-field', password)\r\n await type(page, '#email-field', email)\r\n await click(page, 'button', wait)\r\n}\r\n\r\nexport async function deleteAccount (page, name, wait = 5000) {\r\n await manageAccount(page, 'danger-zone')\r\n await click(page, '#block-action')\r\n await type(page, '.q-dialog input', name)\r\n await click(page, '.q-dialog button:nth-child(2)')\r\n await page.waitForTimeout(wait)\r\n}\r\n\r\nexport async function closeSignupAlert (page) {\r\n await page.waitForTimeout(1000)\r\n await click(page, '#close-signup-alert')\r\n await page.waitForTimeout(500)\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../../test/client/core/account.js"],"names":["page","tab","url","includes","manageAccount","name","avatarPath","wait","updateAccountProfile","oldPassword","newPassword","updateAccountPassword","password","email","updateAccountEmail","waitForTimeout","deleteAccount","closeSignupAlert"],"mappings":"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","file":"account.js","sourcesContent":["import { click, type, uploadFile } from './utils'\r\nimport { clickAction, clickLeftPaneAction, clickTopPaneAction } from './layout'\r\n\r\nexport async function manageAccount (page, tab = 'profile') {\r\n const url = page.url()\r\n if (!url.includes('account')) await clickLeftPaneAction(page, 'manage-account')\r\n if (tab === 'profile') {\r\n if (!url.includes('profile')) await clickTopPaneAction(page, 'profile')\r\n } else if (tab === 'security') {\r\n if (!url.includes('security')) await clickTopPaneAction(page, 'security')\r\n } else {\r\n if (!url.includes('danger-zone')) await clickTopPaneAction(page, 'danger-zone')\r\n }\r\n}\r\n\r\nexport async function updateAccountProfile (page, name, avatarPath, wait = 3000) {\r\n await manageAccount(page, 'profile')\r\n await type(page, '#name-field', name, false, true)\r\n if (avatarPath) await uploadFile(page, '.dz-hidden-input', avatarPath)\r\n await clickAction(page, 'apply-button', wait)\r\n}\r\n\r\nexport async function updateAccountPassword (page, oldPassword, newPassword, wait = 1000) {\r\n await manageAccount(page, 'security')\r\n await click(page, '#password-block button', 1000)\r\n await type(page, '#oldPassword-field', oldPassword)\r\n await type(page, '#password-field', newPassword)\r\n await type(page, '#confirmPassword-field', newPassword)\r\n await click(page, 'button', 20000)\r\n await click(page, '.la-arrow-left', wait)\r\n}\r\n\r\nexport async function updateAccountEmail (page, password, email, wait = 5000) {\r\n await manageAccount(page, 'security')\r\n await click(page, '#email-block button', 1000)\r\n await type(page, '#password-field', password)\r\n await type(page, '#email-field', email)\r\n await click(page, 'button', wait)\r\n}\r\n\r\nexport async function deleteAccount (page, name, wait = 10000) {\r\n await manageAccount(page, 'danger-zone')\r\n await click(page, '#block-action')\r\n await type(page, '.q-dialog input', name)\r\n await click(page, '.q-dialog button:nth-child(2)')\r\n await page.waitForTimeout(wait)\r\n}\r\n\r\nexport async function closeSignupAlert (page) {\r\n await page.waitForTimeout(1000)\r\n await click(page, '#close-signup-alert')\r\n await page.waitForTimeout(500)\r\n}\r\n"]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.shrinkCard = exports.expandCard = exports.isCardExpanded = exports.clickItemAction = exports.itemActionExists = exports.itemExists = exports.countItems = undefined;
6
+ exports.shrinkCard = exports.expandCard = exports.isCardExpanded = exports.clickItemAction = exports.clickItem = exports.itemActionExists = exports.itemExists = exports.countItems = undefined;
7
7
 
8
8
  let countItems = exports.countItems = (() => {
9
9
  var _ref = _asyncToGenerator(function* (page, component) {
@@ -39,8 +39,26 @@ let itemActionExists = exports.itemActionExists = (() => {
39
39
  };
40
40
  })();
41
41
 
42
+ let clickItem = exports.clickItem = (() => {
43
+ var _ref4 = _asyncToGenerator(function* (page, component, name, wait = 250) {
44
+ const xpath = `//div[contains(@component, "${component}") and contains(., "${name}")]`;
45
+ const elements = yield page.$x(xpath);
46
+ if (elements.length > 0) {
47
+ elements[0].click();
48
+ yield page.waitForTimeout(wait);
49
+ debug(`Clicked item ${name}`);
50
+ } else {
51
+ debug(`Item ${name} not found`);
52
+ }
53
+ });
54
+
55
+ return function clickItem(_x10, _x11, _x12) {
56
+ return _ref4.apply(this, arguments);
57
+ };
58
+ })();
59
+
42
60
  let clickItemAction = exports.clickItemAction = (() => {
43
- var _ref4 = _asyncToGenerator(function* (page, component, name, action, wait = 250) {
61
+ var _ref5 = _asyncToGenerator(function* (page, component, name, action, wait = 250) {
44
62
  const xpath = `//div[contains(@component, "${component}") and contains(., "${name}")]//button[@id="${action}"]`;
45
63
  const elements = yield page.$x(xpath);
46
64
  if (elements.length > 0) {
@@ -52,46 +70,46 @@ let clickItemAction = exports.clickItemAction = (() => {
52
70
  }
53
71
  });
54
72
 
55
- return function clickItemAction(_x10, _x11, _x12, _x13) {
56
- return _ref4.apply(this, arguments);
73
+ return function clickItemAction(_x13, _x14, _x15, _x16) {
74
+ return _ref5.apply(this, arguments);
57
75
  };
58
76
  })();
59
77
 
60
78
  let isCardExpanded = exports.isCardExpanded = (() => {
61
- var _ref5 = _asyncToGenerator(function* (page, component, name) {
79
+ var _ref6 = _asyncToGenerator(function* (page, component, name) {
62
80
  const xpath = `//div[contains(@component, "${component}") and contains(., "${name}")]//i[contains(@class, "la-angle-up")]`;
63
81
  const elements = yield page.$x(xpath);
64
82
  return elements.length > 0;
65
83
  });
66
84
 
67
- return function isCardExpanded(_x14, _x15, _x16) {
68
- return _ref5.apply(this, arguments);
85
+ return function isCardExpanded(_x17, _x18, _x19) {
86
+ return _ref6.apply(this, arguments);
69
87
  };
70
88
  })();
71
89
 
72
90
  let expandCard = exports.expandCard = (() => {
73
- var _ref6 = _asyncToGenerator(function* (page, component, name, wait = 1000) {
91
+ var _ref7 = _asyncToGenerator(function* (page, component, name, wait = 1000) {
74
92
  const isExpanded = yield isCardExpanded(page, component, name);
75
93
  if (!isExpanded) {
76
94
  yield clickItemAction(page, component, name, 'expand-action', wait);
77
95
  }
78
96
  });
79
97
 
80
- return function expandCard(_x17, _x18, _x19) {
81
- return _ref6.apply(this, arguments);
98
+ return function expandCard(_x20, _x21, _x22) {
99
+ return _ref7.apply(this, arguments);
82
100
  };
83
101
  })();
84
102
 
85
103
  let shrinkCard = exports.shrinkCard = (() => {
86
- var _ref7 = _asyncToGenerator(function* (page, component, name) {
104
+ var _ref8 = _asyncToGenerator(function* (page, component, name) {
87
105
  const isExpanded = yield isCardExpanded(page, component, name);
88
106
  if (isExpanded) {
89
107
  yield clickItemAction(page, component, name, 'expand-action', 1000);
90
108
  }
91
109
  });
92
110
 
93
- return function shrinkCard(_x20, _x21, _x22) {
94
- return _ref7.apply(this, arguments);
111
+ return function shrinkCard(_x23, _x24, _x25) {
112
+ return _ref8.apply(this, arguments);
95
113
  };
96
114
  })();
97
115
 
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../test/client/core/collection.js"],"names":["page","component","countItems","name","xpath","elements","$x","length","itemExists","action","itemActionExists","wait","click","waitForTimeout","debug","clickItemAction","isCardExpanded","isExpanded","expandCard","shrinkCard"],"mappings":";;;;;;;;+BAKO,WAA2BA,IAA3B,EAAiCC,SAAjC,EAA4C;AACjD,WAAO,0BAAcD,IAAd,EAAqB,+BAA8BC,SAAU,KAA7D,CAAP;AACD,G;;kBAFqBC,U;;;;;;gCAIf,WAA2BF,IAA3B,EAAiCC,SAAjC,EAA4CE,IAA5C,EAAkD;AACvD,UAAMC,QAAS,+BAA8BH,SAAU,uBAAsBE,IAAK,KAAlF;AACA,UAAME,WAAW,MAAML,KAAKM,EAAL,CAAQF,KAAR,CAAvB;AACA,WAAOC,SAASE,MAAT,KAAoB,CAA3B;AACD,G;;kBAJqBC,U;;;;;;gCAMf,WAAiCR,IAAjC,EAAuCC,SAAvC,EAAkDE,IAAlD,EAAwDM,MAAxD,EAAgE;AACrE,UAAML,QAAS,+BAA8BH,SAAU,uBAAsBE,IAAK,oBAAmBM,MAAO,IAA5G;AACA,UAAMJ,WAAW,MAAML,KAAKM,EAAL,CAAQF,KAAR,CAAvB;AACA,WAAOC,SAASE,MAAT,KAAoB,CAA3B;AACD,G;;kBAJqBG,gB;;;;;;gCAMf,WAAgCV,IAAhC,EAAsCC,SAAtC,EAAiDE,IAAjD,EAAuDM,MAAvD,EAA+DE,OAAO,GAAtE,EAA2E;AAChF,UAAMP,QAAS,+BAA8BH,SAAU,uBAAsBE,IAAK,oBAAmBM,MAAO,IAA5G;AACA,UAAMJ,WAAW,MAAML,KAAKM,EAAL,CAAQF,KAAR,CAAvB;AACA,QAAIC,SAASE,MAAT,GAAkB,CAAtB,EAAyB;AACvBF,eAAS,CAAT,EAAYO,KAAZ;AACA,YAAMZ,KAAKa,cAAL,CAAoBF,IAApB,CAAN;AACAG,YAAO,kBAAiBL,MAAO,YAAWN,IAAK,EAA/C;AACD,KAJD,MAIO;AACLW,YAAO,UAASL,MAAO,YAAWN,IAAK,YAAvC;AACD;AACF,G;;kBAVqBY,e;;;;;;gCAYf,WAA+Bf,IAA/B,EAAqCC,SAArC,EAAgDE,IAAhD,EAAsD;AAC3D,UAAMC,QAAS,+BAA8BH,SAAU,uBAAsBE,IAAK,yCAAlF;AACA,UAAME,WAAW,MAAML,KAAKM,EAAL,CAAQF,KAAR,CAAvB;AACA,WAAOC,SAASE,MAAT,GAAkB,CAAzB;AACD,G;;kBAJqBS,c;;;;;;gCAMf,WAA2BhB,IAA3B,EAAiCC,SAAjC,EAA4CE,IAA5C,EAAkDQ,OAAO,IAAzD,EAA+D;AACpE,UAAMM,aAAa,MAAMD,eAAehB,IAAf,EAAqBC,SAArB,EAAgCE,IAAhC,CAAzB;AACA,QAAI,CAACc,UAAL,EAAiB;AACf,YAAMF,gBAAgBf,IAAhB,EAAsBC,SAAtB,EAAiCE,IAAjC,EAAuC,eAAvC,EAAwDQ,IAAxD,CAAN;AACD;AACF,G;;kBALqBO,U;;;;;;gCAOf,WAA2BlB,IAA3B,EAAiCC,SAAjC,EAA4CE,IAA5C,EAAkD;AACvD,UAAMc,aAAa,MAAMD,eAAehB,IAAf,EAAqBC,SAArB,EAAgCE,IAAhC,CAAzB;AACA,QAAIc,UAAJ,EAAgB;AACd,YAAMF,gBAAgBf,IAAhB,EAAsBC,SAAtB,EAAiCE,IAAjC,EAAuC,eAAvC,EAAwD,IAAxD,CAAN;AACD;AACF,G;;kBALqBgB,U;;;;;AA9CtB;;;;AACA;;;;;;AAEA,MAAML,QAAQ,qBAAU,0BAAV,CAAd","file":"collection.js","sourcesContent":["import makeDebug from 'debug'\r\nimport { countElements } from './utils'\r\n\r\nconst debug = makeDebug('kdk:core:test:collection')\r\n\r\nexport async function countItems (page, component) {\r\n return countElements(page, `//div[contains(@component, \"${component}\")]`)\r\n}\r\n\r\nexport async function itemExists (page, component, name) {\r\n const xpath = `//div[contains(@component, \"${component}\") and contains(., \"${name}\")]`\r\n const elements = await page.$x(xpath)\r\n return elements.length === 1\r\n}\r\n\r\nexport async function itemActionExists (page, component, name, action) {\r\n const xpath = `//div[contains(@component, \"${component}\") and contains(., \"${name}\")]//button[@id=\"${action}\"]`\r\n const elements = await page.$x(xpath)\r\n return elements.length === 1\r\n}\r\n\r\nexport async function clickItemAction (page, component, name, action, wait = 250) {\r\n const xpath = `//div[contains(@component, \"${component}\") and contains(., \"${name}\")]//button[@id=\"${action}\"]`\r\n const elements = await page.$x(xpath)\r\n if (elements.length > 0) {\r\n elements[0].click()\r\n await page.waitForTimeout(wait)\r\n debug(`Clicked action ${action} on item ${name}`)\r\n } else {\r\n debug(`Action ${action} on item ${name} not found`)\r\n }\r\n}\r\n\r\nexport async function isCardExpanded (page, component, name) {\r\n const xpath = `//div[contains(@component, \"${component}\") and contains(., \"${name}\")]//i[contains(@class, \"la-angle-up\")]`\r\n const elements = await page.$x(xpath)\r\n return elements.length > 0\r\n}\r\n\r\nexport async function expandCard (page, component, name, wait = 1000) {\r\n const isExpanded = await isCardExpanded(page, component, name)\r\n if (!isExpanded) {\r\n await clickItemAction(page, component, name, 'expand-action', wait)\r\n }\r\n}\r\n\r\nexport async function shrinkCard (page, component, name) {\r\n const isExpanded = await isCardExpanded(page, component, name)\r\n if (isExpanded) {\r\n await clickItemAction(page, component, name, 'expand-action', 1000)\r\n }\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../../test/client/core/collection.js"],"names":["page","component","countItems","name","xpath","elements","$x","length","itemExists","action","itemActionExists","wait","click","waitForTimeout","debug","clickItem","clickItemAction","isCardExpanded","isExpanded","expandCard","shrinkCard"],"mappings":"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","file":"collection.js","sourcesContent":["import makeDebug from 'debug'\r\nimport { countElements } from './utils'\r\n\r\nconst debug = makeDebug('kdk:core:test:collection')\r\n\r\nexport async function countItems (page, component) {\r\n return countElements(page, `//div[contains(@component, \"${component}\")]`)\r\n}\r\n\r\nexport async function itemExists (page, component, name) {\r\n const xpath = `//div[contains(@component, \"${component}\") and contains(., \"${name}\")]`\r\n const elements = await page.$x(xpath)\r\n return elements.length === 1\r\n}\r\n\r\nexport async function itemActionExists (page, component, name, action) {\r\n const xpath = `//div[contains(@component, \"${component}\") and contains(., \"${name}\")]//button[@id=\"${action}\"]`\r\n const elements = await page.$x(xpath)\r\n return elements.length === 1\r\n}\r\n\r\nexport async function clickItem (page, component, name, wait = 250) {\r\n const xpath = `//div[contains(@component, \"${component}\") and contains(., \"${name}\")]`\r\n const elements = await page.$x(xpath)\r\n if (elements.length > 0) {\r\n elements[0].click()\r\n await page.waitForTimeout(wait)\r\n debug(`Clicked item ${name}`)\r\n } else {\r\n debug(`Item ${name} not found`)\r\n }\r\n}\r\n\r\nexport async function clickItemAction (page, component, name, action, wait = 250) {\r\n const xpath = `//div[contains(@component, \"${component}\") and contains(., \"${name}\")]//button[@id=\"${action}\"]`\r\n const elements = await page.$x(xpath)\r\n if (elements.length > 0) {\r\n elements[0].click()\r\n await page.waitForTimeout(wait)\r\n debug(`Clicked action ${action} on item ${name}`)\r\n } else {\r\n debug(`Action ${action} on item ${name} not found`)\r\n }\r\n}\r\n\r\nexport async function isCardExpanded (page, component, name) {\r\n const xpath = `//div[contains(@component, \"${component}\") and contains(., \"${name}\")]//i[contains(@class, \"la-angle-up\")]`\r\n const elements = await page.$x(xpath)\r\n return elements.length > 0\r\n}\r\n\r\nexport async function expandCard (page, component, name, wait = 1000) {\r\n const isExpanded = await isCardExpanded(page, component, name)\r\n if (!isExpanded) {\r\n await clickItemAction(page, component, name, 'expand-action', wait)\r\n }\r\n}\r\n\r\nexport async function shrinkCard (page, component, name) {\r\n const isExpanded = await isCardExpanded(page, component, name)\r\n if (isExpanded) {\r\n await clickItemAction(page, component, name, 'expand-action', 1000)\r\n }\r\n}\r\n"]}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.logout = exports.isToastVisible = exports.closeWelcomeDialog = exports.clickFab = exports.clickLeftPaneAction = exports.clickBottomPaneAction = exports.clickRightPaneAction = exports.clickTopPaneAction = exports.clickAction = exports.isLeftPaneVisible = exports.isBottomPaneVisible = exports.isRightPaneVisible = exports.isTopPaneVisible = exports.clickLeftOpener = exports.clickBottomOpener = exports.clickRightOpener = exports.clickTopOpener = undefined;
6
+ exports.logout = exports.isToastVisible = exports.closeWelcomeDialog = exports.clickFab = exports.clickLeftPaneAction = exports.clickBottomPaneAction = exports.clickRightPaneAction = exports.clickTopPaneAction = exports.clickAction = exports.closeLeftPane = exports.openLeftPane = exports.isLeftPaneVisible = exports.clickLeftOpener = exports.closeBottomPane = exports.openBottomPane = exports.isBottomPaneVisible = exports.clickBottomOpener = exports.closeRightPane = exports.openRightPane = exports.isRightPaneVisible = exports.clickRightOpener = exports.closeTopPane = exports.openTopPane = exports.isTopPaneVisible = exports.clickTopOpener = undefined;
7
7
 
8
8
  let clickOpener = (() => {
9
9
  var _ref = _asyncToGenerator(function* (page, opener) {
@@ -30,42 +30,44 @@ let clickTopOpener = exports.clickTopOpener = (() => {
30
30
  };
31
31
  })();
32
32
 
33
- let clickRightOpener = exports.clickRightOpener = (() => {
33
+ let isTopPaneVisible = exports.isTopPaneVisible = (() => {
34
34
  var _ref3 = _asyncToGenerator(function* (page) {
35
- yield clickOpener(page, 'right');
35
+ return (0, _utils.isElementVisible)(page, '#top-panel');
36
36
  });
37
37
 
38
- return function clickRightOpener(_x4) {
38
+ return function isTopPaneVisible(_x4) {
39
39
  return _ref3.apply(this, arguments);
40
40
  };
41
41
  })();
42
42
 
43
- let clickBottomOpener = exports.clickBottomOpener = (() => {
43
+ let openTopPane = exports.openTopPane = (() => {
44
44
  var _ref4 = _asyncToGenerator(function* (page) {
45
- yield clickOpener(page, 'bottom');
45
+ const isOpen = yield isTopPaneVisible(page);
46
+ if (!isOpen) yield clickTopOpener(page);
46
47
  });
47
48
 
48
- return function clickBottomOpener(_x5) {
49
+ return function openTopPane(_x5) {
49
50
  return _ref4.apply(this, arguments);
50
51
  };
51
52
  })();
52
53
 
53
- let clickLeftOpener = exports.clickLeftOpener = (() => {
54
+ let closeTopPane = exports.closeTopPane = (() => {
54
55
  var _ref5 = _asyncToGenerator(function* (page) {
55
- yield clickOpener(page, 'left');
56
+ const isOpen = yield isTopPaneVisible(page);
57
+ if (isOpen) yield clickTopOpener(page);
56
58
  });
57
59
 
58
- return function clickLeftOpener(_x6) {
60
+ return function closeTopPane(_x6) {
59
61
  return _ref5.apply(this, arguments);
60
62
  };
61
63
  })();
62
64
 
63
- let isTopPaneVisible = exports.isTopPaneVisible = (() => {
65
+ let clickRightOpener = exports.clickRightOpener = (() => {
64
66
  var _ref6 = _asyncToGenerator(function* (page) {
65
- return (0, _utils.isElementVisible)(page, '#top-panel');
67
+ yield clickOpener(page, 'right');
66
68
  });
67
69
 
68
- return function isTopPaneVisible(_x7) {
70
+ return function clickRightOpener(_x7) {
69
71
  return _ref6.apply(this, arguments);
70
72
  };
71
73
  })();
@@ -80,130 +82,216 @@ let isRightPaneVisible = exports.isRightPaneVisible = (() => {
80
82
  };
81
83
  })();
82
84
 
83
- let isBottomPaneVisible = exports.isBottomPaneVisible = (() => {
85
+ let openRightPane = exports.openRightPane = (() => {
84
86
  var _ref8 = _asyncToGenerator(function* (page) {
85
- return (0, _utils.isElementVisible)(page, '#bottom-panel');
87
+ const isOpen = yield isRightPaneVisible(page);
88
+ if (!isOpen) yield clickRightOpener(page);
86
89
  });
87
90
 
88
- return function isBottomPaneVisible(_x9) {
91
+ return function openRightPane(_x9) {
89
92
  return _ref8.apply(this, arguments);
90
93
  };
91
94
  })();
92
95
 
93
- let isLeftPaneVisible = exports.isLeftPaneVisible = (() => {
96
+ let closeRightPane = exports.closeRightPane = (() => {
94
97
  var _ref9 = _asyncToGenerator(function* (page) {
95
- return (0, _utils.isElementVisible)(page, '#left-panel');
98
+ const isOpen = yield isRightPaneVisible(page);
99
+ if (isOpen) yield clickRightOpener(page);
96
100
  });
97
101
 
98
- return function isLeftPaneVisible(_x10) {
102
+ return function closeRightPane(_x10) {
99
103
  return _ref9.apply(this, arguments);
100
104
  };
101
105
  })();
102
106
 
107
+ let clickBottomOpener = exports.clickBottomOpener = (() => {
108
+ var _ref10 = _asyncToGenerator(function* (page) {
109
+ yield clickOpener(page, 'bottom');
110
+ });
111
+
112
+ return function clickBottomOpener(_x11) {
113
+ return _ref10.apply(this, arguments);
114
+ };
115
+ })();
116
+
117
+ let isBottomPaneVisible = exports.isBottomPaneVisible = (() => {
118
+ var _ref11 = _asyncToGenerator(function* (page) {
119
+ return (0, _utils.isElementVisible)(page, '#bottom-panel');
120
+ });
121
+
122
+ return function isBottomPaneVisible(_x12) {
123
+ return _ref11.apply(this, arguments);
124
+ };
125
+ })();
126
+
127
+ let openBottomPane = exports.openBottomPane = (() => {
128
+ var _ref12 = _asyncToGenerator(function* (page) {
129
+ const isOpen = yield isBottomPaneVisible(page);
130
+ if (!isOpen) yield clickBottomOpener(page);
131
+ });
132
+
133
+ return function openBottomPane(_x13) {
134
+ return _ref12.apply(this, arguments);
135
+ };
136
+ })();
137
+
138
+ let closeBottomPane = exports.closeBottomPane = (() => {
139
+ var _ref13 = _asyncToGenerator(function* (page) {
140
+ const isOpen = yield isBottomPaneVisible(page);
141
+ if (isOpen) yield clickBottomOpener(page);
142
+ });
143
+
144
+ return function closeBottomPane(_x14) {
145
+ return _ref13.apply(this, arguments);
146
+ };
147
+ })();
148
+
149
+ let clickLeftOpener = exports.clickLeftOpener = (() => {
150
+ var _ref14 = _asyncToGenerator(function* (page) {
151
+ yield clickOpener(page, 'left');
152
+ });
153
+
154
+ return function clickLeftOpener(_x15) {
155
+ return _ref14.apply(this, arguments);
156
+ };
157
+ })();
158
+
159
+ let isLeftPaneVisible = exports.isLeftPaneVisible = (() => {
160
+ var _ref15 = _asyncToGenerator(function* (page) {
161
+ return (0, _utils.isElementVisible)(page, '#left-panel');
162
+ });
163
+
164
+ return function isLeftPaneVisible(_x16) {
165
+ return _ref15.apply(this, arguments);
166
+ };
167
+ })();
168
+
169
+ let openLeftPane = exports.openLeftPane = (() => {
170
+ var _ref16 = _asyncToGenerator(function* (page) {
171
+ const isOpen = yield isLeftPaneVisible(page);
172
+ if (!isOpen) yield clickLeftOpener(page);
173
+ });
174
+
175
+ return function openLeftPane(_x17) {
176
+ return _ref16.apply(this, arguments);
177
+ };
178
+ })();
179
+
180
+ let closeLeftPane = exports.closeLeftPane = (() => {
181
+ var _ref17 = _asyncToGenerator(function* (page) {
182
+ const isOpen = yield isLeftPaneVisible(page);
183
+ if (isOpen) yield clickLeftOpener(page);
184
+ });
185
+
186
+ return function closeLeftPane(_x18) {
187
+ return _ref17.apply(this, arguments);
188
+ };
189
+ })();
190
+
103
191
  let clickAction = exports.clickAction = (() => {
104
- var _ref10 = _asyncToGenerator(function* (page, action, wait = 250) {
192
+ var _ref18 = _asyncToGenerator(function* (page, action, wait = 250) {
105
193
  const selector = `#${action}`;
106
194
  yield (0, _utils.click)(page, selector, wait);
107
195
  debug(`Clicked action ${selector}`);
108
196
  });
109
197
 
110
- return function clickAction(_x11, _x12) {
111
- return _ref10.apply(this, arguments);
198
+ return function clickAction(_x19, _x20) {
199
+ return _ref18.apply(this, arguments);
112
200
  };
113
201
  })();
114
202
 
115
203
  let clickPaneAction = (() => {
116
- var _ref11 = _asyncToGenerator(function* (page, pane, action, wait) {
204
+ var _ref19 = _asyncToGenerator(function* (page, pane, action, wait) {
117
205
  const isPaneVisible = yield (0, _utils.isElementVisible)(page, `#${pane}-panel`);
118
206
  if (!isPaneVisible) yield clickOpener(page, pane);
119
207
  yield clickAction(page, action, wait);
120
208
  if (!isPaneVisible) yield clickOpener(page, pane);
121
209
  });
122
210
 
123
- return function clickPaneAction(_x13, _x14, _x15, _x16) {
124
- return _ref11.apply(this, arguments);
211
+ return function clickPaneAction(_x21, _x22, _x23, _x24) {
212
+ return _ref19.apply(this, arguments);
125
213
  };
126
214
  })();
127
215
 
128
216
  let clickTopPaneAction = exports.clickTopPaneAction = (() => {
129
- var _ref12 = _asyncToGenerator(function* (page, action, wait = 250) {
217
+ var _ref20 = _asyncToGenerator(function* (page, action, wait = 250) {
130
218
  yield clickPaneAction(page, 'top', action, wait);
131
219
  });
132
220
 
133
- return function clickTopPaneAction(_x17, _x18) {
134
- return _ref12.apply(this, arguments);
221
+ return function clickTopPaneAction(_x25, _x26) {
222
+ return _ref20.apply(this, arguments);
135
223
  };
136
224
  })();
137
225
 
138
226
  let clickRightPaneAction = exports.clickRightPaneAction = (() => {
139
- var _ref13 = _asyncToGenerator(function* (page, action, wait = 250) {
227
+ var _ref21 = _asyncToGenerator(function* (page, action, wait = 250) {
140
228
  yield clickPaneAction(page, 'right', action, wait);
141
229
  });
142
230
 
143
- return function clickRightPaneAction(_x19, _x20) {
144
- return _ref13.apply(this, arguments);
231
+ return function clickRightPaneAction(_x27, _x28) {
232
+ return _ref21.apply(this, arguments);
145
233
  };
146
234
  })();
147
235
 
148
236
  let clickBottomPaneAction = exports.clickBottomPaneAction = (() => {
149
- var _ref14 = _asyncToGenerator(function* (page, action, wait = 250) {
237
+ var _ref22 = _asyncToGenerator(function* (page, action, wait = 250) {
150
238
  yield clickPaneAction(page, 'bottom', action, wait);
151
239
  });
152
240
 
153
- return function clickBottomPaneAction(_x21, _x22) {
154
- return _ref14.apply(this, arguments);
241
+ return function clickBottomPaneAction(_x29, _x30) {
242
+ return _ref22.apply(this, arguments);
155
243
  };
156
244
  })();
157
245
 
158
246
  let clickLeftPaneAction = exports.clickLeftPaneAction = (() => {
159
- var _ref15 = _asyncToGenerator(function* (page, action, wait = 250) {
247
+ var _ref23 = _asyncToGenerator(function* (page, action, wait = 250) {
160
248
  const isPaneVisible = yield isLeftPaneVisible(page);
161
249
  if (!isPaneVisible) yield clickLeftOpener(page);
162
250
  yield clickAction(page, action, wait);
163
251
  });
164
252
 
165
- return function clickLeftPaneAction(_x23, _x24) {
166
- return _ref15.apply(this, arguments);
253
+ return function clickLeftPaneAction(_x31, _x32) {
254
+ return _ref23.apply(this, arguments);
167
255
  };
168
256
  })();
169
257
 
170
258
  let clickFab = exports.clickFab = (() => {
171
- var _ref16 = _asyncToGenerator(function* (page) {
259
+ var _ref24 = _asyncToGenerator(function* (page) {
172
260
  return clickAction(page, 'fab');
173
261
  });
174
262
 
175
- return function clickFab(_x25) {
176
- return _ref16.apply(this, arguments);
263
+ return function clickFab(_x33) {
264
+ return _ref24.apply(this, arguments);
177
265
  };
178
266
  })();
179
267
 
180
268
  let closeWelcomeDialog = exports.closeWelcomeDialog = (() => {
181
- var _ref17 = _asyncToGenerator(function* (page) {
269
+ var _ref25 = _asyncToGenerator(function* (page) {
182
270
  yield (0, _utils.click)(page, '.q-dialog #close-button');
183
271
  });
184
272
 
185
- return function closeWelcomeDialog(_x26) {
186
- return _ref17.apply(this, arguments);
273
+ return function closeWelcomeDialog(_x34) {
274
+ return _ref25.apply(this, arguments);
187
275
  };
188
276
  })();
189
277
 
190
278
  let isToastVisible = exports.isToastVisible = (() => {
191
- var _ref18 = _asyncToGenerator(function* (page) {
279
+ var _ref26 = _asyncToGenerator(function* (page) {
192
280
  return (0, _utils.isElementVisible)(page, '[role="alert"]');
193
281
  });
194
282
 
195
- return function isToastVisible(_x27) {
196
- return _ref18.apply(this, arguments);
283
+ return function isToastVisible(_x35) {
284
+ return _ref26.apply(this, arguments);
197
285
  };
198
286
  })();
199
287
 
200
288
  let logout = exports.logout = (() => {
201
- var _ref19 = _asyncToGenerator(function* (page) {
289
+ var _ref27 = _asyncToGenerator(function* (page) {
202
290
  yield clickLeftPaneAction(page, 'logout', 1000);
203
291
  });
204
292
 
205
- return function logout(_x28) {
206
- return _ref19.apply(this, arguments);
293
+ return function logout(_x36) {
294
+ return _ref27.apply(this, arguments);
207
295
  };
208
296
  })();
209
297