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

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 (271) hide show
  1. package/doc/changelog.md +37 -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 +126 -62
  16. package/esm2020/src/app/core/form/entity-editor-modal.class.mjs +8 -7
  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 +7 -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 +3 -3
  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/network.service.mjs +21 -28
  53. package/esm2020/src/app/core/services/pipes/account.pipes.mjs +8 -8
  54. package/esm2020/src/app/core/services/pipes/department-to-string.pipe.mjs +4 -4
  55. package/esm2020/src/app/core/services/pipes/person-to-string.pipe.mjs +4 -4
  56. package/esm2020/src/app/core/services/pipes/usage-mode.pipes.mjs +8 -8
  57. package/esm2020/src/app/core/services/platform.service.mjs +3 -3
  58. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +3 -3
  59. package/esm2020/src/app/core/services/testing/referential.validator.mjs +3 -3
  60. package/esm2020/src/app/core/services/validator/account.validator.mjs +3 -3
  61. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +3 -3
  62. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +3 -3
  63. package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +3 -3
  64. package/esm2020/src/app/core/settings/settings.page.mjs +4 -4
  65. package/esm2020/src/app/core/table/actions-column.component.mjs +9 -9
  66. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +74 -65
  67. package/esm2020/src/app/core/table/memory-table.class.mjs +3 -3
  68. package/esm2020/src/app/core/table/table-select-columns.component.mjs +3 -3
  69. package/esm2020/src/app/core/table/table.class.mjs +77 -65
  70. package/esm2020/src/app/core/table/table.utils.mjs +1 -1
  71. package/esm2020/src/app/core/table/testing/table.testing.mjs +5 -5
  72. package/esm2020/src/app/core/table/testing/table.testing.module.mjs +4 -4
  73. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.mjs +3 -3
  74. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.module.mjs +4 -4
  75. package/esm2020/src/app/core/text-popover/text-form.component.mjs +3 -3
  76. package/esm2020/src/app/core/text-popover/text-popover.component.mjs +3 -3
  77. package/esm2020/src/app/shared/audio/audio.mjs +4 -4
  78. package/esm2020/src/app/shared/audio/audio.testing.mjs +3 -3
  79. package/esm2020/src/app/shared/audio/audio.testing.module.mjs +4 -4
  80. package/esm2020/src/app/shared/capacitor/keyboard.mjs +3 -3
  81. package/esm2020/src/app/shared/debug/debug.component.mjs +39 -0
  82. package/esm2020/src/app/shared/debug/debug.module.mjs +44 -0
  83. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +6 -6
  84. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +3 -3
  85. package/esm2020/src/app/shared/directives/directives.module.mjs +4 -4
  86. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +3 -3
  87. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +3 -3
  88. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +3 -3
  89. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +3 -3
  90. package/esm2020/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
  91. package/esm2020/src/app/shared/file/file.service.mjs +5 -5
  92. package/esm2020/src/app/shared/form/field.component.mjs +10 -7
  93. package/esm2020/src/app/shared/form/loading-spinner.mjs +3 -3
  94. package/esm2020/src/app/shared/forms.mjs +21 -2
  95. package/esm2020/src/app/shared/functions.mjs +23 -10
  96. package/esm2020/src/app/shared/gesture/gesture-config.mjs +3 -3
  97. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +3 -3
  98. package/esm2020/src/app/shared/help/help.modal.mjs +3 -3
  99. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +3 -3
  100. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +3 -3
  101. package/esm2020/src/app/shared/hotkeys/shared-hotkeys.module.mjs +4 -4
  102. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +3 -3
  103. package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +4 -4
  104. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +3 -3
  105. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +3 -3
  106. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +4 -4
  107. package/esm2020/src/app/shared/image/image.module.mjs +4 -4
  108. package/esm2020/src/app/shared/image/image.service.mjs +3 -3
  109. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +6 -6
  110. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +4 -4
  111. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +3 -3
  112. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +157 -0
  113. package/esm2020/src/app/shared/material/badge/badge.module.mjs +32 -0
  114. package/esm2020/src/app/shared/material/badge/badge.test.mjs +26 -0
  115. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +4 -4
  116. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +3 -3
  117. package/esm2020/src/app/shared/material/chips/chips.module.mjs +4 -4
  118. package/esm2020/src/app/shared/material/chips/material.chips.mjs +10 -11
  119. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +3 -3
  120. package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +4 -4
  121. package/esm2020/src/app/shared/material/datetime/material.date.mjs +79 -83
  122. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +5 -5
  123. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +95 -77
  124. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +5 -5
  125. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +5 -5
  126. package/esm2020/src/app/shared/material/duration/duration.module.mjs +4 -4
  127. package/esm2020/src/app/shared/material/duration/material.duration.mjs +3 -3
  128. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +3 -3
  129. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +4 -4
  130. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +3 -3
  131. package/esm2020/src/app/shared/material/material.module.mjs +10 -10
  132. package/esm2020/src/app/shared/material/material.testing.module.mjs +9 -9
  133. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +3 -3
  134. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +3 -3
  135. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +5 -5
  136. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +3 -3
  137. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +3 -3
  138. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +3 -3
  139. package/esm2020/src/app/shared/material/numpad/numpad.module.mjs +4 -4
  140. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +3 -3
  141. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +3 -3
  142. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +3 -3
  143. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +3 -3
  144. package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +4 -4
  145. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +3 -3
  146. package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +48 -27
  147. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +3 -3
  148. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +4 -4
  149. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +4 -4
  150. package/esm2020/src/app/shared/pipes/date-from-now.pipe.mjs +4 -4
  151. package/esm2020/src/app/shared/pipes/duration.pipe.mjs +4 -4
  152. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +3 -3
  153. package/esm2020/src/app/shared/pipes/form.pipes.mjs +18 -18
  154. package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +4 -4
  155. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +9 -9
  156. package/esm2020/src/app/shared/pipes/maps.pipe.mjs +12 -12
  157. package/esm2020/src/app/shared/pipes/math.pipes.mjs +12 -12
  158. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +3 -3
  159. package/esm2020/src/app/shared/pipes/number-format.pipe.mjs +4 -4
  160. package/esm2020/src/app/shared/pipes/pipes.module.mjs +10 -6
  161. package/esm2020/src/app/shared/pipes/property.pipes.mjs +7 -7
  162. package/esm2020/src/app/shared/pipes/string.pipes.mjs +15 -15
  163. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +8 -8
  164. package/esm2020/src/app/shared/services/entity-service.class.mjs +1 -13
  165. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +120 -42
  166. package/esm2020/src/app/shared/services/progress-bar.service.mjs +3 -3
  167. package/esm2020/src/app/shared/services/startable-observable-service.class.mjs +119 -0
  168. package/esm2020/src/app/shared/services/startable-service.class.mjs +42 -31
  169. package/esm2020/src/app/shared/services/storage/storage.service.mjs +3 -3
  170. package/esm2020/src/app/shared/services/translate-context.service.mjs +3 -3
  171. package/esm2020/src/app/shared/shared-routing.module.mjs +7 -7
  172. package/esm2020/src/app/shared/shared.module.mjs +4 -4
  173. package/esm2020/src/app/shared/shared.testing.module.mjs +4 -4
  174. package/esm2020/src/app/shared/testing/tests.page.mjs +3 -3
  175. package/esm2020/src/app/shared/toast/toast.testing.mjs +10 -11
  176. package/esm2020/src/app/shared/toast/toast.testing.module.mjs +4 -4
  177. package/esm2020/src/app/shared/toast/toasts.mjs +38 -15
  178. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +5 -5
  179. package/esm2020/src/app/shared/toolbar/toolbar.mjs +9 -9
  180. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +4 -4
  181. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +3 -3
  182. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +4 -4
  183. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +3 -3
  184. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +3 -3
  185. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +3 -3
  186. package/esm2020/src/app/social/job/job.module.mjs +9 -9
  187. package/esm2020/src/app/social/job/job.service.mjs +27 -15
  188. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +210 -0
  189. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +3 -3
  190. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +33 -31
  191. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +27 -5
  192. package/esm2020/src/app/social/job/testing/job.testing.module.mjs +4 -4
  193. package/esm2020/src/app/social/message/message.form.mjs +3 -3
  194. package/esm2020/src/app/social/message/message.modal.mjs +3 -3
  195. package/esm2020/src/app/social/message/message.module.mjs +4 -4
  196. package/esm2020/src/app/social/message/message.service.mjs +3 -3
  197. package/esm2020/src/app/social/social.module.mjs +5 -5
  198. package/esm2020/src/app/social/social.testing.module.mjs +4 -4
  199. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +28 -17
  200. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +6 -6
  201. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +6 -6
  202. package/esm2020/src/app/social/user-event/testing/user-event.testing.module.mjs +4 -4
  203. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +3 -3
  204. package/esm2020/src/app/social/user-event/user-event.module.mjs +9 -9
  205. package/esm2020/src/app/social/user-event/user-event.service.mjs +5 -5
  206. package/esm2020/src/app/vendor.mjs +6 -1
  207. package/fesm2015/sumaris-net.ngx-components.mjs +2232 -1552
  208. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
  209. package/fesm2020/sumaris-net.ngx-components.mjs +2191 -1490
  210. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
  211. package/package.json +6 -2
  212. package/public_api.d.ts +8 -4
  213. package/src/app/admin/admin.module.d.ts +4 -8
  214. package/src/app/admin/users/list/users.d.ts +1 -0
  215. package/src/app/admin/users/list/users.module.d.ts +14 -0
  216. package/src/app/core/core.module.d.ts +1 -1
  217. package/src/app/core/core.testing.module.d.ts +2 -1
  218. package/src/app/core/form/editor.class.d.ts +19 -6
  219. package/src/app/core/form/entity-editor.class.d.ts +4 -11
  220. package/src/app/core/form/form.class.d.ts +1 -0
  221. package/src/app/core/form/form.utils.d.ts +28 -2
  222. package/src/app/core/form/{properties.form.d.ts → properties/properties.form.d.ts} +13 -13
  223. package/src/app/core/form/properties/property.validator.d.ts +13 -0
  224. package/src/app/core/form/properties/testing/properties-form.test.d.ts +19 -0
  225. package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +12 -0
  226. package/src/app/core/services/network.service.d.ts +6 -8
  227. package/src/app/core/table/entities-table-datasource.class.d.ts +22 -15
  228. package/src/app/core/table/table.class.d.ts +3 -0
  229. package/src/app/core/table/table.utils.d.ts +2 -1
  230. package/src/app/shared/debug/debug.component.d.ts +13 -0
  231. package/src/app/shared/debug/debug.module.d.ts +12 -0
  232. package/src/app/shared/form/field.component.d.ts +4 -1
  233. package/src/app/shared/forms.d.ts +8 -1
  234. package/src/app/shared/functions.d.ts +9 -4
  235. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +1 -1
  236. package/src/app/shared/material/badge/badge.directive.d.ts +28 -0
  237. package/src/app/shared/material/badge/badge.module.d.ts +10 -0
  238. package/src/app/shared/material/badge/badge.test.d.ts +12 -0
  239. package/src/app/shared/material/datetime/material.date.d.ts +12 -13
  240. package/src/app/shared/material/datetime/material.datetime.d.ts +14 -14
  241. package/src/app/shared/material/material.module.d.ts +2 -2
  242. package/src/app/shared/material/material.testing.module.d.ts +2 -2
  243. package/src/app/shared/pipes/arrays.pipe.d.ts +12 -2
  244. package/src/app/shared/pipes/pipes.module.d.ts +1 -1
  245. package/src/app/shared/services/entity-service.class.d.ts +0 -11
  246. package/src/app/shared/services/memory-entity-service.class.d.ts +15 -6
  247. package/src/app/shared/services/startable-observable-service.class.d.ts +33 -0
  248. package/src/app/shared/services/startable-service.class.d.ts +12 -9
  249. package/src/app/shared/toast/toast.testing.d.ts +3 -5
  250. package/src/app/shared/toast/toasts.d.ts +5 -2
  251. package/src/app/social/job/job.module.d.ts +2 -2
  252. package/src/app/social/job/job.service.d.ts +10 -2
  253. package/src/app/social/job/progression/{job-progression.component.d.ts → job-progression.icon.d.ts} +5 -5
  254. package/src/app/social/job/testing/job-progression.testing.d.ts +7 -4
  255. package/src/app/social/job/testing/job-progression.testing.service.d.ts +4 -0
  256. package/src/app/social/social.module.d.ts +1 -1
  257. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +8 -5
  258. package/src/app/social/user-event/testing/user-event.testing.d.ts +2 -2
  259. package/src/app/social/user-event/user-event.module.d.ts +1 -1
  260. package/src/app/social/user-event/user-event.service.d.ts +1 -1
  261. package/src/app/vendor.d.ts +2 -0
  262. package/src/theme/_material.scss +29 -4
  263. package/src/theme/_ngx-components.scss +26 -0
  264. package/esm2020/src/app/core/form/properties.form.mjs +0 -126
  265. package/esm2020/src/app/shared/material/badge/badge-icon.directive.mjs +0 -143
  266. package/esm2020/src/app/shared/material/badge/badge-icon.module.mjs +0 -32
  267. package/esm2020/src/app/shared/material/badge/badge-icon.test.mjs +0 -27
  268. package/esm2020/src/app/social/job/progression/job-progression.component.mjs +0 -201
  269. package/src/app/shared/material/badge/badge-icon.directive.d.ts +0 -30
  270. package/src/app/shared/material/badge/badge-icon.module.d.ts +0 -10
  271. 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-rc3",
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,7 @@ 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;
88
91
  toolbar: ToolbarToken | null;
89
92
  formButtonsBar: FormButtonsBarToken | null;
90
93
  content: IonContent;
@@ -99,6 +102,9 @@ export declare abstract class AppEditor<T = any, ID = number, O = any> implement
99
102
  get invalid(): boolean;
100
103
  get pending(): boolean;
101
104
  get loading(): boolean;
105
+ get loaded(): boolean;
106
+ get touched(): boolean;
107
+ get untouched(): boolean;
102
108
  get enabled(): boolean;
103
109
  get disabled(): boolean;
104
110
  get children(): IAppForm[];
@@ -155,6 +161,12 @@ export declare abstract class AppEditor<T = any, ID = number, O = any> implement
155
161
  }): void;
156
162
  ready(opts?: WaitForOptions): Promise<void>;
157
163
  waitIdle(opts?: WaitForOptions): Promise<void>;
164
+ markAsSaving(opts?: {
165
+ emitEvent?: boolean;
166
+ }): void;
167
+ markAsSaved(opts?: {
168
+ emitEvent?: boolean;
169
+ }): void;
158
170
  cancel(event?: Event): Promise<void>;
159
171
  /**
160
172
  * Unload the page (remove all data). Useful when reusing angular cache a cancelled page
@@ -169,15 +181,16 @@ export declare abstract class AppEditor<T = any, ID = number, O = any> implement
169
181
  abstract load(id?: ID, options?: O): Promise<void>;
170
182
  abstract save(event?: Event, options?: any): Promise<boolean>;
171
183
  abstract reload(): Promise<void>;
172
- logFormErrors(): void;
184
+ logFormErrors(prefix?: string): void;
173
185
  protected scrollToTop(duration?: number): Promise<void>;
174
186
  protected registerSubscription(sub: Subscription | TeardownLogic): void;
175
187
  protected unregisterSubscription(sub: Subscription): void;
176
- protected saveIfDirtyAndConfirm(event?: Event, opts?: {
177
- emitEvent: boolean;
188
+ protected saveIfDirtyAndConfirm(event?: UIEvent, opts?: {
189
+ emitEvent?: boolean;
190
+ confirmed?: boolean;
178
191
  }): Promise<boolean>;
179
192
  protected showToast(opts: ShowToastOptions): Promise<void>;
180
- protected logChildrenFormErrors(c: IAppForm | AbstractControl, prefix?: string, path?: string): void;
193
+ protected logChildrenErrors(c: IAppForm | AbstractControl, prefix?: string, path?: string): void;
181
194
  protected setError(value: string, opts?: {
182
195
  emitEvent?: boolean;
183
196
  }): void;
@@ -221,7 +234,7 @@ export declare abstract class AppTabEditor<T = any, ID = number, O = any> extend
221
234
  emitEvent?: boolean;
222
235
  }): Promise<void>;
223
236
  protected abstract getFirstInvalidTabIndex(): number;
224
- protected saveDirtyTables(): Promise<boolean>;
237
+ protected saveDirtyChildren(): Promise<boolean>;
225
238
  static ɵfac: i0.ɵɵFactoryDeclaration<AppTabEditor<any, any, any>, [{ optional: true; }, null, null, null, { optional: true; }]>;
226
239
  static ɵdir: i0.ɵɵDirectiveDeclaration<AppTabEditor<any, any, any>, never, never, { "queryTabIndexParamName": "queryTabIndexParamName"; "selectedTabIndex": "selectedTabIndex"; }, { "selectedTabIndexChange": "selectedTabIndexChange"; }, never, never, false>;
227
240
  }
@@ -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;
@@ -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 { pushValueInArray, clearValueInArray, copyEntity2Form, disableControls, getControlFromPath, getFormErrors, getFormValueFromEntity, logFormErrors, markAllAsTouched, markAsUntouched, 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 addValueInArray: 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
+ }
@@ -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
  */
@@ -18,14 +18,14 @@ export interface EntitiesTableDataSourceConfig<T extends Entity<T, ID>, ID = num
18
18
  saveAllOptions?: SO;
19
19
  [key: string]: any;
20
20
  }
21
- export declare class EntitiesTableDataSource<T extends IEntity<T, ID>, F = any, ID = number, WO extends EntitiesServiceWatchOptions = EntitiesServiceWatchOptions, SO = any, V extends ValidatorService = ValidatorService, C extends EntitiesTableDataSourceConfig<T, ID, WO, SO> = EntitiesTableDataSourceConfig<T, ID, WO, SO>> extends TableDataSource<T, V, C> implements OnDestroy {
21
+ export declare class EntitiesTableDataSource<T extends IEntity<T, ID>, F = any, ID = number, WO extends EntitiesServiceWatchOptions = EntitiesServiceWatchOptions, SO = any, V extends ValidatorService = ValidatorService, C extends EntitiesTableDataSourceConfig<T, ID, WO, SO> = EntitiesTableDataSourceConfig<T, ID, WO, SO>, R extends TableElement<T> = TableElement<T>> extends TableDataSource<T, V, C, R> implements OnDestroy {
22
22
  readonly dataService: IEntitiesService<T, F, WO>;
23
23
  private readonly _entityName;
24
24
  protected _debug: boolean;
25
25
  protected _creating: boolean;
26
26
  protected _saving: boolean;
27
- protected _stopWatching$: Subject<void>;
28
27
  protected _fetchMoreFn: FetchMoreFn<LoadResult<T>>;
28
+ protected _stopWatchSubject: Subject<void>;
29
29
  loadingSubject: BehaviorSubject<boolean>;
30
30
  /**
31
31
  * @deprecated Use watchAllOptions or saveAllOptions
@@ -51,35 +51,42 @@ export declare class EntitiesTableDataSource<T extends IEntity<T, ID>, F = any,
51
51
  * @param config Additional configuration for table.
52
52
  */
53
53
  constructor(dataType: new () => T, dataService: IEntitiesService<T, F, WO>, validatorService?: V, options?: C);
54
+ /**
55
+ * @deprecated use disconnect
56
+ */
54
57
  ngOnDestroy(): void;
58
+ /**
59
+ * @deprecated use disconnect
60
+ */
61
+ close(): void;
55
62
  watchAll(offset: number, size: number, sortBy?: string, sortDirection?: SortDirection, filter?: Partial<F>): Observable<LoadResult<T>>;
56
- protected updateDatasourceFromRows(rows: TableElement<T>[]): void;
63
+ protected updateDatasourceFromRows(rows: R[]): void;
57
64
  save(): Promise<boolean>;
58
65
  updateDatasource(data: T[], opts?: {
59
66
  emitEvent: boolean;
60
- }): Promise<void>;
61
- connect(collectionViewer: CollectionViewer): Observable<TableElement<T>[] | ReadonlyArray<TableElement<T>>>;
67
+ }): void;
68
+ connect(collectionViewer: CollectionViewer): Observable<R[] | ReadonlyArray<R>>;
62
69
  disconnect(collectionViewer?: CollectionViewer): void;
63
70
  waitIdle(debounceTimeMs?: number): Promise<any>;
64
- confirmCreate(row: TableElement<T>): Promise<boolean>;
65
- confirmEdit(row: TableElement<T>): Promise<boolean>;
66
- startEdit(row: TableElement<T>): Promise<boolean>;
71
+ confirmCreate(row: R): boolean;
72
+ confirmEdit(row: R): boolean;
73
+ startEdit(row: R): boolean;
67
74
  handleError(error: any, message: string): Observable<LoadResult<T>>;
68
75
  handleServiceError(error: any): void;
69
- delete(id: number): Promise<boolean>;
70
- deleteAll(rows: TableElement<T>[]): Promise<any>;
71
- getRow(id: number): TableElement<T>;
72
- getRows(): TableElement<T>[];
76
+ delete(id: number): boolean;
77
+ deleteAll(rows: R[]): Promise<any>;
78
+ getRow(id: number): R;
79
+ getRows(): R[];
73
80
  hasSomeEditingRow(): boolean;
74
81
  createNew(insertAt?: number, opts?: {
75
82
  editing: boolean;
76
- }): Promise<TableElement<T> | undefined>;
83
+ }): Promise<R | undefined>;
77
84
  getData(): T[];
78
85
  fetchMore(opts?: {
79
86
  emitEvent: boolean;
80
87
  }): Promise<boolean>;
81
88
  markAsLoading(): void;
82
89
  markAsLoaded(): void;
83
- static ɵfac: i0.ɵɵFactoryDeclaration<EntitiesTableDataSource<any, any, any, any, any, any, any>, never>;
84
- static ɵdir: i0.ɵɵDirectiveDeclaration<EntitiesTableDataSource<any, any, any, any, any, any, any>, never, never, {}, {}, never, never, false>;
90
+ static ɵfac: i0.ɵɵFactoryDeclaration<EntitiesTableDataSource<any, any, any, any, any, any, any, any>, never>;
91
+ static ɵdir: i0.ɵɵDirectiveDeclaration<EntitiesTableDataSource<any, any, any, any, any, any, any, any>, never, never, {}, {}, never, never, false>;
85
92
  }
@@ -74,6 +74,7 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
74
74
  readonly readySubject: BehaviorSubject<boolean>;
75
75
  readonly loadingSubject: BehaviorSubject<boolean>;
76
76
  readonly savingSubject: BehaviorSubject<boolean>;
77
+ readonly touchedSubject: BehaviorSubject<boolean>;
77
78
  readonly dirtySubject: BehaviorSubject<boolean>;
78
79
  readonly errorSubject: BehaviorSubject<string>;
79
80
  get error(): string;
@@ -151,6 +152,8 @@ export declare abstract class AppTable<T extends IEntity<T, ID>, F = any, ID = n
151
152
  get valid(): boolean;
152
153
  get invalid(): boolean;
153
154
  get pending(): boolean;
155
+ get touched(): boolean;
156
+ get untouched(): boolean;
154
157
  disable(opts?: {
155
158
  onlySelf?: boolean;
156
159
  emitEvent?: boolean;
@@ -1,6 +1,7 @@
1
1
  import { AppTable } from './table.class';
2
2
  import { TableElement } from '@e-is/ngx-material-table';
3
+ import { AsyncTableElement } from '@e-is/ngx-material-table/src/app/ngx-material-table/async/async-table-element';
3
4
  export declare class AppTableUtils {
4
5
  static waitIdle(table: AppTable<any, any, any>): Promise<any>;
5
- static logRowErrors(row: TableElement<any>, logPrefix?: string): void;
6
+ static logRowErrors(row: TableElement<any> | AsyncTableElement<any>, logPrefix?: string): void;
6
7
  }
@@ -0,0 +1,13 @@
1
+ import { MatExpansionPanel } from '@angular/material/expansion';
2
+ import { Environment } from '../../../environments/environment.class';
3
+ import * as i0 from "@angular/core";
4
+ export declare class DebugComponent {
5
+ title: string;
6
+ enable: boolean;
7
+ expanded: boolean;
8
+ expansionPanel: MatExpansionPanel;
9
+ constructor(environment: Environment);
10
+ toggle(): void;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<DebugComponent, [{ optional: true; }]>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<DebugComponent, "app-debug", never, { "title": "title"; "enable": "enable"; "expanded": "expanded"; }, {}, never, ["*"], false>;
13
+ }