@sumaris-net/ngx-components 4.0.0-rc9 → 18.0.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 (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 +8 -6
  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
@@ -3,18 +3,17 @@ 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';
5
5
  import { AppForm } from '../form/form.class';
6
- import { FormArrayHelper } from '../form/form.utils';
6
+ import { CanLeave } from '../form/form.utils';
7
7
  import { TranslateService } from '@ngx-translate/core';
8
8
  import { LocalSettingsValidatorService } from '../services/validator/local-settings.validator';
9
9
  import { PlatformService } from '../services/platform.service';
10
10
  import { NetworkService } from '../services/network.service';
11
11
  import { LocalSettingsService } from '../services/local-settings.service';
12
- import { FormFieldDefinition, FormFieldDefinitionMap } from '../../shared/form/field.model';
12
+ import { FormFieldDefinition } from '../../shared/form/field.model';
13
13
  import { AlertController, NavController } from '@ionic/angular';
14
- import { Property } from '../../shared/types';
15
- import { CanLeave } from '../../shared/guard/component-dirty.guard';
16
14
  import { ISelectPeerModalOptions } from '../peer/select-peer.modal';
17
15
  import { IMenuItem } from '../menu/menu.model';
16
+ import { AppPropertiesForm } from '../form/properties/properties.form';
18
17
  import * as i0 from "@angular/core";
19
18
  export declare const APP_SETTINGS_MENU_ITEMS: InjectionToken<IMenuItem[]>;
20
19
  export declare class SettingsPage extends AppForm<LocalSettings> implements OnInit, OnDestroy, CanLeave {
@@ -30,25 +29,21 @@ export declare class SettingsPage extends AppForm<LocalSettings> implements OnIn
30
29
  network: NetworkService;
31
30
  locales: LocaleConfig[];
32
31
  private data;
33
- mobile: boolean;
34
- saving: boolean;
35
- usageModes: UsageMode[];
36
- menuItems: IMenuItem[];
37
- propertyDefinitions: FormFieldDefinition[];
38
- propertyDefinitionsByKey: FormFieldDefinitionMap;
39
- propertyDefinitionsByIndex: {
40
- [index: number]: FormFieldDefinition;
41
- };
42
- propertiesFormHelper: FormArrayHelper<Property>;
43
- latLongFormats: string[];
32
+ protected mobile: boolean;
33
+ protected isAdmin: boolean;
34
+ protected saving: boolean;
35
+ protected usageModes: UsageMode[];
36
+ protected menuItems: IMenuItem[];
37
+ protected propertyDefinitions: FormFieldDefinition[];
38
+ protected latLongFormats: string[];
44
39
  get accountInheritance(): boolean;
45
40
  get isLogin(): boolean;
46
- get propertiesForm(): UntypedFormArray;
41
+ get propertiesFormArray(): UntypedFormArray;
42
+ get darkMode(): boolean;
43
+ set darkMode(value: boolean);
44
+ propertiesForm: AppPropertiesForm;
47
45
  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?: IMenuItem[]);
48
46
  ngOnInit(): Promise<void>;
49
- getPropertyDefinition(index: number): FormFieldDefinition;
50
- updatePropertyDefinition(index: number): FormFieldDefinition;
51
- removePropertyAt(index: number): void;
52
47
  load(): Promise<void>;
53
48
  updateView(data: LocalSettings): void;
54
49
  save(event?: Event, options?: any): Promise<boolean>;
@@ -60,8 +55,26 @@ export declare class SettingsPage extends AppForm<LocalSettings> implements OnIn
60
55
  close(_?: Event): Promise<boolean>;
61
56
  clearCache(event?: Event): Promise<void>;
62
57
  executeAction(event: Event, item: IMenuItem): Promise<void>;
63
- protected getValue(): Promise<LocalSettings>;
64
- protected getJsonValueToSave(): Promise<any>;
58
+ getValue(): Promise<LocalSettings>;
59
+ markAsLoading(): void;
60
+ markAsLoaded(opts?: {
61
+ emitEvent?: boolean;
62
+ }): void;
63
+ get loading(): boolean;
64
+ get loaded(): boolean;
65
+ enable(opts?: {
66
+ onlySelf?: boolean;
67
+ emitEvent?: boolean;
68
+ }): void;
69
+ disable(opts?: {
70
+ onlySelf?: boolean;
71
+ emitEvent?: boolean;
72
+ }): void;
73
+ markAsPristine(opts?: {
74
+ onlySelf?: boolean;
75
+ emitEvent?: boolean;
76
+ }): void;
77
+ protected toggleDarkMode(enable?: boolean): Promise<void>;
65
78
  protected markForCheck(): void;
66
79
  static ɵfac: i0.ɵɵFactoryDeclaration<SettingsPage, [null, null, null, null, null, null, null, null, null, null, null, null, { optional: true; }]>;
67
80
  static ɵcmp: i0.ɵɵComponentDeclaration<SettingsPage, "page-settings", never, {}, {}, never, never, false, never>;
@@ -1,15 +1,15 @@
1
- import { AfterViewInit, EventEmitter, Injector, OnDestroy, OnInit } from '@angular/core';
1
+ import { AfterViewInit, ChangeDetectorRef, EventEmitter, Injector, OnDestroy, OnInit } from '@angular/core';
2
2
  import { MatPaginator } from '@angular/material/paginator';
3
3
  import { MatSort, MatSortable, SortDirection } from '@angular/material/sort';
4
4
  import { MatTable } from '@angular/material/table';
5
5
  import { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';
6
6
  import { SelectionModel } from '@angular/cdk/collections';
7
7
  import { IEntity } from '../services/model/entity.model';
8
- import { AlertController, ModalController, ToastController } from '@ionic/angular';
8
+ import { AlertController, ModalController, NavController, ToastController } from '@ionic/angular';
9
9
  import { ActivatedRoute, Router } from '@angular/router';
10
10
  import { ColumnItem } from './table-select-columns.component';
11
11
  import { Location } from '@angular/common';
12
- import { IAppForm } from '../form/form.utils';
12
+ import { CanSave, IAppForm } from '../form/form.utils';
13
13
  import { LocalSettingsService } from '../services/local-settings.service';
14
14
  import { TranslateService } from '@ngx-translate/core';
15
15
  import { MatAutocompleteConfigHolder, MatAutocompleteFieldAddOptions, MatAutocompleteFieldConfig } from '../../shared/material/autocomplete/material.autocomplete.config';
@@ -18,12 +18,12 @@ import { WaitForOptions } from '../../shared/observables';
18
18
  import { ShowToastOptions } from '../../shared/toast/toasts';
19
19
  import { CdkColumnDef } from '@angular/cdk/table';
20
20
  import { LoadResult } from '../../shared/services/entity-service.class';
21
- import { FormErrorTranslator, FormErrorTranslatorOptions, IFormControlPathTranslator } from '../../shared/validator/form-error-adapter.class';
21
+ import { FormErrorTranslateOptions, FormErrorTranslator, IFormPathTranslator } from '../../shared/validator/form-error-adapter.class';
22
22
  import { SaveActionType } from './table.model';
23
23
  import { AsyncTableElement } from '@e-is/ngx-material-table';
24
24
  import { EntitiesAsyncTableDataSource } from './entities-async-table-datasource.class';
25
25
  import * as i0 from "@angular/core";
26
- export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, ID = number> implements OnInit, OnDestroy, AfterViewInit, IAppForm, IFormControlPathTranslator {
26
+ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, ID = number> implements OnInit, OnDestroy, AfterViewInit, IAppForm, CanSave, IFormPathTranslator {
27
27
  protected columns: string[];
28
28
  protected _dataSource?: EntitiesAsyncTableDataSource<T, F, ID>;
29
29
  private _filter?;
@@ -34,8 +34,10 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
34
34
  protected _enabled: boolean;
35
35
  protected _autocompleteConfigHolder: MatAutocompleteConfigHolder;
36
36
  protected allowRowDetail: boolean;
37
+ protected readonly cd: ChangeDetectorRef;
37
38
  protected route: ActivatedRoute;
38
39
  protected router: Router;
40
+ protected navController: NavController;
39
41
  protected location: Location;
40
42
  protected settings: LocalSettingsService;
41
43
  protected translate: TranslateService;
@@ -49,7 +51,7 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
49
51
  displayedColumns: string[];
50
52
  totalRowCount: number | null;
51
53
  visibleRowCount: number;
52
- errorTranslatorOptions: FormErrorTranslatorOptions;
54
+ errorTranslateOptions: FormErrorTranslateOptions;
53
55
  readonly readySubject: BehaviorSubject<boolean>;
54
56
  readonly loadingSubject: BehaviorSubject<boolean>;
55
57
  readonly savingSubject: BehaviorSubject<boolean>;
@@ -203,7 +205,7 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
203
205
  setFilter(filter: F, opts?: {
204
206
  emitEvent?: boolean;
205
207
  permanentSelectionChangedPrevented?: boolean;
206
- }): void;
208
+ }): Promise<void>;
207
209
  confirmAndAdd(event?: Event, row?: AsyncTableElement<T>): Promise<boolean>;
208
210
  confirmAndBackward(event?: Event, row?: AsyncTableElement<T>): Promise<boolean>;
209
211
  confirmAndForward(event?: Event, row?: AsyncTableElement<T>): Promise<boolean>;
@@ -260,11 +262,12 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
260
262
  }): Promise<number>;
261
263
  selectRowById(id: number): Promise<boolean>;
262
264
  /**
263
- * Try to select row by data. Will use dataEquals() (that call EntityUtils.equals()) to find same row's data
265
+ * Try to select row by data. Will use equals() to find same row's data
264
266
  *
265
267
  * @param data
266
268
  */
267
269
  selectRowByData(data: T): Promise<boolean>;
270
+ toggleSelectRow(event: Event, row: AsyncTableElement<T>): void;
268
271
  clickRow(event: Event | undefined, row: AsyncTableElement<T>): Promise<boolean>;
269
272
  moveRow(id: number, direction: number): Promise<void>;
270
273
  ready(opts?: WaitForOptions): Promise<void>;
@@ -274,7 +277,7 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
274
277
  doRefresh(event?: CompletableEvent): void;
275
278
  getCurrentColumns(): ColumnItem[];
276
279
  escapeEditingRow(event?: Event, row?: AsyncTableElement<T>): Promise<void>;
277
- translateControlPath(path: string): string;
280
+ translateFormPath(path: string): string;
278
281
  protected editRow(event: Event | undefined, row: AsyncTableElement<T>, opts?: {
279
282
  focusColumn?: string;
280
283
  }): Promise<boolean>;
@@ -335,6 +338,7 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
335
338
  protected getShowColumn(columnName: string): boolean;
336
339
  protected startsWithUpperCase(input: string, search: string): boolean;
337
340
  protected markForCheck(): void;
341
+ protected detectChanges(): void;
338
342
  protected askDeleteConfirmation(event?: Event, rows?: AsyncTableElement<T>[]): Promise<boolean>;
339
343
  protected askCancelConfirmation(event?: Event, rows?: AsyncTableElement<T>[]): Promise<boolean>;
340
344
  protected askRestoreConfirmation(event?: Event): Promise<boolean>;
@@ -342,12 +346,12 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
342
346
  protected resetError(opts?: {
343
347
  emitEvent?: boolean;
344
348
  }): void;
345
- protected getRowError(row?: AsyncTableElement<T>, opts?: FormErrorTranslatorOptions): string;
349
+ protected getRowError(row?: AsyncTableElement<T>, opts?: FormErrorTranslateOptions): string;
346
350
  protected setError(value: string, opts?: {
347
351
  emitEvent?: boolean;
348
352
  }): void;
349
353
  /**
350
- * Compare data equality (default by id)
354
+ * Compare data equality (default by id, using EntityUtils.equals())
351
355
  * Can be overridden to add additional properties to compare
352
356
  *
353
357
  * @param d1
@@ -361,6 +365,13 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
361
365
  }): void;
362
366
  protected getPageSettings<T = any>(propertyName?: string): T;
363
367
  protected savePageSettings(value: any, propertyName?: string): Promise<void>;
368
+ protected emitRefresh(value?: any): void;
369
+ /**
370
+ * Initialize the permanent selection model
371
+ *
372
+ * @protected
373
+ */
374
+ protected initPermanentSelection(): void;
364
375
  private listenSortAndPaginationEvents;
365
376
  private editRowById;
366
377
  private setLoading;
@@ -373,12 +384,6 @@ export declare abstract class AppAsyncTable<T extends IEntity<T, ID>, F = any, I
373
384
  private listenDatasourceLoading;
374
385
  private startCellValueChanges;
375
386
  private stopCellValueChanges;
376
- /**
377
- * Initialize the permanent selection model
378
- *
379
- * @protected
380
- */
381
- private initPermanentSelection;
382
387
  static ɵfac: i0.ɵɵFactoryDeclaration<AppAsyncTable<any, any, any>, never>;
383
388
  static ɵdir: i0.ɵɵDirectiveDeclaration<AppAsyncTable<any, any, any>, never, never, { "settingsId": { "alias": "settingsId"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; "i18nColumnPrefix": { "alias": "i18nColumnPrefix"; "required": false; }; "i18nColumnSuffix": { "alias": "i18nColumnSuffix"; "required": false; }; "autoLoad": { "alias": "autoLoad"; "required": false; }; "readOnly": { "alias": "readOnly"; "required": false; }; "inlineEdition": { "alias": "inlineEdition"; "required": false; }; "focusFirstColumn": { "alias": "focusFirstColumn"; "required": false; }; "confirmBeforeDelete": { "alias": "confirmBeforeDelete"; "required": false; }; "confirmBeforeCancel": { "alias": "confirmBeforeCancel"; "required": false; }; "undoableDeletion": { "alias": "undoableDeletion"; "required": false; }; "saveBeforeDelete": { "alias": "saveBeforeDelete"; "required": false; }; "keepEditedRowOnSave": { "alias": "keepEditedRowOnSave"; "required": false; }; "saveBeforeSort": { "alias": "saveBeforeSort"; "required": false; }; "saveBeforeFilter": { "alias": "saveBeforeFilter"; "required": false; }; "propagateRowError": { "alias": "propagateRowError"; "required": false; }; "permanentSelectionAllowed": { "alias": "permanentSelectionAllowed"; "required": false; }; "defaultSortBy": { "alias": "defaultSortBy"; "required": false; }; "defaultSortDirection": { "alias": "defaultSortDirection"; "required": false; }; "defaultPageSize": { "alias": "defaultPageSize"; "required": false; }; "defaultPageSizeOptions": { "alias": "defaultPageSizeOptions"; "required": false; }; "focusColumn": { "alias": "focusColumn"; "required": false; }; "dataSource": { "alias": "dataSource"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "paginator": { "alias": "paginator"; "required": false; }; }, { "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, never>;
384
389
  }
@@ -0,0 +1,59 @@
1
+ import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
2
+ import { AsyncTableElement, TableElement } from '@e-is/ngx-material-table';
3
+ import { MatColumnDef, MatTable } from '@angular/material/table';
4
+ import { MatMenuTrigger } from '@angular/material/menu';
5
+ import * as i0 from "@angular/core";
6
+ export declare class ActionsColumnComponent<T extends TableElement<any> | AsyncTableElement<any> = TableElement<any>> implements OnInit, OnDestroy {
7
+ private table;
8
+ private cd;
9
+ columnDef: MatColumnDef;
10
+ matMenuTrigger: MatMenuTrigger;
11
+ matColumnDef: string;
12
+ style: 'table' | 'mat-table';
13
+ stickyEnd: boolean;
14
+ canCancel: boolean;
15
+ canConfirm: boolean;
16
+ canDelete: boolean;
17
+ canBackward: boolean;
18
+ canForward: boolean;
19
+ canConfirmAndAdd: boolean;
20
+ dirtyIcon: boolean | string;
21
+ optionsTitle: string;
22
+ classList: string;
23
+ cellTemplate: TemplateRef<{
24
+ $implicit: T;
25
+ }>;
26
+ optionsClick: EventEmitter<Event>;
27
+ cancelOrDeleteClick: EventEmitter<{
28
+ event: Event;
29
+ row: T;
30
+ }>;
31
+ confirmEditCreateClick: EventEmitter<{
32
+ event: Event;
33
+ row: T;
34
+ }>;
35
+ confirmAndAddClick: EventEmitter<{
36
+ event: Event;
37
+ row: T;
38
+ }>;
39
+ backward: EventEmitter<{
40
+ event: Event;
41
+ row: T;
42
+ }>;
43
+ forward: EventEmitter<{
44
+ event: Event;
45
+ row: T;
46
+ }>;
47
+ constructor(table: MatTable<any>, cd: ChangeDetectorRef);
48
+ ngOnInit(): void;
49
+ ngOnDestroy(): void;
50
+ static ɵfac: i0.ɵɵFactoryDeclaration<ActionsColumnComponent<any>, never>;
51
+ static ɵcmp: i0.ɵɵComponentDeclaration<ActionsColumnComponent<any>, "app-actions-column", never, { "matColumnDef": { "alias": "matColumnDef"; "required": false; }; "style": { "alias": "style"; "required": false; }; "stickyEnd": { "alias": "stickyEnd"; "required": false; }; "canCancel": { "alias": "canCancel"; "required": false; }; "canConfirm": { "alias": "canConfirm"; "required": false; }; "canDelete": { "alias": "canDelete"; "required": false; }; "canBackward": { "alias": "canBackward"; "required": false; }; "canForward": { "alias": "canForward"; "required": false; }; "canConfirmAndAdd": { "alias": "canConfirmAndAdd"; "required": false; }; "dirtyIcon": { "alias": "dirtyIcon"; "required": false; }; "optionsTitle": { "alias": "optionsTitle"; "required": false; }; "classList": { "alias": "class"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; }, { "optionsClick": "optionsClick"; "cancelOrDeleteClick": "cancelOrDeleteClick"; "confirmEditCreateClick": "confirmEditCreateClick"; "confirmAndAddClick": "confirmAndAddClick"; "backward": "backward"; "forward": "forward"; }, never, ["[matHeader]", "[matFooter]", "[matHeader]", "[matFooter]"], false, never>;
52
+ static ngAcceptInputType_stickyEnd: unknown;
53
+ static ngAcceptInputType_canCancel: unknown;
54
+ static ngAcceptInputType_canConfirm: unknown;
55
+ static ngAcceptInputType_canDelete: unknown;
56
+ static ngAcceptInputType_canBackward: unknown;
57
+ static ngAcceptInputType_canForward: unknown;
58
+ static ngAcceptInputType_canConfirmAndAdd: unknown;
59
+ }
@@ -0,0 +1,46 @@
1
+ import { ChangeDetectorRef, EventEmitter, OnDestroy, OnInit, TemplateRef } from '@angular/core';
2
+ import { AsyncTableElement, TableElement } from '@e-is/ngx-material-table';
3
+ import { MatColumnDef, MatTable } from '@angular/material/table';
4
+ import { MatMenuTrigger } from '@angular/material/menu';
5
+ import { AppTable } from '../table.class';
6
+ import { AppAsyncTable } from '../async-table.class';
7
+ import { Subject, Subscription } from 'rxjs';
8
+ import * as i0 from "@angular/core";
9
+ export declare class NavActionsColumnComponent<T extends TableElement<any> | AsyncTableElement<any> = TableElement<any>> implements OnInit, OnDestroy {
10
+ private matTable;
11
+ private cd;
12
+ _subscription: Subscription;
13
+ _forwardEventSubject: Subject<{
14
+ event: Event;
15
+ row: T;
16
+ }>;
17
+ _backwardEventSubject: Subject<{
18
+ event: Event;
19
+ row: T;
20
+ }>;
21
+ columnDef: MatColumnDef;
22
+ matMenuTrigger: MatMenuTrigger;
23
+ appTable: AppTable<any> | AppAsyncTable<any>;
24
+ matColumnDef: string;
25
+ style: 'table' | 'mat-table';
26
+ stickyEnd: boolean;
27
+ showPending: boolean;
28
+ dirtyIcon: boolean | string;
29
+ optionsTitle: string;
30
+ classList: string;
31
+ cellTemplate: TemplateRef<{
32
+ $implicit: T;
33
+ }>;
34
+ throttleTime: number;
35
+ optionsClick: EventEmitter<Event>;
36
+ constructor(matTable: MatTable<any>, cd: ChangeDetectorRef, appTable: AppTable<any>, appAsyncTable: AppAsyncTable<any>);
37
+ ngOnInit(): void;
38
+ ngOnDestroy(): void;
39
+ protected cancelOrDelete(event: Event, row: T): void;
40
+ protected confirmAndForward(event: Event, row: T): void;
41
+ protected confirmAndBackward(event: Event, row: T): void;
42
+ static ɵfac: i0.ɵɵFactoryDeclaration<NavActionsColumnComponent<any>, [null, null, { optional: true; }, { optional: true; }]>;
43
+ static ɵcmp: i0.ɵɵComponentDeclaration<NavActionsColumnComponent<any>, "app-nav-actions-column", never, { "appTable": { "alias": "appTable"; "required": false; }; "matColumnDef": { "alias": "matColumnDef"; "required": false; }; "style": { "alias": "style"; "required": false; }; "stickyEnd": { "alias": "stickyEnd"; "required": false; }; "showPending": { "alias": "showPending"; "required": false; }; "dirtyIcon": { "alias": "dirtyIcon"; "required": false; }; "optionsTitle": { "alias": "optionsTitle"; "required": false; }; "classList": { "alias": "class"; "required": false; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; }; "throttleTime": { "alias": "throttleTime"; "required": false; }; }, { "optionsClick": "optionsClick"; }, never, ["[matHeader]", "[matFooter]", "[matHeader]", "[matFooter]"], false, never>;
44
+ static ngAcceptInputType_stickyEnd: unknown;
45
+ static ngAcceptInputType_showPending: unknown;
46
+ }
@@ -0,0 +1,40 @@
1
+ import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
+ import { ThemePalette } from '@angular/material/core';
3
+ import { PredefinedColors } from '@ionic/core';
4
+ import { MatFormFieldAppearance } from '@angular/material/form-field';
5
+ import { AppFloatLabelType, FormFieldDefinition } from '../../../shared/form/field.model';
6
+ import { MatColumnDef, MatTable } from '@angular/material/table';
7
+ import { AsyncTableElement, TableElement } from '@e-is/ngx-material-table';
8
+ import * as i0 from "@angular/core";
9
+ export declare class AppRowField implements OnInit, OnDestroy {
10
+ protected cd: ChangeDetectorRef;
11
+ matTable: MatTable<any>;
12
+ columnDef: MatColumnDef;
13
+ name: string;
14
+ definition: FormFieldDefinition;
15
+ definitionFn: (row: TableElement<any> | AsyncTableElement<any>) => FormFieldDefinition;
16
+ headerI18n: string;
17
+ sortable: boolean;
18
+ resizable: boolean;
19
+ required: boolean;
20
+ readonly: boolean;
21
+ sticky: boolean;
22
+ draggable: boolean;
23
+ disabled: boolean;
24
+ placeholder: string;
25
+ compact: boolean;
26
+ floatLabel: AppFloatLabelType;
27
+ appearance: MatFormFieldAppearance;
28
+ tabindex: number;
29
+ autofocus: boolean;
30
+ clearable: boolean;
31
+ chipColor: ThemePalette | PredefinedColors;
32
+ classList: string;
33
+ debug: boolean;
34
+ protected logPrefix: string;
35
+ constructor(cd: ChangeDetectorRef, matTable: MatTable<any>);
36
+ ngOnInit(): void;
37
+ ngOnDestroy(): void;
38
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppRowField, never>;
39
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppRowField, "app-row-field", never, { "name": { "alias": "name"; "required": false; }; "definition": { "alias": "definition"; "required": false; }; "definitionFn": { "alias": "definitionFn"; "required": false; }; "headerI18n": { "alias": "headerI18n"; "required": false; }; "sortable": { "alias": "sortable"; "required": false; }; "resizable": { "alias": "resizable"; "required": false; }; "required": { "alias": "required"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "sticky": { "alias": "sticky"; "required": false; }; "draggable": { "alias": "draggable"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "compact": { "alias": "compact"; "required": false; }; "floatLabel": { "alias": "floatLabel"; "required": false; }; "appearance": { "alias": "appearance"; "required": false; }; "tabindex": { "alias": "tabindex"; "required": false; }; "autofocus": { "alias": "autofocus"; "required": false; }; "clearable": { "alias": "clearable"; "required": false; }; "chipColor": { "alias": "chipColor"; "required": false; }; "classList": { "alias": "class"; "required": false; }; "debug": { "alias": "debug"; "required": false; }; }, {}, never, never, false, never>;
40
+ }
@@ -66,6 +66,7 @@ export declare class EntitiesAsyncTableDataSource<T extends IEntity<T, ID>, F =
66
66
  getEditingRows(): R[];
67
67
  getSingleEditingRow(): R;
68
68
  hasSomeEditingRow(): boolean;
69
+ hasSomeDirtyRow(): boolean;
69
70
  createNew(insertAt?: number, opts?: {
70
71
  editing: boolean;
71
72
  }): Promise<R | undefined>;
@@ -80,6 +80,7 @@ export declare class EntitiesTableDataSource<T extends IEntity<T, ID>, F = any,
80
80
  getRow(id: number): R;
81
81
  getRows(): R[];
82
82
  hasSomeEditingRow(): boolean;
83
+ hasSomeDirtyRow(): boolean;
83
84
  createNew(insertAt?: number, opts?: {
84
85
  editing: boolean;
85
86
  }): Promise<R | undefined>;
@@ -1,4 +1,4 @@
1
- import { AfterViewInit, EventEmitter, Injector, OnDestroy, OnInit } from '@angular/core';
1
+ import { AfterViewInit, ChangeDetectorRef, EventEmitter, Injector, OnDestroy, OnInit } from '@angular/core';
2
2
  import { MatSort, MatSortable, SortDirection } from '@angular/material/sort';
3
3
  import { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';
4
4
  import { TableElement } from '@e-is/ngx-material-table';
@@ -9,7 +9,7 @@ import { AlertController, ModalController, NavController, ToastController } from
9
9
  import { ActivatedRoute, Router } from '@angular/router';
10
10
  import { ColumnItem } from './table-select-columns.component';
11
11
  import { Location } from '@angular/common';
12
- import { IAppForm } from '../form/form.utils';
12
+ import { CanSave, IAppForm } from '../form/form.utils';
13
13
  import { LocalSettingsService } from '../services/local-settings.service';
14
14
  import { TranslateService } from '@ngx-translate/core';
15
15
  import { MatAutocompleteConfigHolder, MatAutocompleteFieldAddOptions, MatAutocompleteFieldConfig } from '../../shared/material/autocomplete/material.autocomplete.config';
@@ -18,12 +18,12 @@ import { WaitForOptions } from '../../shared/observables';
18
18
  import { ShowToastOptions } from '../../shared/toast/toasts';
19
19
  import { CdkColumnDef } from '@angular/cdk/table';
20
20
  import { LoadResult } from '../../shared/services/entity-service.class';
21
- import { FormErrorTranslator, FormErrorTranslatorOptions, IFormControlPathTranslator } from '../../shared/validator/form-error-adapter.class';
21
+ import { FormErrorTranslateOptions, FormErrorTranslator, IFormPathTranslator } from '../../shared/validator/form-error-adapter.class';
22
22
  import { SaveActionType } from './table.model';
23
23
  import { MatPaginator } from '@angular/material/paginator';
24
24
  import { MatTable } from '@angular/material/table';
25
25
  import * as i0 from "@angular/core";
26
- export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = number> implements OnInit, OnDestroy, AfterViewInit, IAppForm, IFormControlPathTranslator {
26
+ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = number> implements OnInit, OnDestroy, AfterViewInit, IAppForm, CanSave, IFormPathTranslator {
27
27
  protected columns: string[];
28
28
  protected _dataSource?: EntitiesTableDataSource<T, F, ID>;
29
29
  private _filter?;
@@ -34,6 +34,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
34
34
  protected _enabled: boolean;
35
35
  protected _autocompleteConfigHolder: MatAutocompleteConfigHolder;
36
36
  protected allowRowDetail: boolean;
37
+ protected readonly cd: ChangeDetectorRef;
37
38
  protected route: ActivatedRoute;
38
39
  protected router: Router;
39
40
  protected navController: NavController;
@@ -50,7 +51,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
50
51
  displayedColumns: string[];
51
52
  totalRowCount: number | null;
52
53
  visibleRowCount: number;
53
- errorTranslatorOptions: FormErrorTranslatorOptions;
54
+ errorTranslateOptions: FormErrorTranslateOptions;
54
55
  readonly readySubject: BehaviorSubject<boolean>;
55
56
  readonly loadingSubject: BehaviorSubject<boolean>;
56
57
  readonly savingSubject: BehaviorSubject<boolean>;
@@ -211,7 +212,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
211
212
  permanentSelectionChangedPrevented?: boolean;
212
213
  }): void;
213
214
  confirmAndAdd(event?: Event, row?: TableElement<T>): Promise<boolean>;
214
- confirmAndBackward(event?: Event, row?: TableElement<T>): boolean;
215
+ confirmAndBackward(event?: Event, row?: TableElement<T>): boolean | Promise<boolean>;
215
216
  confirmAndForward(event?: Event, row?: TableElement<T>): boolean | Promise<boolean>;
216
217
  /**
217
218
  * Confirm the creation of the given row, or if not specified the currently edited row
@@ -271,17 +272,17 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
271
272
  * @param data
272
273
  */
273
274
  selectRowByData(data: T): Promise<boolean>;
274
- toggleSelectRow(event: Event, row: TableElement<T>): void;
275
+ toggleSelectRow(event: Event | undefined, row: TableElement<T>): void;
275
276
  clickRow(event: Event | undefined, row: TableElement<T>): boolean;
276
277
  moveRow(id: number, direction: number): void;
277
278
  ready(opts?: WaitForOptions): Promise<void>;
278
279
  waitIdle(opts?: WaitForOptions): Promise<void>;
279
- openSelectColumnsModal(_?: Event): Promise<any>;
280
+ openSelectColumnsModal(event?: Event): Promise<any>;
280
281
  trackByFn(index: number, row: TableElement<T>): number;
281
282
  doRefresh(event?: CompletableEvent): void;
282
283
  getCurrentColumns(): ColumnItem[];
283
284
  escapeEditingRow(event?: Event, row?: TableElement<T>): void;
284
- translateControlPath(path: string): string;
285
+ translateFormPath(path: string): string;
285
286
  protected editRow(event: Event | undefined, row: TableElement<T>, opts?: {
286
287
  focusColumn?: string;
287
288
  }): boolean;
@@ -306,7 +307,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
306
307
  protected saveBeforeAction(saveAction: SaveActionType): Promise<boolean>;
307
308
  /**
308
309
  * Open a row detail view. By default, will to open row detail page.
309
- * Can be override by subclasses, BUT prefer to subscribe on onOpenRow
310
+ * Can be overridden by subclasses, BUT prefer to subscribe on onOpenRow
310
311
  *
311
312
  * @param id
312
313
  * @param row
@@ -342,6 +343,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
342
343
  protected getShowColumn(columnName: string): boolean;
343
344
  protected startsWithUpperCase(input: string, search: string): boolean;
344
345
  protected markForCheck(): void;
346
+ protected detectChanges(): void;
345
347
  protected askDeleteConfirmation(event?: Event, rows?: TableElement<T>[]): Promise<boolean>;
346
348
  protected askCancelConfirmation(event?: Event, rows?: TableElement<T>[]): Promise<boolean>;
347
349
  protected askRestoreConfirmation(event?: Event): Promise<boolean>;
@@ -349,7 +351,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
349
351
  protected resetError(opts?: {
350
352
  emitEvent?: boolean;
351
353
  }): void;
352
- protected getRowError(row?: TableElement<T>, opts?: FormErrorTranslatorOptions): string;
354
+ protected getRowError(row?: TableElement<T>, opts?: FormErrorTranslateOptions): string;
353
355
  protected setError(value: string, opts?: {
354
356
  emitEvent?: boolean;
355
357
  }): void;
@@ -368,6 +370,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
368
370
  }): void;
369
371
  protected getPageSettings<T = any>(propertyName?: string): T;
370
372
  protected savePageSettings(value: any, propertyName?: string): Promise<void>;
373
+ protected emitRefresh(value?: any): void;
371
374
  /**
372
375
  * Initialize the permanent selection model
373
376
  *
@@ -1,10 +1,14 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./table-select-columns.component";
3
- import * as i2 from "./actions-column.component";
4
- import * as i3 from "../../shared/shared.module";
5
- import * as i4 from "@ngx-translate/core";
3
+ import * as i2 from "./column/actions-column.component";
4
+ import * as i3 from "./column/nav-actions-column.component";
5
+ import * as i4 from "./column/row-field.component";
6
+ import * as i5 from "./table.pipes";
7
+ import * as i6 from "../../shared/shared.module";
8
+ import * as i7 from "@ngx-translate/core";
9
+ import * as i8 from "../../shared/directives/resizable/resizable.module";
6
10
  export declare class AppTableModule {
7
11
  static ɵfac: i0.ɵɵFactoryDeclaration<AppTableModule, never>;
8
- static ɵmod: i0.ɵɵNgModuleDeclaration<AppTableModule, [typeof i1.TableSelectColumnsComponent, typeof i2.ActionsColumnComponent], [typeof i3.SharedModule, typeof i4.TranslateModule], [typeof i4.TranslateModule, typeof i1.TableSelectColumnsComponent, typeof i2.ActionsColumnComponent]>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AppTableModule, [typeof i1.TableSelectColumnsComponent, typeof i2.ActionsColumnComponent, typeof i3.NavActionsColumnComponent, typeof i4.AppRowField, typeof i5.IsAllSelectedPipe, typeof i5.IsNotAllSelectedPipe], [typeof i6.SharedModule, typeof i7.TranslateModule, typeof i8.ResizableModule], [typeof i7.TranslateModule, typeof i1.TableSelectColumnsComponent, typeof i2.ActionsColumnComponent, typeof i3.NavActionsColumnComponent, typeof i4.AppRowField, typeof i5.IsAllSelectedPipe, typeof i5.IsNotAllSelectedPipe]>;
9
13
  static ɵinj: i0.ɵɵInjectorDeclaration<AppTableModule>;
10
14
  }
@@ -0,0 +1,28 @@
1
+ import { ChangeDetectorRef, OnDestroy, PipeTransform } from '@angular/core';
2
+ import { SelectionModel } from '@angular/cdk/collections';
3
+ import { AbstractSelectionModelPipe } from '../../shared/pipes/selection.pipes';
4
+ import { AppTable } from './table.class';
5
+ import { Subscription } from 'rxjs';
6
+ import * as i0 from "@angular/core";
7
+ export type AppTableRowCountProperty = 'visibleRowCount' | 'totalRowCount';
8
+ export declare abstract class AbstractTableSelectionPipe<R, O, T extends AppTable<any> = AppTable<any>> extends AbstractSelectionModelPipe<any, R, O> {
9
+ private _onRowsChanges;
10
+ protected constructor(_ref: ChangeDetectorRef);
11
+ transform(selectionOrTable: SelectionModel<any> | T, tableOrOpts?: T | O, opts?: O): R;
12
+ protected _subscribe(selection: SelectionModel<any>, table?: T, opts?: O): Subscription;
13
+ protected _dispose(): void;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<AbstractTableSelectionPipe<any, any, any>, never>;
15
+ static ɵpipe: i0.ɵɵPipeDeclaration<AbstractTableSelectionPipe<any, any, any>, "abstract-table-selection", false>;
16
+ }
17
+ export declare class IsAllSelectedPipe extends AbstractTableSelectionPipe<boolean, AppTableRowCountProperty> implements PipeTransform, OnDestroy {
18
+ constructor(_ref: ChangeDetectorRef);
19
+ protected _transform(selection: SelectionModel<any>, table: AppTable<any>, countPropertyName?: AppTableRowCountProperty): boolean;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<IsAllSelectedPipe, never>;
21
+ static ɵpipe: i0.ɵɵPipeDeclaration<IsAllSelectedPipe, "isAllSelected", false>;
22
+ }
23
+ export declare class IsNotAllSelectedPipe extends IsAllSelectedPipe implements PipeTransform, OnDestroy {
24
+ constructor(_ref: ChangeDetectorRef);
25
+ protected _transform(selection: SelectionModel<any>, table: AppTable<any>, countPropertyName?: AppTableRowCountProperty): boolean;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<IsNotAllSelectedPipe, never>;
27
+ static ɵpipe: i0.ɵɵPipeDeclaration<IsNotAllSelectedPipe, "isNotAllSelected", false>;
28
+ }
@@ -1,4 +1,4 @@
1
- import { AfterViewInit, ChangeDetectorRef, Injector, OnDestroy, OnInit } from '@angular/core';
1
+ import { AfterViewInit, Injector, OnDestroy, OnInit } from '@angular/core';
2
2
  import { AppTable } from '../table.class';
3
3
  import { Referential } from '../../services/model/referential.model';
4
4
  import { IonInfiniteScroll } from '@ionic/angular';
@@ -8,13 +8,11 @@ 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';
12
11
  import * as i0 from "@angular/core";
13
12
  export declare class TableTestPage extends AppTable<Referential, ReferentialFilter> implements OnInit, OnDestroy, AfterViewInit {
14
13
  protected validatorService: AppValidatorService;
15
14
  protected formBuilder: UntypedFormBuilder;
16
- protected cd: ChangeDetectorRef;
17
- readonly maxRowCount = 100;
15
+ static readonly maxRowCount = 100;
18
16
  timer: Subscription;
19
17
  canEdit: boolean;
20
18
  data: Referential[];
@@ -24,32 +22,33 @@ export declare class TableTestPage extends AppTable<Referential, ReferentialFilt
24
22
  rowHeight: number;
25
23
  permanentSelectionAllowed: boolean;
26
24
  readonly statusList: readonly import("../../services/model/referential.model").IStatus[];
27
- readonly statusById: Readonly<import("@sumaris-net/ngx-components").KeyValueType<import("../../services/model/referential.model").IStatus>>;
28
- readonly columnDefinitions: FormFieldDefinitionMap;
25
+ filterPanelFloating: boolean;
29
26
  enableInfiniteScroll: boolean;
30
- useSticky: boolean;
27
+ sticky: boolean;
28
+ stickyEnd: boolean;
31
29
  get hasMoreData(): boolean;
32
30
  filterExpansionPanel: MatExpansionPanel;
33
31
  infiniteScroll: IonInfiniteScroll;
34
32
  get dataService(): InMemoryEntitiesService<Referential>;
35
- constructor(injector: Injector, validatorService: AppValidatorService, formBuilder: UntypedFormBuilder, cd: ChangeDetectorRef);
33
+ constructor(injector: Injector, validatorService: AppValidatorService, formBuilder: UntypedFormBuilder);
36
34
  ngOnInit(): void;
37
- ngAfterViewInit(): void;
35
+ ngAfterViewInit(): Promise<void>;
38
36
  ngOnDestroy(): void;
39
- protected restoreFilter(): void;
37
+ protected restoreFilter(): Promise<void>;
40
38
  toggleTimer(): void;
41
- load(): void;
39
+ load(): Promise<void>;
42
40
  fetchMore(event: any): Promise<void>;
43
41
  save(opts?: {
44
42
  keepEditing?: boolean;
45
43
  }): Promise<boolean>;
46
44
  clearControlValue(event: Event, formControl: AbstractControl): boolean;
45
+ toggleFilterPanelFloating(): void;
47
46
  applyFilterAndClosePanel(event?: Event): void;
47
+ closeFilterPanel(): void;
48
48
  resetFilter(_?: Event): void;
49
49
  startTimer(): void;
50
50
  stopTimer(): void;
51
51
  protected generateData(offset?: number, size?: number): Referential[];
52
- protected markForCheck(): void;
53
52
  static ɵfac: i0.ɵɵFactoryDeclaration<TableTestPage, never>;
54
- static ɵcmp: i0.ɵɵComponentDeclaration<TableTestPage, "app-table-testing", never, { "enableInfiniteScroll": { "alias": "enableInfiniteScroll"; "required": false; }; "useSticky": { "alias": "useSticky"; "required": false; }; }, {}, never, never, false, never>;
53
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableTestPage, "app-table-testing", never, { "filterPanelFloating": { "alias": "filterPanelFloating"; "required": false; }; "enableInfiniteScroll": { "alias": "enableInfiniteScroll"; "required": false; }; "sticky": { "alias": "sticky"; "required": false; }; "stickyEnd": { "alias": "stickyEnd"; "required": false; }; }, {}, never, never, false, never>;
55
54
  }