@sumaris-net/ngx-components 2.0.0-rc1 → 2.0.0-rc4

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 (287) hide show
  1. package/doc/changelog.md +50 -0
  2. package/esm2020/public_api.mjs +9 -5
  3. package/esm2020/src/app/admin/admin-routing.module.mjs +5 -5
  4. package/esm2020/src/app/admin/admin.module.mjs +13 -28
  5. package/esm2020/src/app/admin/services/person.service.mjs +3 -3
  6. package/esm2020/src/app/admin/services/validator/person.validator.mjs +3 -3
  7. package/esm2020/src/app/admin/users/list/users.mjs +33 -27
  8. package/esm2020/src/app/admin/users/list/users.module.mjs +58 -0
  9. package/esm2020/src/app/core/about/modal-about.mjs +3 -3
  10. package/esm2020/src/app/core/account/account.mjs +3 -3
  11. package/esm2020/src/app/core/auth/form/form-auth.mjs +3 -3
  12. package/esm2020/src/app/core/auth/modal/modal-auth.mjs +3 -3
  13. package/esm2020/src/app/core/core.module.mjs +6 -6
  14. package/esm2020/src/app/core/core.testing.module.mjs +26 -12
  15. package/esm2020/src/app/core/form/editor.class.mjs +129 -62
  16. package/esm2020/src/app/core/form/entity-editor-modal.class.mjs +25 -10
  17. package/esm2020/src/app/core/form/entity-editor.class.mjs +10 -33
  18. package/esm2020/src/app/core/form/entity-metadata.component.mjs +3 -3
  19. package/esm2020/src/app/core/form/form-buttons-bar.component.mjs +3 -3
  20. package/esm2020/src/app/core/form/form.class.mjs +10 -4
  21. package/esm2020/src/app/core/form/form.utils.mjs +39 -4
  22. package/esm2020/src/app/core/form/list.form.mjs +7 -6
  23. package/esm2020/src/app/core/form/properties/properties.form.mjs +129 -0
  24. package/esm2020/src/app/core/form/properties/property.validator.mjs +23 -0
  25. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +90 -0
  26. package/esm2020/src/app/core/form/properties/testing/properties-form.testing.module.mjs +39 -0
  27. package/esm2020/src/app/core/graphql/graphql.module.mjs +4 -4
  28. package/esm2020/src/app/core/graphql/graphql.service.mjs +3 -3
  29. package/esm2020/src/app/core/graphql/graphql.utils.mjs +2 -2
  30. package/esm2020/src/app/core/home/home.mjs +3 -3
  31. package/esm2020/src/app/core/icon/icon.component.mjs +5 -5
  32. package/esm2020/src/app/core/icon/icon.module.mjs +4 -4
  33. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +3 -3
  34. package/esm2020/src/app/core/install/install-upgrade-card.module.mjs +4 -4
  35. package/esm2020/src/app/core/menu/menu.component.mjs +3 -3
  36. package/esm2020/src/app/core/menu/menu.module.mjs +4 -4
  37. package/esm2020/src/app/core/menu/menu.service.mjs +3 -3
  38. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +3 -3
  39. package/esm2020/src/app/core/peer/select-peer.modal.mjs +3 -3
  40. package/esm2020/src/app/core/peer/select-peer.module.mjs +4 -4
  41. package/esm2020/src/app/core/register/confirm/confirm.mjs +3 -3
  42. package/esm2020/src/app/core/register/form/form-register.mjs +3 -3
  43. package/esm2020/src/app/core/register/modal/modal-register.mjs +3 -3
  44. package/esm2020/src/app/core/register/register.module.mjs +4 -4
  45. package/esm2020/src/app/core/services/account.service.mjs +5 -5
  46. package/esm2020/src/app/core/services/auth-guard.service.mjs +3 -3
  47. package/esm2020/src/app/core/services/base-entity-service.class.mjs +8 -9
  48. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +3 -3
  49. package/esm2020/src/app/core/services/config.service.mjs +5 -5
  50. package/esm2020/src/app/core/services/crypto.service.mjs +3 -3
  51. package/esm2020/src/app/core/services/local-settings.service.mjs +3 -3
  52. package/esm2020/src/app/core/services/model/peer.model.mjs +3 -3
  53. package/esm2020/src/app/core/services/model/referential.model.mjs +11 -3
  54. package/esm2020/src/app/core/services/network.service.mjs +21 -28
  55. package/esm2020/src/app/core/services/pipes/account.pipes.mjs +8 -8
  56. package/esm2020/src/app/core/services/pipes/department-to-string.pipe.mjs +4 -4
  57. package/esm2020/src/app/core/services/pipes/person-to-string.pipe.mjs +4 -4
  58. package/esm2020/src/app/core/services/pipes/usage-mode.pipes.mjs +8 -8
  59. package/esm2020/src/app/core/services/platform.service.mjs +3 -3
  60. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +3 -3
  61. package/esm2020/src/app/core/services/testing/referential.validator.mjs +3 -3
  62. package/esm2020/src/app/core/services/validator/account.validator.mjs +3 -3
  63. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +3 -3
  64. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +3 -3
  65. package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +3 -3
  66. package/esm2020/src/app/core/settings/settings.page.mjs +4 -4
  67. package/esm2020/src/app/core/table/actions-column.component.mjs +9 -9
  68. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +74 -65
  69. package/esm2020/src/app/core/table/memory-table.class.mjs +3 -3
  70. package/esm2020/src/app/core/table/table-select-columns.component.mjs +3 -3
  71. package/esm2020/src/app/core/table/table.class.mjs +223 -208
  72. package/esm2020/src/app/core/table/table.utils.mjs +1 -1
  73. package/esm2020/src/app/core/table/testing/table.testing.mjs +5 -5
  74. package/esm2020/src/app/core/table/testing/table.testing.module.mjs +4 -4
  75. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.mjs +3 -3
  76. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.module.mjs +4 -4
  77. package/esm2020/src/app/core/text-popover/text-form.component.mjs +3 -3
  78. package/esm2020/src/app/core/text-popover/text-popover.component.mjs +3 -3
  79. package/esm2020/src/app/shared/audio/audio.mjs +4 -4
  80. package/esm2020/src/app/shared/audio/audio.testing.mjs +3 -3
  81. package/esm2020/src/app/shared/audio/audio.testing.module.mjs +4 -4
  82. package/esm2020/src/app/shared/capacitor/keyboard.mjs +3 -3
  83. package/esm2020/src/app/shared/debug/debug.component.mjs +39 -0
  84. package/esm2020/src/app/shared/debug/debug.module.mjs +44 -0
  85. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +6 -6
  86. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +3 -3
  87. package/esm2020/src/app/shared/directives/directives.module.mjs +4 -4
  88. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +3 -3
  89. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +3 -3
  90. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +3 -3
  91. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +3 -3
  92. package/esm2020/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
  93. package/esm2020/src/app/shared/events.mjs +2 -2
  94. package/esm2020/src/app/shared/file/file.service.mjs +5 -5
  95. package/esm2020/src/app/shared/form/field.component.mjs +10 -7
  96. package/esm2020/src/app/shared/form/loading-spinner.mjs +3 -3
  97. package/esm2020/src/app/shared/forms.mjs +21 -2
  98. package/esm2020/src/app/shared/functions.mjs +23 -10
  99. package/esm2020/src/app/shared/gesture/gesture-config.mjs +3 -3
  100. package/esm2020/src/app/shared/graph/graph-colors.mjs +17 -63
  101. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +3 -3
  102. package/esm2020/src/app/shared/help/help.modal.mjs +3 -3
  103. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +3 -3
  104. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +3 -3
  105. package/esm2020/src/app/shared/hotkeys/shared-hotkeys.module.mjs +4 -4
  106. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +3 -3
  107. package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +4 -4
  108. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +3 -3
  109. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +3 -3
  110. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +4 -4
  111. package/esm2020/src/app/shared/image/image.module.mjs +4 -4
  112. package/esm2020/src/app/shared/image/image.service.mjs +3 -3
  113. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +8 -10
  114. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +4 -4
  115. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +3 -3
  116. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +157 -0
  117. package/esm2020/src/app/shared/material/badge/badge.module.mjs +32 -0
  118. package/esm2020/src/app/shared/material/badge/badge.test.mjs +26 -0
  119. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +4 -4
  120. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +3 -3
  121. package/esm2020/src/app/shared/material/chips/chips.module.mjs +4 -4
  122. package/esm2020/src/app/shared/material/chips/material.chips.mjs +11 -13
  123. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +3 -3
  124. package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +4 -4
  125. package/esm2020/src/app/shared/material/datetime/material.date.mjs +79 -83
  126. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +5 -5
  127. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +95 -77
  128. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +5 -5
  129. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +5 -5
  130. package/esm2020/src/app/shared/material/duration/duration.module.mjs +4 -4
  131. package/esm2020/src/app/shared/material/duration/material.duration.mjs +3 -3
  132. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +3 -3
  133. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +4 -4
  134. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +3 -3
  135. package/esm2020/src/app/shared/material/material.animations.mjs +1 -1
  136. package/esm2020/src/app/shared/material/material.module.mjs +10 -10
  137. package/esm2020/src/app/shared/material/material.testing.module.mjs +24 -12
  138. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +3 -3
  139. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +3 -3
  140. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +5 -5
  141. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +3 -3
  142. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +3 -3
  143. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +3 -3
  144. package/esm2020/src/app/shared/material/numpad/numpad.module.mjs +4 -4
  145. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +3 -3
  146. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +3 -3
  147. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +3 -3
  148. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +3 -3
  149. package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +4 -4
  150. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +3 -3
  151. package/esm2020/src/app/shared/observables.mjs +29 -22
  152. package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +48 -27
  153. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +3 -3
  154. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +4 -4
  155. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +4 -4
  156. package/esm2020/src/app/shared/pipes/date-from-now.pipe.mjs +4 -4
  157. package/esm2020/src/app/shared/pipes/duration.pipe.mjs +4 -4
  158. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +3 -3
  159. package/esm2020/src/app/shared/pipes/form.pipes.mjs +18 -18
  160. package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +4 -4
  161. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +9 -9
  162. package/esm2020/src/app/shared/pipes/maps.pipe.mjs +12 -12
  163. package/esm2020/src/app/shared/pipes/math.pipes.mjs +12 -12
  164. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +3 -3
  165. package/esm2020/src/app/shared/pipes/number-format.pipe.mjs +4 -4
  166. package/esm2020/src/app/shared/pipes/pipes.module.mjs +10 -6
  167. package/esm2020/src/app/shared/pipes/property.pipes.mjs +7 -7
  168. package/esm2020/src/app/shared/pipes/string.pipes.mjs +15 -15
  169. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +8 -8
  170. package/esm2020/src/app/shared/services/entity-service.class.mjs +1 -13
  171. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +127 -43
  172. package/esm2020/src/app/shared/services/progress-bar.service.mjs +3 -3
  173. package/esm2020/src/app/shared/services/startable-observable-service.class.mjs +119 -0
  174. package/esm2020/src/app/shared/services/startable-service.class.mjs +42 -31
  175. package/esm2020/src/app/shared/services/storage/storage.service.mjs +3 -3
  176. package/esm2020/src/app/shared/services/translate-context.service.mjs +3 -3
  177. package/esm2020/src/app/shared/shared-routing.module.mjs +7 -7
  178. package/esm2020/src/app/shared/shared.module.mjs +4 -4
  179. package/esm2020/src/app/shared/shared.testing.module.mjs +4 -4
  180. package/esm2020/src/app/shared/testing/observable.test.mjs +96 -0
  181. package/esm2020/src/app/shared/testing/tests.page.mjs +3 -3
  182. package/esm2020/src/app/shared/toast/toast.testing.mjs +10 -11
  183. package/esm2020/src/app/shared/toast/toast.testing.module.mjs +4 -4
  184. package/esm2020/src/app/shared/toast/toasts.mjs +38 -15
  185. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +5 -5
  186. package/esm2020/src/app/shared/toolbar/toolbar.mjs +9 -9
  187. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +4 -4
  188. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +3 -3
  189. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +4 -4
  190. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +3 -3
  191. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +3 -3
  192. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +3 -3
  193. package/esm2020/src/app/social/job/job.module.mjs +9 -9
  194. package/esm2020/src/app/social/job/job.service.mjs +27 -15
  195. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +210 -0
  196. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +3 -3
  197. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +33 -31
  198. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +27 -5
  199. package/esm2020/src/app/social/job/testing/job.testing.module.mjs +4 -4
  200. package/esm2020/src/app/social/message/message.form.mjs +3 -3
  201. package/esm2020/src/app/social/message/message.modal.mjs +3 -3
  202. package/esm2020/src/app/social/message/message.module.mjs +4 -4
  203. package/esm2020/src/app/social/message/message.service.mjs +3 -3
  204. package/esm2020/src/app/social/social.module.mjs +5 -5
  205. package/esm2020/src/app/social/social.testing.module.mjs +4 -4
  206. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +28 -17
  207. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +6 -6
  208. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +6 -6
  209. package/esm2020/src/app/social/user-event/testing/user-event.testing.module.mjs +4 -4
  210. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +3 -3
  211. package/esm2020/src/app/social/user-event/user-event.module.mjs +9 -9
  212. package/esm2020/src/app/social/user-event/user-event.service.mjs +5 -5
  213. package/esm2020/src/app/vendor.mjs +6 -1
  214. package/fesm2015/sumaris-net.ngx-components.mjs +2692 -1945
  215. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
  216. package/fesm2020/sumaris-net.ngx-components.mjs +2512 -1718
  217. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
  218. package/package.json +6 -2
  219. package/public_api.d.ts +8 -4
  220. package/src/app/admin/admin.module.d.ts +4 -8
  221. package/src/app/admin/users/list/users.d.ts +1 -0
  222. package/src/app/admin/users/list/users.module.d.ts +14 -0
  223. package/src/app/core/core.module.d.ts +1 -1
  224. package/src/app/core/core.testing.module.d.ts +2 -1
  225. package/src/app/core/form/editor.class.d.ts +20 -6
  226. package/src/app/core/form/entity-editor-modal.class.d.ts +13 -4
  227. package/src/app/core/form/entity-editor.class.d.ts +4 -11
  228. package/src/app/core/form/form.class.d.ts +2 -0
  229. package/src/app/core/form/form.utils.d.ts +28 -2
  230. package/src/app/core/form/{properties.form.d.ts → properties/properties.form.d.ts} +13 -13
  231. package/src/app/core/form/properties/property.validator.d.ts +13 -0
  232. package/src/app/core/form/properties/testing/properties-form.test.d.ts +19 -0
  233. package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +12 -0
  234. package/src/app/core/services/model/referential.model.d.ts +6 -1
  235. package/src/app/core/services/network.service.d.ts +6 -8
  236. package/src/app/core/table/entities-table-datasource.class.d.ts +22 -15
  237. package/src/app/core/table/table.class.d.ts +37 -47
  238. package/src/app/core/table/table.utils.d.ts +2 -1
  239. package/src/app/shared/debug/debug.component.d.ts +13 -0
  240. package/src/app/shared/debug/debug.module.d.ts +12 -0
  241. package/src/app/shared/events.d.ts +4 -4
  242. package/src/app/shared/form/field.component.d.ts +4 -1
  243. package/src/app/shared/forms.d.ts +8 -1
  244. package/src/app/shared/functions.d.ts +9 -4
  245. package/src/app/shared/graph/graph-colors.d.ts +8 -8
  246. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +1 -1
  247. package/src/app/shared/material/badge/badge.directive.d.ts +28 -0
  248. package/src/app/shared/material/badge/badge.module.d.ts +10 -0
  249. package/src/app/shared/material/badge/badge.test.d.ts +12 -0
  250. package/src/app/shared/material/datetime/material.date.d.ts +12 -13
  251. package/src/app/shared/material/datetime/material.datetime.d.ts +14 -14
  252. package/src/app/shared/material/material.module.d.ts +2 -2
  253. package/src/app/shared/material/material.testing.module.d.ts +10 -9
  254. package/src/app/shared/observables.d.ts +1 -1
  255. package/src/app/shared/pipes/arrays.pipe.d.ts +12 -2
  256. package/src/app/shared/pipes/pipes.module.d.ts +1 -1
  257. package/src/app/shared/services/entity-service.class.d.ts +0 -11
  258. package/src/app/shared/services/memory-entity-service.class.d.ts +20 -6
  259. package/src/app/shared/services/startable-observable-service.class.d.ts +33 -0
  260. package/src/app/shared/services/startable-service.class.d.ts +12 -9
  261. package/src/app/shared/testing/observable.test.d.ts +25 -0
  262. package/src/app/shared/toast/toast.testing.d.ts +3 -5
  263. package/src/app/shared/toast/toasts.d.ts +5 -2
  264. package/src/app/social/job/job.module.d.ts +2 -2
  265. package/src/app/social/job/job.service.d.ts +10 -2
  266. package/src/app/social/job/progression/{job-progression.component.d.ts → job-progression.icon.d.ts} +5 -5
  267. package/src/app/social/job/testing/job-progression.testing.d.ts +7 -4
  268. package/src/app/social/job/testing/job-progression.testing.service.d.ts +4 -0
  269. package/src/app/social/social.module.d.ts +1 -1
  270. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +8 -5
  271. package/src/app/social/user-event/testing/user-event.testing.d.ts +2 -2
  272. package/src/app/social/user-event/user-event.module.d.ts +1 -1
  273. package/src/app/social/user-event/user-event.service.d.ts +1 -1
  274. package/src/app/vendor.d.ts +2 -0
  275. package/src/theme/_ionic.globals.scss +4 -0
  276. package/src/theme/_material.globals.scss +3 -1
  277. package/src/theme/_material.scss +29 -4
  278. package/src/theme/_mixins.scss +3 -3
  279. package/src/theme/_ngx-components.scss +26 -0
  280. package/esm2020/src/app/core/form/properties.form.mjs +0 -126
  281. package/esm2020/src/app/shared/material/badge/badge-icon.directive.mjs +0 -143
  282. package/esm2020/src/app/shared/material/badge/badge-icon.module.mjs +0 -32
  283. package/esm2020/src/app/shared/material/badge/badge-icon.test.mjs +0 -27
  284. package/esm2020/src/app/social/job/progression/job-progression.component.mjs +0 -201
  285. package/src/app/shared/material/badge/badge-icon.directive.d.ts +0 -30
  286. package/src/app/shared/material/badge/badge-icon.module.d.ts +0 -10
  287. package/src/app/shared/material/badge/badge-icon.test.d.ts +0 -12
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@sumaris-net/ngx-components",
3
3
  "description": "SUMARiS Angular components",
4
- "version": "2.0.0-rc1",
4
+ "version": "2.0.0-rc4",
5
5
  "author": "contact@e-is.pro",
6
6
  "license": "AGPL-3.0",
7
7
  "readmeFilename": "README.md",
@@ -13,9 +13,13 @@
13
13
  "tslib": "~2.3.0"
14
14
  },
15
15
  "peerDependencies": {
16
+ "@angular-devkit/build-angular": "~14.2.5",
17
+ "@angular/compiler-cli": "~14.2.5",
16
18
  "@apollo/client": "~3.6.9",
17
19
  "@ionic/storage": "~3.0.6",
18
- "localforage": "~1.10.0"
20
+ "d3": "~7.6.1",
21
+ "localforage": "~1.10.0",
22
+ "rxjs": "^6.6.7"
19
23
  },
20
24
  "repository": {
21
25
  "type": "git",
package/public_api.d.ts CHANGED
@@ -30,8 +30,8 @@ export * from './src/app/shared/material/numpad/numpad.content';
30
30
  export * from './src/app/shared/material/numpad/numpad.component';
31
31
  export * from './src/app/shared/material/swipe/swipe.module';
32
32
  export * from './src/app/shared/material/swipe/material.swipe';
33
- export * from './src/app/shared/material/badge/badge-icon.module';
34
- export * from './src/app/shared/material/badge/badge-icon.directive';
33
+ export * from './src/app/shared/material/badge/badge.module';
34
+ export * from './src/app/shared/material/badge/badge.directive';
35
35
  export * from './src/app/shared/inputs';
36
36
  export { AppFormField } from './src/app/shared/form/field.component';
37
37
  export * from './src/app/shared/form/loading-spinner';
@@ -110,6 +110,8 @@ export * from './src/app/shared/gesture/hammer.utils';
110
110
  export * from './src/app/shared/validator/validators';
111
111
  export * from './src/app/shared/validator/form-error-adapter.class';
112
112
  export * from './src/app/shared/material/latlong/latlong.utils';
113
+ export * from './src/app/shared/debug/debug.module';
114
+ export * from './src/app/shared/debug/debug.component';
113
115
  export * from './src/app/core/core.module';
114
116
  export * from './src/app/core/services/model/account.model';
115
117
  export * from './src/app/core/services/model/config.model';
@@ -151,7 +153,7 @@ export * from './src/app/core/form/form.class';
151
153
  export * from './src/app/core/form/form.utils';
152
154
  export * from './src/app/core/form/form-buttons-bar.component';
153
155
  export * from './src/app/core/form/list.form';
154
- export * from './src/app/core/form/properties.form';
156
+ export * from './src/app/core/form/properties/properties.form';
155
157
  export * from './src/app/core/table/table.class';
156
158
  export * from './src/app/core/table/table.utils';
157
159
  export * from './src/app/core/table/memory-table.class';
@@ -191,7 +193,8 @@ export * from './src/app/social/user-event/notification/user-event-notification.
191
193
  export * from './src/app/social/job/job.module';
192
194
  export * from './src/app/social/job/job.model';
193
195
  export * from './src/app/social/job/job.service';
194
- export * from './src/app/social/job/progression/job-progression.component';
196
+ export * from './src/app/social/job/progression/job-progression.icon';
197
+ export * from './src/app/social/job/progression/job-progression.list';
195
198
  export * from './src/app/social/message/message.module';
196
199
  export * from './src/app/social/message/message.model';
197
200
  export * from './src/app/social/message/message.service';
@@ -202,6 +205,7 @@ export { AdminRoutingModule } from './src/app/admin/admin-routing.module';
202
205
  export * from './src/app/admin/services/filter/person.filter';
203
206
  export * from './src/app/admin/services/validator/person.validator';
204
207
  export * from './src/app/admin/services/person.service';
208
+ export * from './src/app/admin/users/list/users.module';
205
209
  export * from './src/app/admin/users/list/users';
206
210
  export * from './src/app/shared/testing/tests.page';
207
211
  import * as _test from './public_test_api';
@@ -1,14 +1,10 @@
1
1
  import * as i0 from "@angular/core";
2
- import * as i1 from "./users/list/users";
3
- import * as i2 from "@angular/common";
4
- import * as i3 from "../core/core.module";
5
- import * as i4 from "../social/social.module";
6
- import * as i5 from "../shared/material/material.module";
7
- import * as i6 from "ngx-jdenticon";
8
- import * as i7 from "@ngx-translate/core";
2
+ import * as i1 from "@angular/common";
3
+ import * as i2 from "../core/core.module";
4
+ import * as i3 from "./users/list/users.module";
9
5
  export declare class AdminModule {
10
6
  constructor();
11
7
  static ɵfac: i0.ɵɵFactoryDeclaration<AdminModule, never>;
12
- static ɵmod: i0.ɵɵNgModuleDeclaration<AdminModule, [typeof i1.UsersPage], [typeof i2.CommonModule, typeof i3.CoreModule, typeof i4.SocialModule, typeof i5.SharedMaterialModule, typeof i6.NgxJdenticonModule, typeof i7.TranslateModule], [typeof i4.SocialModule, typeof i1.UsersPage]>;
8
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AdminModule, never, [typeof i1.CommonModule, typeof i2.CoreModule, typeof i3.AdminUsersModule], [typeof i3.AdminUsersModule]>;
13
9
  static ɵinj: i0.ɵɵInjectorDeclaration<AdminModule>;
14
10
  }
@@ -31,6 +31,7 @@ export declare class UsersPage extends AppTable<Person, PersonFilter> implements
31
31
  useSticky: boolean;
32
32
  constructor(injector: Injector, formBuilder: UntypedFormBuilder, accountService: AccountService, validatorService: ValidatorService, configService: ConfigService, dataService: PersonService, messageService: MessageService, cd: ChangeDetectorRef, environment: any);
33
33
  filterExpansionPanel: MatExpansionPanel;
34
+ get firstUserColumn(): string;
34
35
  ngOnInit(): void;
35
36
  applyFilterAndClosePanel(event?: Event): void;
36
37
  resetFilter(event?: Event): void;
@@ -0,0 +1,14 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./users";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "ngx-jdenticon";
5
+ import * as i4 from "@ngx-translate/core";
6
+ import * as i5 from "../../../core/core.module";
7
+ import * as i6 from "../../../social/social.module";
8
+ import * as i7 from "../../../shared/material/material.module";
9
+ import * as i8 from "../../../shared/debug/debug.module";
10
+ export declare class AdminUsersModule {
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<AdminUsersModule, never>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AdminUsersModule, [typeof i1.UsersPage], [typeof i2.CommonModule, typeof i3.NgxJdenticonModule, typeof i4.TranslateModule, typeof i5.CoreModule, typeof i6.SocialModule, typeof i7.SharedMaterialModule, typeof i8.SharedDebugModule], [typeof i6.SocialModule, typeof i4.TranslateModule, typeof i1.UsersPage]>;
13
+ static ɵinj: i0.ɵɵInjectorDeclaration<AdminUsersModule>;
14
+ }
@@ -15,7 +15,7 @@ import * as i12 from "./table/table-select-columns.component";
15
15
  import * as i13 from "./table/actions-column.component";
16
16
  import * as i14 from "./form/entity-metadata.component";
17
17
  import * as i15 from "./form/form-buttons-bar.component";
18
- import * as i16 from "./form/properties.form";
18
+ import * as i16 from "./form/properties/properties.form";
19
19
  import * as i17 from "./form/list.form";
20
20
  import * as i18 from "./text-popover/text-popover.component";
21
21
  import * as i19 from "./text-popover/text-form.component";
@@ -5,9 +5,10 @@ import * as i2 from "@ngx-translate/core";
5
5
  import * as i3 from "@angular/router";
6
6
  import * as i4 from "./table/testing/table.testing.module";
7
7
  import * as i5 from "./text-popover/testing/text-popover.testing.module";
8
+ import * as i6 from "./form/properties/testing/properties-form.testing.module";
8
9
  export declare const CORE_TESTING_PAGES: TestingPage[];
9
10
  export declare class CoreTestingModule {
10
11
  static ɵfac: i0.ɵɵFactoryDeclaration<CoreTestingModule, never>;
11
- static ɵmod: i0.ɵɵNgModuleDeclaration<CoreTestingModule, never, [typeof i1.CommonModule, typeof i2.TranslateModule, typeof i3.RouterModule, typeof i4.TableTestingModule, typeof i5.TextPopoverTestingModule], [typeof i3.RouterModule, typeof i4.TableTestingModule, typeof i5.TextPopoverTestingModule]>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CoreTestingModule, never, [typeof i1.CommonModule, typeof i2.TranslateModule, typeof i3.RouterModule, typeof i4.TableTestingModule, typeof i5.TextPopoverTestingModule, typeof i6.PropertiesFormTestingModule], [typeof i3.RouterModule, typeof i4.TableTestingModule, typeof i5.TextPopoverTestingModule, typeof i6.PropertiesFormTestingModule]>;
12
13
  static ɵinj: i0.ɵɵInjectorDeclaration<CoreTestingModule>;
13
14
  }
@@ -53,12 +53,14 @@ export declare abstract class AppEditor<T = any, ID = number, O = any> implement
53
53
  private _children;
54
54
  private _subscription;
55
55
  protected _enabled: boolean;
56
- protected _dirty: boolean;
57
56
  protected toastController: ToastController;
58
57
  protected readonly destroySubject: Subject<void>;
59
58
  readonly readySubject: BehaviorSubject<boolean>;
59
+ readonly dirtySubject: BehaviorSubject<boolean>;
60
60
  readonly loadingSubject: BehaviorSubject<boolean>;
61
61
  readonly errorSubject: BehaviorSubject<string>;
62
+ readonly savingSubject: BehaviorSubject<boolean>;
63
+ readonly touchedSubject: BehaviorSubject<boolean>;
62
64
  debug: boolean;
63
65
  previousDataId: ID;
64
66
  submitted: boolean;
@@ -85,6 +87,8 @@ export declare abstract class AppEditor<T = any, ID = number, O = any> implement
85
87
  protected get _$loading(): BehaviorSubject<boolean>;
86
88
  get error(): string;
87
89
  set error(error: string);
90
+ get saving(): boolean;
91
+ get destroyed(): boolean;
88
92
  toolbar: ToolbarToken | null;
89
93
  formButtonsBar: FormButtonsBarToken | null;
90
94
  content: IonContent;
@@ -99,6 +103,9 @@ export declare abstract class AppEditor<T = any, ID = number, O = any> implement
99
103
  get invalid(): boolean;
100
104
  get pending(): boolean;
101
105
  get loading(): boolean;
106
+ get loaded(): boolean;
107
+ get touched(): boolean;
108
+ get untouched(): boolean;
102
109
  get enabled(): boolean;
103
110
  get disabled(): boolean;
104
111
  get children(): IAppForm[];
@@ -155,6 +162,12 @@ export declare abstract class AppEditor<T = any, ID = number, O = any> implement
155
162
  }): void;
156
163
  ready(opts?: WaitForOptions): Promise<void>;
157
164
  waitIdle(opts?: WaitForOptions): Promise<void>;
165
+ markAsSaving(opts?: {
166
+ emitEvent?: boolean;
167
+ }): void;
168
+ markAsSaved(opts?: {
169
+ emitEvent?: boolean;
170
+ }): void;
158
171
  cancel(event?: Event): Promise<void>;
159
172
  /**
160
173
  * Unload the page (remove all data). Useful when reusing angular cache a cancelled page
@@ -169,15 +182,16 @@ export declare abstract class AppEditor<T = any, ID = number, O = any> implement
169
182
  abstract load(id?: ID, options?: O): Promise<void>;
170
183
  abstract save(event?: Event, options?: any): Promise<boolean>;
171
184
  abstract reload(): Promise<void>;
172
- logFormErrors(): void;
185
+ logFormErrors(prefix?: string): void;
173
186
  protected scrollToTop(duration?: number): Promise<void>;
174
187
  protected registerSubscription(sub: Subscription | TeardownLogic): void;
175
188
  protected unregisterSubscription(sub: Subscription): void;
176
- protected saveIfDirtyAndConfirm(event?: Event, opts?: {
177
- emitEvent: boolean;
189
+ protected saveIfDirtyAndConfirm(event?: UIEvent, opts?: {
190
+ emitEvent?: boolean;
191
+ confirmed?: boolean;
178
192
  }): Promise<boolean>;
179
193
  protected showToast(opts: ShowToastOptions): Promise<void>;
180
- protected logChildrenFormErrors(c: IAppForm | AbstractControl, prefix?: string, path?: string): void;
194
+ protected logChildrenErrors(c: IAppForm | AbstractControl, prefix?: string, path?: string): void;
181
195
  protected setError(value: string, opts?: {
182
196
  emitEvent?: boolean;
183
197
  }): void;
@@ -221,7 +235,7 @@ export declare abstract class AppTabEditor<T = any, ID = number, O = any> extend
221
235
  emitEvent?: boolean;
222
236
  }): Promise<void>;
223
237
  protected abstract getFirstInvalidTabIndex(): number;
224
- protected saveDirtyTables(): Promise<boolean>;
238
+ protected saveDirtyChildren(): Promise<boolean>;
225
239
  static ɵfac: i0.ɵɵFactoryDeclaration<AppTabEditor<any, any, any>, [{ optional: true; }, null, null, null, { optional: true; }]>;
226
240
  static ɵdir: i0.ɵɵDirectiveDeclaration<AppTabEditor<any, any, any>, never, never, { "queryTabIndexParamName": "queryTabIndexParamName"; "selectedTabIndex": "selectedTabIndex"; }, { "selectedTabIndexChange": "selectedTabIndexChange"; }, never, never, false>;
227
241
  }
@@ -13,11 +13,12 @@ import { FormErrorTranslator } from '../../shared/validator/form-error-adapter.c
13
13
  import { AppErrorWithDetails } from './entity-editor.class';
14
14
  import * as i0 from "@angular/core";
15
15
  export interface IEntityEditorModalOptions<T extends Entity<T, ID> = Entity<any, any>, ID = number> {
16
- usageMode: UsageMode;
16
+ isNew: boolean;
17
17
  data: T;
18
18
  disabled: boolean;
19
19
  onAfterModalInit?: <M extends AppEntityEditorModal<T, ID>>(modal: M) => void | Promise<void>;
20
20
  onDelete?: (event: Event, data: T) => Promise<boolean>;
21
+ usageMode: UsageMode;
21
22
  mobile: boolean;
22
23
  i18nSuffix?: string;
23
24
  }
@@ -28,7 +29,7 @@ export declare abstract class AppEntityEditorModal<T extends Entity<T, ID>, ID =
28
29
  protected dataType: new () => T;
29
30
  private _usageMode;
30
31
  protected _logPrefix: any;
31
- protected _isNewData: boolean;
32
+ protected _isNew: boolean;
32
33
  protected readonly dateFormat: DateFormatPipe;
33
34
  protected readonly cd: ChangeDetectorRef;
34
35
  protected readonly settings: LocalSettingsService;
@@ -43,8 +44,16 @@ export declare abstract class AppEntityEditorModal<T extends Entity<T, ID>, ID =
43
44
  onAfterModalInit: <M extends AppEntityEditorModal<T, ID>>(modal: M) => void | Promise<void>;
44
45
  onDelete: (event: Event, data: T) => Promise<boolean>;
45
46
  i18nSuffix: string;
46
- set isNewData(value: boolean);
47
+ set isNew(value: boolean);
48
+ get isNew(): boolean;
49
+ /**
50
+ * @deprecated use isNew instead
51
+ */
47
52
  get isNewData(): boolean;
53
+ /**
54
+ * @deprecated use isNew instead
55
+ */
56
+ set isNewData(value: boolean);
48
57
  set disabled(value: boolean);
49
58
  get disabled(): boolean;
50
59
  get isOnFieldMode(): boolean;
@@ -118,5 +127,5 @@ export declare abstract class AppEntityEditorModal<T extends Entity<T, ID>, ID =
118
127
  */
119
128
  private openFirstInvalidTab;
120
129
  static ɵfac: i0.ɵɵFactoryDeclaration<AppEntityEditorModal<any, any, any>, never>;
121
- static ɵdir: i0.ɵɵDirectiveDeclaration<AppEntityEditorModal<any, any, any>, never, never, { "data": "data"; "mobile": "mobile"; "usageMode": "usageMode"; "onAfterModalInit": "onAfterModalInit"; "onDelete": "onDelete"; "i18nSuffix": "i18nSuffix"; "isNewData": "isNewData"; "disabled": "disabled"; }, {}, never, never, false>;
130
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AppEntityEditorModal<any, any, any>, never, never, { "data": "data"; "mobile": "mobile"; "usageMode": "usageMode"; "onAfterModalInit": "onAfterModalInit"; "onDelete": "onDelete"; "i18nSuffix": "i18nSuffix"; "isNew": "isNew"; "isNewData": "isNewData"; "disabled": "disabled"; }, {}, never, never, false>;
122
131
  }
@@ -1,5 +1,5 @@
1
1
  import { AfterViewInit, ChangeDetectorRef, EventEmitter, Injector, OnDestroy, OnInit } from '@angular/core';
2
- import { BehaviorSubject, Observable, Subject } from 'rxjs';
2
+ import { Observable, Subject } from 'rxjs';
3
3
  import { AddToPageHistoryOptions, LocalSettingsService } from '../services/local-settings.service';
4
4
  import { Entity } from '../services/model/entity.model';
5
5
  import { UsageMode } from '../services/model/settings.model';
@@ -59,7 +59,6 @@ export declare abstract class AppEntityEditor<T extends Entity<T, ID>, S extends
59
59
  protected readonly settings: LocalSettingsService;
60
60
  protected readonly environment: Environment;
61
61
  protected errorTranslator: FormErrorTranslator;
62
- readonly savingSubject: BehaviorSubject<boolean>;
63
62
  data: T;
64
63
  defaultBackHref: string;
65
64
  historyIcon: {
@@ -72,15 +71,7 @@ export declare abstract class AppEntityEditor<T extends Entity<T, ID>, S extends
72
71
  set usageMode(value: UsageMode);
73
72
  get isOnFieldMode(): boolean;
74
73
  get isNewData(): boolean;
75
- get loading(): boolean;
76
- get saving(): boolean;
77
74
  get service(): S;
78
- markAsSaving(opts?: {
79
- emitEvent?: boolean;
80
- }): void;
81
- markAsSaved(opts?: {
82
- emitEvent?: boolean;
83
- }): void;
84
75
  protected constructor(injector: Injector, dataType: new () => T, dataService?: S, options?: AppEditorOptions);
85
76
  ngOnInit(): void;
86
77
  ngAfterViewInit(): void;
@@ -144,7 +135,9 @@ export declare abstract class AppEntityEditor<T extends Entity<T, ID>, S extends
144
135
  saveAndGetDataIfValid(): Promise<T | undefined>;
145
136
  delete(event?: Event): Promise<boolean>;
146
137
  reload(): Promise<void>;
147
- unload(): Promise<void>;
138
+ unload(opts?: {
139
+ emitEvent?: boolean;
140
+ }): Promise<void>;
148
141
  goBack(event?: Event): Promise<void | boolean>;
149
142
  resetError(opts?: {
150
143
  emitEvent?: boolean;
@@ -51,6 +51,7 @@ export declare abstract class AppForm<T> implements IAppForm, OnInit, OnDestroy,
51
51
  get pending(): boolean;
52
52
  get valid(): boolean;
53
53
  get empty(): boolean;
54
+ get touched(): boolean;
54
55
  get untouched(): boolean;
55
56
  get enabled(): boolean;
56
57
  get disabled(): boolean;
@@ -62,6 +63,7 @@ export declare abstract class AppForm<T> implements IAppForm, OnInit, OnDestroy,
62
63
  onlySelf?: boolean;
63
64
  emitEvent?: boolean;
64
65
  }): void;
66
+ get destroyed(): boolean;
65
67
  debug: boolean;
66
68
  tabindex: number;
67
69
  errorTranslatorOptions: FormErrorTranslatorOptions;
@@ -2,7 +2,7 @@ import { AbstractControl, UntypedFormArray, UntypedFormBuilder, UntypedFormGroup
2
2
  import { Entity } from '../services/model/entity.model';
3
3
  import { filterNumberInput, selectInputContent } from '../../shared/inputs';
4
4
  import { WaitForOptions } from '../../shared/observables';
5
- import { addValueInArray, clearValueInArray, copyEntity2Form, disableControls, getControlFromPath, getFormErrors, getFormValueFromEntity, logFormErrors, markAllAsTouched, markAsUntouched, removeValueInArray, resizeArray, updateValueAndValidity, waitIdle, waitWhilePending } from '../../shared/forms';
5
+ import { clearValueInArray, copyEntity2Form, disableControls, getControlFromPath, getFormErrors, getFormValueFromEntity, logFormErrors, markAllAsTouched, markAsUntouched, pushValueInArray, removeValueInArray, resizeArray, updateValueAndValidity, waitIdle, waitWhilePending } from '../../shared/forms';
6
6
  export declare type IAppFormGetter = () => IAppForm;
7
7
  export declare interface OnReady {
8
8
  ngOnReady(): any;
@@ -15,6 +15,8 @@ export interface IAppForm {
15
15
  error: string;
16
16
  enabled: boolean;
17
17
  disabled: boolean;
18
+ touched: boolean;
19
+ untouched: boolean;
18
20
  empty?: boolean;
19
21
  loading?: boolean;
20
22
  ready(): Promise<void>;
@@ -71,7 +73,9 @@ export declare class AppNullForm implements IAppForm {
71
73
  readonly error: any;
72
74
  readonly enabled = false;
73
75
  readonly loading = false;
76
+ readonly touched = false;
74
77
  get disabled(): boolean;
78
+ get untouched(): boolean;
75
79
  disable(opts?: {
76
80
  onlySelf?: boolean;
77
81
  emitEvent?: boolean;
@@ -129,6 +133,8 @@ export declare class AppFormProvider<F extends IAppForm = IAppForm> implements I
129
133
  get empty(): boolean;
130
134
  get pending(): boolean;
131
135
  get loading(): boolean;
136
+ get touched(): boolean;
137
+ get untouched(): boolean;
132
138
  ready(): Promise<any>;
133
139
  waitIdle(opts?: WaitForOptions): Promise<any>;
134
140
  disable(opts?: {
@@ -174,22 +180,35 @@ export declare class AppFormProvider<F extends IAppForm = IAppForm> implements I
174
180
  export interface FormArrayHelperOptions {
175
181
  allowEmptyArray: boolean;
176
182
  validators?: ValidatorFn[];
183
+ helperProperty?: boolean;
177
184
  }
178
185
  export declare class FormArrayHelper<T = Entity<any>, C extends AbstractControl = AbstractControl> {
179
186
  private readonly _formArray;
180
187
  private createControl;
181
188
  private equals;
182
189
  private isEmpty;
190
+ static FORMA_HELPER_PROPERTY: string;
183
191
  static getOrCreateArray(formBuilder: UntypedFormBuilder, form: UntypedFormGroup, arrayName: string): UntypedFormArray;
192
+ static hasHelper(formArray: UntypedFormArray): formArray is UntypedFormArray & {
193
+ _helper: FormArrayHelper<any>;
194
+ };
184
195
  private _allowEmptyArray;
185
196
  private readonly _validators;
186
197
  get allowEmptyArray(): boolean;
187
198
  set allowEmptyArray(value: boolean);
188
199
  get formArray(): UntypedFormArray;
189
200
  constructor(_formArray: UntypedFormArray, createControl: (value?: T) => C, equals: (v1: T, v2: T) => boolean, isEmpty: (value: T) => boolean, options?: FormArrayHelperOptions);
201
+ /**
202
+ * @param value
203
+ * @param options
204
+ * @deprecated Use push() instead
205
+ */
190
206
  add(value?: T, options?: {
191
207
  emitEvent: boolean;
192
208
  }): boolean;
209
+ push(value?: T, options?: {
210
+ emitEvent: boolean;
211
+ }): boolean;
193
212
  removeAt(index: number): boolean;
194
213
  resize(length: number): boolean;
195
214
  clearAt(index: number): boolean;
@@ -197,6 +216,13 @@ export declare class FormArrayHelper<T = Entity<any>, C extends AbstractControl
197
216
  removeAllEmpty(): void;
198
217
  size(): number;
199
218
  at(index: number): C;
219
+ /**
220
+ * Patch a FormArray, using default values
221
+ * @param values default values to apply.
222
+ * @param opts
223
+ * @return true if form arry has been changed
224
+ */
225
+ patchValue(values: T[]): boolean;
200
226
  disable(opts?: {
201
227
  onlySelf?: boolean;
202
228
  emitEvent?: boolean;
@@ -232,7 +258,7 @@ export declare class AppFormUtils {
232
258
  static updateValueAndValidity: typeof updateValueAndValidity;
233
259
  static getFormErrors: typeof getFormErrors;
234
260
  static isForm(object: any): object is IAppForm;
235
- static addValueInArray: typeof addValueInArray;
261
+ static pushValueInArray: typeof pushValueInArray;
236
262
  static removeValueInArray: typeof removeValueInArray;
237
263
  static resizeArray: typeof resizeArray;
238
264
  static clearValueInArray: typeof clearValueInArray;
@@ -1,18 +1,21 @@
1
1
  import { ChangeDetectorRef, Injector, OnInit } from '@angular/core';
2
2
  import { UntypedFormArray, UntypedFormBuilder, UntypedFormGroup, FormGroupDirective } from '@angular/forms';
3
- import { FormFieldDefinition, FormFieldDefinitionMap } from '../../shared/form/field.model';
4
- import { DateAdapter } from '@angular/material/core';
3
+ import { FormFieldDefinition, FormFieldDefinitionMap } from '../../../shared/form/field.model';
4
+ import { DateAdapter, ThemePalette } from '@angular/material/core';
5
5
  import { Moment } from 'moment';
6
- import { LocalSettingsService } from '../services/local-settings.service';
7
- import { AppForm } from './form.class';
8
- import { FormArrayHelper, FormArrayHelperOptions } from './form.utils';
9
- import { Property } from '../../shared/types';
6
+ import { LocalSettingsService } from '../../services/local-settings.service';
7
+ import { AppForm } from '../form.class';
8
+ import { FormArrayHelper, FormArrayHelperOptions } from '../form.utils';
9
+ import { Property } from '../../../shared/types';
10
+ import { PropertyValidator } from './property.validator';
11
+ import { PredefinedColors } from '@ionic/core';
10
12
  import * as i0 from "@angular/core";
11
13
  export declare class AppPropertiesForm<T = Property> extends AppForm<T[]> implements OnInit {
12
14
  protected formBuilder: UntypedFormBuilder;
13
15
  protected dateAdapter: DateAdapter<Moment>;
14
16
  protected settings: LocalSettingsService;
15
17
  protected cd: ChangeDetectorRef;
18
+ protected validator: PropertyValidator;
16
19
  private formGroupDir;
17
20
  definitionsMapByKey: FormFieldDefinitionMap;
18
21
  definitionsByIndex: {
@@ -23,21 +26,18 @@ export declare class AppPropertiesForm<T = Property> extends AppForm<T[]> implem
23
26
  formArray: UntypedFormArray;
24
27
  options: FormArrayHelperOptions;
25
28
  definitions: FormFieldDefinition[];
29
+ chipColor: ThemePalette | PredefinedColors;
26
30
  set value(data: T[]);
27
31
  get value(): T[];
28
32
  get fieldForms(): UntypedFormGroup[];
29
- constructor(injector: Injector, formBuilder: UntypedFormBuilder, dateAdapter: DateAdapter<Moment>, settings: LocalSettingsService, cd: ChangeDetectorRef, formGroupDir: FormGroupDirective);
33
+ constructor(injector: Injector, formBuilder: UntypedFormBuilder, dateAdapter: DateAdapter<Moment>, settings: LocalSettingsService, cd: ChangeDetectorRef, validator: PropertyValidator, formGroupDir: FormGroupDirective);
30
34
  ngOnInit(): void;
31
35
  getDefinitionAt(index: number): FormFieldDefinition;
32
36
  updateDefinitionAt(index: number): FormFieldDefinition;
33
37
  removeAt(index: number): void;
34
38
  isUnknownField(fieldForm: UntypedFormGroup): boolean;
35
39
  setValue(data: T[] | any): void;
36
- protected getPropertyFormGroup(data?: {
37
- key: string;
38
- value?: string;
39
- }): UntypedFormGroup;
40
40
  protected markForCheck(): void;
41
- static ɵfac: i0.ɵɵFactoryDeclaration<AppPropertiesForm<any>, [null, null, null, null, null, { optional: true; }]>;
42
- static ɵcmp: i0.ɵɵComponentDeclaration<AppPropertiesForm<any>, "app-properties-form", never, { "formArrayName": "formArrayName"; "formArray": "formArray"; "options": "options"; "definitions": "definitions"; }, {}, never, never, false>;
41
+ static ɵfac: i0.ɵɵFactoryDeclaration<AppPropertiesForm<any>, [null, null, null, null, null, null, { optional: true; }]>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<AppPropertiesForm<any>, "app-properties-form", never, { "formArrayName": "formArrayName"; "formArray": "formArray"; "options": "options"; "definitions": "definitions"; "chipColor": "chipColor"; }, {}, never, never, false>;
43
43
  }
@@ -0,0 +1,13 @@
1
+ import { UntypedFormBuilder } from '@angular/forms';
2
+ import { Property } from '../../../shared/types';
3
+ import { AppValidatorService } from '../../services/validator/base.validator.class';
4
+ import * as i0 from "@angular/core";
5
+ export declare class PropertyValidator extends AppValidatorService<Property> {
6
+ protected formBuilder: UntypedFormBuilder;
7
+ constructor(formBuilder: UntypedFormBuilder);
8
+ getFormGroupConfig(data?: Property): {
9
+ [p: string]: any;
10
+ };
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<PropertyValidator, never>;
12
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PropertyValidator, never, never, {}, {}, never, never, false>;
13
+ }
@@ -0,0 +1,19 @@
1
+ import { AfterViewInit, OnInit } from '@angular/core';
2
+ import { FormFieldDefinition } from '../../../../shared/form/field.model';
3
+ import { AppPropertiesForm } from '../properties.form';
4
+ import { LoadResult } from '../../../../shared/services/entity-service.class';
5
+ import { FormBuilder, FormGroup } from '@angular/forms';
6
+ import * as i0 from "@angular/core";
7
+ export declare class PropertiesFormTestPage implements OnInit, AfterViewInit {
8
+ protected formBuilder: FormBuilder;
9
+ propertyDefinitions: FormFieldDefinition[];
10
+ i18nFieldPrefix: string;
11
+ form: FormGroup;
12
+ propertiesForm: AppPropertiesForm;
13
+ constructor(formBuilder: FormBuilder);
14
+ ngOnInit(): void;
15
+ ngAfterViewInit(): void;
16
+ protected suggestEntity(value: any, filter: any): Promise<LoadResult<any>>;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<PropertiesFormTestPage, never>;
18
+ static ɵcmp: i0.ɵɵComponentDeclaration<PropertiesFormTestPage, "app-properties-form-test", never, {}, {}, never, never, false>;
19
+ }
@@ -0,0 +1,12 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./properties-form.test";
3
+ import * as i2 from "@angular/common";
4
+ import * as i3 from "../../../../shared/shared.module";
5
+ import * as i4 from "../../../core.module";
6
+ import * as i5 from "@ngx-translate/core";
7
+ import * as i6 from "@angular/router";
8
+ export declare class PropertiesFormTestingModule {
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<PropertiesFormTestingModule, never>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<PropertiesFormTestingModule, [typeof i1.PropertiesFormTestPage], [typeof i2.CommonModule, typeof i3.SharedModule, typeof i4.CoreModule, typeof i5.TranslateModule], [typeof i6.RouterModule, typeof i1.PropertiesFormTestPage]>;
11
+ static ɵinj: i0.ɵɵInjectorDeclaration<PropertiesFormTestingModule>;
12
+ }
@@ -1,5 +1,6 @@
1
1
  import { Moment } from 'moment';
2
2
  import { Entity, EntityAsObjectOptions, IEntity } from './entity.model';
3
+ import { IconRef } from '../../../shared/types';
3
4
  export declare function referentialToString(obj: Referential | any, properties?: string[]): string | undefined;
4
5
  export declare function referentialsToString(values: Referential[], properties?: string[], separator?: string): string;
5
6
  export declare interface IStatus {
@@ -8,7 +9,7 @@ export declare interface IStatus {
8
9
  label: string;
9
10
  }
10
11
  export declare const StatusList: Readonly<IStatus[]>;
11
- export declare const StatusById: Readonly<import("@sumaris-net/ngx-components").KeyValueType<IStatus>>;
12
+ export declare const StatusById: Readonly<import("../../../shared/types").KeyValueType<IStatus>>;
12
13
  export declare interface IReferentialRef<T extends IEntity<T, ID> = IEntity<any, any>, ID = number> extends IEntity<T, ID> {
13
14
  label: string;
14
15
  name: string;
@@ -16,6 +17,7 @@ export declare interface IReferentialRef<T extends IEntity<T, ID> = IEntity<any,
16
17
  levelId?: number;
17
18
  statusId: number;
18
19
  entityName: string;
20
+ icon?: IconRef;
19
21
  }
20
22
  export declare abstract class BaseReferential<T extends BaseReferential<T, ID, AO>, ID = number, AO extends ReferentialAsObjectOptions = ReferentialAsObjectOptions, FO = any> extends Entity<T, ID, AO, FO> implements IReferentialRef<T, ID> {
21
23
  label: string;
@@ -28,6 +30,7 @@ export declare abstract class BaseReferential<T extends BaseReferential<T, ID, A
28
30
  levelId: number;
29
31
  parentId: number;
30
32
  entityName: string;
33
+ icon?: IconRef;
31
34
  constructor(__typename?: string);
32
35
  asObject(opts?: AO): any;
33
36
  fromObject(source: any, opts?: FO): void;
@@ -44,6 +47,7 @@ export declare class ReferentialUtils {
44
47
  }
45
48
  export interface ReferentialAsObjectOptions extends EntityAsObjectOptions {
46
49
  keepEntityName?: boolean;
50
+ keepIcon?: boolean;
47
51
  }
48
52
  /**
49
53
  * Used to store an entity locally
@@ -61,6 +65,7 @@ export declare class ReferentialRef<T extends ReferentialRef<any, ID> = Referent
61
65
  statusId: number;
62
66
  levelId: number;
63
67
  entityName: string;
68
+ icon?: IconRef;
64
69
  constructor();
65
70
  asObject(opts?: O): any;
66
71
  fromObject(source: any, opts?: FO): void;
@@ -12,13 +12,13 @@ import { CacheService } from 'ionic-cache';
12
12
  import { ShowToastOptions } from '../../shared/toast/toasts';
13
13
  import { OverlayEventDetail } from '@ionic/core';
14
14
  import { AppManifest, NodeInfo } from './network.utils';
15
- import { StartableService } from '../../shared/services/startable-service.class';
15
+ import { StartableObservableService } from '../../shared/services/startable-observable-service.class';
16
16
  import * as i0 from "@angular/core";
17
17
  export declare type ConnectionType = 'none' | 'wifi' | 'ethernet' | 'cell' | 'unknown';
18
18
  export declare type AuthTokenType = 'token' | 'basic' | 'basic-and-token';
19
19
  export declare function getConnectionType(type: Connection): ConnectionType;
20
20
  export declare type NetworkEventType = 'start' | 'peerChanged' | 'statusChanged' | 'resetCache' | 'beforeTryOnlineFinish';
21
- export declare class NetworkService extends StartableService<Peer> {
21
+ export declare class NetworkService extends StartableObservableService<Peer, Peer> {
22
22
  private _document;
23
23
  private platform;
24
24
  private modalCtrl;
@@ -38,7 +38,6 @@ export declare class NetworkService extends StartableService<Peer> {
38
38
  private _timerSubscription;
39
39
  private readonly _timerRefreshPeriod;
40
40
  private readonly _timerRefreshCondition;
41
- private _startingPeer;
42
41
  private _deviceConnectionType;
43
42
  private _forceOffline;
44
43
  private _listeners;
@@ -88,7 +87,7 @@ export declare class NetworkService extends StartableService<Peer> {
88
87
  nocache?: boolean;
89
88
  }): Promise<AppManifest | undefined>;
90
89
  getAppVersion(peer?: string | Peer, opts?: {
91
- nocache?: boolean;
90
+ nocache: boolean;
92
91
  }): Promise<string | undefined>;
93
92
  computePeerPath(peer: string | Peer | undefined, path: string): string | undefined;
94
93
  /**
@@ -104,9 +103,9 @@ export declare class NetworkService extends StartableService<Peer> {
104
103
  clearCache(opts?: {
105
104
  emitEvent?: boolean;
106
105
  }): Promise<void>;
107
- protected ngOnStart(): Promise<Peer>;
108
- protected ngOnAfterStart(): Promise<void>;
109
- protected ngOnStop(): Promise<void>;
106
+ protected ngOnStart(peer?: Peer): Promise<Peer>;
107
+ protected ngOnAfterStart(peer: Peer): Promise<void>;
108
+ protected ngOnStop(): void;
110
109
  /**
111
110
  * Try to restore peer from the local storage
112
111
  */
@@ -139,7 +138,6 @@ export declare class NetworkService extends StartableService<Peer> {
139
138
  }): Promise<T>;
140
139
  protected getUri(path: string): string;
141
140
  protected onDeviceConnectionChanged(connectionType?: string): void;
142
- protected resetData(): void;
143
141
  /**
144
142
  * Get default peers, from environment
145
143
  */