@sumaris-net/ngx-components 2.7.3-rc59 → 2.7.3-rc60

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 (240) hide show
  1. package/esm2022/src/app/admin/admin-routing.module.mjs +4 -4
  2. package/esm2022/src/app/admin/admin.module.mjs +4 -4
  3. package/esm2022/src/app/admin/services/person.service.mjs +3 -3
  4. package/esm2022/src/app/admin/services/validator/person.validator.mjs +3 -3
  5. package/esm2022/src/app/admin/users/users.mjs +3 -3
  6. package/esm2022/src/app/admin/users/users.module.mjs +4 -4
  7. package/esm2022/src/app/core/about/about.modal.mjs +3 -3
  8. package/esm2022/src/app/core/about/about.module.mjs +4 -4
  9. package/esm2022/src/app/core/account/account.module.mjs +4 -4
  10. package/esm2022/src/app/core/account/account.page.mjs +3 -3
  11. package/esm2022/src/app/core/account/new-token.modal.mjs +3 -3
  12. package/esm2022/src/app/core/account/token.table.mjs +3 -3
  13. package/esm2022/src/app/core/auth/auth.form.mjs +3 -3
  14. package/esm2022/src/app/core/auth/auth.modal.mjs +3 -3
  15. package/esm2022/src/app/core/auth/auth.module.mjs +4 -4
  16. package/esm2022/src/app/core/core.module.mjs +4 -4
  17. package/esm2022/src/app/core/core.testing.module.mjs +4 -4
  18. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +3 -3
  19. package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +4 -4
  20. package/esm2022/src/app/core/form/entity/editor.class.mjs +6 -6
  21. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +3 -3
  22. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +3 -3
  23. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +3 -3
  24. package/esm2022/src/app/core/form/entity/entity.module.mjs +4 -4
  25. package/esm2022/src/app/core/form/form.class.mjs +3 -3
  26. package/esm2022/src/app/core/form/form.module.mjs +4 -4
  27. package/esm2022/src/app/core/form/list/list.form.mjs +3 -3
  28. package/esm2022/src/app/core/form/list/list.module.mjs +4 -4
  29. package/esm2022/src/app/core/form/properties/properties.form.mjs +3 -3
  30. package/esm2022/src/app/core/form/properties/properties.module.mjs +4 -4
  31. package/esm2022/src/app/core/form/properties/properties.table.mjs +6 -6
  32. package/esm2022/src/app/core/form/properties/property.validator.mjs +3 -3
  33. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +3 -3
  34. package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +4 -4
  35. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +3 -3
  36. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +4 -4
  37. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +3 -3
  38. package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +4 -4
  39. package/esm2022/src/app/core/graphql/graphql.module.mjs +4 -4
  40. package/esm2022/src/app/core/graphql/graphql.service.mjs +3 -3
  41. package/esm2022/src/app/core/home/home.mjs +3 -3
  42. package/esm2022/src/app/core/home/home.module.mjs +4 -4
  43. package/esm2022/src/app/core/icon/icon.component.mjs +3 -3
  44. package/esm2022/src/app/core/icon/icon.module.mjs +4 -4
  45. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +3 -3
  46. package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +4 -4
  47. package/esm2022/src/app/core/menu/menu.component.mjs +3 -3
  48. package/esm2022/src/app/core/menu/menu.module.mjs +4 -4
  49. package/esm2022/src/app/core/menu/menu.service.mjs +3 -3
  50. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +3 -3
  51. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +3 -3
  52. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +3 -3
  53. package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +4 -4
  54. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +3 -3
  55. package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +4 -4
  56. package/esm2022/src/app/core/peer/select-peer.modal.mjs +3 -3
  57. package/esm2022/src/app/core/peer/select-peer.module.mjs +4 -4
  58. package/esm2022/src/app/core/register/register-confirm.page.mjs +3 -3
  59. package/esm2022/src/app/core/register/register.form.mjs +3 -3
  60. package/esm2022/src/app/core/register/register.modal.mjs +3 -3
  61. package/esm2022/src/app/core/register/register.module.mjs +4 -4
  62. package/esm2022/src/app/core/services/account.service.mjs +3 -3
  63. package/esm2022/src/app/core/services/auth-guard.service.mjs +3 -3
  64. package/esm2022/src/app/core/services/base-entity-service.class.mjs +3 -3
  65. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +3 -3
  66. package/esm2022/src/app/core/services/config.service.mjs +3 -3
  67. package/esm2022/src/app/core/services/crypto.service.mjs +3 -3
  68. package/esm2022/src/app/core/services/local-settings.service.mjs +3 -3
  69. package/esm2022/src/app/core/services/network.service.mjs +3 -3
  70. package/esm2022/src/app/core/services/pipes/account.pipes.mjs +8 -8
  71. package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +4 -4
  72. package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +4 -4
  73. package/esm2022/src/app/core/services/pipes/pipes.module.mjs +4 -4
  74. package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +3 -3
  75. package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +8 -8
  76. package/esm2022/src/app/core/services/platform.service.mjs +3 -3
  77. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +3 -3
  78. package/esm2022/src/app/core/services/testing/referential.validator.mjs +3 -3
  79. package/esm2022/src/app/core/services/validator/account.validator.mjs +3 -3
  80. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +3 -3
  81. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +3 -3
  82. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +3 -3
  83. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +3 -3
  84. package/esm2022/src/app/core/settings/settings.module.mjs +4 -4
  85. package/esm2022/src/app/core/settings/settings.page.mjs +3 -3
  86. package/esm2022/src/app/core/table/actions-column.component.mjs +3 -3
  87. package/esm2022/src/app/core/table/async-table.class.mjs +3 -3
  88. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +3 -3
  89. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +3 -3
  90. package/esm2022/src/app/core/table/memory-table.class.mjs +3 -3
  91. package/esm2022/src/app/core/table/table-select-columns.component.mjs +3 -3
  92. package/esm2022/src/app/core/table/table.class.mjs +3 -3
  93. package/esm2022/src/app/core/table/table.module.mjs +4 -4
  94. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +3 -3
  95. package/esm2022/src/app/core/table/testing/table.testing.mjs +3 -3
  96. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +4 -4
  97. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +3 -3
  98. package/esm2022/src/app/core/table/testing/table2.testing.mjs +3 -3
  99. package/esm2022/src/app/shared/audio/audio.mjs +3 -3
  100. package/esm2022/src/app/shared/audio/audio.testing.mjs +3 -3
  101. package/esm2022/src/app/shared/audio/audio.testing.module.mjs +4 -4
  102. package/esm2022/src/app/shared/capacitor/keyboard.mjs +3 -3
  103. package/esm2022/src/app/shared/debug/debug.component.mjs +3 -3
  104. package/esm2022/src/app/shared/debug/debug.module.mjs +4 -4
  105. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +3 -3
  106. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +3 -3
  107. package/esm2022/src/app/shared/directives/directives.module.mjs +4 -4
  108. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +3 -3
  109. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +3 -3
  110. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +3 -3
  111. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +3 -3
  112. package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
  113. package/esm2022/src/app/shared/file/file.service.mjs +3 -3
  114. package/esm2022/src/app/shared/form/field.component.mjs +3 -3
  115. package/esm2022/src/app/shared/form/loading-spinner.mjs +3 -3
  116. package/esm2022/src/app/shared/gesture/gesture-config.mjs +3 -3
  117. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +3 -3
  118. package/esm2022/src/app/shared/help/help.modal.mjs +3 -3
  119. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +3 -3
  120. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +3 -3
  121. package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +4 -4
  122. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +3 -3
  123. package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +4 -4
  124. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +3 -3
  125. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +3 -3
  126. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +4 -4
  127. package/esm2022/src/app/shared/image/image.module.mjs +4 -4
  128. package/esm2022/src/app/shared/image/image.service.mjs +3 -3
  129. package/esm2022/src/app/shared/logging/logging-service.class.mjs +3 -3
  130. package/esm2022/src/app/shared/logging/logging-service.module.mjs +4 -4
  131. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +3 -3
  132. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +4 -4
  133. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +3 -3
  134. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +3 -3
  135. package/esm2022/src/app/shared/material/badge/badge.module.mjs +4 -4
  136. package/esm2022/src/app/shared/material/badge/badge.test.mjs +3 -3
  137. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +4 -4
  138. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +3 -3
  139. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +3 -3
  140. package/esm2022/src/app/shared/material/chips/chips.module.mjs +4 -4
  141. package/esm2022/src/app/shared/material/chips/material.chips.mjs +3 -3
  142. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +3 -3
  143. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +4 -4
  144. package/esm2022/src/app/shared/material/datetime/material.date.mjs +3 -3
  145. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +3 -3
  146. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +3 -3
  147. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +3 -3
  148. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +3 -3
  149. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +3 -3
  150. package/esm2022/src/app/shared/material/duration/duration.module.mjs +4 -4
  151. package/esm2022/src/app/shared/material/duration/material.duration.mjs +3 -3
  152. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +3 -3
  153. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +3 -3
  154. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +4 -4
  155. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +3 -3
  156. package/esm2022/src/app/shared/material/material.module.mjs +4 -4
  157. package/esm2022/src/app/shared/material/material.testing.module.mjs +4 -4
  158. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +3 -3
  159. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +3 -3
  160. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +3 -3
  161. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +4 -4
  162. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +3 -3
  163. package/esm2022/src/app/shared/material/testing/common.test.mjs +3 -3
  164. package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +3 -3
  165. package/esm2022/src/app/shared/material/text/text-form.component.mjs +3 -3
  166. package/esm2022/src/app/shared/material/text/text-form.module.mjs +4 -4
  167. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +3 -3
  168. package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +4 -4
  169. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +3 -3
  170. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +24 -24
  171. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +3 -3
  172. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +4 -4
  173. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +6 -6
  174. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +4 -4
  175. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +4 -4
  176. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +3 -3
  177. package/esm2022/src/app/shared/pipes/form.pipes.mjs +18 -18
  178. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +4 -4
  179. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +9 -9
  180. package/esm2022/src/app/shared/pipes/maps.pipe.mjs +12 -12
  181. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +3 -3
  182. package/esm2022/src/app/shared/pipes/math.pipes.mjs +12 -12
  183. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +3 -3
  184. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +4 -4
  185. package/esm2022/src/app/shared/pipes/pipes.module.mjs +4 -4
  186. package/esm2022/src/app/shared/pipes/property.pipes.mjs +7 -7
  187. package/esm2022/src/app/shared/pipes/string.pipes.mjs +30 -30
  188. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +8 -8
  189. package/esm2022/src/app/shared/pipes/types.pipes.mjs +12 -12
  190. package/esm2022/src/app/shared/rx-state.module.mjs +4 -4
  191. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +3 -3
  192. package/esm2022/src/app/shared/services/progress-bar.service.mjs +3 -3
  193. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +3 -3
  194. package/esm2022/src/app/shared/services/startable-service.class.mjs +3 -3
  195. package/esm2022/src/app/shared/services/translate-context.service.mjs +3 -3
  196. package/esm2022/src/app/shared/shared-routing.module.mjs +7 -7
  197. package/esm2022/src/app/shared/shared.module.mjs +4 -4
  198. package/esm2022/src/app/shared/shared.testing.module.mjs +4 -4
  199. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +3 -3
  200. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +4 -4
  201. package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +4 -4
  202. package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +4 -4
  203. package/esm2022/src/app/shared/storage/storage.service.mjs +3 -3
  204. package/esm2022/src/app/shared/testing/observable.test.mjs +3 -3
  205. package/esm2022/src/app/shared/testing/tests.page.mjs +3 -3
  206. package/esm2022/src/app/shared/toast/toast.testing.mjs +3 -3
  207. package/esm2022/src/app/shared/toast/toast.testing.module.mjs +4 -4
  208. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +3 -3
  209. package/esm2022/src/app/shared/toolbar/toolbar.mjs +3 -3
  210. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +4 -4
  211. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +3 -3
  212. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +4 -4
  213. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +3 -3
  214. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +3 -3
  215. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +3 -3
  216. package/esm2022/src/app/social/job/job.module.mjs +4 -4
  217. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +3 -3
  218. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +3 -3
  219. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +3 -3
  220. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +3 -3
  221. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +3 -3
  222. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +3 -3
  223. package/esm2022/src/app/social/job/testing/job.testing.module.mjs +4 -4
  224. package/esm2022/src/app/social/message/message.form.mjs +3 -3
  225. package/esm2022/src/app/social/message/message.modal.mjs +3 -3
  226. package/esm2022/src/app/social/message/message.module.mjs +4 -4
  227. package/esm2022/src/app/social/message/message.service.mjs +3 -3
  228. package/esm2022/src/app/social/social.module.mjs +4 -4
  229. package/esm2022/src/app/social/social.testing.module.mjs +4 -4
  230. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +3 -3
  231. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +3 -3
  232. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +3 -3
  233. package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +4 -4
  234. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +3 -3
  235. package/esm2022/src/app/social/user-event/user-event.module.mjs +4 -4
  236. package/esm2022/src/app/social/user-event/user-event.service.mjs +3 -3
  237. package/esm2022/src/environments/environment.loader.mjs +3 -3
  238. package/fesm2022/sumaris-net.ngx-components.mjs +913 -913
  239. package/package.json +4 -4
  240. package/src/assets/manifest.json +1 -1
@@ -219,10 +219,10 @@ export class BaseGraphqlService extends StartableService {
219
219
  ngOnStart() {
220
220
  return Promise.resolve(null);
221
221
  }
222
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: BaseGraphqlService, deps: [{ token: i1.GraphqlService }, { token: BaseGraphqlServiceOptions, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
223
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.3", type: BaseGraphqlService, usesInheritance: true, ngImport: i0 });
222
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: BaseGraphqlService, deps: [{ token: i1.GraphqlService }, { token: BaseGraphqlServiceOptions, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
223
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.3", type: BaseGraphqlService, usesInheritance: true, ngImport: i0 });
224
224
  }
225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: BaseGraphqlService, decorators: [{
225
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: BaseGraphqlService, decorators: [{
226
226
  type: Directive
227
227
  }], ctorParameters: () => [{ type: i1.GraphqlService }, { type: BaseGraphqlServiceOptions, decorators: [{
228
228
  type: Optional
@@ -348,10 +348,10 @@ export class ConfigService extends BaseGraphqlService {
348
348
  async showToast(opts) {
349
349
  await Toasts.show(this.toastController, this.translate, opts);
350
350
  }
351
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ConfigService, deps: [{ token: i1.Platform }, { token: i2.GraphqlService }, { token: i3.Storage }, { token: i4.NetworkService }, { token: i5.FileService }, { token: i1.ToastController }, { token: i6.TranslateService }, { token: i7.AccountService }, { token: ENVIRONMENT }, { token: APP_CONFIG_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
352
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ConfigService, providedIn: 'root' });
351
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ConfigService, deps: [{ token: i1.Platform }, { token: i2.GraphqlService }, { token: i3.Storage }, { token: i4.NetworkService }, { token: i5.FileService }, { token: i1.ToastController }, { token: i6.TranslateService }, { token: i7.AccountService }, { token: ENVIRONMENT }, { token: APP_CONFIG_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
352
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ConfigService, providedIn: 'root' });
353
353
  }
354
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ConfigService, decorators: [{
354
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ConfigService, decorators: [{
355
355
  type: Injectable,
356
356
  args: [{
357
357
  providedIn: 'root',
@@ -97,10 +97,10 @@ export class CryptoService {
97
97
  const m = stringToU8a(message);
98
98
  return base64Encode(m);
99
99
  }
100
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CryptoService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
101
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CryptoService, providedIn: 'root' });
100
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CryptoService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
101
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CryptoService, providedIn: 'root' });
102
102
  }
103
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CryptoService, decorators: [{
103
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CryptoService, decorators: [{
104
104
  type: Injectable,
105
105
  args: [{ providedIn: 'root' }]
106
106
  }] });
@@ -441,10 +441,10 @@ export class LocalSettingsService extends StartableService {
441
441
  }
442
442
  return page;
443
443
  }
444
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LocalSettingsService, deps: [{ token: i1.Platform }, { token: i2.TranslateService }, { token: i3.Storage }, { token: ENVIRONMENT }, { token: APP_LOCAL_SETTINGS, optional: true }, { token: APP_LOCAL_SETTINGS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
445
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LocalSettingsService, providedIn: 'root' });
444
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LocalSettingsService, deps: [{ token: i1.Platform }, { token: i2.TranslateService }, { token: i3.Storage }, { token: ENVIRONMENT }, { token: APP_LOCAL_SETTINGS, optional: true }, { token: APP_LOCAL_SETTINGS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
445
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LocalSettingsService, providedIn: 'root' });
446
446
  }
447
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LocalSettingsService, decorators: [{
447
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LocalSettingsService, decorators: [{
448
448
  type: Injectable,
449
449
  args: [{
450
450
  providedIn: 'root',
@@ -598,10 +598,10 @@ export class NetworkService extends StartableObservableService {
598
598
  }));
599
599
  }
600
600
  }
601
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NetworkService, deps: [{ token: DOCUMENT }, { token: i1.Platform }, { token: i1.ModalController }, { token: i2.Storage }, { token: i3.LocalSettingsService }, { token: i4.CacheService }, { token: i5.HttpClient }, { token: ENVIRONMENT }, { token: APP_LOGGING_SERVICE, optional: true }, { token: i6.Network, optional: true }, { token: i7.TranslateService, optional: true }, { token: i1.ToastController, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
602
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NetworkService, providedIn: 'root' });
601
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: NetworkService, deps: [{ token: DOCUMENT }, { token: i1.Platform }, { token: i1.ModalController }, { token: i2.Storage }, { token: i3.LocalSettingsService }, { token: i4.CacheService }, { token: i5.HttpClient }, { token: ENVIRONMENT }, { token: APP_LOGGING_SERVICE, optional: true }, { token: i6.Network, optional: true }, { token: i7.TranslateService, optional: true }, { token: i1.ToastController, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
602
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: NetworkService, providedIn: 'root' });
603
603
  }
604
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: NetworkService, decorators: [{
604
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: NetworkService, decorators: [{
605
605
  type: Injectable,
606
606
  args: [{ providedIn: 'root' }]
607
607
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -5,11 +5,11 @@ export class IsLoginAccountPipe {
5
5
  transform(value) {
6
6
  return value && value.pubkey && true;
7
7
  }
8
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: IsLoginAccountPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
9
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: IsLoginAccountPipe, name: "isLogin" });
10
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: IsLoginAccountPipe, providedIn: 'root' });
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: IsLoginAccountPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
9
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.3", ngImport: i0, type: IsLoginAccountPipe, name: "isLogin" });
10
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: IsLoginAccountPipe, providedIn: 'root' });
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: IsLoginAccountPipe, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: IsLoginAccountPipe, decorators: [{
13
13
  type: Pipe,
14
14
  args: [{
15
15
  name: 'isLogin',
@@ -22,11 +22,11 @@ export class AccountToStringPipe {
22
22
  transform(value) {
23
23
  return accountToString(value);
24
24
  }
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AccountToStringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
26
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: AccountToStringPipe, name: "accountToString" });
27
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AccountToStringPipe, providedIn: 'root' });
25
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AccountToStringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
26
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.3", ngImport: i0, type: AccountToStringPipe, name: "accountToString" });
27
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AccountToStringPipe, providedIn: 'root' });
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AccountToStringPipe, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AccountToStringPipe, decorators: [{
30
30
  type: Pipe,
31
31
  args: [{
32
32
  name: 'accountToString',
@@ -7,11 +7,11 @@ export class DepartmentToStringPipe {
7
7
  return departmentsToString(value, separator);
8
8
  return departmentToString(value);
9
9
  }
10
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DepartmentToStringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
11
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: DepartmentToStringPipe, name: "departmentToString" });
12
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DepartmentToStringPipe, providedIn: 'root' });
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: DepartmentToStringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
11
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.3", ngImport: i0, type: DepartmentToStringPipe, name: "departmentToString" });
12
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: DepartmentToStringPipe, providedIn: 'root' });
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: DepartmentToStringPipe, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: DepartmentToStringPipe, decorators: [{
15
15
  type: Pipe,
16
16
  args: [{
17
17
  name: 'departmentToString',
@@ -7,11 +7,11 @@ export class PersonToStringPipe {
7
7
  return PersonUtils.personsToString(value, separator);
8
8
  return PersonUtils.personToString(value);
9
9
  }
10
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PersonToStringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
11
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: PersonToStringPipe, name: "personToString" });
12
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PersonToStringPipe, providedIn: 'root' });
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: PersonToStringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
11
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.3", ngImport: i0, type: PersonToStringPipe, name: "personToString" });
12
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: PersonToStringPipe, providedIn: 'root' });
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PersonToStringPipe, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: PersonToStringPipe, decorators: [{
15
15
  type: Pipe,
16
16
  args: [{
17
17
  name: 'personToString',
@@ -6,8 +6,8 @@ import { DepartmentToStringPipe } from './department-to-string.pipe';
6
6
  import { ReferentialToStringPipe } from './referential-to-string.pipe';
7
7
  import * as i0 from "@angular/core";
8
8
  export class CorePipesModule {
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CorePipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: CorePipesModule, declarations: [
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CorePipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.3", ngImport: i0, type: CorePipesModule, declarations: [
11
11
  // Pipes
12
12
  IsOnFieldPipe,
13
13
  IsOnDeskPipe,
@@ -24,9 +24,9 @@ export class CorePipesModule {
24
24
  AccountToStringPipe,
25
25
  DepartmentToStringPipe,
26
26
  ReferentialToStringPipe] });
27
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CorePipesModule });
27
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CorePipesModule });
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: CorePipesModule, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: CorePipesModule, decorators: [{
30
30
  type: NgModule,
31
31
  args: [{
32
32
  declarations: [
@@ -9,10 +9,10 @@ export class ReferentialToStringPipe {
9
9
  return referentialsToString(value, properties, opts && opts['separator']);
10
10
  return referentialToString(value, properties);
11
11
  }
12
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ReferentialToStringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
13
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: ReferentialToStringPipe, name: "referentialToString" });
12
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ReferentialToStringPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
13
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.3", ngImport: i0, type: ReferentialToStringPipe, name: "referentialToString" });
14
14
  }
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ReferentialToStringPipe, decorators: [{
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ReferentialToStringPipe, decorators: [{
16
16
  type: Pipe,
17
17
  args: [{
18
18
  name: 'referentialToString',
@@ -4,11 +4,11 @@ export class IsOnFieldPipe {
4
4
  transform(value) {
5
5
  return value === 'FIELD';
6
6
  }
7
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: IsOnFieldPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
8
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: IsOnFieldPipe, name: "isOnField" });
9
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: IsOnFieldPipe, providedIn: 'root' });
7
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: IsOnFieldPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
8
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.3", ngImport: i0, type: IsOnFieldPipe, name: "isOnField" });
9
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: IsOnFieldPipe, providedIn: 'root' });
10
10
  }
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: IsOnFieldPipe, decorators: [{
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: IsOnFieldPipe, decorators: [{
12
12
  type: Pipe,
13
13
  args: [{
14
14
  name: 'isOnField',
@@ -21,11 +21,11 @@ export class IsOnDeskPipe {
21
21
  transform(value) {
22
22
  return value !== 'FIELD';
23
23
  }
24
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: IsOnDeskPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
25
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: IsOnDeskPipe, name: "isOnDesk" });
26
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: IsOnDeskPipe, providedIn: 'root' });
24
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: IsOnDeskPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
25
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.2.3", ngImport: i0, type: IsOnDeskPipe, name: "isOnDesk" });
26
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: IsOnDeskPipe, providedIn: 'root' });
27
27
  }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: IsOnDeskPipe, decorators: [{
28
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: IsOnDeskPipe, decorators: [{
29
29
  type: Pipe,
30
30
  args: [{
31
31
  name: 'isOnDesk',
@@ -533,10 +533,10 @@ export class PlatformService extends StartableService {
533
533
  console.error('cause', err.details);
534
534
  }
535
535
  }
536
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PlatformService, deps: [{ token: i1.Platform }, { token: i2.Platform }, { token: i1.ToastController }, { token: i3.TranslateService }, { token: i4.MomentDateAdapter }, { token: i5.EntitiesStorage }, { token: i6.LocalSettingsService }, { token: i7.NetworkService }, { token: i8.AccountService }, { token: i9.ConfigService }, { token: i10.CacheService }, { token: i11.AudioProvider }, { token: ENVIRONMENT }, { token: APP_LOGGING_SERVICE, optional: true }, { token: i12.Downloader, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
537
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PlatformService, providedIn: 'root' });
536
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: PlatformService, deps: [{ token: i1.Platform }, { token: i2.Platform }, { token: i1.ToastController }, { token: i3.TranslateService }, { token: i4.MomentDateAdapter }, { token: i5.EntitiesStorage }, { token: i6.LocalSettingsService }, { token: i7.NetworkService }, { token: i8.AccountService }, { token: i9.ConfigService }, { token: i10.CacheService }, { token: i11.AudioProvider }, { token: ENVIRONMENT }, { token: APP_LOGGING_SERVICE, optional: true }, { token: i12.Downloader, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
537
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: PlatformService, providedIn: 'root' });
538
538
  }
539
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PlatformService, decorators: [{
539
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: PlatformService, decorators: [{
540
540
  type: Injectable,
541
541
  args: [{ providedIn: 'root' }]
542
542
  }], ctorParameters: () => [{ type: i1.Platform }, { type: i2.Platform }, { type: i1.ToastController }, { type: i3.TranslateService }, { type: i4.MomentDateAdapter }, { type: i5.EntitiesStorage }, { type: i6.LocalSettingsService }, { type: i7.NetworkService }, { type: i8.AccountService }, { type: i9.ConfigService }, { type: i10.CacheService }, { type: i11.AudioProvider }, { type: i13.Environment, decorators: [{
@@ -401,10 +401,10 @@ export class EntitiesStorage extends StartableService {
401
401
  throw err;
402
402
  });
403
403
  }
404
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EntitiesStorage, deps: [{ token: i1.Platform }, { token: APP_STORAGE }, { token: ENVIRONMENT }, { token: APP_PROGRESS_BAR_SERVICE, optional: true }, { token: APP_LOCAL_STORAGE_TYPE_POLICIES, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
405
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EntitiesStorage, providedIn: 'root' });
404
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: EntitiesStorage, deps: [{ token: i1.Platform }, { token: APP_STORAGE }, { token: ENVIRONMENT }, { token: APP_PROGRESS_BAR_SERVICE, optional: true }, { token: APP_LOCAL_STORAGE_TYPE_POLICIES, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
405
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: EntitiesStorage, providedIn: 'root' });
406
406
  }
407
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: EntitiesStorage, decorators: [{
407
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: EntitiesStorage, decorators: [{
408
408
  type: Injectable,
409
409
  args: [{ providedIn: 'root', deps: [APP_STORAGE, ENVIRONMENT] }]
410
410
  }], ctorParameters: () => [{ type: i1.Platform }, { type: undefined, decorators: [{
@@ -37,10 +37,10 @@ export class ReferentialValidatorService extends AppValidatorService {
37
37
  getFormGroupOptions(data, opts) {
38
38
  return null;
39
39
  }
40
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ReferentialValidatorService, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Injectable });
41
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ReferentialValidatorService });
40
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ReferentialValidatorService, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Injectable });
41
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ReferentialValidatorService });
42
42
  }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: ReferentialValidatorService, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: ReferentialValidatorService, decorators: [{
44
44
  type: Injectable
45
45
  }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }] });
46
46
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVmZXJlbnRpYWwudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9jb3JlL3NlcnZpY2VzL3Rlc3RpbmcvcmVmZXJlbnRpYWwudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFnRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUUxRyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQzs7O0FBSXhFLE1BQU0sT0FBTywyQkFBaUUsU0FBUSxtQkFBc0I7SUFDcEY7SUFBdEIsWUFBc0IsV0FBK0I7UUFDbkQsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBREMsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO0lBRXJELENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQVksQ0FDVixJQUFRLEVBQ1IsSUFHQztRQUVELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDM0csQ0FBQztJQUVELGtCQUFrQixDQUNoQixJQUFRLEVBQ1IsSUFHQztRQUVELE1BQU0sY0FBYyxHQUEyQjtZQUM3QyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksSUFBSSxDQUFDO1lBQy9CLFVBQVUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUM7WUFDL0MsWUFBWSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksQ0FBQztZQUNuRCxRQUFRLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDaEUsT0FBTyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQztZQUN6QyxLQUFLLEVBQUUsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDMUQsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksRUFBRSxVQUFVLENBQUMsUUFBUSxDQUFDO1lBQ3hELFVBQVUsRUFBRSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLEVBQUUsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUNyRSxDQUFDO1FBRUYsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQzVDLGNBQWMsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBQ0QsSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLEtBQUssRUFBRSxDQUFDO1lBQ3pDLGNBQWMsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMxRixDQUFDO1FBRUQsT0FBTyxjQUFjLENBQUM7SUFDeEIsQ0FBQztJQUVELG1CQUFtQixDQUFDLElBQVEsRUFBRSxJQUFVO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQzt1R0FqRFUsMkJBQTJCOzJHQUEzQiwyQkFBMkI7OzJGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2xPcHRpb25zLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSZWZlcmVudGlhbCB9IGZyb20gJy4uL21vZGVsL3JlZmVyZW50aWFsLm1vZGVsJztcbmltcG9ydCB7IEFwcFZhbGlkYXRvclNlcnZpY2UgfSBmcm9tICcuLi92YWxpZGF0b3IvYmFzZS52YWxpZGF0b3IuY2xhc3MnO1xuaW1wb3J0IHsgU3RhdHVzSWRzIH0gZnJvbSAnLi4vbW9kZWwvbW9kZWwuZW51bSc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBSZWZlcmVudGlhbFZhbGlkYXRvclNlcnZpY2U8VCBleHRlbmRzIFJlZmVyZW50aWFsID0gUmVmZXJlbnRpYWw+IGV4dGVuZHMgQXBwVmFsaWRhdG9yU2VydmljZTxUPiB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyKSB7XG4gICAgc3VwZXIoZm9ybUJ1aWxkZXIpO1xuICB9XG5cbiAgZ2V0Um93VmFsaWRhdG9yKCk6IFVudHlwZWRGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLmdldEZvcm1Hcm91cCgpO1xuICB9XG5cbiAgZ2V0Rm9ybUdyb3VwKFxuICAgIGRhdGE/OiBULFxuICAgIG9wdHM/OiB7XG4gICAgICB3aXRoRGVzY3JpcHRpb24/OiBib29sZWFuO1xuICAgICAgd2l0aENvbW1lbnRzPzogYm9vbGVhbjtcbiAgICB9XG4gICk6IFVudHlwZWRGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHRoaXMuZ2V0Rm9ybUdyb3VwQ29uZmlnKGRhdGEsIG9wdHMpLCB0aGlzLmdldEZvcm1Hcm91cE9wdGlvbnMoZGF0YSwgb3B0cykpO1xuICB9XG5cbiAgZ2V0Rm9ybUdyb3VwQ29uZmlnKFxuICAgIGRhdGE/OiBULFxuICAgIG9wdHM/OiB7XG4gICAgICB3aXRoRGVzY3JpcHRpb24/OiBib29sZWFuO1xuICAgICAgd2l0aENvbW1lbnRzPzogYm9vbGVhbjtcbiAgICB9XG4gICk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIGNvbnN0IGNvbnRyb2xzQ29uZmlnOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xuICAgICAgaWQ6IFsoZGF0YSAmJiBkYXRhLmlkKSB8fCBudWxsXSxcbiAgICAgIHVwZGF0ZURhdGU6IFsoZGF0YSAmJiBkYXRhLnVwZGF0ZURhdGUpIHx8IG51bGxdLFxuICAgICAgY3JlYXRpb25EYXRlOiBbKGRhdGEgJiYgZGF0YS5jcmVhdGlvbkRhdGUpIHx8IG51bGxdLFxuICAgICAgc3RhdHVzSWQ6IFsoZGF0YSAmJiBkYXRhLnN0YXR1c0lkKSB8fCBudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGxldmVsSWQ6IFsoZGF0YSAmJiBkYXRhLmxldmVsSWQpIHx8IG51bGxdLFxuICAgICAgbGFiZWw6IFsoZGF0YSAmJiBkYXRhLmxhYmVsKSB8fCBudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIG5hbWU6IFsoZGF0YSAmJiBkYXRhLm5hbWUpIHx8IG51bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgZW50aXR5TmFtZTogWyhkYXRhICYmIGRhdGEuZW50aXR5TmFtZSkgfHwgbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgfTtcblxuICAgIGlmICghb3B0cyB8fCBvcHRzLndpdGhEZXNjcmlwdGlvbiAhPT0gZmFsc2UpIHtcbiAgICAgIGNvbnRyb2xzQ29uZmlnLmRlc2NyaXB0aW9uID0gWyhkYXRhICYmIGRhdGEuZGVzY3JpcHRpb24pIHx8IG51bGwsIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDI1NSldO1xuICAgIH1cbiAgICBpZiAoIW9wdHMgfHwgb3B0cy53aXRoQ29tbWVudHMgIT09IGZhbHNlKSB7XG4gICAgICBjb250cm9sc0NvbmZpZy5jb21tZW50cyA9IFsoZGF0YSAmJiBkYXRhLmNvbW1lbnRzKSB8fCBudWxsLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyMDAwKV07XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbnRyb2xzQ29uZmlnO1xuICB9XG5cbiAgZ2V0Rm9ybUdyb3VwT3B0aW9ucyhkYXRhPzogVCwgb3B0cz86IGFueSk6IEFic3RyYWN0Q29udHJvbE9wdGlvbnMgfCBudWxsIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19
@@ -35,10 +35,10 @@ export class AccountValidatorService extends PersonValidatorService {
35
35
  ...super.fillDefaultOptions(opts),
36
36
  };
37
37
  }
38
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AccountValidatorService, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.TranslateService }, { token: i3.AccountService }, { token: i4.UserSettingsValidatorService }], target: i0.ɵɵFactoryTarget.Injectable });
39
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AccountValidatorService, providedIn: 'root' });
38
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AccountValidatorService, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.TranslateService }, { token: i3.AccountService }, { token: i4.UserSettingsValidatorService }], target: i0.ɵɵFactoryTarget.Injectable });
39
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AccountValidatorService, providedIn: 'root' });
40
40
  }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AccountValidatorService, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AccountValidatorService, decorators: [{
42
42
  type: Injectable,
43
43
  args: [{ providedIn: 'root' }]
44
44
  }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i2.TranslateService }, { type: i3.AccountService }, { type: i4.UserSettingsValidatorService }] });
@@ -40,10 +40,10 @@ export class AppValidatorService extends ValidatorService {
40
40
  console.error(`[validator] Cannot translate error key '${errorKey}'. Please override translateError() in your validator`);
41
41
  return changeCaseToUnderscore(errorKey);
42
42
  }
43
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AppValidatorService, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Directive });
44
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.1.3", type: AppValidatorService, usesInheritance: true, ngImport: i0 });
43
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AppValidatorService, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Directive });
44
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.3", type: AppValidatorService, usesInheritance: true, ngImport: i0 });
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AppValidatorService, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AppValidatorService, decorators: [{
47
47
  type: Directive
48
48
  }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i2.TranslateService }] });
49
49
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS52YWxpZGF0b3IuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2NvcmUvc2VydmljZXMvdmFsaWRhdG9yL2Jhc2UudmFsaWRhdG9yLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzVELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7O0FBS25FLE1BQU0sT0FBZ0IsbUJBQTZCLFNBQVEsZ0JBQWdCO0lBRTdEO0lBQ0E7SUFGWixZQUNZLFdBQStCLEVBQy9CLFNBQTRCO1FBRXRDLEtBQUssRUFBRSxDQUFDO1FBSEUsZ0JBQVcsR0FBWCxXQUFXLENBQW9CO1FBQy9CLGNBQVMsR0FBVCxTQUFTLENBQW1CO0lBR3hDLENBQUM7SUFFRCxlQUFlO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFRO1FBQ25CLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQVE7UUFDekIsT0FBTyxFQUFFLENBQUM7SUFDWixDQUFDO0lBRUQsaUJBQWlCLENBQUMsT0FBd0I7UUFDeEMsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNuRCxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxNQUFrQjtRQUM5QixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxJQUFJLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRVMsWUFBWSxDQUFDLFFBQWdCLEVBQUUsWUFBa0I7UUFDekQsTUFBTSxPQUFPLEdBQUcsY0FBYyxHQUFHLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hGLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNsRSxJQUFJLE9BQU8sS0FBSyxXQUFXO1lBQUUsT0FBTyxXQUFXLENBQUM7UUFDaEQsSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRO1lBQUUsT0FBTyxZQUFZLENBQUM7UUFFMUQsNkJBQTZCO1FBQzdCLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkNBQTJDLFFBQVEsdURBQXVELENBQUMsQ0FBQztRQUUxSCxPQUFPLHNCQUFzQixDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzFDLENBQUM7dUdBdkNtQixtQkFBbUI7MkZBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEeEMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZhbGlkYXRvclNlcnZpY2UgfSBmcm9tICdAZS1pcy9uZ3gtbWF0ZXJpYWwtdGFibGUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJVmFsaWRhdG9yU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy92YWxpZGF0b3Itc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFwcEZvcm1VdGlscyB9IGZyb20gJy4uLy4uL2Zvcm0vZm9ybS51dGlscyc7XG5pbXBvcnQgeyBjaGFuZ2VDYXNlVG9VbmRlcnNjb3JlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBGb3JtRXJyb3JzIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm1zJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXBwVmFsaWRhdG9yU2VydmljZTxUID0gYW55PiBleHRlbmRzIFZhbGlkYXRvclNlcnZpY2UgaW1wbGVtZW50cyBJVmFsaWRhdG9yU2VydmljZTxUPiB7XG4gIHByb3RlY3RlZCBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlcixcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlPzogVHJhbnNsYXRlU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgZ2V0Um93VmFsaWRhdG9yKCk6IFVudHlwZWRGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLmdldEZvcm1Hcm91cCgpO1xuICB9XG5cbiAgZ2V0Rm9ybUdyb3VwKGRhdGE/OiBUKTogVW50eXBlZEZvcm1Hcm91cCB7XG4gICAgcmV0dXJuIHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAodGhpcy5nZXRGb3JtR3JvdXBDb25maWcoZGF0YSkpO1xuICB9XG5cbiAgZ2V0Rm9ybUdyb3VwQ29uZmlnKGRhdGE/OiBUKTogeyBba2V5OiBzdHJpbmddOiBhbnlbXSB9IHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBnZXRJMThuRm9ybUVycm9ycyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgZXJyb3JzID0gQXBwRm9ybVV0aWxzLmdldEZvcm1FcnJvcnMoY29udHJvbCk7XG4gICAgcmV0dXJuIHRoaXMuZ2V0STE4bkVycm9ycyhlcnJvcnMpO1xuICB9XG5cbiAgZ2V0STE4bkVycm9ycyhlcnJvcnM6IEZvcm1FcnJvcnMpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKGVycm9ycyB8fCB7fSkubWFwKChlcnJvcktleSkgPT4gdGhpcy5nZXRJMThuRXJyb3IoZXJyb3JLZXksIGVycm9yc1tlcnJvcktleV0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRJMThuRXJyb3IoZXJyb3JLZXk6IHN0cmluZywgZXJyb3JDb250ZW50PzogYW55KTogc3RyaW5nIHtcbiAgICBjb25zdCBpMThuS2V5ID0gJ0VSUk9SLkZJRUxEXycgKyBjaGFuZ2VDYXNlVG9VbmRlcnNjb3JlKGVycm9yS2V5KS50b1VwcGVyQ2FzZSgpO1xuICAgIGNvbnN0IGkxOG5NZXNzYWdlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudChpMThuS2V5LCBlcnJvckNvbnRlbnQpO1xuICAgIGlmIChpMThuS2V5ICE9PSBpMThuTWVzc2FnZSkgcmV0dXJuIGkxOG5NZXNzYWdlO1xuICAgIGlmICh0eXBlb2YgZXJyb3JDb250ZW50ID09PSAnc3RyaW5nJykgcmV0dXJuIGVycm9yQ29udGVudDtcblxuICAgIC8vIE5vdCB0cmFuc2xhdGVkOiBzaG93IGVycm9yXG4gICAgY29uc29sZS5lcnJvcihgW3ZhbGlkYXRvcl0gQ2Fubm90IHRyYW5zbGF0ZSBlcnJvciBrZXkgJyR7ZXJyb3JLZXl9Jy4gUGxlYXNlIG92ZXJyaWRlIHRyYW5zbGF0ZUVycm9yKCkgaW4geW91ciB2YWxpZGF0b3JgKTtcblxuICAgIHJldHVybiBjaGFuZ2VDYXNlVG9VbmRlcnNjb3JlKGVycm9yS2V5KTtcbiAgfVxufVxuIl19
@@ -57,10 +57,10 @@ export class LocalSettingsValidatorService extends AppValidatorService {
57
57
  }
58
58
  }
59
59
  }
60
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LocalSettingsValidatorService, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.NetworkService }], target: i0.ɵɵFactoryTarget.Injectable });
61
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LocalSettingsValidatorService, providedIn: 'root' });
60
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LocalSettingsValidatorService, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.NetworkService }], target: i0.ɵɵFactoryTarget.Injectable });
61
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LocalSettingsValidatorService, providedIn: 'root' });
62
62
  }
63
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: LocalSettingsValidatorService, decorators: [{
63
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: LocalSettingsValidatorService, decorators: [{
64
64
  type: Injectable,
65
65
  args: [{ providedIn: 'root' }]
66
66
  }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i2.NetworkService }] });
@@ -17,10 +17,10 @@ export class UserSettingsValidatorService extends AppValidatorService {
17
17
  nonce: [data?.nonce || null],
18
18
  });
19
19
  }
20
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: UserSettingsValidatorService, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Injectable });
21
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: UserSettingsValidatorService, providedIn: 'root' });
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: UserSettingsValidatorService, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Injectable });
21
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: UserSettingsValidatorService, providedIn: 'root' });
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: UserSettingsValidatorService, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: UserSettingsValidatorService, decorators: [{
24
24
  type: Injectable,
25
25
  args: [{ providedIn: 'root' }]
26
26
  }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }] });
@@ -45,10 +45,10 @@ export class UserTokenValidatorService extends AppValidatorService {
45
45
  }
46
46
  return null;
47
47
  }
48
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: UserTokenValidatorService, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Injectable });
49
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: UserTokenValidatorService, providedIn: 'root' });
48
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: UserTokenValidatorService, deps: [{ token: i1.UntypedFormBuilder }], target: i0.ɵɵFactoryTarget.Injectable });
49
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: UserTokenValidatorService, providedIn: 'root' });
50
50
  }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: UserTokenValidatorService, decorators: [{
51
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: UserTokenValidatorService, decorators: [{
52
52
  type: Injectable,
53
53
  args: [{ providedIn: 'root' }]
54
54
  }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }] });
@@ -6,11 +6,11 @@ import { AppFormButtonsBarModule } from '../form/buttons/form-buttons-bar.module
6
6
  import * as i0 from "@angular/core";
7
7
  import * as i1 from "@ngx-translate/core";
8
8
  export class AppSettingsPageModule {
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AppSettingsPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.3", ngImport: i0, type: AppSettingsPageModule, declarations: [SettingsPage], imports: [SharedModule, AppFormButtonsBarModule, i1.TranslateModule], exports: [TranslateModule, SettingsPage] });
11
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AppSettingsPageModule, imports: [SharedModule, AppFormButtonsBarModule, TranslateModule.forChild(), TranslateModule] });
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AppSettingsPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.2.3", ngImport: i0, type: AppSettingsPageModule, declarations: [SettingsPage], imports: [SharedModule, AppFormButtonsBarModule, i1.TranslateModule], exports: [TranslateModule, SettingsPage] });
11
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AppSettingsPageModule, imports: [SharedModule, AppFormButtonsBarModule, TranslateModule.forChild(), TranslateModule] });
12
12
  }
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: AppSettingsPageModule, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: AppSettingsPageModule, decorators: [{
14
14
  type: NgModule,
15
15
  args: [{
16
16
  imports: [SharedModule, AppFormButtonsBarModule, TranslateModule.forChild()],
@@ -305,10 +305,10 @@ export class SettingsPage extends AppForm {
305
305
  markForCheck() {
306
306
  this.cd.markForCheck();
307
307
  }
308
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SettingsPage, deps: [{ token: i0.Injector }, { token: i1.PlatformService }, { token: i2.NavController }, { token: i3.LocalSettingsValidatorService }, { token: i2.AlertController }, { token: i4.TranslateService }, { token: i5.UntypedFormBuilder }, { token: i6.AccountService }, { token: i7.LocalSettingsService }, { token: i0.ChangeDetectorRef }, { token: i8.NetworkService }, { token: APP_LOCALES }, { token: APP_SETTINGS_MENU_ITEMS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
309
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.3", type: SettingsPage, selector: "page-settings", providers: [{ provide: ValidatorService, useExisting: LocalSettingsValidatorService }], usesInheritance: true, ngImport: i0, template: "<app-toolbar\n [title]=\"'SETTINGS.TITLE' | translate\"\n color=\"primary\"\n [hasValidate]=\"dirty && !saving\"\n [hasClose]=\"!dirty && !saving\"\n (onValidate)=\"save($event)\"\n (onClose)=\"close($event)\"\n>\n <ion-buttons slot=\"end\">\n <!-- options menu -->\n <ion-button [matMenuTriggerFor]=\"optionsMenu\" *ngIf=\"!saving\" [disabled]=\"saving\">\n <mat-icon slot=\"icon-only\">more_vert</mat-icon>\n </ion-button>\n </ion-buttons>\n</app-toolbar>\n\n<!-- Options menu -->\n<mat-menu #optionsMenu=\"matMenu\">\n <!-- Clear cache -->\n <button mat-menu-item (click)=\"clearCache($event)\">\n <mat-icon><ion-icon name=\"trash-outline\"></ion-icon></mat-icon>\n <ion-label translate>SETTINGS.BTN_CLEAR_CACHE</ion-label>\n </button>\n\n <!-- Reset -->\n <button mat-menu-item [disabled]=\"!dirty\" (click)=\"cancel($event)\">\n <mat-icon><ion-icon name=\"refresh\"></ion-icon></mat-icon>\n <mat-label translate>COMMON.BTN_RESET</mat-label>\n </button>\n\n <!-- additional items -->\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of menuItems\">\n <a\n *ngIf=\"item.path\"\n mat-menu-item\n class=\"{{ item.cssClass }} {{ item.color }}\"\n (click)=\"executeAction($event, item)\"\n >\n <mat-icon *ngIf=\"item.icon\"><ion-icon [name]=\"item.icon\"></ion-icon></mat-icon>\n <mat-icon *ngIf=\"item.matIcon\">{{ item.matIcon }}</mat-icon>\n <mat-label translate>{{ item.title }}</mat-label>\n </a>\n <!-- divider -->\n <mat-divider *ngIf=\"!item.path && !item.action\" class=\"{{ item.cssClass }} {{ item.color }}\">\n <mat-label translate>{{ item.title }}</mat-label>\n </mat-divider>\n </ng-container>\n </ng-container>\n</mat-menu>\n\n<ion-content>\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"save($event)\" class=\"form-container\">\n <ion-grid class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <!-- left margin -->\n <ion-col size=\"0\" size-lg=\"2\">&nbsp;</ion-col>\n\n <ion-col class=\"ion-padding\">\n <!-- error -->\n <ion-item *ngIf=\"error\" lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error | translate\"></ion-label>\n </ion-item>\n\n <p [innerHTML]=\"'SETTINGS.DESCRIPTION' | translate\"></p>\n\n <!-- account inheritance (desktop) -->\n <mat-form-field [hidden]=\"!isLogin\" *ngIf=\"!mobile; else accountInheritanceMobile\">\n <input matInput hidden formControlName=\"accountInheritance\" type=\"text\" />\n\n <!-- check box (if desktop) -->\n <mat-checkbox\n *ngIf=\"!mobile; else accountInheritanceMobile\"\n (change)=\"setAccountInheritance($event.checked)\"\n [checked]=\"accountInheritance\"\n >\n <span translate>SETTINGS.INHERIT_FROM_ACCOUNT</span>\n </mat-checkbox>\n\n <mat-error *ngIf=\"form.controls.accountInheritance.hasError('required')\" translate>\n ERROR.FIELD_REQUIRED\n </mat-error>\n </mat-form-field>\n\n <!-- account inheritance (if mobile) -->\n <ng-template #accountInheritanceMobile>\n <mat-form-field [hidden]=\"!isLogin\">\n <input matInput hidden formControlName=\"accountInheritance\" type=\"text\" />\n\n <!-- slide toggle -->\n <ion-text translate>SETTINGS.INHERIT_FROM_ACCOUNT</ion-text>\n <mat-slide-toggle\n matSuffix\n (change)=\"setAccountInheritance($event.checked)\"\n [checked]=\"accountInheritance\"\n ></mat-slide-toggle>\n <mat-error *ngIf=\"form.controls.accountInheritance.hasError('required')\" translate>\n ERROR.FIELD_REQUIRED\n </mat-error>\n </mat-form-field>\n </ng-template>\n\n <!-- locale -->\n <mat-form-field>\n <mat-label>{{ 'SETTINGS.LOCALE' | translate }}</mat-label>\n <mat-select formControlName=\"locale\" required>\n <mat-option *ngFor=\"let item of locales\" [value]=\"item.key\">\n {{ item.value }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"form.controls.locale.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n\n <!-- Network entry -->\n <h3>\n <ion-text translate>SETTINGS.NETWORK_DIVIDER</ion-text>\n </h3>\n\n <!-- Peer address -->\n <mat-form-field>\n <mat-label>{{ 'SETTINGS.PEER_URL' | translate }}</mat-label>\n <input matInput type=\"text\" formControlName=\"peerUrl\" required />\n\n <button\n mat-icon-button\n type=\"button\"\n matSuffix\n (click)=\"showSelectPeerModal()\"\n tabindex=\"-1\"\n [title]=\"'SETTINGS.BTN_CHANGE_PEER' | translate\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <mat-error *ngIf=\"form.controls.peerUrl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"form.controls.peerUrl.hasError('peerAlive')\" translate>\n SETTINGS.ERROR.PEER_NOT_REACHABLE\n </mat-error>\n <mat-error *ngIf=\"form.controls.peerUrl.hasError('peerNotCompatible')\" translate>\n SETTINGS.ERROR.PEER_NOT_COMPATIBLE\n </mat-error>\n </mat-form-field>\n\n <!-- Offline mode (if mobile) -->\n <mat-form-field *ngIf=\"mobile\">\n <input matInput hidden formControlName=\"accountInheritance\" type=\"text\" />\n\n <!-- slide toggle -->\n <ion-text translate>SETTINGS.OFFLINE_MODE</ion-text>\n <mat-slide-toggle\n matSuffix\n (change)=\"network.setForceOffline($event.checked)\"\n [checked]=\"network.offline\"\n ></mat-slide-toggle>\n </mat-form-field>\n\n <!-- Data entry -->\n <h3>\n <ion-text translate>SETTINGS.DATA_ENTRY_DIVIDER</ion-text>\n </h3>\n\n <!-- Usage mode -->\n <mat-form-field>\n <mat-label>{{ 'SETTINGS.USAGE_MODE' | translate }}</mat-label>\n <mat-select formControlName=\"usageMode\" required>\n <mat-option *ngFor=\"let item of usageModes\" [value]=\"item\">\n {{ 'SETTINGS.USAGE_MODES.' + item | translate }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"form.controls.usageMode.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n\n <!-- lat/long format-->\n <mat-form-field>\n <mat-label>{{ 'SETTINGS.LAT_LONG_FORMAT' | translate }}</mat-label>\n <mat-select formControlName=\"latLongFormat\" required>\n <mat-option *ngFor=\"let item of latLongFormats\" [value]=\"item\">\n {{ 'COMMON.LAT_LONG.' + item + '_PLACEHOLDER' | translate }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"form.controls.latLongFormat.hasError('required')\" translate>\n ERROR.FIELD_REQUIRED\n </mat-error>\n </mat-form-field>\n\n <!-- fields options -->\n <ion-grid formArrayName=\"properties\" class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding ion-align-self-end\" size=\"12\">\n <span class=\"toolbar-spacer\"></span>\n\n <!-- Show more options -->\n <ion-button\n color=\"light\"\n *ngIf=\"propertiesForm?.length === 0\"\n [title]=\"'SETTINGS.BTN_SHOW_MORE_HELP' | translate\"\n (click)=\"propertiesFormHelper.add()\"\n >\n <ion-label translate>COMMON.BTN_SHOW_MORE</ion-label>\n <mat-icon slot=\"end\">arrow_drop_down</mat-icon>\n </ion-button>\n </ion-col>\n </ion-row>\n\n <!-- Fields options -->\n <ng-container *ngFor=\"let propertyForm of propertiesForm?.controls; let i = index\">\n <ion-row class=\"ion-no-padding\" [formGroupName]=\"i\">\n <!-- property key -->\n <ion-col class=\"ion-no-padding\">\n <mat-form-field>\n <mat-label>{{ 'SETTINGS.PROPERTY_KEY' | translate }}</mat-label>\n <mat-select formControlName=\"key\">\n <mat-option *ngFor=\"let item of propertyDefinitions\" [value]=\"item.key\">\n {{ item.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </ion-col>\n\n <!-- property value -->\n <ion-col class=\"ion-no-padding\" padding-left>\n <app-form-field\n *ngIf=\"getPropertyDefinition(i); let definition\"\n floatLabel=\"never\"\n [definition]=\"definition\"\n [formControl]=\"propertyForm | formGetControl: 'value'\"\n [placeholder]=\"'SETTINGS.PROPERTY_VALUE' | translate\"\n [required]=\"true\"\n ></app-form-field>\n </ion-col>\n <ion-col size=\"2\" class=\"ion-no-padding\">\n <button\n type=\"button\"\n mat-icon-button\n color=\"light\"\n [disabled]=\"loading\"\n [title]=\"'COMMON.BTN_DELETE' | translate\"\n (click)=\"removePropertyAt(i)\"\n >\n <mat-icon>close</mat-icon>\n </button>\n <button\n *ngIf=\"propertiesFormHelper.isLast(i)\"\n type=\"button\"\n mat-icon-button\n color=\"light\"\n [disabled]=\"loading\"\n [title]=\"'SETTINGS.BTN_ADD_PROPERTY' | translate\"\n (click)=\"propertiesFormHelper.add()\"\n >\n <mat-icon>add</mat-icon>\n </button>\n </ion-col>\n </ion-row>\n </ng-container>\n </ion-grid>\n </ion-col>\n\n <!-- right margin -->\n <ion-col size=\"0\" size-lg=\"2\">&nbsp;</ion-col>\n </ion-row>\n </ion-grid>\n </form>\n</ion-content>\n\n<ion-footer hidden-xs hidden-sm hidden-mobile>\n <app-form-buttons-bar\n (onCancel)=\"cancel()\"\n (onSave)=\"save($event)\"\n [disabled]=\"!form.dirty || saving\"\n ></app-form-buttons-bar>\n</ion-footer>\n", dependencies: [{ kind: "directive", type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i5.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i10.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i12.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i13.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i14.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i15.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i15.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i15.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i16.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i17.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i18.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i19.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i20.ToolbarComponent, selector: "app-toolbar", inputs: ["progressBarMode", "title", "color", "class", "backHref", "defaultBackHref", "hasValidate", "hasClose", "hasSearch", "canGoBack", "canShowMenu"], outputs: ["onValidate", "onClose", "onValidateAndClose", "onBackClick", "onSearch"] }, { kind: "component", type: i21.AppFormField, selector: "app-form-field", inputs: ["definition", "required", "readonly", "disabled", "formControl", "formControlName", "placeholder", "compact", "floatLabel", "appearance", "tabindex", "autofocus", "clearable", "chipColor", "class", "debug"], outputs: ["keyup.enter"] }, { kind: "component", type: i22.FormButtonsBarComponent, selector: "app-form-buttons-bar", inputs: ["disabled", "disabledCancel", "classList", "saveButtonColor", "backText", "cancelText", "nextText", "showBack", "showCancel", "showNext", "showSave", "showSaveAndClose", "showSaveAndNext"], outputs: ["onCancel", "onSave", "onNext", "onBack", "onSaveAndClose", "onSaveAndNext"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i23.FormGetControlPipe, name: "formGetControl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
308
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SettingsPage, deps: [{ token: i0.Injector }, { token: i1.PlatformService }, { token: i2.NavController }, { token: i3.LocalSettingsValidatorService }, { token: i2.AlertController }, { token: i4.TranslateService }, { token: i5.UntypedFormBuilder }, { token: i6.AccountService }, { token: i7.LocalSettingsService }, { token: i0.ChangeDetectorRef }, { token: i8.NetworkService }, { token: APP_LOCALES }, { token: APP_SETTINGS_MENU_ITEMS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
309
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.2.3", type: SettingsPage, selector: "page-settings", providers: [{ provide: ValidatorService, useExisting: LocalSettingsValidatorService }], usesInheritance: true, ngImport: i0, template: "<app-toolbar\n [title]=\"'SETTINGS.TITLE' | translate\"\n color=\"primary\"\n [hasValidate]=\"dirty && !saving\"\n [hasClose]=\"!dirty && !saving\"\n (onValidate)=\"save($event)\"\n (onClose)=\"close($event)\"\n>\n <ion-buttons slot=\"end\">\n <!-- options menu -->\n <ion-button [matMenuTriggerFor]=\"optionsMenu\" *ngIf=\"!saving\" [disabled]=\"saving\">\n <mat-icon slot=\"icon-only\">more_vert</mat-icon>\n </ion-button>\n </ion-buttons>\n</app-toolbar>\n\n<!-- Options menu -->\n<mat-menu #optionsMenu=\"matMenu\">\n <!-- Clear cache -->\n <button mat-menu-item (click)=\"clearCache($event)\">\n <mat-icon><ion-icon name=\"trash-outline\"></ion-icon></mat-icon>\n <ion-label translate>SETTINGS.BTN_CLEAR_CACHE</ion-label>\n </button>\n\n <!-- Reset -->\n <button mat-menu-item [disabled]=\"!dirty\" (click)=\"cancel($event)\">\n <mat-icon><ion-icon name=\"refresh\"></ion-icon></mat-icon>\n <mat-label translate>COMMON.BTN_RESET</mat-label>\n </button>\n\n <!-- additional items -->\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of menuItems\">\n <a\n *ngIf=\"item.path\"\n mat-menu-item\n class=\"{{ item.cssClass }} {{ item.color }}\"\n (click)=\"executeAction($event, item)\"\n >\n <mat-icon *ngIf=\"item.icon\"><ion-icon [name]=\"item.icon\"></ion-icon></mat-icon>\n <mat-icon *ngIf=\"item.matIcon\">{{ item.matIcon }}</mat-icon>\n <mat-label translate>{{ item.title }}</mat-label>\n </a>\n <!-- divider -->\n <mat-divider *ngIf=\"!item.path && !item.action\" class=\"{{ item.cssClass }} {{ item.color }}\">\n <mat-label translate>{{ item.title }}</mat-label>\n </mat-divider>\n </ng-container>\n </ng-container>\n</mat-menu>\n\n<ion-content>\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"save($event)\" class=\"form-container\">\n <ion-grid class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <!-- left margin -->\n <ion-col size=\"0\" size-lg=\"2\">&nbsp;</ion-col>\n\n <ion-col class=\"ion-padding\">\n <!-- error -->\n <ion-item *ngIf=\"error\" lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error | translate\"></ion-label>\n </ion-item>\n\n <p [innerHTML]=\"'SETTINGS.DESCRIPTION' | translate\"></p>\n\n <!-- account inheritance (desktop) -->\n <mat-form-field [hidden]=\"!isLogin\" *ngIf=\"!mobile; else accountInheritanceMobile\">\n <input matInput hidden formControlName=\"accountInheritance\" type=\"text\" />\n\n <!-- check box (if desktop) -->\n <mat-checkbox\n *ngIf=\"!mobile; else accountInheritanceMobile\"\n (change)=\"setAccountInheritance($event.checked)\"\n [checked]=\"accountInheritance\"\n >\n <span translate>SETTINGS.INHERIT_FROM_ACCOUNT</span>\n </mat-checkbox>\n\n <mat-error *ngIf=\"form.controls.accountInheritance.hasError('required')\" translate>\n ERROR.FIELD_REQUIRED\n </mat-error>\n </mat-form-field>\n\n <!-- account inheritance (if mobile) -->\n <ng-template #accountInheritanceMobile>\n <mat-form-field [hidden]=\"!isLogin\">\n <input matInput hidden formControlName=\"accountInheritance\" type=\"text\" />\n\n <!-- slide toggle -->\n <ion-text translate>SETTINGS.INHERIT_FROM_ACCOUNT</ion-text>\n <mat-slide-toggle\n matSuffix\n (change)=\"setAccountInheritance($event.checked)\"\n [checked]=\"accountInheritance\"\n ></mat-slide-toggle>\n <mat-error *ngIf=\"form.controls.accountInheritance.hasError('required')\" translate>\n ERROR.FIELD_REQUIRED\n </mat-error>\n </mat-form-field>\n </ng-template>\n\n <!-- locale -->\n <mat-form-field>\n <mat-label>{{ 'SETTINGS.LOCALE' | translate }}</mat-label>\n <mat-select formControlName=\"locale\" required>\n <mat-option *ngFor=\"let item of locales\" [value]=\"item.key\">\n {{ item.value }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"form.controls.locale.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n\n <!-- Network entry -->\n <h3>\n <ion-text translate>SETTINGS.NETWORK_DIVIDER</ion-text>\n </h3>\n\n <!-- Peer address -->\n <mat-form-field>\n <mat-label>{{ 'SETTINGS.PEER_URL' | translate }}</mat-label>\n <input matInput type=\"text\" formControlName=\"peerUrl\" required />\n\n <button\n mat-icon-button\n type=\"button\"\n matSuffix\n (click)=\"showSelectPeerModal()\"\n tabindex=\"-1\"\n [title]=\"'SETTINGS.BTN_CHANGE_PEER' | translate\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <mat-error *ngIf=\"form.controls.peerUrl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"form.controls.peerUrl.hasError('peerAlive')\" translate>\n SETTINGS.ERROR.PEER_NOT_REACHABLE\n </mat-error>\n <mat-error *ngIf=\"form.controls.peerUrl.hasError('peerNotCompatible')\" translate>\n SETTINGS.ERROR.PEER_NOT_COMPATIBLE\n </mat-error>\n </mat-form-field>\n\n <!-- Offline mode (if mobile) -->\n <mat-form-field *ngIf=\"mobile\">\n <input matInput hidden formControlName=\"accountInheritance\" type=\"text\" />\n\n <!-- slide toggle -->\n <ion-text translate>SETTINGS.OFFLINE_MODE</ion-text>\n <mat-slide-toggle\n matSuffix\n (change)=\"network.setForceOffline($event.checked)\"\n [checked]=\"network.offline\"\n ></mat-slide-toggle>\n </mat-form-field>\n\n <!-- Data entry -->\n <h3>\n <ion-text translate>SETTINGS.DATA_ENTRY_DIVIDER</ion-text>\n </h3>\n\n <!-- Usage mode -->\n <mat-form-field>\n <mat-label>{{ 'SETTINGS.USAGE_MODE' | translate }}</mat-label>\n <mat-select formControlName=\"usageMode\" required>\n <mat-option *ngFor=\"let item of usageModes\" [value]=\"item\">\n {{ 'SETTINGS.USAGE_MODES.' + item | translate }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"form.controls.usageMode.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n\n <!-- lat/long format-->\n <mat-form-field>\n <mat-label>{{ 'SETTINGS.LAT_LONG_FORMAT' | translate }}</mat-label>\n <mat-select formControlName=\"latLongFormat\" required>\n <mat-option *ngFor=\"let item of latLongFormats\" [value]=\"item\">\n {{ 'COMMON.LAT_LONG.' + item + '_PLACEHOLDER' | translate }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"form.controls.latLongFormat.hasError('required')\" translate>\n ERROR.FIELD_REQUIRED\n </mat-error>\n </mat-form-field>\n\n <!-- fields options -->\n <ion-grid formArrayName=\"properties\" class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding ion-align-self-end\" size=\"12\">\n <span class=\"toolbar-spacer\"></span>\n\n <!-- Show more options -->\n <ion-button\n color=\"light\"\n *ngIf=\"propertiesForm?.length === 0\"\n [title]=\"'SETTINGS.BTN_SHOW_MORE_HELP' | translate\"\n (click)=\"propertiesFormHelper.add()\"\n >\n <ion-label translate>COMMON.BTN_SHOW_MORE</ion-label>\n <mat-icon slot=\"end\">arrow_drop_down</mat-icon>\n </ion-button>\n </ion-col>\n </ion-row>\n\n <!-- Fields options -->\n <ng-container *ngFor=\"let propertyForm of propertiesForm?.controls; let i = index\">\n <ion-row class=\"ion-no-padding\" [formGroupName]=\"i\">\n <!-- property key -->\n <ion-col class=\"ion-no-padding\">\n <mat-form-field>\n <mat-label>{{ 'SETTINGS.PROPERTY_KEY' | translate }}</mat-label>\n <mat-select formControlName=\"key\">\n <mat-option *ngFor=\"let item of propertyDefinitions\" [value]=\"item.key\">\n {{ item.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </ion-col>\n\n <!-- property value -->\n <ion-col class=\"ion-no-padding\" padding-left>\n <app-form-field\n *ngIf=\"getPropertyDefinition(i); let definition\"\n floatLabel=\"never\"\n [definition]=\"definition\"\n [formControl]=\"propertyForm | formGetControl: 'value'\"\n [placeholder]=\"'SETTINGS.PROPERTY_VALUE' | translate\"\n [required]=\"true\"\n ></app-form-field>\n </ion-col>\n <ion-col size=\"2\" class=\"ion-no-padding\">\n <button\n type=\"button\"\n mat-icon-button\n color=\"light\"\n [disabled]=\"loading\"\n [title]=\"'COMMON.BTN_DELETE' | translate\"\n (click)=\"removePropertyAt(i)\"\n >\n <mat-icon>close</mat-icon>\n </button>\n <button\n *ngIf=\"propertiesFormHelper.isLast(i)\"\n type=\"button\"\n mat-icon-button\n color=\"light\"\n [disabled]=\"loading\"\n [title]=\"'SETTINGS.BTN_ADD_PROPERTY' | translate\"\n (click)=\"propertiesFormHelper.add()\"\n >\n <mat-icon>add</mat-icon>\n </button>\n </ion-col>\n </ion-row>\n </ng-container>\n </ion-grid>\n </ion-col>\n\n <!-- right margin -->\n <ion-col size=\"0\" size-lg=\"2\">&nbsp;</ion-col>\n </ion-row>\n </ion-grid>\n </form>\n</ion-content>\n\n<ion-footer hidden-xs hidden-sm hidden-mobile>\n <app-form-buttons-bar\n (onCancel)=\"cancel()\"\n (onSave)=\"save($event)\"\n [disabled]=\"!form.dirty || saving\"\n ></app-form-buttons-bar>\n</ion-footer>\n", dependencies: [{ kind: "directive", type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonFooter, selector: "ion-footer", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i5.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i10.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i10.MatLabel, selector: "mat-label" }, { kind: "directive", type: i10.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i10.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i11.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i12.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i13.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i14.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i15.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i15.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i15.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i16.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i17.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i18.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "component", type: i19.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "component", type: i20.ToolbarComponent, selector: "app-toolbar", inputs: ["progressBarMode", "title", "color", "class", "backHref", "defaultBackHref", "hasValidate", "hasClose", "hasSearch", "canGoBack", "canShowMenu"], outputs: ["onValidate", "onClose", "onValidateAndClose", "onBackClick", "onSearch"] }, { kind: "component", type: i21.AppFormField, selector: "app-form-field", inputs: ["definition", "required", "readonly", "disabled", "formControl", "formControlName", "placeholder", "compact", "floatLabel", "appearance", "tabindex", "autofocus", "clearable", "chipColor", "class", "debug"], outputs: ["keyup.enter"] }, { kind: "component", type: i22.FormButtonsBarComponent, selector: "app-form-buttons-bar", inputs: ["disabled", "disabledCancel", "classList", "saveButtonColor", "backText", "cancelText", "nextText", "showBack", "showCancel", "showNext", "showSave", "showSaveAndClose", "showSaveAndNext"], outputs: ["onCancel", "onSave", "onNext", "onBack", "onSaveAndClose", "onSaveAndNext"] }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }, { kind: "pipe", type: i23.FormGetControlPipe, name: "formGetControl" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
310
310
  }
311
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: SettingsPage, decorators: [{
311
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.3", ngImport: i0, type: SettingsPage, decorators: [{
312
312
  type: Component,
313
313
  args: [{ selector: 'page-settings', providers: [{ provide: ValidatorService, useExisting: LocalSettingsValidatorService }], changeDetection: ChangeDetectionStrategy.OnPush, template: "<app-toolbar\n [title]=\"'SETTINGS.TITLE' | translate\"\n color=\"primary\"\n [hasValidate]=\"dirty && !saving\"\n [hasClose]=\"!dirty && !saving\"\n (onValidate)=\"save($event)\"\n (onClose)=\"close($event)\"\n>\n <ion-buttons slot=\"end\">\n <!-- options menu -->\n <ion-button [matMenuTriggerFor]=\"optionsMenu\" *ngIf=\"!saving\" [disabled]=\"saving\">\n <mat-icon slot=\"icon-only\">more_vert</mat-icon>\n </ion-button>\n </ion-buttons>\n</app-toolbar>\n\n<!-- Options menu -->\n<mat-menu #optionsMenu=\"matMenu\">\n <!-- Clear cache -->\n <button mat-menu-item (click)=\"clearCache($event)\">\n <mat-icon><ion-icon name=\"trash-outline\"></ion-icon></mat-icon>\n <ion-label translate>SETTINGS.BTN_CLEAR_CACHE</ion-label>\n </button>\n\n <!-- Reset -->\n <button mat-menu-item [disabled]=\"!dirty\" (click)=\"cancel($event)\">\n <mat-icon><ion-icon name=\"refresh\"></ion-icon></mat-icon>\n <mat-label translate>COMMON.BTN_RESET</mat-label>\n </button>\n\n <!-- additional items -->\n <ng-container *ngIf=\"!loading\">\n <ng-container *ngFor=\"let item of menuItems\">\n <a\n *ngIf=\"item.path\"\n mat-menu-item\n class=\"{{ item.cssClass }} {{ item.color }}\"\n (click)=\"executeAction($event, item)\"\n >\n <mat-icon *ngIf=\"item.icon\"><ion-icon [name]=\"item.icon\"></ion-icon></mat-icon>\n <mat-icon *ngIf=\"item.matIcon\">{{ item.matIcon }}</mat-icon>\n <mat-label translate>{{ item.title }}</mat-label>\n </a>\n <!-- divider -->\n <mat-divider *ngIf=\"!item.path && !item.action\" class=\"{{ item.cssClass }} {{ item.color }}\">\n <mat-label translate>{{ item.title }}</mat-label>\n </mat-divider>\n </ng-container>\n </ng-container>\n</mat-menu>\n\n<ion-content>\n <form [formGroup]=\"form\" novalidate (ngSubmit)=\"save($event)\" class=\"form-container\">\n <ion-grid class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <!-- left margin -->\n <ion-col size=\"0\" size-lg=\"2\">&nbsp;</ion-col>\n\n <ion-col class=\"ion-padding\">\n <!-- error -->\n <ion-item *ngIf=\"error\" lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"error | translate\"></ion-label>\n </ion-item>\n\n <p [innerHTML]=\"'SETTINGS.DESCRIPTION' | translate\"></p>\n\n <!-- account inheritance (desktop) -->\n <mat-form-field [hidden]=\"!isLogin\" *ngIf=\"!mobile; else accountInheritanceMobile\">\n <input matInput hidden formControlName=\"accountInheritance\" type=\"text\" />\n\n <!-- check box (if desktop) -->\n <mat-checkbox\n *ngIf=\"!mobile; else accountInheritanceMobile\"\n (change)=\"setAccountInheritance($event.checked)\"\n [checked]=\"accountInheritance\"\n >\n <span translate>SETTINGS.INHERIT_FROM_ACCOUNT</span>\n </mat-checkbox>\n\n <mat-error *ngIf=\"form.controls.accountInheritance.hasError('required')\" translate>\n ERROR.FIELD_REQUIRED\n </mat-error>\n </mat-form-field>\n\n <!-- account inheritance (if mobile) -->\n <ng-template #accountInheritanceMobile>\n <mat-form-field [hidden]=\"!isLogin\">\n <input matInput hidden formControlName=\"accountInheritance\" type=\"text\" />\n\n <!-- slide toggle -->\n <ion-text translate>SETTINGS.INHERIT_FROM_ACCOUNT</ion-text>\n <mat-slide-toggle\n matSuffix\n (change)=\"setAccountInheritance($event.checked)\"\n [checked]=\"accountInheritance\"\n ></mat-slide-toggle>\n <mat-error *ngIf=\"form.controls.accountInheritance.hasError('required')\" translate>\n ERROR.FIELD_REQUIRED\n </mat-error>\n </mat-form-field>\n </ng-template>\n\n <!-- locale -->\n <mat-form-field>\n <mat-label>{{ 'SETTINGS.LOCALE' | translate }}</mat-label>\n <mat-select formControlName=\"locale\" required>\n <mat-option *ngFor=\"let item of locales\" [value]=\"item.key\">\n {{ item.value }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"form.controls.locale.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n\n <!-- Network entry -->\n <h3>\n <ion-text translate>SETTINGS.NETWORK_DIVIDER</ion-text>\n </h3>\n\n <!-- Peer address -->\n <mat-form-field>\n <mat-label>{{ 'SETTINGS.PEER_URL' | translate }}</mat-label>\n <input matInput type=\"text\" formControlName=\"peerUrl\" required />\n\n <button\n mat-icon-button\n type=\"button\"\n matSuffix\n (click)=\"showSelectPeerModal()\"\n tabindex=\"-1\"\n [title]=\"'SETTINGS.BTN_CHANGE_PEER' | translate\"\n >\n <mat-icon>search</mat-icon>\n </button>\n\n <mat-error *ngIf=\"form.controls.peerUrl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"form.controls.peerUrl.hasError('peerAlive')\" translate>\n SETTINGS.ERROR.PEER_NOT_REACHABLE\n </mat-error>\n <mat-error *ngIf=\"form.controls.peerUrl.hasError('peerNotCompatible')\" translate>\n SETTINGS.ERROR.PEER_NOT_COMPATIBLE\n </mat-error>\n </mat-form-field>\n\n <!-- Offline mode (if mobile) -->\n <mat-form-field *ngIf=\"mobile\">\n <input matInput hidden formControlName=\"accountInheritance\" type=\"text\" />\n\n <!-- slide toggle -->\n <ion-text translate>SETTINGS.OFFLINE_MODE</ion-text>\n <mat-slide-toggle\n matSuffix\n (change)=\"network.setForceOffline($event.checked)\"\n [checked]=\"network.offline\"\n ></mat-slide-toggle>\n </mat-form-field>\n\n <!-- Data entry -->\n <h3>\n <ion-text translate>SETTINGS.DATA_ENTRY_DIVIDER</ion-text>\n </h3>\n\n <!-- Usage mode -->\n <mat-form-field>\n <mat-label>{{ 'SETTINGS.USAGE_MODE' | translate }}</mat-label>\n <mat-select formControlName=\"usageMode\" required>\n <mat-option *ngFor=\"let item of usageModes\" [value]=\"item\">\n {{ 'SETTINGS.USAGE_MODES.' + item | translate }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"form.controls.usageMode.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n\n <!-- lat/long format-->\n <mat-form-field>\n <mat-label>{{ 'SETTINGS.LAT_LONG_FORMAT' | translate }}</mat-label>\n <mat-select formControlName=\"latLongFormat\" required>\n <mat-option *ngFor=\"let item of latLongFormats\" [value]=\"item\">\n {{ 'COMMON.LAT_LONG.' + item + '_PLACEHOLDER' | translate }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"form.controls.latLongFormat.hasError('required')\" translate>\n ERROR.FIELD_REQUIRED\n </mat-error>\n </mat-form-field>\n\n <!-- fields options -->\n <ion-grid formArrayName=\"properties\" class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding ion-align-self-end\" size=\"12\">\n <span class=\"toolbar-spacer\"></span>\n\n <!-- Show more options -->\n <ion-button\n color=\"light\"\n *ngIf=\"propertiesForm?.length === 0\"\n [title]=\"'SETTINGS.BTN_SHOW_MORE_HELP' | translate\"\n (click)=\"propertiesFormHelper.add()\"\n >\n <ion-label translate>COMMON.BTN_SHOW_MORE</ion-label>\n <mat-icon slot=\"end\">arrow_drop_down</mat-icon>\n </ion-button>\n </ion-col>\n </ion-row>\n\n <!-- Fields options -->\n <ng-container *ngFor=\"let propertyForm of propertiesForm?.controls; let i = index\">\n <ion-row class=\"ion-no-padding\" [formGroupName]=\"i\">\n <!-- property key -->\n <ion-col class=\"ion-no-padding\">\n <mat-form-field>\n <mat-label>{{ 'SETTINGS.PROPERTY_KEY' | translate }}</mat-label>\n <mat-select formControlName=\"key\">\n <mat-option *ngFor=\"let item of propertyDefinitions\" [value]=\"item.key\">\n {{ item.label | translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n </ion-col>\n\n <!-- property value -->\n <ion-col class=\"ion-no-padding\" padding-left>\n <app-form-field\n *ngIf=\"getPropertyDefinition(i); let definition\"\n floatLabel=\"never\"\n [definition]=\"definition\"\n [formControl]=\"propertyForm | formGetControl: 'value'\"\n [placeholder]=\"'SETTINGS.PROPERTY_VALUE' | translate\"\n [required]=\"true\"\n ></app-form-field>\n </ion-col>\n <ion-col size=\"2\" class=\"ion-no-padding\">\n <button\n type=\"button\"\n mat-icon-button\n color=\"light\"\n [disabled]=\"loading\"\n [title]=\"'COMMON.BTN_DELETE' | translate\"\n (click)=\"removePropertyAt(i)\"\n >\n <mat-icon>close</mat-icon>\n </button>\n <button\n *ngIf=\"propertiesFormHelper.isLast(i)\"\n type=\"button\"\n mat-icon-button\n color=\"light\"\n [disabled]=\"loading\"\n [title]=\"'SETTINGS.BTN_ADD_PROPERTY' | translate\"\n (click)=\"propertiesFormHelper.add()\"\n >\n <mat-icon>add</mat-icon>\n </button>\n </ion-col>\n </ion-row>\n </ng-container>\n </ion-grid>\n </ion-col>\n\n <!-- right margin -->\n <ion-col size=\"0\" size-lg=\"2\">&nbsp;</ion-col>\n </ion-row>\n </ion-grid>\n </form>\n</ion-content>\n\n<ion-footer hidden-xs hidden-sm hidden-mobile>\n <app-form-buttons-bar\n (onCancel)=\"cancel()\"\n (onSave)=\"save($event)\"\n [disabled]=\"!form.dirty || saving\"\n ></app-form-buttons-bar>\n</ion-footer>\n" }]
314
314
  }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.PlatformService }, { type: i2.NavController }, { type: i3.LocalSettingsValidatorService }, { type: i2.AlertController }, { type: i4.TranslateService }, { type: i5.UntypedFormBuilder }, { type: i6.AccountService }, { type: i7.LocalSettingsService }, { type: i0.ChangeDetectorRef }, { type: i8.NetworkService }, { type: undefined, decorators: [{