@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
@@ -32,7 +32,9 @@ import centroid from '@turf/centroid'
32
32
  import chroma from 'chroma-js'
33
33
  import Chart from 'chart.js'
34
34
  import 'chartjs-plugin-annotation'
35
+ import Papa from 'papaparse'
35
36
  import { getTimeInterval } from '../../utils'
37
+ import { downloadAsBlob } from '../../../../core/client/utils'
36
38
  import { Time } from '../../../../core/client/time'
37
39
  import { baseWidget } from '../../../../core/client/mixins'
38
40
 
@@ -101,6 +103,10 @@ export default {
101
103
  hasVariable (name, properties) {
102
104
  return (properties[name] && Array.isArray(properties[name]))
103
105
  },
106
+ getSelectedRunTime () {
107
+ // Set default run as latest
108
+ return this.runTime || _.last(this.runTimes)
109
+ },
104
110
  setupTimeTicks () {
105
111
  if (!this.times || !this.graphWidth) return
106
112
  // Choose the right step size to ensure we have almost 100px between hour ticks
@@ -145,9 +151,27 @@ export default {
145
151
  this.timeRange = null
146
152
  }
147
153
  },
154
+ setupAvailableRunTimes () {
155
+ this.runTimes = []
156
+ // FIXME: to be used when all issues are correctly fixed in weacast
157
+
158
+ /*
159
+ const runTime = this.probedLocation.runTime
160
+
161
+ this.probedVariables.forEach(variable => {
162
+ // Check if we are targetting a specific level
163
+ const name = (this.kActivity.selectedLevel ? `${variable.name}-${this.kActivity.selectedLevel}` : variable.name)
164
+
165
+ if (runTime && runTime[name]) this.runTimes.push(runTime[name])
166
+ })
167
+ // Make union of all available run times
168
+ this.runTimes = _.union(...this.runTimes).map(time => moment.utc(time)).sort((a, b) => a - b)
169
+ */
170
+ },
148
171
  setupAvailableDatasets () {
149
172
  this.datasets = []
150
173
  const time = this.probedLocation.time || this.probedLocation.forecastTime
174
+ const runTime = this.probedLocation.runTime
151
175
  const properties = this.probedLocation.properties
152
176
  // Generate a color palette in case the variables does not provide it
153
177
  const colors = _.shuffle(chroma.scale('Spectral').colors(this.probedVariables.length))
@@ -158,11 +182,19 @@ export default {
158
182
  const label = this.$t(variable.label) || variable.label
159
183
  // Aggregated variable available for feature ?
160
184
  if (this.hasVariable(name, properties)) {
185
+ // Build data structure as expected by visualisation
186
+ let values = properties[name].map((value, index) => ({ x: time[name][index], y: value }))
187
+ // Keep only selected value if multiple are provided for the same time (eg different forecasts)
188
+ if (!_.isEmpty(_.get(runTime, name)) && this.getSelectedRunTime()) {
189
+ values = values.filter((value, index) => (runTime[name][index] === this.getSelectedRunTime().toISOString()))
190
+ } else values = _.uniqBy(values, 'x')
191
+ // Then transform to date object as expected by visualisation
192
+ values = values.map((value) => Object.assign(value, { x: new Date(value.x) })).filter(this.filter)
161
193
  this.datasets.push(_.merge({
162
194
  label: `${label} (${unit})`,
163
195
  borderColor: colors[index],
164
196
  backgroundColor: colors[index],
165
- data: properties[name].map((value, index) => ({ x: new Date(time[name][index]), y: value })).filter(this.filter),
197
+ data: values,
166
198
  yAxisID: unit
167
199
  }, _.omit(variable.chartjs, 'yAxis')))
168
200
  }
@@ -276,6 +308,7 @@ export default {
276
308
  // Setup the graph
277
309
  this.setupAvailableTimes()
278
310
  this.setupTimeTicks()
311
+ this.setupAvailableRunTimes()
279
312
  this.setupAvailableDatasets()
280
313
  this.setupAvailableYAxes()
281
314
 
@@ -381,6 +414,14 @@ export default {
381
414
  onUpdateSpan (span) {
382
415
  this.$store.set('timeseries.span', span)
383
416
  },
417
+ onUpdateRun (runTime) {
418
+ this.runTime = runTime
419
+ // Update tooltip action
420
+ const action = _.find(this.actions, { id: 'run-options' })
421
+ action.tooltip = this.$t('KTimeSeries.RUN') + ' (' + Time.format(this.getSelectedRunTime(), 'date.short') +
422
+ ' - ' + Time.format(this.getSelectedRunTime(), 'time.short') + ')'
423
+ this.setupGraph()
424
+ },
384
425
  updateProbedLocationHighlight () {
385
426
  if (!this.probedLocation) return
386
427
  const windDirection = (this.kActivity.selectedLevel ? `windDirection-${this.kActivity.selectedLevel}` : 'windDirection')
@@ -397,6 +438,20 @@ export default {
397
438
  onCenterOn () {
398
439
  this.kActivity.centerOnSelection()
399
440
  },
441
+ onExportSeries () {
442
+ const json = this.times.map(time => {
443
+ const row = {
444
+ [this.$t('KTimeSeries.TIME_LABEL')]: time.toISOString()
445
+ }
446
+ this.datasets.forEach(dataset => {
447
+ const value = _.find(dataset.data, item => item.x.toISOString() === time.toISOString())
448
+ row[dataset.label] = value ? value.y : null
449
+ })
450
+ return row
451
+ })
452
+ const csv = Papa.unparse(json)
453
+ downloadAsBlob(csv, this.$t('KTimeSeries.SERIES_EXPORT_FILE'), 'text/csv;charset=utf-8;')
454
+ },
400
455
  updateProbedLocationName () {
401
456
  this.probedLocationName = ''
402
457
  if (!this.probedLocation) return
@@ -420,9 +475,10 @@ export default {
420
475
  option.default = true
421
476
  }
422
477
  })
423
- // Registers the actions
478
+ // Registers the base actions
424
479
  this.actions = [
425
480
  { id: 'center-view', icon: 'las la-eye', tooltip: 'KTimeSeries.CENTER_ON', handler: this.onCenterOn },
481
+ { id: 'export-feature', icon: 'las la-file-download', tooltip: this.$t('KTimeSeries.EXPORT_SERIES'), handler: this.onExportSeries },
426
482
  {
427
483
  component: 'input/KOptionsChooser',
428
484
  id: 'timespan-options',
@@ -432,6 +488,8 @@ export default {
432
488
  on: { event: 'option-chosen', listener: this.onUpdateSpan }
433
489
  }
434
490
  ]
491
+ // Clear previous run timle setup if any
492
+ this.runTime = null
435
493
  // Then manage selection
436
494
  this.kActivity.addSelectionHighlight('time-series')
437
495
  this.kActivity.centerOnSelection()
@@ -459,8 +517,28 @@ export default {
459
517
  (name ? ` (${name})` : ` (${longitude.toFixed(2)}°, ${latitude.toFixed(2)}°)`))
460
518
  }
461
519
  this.updateProbedLocationName()
462
- this.setupGraph()
520
+ await this.setupGraph()
463
521
  this.updateProbedLocationHighlight()
522
+
523
+ // When forecast data are available allow to select wich run to use
524
+ if (this.runTimes && (this.runTimes.length > 1)) {
525
+ // Select latest runTime as default option
526
+ const runOptions = this.runTimes.map(runTime => ({
527
+ label: Time.format(runTime, 'date.short') + ' - ' + Time.format(runTime, 'time.short'),
528
+ value: runTime
529
+ }))
530
+ _.last(runOptions).default = true
531
+ // Registers the action
532
+ this.actions.push({
533
+ component: 'input/KOptionsChooser',
534
+ id: 'run-options',
535
+ icon: 'las la-clock',
536
+ tooltip: this.$t('KTimeSeries.RUN') + ' (' + Time.format(this.getSelectedRunTime(), 'date.short') +
537
+ ' - ' + Time.format(this.getSelectedRunTime(), 'time.short') + ')',
538
+ options: runOptions,
539
+ on: { event: 'option-chosen', listener: this.onUpdateRun }
540
+ })
541
+ }
464
542
  }
465
543
  },
466
544
  created () {
@@ -11,7 +11,10 @@
11
11
  "ALERTS_LIMIT": "Too much alerts to display all of them",
12
12
  "FILE_IMPORT_ERROR": "File import has failed",
13
13
  "CANNOT_CHECK_ALERT_MISSING_SERVICE": "Last check failed due to unavailable service",
14
- "CANNOT_CHECK_ALERT_MISSING_DATA": "Last check failed due to unavailable data"
14
+ "CANNOT_CHECK_ALERT_MISSING_DATA": "Last check failed due to unavailable data",
15
+ "INVALID_GEOJSON_FILE": "{{file}} is not a valid GeoJSON file",
16
+ "INVALID_GPX_FILE": "{{file}} is not a valid GPX file",
17
+ "INVALID_KML_FILE": "{{file}} is not a valid KML file"
15
18
  },
16
19
  "mixins": {
17
20
  "navigator": {
@@ -65,7 +68,8 @@
65
68
  "SYNCHRONIZE_TIMELINE_LABEL": "Synchronize with timeline",
66
69
  "TOOLS": "Tools",
67
70
  "SAVE_LAYER_EDITION_CHANGES": "Save edition changes",
68
- "DISCARD_LAYER_EDITION_CHANGES": "Discard edition changes"
71
+ "DISCARD_LAYER_EDITION_CHANGES": "Discard edition changes",
72
+ "CAPTURE_VIEW": "Capture the view"
69
73
  },
70
74
  "timeseries": {
71
75
  "FORECAST_PROBE": "Forecast"
@@ -328,7 +332,8 @@
328
332
  },
329
333
  "KOwsLayerField": {
330
334
  "UNABLE_TO_DESCRIBE_FEATURE_TYPE": "Failed fetching layer's description.",
331
- "UNSUPPORTED_LAYER_CRS": "The projection used by this layer is not supported."
335
+ "UNSUPPORTED_LAYER_CRS": "The projection used by this layer is not supported.",
336
+ "UNSUPPORTED_LAYER_FORMAT": "The data format used by this layer is not supported."
332
337
  },
333
338
  "KLocationField": {
334
339
  "SEARCH": "$t(SEARCH)",
@@ -358,13 +363,19 @@
358
363
  "KTimeSeries": {
359
364
  "NO_DATA_AVAILABLE": "No data available",
360
365
  "CENTER_ON": "Center the view on the probed location",
361
- "SPAN": "Timeseries span"
366
+ "SPAN": "Timeseries span",
367
+ "RUN": "Forecast run",
368
+ "TIME_LABEL": "Time",
369
+ "EXPORT_SERIES": "Export data",
370
+ "SERIES_EXPORT_FILE": "Series.csv"
362
371
  },
363
372
  "KCatalogPanel": {
364
373
  "BASE_LAYERS": "Base Layers",
365
374
  "TERRAIN_LAYERS": "Terrain layers",
366
375
  "OVERLAY_LAYERS": "My layers",
367
376
  "MEASURE_LAYERS": "Measure layers",
377
+ "INFRASTRUCTURE_LAYERS": "Infrastructures",
378
+ "ADMINISTRATIVE_LAYERS": "Administrative",
368
379
  "METEO_LAYERS": "Meteo forecasts",
369
380
  "BUSINESS_LAYERS": "Business layers",
370
381
  "CAPTURED_LAYERS": "Captured views",
@@ -409,9 +420,10 @@
409
420
  },
410
421
  "KLayerStyleForm": {
411
422
  "BASE": "Base properties",
412
- "DEFAULT_VISIBILITY": "Visibilité par défaut",
423
+ "DEFAULT_VISIBILITY": "Visible by default",
413
424
  "MIN_ZOOM": "Visible from level",
414
425
  "MAX_ZOOM": "Visible until level",
426
+ "SELECTABLE": "Selectable",
415
427
  "LAYER_OPACITY": "Transparent layer",
416
428
  "OPACITY": "Opacity",
417
429
  "POINTS": "Markers",
@@ -548,5 +560,31 @@
548
560
  "EDIT_PROPERTIES": "Edit feature properties",
549
561
  "DRAG_FEATURES": "Move features",
550
562
  "REMOVE_FEATURES": "Remove features"
563
+ },
564
+ "KCaptureToolbar": {
565
+ "SD_LABEL": "Standard Definition",
566
+ "SD_DESCRIPTION": "4:3, 640 x 480",
567
+ "HD_LABEL": "High Definition",
568
+ "HD_DESCRIPTION": "16:9, 1280 x 720",
569
+ "FHD_LABEL": "Full HD",
570
+ "FHD_DESCRIPTION": "16:9, 1920 x 1080",
571
+ "QHD_LABEL": "Quad HD",
572
+ "QHD_DESCRIPTION": "16:9, 2560 x 1440",
573
+ "2K_LABEL": "2K",
574
+ "2K_DESCRIPTION": "1:1.77, 2048 x 1080",
575
+ "4K_LABEL": "4K or Ultra HD",
576
+ "4K_DESCRIPTION": "1:1.9, 3840 x 2160",
577
+ "8K_LABEL": "8K or Full Ultra HD",
578
+ "8K_DESCRIPTION": "16∶9, 7680 x 4320",
579
+ "CAPTURE_ACTION": "Capture view",
580
+ "CAPTURING_VIEW": "Waiting for capturing view"
581
+ },
582
+ "KMeasureTool": {
583
+ "TOOL_BUTTON_LABEL": "Display the measure tool",
584
+ "CLEAR": "Clear all measurements",
585
+ "MEASURE_DISTANCE": "Measure a distance",
586
+ "MEASURE_AREA": "Measure an area",
587
+ "DISPLAY_MEASURE_VALUE": "Display measure values",
588
+ "CLICK_TO_CHANGE_UNIT": "Click to change unit"
551
589
  }
552
590
  }
@@ -11,7 +11,10 @@
11
11
  "ALERTS_LIMIT": "Trop d'alertes pour les afficher toutes",
12
12
  "FILE_IMPORT_ERROR": "L'import du fichier a échoué",
13
13
  "CANNOT_CHECK_ALERT_MISSING_SERVICE": "La dernière vérification a échouée par indisponibilité du service",
14
- "CANNOT_CHECK_ALERT_MISSING_DATA": "La dernière vérification a échouée par indisponibilité des données"
14
+ "CANNOT_CHECK_ALERT_MISSING_DATA": "La dernière vérification a échouée par indisponibilité des données",
15
+ "INVALID_GEOJSON_FILE": "{{file}} n'est pas un fichier GeoJSON valide",
16
+ "INVALID_GPX_FILE": "{{file}} n'est pas un fichier GPX valide",
17
+ "INVALID_KML_FILE": "{{file}} n'est pas un fichier KML valide"
15
18
  },
16
19
  "mixins": {
17
20
  "navigator": {
@@ -65,7 +68,8 @@
65
68
  "SYNCHRONIZE_TIMELINE_LABEL": "Synchroniser temporellement",
66
69
  "TOOLS": "Outils",
67
70
  "SAVE_LAYER_EDITION_CHANGES": "Sauver les changements apportés",
68
- "DISCARD_LAYER_EDITION_CHANGES": "Rejeter les changements apportés"
71
+ "DISCARD_LAYER_EDITION_CHANGES": "Rejeter les changements apportés",
72
+ "CAPTURE_VIEW": "Capturer la vue"
69
73
  },
70
74
  "timeseries": {
71
75
  "FORECAST_PROBE": "Prévisions"
@@ -329,7 +333,8 @@
329
333
  },
330
334
  "KOwsLayerField": {
331
335
  "UNABLE_TO_DESCRIBE_FEATURE_TYPE": "Impossible de récupérer la description des propriétés de la couche.",
332
- "UNSUPPORTED_LAYER_CRS": "La projection utilisée par cette couche n'est pas supportée."
336
+ "UNSUPPORTED_LAYER_CRS": "La projection utilisée par cette couche n'est pas supportée.",
337
+ "UNSUPPORTED_LAYER_FORMAT": "Le format de données utilisé par cette couche n'est pas supporté."
333
338
  },
334
339
  "KLocationField": {
335
340
  "SEARCH": "$t(SEARCH)",
@@ -359,13 +364,19 @@
359
364
  "KTimeSeries": {
360
365
  "NO_DATA_AVAILABLE": "Aucune donnée disponible",
361
366
  "CENTER_ON": "Centrer la vue sur la sonde",
362
- "SPAN": "Intervalle de la série temporelle"
367
+ "SPAN": "Intervalle de la série temporelle",
368
+ "RUN": "Réseau de prévision",
369
+ "TIME_LABEL": "Temps",
370
+ "EXPORT_SERIES": "Exporter les données",
371
+ "SERIES_EXPORT_FILE": "Series.csv"
363
372
  },
364
373
  "KCatalogPanel": {
365
374
  "BASE_LAYERS": "Fonds cartographiques",
366
375
  "TERRAIN_LAYERS": "Couches terrain",
367
376
  "OVERLAY_LAYERS": "Mes données",
368
377
  "MEASURE_LAYERS": "Couches des mesures",
378
+ "INFRASTRUCTURE_LAYERS": "Infrastructures",
379
+ "ADMINISTRATIVE_LAYERS": "Administratif",
369
380
  "METEO_LAYERS": "Prévisions météo",
370
381
  "BUSINESS_LAYERS": "Couches métier",
371
382
  "CAPTURED_LAYERS": "Prises de vues",
@@ -410,9 +421,10 @@
410
421
  },
411
422
  "KLayerStyleForm": {
412
423
  "BASE": "Propriétés de base",
413
- "DEFAULT_VISIBILITY": "Visibilité par défaut",
424
+ "DEFAULT_VISIBILITY": "Visible par défaut",
414
425
  "MIN_ZOOM": "Visible à partir du niveau",
415
426
  "MAX_ZOOM": "Visible jusqu'au niveau",
427
+ "SELECTABLE": "Sélectionnable",
416
428
  "LAYER_OPACITY": "Couche transparente",
417
429
  "OPACITY": "Opacité",
418
430
  "POINTS": "Icônes",
@@ -549,5 +561,31 @@
549
561
  "EDIT_PROPERTIES": "Editer les propriétés des entités",
550
562
  "DRAG_FEATURES": "Déplacer des entités",
551
563
  "REMOVE_FEATURES": "Effacer des entités"
564
+ },
565
+ "KCaptureToolbar": {
566
+ "SD_LABEL": "Définition Standard",
567
+ "SD_DESCRIPTION": "4:3, 640 x 480",
568
+ "HD_LABEL": "Haute Définition",
569
+ "HD_DESCRIPTION": "16:9, 1280 x 720",
570
+ "FHD_LABEL": "Full HD",
571
+ "FHD_DESCRIPTION": "16:9, 1920 x 1080",
572
+ "QHD_LABEL": "Quad HD",
573
+ "QHD_DESCRIPTION": "16:9, 2560 x 1440",
574
+ "2K_LABEL": "2K",
575
+ "2K_DESCRIPTION": "1:1.77, 2048 x 1080",
576
+ "4K_LABEL": "4K ou Ultra HD",
577
+ "4K_DESCRIPTION": "1:1.9, 3840 x 2160",
578
+ "8K_LABEL": "8K ou Full Ultra HD",
579
+ "8K_DESCRIPTION": "16∶9, 7680 x 4320",
580
+ "CAPTURE_ACTION": "Capturer la vue",
581
+ "CAPTURING_VIEW": "En attente de capture de la vue"
582
+ },
583
+ "KMeasureTool": {
584
+ "TOOL_BUTTON_LABEL": "Afficher l'outil de mesures",
585
+ "CLEAR": "Effacer les mesures",
586
+ "MEASURE_DISTANCE": "Mesurer une distance",
587
+ "MEASURE_AREA": "Mesurer une aire",
588
+ "DISPLAY_MEASURE_VALUE": "Afficher les valeurs des mesures",
589
+ "CLICK_TO_CHANGE_UNIT": "Cliquer pour changer d'unité"
552
590
  }
553
591
  }
@@ -23,6 +23,8 @@ var _client = require('../../core/client');
23
23
 
24
24
  var _geolocation = require('./geolocation');
25
25
 
26
+ var _readers = require('./readers');
27
+
26
28
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
29
 
28
30
  function siftMatcher(originalQuery) {
@@ -53,6 +55,9 @@ function init() {
53
55
 
54
56
  // Initialize singletons that might be used globally first
55
57
  _geolocation.Geolocation.initialize();
58
+ _client.Reader.register('.geojson', _readers.readGEOJSON);
59
+ _client.Reader.register('.kml', _readers.readKML);
60
+ _client.Reader.register('.gpx', _readers.readGPX);
56
61
 
57
62
  // Then, create the models listened by the different components
58
63
  // You must use the patch method on the store to update those models
@@ -94,8 +99,8 @@ function init() {
94
99
  });
95
100
 
96
101
  if (!_quasar.Platform.is.cordova) return;
97
- window.navigationApps = [];
98
102
 
103
+ window.navigationApps = [];
99
104
  document.addEventListener('deviceready', _ => {
100
105
  // Declare the navigation apps
101
106
  window.launchnavigator.availableApps(result => {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../map/client/init.js"],"names":["init","siftMatcher","originalQuery","keysToOmit","_","omit","api","logger","debug","declareService","registerMatcher","createService","service","id","paginate","default","matcher","Geolocation","initialize","Store","set","location","feature","layer","time","short","long","date","year","utc","locale","kCoreUtils","getLocale","view","layers","span","Platform","is","cordova","window","navigationApps","document","addEventListener","launchnavigator","availableApps","result","apps","Object","entries","forEach","app","push","error","warn"],"mappings":";;;;;kBAcwBA,I;;AAdxB;;;;AACA;;;;AACA;;;;AACA;;AACA;;AACA;;;;AAEA,SAASC,WAAT,CAAsBC,aAAtB,EAAqC;AACnC;AACA;AACA,QAAMC,aAAa,CAAC,SAAD,CAAnB;AACA,SAAOC,iBAAEC,IAAF,CAAOH,aAAP,EAAsB,GAAGC,UAAzB,CAAP;AACD;;AAEc,SAASH,IAAT,GAAiB;AAC9B,QAAMM,MAAM,IAAZ;;AAEAC,qBAAOC,KAAP,CAAa,kBAAb;;AAEA;AACAF,MAAIG,cAAJ,CAAmB,UAAnB;AACA;AACAH,MAAII,eAAJ,CAAoBT,WAApB;AACA;AACA;AACAK,MAAIK,aAAJ,CAAkB,kBAAlB,EAAsC;AACpCC,aAAS,8BAAO;AACdC,UAAI,KADU;AAEdC,gBAAU,EAAEC,SAAS,EAAX,EAFI;AAGdC,eAASV,IAAIU;AAHC,KAAP;AAD2B,GAAtC;;AAQA;AACAC,2BAAYC,UAAZ;;AAEA;AACA;AACA;;AAEA;AACAC,gBAAMC,GAAN,CAAU,WAAV,EAAuB;AACrBC,cAAU,IADW;AAErBC,aAAS,IAFY;AAGrBC,WAAO;AAHc,GAAvB;AAKA;AACAJ,gBAAMC,GAAN,CAAU,YAAV,EAAwB;AACtBI,UAAM;AACJC,aAAO,MADH;AAEJC,YAAM;AAFF,KADgB;AAKtBC,UAAM;AACJF,aAAO,OADH;AAEJC,YAAM;AAFF,KALgB;AAStBE,UAAM;AACJH,aAAO,IADH;AAEJC,YAAM;AAFF,KATgB;AAatBG,SAAK,KAbiB;AActBC,YAAQC,cAAWC,SAAX;AAdc,GAAxB;AAgBA;AACAb,gBAAMC,GAAN,CAAU,gBAAV,EAA4B,GAA5B;AACA;AACAD,gBAAMC,GAAN,CAAU,SAAV,EAAqB;AACnBa,UAAM,IADa;AAEnBC,YAAQ;AAFW,GAArB;AAIA;AACAf,gBAAMC,GAAN,CAAU,YAAV,EAAwB;AACtBe,UAAM,IADgB,CACX;AADW,GAAxB;;AAIA,MAAI,CAACC,iBAASC,EAAT,CAAYC,OAAjB,EAA0B;AAC1BC,SAAOC,cAAP,GAAwB,EAAxB;;AAEAC,WAASC,gBAAT,CAA0B,aAA1B,EAAyCtC,KAAK;AAC5C;AACAmC,WAAOI,eAAP,CAAuBC,aAAvB,CAAsCC,MAAD,IAAY;AAC/C,YAAMC,OAAOC,OAAOC,OAAP,CAAeH,MAAf,CAAb;AACAC,WAAKG,OAAL,CAAcC,GAAD,IAAS;AACpB,YAAIA,IAAI,CAAJ,CAAJ,EAAYX,OAAOC,cAAP,CAAsBW,IAAtB,CAA2BD,IAAI,CAAJ,CAA3B;AACb,OAFD;AAGD,KALD,EAKIE,KAAD,IAAW7C,mBAAO8C,IAAP,CAAY,gDAAgDD,KAA5D,CALd;AAMD,GARD;AASD","file":"init.js","sourcesContent":["import _ from 'lodash'\r\nimport logger from 'loglevel'\r\nimport memory from 'feathers-memory'\r\nimport { Platform } from 'quasar'\r\nimport { Store, utils as kCoreUtils } from '../../core/client'\r\nimport { Geolocation } from './geolocation'\r\n\r\nfunction siftMatcher (originalQuery) {\r\n // Filter out specific operators others than the reserved ones (starting by $),\r\n // which are already filtered by core matcher\r\n const keysToOmit = ['geoJson']\r\n return _.omit(originalQuery, ...keysToOmit)\r\n}\r\n\r\nexport default function init () {\r\n const api = this\r\n\r\n logger.debug('Initializing map')\r\n\r\n // Declare the built-in services, others are optional\r\n api.declareService('geocoder')\r\n // Declare our matcher\r\n api.registerMatcher(siftMatcher)\r\n // Service to support in memory features edition\r\n // mixin.edit-layers use it when edited layer is not stored\r\n api.createService('features-edition', {\r\n service: memory({\r\n id: '_id',\r\n paginate: { default: 10 },\r\n matcher: api.matcher\r\n })\r\n })\r\n\r\n // Initialize singletons that might be used globally first\r\n Geolocation.initialize()\r\n\r\n // Then, create the models listened by the different components\r\n // You must use the patch method on the store to update those models\r\n // It is generally done by activity based componentq or through a local settings service\r\n \r\n // Initialize the selection\r\n Store.set('selection', {\r\n location: null,\r\n feature: null,\r\n layer: null\r\n })\r\n // Default time formatting settings\r\n Store.set('timeFormat', {\r\n time: {\r\n short: 'H[h]',\r\n long: 'HH:mm'\r\n },\r\n date: {\r\n short: 'DD/MM',\r\n long: 'dddd D'\r\n },\r\n year: {\r\n short: 'YY',\r\n long: 'YYYY'\r\n },\r\n utc: false,\r\n locale: kCoreUtils.getLocale()\r\n })\r\n // Default location formatting settings\r\n Store.set('locationFormat', 'f')\r\n // Default view settings\r\n Store.set('restore', {\r\n view: true,\r\n layers: false\r\n })\r\n // Default timeseries parameters\r\n Store.set('timeseries', {\r\n span: 1440 // 24H\r\n })\r\n\r\n if (!Platform.is.cordova) return\r\n window.navigationApps = []\r\n\r\n document.addEventListener('deviceready', _ => {\r\n // Declare the navigation apps\r\n window.launchnavigator.availableApps((result) => {\r\n const apps = Object.entries(result)\r\n apps.forEach((app) => {\r\n if (app[1]) window.navigationApps.push(app[0])\r\n })\r\n }, (error) => logger.warn('Cannot retrieve installed navigation apps: ' + error))\r\n })\r\n}\r\n"]}
1
+ {"version":3,"sources":["../../../map/client/init.js"],"names":["init","siftMatcher","originalQuery","keysToOmit","_","omit","api","logger","debug","declareService","registerMatcher","createService","service","id","paginate","default","matcher","Geolocation","initialize","Reader","register","readGEOJSON","readKML","readGPX","Store","set","location","feature","layer","time","short","long","date","year","utc","locale","kCoreUtils","getLocale","view","layers","span","Platform","is","cordova","window","navigationApps","document","addEventListener","launchnavigator","availableApps","result","apps","Object","entries","forEach","app","push","error","warn"],"mappings":";;;;;kBAewBA,I;;AAfxB;;;;AACA;;;;AACA;;;;AACA;;AACA;;AACA;;AACA;;;;AAEA,SAASC,WAAT,CAAsBC,aAAtB,EAAqC;AACnC;AACA;AACA,QAAMC,aAAa,CAAC,SAAD,CAAnB;AACA,SAAOC,iBAAEC,IAAF,CAAOH,aAAP,EAAsB,GAAGC,UAAzB,CAAP;AACD;;AAEc,SAASH,IAAT,GAAiB;AAC9B,QAAMM,MAAM,IAAZ;;AAEAC,qBAAOC,KAAP,CAAa,kBAAb;;AAEA;AACAF,MAAIG,cAAJ,CAAmB,UAAnB;AACA;AACAH,MAAII,eAAJ,CAAoBT,WAApB;AACA;AACA;AACAK,MAAIK,aAAJ,CAAkB,kBAAlB,EAAsC;AACpCC,aAAS,8BAAO;AACdC,UAAI,KADU;AAEdC,gBAAU,EAAEC,SAAS,EAAX,EAFI;AAGdC,eAASV,IAAIU;AAHC,KAAP;AAD2B,GAAtC;;AAQA;AACAC,2BAAYC,UAAZ;AACAC,iBAAOC,QAAP,CAAgB,UAAhB,EAA4BC,oBAA5B;AACAF,iBAAOC,QAAP,CAAgB,MAAhB,EAAwBE,gBAAxB;AACAH,iBAAOC,QAAP,CAAgB,MAAhB,EAAwBG,gBAAxB;;AAEA;AACA;AACA;;AAEA;AACAC,gBAAMC,GAAN,CAAU,WAAV,EAAuB;AACrBC,cAAU,IADW;AAErBC,aAAS,IAFY;AAGrBC,WAAO;AAHc,GAAvB;AAKA;AACAJ,gBAAMC,GAAN,CAAU,YAAV,EAAwB;AACtBI,UAAM;AACJC,aAAO,MADH;AAEJC,YAAM;AAFF,KADgB;AAKtBC,UAAM;AACJF,aAAO,OADH;AAEJC,YAAM;AAFF,KALgB;AAStBE,UAAM;AACJH,aAAO,IADH;AAEJC,YAAM;AAFF,KATgB;AAatBG,SAAK,KAbiB;AActBC,YAAQC,cAAWC,SAAX;AAdc,GAAxB;AAgBA;AACAb,gBAAMC,GAAN,CAAU,gBAAV,EAA4B,GAA5B;AACA;AACAD,gBAAMC,GAAN,CAAU,SAAV,EAAqB;AACnBa,UAAM,IADa;AAEnBC,YAAQ;AAFW,GAArB;AAIA;AACAf,gBAAMC,GAAN,CAAU,YAAV,EAAwB;AACtBe,UAAM,IADgB,CACX;AADW,GAAxB;;AAIA,MAAI,CAACC,iBAASC,EAAT,CAAYC,OAAjB,EAA0B;;AAE1BC,SAAOC,cAAP,GAAwB,EAAxB;AACAC,WAASC,gBAAT,CAA0B,aAA1B,EAAyC3C,KAAK;AAC5C;AACAwC,WAAOI,eAAP,CAAuBC,aAAvB,CAAsCC,MAAD,IAAY;AAC/C,YAAMC,OAAOC,OAAOC,OAAP,CAAeH,MAAf,CAAb;AACAC,WAAKG,OAAL,CAAcC,GAAD,IAAS;AACpB,YAAIA,IAAI,CAAJ,CAAJ,EAAYX,OAAOC,cAAP,CAAsBW,IAAtB,CAA2BD,IAAI,CAAJ,CAA3B;AACb,OAFD;AAGD,KALD,EAKIE,KAAD,IAAWlD,mBAAOmD,IAAP,CAAY,gDAAgDD,KAA5D,CALd;AAMD,GARD;AASD","file":"init.js","sourcesContent":["import _ from 'lodash'\r\nimport logger from 'loglevel'\r\nimport memory from 'feathers-memory'\r\nimport { Platform } from 'quasar'\r\nimport { Store, Reader, utils as kCoreUtils } from '../../core/client'\r\nimport { Geolocation } from './geolocation'\r\nimport { readGEOJSON, readKML, readGPX } from './readers'\r\n\r\nfunction siftMatcher (originalQuery) {\r\n // Filter out specific operators others than the reserved ones (starting by $),\r\n // which are already filtered by core matcher\r\n const keysToOmit = ['geoJson']\r\n return _.omit(originalQuery, ...keysToOmit)\r\n}\r\n\r\nexport default function init () {\r\n const api = this\r\n\r\n logger.debug('Initializing map')\r\n\r\n // Declare the built-in services, others are optional\r\n api.declareService('geocoder')\r\n // Declare our matcher\r\n api.registerMatcher(siftMatcher)\r\n // Service to support in memory features edition\r\n // mixin.edit-layers use it when edited layer is not stored\r\n api.createService('features-edition', {\r\n service: memory({\r\n id: '_id',\r\n paginate: { default: 10 },\r\n matcher: api.matcher\r\n })\r\n })\r\n\r\n // Initialize singletons that might be used globally first\r\n Geolocation.initialize()\r\n Reader.register('.geojson', readGEOJSON)\r\n Reader.register('.kml', readKML)\r\n Reader.register('.gpx', readGPX)\r\n\r\n // Then, create the models listened by the different components\r\n // You must use the patch method on the store to update those models\r\n // It is generally done by activity based componentq or through a local settings service\r\n\r\n // Initialize the selection\r\n Store.set('selection', {\r\n location: null,\r\n feature: null,\r\n layer: null\r\n })\r\n // Default time formatting settings\r\n Store.set('timeFormat', {\r\n time: {\r\n short: 'H[h]',\r\n long: 'HH:mm'\r\n },\r\n date: {\r\n short: 'DD/MM',\r\n long: 'dddd D'\r\n },\r\n year: {\r\n short: 'YY',\r\n long: 'YYYY'\r\n },\r\n utc: false,\r\n locale: kCoreUtils.getLocale()\r\n })\r\n // Default location formatting settings\r\n Store.set('locationFormat', 'f')\r\n // Default view settings\r\n Store.set('restore', {\r\n view: true,\r\n layers: false\r\n })\r\n // Default timeseries parameters\r\n Store.set('timeseries', {\r\n span: 1440 // 24H\r\n })\r\n\r\n if (!Platform.is.cordova) return\r\n\r\n window.navigationApps = []\r\n document.addEventListener('deviceready', _ => {\r\n // Declare the navigation apps\r\n window.launchnavigator.availableApps((result) => {\r\n const apps = Object.entries(result)\r\n apps.forEach((app) => {\r\n if (app[1]) window.navigationApps.push(app[0])\r\n })\r\n }, (error) => logger.warn('Cannot retrieve installed navigation apps: ' + error))\r\n })\r\n}\r\n"]}
@@ -17,6 +17,10 @@ var _leaflet = require('leaflet');
17
17
 
18
18
  var _leaflet2 = _interopRequireDefault(_leaflet);
19
19
 
20
+ var _bbox = require('@turf/bbox');
21
+
22
+ var _bbox2 = _interopRequireDefault(_bbox);
23
+
20
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
25
 
22
26
  const MaskLayer = _leaflet2.default.Polygon.extend({
@@ -31,9 +35,10 @@ const MaskLayer = _leaflet2.default.Polygon.extend({
31
35
  // Define the outBounds latlngs array of the mask
32
36
  const outerBoundsLatLngs = [this.options.bounds.getSouthWest(), this.options.bounds.getNorthWest(), this.options.bounds.getNorthEast(), this.options.bounds.getSouthEast()];
33
37
  // Construct the mask
34
- let mask = [];
38
+ const mask = [];
35
39
  const type = _lodash2.default.get(geoJson, 'type');
36
40
  if (type === 'Feature') {
41
+ // Create the new geometry
37
42
  const geometryType = _lodash2.default.get(geoJson, 'geometry.type');
38
43
  const coordinates = _lodash2.default.get(geoJson, 'geometry.coordinates');
39
44
  if (geometryType === 'Polygon' && coordinates) {
@@ -41,6 +46,10 @@ const MaskLayer = _leaflet2.default.Polygon.extend({
41
46
  } else if (geometryType === 'MultiPolygon' && coordinates) {
42
47
  _lodash2.default.forEach(coordinates, polygon => this.addPolygon(polygon, mask));
43
48
  }
49
+ // Compute the bbox if needed
50
+ if (!geoJson.bbox) {
51
+ geoJson.bbox = (0, _bbox2.default)(geoJson);
52
+ }
44
53
  } else {
45
54
  _loglevel2.default.warn('Invalid/Unsupported GeoJson object for MaskLayer');
46
55
  }
@@ -48,9 +57,9 @@ const MaskLayer = _leaflet2.default.Polygon.extend({
48
57
  },
49
58
 
50
59
  addPolygon(coordinates, mask) {
51
- let hole = [];
60
+ const hole = [];
52
61
  _lodash2.default.forEach(coordinates, ring => {
53
- let ringHole = [];
62
+ const ringHole = [];
54
63
  for (let i = 0; i < ring.length; i++) {
55
64
  ringHole.push(new _leaflet2.default.LatLng(ring[i][1], ring[i][0]));
56
65
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../map/client/leaflet/MaskLayer.js"],"names":["MaskLayer","L","Polygon","extend","initialize","geoJson","options","setOptions","Object","assign","interactive","fitBounds","bounds","LatLngBounds","outerBoundsLatLngs","getSouthWest","getNorthWest","getNorthEast","getSouthEast","mask","type","_","get","geometryType","coordinates","addPolygon","forEach","polygon","logger","warn","prototype","call","hole","ring","ringHole","i","length","push","LatLng"],"mappings":";;;;;;;AAAA;;;;AACA;;;;AACA;;;;;;AAEA,MAAMA,YAAYC,kBAAEC,OAAF,CAAUC,MAAV,CAAiB;;AAEjCC,cAAY,UAAUC,OAAV,EAAmBC,OAAnB,EAA4B;AACtC;AACAL,sBAAEM,UAAF,CAAa,IAAb,EAAmBC,OAAOC,MAAP,CAAc;AAC/BC,mBAAa,KADkB;AAE/BC,iBAAW,IAFoB;AAG/BC,cAAQ,IAAIX,kBAAEY,YAAN,CAAmB,CAAC,CAAC,EAAF,EAAM,CAAC,GAAP,CAAnB,EAAgC,CAAC,EAAD,EAAK,GAAL,CAAhC;AAHuB,KAAd,CAAnB,EAIMP,OAJN;AAKA;AACA,UAAMQ,qBAAqB,CACxB,KAAKR,OAAL,CAAaM,MAAb,CAAoBG,YAApB,EADwB,EAExB,KAAKT,OAAL,CAAaM,MAAb,CAAoBI,YAApB,EAFwB,EAGxB,KAAKV,OAAL,CAAaM,MAAb,CAAoBK,YAApB,EAHwB,EAIxB,KAAKX,OAAL,CAAaM,MAAb,CAAoBM,YAApB,EAJwB,CAA3B;AAMA;AACA,QAAIC,OAAO,EAAX;AACA,UAAMC,OAAOC,iBAAEC,GAAF,CAAMjB,OAAN,EAAe,MAAf,CAAb;AACA,QAAIe,SAAS,SAAb,EAAwB;AACtB,YAAMG,eAAeF,iBAAEC,GAAF,CAAMjB,OAAN,EAAe,eAAf,CAArB;AACA,YAAMmB,cAAcH,iBAAEC,GAAF,CAAMjB,OAAN,EAAe,sBAAf,CAApB;AACA,UAAIkB,iBAAiB,SAAjB,IAA8BC,WAAlC,EAA+C;AAC7C,aAAKC,UAAL,CAAgBD,WAAhB,EAA6BL,IAA7B;AACD,OAFD,MAEO,IAAII,iBAAiB,cAAjB,IAAmCC,WAAvC,EAAoD;AACzDH,yBAAEK,OAAF,CAAUF,WAAV,EAAuBG,WAAW,KAAKF,UAAL,CAAgBE,OAAhB,EAAyBR,IAAzB,CAAlC;AACD;AACF,KARD,MAQO;AACLS,yBAAOC,IAAP,CAAY,kDAAZ;AACD;AACD5B,sBAAEC,OAAF,CAAU4B,SAAV,CAAoB1B,UAApB,CAA+B2B,IAA/B,CAAoC,IAApC,EAA0C,CAACjB,kBAAD,EAAqBK,IAArB,CAA1C,EAAsE,KAAKb,OAA3E;AACD,GA/BgC;;AAiCjCmB,aAAYD,WAAZ,EAAyBL,IAAzB,EAA+B;AAC7B,QAAIa,OAAO,EAAX;AACAX,qBAAEK,OAAF,CAAUF,WAAV,EAAuBS,QAAQ;AAC7B,UAAIC,WAAW,EAAf;AACA,WAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIF,KAAKG,MAAzB,EAAiCD,GAAjC,EAAsC;AACpCD,iBAASG,IAAT,CAAc,IAAIpC,kBAAEqC,MAAN,CAAaL,KAAKE,CAAL,EAAQ,CAAR,CAAb,EAAyBF,KAAKE,CAAL,EAAQ,CAAR,CAAzB,CAAd;AACD;AACDH,WAAKK,IAAL,CAAUH,QAAV;AACD,KAND;AAOAf,SAAKkB,IAAL,CAAUL,IAAV;AACD;AA3CgC,CAAjB,CAAlB;;QA8CShC,S,GAAAA,S","file":"MaskLayer.js","sourcesContent":["import logger from 'loglevel'\r\nimport _ from 'lodash'\r\nimport L from 'leaflet'\r\n\r\nconst MaskLayer = L.Polygon.extend({\r\n\r\n initialize: function (geoJson, options) {\r\n // Merge the options\r\n L.setOptions(this, Object.assign({ \r\n interactive: false,\r\n fitBounds: true,\r\n bounds: new L.LatLngBounds([-90, -360], [90, 360])\r\n }), options)\r\n // Define the outBounds latlngs array of the mask\r\n const outerBoundsLatLngs = [\r\n this.options.bounds.getSouthWest(),\r\n this.options.bounds.getNorthWest(),\r\n this.options.bounds.getNorthEast(),\r\n this.options.bounds.getSouthEast()\r\n ]\r\n // Construct the mask\r\n let mask = []\r\n const type = _.get(geoJson, 'type')\r\n if (type === 'Feature') {\r\n const geometryType = _.get(geoJson, 'geometry.type')\r\n const coordinates = _.get(geoJson, 'geometry.coordinates')\r\n if (geometryType === 'Polygon' && coordinates) {\r\n this.addPolygon(coordinates, mask)\r\n } else if (geometryType === 'MultiPolygon' && coordinates) {\r\n _.forEach(coordinates, polygon => this.addPolygon(polygon, mask))\r\n }\r\n } else {\r\n logger.warn('Invalid/Unsupported GeoJson object for MaskLayer')\r\n }\r\n L.Polygon.prototype.initialize.call(this, [outerBoundsLatLngs, mask], this.options)\r\n },\r\n\r\n addPolygon (coordinates, mask) {\r\n let hole = []\r\n _.forEach(coordinates, ring => {\r\n let ringHole = []\r\n for (let i = 0; i < ring.length; i++) {\r\n ringHole.push(new L.LatLng(ring[i][1], ring[i][0]))\r\n }\r\n hole.push(ringHole) \r\n })\r\n mask.push(hole)\r\n }\r\n})\r\n\r\nexport { MaskLayer }\r\n\r\n"]}
1
+ {"version":3,"sources":["../../../../map/client/leaflet/MaskLayer.js"],"names":["MaskLayer","L","Polygon","extend","initialize","geoJson","options","setOptions","Object","assign","interactive","fitBounds","bounds","LatLngBounds","outerBoundsLatLngs","getSouthWest","getNorthWest","getNorthEast","getSouthEast","mask","type","_","get","geometryType","coordinates","addPolygon","forEach","polygon","bbox","logger","warn","prototype","call","hole","ring","ringHole","i","length","push","LatLng"],"mappings":";;;;;;;AAAA;;;;AACA;;;;AACA;;;;AACA;;;;;;AAEA,MAAMA,YAAYC,kBAAEC,OAAF,CAAUC,MAAV,CAAiB;;AAEjCC,cAAY,UAAUC,OAAV,EAAmBC,OAAnB,EAA4B;AACtC;AACAL,sBAAEM,UAAF,CAAa,IAAb,EAAmBC,OAAOC,MAAP,CAAc;AAC/BC,mBAAa,KADkB;AAE/BC,iBAAW,IAFoB;AAG/BC,cAAQ,IAAIX,kBAAEY,YAAN,CAAmB,CAAC,CAAC,EAAF,EAAM,CAAC,GAAP,CAAnB,EAAgC,CAAC,EAAD,EAAK,GAAL,CAAhC;AAHuB,KAAd,CAAnB,EAIIP,OAJJ;AAKA;AACA,UAAMQ,qBAAqB,CACzB,KAAKR,OAAL,CAAaM,MAAb,CAAoBG,YAApB,EADyB,EAEzB,KAAKT,OAAL,CAAaM,MAAb,CAAoBI,YAApB,EAFyB,EAGzB,KAAKV,OAAL,CAAaM,MAAb,CAAoBK,YAApB,EAHyB,EAIzB,KAAKX,OAAL,CAAaM,MAAb,CAAoBM,YAApB,EAJyB,CAA3B;AAMA;AACA,UAAMC,OAAO,EAAb;AACA,UAAMC,OAAOC,iBAAEC,GAAF,CAAMjB,OAAN,EAAe,MAAf,CAAb;AACA,QAAIe,SAAS,SAAb,EAAwB;AACtB;AACA,YAAMG,eAAeF,iBAAEC,GAAF,CAAMjB,OAAN,EAAe,eAAf,CAArB;AACA,YAAMmB,cAAcH,iBAAEC,GAAF,CAAMjB,OAAN,EAAe,sBAAf,CAApB;AACA,UAAIkB,iBAAiB,SAAjB,IAA8BC,WAAlC,EAA+C;AAC7C,aAAKC,UAAL,CAAgBD,WAAhB,EAA6BL,IAA7B;AACD,OAFD,MAEO,IAAII,iBAAiB,cAAjB,IAAmCC,WAAvC,EAAoD;AACzDH,yBAAEK,OAAF,CAAUF,WAAV,EAAuBG,WAAW,KAAKF,UAAL,CAAgBE,OAAhB,EAAyBR,IAAzB,CAAlC;AACD;AACD;AACA,UAAI,CAACd,QAAQuB,IAAb,EAAmB;AACjBvB,gBAAQuB,IAAR,GAAe,oBAAKvB,OAAL,CAAf;AACD;AACF,KAbD,MAaO;AACLwB,yBAAOC,IAAP,CAAY,kDAAZ;AACD;AACD7B,sBAAEC,OAAF,CAAU6B,SAAV,CAAoB3B,UAApB,CAA+B4B,IAA/B,CAAoC,IAApC,EAA0C,CAAClB,kBAAD,EAAqBK,IAArB,CAA1C,EAAsE,KAAKb,OAA3E;AACD,GApCgC;;AAsCjCmB,aAAYD,WAAZ,EAAyBL,IAAzB,EAA+B;AAC7B,UAAMc,OAAO,EAAb;AACAZ,qBAAEK,OAAF,CAAUF,WAAV,EAAuBU,QAAQ;AAC7B,YAAMC,WAAW,EAAjB;AACA,WAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIF,KAAKG,MAAzB,EAAiCD,GAAjC,EAAsC;AACpCD,iBAASG,IAAT,CAAc,IAAIrC,kBAAEsC,MAAN,CAAaL,KAAKE,CAAL,EAAQ,CAAR,CAAb,EAAyBF,KAAKE,CAAL,EAAQ,CAAR,CAAzB,CAAd;AACD;AACDH,WAAKK,IAAL,CAAUH,QAAV;AACD,KAND;AAOAhB,SAAKmB,IAAL,CAAUL,IAAV;AACD;AAhDgC,CAAjB,CAAlB;;QAmDSjC,S,GAAAA,S","file":"MaskLayer.js","sourcesContent":["import logger from 'loglevel'\r\nimport _ from 'lodash'\r\nimport L from 'leaflet'\r\nimport bbox from '@turf/bbox'\r\n\r\nconst MaskLayer = L.Polygon.extend({\r\n\r\n initialize: function (geoJson, options) {\r\n // Merge the options\r\n L.setOptions(this, Object.assign({\r\n interactive: false,\r\n fitBounds: true,\r\n bounds: new L.LatLngBounds([-90, -360], [90, 360])\r\n }), options)\r\n // Define the outBounds latlngs array of the mask\r\n const outerBoundsLatLngs = [\r\n this.options.bounds.getSouthWest(),\r\n this.options.bounds.getNorthWest(),\r\n this.options.bounds.getNorthEast(),\r\n this.options.bounds.getSouthEast()\r\n ]\r\n // Construct the mask\r\n const mask = []\r\n const type = _.get(geoJson, 'type')\r\n if (type === 'Feature') {\r\n // Create the new geometry\r\n const geometryType = _.get(geoJson, 'geometry.type')\r\n const coordinates = _.get(geoJson, 'geometry.coordinates')\r\n if (geometryType === 'Polygon' && coordinates) {\r\n this.addPolygon(coordinates, mask)\r\n } else if (geometryType === 'MultiPolygon' && coordinates) {\r\n _.forEach(coordinates, polygon => this.addPolygon(polygon, mask))\r\n }\r\n // Compute the bbox if needed\r\n if (!geoJson.bbox) {\r\n geoJson.bbox = bbox(geoJson)\r\n }\r\n } else {\r\n logger.warn('Invalid/Unsupported GeoJson object for MaskLayer')\r\n }\r\n L.Polygon.prototype.initialize.call(this, [outerBoundsLatLngs, mask], this.options)\r\n },\r\n\r\n addPolygon (coordinates, mask) {\r\n const hole = []\r\n _.forEach(coordinates, ring => {\r\n const ringHole = []\r\n for (let i = 0; i < ring.length; i++) {\r\n ringHole.push(new L.LatLng(ring[i][1], ring[i][0]))\r\n }\r\n hole.push(ringHole)\r\n })\r\n mask.push(hole)\r\n }\r\n})\r\n\r\nexport { MaskLayer }\r\n"]}
@@ -18,9 +18,7 @@ var _loglevel2 = _interopRequireDefault(_loglevel);
18
18
 
19
19
  var _quasar = require('quasar');
20
20
 
21
- var _togeojson = require('togeojson');
22
-
23
- var _togeojson2 = _interopRequireDefault(_togeojson);
21
+ var _togeojson = require('@tmcw/togeojson');
24
22
 
25
23
  var _Cesium = require('cesium/Source/Cesium.js');
26
24
 
@@ -400,8 +398,8 @@ exports.default = {
400
398
  let feature = { type: 'Feature'
401
399
  // FIXME: Generate GeoJson feature if possible (requires Cesium 1.59)
402
400
  };if (typeof _Cesium2.default.exportKml === 'function') {
403
- const kml = _Cesium2.default.exportKml({ entities: [emittedEvent.target] });
404
- const geoJson = _togeojson2.default.kml(kml);
401
+ const kmlEntities = _Cesium2.default.exportKml({ entities: [emittedEvent.target] });
402
+ const geoJson = (0, _togeojson.kml)(kmlEntities);
405
403
  if (geoJson.features.length > 0) feature = geoJson.features[0];
406
404
  } else {
407
405
  const position = _Cesium2.default.Cartographic.fromCartesian(emittedEvent.target.position ? emittedEvent.target.position.getValue(0) : emittedEvent.pickedPosition);