@sumaris-net/ngx-components 2.18.0-beta9 → 2.21.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 (715) hide show
  1. package/README.md +3 -0
  2. package/doc/build.md +14 -14
  3. package/doc/changelog.md +1386 -88
  4. package/doc/feed/feed-en.json +26 -0
  5. package/doc/feed/feed-fr.json +28 -0
  6. package/fesm2022/sumaris-net.ngx-components.mjs +32423 -22727
  7. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  8. package/package.json +42 -39
  9. package/src/assets/environments/environment-test.json +2 -2
  10. package/src/assets/i18n/en-US.json +143 -45
  11. package/src/assets/i18n/en.json +142 -43
  12. package/src/assets/i18n/fr.json +147 -47
  13. package/src/assets/manifest.json +1 -1
  14. package/src/theme/_icons.scss +8 -12
  15. package/src/theme/_ionic.globals.scss +8 -1
  16. package/src/theme/_markdown.scss +1 -1
  17. package/src/theme/_material.globals.scss +4 -1
  18. package/src/theme/_material.scss +60 -17
  19. package/src/theme/_mixins.scss +39 -4
  20. package/src/theme/_ngx-components.forms.scss +115 -89
  21. package/src/theme/_ngx-components.globals.scss +4 -1
  22. package/src/theme/_ngx-components.scss +162 -110
  23. package/src/theme/_ngx-components.table.scss +105 -44
  24. package/src/theme/_ngx-components.tabs.scss +46 -14
  25. package/src/theme/_responsive.scss +15 -0
  26. package/src/theme/_roboto.scss +3 -0
  27. package/src/theme/_theme.scss +11 -14
  28. package/src/theme/_theme.variables.scss +7 -3
  29. package/src/theme/ionic/ionic.functions.color.scss +13 -5
  30. package/src/theme/ionic/ionic.globals.scss +4 -4
  31. package/src/theme/ionic/ionic.theme.default.scss +2 -0
  32. package/types/sumaris-net.ngx-components.d.ts +14132 -0
  33. package/esm2022/public_api.mjs +0 -358
  34. package/esm2022/src/app/admin/admin-routing.module.mjs +0 -34
  35. package/esm2022/src/app/admin/admin.module.mjs +0 -32
  36. package/esm2022/src/app/admin/services/filter/person.filter.mjs +0 -69
  37. package/esm2022/src/app/admin/services/person.service.mjs +0 -174
  38. package/esm2022/src/app/admin/services/validator/person.validator.mjs +0 -72
  39. package/esm2022/src/app/admin/users/users.mjs +0 -267
  40. package/esm2022/src/app/admin/users/users.module.mjs +0 -56
  41. package/esm2022/src/app/core/about/about.modal.mjs +0 -84
  42. package/esm2022/src/app/core/about/about.module.mjs +0 -21
  43. package/esm2022/src/app/core/account/account.module.mjs +0 -68
  44. package/esm2022/src/app/core/account/account.page.mjs +0 -351
  45. package/esm2022/src/app/core/account/new-token.modal.mjs +0 -132
  46. package/esm2022/src/app/core/account/password/change-password.form.mjs +0 -60
  47. package/esm2022/src/app/core/account/password/change-password.module.mjs +0 -22
  48. package/esm2022/src/app/core/account/password/change-password.page.mjs +0 -144
  49. package/esm2022/src/app/core/account/token.table.mjs +0 -152
  50. package/esm2022/src/app/core/auth/auth.form.mjs +0 -159
  51. package/esm2022/src/app/core/auth/auth.modal.mjs +0 -76
  52. package/esm2022/src/app/core/auth/auth.module.mjs +0 -56
  53. package/esm2022/src/app/core/auth/reset-password.modal.mjs +0 -77
  54. package/esm2022/src/app/core/core.module.mjs +0 -151
  55. package/esm2022/src/app/core/core.testing.module.mjs +0 -107
  56. package/esm2022/src/app/core/form/array/form-array.mjs +0 -325
  57. package/esm2022/src/app/core/form/array/testing/form-array-test.module.mjs +0 -23
  58. package/esm2022/src/app/core/form/array/testing/form-array.test.mjs +0 -94
  59. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +0 -108
  60. package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +0 -31
  61. package/esm2022/src/app/core/form/entity/editor.class.mjs +0 -265
  62. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +0 -420
  63. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +0 -731
  64. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +0 -24
  65. package/esm2022/src/app/core/form/entity/entity.module.mjs +0 -32
  66. package/esm2022/src/app/core/form/entity/tab-editor.class.mjs +0 -194
  67. package/esm2022/src/app/core/form/form-container.class.mjs +0 -327
  68. package/esm2022/src/app/core/form/form.class.mjs +0 -336
  69. package/esm2022/src/app/core/form/form.module.mjs +0 -70
  70. package/esm2022/src/app/core/form/form.utils.mjs +0 -197
  71. package/esm2022/src/app/core/form/list/list.form.mjs +0 -235
  72. package/esm2022/src/app/core/form/list/list.module.mjs +0 -31
  73. package/esm2022/src/app/core/form/properties/properties.form.mjs +0 -225
  74. package/esm2022/src/app/core/form/properties/properties.module.mjs +0 -37
  75. package/esm2022/src/app/core/form/properties/properties.table.mjs +0 -268
  76. package/esm2022/src/app/core/form/properties/properties.utils.mjs +0 -60
  77. package/esm2022/src/app/core/form/properties/property.validator.mjs +0 -38
  78. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +0 -95
  79. package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +0 -23
  80. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +0 -73
  81. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +0 -30
  82. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +0 -152
  83. package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +0 -31
  84. package/esm2022/src/app/core/form/username/username.form.mjs +0 -52
  85. package/esm2022/src/app/core/form/username/username.module.mjs +0 -20
  86. package/esm2022/src/app/core/graphql/graphql.module.mjs +0 -14
  87. package/esm2022/src/app/core/graphql/graphql.service.mjs +0 -783
  88. package/esm2022/src/app/core/graphql/graphql.utils.mjs +0 -119
  89. package/esm2022/src/app/core/home/home.mjs +0 -311
  90. package/esm2022/src/app/core/home/home.module.mjs +0 -42
  91. package/esm2022/src/app/core/icon/icon.component.mjs +0 -40
  92. package/esm2022/src/app/core/icon/icon.module.mjs +0 -20
  93. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +0 -354
  94. package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +0 -31
  95. package/esm2022/src/app/core/menu/menu.component.mjs +0 -263
  96. package/esm2022/src/app/core/menu/menu.model.mjs +0 -272
  97. package/esm2022/src/app/core/menu/menu.module.mjs +0 -47
  98. package/esm2022/src/app/core/menu/menu.service.mjs +0 -655
  99. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +0 -109
  100. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +0 -49
  101. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +0 -157
  102. package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +0 -60
  103. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +0 -28
  104. package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +0 -31
  105. package/esm2022/src/app/core/peer/select-peer.modal.mjs +0 -203
  106. package/esm2022/src/app/core/peer/select-peer.module.mjs +0 -30
  107. package/esm2022/src/app/core/register/register-confirm.page.mjs +0 -90
  108. package/esm2022/src/app/core/register/register.form.mjs +0 -194
  109. package/esm2022/src/app/core/register/register.modal.mjs +0 -55
  110. package/esm2022/src/app/core/register/register.module.mjs +0 -23
  111. package/esm2022/src/app/core/services/account.service.mjs +0 -1346
  112. package/esm2022/src/app/core/services/auth-guard.service.mjs +0 -74
  113. package/esm2022/src/app/core/services/base-entity-service.class.mjs +0 -473
  114. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +0 -230
  115. package/esm2022/src/app/core/services/base58.mjs +0 -83
  116. package/esm2022/src/app/core/services/config/core.config.mjs +0 -233
  117. package/esm2022/src/app/core/services/config.service.mjs +0 -384
  118. package/esm2022/src/app/core/services/crypto.service.mjs +0 -107
  119. package/esm2022/src/app/core/services/errors.mjs +0 -52
  120. package/esm2022/src/app/core/services/local-settings.service.mjs +0 -482
  121. package/esm2022/src/app/core/services/model/account.model.mjs +0 -150
  122. package/esm2022/src/app/core/services/model/config.model.mjs +0 -107
  123. package/esm2022/src/app/core/services/model/department.model.mjs +0 -35
  124. package/esm2022/src/app/core/services/model/entity.decorators.mjs +0 -97
  125. package/esm2022/src/app/core/services/model/entity.model.mjs +0 -224
  126. package/esm2022/src/app/core/services/model/filter.model.mjs +0 -93
  127. package/esm2022/src/app/core/services/model/history.model.mjs +0 -2
  128. package/esm2022/src/app/core/services/model/model.enum.mjs +0 -11
  129. package/esm2022/src/app/core/services/model/peer.model.mjs +0 -93
  130. package/esm2022/src/app/core/services/model/person.model.mjs +0 -114
  131. package/esm2022/src/app/core/services/model/referential.model.mjs +0 -202
  132. package/esm2022/src/app/core/services/model/settings.model.mjs +0 -4
  133. package/esm2022/src/app/core/services/model/token.model.mjs +0 -56
  134. package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +0 -195
  135. package/esm2022/src/app/core/services/network.service.mjs +0 -631
  136. package/esm2022/src/app/core/services/network.types.mjs +0 -20
  137. package/esm2022/src/app/core/services/network.utils.mjs +0 -15
  138. package/esm2022/src/app/core/services/pipes/account.pipes.mjs +0 -38
  139. package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +0 -23
  140. package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +0 -23
  141. package/esm2022/src/app/core/services/pipes/pipes.module.mjs +0 -54
  142. package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +0 -21
  143. package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +0 -37
  144. package/esm2022/src/app/core/services/platform.service.mjs +0 -583
  145. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +0 -427
  146. package/esm2022/src/app/core/services/storage/entity-store.class.mjs +0 -449
  147. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +0 -25
  148. package/esm2022/src/app/core/services/testing/referential.validator.mjs +0 -46
  149. package/esm2022/src/app/core/services/validator/account.validator.mjs +0 -45
  150. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +0 -49
  151. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +0 -81
  152. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +0 -27
  153. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +0 -55
  154. package/esm2022/src/app/core/settings/settings.module.mjs +0 -22
  155. package/esm2022/src/app/core/settings/settings.page.mjs +0 -341
  156. package/esm2022/src/app/core/table/async-table.class.mjs +0 -1753
  157. package/esm2022/src/app/core/table/column/actions-column.component.mjs +0 -127
  158. package/esm2022/src/app/core/table/column/nav-actions-column.component.mjs +0 -117
  159. package/esm2022/src/app/core/table/column/row-field.component.mjs +0 -116
  160. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +0 -384
  161. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +0 -401
  162. package/esm2022/src/app/core/table/memory-table.class.mjs +0 -57
  163. package/esm2022/src/app/core/table/table-select-columns.component.mjs +0 -46
  164. package/esm2022/src/app/core/table/table.class.mjs +0 -1816
  165. package/esm2022/src/app/core/table/table.model.mjs +0 -16
  166. package/esm2022/src/app/core/table/table.module.mjs +0 -51
  167. package/esm2022/src/app/core/table/table.pipes.mjs +0 -77
  168. package/esm2022/src/app/core/table/table.utils.mjs +0 -31
  169. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +0 -32
  170. package/esm2022/src/app/core/table/testing/table.testing.mjs +0 -329
  171. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +0 -25
  172. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +0 -25
  173. package/esm2022/src/app/core/table/testing/table2.testing.mjs +0 -273
  174. package/esm2022/src/app/shared/alerts.mjs +0 -243
  175. package/esm2022/src/app/shared/audio/audio.mjs +0 -249
  176. package/esm2022/src/app/shared/audio/audio.testing.mjs +0 -32
  177. package/esm2022/src/app/shared/audio/audio.testing.module.mjs +0 -30
  178. package/esm2022/src/app/shared/capacitor/keyboard.mjs +0 -42
  179. package/esm2022/src/app/shared/capacitor/plugins.mjs +0 -9
  180. package/esm2022/src/app/shared/constants.mjs +0 -16
  181. package/esm2022/src/app/shared/dates.mjs +0 -151
  182. package/esm2022/src/app/shared/debug/debug-service.class.mjs +0 -3
  183. package/esm2022/src/app/shared/debug/debug.component.mjs +0 -40
  184. package/esm2022/src/app/shared/debug/debug.module.mjs +0 -23
  185. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +0 -91
  186. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +0 -32
  187. package/esm2022/src/app/shared/directives/directives.module.mjs +0 -22
  188. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +0 -52
  189. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +0 -33
  190. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +0 -62
  191. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +0 -45
  192. package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +0 -17
  193. package/esm2022/src/app/shared/events.mjs +0 -63
  194. package/esm2022/src/app/shared/file/csv.utils.mjs +0 -92
  195. package/esm2022/src/app/shared/file/file.service.mjs +0 -118
  196. package/esm2022/src/app/shared/file/file.utils.mjs +0 -115
  197. package/esm2022/src/app/shared/file/images.utils.mjs +0 -186
  198. package/esm2022/src/app/shared/file/json.utils.mjs +0 -58
  199. package/esm2022/src/app/shared/file/uri.utils.mjs +0 -24
  200. package/esm2022/src/app/shared/focusable.mjs +0 -6
  201. package/esm2022/src/app/shared/form/field.component.mjs +0 -379
  202. package/esm2022/src/app/shared/form/field.model.mjs +0 -25
  203. package/esm2022/src/app/shared/form/loading-spinner.mjs +0 -35
  204. package/esm2022/src/app/shared/forms.mjs +0 -480
  205. package/esm2022/src/app/shared/functions.mjs +0 -551
  206. package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +0 -82
  207. package/esm2022/src/app/shared/gesture/gesture-config.mjs +0 -46
  208. package/esm2022/src/app/shared/gesture/hammer.utils.mjs +0 -2
  209. package/esm2022/src/app/shared/graph/colors.utils.mjs +0 -60
  210. package/esm2022/src/app/shared/graph/graph-colors.mjs +0 -213
  211. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +0 -59
  212. package/esm2022/src/app/shared/help/help.modal.mjs +0 -63
  213. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +0 -23
  214. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +0 -112
  215. package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +0 -24
  216. package/esm2022/src/app/shared/http/http.utils.mjs +0 -56
  217. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +0 -388
  218. package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +0 -62
  219. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +0 -26
  220. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +0 -87
  221. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +0 -37
  222. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +0 -59
  223. package/esm2022/src/app/shared/image/image.model.mjs +0 -2
  224. package/esm2022/src/app/shared/image/image.module.mjs +0 -24
  225. package/esm2022/src/app/shared/image/image.service.mjs +0 -106
  226. package/esm2022/src/app/shared/inputs.mjs +0 -263
  227. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +0 -27
  228. package/esm2022/src/app/shared/logging/log-level.model.mjs +0 -48
  229. package/esm2022/src/app/shared/logging/logger.model.mjs +0 -47
  230. package/esm2022/src/app/shared/logging/logging-service.class.mjs +0 -125
  231. package/esm2022/src/app/shared/logging/logging-service.config.mjs +0 -2
  232. package/esm2022/src/app/shared/logging/logging-service.module.mjs +0 -30
  233. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +0 -46
  234. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +0 -1071
  235. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +0 -79
  236. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +0 -18
  237. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +0 -231
  238. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +0 -251
  239. package/esm2022/src/app/shared/material/badge/badge.module.mjs +0 -20
  240. package/esm2022/src/app/shared/material/badge/badge.test.mjs +0 -42
  241. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +0 -71
  242. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +0 -376
  243. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +0 -61
  244. package/esm2022/src/app/shared/material/chips/chips.module.mjs +0 -75
  245. package/esm2022/src/app/shared/material/chips/material.chips.mjs +0 -779
  246. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +0 -147
  247. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +0 -76
  248. package/esm2022/src/app/shared/material/datetime/material.date.mjs +0 -471
  249. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +0 -457
  250. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +0 -681
  251. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +0 -136
  252. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +0 -127
  253. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +0 -118
  254. package/esm2022/src/app/shared/material/duration/duration.module.mjs +0 -65
  255. package/esm2022/src/app/shared/material/duration/duration.utils.mjs +0 -33
  256. package/esm2022/src/app/shared/material/duration/material.duration.mjs +0 -274
  257. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +0 -80
  258. package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +0 -313
  259. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +0 -381
  260. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +0 -67
  261. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +0 -118
  262. package/esm2022/src/app/shared/material/material.animations.mjs +0 -143
  263. package/esm2022/src/app/shared/material/material.config.mjs +0 -3
  264. package/esm2022/src/app/shared/material/material.module.mjs +0 -229
  265. package/esm2022/src/app/shared/material/material.testing.module.mjs +0 -234
  266. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +0 -51
  267. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +0 -23
  268. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +0 -375
  269. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +0 -52
  270. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +0 -67
  271. package/esm2022/src/app/shared/material/testing/common.test.mjs +0 -111
  272. package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +0 -42
  273. package/esm2022/src/app/shared/material/text/text-form.component.mjs +0 -204
  274. package/esm2022/src/app/shared/material/text/text-form.module.mjs +0 -63
  275. package/esm2022/src/app/shared/modules.mjs +0 -12
  276. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +0 -303
  277. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +0 -49
  278. package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +0 -24
  279. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +0 -69
  280. package/esm2022/src/app/shared/named-filter/testing/named-filter-selector.testing.mjs +0 -74
  281. package/esm2022/src/app/shared/named-filter/testing/named-filter.testing.module.mjs +0 -28
  282. package/esm2022/src/app/shared/observables.mjs +0 -100
  283. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +0 -156
  284. package/esm2022/src/app/shared/pipes/badge.pipes.mjs +0 -24
  285. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +0 -29
  286. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +0 -49
  287. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +0 -72
  288. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +0 -28
  289. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +0 -36
  290. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +0 -53
  291. package/esm2022/src/app/shared/pipes/form.pipes.mjs +0 -219
  292. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +0 -48
  293. package/esm2022/src/app/shared/pipes/html.pipes.mjs +0 -52
  294. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +0 -42
  295. package/esm2022/src/app/shared/pipes/maps.pipe.mjs +0 -63
  296. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +0 -67
  297. package/esm2022/src/app/shared/pipes/math.pipes.mjs +0 -59
  298. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +0 -19
  299. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +0 -30
  300. package/esm2022/src/app/shared/pipes/pipes.module.mjs +0 -236
  301. package/esm2022/src/app/shared/pipes/property.pipes.mjs +0 -136
  302. package/esm2022/src/app/shared/pipes/selection.pipes.mjs +0 -180
  303. package/esm2022/src/app/shared/pipes/string.pipes.mjs +0 -136
  304. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +0 -44
  305. package/esm2022/src/app/shared/pipes/types.pipes.mjs +0 -74
  306. package/esm2022/src/app/shared/platforms.mjs +0 -45
  307. package/esm2022/src/app/shared/rx-state.module.mjs +0 -19
  308. package/esm2022/src/app/shared/services/entity-service.class.mjs +0 -7
  309. package/esm2022/src/app/shared/services/job.utils.mjs +0 -92
  310. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +0 -349
  311. package/esm2022/src/app/shared/services/progress-bar.service.mjs +0 -31
  312. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +0 -118
  313. package/esm2022/src/app/shared/services/startable-service.class.mjs +0 -107
  314. package/esm2022/src/app/shared/services/translate-context.service.mjs +0 -107
  315. package/esm2022/src/app/shared/services/validator-service.class.mjs +0 -2
  316. package/esm2022/src/app/shared/services.mjs +0 -62
  317. package/esm2022/src/app/shared/shared-routing.module.mjs +0 -72
  318. package/esm2022/src/app/shared/shared.module.mjs +0 -234
  319. package/esm2022/src/app/shared/shared.testing.module.mjs +0 -100
  320. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +0 -279
  321. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +0 -42
  322. package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +0 -27
  323. package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +0 -25
  324. package/esm2022/src/app/shared/storage/storage.service.mjs +0 -134
  325. package/esm2022/src/app/shared/storage/storage.utils.mjs +0 -13
  326. package/esm2022/src/app/shared/testing/maskito.test.mjs +0 -41
  327. package/esm2022/src/app/shared/testing/observable.test.mjs +0 -94
  328. package/esm2022/src/app/shared/testing/tests.page.mjs +0 -37
  329. package/esm2022/src/app/shared/toast/toast.testing.mjs +0 -52
  330. package/esm2022/src/app/shared/toast/toast.testing.module.mjs +0 -30
  331. package/esm2022/src/app/shared/toast/toasts.mjs +0 -144
  332. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +0 -62
  333. package/esm2022/src/app/shared/toolbar/toolbar.mjs +0 -263
  334. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +0 -26
  335. package/esm2022/src/app/shared/types.mjs +0 -2
  336. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +0 -59
  337. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +0 -30
  338. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +0 -106
  339. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +0 -213
  340. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +0 -26
  341. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +0 -114
  342. package/esm2022/src/app/shared/validator/validators.mjs +0 -601
  343. package/esm2022/src/app/shared/version/versions.mjs +0 -81
  344. package/esm2022/src/app/social/job/job.module.mjs +0 -23
  345. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +0 -35
  346. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +0 -235
  347. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +0 -47
  348. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +0 -29
  349. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +0 -91
  350. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +0 -38
  351. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +0 -34
  352. package/esm2022/src/app/social/job/testing/job.testing.module.mjs +0 -22
  353. package/esm2022/src/app/social/message/message.form.mjs +0 -140
  354. package/esm2022/src/app/social/message/message.modal.mjs +0 -110
  355. package/esm2022/src/app/social/message/message.model.mjs +0 -75
  356. package/esm2022/src/app/social/message/message.module.mjs +0 -22
  357. package/esm2022/src/app/social/message/message.service.mjs +0 -110
  358. package/esm2022/src/app/social/social.errors.mjs +0 -10
  359. package/esm2022/src/app/social/social.module.mjs +0 -22
  360. package/esm2022/src/app/social/social.testing.module.mjs +0 -40
  361. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +0 -127
  362. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +0 -260
  363. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +0 -257
  364. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +0 -129
  365. package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +0 -22
  366. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +0 -128
  367. package/esm2022/src/app/social/user-event/user-event.model.mjs +0 -2
  368. package/esm2022/src/app/social/user-event/user-event.module.mjs +0 -23
  369. package/esm2022/src/app/social/user-event/user-event.service.mjs +0 -509
  370. package/esm2022/src/environments/environment.class.mjs +0 -57
  371. package/esm2022/src/environments/environment.loader.mjs +0 -77
  372. package/esm2022/src/environments/environment.mjs +0 -105
  373. package/esm2022/sumaris-net.ngx-components.mjs +0 -5
  374. package/index.d.ts +0 -5
  375. package/public_api.d.ts +0 -322
  376. package/src/app/admin/admin-routing.module.d.ts +0 -9
  377. package/src/app/admin/admin.module.d.ts +0 -10
  378. package/src/app/admin/services/filter/person.filter.d.ts +0 -21
  379. package/src/app/admin/services/person.service.d.ts +0 -49
  380. package/src/app/admin/services/validator/person.validator.d.ts +0 -23
  381. package/src/app/admin/users/users.d.ts +0 -45
  382. package/src/app/admin/users/users.module.d.ts +0 -14
  383. package/src/app/core/about/about.modal.d.ts +0 -32
  384. package/src/app/core/about/about.module.d.ts +0 -10
  385. package/src/app/core/account/account.module.d.ts +0 -16
  386. package/src/app/core/account/account.page.d.ts +0 -80
  387. package/src/app/core/account/new-token.modal.d.ts +0 -41
  388. package/src/app/core/account/password/change-password.form.d.ts +0 -19
  389. package/src/app/core/account/password/change-password.module.d.ts +0 -11
  390. package/src/app/core/account/password/change-password.page.d.ts +0 -36
  391. package/src/app/core/account/token.table.d.ts +0 -27
  392. package/src/app/core/auth/auth.form.d.ts +0 -38
  393. package/src/app/core/auth/auth.modal.d.ts +0 -24
  394. package/src/app/core/auth/auth.module.d.ts +0 -13
  395. package/src/app/core/auth/reset-password.modal.d.ts +0 -26
  396. package/src/app/core/core.module.d.ts +0 -28
  397. package/src/app/core/core.testing.module.d.ts +0 -15
  398. package/src/app/core/form/array/form-array.d.ts +0 -136
  399. package/src/app/core/form/array/testing/form-array-test.module.d.ts +0 -12
  400. package/src/app/core/form/array/testing/form-array.test.d.ts +0 -26
  401. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +0 -37
  402. package/src/app/core/form/buttons/form-buttons-bar.module.d.ts +0 -9
  403. package/src/app/core/form/entity/editor.class.d.ts +0 -83
  404. package/src/app/core/form/entity/entity-editor-modal.class.d.ts +0 -126
  405. package/src/app/core/form/entity/entity-editor.class.d.ts +0 -204
  406. package/src/app/core/form/entity/entity-metadata.component.d.ts +0 -13
  407. package/src/app/core/form/entity/entity.module.d.ts +0 -10
  408. package/src/app/core/form/entity/tab-editor.class.d.ts +0 -70
  409. package/src/app/core/form/form-container.class.d.ts +0 -126
  410. package/src/app/core/form/form.class.d.ts +0 -144
  411. package/src/app/core/form/form.module.d.ts +0 -14
  412. package/src/app/core/form/form.utils.d.ts +0 -251
  413. package/src/app/core/form/list/list.form.d.ts +0 -81
  414. package/src/app/core/form/list/list.module.d.ts +0 -9
  415. package/src/app/core/form/properties/properties.form.d.ts +0 -66
  416. package/src/app/core/form/properties/properties.module.d.ts +0 -11
  417. package/src/app/core/form/properties/properties.table.d.ts +0 -78
  418. package/src/app/core/form/properties/properties.utils.d.ts +0 -27
  419. package/src/app/core/form/properties/property.validator.d.ts +0 -19
  420. package/src/app/core/form/properties/testing/properties-form.test.d.ts +0 -19
  421. package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +0 -12
  422. package/src/app/core/form/text-popover/testing/text-popover.testing.d.ts +0 -16
  423. package/src/app/core/form/text-popover/testing/text-popover.testing.module.d.ts +0 -11
  424. package/src/app/core/form/text-popover/text-popover.component.d.ts +0 -71
  425. package/src/app/core/form/text-popover/text-popover.module.d.ts +0 -9
  426. package/src/app/core/form/username/username.form.d.ts +0 -19
  427. package/src/app/core/form/username/username.module.d.ts +0 -9
  428. package/src/app/core/graphql/graphql.module.d.ts +0 -7
  429. package/src/app/core/graphql/graphql.service.d.ts +0 -147
  430. package/src/app/core/graphql/graphql.utils.d.ts +0 -42
  431. package/src/app/core/home/home.d.ts +0 -94
  432. package/src/app/core/home/home.module.d.ts +0 -13
  433. package/src/app/core/icon/icon.component.d.ts +0 -13
  434. package/src/app/core/icon/icon.module.d.ts +0 -9
  435. package/src/app/core/install/install-upgrade-card.component.d.ts +0 -64
  436. package/src/app/core/install/install-upgrade-card.module.d.ts +0 -9
  437. package/src/app/core/menu/menu.component.d.ts +0 -69
  438. package/src/app/core/menu/menu.model.d.ts +0 -144
  439. package/src/app/core/menu/menu.module.d.ts +0 -12
  440. package/src/app/core/menu/menu.service.d.ts +0 -94
  441. package/src/app/core/menu/sub-menu-tab.directive.d.ts +0 -29
  442. package/src/app/core/menu/testing/menu-other.testing.d.ts +0 -15
  443. package/src/app/core/menu/testing/menu.testing.d.ts +0 -51
  444. package/src/app/core/menu/testing/menu.testing.module.d.ts +0 -12
  445. package/src/app/core/offline/update-offline-mode-card.component.d.ts +0 -11
  446. package/src/app/core/offline/update-offline-mode-card.module.d.ts +0 -9
  447. package/src/app/core/peer/select-peer.modal.d.ts +0 -60
  448. package/src/app/core/peer/select-peer.module.d.ts +0 -10
  449. package/src/app/core/register/register-confirm.page.d.ts +0 -24
  450. package/src/app/core/register/register.form.d.ts +0 -49
  451. package/src/app/core/register/register.modal.d.ts +0 -14
  452. package/src/app/core/register/register.module.d.ts +0 -12
  453. package/src/app/core/services/account.service.d.ts +0 -205
  454. package/src/app/core/services/auth-guard.service.d.ts +0 -17
  455. package/src/app/core/services/base-entity-service.class.d.ts +0 -123
  456. package/src/app/core/services/base-graphql-service.class.d.ts +0 -77
  457. package/src/app/core/services/base58.d.ts +0 -7
  458. package/src/app/core/services/config/core.config.d.ts +0 -41
  459. package/src/app/core/services/config.service.d.ts +0 -63
  460. package/src/app/core/services/crypto.service.d.ts +0 -44
  461. package/src/app/core/services/errors.d.ts +0 -63
  462. package/src/app/core/services/local-settings.service.d.ts +0 -95
  463. package/src/app/core/services/model/account.model.d.ts +0 -41
  464. package/src/app/core/services/model/config.model.d.ts +0 -36
  465. package/src/app/core/services/model/department.model.d.ts +0 -11
  466. package/src/app/core/services/model/entity.decorators.d.ts +0 -17
  467. package/src/app/core/services/model/entity.model.d.ts +0 -87
  468. package/src/app/core/services/model/filter.model.d.ts +0 -37
  469. package/src/app/core/services/model/history.model.d.ts +0 -20
  470. package/src/app/core/services/model/model.enum.d.ts +0 -7
  471. package/src/app/core/services/model/peer.model.d.ts +0 -30
  472. package/src/app/core/services/model/person.model.d.ts +0 -37
  473. package/src/app/core/services/model/referential.model.d.ts +0 -83
  474. package/src/app/core/services/model/settings.model.d.ts +0 -28
  475. package/src/app/core/services/model/token.model.d.ts +0 -22
  476. package/src/app/core/services/model/tree-item-entity.model.d.ts +0 -53
  477. package/src/app/core/services/network.service.d.ts +0 -151
  478. package/src/app/core/services/network.types.d.ts +0 -5
  479. package/src/app/core/services/network.utils.d.ts +0 -31
  480. package/src/app/core/services/pipes/account.pipes.d.ts +0 -15
  481. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +0 -9
  482. package/src/app/core/services/pipes/person-to-string.pipe.d.ts +0 -11
  483. package/src/app/core/services/pipes/pipes.module.d.ts +0 -11
  484. package/src/app/core/services/pipes/referential-to-string.pipe.d.ts +0 -13
  485. package/src/app/core/services/pipes/usage-mode.pipes.d.ts +0 -15
  486. package/src/app/core/services/platform.service.d.ts +0 -100
  487. package/src/app/core/services/storage/entities-storage.service.d.ts +0 -108
  488. package/src/app/core/services/storage/entity-store.class.d.ts +0 -113
  489. package/src/app/core/services/testing/referential-filter.model.d.ts +0 -9
  490. package/src/app/core/services/testing/referential.validator.d.ts +0 -22
  491. package/src/app/core/services/validator/account.validator.d.ts +0 -24
  492. package/src/app/core/services/validator/base.validator.class.d.ts +0 -21
  493. package/src/app/core/services/validator/local-settings.validator.d.ts +0 -22
  494. package/src/app/core/services/validator/user-settings.validator.d.ts +0 -10
  495. package/src/app/core/services/validator/user-token.validator.d.ts +0 -13
  496. package/src/app/core/settings/settings.module.d.ts +0 -11
  497. package/src/app/core/settings/settings.page.d.ts +0 -81
  498. package/src/app/core/table/async-table.class.d.ts +0 -389
  499. package/src/app/core/table/column/actions-column.component.d.ts +0 -59
  500. package/src/app/core/table/column/nav-actions-column.component.d.ts +0 -46
  501. package/src/app/core/table/column/row-field.component.d.ts +0 -40
  502. package/src/app/core/table/entities-async-table-datasource.class.d.ts +0 -81
  503. package/src/app/core/table/entities-table-datasource.class.d.ts +0 -95
  504. package/src/app/core/table/memory-table.class.d.ts +0 -25
  505. package/src/app/core/table/table-select-columns.component.d.ts +0 -22
  506. package/src/app/core/table/table.class.d.ts +0 -394
  507. package/src/app/core/table/table.model.d.ts +0 -26
  508. package/src/app/core/table/table.module.d.ts +0 -14
  509. package/src/app/core/table/table.pipes.d.ts +0 -28
  510. package/src/app/core/table/table.utils.d.ts +0 -11
  511. package/src/app/core/table/testing/table-validator.service.d.ts +0 -17
  512. package/src/app/core/table/testing/table.testing.d.ts +0 -54
  513. package/src/app/core/table/testing/table.testing.module.d.ts +0 -14
  514. package/src/app/core/table/testing/table2-validator.service.d.ts +0 -15
  515. package/src/app/core/table/testing/table2.testing.d.ts +0 -48
  516. package/src/app/shared/alerts.d.ts +0 -55
  517. package/src/app/shared/audio/audio.d.ts +0 -44
  518. package/src/app/shared/audio/audio.testing.d.ts +0 -13
  519. package/src/app/shared/audio/audio.testing.module.d.ts +0 -11
  520. package/src/app/shared/capacitor/keyboard.d.ts +0 -16
  521. package/src/app/shared/capacitor/plugins.d.ts +0 -7
  522. package/src/app/shared/constants.d.ts +0 -13
  523. package/src/app/shared/dates.d.ts +0 -48
  524. package/src/app/shared/debug/debug-service.class.d.ts +0 -5
  525. package/src/app/shared/debug/debug.component.d.ts +0 -13
  526. package/src/app/shared/debug/debug.module.d.ts +0 -12
  527. package/src/app/shared/directives/autofocus.directive.d.ts +0 -18
  528. package/src/app/shared/directives/autotitle.directive.d.ts +0 -10
  529. package/src/app/shared/directives/directives.module.d.ts +0 -12
  530. package/src/app/shared/directives/drag-and-drop.directive.d.ts +0 -17
  531. package/src/app/shared/directives/ng-var.directive.d.ts +0 -12
  532. package/src/app/shared/directives/resizable/resizable.component.d.ts +0 -21
  533. package/src/app/shared/directives/resizable/resizable.directive.d.ts +0 -12
  534. package/src/app/shared/directives/resizable/resizable.module.d.ts +0 -8
  535. package/src/app/shared/events.d.ts +0 -28
  536. package/src/app/shared/file/csv.utils.d.ts +0 -24
  537. package/src/app/shared/file/file.service.d.ts +0 -23
  538. package/src/app/shared/file/file.utils.d.ts +0 -20
  539. package/src/app/shared/file/images.utils.d.ts +0 -36
  540. package/src/app/shared/file/json.utils.d.ts +0 -19
  541. package/src/app/shared/file/uri.utils.d.ts +0 -8
  542. package/src/app/shared/focusable.d.ts +0 -4
  543. package/src/app/shared/form/field.component.d.ts +0 -74
  544. package/src/app/shared/form/field.model.d.ts +0 -39
  545. package/src/app/shared/form/loading-spinner.d.ts +0 -8
  546. package/src/app/shared/forms.d.ts +0 -118
  547. package/src/app/shared/functions.d.ts +0 -152
  548. package/src/app/shared/geolocation/geolocation.utils.d.ts +0 -19
  549. package/src/app/shared/gesture/gesture-config.d.ts +0 -15
  550. package/src/app/shared/gesture/hammer.utils.d.ts +0 -16
  551. package/src/app/shared/graph/colors.utils.d.ts +0 -17
  552. package/src/app/shared/graph/graph-colors.d.ts +0 -63
  553. package/src/app/shared/guard/component-dirty.guard.d.ts +0 -14
  554. package/src/app/shared/help/help.modal.d.ts +0 -33
  555. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +0 -8
  556. package/src/app/shared/hotkeys/hotkeys.service.d.ts +0 -42
  557. package/src/app/shared/hotkeys/shared-hotkeys.module.d.ts +0 -11
  558. package/src/app/shared/http/http.utils.d.ts +0 -28
  559. package/src/app/shared/image/gallery/image-gallery.component.d.ts +0 -98
  560. package/src/app/shared/image/gallery/image-gallery.module.d.ts +0 -15
  561. package/src/app/shared/image/gallery/testing/gallegry.model.testing.d.ts +0 -12
  562. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +0 -33
  563. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +0 -16
  564. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +0 -13
  565. package/src/app/shared/image/image.model.d.ts +0 -5
  566. package/src/app/shared/image/image.module.d.ts +0 -8
  567. package/src/app/shared/image/image.service.d.ts +0 -32
  568. package/src/app/shared/inputs.d.ts +0 -34
  569. package/src/app/shared/interceptors/progess.interceptor.d.ts +0 -8
  570. package/src/app/shared/logging/log-level.model.d.ts +0 -38
  571. package/src/app/shared/logging/logger.model.d.ts +0 -68
  572. package/src/app/shared/logging/logging-service.class.d.ts +0 -39
  573. package/src/app/shared/logging/logging-service.config.d.ts +0 -25
  574. package/src/app/shared/logging/logging-service.module.d.ts +0 -9
  575. package/src/app/shared/material/autocomplete/material.autocomplete.config.d.ts +0 -55
  576. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +0 -180
  577. package/src/app/shared/material/autocomplete/material.autocomplete.module.d.ts +0 -22
  578. package/src/app/shared/material/autocomplete/material.autocomplete.utils.d.ts +0 -5
  579. package/src/app/shared/material/autocomplete/testing/autocomplete.test.d.ts +0 -46
  580. package/src/app/shared/material/badge/badge.directive.d.ts +0 -43
  581. package/src/app/shared/material/badge/badge.module.d.ts +0 -10
  582. package/src/app/shared/material/badge/badge.test.d.ts +0 -21
  583. package/src/app/shared/material/boolean/boolean.module.d.ts +0 -21
  584. package/src/app/shared/material/boolean/material.boolean.d.ts +0 -93
  585. package/src/app/shared/material/boolean/testing/boolean.test.page.d.ts +0 -22
  586. package/src/app/shared/material/chips/chips.module.d.ts +0 -22
  587. package/src/app/shared/material/chips/material.chips.d.ts +0 -150
  588. package/src/app/shared/material/chips/testing/chips.test.d.ts +0 -32
  589. package/src/app/shared/material/datetime/datetime.module.d.ts +0 -24
  590. package/src/app/shared/material/datetime/material.date.d.ts +0 -90
  591. package/src/app/shared/material/datetime/material.dateshort.d.ts +0 -89
  592. package/src/app/shared/material/datetime/material.datetime.d.ts +0 -121
  593. package/src/app/shared/material/datetime/testing/mat-date-time.test.d.ts +0 -37
  594. package/src/app/shared/material/datetime/testing/mat-date.test.d.ts +0 -32
  595. package/src/app/shared/material/datetime/testing/mat-dateshort.test.d.ts +0 -31
  596. package/src/app/shared/material/duration/duration.module.d.ts +0 -19
  597. package/src/app/shared/material/duration/duration.utils.d.ts +0 -3
  598. package/src/app/shared/material/duration/material.duration.d.ts +0 -58
  599. package/src/app/shared/material/duration/testing/mat-duration.test.d.ts +0 -22
  600. package/src/app/shared/material/latlong/latlong.utils.d.ts +0 -21
  601. package/src/app/shared/material/latlong/material.latlong.d.ts +0 -70
  602. package/src/app/shared/material/latlong/material.latlong.module.d.ts +0 -20
  603. package/src/app/shared/material/latlong/testing/latlong.test.d.ts +0 -27
  604. package/src/app/shared/material/material.animations.d.ts +0 -6
  605. package/src/app/shared/material/material.config.d.ts +0 -3
  606. package/src/app/shared/material/material.module.d.ts +0 -45
  607. package/src/app/shared/material/material.testing.module.d.ts +0 -31
  608. package/src/app/shared/material/paginator/material.paginator-i18n.d.ts +0 -12
  609. package/src/app/shared/material/stepper/material.stepper-i18n.d.ts +0 -10
  610. package/src/app/shared/material/swipe/material.swipe.d.ts +0 -90
  611. package/src/app/shared/material/swipe/swipe.module.d.ts +0 -16
  612. package/src/app/shared/material/swipe/testing/swipe.test.d.ts +0 -22
  613. package/src/app/shared/material/testing/common.test.d.ts +0 -25
  614. package/src/app/shared/material/text/testing/text-form.testing.d.ts +0 -19
  615. package/src/app/shared/material/text/text-form.component.d.ts +0 -66
  616. package/src/app/shared/material/text/text-form.module.d.ts +0 -16
  617. package/src/app/shared/modules.d.ts +0 -9
  618. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +0 -60
  619. package/src/app/shared/named-filter/named-filter.model.d.ts +0 -32
  620. package/src/app/shared/named-filter/named-filter.module.d.ts +0 -13
  621. package/src/app/shared/named-filter/named-filter.service.d.ts +0 -32
  622. package/src/app/shared/named-filter/testing/named-filter-selector.testing.d.ts +0 -34
  623. package/src/app/shared/named-filter/testing/named-filter.testing.module.d.ts +0 -10
  624. package/src/app/shared/observables.d.ts +0 -30
  625. package/src/app/shared/pipes/arrays.pipe.d.ts +0 -59
  626. package/src/app/shared/pipes/badge.pipes.d.ts +0 -7
  627. package/src/app/shared/pipes/colors.pipe.d.ts +0 -9
  628. package/src/app/shared/pipes/date-diff-duration.pipe.d.ts +0 -23
  629. package/src/app/shared/pipes/date-format.pipe.d.ts +0 -35
  630. package/src/app/shared/pipes/date-from-now.pipe.d.ts +0 -12
  631. package/src/app/shared/pipes/duration.pipe.d.ts +0 -13
  632. package/src/app/shared/pipes/file-size.pipe.d.ts +0 -30
  633. package/src/app/shared/pipes/form.pipes.d.ts +0 -69
  634. package/src/app/shared/pipes/highlight.pipe.d.ts +0 -11
  635. package/src/app/shared/pipes/html.pipes.d.ts +0 -15
  636. package/src/app/shared/pipes/latlong-format.pipe.d.ts +0 -20
  637. package/src/app/shared/pipes/maps.pipe.d.ts +0 -22
  638. package/src/app/shared/pipes/maskito.pipe.d.ts +0 -14
  639. package/src/app/shared/pipes/math.pipes.d.ts +0 -20
  640. package/src/app/shared/pipes/ng-init.pipe.d.ts +0 -8
  641. package/src/app/shared/pipes/number-format.pipe.d.ts +0 -10
  642. package/src/app/shared/pipes/pipes.module.d.ts +0 -31
  643. package/src/app/shared/pipes/property.pipes.d.ts +0 -47
  644. package/src/app/shared/pipes/selection.pipes.d.ts +0 -62
  645. package/src/app/shared/pipes/string.pipes.d.ts +0 -53
  646. package/src/app/shared/pipes/translate-context.pipe.d.ts +0 -17
  647. package/src/app/shared/pipes/types.pipes.d.ts +0 -30
  648. package/src/app/shared/platforms.d.ts +0 -8
  649. package/src/app/shared/rx-state.module.d.ts +0 -10
  650. package/src/app/shared/services/entity-service.class.d.ts +0 -71
  651. package/src/app/shared/services/job.utils.d.ts +0 -20
  652. package/src/app/shared/services/memory-entity-service.class.d.ts +0 -78
  653. package/src/app/shared/services/progress-bar.service.d.ts +0 -20
  654. package/src/app/shared/services/startable-observable-service.class.d.ts +0 -36
  655. package/src/app/shared/services/startable-service.class.d.ts +0 -37
  656. package/src/app/shared/services/translate-context.service.d.ts +0 -29
  657. package/src/app/shared/services/validator-service.class.d.ts +0 -11
  658. package/src/app/shared/services.d.ts +0 -10
  659. package/src/app/shared/shared-routing.module.d.ts +0 -23
  660. package/src/app/shared/shared.module.d.ts +0 -34
  661. package/src/app/shared/shared.testing.module.d.ts +0 -19
  662. package/src/app/shared/storage/storage-explorer.component.d.ts +0 -59
  663. package/src/app/shared/storage/storage-explorer.module.d.ts +0 -13
  664. package/src/app/shared/storage/storage-explorer.testing-routing.module.d.ts +0 -9
  665. package/src/app/shared/storage/storage-explorer.testing.module.d.ts +0 -10
  666. package/src/app/shared/storage/storage.service.d.ts +0 -22
  667. package/src/app/shared/storage/storage.utils.d.ts +0 -19
  668. package/src/app/shared/testing/maskito.test.d.ts +0 -10
  669. package/src/app/shared/testing/observable.test.d.ts +0 -25
  670. package/src/app/shared/testing/tests.page.d.ts +0 -20
  671. package/src/app/shared/toast/toast.testing.d.ts +0 -15
  672. package/src/app/shared/toast/toast.testing.module.d.ts +0 -11
  673. package/src/app/shared/toast/toasts.d.ts +0 -17
  674. package/src/app/shared/toolbar/modal-toolbar.d.ts +0 -21
  675. package/src/app/shared/toolbar/toolbar.d.ts +0 -68
  676. package/src/app/shared/toolbar/toolbar.module.d.ts +0 -16
  677. package/src/app/shared/types.d.ts +0 -31
  678. package/src/app/shared/upload-file/testing/upload-file.testing.d.ts +0 -21
  679. package/src/app/shared/upload-file/testing/upload-file.testing.module.d.ts +0 -11
  680. package/src/app/shared/upload-file/upload-file-popover.component.d.ts +0 -39
  681. package/src/app/shared/upload-file/upload-file.component.d.ts +0 -49
  682. package/src/app/shared/upload-file/upload-file.model.d.ts +0 -30
  683. package/src/app/shared/validator/form-error-adapter.class.d.ts +0 -33
  684. package/src/app/shared/validator/validators.d.ts +0 -130
  685. package/src/app/shared/version/versions.d.ts +0 -26
  686. package/src/app/social/job/job.module.d.ts +0 -12
  687. package/src/app/social/job/progression/job-progression.component.d.ts +0 -23
  688. package/src/app/social/job/progression/job-progression.icon.d.ts +0 -62
  689. package/src/app/social/job/progression/job-progression.list.d.ts +0 -19
  690. package/src/app/social/job/progression/job-progression.model.d.ts +0 -10
  691. package/src/app/social/job/progression/job-progression.service.d.ts +0 -33
  692. package/src/app/social/job/testing/job-progression.testing.d.ts +0 -13
  693. package/src/app/social/job/testing/job-progression.testing.service.d.ts +0 -9
  694. package/src/app/social/job/testing/job.testing.module.d.ts +0 -11
  695. package/src/app/social/message/message.form.d.ts +0 -36
  696. package/src/app/social/message/message.modal.d.ts +0 -43
  697. package/src/app/social/message/message.model.d.ts +0 -33
  698. package/src/app/social/message/message.module.d.ts +0 -12
  699. package/src/app/social/message/message.service.d.ts +0 -32
  700. package/src/app/social/social.errors.d.ts +0 -9
  701. package/src/app/social/social.module.d.ts +0 -20
  702. package/src/app/social/social.testing.module.d.ts +0 -13
  703. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +0 -32
  704. package/src/app/social/user-event/notification/user-event-notification.list.d.ts +0 -71
  705. package/src/app/social/user-event/testing/user-event.testing.d.ts +0 -35
  706. package/src/app/social/user-event/testing/user-event.testing.model.d.ts +0 -42
  707. package/src/app/social/user-event/testing/user-event.testing.module.d.ts +0 -11
  708. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +0 -42
  709. package/src/app/social/user-event/user-event.model.d.ts +0 -44
  710. package/src/app/social/user-event/user-event.module.d.ts +0 -13
  711. package/src/app/social/user-event/user-event.service.d.ts +0 -129
  712. package/src/environments/environment.class.d.ts +0 -68
  713. package/src/environments/environment.d.ts +0 -2
  714. package/src/environments/environment.loader.d.ts +0 -24
  715. package/src/theme/_globals.scss +0 -5
package/doc/changelog.md CHANGED
@@ -1,9 +1,10 @@
1
1
  # Change log
2
2
 
3
+
3
4
  ## 0.1.7
4
5
 
5
6
  - enh: Menu: Allow dynamic insertion, using a new config options (see 'CORE_CONFIG_OPTIONS.MENU_ITEMS')
6
- * Example:
7
+ * Example:
7
8
  ```js
8
9
  const options = [
9
10
  // Insert before'MENU.HOME'
@@ -34,7 +35,7 @@
34
35
  - enh: CSS: new class '.visible-dirty' (e.g. `<ion-icon name="star" class="visible-dirty"></ion-icon>` in the `actions` column)
35
36
  - enh: ValidatorService: add function getI18nErrors(control)
36
37
  - enh: AppTable: add outputs 'onDirty', 'onError'
37
- - enh: AppTable:
38
+ - enh: AppTable:
38
39
 
39
40
  ## 0.4.1
40
41
 
@@ -65,12 +66,12 @@
65
66
 
66
67
  ## 0.9.0
67
68
 
68
- - enh: Autocomplete field: add config option `suggestLengthThreshold` to suggest after typing more than x characters
69
- - enh: Autocomplete field: add config option `debounceTime`
69
+ - enh: Autocomplete field: add config option `suggestLengthThreshold` to suggest after typing more than x characters
70
+ - enh: Autocomplete field: add config option `debounceTime`
70
71
 
71
72
  ## 0.10.0
72
73
 
73
- - enh: Add EntityClasses class: use it to get an entity class by name (need to use @EntityClass decorator on the class)
74
+ - enh: Add EntityClasses class: use it to get an entity class by name (need to use @EntityClass decorator on the class)
74
75
 
75
76
  ## 0.11.4
76
77
 
@@ -103,7 +104,7 @@
103
104
  - fix: remove functions `isArray()` (please use `Array.isArray()` instead)
104
105
  - enh: Add `AccountService.onChange: Subject` to listen account settings changes
105
106
  - 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: AccountService: change some internal function's visibility, to protected
107
108
  - fix: InMemoryService: fix equals() default implementation (avoid infinite loop)
108
109
  - fix: SCSS: Set mat-select-column to width: 50px, to make it compatible with sticky <mat-table>
109
110
  - enh: Add ComponentDirtyGuard to public API
@@ -111,22 +112,22 @@
111
112
  ## 0.20.0
112
113
 
113
114
  - fix: AppEntityEditor: remove confirmation before backClick (use ComponentDirtyGuard instead)
114
- - fix: AppEntityEditor: cancel() will not ask a confirmation, because called by dirty guard).
115
+ - fix: AppEntityEditor: cancel() will not ask a confirmation, because called by dirty guard).
115
116
 
116
117
  ## 0.23.0
118
+
117
119
  - fix: MatAutocompleteField: when escape event, close the panel and stop event's propagation
118
120
  - fix: AppFormButtonsBar: when escape event, make sure preventDefault!=false before emit a back event
119
121
 
120
122
  ## 0.24.0
121
123
 
122
- - fix: AppInstallUpgradeCard: use Cordova Downloader plugin, to download APK file correctly
124
+ - fix: AppInstallUpgradeCard: use Cordova Downloader plugin, to download APK file correctly
123
125
 
124
126
  ## 0.25.0
125
127
 
126
128
  - enh: Add FormErrorAdapter service, configurable using an injection token APP_FORM_ERROR_I18N_KEYS
127
129
  - enh: Add pipe 'translateFormError' to translate form error in HTML template
128
130
 
129
-
130
131
  ## 0.26.0
131
132
 
132
133
  - enh: Rename FormErrorAdapter into FormErrorTranslator
@@ -143,7 +144,7 @@
143
144
 
144
145
  ## 1.0.0
145
146
 
146
- - enh: Store local settings remotely
147
+ - enh: Store local settings remotely
147
148
  - fix: Fix suggestFromArray when items is null
148
149
  - fix: Fix parsing error, in GraphQL service (e.g error from Oracle database)
149
150
 
@@ -182,6 +183,7 @@ fix: MatChipsField: Fix 'focusOut' then 'focusIn' behavior
182
183
  fix: MatAutocompleteField: Fix 'focusOut' then 'focusIn' behavior
183
184
 
184
185
  # 1.6.18
186
+
185
187
  fix: MatDateTimeField: Fix when no Keyboard plugin
186
188
 
187
189
  # 1.7.0
@@ -223,24 +225,30 @@ enh: Autocomplete: Move result count in footer
223
225
 
224
226
  # 1.12.4
225
227
 
226
- fix: AppTable: Avoid deleting a row twice, when deleting an invalid row BUT not editing
228
+ fix: AppTable: Avoid deleting a row twice, when deleting an invalid row BUT not editing
227
229
 
228
230
  # 1.12.13
231
+
229
232
  enh: Add pipes formGet, formGetControl and formGetArray, to get a form controls
230
233
  enh: Add pipe strIncludes
231
234
 
232
235
  # 1.13.0
236
+
233
237
  enh: Add utility class SharedAsyncValidators
234
238
  enh: Add SharedAsyncValidators.registerAsyncValidator() to add long during validation job
235
239
  fix: BaseEntityService: listenChanges() now return an empty observable, when not implemented, instead of error
236
240
  fix: InstallUpgradeCard: do not show install link, on Windows touch screen
237
241
 
238
242
  # 1.14.0
243
+
239
244
  enh: Platform: auto reload web browser's page, if a new version is detected at startup
245
+
240
246
  # 1.14.2
241
- enh: Add DateUtils.resetTime(date, tz?: string)
247
+
248
+ enh: Add DateUtils.resetTime(date, tz?: string)
242
249
 
243
250
  # 1.15.0
251
+
244
252
  fix: MateDateField: make sure to display errors
245
253
  fix: MateDateField: Allow to show matPrefix (e.g. icon)
246
254
  fix: MateDateField: Better management of mat-error
@@ -248,84 +256,104 @@ fix: MateDateTimeField: Add error for dateIsBefore
248
256
  enh: SharedValidators: add new validator 'dateIsBefore'
249
257
 
250
258
  # 1.15.1
259
+
251
260
  fix: MateDateField: Add a timezone to serialize/deserialize date value
252
261
 
253
262
  # 1.15.4
263
+
254
264
  enh: MateDateField: Add an input 'datePickerFiler' to filter dates in picker
255
265
  enh: MateDateTimeField: Add an input 'datePickerFiler' to filter dates in picker
256
266
 
257
267
  # 1.15.9
268
+
258
269
  fix: Editor listenChanges() should not update the cache, but call reload() when changes detected.
259
- This will allow fetching partial graph in subscriptions
270
+ This will allow fetching partial graph in subscriptions
260
271
  enh: Editor: show a toast when remote changes are detected
261
272
  fix: Cache: minor fix
262
273
 
263
274
  # 1.15.13
275
+
264
276
  fix: File upload component: fix file/event management
265
277
  enh: Add new pipe 'formGetGroup:<name>'
266
278
 
267
279
  # 1.16.0
280
+
268
281
  enh: Refactor JobUtils functions: 'progression' is now optional, and hold by options
269
282
 
270
283
  # 1.17.0
284
+
271
285
  fix: GraphQL: set NetworkStatus.error on error object in order to throw corresponding exception
272
286
 
273
287
  # 1.17.1
288
+
274
289
  fix: Hotkeys: Prevent global hotkeys when popover component exists
275
290
 
276
291
  # 1.18.0
292
+
277
293
  enh: Autocomplete field: Add search bar on mobile
278
294
  fix: Autocomplete field: Fix style when multiple=true
279
295
  fix: Autocomplete field: Fix default displayWith when multiple=true (manage array value)
280
- fix: Exclude Windows from the platform mobile detection
296
+ fix: Exclude Windows from the platform mobile detection
281
297
 
282
298
  # 1.18.4
299
+
283
300
  fix: Autocomplete: fix search in mobile searchbar
284
301
  enh: Material field components: allow to set 'required' as empty tag, and not only '[required]=true'
285
302
 
286
303
  # 1.18.4
304
+
287
305
  fix: Autocomplete: fix panel width, on small screens
288
306
 
289
307
  # 1.18.7
290
- fix: fix DateUtils.min() and DateUtils.max()
308
+
309
+ fix: fix DateUtils.min() and DateUtils.max()
291
310
 
292
311
  # 1.19.0
312
+
293
313
  enh: Add a MessageModal, to compose message to users (internal or email messages)
294
314
  fix: MatDateField: if not required, manually set a date will not apply the value to formControl
295
315
 
296
316
  # 1.19.1
317
+
297
318
  fix: Platform detection failed (infinite loop) on MacBook
298
319
 
299
320
  # 1.19.2
321
+
300
322
  fix: Platform detection cache
301
323
 
302
324
  # 1.19.3
325
+
303
326
  enh: AppForm now wait form not pending, before emitting onSubmit event
304
327
 
305
328
  # 1.19.6
329
+
306
330
  fix: Fix toolbar back button
307
331
  fix: Autocomplete: Fix multiple values (displayValue was no shown)
308
332
  fix: Autocomplete: avoid to many call to suggest, on mobile
309
333
  fix: Autocomplete: use mat-option for searchbar, to have selected option is visible
310
334
  fix: Install APK: make sure to have '.apk' at end of filename
311
335
  fix: Auth modal: keep modal into loading, when waiting server response
312
- enh: Create a specific card for offline mode update
336
+ enh: Create a specific card for offline mode update
313
337
  fix: Entity storage: do NOT set skipIfPristine to false, when storage keep non local entities (e.g. OperationVO)
314
338
  enh: Entity storage: persist() has a new option skipIfPristine, to be able to force all data to be stored, even if not dirty
315
339
 
316
340
  # 1.19.7
341
+
317
342
  enh: Add pipe 'formGetValue' that will listen value changes (from a form or a control)
318
343
 
319
344
  # 1.19.16
345
+
320
346
  fix: Date and Date Short field: optimize <mat-error> with a switch/case
321
347
  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
348
+ fix: SharedValidators: rename 'double' validator into 'decimal'. Now return an error 'decimal' when opts.maxDecimals is nil
323
349
 
324
350
  # 1.19.18
351
+
325
352
  fix: Add a workaround to patch <html> class to 'plt-desktop', on Windows touch screen (fix sumaris-app issue #346)
326
353
  enh: EntitiesStorage: detect platform pause, to force saving the storage
327
354
 
328
355
  # 1.19.23
356
+
329
357
  fix: Menu: avoid to many call of onLogin() function (add a distinctUntilChanged() filter)
330
358
  fix: MateDateTime: set required validator using template, and no more by overriding formControl.validator (allow to change the required value)
331
359
  fix: EntityEditor: wait end of saving, in waitIdle() function
@@ -334,16 +362,20 @@ fix: EntityEditor.load(): rename the unused options 'updateTabAndRoute' into 'up
334
362
  fix: EntityEditor.load(): allow to reset to the first tab (e.g. when load another entity into an existing editor)
335
363
 
336
364
  # 1.19.23
365
+
337
366
  fix: Editor: allow to skip page history (computePageHistory can return 'undefined')
338
367
 
339
368
  # 1.19.25
369
+
340
370
  fix: Home: translate 'Loading...' message
341
371
 
342
372
  # 1.19.28
373
+
343
374
  enh: Add function escapeRegExp() to escape all special regexp characters
344
375
 
345
376
  # 1.19.30
346
- enh: Add argument to pipe 'formGetValue' to listen status change (e.g. to force update, when emitEvent: false)
377
+
378
+ enh: Add argument to pipe 'formGetValue' to listen status change (e.g. to force update, when emitEvent: false)
347
379
 
348
380
  # 1.20.0
349
381
 
@@ -352,367 +384,470 @@ enh: Menu: rename MenuService.menuVisible$ into MenuService.splitPaneWhen
352
384
 
353
385
  # 1.20.2
354
386
 
355
- enh: Material fields: add @Input() appearance
387
+ enh: Material fields: add @Input() appearance
356
388
 
357
389
  # 1.20.3
358
- enh: css-variables-to-root-mobile() will expose variables '--mat-tab-link-height' and '--mat-tab-bar-height'
390
+
391
+ enh: css-variables-to-root-mobile() will expose variables '--mat-tab-link-height' and '--mat-tab-bar-height'
359
392
 
360
393
  # 1.20.4
394
+
361
395
  enh: Add helper class CsvUtils
362
396
  enh: Add pipe formatProperty
363
397
  enh: Add directive [appAutoTitle] for <ion-label> or <mat-label>
364
398
 
365
399
  # 1.20.5
366
- enh: formatProperty pipe: when type is 'boolean', display a translated Yes/No
400
+
401
+ enh: formatProperty pipe: when type is 'boolean', display a translated Yes/No
367
402
 
368
403
  # 1.20.7
404
+
369
405
  enh: add function FileUtils.writeTextToFile()
370
406
 
371
407
  # 1.20.11
408
+
372
409
  enh: add function FileUtils.downloadUri()
373
410
 
374
411
  # 1.20.13
412
+
375
413
  fix: fix SharedValidators.decimal() when maxDecimals = 3 (cached regexp was wrong)
376
414
 
377
415
  # 1.20.14
416
+
378
417
  fix: Menu: Force menu update when config changed
379
418
 
380
419
  # 1.20.16
420
+
381
421
  fix: MatChipsField: fix chip height
382
422
 
383
423
  # 1.20.17
424
+
384
425
  fix: Add module ResizableModule, for MatTable column resize
385
426
 
386
427
  # 1.20.18
387
- fix: PlatformService.download() now useFileUtils.download(), that create a temp download (not need browser permission to open popup)
428
+
429
+ fix: PlatformService.download() now useFileUtils.download(), that create a temp download (not need browser permission to open popup)
388
430
 
389
431
  # 1.20.19
432
+
390
433
  enh: Add new abstract class AppEntityEditorModal, that can managed many forms and tables
391
434
 
392
435
  # 1.20.20
436
+
393
437
  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
438
 
395
439
  # 1.20.21
440
+
396
441
  fix: Fix mat latlong field: was broken since v1.19.13
397
442
 
398
443
  # 1.20.21
444
+
399
445
  fix: Fix MatDateField mat-error display (was too large)
400
446
 
401
447
  # 1.20.24
448
+
402
449
  fix: Revert change on LatLongField (SCSS file was removed ??)
403
450
 
404
451
  # 1.20.25
452
+
405
453
  fix: MatBooleanField: set indeterminate=true, when value is null
406
454
 
407
455
  # 1.20.27
408
456
 
409
- fix: Mat***Field: add `@Input() appearance`
457
+ fix: Mat***Field: add `@Input() appearance`
410
458
 
411
459
  # 1.20.30
412
- fix: Add InMemoryDataService.hiddenCount
460
+
461
+ fix: Add InMemoryDataService.hiddenCount
413
462
 
414
463
  # 1.20.33
464
+
415
465
  fix: MatAutocompleteField: reload items when cleaning text, and no suggestLengthThreshold
416
466
 
417
467
  # 1.20.34
418
- fix: AppTable: remove 'opts.skipIfLoading' on delete functions, to use only 'opts.interactive' to force deletion when table is busy.
468
+
469
+ fix: AppTable: remove 'opts.skipIfLoading' on delete functions, to use only 'opts.interactive' to force deletion when table is busy.
419
470
 
420
471
  # 1.21.0
472
+
421
473
  enh: AppForm: use public behavior subjects: readySubject, loadingSubject, errorSubject
422
474
 
423
475
  # 1.22.0
476
+
424
477
  enh: Add social components: UserEventNotification and JobProgression
425
478
 
426
479
  # 1.22.1
480
+
427
481
  enh: Menu: add APP_MENU_OPTIONS token, to configure menu (e.g. show notification icon in the left menu header)
428
482
 
429
483
  # 1.22.9
484
+
430
485
  enh: Remove <app-user-events-table> (move to specific sub projects that use ngx-components)
431
486
 
432
487
  # 1.22.11
488
+
433
489
  enh: Rename <app-user-event-notification-component> into <app-user-event-notification-icon>
434
490
 
435
491
  # 1.22.12
492
+
436
493
  enh: Can mark a Moment without time, allowing empty time field in MatDateTime
437
494
 
438
495
  # 1.23.6
496
+
439
497
  fix: Many fix in table. Upgrade to ngx-material-table 0.12.0
440
498
  enh: Table, Form and Editor: Add a destroySubject
441
499
  enh: Observables functions first***Promise() : add more options (timeout or stop notifier)
442
500
 
443
501
  # 1.23.10
444
- enh: Autocomplete: add a 'title' property on each option, on desktop screen
502
+
503
+ enh: Autocomplete: add a 'title' property on each option, on desktop screen
445
504
 
446
505
  # 1.23.11
506
+
447
507
  fix: Memory Data service: now implement IStartableService
448
508
  enh: StartableService: use a stopSubject, to stop waitFor promise
449
- enh: remove unused class EntitiesService. Use IEntitiesService instead
509
+ enh: remove unused class EntitiesService. Use IEntitiesService instead
450
510
 
451
511
  # 1.23.26
512
+
452
513
  enh: Add new pipe 'arrayJoin'
453
514
  enh: 'arrayPluck' pipe: allow to use string[] for path
454
515
  enh: getPropertyByPath() function now allow to use string[] as path
455
516
 
456
517
  # 1.23.29
457
- enh: FormArrayHelper: add setValue() to resize the FormArray, then set value
518
+
519
+ enh: FormArrayHelper: add setValue() to resize the FormArray, then set value
458
520
 
459
521
  # 1.23.30
460
- fix: InMemoryDataService: do NOT apply default sortReplacement id -> rankOrder
522
+
523
+ fix: InMemoryDataService: do NOT apply default sortReplacement id -> rankOrder
461
524
 
462
525
  # 1.23.31
463
- fix: InMemoryDataService: change 'dirtySubject' as public property
526
+
527
+ fix: InMemoryDataService: change 'dirtySubject' as public property
464
528
 
465
529
  # 1.23.39
530
+
466
531
  enh: Add FormArrayHelper.patchValue() : clear array, then push each value
467
- fix: StartableService: avoid to log error when stopped
532
+ fix: StartableService: avoid to log error when stopped
468
533
 
469
534
  # 1.23.41
470
- enh: AppEditor: Add 'loaded' getter
535
+
536
+ enh: AppEditor: Add 'loaded' getter
471
537
 
472
538
  # 1.23.44
473
- enh: Referential model: add a 'icon' property (IconRef)
539
+
540
+ enh: Referential model: add a 'icon' property (IconRef)
474
541
 
475
542
  # 1.23.46
543
+
476
544
  enh: Add `ColorScale.getValueColor(): Color`
477
- enh: EntityEditorModal: rename input `isNewData` into `isNew`
545
+ enh: EntityEditorModal: rename input `isNewData` into `isNew`
478
546
 
479
547
  # 1.23.51
548
+
480
549
  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
550
+
551
+ - fix: Make sure `takeUntil` is always the last operator (avoid memory leak)
552
+ - enh: Observables: Allow set option.stopError with custom error message
553
+ - enh: Observables: Create the Error outside the observable, to keep the original stack trace readable
484
554
 
485
555
  # 1.23.61
556
+
486
557
  - fix: Boolean field: fix button layout
487
558
 
488
559
  # 1.23.65
560
+
489
561
  - enh: Add pipes: isNotNil and isNotNilOrNaN
490
562
 
491
563
  # 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
564
+
565
+ - fix: Rename DateFormatPipe into DateFormatService (DateFormatPipe is no more a provider)
566
+ - fix: Fix patterns in DateFormatPipe/Service : add a fallback when translate service is not started - fix issue sar-app #28
494
567
 
495
568
  # 2.0.0
496
- - enh: Migration to
497
- - Angular 14.2
498
- - Ionic 6.2
499
- - Angular Material Table 0.14.4 (allow to use async validator for rows)
500
- - Apollo 3, graph-ws 5
501
- - enh: Add <app-debug> component
569
+
570
+ - enh: Migration to
571
+ - Angular 14.2
572
+ - Ionic 6.2
573
+ - Angular Material Table 0.14.4 (allow to use async validator for rows)
574
+ - Apollo 3, graph-ws 5
575
+ - enh: Add <app-debug> component
502
576
 
503
577
  # 2.1.0
504
- - enh: Add new class AppFormArray with all functions of FormArrayHelper
505
-
578
+
579
+ - enh: Add new class AppFormArray with all functions of FormArrayHelper
580
+
506
581
  # 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
582
+
583
+ - fix: FormArrayHelper and AppFormArray: Apply the parent disabled state, in added controls, when calling resize() or patchValue()
584
+ - fix: FormArrayHelper.getOrCreateArray(): Apply the parent form disabled state, in added FormArray
585
+ - fix: MatChipsField: fix loading spinner freeze
510
586
 
511
587
  # 2.2.3
588
+
512
589
  - enh: Test Geolocation.getCurrentPosition() in the lat/long field test page
513
590
 
514
591
  # 2.2.4
592
+
515
593
  - fix: Fix DateUtils.isSame(), when first argument is nil, but the second not
516
594
  - enh: AppTable: allow to call deleteSelection with opts (e.g `{interactive: false}`)
517
595
 
518
596
  # 2.2.6
519
- - fix: Refresh menu on any account changes (login changes - eg. when account updated)
597
+
598
+ - fix: Refresh menu on any account changes (login changes - eg. when account updated)
520
599
 
521
600
  # 2.2.8
601
+
522
602
  - fix: Table actions column: add CSS variable to set column width, min-width and max-width
523
603
 
524
604
  # 2.3.7
525
- - fix: Mat form field: use inherit font size (do not force font-size, in the theme)
605
+
606
+ - fix: Mat form field: use inherit font size (do not force font-size, in the theme)
526
607
  - fix: MatDateShort: fix behaviour for Angular 14
527
608
 
528
609
  # 2.4.0
610
+
529
611
  - Breaking change: ProgressBarService and HTTP_INTERCEPTORS no longer provided in SharedModule (see: AppModule)
530
612
  - enh: Make ProgressBarService fully optional (InjectionToken: APP_PROGRESS_BAR_SERVICE)
531
613
  - enh: Settings: the settings object is now stored in json format
532
614
 
533
615
  # 2.4.1
616
+
534
617
  - fix: AppFormArray: do not resize the array when patchValue() receive `undefined` value (e.g. useful when called by parent, recursively, without value)
535
618
  - fix: AppAsyncTable: optimize markAsUntouched()
536
619
 
537
620
  # 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)
621
+
622
+ - enh: Graphql service: add new token `APP_GRAPHQL_FRAGMENTS` to register fragments, and avoid redeclaration in queries (
623
+ see https://github.com/apollographql/apollo-client/pull/9764#issuecomment-1329857853)
539
624
 
540
625
  # 2.4.3
626
+
541
627
  - fix: AppFormArray: do not resize the array when patchValue() receive `null` or `undefined` value (same behavior as official `FormArray.patchValue()`)
542
628
 
543
629
  # 2.4.4
630
+
544
631
  - fix: Applying environment defaultLocale, when settings data has no locale (merge some code from lpecquot, that was in a branch)
545
632
 
546
633
  # 2.4.9
634
+
547
635
  - fix: Settings: allow to store settings as string (like < 2.4.0) using an injection token
548
636
 
549
637
  # 2.4.10
638
+
550
639
  - fix: When detecting a app update, stop the check timer to avoid to many toast to be displayed
551
640
 
552
641
  # 2.4.14
642
+
553
643
  - enh: add function `setPropertyByPath()`
554
- - fix: Implement `EntityUtils.getPropertyByPath()` using generic shared function `getPropertyByPath()`
644
+ - fix: Implement `EntityUtils.getPropertyByPath()` using generic shared function `getPropertyByPath()`
555
645
 
556
646
  # 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
647
+
648
+ - fix: Fix pipes formGetControl, formGetValue, formGetGroup : when using a path, return nil if control not found, and NOT the form itself
558
649
 
559
650
  # 2.4.16
651
+
560
652
  - fix: `SharedModule.forRoot()`: make environment optional, to be defined it in the `app.module.ts` (need by Quadrige App)
561
653
 
562
654
  # 2.4.17
655
+
563
656
  - fix: MatLatLongField: remove strict character regexp, in degrees part, to be able to set only one digit (e.g. `9°`)
564
657
 
565
658
  # 2.4.18
659
+
566
660
  - fix: MatDateShortField: fix control validation, in desktop mode
567
661
 
568
662
  # 2.4.19
663
+
569
664
  - fix: MatAutocompleteField: revert the cdk overlay position, when closing the mat-select panel
570
665
 
571
666
  # 2.4.23
667
+
572
668
  - enh: Add DateUtils.markTime(), to reset the 'no time' marker
573
669
  - enh: Add DateUtilsEntityEditor: simplify updateTabAndRoute()
574
- - enh: Add DateUtilsEntityEditor: updateRoute() now manage queryParams change, before /new to /:id transition
670
+ - enh: Add DateUtilsEntityEditor: updateRoute() now manage queryParams change, before /new to /:id transition
575
671
  - enh: Toolbar: goBack() return a boolean
576
672
 
577
673
  # 2.4.25
674
+
578
675
  - enh: Environment: add a boolean option 'sameUrlPeer', to force network to start on peer at the same URL
579
676
  - enh: EntityEditor: allow to listen changes on local entity
580
677
  - enh: add functions collectByProperty() to split an array in a map of array
581
678
 
582
679
  # 2.4.26
680
+
583
681
  - fix: Rename pipe 'isNotOnField' by 'isOnDesk'
584
682
 
585
683
  # 2.4.28
684
+
586
685
  - enh: TranslateContext: allow to translate many keys (string[])
587
686
  - fix: Force ngx-quicklink to 0.3.0
588
687
 
589
688
  # 2.4.31
689
+
590
690
  - enh: Add JsonUtils.parseFile()
591
691
 
592
692
  # 2.4.33
693
+
593
694
  - enh: Add AppPropertiesForm.length
594
695
 
595
696
  # 2.4.48
697
+
596
698
  - fix: Fix highlight pipe (used by autocomplete field)
597
699
 
598
700
  # 2.4.50
701
+
599
702
  - enh: Add type 'enums' for AppFormField
600
703
 
601
704
  # 2.4.54
705
+
602
706
  - enh: Use NavController by default, instead of Angular router. This will use the default animation style of the OS
603
707
 
604
708
  # 2.4.55
709
+
605
710
  - fix: Editor: Disable animation, when reloading same page after saving
606
711
 
607
712
  # 2.4.58
713
+
608
714
  - enh: Add storage explorer (with log preview)
609
715
  - enh: Add debug service (to send debug data to server)
610
716
  - enh: Add logging service
611
717
 
612
718
  # 2.4.61
719
+
613
720
  - enh: Add logger on network service
614
721
 
615
722
  # 2.4.67
723
+
616
724
  fix: Minor fix (add missing i18n)
617
725
  fix: GeolocationUtils: add many useful functions, and detect Capacitor errors (from message)
618
726
  fix: Fix some issues in storage explorer
619
727
 
620
728
  # 2.4.74
729
+
621
730
  enh: LocalSettingsService: save changes in local storage, when calling setProperty()
622
731
 
623
732
  # 2.4.75
733
+
624
734
  enh: SharedValidator: add a precision validator
625
735
 
626
736
  # 2.4.79
627
- fix: ImageGallery: fix add button icon (center alignement)
628
737
 
738
+ fix: ImageGallery: fix add button icon (center alignement)
629
739
 
630
740
  # 2.4.81
741
+
631
742
  fix: AppToolbar: allow to use ion-segment in app-toolbar
632
743
 
633
744
  # 2.4.82
745
+
634
746
  enh: Migrate to Ionic 7
635
747
  fix: Form field: show the clear button, when clearable=true, on types 'integer', 'double', 'string', 'date' and 'date-time'
636
748
 
637
749
  # 2.4.82
750
+
638
751
  enh: AppEntityEditor: add get/set for autoOpenNextTab
639
752
 
640
753
  # 2.4.87
641
- fix: AppEntityEditor: When reload the editor, force the fetch policy to 'network-only'
754
+
755
+ fix: AppEntityEditor: When reload the editor, force the fetch policy to 'network-only'
642
756
 
643
757
  # 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)
758
+
759
+ 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
760
 
646
761
  # 2.4.88
762
+
647
763
  enh: Add protected BaseEntityService.getLoadQueryNames()
648
764
 
649
765
  # 2.4.89
766
+
650
767
  fix: Fix Autocomplete searchbar value trigger, after ionic 7 update
651
768
 
652
769
  # 2.4.90
770
+
653
771
  fix: AppEntityEditor: when catch error in save(), set the selectedTabIndex=0 before calling setError()
654
772
  This will allow subclasses to override the default selectedTabIndex after an error occur, inside the overridden setError()
655
773
 
656
774
  # 2.4.91
657
- enh: functions: allow to use sort(array) without the 'attribute' argument (e.g. allow to sort a string[])
775
+
776
+ enh: functions: allow to use sort(array) without the 'attribute' argument (e.g. allow to sort a string[])
658
777
 
659
778
  # 2.4.95
779
+
660
780
  fix: Platform: avoid error at startup, because of StatusBar in web mode
661
- enh: MatBooleanField: display value when disabled, instead of 'empty'
781
+ enh: MatBooleanField: display value when disabled, instead of 'empty'
662
782
 
663
783
  # 2.4.112
784
+
664
785
  enh: AppBadge: allow to set a text or number content
665
786
 
666
787
  # 2.4.114
788
+
667
789
  enh: Menu: allow to add sub menu item
668
790
 
669
791
  # 2.4.158
792
+
670
793
  enh: Environment: add useHash property to configure Angular router to use hash URL (need by web-ext)
671
794
 
672
795
  # 2.5.0
796
+
673
797
  - enh: Add token APP_USER_SETTINGS_OPTIONS of type UserSettingsOptions to add user properties table in AccountPage
674
798
  - fix: MatBooleanField: in checkbox style, the placeholder can be shown as expected
675
799
 
676
800
  # 2.6.0
801
+
677
802
  - enh: Account: Add User tokens (table and modal)
678
803
 
679
804
  # 2.6.23
805
+
680
806
  - fix: Fix Configuration.getPropertyAsNumbers() when no value (avoid to get an array with an unique NaN value)
681
807
 
682
808
  # 2.6.25
809
+
683
810
  - enh: Upgrade to nodejs 18
684
811
  - fix: Menu: hide spacer divider ion-label (hide the skeleton)
685
812
 
686
813
  # 2.6.28
814
+
687
815
  - fix: ImageGallery: Change image's title background color
688
816
 
689
817
  # 2.6.31
818
+
690
819
  - fix: ImageGallery: Add output event when after editing title
691
820
 
692
821
  # 2.6.32
822
+
693
823
  - fix: AppFormArray: Avoid an infinite loop, when calling resize(0) if options.allowEmptyArray=false
694
824
  - 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)
825
+ - fix: Table, Form, Editor: Make sure waitIdle() will stop, when component is destroyed (force default opts)
696
826
 
697
827
  # 2.6.34
698
- - enh: functions: add a static function `underscoreToChangeCase()`
828
+
829
+ - enh: functions: add a static function `underscoreToChangeCase()`
699
830
 
700
831
  # 2.6.35
832
+
701
833
  - fix: Settings: Add type for property `OfflineFeature.filter`, then use it to in `LocalSettingsService.getOfflineFeatures()`
702
834
 
703
835
  # 2.6.38
836
+
704
837
  - fix: Fix mapGet pipe, when key is zero (0)
705
838
 
706
839
  # 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>`)
840
+
841
+ - 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
842
 
709
843
  # 2.8.0
844
+
710
845
  - enh: `IAppForm<T>` : add a type `<T=any>`
711
846
  - enh: `IAppForm` : add optional functions `setValue()`, `patchValue()`, `resetValue()` and `getValue()`
712
847
  - fix: `AppForm` and `AppEditor`: Remove unused and deprecated properties `_loading`, `_$ready`, `_$loading`
713
848
  - fix: `AppForm` : rename `_enable` as `enabled` to avoid confusion with `enable()`
714
849
  - 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 :
850
+ - enh: Add new pipes for SelectionModel :
716
851
  - `isSelected`: e.g. `selection | isSelected: row`,
717
852
  - `isEmptySelection`: e.g. `selection | isEmptySelection`
718
853
  - `isNotEmptySelection`: e.g. `selection | isNotEmptySelection`
@@ -720,19 +855,20 @@ enh: Environment: add useHash property to configure Angular router to use hash U
720
855
  - `isMultipleSelection`: e.g. `selection | isMultipleSelection`,
721
856
  - enh: Add new pipes for table :
722
857
  - `isAllSelected`: e.g. `table | isAllSelected`,
723
- - `isNotAllSelected`: e.g. `table | isNotAllSelected`
858
+ - `isNotAllSelected`: e.g. `table | isNotAllSelected`
724
859
 
725
860
  # 2.8.1
726
- - enh: Add a pipe `badgeNumber` to limit badge content when > `99` (will display `99+`)
861
+
862
+ - enh: Add a pipe `badgeNumber` to limit badge content when > `99` (will display `99+`)
727
863
  - enh: function setPropertyByPath() now return the input obj
728
864
  - fix: Referential: fix `asObject()`
729
- - enh: Add options:
865
+ - enh: Add options:
730
866
  - `sumaris.defaultLatLongFormat.enabled` to show/hide default Lat/Lon setting in account page (default is true)
731
867
  - `sumaris.auth.api.token.scope.enabled` to show/hide scopes in API token table (default is false)
732
868
  - `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
869
  - enh: Add AppRowField component: wrap an AppFormField into a table column
734
870
  - enh: Add pipe `valueFormat` to format a value with a FormFieldDefinition (equivalent to pipe `propertyFormat`)
735
- - fix: `UploadFileComponent` Refactored
871
+ - fix: `UploadFileComponent` Refactored
736
872
  - enh: Add new config options to override the form field background color (active, focus or disabled)
737
873
  - enh: Add new pipe `booleanFormat`
738
874
  - enh: Update pipe `propertyFormat` to use complex path (using `getPropertyByPath()`)
@@ -740,34 +876,42 @@ enh: Environment: add useHash property to configure Angular router to use hash U
740
876
  - enh: Add static function `JsonUtils.getLocalizedEncoding()`
741
877
 
742
878
  # 2.8.2
879
+
743
880
  - enh: Function `getPropertyByPath` now handles the optional chaining operator `(?.)`
744
881
  - enh: Add `AccountService.onWillLogout` emitter
745
- - fix: Table: Call `emitRefresh()` instead of `onRefresh.emit()` to safely emit to an opened Observable
882
+ - fix: Table: Call `emitRefresh()` instead of `onRefresh.emit()` to safely emit to an opened Observable
746
883
 
747
884
  # 2.8.3
885
+
748
886
  - enh: Add support of `<mat-hint>` in MatDateTime, MatDate, MatDateShort, MatAutocompleteField and MatLatLongField
749
887
  - enh: Add `DateUtils.compare` to be able to sort dates (using Array `sort()`)
750
888
  - enh: Add function `resizeArray(T[], size): T[]`
751
889
  - fix: NamedFilter: Abort import if callback returns null or undefined
752
- - fix: DataSource: Allow to refresh datasource (using `watchAll()`) when having dirty row
890
+ - fix: DataSource: Allow to refresh datasource (using `watchAll()`) when having dirty row
753
891
 
754
892
  # 2.8.4
893
+
755
894
  - enh: MatBooleanField: add `@Input() clearable` (default to `false`)
756
895
  - fix: MatBooleanField: when resetting value, hide radio buttons
757
896
 
758
897
  # 2.8.11
759
- - fix: MatBooleanField: hide checkbox's placeholder when floatLabel=never
898
+
899
+ - fix: MatBooleanField: hide checkbox's placeholder when floatLabel=never
760
900
 
761
901
  # 2.8.12
762
- - enh: Pipe `referentialToString`: add new option `propertySeparator` to override the default ' - ' separator
902
+
903
+ - enh: Pipe `referentialToString`: add new option `propertySeparator` to override the default ' - ' separator
763
904
 
764
905
  # 2.8.13
906
+
765
907
  - enh: AsyncTable: make `setFilter()` async
766
908
 
767
909
  # 2.8.14
910
+
768
911
  - enh: Upgrade to ngx-material-table 17.2.1 (add options to TableElement `delete()`, `cancelOrDelete()` and `confirmEditCreate()`)
769
912
 
770
913
  # 2.9.0
914
+
771
915
  - enh: Upgrade to Angular 17.3
772
916
  - fix: Replace zone.js `setTimeout()`, by rx-angular zone-less
773
917
  - fix: IFormControlPathTranslator : Rename interface IFormControlPathTranslator into IFormPathTranslator, and rename property `controlPathTranslator` into `pathTranslator`
@@ -775,42 +919,53 @@ enh: Environment: add useHash property to configure Angular router to use hash U
775
919
  - fix: AppAsyncTable: re add `@Input() get filter`
776
920
  - fix: AppTable: clear selection when opening a row (like AppAsyncTable)
777
921
  - fix: MatAutocompleteField: Add `@Input() panelClass` (same as `class`)
778
- - fix: MatAutocompleteField: Allow boolean inputs from string (using `@Input({transform: booleanAttribute})`)
922
+ - fix: MatAutocompleteField: Allow boolean inputs from string (using `@Input({transform: booleanAttribute})`)
779
923
  - fix: MatAutocompleteField: add `panelWidth` and `panelClass` to `MatAutocompleteFieldConfig`
780
924
 
781
925
  # 2.9.1
926
+
782
927
  - fix: MatAutocompleteField: revert `applyImplicitValue` default value `true`
783
- - fix: MatChipsField: fix usage of `suggestLengthThreshold`
928
+ - fix: MatChipsField: fix usage of `suggestLengthThreshold`
784
929
  - enh: MatChipsField: add `applyImplicitValue` (default: false)
785
930
 
786
931
  # 2.9.2
932
+
787
933
  - fix: Notification list: add an ion-text-wrap to the notification message
788
934
 
789
935
  # 2.9.3
936
+
790
937
  - fix: Home: Add a call to `markForCheck()` after removing a page history item
791
938
 
792
939
  # 2.9.4
793
- - fix: Form: reduce line height of row label (form-container > ion-row > ion-col > ion-label)
940
+
941
+ - fix: Form: reduce line height of row label (form-container > ion-row > ion-col > ion-label)
794
942
 
795
943
  # 2.9.6
796
- - fix: MatAutocompleteField: Remove animation in searchbar (bad icon position in iOS)
944
+
945
+ - fix: MatAutocompleteField: Remove animation in searchbar (bad icon position in iOS)
797
946
 
798
947
  # 2.9.7
799
- - fix: Form: fix field label position (form-container > ion-row > ion-col > ion-label)
948
+
949
+ - fix: Form: fix field label position (form-container > ion-row > ion-col > ion-label)
800
950
 
801
951
  # 2.9.8
952
+
802
953
  - enh: Add AppFormUtils.filterErrorsByPrefix() and AppFormUtils.filterErrors()
803
954
 
804
955
  # 2.9.13
956
+
805
957
  - fix: Home: when removing a page history, force settings to update
806
958
 
807
959
  # 2.9.17
960
+
808
961
  - fix: MatSelectPanel: add `--min-width: fit-content` to class `mat-select-panel-fit-content`
809
962
 
810
963
  # 2.9.20
964
+
811
965
  - enh: NamedFilterSelector: add `filterCleared` event
812
966
 
813
967
  # 2.9.22
968
+
814
969
  - enh(deps): Minor update to Angular 17.3.12
815
970
  - enh(theme): Dark theme: Move dark theme toggle into the settings form
816
971
  - enh(theme): Dark theme: Fix toggle field style, in dark theme
@@ -818,67 +973,84 @@ enh: Environment: add useHash property to configure Angular router to use hash U
818
973
  - fix(config): When saving the remote config, do not return to the editor config's inherited properties
819
974
 
820
975
  # 2.9.23
976
+
821
977
  - fix(boolean-field): fix click on radio button 'no', when field has no value
822
978
 
823
979
  # 2.11.1
980
+
824
981
  - enh(deps): Upgrade to apollo-angular 7.1.2 and apollo 3.11 (+ fix breaking changes in graphql.service.ts)
825
982
  - fix(css): Dark theme: fix checkbox style, and autocomplete panel
826
983
 
827
984
  # 2.11.2
828
- - enh(app-text-form): Add new inputs `appearance` and `subscriptSizing`
985
+
986
+ - enh(app-text-form): Add new inputs `appearance` and `subscriptSizing`
829
987
  - fix(css): Dark theme: fix style for outline field
830
988
 
831
989
  # 2.11.3
990
+
832
991
  - fix(app-text-form): Input `autoHeight` is now deprecated (use `autoSize` instead)
833
992
  - enh(app-text-form): Add new inputs `autoSizeMinRows` and `autoSizeMaxRows`
834
993
 
835
994
  # 2.11.7
995
+
836
996
  - fix(css): Dark theme: fix style
837
997
 
838
998
  # 2.11.8
839
- - enh(form-error): Add options to `IFormPathTranslator.translateFormPath()`
999
+
1000
+ - enh(form-error): Add options to `IFormPathTranslator.translateFormPath()`
840
1001
 
841
1002
  # 2.12.0
842
- - enh(form-error): Remove deprecated interface `IFormControlPathTranslator`
1003
+
1004
+ - enh(form-error): Remove deprecated interface `IFormControlPathTranslator`
843
1005
 
844
1006
  # 2.12.4
845
- - fix(date): Update formControl (and datePicker) when textControl value changes, and clean text input by regexp
1007
+
1008
+ - fix(date): Update formControl (and datePicker) when textControl value changes, and clean text input by regexp
846
1009
  - fix(date-time): Keep control as invalid is time is empty
847
1010
  - enh(date-time): Add new `@Input() allowNoTime` to make time optional
848
1011
  - fix(lat-long): Fix deletion, when press delete key
849
1012
 
850
1013
  # 2.12.7
1014
+
851
1015
  - fix: addShortcut handler use `KeyboardEvent` instead of a simple 'EVent'
852
1016
 
853
1017
  # 2.12.8
1018
+
854
1019
  - enh: function `toNumber()` will now return the default value, when input is `NaN`
855
1020
 
856
1021
  # 2.12.9
1022
+
857
1023
  - fix(paginator): Fix paginator style on mobile screen (align to the left, and hide page size, like before the Angular 17 migration)
858
1024
 
859
1025
  # 2.12.10
1026
+
860
1027
  - fix(autocomplete): Compute the panel width if not set (in mobile) - workaround for an issue in mat-select panel
861
1028
 
862
1029
  # 2.12.12
1030
+
863
1031
  - fix(theme): add all dark colors from material theme
864
1032
  - fix(autocomplete): in mobile device, add a text-wrap and a max-height in mat-option
865
1033
 
866
1034
  # 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)
1035
+
1036
+ - fix(config): New option `sumaris.account.latLongFormat.enable` to replace the deprecated option `sumaris.defaultLatLongFormat.enabled` (key was not well named)
868
1037
 
869
1038
  # 2.12.16
1039
+
870
1040
  - 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
1041
+ - fix(autocomplete): Use `??` operator, instead of `toBoolean()`, `toNumber()` etc.
1042
+ - enh(autocomplete): Add option `applyImplicitValue` to config
873
1043
  - enh(pipe): add a `asBoolean` pipe, with an optional predicate function as option (e.g. to test any value)
874
1044
  - enh(account): Allow to change password, if auth token is `token` (will update the pubkey)
875
1045
  - fix(lat-long): Refactor component (remove maskito placeholder use)
876
1046
  - enh(table): Add new component `<nav-actions-column>`
877
1047
 
878
1048
  # 2.12.19
1049
+
879
1050
  - fix(nav-actions-column): Fix when inside a `AppAsyncTable`
880
1051
 
881
1052
  # 2.12.26
1053
+
882
1054
  - enh(app-async-table): declare property `readonly cd: ChangeDetectorRef`
883
1055
  - enh(app-async-table): implement `markForCheck()` and `detectCHanges()`
884
1056
  - enh(app-table): declare property `readonly cd: ChangeDetectorRef`
@@ -886,7 +1058,1133 @@ enh: Environment: add useHash property to configure Angular router to use hash U
886
1058
  - fix(app-table): `toggleSelectRow()` should not call `event.preventDefault()` otherwise checkbox will not be checked
887
1059
 
888
1060
  # 2.12.27
889
- - enh(app-table): implement `markForCheck()` and `detectCHanges()`
890
1061
 
891
- # 2.18.0
892
- - enh(deps) Upgrade to Angular 18.2 and Ionic 8.3
1062
+ - enh(app-table): implement `markForCheck()` and `detectChanges()`
1063
+
1064
+ # 2.12.29
1065
+
1066
+ - fix(new-token-modal): Add a full form and fix save issue
1067
+
1068
+ # 2.12.30
1069
+
1070
+ - enh(platform): Add copy to clipboard return state
1071
+
1072
+ # 2.12.29
1073
+
1074
+ - fix(new-token-modal): Add a full form and fix save issue
1075
+
1076
+ # 18.0.0
1077
+
1078
+ - enh(deps) Upgrade to Angular 18.2.8 and Ionic 8.3
1079
+ - enh(deps) Remove zone.js (enable experimental zone-less config)
1080
+ - enh(app-properties-form): Use an autocomplete field to select an option, instead of a simple mat-select
1081
+ - enh(app-properties-form): Add `@Input() showHintKey: boolean` to show option key (has a hint)
1082
+ - enh(network-service): Avoid to restart the service if peer has not changed
1083
+ - enh(AppFormArray): allow to use AppFormArray on any type (and not only Entity has before)
1084
+ - enh(AppFormUtils) add useful static functions to enable/disable control(s)
1085
+ - enh(mat-autocomplete-field): add option `selectInputContentOnFocus` to option, to select the input content on focus in
1086
+ - enh(app-named-filter-selector): Add `@Input() buttonsPosition: 'matSuffix'|'after'` to let user defined button position (inside the field, or after)
1087
+ - fix(AppForm and AppFormContainer) log error using the child path (if defined using `addForm()`)
1088
+ - fix(graphql) Fix pod error in JSON format, before parsing it (e.g. Oracle can return error on multiple lines)
1089
+ - fix(nav-actions-column): Use `OnPush` changeDetection
1090
+ - fix(app-form-field): Emit `(keyup.enter)` event, when field's type is `double`
1091
+
1092
+ # 18.0.5
1093
+
1094
+ - enh(mat-autocomplete-field):
1095
+ - Change type of `MatAutocompleteFieldConfig.suggestFn` to use SuggestFn<T, F> (allow to pass more options - e.g. used to resolve entity in AppPropertiesUtils)
1096
+ - Add `@Input() label`
1097
+ - Add `@Input() hideRequiredMarker`
1098
+ - enh(app-form-field):
1099
+ - Add `@Input() hideRequiredMarker`
1100
+ - Fix the style when readonly and type `enum`
1101
+ - interface `FormFieldDefinition`: Add property `serializeAttribute?: string` (instead of using autocomplete.filer.joinAttribute)
1102
+ - add a static function `FormFieldDefinitionUtils.prepareDefinitions()` to resolve enum values, by `InjectionToken`
1103
+ - enh(app-properties-form):
1104
+ - Entity/Entities are now resolved from helper class AppPropertiesUtils
1105
+ - Allow to change add button title
1106
+ - Resolve enum item, when using InjectionToken for values
1107
+ - enh(shared) Add decorators `@RxStateRegister()` `@RxStateSelect()` and `@RxStateProperty()` to connect property to a `RxState`
1108
+ - fix(properties-utils): Add `opts?: {keepOrphan?: boolean}` to `AppPropertiesUtils.arrayFromObject` to be able to remove property without definition (`keepOrphan` is `true` by default)
1109
+ - fix(token-table): Fix error when no scopes defined (InjectToken `APP_USER_TOKEN_SCOPES` should be optional)
1110
+
1111
+ # 18.0.6
1112
+
1113
+ - fix(scss): set flex-wrap to nowrap
1114
+ - enh(autocomplete-test): add test case with a button
1115
+ - fix(logout) Logout should be done AFTER home redirection, because of cache clearing - see issue #5
1116
+
1117
+ # 18.0.7
1118
+
1119
+ - fix(hotkeys) Fix default platform control key ('meta' on iOS)
1120
+
1121
+ # 18.0.8
1122
+
1123
+ - fix(hotkeys) Avoid to open many help modal
1124
+ - fix(hotkeys) Skip open help modal, if nothing to display
1125
+ - fix(form-buttons-bar) Fix shortcuts for iOS
1126
+ - fix(modal-toolbar) Fix shortcut for iOS
1127
+
1128
+ # 18.0.9
1129
+
1130
+ - fix(mat-latlong-field) Mark control as dirty, when text control changed
1131
+ - fix(about) Fix missing markdown module, to display config description
1132
+ - enh(about) Allow to override the "report an issue" link, using a config option `sumaris.reportIssue.url`
1133
+
1134
+ # 18.0.10
1135
+
1136
+ - enh(utils) Add static functions `isFirefox()`, `isSafari()` and `isEdge()` to test user agent
1137
+ - enh(utils) Add static functions `EntityUtils.collectIds()` and `EntityUtils.splitById()`
1138
+ - fix(utils) Mark function `EntityUtils.collectById()` as deprecated (in flavor of `EntityUtils.splitById()`)
1139
+
1140
+ # 18.1.0
1141
+
1142
+ - enh(deps) Upgrade to angular 18.2.11 and other deps
1143
+ - fix(deps) move maildev library into dev dependencies
1144
+
1145
+ # 18.1.1
1146
+
1147
+ - enh(deps) Update angular-eslint to 18.4.0
1148
+
1149
+ # 18.1.2
1150
+
1151
+ - enh(deps) Revert to Ionic 7.8.6
1152
+
1153
+ # 18.1.3
1154
+
1155
+ - fix(settings) Add static function `isOnFieldMode()`
1156
+ - fix(menu) Make unpinned menu works, when reload app (F5) with a pinned menu
1157
+
1158
+ # 18.1.4
1159
+
1160
+ - fix(tab) Keep default tab label style (e.g. min-width) when stretch tabs is enabled
1161
+ - fix(tab) Reduce tab label padding, on small screen
1162
+
1163
+ # 18.1.7
1164
+
1165
+ - enh(AppFormArray) Add `clone()` function
1166
+
1167
+ # 18.2.0
1168
+
1169
+ - enh(base-entity-service) Allow opts.toEntity to be a function (e.g. to be able to transform each element, also when fetching more items)
1170
+ - fix(graphql-service) Allow `opts.update` to use new Apollo type `MutationUpdaterFunction` (type `MutationUpdaterFn` is deprecated)
1171
+
1172
+ # 18.2.6
1173
+
1174
+ - fix(autocomplete-field) Fix arrow drop icon position, when mobile
1175
+ - fix(autocomplete-field) Use desktop arrow drop icon, when multiple and desktop
1176
+ - fix(BaseEntityService) simplify functions `fromObject()` and `fromObjects()` (move `toEntity` argument into `options`)
1177
+ - enh(services) Allow `suggestFromArray()` to search using `?` as wildcard (=match one character) in the search text
1178
+ - enh(HighlightPipe) Allow to use the character `?` as wildcard (=match one character) in the search text
1179
+ - enh(functions) Allow `suggestFromStringArray()` to search using `?` as wildcard (=match one character) in the search text
1180
+ - enh(shared) New helper class `RegExpUtils`
1181
+
1182
+ # 18.2.7
1183
+
1184
+ - enh(autocomplete-field) Add `@Input() selectInputContentOnFocusDelay` - workaround when input text selection is overridden by another event (e.g. see in SUMARiS, in the calendar component)
1185
+
1186
+ # 18.2.9
1187
+
1188
+ - enh(autocomplete-field): Add `@Input() reloadItemsOnFocus` : Reload items when focused, necessary if filtered items depends on an external source (e.g. see in SUMARiS, in the calendar component)
1189
+
1190
+ # 18.2.11
1191
+
1192
+ - enh(DateUtils): Add `DateUtils.diffAbs()` to compute duration between two dates
1193
+
1194
+ # 18.2.19
1195
+
1196
+ - enh(timepicker) MatDateTime : Migrate timepicker to new library Ngx Mat TimePicker (fix animation, cancel button, Angular 17 compatibility, etc.)
1197
+
1198
+ # 18.2.21
1199
+
1200
+ - enh(functions) Rename `selectInputContent` into `selectInputContentFromEvent`, and make `selectInputContent` that only use an `<input>` as argument
1201
+ - enh(autocomplete-field) Add `@Input() clearInvalidValueOnBlur: boolean` to reset the field when typing invalid search text (no match or no many matches)
1202
+ - fix(swipe-field) Fix swiper previous/next arrows
1203
+
1204
+ # 18.2.23
1205
+
1206
+ - enh(validators) add option skipIfNoTime to dateRange
1207
+
1208
+ # 18.2.24
1209
+
1210
+ - enh(pipe) add new pipe `isValidDate` with option `requiredTime` (to test date with noTime flag)
1211
+
1212
+ # 18.2.26
1213
+
1214
+ - enh(select-peer-modal) Allow to search on peers modal
1215
+ - enh(select-peer-modal) Allow to select peer by features (aka programs) - should set `enableSelectPeerByFeature: true` in the environment token (disabled by default)
1216
+
1217
+ # 18.2.28
1218
+
1219
+ - fix(mat-boolean-field) Small refactoring + simplify blur detection, using standard Angular outputs
1220
+ - enh(mat-latlong-field) Refactor the component, to use separate inputs (instead of using Maskito)
1221
+ - fix(entity-store) setEntities() should mark all entities as dirty, when id mode is enabled (because an optimization in `persist()` that skip pristine entities)
1222
+
1223
+ # 18.2.29
1224
+
1225
+ - enh(validators) add opts to dateMaxDuration to skip date with NoTime
1226
+ - fix(mat-boolean-field) Fix buttons layout (padding) to be same as sumaris QV pmfm buttons
1227
+
1228
+ # 18.2.30
1229
+
1230
+ - fix(forms) Fix error `TypeError: Cannot read properties of undefined (reading 'setControlEnabled')`
1231
+
1232
+ # 18.2.31
1233
+
1234
+ - fix(mat-latlong-field) Prevent NaN on component initialization
1235
+
1236
+ # 18.2.32
1237
+
1238
+ - fix(mat-latlong-field) Fix unit symbol font color
1239
+
1240
+ # 18.2.33
1241
+
1242
+ - enh(ReferentialUtils) add static function `ReferentialUtils.isNotDisabled()`
1243
+
1244
+ # 18.3.0
1245
+
1246
+ - fix(entity-editor) Fix page reload, when changing tab after the first save
1247
+
1248
+ # 18.3.9
1249
+
1250
+ - fix(image-gallery) add a padding at bottom, for ios
1251
+ - enh(android) Upgrade compileSdkVersion to API 34 (required by the Google Play Store)
1252
+ - enh(theme) Add css class 'visible-xxs'
1253
+ - enh(dateDiffDuration) Add an option `opts.unit` to convert into a particular unit. If not defined, result will be like `x days HH:MM`
1254
+
1255
+ # 18.3.16
1256
+
1257
+ - fix(AppFormUtils) `disableControl()` now disable without reset value
1258
+ - enh(AppFormUtils) Add `disableAndClearControl()` that can disable then clear the control
1259
+
1260
+ # 18.3.17
1261
+
1262
+ - fix(mat-chip-field) fix issue sumaris-app#844
1263
+
1264
+ # 18.3.18
1265
+
1266
+ - fix(mat-*-field) Avoid to display 'false' as input placeholder, when floatLabel="never"
1267
+
1268
+ # 18.3.19
1269
+
1270
+ - fix(mat-latlong-field) Fix height in theme.scss (Need to remove one extra pixel, because of the sign that use a mat-select)
1271
+
1272
+ # 18.3.20
1273
+
1274
+ - enh(directive) Add new directive to avoid prevent double click: Simply replace `(click)=...` by `(throttledClick)=...`
1275
+
1276
+ # 18.3.21
1277
+
1278
+ - fix(table) Add a `@Input() openRowThrottleTime = 800` to prevent double click to open a row (see issue sumaris-app#864)
1279
+
1280
+ # 18.3.22
1281
+
1282
+ - fix(async-table) Add a `@Input() openRowThrottleTime = 800` to prevent double click to open a row
1283
+
1284
+ # 18.3.24
1285
+
1286
+ - fix(geolocation) Do not use Capacitor plugin, when using without capacitor
1287
+
1288
+ # 18.3.25
1289
+
1290
+ - fix(platform) Fix infinite loop on auto reload, when new version detected at startup (allow version using 'alpha', 'beta' or 'rc')
1291
+
1292
+ # 18.3.26
1293
+
1294
+ - fix(timepicker) Increase max-width for small screens
1295
+
1296
+ # 18.3.27
1297
+
1298
+ - fix(table) Use SortDirection type, for getter sortDirection
1299
+ - fix(async-table) Use SortDirection type, for getter sortDirection
1300
+
1301
+ # 18.4.0
1302
+
1303
+ - enh(mat-latlong-field) Refactoring component, to use distinct `<input>`
1304
+
1305
+ # 18.4.4
1306
+
1307
+ - enh(settings) Add a button to access to the user account
1308
+ - enh(menu) Change my account button color, when account page is open (add a 'selected' class, like for a selected menu item)
1309
+
1310
+ # 18.5.0
1311
+
1312
+ - enh(capacitor) Migrate to capacitor 6
1313
+ - enh(deps) Migrate to Network plugin
1314
+ - fix(properties-form) Selected option not visible, on mobile device - fix #16
1315
+ - fix(settings) Refresh peerUrl control validation, when force offline
1316
+ - fix(settings) Remove the help icon on small screen, on the 'My account' link
1317
+ - enh(install-upgrade-card) Add installation links for electron (desktop)
1318
+ - fix(account) Disabled all forms/tables, when page disabled (offline)
1319
+ - enh(account) Display the offline card, when network is offline and the page disabled
1320
+
1321
+ # 18.5.1
1322
+
1323
+ - enh(account, settings) Avoid to quit or refresh the page, without saving (web browser)
1324
+
1325
+ # 18.5.4
1326
+
1327
+ - fix(entity-editor) Fix update route with tab params (URL was not updated sometimes)
1328
+
1329
+ # 18.5.5
1330
+
1331
+ - fix(audio) Avoid trying to use audio management, in iOS
1332
+ - enh(install-upgrade-card) Add a debug Input, to debug install link url
1333
+
1334
+ # 18.5.6
1335
+
1336
+ - fix(platform) Avoid error on status bar, in iOS
1337
+
1338
+ # 18.5.7
1339
+
1340
+ - fix(platform) Hide splash screen on macOS
1341
+ - enh(home) Add legal information by configuration
1342
+ - enh(help-modal) Add error management from markdown
1343
+
1344
+ # 18.5.8
1345
+
1346
+ - enh(home) Add privacy policy links (using environment property or config option)
1347
+
1348
+ # 18.5.10
1349
+
1350
+ - fix(theme) Auto enable dark mode (if allow) until the user change it in the settings page
1351
+
1352
+ # 18.5.11
1353
+
1354
+ - fix(settings) Merge properties from account into properties from local storage - see sumaris-app#897
1355
+
1356
+ # 18.6.0
1357
+
1358
+ - enh(pipes) Add `replace` pipe
1359
+ - enh(markdown) Rename `HelpModal` into `AppMarkdownModal`
1360
+ - enh(markdown) Add new markdown components, that allow navigation with markdown relative links
1361
+
1362
+ # 18.6.9
1363
+
1364
+ - enh(public_api) Expert `NetworkUtils` and `VersionUtils`
1365
+
1366
+ # 18.6.12
1367
+
1368
+ - fix(markdown) Fix link click
1369
+ - fix(theme) Set mat-expansion panel colors, to use ionic color
1370
+
1371
+ # 18.6.13
1372
+
1373
+ - enh(gallery): Allow to use textual button, instead of card button
1374
+ - fix(gallery): Keep the given input mode (auto set only if empty)
1375
+
1376
+ # 18.6.14
1377
+
1378
+ - fix(markdown) Fix link click (avoid router resolution if target is a markdown file)
1379
+
1380
+ # 18.6.15
1381
+
1382
+ - fix(table) Avoid subscript part of a field, to be clicked, in table (event when row is disabled)
1383
+
1384
+ # 18.6.16
1385
+
1386
+ - enh(properties-form) Add `keyPanelClass` and `valuePanelClass`
1387
+
1388
+ # 18.6.19
1389
+
1390
+ - fix(autocomplete-field) Avoid too many blur events - see issue sumaris-app#837
1391
+
1392
+ # 18.6.22
1393
+
1394
+ - enh(styles) Avoid use selection of tab labels
1395
+
1396
+ # 18.6.23
1397
+
1398
+ - enh(PlatformService) Add `markAsBusy()` and `markAsNotBusy()` to display a backdrop (e.g. from the app.component.ts)
1399
+
1400
+ # 18.6.25
1401
+
1402
+ - enh(PlatformService) Make `showToast()` public (instead of protected)
1403
+
1404
+ # 18.6.26
1405
+
1406
+ - enh(PlatformService) Add `closeToast(id: number)`
1407
+
1408
+ # 18.6.27
1409
+
1410
+ - enh(pipes) Add pipe `arrayDistinct`
1411
+
1412
+ # 18.6.28
1413
+
1414
+ - enh(PrintService) Add `?print-id=` into created iframe URL
1415
+ - enh(PrintService) Add function `getJobId(url?: string)` to retrieve the Job ID of the given URL
1416
+
1417
+ # 18.6.33
1418
+
1419
+ - enh(PrintService) Add function `isPrintingUrl(url?: string, queryParam: string = 'print-id')` to known if a URL is for printing
1420
+
1421
+ # 18.6.36
1422
+
1423
+ - enh(pipes) Add pipes `truncText` and `truncHtml`
1424
+
1425
+ # 18.6.37
1426
+
1427
+ - enh(SharedValidators) Add new validators `SharedValidators.validDateAllowNoTime` and `SharedValidators.validDateTime(requiredTime = true)`
1428
+ - fix(SharedValidators) Make sure `SharedValidators.validDate` failed when no time set
1429
+ - fix(mat-date-time) MatDateTime should have an error, when no time
1430
+
1431
+ # 18.6.39
1432
+
1433
+ - enh(pipes) Add some pipes for observables : `firstTrue`, `firstFalse`, `first`
1434
+
1435
+ # 18.6.42
1436
+
1437
+ - fix(theme) Redirect CSS variables `--mat-sidenav-*` to theme variables `--ion-*` (need for dark theme)
1438
+
1439
+ # 18.6.45
1440
+
1441
+ - enh(directive): Add a workaround for directive `cdkTextareaAutosize` to fix scroll behavior (see issue sumaris-app#950)
1442
+
1443
+ # 18.6.46
1444
+
1445
+ - fix(home) Hide the print icon when mobile, in the markdown modal (e.g. legacy info)
1446
+
1447
+ # 18.6.50
1448
+
1449
+ - fix(autocomplete-field) Avoid to display a suggest result, when a newer call is running
1450
+
1451
+ # 18.6.51
1452
+
1453
+ - fix(toast) Fix info/warning color, for dark theme
1454
+ - fix(toast) Use text color for button color (can be override in app's custom theme)
1455
+
1456
+ # 18.6.56
1457
+
1458
+ - fix(menu) Refresh menu, when logout after a pod changed
1459
+
1460
+ # 18.6.57
1461
+
1462
+ - fix(rx-state) Merge annotations from sumaris-app shared annotation
1463
+
1464
+ # 18.6.58
1465
+
1466
+ - enh(EntityUtils) In functions `EntityUtils.isEmpty()` and `EntityUtils.isNotEmpty()`: the second argument `checkAttribute` is now 'id' by default
1467
+ - enh(EntityUtils) Add `EntityUtils.hasNilId()`
1468
+
1469
+ # 18.6.59
1470
+
1471
+ - enh(EntityUtils) Add `EntityUtils.findById(items: E[], id: ID)`
1472
+
1473
+ # 18.6.60
1474
+
1475
+ - fix(toast) Add a default anchor to app-toolbar
1476
+
1477
+ # 18.6.61
1478
+
1479
+ - enh(DateUtils) add `durationToString()` and change duration pipe
1480
+
1481
+ # 18.6.62
1482
+
1483
+ - fix(toast) Add default icon when `options.type` is `warning` and `error`
1484
+
1485
+ # 18.6.63
1486
+
1487
+ - fix(autocomplete) Fix `class="min-width-medium"` option alignment - fix issue sumaris-app#943
1488
+
1489
+ # 18.6.65
1490
+
1491
+ - fix(theme) Fix timepicker modal color, for dark mode
1492
+
1493
+ # 18.6.66
1494
+
1495
+ - enh(home) Add a dark theme toggle button (is dark mode enable)
1496
+
1497
+ # 18.6.69
1498
+
1499
+ - enh(users) Add compact rows mode
1500
+ - enh(users) Add columns updateDate and creationDate
1501
+ - enh(users) Add a download to CSV button
1502
+ - fix(deps) Replace deprecated @ionic-native by @awesome-cordova-plugins
1503
+
1504
+ # 18.6.71
1505
+
1506
+ - fix(latlong) Remove required validator on sub controls, required is false
1507
+
1508
+ # 18.7.0
1509
+
1510
+ - enh(account) Save account settings with only configured keys
1511
+ - fix(mat-duration) Change the DEFAULT_MAX_DECIMALS to 7 and use DateUtils.durationToString() to get value
1512
+
1513
+ # 18.7.2
1514
+
1515
+ - fix(mat-duration) component emit dirty on writing
1516
+
1517
+ # 18.7.4
1518
+
1519
+ - enh(pipes) Add `RoundPipe`, Add parameter on `round` function
1520
+ - fix(mat-duration) component emit valid and dirty
1521
+ - enh(users) display label for organization in displayed columns
1522
+ - enh(actions-column) Add input `cellTemplateStart`
1523
+ - fix(mat-chips-field) Show the required marker, when required=true
1524
+
1525
+ # 18.7.5
1526
+
1527
+ - fix(AppFormContainer, AppEditor) Add `enabledSubject` observable
1528
+
1529
+ # 18.7.7
1530
+
1531
+ - enh(type) Add a new type `Observed<T>` to publish all properties
1532
+
1533
+ # 18.7.8
1534
+
1535
+ - enh(ComponentDirtyGuard, CanLeave) Add function `deactivate()`
1536
+
1537
+ # 18.7.9
1538
+
1539
+ - enh(ImageGallery) Add `@Input() cardTemplate` to override the default card template
1540
+
1541
+ # 18.7.10
1542
+
1543
+ - enh(table, async-table) Do not clear selection inside `clickRow()`, but only in `openRow()` before navigating to detail
1544
+
1545
+ # 18.7.11
1546
+
1547
+ - enh(table, async-table) Add `@Output() onClickRow`
1548
+
1549
+ # 18.7.12
1550
+
1551
+ - enh(animation) Add `expansionAnimation`
1552
+
1553
+ # 18.7.13
1554
+
1555
+ - fix(table, async-table) Don't threat undefined value emitted by `loadingSubject`
1556
+
1557
+ # 18.7.14
1558
+
1559
+ - enh(image-gallery) Open image URL using q query params (e.g. `?size=<large|medium|small>` - params name and values can be configured by inputs)
1560
+
1561
+ # 18.7.17
1562
+
1563
+ - fix(home) Inverse dark theme icon
1564
+ - fix(pipes) Allow selection pipes for `AppTable` and `AppAsyncTable`
1565
+
1566
+ # 18.7.19
1567
+
1568
+ - enh(functions) Add function `interpolateString` to bind a message using given parameters
1569
+
1570
+ # 18.7.20
1571
+
1572
+ - enh(autocomplete-field) Allow to display favorites items in the dropdown panel, by using `@Input() favoriteItems: any[]`
1573
+ - fix(functions) Fix runtime error in function `interpolateString`
1574
+
1575
+ # 18.7.20
1576
+
1577
+ - enh(autocomplete-field) Allow to toggle favorite
1578
+
1579
+ # 18.7.24
1580
+
1581
+ - fix(autocomplete-field) Avoid to display 'null' as field title (on mouse over)
1582
+ - fix(autocomplete-field) Keep the favorite column visible, when favoriteItems is empty but `toggleFavorite` output is observed
1583
+
1584
+ # 18.7.25
1585
+
1586
+ - enh(autocomplete-field) Add `@Output() openedChange: EventEmitter<boolean>` to listen panel open/close state
1587
+
1588
+ # 18.7.27
1589
+
1590
+ - enh(mat-boolean-field) Add `@Input() autofocus`
1591
+
1592
+ # 18.7.29
1593
+
1594
+ - enh(pipes) Change pipe `asBoolean: <mapperFn>` to allow `mapperFn` to have more arguments (e.g. `| asBoolean: mapperFn: 'arg2'`)
1595
+
1596
+ # 18.8.0
1597
+
1598
+ - enh(auth-guard,home) Allow to define a custom `defaultRoute` in `Environment`
1599
+
1600
+ # 18.8.3
1601
+
1602
+ - enh(image-service) Add more options to the `add()` function (e.g. `source: 'PROMPT'|'CAMERA'|'GALLERY'`)
1603
+
1604
+ # 18.8.8
1605
+
1606
+ - fix(form) `AppForm.getFormError()` now uses the provided form or this.form
1607
+ - fix(table.pipes) Fix error when table's datasource subscription, when table not found (e.g. on pipe `isAllSelected`)
1608
+
1609
+ # 18.8.10
1610
+
1611
+ - fix(autocomplete-field) Fix error in `reloadItems()` when mobile but matSelect is not used
1612
+
1613
+ # 18.8.11
1614
+
1615
+ - enh(types) Add type `OmitFunctions` to get only properties of a class, without functions (e.g. from an Entity class)
1616
+
1617
+ # 18.8.15
1618
+
1619
+ - enh(EntityUtils) Use more precise parametrized types in function `EntityUtils.cleanIdAndUpdateDate`
1620
+
1621
+ # 18.8.16
1622
+
1623
+ - enh(EntityUtils) Add function `EntityUtils.fromObject(source, dataType)`
1624
+
1625
+ # 18.8.17
1626
+
1627
+ - enh(file.utils) In function `FileUtils.writeTextToFile` set attributes `lastModifiedDate` and `filename` in the generated Blob object
1628
+
1629
+ # 18.8.20
1630
+
1631
+ - fix(pipes) Fix `mapGet` pipe to return `undefined` (or `defaultValue`) instead of `null`, when no input value, or no key.
1632
+ This is important, to have same behavior as `propertyGet` pipe
1633
+ - enh(functions) Add `numberOrNilAttribute` that allow `undefined|null` input (without convert into `NaN`)
1634
+
1635
+ # 18.8.21
1636
+
1637
+ - fix(functions) Fix `underscoreToChangeCase()`
1638
+ - e.g. `underscoreToChangeCase('my_property')` => `myProperty` instead of `my,Property`
1639
+ - Add unit test, to have same behavior as the Java implementation (SUMARiS Pod)
1640
+
1641
+ # 18.8.23
1642
+
1643
+ - fix(table, async-table) Fix duplicateRows() to allow `skipProperties` on complex paths
1644
+ - fix(table, async-table) Fix duplicateRows() to use deep clone (using `row.cloneData()` instead of `{...row.currentData}`)
1645
+
1646
+ # 18.8.24
1647
+
1648
+ - fix(table, async-table) duplicateRows() - rename `options.skipProperties` into `options.excludedProperties`
1649
+ - enh(table, async-table) duplicateRows() - add `options.includedProperties`
1650
+ - enh(csv-utils) Add more options to CsvUtils.exportToCsv() (e.g. `options.includedProperties`, `options.excludedProperties`)
1651
+
1652
+ # 18.8.26
1653
+
1654
+ - enh(image-gallery) Add `@Input() showAddToolbarButton: boolean`
1655
+
1656
+ # 18.9.0
1657
+
1658
+ - enh(deps) Upgrade to `ngx-material-table@18.0.0` (build for Angular 18)
1659
+ - enh(functions) Add `Beans.clone()` for deep cloning a JS object
1660
+
1661
+ # 18.9.1
1662
+
1663
+ - enh(EntitiesTableDataSource) Add more options in function `waitIdle(opts: number | ({ debounceTimeMs?: number } & FirstOptions))`
1664
+ - enh(IEntitiesService) Add readonly property `defaultFetchPolicy: WatchQueryFetchPolicy` (need by `EntitiesTableDataSource.waitIdle()`)
1665
+
1666
+ # 18.9.2
1667
+
1668
+ - fix(EntitiesTableDataSource) Fix function `waitIdle()`
1669
+ - fix(EntitiesTableDataSource) Remove some deprecated feature: `close()` and `serviceOptions`
1670
+
1671
+ # 18.9.3
1672
+
1673
+ - fix(AppTable, AppAsyncTable) Make sure to call table.markAsDirty() when the editing row is dirty
1674
+
1675
+ # 18.9.4
1676
+
1677
+ - fix(MatBooleanField) Fix alignment when floatLabel="never", on styles 'checkbox' and 'button'
1678
+ - fix(MatBooleanField) Exclude more blur internal events (e.g. when the hidden input is the target)
1679
+ - fix(AppFormField) Make sure to pass readonly input to all internal input/field (was ignored in style 'enums' and 'color')
1680
+
1681
+ # 18.9.5
1682
+
1683
+ - fix(functions) Fix `round()` when passing a string value, instead of a number (avoid to return `NaN`)
1684
+
1685
+ # 18.9.6
1686
+
1687
+ - enh(pipes) Add `MapPipe` to convert an object into another (e.g. `object | map: converToSomething` or `object$ | map: converToSomething | async`)
1688
+
1689
+ # 18.9.7
1690
+
1691
+ - fix(platform-service) Avoid toggling dark mode, when window's media match 'print'
1692
+
1693
+ # 18.10.0
1694
+
1695
+ - enh(deps) Upgrade to ngx-material-table@18.0.1 (allow to create new row with insertAt=0)
1696
+
1697
+ # 18.10.1
1698
+
1699
+ - fix(theme) Avoid a add the dark CSS class, when on screen media
1700
+
1701
+ # 18.10.2
1702
+
1703
+ - fix(PersonUtils) `PersonUtils.personToString()` should always display lastname then firstName (even when `opts.withDepartment=true`)
1704
+
1705
+ # 18.10.3
1706
+
1707
+ - fix(GraphqlService) Make sure cache data is an array, before trying to update it (to avoid console error when cache data has been corrupted)
1708
+
1709
+ # 18.10.4
1710
+
1711
+ - fix(GraphqlService) Fix addManyToQueryCache() when cacheable query result size exceed (cached data were corrupted when trying to update the cached total)
1712
+
1713
+ # 18.10.7
1714
+
1715
+ - fix(autocomplete-field) Add `@Input() colSizes = [undefined, 'auto']` to fix layout when using `matAfter`
1716
+
1717
+ # 18.10.8
1718
+
1719
+ - fix(chips-field) Add `@Input() colSizes = [undefined, 'auto']` to fix layout when using `matAfter`
1720
+
1721
+ # 18.10.11
1722
+
1723
+ - enh(array.pipe) Add `arrayFindByProperty` pipe
1724
+
1725
+ # 18.10.12
1726
+
1727
+ - enh(table) Add a setter for `sortActive` property
1728
+
1729
+ # 18.10.13
1730
+
1731
+ - enh(array.pipe) Add arraySort pipe
1732
+
1733
+ # 18.10.14
1734
+
1735
+ - enh(functions) Add function `formatNumber(value: number: opts): string`
1736
+
1737
+ # 18.10.22
1738
+
1739
+ - enh(SharedFormGroupValidators) Add more options to `requiredIf` (allow to set the `isEmpty` function)
1740
+
1741
+ # 18.10.23
1742
+
1743
+ - fix(mat-chips-field) Fix error color
1744
+
1745
+ # 18.10.25
1746
+
1747
+ - enh(arrays.pipe.ts) move SplitArrayInChunksPipe from sumaris to sumaris-ngx-component
1748
+ - enh(function.ts) add utils function to split array in chunks
1749
+
1750
+ # 18.10.28
1751
+
1752
+ - enh(gallery) Allow to pass options to `gallery.add()` (e.g. `{multiple: true; autoHideDropArea: true}`)
1753
+
1754
+ # 18.11.0
1755
+
1756
+ - fix(inputs) `canHaveFocus()`: rename option `excludeEmptyInput` into `isEmpty` (confusing naming)
1757
+ - enh(inputs) `canHaveFocus()`: add `isNotEmpty` option
1758
+
1759
+ # 18.12.2
1760
+
1761
+ - enh(MapPipe) Allow to pass arguments to the `map` pipe (e.g. `value | map: converToSomething: 'arg2'` will call `converToSomething(value, 'arg2'`)
1762
+
1763
+ # 18.12.3
1764
+
1765
+ - enh(AppTable, AppAsyncTable) FUnction `trackFn()` can now return `any` (instead of `number`) - like the official Angular `TrackByFunction`
1766
+
1767
+ # 18.12.4
1768
+
1769
+ - enh(deps) Fix version of webpack
1770
+ - enh(deps) Upgrade ngx-material-table into 18.0.4
1771
+
1772
+ # 18.12.5
1773
+
1774
+ - enh(functions) Add function `UrlUtils.appendQueryParams()` to append q queryParams (as a map) to an url
1775
+
1776
+ # 18.12.6
1777
+
1778
+ - enh(functions) Allow `UrlUtils.appendQueryParams()` to get url as `string | any[]`
1779
+
1780
+ # 18.12.7
1781
+
1782
+ - enh(forms) Add `AppFormUtils.setFormErrors()` to apply errors into a form group and it children (inverse function as `getFormErrors()`))
1783
+ - enh(forms) Allow `AppFormUtils.getControlFromPath()` to works with any control (FormGroup, FormArray or simple control)
1784
+
1785
+ # 18.12.8
1786
+
1787
+ - enh(tree-item-entity) Add `TreeItemEntityUtils.fromObjectArrayAsTrees()` to convert array of objects, into trees (return root items)
1788
+
1789
+ # 18.12.11
1790
+
1791
+ - enh(entities-table-datasource) When saving, do not call `markAsLoading()`
1792
+
1793
+ # 18.12.12
1794
+
1795
+ - fix(form-container) Avoid to add a child form twice (add a test before adding a child form)
1796
+
1797
+ # 18.12.13
1798
+
1799
+ - fix(AppTable, AppAsyncTable) When press 'escape' on an edited row will cancel row, if the row is still pristine, instead of trying to confirm the row (see `escapeEditingRow()`)
1800
+
1801
+ # 18.13.0
1802
+
1803
+ - enh(home) Allow to show notification icons, in the home page, using a new APP_HOME_CONFIG token
1804
+ - enh(user-event) Add a modal to show notifications (e.g. for mobile)
1805
+
1806
+ # 18.14.15
1807
+
1808
+ - enh(network) Add fetch function to load JSON file
1809
+ - enh(social) Add a feed component, to display news from a service (e.g. Json Feed or Discourse)
1810
+
1811
+ # 18.15.0
1812
+
1813
+ - enh(pipes) Add pipe `arrayMap` to transform each map's items with a function
1814
+ - enh(pipes) Add pipe `mapTo` to transform any object with a function
1815
+
1816
+ # 18.15.3
1817
+ - enh(mat-date-time) Add @Output focus and blur event emitter
1818
+ - enh(mat-date-time) In desktop, attach the timepicker to the hour input
1819
+ - fix(mat-date-time) In desktop, attach the date picker at the end of the day input
1820
+
1821
+ # 18.16.0
1822
+
1823
+ - enh(about) Add pod and angular build date to identify the exact version running
1824
+
1825
+ # 18.16.3
1826
+
1827
+ - enh(network) Add version in HTTP headers: GraphQL and HTTP requests now include X-App-Version and X-App-Name headers for better server-side identification
1828
+
1829
+ # 18.16.4
1830
+
1831
+ - enh(environment) Add `Environment.sendAppVersionHeaders` property to enable `X-App-*` headers (false by default)
1832
+
1833
+ # 18.16.5
1834
+
1835
+ - enh(forms, form-array) Ar optional argument `options?: {emitEvent?: boolean}` to `removeValueInArray()`, `AppFormArray.removeAt()` (and other functions like `clearAt()`)
1836
+
1837
+ # 18.16.6
1838
+ - enh(shared) Add static function `truncateHtml(html, maxLength)`
1839
+ - enh(shared) Add new pipe `trancateHtml`
1840
+
1841
+ # 18.16.7
1842
+ - enh(graphql-service) Move connectionParams into the network service
1843
+ - enh(network-service) Add header `Authorization` when fetching resource on pod
1844
+
1845
+ # 18.16.8
1846
+
1847
+ - enh(feed) Allow to open feed details
1848
+ - enh(feed) Display content_text as Markdown, when no html found in the feed item
1849
+
1850
+ # 18.17.0
1851
+
1852
+ - enh(feed) Allow to edit/delete feed item, if user is the author or an admin
1853
+
1854
+ # 18.17.4
1855
+ - fix(table) Fix opening row details from the current route to ./{id} or ./new - see issue sumaris-app#1214
1856
+
1857
+ # 18.18.0
1858
+ - fix(LocalSettingsService) Call `LocalSettingsService.onChange` when calling `savePageSettings()`
1859
+ - enh(LocalSettingsService) Add a `LocalSettingsService.onStoredLocally` event emitter, when settings have been well stored locally
1860
+ - enh(AppPropertiesForm) Add a toolbar (hidden by default) with an options menu to import/export properties from/to a CSV file
1861
+
1862
+ # 18.18.1
1863
+ - enh(LocalSettingsService) Allow skipping onChange event on pages settings, with a new property `LocalSettingsOptions.skipEmitChangeKeys` (injection token)
1864
+
1865
+ # 18.18.2
1866
+ - fix(SCSS) Fix `.stack-modal` class
1867
+
1868
+ # 18.18.5
1869
+ - fix(types) Rename `Function` into `SimpleFunction` to avoid confusion with Typescript standard type `Function`
1870
+ - Old custom type `Function` still exists, but mark as `deprecacted`
1871
+ - enh(RxState) Add new type `Statefull<T>` to allow type check, when using `@RxStateProperty()` or `@RxStateSelect()`
1872
+ - fix(gallery) Add a call to `markForCheck()` when receiving new rows
1873
+
1874
+ # 18.18.6
1875
+ - fix(person) Fix `personToString()` when lastName or firstName is nil
1876
+
1877
+ # 18.18.8
1878
+ - Revert last 18.18.7 changes
1879
+
1880
+ # 18.18.9
1881
+ - enh(pipe) Add new pipe `dateFrom` to display delta with another date.
1882
+ Example: `<date> | dateFrom: <anotherDate>: opts`
1883
+
1884
+ # 18.18.10
1885
+ - enh(entity-service) Add typed options to `save()` and `delete()`
1886
+
1887
+ # 18.18.11
1888
+ - enh(entity-editor) Pass typed options to `save()` and `delete()`
1889
+
1890
+ # 18.18.11
1891
+ - fix(deps) Add the module `AppTextFormModule` into the `AppFormModule` (instead of the SharedModule)
1892
+
1893
+ # 18.18.14
1894
+ - enh(pipes) Allow pipe `arrayDistinct` to work with a property path (.e.g `property.subProperty`), and not only a simple property.
1895
+
1896
+ # 18.18.15
1897
+ - enh(pipes) Allow pipe `arraySort` to work with property paths (.e.g `property.subProperty` or `['propA', 'propB']`), and not only a compare function
1898
+
1899
+ # 18.18.16
1900
+ - enh(pipes) Add pipe `arraySlice` to get sub array
1901
+
1902
+ # 18.18.17
1903
+ - enh(form-field) Fix disabled when setting from `@Input`
1904
+
1905
+ # 18.18.18
1906
+ - enh(form-field) Allow to inject <mat-error> into a custom form field
1907
+
1908
+ # 18.18.23
1909
+ - fix(form-field) Fix unexpected behavior when overriding Input disabled (revert changes done in 18.18.17)
1910
+
1911
+ # 18.18.23-2
1912
+ - fix(date) Emit change when the field is cleared (`mat-date-field` & `mat-date-time-field`)
1913
+
1914
+ # 18.18.24
1915
+ - fix(pipes) Fix `isSingleSelection`
1916
+
1917
+ # 18.18.26
1918
+ - fix(mat-duration) Use input placeholder (instead of `COMMON.TIME`)
1919
+ - fix(mat-latlong) Make sure the default sign is used when no value is set (fix sumaris-app#1305)
1920
+
1921
+ # 18.18.27 - beta
1922
+ - enh(rx-state) Add new decorator `@RxStateOutput() property: Observable<R>` for output binding
1923
+
1924
+ # 18.18.38
1925
+ - enh(type) Replace all `declare type` by `type`
1926
+ - fix(rx-state) Fix `@RxStateOutput()` decorator
1927
+
1928
+ # 18.19.0
1929
+ - enh(form) Add `AppForm.markAsNotReady()`
1930
+ - enh(table) Add `AppTable.markAsNotReady()` and `AppAsyncTable.markAsNotReady()`
1931
+
1932
+ # 18.19.2
1933
+ - enh(image-gallery) CSS: Added sticky toolbar on scroll
1934
+
1935
+ # 18.19.2
1936
+ - enh(pipes) Add `referentialsToString(any[])`
1937
+
1938
+ # 18.19.4
1939
+ - enh(network) Add an option `peerFiler` to `NetworkService.showSelectPeerModal()` (e.g. to exclude the current peer)
1940
+
1941
+ # 18.19.5
1942
+ - fix(forms) When trying to resize an AppFormArray with allowEmptyArray=false, avoid infinite loop - closes [sumaris-app#1389](https://gitlab.ifremer.fr/sih-public/sumaris/sumaris-app/-/issues/1389)
1943
+
1944
+ # 18.19.7
1945
+ - enh(app-toolbar) Add a slot=title
1946
+ - enh(app-modal-toolbar) Add a slot=title
1947
+
1948
+ # 18.20.0
1949
+ - enh(menu) Allow badge on menu items
1950
+ - enh(home) Allow badge on home buttons
1951
+
1952
+ # 18.21.0
1953
+ - enh(BaseEntityService) Allow to refetch mutable watch queries, when deleting
1954
+
1955
+ # 18.21.3
1956
+ - fix(validators) `SharedFormGroupValidators.requiredIf` will now throw an exception if the control not exists (instead of an undefined property exception)
1957
+
1958
+ # 18.21.5
1959
+ - fix(GeoLocationUtils) rename GeoLocationUtils.computeDistanceInMiles into GeoLocationUtils.computeDistanceInNauticalMiles
1960
+
1961
+ # 18.21.7
1962
+ - fix(AccountService) Clean remote settings keys, before using it (fix issue sumaris-app#1458)
1963
+ - fix(AppTable) add a `takeUntil()` on the `datasource.watchAll()` observable
1964
+
1965
+ # 18.21.8
1966
+ - fix(AppTable, AppAsyncTable) Remove unused function `AppTable.startsWithUpperCase` (already exists as a static function)
1967
+
1968
+ # 18.21.10
1969
+ - enh(AppFormUtils) Add `AppFormUtils.setControlRequired(control, required)`
1970
+
1971
+ # 18.21.12
1972
+ - enh(types) Type `FilterFn<T>` now accept a second argument `index?: number` (useful when using inside a `array.filter()`)
1973
+
1974
+ # 18.21.13
1975
+ - fix(menu) set display on ion-item when has specific rules applied (e.g hidden-xs...)
1976
+
1977
+ # 18.21.14
1978
+ - fix(menu) Hide menu footer (about) on mobile device
1979
+
1980
+ # 18.22.0
1981
+ - enh(EntityFilter) Add logical combinators properties: `or`, `and` and `not`
1982
+
1983
+ # 18.22.5
1984
+ - enh(functions) Add utilities in `shared/functions.ts`:
1985
+ `compareValues`, `compareValuesDesc`, `propertyPathComparator`, `propertyComparator`, `propertiesPathComparator`, `multiPropertyComparator`
1986
+
1987
+ # 18.22.6
1988
+ - enh(functions) Change the third (optional) argument of `propertyComparator(key: string, direction, nullsAtFirst?: boolean)`.
1989
+ (remove `defaultValue`)
1990
+ - enh(functions) Change the third (optional) argument of `propertyPathComparator(key: string, direction, nullsAtFirst?: boolean)`.
1991
+ (remove `defaultValue`)
1992
+ - enh(functions) Change the third (optional) argument of `propertiesPathComparator(keys: string[], direction, nullsAtFirst?: boolean)`.
1993
+ (remove `defaultValues`)
1994
+
1995
+ # 18.22.7
1996
+ - fix(rx-state-decorators) Change naming convention of @RxStateOutput , to allow the suffix `Change` and not only `Changes`
1997
+
1998
+ # 18.22.8
1999
+ - enh(actions-column) Add `@Input() showPendingSPiner = true`
2000
+
2001
+ # 18.22.9
2002
+ - enh(table, async-table) Add options `{focusColumn?: string}` to `AppTable.confirmAndForward()` and `AppTable.confirmAndBackward()`
2003
+
2004
+ # 18.22.10
2005
+ - enh(table, async-table) Add options `{focusColumn?: string}` to `AppTable.confirmAndAdd()`
2006
+
2007
+ # 18.22.11
2008
+ - enh(functions) Allow `AppFormUtils.getControlFromPath()` to return null without error (add a new argument `failIfMissing: boolean = false`)
2009
+
2010
+ # 18.22.12
2011
+ - enh(types) Change type `SuggestFn<T, F, R>` (add the return type `R`)
2012
+
2013
+ # 18.22.12
2014
+ - enh(table, async-table) Add a getter: `get saving()`
2015
+
2016
+ # 18.22.14
2017
+ - enh(observables) Add utility function `firstPromise(Observable<T>): Promise<T>`
2018
+ - enh(StartableService,StartableObservableService) Add optional argument `options` to ready functions: `ready(options?: FirstOptions)`
2019
+
2020
+ # 18.22.15
2021
+ - enh(InMemoryDataService) Add `setOptions()` to allow to pass options after the constructor
2022
+
2023
+ # 18.22.16
2024
+ - enh(InMemoryDataService) Add `get visibleCount()` (to replace deprecated `get count()`)
2025
+
2026
+ # 18.22.17
2027
+ - enh(InMemoryDataService) Add `get totalCount()` ( = `visibleCount + hiddenCount`)
2028
+
2029
+ # 18.22.18
2030
+ - fix(forms) Fix `adaptValueToControl` to works with type controls (and not only with `UntypedFormGroup`, `UntypedFormArray`, and `UntypedFormControl`)
2031
+
2032
+ # 18.22.19
2033
+ - enh(async-table) Add `confirmAndUp()` ro enable navigation using event like `<input (keyup.arrowUp)="confirmAndUp(event, row)">`
2034
+
2035
+ # 18.22.21
2036
+ - enh(functions) Add utility function `toLoadData()` to extract data from a `LoadResult<T> | T[]` (e.g. from a `suggestFn` result type)
2037
+
2038
+ # 18.22.22
2039
+ - enh(table) Catch error on the dataSource.watchAll(), to be able to refresh the table after a graphql error
2040
+ - enh(table) Add options to emitRefresh() and doRefresh()
2041
+
2042
+ # 18.22.23
2043
+ - fix(form-error-adapter) Minor fix, when accessing to control error content
2044
+
2045
+ # 18.22.24
2046
+ - merge branche v18.18.x (changes of 18.18.23-2)
2047
+ - fix(date) Emit change when the field is cleared (`mat-date-field` & `mat-date-time-field`)
2048
+
2049
+ # 18.22.25
2050
+ - enh(dates) Add options to `fromDateISOString(value: any, options: {undefinedIfInvalid?: boolean; strict?: boolean; requiredTime?: boolean} = {undefinedIfInvalid: true, strict: false, requiredTime: false}`
2051
+ - enh(validators) SharedValidators.validDateTime will now detect invalid Moment date (e.g. parsing input string '0/0/0')
2052
+
2053
+ # 18.22.26
2054
+ - fix(mat-autocomplete-field) Avoid template error, when an item is null (when accessing the property 'classList')
2055
+
2056
+ # 18.22.27
2057
+ - fix(regexps) Revert changes in SPECIAL_CHARACTERS_REGEXP - reintroduce the last '/g' as string.replace(RegExp) is not stateful
2058
+
2059
+ # 18.22.28
2060
+ - enh(android) Upgrade to SDK API 35
2061
+ - fix(android) Fix StatusBar style, for Android 15
2062
+
2063
+ ## 18.23.1
2064
+
2065
+ - enh: Migration vers Capacitor 7
2066
+ - Mise à jour des dépendances `@capacitor/*` en version `~7.0.0`.
2067
+ - Android: `minSdkVersion` relevé à 24 (Capacitor 7).
2068
+ - Android: mise à jour de l'Android Gradle Plugin à `8.5.2` et du Gradle Wrapper à `8.7`.
2069
+ - Aucun changement fonctionnel attendu, mais un resync des plateformes est requis: `npm i && npx cap sync`.
2070
+ - enh(mobile) Fix edge-to-edge issue
2071
+
2072
+ # 18.23.3
2073
+ - fix(ios) Not need to call Edge2Edge plugin in iOS devices
2074
+
2075
+ # 18.23.11
2076
+ - fix(account) Manage additional field on type entities (e.g. a list of programs)
2077
+
2078
+ # 18.23.12
2079
+ - enh(account) Add avatar edition (enable by a config option)
2080
+
2081
+ # 18.23.14
2082
+ - enh(account-service) Add service options (new injection token), to be able to change graphql default queries
2083
+
2084
+ # 18.23.16
2085
+ - enh(entity-metadata-component) Fix avatar image background color
2086
+
2087
+ # 18.23.18
2088
+ - enh(entity-metadata-component) Increase text size of the recorder department, when recorder person is empty
2089
+
2090
+ # 18.23.19
2091
+ - fix(theme) Fix status style
2092
+
2093
+ # 18.23.20
2094
+ - fix(account-page) Cannot change the avatar when the network is offline
2095
+ - enh(account-page) Limit the avatar size to 200px (by default - can be changed by config option)
2096
+
2097
+ # 18.23.21
2098
+ - enh(platform-service) Add `PlatformService.addDeepLinkListener()` to manage App deep links (mobile app only)
2099
+
2100
+ # 18.23.26
2101
+ - enh(inputs) `focusNextInput()` ignore readonly input
2102
+
2103
+ # 18.23.27
2104
+ - fix(mat-chips-field) Set default `colSizes` if undefined
2105
+ - fix(mat-autocomplete-field) Set default `colSizes` if undefined
2106
+ - fix(mat-autocomplete-field) Simplify detection of `required` default value, using `control.hasValidator()`
2107
+
2108
+ # 18.23.28
2109
+ - fix(menu) Fix footer show/hide, depending on screen resolution, and not if mobile
2110
+
2111
+ # 18.23.29
2112
+ - fix(scss) Fix style in tables, for class `cdk-visssualy-hidden` on cell or footer-cell
2113
+
2114
+ # 18.23.30
2115
+ - enh(image-gallery) Add public function `setViewMode()`
2116
+
2117
+ # 18.23.31
2118
+ - enh(image-service) Mobile web: open camera by default, when `style` is undefined or `auto` (the Capacitor Camera plugin is now compatible with web)
2119
+
2120
+ # 18.23.33
2121
+ - enh(table) Add getters for `totalRowCount` and `visibleRowCount` properties (subclasses can override. e.g. to exclude divider rows)
2122
+ - enh(async-table) Add getters for `totalRowCount` and `visibleRowCount` properties (subclasses can override. e.g. to exclude divider rows)
2123
+
2124
+ # 18.23.34
2125
+ - enh(Resizable) Better usability
2126
+ - enh(cell-selection) Add cell selection service and directives
2127
+
2128
+ # 18.23.35
2129
+ - enh(validators) Add static function `SharedValidators.copyError(sourceCOntrol, targetControl, errorCode)`
2130
+
2131
+ # 18.23.37
2132
+ - enh(mat-chips-field) Add input `showChips` to allow hiding them
2133
+
2134
+ # 18.23.38
2135
+ - enh(table, async-table) Add option `messageKey` to `deleteRows()` and `askDeleteConfirmation()` to allow customizing the confirmation message
2136
+
2137
+ # 18.23.39
2138
+ - enh(table, async-table) Add option `messageKey` to `deleteSelection()` to allow customizing the confirmation message
2139
+
2140
+ # 18.23.41
2141
+ - enh(functions) Add static function `mergeObjectsWithoutUndefined` to merge object without undefined
2142
+
2143
+ # 18.23.42
2144
+ - fix(network-service) Fix error `Cannot read properties of null (reading 'url')` when watching peer$ when service if not ready yet
2145
+
2146
+ # 18.23.43
2147
+ - enh(functions) Add `collectByPropertyPath()` to split an array into a map of array, group by property path
2148
+
2149
+ # 18.23.45
2150
+ - fix(mat-autocomplete-field) Fix issue when control has been clear, but continue to show the old title
2151
+ - enh(mat-autocomplete-field) Add new outputs `arrowUp`, `arrowDown` and `enter`
2152
+ - enh(mat-date-time-field) Allow matSuffix into mat-date-time-field, and add inputs `hourMinWidth` and `hourMaxWidth` to set the width of the hour part
2153
+ - enh(tree-item-entity.model) Add static function `TreeItemEntityUtils.findById()`
2154
+
2155
+ # 18.23.47
2156
+ - enh(CanLeave) Add new argument `navigateForward` to function `CanLeave.deactivate(navigateForward: boolean)`. This allow to known if the navigation is forward or backward.
2157
+
2158
+ # 18.23.48
2159
+ - enh(functions) Add static function `assignSkipUndefined` to assign objects without undefined properties
2160
+
2161
+ # 18.23.50
2162
+ - enh(AutoTooltipDirective) Adding possibility to use MatTooltip with AutoTooltipDirective instead of title
2163
+ - enh(material) Add MatTooltip possibility for all components using `SHOW_TOOLTIP` injection token
2164
+
2165
+ # 18.23.53
2166
+ - enh(editor) add `opts.openTabIndex` to `saveIfDirtyAndConfirm()`
2167
+
2168
+ # 18.23.54
2169
+ - fix(ResizableDirective) use cursor position by the event to resize column (Mantis#69006)
2170
+
2171
+ # 18.23.55
2172
+ - enh(CellSelection) Refactoring service and directives. The CellIdentifierDirective can be used without a service.
2173
+
2174
+ # 18.23.56
2175
+ - enh(MatLatLongFieldInput) the pattern input changes will dynamically update the component
2176
+
2177
+ # 18.23.57
2178
+ - fix(ResizableDirective) Change width constraint
2179
+
2180
+ # 18.23.58
2181
+ - fix(FormErrorTranslator) when calling `translateError('message', 'A already translated string')` will now return `A already translated string`
2182
+
2183
+ ## 18.23.60
2184
+
2185
+ - enh(home): Allow injectable toolbar buttons via `APP_HOME_TOOLBAR_BUTTONS` token, with icon, title, color, and action support
2186
+ - enh(home): Filter toolbar buttons using `MenuItems.checkIfVisible()`, same as central page buttons (profile, config, login state)
2187
+
2188
+ ## 18.23.61
2189
+ - enh(home): Support badge display on injectable toolbar buttons via `matBadge` directive, using `MenuItem.$badge` and `$badgeColor`
2190
+ - enh(menu): Update `ifProperty` handling to support negation logic for configuration checks