@kalisio/kdk 2.4.1 → 2.5.2

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 (638) hide show
  1. package/core/api/application.js +12 -12
  2. package/core/api/authentication.js +51 -7
  3. package/core/api/hooks/hooks.authentication.js +1 -59
  4. package/core/api/hooks/hooks.authorisations.js +9 -104
  5. package/core/api/hooks/hooks.model.js +4 -0
  6. package/core/api/hooks/hooks.push.js +18 -14
  7. package/core/api/hooks/hooks.users.js +0 -91
  8. package/core/api/hooks/index.js +0 -2
  9. package/core/api/services/account/account.service.js +1 -1
  10. package/core/api/services/authorisations/authorisations.service.js +28 -31
  11. package/core/api/services/index.js +42 -50
  12. package/core/api/services/messages/messages.hooks.js +4 -3
  13. package/core/api/services/users/users.hooks.js +4 -3
  14. package/core/api/services/users/users.service.js +5 -0
  15. package/core/client/api.js +182 -71
  16. package/core/client/broadcaster.js +20 -0
  17. package/core/client/capabilities.js +17 -7
  18. package/core/client/components/KActivity.vue +29 -34
  19. package/core/client/components/KAvatar.vue +0 -6
  20. package/core/client/components/KChip.vue +142 -39
  21. package/core/client/components/KContent.vue +13 -32
  22. package/core/client/components/KDialog.vue +29 -8
  23. package/core/client/components/KEditor.vue +120 -0
  24. package/core/client/components/KFollower.vue +75 -0
  25. package/core/client/components/KLogo.vue +2 -3
  26. package/core/client/components/KModal.vue +30 -10
  27. package/core/client/components/KSponsor.vue +1 -1
  28. package/core/client/components/KTextArea.vue +2 -5
  29. package/core/client/components/account/KDeleteAccountManager.vue +1 -1
  30. package/core/client/components/account/KProfile.vue +52 -14
  31. package/core/client/components/account/KSubscription.vue +19 -9
  32. package/core/client/components/account/KSubscriptionsManager.vue +10 -11
  33. package/core/client/components/action/KAction.vue +44 -24
  34. package/core/client/components/action/KBugReportAction.vue +4 -5
  35. package/core/client/components/action/KToggleStickyVisibility.vue +41 -0
  36. package/core/client/components/action/KToggleWidgetVisibility.vue +41 -0
  37. package/core/client/components/app/KPlatform.vue +122 -35
  38. package/core/client/components/app/KRequestProgressBar.vue +59 -0
  39. package/core/client/components/app/KSettings.vue +13 -2
  40. package/core/client/components/app/KTour.vue +2 -2
  41. package/core/client/components/chart/KTimeSeriesChart.vue +11 -3
  42. package/core/client/components/collection/KCard.vue +27 -33
  43. package/core/client/components/collection/KCardSection.vue +3 -23
  44. package/core/client/components/collection/KColumn.vue +0 -5
  45. package/core/client/components/collection/KDescriptionCardSection.vue +10 -5
  46. package/core/client/components/collection/KFilterView.vue +15 -0
  47. package/core/client/components/collection/KGrid.vue +4 -9
  48. package/core/client/components/collection/KHistory.vue +0 -5
  49. package/core/client/components/collection/KHistoryEntry.vue +0 -2
  50. package/core/client/components/collection/KItem.vue +1 -2
  51. package/core/client/components/collection/KSearchFilterControl.vue +139 -0
  52. package/core/client/components/collection/KTable.vue +1 -4
  53. package/core/client/components/collection/KTagsFilterControl.vue +70 -0
  54. package/core/client/components/collection/KTagsFilterView.vue +61 -0
  55. package/core/client/components/collection/KTimeFilterControl.vue +40 -0
  56. package/core/client/components/collection/KTimeFilterView.vue +106 -0
  57. package/core/client/components/collection/KTimeLine.vue +18 -11
  58. package/core/client/components/document/KBrowser.vue +283 -0
  59. package/core/client/components/document/KCsv.vue +52 -0
  60. package/core/client/components/document/KDocument.vue +19 -5
  61. package/core/client/components/document/KImage.vue +50 -19
  62. package/core/client/components/document/KMarkdown.vue +10 -2
  63. package/core/client/components/document/KUploader.vue +126 -0
  64. package/core/client/components/document/KVideo.vue +39 -0
  65. package/core/client/components/form/KDateField.vue +70 -0
  66. package/core/client/components/form/KDateTimeRangeField.vue +6 -17
  67. package/core/client/components/form/KDatetimeField.vue +6 -13
  68. package/core/client/components/form/KForm.vue +8 -8
  69. package/core/client/components/form/KOptionsField.vue +2 -0
  70. package/core/client/components/form/KResolutionField.vue +54 -52
  71. package/core/client/components/form/KSelectField.vue +27 -13
  72. package/core/client/components/form/KTextareaField.vue +23 -5
  73. package/core/client/components/graphics/KIcon.vue +64 -0
  74. package/core/client/components/index.js +1 -3
  75. package/core/client/components/input/KColorPicker.vue +70 -0
  76. package/core/client/components/input/KIconPicker.vue +188 -0
  77. package/core/client/components/input/KShapePicker.vue +81 -0
  78. package/core/client/components/input/index.js +7 -1
  79. package/core/client/components/layout/KFab.vue +1 -1
  80. package/core/client/components/layout/KLayout.vue +14 -2
  81. package/core/client/components/layout/KOpener.vue +9 -11
  82. package/core/client/components/layout/KPage.vue +31 -17
  83. package/core/client/components/layout/KWindow.vue +34 -18
  84. package/core/client/components/menu/KMenu.vue +52 -36
  85. package/core/client/components/menu/KSubMenu.vue +105 -0
  86. package/core/client/components/messages/KMessageCard.vue +207 -0
  87. package/core/client/components/messages/KMessageComposer.vue +199 -0
  88. package/core/client/components/messages/KMessagesTimeLine.vue +137 -0
  89. package/core/client/components/messages/index.js +7 -0
  90. package/core/client/components/screen/KErrorScreen.vue +2 -3
  91. package/core/client/components/screen/KLogoutScreen.vue +3 -1
  92. package/core/client/components/screen/KOAuthLoginScreen.vue +15 -0
  93. package/core/client/components/screen/KOAuthLogoutScreen.vue +33 -0
  94. package/core/client/components/screen/KUnauthorizedScreen.vue +16 -0
  95. package/core/client/components/time/KAbsoluteTimeRange.vue +7 -14
  96. package/core/client/components/time/KDate.vue +55 -28
  97. package/core/client/components/time/KDateTime.vue +93 -37
  98. package/core/client/components/time/KDateTimeRange.vue +197 -52
  99. package/core/client/components/time/KTime.vue +55 -27
  100. package/core/client/composables/activity.js +40 -30
  101. package/core/client/composables/{counter.js → collection-counter.js} +2 -4
  102. package/core/client/composables/collection-filter.js +111 -0
  103. package/core/client/composables/collection-timerange.js +56 -0
  104. package/core/client/composables/collection.js +13 -11
  105. package/core/client/composables/context.js +92 -0
  106. package/core/client/composables/errors.js +83 -0
  107. package/core/client/composables/index.js +5 -1
  108. package/core/client/composables/layout.js +14 -11
  109. package/core/client/composables/messages.js +4 -4
  110. package/core/client/composables/pwa.js +20 -27
  111. package/core/client/composables/schema.js +1 -1
  112. package/core/client/composables/screen.js +21 -9
  113. package/core/client/composables/selection.js +16 -4
  114. package/core/client/composables/session.js +13 -7
  115. package/core/client/composables/store.js +2 -1
  116. package/core/client/context.js +38 -0
  117. package/core/client/directives/v-hover.js +7 -4
  118. package/core/client/document.js +43 -15
  119. package/core/client/events.js +2 -2
  120. package/core/client/exporter.js +5 -4
  121. package/core/client/filter.js +1 -8
  122. package/core/client/guards.js +3 -3
  123. package/core/client/hooks/hooks.logger.js +1 -1
  124. package/core/client/hooks/hooks.offline.js +32 -0
  125. package/core/client/hooks/index.js +2 -1
  126. package/core/client/i18n/core_en.json +95 -268
  127. package/core/client/i18n/core_fr.json +181 -353
  128. package/core/client/index.js +22 -8
  129. package/core/client/layout.js +64 -25
  130. package/core/client/local-cache.js +67 -0
  131. package/core/client/local-storage.js +6 -2
  132. package/core/client/mixins/index.js +0 -1
  133. package/core/client/mixins/mixin.base-activity.js +22 -10
  134. package/core/client/mixins/mixin.base-editor.js +1 -1
  135. package/core/client/mixins/mixin.base-field.js +10 -1
  136. package/core/client/mixins/mixin.base-item.js +14 -11
  137. package/core/client/mixins/mixin.service.js +1 -5
  138. package/core/client/platform.js +44 -0
  139. package/core/client/readers/reader.blob.js +3 -3
  140. package/core/client/readers/reader.csv.js +2 -2
  141. package/core/client/readers/reader.json.js +2 -2
  142. package/core/client/services/index.js +7 -11
  143. package/core/client/storage.js +43 -8
  144. package/core/client/template-context.js +14 -14
  145. package/core/client/time.js +2 -2
  146. package/core/client/units.js +7 -4
  147. package/core/client/utils/index.js +7 -5
  148. package/core/client/utils/utils.collection.js +71 -0
  149. package/core/client/utils/utils.colors.js +29 -8
  150. package/core/client/utils/utils.content.js +14 -14
  151. package/core/client/utils/utils.files.js +17 -0
  152. package/core/client/utils/utils.items.js +4 -0
  153. package/core/client/utils/utils.math.js +18 -1
  154. package/core/client/utils/utils.push.js +22 -13
  155. package/core/client/utils/utils.screen.js +6 -2
  156. package/core/client/utils/utils.services.js +42 -0
  157. package/core/client/utils/utils.session.js +48 -12
  158. package/core/client/utils/utils.shapes.js +15 -11
  159. package/core/common/permissions.js +3 -108
  160. package/core/common/schemas/messages.update.json +16 -0
  161. package/core/common/schemas/settings.update.json +27 -8
  162. package/core/common/utils.js +2 -0
  163. package/core/common/utils.offline.js +38 -0
  164. package/coverage/core/api/application.js.html +296 -296
  165. package/coverage/core/api/authentication.js.html +206 -74
  166. package/coverage/core/api/db.js.html +61 -61
  167. package/coverage/core/api/hooks/hooks.authentication.js.html +15 -189
  168. package/coverage/core/api/hooks/hooks.authorisations.js.html +172 -460
  169. package/coverage/core/api/hooks/hooks.groups.js.html +1 -1
  170. package/coverage/core/api/hooks/hooks.logger.js.html +16 -16
  171. package/coverage/core/api/hooks/hooks.model.js.html +52 -52
  172. package/coverage/core/api/hooks/hooks.organisations.js.html +1 -1
  173. package/coverage/core/api/hooks/hooks.push.js.html +58 -46
  174. package/coverage/core/api/hooks/hooks.query.js.html +136 -136
  175. package/coverage/core/api/hooks/hooks.schemas.js.html +1 -1
  176. package/coverage/core/api/hooks/hooks.service.js.html +1 -1
  177. package/coverage/core/api/hooks/hooks.storage.js.html +1 -1
  178. package/coverage/core/api/hooks/hooks.users.js.html +55 -328
  179. package/coverage/core/api/hooks/index.html +58 -88
  180. package/coverage/core/api/hooks/index.js.html +4 -10
  181. package/coverage/core/api/index.html +39 -54
  182. package/coverage/core/api/index.js.html +1 -1
  183. package/coverage/core/api/marshall.js.html +1 -1
  184. package/coverage/core/api/models/groups.model.mongodb.js.html +1 -1
  185. package/coverage/core/api/models/index.html +13 -58
  186. package/coverage/core/api/models/messages.model.mongodb.js.html +35 -35
  187. package/coverage/core/api/models/organisations.model.mongodb.js.html +3 -3
  188. package/coverage/core/api/models/tags.model.mongodb.js.html +1 -1
  189. package/coverage/core/api/models/users.model.mongodb.js.html +1 -1
  190. package/coverage/core/api/services/account/account.hooks.js.html +1 -1
  191. package/coverage/core/api/services/account/account.service.js.html +67 -67
  192. package/coverage/core/api/services/account/index.html +16 -16
  193. package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
  194. package/coverage/core/api/services/authorisations/authorisations.service.js.html +120 -117
  195. package/coverage/core/api/services/authorisations/index.html +15 -15
  196. package/coverage/core/api/services/databases/databases.hooks.js.html +82 -82
  197. package/coverage/core/api/services/databases/databases.service.js.html +20 -20
  198. package/coverage/core/api/services/databases/index.html +32 -32
  199. package/coverage/core/api/services/groups/groups.hooks.js.html +1 -1
  200. package/coverage/core/api/services/groups/index.html +1 -1
  201. package/coverage/core/api/services/import-export/import-export.hooks.js.html +1 -1
  202. package/coverage/core/api/services/import-export/import-export.service.js.html +1 -1
  203. package/coverage/core/api/services/import-export/index.html +1 -1
  204. package/coverage/core/api/services/index.html +21 -21
  205. package/coverage/core/api/services/index.js.html +118 -154
  206. package/coverage/core/api/services/mailer/index.html +1 -1
  207. package/coverage/core/api/services/mailer/mailer.hooks.js.html +1 -1
  208. package/coverage/core/api/services/mailer/mailer.service.js.html +1 -1
  209. package/coverage/core/api/services/messages/index.html +21 -21
  210. package/coverage/core/api/services/messages/messages.hooks.js.html +86 -86
  211. package/coverage/core/api/services/organisations/index.html +1 -1
  212. package/coverage/core/api/services/organisations/organisations.hooks.js.html +1 -1
  213. package/coverage/core/api/services/organisations/organisations.service.js.html +23 -23
  214. package/coverage/core/api/services/push/index.html +1 -1
  215. package/coverage/core/api/services/push/push.hooks.js.html +1 -1
  216. package/coverage/core/api/services/push/push.service.js.html +1 -1
  217. package/coverage/core/api/services/storage/index.html +5 -5
  218. package/coverage/core/api/services/storage/storage.hooks.js.html +1 -1
  219. package/coverage/core/api/services/storage/storage.service.js.html +27 -27
  220. package/coverage/core/api/services/tags/index.html +1 -1
  221. package/coverage/core/api/services/tags/tags.hooks.js.html +1 -1
  222. package/coverage/core/api/services/users/index.html +23 -8
  223. package/coverage/core/api/services/users/users.hooks.js.html +1 -1
  224. package/coverage/core/api/services/users/users.service.js.html +100 -0
  225. package/coverage/core/api/utils.js.html +1 -1
  226. package/coverage/core/common/errors.js.html +1 -1
  227. package/coverage/core/common/index.html +42 -27
  228. package/coverage/core/common/index.js.html +1 -1
  229. package/coverage/core/common/permissions.js.html +195 -510
  230. package/coverage/core/common/schema.js.html +1 -1
  231. package/coverage/core/common/utils.js.html +12 -6
  232. package/coverage/core/common/utils.offline.js.html +199 -0
  233. package/coverage/index.html +121 -166
  234. package/coverage/lcov-report/core/api/application.js.html +296 -296
  235. package/coverage/lcov-report/core/api/authentication.js.html +206 -74
  236. package/coverage/lcov-report/core/api/db.js.html +61 -61
  237. package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +15 -189
  238. package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +172 -460
  239. package/coverage/lcov-report/core/api/hooks/hooks.groups.js.html +1 -1
  240. package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +16 -16
  241. package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +52 -52
  242. package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +1 -1
  243. package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +58 -46
  244. package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +136 -136
  245. package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +1 -1
  246. package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +1 -1
  247. package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +1 -1
  248. package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +55 -328
  249. package/coverage/lcov-report/core/api/hooks/index.html +58 -88
  250. package/coverage/lcov-report/core/api/hooks/index.js.html +4 -10
  251. package/coverage/lcov-report/core/api/index.html +39 -54
  252. package/coverage/lcov-report/core/api/index.js.html +1 -1
  253. package/coverage/lcov-report/core/api/marshall.js.html +1 -1
  254. package/coverage/lcov-report/core/api/models/groups.model.mongodb.js.html +1 -1
  255. package/coverage/lcov-report/core/api/models/index.html +13 -58
  256. package/coverage/lcov-report/core/api/models/messages.model.mongodb.js.html +35 -35
  257. package/coverage/lcov-report/core/api/models/organisations.model.mongodb.js.html +3 -3
  258. package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +1 -1
  259. package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +1 -1
  260. package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +1 -1
  261. package/coverage/lcov-report/core/api/services/account/account.service.js.html +67 -67
  262. package/coverage/lcov-report/core/api/services/account/index.html +16 -16
  263. package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
  264. package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +120 -117
  265. package/coverage/lcov-report/core/api/services/authorisations/index.html +15 -15
  266. package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +82 -82
  267. package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +20 -20
  268. package/coverage/lcov-report/core/api/services/databases/index.html +32 -32
  269. package/coverage/lcov-report/core/api/services/groups/groups.hooks.js.html +1 -1
  270. package/coverage/lcov-report/core/api/services/groups/index.html +1 -1
  271. package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +1 -1
  272. package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +1 -1
  273. package/coverage/lcov-report/core/api/services/import-export/index.html +1 -1
  274. package/coverage/lcov-report/core/api/services/index.html +21 -21
  275. package/coverage/lcov-report/core/api/services/index.js.html +118 -154
  276. package/coverage/lcov-report/core/api/services/mailer/index.html +1 -1
  277. package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +1 -1
  278. package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +1 -1
  279. package/coverage/lcov-report/core/api/services/messages/index.html +21 -21
  280. package/coverage/lcov-report/core/api/services/messages/messages.hooks.js.html +86 -86
  281. package/coverage/lcov-report/core/api/services/organisations/index.html +1 -1
  282. package/coverage/lcov-report/core/api/services/organisations/organisations.hooks.js.html +1 -1
  283. package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +23 -23
  284. package/coverage/lcov-report/core/api/services/push/index.html +1 -1
  285. package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +1 -1
  286. package/coverage/lcov-report/core/api/services/push/push.service.js.html +1 -1
  287. package/coverage/lcov-report/core/api/services/storage/index.html +5 -5
  288. package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +1 -1
  289. package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +27 -27
  290. package/coverage/lcov-report/core/api/services/tags/index.html +1 -1
  291. package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +1 -1
  292. package/coverage/lcov-report/core/api/services/users/index.html +23 -8
  293. package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +1 -1
  294. package/coverage/lcov-report/core/api/services/users/users.service.js.html +100 -0
  295. package/coverage/lcov-report/core/api/utils.js.html +1 -1
  296. package/coverage/lcov-report/core/common/errors.js.html +1 -1
  297. package/coverage/lcov-report/core/common/index.html +42 -27
  298. package/coverage/lcov-report/core/common/index.js.html +1 -1
  299. package/coverage/lcov-report/core/common/permissions.js.html +195 -510
  300. package/coverage/lcov-report/core/common/schema.js.html +1 -1
  301. package/coverage/lcov-report/core/common/utils.js.html +12 -6
  302. package/coverage/lcov-report/core/common/utils.offline.js.html +199 -0
  303. package/coverage/lcov-report/index.html +121 -166
  304. package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +33 -27
  305. package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +1 -1
  306. package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +4 -4
  307. package/coverage/lcov-report/map/api/hooks/index.html +5 -5
  308. package/coverage/lcov-report/map/api/hooks/index.js.html +1 -1
  309. package/coverage/lcov-report/map/api/index.html +1 -1
  310. package/coverage/lcov-report/map/api/index.js.html +1 -1
  311. package/coverage/lcov-report/map/api/marshall.js.html +1 -1
  312. package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +1 -1
  313. package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +1 -1
  314. package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +1 -1
  315. package/coverage/lcov-report/map/api/models/index.html +1 -1
  316. package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +1 -1
  317. package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +1 -1
  318. package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +1 -1
  319. package/coverage/lcov-report/map/api/services/alerts/index.html +1 -1
  320. package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +10 -7
  321. package/coverage/lcov-report/map/api/services/catalog/index.html +5 -5
  322. package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
  323. package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
  324. package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +78 -9
  325. package/coverage/lcov-report/map/api/services/features/features.service.js.html +307 -4
  326. package/coverage/lcov-report/map/api/services/features/index.html +7 -7
  327. package/coverage/lcov-report/map/api/services/index.html +5 -5
  328. package/coverage/lcov-report/map/api/services/index.js.html +171 -42
  329. package/coverage/lcov-report/map/api/services/projects/index.html +1 -1
  330. package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +1 -1
  331. package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +1 -1
  332. package/coverage/lcov-report/map/common/errors.js.html +1 -1
  333. package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +8 -5
  334. package/coverage/lcov-report/map/common/grid.js.html +1 -1
  335. package/coverage/lcov-report/map/common/index.html +5 -5
  336. package/coverage/lcov-report/map/common/index.js.html +1 -1
  337. package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +1 -1
  338. package/coverage/lcov-report/map/common/moment-utils.js.html +1 -1
  339. package/coverage/lcov-report/map/common/opendap-grid-source.js.html +1 -1
  340. package/coverage/lcov-report/map/common/opendap-utils.js.html +1 -1
  341. package/coverage/lcov-report/map/common/permissions.js.html +1 -1
  342. package/coverage/lcov-report/map/common/time-based-grid-source.js.html +1 -1
  343. package/coverage/lcov-report/map/common/tms-utils.js.html +1 -1
  344. package/coverage/lcov-report/map/common/wcs-grid-source.js.html +1 -1
  345. package/coverage/lcov-report/map/common/wcs-utils.js.html +1 -1
  346. package/coverage/lcov-report/map/common/weacast-grid-source.js.html +1 -1
  347. package/coverage/lcov-report/map/common/wfs-utils.js.html +1 -1
  348. package/coverage/lcov-report/map/common/wms-utils.js.html +1 -1
  349. package/coverage/lcov-report/map/common/wmts-utils.js.html +1 -1
  350. package/coverage/lcov.info +2314 -3167
  351. package/coverage/map/api/hooks/hooks.catalog.js.html +33 -27
  352. package/coverage/map/api/hooks/hooks.features.js.html +1 -1
  353. package/coverage/map/api/hooks/hooks.query.js.html +4 -4
  354. package/coverage/map/api/hooks/index.html +5 -5
  355. package/coverage/map/api/hooks/index.js.html +1 -1
  356. package/coverage/map/api/index.html +1 -1
  357. package/coverage/map/api/index.js.html +1 -1
  358. package/coverage/map/api/marshall.js.html +1 -1
  359. package/coverage/map/api/models/alerts.model.mongodb.js.html +1 -1
  360. package/coverage/map/api/models/catalog.model.mongodb.js.html +1 -1
  361. package/coverage/map/api/models/features.model.mongodb.js.html +1 -1
  362. package/coverage/map/api/models/index.html +1 -1
  363. package/coverage/map/api/models/projects.model.mongodb.js.html +1 -1
  364. package/coverage/map/api/services/alerts/alerts.hooks.js.html +1 -1
  365. package/coverage/map/api/services/alerts/alerts.service.js.html +1 -1
  366. package/coverage/map/api/services/alerts/index.html +1 -1
  367. package/coverage/map/api/services/catalog/catalog.hooks.js.html +10 -7
  368. package/coverage/map/api/services/catalog/index.html +5 -5
  369. package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
  370. package/coverage/map/api/services/daptiles/index.html +1 -1
  371. package/coverage/map/api/services/features/features.hooks.js.html +78 -9
  372. package/coverage/map/api/services/features/features.service.js.html +307 -4
  373. package/coverage/map/api/services/features/index.html +7 -7
  374. package/coverage/map/api/services/index.html +5 -5
  375. package/coverage/map/api/services/index.js.html +171 -42
  376. package/coverage/map/api/services/projects/index.html +1 -1
  377. package/coverage/map/api/services/projects/projects.hooks.js.html +1 -1
  378. package/coverage/map/common/dynamic-grid-source.js.html +1 -1
  379. package/coverage/map/common/errors.js.html +1 -1
  380. package/coverage/map/common/geotiff-grid-source.js.html +8 -5
  381. package/coverage/map/common/grid.js.html +1 -1
  382. package/coverage/map/common/index.html +5 -5
  383. package/coverage/map/common/index.js.html +1 -1
  384. package/coverage/map/common/meteo-model-grid-source.js.html +1 -1
  385. package/coverage/map/common/moment-utils.js.html +1 -1
  386. package/coverage/map/common/opendap-grid-source.js.html +1 -1
  387. package/coverage/map/common/opendap-utils.js.html +1 -1
  388. package/coverage/map/common/permissions.js.html +1 -1
  389. package/coverage/map/common/time-based-grid-source.js.html +1 -1
  390. package/coverage/map/common/tms-utils.js.html +1 -1
  391. package/coverage/map/common/wcs-grid-source.js.html +1 -1
  392. package/coverage/map/common/wcs-utils.js.html +1 -1
  393. package/coverage/map/common/weacast-grid-source.js.html +1 -1
  394. package/coverage/map/common/wfs-utils.js.html +1 -1
  395. package/coverage/map/common/wms-utils.js.html +1 -1
  396. package/coverage/map/common/wmts-utils.js.html +1 -1
  397. package/coverage/tmp/{coverage-280506-1731704745613-0.json → coverage-122123-1739872365211-0.json} +1 -1
  398. package/coverage/tmp/{coverage-280518-1731704745599-0.json → coverage-122135-1739872365196-0.json} +1 -1
  399. package/coverage/tmp/{coverage-280529-1731704745588-0.json → coverage-122146-1739872365184-0.json} +1 -1
  400. package/coverage/tmp/{coverage-280541-1731704745574-0.json → coverage-122158-1739872365169-0.json} +1 -1
  401. package/coverage/tmp/{coverage-280548-1731704745545-0.json → coverage-122165-1739872365141-0.json} +1 -1
  402. package/extras/configs/helpers.js +78 -0
  403. package/extras/configs/panes.left.js +118 -0
  404. package/extras/configs/panes.top.js +222 -0
  405. package/extras/configs/stickies.js +57 -0
  406. package/extras/configs/widgets.left.js +23 -0
  407. package/extras/configs/widgets.top.js +73 -0
  408. package/extras/css/core.variables.scss +8 -0
  409. package/extras/images/north.svg +3 -0
  410. package/extras/tours/map/side-nav.js +3 -3
  411. package/map/api/hooks/hooks.catalog.js +56 -23
  412. package/map/api/hooks/hooks.query.js +19 -24
  413. package/map/api/models/catalog.model.mongodb.js +16 -2
  414. package/{core/api/models/groups.model.mongodb.js → map/api/models/styles.model.mongodb.js} +2 -1
  415. package/map/api/services/catalog/catalog.hooks.js +13 -7
  416. package/map/api/services/features/features.hooks.js +28 -5
  417. package/map/api/services/features/features.service.js +101 -0
  418. package/map/api/services/index.js +125 -46
  419. package/map/api/services/styles/styles.hooks.js +37 -0
  420. package/map/client/cesium/utils/index.js +1 -0
  421. package/map/client/cesium/utils/utils.cesium.js +397 -0
  422. package/map/client/cesium/utils/utils.features.js +8 -0
  423. package/map/client/cesium/utils/utils.geojson.js +59 -0
  424. package/map/client/cesium/utils/utils.style.js +134 -17
  425. package/map/client/components/KEditLayerData.vue +17 -79
  426. package/map/client/components/KFeatureEditor.vue +2 -7
  427. package/map/client/components/KFeaturesChart.vue +2 -6
  428. package/map/client/components/KFeaturesFilterEditor.vue +300 -0
  429. package/map/client/components/KFeaturesFilterManager.vue +196 -0
  430. package/map/client/components/KFeaturesTable.vue +0 -5
  431. package/map/client/components/KFilterCondition.vue +303 -0
  432. package/map/client/components/KLayerEditionToolbar.vue +4 -3
  433. package/map/client/components/KLayerEditor.vue +451 -36
  434. package/map/client/components/KMeasureTool.vue +36 -9
  435. package/map/client/components/KProjectMenu.vue +14 -8
  436. package/map/client/components/catalog/KAddLayer.vue +0 -4
  437. package/map/client/components/catalog/KBaseLayersSelector.vue +42 -46
  438. package/map/client/components/catalog/KConnectLayer.vue +295 -291
  439. package/map/client/components/catalog/KCreateLayer.vue +141 -146
  440. package/map/client/components/catalog/KCreateOfflineView.vue +100 -0
  441. package/map/client/components/catalog/KCreateView.vue +2 -8
  442. package/map/client/components/catalog/KFilteredLayerItem.vue +72 -25
  443. package/map/client/components/catalog/KImportLayer.vue +121 -129
  444. package/map/client/components/catalog/KLayerItem.vue +44 -32
  445. package/map/client/components/catalog/KLayersPanel.vue +45 -17
  446. package/map/client/components/catalog/KLayersSelector.vue +51 -50
  447. package/map/client/components/catalog/KProjectManager.vue +4 -8
  448. package/map/client/components/catalog/KProjectSelector.vue +33 -2
  449. package/map/client/components/catalog/KProjectsPanel.vue +84 -106
  450. package/map/client/components/catalog/KSelectLayers.vue +56 -69
  451. package/map/client/components/catalog/KSelectViews.vue +56 -69
  452. package/map/client/components/catalog/KViewSelector.vue +32 -2
  453. package/map/client/components/catalog/KViewsPanel.vue +178 -110
  454. package/map/client/components/catalog/KWeatherLayersSelector.vue +77 -85
  455. package/map/client/components/form/KLocationField.vue +21 -2
  456. package/map/client/components/form/KOwsLayerField.vue +1 -1
  457. package/map/client/components/form/KOwsServiceField.vue +102 -63
  458. package/map/client/components/form/KSelectLayersField.vue +1 -1
  459. package/map/client/components/form/KSelectViewsField.vue +1 -1
  460. package/map/client/components/form/KTimezoneField.vue +0 -1
  461. package/map/client/components/legend/KLegend.vue +4 -4
  462. package/map/client/components/location/KLocationCardSection.vue +16 -0
  463. package/map/client/components/location/KLocationMap.vue +3 -2
  464. package/map/client/components/location/KLocationSearch.vue +46 -8
  465. package/map/client/components/location/KLocationTimeLineCard.vue +25 -3
  466. package/map/client/components/location/KLocationTip.vue +57 -10
  467. package/map/client/components/selection/KFeaturesSelection.vue +71 -0
  468. package/map/client/components/selection/KSelectedLayerFeatures.vue +343 -0
  469. package/map/client/components/stickies/KAttribution.vue +115 -0
  470. package/map/client/components/stickies/KLevelSlider.vue +114 -0
  471. package/map/client/components/stickies/KNorthArrow.vue +26 -0
  472. package/map/client/components/stickies/KPosition.vue +103 -0
  473. package/map/client/components/stickies/KTarget.vue +34 -0
  474. package/map/client/components/styles/KLayerStyleAction.vue +58 -0
  475. package/map/client/components/styles/KStyleEditor.vue +273 -0
  476. package/map/client/components/styles/KStyleEditorSection.vue +79 -0
  477. package/map/client/components/styles/KStyleManager.vue +183 -0
  478. package/map/client/components/styles/KStylePreview.vue +64 -0
  479. package/map/client/components/styles/KStylePreviewItem.vue +68 -0
  480. package/map/client/components/styles/KStylePropertiesGroup.vue +76 -0
  481. package/map/client/components/styles/KStyleProperty.vue +136 -0
  482. package/map/client/components/styles/KStyleTip.vue +118 -0
  483. package/map/client/components/tools/KGeolocateTool.vue +3 -2
  484. package/map/client/components/tools/KSearchTool.vue +34 -6
  485. package/map/client/components/widget/KMapillaryViewer.vue +1 -1
  486. package/map/client/components/widget/KStackableTimeSeries.vue +8 -5
  487. package/map/client/composables/activity.js +29 -43
  488. package/map/client/composables/catalog.js +1 -1
  489. package/map/client/composables/highlight.js +117 -57
  490. package/map/client/composables/location.js +33 -14
  491. package/map/client/composables/project.js +9 -10
  492. package/map/client/composables/selection.js +136 -23
  493. package/map/client/geocoder.js +104 -0
  494. package/map/client/geolocation.js +1 -1
  495. package/map/client/globe.js +3 -0
  496. package/map/client/hooks/hooks.offline.js +95 -0
  497. package/map/client/hooks/index.js +1 -0
  498. package/map/client/i18n/map_en.json +159 -94
  499. package/map/client/i18n/map_fr.json +187 -128
  500. package/map/client/index.js +3 -0
  501. package/map/client/init.js +44 -8
  502. package/map/client/leaflet/BoxSelection.js +2 -2
  503. package/map/client/leaflet/GradientPath.js +84 -4
  504. package/map/client/leaflet/WindBarb.js +323 -0
  505. package/map/client/leaflet/utils/index.js +1 -0
  506. package/map/client/leaflet/utils/utils.events.js +8 -3
  507. package/map/client/leaflet/utils/utils.geojson.js +222 -0
  508. package/map/client/leaflet/utils/utils.style.js +10 -9
  509. package/map/client/map.js +3 -0
  510. package/map/client/mixins/globe/mixin.base-globe.js +151 -19
  511. package/map/client/mixins/globe/mixin.geojson-layers.js +208 -86
  512. package/map/client/mixins/globe/mixin.popup.js +3 -2
  513. package/map/client/mixins/globe/mixin.style.js +3 -1
  514. package/map/client/mixins/globe/mixin.tooltip.js +3 -2
  515. package/map/client/mixins/map/index.js +1 -3
  516. package/map/client/mixins/map/mixin.base-map.js +267 -79
  517. package/map/client/mixins/map/mixin.canvas-layers.js +44 -10
  518. package/map/client/mixins/map/mixin.edit-layers.js +142 -57
  519. package/map/client/mixins/map/mixin.geojson-layers.js +127 -204
  520. package/map/client/mixins/map/mixin.pmtiles-layers.js +24 -11
  521. package/map/client/mixins/map/mixin.tiled-mesh-layers.js +1 -2
  522. package/map/client/mixins/map/mixin.tiled-wind-layers.js +2 -1
  523. package/map/client/mixins/mixin.activity.js +61 -41
  524. package/map/client/mixins/mixin.context.js +19 -14
  525. package/map/client/mixins/mixin.feature-selection.js +0 -1
  526. package/map/client/mixins/mixin.feature-service.js +41 -59
  527. package/map/client/mixins/mixin.weacast.js +1 -1
  528. package/map/client/navigator.js +38 -0
  529. package/map/client/pixi-utils.js +1 -1
  530. package/map/client/planets.js +1 -1
  531. package/map/client/readers/reader.kml.js +57 -1
  532. package/map/client/utils/index.js +1 -0
  533. package/map/client/utils/utils.capture.js +10 -7
  534. package/map/client/utils/utils.catalog.js +2 -2
  535. package/map/client/utils/utils.features.js +193 -39
  536. package/map/client/utils/utils.js +0 -21
  537. package/map/client/utils/utils.layers.js +381 -4
  538. package/map/client/utils/utils.location.js +39 -74
  539. package/map/client/utils/utils.offline.js +89 -0
  540. package/map/client/utils/utils.style.js +133 -80
  541. package/map/common/geotiff-grid-source.js +2 -1
  542. package/map/common/permissions.js +2 -0
  543. package/map/common/schemas/capture.create.json +4 -4
  544. package/map/common/schemas/catalog.update.json +18 -2
  545. package/map/common/schemas/projects.create.json +2 -2
  546. package/map/common/schemas/projects.update.json +2 -2
  547. package/map/common/tms-utils.js +5 -5
  548. package/map/common/wcs-grid-source.js +2 -2
  549. package/map/common/wcs-utils.js +8 -8
  550. package/map/common/wfs-utils.js +10 -10
  551. package/map/common/wms-utils.js +7 -7
  552. package/map/common/wmts-utils.js +6 -6
  553. package/package.json +7 -4
  554. package/test/api/core/account.test.js +0 -72
  555. package/test/api/core/authentication.test.js +184 -0
  556. package/test/api/core/config/default.cjs +1 -3
  557. package/test/api/core/index.test.js +77 -151
  558. package/test/api/core/offline.test.js +55 -0
  559. package/test/api/core/push.test.js +3 -3
  560. package/test/api/core/{test-log-2024-11-05.log → test-log-2025-05-26.log} +1 -9
  561. package/test/api/map/alerts.test.js +1 -1
  562. package/test/api/map/config/default.cjs +2 -1
  563. package/test/api/map/data/vigicrues.observations.Q.json +47042 -0
  564. package/test/api/map/index.test.js +113 -9
  565. package/test/api/map/style.test.js +62 -0
  566. package/test/api/map/{test-log-2024-10-28.log → test-log-2025-05-26.log} +4 -3
  567. package/test/client/core/layout.js +2 -2
  568. package/test/client/core/runner.js +1 -1
  569. package/test/client/core/utils.js +52 -0
  570. package/test/client/map/catalog.js +1 -0
  571. package/core/api/hooks/hooks.groups.js +0 -48
  572. package/core/api/hooks/hooks.organisations.js +0 -152
  573. package/core/api/models/organisations.model.mongodb.js +0 -3
  574. package/core/api/models/tags.model.mongodb.js +0 -10
  575. package/core/api/services/groups/groups.hooks.js +0 -31
  576. package/core/api/services/organisations/organisations.hooks.js +0 -31
  577. package/core/api/services/organisations/organisations.service.js +0 -86
  578. package/core/api/services/tags/tags.hooks.js +0 -31
  579. package/core/api/utils.js +0 -11
  580. package/core/client/components/KChipsPane.vue +0 -103
  581. package/core/client/components/document/index.js +0 -9
  582. package/core/client/components/team/KAddMember.vue +0 -378
  583. package/core/client/components/team/KAddTag.vue +0 -121
  584. package/core/client/components/team/KChangeRole.vue +0 -118
  585. package/core/client/components/team/KGroupCard.vue +0 -110
  586. package/core/client/components/team/KGroupsActivity.vue +0 -78
  587. package/core/client/components/team/KJoinGroup.vue +0 -132
  588. package/core/client/components/team/KMemberCard.vue +0 -328
  589. package/core/client/components/team/KMemberFilter.vue +0 -49
  590. package/core/client/components/team/KMembersActivity.vue +0 -136
  591. package/core/client/components/team/KOrganisationsActivity.vue +0 -51
  592. package/core/client/components/team/KTagCard.vue +0 -72
  593. package/core/client/components/team/KTagsActivity.vue +0 -73
  594. package/core/client/components/team/index.js +0 -9
  595. package/core/client/mixins/mixin.base-context.js +0 -54
  596. package/core/client/utils/utils.platform.js +0 -12
  597. package/core/common/schemas/groups.create.json +0 -28
  598. package/core/common/schemas/groups.update.json +0 -28
  599. package/core/common/schemas/organisations.create.json +0 -28
  600. package/core/common/schemas/organisations.update.json +0 -49
  601. package/core/common/schemas/tags.create.json +0 -35
  602. package/core/common/schemas/tags.update.json +0 -35
  603. package/map/client/components/KAttribution.vue +0 -108
  604. package/map/client/components/KFeaturesFilter.vue +0 -259
  605. package/map/client/components/KLayerStyleEditor.vue +0 -118
  606. package/map/client/components/KLayerStyleForm.vue +0 -740
  607. package/map/client/components/KLevelSlider.vue +0 -100
  608. package/map/client/components/KNorth.vue +0 -31
  609. package/map/client/components/KPositionIndicator.vue +0 -83
  610. package/map/client/components/catalog/KCreateProject.vue +0 -100
  611. package/map/client/mixins/map/mixin.forecast-layers.js +0 -81
  612. package/map/client/mixins/map/mixin.georaster-layers.js +0 -107
  613. package/test/api/core/team.test.js +0 -670
  614. package/test/api/core/test-log-2023-12-19.log +0 -7
  615. package/test/api/core/test-log-2024-01-04.log +0 -14
  616. package/test/api/core/test-log-2024-05-14.log +0 -6
  617. package/test/api/core/test-log-2024-06-06.log +0 -23
  618. package/test/api/core/test-log-2024-06-26.log +0 -25
  619. package/test/api/core/test-log-2024-06-28.log +0 -2
  620. package/test/api/core/test-log-2024-07-09.log +0 -0
  621. package/test/api/core/test-log-2024-08-13.log +0 -69
  622. package/test/api/core/test-log-2024-10-28.log +0 -53
  623. package/test/api/core/test-log-2024-11-15.log +0 -23
  624. package/test/api/core/test-log-2024-11-18.log +0 -0
  625. package/test/api/core/test-log-2024-12-03.log +0 -30
  626. package/test/api/map/test-log-2023-11-24.log +0 -121
  627. package/test/api/map/test-log-2023-12-12.log +0 -29
  628. package/test/api/map/test-log-2023-12-13.log +0 -5
  629. package/test/api/map/test-log-2024-01-04.log +0 -2
  630. package/test/api/map/test-log-2024-01-11.log +0 -1
  631. package/test/api/map/test-log-2024-01-25.log +0 -19
  632. package/test/api/map/test-log-2024-06-06.log +0 -39
  633. package/test/api/map/test-log-2024-08-13.log +0 -13
  634. package/test/api/map/test-log-2024-08-20.log +0 -55
  635. package/test/api/map/test-log-2024-09-09.log +0 -92
  636. /package/extras/{logos → images}/kalisio.png +0 -0
  637. /package/extras/{icons → images}/target.svg +0 -0
  638. /package/test/api/map/data/{vigicrues.observations.json → vigicrues.observations.H.json} +0 -0
@@ -23,30 +23,30 @@
23
23
  <div class='clearfix'>
24
24
 
25
25
  <div class='fl pad1y space-right2'>
26
- <span class="strong">70.75% </span>
26
+ <span class="strong">60.33% </span>
27
27
  <span class="quiet">Statements</span>
28
- <span class='fraction'>421/595</span>
28
+ <span class='fraction'>359/595</span>
29
29
  </div>
30
30
 
31
31
 
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">63.82% </span>
33
+ <span class="strong">54.66% </span>
34
34
  <span class="quiet">Branches</span>
35
- <span class='fraction'>60/94</span>
35
+ <span class='fraction'>41/75</span>
36
36
  </div>
37
37
 
38
38
 
39
39
  <div class='fl pad1y space-right2'>
40
- <span class="strong">72.72% </span>
40
+ <span class="strong">60.86% </span>
41
41
  <span class="quiet">Functions</span>
42
- <span class='fraction'>24/33</span>
42
+ <span class='fraction'>14/23</span>
43
43
  </div>
44
44
 
45
45
 
46
46
  <div class='fl pad1y space-right2'>
47
- <span class="strong">70.75% </span>
47
+ <span class="strong">60.33% </span>
48
48
  <span class="quiet">Lines</span>
49
- <span class='fraction'>421/595</span>
49
+ <span class='fraction'>359/595</span>
50
50
  </div>
51
51
 
52
52
 
@@ -699,65 +699,65 @@
699
699
  <span class="cline-any cline-no">&nbsp;</span>
700
700
  <span class="cline-any cline-yes">1x</span>
701
701
  <span class="cline-any cline-yes">1x</span>
702
- <span class="cline-any cline-yes">73x</span>
703
- <span class="cline-any cline-yes">73x</span>
704
- <span class="cline-any cline-yes">73x</span>
705
- <span class="cline-any cline-yes">8x</span>
702
+ <span class="cline-any cline-yes">51x</span>
703
+ <span class="cline-any cline-yes">51x</span>
704
+ <span class="cline-any cline-yes">51x</span>
705
+ <span class="cline-any cline-no">&nbsp;</span>
706
+ <span class="cline-any cline-no">&nbsp;</span>
707
+ <span class="cline-any cline-no">&nbsp;</span>
708
+ <span class="cline-any cline-yes">51x</span>
709
+ <span class="cline-any cline-yes">51x</span>
710
+ <span class="cline-any cline-yes">51x</span>
711
+ <span class="cline-any cline-yes">51x</span>
712
+ <span class="cline-any cline-yes">51x</span>
713
+ <span class="cline-any cline-yes">51x</span>
714
+ <span class="cline-any cline-yes">51x</span>
715
+ <span class="cline-any cline-yes">51x</span>
716
+ <span class="cline-any cline-yes">51x</span>
717
+ <span class="cline-any cline-yes">51x</span>
718
+ <span class="cline-any cline-yes">51x</span>
719
+ <span class="cline-any cline-yes">51x</span>
720
+ <span class="cline-any cline-yes">51x</span>
721
+ <span class="cline-any cline-yes">51x</span>
722
+ <span class="cline-any cline-yes">51x</span>
723
+ <span class="cline-any cline-yes">51x</span>
724
+ <span class="cline-any cline-yes">51x</span>
725
+ <span class="cline-any cline-yes">51x</span>
726
+ <span class="cline-any cline-yes">51x</span>
727
+ <span class="cline-any cline-yes">51x</span>
728
+ <span class="cline-any cline-yes">51x</span>
729
+ <span class="cline-any cline-yes">51x</span>
730
+ <span class="cline-any cline-yes">51x</span>
731
+ <span class="cline-any cline-yes">51x</span>
732
+ <span class="cline-any cline-yes">16x</span>
733
+ <span class="cline-any cline-yes">51x</span>
734
+ <span class="cline-any cline-yes">51x</span>
735
+ <span class="cline-any cline-yes">51x</span>
736
+ <span class="cline-any cline-yes">51x</span>
737
+ <span class="cline-any cline-yes">51x</span>
738
+ <span class="cline-any cline-yes">13x</span>
739
+ <span class="cline-any cline-yes">13x</span>
706
740
  <span class="cline-any cline-yes">8x</span>
707
741
  <span class="cline-any cline-yes">8x</span>
708
- <span class="cline-any cline-yes">73x</span>
709
- <span class="cline-any cline-yes">73x</span>
710
- <span class="cline-any cline-yes">73x</span>
711
- <span class="cline-any cline-yes">73x</span>
712
- <span class="cline-any cline-yes">73x</span>
713
- <span class="cline-any cline-yes">73x</span>
714
- <span class="cline-any cline-yes">73x</span>
715
- <span class="cline-any cline-yes">73x</span>
716
- <span class="cline-any cline-yes">73x</span>
717
- <span class="cline-any cline-yes">73x</span>
718
- <span class="cline-any cline-yes">73x</span>
719
- <span class="cline-any cline-yes">73x</span>
720
- <span class="cline-any cline-yes">73x</span>
721
- <span class="cline-any cline-yes">73x</span>
722
- <span class="cline-any cline-yes">73x</span>
723
- <span class="cline-any cline-yes">73x</span>
724
- <span class="cline-any cline-yes">73x</span>
725
- <span class="cline-any cline-yes">73x</span>
726
- <span class="cline-any cline-yes">73x</span>
727
- <span class="cline-any cline-yes">73x</span>
728
- <span class="cline-any cline-yes">73x</span>
729
- <span class="cline-any cline-yes">73x</span>
730
- <span class="cline-any cline-yes">73x</span>
731
- <span class="cline-any cline-yes">73x</span>
732
- <span class="cline-any cline-yes">27x</span>
733
- <span class="cline-any cline-yes">73x</span>
734
- <span class="cline-any cline-yes">73x</span>
735
- <span class="cline-any cline-yes">73x</span>
736
- <span class="cline-any cline-yes">73x</span>
737
- <span class="cline-any cline-yes">73x</span>
738
- <span class="cline-any cline-yes">75x</span>
739
- <span class="cline-any cline-yes">75x</span>
740
- <span class="cline-any cline-yes">9x</span>
741
- <span class="cline-any cline-yes">9x</span>
742
- <span class="cline-any cline-yes">75x</span>
743
- <span class="cline-any cline-yes">75x</span>
744
- <span class="cline-any cline-yes">73x</span>
745
- <span class="cline-any cline-yes">3x</span>
746
- <span class="cline-any cline-yes">3x</span>
747
- <span class="cline-any cline-yes">73x</span>
748
- <span class="cline-any cline-yes">73x</span>
749
- <span class="cline-any cline-yes">73x</span>
742
+ <span class="cline-any cline-yes">13x</span>
743
+ <span class="cline-any cline-yes">13x</span>
744
+ <span class="cline-any cline-yes">51x</span>
745
+ <span class="cline-any cline-no">&nbsp;</span>
746
+ <span class="cline-any cline-no">&nbsp;</span>
747
+ <span class="cline-any cline-yes">51x</span>
748
+ <span class="cline-any cline-yes">51x</span>
749
+ <span class="cline-any cline-yes">51x</span>
750
750
  <span class="cline-any cline-yes">1x</span>
751
751
  <span class="cline-any cline-yes">1x</span>
752
- <span class="cline-any cline-yes">72x</span>
753
- <span class="cline-any cline-yes">72x</span>
754
- <span class="cline-any cline-yes">72x</span>
755
- <span class="cline-any cline-yes">72x</span>
756
- <span class="cline-any cline-yes">70x</span>
757
- <span class="cline-any cline-yes">70x</span>
758
- <span class="cline-any cline-yes">70x</span>
759
- <span class="cline-any cline-yes">70x</span>
760
- <span class="cline-any cline-yes">72x</span>
752
+ <span class="cline-any cline-yes">50x</span>
753
+ <span class="cline-any cline-yes">50x</span>
754
+ <span class="cline-any cline-yes">50x</span>
755
+ <span class="cline-any cline-yes">50x</span>
756
+ <span class="cline-any cline-yes">50x</span>
757
+ <span class="cline-any cline-yes">50x</span>
758
+ <span class="cline-any cline-yes">50x</span>
759
+ <span class="cline-any cline-yes">50x</span>
760
+ <span class="cline-any cline-yes">50x</span>
761
761
  <span class="cline-any cline-no">&nbsp;</span>
762
762
  <span class="cline-any cline-no">&nbsp;</span>
763
763
  <span class="cline-any cline-no">&nbsp;</span>
@@ -765,11 +765,11 @@
765
765
  <span class="cline-any cline-no">&nbsp;</span>
766
766
  <span class="cline-any cline-no">&nbsp;</span>
767
767
  <span class="cline-any cline-no">&nbsp;</span>
768
- <span class="cline-any cline-yes">72x</span>
769
- <span class="cline-any cline-yes">72x</span>
770
- <span class="cline-any cline-yes">72x</span>
771
- <span class="cline-any cline-yes">72x</span>
772
- <span class="cline-any cline-yes">72x</span>
768
+ <span class="cline-any cline-yes">50x</span>
769
+ <span class="cline-any cline-yes">50x</span>
770
+ <span class="cline-any cline-yes">50x</span>
771
+ <span class="cline-any cline-yes">50x</span>
772
+ <span class="cline-any cline-yes">50x</span>
773
773
  <span class="cline-any cline-no">&nbsp;</span>
774
774
  <span class="cline-any cline-no">&nbsp;</span>
775
775
  <span class="cline-any cline-no">&nbsp;</span>
@@ -777,7 +777,7 @@
777
777
  <span class="cline-any cline-no">&nbsp;</span>
778
778
  <span class="cline-any cline-no">&nbsp;</span>
779
779
  <span class="cline-any cline-no">&nbsp;</span>
780
- <span class="cline-any cline-yes">72x</span>
780
+ <span class="cline-any cline-yes">50x</span>
781
781
  <span class="cline-any cline-no">&nbsp;</span>
782
782
  <span class="cline-any cline-no">&nbsp;</span>
783
783
  <span class="cline-any cline-no">&nbsp;</span>
@@ -785,119 +785,11 @@
785
785
  <span class="cline-any cline-no">&nbsp;</span>
786
786
  <span class="cline-any cline-no">&nbsp;</span>
787
787
  <span class="cline-any cline-no">&nbsp;</span>
788
- <span class="cline-any cline-yes">72x</span>
789
- <span class="cline-any cline-yes">72x</span>
790
- <span class="cline-any cline-yes">72x</span>
791
- <span class="cline-any cline-yes">1x</span>
788
+ <span class="cline-any cline-yes">50x</span>
789
+ <span class="cline-any cline-yes">50x</span>
790
+ <span class="cline-any cline-yes">50x</span>
792
791
  <span class="cline-any cline-yes">1x</span>
793
- <span class="cline-any cline-yes">2x</span>
794
- <span class="cline-any cline-yes">2x</span>
795
- <span class="cline-any cline-yes">11x</span>
796
- <span class="cline-any cline-yes">11x</span>
797
- <span class="cline-any cline-yes">11x</span>
798
- <span class="cline-any cline-no">&nbsp;</span>
799
- <span class="cline-any cline-yes">11x</span>
800
- <span class="cline-any cline-yes">11x</span>
801
- <span class="cline-any cline-yes">11x</span>
802
- <span class="cline-any cline-yes">11x</span>
803
- <span class="cline-any cline-yes">11x</span>
804
- <span class="cline-any cline-yes">11x</span>
805
- <span class="cline-any cline-yes">2x</span>
806
- <span class="cline-any cline-yes">4x</span>
807
- <span class="cline-any cline-yes">4x</span>
808
- <span class="cline-any cline-yes">4x</span>
809
- <span class="cline-any cline-yes">2x</span>
810
- <span class="cline-any cline-yes">4x</span>
811
- <span class="cline-any cline-yes">4x</span>
812
- <span class="cline-any cline-yes">4x</span>
813
- <span class="cline-any cline-yes">2x</span>
814
- <span class="cline-any cline-yes">11x</span>
815
- <span class="cline-any cline-yes">11x</span>
816
- <span class="cline-any cline-yes">11x</span>
817
- <span class="cline-any cline-yes">2x</span>
818
- <span class="cline-any cline-yes">2x</span>
819
- <span class="cline-any cline-yes">2x</span>
820
- <span class="cline-any cline-yes">2x</span>
821
- <span class="cline-any cline-yes">2x</span>
822
- <span class="cline-any cline-yes">2x</span>
823
- <span class="cline-any cline-yes">2x</span>
824
- <span class="cline-any cline-yes">2x</span>
825
- <span class="cline-any cline-yes">2x</span>
826
792
  <span class="cline-any cline-yes">1x</span>
827
- <span class="cline-any cline-yes">72x</span>
828
- <span class="cline-any cline-yes">72x</span>
829
- <span class="cline-any cline-yes">72x</span>
830
- <span class="cline-any cline-yes">72x</span>
831
- <span class="cline-any cline-yes">72x</span>
832
- <span class="cline-any cline-yes">72x</span>
833
- <span class="cline-any cline-yes">72x</span>
834
- <span class="cline-any cline-yes">72x</span>
835
- <span class="cline-any cline-yes">72x</span>
836
- <span class="cline-any cline-yes">72x</span>
837
- <span class="cline-any cline-yes">72x</span>
838
- <span class="cline-any cline-yes">72x</span>
839
- <span class="cline-any cline-yes">72x</span>
840
- <span class="cline-any cline-yes">72x</span>
841
- <span class="cline-any cline-yes">72x</span>
842
- <span class="cline-any cline-yes">72x</span>
843
- <span class="cline-any cline-yes">72x</span>
844
- <span class="cline-any cline-yes">72x</span>
845
- <span class="cline-any cline-yes">72x</span>
846
- <span class="cline-any cline-yes">72x</span>
847
- <span class="cline-any cline-yes">72x</span>
848
- <span class="cline-any cline-yes">72x</span>
849
- <span class="cline-any cline-yes">72x</span>
850
- <span class="cline-any cline-yes">28x</span>
851
- <span class="cline-any cline-yes">28x</span>
852
- <span class="cline-any cline-yes">28x</span>
853
- <span class="cline-any cline-yes">19x</span>
854
- <span class="cline-any cline-yes">19x</span>
855
- <span class="cline-any cline-yes">19x</span>
856
- <span class="cline-any cline-yes">19x</span>
857
- <span class="cline-any cline-yes">19x</span>
858
- <span class="cline-any cline-yes">28x</span>
859
- <span class="cline-any cline-yes">72x</span>
860
- <span class="cline-any cline-no">&nbsp;</span>
861
- <span class="cline-any cline-no">&nbsp;</span>
862
- <span class="cline-any cline-no">&nbsp;</span>
863
- <span class="cline-any cline-no">&nbsp;</span>
864
- <span class="cline-any cline-no">&nbsp;</span>
865
- <span class="cline-any cline-no">&nbsp;</span>
866
- <span class="cline-any cline-no">&nbsp;</span>
867
- <span class="cline-any cline-yes">72x</span>
868
- <span class="cline-any cline-yes">72x</span>
869
- <span class="cline-any cline-yes">72x</span>
870
- <span class="cline-any cline-yes">72x</span>
871
- <span class="cline-any cline-yes">19x</span>
872
- <span class="cline-any cline-yes">19x</span>
873
- <span class="cline-any cline-yes">72x</span>
874
- <span class="cline-any cline-yes">2x</span>
875
- <span class="cline-any cline-yes">53x</span>
876
- <span class="cline-any cline-yes">51x</span>
877
- <span class="cline-any cline-yes">51x</span>
878
- <span class="cline-any cline-yes">51x</span>
879
- <span class="cline-any cline-yes">51x</span>
880
- <span class="cline-any cline-yes">51x</span>
881
- <span class="cline-any cline-yes">44x</span>
882
- <span class="cline-any cline-yes">44x</span>
883
- <span class="cline-any cline-yes">51x</span>
884
- <span class="cline-any cline-yes">51x</span>
885
- <span class="cline-any cline-yes">51x</span>
886
- <span class="cline-any cline-yes">72x</span>
887
- <span class="cline-any cline-yes">72x</span>
888
- <span class="cline-any cline-yes">19x</span>
889
- <span class="cline-any cline-yes">19x</span>
890
- <span class="cline-any cline-yes">19x</span>
891
- <span class="cline-any cline-yes">19x</span>
892
- <span class="cline-any cline-yes">7x</span>
893
- <span class="cline-any cline-yes">7x</span>
894
- <span class="cline-any cline-yes">7x</span>
895
- <span class="cline-any cline-yes">7x</span>
896
- <span class="cline-any cline-yes">7x</span>
897
- <span class="cline-any cline-yes">7x</span>
898
- <span class="cline-any cline-yes">7x</span>
899
- <span class="cline-any cline-yes">7x</span>
900
- <span class="cline-any cline-yes">19x</span>
901
793
  <span class="cline-any cline-no">&nbsp;</span>
902
794
  <span class="cline-any cline-no">&nbsp;</span>
903
795
  <span class="cline-any cline-no">&nbsp;</span>
@@ -905,31 +797,139 @@
905
797
  <span class="cline-any cline-no">&nbsp;</span>
906
798
  <span class="cline-any cline-no">&nbsp;</span>
907
799
  <span class="cline-any cline-no">&nbsp;</span>
908
- <span class="cline-any cline-yes">19x</span>
909
- <span class="cline-any cline-yes">72x</span>
910
- <span class="cline-any cline-yes">72x</span>
911
- <span class="cline-any cline-yes">72x</span>
912
- <span class="cline-any cline-yes">72x</span>
913
- <span class="cline-any cline-yes">72x</span>
914
- <span class="cline-any cline-yes">72x</span>
915
- <span class="cline-any cline-yes">72x</span>
916
- <span class="cline-any cline-yes">72x</span>
917
- <span class="cline-any cline-yes">72x</span>
918
- <span class="cline-any cline-yes">72x</span>
800
+ <span class="cline-any cline-no">&nbsp;</span>
801
+ <span class="cline-any cline-no">&nbsp;</span>
802
+ <span class="cline-any cline-no">&nbsp;</span>
803
+ <span class="cline-any cline-no">&nbsp;</span>
804
+ <span class="cline-any cline-no">&nbsp;</span>
805
+ <span class="cline-any cline-no">&nbsp;</span>
806
+ <span class="cline-any cline-no">&nbsp;</span>
807
+ <span class="cline-any cline-no">&nbsp;</span>
808
+ <span class="cline-any cline-no">&nbsp;</span>
809
+ <span class="cline-any cline-no">&nbsp;</span>
810
+ <span class="cline-any cline-no">&nbsp;</span>
811
+ <span class="cline-any cline-no">&nbsp;</span>
812
+ <span class="cline-any cline-no">&nbsp;</span>
813
+ <span class="cline-any cline-no">&nbsp;</span>
814
+ <span class="cline-any cline-no">&nbsp;</span>
815
+ <span class="cline-any cline-no">&nbsp;</span>
816
+ <span class="cline-any cline-no">&nbsp;</span>
817
+ <span class="cline-any cline-no">&nbsp;</span>
818
+ <span class="cline-any cline-no">&nbsp;</span>
819
+ <span class="cline-any cline-no">&nbsp;</span>
820
+ <span class="cline-any cline-no">&nbsp;</span>
821
+ <span class="cline-any cline-no">&nbsp;</span>
822
+ <span class="cline-any cline-no">&nbsp;</span>
823
+ <span class="cline-any cline-no">&nbsp;</span>
824
+ <span class="cline-any cline-no">&nbsp;</span>
825
+ <span class="cline-any cline-no">&nbsp;</span>
919
826
  <span class="cline-any cline-yes">1x</span>
827
+ <span class="cline-any cline-yes">50x</span>
828
+ <span class="cline-any cline-yes">50x</span>
829
+ <span class="cline-any cline-yes">50x</span>
830
+ <span class="cline-any cline-yes">50x</span>
831
+ <span class="cline-any cline-yes">50x</span>
832
+ <span class="cline-any cline-yes">50x</span>
833
+ <span class="cline-any cline-yes">50x</span>
834
+ <span class="cline-any cline-yes">50x</span>
835
+ <span class="cline-any cline-yes">50x</span>
836
+ <span class="cline-any cline-yes">50x</span>
837
+ <span class="cline-any cline-yes">50x</span>
838
+ <span class="cline-any cline-yes">50x</span>
839
+ <span class="cline-any cline-yes">50x</span>
840
+ <span class="cline-any cline-yes">50x</span>
841
+ <span class="cline-any cline-yes">50x</span>
842
+ <span class="cline-any cline-yes">50x</span>
843
+ <span class="cline-any cline-yes">50x</span>
844
+ <span class="cline-any cline-yes">50x</span>
845
+ <span class="cline-any cline-yes">50x</span>
846
+ <span class="cline-any cline-yes">50x</span>
847
+ <span class="cline-any cline-yes">50x</span>
848
+ <span class="cline-any cline-yes">50x</span>
849
+ <span class="cline-any cline-yes">50x</span>
850
+ <span class="cline-any cline-yes">15x</span>
851
+ <span class="cline-any cline-yes">15x</span>
852
+ <span class="cline-any cline-yes">15x</span>
920
853
  <span class="cline-any cline-yes">8x</span>
921
854
  <span class="cline-any cline-yes">8x</span>
922
855
  <span class="cline-any cline-yes">8x</span>
923
856
  <span class="cline-any cline-yes">8x</span>
924
857
  <span class="cline-any cline-yes">8x</span>
858
+ <span class="cline-any cline-yes">15x</span>
859
+ <span class="cline-any cline-yes">50x</span>
860
+ <span class="cline-any cline-no">&nbsp;</span>
861
+ <span class="cline-any cline-no">&nbsp;</span>
862
+ <span class="cline-any cline-no">&nbsp;</span>
863
+ <span class="cline-any cline-no">&nbsp;</span>
864
+ <span class="cline-any cline-no">&nbsp;</span>
865
+ <span class="cline-any cline-no">&nbsp;</span>
866
+ <span class="cline-any cline-no">&nbsp;</span>
867
+ <span class="cline-any cline-yes">50x</span>
868
+ <span class="cline-any cline-yes">50x</span>
869
+ <span class="cline-any cline-yes">50x</span>
870
+ <span class="cline-any cline-yes">50x</span>
925
871
  <span class="cline-any cline-yes">8x</span>
926
872
  <span class="cline-any cline-yes">8x</span>
873
+ <span class="cline-any cline-yes">50x</span>
874
+ <span class="cline-any cline-no">&nbsp;</span>
875
+ <span class="cline-any cline-yes">42x</span>
876
+ <span class="cline-any cline-yes">42x</span>
877
+ <span class="cline-any cline-yes">42x</span>
878
+ <span class="cline-any cline-yes">42x</span>
879
+ <span class="cline-any cline-yes">42x</span>
880
+ <span class="cline-any cline-yes">42x</span>
881
+ <span class="cline-any cline-yes">35x</span>
882
+ <span class="cline-any cline-yes">35x</span>
883
+ <span class="cline-any cline-yes">42x</span>
884
+ <span class="cline-any cline-yes">42x</span>
885
+ <span class="cline-any cline-yes">42x</span>
886
+ <span class="cline-any cline-yes">50x</span>
887
+ <span class="cline-any cline-yes">50x</span>
927
888
  <span class="cline-any cline-yes">8x</span>
928
889
  <span class="cline-any cline-yes">8x</span>
929
890
  <span class="cline-any cline-yes">8x</span>
930
891
  <span class="cline-any cline-yes">8x</span>
892
+ <span class="cline-any cline-yes">7x</span>
893
+ <span class="cline-any cline-yes">7x</span>
894
+ <span class="cline-any cline-yes">7x</span>
895
+ <span class="cline-any cline-no">&nbsp;</span>
896
+ <span class="cline-any cline-no">&nbsp;</span>
897
+ <span class="cline-any cline-yes">7x</span>
898
+ <span class="cline-any cline-yes">7x</span>
899
+ <span class="cline-any cline-yes">7x</span>
931
900
  <span class="cline-any cline-yes">8x</span>
901
+ <span class="cline-any cline-no">&nbsp;</span>
902
+ <span class="cline-any cline-no">&nbsp;</span>
903
+ <span class="cline-any cline-no">&nbsp;</span>
904
+ <span class="cline-any cline-no">&nbsp;</span>
905
+ <span class="cline-any cline-no">&nbsp;</span>
906
+ <span class="cline-any cline-no">&nbsp;</span>
907
+ <span class="cline-any cline-no">&nbsp;</span>
932
908
  <span class="cline-any cline-yes">8x</span>
909
+ <span class="cline-any cline-yes">50x</span>
910
+ <span class="cline-any cline-yes">50x</span>
911
+ <span class="cline-any cline-yes">50x</span>
912
+ <span class="cline-any cline-yes">50x</span>
913
+ <span class="cline-any cline-yes">50x</span>
914
+ <span class="cline-any cline-yes">50x</span>
915
+ <span class="cline-any cline-yes">50x</span>
916
+ <span class="cline-any cline-yes">50x</span>
917
+ <span class="cline-any cline-yes">50x</span>
918
+ <span class="cline-any cline-yes">50x</span>
919
+ <span class="cline-any cline-yes">1x</span>
920
+ <span class="cline-any cline-no">&nbsp;</span>
921
+ <span class="cline-any cline-no">&nbsp;</span>
922
+ <span class="cline-any cline-no">&nbsp;</span>
923
+ <span class="cline-any cline-no">&nbsp;</span>
924
+ <span class="cline-any cline-no">&nbsp;</span>
925
+ <span class="cline-any cline-no">&nbsp;</span>
926
+ <span class="cline-any cline-no">&nbsp;</span>
927
+ <span class="cline-any cline-no">&nbsp;</span>
928
+ <span class="cline-any cline-no">&nbsp;</span>
929
+ <span class="cline-any cline-no">&nbsp;</span>
930
+ <span class="cline-any cline-no">&nbsp;</span>
931
+ <span class="cline-any cline-no">&nbsp;</span>
932
+ <span class="cline-any cline-no">&nbsp;</span>
933
933
  <span class="cline-any cline-yes">1x</span>
934
934
  <span class="cline-any cline-yes">1x</span>
935
935
  <span class="cline-any cline-yes">1x</span>
@@ -1161,22 +1161,22 @@
1161
1161
  <span class="cline-any cline-no">&nbsp;</span>
1162
1162
  <span class="cline-any cline-yes">9x</span>
1163
1163
  <span class="cline-any cline-yes">9x</span>
1164
- <span class="cline-any cline-yes">229x</span>
1165
- <span class="cline-any cline-yes">229x</span>
1166
- <span class="cline-any cline-yes">229x</span>
1164
+ <span class="cline-any cline-yes">65x</span>
1165
+ <span class="cline-any cline-yes">65x</span>
1166
+ <span class="cline-any cline-yes">65x</span>
1167
+ <span class="cline-any cline-no">&nbsp;</span>
1168
+ <span class="cline-any cline-yes">65x</span>
1169
+ <span class="cline-any cline-no">&nbsp;</span>
1170
+ <span class="cline-any cline-no">&nbsp;</span>
1171
+ <span class="cline-any cline-no">&nbsp;</span>
1172
+ <span class="cline-any cline-yes">65x</span>
1173
+ <span class="cline-any cline-yes">65x</span>
1174
+ <span class="cline-any cline-yes">65x</span>
1175
+ <span class="cline-any cline-yes">65x</span>
1176
+ <span class="cline-any cline-no">&nbsp;</span>
1177
+ <span class="cline-any cline-no">&nbsp;</span>
1167
1178
  <span class="cline-any cline-no">&nbsp;</span>
1168
- <span class="cline-any cline-yes">229x</span>
1169
- <span class="cline-any cline-yes">25x</span>
1170
- <span class="cline-any cline-yes">25x</span>
1171
- <span class="cline-any cline-yes">25x</span>
1172
- <span class="cline-any cline-yes">229x</span>
1173
- <span class="cline-any cline-yes">204x</span>
1174
- <span class="cline-any cline-yes">204x</span>
1175
- <span class="cline-any cline-yes">229x</span>
1176
- <span class="cline-any cline-yes">5x</span>
1177
- <span class="cline-any cline-yes">5x</span>
1178
- <span class="cline-any cline-yes">5x</span>
1179
- <span class="cline-any cline-yes">229x</span>
1179
+ <span class="cline-any cline-yes">65x</span>
1180
1180
  <span class="cline-any cline-yes">9x</span>
1181
1181
  <span class="cline-any cline-yes">9x</span>
1182
1182
  <span class="cline-any cline-no">&nbsp;</span>
@@ -1189,14 +1189,14 @@
1189
1189
  <span class="cline-any cline-no">&nbsp;</span>
1190
1190
  <span class="cline-any cline-yes">9x</span>
1191
1191
  <span class="cline-any cline-yes">9x</span>
1192
- <span class="cline-any cline-yes">72x</span>
1193
- <span class="cline-any cline-yes">72x</span>
1194
- <span class="cline-any cline-yes">72x</span>
1192
+ <span class="cline-any cline-yes">50x</span>
1193
+ <span class="cline-any cline-yes">50x</span>
1194
+ <span class="cline-any cline-yes">50x</span>
1195
1195
  <span class="cline-any cline-yes">9x</span>
1196
1196
  <span class="cline-any cline-yes">9x</span>
1197
- <span class="cline-any cline-yes">8x</span>
1198
- <span class="cline-any cline-yes">8x</span>
1199
- <span class="cline-any cline-yes">8x</span>
1197
+ <span class="cline-any cline-no">&nbsp;</span>
1198
+ <span class="cline-any cline-no">&nbsp;</span>
1199
+ <span class="cline-any cline-no">&nbsp;</span>
1200
1200
  <span class="cline-any cline-yes">9x</span>
1201
1201
  <span class="cline-any cline-yes">9x</span>
1202
1202
  <span class="cline-any cline-yes">1x</span>
@@ -1296,10 +1296,10 @@ feathers.setDebug(makeDebug)
1296
1296
  export function declareService (name, app, service, serviceOptions = {}) {
1297
1297
  let servicePath = serviceOptions.path || name
1298
1298
  let contextId
1299
- if (serviceOptions.context) {
1300
- contextId = idToString(serviceOptions.context)
1301
- servicePath = contextId + '/' + servicePath
1302
- }
1299
+ if (serviceOptions.context) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1300
+ <span class="cstat-no" title="statement not covered" > contextId = idToString(serviceOptions.context)</span>
1301
+ <span class="cstat-no" title="statement not covered" > servicePath = contextId + '/' + servicePath</span>
1302
+ <span class="cstat-no" title="statement not covered" > }</span>
1303
1303
  &nbsp;
1304
1304
  let feathersPath = app.get('apiPath') + '/' + servicePath
1305
1305
  if (feathersPath.startsWith('/')) feathersPath = feathersPath.substr(1)
@@ -1336,9 +1336,9 @@ export function declareService (name, app, service, serviceOptions = {}) {
1336
1336
  }
1337
1337
  return path
1338
1338
  }
1339
- service.getContextId = function () {
1340
- return contextId // As string
1341
- }
1339
+ service.getContextId = <span class="fstat-no" title="function not covered" >function () {</span>
1340
+ <span class="cstat-no" title="statement not covered" > return contextId // As string</span>
1341
+ <span class="cstat-no" title="statement not covered" > }</span>
1342
1342
  return service
1343
1343
  }
1344
1344
  }
@@ -1354,10 +1354,10 @@ export async function configureService (name, service, servicesPath) {
1354
1354
  }
1355
1355
  } <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
1356
1356
  <span class="cstat-no" title="statement not covered" > debug('No ' + name + ' service hooks configured on path ' + servicesPath)</span>
1357
- <span class="cstat-no" title="statement not covered" > if (error.code !== 'ERR_MODULE_NOT_FOUND') {</span>
1358
- <span class="cstat-no" title="statement not covered" > // Log error in this case as this might be linked to a syntax error in required file</span>
1359
- <span class="cstat-no" title="statement not covered" > debug(filepath, error)</span>
1360
- <span class="cstat-no" title="statement not covered" > }</span>
1357
+ <span class="cstat-no" title="statement not covered" > // if (error.code !== 'ERR_MODULE_NOT_FOUND') {</span>
1358
+ <span class="cstat-no" title="statement not covered" > // Log error in this case as this might be linked to a syntax error in required file</span>
1359
+ <span class="cstat-no" title="statement not covered" > debug(filepath, error)</span>
1360
+ <span class="cstat-no" title="statement not covered" > // }</span>
1361
1361
  <span class="cstat-no" title="statement not covered" > // As this is optionnal this require has to fail silently</span>
1362
1362
  <span class="cstat-no" title="statement not covered" > }</span>
1363
1363
  &nbsp;
@@ -1374,50 +1374,50 @@ export async function configureService (name, service, servicesPath) {
1374
1374
  <span class="cstat-no" title="statement not covered" > }</span>
1375
1375
  } <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
1376
1376
  <span class="cstat-no" title="statement not covered" > debug('No ' + name + ' service channels configured on path ' + servicesPath)</span>
1377
- <span class="cstat-no" title="statement not covered" > if (error.code !== 'ERR_MODULE_NOT_FOUND') {</span>
1378
- <span class="cstat-no" title="statement not covered" > // Log error in this case as this might be linked to a syntax error in required file</span>
1379
- <span class="cstat-no" title="statement not covered" > debug(filepath, error)</span>
1380
- <span class="cstat-no" title="statement not covered" > }</span>
1377
+ <span class="cstat-no" title="statement not covered" > // if (error.code !== 'ERR_MODULE_NOT_FOUND') {</span>
1378
+ <span class="cstat-no" title="statement not covered" > // Log error in this case as this might be linked to a syntax error in required file</span>
1379
+ <span class="cstat-no" title="statement not covered" > debug(filepath, error)</span>
1380
+ <span class="cstat-no" title="statement not covered" > // }</span>
1381
1381
  <span class="cstat-no" title="statement not covered" > // As this is optionnal this require has to fail silently</span>
1382
1382
  <span class="cstat-no" title="statement not covered" > }</span>
1383
1383
  &nbsp;
1384
1384
  return service
1385
1385
  }
1386
1386
  &nbsp;
1387
- export function createProxyService (options) {
1388
- const targetService = options.service
1389
- function proxyParams (params) {
1390
- if (options.params) {
1391
- let proxiedParams
1392
- if (typeof options.params === 'function') <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1387
+ export <span class="fstat-no" title="function not covered" >function createProxyService (options) {</span>
1388
+ <span class="cstat-no" title="statement not covered" > const targetService = options.service</span>
1389
+ <span class="cstat-no" title="statement not covered" > function proxyParams (params) {</span>
1390
+ <span class="cstat-no" title="statement not covered" > if (options.params) {</span>
1391
+ <span class="cstat-no" title="statement not covered" > let proxiedParams</span>
1392
+ <span class="cstat-no" title="statement not covered" > if (typeof options.params === 'function') {</span>
1393
1393
  <span class="cstat-no" title="statement not covered" > proxiedParams = options.params(params)</span>
1394
- } else {
1395
- proxiedParams = _.merge(params, options.params)
1396
- }
1397
- return proxiedParams
1398
- }<span class="branch-0 cbranch-no" title="branch not covered" > else return params</span>
1399
- }
1400
- function proxyId (id) {
1401
- if (options.id) <span class="branch-0 cbranch-no" title="branch not covered" >return options.id(id)</span>
1402
- else return id
1403
- }
1404
- function proxyData (data) {
1405
- if (options.data) <span class="branch-0 cbranch-no" title="branch not covered" >return options.data(data)</span>
1406
- else return data
1407
- }
1408
- function proxyResult (data) {
1409
- if (options.result) <span class="branch-0 cbranch-no" title="branch not covered" >return options.result(data)</span>
1410
- else return data
1411
- }
1412
- return {
1413
- async find (params) { return proxyResult(await targetService.find(proxyParams(params))) },
1414
- <span class="fstat-no" title="function not covered" > async get (id, params) { return proxyResult(await targetService.get(proxyId(id), proxyParams(params))) },</span>
1415
- <span class="fstat-no" title="function not covered" > async create (data, params) { return proxyResult(await targetService.create(proxyData(data), proxyParams(params))) },</span>
1416
- <span class="fstat-no" title="function not covered" > async update (id, data, params) { return proxyResult(await targetService.update(proxyId(id), proxyData(data), proxyParams(params))) },</span>
1417
- async patch (id, data, params) { return proxyResult(await targetService.patch(proxyId(id), proxyData(data), proxyParams(params))) },
1418
- <span class="fstat-no" title="function not covered" > async remove (id, params) { return proxyResult(await targetService.remove(proxyId(id), proxyParams(params))) }</span>
1419
- }
1420
- }
1394
+ <span class="cstat-no" title="statement not covered" > } else {</span>
1395
+ <span class="cstat-no" title="statement not covered" > proxiedParams = _.merge(params, options.params)</span>
1396
+ <span class="cstat-no" title="statement not covered" > }</span>
1397
+ <span class="cstat-no" title="statement not covered" > return proxiedParams</span>
1398
+ <span class="cstat-no" title="statement not covered" > } else return params</span>
1399
+ <span class="cstat-no" title="statement not covered" > }</span>
1400
+ <span class="cstat-no" title="statement not covered" > function proxyId (id) {</span>
1401
+ <span class="cstat-no" title="statement not covered" > if (options.id) return options.id(id)</span>
1402
+ <span class="cstat-no" title="statement not covered" > else return id</span>
1403
+ <span class="cstat-no" title="statement not covered" > }</span>
1404
+ <span class="cstat-no" title="statement not covered" > function proxyData (data) {</span>
1405
+ <span class="cstat-no" title="statement not covered" > if (options.data) return options.data(data)</span>
1406
+ <span class="cstat-no" title="statement not covered" > else return data</span>
1407
+ <span class="cstat-no" title="statement not covered" > }</span>
1408
+ <span class="cstat-no" title="statement not covered" > function proxyResult (data) {</span>
1409
+ <span class="cstat-no" title="statement not covered" > if (options.result) return options.result(data)</span>
1410
+ <span class="cstat-no" title="statement not covered" > else return data</span>
1411
+ <span class="cstat-no" title="statement not covered" > }</span>
1412
+ <span class="cstat-no" title="statement not covered" > return {</span>
1413
+ <span class="cstat-no" title="statement not covered" > async find (params) { return proxyResult(await targetService.find(proxyParams(params))) },</span>
1414
+ <span class="cstat-no" title="statement not covered" > async get (id, params) { return proxyResult(await targetService.get(proxyId(id), proxyParams(params))) },</span>
1415
+ <span class="cstat-no" title="statement not covered" > async create (data, params) { return proxyResult(await targetService.create(proxyData(data), proxyParams(params))) },</span>
1416
+ <span class="cstat-no" title="statement not covered" > async update (id, data, params) { return proxyResult(await targetService.update(proxyId(id), proxyData(data), proxyParams(params))) },</span>
1417
+ <span class="cstat-no" title="statement not covered" > async patch (id, data, params) { return proxyResult(await targetService.patch(proxyId(id), proxyData(data), proxyParams(params))) },</span>
1418
+ <span class="cstat-no" title="statement not covered" > async remove (id, params) { return proxyResult(await targetService.remove(proxyId(id), proxyParams(params))) }</span>
1419
+ <span class="cstat-no" title="statement not covered" > }</span>
1420
+ <span class="cstat-no" title="statement not covered" >}</span>
1421
1421
  &nbsp;
1422
1422
  async function createService (name, app, options = {}) {
1423
1423
  debug(`Creating service ${name}`)
@@ -1453,10 +1453,10 @@ async function createService (name, app, options = {}) {
1453
1453
  }
1454
1454
  } <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
1455
1455
  <span class="cstat-no" title="statement not covered" > debug('No ' + fileName + ' service model configured on path ' + serviceOptions.modelsPath)</span>
1456
- <span class="cstat-no" title="statement not covered" > if (error.code !== 'ERR_MODULE_NOT_FOUND') {</span>
1457
- <span class="cstat-no" title="statement not covered" > // Log error in this case as this might be linked to a syntax error in required file</span>
1458
- <span class="cstat-no" title="statement not covered" > debug(fileName, error)</span>
1459
- <span class="cstat-no" title="statement not covered" > }</span>
1456
+ <span class="cstat-no" title="statement not covered" > // if (error.code !== 'ERR_MODULE_NOT_FOUND') {</span>
1457
+ <span class="cstat-no" title="statement not covered" > // Log error in this case as this might be linked to a syntax error in required file</span>
1458
+ <span class="cstat-no" title="statement not covered" > debug(fileName, error)</span>
1459
+ <span class="cstat-no" title="statement not covered" > // }</span>
1460
1460
  <span class="cstat-no" title="statement not covered" > // As this is optionnal this require has to fail silently</span>
1461
1461
  <span class="cstat-no" title="statement not covered" > }</span>
1462
1462
  &nbsp;
@@ -1465,8 +1465,8 @@ async function createService (name, app, options = {}) {
1465
1465
  if (dbService) {
1466
1466
  service = createFeathersService(serviceOptions)
1467
1467
  dbService = service
1468
- } else if (serviceOptions.proxy) {
1469
- service = createProxyService(serviceOptions.proxy)
1468
+ } else if (serviceOptions.proxy) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1469
+ <span class="cstat-no" title="statement not covered" > service = createProxyService(serviceOptions.proxy)</span>
1470
1470
  } else {
1471
1471
  const filepath = path.join(serviceOptions.servicesPath, fileName, `${fileName}.service.js`)
1472
1472
  // Otherwise we expect the service to be provided as a Feathers service interface
@@ -1486,9 +1486,9 @@ async function createService (name, app, options = {}) {
1486
1486
  if (fileExists) {
1487
1487
  let serviceMixin = (await import(url.pathToFileURL(filepath))).default
1488
1488
  // If we get a function try to call it assuming it will return the mixin object
1489
- if (typeof serviceMixin === 'function') {
1490
- serviceMixin = await serviceMixin.bind(dbService)(fileName, app, serviceOptions)
1491
- }
1489
+ if (typeof serviceMixin === 'function') <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1490
+ <span class="cstat-no" title="statement not covered" > serviceMixin = await serviceMixin.bind(dbService)(fileName, app, serviceOptions)</span>
1491
+ <span class="cstat-no" title="statement not covered" > }</span>
1492
1492
  Object.assign(service, serviceMixin)
1493
1493
  debug(name + ' service mixin configured on path ' + serviceOptions.servicesPath)
1494
1494
  }
@@ -1512,19 +1512,19 @@ async function createService (name, app, options = {}) {
1512
1512
  return service
1513
1513
  }
1514
1514
  &nbsp;
1515
- async function removeService (service, app) {
1516
- // Often called like removeService(getService('xxx'))
1517
- // so that we don't want to crash if the service does not exist or has already been unregistered
1518
- if (!service) <span class="branch-0 cbranch-no" title="branch not covered" >return</span>
1519
- let feathersPath = app.get('apiPath') + '/' + service.path
1520
- if (feathersPath.startsWith('/')) feathersPath = feathersPath.substr(1)
1521
- &nbsp;
1522
- app.unuse(feathersPath)
1523
- debug(service.name + ' service unregistration completed')
1524
- app.emit('service-removed', service)
1525
- &nbsp;
1526
- return service
1527
- }
1515
+ <span class="cstat-no" title="statement not covered" ><span class="fstat-no" title="function not covered" >async function removeService (service, app) {</span></span>
1516
+ <span class="cstat-no" title="statement not covered" > // Often called like removeService(getService('xxx'))</span>
1517
+ <span class="cstat-no" title="statement not covered" > // so that we don't want to crash if the service does not exist or has already been unregistered</span>
1518
+ <span class="cstat-no" title="statement not covered" > if (!service) return</span>
1519
+ <span class="cstat-no" title="statement not covered" > let feathersPath = app.get('apiPath') + '/' + service.path</span>
1520
+ <span class="cstat-no" title="statement not covered" > if (feathersPath.startsWith('/')) feathersPath = feathersPath.substr(1)</span>
1521
+ <span class="cstat-no" title="statement not covered" ></span>
1522
+ <span class="cstat-no" title="statement not covered" > app.unuse(feathersPath)</span>
1523
+ <span class="cstat-no" title="statement not covered" > debug(service.name + ' service unregistration completed')</span>
1524
+ <span class="cstat-no" title="statement not covered" > app.emit('service-removed', service)</span>
1525
+ <span class="cstat-no" title="statement not covered" ></span>
1526
+ <span class="cstat-no" title="statement not covered" > return service</span>
1527
+ <span class="cstat-no" title="statement not covered" >}</span>
1528
1528
  &nbsp;
1529
1529
  export function createWebhook (path, app, options = {}) {
1530
1530
  let webhookPath = path
@@ -1758,19 +1758,19 @@ export function kdk (config = {}) {
1758
1758
  app.getService = function (path, context) {
1759
1759
  try {
1760
1760
  // Context is given as string ID
1761
- if (context &amp;&amp; typeof context === 'string') <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1761
+ if (context <span class="branch-0 cbranch-no" title="branch not covered" >&amp;&amp; typeof context === 'string')</span> <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1762
1762
  <span class="cstat-no" title="statement not covered" > return app.service(app.get('apiPath') + '/' + context + '/' + path)</span>
1763
- } else if (context &amp;&amp; typeof context === 'object') {
1764
- // Could be Object ID or raw object
1765
- if (ObjectID.isValid(context)) <span class="branch-0 cbranch-no" title="branch not covered" >return app.service(app.get('apiPath') + '/' + context.toString() + '/' + path)</span>
1766
- else return app.service(app.get('apiPath') + '/' + context._id.toString() + '/' + path)
1763
+ } else if (context <span class="branch-0 cbranch-no" title="branch not covered" >&amp;&amp; typeof context === 'object')</span> <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
1764
+ <span class="cstat-no" title="statement not covered" > // Could be Object ID or raw object</span>
1765
+ <span class="cstat-no" title="statement not covered" > if (ObjectID.isValid(context)) return app.service(app.get('apiPath') + '/' + context.toString() + '/' + path)</span>
1766
+ <span class="cstat-no" title="statement not covered" > else return app.service(app.get('apiPath') + '/' + context._id.toString() + '/' + path)</span>
1767
1767
  } else {
1768
1768
  return app.service(app.get('apiPath') + '/' + path)
1769
1769
  }
1770
- } catch {
1771
- // We return a false-y value in case the service wasn't found
1772
- return null
1773
- }
1770
+ } <span class="branch-0 cbranch-no" title="branch not covered" >catch {</span>
1771
+ <span class="cstat-no" title="statement not covered" > // We return a false-y value in case the service wasn't found</span>
1772
+ <span class="cstat-no" title="statement not covered" > return null</span>
1773
+ <span class="cstat-no" title="statement not covered" > }</span>
1774
1774
  }
1775
1775
  // This is used to add hooks/filters to services
1776
1776
  app.configureService = <span class="fstat-no" title="function not covered" >async function (name, service, servicesPath) {</span>
@@ -1788,10 +1788,10 @@ export function kdk (config = {}) {
1788
1788
  return service
1789
1789
  }
1790
1790
  // This is used to remove standard services
1791
- app.removeService = async function (service) {
1792
- service = await removeService(service, app)
1793
- return service
1794
- }
1791
+ app.removeService = <span class="fstat-no" title="function not covered" >async function (service) {</span>
1792
+ <span class="cstat-no" title="statement not covered" > service = await removeService(service, app)</span>
1793
+ <span class="cstat-no" title="statement not covered" > return service</span>
1794
+ <span class="cstat-no" title="statement not covered" > }</span>
1795
1795
  // This is used to create webhooks
1796
1796
  app.createWebhook = function (path, options) {
1797
1797
  return createWebhook(path, app, options)
@@ -1855,7 +1855,7 @@ export function kdk (config = {}) {
1855
1855
  <div class='footer quiet pad2 space-top1 center small'>
1856
1856
  Code coverage generated by
1857
1857
  <a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
1858
- at 2024-11-15T21:05:45.936Z
1858
+ at 2025-02-18T09:52:45.637Z
1859
1859
  </div>
1860
1860
  <script src="../../prettify.js"></script>
1861
1861
  <script>