@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
@@ -22,11 +22,10 @@ export interface AppManifest {
22
22
  display?: string;
23
23
  }
24
24
  export declare class NetworkUtils {
25
- static getNodeInfo: typeof getNodeInfo;
25
+ static getNodeInfo(http: HttpClient, peer: string | Peer, opts?: {
26
+ headers?: HttpHeaders | {
27
+ [header: string]: string | string[];
28
+ };
29
+ responseType?: 'json';
30
+ }): Promise<NodeInfo>;
26
31
  }
27
- export declare function getNodeInfo(http: HttpClient, peer: string | Peer, opts?: {
28
- headers?: HttpHeaders | {
29
- [header: string]: string | string[];
30
- };
31
- responseType?: 'json';
32
- }): Promise<NodeInfo>;
@@ -1,15 +1,15 @@
1
1
  import { PipeTransform } from '@angular/core';
2
2
  import { UsageMode } from '../model/settings.model';
3
3
  import * as i0 from "@angular/core";
4
- export declare class IsOnFieldModePipe implements PipeTransform {
4
+ export declare class IsOnFieldPipe implements PipeTransform {
5
5
  transform(value: UsageMode): boolean;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<IsOnFieldModePipe, never>;
7
- static ɵpipe: i0.ɵɵPipeDeclaration<IsOnFieldModePipe, "isOnField", false>;
8
- static ɵprov: i0.ɵɵInjectableDeclaration<IsOnFieldModePipe>;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<IsOnFieldPipe, never>;
7
+ static ɵpipe: i0.ɵɵPipeDeclaration<IsOnFieldPipe, "isOnField", false>;
8
+ static ɵprov: i0.ɵɵInjectableDeclaration<IsOnFieldPipe>;
9
9
  }
10
- export declare class IsNotOnFieldModePipe implements PipeTransform {
10
+ export declare class IsOnDeskPipe implements PipeTransform {
11
11
  transform(value: UsageMode): boolean;
12
- static ɵfac: i0.ɵɵFactoryDeclaration<IsNotOnFieldModePipe, never>;
13
- static ɵpipe: i0.ɵɵPipeDeclaration<IsNotOnFieldModePipe, "isNotOnField", false>;
14
- static ɵprov: i0.ɵɵInjectableDeclaration<IsNotOnFieldModePipe>;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<IsOnDeskPipe, never>;
13
+ static ɵpipe: i0.ɵɵPipeDeclaration<IsOnDeskPipe, "isOnDesk", false>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<IsOnDeskPipe>;
15
15
  }
@@ -14,12 +14,13 @@ import { ConfigService } from './config.service';
14
14
  import { MomentDateAdapter } from '@angular/material-moment-adapter';
15
15
  import { Downloader, DownloadRequest } from '@ionic-native/downloader/ngx';
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 { OpenOptions } from '@capacitor/browser';
19
+ import { ILoggingService } from '../../shared/logging/logger.model';
19
20
  import * as i0 from "@angular/core";
20
21
  export declare const AndroidOsEnvironment: Readonly<{
21
- DIRECTORY_DOWNLOADS: string;
22
- DIRECTORY_DOWNLOADS_OLD: string;
22
+ DIRECTORY_DOWNLOADS: "Download";
23
+ DIRECTORY_DOWNLOADS_OLD: "Downloads";
23
24
  }>;
24
25
  export declare class PlatformService extends StartableService {
25
26
  private ionicPlatform;
@@ -36,15 +37,17 @@ export declare class PlatformService extends StartableService {
36
37
  private cache;
37
38
  private audioProvider;
38
39
  protected environment: any;
40
+ private loggingService;
39
41
  private downloader;
42
+ private _logger;
40
43
  private _mobile;
41
44
  private _cordova;
42
45
  private _capacitor;
43
46
  private _android;
44
47
  private _ios;
48
+ constructor(ionicPlatform: Platform, cdkPlatform: CdkPlatform, toastController: ToastController, translate: TranslateService, dateAdapter: MomentDateAdapter, storageService: StorageService, entitiesStorage: EntitiesStorage, settings: LocalSettingsService, networkService: NetworkService, accountService: AccountService, configService: ConfigService, cache: CacheService, audioProvider: AudioProvider, environment: any, loggingService: ILoggingService, downloader: Downloader);
45
49
  private _downloadingJobs;
46
50
  private checkAppVersionTimer;
47
- constructor(ionicPlatform: Platform, cdkPlatform: CdkPlatform, toastController: ToastController, translate: TranslateService, dateAdapter: MomentDateAdapter, storageService: StorageService, entitiesStorage: EntitiesStorage, settings: LocalSettingsService, networkService: NetworkService, accountService: AccountService, configService: ConfigService, cache: CacheService, audioProvider: AudioProvider, environment: any, downloader: Downloader);
48
51
  is(platformName: Platforms): boolean;
49
52
  get mobile(): boolean;
50
53
  /**
@@ -59,6 +62,7 @@ export declare class PlatformService extends StartableService {
59
62
  isCordova(): boolean;
60
63
  isAndroidCordova(): boolean;
61
64
  isIOSCordova(): boolean;
65
+ isIOS(): boolean;
62
66
  /**
63
67
  * Is a native App (and NOT a mobile web)
64
68
  */
@@ -87,6 +91,6 @@ export declare class PlatformService extends StartableService {
87
91
  }): Promise<void>;
88
92
  protected showToast(opts: ShowToastOptions): Promise<HTMLIonToastElement>;
89
93
  protected onStartupError(err: any): Promise<void>;
90
- static ɵfac: i0.ɵɵFactoryDeclaration<PlatformService, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }]>;
94
+ static ɵfac: i0.ɵɵFactoryDeclaration<PlatformService, [null, null, null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }, { optional: true; }]>;
91
95
  static ɵprov: i0.ɵɵInjectableDeclaration<PlatformService>;
92
96
  }
@@ -7,7 +7,7 @@ import { EntityStorageLoadOptions, EntityStore, EntityStoreTypePolicy } from './
7
7
  import { IProgressBarService } from '../../../shared/services/progress-bar.service';
8
8
  import { Environment } from '../../../../environments/environment.class';
9
9
  import { StartableService } from '../../../shared/services/startable-service.class';
10
- import { IStorage } from '../../../shared/services/storage/storage.utils';
10
+ import { IStorage } from '../../../shared/storage/storage.utils';
11
11
  import * as i0 from "@angular/core";
12
12
  export interface EntitiesStorageTypePolicies {
13
13
  [__typename: string]: EntityStoreTypePolicy;
@@ -1,7 +1,7 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { Entity, IEntity } from '../model/entity.model';
3
3
  import { LoadResult } from '../../../shared/services/entity-service.class';
4
- import { IStorage } from '../../../shared/services/storage/storage.utils';
4
+ import { IStorage } from '../../../shared/storage/storage.utils';
5
5
  export declare const ENTITIES_STORAGE_KEY_PREFIX = "entities";
6
6
  export declare type EntityStoreTypePolicyMode = 'default' | 'by-id';
7
7
  export declare interface EntityStoreTypePolicy<T extends Entity<T, any> = Entity<any, any>, K = keyof T> {
@@ -1,4 +1,4 @@
1
- import { ChangeDetectorRef, Injector, OnDestroy, OnInit } from '@angular/core';
1
+ import { ChangeDetectorRef, InjectionToken, Injector, OnDestroy, OnInit } from '@angular/core';
2
2
  import { AccountService } from '../services/account.service';
3
3
  import { LocaleConfig, LocalSettings, UsageMode } from '../services/model/settings.model';
4
4
  import { UntypedFormArray, UntypedFormBuilder } from '@angular/forms';
@@ -10,15 +10,16 @@ import { PlatformService } from '../services/platform.service';
10
10
  import { NetworkService } from '../services/network.service';
11
11
  import { LocalSettingsService } from '../services/local-settings.service';
12
12
  import { FormFieldDefinition, FormFieldDefinitionMap } from '../../shared/form/field.model';
13
- import { AlertController } from '@ionic/angular';
13
+ import { AlertController, NavController } from '@ionic/angular';
14
14
  import { Property } from '../../shared/types';
15
- import { Router } from '@angular/router';
16
15
  import { CanLeave } from '../../shared/guard/component-dirty.guard';
17
16
  import { ISelectPeerModalOptions } from '../peer/select-peer.modal';
17
+ import { MenuItem } from '../menu/menu.model';
18
18
  import * as i0 from "@angular/core";
19
+ export declare const APP_SETTINGS_MENU_ITEMS: InjectionToken<MenuItem[]>;
19
20
  export declare class SettingsPage extends AppForm<LocalSettings> implements OnInit, OnDestroy, CanLeave {
20
21
  protected platform: PlatformService;
21
- protected router: Router;
22
+ protected navController: NavController;
22
23
  protected validatorService: LocalSettingsValidatorService;
23
24
  protected alertCtrl: AlertController;
24
25
  protected translate: TranslateService;
@@ -32,6 +33,7 @@ export declare class SettingsPage extends AppForm<LocalSettings> implements OnIn
32
33
  mobile: boolean;
33
34
  saving: boolean;
34
35
  usageModes: UsageMode[];
36
+ menuItems: MenuItem[];
35
37
  propertyDefinitions: FormFieldDefinition[];
36
38
  propertyDefinitionsByKey: FormFieldDefinitionMap;
37
39
  propertyDefinitionsByIndex: {
@@ -42,7 +44,7 @@ export declare class SettingsPage extends AppForm<LocalSettings> implements OnIn
42
44
  get accountInheritance(): boolean;
43
45
  get isLogin(): boolean;
44
46
  get propertiesForm(): UntypedFormArray;
45
- constructor(injector: Injector, platform: PlatformService, router: Router, validatorService: LocalSettingsValidatorService, alertCtrl: AlertController, translate: TranslateService, formBuilder: UntypedFormBuilder, accountService: AccountService, settings: LocalSettingsService, cd: ChangeDetectorRef, network: NetworkService, locales: LocaleConfig[]);
47
+ constructor(injector: Injector, platform: PlatformService, navController: NavController, validatorService: LocalSettingsValidatorService, alertCtrl: AlertController, translate: TranslateService, formBuilder: UntypedFormBuilder, accountService: AccountService, settings: LocalSettingsService, cd: ChangeDetectorRef, network: NetworkService, locales: LocaleConfig[], menuItems?: MenuItem[]);
46
48
  ngOnInit(): Promise<void>;
47
49
  getPropertyDefinition(index: number): FormFieldDefinition;
48
50
  updatePropertyDefinition(index: number): FormFieldDefinition;
@@ -57,9 +59,10 @@ export declare class SettingsPage extends AppForm<LocalSettings> implements OnIn
57
59
  cancel(event?: Event): Promise<void>;
58
60
  close(event?: Event): Promise<boolean>;
59
61
  clearCache(event?: Event): Promise<void>;
62
+ executeAction(event: Event, item: MenuItem): Promise<void>;
60
63
  protected getValue(): Promise<LocalSettings>;
61
64
  protected getJsonValueToSave(): Promise<any>;
62
65
  protected markForCheck(): void;
63
- static ɵfac: i0.ɵɵFactoryDeclaration<SettingsPage, never>;
66
+ static ɵfac: i0.ɵɵFactoryDeclaration<SettingsPage, [null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }]>;
64
67
  static ɵcmp: i0.ɵɵComponentDeclaration<SettingsPage, "page-settings", never, {}, {}, never, never, false>;
65
68
  }
@@ -10,6 +10,7 @@ export declare class ActionsColumnComponent implements OnInit, OnDestroy {
10
10
  matMenuTrigger: MatMenuTrigger;
11
11
  stickyEnd: boolean;
12
12
  canCancel: boolean;
13
+ canConfirm: boolean;
13
14
  canDelete: boolean;
14
15
  canBackward: boolean;
15
16
  canForward: boolean;
@@ -23,6 +24,10 @@ export declare class ActionsColumnComponent implements OnInit, OnDestroy {
23
24
  event: Event;
24
25
  row: TableElement<any>;
25
26
  }>;
27
+ confirmEditCreateClick: EventEmitter<{
28
+ event: Event;
29
+ row: TableElement<any>;
30
+ }>;
26
31
  confirmAndAddClick: EventEmitter<{
27
32
  event: Event;
28
33
  row: TableElement<any>;
@@ -39,5 +44,5 @@ export declare class ActionsColumnComponent implements OnInit, OnDestroy {
39
44
  ngOnInit(): void;
40
45
  ngOnDestroy(): void;
41
46
  static ɵfac: i0.ɵɵFactoryDeclaration<ActionsColumnComponent, never>;
42
- static ɵcmp: i0.ɵɵComponentDeclaration<ActionsColumnComponent, "app-actions-column", never, { "stickyEnd": "stickyEnd"; "canCancel": "canCancel"; "canDelete": "canDelete"; "canBackward": "canBackward"; "canForward": "canForward"; "canConfirmAndAdd": "canConfirmAndAdd"; "dirtyIcon": "dirtyIcon"; "optionsTitle": "optionsTitle"; "classList": "class"; "cellTemplate": "cellTemplate"; }, { "optionsClick": "optionsClick"; "cancelOrDeleteClick": "cancelOrDeleteClick"; "confirmAndAddClick": "confirmAndAddClick"; "backward": "backward"; "forward": "forward"; }, never, ["[matHeader]", "[matFooter]"], false>;
47
+ static ɵcmp: i0.ɵɵComponentDeclaration<ActionsColumnComponent, "app-actions-column", never, { "stickyEnd": "stickyEnd"; "canCancel": "canCancel"; "canConfirm": "canConfirm"; "canDelete": "canDelete"; "canBackward": "canBackward"; "canForward": "canForward"; "canConfirmAndAdd": "canConfirmAndAdd"; "dirtyIcon": "dirtyIcon"; "optionsTitle": "optionsTitle"; "classList": "class"; "cellTemplate": "cellTemplate"; }, { "optionsClick": "optionsClick"; "cancelOrDeleteClick": "cancelOrDeleteClick"; "confirmEditCreateClick": "confirmEditCreateClick"; "confirmAndAddClick": "confirmAndAddClick"; "backward": "backward"; "forward": "forward"; }, never, ["[matHeader]", "[matFooter]"], false>;
43
48
  }
@@ -7,7 +7,7 @@ import { TableElement } from '@e-is/ngx-material-table';
7
7
  import { EntitiesTableDataSource } from './entities-table-datasource.class';
8
8
  import { SelectionModel } from '@angular/cdk/collections';
9
9
  import { IEntity } from '../services/model/entity.model';
10
- import { AlertController, ModalController, ToastController } from '@ionic/angular';
10
+ import { AlertController, ModalController, NavController, ToastController } from '@ionic/angular';
11
11
  import { ActivatedRoute, Router } from '@angular/router';
12
12
  import { ColumnItem } from './table-select-columns.component';
13
13
  import { Location } from '@angular/common';
@@ -36,6 +36,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
36
36
  protected allowRowDetail: boolean;
37
37
  protected route: ActivatedRoute;
38
38
  protected router: Router;
39
+ protected navController: NavController;
39
40
  protected location: Location;
40
41
  protected settings: LocalSettingsService;
41
42
  protected translate: TranslateService;
@@ -62,15 +63,8 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
62
63
  */
63
64
  get error$(): Observable<string>;
64
65
  set error(error: string);
65
- /**
66
- * @deprecated
67
- */
68
- get loading$(): Observable<boolean>;
69
- /**
70
- * @deprecated
71
- */
72
- get saving$(): Observable<boolean>;
73
66
  selection: SelectionModel<TableElement<T>>;
67
+ permanentSelection: SelectionModel<T>;
74
68
  editedRow: TableElement<T>;
75
69
  autocompleteFields: {
76
70
  [key: string]: MatAutocompleteFieldConfig;
@@ -104,6 +98,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
104
98
  set filter(value: F);
105
99
  get filter(): F;
106
100
  get empty(): boolean;
101
+ get selectedEntities(): T[];
107
102
  onRefresh: EventEmitter<any>;
108
103
  onOpenRow: EventEmitter<TableElement<T>>;
109
104
  onNewRow: EventEmitter<any>;
@@ -268,7 +263,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
268
263
  }): Promise<number>;
269
264
  selectRowById(id: number): Promise<boolean>;
270
265
  /**
271
- * Try to select row by data. Will use dataEquals() (that call EntityUtils.equals()) to find same row's data
266
+ * Try to select row by data. Will use equals() to find same row's data
272
267
  * @param data
273
268
  */
274
269
  selectRowByData(data: T): Promise<boolean>;
@@ -352,7 +347,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
352
347
  emitEvent?: boolean;
353
348
  }): void;
354
349
  /**
355
- * Compare data equality (default by id)
350
+ * Compare data equality (default by id, using EntityUtils.equals())
356
351
  * Can be overridden to add additional properties to compare
357
352
  *
358
353
  * @param d1
@@ -378,6 +373,11 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
378
373
  private listenDatasourceLoading;
379
374
  private startCellValueChanges;
380
375
  private stopCellValueChanges;
376
+ /**
377
+ * Initialize the permanent selection model
378
+ * @protected
379
+ */
380
+ protected initPermanentSelection(): void;
381
381
  static ɵfac: i0.ɵɵFactoryDeclaration<AppTable<any, any, any>, never>;
382
382
  static ɵdir: i0.ɵɵDirectiveDeclaration<AppTable<any, any, any>, never, never, { "settingsId": "settingsId"; "debug": "debug"; "i18nColumnPrefix": "i18nColumnPrefix"; "i18nColumnSuffix": "i18nColumnSuffix"; "autoLoad": "autoLoad"; "readOnly": "readOnly"; "inlineEdition": "inlineEdition"; "focusFirstColumn": "focusFirstColumn"; "confirmBeforeDelete": "confirmBeforeDelete"; "confirmBeforeCancel": "confirmBeforeCancel"; "undoableDeletion": "undoableDeletion"; "saveBeforeDelete": "saveBeforeDelete"; "keepEditedRowOnSave": "keepEditedRowOnSave"; "saveBeforeSort": "saveBeforeSort"; "saveBeforeFilter": "saveBeforeFilter"; "propagateRowError": "propagateRowError"; "defaultSortBy": "defaultSortBy"; "defaultSortDirection": "defaultSortDirection"; "defaultPageSize": "defaultPageSize"; "defaultPageSizeOptions": "defaultPageSizeOptions"; "focusColumn": "focusColumn"; "dataSource": "dataSource"; "filter": "filter"; "disabled": "disabled"; "paginator": "paginator"; }, { "onRefresh": "onRefresh"; "onOpenRow": "onOpenRow"; "onNewRow": "onNewRow"; "onStartEditingRow": "onStartEditingRow"; "onConfirmEditCreateRow": "onConfirmEditCreateRow"; "onCancelOrDeleteRow": "onCancelOrDeleteRow"; "onBeforeDeleteRows": "onBeforeDeleteRows"; "onBeforeCancelRows": "onBeforeCancelRows"; "onBeforeSave": "onBeforeSave"; "onAfterDeletedRows": "onAfterDeletedRows"; "onSort": "onSort"; "onDirty": "onDirty"; "onError": "onError"; }, never, never, false>;
383
383
  }
@@ -1,7 +1,11 @@
1
1
  import { AppTable } from './table.class';
2
2
  import { TableElement } from '@e-is/ngx-material-table';
3
3
  import { AsyncTableElement } from '@e-is/ngx-material-table/src/app/ngx-material-table/async/async-table-element';
4
+ import { IEntity } from '../services/model/entity.model';
4
5
  export declare class AppTableUtils {
5
6
  static waitIdle(table: AppTable<any, any, any>): Promise<any>;
6
7
  static logRowErrors(row: TableElement<any> | AsyncTableElement<any>, logPrefix?: string): void;
8
+ static getEntityId<T extends IEntity<T, ID> = IEntity<any, any>, ID = any>(row: TableElement<T> | AsyncTableElement<T>): ID;
9
+ static getEntityIds<T extends IEntity<T, ID> = IEntity<any, any>, ID = any>(rows: TableElement<T>[] | AsyncTableElement<T>[]): ID[];
10
+ static getEntities<T extends IEntity<T, ID> = IEntity<any, any>, ID = any>(rows: TableElement<T>[] | AsyncTableElement<T>[]): T[];
7
11
  }
@@ -0,0 +1,17 @@
1
+ import { ReferentialValidatorService } from '../../services/testing/referential.validator';
2
+ import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms';
3
+ import { Referential } from '../../services/model/referential.model';
4
+ import * as i0 from "@angular/core";
5
+ export declare class TableValidatorService extends ReferentialValidatorService {
6
+ protected formBuilder: UntypedFormBuilder;
7
+ constructor(formBuilder: UntypedFormBuilder);
8
+ getFormGroup(data?: Referential, opts?: {
9
+ withDescription?: boolean;
10
+ withComments?: boolean;
11
+ }): UntypedFormGroup;
12
+ getPropertiesForm(data: {
13
+ [key: string]: any;
14
+ }, opts?: any): UntypedFormGroup;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<TableValidatorService, never>;
16
+ static ɵprov: i0.ɵɵInjectableDeclaration<TableValidatorService>;
17
+ }
@@ -8,6 +8,7 @@ import { AbstractControl, UntypedFormBuilder, UntypedFormGroup } from '@angular/
8
8
  import { ReferentialFilter } from '../../services/testing/referential-filter.model';
9
9
  import { MatExpansionPanel } from '@angular/material/expansion';
10
10
  import { Subscription } from 'rxjs';
11
+ import { FormFieldDefinitionMap } from '../../../shared/form/field.model';
11
12
  import * as i0 from "@angular/core";
12
13
  export declare class TableTestPage extends AppTable<Referential, ReferentialFilter> implements OnInit, OnDestroy {
13
14
  protected validatorService: AppValidatorService;
@@ -22,6 +23,7 @@ export declare class TableTestPage extends AppTable<Referential, ReferentialFilt
22
23
  groupColumns: string[];
23
24
  readonly statusList: readonly import("../../services/model/referential.model").IStatus[];
24
25
  readonly statusById: Readonly<import("@sumaris-net/ngx-components").KeyValueType<import("../../services/model/referential.model").IStatus>>;
26
+ readonly columnDefinitions: FormFieldDefinitionMap;
25
27
  enableInfiniteScroll: boolean;
26
28
  useSticky: boolean;
27
29
  get hasMoreData(): boolean;
@@ -3,11 +3,12 @@ import { TranslateService } from '@ngx-translate/core';
3
3
  export declare class Alerts {
4
4
  /**
5
5
  * Ask the user to save before leaving. If return undefined: user has cancelled
6
+ * <p>
7
+ * from a routed page, prefer using ComponentDirtyGuard
6
8
  *
7
9
  * @param alertCtrl
8
10
  * @param translate
9
11
  * @param event
10
- * @deprecated prefer ComponentDirtyGuard
11
12
  */
12
13
  static askSaveBeforeLeave(alertCtrl: AlertController, translate: TranslateService, event?: Event): Promise<boolean | undefined>;
13
14
  /**
@@ -37,6 +37,7 @@ export declare class AudioProvider extends StartableService<void> {
37
37
  * @param duration Duration of the vibration in milliseconds.
38
38
  */
39
39
  vibrate(duration?: number | number[]): Promise<void>;
40
+ setAudioMode(mode: AudioManagement.AudioMode): Promise<void>;
40
41
  protected readAudioMode(): Promise<void>;
41
42
  static ɵfac: i0.ɵɵFactoryDeclaration<AudioProvider, [null, { optional: true; }]>;
42
43
  static ɵprov: i0.ɵɵInjectableDeclaration<AudioProvider>;
@@ -36,4 +36,4 @@ export declare function toDateISOString(value: any): string | undefined;
36
36
  export declare function fromDateISOString(value: any): Moment | undefined;
37
37
  export declare function fromUnixTimestamp(timeInSec: number): Moment;
38
38
  export declare function fromUnixMsTimestamp(timeInMs: number): Moment;
39
- export declare function toDuration(value: number, unit?: moment.unitOfTime.DurationConstructor): Duration;
39
+ export declare function toDuration(value: number, unit?: unitOfTime.DurationConstructor): Duration;
@@ -0,0 +1,5 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export declare const APP_DEBUG_DATA_SERVICE: InjectionToken<IDebugDataService>;
3
+ export interface IDebugDataService {
4
+ sendDebugData: (data: any) => Promise<void>;
5
+ }
@@ -4,7 +4,7 @@ import { PopoverController } from '@ionic/angular';
4
4
  import { Observable } from 'rxjs';
5
5
  import { OverlayEventDetail } from '@ionic/core';
6
6
  export declare const MimeTypes: Readonly<{
7
- ANDROID_APK: string;
7
+ ANDROID_APK: "application/vnd.android.package-archive";
8
8
  }>;
9
9
  export declare class FilesUtils {
10
10
  static UTF8_BOM_CHAR: Uint8Array;
@@ -1,3 +1,5 @@
1
+ import { Observable } from 'rxjs';
2
+ import { FileEvent } from '../upload-file/upload-file.model';
1
3
  export declare class JsonUtils {
2
4
  static exportToFile(content: any, opts?: {
3
5
  filename?: string;
@@ -8,4 +10,7 @@ export declare class JsonUtils {
8
10
  filename?: string;
9
11
  type?: string;
10
12
  }): File;
13
+ static parseFile<T = any>(file: File, opts?: {
14
+ encoding?: string;
15
+ }): Observable<FileEvent<T>>;
11
16
  }
@@ -7,6 +7,7 @@ import { filterNumberInput, selectInputContent } from '../inputs';
7
7
  import { Property } from '../types';
8
8
  import { ThemePalette } from '@angular/material/core';
9
9
  import { PredefinedColors } from '@ionic/core';
10
+ import { MatAutocompleteField } from '../material/autocomplete/material.autocomplete';
10
11
  import * as i0 from "@angular/core";
11
12
  export declare class AppFormField implements OnInit, ControlValueAccessor {
12
13
  protected translate: TranslateService;
@@ -17,8 +18,8 @@ export declare class AppFormField implements OnInit, ControlValueAccessor {
17
18
  private _onTouchedCallback;
18
19
  private _definition;
19
20
  protected _values: Property[];
20
- type: FormFieldType;
21
- numberInputStep: string;
21
+ protected type: FormFieldType;
22
+ protected numberInputStep: string;
22
23
  set definition(value: FormFieldDefinition);
23
24
  get definition(): FormFieldDefinition;
24
25
  required: boolean;
@@ -31,11 +32,14 @@ export declare class AppFormField implements OnInit, ControlValueAccessor {
31
32
  floatLabel: FloatLabelType;
32
33
  tabindex: number;
33
34
  autofocus: boolean;
35
+ clearable: boolean;
34
36
  chipColor: ThemePalette | PredefinedColors;
37
+ debug: boolean;
35
38
  classList: string;
36
39
  onKeyupEnter: EventEmitter<any>;
37
40
  get value(): any;
38
41
  matInput: ElementRef;
42
+ autocompleteField: MatAutocompleteField;
39
43
  constructor(translate: TranslateService, cd: ChangeDetectorRef, injector: Injector, formGroupDir: FormGroupDirective);
40
44
  ngOnInit(): void;
41
45
  writeValue(obj: any): void;
@@ -49,11 +53,19 @@ export declare class AppFormField implements OnInit, ControlValueAccessor {
49
53
  selectInputContent: typeof selectInputContent;
50
54
  getDisplayValueFn(definition: FormFieldDefinition): DisplayFn;
51
55
  getColorContrast(color: string): string | undefined;
56
+ /**
57
+ * Allow to reload values, if not detected
58
+ * @param value
59
+ */
60
+ reloadItems(value?: any): void;
52
61
  protected computeNumberInputStep(definition: FormFieldDefinition): string;
53
62
  protected computeValuesFromToken(token: InjectionToken<(string | Property)[]>): any[];
54
63
  protected computeValues(values: (string | Property)[]): Property[];
55
64
  protected checkAndResolveFormControl(): void;
56
- protected updateTabIndex(): void;
65
+ protected _onDefinitionChanged(definition: FormFieldDefinition, opts?: {
66
+ emitEvent?: boolean;
67
+ }): void;
68
+ protected updateTabIndex(timeout?: number): void;
57
69
  static ɵfac: i0.ɵɵFactoryDeclaration<AppFormField, [null, null, null, { optional: true; }]>;
58
- static ɵcmp: i0.ɵɵComponentDeclaration<AppFormField, "app-form-field", never, { "definition": "definition"; "required": "required"; "readonly": "readonly"; "disabled": "disabled"; "formControl": "formControl"; "formControlName": "formControlName"; "placeholder": "placeholder"; "compact": "compact"; "floatLabel": "floatLabel"; "tabindex": "tabindex"; "autofocus": "autofocus"; "chipColor": "chipColor"; "classList": "class"; }, { "onKeyupEnter": "keyup.enter"; }, never, ["[matSuffix]", "[matSuffix]", "[matSuffix]", "[matSuffix]", "[matSuffix]", "[matSuffix]", "[matSuffix]", "[matPrefix]", "[matSuffix]", "[matPrefix]", "[matSuffix]", "[matSuffix]"], false>;
70
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppFormField, "app-form-field", never, { "definition": "definition"; "required": "required"; "readonly": "readonly"; "disabled": "disabled"; "formControl": "formControl"; "formControlName": "formControlName"; "placeholder": "placeholder"; "compact": "compact"; "floatLabel": "floatLabel"; "tabindex": "tabindex"; "autofocus": "autofocus"; "clearable": "clearable"; "chipColor": "chipColor"; "debug": "debug"; "classList": "class"; }, { "onKeyupEnter": "keyup.enter"; }, never, ["[matSuffix]", "[matSuffix]", "[matSuffix]", "[matSuffix]", "[matSuffix]", "[matSuffix]", "[matPrefix]", "[matSuffix]", "[matSuffix]", "[matPrefix]", "[matSuffix]", "[matPrefix]", "[matSuffix]", "[matSuffix]"], false>;
59
71
  }
@@ -5,7 +5,7 @@ import { UserProfileLabel } from '../../core/services/model/person.model';
5
5
  export declare type DisplayFn = (obj: any) => string;
6
6
  export declare type EqualsFn = (o1: any, o2: any) => boolean;
7
7
  export declare type CompareFn = (o1: any, o2: any) => number;
8
- export declare type FormFieldType = 'integer' | 'double' | 'boolean' | 'string' | 'enum' | 'color' | 'peer' | 'entity' | 'entities' | 'date' | 'dateTime';
8
+ export declare type FormFieldType = 'integer' | 'double' | 'boolean' | 'string' | 'enum' | 'enums' | 'color' | 'peer' | 'entity' | 'entities' | 'date' | 'dateTime';
9
9
  export declare interface FormFieldDefinition<K = string, T = FormFieldType, E = any> {
10
10
  key: K;
11
11
  type: T;
@@ -19,12 +19,14 @@ export declare function arrayGroupBy<T = any, K extends keyof T = any, M extends
19
19
  [key: string]: T[];
20
20
  }>(obj: T[], key: keyof T): M;
21
21
  /**
22
- * Remove duplicated value, in array. Will compute a unique key (from given properties, or given function)
22
+ * Remove duplicated value, in array. Will compute a unique key (from given properties, or given function).
23
+ * If propertiesOrKeyFn is nil or undefined, will use all object properties
23
24
  * @param values
24
25
  * @param propertiesOrKeyFn
25
26
  */
26
27
  export declare function arrayDistinct<T = any>(values: T[], propertiesOrKeyFn?: string | string[] | ((obj: T) => string)): T[];
27
28
  export declare function nullIfUndefined<T>(obj: T | null | undefined): T | null;
29
+ export declare function undefinedIfNull<T>(obj: T | null | undefined): T | undefined;
28
30
  export declare function trimEmptyToNull<T>(str: string | null | undefined): string | null;
29
31
  export declare function toBoolean(obj: boolean | null | undefined | string, defaultValue?: boolean): boolean;
30
32
  export declare function toNumber(obj: number | null | undefined, defaultValue?: number): number;
@@ -59,7 +61,7 @@ export declare function joinProperties<T = any, K extends keyof T = any>(obj: T,
59
61
  export declare function propertyPathComparator<T = any>(path: string | string[]): (a: T, b: T) => number;
60
62
  export declare function propertyComparator<T = any, K extends keyof T = any>(key: K, defaultValue?: any): (a: T, b: T) => number;
61
63
  export declare function propertiesPathComparator<T = any>(keys: string[], defaultValues?: any[]): (a: T, b: T) => number;
62
- export declare function sort<T>(array: T[], attribute: string, opts?: Intl.CollatorOptions): T[];
64
+ export declare function sort<T>(array: T[], attribute?: string, opts?: Intl.CollatorOptions): T[];
63
65
  export declare function isInt(value: string): boolean;
64
66
  export declare function isNumber(value: string): boolean;
65
67
  export declare function isNumberRange(value: string): boolean;
@@ -90,6 +92,10 @@ export declare function capitalizeFirstLetter(value: string): string;
90
92
  export declare function uncapitalizeFirstLetter(value: string): string;
91
93
  export declare function splitByProperty<T, M extends KeyValueType<T> = KeyValueType<T>>(array: T[] | readonly T[], propertyName: keyof T | string): M;
92
94
  export declare function splitById<T, M extends KeyValueType<T> = KeyValueType<T>>(array: T[] | readonly T[]): M;
95
+ /**
96
+ * Split an array, into a map of array, group by property
97
+ */
98
+ export declare function collectByProperty<T>(values: T[], propertyName: keyof T): KeyValueType<T[]>;
93
99
  /**
94
100
  * Determines if two objects or two values are equivalent.
95
101
  *
@@ -120,11 +126,7 @@ export declare class Beans {
120
126
  static isEmpty<T>(data: T, keys?: KeysEnum<T> | string[], opts?: {
121
127
  blankStringLikeEmpty?: boolean;
122
128
  }): boolean;
123
- static collectById<T>(array: T[]): {
124
- [key: string]: T;
125
- };
126
- static collectByProperty<T>(array: T[], propertyName: keyof T): {
127
- [key: string]: T;
128
- };
129
+ static collectById<T>(array: T[]): KeyValueType<T[]>;
130
+ static collectByProperty: typeof collectByProperty;
129
131
  }
130
132
  export declare function findParentWithClass(elem: HTMLElement, className: string): HTMLElement;
@@ -1,11 +1,19 @@
1
1
  import { PlatformService } from '../../core/services/platform.service';
2
+ import { Platform } from '@ionic/angular';
2
3
  export declare class IPosition {
3
4
  latitude: number;
4
5
  longitude: number;
5
6
  }
6
7
  export declare abstract class GeolocationUtils {
8
+ static isNotNilAndValid(position: IPosition, opts?: {
9
+ debug?: boolean;
10
+ }): boolean;
11
+ static isNilOrInvalid(position: IPosition, opts?: {
12
+ debug?: boolean;
13
+ }): boolean;
14
+ static computeDistanceInMiles(position1: IPosition, position2: IPosition): number;
7
15
  /**
8
16
  * Get the position by geo loc sensor
9
17
  */
10
- static getCurrentPosition(platform: PlatformService, options?: PositionOptions): Promise<IPosition>;
18
+ static getCurrentPosition(platform: PlatformService | Platform, options?: PositionOptions): Promise<IPosition>;
11
19
  }
@@ -1,19 +1,19 @@
1
- import { AfterContentChecked, ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
1
+ import { AfterContentChecked, ChangeDetectorRef, ElementRef, EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
2
  import { BehaviorSubject, Subject, Subscription } from 'rxjs';
3
3
  import { TableDataSource, TableElement } from '@e-is/ngx-material-table';
4
4
  import { Environment } from '../../../../environments/environment.class';
5
5
  import { ImageService } from '../image.service';
6
6
  import { Image } from '../image.model';
7
- import { AlertController, IonModal, IonPopover, IonSlides, Platform, PopoverController } from '@ionic/angular';
7
+ import { AlertController, IonModal, IonPopover, Platform, PopoverController } from '@ionic/angular';
8
8
  import { CollectionViewer, ListRange } from '@angular/cdk/collections';
9
9
  import { TranslateService } from '@ngx-translate/core';
10
10
  import { AppColors } from '../../types';
11
11
  import { FormGroup } from '@angular/forms';
12
- import { EventEmitter } from '@angular/core';
13
12
  import { PredefinedColors } from '@ionic/core';
13
+ import { Swiper } from 'swiper/types';
14
14
  import * as i0 from "@angular/core";
15
15
  export declare type GalleryMode = 'mosaic' | 'list';
16
- export interface ISwiper {
16
+ export interface ISwiper extends Swiper {
17
17
  activeIndex: number;
18
18
  imagesLoaded: number;
19
19
  }
@@ -35,16 +35,10 @@ export declare class AppImageGalleryComponent<T extends Image> implements OnInit
35
35
  protected _titleForm: FormGroup;
36
36
  protected _titleAutofocus: boolean;
37
37
  protected _slidesSubscription: Subscription;
38
+ protected swiperModules: ((opts: any) => void)[];
39
+ protected _swiper: Swiper;
38
40
  zoomActive: boolean;
39
41
  zoomScale: number;
40
- sliderOpts: {
41
- allowSlidePrev: boolean;
42
- allowSlideNext: boolean;
43
- zoom: boolean;
44
- };
45
- modalSliderOpts: {
46
- zoom: boolean;
47
- };
48
42
  viewChange: BehaviorSubject<ListRange>;
49
43
  cardColor: string | PredefinedColors;
50
44
  debug: boolean;
@@ -63,8 +57,10 @@ export declare class AppImageGalleryComponent<T extends Image> implements OnInit
63
57
  get enabled(): boolean;
64
58
  get rows(): TableElement<T>[];
65
59
  get rowCount(): number;
60
+ get activeIndex(): number;
66
61
  zoomModal: IonModal;
67
62
  titlePopover: IonPopover;
63
+ swiperRef: ElementRef;
68
64
  onBeforeDeleteRows: EventEmitter<import("../../events").PromiseEvent<boolean, {
69
65
  rows: TableElement<T>[];
70
66
  }>>;
@@ -87,11 +83,12 @@ export declare class AppImageGalleryComponent<T extends Image> implements OnInit
87
83
  protected getTableUnknownDataSourceError(): Error;
88
84
  protected clickRow(row: TableElement<T>, index: number): Promise<void>;
89
85
  protected activeSlideIndex: number;
90
- protected initModalSlides(slides: IonSlides): Promise<void>;
91
- protected zoom(slides: IonSlides, zoomIn: boolean): Promise<void>;
92
- protected deleteFromModal(event: any, slides: IonSlides): Promise<boolean>;
93
- protected slidePrev(slides: IonSlides): Promise<void>;
94
- protected slideNext(slides: IonSlides): Promise<void>;
86
+ protected getSwiper(swiperElement?: any): Swiper;
87
+ protected initModalSlides(swiperElement: any): Promise<void>;
88
+ protected zoom(swiperElement: any, zoomIn: boolean): Promise<void>;
89
+ protected deleteFromModal(event: any, swiperElement: any): Promise<boolean>;
90
+ protected slidePrev(swiperElement: any): Promise<void>;
91
+ protected slideNext(swiperElement: any): Promise<void>;
95
92
  protected canDeleteRows(rows: TableElement<T>[], opts?: {
96
93
  interactive?: boolean;
97
94
  }): Promise<boolean>;
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Logging levels.
3
+ * Based on https://github.com/Ritzlgrmft/ionic-logging-service/blob/main/projects/ionic-logging-service/src/lib/log-level.model.ts
4
+ */
5
+ export declare enum LogLevel {
6
+ /**
7
+ * All events should be logged.
8
+ */
9
+ ALL = 0,
10
+ /**
11
+ * A fine-grained debug message, typically capturing the flow through the application.
12
+ */
13
+ TRACE = 1,
14
+ /**
15
+ * A general debugging event.
16
+ */
17
+ DEBUG = 2,
18
+ /**
19
+ * An event for informational purposes.
20
+ */
21
+ INFO = 3,
22
+ /**
23
+ * An event that might possible lead to an error.
24
+ */
25
+ WARN = 4,
26
+ /**
27
+ * An error in the application, possibly recoverable.
28
+ */
29
+ ERROR = 5,
30
+ /**
31
+ * A severe error that will prevent the application from continuing.
32
+ */
33
+ FATAL = 6,
34
+ /**
35
+ * No events will be logged.
36
+ */
37
+ OFF = 7
38
+ }