@sumaris-net/ngx-components 4.0.0-rc9 → 18.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (555) hide show
  1. package/README.md +5 -3
  2. package/doc/changelog.md +522 -280
  3. package/esm2022/public_api.mjs +38 -19
  4. package/esm2022/src/app/admin/admin-routing.module.mjs +10 -17
  5. package/esm2022/src/app/admin/admin.module.mjs +7 -9
  6. package/esm2022/src/app/admin/services/filter/person.filter.mjs +3 -3
  7. package/esm2022/src/app/admin/services/person.service.mjs +31 -31
  8. package/esm2022/src/app/admin/services/validator/person.validator.mjs +10 -10
  9. package/esm2022/src/app/admin/users/users.mjs +22 -19
  10. package/esm2022/src/app/admin/users/users.module.mjs +8 -10
  11. package/esm2022/src/app/core/about/about.modal.mjs +7 -7
  12. package/esm2022/src/app/core/about/about.module.mjs +8 -21
  13. package/esm2022/src/app/core/account/account.module.mjs +28 -18
  14. package/esm2022/src/app/core/account/account.page.mjs +19 -5
  15. package/esm2022/src/app/core/account/new-token.form.mjs +106 -0
  16. package/esm2022/src/app/core/account/new-token.modal.mjs +27 -86
  17. package/esm2022/src/app/core/account/password/change-password.form.mjs +60 -0
  18. package/esm2022/src/app/core/account/password/change-password.module.mjs +22 -0
  19. package/esm2022/src/app/core/account/password/change-password.page.mjs +144 -0
  20. package/esm2022/src/app/core/account/token.table.mjs +47 -35
  21. package/esm2022/src/app/core/auth/auth.form.mjs +47 -28
  22. package/esm2022/src/app/core/auth/auth.modal.mjs +6 -6
  23. package/esm2022/src/app/core/auth/auth.module.mjs +22 -13
  24. package/esm2022/src/app/core/auth/reset-password.modal.mjs +77 -0
  25. package/esm2022/src/app/core/core.module.mjs +28 -61
  26. package/esm2022/src/app/core/core.testing.module.mjs +34 -20
  27. package/esm2022/src/app/core/form/array/form-array.mjs +325 -0
  28. package/esm2022/src/app/core/form/array/testing/form-array-test.module.mjs +23 -0
  29. package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +94 -0
  30. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +24 -25
  31. package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +9 -13
  32. package/esm2022/src/app/core/form/entity/editor.class.mjs +64 -517
  33. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +26 -42
  34. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +42 -41
  35. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +5 -5
  36. package/esm2022/src/app/core/form/entity/entity.module.mjs +8 -14
  37. package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +194 -0
  38. package/esm2022/src/app/core/form/form-container.class.mjs +327 -0
  39. package/esm2022/src/app/core/form/form.class.mjs +39 -56
  40. package/esm2022/src/app/core/form/form.module.mjs +14 -10
  41. package/esm2022/src/app/core/form/form.utils.mjs +23 -306
  42. package/esm2022/src/app/core/form/list/list.form.mjs +16 -14
  43. package/esm2022/src/app/core/form/list/list.module.mjs +8 -12
  44. package/esm2022/src/app/core/form/properties/properties.form.mjs +139 -57
  45. package/esm2022/src/app/core/form/properties/properties.module.mjs +9 -15
  46. package/esm2022/src/app/core/form/properties/properties.table.mjs +27 -28
  47. package/esm2022/src/app/core/form/properties/properties.utils.mjs +60 -0
  48. package/esm2022/src/app/core/form/properties/property.validator.mjs +23 -9
  49. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +18 -18
  50. package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +8 -24
  51. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +15 -15
  52. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +10 -25
  53. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +7 -7
  54. package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +9 -13
  55. package/esm2022/src/app/core/form/username/username.form.mjs +52 -0
  56. package/esm2022/src/app/core/form/username/username.module.mjs +20 -0
  57. package/esm2022/src/app/core/graphql/graphql.module.mjs +8 -16
  58. package/esm2022/src/app/core/graphql/graphql.service.mjs +101 -109
  59. package/esm2022/src/app/core/graphql/graphql.utils.mjs +12 -11
  60. package/esm2022/src/app/core/home/home.mjs +81 -52
  61. package/esm2022/src/app/core/home/home.module.mjs +10 -19
  62. package/esm2022/src/app/core/icon/icon.component.mjs +5 -5
  63. package/esm2022/src/app/core/icon/icon.module.mjs +8 -17
  64. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +33 -37
  65. package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +9 -13
  66. package/esm2022/src/app/core/menu/menu.component.mjs +5 -6
  67. package/esm2022/src/app/core/menu/menu.model.mjs +21 -18
  68. package/esm2022/src/app/core/menu/menu.module.mjs +7 -12
  69. package/esm2022/src/app/core/menu/menu.service.mjs +44 -60
  70. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +4 -4
  71. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +7 -6
  72. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +43 -8
  73. package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +8 -27
  74. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +6 -7
  75. package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +9 -13
  76. package/esm2022/src/app/core/peer/select-peer.modal.mjs +31 -21
  77. package/esm2022/src/app/core/peer/select-peer.module.mjs +11 -23
  78. package/esm2022/src/app/core/register/register-confirm.page.mjs +18 -16
  79. package/esm2022/src/app/core/register/register.form.mjs +7 -7
  80. package/esm2022/src/app/core/register/register.modal.mjs +6 -6
  81. package/esm2022/src/app/core/register/register.module.mjs +8 -29
  82. package/esm2022/src/app/core/services/account.service.mjs +272 -170
  83. package/esm2022/src/app/core/services/auth-guard.service.mjs +13 -15
  84. package/esm2022/src/app/core/services/base-entity-service.class.mjs +55 -64
  85. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +39 -33
  86. package/esm2022/src/app/core/services/base58.mjs +8 -4
  87. package/esm2022/src/app/core/services/config/core.config.mjs +88 -37
  88. package/esm2022/src/app/core/services/config.service.mjs +81 -62
  89. package/esm2022/src/app/core/services/crypto.service.mjs +11 -11
  90. package/esm2022/src/app/core/services/errors.mjs +6 -5
  91. package/esm2022/src/app/core/services/local-settings.service.mjs +58 -44
  92. package/esm2022/src/app/core/services/model/account.model.mjs +12 -17
  93. package/esm2022/src/app/core/services/model/config.model.mjs +7 -7
  94. package/esm2022/src/app/core/services/model/department.model.mjs +3 -2
  95. package/esm2022/src/app/core/services/model/entity.decorators.mjs +6 -6
  96. package/esm2022/src/app/core/services/model/entity.model.mjs +27 -31
  97. package/esm2022/src/app/core/services/model/filter.model.mjs +12 -15
  98. package/esm2022/src/app/core/services/model/history.model.mjs +1 -1
  99. package/esm2022/src/app/core/services/model/model.enum.mjs +2 -2
  100. package/esm2022/src/app/core/services/model/peer.model.mjs +19 -9
  101. package/esm2022/src/app/core/services/model/person.model.mjs +26 -22
  102. package/esm2022/src/app/core/services/model/referential.model.mjs +36 -23
  103. package/esm2022/src/app/core/services/model/settings.model.mjs +2 -1
  104. package/esm2022/src/app/core/services/model/token.model.mjs +7 -3
  105. package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +3 -7
  106. package/esm2022/src/app/core/services/network.service.mjs +99 -76
  107. package/esm2022/src/app/core/services/network.types.mjs +1 -1
  108. package/esm2022/src/app/core/services/network.utils.mjs +3 -3
  109. package/esm2022/src/app/core/services/pipes/account.pipes.mjs +11 -11
  110. package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +6 -6
  111. package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +9 -9
  112. package/esm2022/src/app/core/services/pipes/pipes.module.mjs +54 -0
  113. package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +21 -0
  114. package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +11 -11
  115. package/esm2022/src/app/core/services/platform.service.mjs +102 -69
  116. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +32 -39
  117. package/esm2022/src/app/core/services/storage/entity-store.class.mjs +36 -45
  118. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +1 -1
  119. package/esm2022/src/app/core/services/testing/referential.validator.mjs +14 -14
  120. package/esm2022/src/app/core/services/validator/account.validator.mjs +5 -5
  121. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +5 -5
  122. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +34 -20
  123. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +5 -5
  124. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +12 -9
  125. package/esm2022/src/app/core/settings/settings.module.mjs +9 -21
  126. package/esm2022/src/app/core/settings/settings.page.mjs +76 -63
  127. package/esm2022/src/app/core/table/async-table.class.mjs +219 -201
  128. package/esm2022/src/app/core/table/column/actions-column.component.mjs +127 -0
  129. package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +117 -0
  130. package/esm2022/src/app/core/table/column/row-field.component.mjs +116 -0
  131. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +31 -33
  132. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +36 -36
  133. package/esm2022/src/app/core/table/memory-table.class.mjs +5 -5
  134. package/esm2022/src/app/core/table/table-select-columns.component.mjs +8 -8
  135. package/esm2022/src/app/core/table/table.class.mjs +193 -152
  136. package/esm2022/src/app/core/table/table.model.mjs +1 -1
  137. package/esm2022/src/app/core/table/table.module.mjs +35 -24
  138. package/esm2022/src/app/core/table/table.pipes.mjs +77 -0
  139. package/esm2022/src/app/core/table/table.utils.mjs +2 -4
  140. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +9 -5
  141. package/esm2022/src/app/core/table/testing/table.testing.mjs +116 -78
  142. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +8 -33
  143. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +4 -4
  144. package/esm2022/src/app/core/table/testing/table2.testing.mjs +68 -45
  145. package/esm2022/src/app/shared/alerts.mjs +49 -45
  146. package/esm2022/src/app/shared/audio/audio.mjs +25 -27
  147. package/esm2022/src/app/shared/audio/audio.testing.mjs +5 -5
  148. package/esm2022/src/app/shared/audio/audio.testing.module.mjs +10 -25
  149. package/esm2022/src/app/shared/capacitor/keyboard.mjs +5 -5
  150. package/esm2022/src/app/shared/capacitor/plugins.mjs +1 -1
  151. package/esm2022/src/app/shared/constants.mjs +9 -4
  152. package/esm2022/src/app/shared/dates.mjs +18 -16
  153. package/esm2022/src/app/shared/debug/debug-service.class.mjs +1 -1
  154. package/esm2022/src/app/shared/debug/debug.component.mjs +5 -5
  155. package/esm2022/src/app/shared/debug/debug.module.mjs +8 -29
  156. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +8 -15
  157. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +4 -4
  158. package/esm2022/src/app/shared/directives/directives.module.mjs +8 -29
  159. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +4 -4
  160. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +4 -4
  161. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +4 -4
  162. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +4 -4
  163. package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
  164. package/esm2022/src/app/shared/events.mjs +6 -8
  165. package/esm2022/src/app/shared/file/csv.utils.mjs +38 -18
  166. package/esm2022/src/app/shared/file/file.service.mjs +11 -15
  167. package/esm2022/src/app/shared/file/file.utils.mjs +13 -11
  168. package/esm2022/src/app/shared/file/images.utils.mjs +29 -4
  169. package/esm2022/src/app/shared/file/json.utils.mjs +11 -4
  170. package/esm2022/src/app/shared/file/uri.utils.mjs +1 -1
  171. package/esm2022/src/app/shared/focusable.mjs +1 -1
  172. package/esm2022/src/app/shared/form/field.component.mjs +69 -43
  173. package/esm2022/src/app/shared/form/field.model.mjs +4 -4
  174. package/esm2022/src/app/shared/form/loading-spinner.mjs +5 -5
  175. package/esm2022/src/app/shared/forms.mjs +116 -43
  176. package/esm2022/src/app/shared/functions.mjs +139 -71
  177. package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +14 -14
  178. package/esm2022/src/app/shared/gesture/gesture-config.mjs +10 -10
  179. package/esm2022/src/app/shared/gesture/hammer.utils.mjs +1 -1
  180. package/esm2022/src/app/shared/graph/colors.utils.mjs +14 -18
  181. package/esm2022/src/app/shared/graph/graph-colors.mjs +23 -29
  182. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +4 -4
  183. package/esm2022/src/app/shared/help/help.modal.mjs +6 -6
  184. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +5 -5
  185. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +44 -17
  186. package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +9 -27
  187. package/esm2022/src/app/shared/http/http.utils.mjs +15 -11
  188. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +27 -27
  189. package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +13 -10
  190. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +1 -1
  191. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +14 -17
  192. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +9 -13
  193. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +14 -11
  194. package/esm2022/src/app/shared/image/image.model.mjs +1 -1
  195. package/esm2022/src/app/shared/image/image.module.mjs +8 -13
  196. package/esm2022/src/app/shared/image/image.service.mjs +14 -12
  197. package/esm2022/src/app/shared/inputs.mjs +52 -20
  198. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +2 -3
  199. package/esm2022/src/app/shared/logging/log-level.model.mjs +1 -1
  200. package/esm2022/src/app/shared/logging/logger.model.mjs +2 -2
  201. package/esm2022/src/app/shared/logging/logging-service.class.mjs +17 -20
  202. package/esm2022/src/app/shared/logging/logging-service.module.mjs +6 -6
  203. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +7 -10
  204. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +348 -238
  205. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +13 -16
  206. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +5 -4
  207. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +51 -37
  208. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +99 -57
  209. package/esm2022/src/app/shared/material/badge/badge.module.mjs +8 -20
  210. package/esm2022/src/app/shared/material/badge/badge.test.mjs +5 -5
  211. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +19 -20
  212. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +209 -104
  213. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +15 -8
  214. package/esm2022/src/app/shared/material/chips/chips.module.mjs +12 -13
  215. package/esm2022/src/app/shared/material/chips/material.chips.mjs +228 -168
  216. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +20 -21
  217. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +12 -27
  218. package/esm2022/src/app/shared/material/datetime/material.date.mjs +167 -92
  219. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +128 -77
  220. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +297 -165
  221. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +34 -30
  222. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +31 -27
  223. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +26 -23
  224. package/esm2022/src/app/shared/material/duration/duration.module.mjs +11 -16
  225. package/esm2022/src/app/shared/material/duration/duration.utils.mjs +3 -6
  226. package/esm2022/src/app/shared/material/duration/material.duration.mjs +35 -34
  227. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +23 -22
  228. package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +217 -170
  229. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +182 -241
  230. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +10 -15
  231. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +19 -14
  232. package/esm2022/src/app/shared/material/material.animations.mjs +22 -22
  233. package/esm2022/src/app/shared/material/material.config.mjs +3 -0
  234. package/esm2022/src/app/shared/material/material.module.mjs +16 -16
  235. package/esm2022/src/app/shared/material/material.testing.module.mjs +50 -37
  236. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +12 -9
  237. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +4 -4
  238. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +26 -19
  239. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +7 -11
  240. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +8 -8
  241. package/esm2022/src/app/shared/material/testing/common.test.mjs +30 -24
  242. package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +30 -19
  243. package/esm2022/src/app/shared/material/text/text-form.component.mjs +128 -21
  244. package/esm2022/src/app/shared/material/text/text-form.module.mjs +8 -8
  245. package/esm2022/src/app/shared/modules.mjs +1 -1
  246. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +118 -37
  247. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +1 -1
  248. package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +5 -5
  249. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +8 -8
  250. package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +74 -0
  251. package/esm2022/src/app/shared/named-filter/testing/named-filter.testing.module.mjs +28 -0
  252. package/esm2022/src/app/shared/observables.mjs +14 -18
  253. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +53 -38
  254. package/esm2022/src/app/shared/pipes/badge.pipes.mjs +24 -0
  255. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +8 -6
  256. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +8 -10
  257. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +15 -15
  258. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +6 -6
  259. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +6 -6
  260. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +6 -13
  261. package/esm2022/src/app/shared/pipes/form.pipes.mjs +72 -47
  262. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +15 -15
  263. package/esm2022/src/app/shared/pipes/html.pipes.mjs +52 -0
  264. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +14 -14
  265. package/esm2022/src/app/shared/pipes/maps.pipe.mjs +17 -17
  266. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +37 -88
  267. package/esm2022/src/app/shared/pipes/math.pipes.mjs +16 -16
  268. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +5 -5
  269. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +6 -6
  270. package/esm2022/src/app/shared/pipes/pipes.module.mjs +117 -137
  271. package/esm2022/src/app/shared/pipes/property.pipes.mjs +86 -47
  272. package/esm2022/src/app/shared/pipes/selection.pipes.mjs +179 -0
  273. package/esm2022/src/app/shared/pipes/string.pipes.mjs +50 -49
  274. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +11 -11
  275. package/esm2022/src/app/shared/pipes/types.pipes.mjs +33 -17
  276. package/esm2022/src/app/shared/platforms.mjs +7 -5
  277. package/esm2022/src/app/shared/rx-state.module.mjs +7 -11
  278. package/esm2022/src/app/shared/services/entity-service.class.mjs +2 -2
  279. package/esm2022/src/app/shared/services/job.utils.mjs +7 -7
  280. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +43 -41
  281. package/esm2022/src/app/shared/services/progress-bar.service.mjs +4 -4
  282. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +11 -14
  283. package/esm2022/src/app/shared/services/startable-service.class.mjs +11 -17
  284. package/esm2022/src/app/shared/services/translate-context.service.mjs +18 -15
  285. package/esm2022/src/app/shared/services/validator-service.class.mjs +1 -1
  286. package/esm2022/src/app/shared/services.mjs +12 -12
  287. package/esm2022/src/app/shared/shared-routing.module.mjs +19 -18
  288. package/esm2022/src/app/shared/shared.module.mjs +29 -28
  289. package/esm2022/src/app/shared/shared.testing.module.mjs +18 -10
  290. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +39 -46
  291. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +8 -12
  292. package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +9 -17
  293. package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +10 -18
  294. package/esm2022/src/app/shared/storage/storage.service.mjs +4 -4
  295. package/esm2022/src/app/shared/storage/storage.utils.mjs +2 -2
  296. package/esm2022/src/app/shared/testing/maskito.test.mjs +41 -0
  297. package/esm2022/src/app/shared/testing/observable.test.mjs +11 -13
  298. package/esm2022/src/app/shared/testing/tests.page.mjs +6 -6
  299. package/esm2022/src/app/shared/toast/toast.testing.mjs +11 -11
  300. package/esm2022/src/app/shared/toast/toast.testing.module.mjs +10 -25
  301. package/esm2022/src/app/shared/toast/toasts.mjs +9 -9
  302. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +10 -8
  303. package/esm2022/src/app/shared/toolbar/toolbar.mjs +31 -32
  304. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +8 -39
  305. package/esm2022/src/app/shared/types.mjs +1 -1
  306. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +12 -12
  307. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +10 -25
  308. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +7 -8
  309. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +21 -19
  310. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +2 -3
  311. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +64 -56
  312. package/esm2022/src/app/shared/validator/validators.mjs +60 -39
  313. package/esm2022/src/app/shared/version/versions.mjs +2 -2
  314. package/esm2022/src/app/social/job/job.module.mjs +8 -27
  315. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +9 -9
  316. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +49 -46
  317. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +10 -13
  318. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +1 -1
  319. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +39 -21
  320. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +6 -11
  321. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +11 -30
  322. package/esm2022/src/app/social/job/testing/job.testing.module.mjs +8 -21
  323. package/esm2022/src/app/social/message/message.form.mjs +5 -5
  324. package/esm2022/src/app/social/message/message.modal.mjs +8 -8
  325. package/esm2022/src/app/social/message/message.model.mjs +8 -8
  326. package/esm2022/src/app/social/message/message.module.mjs +4 -4
  327. package/esm2022/src/app/social/message/message.service.mjs +7 -7
  328. package/esm2022/src/app/social/social.errors.mjs +2 -2
  329. package/esm2022/src/app/social/social.module.mjs +7 -32
  330. package/esm2022/src/app/social/social.testing.module.mjs +9 -20
  331. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +27 -23
  332. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +19 -22
  333. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +47 -23
  334. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +8 -8
  335. package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +8 -21
  336. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +27 -15
  337. package/esm2022/src/app/social/user-event/user-event.model.mjs +1 -1
  338. package/esm2022/src/app/social/user-event/user-event.module.mjs +8 -28
  339. package/esm2022/src/app/social/user-event/user-event.service.mjs +61 -64
  340. package/esm2022/src/environments/environment.class.mjs +9 -1
  341. package/esm2022/src/environments/environment.loader.mjs +5 -11
  342. package/esm2022/src/environments/environment.mjs +19 -11
  343. package/fesm2022/sumaris-net.ngx-components.mjs +16117 -14592
  344. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  345. package/package.json +33 -18
  346. package/public_api.d.ts +30 -22
  347. package/src/app/admin/services/filter/person.filter.d.ts +1 -1
  348. package/src/app/admin/users/users.d.ts +5 -6
  349. package/src/app/core/account/account.module.d.ts +10 -8
  350. package/src/app/core/account/account.page.d.ts +25 -15
  351. package/src/app/core/account/new-token.form.d.ts +29 -0
  352. package/src/app/core/account/new-token.modal.d.ts +9 -21
  353. package/src/app/core/account/password/change-password.form.d.ts +19 -0
  354. package/src/app/core/account/password/change-password.module.d.ts +11 -0
  355. package/src/app/core/account/password/change-password.page.d.ts +36 -0
  356. package/src/app/core/account/token.table.d.ts +7 -5
  357. package/src/app/core/auth/auth.form.d.ts +11 -9
  358. package/src/app/core/auth/auth.module.d.ts +6 -4
  359. package/src/app/core/auth/reset-password.modal.d.ts +26 -0
  360. package/src/app/core/core.module.d.ts +21 -24
  361. package/src/app/core/core.testing.module.d.ts +2 -1
  362. package/src/app/core/form/array/form-array.d.ts +136 -0
  363. package/src/app/core/form/array/testing/form-array-test.module.d.ts +12 -0
  364. package/src/app/core/form/array/testing/form-array.test.d.ts +26 -0
  365. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +2 -3
  366. package/src/app/core/form/entity/editor.class.d.ts +19 -179
  367. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +10 -13
  368. package/src/app/core/form/entity/entity-editor.class.d.ts +12 -17
  369. package/src/app/core/form/entity/entity-metadata.component.d.ts +1 -1
  370. package/src/app/core/form/entity/tab-editor.class.d.ts +70 -0
  371. package/src/app/core/form/form-container.class.d.ts +126 -0
  372. package/src/app/core/form/form.class.d.ts +13 -26
  373. package/src/app/core/form/form.module.d.ts +2 -1
  374. package/src/app/core/form/form.utils.d.ts +60 -145
  375. package/src/app/core/form/list/list.form.d.ts +2 -2
  376. package/src/app/core/form/properties/properties.form.d.ts +34 -12
  377. package/src/app/core/form/properties/properties.table.d.ts +2 -2
  378. package/src/app/core/form/properties/properties.utils.d.ts +27 -0
  379. package/src/app/core/form/properties/property.validator.d.ts +9 -3
  380. package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +3 -1
  381. package/src/app/core/form/username/username.form.d.ts +19 -0
  382. package/src/app/core/form/username/username.module.d.ts +9 -0
  383. package/src/app/core/graphql/graphql.module.d.ts +1 -2
  384. package/src/app/core/graphql/graphql.service.d.ts +2 -4
  385. package/src/app/core/home/home.d.ts +26 -6
  386. package/src/app/core/menu/testing/menu-other.testing.d.ts +1 -1
  387. package/src/app/core/menu/testing/menu.testing.d.ts +11 -3
  388. package/src/app/core/peer/select-peer.modal.d.ts +13 -7
  389. package/src/app/core/peer/select-peer.module.d.ts +3 -4
  390. package/src/app/core/services/account.service.d.ts +9 -0
  391. package/src/app/core/services/base-entity-service.class.d.ts +1 -1
  392. package/src/app/core/services/config/core.config.d.ts +12 -1
  393. package/src/app/core/services/config.service.d.ts +4 -3
  394. package/src/app/core/services/errors.d.ts +11 -0
  395. package/src/app/core/services/local-settings.service.d.ts +8 -4
  396. package/src/app/core/services/model/entity.model.d.ts +6 -5
  397. package/src/app/core/services/model/filter.model.d.ts +1 -1
  398. package/src/app/core/services/model/peer.model.d.ts +1 -0
  399. package/src/app/core/services/model/person.model.d.ts +6 -2
  400. package/src/app/core/services/model/referential.model.d.ts +8 -3
  401. package/src/app/core/services/model/settings.model.d.ts +4 -2
  402. package/src/app/core/services/model/token.model.d.ts +1 -0
  403. package/src/app/core/services/model/tree-item-entity.model.d.ts +1 -1
  404. package/src/app/core/services/network.service.d.ts +11 -7
  405. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +1 -1
  406. package/src/app/core/services/pipes/person-to-string.pipe.d.ts +3 -1
  407. package/src/app/core/services/pipes/pipes.module.d.ts +11 -0
  408. package/src/app/core/services/pipes/referential-to-string.pipe.d.ts +13 -0
  409. package/src/app/core/services/platform.service.d.ts +8 -3
  410. package/src/app/core/services/testing/referential-filter.model.d.ts +1 -1
  411. package/src/app/core/services/validator/local-settings.validator.d.ts +6 -2
  412. package/src/app/core/settings/settings.module.d.ts +2 -1
  413. package/src/app/core/settings/settings.page.d.ts +34 -21
  414. package/src/app/core/table/async-table.class.d.ts +22 -17
  415. package/src/app/core/table/column/actions-column.component.d.ts +59 -0
  416. package/src/app/core/table/column/nav-actions-column.component.d.ts +46 -0
  417. package/src/app/core/table/column/row-field.component.d.ts +40 -0
  418. package/src/app/core/table/entities-async-table-datasource.class.d.ts +1 -0
  419. package/src/app/core/table/entities-table-datasource.class.d.ts +1 -0
  420. package/src/app/core/table/table.class.d.ts +14 -11
  421. package/src/app/core/table/table.module.d.ts +8 -4
  422. package/src/app/core/table/table.pipes.d.ts +28 -0
  423. package/src/app/core/table/testing/table.testing.d.ts +12 -13
  424. package/src/app/core/table/testing/table2.testing.d.ts +13 -10
  425. package/src/app/shared/alerts.d.ts +4 -2
  426. package/src/app/shared/constants.d.ts +5 -0
  427. package/src/app/shared/dates.d.ts +12 -5
  428. package/src/app/shared/directives/autofocus.directive.d.ts +0 -1
  429. package/src/app/shared/events.d.ts +1 -1
  430. package/src/app/shared/file/csv.utils.d.ts +5 -0
  431. package/src/app/shared/file/images.utils.d.ts +17 -0
  432. package/src/app/shared/file/json.utils.d.ts +3 -0
  433. package/src/app/shared/form/field.component.d.ts +6 -3
  434. package/src/app/shared/forms.d.ts +32 -0
  435. package/src/app/shared/functions.d.ts +27 -8
  436. package/src/app/shared/graph/graph-colors.d.ts +1 -1
  437. package/src/app/shared/guard/component-dirty.guard.d.ts +1 -6
  438. package/src/app/shared/hotkeys/hotkeys.service.d.ts +17 -3
  439. package/src/app/shared/http/http.utils.d.ts +1 -0
  440. package/src/app/shared/image/gallery/image-gallery.component.d.ts +10 -10
  441. package/src/app/shared/image/gallery/image-gallery.module.d.ts +2 -1
  442. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +2 -2
  443. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +2 -1
  444. package/src/app/shared/inputs.d.ts +7 -5
  445. package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +20 -1
  446. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +56 -16
  447. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +1 -1
  448. package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +2 -1
  449. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +3 -2
  450. package/src/app/shared/material/badge/badge.directive.d.ts +10 -4
  451. package/src/app/shared/material/boolean/boolean.module.d.ts +15 -14
  452. package/src/app/shared/material/boolean/material.boolean.d.ts +51 -25
  453. package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +1 -0
  454. package/src/app/shared/material/chips/chips.module.d.ts +2 -1
  455. package/src/app/shared/material/chips/material.chips.d.ts +46 -21
  456. package/src/app/shared/material/chips/testing/chips.test.d.ts +1 -0
  457. package/src/app/shared/material/datetime/datetime.module.d.ts +1 -1
  458. package/src/app/shared/material/datetime/material.date.d.ts +33 -18
  459. package/src/app/shared/material/datetime/material.dateshort.d.ts +29 -16
  460. package/src/app/shared/material/datetime/material.datetime.d.ts +41 -28
  461. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +3 -3
  462. package/src/app/shared/material/duration/duration.module.d.ts +1 -1
  463. package/src/app/shared/material/duration/material.duration.d.ts +1 -1
  464. package/src/app/shared/material/latlong/latlong.utils.d.ts +9 -1
  465. package/src/app/shared/material/latlong/material.latlong.d.ts +29 -32
  466. package/src/app/shared/material/latlong/material.latlong.module.d.ts +1 -1
  467. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +5 -1
  468. package/src/app/shared/material/material.config.d.ts +3 -0
  469. package/src/app/shared/material/material.module.d.ts +5 -6
  470. package/src/app/shared/material/material.testing.module.d.ts +8 -7
  471. package/src/app/shared/material/swipe/material.swipe.d.ts +4 -3
  472. package/src/app/shared/material/text/testing/text-form.testing.d.ts +10 -4
  473. package/src/app/shared/material/text/text-form.component.d.ts +42 -8
  474. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +30 -14
  475. package/src/app/shared/named-filter/named-filter.service.d.ts +12 -6
  476. package/src/app/shared/named-filter/testing/named-filter-selector.testing.d.ts +34 -0
  477. package/src/app/shared/named-filter/testing/named-filter.testing.module.d.ts +10 -0
  478. package/src/app/shared/pipes/arrays.pipe.d.ts +5 -0
  479. package/src/app/shared/pipes/badge.pipes.d.ts +7 -0
  480. package/src/app/shared/pipes/date-format.pipe.d.ts +3 -2
  481. package/src/app/shared/pipes/form.pipes.d.ts +18 -8
  482. package/src/app/shared/pipes/html.pipes.d.ts +15 -0
  483. package/src/app/shared/pipes/maps.pipe.d.ts +4 -4
  484. package/src/app/shared/pipes/maskito.pipe.d.ts +7 -9
  485. package/src/app/shared/pipes/pipes.module.d.ts +7 -4
  486. package/src/app/shared/pipes/property.pipes.d.ts +24 -3
  487. package/src/app/shared/pipes/selection.pipes.d.ts +62 -0
  488. package/src/app/shared/pipes/string.pipes.d.ts +6 -6
  489. package/src/app/shared/pipes/types.pipes.d.ts +6 -1
  490. package/src/app/shared/services/entity-service.class.d.ts +0 -2
  491. package/src/app/shared/services/memory-entity-service.class.d.ts +6 -3
  492. package/src/app/shared/services.d.ts +1 -0
  493. package/src/app/shared/shared.testing.module.d.ts +2 -1
  494. package/src/app/shared/storage/storage-explorer.component.d.ts +4 -3
  495. package/src/app/shared/testing/maskito.test.d.ts +10 -0
  496. package/src/app/shared/toolbar/toolbar.d.ts +7 -2
  497. package/src/app/shared/types.d.ts +5 -0
  498. package/src/app/shared/upload-file/upload-file.component.d.ts +1 -0
  499. package/src/app/shared/validator/form-error-adapter.class.d.ts +17 -11
  500. package/src/app/shared/validator/validators.d.ts +20 -9
  501. package/src/app/social/job/progression/job-progression.icon.d.ts +4 -5
  502. package/src/app/social/job/progression/job-progression.list.d.ts +1 -3
  503. package/src/app/social/job/progression/job-progression.service.d.ts +3 -4
  504. package/src/app/social/job/testing/job-progression.testing.d.ts +0 -1
  505. package/src/app/social/job/testing/job-progression.testing.service.d.ts +3 -11
  506. package/src/app/social/message/message.modal.d.ts +2 -2
  507. package/src/app/social/message/message.model.d.ts +1 -1
  508. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +4 -4
  509. package/src/app/social/user-event/testing/user-event.testing.d.ts +1 -0
  510. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +2 -3
  511. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +1 -0
  512. package/src/assets/i18n/en-US.json +48 -19
  513. package/src/assets/i18n/en.json +48 -20
  514. package/src/assets/i18n/fr.json +50 -20
  515. package/src/assets/manifest.json +1 -1
  516. package/src/environments/environment.class.d.ts +10 -0
  517. package/src/environments/environment.d.ts +0 -1
  518. package/src/environments/environment.loader.d.ts +0 -2
  519. package/src/theme/_functions.scss +15 -0
  520. package/src/theme/_icons.scss +1 -1
  521. package/src/theme/_ionic.globals.scss +8 -2
  522. package/src/theme/_ionic.scss +10 -10
  523. package/src/theme/_material.globals.scss +16 -43
  524. package/src/theme/_material.scss +45 -32
  525. package/src/theme/_mixins.scss +99 -18
  526. package/src/theme/_ngx-components.forms.scss +354 -0
  527. package/src/theme/_ngx-components.globals.scss +20 -10
  528. package/src/theme/_ngx-components.scss +194 -400
  529. package/src/theme/_ngx-components.table.scss +200 -207
  530. package/src/theme/_ngx-components.tabs.scss +54 -0
  531. package/src/theme/_responsive.scss +0 -31
  532. package/src/theme/_theme.scss +2 -0
  533. package/src/theme/_theme.variables.scss +172 -0
  534. package/esm2022/src/app/core/table/actions-column.component.mjs +0 -115
  535. package/esm2022/src/app/shared/material/boolean/material-boolean2.mjs +0 -266
  536. package/esm2022/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +0 -104
  537. package/esm2022/src/app/shared/material/numpad/numpad.component.mjs +0 -83
  538. package/esm2022/src/app/shared/material/numpad/numpad.container.mjs +0 -203
  539. package/esm2022/src/app/shared/material/numpad/numpad.content.mjs +0 -19
  540. package/esm2022/src/app/shared/material/numpad/numpad.directive.mjs +0 -168
  541. package/esm2022/src/app/shared/material/numpad/numpad.dom-service.mjs +0 -36
  542. package/esm2022/src/app/shared/material/numpad/numpad.model.mjs +0 -16
  543. package/esm2022/src/app/shared/material/numpad/numpad.module.mjs +0 -60
  544. package/esm2022/src/app/shared/material/numpad/testing/numpad.test.mjs +0 -48
  545. package/src/app/core/table/actions-column.component.d.ts +0 -48
  546. package/src/app/shared/material/boolean/material-boolean2.d.ts +0 -66
  547. package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +0 -22
  548. package/src/app/shared/material/numpad/numpad.component.d.ts +0 -26
  549. package/src/app/shared/material/numpad/numpad.container.d.ts +0 -40
  550. package/src/app/shared/material/numpad/numpad.content.d.ts +0 -7
  551. package/src/app/shared/material/numpad/numpad.directive.d.ts +0 -35
  552. package/src/app/shared/material/numpad/numpad.dom-service.d.ts +0 -16
  553. package/src/app/shared/material/numpad/numpad.model.d.ts +0 -30
  554. package/src/app/shared/material/numpad/numpad.module.d.ts +0 -16
  555. package/src/app/shared/material/numpad/testing/numpad.test.d.ts +0 -13
@@ -5,11 +5,11 @@ import { LocalSettingsService } from '../../services/local-settings.service';
5
5
  import { Entity } from '../../services/model/entity.model';
6
6
  import { UsageMode } from '../../services/model/settings.model';
7
7
  import { FormGroup } from '@angular/forms';
8
- import { AppTabEditor, AppTabEditorOptions } from './editor.class';
8
+ import { AppTabEditor, AppTabEditorOptions } from './tab-editor.class';
9
+ import { AppErrorWithDetails } from '../../services/errors';
9
10
  import { DateFormatService } from '../../../shared/pipes/date-format.pipe';
10
11
  import { WaitForOptions } from '../../../shared/observables';
11
12
  import { FormErrorTranslator } from '../../../shared/validator/form-error-adapter.class';
12
- import { AppErrorWithDetails } from './entity-editor.class';
13
13
  import * as i0 from "@angular/core";
14
14
  export interface IEntityEditorModalOptions<T extends Entity<T, ID> = Entity<any, any>, ID = number> {
15
15
  isNew: boolean;
@@ -26,7 +26,7 @@ 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
- protected _logPrefix: any;
29
+ protected _logPrefix: string;
30
30
  protected _isNew: boolean;
31
31
  protected readonly dateFormat: DateFormatService;
32
32
  protected readonly cd: ChangeDetectorRef;
@@ -34,13 +34,17 @@ export declare abstract class AppEntityEditorModal<T extends Entity<T, ID>, ID =
34
34
  protected readonly modalCtrl: ModalController;
35
35
  protected errorTranslator: FormErrorTranslator;
36
36
  readonly savingSubject: BehaviorSubject<boolean>;
37
- $title: Subject<string>;
37
+ readonly titleSubject: BehaviorSubject<string>;
38
38
  data: T;
39
39
  mobile: boolean;
40
40
  usageMode: UsageMode;
41
41
  onAfterModalInit: <M extends AppEntityEditorModal<T, ID>>(modal: M) => void | Promise<void>;
42
42
  onDelete: (event: Event, data: T) => Promise<boolean>;
43
43
  i18nSuffix: string;
44
+ /**
45
+ * @deprecated
46
+ */
47
+ protected get $title(): Subject<string>;
44
48
  set isNew(value: boolean);
45
49
  get isNew(): boolean;
46
50
  /**
@@ -54,13 +58,6 @@ export declare abstract class AppEntityEditorModal<T extends Entity<T, ID>, ID =
54
58
  set disabled(value: boolean);
55
59
  get disabled(): boolean;
56
60
  get isOnFieldMode(): boolean;
57
- get saving(): boolean;
58
- markAsSaving(opts?: {
59
- emitEvent?: boolean;
60
- }): void;
61
- markAsSaved(opts?: {
62
- emitEvent?: boolean;
63
- }): void;
64
61
  protected constructor(injector: Injector, dataType: new () => T, options?: O);
65
62
  ngOnInit(): void;
66
63
  ngAfterViewInit(): void;
@@ -104,9 +101,9 @@ export declare abstract class AppEntityEditorModal<T extends Entity<T, ID>, ID =
104
101
  emitEvent?: boolean;
105
102
  detailsCssClass?: string;
106
103
  }): void;
107
- protected abstract registerForms(): any;
104
+ abstract setValue(data: T): Promise<void> | void;
105
+ protected abstract registerForms(): void;
108
106
  protected abstract computeTitle(data: T): Promise<string>;
109
- protected abstract setValue(data: T): Promise<void> | void;
110
107
  protected abstract get form(): FormGroup;
111
108
  protected abstract getFirstInvalidTabIndex(): number;
112
109
  protected waitWhilePending(opts?: WaitForOptions): Promise<void>;
@@ -5,16 +5,16 @@ import { AddToPageHistoryOptions, LocalSettingsService } from '../../services/lo
5
5
  import { Entity } from '../../services/model/entity.model';
6
6
  import { UsageMode } from '../../services/model/settings.model';
7
7
  import { FormGroup } from '@angular/forms';
8
- import { AppTabEditor, AppTabEditorOptions, IAppTabEditor } from './editor.class';
8
+ import { AppTabEditor, AppTabEditorOptions, IAppTabEditor } from './tab-editor.class';
9
+ import { AppErrorWithDetails } from '../../services/errors';
9
10
  import { EntityServiceLoadOptions, IEntityService } from '../../../shared/services/entity-service.class';
10
11
  import { DateFormatService } from '../../../shared/pipes/date-format.pipe';
11
12
  import { Environment } from '../../../../environments/environment.class';
12
13
  import { HistoryPageReference } from '../../services/model/history.model';
13
14
  import { WaitForOptions } from '../../../shared/observables';
14
15
  import { FormErrorTranslator } from '../../../shared/validator/form-error-adapter.class';
15
- import { FormErrors } from '../../../shared/forms';
16
16
  import * as i0 from "@angular/core";
17
- export interface IAppEntityEditor extends IAppTabEditor {
17
+ export interface IAppEntityEditor<T> extends IAppTabEditor<T> {
18
18
  usageMode: UsageMode;
19
19
  isNewData: boolean;
20
20
  }
@@ -34,19 +34,11 @@ export declare class AppEditorOptions extends AppTabEditorOptions {
34
34
  autoOpenNextTab?: boolean;
35
35
  i18nPrefix?: string;
36
36
  }
37
- export interface AppError {
38
- code?: number;
39
- message?: string;
40
- }
41
- export interface AppErrorWithDetails extends AppError {
42
- details: AppError & {
43
- errors?: FormErrors;
44
- };
45
- }
46
- export declare abstract class AppEntityEditor<T extends Entity<T, ID>, S extends IEntityService<T, ID> = IEntityService<T, any>, ID = number, LO extends EntityServiceLoadOptions = EntityServiceLoadOptions> extends AppTabEditor<T, ID, LO> implements OnInit, OnDestroy, AfterViewInit, IAppEntityEditor {
37
+ export declare abstract class AppEntityEditor<T extends Entity<T, ID>, S extends IEntityService<T, ID> = IEntityService<T, any>, ID = number, LO extends EntityServiceLoadOptions = EntityServiceLoadOptions> extends AppTabEditor<T, ID, LO> implements OnInit, OnDestroy, AfterViewInit, IAppEntityEditor<T> {
47
38
  protected dataType: new () => T;
48
39
  protected dataService?: S;
49
40
  data: T;
41
+ previousDataId: ID;
50
42
  defaultBackHref: string;
51
43
  historyIcon: {
52
44
  icon?: string;
@@ -58,8 +50,8 @@ export declare abstract class AppEntityEditor<T extends Entity<T, ID>, S extends
58
50
  * @deprecated
59
51
  */
60
52
  protected get $title(): Subject<string>;
61
- protected readonly dateFormat: DateFormatService;
62
53
  protected readonly cd: ChangeDetectorRef;
54
+ protected readonly dateFormat: DateFormatService;
63
55
  protected readonly settings: LocalSettingsService;
64
56
  protected readonly environment: Environment;
65
57
  protected readonly routerOutlet: IonRouterOutlet;
@@ -170,7 +162,7 @@ export declare abstract class AppEntityEditor<T extends Entity<T, ID>, S extends
170
162
  protected onEntityDeleted(data: T): Promise<void>;
171
163
  protected computeUsageMode(data: T): UsageMode;
172
164
  protected waitWhilePending(opts?: WaitForOptions): Promise<void>;
173
- protected getValue(): Promise<T>;
165
+ getValue(): Promise<T>;
174
166
  protected getJsonValueToSave(): Promise<any>;
175
167
  /**
176
168
  * Compute the title
@@ -199,11 +191,14 @@ export declare abstract class AppEntityEditor<T extends Entity<T, ID>, S extends
199
191
  * Open the first tab that is invalid
200
192
  */
201
193
  private openFirstInvalidTab;
202
- protected abstract registerForms(): any;
203
194
  protected abstract computeTitle(data: T): Promise<string>;
204
- protected abstract setValue(data: T): Promise<void> | void;
205
195
  protected abstract get form(): FormGroup;
206
196
  protected abstract getFirstInvalidTabIndex(): number;
197
+ protected abstract registerForms(): void;
198
+ abstract setValue(data: T, opts?: {
199
+ onlySelf?: boolean;
200
+ emitEvent?: boolean;
201
+ }): Promise<void> | void;
207
202
  static ɵfac: i0.ɵɵFactoryDeclaration<AppEntityEditor<any, any, any, any>, never>;
208
203
  static ɵdir: i0.ɵɵDirectiveDeclaration<AppEntityEditor<any, any, any, any>, never, never, {}, {}, never, never, false, never>;
209
204
  }
@@ -9,5 +9,5 @@ export declare class EntityMetadataComponent {
9
9
  };
10
10
  showRecorder: boolean;
11
11
  static ɵfac: i0.ɵɵFactoryDeclaration<EntityMetadataComponent, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<EntityMetadataComponent, "app-entity-metadata", never, { "value": { "alias": "value"; "required": false; }; "showRecorder": { "alias": "showRecorder"; "required": false; }; }, {}, never, ["[recorderSuffix]", "*"], false, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<EntityMetadataComponent, "app-entity-metadata", never, { "value": { "alias": "value"; "required": false; }; "showRecorder": { "alias": "showRecorder"; "required": false; }; }, {}, never, ["[recorderSuffix]", "[afterRecorder]", "*"], false, never>;
13
13
  }
@@ -0,0 +1,70 @@
1
+ import { EventEmitter, OnDestroy, OnInit } from '@angular/core';
2
+ import { ActivatedRoute, Router } from '@angular/router';
3
+ import { MatTabChangeEvent, MatTabGroup } from '@angular/material/tabs';
4
+ import { AlertController, NavController } from '@ionic/angular';
5
+ import { TranslateService } from '@ngx-translate/core';
6
+ import { HammerSwipeEvent } from '../../../shared/gesture/hammer.utils';
7
+ import { AppEditor, IAppEditor } from './editor.class';
8
+ import * as i0 from "@angular/core";
9
+ export interface IAppTabEditor<T = any> extends IAppEditor<T> {
10
+ selectedTabIndex: number;
11
+ setSelectedTabIndex(value: number, opts?: {
12
+ emitEvent?: boolean;
13
+ realignInkBar?: boolean;
14
+ }): void;
15
+ unload(opts?: {
16
+ emitEvent?: boolean;
17
+ }): Promise<void>;
18
+ realignInkBar(): void;
19
+ }
20
+ export declare class AppTabEditorOptions {
21
+ /**
22
+ * Number of tab. 1 by default
23
+ */
24
+ tabCount?: number;
25
+ /**
26
+ * '200ms' by default
27
+ */
28
+ tabGroupAnimationDuration?: string;
29
+ /**
30
+ * Should enable swipe between tab, on touch screen
31
+ */
32
+ enableSwipe?: boolean;
33
+ }
34
+ export declare abstract class AppTabEditor<T = any, ID = number, O = any> extends AppEditor<T, ID, O> implements IAppTabEditor<T>, OnInit, OnDestroy {
35
+ protected route: ActivatedRoute;
36
+ protected router: Router;
37
+ protected navController: NavController;
38
+ protected alertCtrl: AlertController;
39
+ protected translate: TranslateService;
40
+ protected _selectedTabIndex: number;
41
+ protected tabCount: number;
42
+ protected enableSwipe: boolean;
43
+ protected tabGroupAnimationDuration: string;
44
+ queryTabIndexParamName: string;
45
+ set selectedTabIndex(value: number);
46
+ get selectedTabIndex(): number;
47
+ readonly selectedTabIndexChange: EventEmitter<number>;
48
+ tabGroup: MatTabGroup;
49
+ protected constructor(route: ActivatedRoute, // Modal editor give 'null'
50
+ router: Router, navController: NavController, alertCtrl: AlertController, translate: TranslateService, options?: AppTabEditorOptions);
51
+ ngOnInit(): void;
52
+ ngOnDestroy(): void;
53
+ setSelectedTabIndex(value: number, opts?: {
54
+ emitEvent?: boolean;
55
+ realignInkBar?: boolean;
56
+ }): void;
57
+ realignInkBar(): void;
58
+ onTabChange(event: MatTabChangeEvent, queryTabIndexParamName?: string): boolean;
59
+ /**
60
+ * Action triggered when user swipes
61
+ */
62
+ onSwipeTab(event: HammerSwipeEvent): boolean;
63
+ onSubTabChange(event: MatTabChangeEvent): void;
64
+ unload(opts?: {
65
+ emitEvent?: boolean;
66
+ }): Promise<void>;
67
+ protected abstract getFirstInvalidTabIndex(): number;
68
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppTabEditor<any, any, any>, [{ optional: true; }, null, null, null, null, { optional: true; }]>;
69
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AppTabEditor<any, any, any>, never, never, { "queryTabIndexParamName": { "alias": "queryTabIndexParamName"; "required": false; }; "selectedTabIndex": { "alias": "selectedTabIndex"; "required": false; }; }, { "selectedTabIndexChange": "selectedTabIndexChange"; }, never, never, false, never>;
70
+ }
@@ -0,0 +1,126 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import { BehaviorSubject, Subject, Subscription } from 'rxjs';
3
+ import { IAppForm, IAppFormGetter } from './form.utils';
4
+ import { WaitForOptions } from '../../shared/observables';
5
+ import { AppTable } from '../table/table.class';
6
+ import { AppForm } from './form.class';
7
+ import { AppEditor } from './entity/editor.class';
8
+ import { AbstractControl } from '@angular/forms';
9
+ import { AppAsyncTable } from '../table/async-table.class';
10
+ import * as i0 from "@angular/core";
11
+ export interface IAppFormContainer<T = any> extends IAppForm<T> {
12
+ children: IAppForm[];
13
+ tables: AppTable<any>[];
14
+ asyncTables: AppAsyncTable<any>[];
15
+ forms: AppForm<any>[];
16
+ editors: AppEditor<any>[];
17
+ addForm(path: string, form?: IAppForm | IAppFormGetter): void;
18
+ addForms(forms: (IAppForm | IAppFormGetter)[]): void;
19
+ removeForm(form: string | IAppForm | IAppFormGetter): IAppForm | IAppFormGetter;
20
+ }
21
+ export declare abstract class AppFormContainer<T = any> implements IAppFormContainer<T>, OnInit, OnDestroy {
22
+ private _children;
23
+ private _childrenPath;
24
+ private _subscription;
25
+ protected _logPrefix: string;
26
+ protected _enabled: boolean;
27
+ protected readonly destroySubject: Subject<void>;
28
+ readonly readySubject: BehaviorSubject<boolean>;
29
+ readonly loadingSubject: BehaviorSubject<boolean>;
30
+ readonly dirtySubject: BehaviorSubject<boolean>;
31
+ readonly touchedSubject: BehaviorSubject<boolean>;
32
+ readonly errorSubject: BehaviorSubject<string>;
33
+ get children(): IAppForm[];
34
+ get tables(): AppTable<any>[];
35
+ get asyncTables(): AppAsyncTable<any>[];
36
+ get forms(): AppForm<any>[];
37
+ get editors(): AppEditor<any>[];
38
+ get error(): string;
39
+ set error(error: string);
40
+ get loading(): boolean;
41
+ get loaded(): boolean;
42
+ get dirty(): boolean;
43
+ get valid(): boolean;
44
+ get invalid(): boolean;
45
+ get pending(): boolean;
46
+ get empty(): boolean;
47
+ get touched(): boolean;
48
+ get untouched(): boolean;
49
+ get enabled(): boolean;
50
+ get disabled(): boolean;
51
+ get destroyed(): boolean;
52
+ debug: boolean;
53
+ protected constructor();
54
+ ngOnInit(): void;
55
+ ngOnDestroy(): void;
56
+ addForm(path: string, form?: IAppForm | IAppFormGetter): void;
57
+ addForms(forms: (IAppForm | IAppFormGetter)[]): void;
58
+ removeForm(form: string | IAppForm | IAppFormGetter): IAppForm | IAppFormGetter;
59
+ disable(opts?: {
60
+ onlySelf?: boolean;
61
+ emitEvent?: boolean;
62
+ }): void;
63
+ enable(opts?: {
64
+ onlySelf?: boolean;
65
+ emitEvent?: boolean;
66
+ }): void;
67
+ markAsPristine(opts?: {
68
+ onlySelf?: boolean;
69
+ emitEvent?: boolean;
70
+ }): void;
71
+ markAsUntouched(opts?: {
72
+ onlySelf?: boolean;
73
+ emitEvent?: boolean;
74
+ }): void;
75
+ /**
76
+ * @deprecated prefer to use markAllAsTouched()
77
+ * @param opts
78
+ */
79
+ markAsTouched(opts?: {
80
+ onlySelf?: boolean;
81
+ emitEvent?: boolean;
82
+ }): void;
83
+ markAllAsTouched(opts?: {
84
+ emitEvent?: boolean;
85
+ }): void;
86
+ markAsDirty(opts?: {
87
+ onlySelf?: boolean;
88
+ emitEvent?: boolean;
89
+ }): void;
90
+ markAsLoading(opts?: {
91
+ emitEvent?: boolean;
92
+ }): void;
93
+ markAsLoaded(opts?: {
94
+ onlySelf?: boolean;
95
+ emitEvent?: boolean;
96
+ }): void;
97
+ markAsReady(opts?: {
98
+ onlySelf?: boolean;
99
+ emitEvent?: boolean;
100
+ }): void;
101
+ /**
102
+ * Wait form is ready
103
+ *
104
+ * @param opts
105
+ */
106
+ ready(opts?: WaitForOptions): Promise<void>;
107
+ /**
108
+ * Wait form is not busy (=loaded)
109
+ *
110
+ * @param opts
111
+ */
112
+ waitIdle(opts?: WaitForOptions): Promise<void>;
113
+ logFormErrors(prefix?: string): void;
114
+ protected registerSubscription(sub: Subscription): void;
115
+ protected unregisterSubscription(sub: Subscription): void;
116
+ protected setError(value: string, opts?: {
117
+ emitEvent?: boolean;
118
+ }): void;
119
+ protected resetError(opts?: {
120
+ emitEvent?: boolean;
121
+ }): void;
122
+ protected markForCheck(): void;
123
+ protected logChildrenErrors(c: IAppForm | AbstractControl, prefix?: string, path?: string): void;
124
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppFormContainer<any>, never>;
125
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AppFormContainer<any>, never, never, { "debug": { "alias": "debug"; "required": false; }; }, {}, never, never, false, never>;
126
+ }
@@ -4,42 +4,26 @@ import { BehaviorSubject, Subject, Subscription } from 'rxjs';
4
4
  import { IAppForm } from './form.utils';
5
5
  import { LocalSettingsService } from '../services/local-settings.service';
6
6
  import { WaitForOptions } from '../../shared/observables';
7
- import { FormErrorTranslator, FormErrorTranslatorOptions, IFormControlPathTranslator } from '../../shared/validator/form-error-adapter.class';
7
+ import { FormErrorTranslateOptions, FormErrorTranslator, IFormPathTranslator } from '../../shared/validator/form-error-adapter.class';
8
8
  import { TranslateService } from '@ngx-translate/core';
9
9
  import { MatAutocompleteConfigHolder, MatAutocompleteFieldAddOptions, MatAutocompleteFieldConfig } from '../../shared/material/autocomplete/material.autocomplete.config';
10
10
  import * as i0 from "@angular/core";
11
- export declare class AppForm<T> implements IAppForm, OnInit, OnDestroy, IFormControlPathTranslator {
11
+ export declare class AppForm<T> implements IAppForm<T>, OnInit, OnDestroy, IFormPathTranslator {
12
12
  private _subscription;
13
13
  protected _form: UntypedFormGroup;
14
- protected _enable: boolean;
14
+ protected _enabled: boolean;
15
15
  protected errorTranslator: FormErrorTranslator;
16
16
  protected i18nFieldPrefix: string;
17
17
  protected readonly translate: TranslateService;
18
18
  protected readonly settings: LocalSettingsService;
19
19
  protected readonly destroySubject: Subject<void>;
20
+ readonly readySubject: BehaviorSubject<boolean>;
21
+ readonly loadingSubject: BehaviorSubject<boolean>;
22
+ readonly errorSubject: BehaviorSubject<string>;
20
23
  readonly autocompleteHelper: MatAutocompleteConfigHolder;
21
24
  readonly autocompleteFields: {
22
25
  [key: string]: MatAutocompleteFieldConfig;
23
26
  };
24
- readonly readySubject: BehaviorSubject<boolean>;
25
- readonly loadingSubject: BehaviorSubject<boolean>;
26
- readonly errorSubject: BehaviorSubject<string>;
27
- /**
28
- * @deprecated
29
- */
30
- protected set _loading(value: boolean);
31
- /**
32
- * @deprecated
33
- */
34
- protected get _loading(): boolean;
35
- /**
36
- * @deprecated
37
- */
38
- protected get _$ready(): BehaviorSubject<boolean>;
39
- /**
40
- * @deprecated
41
- */
42
- protected get _$loading(): BehaviorSubject<boolean>;
43
27
  get error(): string;
44
28
  set error(error: string);
45
29
  get loading(): boolean;
@@ -66,7 +50,7 @@ export declare class AppForm<T> implements IAppForm, OnInit, OnDestroy, IFormCon
66
50
  get destroyed(): boolean;
67
51
  debug: boolean;
68
52
  tabindex: number;
69
- errorTranslatorOptions: FormErrorTranslatorOptions;
53
+ errorTranslateOptions: FormErrorTranslateOptions;
70
54
  set form(value: UntypedFormGroup);
71
55
  get form(): UntypedFormGroup;
72
56
  onCancel: EventEmitter<any>;
@@ -84,6 +68,7 @@ export declare class AppForm<T> implements IAppForm, OnInit, OnDestroy, IFormCon
84
68
  checkValid?: boolean;
85
69
  }): Promise<void>;
86
70
  setForm(form: UntypedFormGroup): void;
71
+ getValue(): Promise<T> | T;
87
72
  setValue(data: T, opts?: {
88
73
  emitEvent?: boolean;
89
74
  onlySelf?: boolean;
@@ -141,8 +126,8 @@ export declare class AppForm<T> implements IAppForm, OnInit, OnDestroy, IFormCon
141
126
  onlySelf?: boolean;
142
127
  emitEvent?: boolean;
143
128
  }): void;
144
- translateControlPath(path: string): any;
145
- protected getFormError(form: UntypedFormGroup, opts?: FormErrorTranslatorOptions): string;
129
+ translateFormPath(path: string): any;
130
+ protected getFormError(form: UntypedFormGroup, opts?: FormErrorTranslateOptions): string;
146
131
  protected getI18nFieldName(path: string): string;
147
132
  protected registerSubscription(sub: Subscription): void;
148
133
  protected unregisterSubscription(sub: Subscription): void;
@@ -153,5 +138,7 @@ export declare class AppForm<T> implements IAppForm, OnInit, OnDestroy, IFormCon
153
138
  protected markForCheck(): void;
154
139
  private setLoading;
155
140
  static ɵfac: i0.ɵɵFactoryDeclaration<AppForm<any>, never>;
156
- static ɵdir: i0.ɵɵDirectiveDeclaration<AppForm<any>, never, never, { "debug": { "alias": "debug"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "errorTranslatorOptions": { "alias": "errorTranslatorOptions"; "required": false; }; "form": { "alias": "form"; "required": false; }; }, { "onCancel": "onCancel"; "onSubmit": "onSubmit"; }, never, never, false, never>;
141
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AppForm<any>, never, never, { "debug": { "alias": "debug"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "errorTranslateOptions": { "alias": "errorTranslateOptions"; "required": false; }; "form": { "alias": "form"; "required": false; }; }, { "onCancel": "onCancel"; "onSubmit": "onSubmit"; }, never, never, false, never>;
142
+ static ngAcceptInputType_debug: unknown;
143
+ static ngAcceptInputType_tabindex: unknown;
157
144
  }
@@ -6,8 +6,9 @@ import * as i4 from "./list/list.module";
6
6
  import * as i5 from "./properties/properties.module";
7
7
  import * as i6 from "./text-popover/text-popover.module";
8
8
  import * as i7 from "./buttons/form-buttons-bar.module";
9
+ import * as i8 from "./username/username.module";
9
10
  export declare class AppFormModule {
10
11
  static ɵfac: i0.ɵɵFactoryDeclaration<AppFormModule, never>;
11
- static ɵmod: i0.ɵɵNgModuleDeclaration<AppFormModule, never, [typeof i1.SharedModule, typeof i2.TranslateModule, typeof i3.AppEntityFormModule, typeof i4.AppListFormModule, typeof i5.AppPropertiesFormModule, typeof i6.AppTextPopoverModule, typeof i7.AppFormButtonsBarModule], [typeof i2.TranslateModule, typeof i3.AppEntityFormModule, typeof i4.AppListFormModule, typeof i5.AppPropertiesFormModule, typeof i6.AppTextPopoverModule, typeof i7.AppFormButtonsBarModule]>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AppFormModule, never, [typeof i1.SharedModule, typeof i2.TranslateModule, typeof i3.AppEntityFormModule, typeof i4.AppListFormModule, typeof i5.AppPropertiesFormModule, typeof i6.AppTextPopoverModule, typeof i7.AppFormButtonsBarModule, typeof i8.AppUsernameFormModule], [typeof i2.TranslateModule, typeof i3.AppEntityFormModule, typeof i4.AppListFormModule, typeof i5.AppPropertiesFormModule, typeof i6.AppTextPopoverModule, typeof i7.AppFormButtonsBarModule]>;
12
13
  static ɵinj: i0.ɵɵInjectorDeclaration<AppFormModule>;
13
14
  }