@sumaris-net/ngx-components 4.0.0-rc8 → 18.0.0-rc1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (555) hide show
  1. package/README.md +5 -3
  2. package/doc/changelog.md +522 -280
  3. package/esm2022/public_api.mjs +38 -19
  4. package/esm2022/src/app/admin/admin-routing.module.mjs +10 -17
  5. package/esm2022/src/app/admin/admin.module.mjs +7 -9
  6. package/esm2022/src/app/admin/services/filter/person.filter.mjs +3 -3
  7. package/esm2022/src/app/admin/services/person.service.mjs +31 -31
  8. package/esm2022/src/app/admin/services/validator/person.validator.mjs +10 -10
  9. package/esm2022/src/app/admin/users/users.mjs +22 -19
  10. package/esm2022/src/app/admin/users/users.module.mjs +8 -10
  11. package/esm2022/src/app/core/about/about.modal.mjs +7 -7
  12. package/esm2022/src/app/core/about/about.module.mjs +8 -21
  13. package/esm2022/src/app/core/account/account.module.mjs +28 -18
  14. package/esm2022/src/app/core/account/account.page.mjs +19 -5
  15. package/esm2022/src/app/core/account/new-token.form.mjs +106 -0
  16. package/esm2022/src/app/core/account/new-token.modal.mjs +27 -86
  17. package/esm2022/src/app/core/account/password/change-password.form.mjs +60 -0
  18. package/esm2022/src/app/core/account/password/change-password.module.mjs +22 -0
  19. package/esm2022/src/app/core/account/password/change-password.page.mjs +144 -0
  20. package/esm2022/src/app/core/account/token.table.mjs +47 -35
  21. package/esm2022/src/app/core/auth/auth.form.mjs +47 -28
  22. package/esm2022/src/app/core/auth/auth.modal.mjs +6 -6
  23. package/esm2022/src/app/core/auth/auth.module.mjs +22 -13
  24. package/esm2022/src/app/core/auth/reset-password.modal.mjs +77 -0
  25. package/esm2022/src/app/core/core.module.mjs +28 -61
  26. package/esm2022/src/app/core/core.testing.module.mjs +34 -20
  27. package/esm2022/src/app/core/form/array/form-array.mjs +325 -0
  28. package/esm2022/src/app/core/form/array/testing/form-array-test.module.mjs +23 -0
  29. package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +94 -0
  30. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +24 -25
  31. package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +9 -13
  32. package/esm2022/src/app/core/form/entity/editor.class.mjs +64 -517
  33. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +26 -42
  34. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +42 -41
  35. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +5 -5
  36. package/esm2022/src/app/core/form/entity/entity.module.mjs +8 -14
  37. package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +194 -0
  38. package/esm2022/src/app/core/form/form-container.class.mjs +327 -0
  39. package/esm2022/src/app/core/form/form.class.mjs +39 -56
  40. package/esm2022/src/app/core/form/form.module.mjs +14 -10
  41. package/esm2022/src/app/core/form/form.utils.mjs +23 -306
  42. package/esm2022/src/app/core/form/list/list.form.mjs +16 -14
  43. package/esm2022/src/app/core/form/list/list.module.mjs +8 -12
  44. package/esm2022/src/app/core/form/properties/properties.form.mjs +139 -57
  45. package/esm2022/src/app/core/form/properties/properties.module.mjs +9 -15
  46. package/esm2022/src/app/core/form/properties/properties.table.mjs +27 -28
  47. package/esm2022/src/app/core/form/properties/properties.utils.mjs +60 -0
  48. package/esm2022/src/app/core/form/properties/property.validator.mjs +23 -9
  49. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +18 -18
  50. package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +8 -24
  51. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +15 -15
  52. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +10 -25
  53. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +7 -7
  54. package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +9 -13
  55. package/esm2022/src/app/core/form/username/username.form.mjs +52 -0
  56. package/esm2022/src/app/core/form/username/username.module.mjs +20 -0
  57. package/esm2022/src/app/core/graphql/graphql.module.mjs +8 -16
  58. package/esm2022/src/app/core/graphql/graphql.service.mjs +101 -109
  59. package/esm2022/src/app/core/graphql/graphql.utils.mjs +12 -11
  60. package/esm2022/src/app/core/home/home.mjs +81 -52
  61. package/esm2022/src/app/core/home/home.module.mjs +10 -19
  62. package/esm2022/src/app/core/icon/icon.component.mjs +5 -5
  63. package/esm2022/src/app/core/icon/icon.module.mjs +8 -17
  64. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +33 -37
  65. package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +9 -13
  66. package/esm2022/src/app/core/menu/menu.component.mjs +5 -6
  67. package/esm2022/src/app/core/menu/menu.model.mjs +21 -18
  68. package/esm2022/src/app/core/menu/menu.module.mjs +7 -12
  69. package/esm2022/src/app/core/menu/menu.service.mjs +44 -60
  70. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +4 -4
  71. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +7 -6
  72. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +43 -8
  73. package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +8 -27
  74. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +6 -7
  75. package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +9 -13
  76. package/esm2022/src/app/core/peer/select-peer.modal.mjs +31 -21
  77. package/esm2022/src/app/core/peer/select-peer.module.mjs +11 -23
  78. package/esm2022/src/app/core/register/register-confirm.page.mjs +18 -16
  79. package/esm2022/src/app/core/register/register.form.mjs +7 -7
  80. package/esm2022/src/app/core/register/register.modal.mjs +6 -6
  81. package/esm2022/src/app/core/register/register.module.mjs +8 -29
  82. package/esm2022/src/app/core/services/account.service.mjs +272 -170
  83. package/esm2022/src/app/core/services/auth-guard.service.mjs +13 -15
  84. package/esm2022/src/app/core/services/base-entity-service.class.mjs +55 -64
  85. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +39 -33
  86. package/esm2022/src/app/core/services/base58.mjs +8 -4
  87. package/esm2022/src/app/core/services/config/core.config.mjs +88 -37
  88. package/esm2022/src/app/core/services/config.service.mjs +81 -62
  89. package/esm2022/src/app/core/services/crypto.service.mjs +11 -11
  90. package/esm2022/src/app/core/services/errors.mjs +6 -5
  91. package/esm2022/src/app/core/services/local-settings.service.mjs +58 -44
  92. package/esm2022/src/app/core/services/model/account.model.mjs +12 -17
  93. package/esm2022/src/app/core/services/model/config.model.mjs +7 -7
  94. package/esm2022/src/app/core/services/model/department.model.mjs +3 -2
  95. package/esm2022/src/app/core/services/model/entity.decorators.mjs +6 -6
  96. package/esm2022/src/app/core/services/model/entity.model.mjs +27 -31
  97. package/esm2022/src/app/core/services/model/filter.model.mjs +12 -15
  98. package/esm2022/src/app/core/services/model/history.model.mjs +1 -1
  99. package/esm2022/src/app/core/services/model/model.enum.mjs +2 -2
  100. package/esm2022/src/app/core/services/model/peer.model.mjs +19 -9
  101. package/esm2022/src/app/core/services/model/person.model.mjs +26 -22
  102. package/esm2022/src/app/core/services/model/referential.model.mjs +36 -23
  103. package/esm2022/src/app/core/services/model/settings.model.mjs +2 -1
  104. package/esm2022/src/app/core/services/model/token.model.mjs +7 -3
  105. package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +3 -7
  106. package/esm2022/src/app/core/services/network.service.mjs +99 -76
  107. package/esm2022/src/app/core/services/network.types.mjs +1 -1
  108. package/esm2022/src/app/core/services/network.utils.mjs +3 -3
  109. package/esm2022/src/app/core/services/pipes/account.pipes.mjs +11 -11
  110. package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +6 -6
  111. package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +9 -9
  112. package/esm2022/src/app/core/services/pipes/pipes.module.mjs +54 -0
  113. package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +21 -0
  114. package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +11 -11
  115. package/esm2022/src/app/core/services/platform.service.mjs +102 -69
  116. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +32 -39
  117. package/esm2022/src/app/core/services/storage/entity-store.class.mjs +36 -45
  118. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +1 -1
  119. package/esm2022/src/app/core/services/testing/referential.validator.mjs +14 -14
  120. package/esm2022/src/app/core/services/validator/account.validator.mjs +5 -5
  121. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +5 -5
  122. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +34 -20
  123. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +5 -5
  124. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +12 -9
  125. package/esm2022/src/app/core/settings/settings.module.mjs +9 -21
  126. package/esm2022/src/app/core/settings/settings.page.mjs +76 -63
  127. package/esm2022/src/app/core/table/async-table.class.mjs +219 -201
  128. package/esm2022/src/app/core/table/column/actions-column.component.mjs +127 -0
  129. package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +117 -0
  130. package/esm2022/src/app/core/table/column/row-field.component.mjs +116 -0
  131. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +31 -33
  132. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +36 -36
  133. package/esm2022/src/app/core/table/memory-table.class.mjs +5 -5
  134. package/esm2022/src/app/core/table/table-select-columns.component.mjs +8 -8
  135. package/esm2022/src/app/core/table/table.class.mjs +193 -152
  136. package/esm2022/src/app/core/table/table.model.mjs +1 -1
  137. package/esm2022/src/app/core/table/table.module.mjs +35 -24
  138. package/esm2022/src/app/core/table/table.pipes.mjs +77 -0
  139. package/esm2022/src/app/core/table/table.utils.mjs +2 -4
  140. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +9 -5
  141. package/esm2022/src/app/core/table/testing/table.testing.mjs +116 -78
  142. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +8 -33
  143. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +4 -4
  144. package/esm2022/src/app/core/table/testing/table2.testing.mjs +68 -45
  145. package/esm2022/src/app/shared/alerts.mjs +49 -45
  146. package/esm2022/src/app/shared/audio/audio.mjs +25 -27
  147. package/esm2022/src/app/shared/audio/audio.testing.mjs +5 -5
  148. package/esm2022/src/app/shared/audio/audio.testing.module.mjs +10 -25
  149. package/esm2022/src/app/shared/capacitor/keyboard.mjs +5 -5
  150. package/esm2022/src/app/shared/capacitor/plugins.mjs +1 -1
  151. package/esm2022/src/app/shared/constants.mjs +9 -4
  152. package/esm2022/src/app/shared/dates.mjs +18 -16
  153. package/esm2022/src/app/shared/debug/debug-service.class.mjs +1 -1
  154. package/esm2022/src/app/shared/debug/debug.component.mjs +5 -5
  155. package/esm2022/src/app/shared/debug/debug.module.mjs +8 -29
  156. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +8 -15
  157. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +4 -4
  158. package/esm2022/src/app/shared/directives/directives.module.mjs +8 -29
  159. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +4 -4
  160. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +4 -4
  161. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +4 -4
  162. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +4 -4
  163. package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
  164. package/esm2022/src/app/shared/events.mjs +6 -8
  165. package/esm2022/src/app/shared/file/csv.utils.mjs +38 -18
  166. package/esm2022/src/app/shared/file/file.service.mjs +11 -15
  167. package/esm2022/src/app/shared/file/file.utils.mjs +13 -11
  168. package/esm2022/src/app/shared/file/images.utils.mjs +29 -4
  169. package/esm2022/src/app/shared/file/json.utils.mjs +11 -4
  170. package/esm2022/src/app/shared/file/uri.utils.mjs +1 -1
  171. package/esm2022/src/app/shared/focusable.mjs +1 -1
  172. package/esm2022/src/app/shared/form/field.component.mjs +69 -43
  173. package/esm2022/src/app/shared/form/field.model.mjs +4 -4
  174. package/esm2022/src/app/shared/form/loading-spinner.mjs +5 -5
  175. package/esm2022/src/app/shared/forms.mjs +116 -43
  176. package/esm2022/src/app/shared/functions.mjs +139 -71
  177. package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +14 -14
  178. package/esm2022/src/app/shared/gesture/gesture-config.mjs +10 -10
  179. package/esm2022/src/app/shared/gesture/hammer.utils.mjs +1 -1
  180. package/esm2022/src/app/shared/graph/colors.utils.mjs +14 -18
  181. package/esm2022/src/app/shared/graph/graph-colors.mjs +23 -29
  182. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +4 -4
  183. package/esm2022/src/app/shared/help/help.modal.mjs +6 -6
  184. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +5 -5
  185. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +44 -17
  186. package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +9 -27
  187. package/esm2022/src/app/shared/http/http.utils.mjs +15 -11
  188. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +27 -27
  189. package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +13 -10
  190. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +1 -1
  191. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +14 -17
  192. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +9 -13
  193. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +14 -11
  194. package/esm2022/src/app/shared/image/image.model.mjs +1 -1
  195. package/esm2022/src/app/shared/image/image.module.mjs +8 -13
  196. package/esm2022/src/app/shared/image/image.service.mjs +14 -12
  197. package/esm2022/src/app/shared/inputs.mjs +52 -20
  198. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +2 -3
  199. package/esm2022/src/app/shared/logging/log-level.model.mjs +1 -1
  200. package/esm2022/src/app/shared/logging/logger.model.mjs +2 -2
  201. package/esm2022/src/app/shared/logging/logging-service.class.mjs +17 -20
  202. package/esm2022/src/app/shared/logging/logging-service.module.mjs +6 -6
  203. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +7 -10
  204. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +348 -238
  205. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +13 -16
  206. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +5 -4
  207. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +51 -37
  208. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +99 -57
  209. package/esm2022/src/app/shared/material/badge/badge.module.mjs +8 -20
  210. package/esm2022/src/app/shared/material/badge/badge.test.mjs +5 -5
  211. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +19 -20
  212. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +209 -104
  213. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +15 -8
  214. package/esm2022/src/app/shared/material/chips/chips.module.mjs +12 -13
  215. package/esm2022/src/app/shared/material/chips/material.chips.mjs +228 -168
  216. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +20 -21
  217. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +12 -27
  218. package/esm2022/src/app/shared/material/datetime/material.date.mjs +167 -92
  219. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +128 -77
  220. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +297 -165
  221. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +34 -30
  222. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +31 -27
  223. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +26 -23
  224. package/esm2022/src/app/shared/material/duration/duration.module.mjs +11 -16
  225. package/esm2022/src/app/shared/material/duration/duration.utils.mjs +3 -6
  226. package/esm2022/src/app/shared/material/duration/material.duration.mjs +35 -34
  227. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +23 -22
  228. package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +217 -170
  229. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +182 -241
  230. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +10 -15
  231. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +19 -14
  232. package/esm2022/src/app/shared/material/material.animations.mjs +22 -22
  233. package/esm2022/src/app/shared/material/material.config.mjs +3 -0
  234. package/esm2022/src/app/shared/material/material.module.mjs +16 -16
  235. package/esm2022/src/app/shared/material/material.testing.module.mjs +50 -37
  236. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +12 -9
  237. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +4 -4
  238. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +26 -19
  239. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +7 -11
  240. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +8 -8
  241. package/esm2022/src/app/shared/material/testing/common.test.mjs +30 -24
  242. package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +30 -19
  243. package/esm2022/src/app/shared/material/text/text-form.component.mjs +128 -21
  244. package/esm2022/src/app/shared/material/text/text-form.module.mjs +8 -8
  245. package/esm2022/src/app/shared/modules.mjs +1 -1
  246. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +118 -37
  247. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +1 -1
  248. package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +5 -5
  249. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +8 -8
  250. package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +74 -0
  251. package/esm2022/src/app/shared/named-filter/testing/named-filter.testing.module.mjs +28 -0
  252. package/esm2022/src/app/shared/observables.mjs +14 -18
  253. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +53 -38
  254. package/esm2022/src/app/shared/pipes/badge.pipes.mjs +24 -0
  255. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +8 -6
  256. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +8 -10
  257. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +15 -15
  258. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +6 -6
  259. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +6 -6
  260. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +6 -13
  261. package/esm2022/src/app/shared/pipes/form.pipes.mjs +72 -47
  262. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +15 -15
  263. package/esm2022/src/app/shared/pipes/html.pipes.mjs +52 -0
  264. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +14 -14
  265. package/esm2022/src/app/shared/pipes/maps.pipe.mjs +17 -17
  266. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +37 -88
  267. package/esm2022/src/app/shared/pipes/math.pipes.mjs +16 -16
  268. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +5 -5
  269. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +6 -6
  270. package/esm2022/src/app/shared/pipes/pipes.module.mjs +117 -137
  271. package/esm2022/src/app/shared/pipes/property.pipes.mjs +86 -47
  272. package/esm2022/src/app/shared/pipes/selection.pipes.mjs +179 -0
  273. package/esm2022/src/app/shared/pipes/string.pipes.mjs +50 -49
  274. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +11 -11
  275. package/esm2022/src/app/shared/pipes/types.pipes.mjs +33 -17
  276. package/esm2022/src/app/shared/platforms.mjs +7 -5
  277. package/esm2022/src/app/shared/rx-state.module.mjs +7 -11
  278. package/esm2022/src/app/shared/services/entity-service.class.mjs +2 -2
  279. package/esm2022/src/app/shared/services/job.utils.mjs +7 -7
  280. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +43 -41
  281. package/esm2022/src/app/shared/services/progress-bar.service.mjs +4 -4
  282. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +11 -14
  283. package/esm2022/src/app/shared/services/startable-service.class.mjs +11 -17
  284. package/esm2022/src/app/shared/services/translate-context.service.mjs +18 -15
  285. package/esm2022/src/app/shared/services/validator-service.class.mjs +1 -1
  286. package/esm2022/src/app/shared/services.mjs +12 -12
  287. package/esm2022/src/app/shared/shared-routing.module.mjs +19 -18
  288. package/esm2022/src/app/shared/shared.module.mjs +29 -28
  289. package/esm2022/src/app/shared/shared.testing.module.mjs +18 -10
  290. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +39 -46
  291. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +8 -12
  292. package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +9 -17
  293. package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +10 -18
  294. package/esm2022/src/app/shared/storage/storage.service.mjs +4 -4
  295. package/esm2022/src/app/shared/storage/storage.utils.mjs +2 -2
  296. package/esm2022/src/app/shared/testing/maskito.test.mjs +41 -0
  297. package/esm2022/src/app/shared/testing/observable.test.mjs +11 -13
  298. package/esm2022/src/app/shared/testing/tests.page.mjs +6 -6
  299. package/esm2022/src/app/shared/toast/toast.testing.mjs +11 -11
  300. package/esm2022/src/app/shared/toast/toast.testing.module.mjs +10 -25
  301. package/esm2022/src/app/shared/toast/toasts.mjs +9 -9
  302. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +10 -8
  303. package/esm2022/src/app/shared/toolbar/toolbar.mjs +31 -32
  304. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +8 -39
  305. package/esm2022/src/app/shared/types.mjs +1 -1
  306. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +12 -12
  307. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +10 -25
  308. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +7 -8
  309. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +21 -19
  310. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +2 -3
  311. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +64 -56
  312. package/esm2022/src/app/shared/validator/validators.mjs +60 -39
  313. package/esm2022/src/app/shared/version/versions.mjs +2 -2
  314. package/esm2022/src/app/social/job/job.module.mjs +8 -27
  315. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +9 -9
  316. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +49 -46
  317. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +10 -13
  318. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +1 -1
  319. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +39 -21
  320. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +6 -11
  321. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +11 -30
  322. package/esm2022/src/app/social/job/testing/job.testing.module.mjs +8 -21
  323. package/esm2022/src/app/social/message/message.form.mjs +5 -5
  324. package/esm2022/src/app/social/message/message.modal.mjs +8 -8
  325. package/esm2022/src/app/social/message/message.model.mjs +8 -8
  326. package/esm2022/src/app/social/message/message.module.mjs +4 -4
  327. package/esm2022/src/app/social/message/message.service.mjs +7 -7
  328. package/esm2022/src/app/social/social.errors.mjs +2 -2
  329. package/esm2022/src/app/social/social.module.mjs +7 -32
  330. package/esm2022/src/app/social/social.testing.module.mjs +9 -20
  331. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +27 -23
  332. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +19 -22
  333. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +47 -23
  334. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +8 -8
  335. package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +8 -21
  336. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +27 -15
  337. package/esm2022/src/app/social/user-event/user-event.model.mjs +1 -1
  338. package/esm2022/src/app/social/user-event/user-event.module.mjs +8 -28
  339. package/esm2022/src/app/social/user-event/user-event.service.mjs +61 -64
  340. package/esm2022/src/environments/environment.class.mjs +9 -1
  341. package/esm2022/src/environments/environment.loader.mjs +5 -11
  342. package/esm2022/src/environments/environment.mjs +19 -11
  343. package/fesm2022/sumaris-net.ngx-components.mjs +16117 -14592
  344. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  345. package/package.json +36 -18
  346. package/public_api.d.ts +30 -22
  347. package/src/app/admin/services/filter/person.filter.d.ts +1 -1
  348. package/src/app/admin/users/users.d.ts +5 -6
  349. package/src/app/core/account/account.module.d.ts +10 -8
  350. package/src/app/core/account/account.page.d.ts +25 -15
  351. package/src/app/core/account/new-token.form.d.ts +29 -0
  352. package/src/app/core/account/new-token.modal.d.ts +9 -21
  353. package/src/app/core/account/password/change-password.form.d.ts +19 -0
  354. package/src/app/core/account/password/change-password.module.d.ts +11 -0
  355. package/src/app/core/account/password/change-password.page.d.ts +36 -0
  356. package/src/app/core/account/token.table.d.ts +7 -5
  357. package/src/app/core/auth/auth.form.d.ts +11 -9
  358. package/src/app/core/auth/auth.module.d.ts +6 -4
  359. package/src/app/core/auth/reset-password.modal.d.ts +26 -0
  360. package/src/app/core/core.module.d.ts +21 -24
  361. package/src/app/core/core.testing.module.d.ts +2 -1
  362. package/src/app/core/form/array/form-array.d.ts +136 -0
  363. package/src/app/core/form/array/testing/form-array-test.module.d.ts +12 -0
  364. package/src/app/core/form/array/testing/form-array.test.d.ts +26 -0
  365. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +2 -3
  366. package/src/app/core/form/entity/editor.class.d.ts +19 -179
  367. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +10 -13
  368. package/src/app/core/form/entity/entity-editor.class.d.ts +12 -17
  369. package/src/app/core/form/entity/entity-metadata.component.d.ts +1 -1
  370. package/src/app/core/form/entity/tab-editor.class.d.ts +70 -0
  371. package/src/app/core/form/form-container.class.d.ts +126 -0
  372. package/src/app/core/form/form.class.d.ts +13 -26
  373. package/src/app/core/form/form.module.d.ts +2 -1
  374. package/src/app/core/form/form.utils.d.ts +60 -145
  375. package/src/app/core/form/list/list.form.d.ts +2 -2
  376. package/src/app/core/form/properties/properties.form.d.ts +34 -12
  377. package/src/app/core/form/properties/properties.table.d.ts +2 -2
  378. package/src/app/core/form/properties/properties.utils.d.ts +27 -0
  379. package/src/app/core/form/properties/property.validator.d.ts +9 -3
  380. package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +3 -1
  381. package/src/app/core/form/username/username.form.d.ts +19 -0
  382. package/src/app/core/form/username/username.module.d.ts +9 -0
  383. package/src/app/core/graphql/graphql.module.d.ts +1 -2
  384. package/src/app/core/graphql/graphql.service.d.ts +2 -4
  385. package/src/app/core/home/home.d.ts +26 -6
  386. package/src/app/core/menu/testing/menu-other.testing.d.ts +1 -1
  387. package/src/app/core/menu/testing/menu.testing.d.ts +11 -3
  388. package/src/app/core/peer/select-peer.modal.d.ts +13 -7
  389. package/src/app/core/peer/select-peer.module.d.ts +3 -4
  390. package/src/app/core/services/account.service.d.ts +9 -0
  391. package/src/app/core/services/base-entity-service.class.d.ts +1 -1
  392. package/src/app/core/services/config/core.config.d.ts +12 -1
  393. package/src/app/core/services/config.service.d.ts +4 -3
  394. package/src/app/core/services/errors.d.ts +11 -0
  395. package/src/app/core/services/local-settings.service.d.ts +8 -4
  396. package/src/app/core/services/model/entity.model.d.ts +6 -5
  397. package/src/app/core/services/model/filter.model.d.ts +1 -1
  398. package/src/app/core/services/model/peer.model.d.ts +1 -0
  399. package/src/app/core/services/model/person.model.d.ts +6 -2
  400. package/src/app/core/services/model/referential.model.d.ts +8 -3
  401. package/src/app/core/services/model/settings.model.d.ts +4 -2
  402. package/src/app/core/services/model/token.model.d.ts +1 -0
  403. package/src/app/core/services/model/tree-item-entity.model.d.ts +1 -1
  404. package/src/app/core/services/network.service.d.ts +11 -7
  405. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +1 -1
  406. package/src/app/core/services/pipes/person-to-string.pipe.d.ts +3 -1
  407. package/src/app/core/services/pipes/pipes.module.d.ts +11 -0
  408. package/src/app/core/services/pipes/referential-to-string.pipe.d.ts +13 -0
  409. package/src/app/core/services/platform.service.d.ts +8 -3
  410. package/src/app/core/services/testing/referential-filter.model.d.ts +1 -1
  411. package/src/app/core/services/validator/local-settings.validator.d.ts +6 -2
  412. package/src/app/core/settings/settings.module.d.ts +2 -1
  413. package/src/app/core/settings/settings.page.d.ts +34 -21
  414. package/src/app/core/table/async-table.class.d.ts +22 -17
  415. package/src/app/core/table/column/actions-column.component.d.ts +59 -0
  416. package/src/app/core/table/column/nav-actions-column.component.d.ts +46 -0
  417. package/src/app/core/table/column/row-field.component.d.ts +40 -0
  418. package/src/app/core/table/entities-async-table-datasource.class.d.ts +1 -0
  419. package/src/app/core/table/entities-table-datasource.class.d.ts +1 -0
  420. package/src/app/core/table/table.class.d.ts +14 -11
  421. package/src/app/core/table/table.module.d.ts +8 -4
  422. package/src/app/core/table/table.pipes.d.ts +28 -0
  423. package/src/app/core/table/testing/table.testing.d.ts +12 -13
  424. package/src/app/core/table/testing/table2.testing.d.ts +13 -10
  425. package/src/app/shared/alerts.d.ts +4 -2
  426. package/src/app/shared/constants.d.ts +5 -0
  427. package/src/app/shared/dates.d.ts +12 -5
  428. package/src/app/shared/directives/autofocus.directive.d.ts +0 -1
  429. package/src/app/shared/events.d.ts +1 -1
  430. package/src/app/shared/file/csv.utils.d.ts +5 -0
  431. package/src/app/shared/file/images.utils.d.ts +17 -0
  432. package/src/app/shared/file/json.utils.d.ts +3 -0
  433. package/src/app/shared/form/field.component.d.ts +6 -3
  434. package/src/app/shared/forms.d.ts +32 -0
  435. package/src/app/shared/functions.d.ts +27 -8
  436. package/src/app/shared/graph/graph-colors.d.ts +1 -1
  437. package/src/app/shared/guard/component-dirty.guard.d.ts +1 -6
  438. package/src/app/shared/hotkeys/hotkeys.service.d.ts +17 -3
  439. package/src/app/shared/http/http.utils.d.ts +1 -0
  440. package/src/app/shared/image/gallery/image-gallery.component.d.ts +10 -10
  441. package/src/app/shared/image/gallery/image-gallery.module.d.ts +2 -1
  442. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +2 -2
  443. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +2 -1
  444. package/src/app/shared/inputs.d.ts +8 -6
  445. package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +20 -1
  446. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +56 -16
  447. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +1 -1
  448. package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +2 -1
  449. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +3 -2
  450. package/src/app/shared/material/badge/badge.directive.d.ts +10 -4
  451. package/src/app/shared/material/boolean/boolean.module.d.ts +15 -14
  452. package/src/app/shared/material/boolean/material.boolean.d.ts +51 -25
  453. package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +1 -0
  454. package/src/app/shared/material/chips/chips.module.d.ts +2 -1
  455. package/src/app/shared/material/chips/material.chips.d.ts +46 -21
  456. package/src/app/shared/material/chips/testing/chips.test.d.ts +1 -0
  457. package/src/app/shared/material/datetime/datetime.module.d.ts +1 -1
  458. package/src/app/shared/material/datetime/material.date.d.ts +33 -18
  459. package/src/app/shared/material/datetime/material.dateshort.d.ts +29 -16
  460. package/src/app/shared/material/datetime/material.datetime.d.ts +41 -28
  461. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +3 -3
  462. package/src/app/shared/material/duration/duration.module.d.ts +1 -1
  463. package/src/app/shared/material/duration/material.duration.d.ts +1 -1
  464. package/src/app/shared/material/latlong/latlong.utils.d.ts +9 -1
  465. package/src/app/shared/material/latlong/material.latlong.d.ts +29 -32
  466. package/src/app/shared/material/latlong/material.latlong.module.d.ts +1 -1
  467. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +5 -1
  468. package/src/app/shared/material/material.config.d.ts +3 -0
  469. package/src/app/shared/material/material.module.d.ts +5 -6
  470. package/src/app/shared/material/material.testing.module.d.ts +8 -7
  471. package/src/app/shared/material/swipe/material.swipe.d.ts +4 -3
  472. package/src/app/shared/material/text/testing/text-form.testing.d.ts +10 -4
  473. package/src/app/shared/material/text/text-form.component.d.ts +42 -8
  474. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +30 -14
  475. package/src/app/shared/named-filter/named-filter.service.d.ts +12 -6
  476. package/src/app/shared/named-filter/testing/named-filter-selector.testing.d.ts +34 -0
  477. package/src/app/shared/named-filter/testing/named-filter.testing.module.d.ts +10 -0
  478. package/src/app/shared/pipes/arrays.pipe.d.ts +5 -0
  479. package/src/app/shared/pipes/badge.pipes.d.ts +7 -0
  480. package/src/app/shared/pipes/date-format.pipe.d.ts +3 -2
  481. package/src/app/shared/pipes/form.pipes.d.ts +18 -8
  482. package/src/app/shared/pipes/html.pipes.d.ts +15 -0
  483. package/src/app/shared/pipes/maps.pipe.d.ts +4 -4
  484. package/src/app/shared/pipes/maskito.pipe.d.ts +7 -9
  485. package/src/app/shared/pipes/pipes.module.d.ts +7 -4
  486. package/src/app/shared/pipes/property.pipes.d.ts +24 -3
  487. package/src/app/shared/pipes/selection.pipes.d.ts +62 -0
  488. package/src/app/shared/pipes/string.pipes.d.ts +6 -6
  489. package/src/app/shared/pipes/types.pipes.d.ts +6 -1
  490. package/src/app/shared/services/entity-service.class.d.ts +0 -2
  491. package/src/app/shared/services/memory-entity-service.class.d.ts +6 -3
  492. package/src/app/shared/services.d.ts +1 -0
  493. package/src/app/shared/shared.testing.module.d.ts +2 -1
  494. package/src/app/shared/storage/storage-explorer.component.d.ts +4 -3
  495. package/src/app/shared/testing/maskito.test.d.ts +10 -0
  496. package/src/app/shared/toolbar/toolbar.d.ts +7 -2
  497. package/src/app/shared/types.d.ts +5 -0
  498. package/src/app/shared/upload-file/upload-file.component.d.ts +1 -0
  499. package/src/app/shared/validator/form-error-adapter.class.d.ts +17 -11
  500. package/src/app/shared/validator/validators.d.ts +20 -9
  501. package/src/app/social/job/progression/job-progression.icon.d.ts +4 -5
  502. package/src/app/social/job/progression/job-progression.list.d.ts +1 -3
  503. package/src/app/social/job/progression/job-progression.service.d.ts +3 -4
  504. package/src/app/social/job/testing/job-progression.testing.d.ts +0 -1
  505. package/src/app/social/job/testing/job-progression.testing.service.d.ts +3 -11
  506. package/src/app/social/message/message.modal.d.ts +2 -2
  507. package/src/app/social/message/message.model.d.ts +1 -1
  508. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +4 -4
  509. package/src/app/social/user-event/testing/user-event.testing.d.ts +1 -0
  510. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +2 -3
  511. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +1 -0
  512. package/src/assets/i18n/en-US.json +48 -19
  513. package/src/assets/i18n/en.json +48 -20
  514. package/src/assets/i18n/fr.json +50 -20
  515. package/src/assets/manifest.json +1 -1
  516. package/src/environments/environment.class.d.ts +10 -0
  517. package/src/environments/environment.d.ts +0 -1
  518. package/src/environments/environment.loader.d.ts +0 -2
  519. package/src/theme/_functions.scss +15 -0
  520. package/src/theme/_icons.scss +1 -1
  521. package/src/theme/_ionic.globals.scss +8 -2
  522. package/src/theme/_ionic.scss +10 -10
  523. package/src/theme/_material.globals.scss +16 -43
  524. package/src/theme/_material.scss +45 -32
  525. package/src/theme/_mixins.scss +99 -18
  526. package/src/theme/_ngx-components.forms.scss +354 -0
  527. package/src/theme/_ngx-components.globals.scss +20 -10
  528. package/src/theme/_ngx-components.scss +194 -400
  529. package/src/theme/_ngx-components.table.scss +200 -207
  530. package/src/theme/_ngx-components.tabs.scss +54 -0
  531. package/src/theme/_responsive.scss +0 -31
  532. package/src/theme/_theme.scss +2 -0
  533. package/src/theme/_theme.variables.scss +172 -0
  534. package/esm2022/src/app/core/table/actions-column.component.mjs +0 -115
  535. package/esm2022/src/app/shared/material/boolean/material-boolean2.mjs +0 -266
  536. package/esm2022/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +0 -104
  537. package/esm2022/src/app/shared/material/numpad/numpad.component.mjs +0 -83
  538. package/esm2022/src/app/shared/material/numpad/numpad.container.mjs +0 -203
  539. package/esm2022/src/app/shared/material/numpad/numpad.content.mjs +0 -19
  540. package/esm2022/src/app/shared/material/numpad/numpad.directive.mjs +0 -168
  541. package/esm2022/src/app/shared/material/numpad/numpad.dom-service.mjs +0 -36
  542. package/esm2022/src/app/shared/material/numpad/numpad.model.mjs +0 -16
  543. package/esm2022/src/app/shared/material/numpad/numpad.module.mjs +0 -60
  544. package/esm2022/src/app/shared/material/numpad/testing/numpad.test.mjs +0 -48
  545. package/src/app/core/table/actions-column.component.d.ts +0 -48
  546. package/src/app/shared/material/boolean/material-boolean2.d.ts +0 -66
  547. package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +0 -22
  548. package/src/app/shared/material/numpad/numpad.component.d.ts +0 -26
  549. package/src/app/shared/material/numpad/numpad.container.d.ts +0 -40
  550. package/src/app/shared/material/numpad/numpad.content.d.ts +0 -7
  551. package/src/app/shared/material/numpad/numpad.directive.d.ts +0 -35
  552. package/src/app/shared/material/numpad/numpad.dom-service.d.ts +0 -16
  553. package/src/app/shared/material/numpad/numpad.model.d.ts +0 -30
  554. package/src/app/shared/material/numpad/numpad.module.d.ts +0 -16
  555. package/src/app/shared/material/numpad/testing/numpad.test.d.ts +0 -13
package/doc/changelog.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## 0.1.7
4
4
 
5
- - [enh] Menu: Allow dynamic insertion, using a new config options (see 'CORE_CONFIG_OPTIONS.MENU_ITEMS')
5
+ - enh: Menu: Allow dynamic insertion, using a new config options (see 'CORE_CONFIG_OPTIONS.MENU_ITEMS')
6
6
  * Example:
7
7
  ```js
8
8
  const options = [
@@ -18,654 +18,896 @@
18
18
 
19
19
  ## 0.3.3
20
20
 
21
- - [enh] CSS `.filter-panel` should be used with `.filter-panel-floating` to enable floating position
21
+ - enh: CSS `.filter-panel` should be used with `.filter-panel-floating` to enable floating position
22
22
 
23
23
  ## 0.3.4
24
24
 
25
- - [fix] Users table: use floating filter panel
25
+ - fix: Users table: use floating filter panel
26
26
 
27
27
  ## 0.3.5
28
28
 
29
- - [enh] Add new pipe `arrayFilter` to be able to filter an array, in HTML templates
29
+ - enh: Add new pipe `arrayFilter` to be able to filter an array, in HTML templates
30
30
 
31
31
  ## 0.4.0
32
32
 
33
- - [enh] CSS: change style of error row (use warning color)
34
- - [enh] CSS: new class '.visible-dirty' (e.g. `<ion-icon name="star" class="visible-dirty"></ion-icon>` in the `actions` column)
35
- - [enh] ValidatorService: add function getI18nErrors(control)
36
- - [enh] AppTable: add outputs 'onDirty', 'onError'
37
- - [enh] AppTable:
33
+ - enh: CSS: change style of error row (use warning color)
34
+ - enh: CSS: new class '.visible-dirty' (e.g. `<ion-icon name="star" class="visible-dirty"></ion-icon>` in the `actions` column)
35
+ - enh: ValidatorService: add function getI18nErrors(control)
36
+ - enh: AppTable: add outputs 'onDirty', 'onError'
37
+ - enh: AppTable:
38
38
 
39
39
  ## 0.4.1
40
40
 
41
- - [enh] Add new component 'app-actions-columns'
41
+ - enh: Add new component 'app-actions-columns'
42
42
 
43
43
  ## 0.4.2
44
44
 
45
- - [enh] LoadResult class: Add a `fetchMore()` function
46
- - [enh] Autocomplete field: Add infinite scroll, using `LoadResult.fetchMore()`
45
+ - enh: LoadResult class: Add a `fetchMore()` function
46
+ - enh: Autocomplete field: Add infinite scroll, using `LoadResult.fetchMore()`
47
47
 
48
48
  ## 0.4.3
49
49
 
50
- - [enh] AppTable: add `options` (with property `interactive`) in `deleteRow()` and `deleteRows()`
50
+ - enh: AppTable: add `options` (with property `interactive`) in `deleteRow()` and `deleteRows()`
51
51
  Used to avoid user confirmation, when deletion has been confirmed elsewhere
52
52
 
53
53
  ## 0.4.4
54
54
 
55
- - [enh] Rename `<form-buttons-bar>` into `<app-form-buttons-bar>`
56
- - [enh] Export more CSS variables: `--app-paginator-height`, `app-form-buttons-bar-height`
55
+ - enh: Rename `<form-buttons-bar>` into `<app-form-buttons-bar>`
56
+ - enh: Export more CSS variables: `--app-paginator-height`, `app-form-buttons-bar-height`
57
57
 
58
58
  ## 0.5.0
59
59
 
60
- - [enh] Table: allow keyboard navigation, using `<app-actions-column>` and function `table.confirmAndBackward()` and `table.confirmAndForward()`
60
+ - enh: Table: allow keyboard navigation, using `<app-actions-column>` and function `table.confirmAndBackward()` and `table.confirmAndForward()`
61
61
 
62
62
  ## 0.7.10
63
63
 
64
- - [enh] Table: no more border-left, on dirty rows (because of sticky columns nightmare !)
64
+ - enh: Table: no more border-left, on dirty rows (because of sticky columns nightmare !)
65
65
 
66
66
  ## 0.9.0
67
67
 
68
- - [enh] Autocomplete field: add config option `suggestLengthThreshold` to suggest after typing more than x characters
69
- - [enh] Autocomplete field: add config option `debounceTime`
68
+ - enh: Autocomplete field: add config option `suggestLengthThreshold` to suggest after typing more than x characters
69
+ - enh: Autocomplete field: add config option `debounceTime`
70
70
 
71
71
  ## 0.10.0
72
72
 
73
- - [enh] Add EntityClasses class: use it to get an entity class by name (need to use @EntityClass decorator on the class)
73
+ - enh: Add EntityClasses class: use it to get an entity class by name (need to use @EntityClass decorator on the class)
74
74
 
75
75
  ## 0.11.4
76
76
 
77
- - [fix] Autocomplete field: when focus out, move caret to start (fix firefox bug, when `input[type=text]` content is too long)
77
+ - fix: Autocomplete field: when focus out, move caret to start (fix firefox bug, when `input[type=text]` content is too long)
78
78
 
79
79
  ## 0.11.5
80
80
 
81
- - [enh] Decorator @Entity now generate the static class function `asObject(source: any, opts?: any): any`
81
+ - enh: Decorator @Entity now generate the static class function `asObject(source: any, opts?: any): any`
82
82
 
83
83
  ## 0.15.0
84
84
 
85
- - [enh] Add IAppForm.loading (optional)
86
- - [enh] Add AppForm.waitIdle()
87
- - [enh] IAppForm, AppForm, AppTabEditor: Add markAsLoading() and markAsLoaded()
85
+ - enh: Add IAppForm.loading (optional)
86
+ - enh: Add AppForm.waitIdle()
87
+ - enh: IAppForm, AppForm, AppTabEditor: Add markAsLoading() and markAsLoaded()
88
88
 
89
89
  ## 0.18.0
90
90
 
91
- - [enh] Add AppTable.updateView(): Promise
92
- - [enh] Add AppTableDatasource: rename $busy into loadingSubject
93
- - [fix] Fix InMemoryTable setValue
94
- - [fix] AppTable: after save, refactor code to select previously edited row
91
+ - enh: Add AppTable.updateView(): Promise
92
+ - enh: Add AppTableDatasource: rename $busy into loadingSubject
93
+ - fix: Fix InMemoryTable setValue
94
+ - fix: AppTable: after save, refactor code to select previously edited row
95
95
 
96
96
  ## 0.19.0
97
97
 
98
- - [fix] refactor AppFormUtils.copyEntityToForm() for multiple values (split on the character '|' )
99
- - [fix] remove AppFormUtils.copyForm2Entity() - same a form.value
98
+ - fix: refactor AppFormUtils.copyEntityToForm() for multiple values (split on the character '|' )
99
+ - fix: remove AppFormUtils.copyForm2Entity() - same a form.value
100
100
 
101
101
  ## 0.20.0
102
102
 
103
- - [fix] remove functions `isArray()` (please use `Array.isArray()` instead)
104
- - [enh] Add `AccountService.onChange: Subject` to listen account settings changes
105
- - [fix] Account model: use minify option to serialize as a POD object
106
- - [fix] AccountService: change some internal function's visibility, to protected
107
- - [fix] InMemoryService: fix equals() default implementation (avoid infinite loop)
108
- - [fix] SCSS: Set mat-select-column to width: 50px, to make it compatible with sticky <mat-table>
109
- - [enh] Add ComponentDirtyGuard to public API
103
+ - fix: remove functions `isArray()` (please use `Array.isArray()` instead)
104
+ - enh: Add `AccountService.onChange: Subject` to listen account settings changes
105
+ - fix: Account model: use minify option to serialize as a POD object
106
+ - fix: AccountService: change some internal function's visibility, to protected
107
+ - fix: InMemoryService: fix equals() default implementation (avoid infinite loop)
108
+ - fix: SCSS: Set mat-select-column to width: 50px, to make it compatible with sticky <mat-table>
109
+ - enh: Add ComponentDirtyGuard to public API
110
110
 
111
111
  ## 0.20.0
112
112
 
113
- - [fix] AppEntityEditor: remove confirmation before backClick (use ComponentDirtyGuard instead)
114
- - [fix] AppEntityEditor: cancel() will not ask a confirmation, because called by dirty guard).
113
+ - fix: AppEntityEditor: remove confirmation before backClick (use ComponentDirtyGuard instead)
114
+ - fix: AppEntityEditor: cancel() will not ask a confirmation, because called by dirty guard).
115
115
 
116
116
  ## 0.23.0
117
- - [fix] MatAutocompleteField: when escape event, close the panel and stop event's propagation
118
- - [fix] AppFormButtonsBar: when escape event, make sure preventDefault!=false before emit a back event
117
+ - fix: MatAutocompleteField: when escape event, close the panel and stop event's propagation
118
+ - fix: AppFormButtonsBar: when escape event, make sure preventDefault!=false before emit a back event
119
119
 
120
120
  ## 0.24.0
121
121
 
122
- - [fix] AppInstallUpgradeCard: use Cordova Downloader plugin, to download APK file correctly
122
+ - fix: AppInstallUpgradeCard: use Cordova Downloader plugin, to download APK file correctly
123
123
 
124
124
  ## 0.25.0
125
125
 
126
- - [enh] Add FormErrorAdapter service, configurable using an injection token APP_FORM_ERROR_I18N_KEYS
127
- - [enh] Add pipe 'translateFormError' to translate form error in HTML template
126
+ - enh: Add FormErrorAdapter service, configurable using an injection token APP_FORM_ERROR_I18N_KEYS
127
+ - enh: Add pipe 'translateFormError' to translate form error in HTML template
128
128
 
129
129
 
130
130
  ## 0.26.0
131
131
 
132
- - [enh] Rename FormErrorAdapter into FormErrorTranslator
133
- - [enh] Add FormErrorTranslator to AppForm
134
- - [enh] Add directives [matBadgeIcon] and [ionBadgeIcon] to use icon within a matBadge
132
+ - enh: Rename FormErrorAdapter into FormErrorTranslator
133
+ - enh: Add FormErrorTranslator to AppForm
134
+ - enh: Add directives [matBadgeIcon] and [ionBadgeIcon] to use icon within a matBadge
135
135
 
136
136
  ## 0.27.0
137
137
 
138
- - [enh] Split `AppTabEditor` into `AppEditor` and `AppTabEditor`
139
- - [enh] Add `markAsReady()` to base components (`IAppForm`, `AppForm`, `AppTable`, `AppEditor`)
140
- - [enh] Add `ready() => Promise` to base components (`IAppForm`, `AppForm`, `AppTable`, `AppEditor`)
141
- - [enh] `AppEntityEditor`: wait components is ready, before calling `setValue()`
142
- - [enh] `waitFor()` now return a `Promise<void>` (instead of a `Promise<any>`)
138
+ - enh: Split `AppTabEditor` into `AppEditor` and `AppTabEditor`
139
+ - enh: Add `markAsReady()` to base components (`IAppForm`, `AppForm`, `AppTable`, `AppEditor`)
140
+ - enh: Add `ready() => Promise` to base components (`IAppForm`, `AppForm`, `AppTable`, `AppEditor`)
141
+ - enh: `AppEntityEditor`: wait components is ready, before calling `setValue()`
142
+ - enh: `waitFor()` now return a `Promise<void>` (instead of a `Promise<any>`)
143
143
 
144
144
  ## 1.0.0
145
145
 
146
- - [enh] Store local settings remotely
147
- - [fix] Fix suggestFromArray when items is null
148
- - [fix] Fix parsing error, in GraphQL service (e.g error from Oracle database)
146
+ - enh: Store local settings remotely
147
+ - fix: Fix suggestFromArray when items is null
148
+ - fix: Fix parsing error, in GraphQL service (e.g error from Oracle database)
149
149
 
150
150
  ## 1.2.5
151
151
 
152
- - [fix] Install/Upgrade component: can now download file, on Android devices
152
+ - fix: Install/Upgrade component: can now download file, on Android devices
153
153
 
154
154
  ## 1.5.1
155
155
 
156
- - [enh] MatAutocompleteField: set header position has sticky, in CSS
157
- - [enh] MatAutocompleteField: if mobile, set autocomplete panel's position to 'above' (instead of 'auto') because keyboard should open at the bottom
158
- - [fix] AppForm: add method 'unregisterSubscription()'
159
- - [fix] Account: disable form when offline
156
+ - enh: MatAutocompleteField: set header position has sticky, in CSS
157
+ - enh: MatAutocompleteField: if mobile, set autocomplete panel's position to 'above' (instead of 'auto') because keyboard should open at the bottom
158
+ - fix: AppForm: add method 'unregisterSubscription()'
159
+ - fix: Account: disable form when offline
160
160
 
161
161
  # 1.5.6
162
162
 
163
- - [enh] Add observables.waitForTrue() function
164
- - [enh] Editor: apply ready() opts (timeout, dueTime)
165
- - [fix] suggestFromArray: fix sorting
163
+ - enh: Add observables.waitForTrue() function
164
+ - enh: Editor: apply ready() opts (timeout, dueTime)
165
+ - fix: suggestFromArray: fix sorting
166
166
 
167
167
  # 1.5.8
168
168
 
169
- [fix] When deleting rows selection, make sure to confirm edited row first
169
+ fix: When deleting rows selection, make sure to confirm edited row first
170
170
 
171
171
  # 1.6.4
172
172
 
173
- [enh] EntitiesTableDateSource: Add 'fetchMore()' function (usable when dataService fill LoadResult.fetchMore)
174
- [fix] Auth modal: show error (e.g. when bad credentials)
175
- [fix] MatChipsField: rename 'compareWith' in 'equals'
176
- [enh] MatChipsField: Allow setup chips color
177
- [fix] MatSwipeField: rename 'compareWith' in 'equals'
173
+ enh: EntitiesTableDateSource: Add 'fetchMore()' function (usable when dataService fill LoadResult.fetchMore)
174
+ fix: Auth modal: show error (e.g. when bad credentials)
175
+ fix: MatChipsField: rename 'compareWith' in 'equals'
176
+ enh: MatChipsField: Allow setup chips color
177
+ fix: MatSwipeField: rename 'compareWith' in 'equals'
178
178
 
179
179
  # 1.6.5
180
180
 
181
- [fix] MatChipsField: Fix 'focusOut' then 'focusIn' behavior
182
- [fix] MatAutocompleteField: Fix 'focusOut' then 'focusIn' behavior
181
+ fix: MatChipsField: Fix 'focusOut' then 'focusIn' behavior
182
+ fix: MatAutocompleteField: Fix 'focusOut' then 'focusIn' behavior
183
183
 
184
184
  # 1.6.18
185
- [fix] MatDateTimeField: Fix when no Keyboard plugin
185
+ fix: MatDateTimeField: Fix when no Keyboard plugin
186
186
 
187
187
  # 1.7.0
188
188
 
189
- [enh] Add directive `*ngVar` - see https://stackoverflow.com/questions/38582293/how-to-declare-a-variable-in-a-template-in-angular
189
+ enh: Add directive `*ngVar` - see https://stackoverflow.com/questions/38582293/how-to-declare-a-variable-in-a-template-in-angular
190
190
 
191
191
  # 1.8.1
192
192
 
193
- [enh] IEntityService: add new function `canUserWrite()`
194
- [enh] AppEntityEditor: add a default implementation of `canUserWrite()`
193
+ enh: IEntityService: add new function `canUserWrite()`
194
+ enh: AppEntityEditor: add a default implementation of `canUserWrite()`
195
195
 
196
196
  # 1.9.5
197
197
 
198
- [enh] AppTable: Add injector in constructor
199
- [fix] Platform: detect window touchscreen as NOT mobile
200
- [fix] AppEntityEditor: make sure to unsubscribe listen remote changes, when destroy
201
- [fix] Home: fix layout, of card close button, in history items
202
- [fix] Make sure to use LocalSettingsServicesettings.mobile instead of PlatformService.mobile
203
- [enh] Account: auto start listen changes on pod, during the user session
198
+ enh: AppTable: Add injector in constructor
199
+ fix: Platform: detect window touchscreen as NOT mobile
200
+ fix: AppEntityEditor: make sure to unsubscribe listen remote changes, when destroy
201
+ fix: Home: fix layout, of card close button, in history items
202
+ fix: Make sure to use LocalSettingsServicesettings.mobile instead of PlatformService.mobile
203
+ enh: Account: auto start listen changes on pod, during the user session
204
204
 
205
205
  # 1.10.1
206
206
 
207
- [fix] AppTable: Fix table row deletion, when editedRow is invalid and not saved yet - fix issue IMAGINE-669
207
+ fix: AppTable: Fix table row deletion, when editedRow is invalid and not saved yet - fix issue IMAGINE-669
208
208
 
209
209
  # 1.10.9
210
210
 
211
- [fix] AppTable: Fix table when calling save with options : `keepEditing=false`
211
+ fix: AppTable: Fix table when calling save with options : `keepEditing=false`
212
212
 
213
213
  # 1.11.0
214
214
 
215
- [enh] Add component UploadFilePopover
216
- [enh] Add component TextPopover
217
- [enh] Upgrade to @apollo/client 3.5.10
215
+ enh: Add component UploadFilePopover
216
+ enh: Add component TextPopover
217
+ enh: Upgrade to @apollo/client 3.5.10
218
218
 
219
219
  # 1.12.1
220
220
 
221
- [fix] searchTextFilter: escape special characters to avoid RegExp parse exception
222
- [enh] Autocomplete: Move result count in footer
221
+ fix: searchTextFilter: escape special characters to avoid RegExp parse exception
222
+ enh: Autocomplete: Move result count in footer
223
223
 
224
224
  # 1.12.4
225
225
 
226
- [fix] AppTable: Avoid deleting a row twice, when deleting an invalid row BUT not editing
226
+ fix: AppTable: Avoid deleting a row twice, when deleting an invalid row BUT not editing
227
227
 
228
228
  # 1.12.13
229
- [enh] Add pipes formGet, formGetControl and formGetArray, to get a form controls
230
- [enh] Add pipe strIncludes
229
+ enh: Add pipes formGet, formGetControl and formGetArray, to get a form controls
230
+ enh: Add pipe strIncludes
231
231
 
232
232
  # 1.13.0
233
- [enh] Add utility class SharedAsyncValidators
234
- [enh] Add SharedAsyncValidators.registerAsyncValidator() to add long during validation job
235
- [fix] BaseEntityService: listenChanges() now return an empty observable, when not implemented, instead of error
236
- [fix] InstallUpgradeCard: do not show install link, on Windows touch screen
233
+ enh: Add utility class SharedAsyncValidators
234
+ enh: Add SharedAsyncValidators.registerAsyncValidator() to add long during validation job
235
+ fix: BaseEntityService: listenChanges() now return an empty observable, when not implemented, instead of error
236
+ fix: InstallUpgradeCard: do not show install link, on Windows touch screen
237
237
 
238
238
  # 1.14.0
239
- [enh] Platform: auto reload web browser's page, if a new version is detected at startup
239
+ enh: Platform: auto reload web browser's page, if a new version is detected at startup
240
240
  # 1.14.2
241
- [enh] Add DateUtils.resetTime(date, tz?: string)
241
+ enh: Add DateUtils.resetTime(date, tz?: string)
242
242
 
243
243
  # 1.15.0
244
- [fix] MateDateField: make sure to display errors
245
- [fix] MateDateField: Allow to show matPrefix (e.g. icon)
246
- [fix] MateDateField: Better management of mat-error
247
- [fix] MateDateTimeField: Add error for dateIsBefore
248
- [enh] SharedValidators: add new validator 'dateIsBefore'
244
+ fix: MateDateField: make sure to display errors
245
+ fix: MateDateField: Allow to show matPrefix (e.g. icon)
246
+ fix: MateDateField: Better management of mat-error
247
+ fix: MateDateTimeField: Add error for dateIsBefore
248
+ enh: SharedValidators: add new validator 'dateIsBefore'
249
249
 
250
250
  # 1.15.1
251
- [fix] MateDateField: Add a timezone to serialize/deserialize date value
251
+ fix: MateDateField: Add a timezone to serialize/deserialize date value
252
252
 
253
253
  # 1.15.4
254
- [enh] MateDateField: Add an input 'datePickerFiler' to filter dates in picker
255
- [enh] MateDateTimeField: Add an input 'datePickerFiler' to filter dates in picker
254
+ enh: MateDateField: Add an input 'datePickerFiler' to filter dates in picker
255
+ enh: MateDateTimeField: Add an input 'datePickerFiler' to filter dates in picker
256
256
 
257
257
  # 1.15.9
258
- [fix] Editor listenChanges() should not update the cache, but call reload() when changes detected.
258
+ fix: Editor listenChanges() should not update the cache, but call reload() when changes detected.
259
259
  This will allow fetching partial graph in subscriptions
260
- [enh] Editor: show a toast when remote changes are detected
261
- [fix] Cache: minor fix
260
+ enh: Editor: show a toast when remote changes are detected
261
+ fix: Cache: minor fix
262
262
 
263
263
  # 1.15.13
264
- [fix] File upload component: fix file/event management
265
- [enh] Add new pipe 'formGetGroup:<name>'
264
+ fix: File upload component: fix file/event management
265
+ enh: Add new pipe 'formGetGroup:<name>'
266
266
 
267
267
  # 1.16.0
268
- [enh] Refactor JobUtils functions: 'progression' is now optional, and hold by options
268
+ enh: Refactor JobUtils functions: 'progression' is now optional, and hold by options
269
269
 
270
270
  # 1.17.0
271
- [fix] GraphQL: set NetworkStatus.error on error object in order to throw corresponding exception
271
+ fix: GraphQL: set NetworkStatus.error on error object in order to throw corresponding exception
272
272
 
273
273
  # 1.17.1
274
- [fix] Hotkeys: Prevent global hotkeys when popover component exists
274
+ fix: Hotkeys: Prevent global hotkeys when popover component exists
275
275
 
276
276
  # 1.18.0
277
- [enh] Autocomplete field: Add search bar on mobile
278
- [fix] Autocomplete field: Fix style when multiple=true
279
- [fix] Autocomplete field: Fix default displayWith when multiple=true (manage array value)
280
- [fix] Exclude Windows from the platform mobile detection
277
+ enh: Autocomplete field: Add search bar on mobile
278
+ fix: Autocomplete field: Fix style when multiple=true
279
+ fix: Autocomplete field: Fix default displayWith when multiple=true (manage array value)
280
+ fix: Exclude Windows from the platform mobile detection
281
281
 
282
282
  # 1.18.4
283
- [fix] Autocomplete: fix search in mobile searchbar
284
- [enh] Material field components: allow to set 'required' as empty tag, and not only '[required]=true'
283
+ fix: Autocomplete: fix search in mobile searchbar
284
+ enh: Material field components: allow to set 'required' as empty tag, and not only '[required]=true'
285
285
 
286
286
  # 1.18.4
287
- [fix] Autocomplete: fix panel width, on small screens
287
+ fix: Autocomplete: fix panel width, on small screens
288
288
 
289
289
  # 1.18.7
290
- [fix] fix DateUtils.min() and DateUtils.max()
290
+ fix: fix DateUtils.min() and DateUtils.max()
291
291
 
292
292
  # 1.19.0
293
- [enh] Add a MessageModal, to compose message to users (internal or email messages)
294
- [fix] MatDateField: if not required, manually set a date will not apply the value to formControl
293
+ enh: Add a MessageModal, to compose message to users (internal or email messages)
294
+ fix: MatDateField: if not required, manually set a date will not apply the value to formControl
295
295
 
296
296
  # 1.19.1
297
- [fix] Platform detection failed (infinite loop) on MacBook
297
+ fix: Platform detection failed (infinite loop) on MacBook
298
298
 
299
299
  # 1.19.2
300
- [fix] Platform detection cache
300
+ fix: Platform detection cache
301
301
 
302
302
  # 1.19.3
303
- [enh] AppForm now wait form not pending, before emitting onSubmit event
303
+ enh: AppForm now wait form not pending, before emitting onSubmit event
304
304
 
305
305
  # 1.19.6
306
- [fix] Fix toolbar back button
307
- [fix] Autocomplete: Fix multiple values (displayValue was no shown)
308
- [fix] Autocomplete: avoid to many call to suggest, on mobile
309
- [fix] Autocomplete: use mat-option for searchbar, to have selected option is visible
310
- [fix] Install APK: make sure to have '.apk' at end of filename
311
- [fix] Auth modal: keep modal into loading, when waiting server response
312
- [enh] Create a specific card for offline mode update
313
- [fix] Entity storage: do NOT set skipIfPristine to false, when storage keep non local entities (e.g. OperationVO)
314
- [enh] Entity storage: persist() has a new option skipIfPristine, to be able to force all data to be stored, even if not dirty
306
+ fix: Fix toolbar back button
307
+ fix: Autocomplete: Fix multiple values (displayValue was no shown)
308
+ fix: Autocomplete: avoid to many call to suggest, on mobile
309
+ fix: Autocomplete: use mat-option for searchbar, to have selected option is visible
310
+ fix: Install APK: make sure to have '.apk' at end of filename
311
+ fix: Auth modal: keep modal into loading, when waiting server response
312
+ enh: Create a specific card for offline mode update
313
+ fix: Entity storage: do NOT set skipIfPristine to false, when storage keep non local entities (e.g. OperationVO)
314
+ enh: Entity storage: persist() has a new option skipIfPristine, to be able to force all data to be stored, even if not dirty
315
315
 
316
316
  # 1.19.7
317
- [enh] Add pipe 'formGetValue' that will listen value changes (from a form or a control)
317
+ enh: Add pipe 'formGetValue' that will listen value changes (from a form or a control)
318
318
 
319
319
  # 1.19.16
320
- [fix] Date and Date Short field: optimize <mat-error> with a switch/case
321
- [fix] Lat/Long pipes: remove provider in root (not need on a pipe)
322
- [fix] SharedValidators: rename 'double' validator into 'decimal'. Now return an error 'decimal' when opts.maxDecimals is nil
320
+ fix: Date and Date Short field: optimize <mat-error> with a switch/case
321
+ fix: Lat/Long pipes: remove provider in root (not need on a pipe)
322
+ fix: SharedValidators: rename 'double' validator into 'decimal'. Now return an error 'decimal' when opts.maxDecimals is nil
323
323
 
324
324
  # 1.19.18
325
- [fix] Add a workaround to patch <html> class to 'plt-desktop', on Windows touch screen (fix sumaris-app issue #346)
326
- [enh] EntitiesStorage: detect platform pause, to force saving the storage
325
+ fix: Add a workaround to patch <html> class to 'plt-desktop', on Windows touch screen (fix sumaris-app issue #346)
326
+ enh: EntitiesStorage: detect platform pause, to force saving the storage
327
327
 
328
328
  # 1.19.23
329
- [fix] Menu: avoid to many call of onLogin() function (add a distinctUntilChanged() filter)
330
- [fix] MateDateTime: set required validator using template, and no more by overriding formControl.validator (allow to change the required value)
331
- [fix] EntityEditor: wait end of saving, in waitIdle() function
332
- [fix] EntityEditor: add debug log when changing/updating route
333
- [fix] EntityEditor.load(): rename the unused options 'updateTabAndRoute' into 'updateRoute'
334
- [fix] EntityEditor.load(): allow to reset to the first tab (e.g. when load another entity into an existing editor)
329
+ fix: Menu: avoid to many call of onLogin() function (add a distinctUntilChanged() filter)
330
+ fix: MateDateTime: set required validator using template, and no more by overriding formControl.validator (allow to change the required value)
331
+ fix: EntityEditor: wait end of saving, in waitIdle() function
332
+ fix: EntityEditor: add debug log when changing/updating route
333
+ fix: EntityEditor.load(): rename the unused options 'updateTabAndRoute' into 'updateRoute'
334
+ fix: EntityEditor.load(): allow to reset to the first tab (e.g. when load another entity into an existing editor)
335
335
 
336
336
  # 1.19.23
337
- [fix] Editor: allow to skip page history (computePageHistory can return 'undefined')
337
+ fix: Editor: allow to skip page history (computePageHistory can return 'undefined')
338
338
 
339
339
  # 1.19.25
340
- [fix] Home: translate 'Loading...' message
340
+ fix: Home: translate 'Loading...' message
341
341
 
342
342
  # 1.19.28
343
- [enh] Add function escapeRegExp() to escape all special regexp characters
343
+ enh: Add function escapeRegExp() to escape all special regexp characters
344
344
 
345
345
  # 1.19.30
346
- [enh] Add argument to pipe 'formGetValue' to listen status change (e.g. to force update, when emitEvent: false)
346
+ enh: Add argument to pipe 'formGetValue' to listen status change (e.g. to force update, when emitEvent: false)
347
347
 
348
348
  # 1.20.0
349
349
 
350
- [enh] Menu: allow to enable/disable menu
351
- [enh] Menu: rename MenuService.menuVisible$ into MenuService.splitPaneWhen
350
+ enh: Menu: allow to enable/disable menu
351
+ enh: Menu: rename MenuService.menuVisible$ into MenuService.splitPaneWhen
352
352
 
353
353
  # 1.20.2
354
354
 
355
- [enh] Material fields: add @Input() appearance
355
+ enh: Material fields: add @Input() appearance
356
356
 
357
357
  # 1.20.3
358
- [enh] css-variables-to-root-mobile() will expose variables '--mat-tab-link-height' and '--mat-tab-bar-height'
358
+ enh: css-variables-to-root-mobile() will expose variables '--mat-tab-link-height' and '--mat-tab-bar-height'
359
359
 
360
360
  # 1.20.4
361
- [enh] Add helper class CsvUtils
362
- [enh] Add pipe formatProperty
363
- [enh] Add directive [appAutoTitle] for <ion-label> or <mat-label>
361
+ enh: Add helper class CsvUtils
362
+ enh: Add pipe formatProperty
363
+ enh: Add directive [appAutoTitle] for <ion-label> or <mat-label>
364
364
 
365
365
  # 1.20.5
366
- [enh] formatProperty pipe: when type is 'boolean', display a translated Yes/No
366
+ enh: formatProperty pipe: when type is 'boolean', display a translated Yes/No
367
367
 
368
368
  # 1.20.7
369
- [enh] add function FileUtils.writeTextToFile()
369
+ enh: add function FileUtils.writeTextToFile()
370
370
 
371
371
  # 1.20.11
372
- [enh] add function FileUtils.downloadUri()
372
+ enh: add function FileUtils.downloadUri()
373
373
 
374
374
  # 1.20.13
375
- [fix] fix SharedValidators.decimal() when maxDecimals = 3 (cached regexp was wrong)
375
+ fix: fix SharedValidators.decimal() when maxDecimals = 3 (cached regexp was wrong)
376
376
 
377
377
  # 1.20.14
378
- [fix] Menu: Force menu update when config changed
378
+ fix: Menu: Force menu update when config changed
379
379
 
380
380
  # 1.20.16
381
- [fix] MatChipsField: fix chip height
381
+ fix: MatChipsField: fix chip height
382
382
 
383
383
  # 1.20.17
384
- [fix] Add module ResizableModule, for MatTable column resize
384
+ fix: Add module ResizableModule, for MatTable column resize
385
385
 
386
386
  # 1.20.18
387
- [fix] PlatformService.download() now useFileUtils.download(), that create a temp download (not need browser permission to open popup)
387
+ fix: PlatformService.download() now useFileUtils.download(), that create a temp download (not need browser permission to open popup)
388
388
 
389
389
  # 1.20.19
390
- [enh] Add new abstract class AppEntityEditorModal, that can managed many forms and tables
390
+ enh: Add new abstract class AppEntityEditorModal, that can managed many forms and tables
391
391
 
392
392
  # 1.20.20
393
- [fix] SCSS: remove `user-select: text !important` applied on body, because of modals ViewEncapsulation.None (e.g. physical gear modal) where Tab label were becomes focusable
393
+ fix: SCSS: remove `user-select: text !important` applied on body, because of modals ViewEncapsulation.None (e.g. physical gear modal) where Tab label were becomes focusable
394
394
 
395
395
  # 1.20.21
396
- [fix] Fix mat latlong field: was broken since v1.19.13
396
+ fix: Fix mat latlong field: was broken since v1.19.13
397
397
 
398
398
  # 1.20.21
399
- [fix] Fix MatDateField mat-error display (was too large)
399
+ fix: Fix MatDateField mat-error display (was too large)
400
400
 
401
401
  # 1.20.24
402
- [fix] Revert change on LatLongField (SCSS file was removed ??)
402
+ fix: Revert change on LatLongField (SCSS file was removed ??)
403
403
 
404
404
  # 1.20.25
405
- [fix] MatBooleanField: set indeterminate=true, when value is null
405
+ fix: MatBooleanField: set indeterminate=true, when value is null
406
406
 
407
407
  # 1.20.27
408
408
 
409
- [fix] Mat***Field: add `@Input() appearance`
409
+ fix: Mat***Field: add `@Input() appearance`
410
410
 
411
411
  # 1.20.30
412
- [fix] Add InMemoryDataService.hiddenCount
412
+ fix: Add InMemoryDataService.hiddenCount
413
413
 
414
414
  # 1.20.33
415
- [fix] MatAutocompleteField: reload items when cleaning text, and no suggestLengthThreshold
415
+ fix: MatAutocompleteField: reload items when cleaning text, and no suggestLengthThreshold
416
416
 
417
417
  # 1.20.34
418
- [fix] AppTable: remove 'opts.skipIfLoading' on delete functions, to use only 'opts.interactive' to force deletion when table is busy.
418
+ fix: AppTable: remove 'opts.skipIfLoading' on delete functions, to use only 'opts.interactive' to force deletion when table is busy.
419
419
 
420
420
  # 1.21.0
421
- [enh] AppForm: use public behavior subjects: readySubject, loadingSubject, errorSubject
421
+ enh: AppForm: use public behavior subjects: readySubject, loadingSubject, errorSubject
422
422
 
423
423
  # 1.22.0
424
- [enh] Add social components: UserEventNotification and JobProgression
424
+ enh: Add social components: UserEventNotification and JobProgression
425
425
 
426
426
  # 1.22.1
427
- [enh] Menu: add APP_MENU_OPTIONS token, to configure menu (e.g. show notification icon in the left menu header)
427
+ enh: Menu: add APP_MENU_OPTIONS token, to configure menu (e.g. show notification icon in the left menu header)
428
428
 
429
429
  # 1.22.9
430
- [enh] Remove <app-user-events-table> (move to specific sub projects that use ngx-components)
430
+ enh: Remove <app-user-events-table> (move to specific sub projects that use ngx-components)
431
431
 
432
432
  # 1.22.11
433
- [enh] Rename <app-user-event-notification-component> into <app-user-event-notification-icon>
433
+ enh: Rename <app-user-event-notification-component> into <app-user-event-notification-icon>
434
434
 
435
435
  # 1.22.12
436
- [enh] Can mark a Moment without time, allowing empty time field in MatDateTime
436
+ enh: Can mark a Moment without time, allowing empty time field in MatDateTime
437
437
 
438
438
  # 1.23.6
439
- [fix] Many fix in table. Upgrade to ngx-material-table 0.12.0
440
- [enh] Table, Form and Editor: Add a destroySubject
441
- [enh] Observables functions first***Promise() : add more options (timeout or stop notifier)
439
+ fix: Many fix in table. Upgrade to ngx-material-table 0.12.0
440
+ enh: Table, Form and Editor: Add a destroySubject
441
+ enh: Observables functions first***Promise() : add more options (timeout or stop notifier)
442
442
 
443
443
  # 1.23.10
444
- [enh] Autocomplete: add a 'title' property on each option, on desktop screen
444
+ enh: Autocomplete: add a 'title' property on each option, on desktop screen
445
445
 
446
446
  # 1.23.11
447
- [fix] Memory Data service: now implement IStartableService
448
- [enh] StartableService: use a stopSubject, to stop waitFor promise
449
- [enh] remove unused class EntitiesService. Use IEntitiesService instead
447
+ fix: Memory Data service: now implement IStartableService
448
+ enh: StartableService: use a stopSubject, to stop waitFor promise
449
+ enh: remove unused class EntitiesService. Use IEntitiesService instead
450
450
 
451
451
  # 1.23.26
452
- [enh] Add new pipe 'arrayJoin'
453
- [enh] 'arrayPluck' pipe: allow to use string[] for path
454
- [enh] getPropertyByPath() function now allow to use string[] as path
452
+ enh: Add new pipe 'arrayJoin'
453
+ enh: 'arrayPluck' pipe: allow to use string[] for path
454
+ enh: getPropertyByPath() function now allow to use string[] as path
455
455
 
456
456
  # 1.23.29
457
- [enh] FormArrayHelper: add setValue() to resize the FormArray, then set value
457
+ enh: FormArrayHelper: add setValue() to resize the FormArray, then set value
458
458
 
459
459
  # 1.23.30
460
- [fix] InMemoryDataService: do NOT apply default sortReplacement id -> rankOrder
460
+ fix: InMemoryDataService: do NOT apply default sortReplacement id -> rankOrder
461
461
 
462
462
  # 1.23.31
463
- [fix] InMemoryDataService: change 'dirtySubject' as public property
463
+ fix: InMemoryDataService: change 'dirtySubject' as public property
464
464
 
465
465
  # 1.23.39
466
- [enh] Add FormArrayHelper.patchValue() : clear array, then push each value
467
- [fix] StartableService: avoid to log error when stopped
466
+ enh: Add FormArrayHelper.patchValue() : clear array, then push each value
467
+ fix: StartableService: avoid to log error when stopped
468
468
 
469
469
  # 1.23.41
470
- [enh] AppEditor: Add 'loaded' getter
470
+ enh: AppEditor: Add 'loaded' getter
471
471
 
472
472
  # 1.23.44
473
- [enh] Referential model: add a 'icon' property (IconRef)
473
+ enh: Referential model: add a 'icon' property (IconRef)
474
474
 
475
475
  # 1.23.46
476
- [enh] Add `ColorScale.getValueColor(): Color`
477
- [enh] EntityEditorModal: rename input `isNewData` into `isNew`
476
+ enh: Add `ColorScale.getValueColor(): Color`
477
+ enh: EntityEditorModal: rename input `isNewData` into `isNew`
478
478
 
479
479
  # 1.23.51
480
480
  Observables: function `waitFor()`, `waitForTrue()`, `watForFalse()`, `firstNotNilPromise()`
481
- - [fix] Make sure `takeUntil` is always the last operator (avoid memory leak)
482
- - [enh] Observables: Allow set option.stopError with custom error message
483
- - [enh] Observables: Create the Error outside the observable, to keep the original stack trace readable
481
+ - fix: Make sure `takeUntil` is always the last operator (avoid memory leak)
482
+ - enh: Observables: Allow set option.stopError with custom error message
483
+ - enh: Observables: Create the Error outside the observable, to keep the original stack trace readable
484
484
 
485
485
  # 1.23.61
486
- - [fix] Boolean field: fix button layout
486
+ - fix: Boolean field: fix button layout
487
487
 
488
488
  # 1.23.65
489
- - [enh] Add pipes: isNotNil and isNotNilOrNaN
489
+ - enh: Add pipes: isNotNil and isNotNilOrNaN
490
490
 
491
491
  # 1.23.67
492
- - [fix] Rename DateFormatPipe into DateFormatService (DateFormatPipe is no more a provider)
493
- - [fix] Fix patterns in DateFormatPipe/Service : add a fallback when translate service is not started - fix issue sar-app #28
492
+ - fix: Rename DateFormatPipe into DateFormatService (DateFormatPipe is no more a provider)
493
+ - fix: Fix patterns in DateFormatPipe/Service : add a fallback when translate service is not started - fix issue sar-app #28
494
494
 
495
495
  # 2.0.0
496
- - [enh] Migration to
496
+ - enh: Migration to
497
497
  - Angular 14.2
498
498
  - Ionic 6.2
499
499
  - Angular Material Table 0.14.4 (allow to use async validator for rows)
500
500
  - Apollo 3, graph-ws 5
501
- - [enh] Add <app-debug> component
501
+ - enh: Add <app-debug> component
502
502
 
503
503
  # 2.1.0
504
- - [enh] Add new class AppFormArray with all functions of FormArrayHelper
504
+ - enh: Add new class AppFormArray with all functions of FormArrayHelper
505
505
 
506
506
  # 2.2.1
507
- - [fix] FormArrayHelper and AppFormArray: Apply the parent disabled state, in added controls, when calling resize() or patchValue()
508
- - [fix] FormArrayHelper.getOrCreateArray(): Apply the parent form disabled state, in added FormArray
509
- - [fix] MatChipsField: fix loading spinner freeze
507
+ - fix: FormArrayHelper and AppFormArray: Apply the parent disabled state, in added controls, when calling resize() or patchValue()
508
+ - fix: FormArrayHelper.getOrCreateArray(): Apply the parent form disabled state, in added FormArray
509
+ - fix: MatChipsField: fix loading spinner freeze
510
510
 
511
511
  # 2.2.3
512
- - [enh] Test Geolocation.getCurrentPosition() in the lat/long field test page
512
+ - enh: Test Geolocation.getCurrentPosition() in the lat/long field test page
513
513
 
514
514
  # 2.2.4
515
- - [fix] Fix DateUtils.isSame(), when first argument is nil, but the second not
516
- - [enh] AppTable: allow to call deleteSelection with opts (e.g `{interactive: false}`)
515
+ - fix: Fix DateUtils.isSame(), when first argument is nil, but the second not
516
+ - enh: AppTable: allow to call deleteSelection with opts (e.g `{interactive: false}`)
517
517
 
518
518
  # 2.2.6
519
- - [fix] Refresh menu on any account changes (login changes - eg. when account updated)
519
+ - fix: Refresh menu on any account changes (login changes - eg. when account updated)
520
520
 
521
521
  # 2.2.8
522
- - [fix] Table actions column: add CSS variable to set column width, min-width and max-width
522
+ - fix: Table actions column: add CSS variable to set column width, min-width and max-width
523
523
 
524
524
  # 2.3.7
525
- - [fix] Mat form field: use inherit font size (do not force font-size, in the theme)
526
- - [fix] MatDateShort: fix behaviour for Angular 14
525
+ - fix: Mat form field: use inherit font size (do not force font-size, in the theme)
526
+ - fix: MatDateShort: fix behaviour for Angular 14
527
527
 
528
528
  # 2.4.0
529
529
  - Breaking change: ProgressBarService and HTTP_INTERCEPTORS no longer provided in SharedModule (see: AppModule)
530
- - [enh] Make ProgressBarService fully optional (InjectionToken: APP_PROGRESS_BAR_SERVICE)
531
- - [enh] Settings: the settings object is now stored in json format
530
+ - enh: Make ProgressBarService fully optional (InjectionToken: APP_PROGRESS_BAR_SERVICE)
531
+ - enh: Settings: the settings object is now stored in json format
532
532
 
533
533
  # 2.4.1
534
- - [fix] AppFormArray: do not resize the array when patchValue() receive `undefined` value (e.g. useful when called by parent, recursively, without value)
535
- - [fix] AppAsyncTable: optimize markAsUntouched()
534
+ - fix: AppFormArray: do not resize the array when patchValue() receive `undefined` value (e.g. useful when called by parent, recursively, without value)
535
+ - fix: AppAsyncTable: optimize markAsUntouched()
536
536
 
537
537
  # 2.4.2
538
- - [enh] Graphql service: add new token `APP_GRAPHQL_FRAGMENTS` to register fragments, and avoid redeclaration in queries (see https://github.com/apollographql/apollo-client/pull/9764#issuecomment-1329857853)
538
+ - enh: Graphql service: add new token `APP_GRAPHQL_FRAGMENTS` to register fragments, and avoid redeclaration in queries (see https://github.com/apollographql/apollo-client/pull/9764#issuecomment-1329857853)
539
539
 
540
540
  # 2.4.3
541
- - [fix] AppFormArray: do not resize the array when patchValue() receive `null` or `undefined` value (same behavior as official `FormArray.patchValue()`)
541
+ - fix: AppFormArray: do not resize the array when patchValue() receive `null` or `undefined` value (same behavior as official `FormArray.patchValue()`)
542
542
 
543
543
  # 2.4.4
544
- - [fix] Applying environment defaultLocale, when settings data has no locale (merge some code from lpecquot, that was in a branch)
544
+ - fix: Applying environment defaultLocale, when settings data has no locale (merge some code from lpecquot, that was in a branch)
545
545
 
546
546
  # 2.4.9
547
- - [fix] Settings: allow to store settings as string (like < 2.4.0) using an injection token
547
+ - fix: Settings: allow to store settings as string (like < 2.4.0) using an injection token
548
548
 
549
549
  # 2.4.10
550
- - [fix] When detecting a app update, stop the check timer to avoid to many toast to be displayed
550
+ - fix: When detecting a app update, stop the check timer to avoid to many toast to be displayed
551
551
 
552
552
  # 2.4.14
553
- - [enh] add function `setPropertyByPath()`
554
- - [fix] Implement `EntityUtils.getPropertyByPath()` using generic shared function `getPropertyByPath()`
553
+ - enh: add function `setPropertyByPath()`
554
+ - fix: Implement `EntityUtils.getPropertyByPath()` using generic shared function `getPropertyByPath()`
555
555
 
556
556
  # 2.4.15
557
- - [fix] Fix pipes formGetControl, formGetValue, formGetGroup : when using a path, return nil if control not found, and NOT the form itself
557
+ - fix: Fix pipes formGetControl, formGetValue, formGetGroup : when using a path, return nil if control not found, and NOT the form itself
558
558
 
559
559
  # 2.4.16
560
- - [fix] `SharedModule.forRoot()`: make environment optional, to be defined it in the `app.module.ts` (need by Quadrige App)
560
+ - fix: `SharedModule.forRoot()`: make environment optional, to be defined it in the `app.module.ts` (need by Quadrige App)
561
561
 
562
562
  # 2.4.17
563
- - [fix] MatLatLongField: remove strict character regexp, in degrees part, to be able to set only one digit (e.g. `9°`)
563
+ - fix: MatLatLongField: remove strict character regexp, in degrees part, to be able to set only one digit (e.g. `9°`)
564
564
 
565
565
  # 2.4.18
566
- - [fix] MatDateShortField: fix control validation, in desktop mode
566
+ - fix: MatDateShortField: fix control validation, in desktop mode
567
567
 
568
568
  # 2.4.19
569
- - [fix] MatAutocompleteField: revert the cdk overlay position, when closing the mat-select panel
569
+ - fix: MatAutocompleteField: revert the cdk overlay position, when closing the mat-select panel
570
570
 
571
571
  # 2.4.23
572
- - [enh] Add DateUtils.markTime(), to reset the 'no time' marker
573
- - [enh] Add DateUtilsEntityEditor: simplify updateTabAndRoute()
574
- - [enh] Add DateUtilsEntityEditor: updateRoute() now manage queryParams change, before /new to /:id transition
575
- - [enh] Toolbar: goBack() return a boolean
572
+ - enh: Add DateUtils.markTime(), to reset the 'no time' marker
573
+ - enh: Add DateUtilsEntityEditor: simplify updateTabAndRoute()
574
+ - enh: Add DateUtilsEntityEditor: updateRoute() now manage queryParams change, before /new to /:id transition
575
+ - enh: Toolbar: goBack() return a boolean
576
576
 
577
577
  # 2.4.25
578
- - [enh] Environment: add a boolean option 'sameUrlPeer', to force network to start on peer at the same URL
579
- - [enh] EntityEditor: allow to listen changes on local entity
580
- - [enh] add functions collectByProperty() to split an array in a map of array
578
+ - enh: Environment: add a boolean option 'sameUrlPeer', to force network to start on peer at the same URL
579
+ - enh: EntityEditor: allow to listen changes on local entity
580
+ - enh: add functions collectByProperty() to split an array in a map of array
581
581
 
582
582
  # 2.4.26
583
- - [fix] Rename pipe 'isNotOnField' by 'isOnDesk'
583
+ - fix: Rename pipe 'isNotOnField' by 'isOnDesk'
584
584
 
585
585
  # 2.4.28
586
- - [enh] TranslateContext: allow to translate many keys (string[])
587
- - [fix] Force ngx-quicklink to 0.3.0
586
+ - enh: TranslateContext: allow to translate many keys (string[])
587
+ - fix: Force ngx-quicklink to 0.3.0
588
588
 
589
589
  # 2.4.31
590
- - [enh] Add JsonUtils.parseFile()
590
+ - enh: Add JsonUtils.parseFile()
591
591
 
592
592
  # 2.4.33
593
- - [enh] Add AppPropertiesForm.length
593
+ - enh: Add AppPropertiesForm.length
594
594
 
595
595
  # 2.4.48
596
- - [fix] Fix highlight pipe (used by autocomplete field)
596
+ - fix: Fix highlight pipe (used by autocomplete field)
597
597
 
598
598
  # 2.4.50
599
- - [enh] Add type 'enums' for AppFormField
599
+ - enh: Add type 'enums' for AppFormField
600
600
 
601
601
  # 2.4.54
602
- - [enh] Use NavController by default, instead of Angular router. This will use the default animation style of the OS
602
+ - enh: Use NavController by default, instead of Angular router. This will use the default animation style of the OS
603
603
 
604
604
  # 2.4.55
605
- - [fix] Editor: Disable animation, when reloading same page after saving
605
+ - fix: Editor: Disable animation, when reloading same page after saving
606
606
 
607
607
  # 2.4.58
608
- - [enh] Add storage explorer (with log preview)
609
- - [enh] Add debug service (to send debug data to server)
610
- - [enh] Add logging service
608
+ - enh: Add storage explorer (with log preview)
609
+ - enh: Add debug service (to send debug data to server)
610
+ - enh: Add logging service
611
611
 
612
612
  # 2.4.61
613
- - [enh] Add logger on network service
613
+ - enh: Add logger on network service
614
614
 
615
615
  # 2.4.67
616
- [fix] Minor fix (add missing i18n)
617
- [fix] GeolocationUtils: add many useful functions, and detect Capacitor errors (from message)
618
- [fix] Fix some issues in storage explorer
616
+ fix: Minor fix (add missing i18n)
617
+ fix: GeolocationUtils: add many useful functions, and detect Capacitor errors (from message)
618
+ fix: Fix some issues in storage explorer
619
619
 
620
620
  # 2.4.74
621
- [enh] LocalSettingsService: save changes in local storage, when calling setProperty()
621
+ enh: LocalSettingsService: save changes in local storage, when calling setProperty()
622
622
 
623
623
  # 2.4.75
624
- [enh] SharedValidator: add a precision validator
624
+ enh: SharedValidator: add a precision validator
625
625
 
626
626
  # 2.4.79
627
- [fix] ImageGallery: fix add button icon (center alignement)
627
+ fix: ImageGallery: fix add button icon (center alignement)
628
628
 
629
629
 
630
630
  # 2.4.81
631
- [fix] AppToolbar: allow to use ion-segment in app-toolbar
631
+ fix: AppToolbar: allow to use ion-segment in app-toolbar
632
632
 
633
633
  # 2.4.82
634
- [enh] Migrate to Ionic 7
635
- [fix] Form field: show the clear button, when clearable=true, on types 'integer', 'double', 'string', 'date' and 'date-time'
634
+ enh: Migrate to Ionic 7
635
+ fix: Form field: show the clear button, when clearable=true, on types 'integer', 'double', 'string', 'date' and 'date-time'
636
636
 
637
637
  # 2.4.82
638
- [enh] AppEntityEditor: add get/set for autoOpenNextTab
638
+ enh: AppEntityEditor: add get/set for autoOpenNextTab
639
639
 
640
640
  # 2.4.87
641
- [fix] AppEntityEditor: When reload the editor, force the fetch policy to 'network-only'
641
+ fix: AppEntityEditor: When reload the editor, force the fetch policy to 'network-only'
642
642
 
643
643
  # 2.4.88
644
- [fix] AppInstallUpgradeCard: Installation APK link are not visible - fix issue [sumaris-app#445](https://gitlab.ifremer.fr/sih-public/sumaris/sumaris-app/-/issues/445)
644
+ fix: AppInstallUpgradeCard: Installation APK link are not visible - fix issue [sumaris-app#445](https://gitlab.ifremer.fr/sih-public/sumaris/sumaris-app/-/issues/445)
645
645
 
646
646
  # 2.4.88
647
- [enh] Add protected BaseEntityService.getLoadQueryNames()
647
+ enh: Add protected BaseEntityService.getLoadQueryNames()
648
648
 
649
649
  # 2.4.89
650
- [fix] Fix Autocomplete searchbar value trigger, after ionic 7 update
650
+ fix: Fix Autocomplete searchbar value trigger, after ionic 7 update
651
651
 
652
652
  # 2.4.90
653
- [fix] AppEntityEditor: when catch error in save(), set the selectedTabIndex=0 before calling setError()
653
+ fix: AppEntityEditor: when catch error in save(), set the selectedTabIndex=0 before calling setError()
654
654
  This will allow subclasses to override the default selectedTabIndex after an error occur, inside the overridden setError()
655
655
 
656
656
  # 2.4.91
657
- [enh] functions: allow to use sort(array) without the 'attribute' argument (e.g. allow to sort a string[])
657
+ enh: functions: allow to use sort(array) without the 'attribute' argument (e.g. allow to sort a string[])
658
658
 
659
659
  # 2.4.95
660
- [fix] Platform: avoid error at startup, because of StatusBar in web mode
661
- [enh] MatBooleanField: display value when disabled, instead of 'empty'
660
+ fix: Platform: avoid error at startup, because of StatusBar in web mode
661
+ enh: MatBooleanField: display value when disabled, instead of 'empty'
662
662
 
663
663
  # 2.4.112
664
- [enh] AppBadge: allow to set a text or number content
664
+ enh: AppBadge: allow to set a text or number content
665
665
 
666
666
  # 2.4.114
667
- [enh] Menu: allow to add sub menu item
667
+ enh: Menu: allow to add sub menu item
668
+
669
+ # 2.4.158
670
+ enh: Environment: add useHash property to configure Angular router to use hash URL (need by web-ext)
668
671
 
669
672
  # 2.5.0
670
- - [enh] Add token APP_USER_SETTINGS_OPTIONS of type UserSettingsOptions to add user properties table in AccountPage
671
- - [fix] MatBooleanField: in checkbox style, the placeholder can be shown as expected
673
+ - enh: Add token APP_USER_SETTINGS_OPTIONS of type UserSettingsOptions to add user properties table in AccountPage
674
+ - fix: MatBooleanField: in checkbox style, the placeholder can be shown as expected
675
+
676
+ # 2.6.0
677
+ - enh: Account: Add User tokens (table and modal)
678
+
679
+ # 2.6.23
680
+ - fix: Fix Configuration.getPropertyAsNumbers() when no value (avoid to get an array with an unique NaN value)
681
+
682
+ # 2.6.25
683
+ - enh: Upgrade to nodejs 18
684
+ - fix: Menu: hide spacer divider ion-label (hide the skeleton)
685
+
686
+ # 2.6.28
687
+ - fix: ImageGallery: Change image's title background color
688
+
689
+ # 2.6.31
690
+ - fix: ImageGallery: Add output event when after editing title
691
+
692
+ # 2.6.32
693
+ - fix: AppFormArray: Avoid an infinite loop, when calling resize(0) if options.allowEmptyArray=false
694
+ - fix: Table, Form, Editor: fix error when markAsLoaded() on closed BehaviorSubject
695
+ - fix: Table, Form, Editor: Make sure waitIdle() will stop, when component is destroyed (force default opts)
696
+
697
+ # 2.6.34
698
+ - enh: functions: add a static function `underscoreToChangeCase()`
699
+
700
+ # 2.6.35
701
+ - fix: Settings: Add type for property `OfflineFeature.filter`, then use it to in `LocalSettingsService.getOfflineFeatures()`
702
+
703
+ # 2.6.38
704
+ - fix: Fix mapGet pipe, when key is zero (0)
705
+
706
+ # 2.6.39
707
+ - enh: table: Add an input `style: 'table'|mat-table` into `<app-actions-column>`, to be usable inside a `<table mat-table>` (using `<td>`) or `<mat-table>` (using `<mat-cell>`)
708
+
709
+ # 2.8.0
710
+ - enh: `IAppForm<T>` : add a type `<T=any>`
711
+ - enh: `IAppForm` : add optional functions `setValue()`, `patchValue()`, `resetValue()` and `getValue()`
712
+ - fix: `AppForm` and `AppEditor`: Remove unused and deprecated properties `_loading`, `_$ready`, `_$loading`
713
+ - fix: `AppForm` : rename `_enable` as `enabled` to avoid confusion with `enable()`
714
+ - enh: Add abstract class `AppFormContainer` to manage many `IAppForm` - and use it as a super class of `AppEditor`
715
+ - enh: Add new pipes for SelectionModel :
716
+ - `isSelected`: e.g. `selection | isSelected: row`,
717
+ - `isEmptySelection`: e.g. `selection | isEmptySelection`
718
+ - `isNotEmptySelection`: e.g. `selection | isNotEmptySelection`
719
+ - `selectionLength`: e.g. `selection | selectionLength`,
720
+ - `isMultipleSelection`: e.g. `selection | isMultipleSelection`,
721
+ - enh: Add new pipes for table :
722
+ - `isAllSelected`: e.g. `table | isAllSelected`,
723
+ - `isNotAllSelected`: e.g. `table | isNotAllSelected`
724
+
725
+ # 2.8.1
726
+ - enh: Add a pipe `badgeNumber` to limit badge content when > `99` (will display `99+`)
727
+ - enh: function setPropertyByPath() now return the input obj
728
+ - fix: Referential: fix `asObject()`
729
+ - enh: Add options:
730
+ - `sumaris.defaultLatLongFormat.enabled` to show/hide default Lat/Lon setting in account page (default is true)
731
+ - `sumaris.auth.api.token.scope.enabled` to show/hide scopes in API token table (default is false)
732
+ - `sumaris.auth.api.token.scope.default` set the default scope for new API token, mandatory if `sumaris.auth.api.token.scope.enabled` if false (default is 'read_api')
733
+ - enh: Add AppRowField component: wrap an AppFormField into a table column
734
+ - enh: Add pipe `valueFormat` to format a value with a FormFieldDefinition (equivalent to pipe `propertyFormat`)
735
+ - fix: `UploadFileComponent` Refactored
736
+ - enh: Add new config options to override the form field background color (active, focus or disabled)
737
+ - enh: Add new pipe `booleanFormat`
738
+ - enh: Update pipe `propertyFormat` to use complex path (using `getPropertyByPath()`)
739
+ - enh: Add static functions `CsvUtils.getLocalizedEncoding()` and `CsvUtils.getLocalizedSeparator()`
740
+ - enh: Add static function `JsonUtils.getLocalizedEncoding()`
741
+
742
+ # 2.8.2
743
+ - enh: Function `getPropertyByPath` now handles the optional chaining operator `(?.)`
744
+ - enh: Add `AccountService.onWillLogout` emitter
745
+ - fix: Table: Call `emitRefresh()` instead of `onRefresh.emit()` to safely emit to an opened Observable
746
+
747
+ # 2.8.3
748
+ - enh: Add support of `<mat-hint>` in MatDateTime, MatDate, MatDateShort, MatAutocompleteField and MatLatLongField
749
+ - enh: Add `DateUtils.compare` to be able to sort dates (using Array `sort()`)
750
+ - enh: Add function `resizeArray(T[], size): T[]`
751
+ - fix: NamedFilter: Abort import if callback returns null or undefined
752
+ - fix: DataSource: Allow to refresh datasource (using `watchAll()`) when having dirty row
753
+
754
+ # 2.8.4
755
+ - enh: MatBooleanField: add `@Input() clearable` (default to `false`)
756
+ - fix: MatBooleanField: when resetting value, hide radio buttons
757
+
758
+ # 2.8.11
759
+ - fix: MatBooleanField: hide checkbox's placeholder when floatLabel=never
760
+
761
+ # 2.8.12
762
+ - enh: Pipe `referentialToString`: add new option `propertySeparator` to override the default ' - ' separator
763
+
764
+ # 2.8.13
765
+ - enh: AsyncTable: make `setFilter()` async
766
+
767
+ # 2.8.14
768
+ - enh: Upgrade to ngx-material-table 17.2.1 (add options to TableElement `delete()`, `cancelOrDelete()` and `confirmEditCreate()`)
769
+
770
+ # 2.9.0
771
+ - enh: Upgrade to Angular 17.3
772
+ - fix: Replace zone.js `setTimeout()`, by rx-angular zone-less
773
+ - fix: IFormControlPathTranslator : Rename interface IFormControlPathTranslator into IFormPathTranslator, and rename property `controlPathTranslator` into `pathTranslator`
774
+ - fix: Remove deprecated validator `SharedValidators.double` (was renamed into `SharedValidators.decimal`)
775
+ - fix: AppAsyncTable: re add `@Input() get filter`
776
+ - fix: AppTable: clear selection when opening a row (like AppAsyncTable)
777
+ - fix: MatAutocompleteField: Add `@Input() panelClass` (same as `class`)
778
+ - fix: MatAutocompleteField: Allow boolean inputs from string (using `@Input({transform: booleanAttribute})`)
779
+ - fix: MatAutocompleteField: add `panelWidth` and `panelClass` to `MatAutocompleteFieldConfig`
780
+
781
+ # 2.9.1
782
+ - fix: MatAutocompleteField: revert `applyImplicitValue` default value `true`
783
+ - fix: MatChipsField: fix usage of `suggestLengthThreshold`
784
+ - enh: MatChipsField: add `applyImplicitValue` (default: false)
785
+
786
+ # 2.9.2
787
+ - fix: Notification list: add an ion-text-wrap to the notification message
788
+
789
+ # 2.9.3
790
+ - fix: Home: Add a call to `markForCheck()` after removing a page history item
791
+
792
+ # 2.9.4
793
+ - fix: Form: reduce line height of row label (form-container > ion-row > ion-col > ion-label)
794
+
795
+ # 2.9.6
796
+ - fix: MatAutocompleteField: Remove animation in searchbar (bad icon position in iOS)
797
+
798
+ # 2.9.7
799
+ - fix: Form: fix field label position (form-container > ion-row > ion-col > ion-label)
800
+
801
+ # 2.9.8
802
+ - enh: Add AppFormUtils.filterErrorsByPrefix() and AppFormUtils.filterErrors()
803
+
804
+ # 2.9.13
805
+ - fix: Home: when removing a page history, force settings to update
806
+
807
+ # 2.9.17
808
+ - fix: MatSelectPanel: add `--min-width: fit-content` to class `mat-select-panel-fit-content`
809
+
810
+ # 2.9.20
811
+ - enh: NamedFilterSelector: add `filterCleared` event
812
+
813
+ # 2.9.22
814
+ - enh(deps): Minor update to Angular 17.3.12
815
+ - enh(theme): Dark theme: Move dark theme toggle into the settings form
816
+ - enh(theme): Dark theme: Fix toggle field style, in dark theme
817
+ - enh(settings): Add icons on each form fields
818
+ - fix(config): When saving the remote config, do not return to the editor config's inherited properties
819
+
820
+ # 2.9.23
821
+ - fix(boolean-field): fix click on radio button 'no', when field has no value
822
+
823
+ # 2.11.1
824
+ - enh(deps): Upgrade to apollo-angular 7.1.2 and apollo 3.11 (+ fix breaking changes in graphql.service.ts)
825
+ - fix(css): Dark theme: fix checkbox style, and autocomplete panel
826
+
827
+ # 2.11.2
828
+ - enh(app-text-form): Add new inputs `appearance` and `subscriptSizing`
829
+ - fix(css): Dark theme: fix style for outline field
830
+
831
+ # 2.11.3
832
+ - fix(app-text-form): Input `autoHeight` is now deprecated (use `autoSize` instead)
833
+ - enh(app-text-form): Add new inputs `autoSizeMinRows` and `autoSizeMaxRows`
834
+
835
+ # 2.11.7
836
+ - fix(css): Dark theme: fix style
837
+
838
+ # 2.11.8
839
+ - enh(form-error): Add options to `IFormPathTranslator.translateFormPath()`
840
+
841
+ # 2.12.0
842
+ - enh(form-error): Remove deprecated interface `IFormControlPathTranslator`
843
+
844
+ # 2.12.4
845
+ - fix(date): Update formControl (and datePicker) when textControl value changes, and clean text input by regexp
846
+ - fix(date-time): Keep control as invalid is time is empty
847
+ - enh(date-time): Add new `@Input() allowNoTime` to make time optional
848
+ - fix(lat-long): Fix deletion, when press delete key
849
+
850
+ # 2.12.7
851
+ - fix: addShortcut handler use `KeyboardEvent` instead of a simple 'EVent'
852
+
853
+ # 2.12.8
854
+ - enh: function `toNumber()` will now return the default value, when input is `NaN`
855
+
856
+ # 2.12.9
857
+ - fix(paginator): Fix paginator style on mobile screen (align to the left, and hide page size, like before the Angular 17 migration)
858
+
859
+ # 2.12.10
860
+ - fix(autocomplete): Compute the panel width if not set (in mobile) - workaround for an issue in mat-select panel
861
+
862
+ # 2.12.12
863
+ - fix(theme): add all dark colors from material theme
864
+ - fix(autocomplete): in mobile device, add a text-wrap and a max-height in mat-option
865
+
866
+ # 2.12.13
867
+ - fix(config): New option `sumaris.account.latLongFormat.enable` to replace the deprecated option `sumaris.defaultLatLongFormat.enabled` (key was not well named)
868
+
869
+ # 2.12.16
870
+ - fix(autocomplete): Reload items when `showAllOnFocus = true`
871
+ - fix(autocomplete): Use `??` operator, instead of `toBoolean()`, `toNumber()` etc.
872
+ - enh(autocomplete): Add option `applyImplicitValue` to config
873
+ - enh(pipe): add a `asBoolean` pipe, with an optional predicate function as option (e.g. to test any value)
874
+ - enh(account): Allow to change password, if auth token is `token` (will update the pubkey)
875
+ - fix(lat-long): Refactor component (remove maskito placeholder use)
876
+ - enh(table): Add new component `<nav-actions-column>`
877
+
878
+ # 2.12.19
879
+ - fix(nav-actions-column): Fix when inside a `AppAsyncTable`
880
+
881
+ # 2.12.26
882
+ - enh(app-async-table): declare property `readonly cd: ChangeDetectorRef`
883
+ - enh(app-async-table): implement `markForCheck()` and `detectCHanges()`
884
+ - enh(app-table): declare property `readonly cd: ChangeDetectorRef`
885
+ - fix(app-table): call `detectChanges()` inside `editRow()`, `addRowToTable()` and `toggleSelectRow()` - need by SUMARiS (e.g. samples tables)
886
+ - fix(app-table): `toggleSelectRow()` should not call `event.preventDefault()` otherwise checkbox will not be checked
887
+
888
+ # 2.12.27
889
+ - enh(app-table): implement `markForCheck()` and `detectChanges()`
890
+
891
+ # 2.12.29
892
+ - fix(new-token-modal): Add a full form and fix save issue
893
+
894
+ # 2.12.30
895
+ - enh(platform): Add copy to clipboard return state
896
+
897
+ # 2.12.29
898
+ - fix(new-token-modal): Add a full form and fix save issue
899
+
900
+ # 18.0.0
901
+ - enh(deps) Upgrade to Angular 18.2.8 and Ionic 8.3
902
+ - enh(deps) Remove zone.js (enable experimental zoneless config)
903
+ - enh(properties-form): Use an autocomplete field to select an option, instead of a simple mat-select
904
+ - enh(properties-form): Add `@Input() showHintKey: boolean` to show option key (has a hint)
905
+ - enh(network-service): Avoid to restart the service if peer has not changed
906
+ - enh(AppFormArray): allow to use AppFormArray on any type (and not only Entity has before)
907
+ - enh(AppFormUtils) add useful static functions to enable/disable control(s)
908
+ - enh(autocomplete): add option `selectInputContentOnFocus` to option, to select the input content on focus in
909
+ - enh(app-named-filter-selector): Add `@Input() buttonsPosition: 'matSuffix'|'after'` to let user defined button position (inside the field, or after)
910
+ - fix(AppForm and AppFormContainer) log error using the child path (if defined using `addForm()`)
911
+ - fix(graphql) Fix pod error in JSON format, before parsing it (e.g. Oracle can return error on multiple lines)
912
+ - fix(nav-actions-column): Use `OnPush` changeDetection
913
+ - fix(form-field): Emit `(keyup.enter)` event, when field's type is `double`