@sumaris-net/ngx-components 2.5.16 → 2.6.0-rc1

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 (329) hide show
  1. package/doc/changelog.md +86 -0
  2. package/esm2020/public_api.mjs +13 -3
  3. package/esm2020/src/app/admin/admin-routing.module.mjs +5 -5
  4. package/esm2020/src/app/admin/admin.module.mjs +5 -5
  5. package/esm2020/src/app/admin/services/person.service.mjs +4 -4
  6. package/esm2020/src/app/admin/services/validator/person.validator.mjs +4 -4
  7. package/esm2020/src/app/admin/users/users.mjs +6 -6
  8. package/esm2020/src/app/admin/users/users.module.mjs +5 -5
  9. package/esm2020/src/app/core/about/about.modal.mjs +4 -4
  10. package/esm2020/src/app/core/about/about.module.mjs +5 -5
  11. package/esm2020/src/app/core/account/account.module.mjs +5 -5
  12. package/esm2020/src/app/core/account/account.page.mjs +25 -26
  13. package/esm2020/src/app/core/account/new-token.modal.mjs +4 -4
  14. package/esm2020/src/app/core/account/token.table.mjs +5 -5
  15. package/esm2020/src/app/core/auth/auth.form.mjs +4 -4
  16. package/esm2020/src/app/core/auth/auth.modal.mjs +4 -4
  17. package/esm2020/src/app/core/auth/auth.module.mjs +5 -5
  18. package/esm2020/src/app/core/core.module.mjs +14 -14
  19. package/esm2020/src/app/core/core.testing.module.mjs +5 -5
  20. package/esm2020/src/app/core/form/buttons/form-buttons-bar.component.mjs +4 -4
  21. package/esm2020/src/app/core/form/buttons/form-buttons-bar.module.mjs +5 -5
  22. package/esm2020/src/app/core/form/entity/editor.class.mjs +19 -15
  23. package/esm2020/src/app/core/form/entity/entity-editor-modal.class.mjs +11 -9
  24. package/esm2020/src/app/core/form/entity/entity-editor.class.mjs +87 -68
  25. package/esm2020/src/app/core/form/entity/entity-metadata.component.mjs +4 -4
  26. package/esm2020/src/app/core/form/entity/entity.module.mjs +5 -5
  27. package/esm2020/src/app/core/form/form.class.mjs +6 -6
  28. package/esm2020/src/app/core/form/form.module.mjs +5 -5
  29. package/esm2020/src/app/core/form/form.utils.mjs +2 -2
  30. package/esm2020/src/app/core/form/list/list.form.mjs +4 -4
  31. package/esm2020/src/app/core/form/list/list.module.mjs +5 -5
  32. package/esm2020/src/app/core/form/properties/properties.form.mjs +9 -6
  33. package/esm2020/src/app/core/form/properties/properties.module.mjs +5 -5
  34. package/esm2020/src/app/core/form/properties/properties.table.mjs +8 -8
  35. package/esm2020/src/app/core/form/properties/property.validator.mjs +4 -4
  36. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +4 -4
  37. package/esm2020/src/app/core/form/properties/testing/properties-form.testing.module.mjs +5 -5
  38. package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.mjs +40 -7
  39. package/esm2020/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +5 -5
  40. package/esm2020/src/app/core/form/text-popover/text-form.component.mjs +5 -5
  41. package/esm2020/src/app/core/form/text-popover/text-popover.component.mjs +46 -5
  42. package/esm2020/src/app/core/form/text-popover/text-popover.module.mjs +5 -5
  43. package/esm2020/src/app/core/graphql/graphql.module.mjs +5 -5
  44. package/esm2020/src/app/core/graphql/graphql.service.mjs +20 -7
  45. package/esm2020/src/app/core/graphql/graphql.utils.mjs +1 -1
  46. package/esm2020/src/app/core/home/home.mjs +5 -5
  47. package/esm2020/src/app/core/home/home.module.mjs +5 -5
  48. package/esm2020/src/app/core/icon/icon.component.mjs +4 -4
  49. package/esm2020/src/app/core/icon/icon.module.mjs +5 -5
  50. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +17 -11
  51. package/esm2020/src/app/core/install/install-upgrade-card.module.mjs +5 -5
  52. package/esm2020/src/app/core/menu/menu.component.mjs +18 -19
  53. package/esm2020/src/app/core/menu/menu.module.mjs +5 -5
  54. package/esm2020/src/app/core/menu/menu.service.mjs +4 -4
  55. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +4 -4
  56. package/esm2020/src/app/core/offline/update-offline-mode-card.module.mjs +5 -5
  57. package/esm2020/src/app/core/peer/select-peer.modal.mjs +17 -9
  58. package/esm2020/src/app/core/peer/select-peer.module.mjs +5 -5
  59. package/esm2020/src/app/core/register/register-confirm.page.mjs +5 -5
  60. package/esm2020/src/app/core/register/register.form.mjs +4 -4
  61. package/esm2020/src/app/core/register/register.modal.mjs +4 -4
  62. package/esm2020/src/app/core/register/register.module.mjs +5 -5
  63. package/esm2020/src/app/core/services/account.service.mjs +28 -8
  64. package/esm2020/src/app/core/services/auth-guard.service.mjs +8 -8
  65. package/esm2020/src/app/core/services/base-entity-service.class.mjs +7 -4
  66. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +4 -4
  67. package/esm2020/src/app/core/services/config.service.mjs +4 -4
  68. package/esm2020/src/app/core/services/crypto.service.mjs +4 -4
  69. package/esm2020/src/app/core/services/errors.mjs +2 -1
  70. package/esm2020/src/app/core/services/local-settings.service.mjs +15 -11
  71. package/esm2020/src/app/core/services/model/config.model.mjs +3 -3
  72. package/esm2020/src/app/core/services/model/entity.model.mjs +15 -4
  73. package/esm2020/src/app/core/services/model/referential.model.mjs +14 -3
  74. package/esm2020/src/app/core/services/network.service.mjs +35 -20
  75. package/esm2020/src/app/core/services/network.utils.mjs +10 -11
  76. package/esm2020/src/app/core/services/pipes/account.pipes.mjs +9 -9
  77. package/esm2020/src/app/core/services/pipes/department-to-string.pipe.mjs +5 -5
  78. package/esm2020/src/app/core/services/pipes/person-to-string.pipe.mjs +5 -5
  79. package/esm2020/src/app/core/services/pipes/usage-mode.pipes.mjs +12 -12
  80. package/esm2020/src/app/core/services/platform.service.mjs +37 -10
  81. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +8 -7
  82. package/esm2020/src/app/core/services/storage/entity-store.class.mjs +1 -1
  83. package/esm2020/src/app/core/services/testing/referential.validator.mjs +4 -4
  84. package/esm2020/src/app/core/services/validator/account.validator.mjs +4 -4
  85. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +4 -4
  86. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +4 -4
  87. package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +4 -4
  88. package/esm2020/src/app/core/services/validator/user-token.validator.mjs +4 -4
  89. package/esm2020/src/app/core/settings/settings.module.mjs +5 -5
  90. package/esm2020/src/app/core/settings/settings.page.mjs +46 -27
  91. package/esm2020/src/app/core/table/actions-column.component.mjs +11 -5
  92. package/esm2020/src/app/core/table/async-table.class.mjs +10 -6
  93. package/esm2020/src/app/core/table/entities-async-table-datasource.class.mjs +4 -4
  94. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +4 -4
  95. package/esm2020/src/app/core/table/memory-table.class.mjs +4 -4
  96. package/esm2020/src/app/core/table/table-select-columns.component.mjs +4 -4
  97. package/esm2020/src/app/core/table/table.class.mjs +79 -32
  98. package/esm2020/src/app/core/table/table.module.mjs +5 -5
  99. package/esm2020/src/app/core/table/table.utils.mjs +18 -1
  100. package/esm2020/src/app/core/table/testing/table-validator.service.mjs +27 -0
  101. package/esm2020/src/app/core/table/testing/table.testing.mjs +29 -14
  102. package/esm2020/src/app/core/table/testing/table.testing.module.mjs +5 -5
  103. package/esm2020/src/app/shared/alerts.mjs +3 -2
  104. package/esm2020/src/app/shared/audio/audio.mjs +62 -15
  105. package/esm2020/src/app/shared/audio/audio.testing.mjs +4 -4
  106. package/esm2020/src/app/shared/audio/audio.testing.module.mjs +5 -5
  107. package/esm2020/src/app/shared/capacitor/keyboard.mjs +4 -4
  108. package/esm2020/src/app/shared/dates.mjs +1 -1
  109. package/esm2020/src/app/shared/debug/debug-service.class.mjs +3 -0
  110. package/esm2020/src/app/shared/debug/debug.component.mjs +5 -5
  111. package/esm2020/src/app/shared/debug/debug.module.mjs +5 -5
  112. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +4 -4
  113. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +4 -4
  114. package/esm2020/src/app/shared/directives/directives.module.mjs +5 -5
  115. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +4 -4
  116. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +4 -4
  117. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +4 -4
  118. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +4 -4
  119. package/esm2020/src/app/shared/directives/resizable/resizable.module.mjs +5 -5
  120. package/esm2020/src/app/shared/file/file.service.mjs +4 -4
  121. package/esm2020/src/app/shared/file/json.utils.mjs +21 -3
  122. package/esm2020/src/app/shared/form/field.component.mjs +103 -40
  123. package/esm2020/src/app/shared/form/field.model.mjs +1 -1
  124. package/esm2020/src/app/shared/form/loading-spinner.mjs +4 -4
  125. package/esm2020/src/app/shared/functions.mjs +27 -12
  126. package/esm2020/src/app/shared/geolocation/geolocation.utils.mjs +46 -7
  127. package/esm2020/src/app/shared/gesture/gesture-config.mjs +4 -4
  128. package/esm2020/src/app/shared/graph/graph-colors.mjs +5 -1
  129. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +4 -4
  130. package/esm2020/src/app/shared/help/help.modal.mjs +4 -4
  131. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +4 -4
  132. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +4 -4
  133. package/esm2020/src/app/shared/hotkeys/shared-hotkeys.module.mjs +5 -5
  134. package/esm2020/src/app/shared/http/http.utils.mjs +4 -4
  135. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +43 -33
  136. package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +7 -6
  137. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +4 -4
  138. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +4 -4
  139. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +5 -5
  140. package/esm2020/src/app/shared/image/image.module.mjs +5 -5
  141. package/esm2020/src/app/shared/image/image.service.mjs +4 -4
  142. package/esm2020/src/app/shared/logging/log-level.model.mjs +48 -0
  143. package/esm2020/src/app/shared/logging/logger.model.mjs +47 -0
  144. package/esm2020/src/app/shared/logging/logging-service.class.mjs +121 -0
  145. package/esm2020/src/app/shared/logging/logging-service.config.mjs +2 -0
  146. package/esm2020/src/app/shared/logging/logging-service.module.mjs +30 -0
  147. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +15 -14
  148. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +5 -5
  149. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +5 -5
  150. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +130 -112
  151. package/esm2020/src/app/shared/material/badge/badge.module.mjs +5 -5
  152. package/esm2020/src/app/shared/material/badge/badge.test.mjs +27 -14
  153. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +5 -5
  154. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +6 -6
  155. package/esm2020/src/app/shared/material/chips/chips.module.mjs +5 -5
  156. package/esm2020/src/app/shared/material/chips/material.chips.mjs +4 -4
  157. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +4 -4
  158. package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +5 -5
  159. package/esm2020/src/app/shared/material/datetime/material.date.mjs +6 -6
  160. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +6 -6
  161. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +96 -33
  162. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +4 -4
  163. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +4 -4
  164. package/esm2020/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +4 -4
  165. package/esm2020/src/app/shared/material/duration/duration.module.mjs +5 -5
  166. package/esm2020/src/app/shared/material/duration/material.duration.mjs +4 -4
  167. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +4 -4
  168. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +5 -5
  169. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +4 -4
  170. package/esm2020/src/app/shared/material/material.module.mjs +5 -5
  171. package/esm2020/src/app/shared/material/material.testing.module.mjs +5 -5
  172. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +4 -4
  173. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +4 -4
  174. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +4 -4
  175. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +4 -4
  176. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +4 -4
  177. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +4 -4
  178. package/esm2020/src/app/shared/material/numpad/numpad.module.mjs +5 -5
  179. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +4 -4
  180. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +4 -4
  181. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +4 -4
  182. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +45 -35
  183. package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +7 -6
  184. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +4 -4
  185. package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +47 -41
  186. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +4 -4
  187. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +5 -5
  188. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +7 -7
  189. package/esm2020/src/app/shared/pipes/date-from-now.pipe.mjs +5 -5
  190. package/esm2020/src/app/shared/pipes/duration.pipe.mjs +6 -6
  191. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +4 -4
  192. package/esm2020/src/app/shared/pipes/form.pipes.mjs +19 -19
  193. package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +5 -5
  194. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +10 -10
  195. package/esm2020/src/app/shared/pipes/maps.pipe.mjs +13 -13
  196. package/esm2020/src/app/shared/pipes/math.pipes.mjs +13 -13
  197. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +4 -4
  198. package/esm2020/src/app/shared/pipes/number-format.pipe.mjs +5 -5
  199. package/esm2020/src/app/shared/pipes/pipes.module.mjs +22 -9
  200. package/esm2020/src/app/shared/pipes/property.pipes.mjs +8 -8
  201. package/esm2020/src/app/shared/pipes/string.pipes.mjs +28 -28
  202. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +9 -9
  203. package/esm2020/src/app/shared/pipes/types.pipes.mjs +45 -0
  204. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +4 -4
  205. package/esm2020/src/app/shared/services/progress-bar.service.mjs +4 -4
  206. package/esm2020/src/app/shared/services/startable-service.class.mjs +6 -1
  207. package/esm2020/src/app/shared/services/translate-context.service.mjs +28 -4
  208. package/esm2020/src/app/shared/shared-routing.module.mjs +8 -8
  209. package/esm2020/src/app/shared/shared.module.mjs +7 -7
  210. package/esm2020/src/app/shared/shared.testing.module.mjs +20 -12
  211. package/esm2020/src/app/shared/storage/storage-explorer.component.mjs +268 -0
  212. package/esm2020/src/app/shared/storage/storage-explorer.module.mjs +60 -0
  213. package/esm2020/src/app/shared/storage/storage.service.mjs +132 -0
  214. package/esm2020/src/app/shared/storage/storage.utils.mjs +13 -0
  215. package/esm2020/src/app/shared/testing/observable.test.mjs +4 -4
  216. package/esm2020/src/app/shared/testing/tests.page.mjs +4 -4
  217. package/esm2020/src/app/shared/toast/toast.testing.mjs +6 -6
  218. package/esm2020/src/app/shared/toast/toast.testing.module.mjs +5 -5
  219. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +4 -4
  220. package/esm2020/src/app/shared/toolbar/toolbar.mjs +14 -13
  221. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +5 -5
  222. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +4 -4
  223. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +5 -5
  224. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +4 -4
  225. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +4 -4
  226. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +4 -4
  227. package/esm2020/src/app/shared/validator/validators.mjs +32 -2
  228. package/esm2020/src/app/social/job/job.module.mjs +5 -5
  229. package/esm2020/src/app/social/job/progression/job-progression.component.mjs +4 -4
  230. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +4 -4
  231. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +4 -4
  232. package/esm2020/src/app/social/job/progression/job-progression.service.mjs +4 -4
  233. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +4 -4
  234. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +4 -4
  235. package/esm2020/src/app/social/job/testing/job.testing.module.mjs +5 -5
  236. package/esm2020/src/app/social/message/message.form.mjs +4 -4
  237. package/esm2020/src/app/social/message/message.modal.mjs +4 -4
  238. package/esm2020/src/app/social/message/message.module.mjs +5 -5
  239. package/esm2020/src/app/social/message/message.service.mjs +4 -4
  240. package/esm2020/src/app/social/social.module.mjs +5 -5
  241. package/esm2020/src/app/social/social.testing.module.mjs +5 -5
  242. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +5 -5
  243. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +4 -4
  244. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +4 -6
  245. package/esm2020/src/app/social/user-event/testing/user-event.testing.module.mjs +5 -5
  246. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +4 -4
  247. package/esm2020/src/app/social/user-event/user-event.module.mjs +5 -5
  248. package/esm2020/src/app/social/user-event/user-event.service.mjs +4 -4
  249. package/esm2020/src/environments/environment.class.mjs +1 -1
  250. package/esm2020/src/environments/environment.mjs +15 -7
  251. package/fesm2015/sumaris-net.ngx-components.mjs +2892 -1561
  252. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
  253. package/fesm2020/sumaris-net.ngx-components.mjs +2815 -1526
  254. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
  255. package/package.json +10 -10
  256. package/public_api.d.ts +12 -2
  257. package/src/app/core/account/account.page.d.ts +3 -3
  258. package/src/app/core/core.module.d.ts +1 -1
  259. package/src/app/core/form/entity/editor.class.d.ts +6 -4
  260. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +0 -1
  261. package/src/app/core/form/entity/entity-editor.class.d.ts +37 -31
  262. package/src/app/core/form/form.class.d.ts +1 -1
  263. package/src/app/core/form/properties/properties.form.d.ts +1 -0
  264. package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +6 -2
  265. package/src/app/core/form/text-popover/text-popover.component.d.ts +27 -2
  266. package/src/app/core/graphql/graphql.service.d.ts +1 -1
  267. package/src/app/core/graphql/graphql.utils.d.ts +1 -1
  268. package/src/app/core/menu/menu.component.d.ts +3 -4
  269. package/src/app/core/peer/select-peer.modal.d.ts +5 -2
  270. package/src/app/core/services/account.service.d.ts +5 -0
  271. package/src/app/core/services/base-entity-service.class.d.ts +1 -0
  272. package/src/app/core/services/errors.d.ts +1 -0
  273. package/src/app/core/services/local-settings.service.d.ts +5 -2
  274. package/src/app/core/services/model/entity.model.d.ts +3 -0
  275. package/src/app/core/services/model/referential.model.d.ts +6 -1
  276. package/src/app/core/services/network.service.d.ts +5 -2
  277. package/src/app/core/services/network.utils.d.ts +6 -7
  278. package/src/app/core/services/pipes/usage-mode.pipes.d.ts +8 -8
  279. package/src/app/core/services/platform.service.d.ts +9 -5
  280. package/src/app/core/services/storage/entities-storage.service.d.ts +1 -1
  281. package/src/app/core/services/storage/entity-store.class.d.ts +1 -1
  282. package/src/app/core/settings/settings.page.d.ts +9 -6
  283. package/src/app/core/table/actions-column.component.d.ts +6 -1
  284. package/src/app/core/table/table.class.d.ts +11 -11
  285. package/src/app/core/table/table.utils.d.ts +4 -0
  286. package/src/app/core/table/testing/table-validator.service.d.ts +17 -0
  287. package/src/app/core/table/testing/table.testing.d.ts +2 -0
  288. package/src/app/shared/alerts.d.ts +2 -1
  289. package/src/app/shared/audio/audio.d.ts +1 -0
  290. package/src/app/shared/dates.d.ts +1 -1
  291. package/src/app/shared/debug/debug-service.class.d.ts +5 -0
  292. package/src/app/shared/file/file.utils.d.ts +1 -1
  293. package/src/app/shared/file/json.utils.d.ts +5 -0
  294. package/src/app/shared/form/field.component.d.ts +16 -4
  295. package/src/app/shared/form/field.model.d.ts +1 -1
  296. package/src/app/shared/functions.d.ts +10 -8
  297. package/src/app/shared/geolocation/geolocation.utils.d.ts +9 -1
  298. package/src/app/shared/image/gallery/image-gallery.component.d.ts +14 -17
  299. package/src/app/shared/logging/log-level.model.d.ts +38 -0
  300. package/src/app/shared/logging/logger.model.d.ts +68 -0
  301. package/src/app/shared/logging/logging-service.class.d.ts +39 -0
  302. package/src/app/shared/logging/logging-service.config.d.ts +25 -0
  303. package/src/app/shared/logging/logging-service.module.d.ts +9 -0
  304. package/src/app/shared/material/badge/badge.directive.d.ts +25 -18
  305. package/src/app/shared/material/badge/badge.test.d.ts +8 -0
  306. package/src/app/shared/material/datetime/material.datetime.d.ts +15 -5
  307. package/src/app/shared/material/swipe/material.swipe.d.ts +12 -12
  308. package/src/app/shared/pipes/arrays.pipe.d.ts +9 -9
  309. package/src/app/shared/pipes/duration.pipe.d.ts +2 -1
  310. package/src/app/shared/pipes/pipes.module.d.ts +5 -4
  311. package/src/app/shared/pipes/types.pipes.d.ts +18 -0
  312. package/src/app/shared/services/startable-service.class.d.ts +1 -0
  313. package/src/app/shared/services/translate-context.service.d.ts +2 -2
  314. package/src/app/shared/shared.testing.module.d.ts +2 -1
  315. package/src/app/shared/storage/storage-explorer.component.d.ts +58 -0
  316. package/src/app/shared/storage/storage-explorer.module.d.ts +16 -0
  317. package/src/app/shared/{services/storage → storage}/storage.service.d.ts +2 -2
  318. package/src/app/shared/toolbar/toolbar.d.ts +5 -4
  319. package/src/app/shared/validator/validators.d.ts +6 -0
  320. package/src/assets/i18n/en-US.json +23 -3
  321. package/src/assets/i18n/en.json +23 -3
  322. package/src/assets/i18n/fr.json +22 -8
  323. package/src/assets/manifest.json +1 -1
  324. package/src/environments/environment.class.d.ts +4 -0
  325. package/src/theme/_ionic.globals.scss +7 -2
  326. package/src/theme/_ngx-components.scss +13 -3
  327. package/esm2020/src/app/shared/services/storage/storage.service.mjs +0 -132
  328. package/esm2020/src/app/shared/services/storage/storage.utils.mjs +0 -13
  329. /package/src/app/shared/{services/storage → storage}/storage.utils.d.ts +0 -0
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sumaris-net/ngx-components",
3
3
  "description": "SUMARiS Angular components",
4
- "version": "2.5.16",
4
+ "version": "2.6.0-rc1",
5
5
  "author": "contact@e-is.pro",
6
6
  "license": "AGPL-3.0",
7
7
  "readmeFilename": "README.md",
@@ -10,20 +10,20 @@
10
10
  },
11
11
  "dependencies": {
12
12
  "@noble/ed25519": "^1.7.1",
13
- "@rx-angular/cdk": "^1.0.0",
14
- "@rx-angular/state": "^1.7.0",
15
- "@rx-angular/template": "^1.0.0",
13
+ "@rx-angular/cdk": "^14.0.0",
14
+ "@rx-angular/state": "^14.0.0",
15
+ "@rx-angular/template": "^14.0.0",
16
16
  "clone": "~2.1.2",
17
17
  "tslib": "~2.3.1"
18
18
  },
19
19
  "peerDependencies": {
20
- "@angular-devkit/build-angular": "~14.2.10",
21
- "@angular/compiler-cli": "~14.2.10",
22
- "@apollo/client": "~3.7.3",
20
+ "@angular-devkit/build-angular": "~14.2.11",
21
+ "@angular/compiler-cli": "~14.2.12",
22
+ "@apollo/client": "~3.7.16",
23
23
  "@ionic/storage": "~3.0.6",
24
24
  "d3": "~7.6.1",
25
25
  "localforage": "~1.10.0",
26
- "rxjs": "^6.6.7"
26
+ "rxjs": "^7.5.7"
27
27
  },
28
28
  "repository": {
29
29
  "type": "git",
@@ -34,8 +34,8 @@
34
34
  "url": "https://gitlab.ifremer.fr/sih-public/sumaris/ngx-sumaris-components/-/issues"
35
35
  },
36
36
  "engines": {
37
- "node": ">= 14.20.0",
38
- "npm": ">= 8.17.0",
37
+ "node": ">= 16.17.0",
38
+ "npm": ">= 9.1.1",
39
39
  "yarn": ">= 1.22.0"
40
40
  },
41
41
  "module": "fesm2015/sumaris-net.ngx-components.mjs",
package/public_api.d.ts CHANGED
@@ -50,6 +50,13 @@ export * from './src/app/shared/image/gallery/image-gallery.component';
50
50
  export * from './src/app/shared/image/gallery/image-gallery.module';
51
51
  export * from './src/app/shared/image/image.model';
52
52
  export * from './src/app/shared/image/image.module';
53
+ export * from './src/app/shared/storage/storage-explorer.component';
54
+ export * from './src/app/shared/storage/storage-explorer.module';
55
+ export * from './src/app/shared/logging/log-level.model';
56
+ export * from './src/app/shared/logging/logger.model';
57
+ export * from './src/app/shared/logging/logging-service.class';
58
+ export * from './src/app/shared/logging/logging-service.config';
59
+ export * from './src/app/shared/logging/logging-service.module';
53
60
  export * from './src/app/shared/directives/directives.module';
54
61
  export * from './src/app/shared/directives/autofocus.directive';
55
62
  export * from './src/app/shared/directives/ng-var.directive';
@@ -76,6 +83,7 @@ export * from './src/app/shared/pipes/translate-context.pipe';
76
83
  export * from './src/app/shared/pipes/ng-init.pipe';
77
84
  export * from './src/app/shared/pipes/form.pipes';
78
85
  export * from './src/app/shared/pipes/colors.pipe';
86
+ export * from './src/app/shared/pipes/types.pipes';
79
87
  export * from './src/app/shared/audio/audio';
80
88
  export * from './src/app/shared/file/file.service';
81
89
  export * from './src/app/shared/image/image.service';
@@ -85,9 +93,10 @@ export * from './src/app/shared/services/memory-entity-service.class';
85
93
  export * from './src/app/shared/services/progress-bar.service';
86
94
  export * from './src/app/shared/services/translate-context.service';
87
95
  export * from './src/app/shared/services/job.utils';
88
- export * from './src/app/shared/services/storage/storage.service';
89
- export * from './src/app/shared/services/storage/storage.utils';
96
+ export * from './src/app/shared/storage/storage.service';
97
+ export * from './src/app/shared/storage/storage.utils';
90
98
  export * from './src/app/shared/validator/form-error-adapter.class';
99
+ export * from './src/app/shared/debug/debug-service.class';
91
100
  export * from './src/app/shared/types';
92
101
  export * from './src/app/shared/dates';
93
102
  export * from './src/app/shared/functions';
@@ -274,3 +283,4 @@ export * from './src/app/social/job/testing/job-progression.testing.service';
274
283
  export { MatAutocompleteConfigHolder } from './src/app/shared/material/autocomplete/material.autocomplete.config';
275
284
  export { MatAutocompleteFieldAddOptions } from './src/app/shared/material/autocomplete/material.autocomplete.config';
276
285
  export { MatAutocompleteFieldConfig } from './src/app/shared/material/autocomplete/material.autocomplete.config';
286
+ export { TableValidatorService } from "./src/app/core/table/testing/table-validator.service";
@@ -7,19 +7,19 @@ import { AccountValidatorService } from '../services/validator/account.validator
7
7
  import { AppForm } from '../form/form.class';
8
8
  import { FormFieldDefinition } from '../../shared/form/field.model';
9
9
  import { LocaleConfig } from '../services/model/settings.model';
10
- import { Router } from '@angular/router';
11
10
  import { CanLeave } from '../../shared/guard/component-dirty.guard';
12
11
  import { NetworkService } from '../services/network.service';
13
12
  import { MatTabGroup } from '@angular/material/tabs';
14
13
  import { ConfigService } from '../services/config.service';
15
14
  import { AppPropertiesTable } from '../form/properties/properties.table';
16
15
  import { UserTokenTable } from './token.table';
16
+ import { NavController } from '@ionic/angular';
17
17
  import * as i0 from "@angular/core";
18
18
  export declare class AccountPage extends AppForm<Account> implements OnInit, OnDestroy, CanLeave {
19
19
  formBuilder: UntypedFormBuilder;
20
20
  accountService: AccountService;
21
21
  network: NetworkService;
22
- protected router: Router;
22
+ protected navController: NavController;
23
23
  protected validatorService: AccountValidatorService;
24
24
  protected configService: ConfigService;
25
25
  protected cd: ChangeDetectorRef;
@@ -41,7 +41,7 @@ export declare class AccountPage extends AppForm<Account> implements OnInit, OnD
41
41
  accountReadOnly: boolean;
42
42
  readonly mobile: boolean;
43
43
  get valid(): boolean;
44
- constructor(injector: Injector, formBuilder: UntypedFormBuilder, accountService: AccountService, network: NetworkService, router: Router, validatorService: AccountValidatorService, configService: ConfigService, cd: ChangeDetectorRef, locales: any);
44
+ constructor(injector: Injector, formBuilder: UntypedFormBuilder, accountService: AccountService, network: NetworkService, navController: NavController, validatorService: AccountValidatorService, configService: ConfigService, cd: ChangeDetectorRef, locales: any);
45
45
  ngOnInit(): void;
46
46
  ngOnDestroy(): void;
47
47
  onLogin(account: Account): void;
@@ -26,6 +26,6 @@ import * as i23 from "./offline/update-offline-mode-card.module";
26
26
  export declare class CoreModule {
27
27
  static forRoot(): ModuleWithProviders<CoreModule>;
28
28
  static ɵfac: i0.ɵɵFactoryDeclaration<CoreModule, never>;
29
- static ɵmod: i0.ɵɵNgModuleDeclaration<CoreModule, [typeof i1.IsOnFieldModePipe, typeof i1.IsNotOnFieldModePipe, typeof i2.PersonToStringPipe, typeof i3.IsLoginAccountPipe, typeof i3.AccountToStringPipe, typeof i4.DepartmentToStringPipe], [typeof i5.SharedModule, typeof i6.RouterModule, typeof i7.HttpClientModule, typeof i8.CacheModule, typeof i9.IonicStorageModule, typeof i10.AppGraphQLModule, typeof i11.AppMenuModule, typeof i12.AppIconModule, typeof i13.AppAccountModule, typeof i14.AppRegisterModule, typeof i15.AppAuthModule, typeof i16.AppHomePageModule, typeof i17.AppAboutModalModule, typeof i18.AppSettingsPageModule, typeof i19.AppSelectPeerModule, typeof i20.AppFormModule, typeof i21.AppTableModule, typeof i22.AppInstallUpgradeCardModule, typeof i23.AppUpdateOfflineModeCardModule], [typeof i5.SharedModule, typeof i6.RouterModule, typeof i10.AppGraphQLModule, typeof i11.AppMenuModule, typeof i14.AppRegisterModule, typeof i15.AppAuthModule, typeof i16.AppHomePageModule, typeof i17.AppAboutModalModule, typeof i18.AppSettingsPageModule, typeof i12.AppIconModule, typeof i19.AppSelectPeerModule, typeof i20.AppFormModule, typeof i21.AppTableModule, typeof i22.AppInstallUpgradeCardModule, typeof i23.AppUpdateOfflineModeCardModule, typeof i1.IsOnFieldModePipe, typeof i1.IsNotOnFieldModePipe, typeof i2.PersonToStringPipe, typeof i3.IsLoginAccountPipe, typeof i3.AccountToStringPipe, typeof i4.DepartmentToStringPipe]>;
29
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CoreModule, [typeof i1.IsOnFieldPipe, typeof i1.IsOnDeskPipe, typeof i2.PersonToStringPipe, typeof i3.IsLoginAccountPipe, typeof i3.AccountToStringPipe, typeof i4.DepartmentToStringPipe], [typeof i5.SharedModule, typeof i6.RouterModule, typeof i7.HttpClientModule, typeof i8.CacheModule, typeof i9.IonicStorageModule, typeof i10.AppGraphQLModule, typeof i11.AppMenuModule, typeof i12.AppIconModule, typeof i13.AppAccountModule, typeof i14.AppRegisterModule, typeof i15.AppAuthModule, typeof i16.AppHomePageModule, typeof i17.AppAboutModalModule, typeof i18.AppSettingsPageModule, typeof i19.AppSelectPeerModule, typeof i20.AppFormModule, typeof i21.AppTableModule, typeof i22.AppInstallUpgradeCardModule, typeof i23.AppUpdateOfflineModeCardModule], [typeof i5.SharedModule, typeof i6.RouterModule, typeof i10.AppGraphQLModule, typeof i11.AppMenuModule, typeof i14.AppRegisterModule, typeof i15.AppAuthModule, typeof i16.AppHomePageModule, typeof i17.AppAboutModalModule, typeof i18.AppSettingsPageModule, typeof i12.AppIconModule, typeof i19.AppSelectPeerModule, typeof i20.AppFormModule, typeof i21.AppTableModule, typeof i22.AppInstallUpgradeCardModule, typeof i23.AppUpdateOfflineModeCardModule, typeof i1.IsOnFieldPipe, typeof i1.IsOnDeskPipe, typeof i2.PersonToStringPipe, typeof i3.IsLoginAccountPipe, typeof i3.AccountToStringPipe, typeof i4.DepartmentToStringPipe]>;
30
30
  static ɵinj: i0.ɵɵInjectorDeclaration<CoreModule>;
31
31
  }
@@ -1,7 +1,7 @@
1
1
  import { AfterViewInit, EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
2
  import { ActivatedRoute, Params, Router } from '@angular/router';
3
3
  import { MatTabChangeEvent, MatTabGroup } from '@angular/material/tabs';
4
- import { AlertController, IonContent, ToastController } from '@ionic/angular';
4
+ import { AlertController, IonContent, NavController, ToastController } from '@ionic/angular';
5
5
  import { TranslateService } from '@ngx-translate/core';
6
6
  import { BehaviorSubject, Subject, Subscription, TeardownLogic } from 'rxjs';
7
7
  import { AppTable } from '../../table/table.class';
@@ -48,6 +48,7 @@ export declare class AppTabEditorOptions {
48
48
  export declare abstract class AppEditor<T = any, ID = number, O = any> implements IAppEditor, OnInit, OnDestroy, AfterViewInit {
49
49
  protected route: ActivatedRoute;
50
50
  protected router: Router;
51
+ protected navController: NavController;
51
52
  protected alertCtrl: AlertController;
52
53
  protected translate: TranslateService;
53
54
  private _children;
@@ -111,7 +112,7 @@ export declare abstract class AppEditor<T = any, ID = number, O = any> implement
111
112
  get children(): IAppForm[];
112
113
  get empty(): boolean;
113
114
  abstract get isNewData(): boolean;
114
- protected constructor(route: ActivatedRoute, router: Router, alertCtrl: AlertController, translate: TranslateService);
115
+ protected constructor(route: ActivatedRoute, router: Router, navController: NavController, alertCtrl: AlertController, translate: TranslateService);
115
116
  ngOnInit(): void;
116
117
  ngAfterViewInit(): void;
117
118
  ngOnDestroy(): void;
@@ -205,6 +206,7 @@ export declare abstract class AppEditor<T = any, ID = number, O = any> implement
205
206
  export declare abstract class AppTabEditor<T = any, ID = number, O = any> extends AppEditor<T, ID, O> implements IAppTabEditor {
206
207
  protected route: ActivatedRoute;
207
208
  protected router: Router;
209
+ protected navController: NavController;
208
210
  protected alertCtrl: AlertController;
209
211
  protected translate: TranslateService;
210
212
  protected _selectedTabIndex: number;
@@ -217,7 +219,7 @@ export declare abstract class AppTabEditor<T = any, ID = number, O = any> extend
217
219
  readonly selectedTabIndexChange: EventEmitter<number>;
218
220
  tabGroup: MatTabGroup;
219
221
  protected constructor(route: ActivatedRoute, // Modal editor give 'null'
220
- router: Router, alertCtrl: AlertController, translate: TranslateService, options?: AppTabEditorOptions);
222
+ router: Router, navController: NavController, alertCtrl: AlertController, translate: TranslateService, options?: AppTabEditorOptions);
221
223
  ngOnInit(): void;
222
224
  ngOnDestroy(): void;
223
225
  setSelectedTabIndex(value: number, opts?: {
@@ -236,6 +238,6 @@ export declare abstract class AppTabEditor<T = any, ID = number, O = any> extend
236
238
  }): Promise<void>;
237
239
  protected abstract getFirstInvalidTabIndex(): number;
238
240
  protected saveDirtyChildren(): Promise<boolean>;
239
- static ɵfac: i0.ɵɵFactoryDeclaration<AppTabEditor<any, any, any>, [{ optional: true; }, null, null, null, { optional: true; }]>;
241
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppTabEditor<any, any, any>, [{ optional: true; }, null, null, null, null, { optional: true; }]>;
240
242
  static ɵdir: i0.ɵɵDirectiveDeclaration<AppTabEditor<any, any, any>, never, never, { "queryTabIndexParamName": "queryTabIndexParamName"; "selectedTabIndex": "selectedTabIndex"; }, { "selectedTabIndexChange": "selectedTabIndexChange"; }, never, never, false>;
241
243
  }
@@ -26,7 +26,6 @@ export declare class AppEntityEditorModalOptions extends AppTabEditorOptions {
26
26
  }
27
27
  export declare abstract class AppEntityEditorModal<T extends Entity<T, ID>, ID = number, O extends AppEntityEditorModalOptions = AppEntityEditorModalOptions> extends AppTabEditor<T, ID> implements OnInit, OnDestroy, AfterViewInit, IEntityEditorModalOptions<T, ID> {
28
28
  protected dataType: new () => T;
29
- private _usageMode;
30
29
  protected _logPrefix: any;
31
30
  protected _isNew: boolean;
32
31
  protected readonly dateFormat: DateFormatService;
@@ -46,6 +46,20 @@ export interface AppErrorWithDetails extends AppError {
46
46
  export declare abstract class AppEntityEditor<T extends Entity<T, ID>, S extends IEntityService<T, ID> = IEntityService<T, any>, ID = number> extends AppTabEditor<T, ID, EntityServiceLoadOptions> implements OnInit, OnDestroy, AfterViewInit, IAppEntityEditor {
47
47
  protected dataType: new () => T;
48
48
  protected dataService?: S;
49
+ data: T;
50
+ defaultBackHref: string;
51
+ historyIcon: {
52
+ icon?: string;
53
+ matIcon?: string;
54
+ };
55
+ $title: Subject<string>;
56
+ onUpdateView: EventEmitter<T>;
57
+ protected readonly dateFormat: DateFormatService;
58
+ protected readonly cd: ChangeDetectorRef;
59
+ protected readonly settings: LocalSettingsService;
60
+ protected readonly environment: Environment;
61
+ protected readonly routerOutlet: IonRouterOutlet;
62
+ protected errorTranslator: FormErrorTranslator;
49
63
  private _usageMode;
50
64
  private readonly _enableListenChanges;
51
65
  private readonly _listenIntervalInSeconds;
@@ -55,37 +69,19 @@ export declare abstract class AppEntityEditor<T extends Entity<T, ID>, S extends
55
69
  private readonly _autoUpdateRoute;
56
70
  private _autoOpenNextTab;
57
71
  private _listenChangesSubscription;
58
- protected readonly dateFormat: DateFormatService;
59
- protected readonly cd: ChangeDetectorRef;
60
- protected readonly settings: LocalSettingsService;
61
- protected readonly environment: Environment;
62
- protected readonly routerOutlet: IonRouterOutlet;
63
- protected errorTranslator: FormErrorTranslator;
64
- data: T;
65
- defaultBackHref: string;
66
- historyIcon: {
67
- icon?: string;
68
- matIcon?: string;
69
- };
70
- $title: Subject<string>;
71
- onUpdateView: EventEmitter<T>;
72
72
  get usageMode(): UsageMode;
73
73
  set usageMode(value: UsageMode);
74
74
  get isOnFieldMode(): boolean;
75
75
  get isNewData(): boolean;
76
76
  get service(): S;
77
+ get autoOpenNextTab(): boolean;
78
+ set autoOpenNextTab(value: boolean);
77
79
  protected get pathIdAttribute(): string;
78
80
  protected constructor(injector: Injector, dataType: new () => T, dataService?: S, options?: AppEditorOptions);
79
81
  ngOnInit(): void;
80
82
  ngAfterViewInit(): void;
81
83
  ngOnDestroy(): void;
82
84
  waitIdle(opts?: WaitForOptions): Promise<void>;
83
- /**
84
- * Load data from the snapshot route
85
- *
86
- * @protected
87
- */
88
- protected loadFromRoute(): Promise<void>;
89
85
  /**
90
86
  * Load data from id, using the dataService
91
87
  *
@@ -99,8 +95,9 @@ export declare abstract class AppEntityEditor<T extends Entity<T, ID>, S extends
99
95
  [key: string]: any;
100
96
  }): Promise<void>;
101
97
  canUserWrite(data: T, opts?: any): boolean;
102
- startListenRemoteChanges(): void;
103
- stopListenRemoteChanges(): void;
98
+ startListenChanges(): void;
99
+ stopListenChanges(): void;
100
+ ready(opts?: WaitForOptions): Promise<void>;
104
101
  updateView(data: T | null, opts?: {
105
102
  emitEvent?: boolean;
106
103
  openTabIndex?: number;
@@ -128,6 +125,7 @@ export declare abstract class AppEntityEditor<T extends Entity<T, ID>, S extends
128
125
  /**
129
126
  * Save the editor, by calling the dataService.save().
130
127
  * Ensure that editor if valid. If not, display an error
128
+ *
131
129
  * @param event
132
130
  * @param opts
133
131
  */
@@ -149,13 +147,15 @@ export declare abstract class AppEntityEditor<T extends Entity<T, ID>, S extends
149
147
  emitEvent?: boolean;
150
148
  detailsCssClass?: string;
151
149
  }): void;
152
- protected abstract registerForms(): any;
153
- protected abstract computeTitle(data: T): Promise<string>;
154
- protected abstract setValue(data: T): Promise<void> | void;
155
- protected abstract get form(): FormGroup;
156
- protected abstract getFirstInvalidTabIndex(): number;
150
+ /**
151
+ * Load data from the snapshot route
152
+ *
153
+ * @protected
154
+ */
155
+ protected loadFromRoute(): Promise<void>;
157
156
  /**
158
157
  * Return undefined to keep same tab
158
+ *
159
159
  * @protected
160
160
  */
161
161
  protected computeNextTabIndex(): number | undefined;
@@ -183,17 +183,23 @@ export declare abstract class AppEntityEditor<T extends Entity<T, ID>, S extends
183
183
  protected getParentPageUrl(withQueryParams?: boolean): string;
184
184
  protected listenChanges(id: ID, opts?: any): Observable<T | undefined>;
185
185
  protected markForCheck(): void;
186
- /**
187
- * Open the first tab that is invalid
188
- */
189
- private openFirstInvalidTab;
190
186
  /**
191
187
  * Update the route, without reloading the component
188
+ *
192
189
  * @param data
193
190
  * @param queryParams
194
191
  * @protected
195
192
  */
196
193
  protected updateRoute(data: T, queryParams?: any): Promise<boolean>;
194
+ /**
195
+ * Open the first tab that is invalid
196
+ */
197
+ private openFirstInvalidTab;
198
+ protected abstract registerForms(): any;
199
+ protected abstract computeTitle(data: T): Promise<string>;
200
+ protected abstract setValue(data: T): Promise<void> | void;
201
+ protected abstract get form(): FormGroup;
202
+ protected abstract getFirstInvalidTabIndex(): number;
197
203
  static ɵfac: i0.ɵɵFactoryDeclaration<AppEntityEditor<any, any, any>, never>;
198
204
  static ɵdir: i0.ɵɵDirectiveDeclaration<AppEntityEditor<any, any, any>, never, never, {}, {}, never, never, false>;
199
205
  }
@@ -10,7 +10,7 @@ import { MatAutocompleteConfigHolder, MatAutocompleteFieldAddOptions, MatAutocom
10
10
  import * as i0 from "@angular/core";
11
11
  export declare class AppForm<T> implements IAppForm, OnInit, OnDestroy, IFormControlPathTranslator {
12
12
  private _subscription;
13
- private _form;
13
+ protected _form: UntypedFormGroup;
14
14
  protected _enable: boolean;
15
15
  protected errorTranslator: FormErrorTranslator;
16
16
  protected i18nFieldPrefix: string;
@@ -29,6 +29,7 @@ export declare class AppPropertiesForm<T = Property> extends AppForm<T[]> implem
29
29
  chipColor: ThemePalette | PredefinedColors;
30
30
  set value(data: T[]);
31
31
  get value(): T[];
32
+ get length(): number;
32
33
  get fieldForms(): UntypedFormGroup[];
33
34
  constructor(injector: Injector, formBuilder: UntypedFormBuilder, dateAdapter: DateAdapter<Moment>, settings: LocalSettingsService, cd: ChangeDetectorRef, validator: PropertyValidator, formGroupDir: FormGroupDirective);
34
35
  ngOnInit(): void;
@@ -1,10 +1,14 @@
1
- import { PopoverController } from '@ionic/angular';
1
+ import { PopoverController, ToastController } from '@ionic/angular';
2
2
  import { TextPopoverOptions } from '../text-popover.component';
3
+ import { TranslateService } from '@ngx-translate/core';
3
4
  import * as i0 from "@angular/core";
4
5
  export declare class TextPopoverTestingPage {
5
6
  private popoverController;
6
- constructor(popoverController: PopoverController);
7
+ private toastController;
8
+ private translate;
9
+ constructor(popoverController: PopoverController, toastController: ToastController, translate: TranslateService);
7
10
  showPopover(event: Event, opts?: Partial<TextPopoverOptions>): Promise<void>;
11
+ protected showSharePopoverWithButtons(event: UIEvent, opts?: Partial<TextPopoverOptions>): Promise<void>;
8
12
  static ɵfac: i0.ɵɵFactoryDeclaration<TextPopoverTestingPage, never>;
9
13
  static ɵcmp: i0.ɵɵComponentDeclaration<TextPopoverTestingPage, "text-popover-testing", never, {}, {}, never, never, false>;
10
14
  }
@@ -4,29 +4,51 @@ import { Subscription } from 'rxjs';
4
4
  import { TranslateService } from '@ngx-translate/core';
5
5
  import { TextForm } from './text-form.component';
6
6
  import { ValidatorFn } from '@angular/forms';
7
- import { OverlayEventDetail } from '@ionic/core';
7
+ import { Color, OverlayEventDetail } from '@ionic/core';
8
8
  import * as i0 from "@angular/core";
9
9
  export interface TextPopoverOptions {
10
+ title?: string;
10
11
  text?: string;
11
12
  placeholder?: string;
12
13
  editing?: boolean;
13
14
  multiline?: boolean;
15
+ autoHeight?: boolean;
14
16
  maxLength?: number;
15
17
  autofocus?: boolean;
16
18
  validator?: ValidatorFn;
19
+ showHeader?: boolean;
20
+ headerColor?: Color;
21
+ headerButtons?: TextPopoverButton[];
22
+ }
23
+ export interface TextPopoverButton {
24
+ text?: string;
25
+ icon?: string;
26
+ color?: Color;
27
+ fill?: 'outline' | 'clear' | 'solid';
28
+ side?: 'start' | 'end';
29
+ role?: 'cancel' | string;
30
+ cssClass?: string | string[];
31
+ handler?: (value: string) => boolean | void | Promise<boolean | void>;
17
32
  }
18
33
  export declare class TextPopover implements OnInit, AfterViewInit, OnDestroy, TextPopoverOptions {
19
34
  protected popoverController: PopoverController;
20
35
  protected translate: TranslateService;
21
36
  static show(ctrl: PopoverController, event: Event, opts: TextPopoverOptions, popoverOpts?: PopoverOptions): Promise<OverlayEventDetail>;
22
37
  form: TextForm;
38
+ showHeader: boolean;
39
+ headerColor: Color;
40
+ showFooter: boolean;
41
+ title: string;
23
42
  text: string;
24
43
  placeholder: string;
25
44
  editing: boolean;
26
45
  multiline: boolean;
46
+ autoHeight: boolean;
27
47
  maxLength: number;
28
48
  autofocus: boolean;
29
49
  validator: ValidatorFn;
50
+ headerButtons: TextPopoverButton[];
51
+ mobile: boolean;
30
52
  subscription: Subscription;
31
53
  get disabled(): boolean;
32
54
  get enabled(): boolean;
@@ -40,6 +62,9 @@ export declare class TextPopover implements OnInit, AfterViewInit, OnDestroy, Te
40
62
  enable(): void;
41
63
  cancel(): void;
42
64
  ngOnDestroy(): void;
65
+ protected clickButton(button: TextPopoverButton): Promise<boolean>;
66
+ protected isStartSide(button: TextPopoverButton): boolean;
67
+ protected isEndSide(button: TextPopoverButton): boolean;
43
68
  static ɵfac: i0.ɵɵFactoryDeclaration<TextPopover, never>;
44
- static ɵcmp: i0.ɵɵComponentDeclaration<TextPopover, "app-text-popover", never, { "text": "text"; "placeholder": "placeholder"; "editing": "editing"; "multiline": "multiline"; "maxLength": "maxLength"; "autofocus": "autofocus"; "validator": "validator"; }, {}, never, never, false>;
69
+ static ɵcmp: i0.ɵɵComponentDeclaration<TextPopover, "app-text-popover", never, { "showHeader": "showHeader"; "headerColor": "headerColor"; "showFooter": "showFooter"; "title": "title"; "text": "text"; "placeholder": "placeholder"; "editing": "editing"; "multiline": "multiline"; "autoHeight": "autoHeight"; "maxLength": "maxLength"; "autofocus": "autofocus"; "validator": "validator"; "headerButtons": "headerButtons"; "mobile": "mobile"; }, {}, never, never, false>;
45
70
  }
@@ -14,7 +14,7 @@ import { Cache } from '@apollo/client/cache/core/types/Cache';
14
14
  import { CryptoService } from '../services/crypto.service';
15
15
  import { PropertiesMap } from '../../shared/types';
16
16
  import { StartableService } from '../../shared/services/startable-service.class';
17
- import { StorageService } from '../../shared/services/storage/storage.service';
17
+ import { StorageService } from '../../shared/storage/storage.service';
18
18
  import { DocumentNode } from 'graphql';
19
19
  import * as i0 from "@angular/core";
20
20
  export interface WatchQueryOptions<V> {
@@ -2,7 +2,7 @@ import { ApolloClient, ApolloLink, Operation } from '@apollo/client/core';
2
2
  import { Observable } from 'rxjs';
3
3
  import { PersistentStorage } from 'apollo3-cache-persist';
4
4
  import { ConnectionType } from '../services/network.types';
5
- import { StorageService } from '../../shared/services/storage/storage.service';
5
+ import { StorageService } from '../../shared/storage/storage.service';
6
6
  export declare const NativeWebSocket: any;
7
7
  export declare type EmptyObject = {
8
8
  [key: string]: any;
@@ -1,6 +1,5 @@
1
1
  import { ChangeDetectorRef, InjectionToken, OnInit } from '@angular/core';
2
- import { AlertController, IonSplitPane, MenuController, ModalController } from '@ionic/angular';
3
- import { Router } from '@angular/router';
2
+ import { AlertController, IonSplitPane, MenuController, ModalController, NavController } from '@ionic/angular';
4
3
  import { Account } from '../services/model/account.model';
5
4
  import { AccountService } from '../services/account.service';
6
5
  import { TranslateService } from '@ngx-translate/core';
@@ -15,7 +14,7 @@ export declare const APP_MENU_OPTIONS: InjectionToken<MenuOptions>;
15
14
  export declare class MenuComponent implements OnInit {
16
15
  protected platformService: PlatformService;
17
16
  protected accountService: AccountService;
18
- protected router: Router;
17
+ protected navController: NavController;
19
18
  protected menu: MenuController;
20
19
  protected modalCtrl: ModalController;
21
20
  protected alertController: AlertController;
@@ -43,7 +42,7 @@ export declare class MenuComponent implements OnInit {
43
42
  appName: string;
44
43
  appVersion: string;
45
44
  splitPane: IonSplitPane;
46
- constructor(platformService: PlatformService, accountService: AccountService, router: Router, menu: MenuController, modalCtrl: ModalController, alertController: AlertController, translate: TranslateService, configService: ConfigService, cd: ChangeDetectorRef, menuService: MenuService, environment: any, options: MenuOptions, items: MenuItem[]);
45
+ constructor(platformService: PlatformService, accountService: AccountService, navController: NavController, menu: MenuController, modalCtrl: ModalController, alertController: AlertController, translate: TranslateService, configService: ConfigService, cd: ChangeDetectorRef, menuService: MenuService, environment: any, options: MenuOptions, items: MenuItem[]);
47
46
  ngOnInit(): Promise<void>;
48
47
  onLogin(account: Account): Promise<void>;
49
48
  onLogout(skipRedirect?: boolean): Promise<void>;
@@ -5,6 +5,7 @@ import { Observable, Subject } from 'rxjs';
5
5
  import { HttpClient } from '@angular/common/http';
6
6
  import { TextPopoverOptions } from '../form/text-popover/text-popover.component';
7
7
  import { TranslateService } from '@ngx-translate/core';
8
+ import { ILoggingService } from '../../shared/logging/logger.model';
8
9
  import * as i0 from "@angular/core";
9
10
  export interface ISelectPeerModalOptions {
10
11
  canCancel: boolean;
@@ -19,7 +20,9 @@ export declare class SelectPeerModal implements OnDestroy, ISelectPeerModalOptio
19
20
  private http;
20
21
  private cd;
21
22
  protected environment: any;
23
+ protected loggingService?: ILoggingService;
22
24
  private _subscription;
25
+ private readonly _logger;
23
26
  loading: boolean;
24
27
  mobile: boolean;
25
28
  $peers: Subject<Peer[]>;
@@ -28,7 +31,7 @@ export declare class SelectPeerModal implements OnDestroy, ISelectPeerModalOptio
28
31
  allowSelectDownPeer: boolean;
29
32
  onRefresh: EventEmitter<Event>;
30
33
  showSetManuallyButton: boolean;
31
- constructor(modalCtrl: ModalController, popoverController: PopoverController, translate: TranslateService, http: HttpClient, cd: ChangeDetectorRef, environment: any);
34
+ constructor(modalCtrl: ModalController, popoverController: PopoverController, translate: TranslateService, http: HttpClient, cd: ChangeDetectorRef, environment: any, loggingService?: ILoggingService);
32
35
  set peers(peers: Observable<Peer[]>);
33
36
  cancel(): void;
34
37
  ngOnDestroy(): void;
@@ -45,6 +48,6 @@ export declare class SelectPeerModal implements OnDestroy, ISelectPeerModalOptio
45
48
  protected refreshPeer(peer: Peer): Promise<Peer>;
46
49
  protected openPeerUrlPopover(event: Event, opts?: Partial<TextPopoverOptions>): Promise<any>;
47
50
  protected markForCheck(): void;
48
- static ɵfac: i0.ɵɵFactoryDeclaration<SelectPeerModal, never>;
51
+ static ɵfac: i0.ɵɵFactoryDeclaration<SelectPeerModal, [null, null, null, null, null, null, { optional: true; }]>;
49
52
  static ɵcmp: i0.ɵɵComponentDeclaration<SelectPeerModal, "select-peer-modal", never, { "canCancel": "canCancel"; "allowSelectDownPeer": "allowSelectDownPeer"; "onRefresh": "onRefresh"; "showSetManuallyButton": "showSetManuallyButton"; }, {}, never, never, false>;
50
53
  }
@@ -99,6 +99,11 @@ export declare class AccountService extends BaseGraphqlService<Account, any, num
99
99
  */
100
100
  isUsageMode(mode: UsageMode): boolean;
101
101
  isOnlyGuest(): boolean;
102
+ /**
103
+ *
104
+ * @param recorderDepartment
105
+ * @deprecated use ProgramRefService.canUserWriteDataForDepartment() instead
106
+ */
102
107
  canUserWriteDataForDepartment(recorderDepartment: Referential | any): boolean;
103
108
  register(data: RegisterData): Promise<Account>;
104
109
  authenticate(data?: AuthData): Promise<void>;
@@ -98,6 +98,7 @@ export declare abstract class BaseEntityService<T extends Entity<T, ID>, F exten
98
98
  data: any;
99
99
  }>) => InternalRefetchQueriesInclude) | InternalRefetchQueriesInclude;
100
100
  protected getLoadQueries(): DocumentNode[];
101
+ protected getLoadQueryNames(): string[];
101
102
  static ɵfac: i0.ɵɵFactoryDeclaration<BaseEntityService<any, any, any, any, any, any, any, any>, never>;
102
103
  static ɵdir: i0.ɵɵDirectiveDeclaration<BaseEntityService<any, any, any, any, any, any, any, any>, never, never, {}, {}, never, never, false>;
103
104
  }
@@ -43,6 +43,7 @@ export declare const ServerErrorCodes: {
43
43
  DATA_LOCKED: number;
44
44
  BAD_UPDATE_DATE: number;
45
45
  DENY_DELETION: number;
46
+ DATA_NOT_UNIQUE: number;
46
47
  INVALID_EMAIL_CONFIRMATION: number;
47
48
  INVALID_QUERY_VARIABLES: number;
48
49
  ACCOUNT_ALREADY_EXISTS: number;
@@ -43,11 +43,13 @@ export declare class LocalSettingsService extends StartableService<LocalSettings
43
43
  get pageHistory(): HistoryPageReference[];
44
44
  constructor(translate: TranslateService, platform: Platform, storage: Storage, environment: Environment, defaultSettings: LocalSettings, options: LocalSettingsOptions);
45
45
  ngOnStart(): Promise<LocalSettings>;
46
- protected ngOnStop(): Promise<void>;
47
46
  isUsageMode(mode: UsageMode): boolean;
48
47
  isOnFieldMode(value?: UsageMode): boolean;
49
48
  restoreLocally(): Promise<LocalSettings | undefined>;
50
- setProperty<T = string>(keyOrDef: string | FormFieldDefinition, value: T): void;
49
+ setProperty<T = string>(keyOrDef: string | FormFieldDefinition, value: T, opts?: {
50
+ emitEvent?: boolean;
51
+ immediate?: boolean;
52
+ }): void;
51
53
  getProperty(keyOrDef: string | FormFieldDefinition, defaultValue?: any): any;
52
54
  getPropertyAsBoolean(definition: FormFieldDefinition, defaultValue?: boolean): boolean;
53
55
  getPropertyAsInt(definition: FormFieldDefinition, defaultValue?: number): number;
@@ -79,6 +81,7 @@ export declare class LocalSettingsService extends StartableService<LocalSettings
79
81
  emitEvent?: boolean;
80
82
  }, pageHistory?: HistoryPageReference[]): any;
81
83
  clearPageHistory(): Promise<void>;
84
+ protected ngOnStop(): Promise<void>;
82
85
  private resetData;
83
86
  private persistLocally;
84
87
  private fillPageHistoryDefaults;
@@ -83,4 +83,7 @@ export declare abstract class EntityUtils {
83
83
  static isRemote(entity: IEntity<any, any> | Entity<any, any>): boolean;
84
84
  static isLocalId(id: number): boolean;
85
85
  static isRemoteId(id: number): boolean;
86
+ static getId<T extends IEntity<T, ID> = IEntity<any, any>, ID = any>(entity: T): ID;
87
+ static collectById<T extends IEntity<T, ID>, ID = any>(entities: T[]): ID[];
88
+ static arrayDistinctFilterFn<E extends IEntity<any, any>>(item: E, index: number, values: E[]): boolean;
86
89
  }
@@ -37,10 +37,15 @@ export declare abstract class BaseReferential<T extends BaseReferential<T, ID, A
37
37
  equals(other: T): boolean;
38
38
  }
39
39
  export declare class Referential<T extends Referential<T, any> = Referential<any>, ID = number> extends BaseReferential<T, ID> {
40
+ properties?: {
41
+ [key: string]: any;
42
+ };
40
43
  static fromObject: (source: any, opts?: any) => Referential;
44
+ fromObject(source: any, opts?: any): void;
45
+ asObject(opts?: ReferentialAsObjectOptions): any;
41
46
  }
42
47
  export declare class ReferentialUtils {
43
- static fromObject(source: any): Referential;
48
+ static fromObject(source: any, opts?: any): Referential;
44
49
  static isNotEmpty<T extends IReferentialRef<T>>(obj: T | any): boolean;
45
50
  static isEmpty<T extends IReferentialRef<T>>(obj: T | any): boolean;
46
51
  static equals<T extends IReferentialRef<T>>(o1: T | any, o2: T | any): boolean;
@@ -15,6 +15,7 @@ import { OverlayEventDetail } from '@ionic/core';
15
15
  import { AppManifest, NodeInfo } from './network.utils';
16
16
  import { StartableObservableService } from '../../shared/services/startable-observable-service.class';
17
17
  import { ConnectionType, NetworkEventType } from './network.types';
18
+ import { ILoggingService } from '../../shared/logging/logger.model';
18
19
  import * as i0 from "@angular/core";
19
20
  export declare const PEER_URL_REGEXP: RegExp;
20
21
  export declare class NetworkService extends StartableObservableService<Peer, Peer> {
@@ -27,6 +28,7 @@ export declare class NetworkService extends StartableObservableService<Peer, Pee
27
28
  private cache;
28
29
  private http;
29
30
  protected environment: any;
31
+ private loggingService;
30
32
  private network;
31
33
  private translate;
32
34
  private toastController;
@@ -34,6 +36,7 @@ export declare class NetworkService extends StartableObservableService<Peer, Pee
34
36
  onNetworkStatusChanges: BehaviorSubject<ConnectionType>;
35
37
  onResetNetworkCache: EventEmitter<any>;
36
38
  private readonly _mobile;
39
+ private readonly _logger;
37
40
  private _timerSubscription;
38
41
  private readonly _timerRefreshPeriod;
39
42
  private readonly _timerRefreshCondition;
@@ -45,7 +48,7 @@ export declare class NetworkService extends StartableObservableService<Peer, Pee
45
48
  get connectionType(): ConnectionType;
46
49
  get peer(): Peer;
47
50
  set peer(peer: Peer);
48
- constructor(_document: any, platform: Platform, modalCtrl: ModalController, cryptoService: CryptoService, storage: Storage, settings: LocalSettingsService, cache: CacheService, http: HttpClient, environment: any, network: Network, translate: TranslateService, toastController: ToastController);
51
+ constructor(_document: any, platform: Platform, modalCtrl: ModalController, cryptoService: CryptoService, storage: Storage, settings: LocalSettingsService, cache: CacheService, http: HttpClient, environment: any, loggingService: ILoggingService, network: Network, translate: TranslateService, toastController: ToastController);
49
52
  /**
50
53
  * Register to network event
51
54
  *
@@ -141,6 +144,6 @@ export declare class NetworkService extends StartableObservableService<Peer, Pee
141
144
  protected showToast<T = any>(opts: ShowToastOptions): Promise<OverlayEventDetail<T>>;
142
145
  protected addListener<T = any>(name: NetworkEventType, callback: (data?: T) => Promise<void>): Subscription;
143
146
  protected emit<T = any>(name: NetworkEventType, data?: T): Promise<void[]>;
144
- static ɵfac: i0.ɵɵFactoryDeclaration<NetworkService, [null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }]>;
147
+ static ɵfac: i0.ɵɵFactoryDeclaration<NetworkService, [null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }, { optional: true; }, { optional: true; }]>;
145
148
  static ɵprov: i0.ɵɵInjectableDeclaration<NetworkService>;
146
149
  }