@sumaris-net/ngx-components 2.7.2-rc9 → 2.7.3-rc2

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 (378) hide show
  1. package/doc/changelog.md +36 -0
  2. package/esm2022/public_api.mjs +11 -9
  3. package/esm2022/src/app/admin/admin-routing.module.mjs +10 -17
  4. package/esm2022/src/app/admin/admin.module.mjs +7 -9
  5. package/esm2022/src/app/admin/services/filter/person.filter.mjs +3 -3
  6. package/esm2022/src/app/admin/services/person.service.mjs +31 -31
  7. package/esm2022/src/app/admin/services/validator/person.validator.mjs +10 -10
  8. package/esm2022/src/app/admin/users/users.mjs +14 -7
  9. package/esm2022/src/app/admin/users/users.module.mjs +8 -10
  10. package/esm2022/src/app/core/about/about.modal.mjs +7 -7
  11. package/esm2022/src/app/core/about/about.module.mjs +8 -21
  12. package/esm2022/src/app/core/account/account.module.mjs +9 -15
  13. package/esm2022/src/app/core/account/account.page.mjs +5 -5
  14. package/esm2022/src/app/core/account/new-token.modal.mjs +9 -8
  15. package/esm2022/src/app/core/account/token.table.mjs +5 -5
  16. package/esm2022/src/app/core/auth/auth.form.mjs +9 -9
  17. package/esm2022/src/app/core/auth/auth.modal.mjs +6 -6
  18. package/esm2022/src/app/core/auth/auth.module.mjs +9 -9
  19. package/esm2022/src/app/core/core.module.mjs +17 -46
  20. package/esm2022/src/app/core/core.testing.module.mjs +15 -15
  21. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +16 -15
  22. package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +9 -13
  23. package/esm2022/src/app/core/form/entity/editor.class.mjs +87 -89
  24. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +12 -17
  25. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +31 -32
  26. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +5 -5
  27. package/esm2022/src/app/core/form/entity/entity.module.mjs +8 -14
  28. package/esm2022/src/app/core/form/form.class.mjs +12 -12
  29. package/esm2022/src/app/core/form/form.module.mjs +8 -8
  30. package/esm2022/src/app/core/form/form.utils.mjs +25 -23
  31. package/esm2022/src/app/core/form/list/list.form.mjs +13 -12
  32. package/esm2022/src/app/core/form/list/list.module.mjs +8 -12
  33. package/esm2022/src/app/core/form/properties/properties.form.mjs +12 -15
  34. package/esm2022/src/app/core/form/properties/properties.module.mjs +9 -15
  35. package/esm2022/src/app/core/form/properties/properties.table.mjs +24 -26
  36. package/esm2022/src/app/core/form/properties/property.validator.mjs +6 -6
  37. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +18 -18
  38. package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +8 -24
  39. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +9 -8
  40. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +10 -25
  41. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +6 -6
  42. package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +9 -13
  43. package/esm2022/src/app/core/graphql/graphql.module.mjs +8 -13
  44. package/esm2022/src/app/core/graphql/graphql.service.mjs +71 -95
  45. package/esm2022/src/app/core/graphql/graphql.utils.mjs +12 -11
  46. package/esm2022/src/app/core/home/home.mjs +26 -27
  47. package/esm2022/src/app/core/home/home.module.mjs +10 -19
  48. package/esm2022/src/app/core/icon/icon.component.mjs +5 -5
  49. package/esm2022/src/app/core/icon/icon.module.mjs +8 -17
  50. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +33 -37
  51. package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +9 -13
  52. package/esm2022/src/app/core/menu/menu.component.mjs +5 -6
  53. package/esm2022/src/app/core/menu/menu.model.mjs +21 -18
  54. package/esm2022/src/app/core/menu/menu.module.mjs +7 -12
  55. package/esm2022/src/app/core/menu/menu.service.mjs +44 -60
  56. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +4 -4
  57. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +5 -5
  58. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +5 -5
  59. package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +8 -27
  60. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +6 -7
  61. package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +9 -13
  62. package/esm2022/src/app/core/peer/select-peer.modal.mjs +8 -9
  63. package/esm2022/src/app/core/peer/select-peer.module.mjs +10 -19
  64. package/esm2022/src/app/core/register/register-confirm.page.mjs +12 -12
  65. package/esm2022/src/app/core/register/register.form.mjs +5 -5
  66. package/esm2022/src/app/core/register/register.modal.mjs +6 -6
  67. package/esm2022/src/app/core/register/register.module.mjs +8 -29
  68. package/esm2022/src/app/core/services/account.service.mjs +172 -160
  69. package/esm2022/src/app/core/services/auth-guard.service.mjs +13 -15
  70. package/esm2022/src/app/core/services/base-entity-service.class.mjs +51 -60
  71. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +39 -33
  72. package/esm2022/src/app/core/services/base58.mjs +8 -4
  73. package/esm2022/src/app/core/services/config/core.config.mjs +37 -37
  74. package/esm2022/src/app/core/services/config.service.mjs +51 -49
  75. package/esm2022/src/app/core/services/crypto.service.mjs +11 -11
  76. package/esm2022/src/app/core/services/errors.mjs +3 -3
  77. package/esm2022/src/app/core/services/local-settings.service.mjs +36 -37
  78. package/esm2022/src/app/core/services/model/account.model.mjs +12 -17
  79. package/esm2022/src/app/core/services/model/config.model.mjs +5 -5
  80. package/esm2022/src/app/core/services/model/department.model.mjs +3 -2
  81. package/esm2022/src/app/core/services/model/entity.decorators.mjs +6 -6
  82. package/esm2022/src/app/core/services/model/entity.model.mjs +25 -25
  83. package/esm2022/src/app/core/services/model/filter.model.mjs +12 -15
  84. package/esm2022/src/app/core/services/model/history.model.mjs +1 -1
  85. package/esm2022/src/app/core/services/model/model.enum.mjs +2 -2
  86. package/esm2022/src/app/core/services/model/peer.model.mjs +9 -8
  87. package/esm2022/src/app/core/services/model/person.model.mjs +18 -17
  88. package/esm2022/src/app/core/services/model/referential.model.mjs +13 -13
  89. package/esm2022/src/app/core/services/model/settings.model.mjs +1 -1
  90. package/esm2022/src/app/core/services/model/token.model.mjs +2 -3
  91. package/esm2022/src/app/core/services/model/tree-item-entity.model.mjs +2 -6
  92. package/esm2022/src/app/core/services/network.service.mjs +42 -43
  93. package/esm2022/src/app/core/services/network.types.mjs +1 -1
  94. package/esm2022/src/app/core/services/network.utils.mjs +3 -3
  95. package/esm2022/src/app/core/services/pipes/account.pipes.mjs +11 -11
  96. package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +6 -6
  97. package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +6 -6
  98. package/esm2022/src/app/core/services/pipes/pipes.module.mjs +54 -0
  99. package/esm2022/src/app/core/services/pipes/referential-to-string.pipe.mjs +21 -0
  100. package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +11 -11
  101. package/esm2022/src/app/core/services/platform.service.mjs +45 -49
  102. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +32 -39
  103. package/esm2022/src/app/core/services/storage/entity-store.class.mjs +36 -45
  104. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +1 -1
  105. package/esm2022/src/app/core/services/testing/referential.validator.mjs +14 -14
  106. package/esm2022/src/app/core/services/validator/account.validator.mjs +5 -5
  107. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +4 -4
  108. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +13 -13
  109. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +5 -5
  110. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +12 -9
  111. package/esm2022/src/app/core/settings/settings.module.mjs +8 -21
  112. package/esm2022/src/app/core/settings/settings.page.mjs +12 -17
  113. package/esm2022/src/app/core/table/actions-column.component.mjs +13 -5
  114. package/esm2022/src/app/core/table/async-table.class.mjs +106 -112
  115. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +21 -26
  116. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +26 -29
  117. package/esm2022/src/app/core/table/memory-table.class.mjs +4 -4
  118. package/esm2022/src/app/core/table/table-select-columns.component.mjs +8 -8
  119. package/esm2022/src/app/core/table/table.class.mjs +107 -110
  120. package/esm2022/src/app/core/table/table.model.mjs +1 -1
  121. package/esm2022/src/app/core/table/table.module.mjs +8 -12
  122. package/esm2022/src/app/core/table/table.utils.mjs +2 -4
  123. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +3 -3
  124. package/esm2022/src/app/core/table/testing/table.testing.mjs +9 -9
  125. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +8 -33
  126. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +4 -4
  127. package/esm2022/src/app/core/table/testing/table2.testing.mjs +28 -26
  128. package/esm2022/src/app/shared/alerts.mjs +37 -35
  129. package/esm2022/src/app/shared/audio/audio.mjs +25 -27
  130. package/esm2022/src/app/shared/audio/audio.testing.mjs +5 -5
  131. package/esm2022/src/app/shared/audio/audio.testing.module.mjs +10 -25
  132. package/esm2022/src/app/shared/capacitor/keyboard.mjs +5 -5
  133. package/esm2022/src/app/shared/capacitor/plugins.mjs +1 -1
  134. package/esm2022/src/app/shared/constants.mjs +2 -3
  135. package/esm2022/src/app/shared/dates.mjs +5 -8
  136. package/esm2022/src/app/shared/debug/debug-service.class.mjs +1 -1
  137. package/esm2022/src/app/shared/debug/debug.component.mjs +5 -5
  138. package/esm2022/src/app/shared/debug/debug.module.mjs +8 -29
  139. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +8 -12
  140. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +3 -3
  141. package/esm2022/src/app/shared/directives/directives.module.mjs +8 -29
  142. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +4 -4
  143. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +4 -4
  144. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +3 -3
  145. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +4 -4
  146. package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
  147. package/esm2022/src/app/shared/events.mjs +6 -8
  148. package/esm2022/src/app/shared/file/csv.utils.mjs +22 -18
  149. package/esm2022/src/app/shared/file/file.service.mjs +11 -15
  150. package/esm2022/src/app/shared/file/file.utils.mjs +13 -11
  151. package/esm2022/src/app/shared/file/images.utils.mjs +4 -4
  152. package/esm2022/src/app/shared/file/json.utils.mjs +3 -4
  153. package/esm2022/src/app/shared/file/uri.utils.mjs +1 -1
  154. package/esm2022/src/app/shared/focusable.mjs +1 -1
  155. package/esm2022/src/app/shared/form/field.component.mjs +33 -30
  156. package/esm2022/src/app/shared/form/field.model.mjs +4 -4
  157. package/esm2022/src/app/shared/form/loading-spinner.mjs +5 -5
  158. package/esm2022/src/app/shared/forms.mjs +30 -33
  159. package/esm2022/src/app/shared/functions.mjs +70 -65
  160. package/esm2022/src/app/shared/geolocation/geolocation.utils.mjs +14 -14
  161. package/esm2022/src/app/shared/gesture/gesture-config.mjs +9 -9
  162. package/esm2022/src/app/shared/gesture/hammer.utils.mjs +1 -1
  163. package/esm2022/src/app/shared/graph/colors.utils.mjs +14 -18
  164. package/esm2022/src/app/shared/graph/graph-colors.mjs +16 -22
  165. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +4 -4
  166. package/esm2022/src/app/shared/help/help.modal.mjs +6 -6
  167. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +5 -5
  168. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +10 -11
  169. package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +9 -27
  170. package/esm2022/src/app/shared/http/http.utils.mjs +1 -1
  171. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +28 -27
  172. package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +13 -10
  173. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +1 -1
  174. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +14 -17
  175. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +9 -13
  176. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +14 -11
  177. package/esm2022/src/app/shared/image/image.model.mjs +1 -1
  178. package/esm2022/src/app/shared/image/image.module.mjs +8 -13
  179. package/esm2022/src/app/shared/image/image.service.mjs +14 -12
  180. package/esm2022/src/app/shared/inputs.mjs +19 -20
  181. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +2 -3
  182. package/esm2022/src/app/shared/logging/log-level.model.mjs +1 -1
  183. package/esm2022/src/app/shared/logging/logger.model.mjs +2 -2
  184. package/esm2022/src/app/shared/logging/logging-service.class.mjs +17 -20
  185. package/esm2022/src/app/shared/logging/logging-service.module.mjs +6 -6
  186. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.config.mjs +7 -10
  187. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +87 -96
  188. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +9 -15
  189. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.utils.mjs +2 -2
  190. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +27 -26
  191. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +45 -19
  192. package/esm2022/src/app/shared/material/badge/badge.module.mjs +8 -20
  193. package/esm2022/src/app/shared/material/badge/badge.test.mjs +5 -5
  194. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +9 -13
  195. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +262 -0
  196. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +6 -6
  197. package/esm2022/src/app/shared/material/chips/chips.module.mjs +7 -11
  198. package/esm2022/src/app/shared/material/chips/material.chips.mjs +69 -70
  199. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +17 -17
  200. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +5 -5
  201. package/esm2022/src/app/shared/material/datetime/material.date.mjs +37 -36
  202. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +26 -33
  203. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +42 -38
  204. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +20 -17
  205. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +22 -20
  206. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +18 -17
  207. package/esm2022/src/app/shared/material/duration/duration.module.mjs +5 -5
  208. package/esm2022/src/app/shared/material/duration/duration.utils.mjs +3 -6
  209. package/esm2022/src/app/shared/material/duration/material.duration.mjs +23 -24
  210. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +17 -15
  211. package/esm2022/src/app/shared/material/latlong/latlong.utils.mjs +22 -24
  212. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +46 -41
  213. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +5 -5
  214. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +5 -5
  215. package/esm2022/src/app/shared/material/material.animations.mjs +22 -22
  216. package/esm2022/src/app/shared/material/material.module.mjs +11 -11
  217. package/esm2022/src/app/shared/material/material.testing.module.mjs +26 -27
  218. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +8 -14
  219. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +4 -4
  220. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +15 -11
  221. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +7 -11
  222. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +8 -8
  223. package/esm2022/src/app/shared/material/testing/common.test.mjs +17 -15
  224. package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +6 -6
  225. package/esm2022/src/app/shared/material/text/text-form.component.mjs +17 -16
  226. package/esm2022/src/app/shared/material/text/text-form.module.mjs +8 -8
  227. package/esm2022/src/app/shared/modules.mjs +1 -1
  228. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +6 -7
  229. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +1 -1
  230. package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +5 -5
  231. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +6 -6
  232. package/esm2022/src/app/shared/observables.mjs +14 -18
  233. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +38 -38
  234. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +5 -5
  235. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +8 -10
  236. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +14 -14
  237. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +6 -6
  238. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +6 -6
  239. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +6 -13
  240. package/esm2022/src/app/shared/pipes/form.pipes.mjs +25 -25
  241. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +14 -14
  242. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +14 -14
  243. package/esm2022/src/app/shared/pipes/maps.pipe.mjs +17 -17
  244. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +11 -14
  245. package/esm2022/src/app/shared/pipes/math.pipes.mjs +16 -16
  246. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +5 -5
  247. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +6 -6
  248. package/esm2022/src/app/shared/pipes/pipes.module.mjs +14 -22
  249. package/esm2022/src/app/shared/pipes/property.pipes.mjs +23 -25
  250. package/esm2022/src/app/shared/pipes/string.pipes.mjs +47 -48
  251. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +11 -11
  252. package/esm2022/src/app/shared/pipes/types.pipes.mjs +17 -17
  253. package/esm2022/src/app/shared/platforms.mjs +7 -5
  254. package/esm2022/src/app/shared/rx-state.module.mjs +7 -11
  255. package/esm2022/src/app/shared/services/entity-service.class.mjs +2 -2
  256. package/esm2022/src/app/shared/services/job.utils.mjs +7 -7
  257. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +37 -35
  258. package/esm2022/src/app/shared/services/progress-bar.service.mjs +4 -4
  259. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +11 -14
  260. package/esm2022/src/app/shared/services/startable-service.class.mjs +11 -17
  261. package/esm2022/src/app/shared/services/translate-context.service.mjs +17 -14
  262. package/esm2022/src/app/shared/services/validator-service.class.mjs +1 -1
  263. package/esm2022/src/app/shared/services.mjs +10 -10
  264. package/esm2022/src/app/shared/shared-routing.module.mjs +19 -18
  265. package/esm2022/src/app/shared/shared.module.mjs +30 -27
  266. package/esm2022/src/app/shared/shared.testing.module.mjs +6 -6
  267. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +26 -28
  268. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +8 -12
  269. package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +9 -17
  270. package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +10 -18
  271. package/esm2022/src/app/shared/storage/storage.service.mjs +4 -4
  272. package/esm2022/src/app/shared/storage/storage.utils.mjs +2 -2
  273. package/esm2022/src/app/shared/testing/observable.test.mjs +11 -13
  274. package/esm2022/src/app/shared/testing/tests.page.mjs +6 -6
  275. package/esm2022/src/app/shared/toast/toast.testing.mjs +10 -10
  276. package/esm2022/src/app/shared/toast/toast.testing.module.mjs +10 -25
  277. package/esm2022/src/app/shared/toast/toasts.mjs +9 -9
  278. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +9 -7
  279. package/esm2022/src/app/shared/toolbar/toolbar.mjs +10 -15
  280. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +8 -39
  281. package/esm2022/src/app/shared/types.mjs +1 -1
  282. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +8 -9
  283. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +10 -25
  284. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +7 -8
  285. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +17 -18
  286. package/esm2022/src/app/shared/upload-file/upload-file.model.mjs +2 -3
  287. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +52 -50
  288. package/esm2022/src/app/shared/validator/validators.mjs +30 -30
  289. package/esm2022/src/app/shared/version/versions.mjs +2 -2
  290. package/esm2022/src/app/social/job/job.module.mjs +8 -27
  291. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +9 -9
  292. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +27 -24
  293. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +5 -7
  294. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +1 -1
  295. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +21 -17
  296. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +5 -5
  297. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +7 -7
  298. package/esm2022/src/app/social/job/testing/job.testing.module.mjs +8 -21
  299. package/esm2022/src/app/social/message/message.form.mjs +5 -5
  300. package/esm2022/src/app/social/message/message.modal.mjs +8 -8
  301. package/esm2022/src/app/social/message/message.model.mjs +8 -8
  302. package/esm2022/src/app/social/message/message.module.mjs +4 -4
  303. package/esm2022/src/app/social/message/message.service.mjs +7 -7
  304. package/esm2022/src/app/social/social.errors.mjs +2 -2
  305. package/esm2022/src/app/social/social.module.mjs +7 -32
  306. package/esm2022/src/app/social/social.testing.module.mjs +9 -20
  307. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +17 -14
  308. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +19 -22
  309. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +47 -23
  310. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +8 -8
  311. package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +8 -21
  312. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +27 -15
  313. package/esm2022/src/app/social/user-event/user-event.model.mjs +1 -1
  314. package/esm2022/src/app/social/user-event/user-event.module.mjs +8 -28
  315. package/esm2022/src/app/social/user-event/user-event.service.mjs +56 -61
  316. package/esm2022/src/environments/environment.class.mjs +2 -1
  317. package/esm2022/src/environments/environment.loader.mjs +4 -4
  318. package/esm2022/src/environments/environment.mjs +2 -2
  319. package/fesm2022/sumaris-net.ngx-components.mjs +6263 -7492
  320. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  321. package/package.json +12 -7
  322. package/public_api.d.ts +3 -8
  323. package/src/app/admin/users/users.d.ts +3 -2
  324. package/src/app/core/core.module.d.ts +21 -24
  325. package/src/app/core/form/form.utils.d.ts +1 -1
  326. package/src/app/core/services/config/core.config.d.ts +1 -1
  327. package/src/app/core/services/config.service.d.ts +3 -3
  328. package/src/app/core/services/local-settings.service.d.ts +2 -3
  329. package/src/app/core/services/model/entity.model.d.ts +3 -2
  330. package/src/app/core/services/model/settings.model.d.ts +2 -2
  331. package/src/app/core/services/pipes/department-to-string.pipe.d.ts +1 -1
  332. package/src/app/core/services/pipes/pipes.module.d.ts +11 -0
  333. package/src/app/core/services/pipes/referential-to-string.pipe.d.ts +12 -0
  334. package/src/app/core/table/actions-column.component.d.ts +3 -1
  335. package/src/app/shared/events.d.ts +1 -1
  336. package/src/app/shared/functions.d.ts +6 -5
  337. package/src/app/shared/graph/graph-colors.d.ts +1 -1
  338. package/src/app/shared/image/gallery/image-gallery.component.d.ts +10 -10
  339. package/src/app/shared/image/gallery/image-gallery.module.d.ts +2 -1
  340. package/src/app/shared/image/gallery/testing/gallery.service.testing.d.ts +2 -2
  341. package/src/app/shared/image/gallery/testing/gallery.testing.module.d.ts +2 -1
  342. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +1 -1
  343. package/src/app/shared/material/boolean/boolean.module.d.ts +1 -1
  344. package/src/app/shared/material/boolean/{material-boolean.d.ts → material.boolean.d.ts} +2 -2
  345. package/src/app/shared/material/material.module.d.ts +5 -6
  346. package/src/app/shared/material/material.testing.module.d.ts +14 -15
  347. package/src/app/shared/material/swipe/material.swipe.d.ts +1 -1
  348. package/src/app/shared/pipes/pipes.module.d.ts +1 -1
  349. package/src/app/shared/pipes/string.pipes.d.ts +4 -5
  350. package/src/app/shared/validator/validators.d.ts +13 -4
  351. package/src/app/social/job/progression/job-progression.list.d.ts +1 -3
  352. package/src/app/social/message/message.modal.d.ts +2 -2
  353. package/src/app/social/user-event/testing/user-event.testing.d.ts +1 -0
  354. package/src/app/social/user-event/testing/user-event.testing.service.d.ts +1 -0
  355. package/src/assets/manifest.json +1 -1
  356. package/src/environments/environment.class.d.ts +1 -0
  357. package/src/theme/_ngx-components.scss +1 -25
  358. package/src/theme/_ngx-components.tabs.scss +361 -0
  359. package/src/theme/_theme.scss +1 -0
  360. package/esm2022/src/app/shared/material/boolean/material-boolean.mjs +0 -262
  361. package/esm2022/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +0 -104
  362. package/esm2022/src/app/shared/material/numpad/numpad.component.mjs +0 -83
  363. package/esm2022/src/app/shared/material/numpad/numpad.container.mjs +0 -203
  364. package/esm2022/src/app/shared/material/numpad/numpad.content.mjs +0 -19
  365. package/esm2022/src/app/shared/material/numpad/numpad.directive.mjs +0 -168
  366. package/esm2022/src/app/shared/material/numpad/numpad.dom-service.mjs +0 -36
  367. package/esm2022/src/app/shared/material/numpad/numpad.model.mjs +0 -16
  368. package/esm2022/src/app/shared/material/numpad/numpad.module.mjs +0 -60
  369. package/esm2022/src/app/shared/material/numpad/testing/numpad.test.mjs +0 -48
  370. package/src/app/shared/material/numpad/numpad.append-to-input.directive.d.ts +0 -22
  371. package/src/app/shared/material/numpad/numpad.component.d.ts +0 -26
  372. package/src/app/shared/material/numpad/numpad.container.d.ts +0 -40
  373. package/src/app/shared/material/numpad/numpad.content.d.ts +0 -7
  374. package/src/app/shared/material/numpad/numpad.directive.d.ts +0 -35
  375. package/src/app/shared/material/numpad/numpad.dom-service.d.ts +0 -16
  376. package/src/app/shared/material/numpad/numpad.model.d.ts +0 -30
  377. package/src/app/shared/material/numpad/numpad.module.d.ts +0 -16
  378. package/src/app/shared/material/numpad/testing/numpad.test.d.ts +0 -13
@@ -42,33 +42,37 @@ export const PersonFragments = {
42
42
  // Load persons query
43
43
  const PersonQueries = {
44
44
  loadAll: gql `
45
- query Persons($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){
46
- data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){
45
+ query Persons($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput) {
46
+ data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection) {
47
47
  ...PersonFragment
48
48
  }
49
49
  }
50
- ${PersonFragments.person}`,
50
+ ${PersonFragments.person}
51
+ `,
51
52
  loadAllWithTotal: gql `
52
- query PersonsWithTotal($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput){
53
- data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection){
53
+ query PersonsWithTotal($offset: Int, $size: Int, $sortBy: String, $sortDirection: String, $filter: PersonFilterVOInput) {
54
+ data: persons(filter: $filter, offset: $offset, size: $size, sortBy: $sortBy, sortDirection: $sortDirection) {
54
55
  ...PersonFragment
55
56
  }
56
57
  total: personsCount(filter: $filter)
57
58
  }
58
- ${PersonFragments.person}`
59
+ ${PersonFragments.person}
60
+ `,
59
61
  };
60
62
  const PersonMutations = {
61
63
  saveAll: gql `
62
- mutation savePersons($data:[PersonVOInput]){
63
- data: savePersons(persons: $data){
64
+ mutation savePersons($data: [PersonVOInput]) {
65
+ data: savePersons(persons: $data) {
64
66
  ...PersonFragment
65
67
  }
66
68
  }
67
- ${PersonFragments.person}`,
69
+ ${PersonFragments.person}
70
+ `,
68
71
  deleteAll: gql `
69
- mutation deletePersons($ids:[Int]){
72
+ mutation deletePersons($ids: [Int]) {
70
73
  deletePersons(ids: $ids)
71
- }`
74
+ }
75
+ `,
72
76
  };
73
77
  export class PersonService extends BaseEntityService {
74
78
  graphql;
@@ -80,7 +84,7 @@ export class PersonService extends BaseEntityService {
80
84
  queries: PersonQueries,
81
85
  mutations: PersonMutations,
82
86
  defaultSortBy: 'lastName',
83
- defaultSortDirection: 'asc'
87
+ defaultSortDirection: 'asc',
84
88
  });
85
89
  this.graphql = graphql;
86
90
  this.platform = platform;
@@ -103,51 +107,47 @@ export class PersonService extends BaseEntityService {
103
107
  size: size || 100,
104
108
  sortBy: sortBy || this.defaultSortBy,
105
109
  sortDirection: sortDirection || this.defaultSortDirection,
106
- filter: filter && filter.asFilterFn()
110
+ filter: filter && filter.asFilterFn(),
107
111
  };
108
112
  const { data, total } = await this.entities.loadAll('PersonVO', variables);
109
- const entities = (!opts || opts.toEntity !== false) ?
110
- (data || []).map(Person.fromObject) :
111
- (data || []);
113
+ const entities = !opts || opts.toEntity !== false ? (data || []).map(Person.fromObject) : (data || []);
112
114
  return {
113
115
  data: entities,
114
- total
116
+ total,
115
117
  };
116
118
  }
117
119
  async suggest(value, filter, sortBy, sortDirection) {
118
120
  if (EntityUtils.isNotEmpty(value, 'id'))
119
121
  return { data: [value] };
120
- value = (typeof value === 'string' && value !== '*') && value || undefined;
122
+ value = (typeof value === 'string' && value !== '*' && value) || undefined;
121
123
  sortBy = sortBy || filter.searchAttribute || (filter.searchAttributes && filter.searchAttributes[0]);
122
124
  return this.loadAll(0, !value ? 30 : 10, sortBy, sortDirection, {
123
125
  ...filter,
124
126
  searchText: value,
125
- statusIds: filter && filter.statusIds || [StatusIds.ENABLE, StatusIds.TEMPORARY],
126
- userProfiles: filter && filter.userProfiles
127
+ statusIds: (filter && filter.statusIds) || [StatusIds.ENABLE, StatusIds.TEMPORARY],
128
+ userProfiles: filter && filter.userProfiles,
127
129
  }, { withTotal: true /* need by autocomplete */ });
128
130
  }
129
131
  async executeImport(filter, opts) {
130
- const maxProgression = opts && opts.maxProgression || 100;
132
+ const maxProgression = (opts && opts.maxProgression) || 100;
131
133
  filter = {
132
134
  ...filter,
133
135
  statusIds: [StatusIds.ENABLE, StatusIds.TEMPORARY],
134
- userProfiles: ['SUPERVISOR', 'USER', 'GUEST']
136
+ userProfiles: ['SUPERVISOR', 'USER', 'GUEST'],
135
137
  };
136
138
  console.info('[person-service] Importing persons...');
137
139
  const res = await JobUtils.fetchAllPages((offset, size) => this.loadAll(offset, size, 'id', null, filter, {
138
140
  debug: false,
139
141
  fetchPolicy: 'network-only',
140
- withTotal: (offset === 0), // Compute total only once
141
- toEntity: false
142
+ withTotal: offset === 0, // Compute total only once
143
+ toEntity: false,
142
144
  }), { progression: opts?.progression, maxProgression: maxProgression * 0.9 });
143
145
  // Save result locally
144
146
  await this.entities.saveAll(res.data, { entityName: 'PersonVO', reset: true });
145
147
  }
146
148
  async loadByPubkey(pubkey, opts) {
147
149
  const { data } = await this.loadAll(0, 1, null, null, { pubkey }, { withTotal: false, ...opts });
148
- const entity = isNotEmptyArray(data)
149
- ? data[0]
150
- : opts?.toEntity !== false ? Person.fromObject({ pubkey }) : { pubkey };
150
+ const entity = isNotEmptyArray(data) ? data[0] : opts?.toEntity !== false ? Person.fromObject({ pubkey }) : { pubkey };
151
151
  return entity;
152
152
  }
153
153
  /* -- protected methods -- */
@@ -164,11 +164,11 @@ export class PersonService extends BaseEntityService {
164
164
  target.department = source.department && source.department.asObject(true);
165
165
  return target;
166
166
  }
167
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: PersonService, deps: [{ token: i1.GraphqlService }, { token: i2.PlatformService }, { token: i3.NetworkService }, { token: i4.EntitiesStorage }], target: i0.ɵɵFactoryTarget.Injectable });
168
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: PersonService, providedIn: 'root' });
167
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PersonService, deps: [{ token: i1.GraphqlService }, { token: i2.PlatformService }, { token: i3.NetworkService }, { token: i4.EntitiesStorage }], target: i0.ɵɵFactoryTarget.Injectable });
168
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PersonService, providedIn: 'root' });
169
169
  }
170
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: PersonService, decorators: [{
170
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PersonService, decorators: [{
171
171
  type: Injectable,
172
172
  args: [{ providedIn: 'root' }]
173
173
  }], ctorParameters: () => [{ type: i1.GraphqlService }, { type: i2.PlatformService }, { type: i3.NetworkService }, { type: i4.EntitiesStorage }] });
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2FkbWluL3NlcnZpY2VzL3BlcnNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFlLEdBQUcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBS3ZELE9BQU8sRUFBRSxNQUFNLEVBQW9CLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRWpFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUczRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JFLE9BQU8sRUFBOEIsaUJBQWlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM5RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFFekQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLE1BQU0sRUFBRSxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJWO0NBQ0YsQ0FBQztBQUVGLHFCQUFxQjtBQUNyQixNQUFNLGFBQWEsR0FBRztJQUNwQixPQUFPLEVBQUUsR0FBRyxDQUFBOzs7Ozs7TUFNUixlQUFlLENBQUMsTUFBTSxFQUFFO0lBRTVCLGdCQUFnQixFQUFFLEdBQUcsQ0FBQTs7Ozs7OztNQU9qQixlQUFlLENBQUMsTUFBTSxFQUFFO0NBQzdCLENBQUM7QUFHRixNQUFNLGVBQWUsR0FBK0I7SUFDbEQsT0FBTyxFQUFFLEdBQUcsQ0FBQTs7Ozs7O01BTVIs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QztJQUNoQixDQUFDO0lBRUQsNkJBQTZCO0lBRW5CLFFBQVEsQ0FBQyxNQUFvQjtRQUNyQyxJQUFJLENBQUMsTUFBTTtZQUFFLE9BQU8sU0FBUyxDQUFDO1FBRTlCLElBQUksQ0FBQyxDQUFDLE1BQU0sWUFBWSxNQUFNLENBQUMsRUFBRSxDQUFDO1lBQ2hDLE1BQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3JDLENBQUM7UUFDRCxNQUFNLE1BQU0sR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakMscUNBQXFDO1FBQ3JDLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQztRQUUxQiwrQkFBK0I7UUFDL0IsTUFBTSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7dUdBOUlVLGFBQWE7MkdBQWIsYUFBYSxjQURELE1BQU07OzJGQUNsQixhQUFhO2tCQUR6QixVQUFVO21CQUFDLEVBQUMsVUFBVSxFQUFFLE1BQU0sRUFBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZldGNoUG9saWN5LCBncWwgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgR3JhcGhxbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL2dyYXBocWwvZ3JhcGhxbC5zZXJ2aWNlJztcbmltcG9ydCB7IE5ldHdvcmtTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9uZXR3b3JrLnNlcnZpY2UnO1xuaW1wb3J0IHsgRW50aXRpZXNTdG9yYWdlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9zdG9yYWdlL2VudGl0aWVzLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBQZXJzb24sIFVzZXJQcm9maWxlTGFiZWwgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL3BlcnNvbi5tb2RlbCc7XG5pbXBvcnQgeyBTdGF0dXNJZHMgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL21vZGVsLmVudW0nO1xuaW1wb3J0IHsgU29ydERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgSm9iVXRpbHMgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvam9iLnV0aWxzJztcbmltcG9ydCB7IExvYWRSZXN1bHQsIFN1Z2dlc3RTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2VudGl0eS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IFBsYXRmb3JtU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvcGxhdGZvcm0uc2VydmljZSc7XG5pbXBvcnQgeyBQZXJzb25GaWx0ZXIgfSBmcm9tICcuL2ZpbHRlci9wZXJzb24uZmlsdGVyJztcbmltcG9ydCB7IEVudGl0eVV0aWxzIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgQmFzZUVudGl0eUdyYXBocWxNdXRhdGlvbnMsIEJhc2VFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9iYXNlLWVudGl0eS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IGVudmlyb25tZW50IH0gZnJvbSAnLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50JztcbmltcG9ydCB7IGlzTm90RW1wdHlBcnJheSB9IGZyb20gJy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuXG5leHBvcnQgY29uc3QgUGVyc29uRnJhZ21lbnRzID0ge1xuICBwZXJzb246IGdxbGBcbiAgICBmcmFnbWVudCBQZXJzb25GcmFnbWVudCBvbiBQZXJzb25WTyB7XG4gICAgICBpZFxuICAgICAgZmlyc3ROYW1lXG4gICAgICBsYXN0TmFtZVxuICAgICAgZW1haWxcbiAgICAgIHB1YmtleVxuICAgICAgYXZhdGFyXG4gICAgICBzdGF0dXNJZFxuICAgICAgdXBkYXRlRGF0ZVxuICAgICAgY3JlYXRpb25EYXRlXG4gICAgICBwcm9maWxlc1xuICAgICAgdXNlcm5hbWVcbiAgICAgIHVzZXJuYW1lRXh0cmFuZXRcbiAgICAgIGRlcGFydG1lbnQge1xuICAgICAgICBpZFxuICAgICAgICBsYWJlbFxuICAgICAgICBuYW1lXG4gICAgICAgIGxvZ29cbiAgICAgICAgX190eXBlbmFtZVxuICAgICAgfVxuICAgICAgX190eXBlbmFtZVxuICAgIH1cbiAgYCxcbn07XG5cbi8vIExvYWQgcGVyc29ucyBxdWVyeVxuY29uc3QgUGVyc29uUXVlcmllcyA9IHtcbiAgbG9hZEFsbDogZ3FsYFxuICAgIHF1ZXJ5IFBlcnNvbnMoJG9mZnNldDogSW50LCAkc2l6ZTogSW50LCAkc29ydEJ5OiBTdHJpbmcsICRzb3J0RGlyZWN0aW9uOiBTdHJpbmcsICRmaWx0ZXI6IFBlcnNvbkZpbHRlclZPSW5wdXQpe1xuICAgICAgZGF0YTogcGVyc29ucyhmaWx0ZXI6ICRmaWx0ZXIsIG9mZnNldDogJG9mZnNldCwgc2l6ZTogJHNpemUsIHNvcnRCeTogJHNvcnRCeSwgc29ydERpcmVjdGlvbjogJHNvcnREaXJlY3Rpb24pe1xuICAgICAgICAuLi5QZXJzb25GcmFnbWVudFxuICAgICAgfVxuICAgIH1cbiAgICAke1BlcnNvbkZyYWdtZW50cy5wZXJzb259YCxcblxuICBsb2FkQWxsV2l0aFRvdGFsOiBncWxgXG4gICAgcXVlcnkgUGVyc29uc1dpdGhUb3RhbCgkb2Zmc2V0OiBJbnQsICRzaXplOiBJbnQsICRzb3J0Qnk6IFN0cmluZywgJHNvcnREaXJlY3Rpb246IFN0cmluZywgJGZpbHRlcjogUGVyc29uRmlsdGVyVk9JbnB1dCl7XG4gICAgICBkYXRhOiBwZXJzb25zKGZpbHRlcjogJGZpbHRlciwgb2Zmc2V0OiAkb2Zmc2V0LCBzaXplOiAkc2l6ZSwgc29ydEJ5OiAkc29ydEJ5LCBzb3J0RGlyZWN0aW9uOiAkc29ydERpcmVjdGlvbil7XG4gICAgICAgIC4uLlBlcnNvbkZyYWdtZW50XG4gICAgICB9XG4gICAgICB0b3RhbDogcGVyc29uc0NvdW50KGZpbHRlcjogJGZpbHRlcilcbiAgICB9XG4gICAgJHtQZXJzb25GcmFnbWVudHMucGVyc29ufWBcbn07XG5cblxuY29uc3QgUGVyc29uTXV0YXRpb25zOiBCYXNlRW50aXR5R3JhcGhxbE11dGF0aW9ucyA9IHtcbiAgc2F2ZUFsbDogZ3FsYFxuICAgIG11dGF0aW9uIHNhdmVQZXJzb25zKCRkYXRhOltQZXJzb25WT0lucHV0XSl7XG4gICAgICBkYXRhOiBzYXZlUGVyc29ucyhwZXJzb25zOiAkZGF0YSl7XG4gICAgICAgIC4uLlBlcnNvbkZyYWdtZW50XG4gICAgICB9XG4gICAgfVxuICAgICR7UGVyc29uRnJhZ21lbnRzLnBlcnNvbn1gLFxuICBkZWxldGVBbGw6IGdxbGBcbiAgICBtdXRhdGlvbiBkZWxldGVQZXJzb25zKCRpZHM6W0ludF0pe1xuICAgICAgZGVsZXRlUGVyc29ucyhpZHM6ICRpZHMpXG4gICAgfWBcbn07XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFBlcnNvblNlcnZpY2UgZXh0ZW5kcyBCYXNlRW50aXR5U2VydmljZTxQZXJzb24sIFBlcnNvbkZpbHRlcj5cbiAgaW1wbGVtZW50cyBTdWdnZXN0U2VydmljZTxQZXJzb24sIFBlcnNvbkZpbHRlcj4ge1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBncmFwaHFsOiBHcmFwaHFsU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcGxhdGZvcm06IFBsYXRmb3JtU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgbmV0d29yazogTmV0d29ya1NlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGVudGl0aWVzOiBFbnRpdGllc1N0b3JhZ2VcbiAgKSB7XG4gICAgc3VwZXIoZ3JhcGhxbCwgcGxhdGZvcm0sIFBlcnNvbiwgUGVyc29uRmlsdGVyLCB7XG4gICAgICBxdWVyaWVzOiBQZXJzb25RdWVyaWVzLFxuICAgICAgbXV0YXRpb25zOiBQZXJzb25NdXRhdGlvbnMsXG4gICAgICBkZWZhdWx0U29ydEJ5OiAnbGFzdE5hbWUnLFxuICAgICAgZGVmYXVsdFNvcnREaXJlY3Rpb246ICdhc2MnXG4gICAgfSk7XG5cbiAgICAvLyBmb3IgREVWIG9ubHkgLS0tLS1cbiAgICB0aGlzLl9kZWJ1ZyA9ICFlbnZpcm9ubWVudC5wcm9kdWN0aW9uO1xuICB9XG5cbiAgYXN5bmMgbG9hZEFsbChvZmZzZXQ6IG51bWJlciwgc2l6ZTogbnVtYmVyLCBzb3J0Qnk/OiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sXG4gICAgICAgICAgICAgICAgZmlsdGVyPzogUGFydGlhbDxQZXJzb25GaWx0ZXI+LCBvcHRzPzoge1xuICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICAgIGZldGNoUG9saWN5PzogRmV0Y2hQb2xpY3k7XG4gICAgICAgIGRlYnVnPzogYm9vbGVhbjtcbiAgICAgICAgd2l0aFRvdGFsPzogYm9vbGVhbjtcbiAgICAgICAgdG9FbnRpdHk/OiBib29sZWFuO1xuICAgICAgfSk6IFByb21pc2U8TG9hZFJlc3VsdDxQZXJzb24+PiB7XG5cbiAgICBjb25zdCBvZmZsaW5lID0gdGhpcy5uZXR3b3JrLm9mZmxpbmUgJiYgKCFvcHRzIHx8IG9wdHMuZmV0Y2hQb2xpY3kgIT09ICduZXR3b3JrLW9ubHknKTtcbiAgICBpZiAob2ZmbGluZSkge1xuICAgICAgcmV0dXJuIHRoaXMubG9hZEFsbExvY2FsbHkob2Zmc2V0LCBzaXplLCBzb3J0QnksIHNvcnREaXJlY3Rpb24sIGZpbHRlciwgb3B0cyk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHN1cGVyLmxvYWRBbGwob2Zmc2V0LCBzaXplLCBzb3J0QnksIHNvcnREaXJlY3Rpb24sIGZpbHRlciwgb3B0cyk7XG4gIH1cblxuICBhc3luYyBsb2FkQWxsTG9jYWxseShvZmZzZXQ6IG51bWJlciwgc2l6ZTogbnVtYmVyLCBzb3J0Qnk/OiBzdHJpbmcsIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLFxuICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXI/OiBQYXJ0aWFsPFBlcnNvbkZpbHRlcj4sXG4gICAgICAgICAgICAgICAgICAgICAgIG9wdHM/OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgICAgICAgICAgICAgICAgICAgIGZldGNoUG9saWN5PzogRmV0Y2hQb2xpY3k7XG4gICAgICAgICAgICAgICAgICAgICAgICAgZGVidWc/OiBib29sZWFuO1xuICAgICAgICAgICAgICAgICAgICAgICAgIHdpdGhUb3RhbD86IGJvb2xlYW47XG4gICAgICAgICAgICAgICAgICAgICAgICAgdG9FbnRpdHk/OiBib29sZWFuO1xuICAgICAgICAgICAgICAgICAgICAgICB9KTogUHJvbWlzZTxMb2FkUmVzdWx0PFBlcnNvbj4+IHtcblxuICAgIGZpbHRlciA9IHRoaXMuYXNGaWx0ZXIoZmlsdGVyKTtcblxuICAgIGNvbnN0IHZhcmlhYmxlcyA9IHtcbiAgICAgIG9mZnNldDogb2Zmc2V0IHx8IDAsXG4gICAgICBzaXplOiBzaXplIHx8IDEwMCxcbiAgICAgIHNvcnRCeTogc29ydEJ5IHx8IHRoaXMuZGVmYXVsdFNvcnRCeSxcbiAgICAgIHNvcnREaXJlY3Rpb246IHNvcnREaXJlY3Rpb24gfHwgdGhpcy5kZWZhdWx0U29ydERpcmVjdGlvbixcbiAgICAgIGZpbHRlcjogZmlsdGVyICYmIGZpbHRlci5hc0ZpbHRlckZuKClcbiAgICB9O1xuXG4gICAgY29uc3Qge2RhdGEsIHRvdGFsfSA9IGF3YWl0IHRoaXMuZW50aXRpZXMubG9hZEFsbDxQZXJzb24+KCdQZXJzb25WTycsIHZhcmlhYmxlcyk7XG5cbiAgICBjb25zdCBlbnRpdGllcyA9ICghb3B0cyB8fCBvcHRzLnRvRW50aXR5ICE9PSBmYWxzZSkgP1xuICAgICAgKGRhdGEgfHwgW10pLm1hcChQZXJzb24uZnJvbU9iamVjdCkgOlxuICAgICAgKGRhdGEgfHwgW10pIGFzIFBlcnNvbltdO1xuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiBlbnRpdGllcyxcbiAgICAgIHRvdGFsXG4gICAgfTtcbiAgfVxuXG4gIGFzeW5jIHN1Z2dlc3QodmFsdWU6IGFueSwgZmlsdGVyPzogUGVyc29uRmlsdGVyLCBzb3J0Qnk/OiBzdHJpbmcsIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uKTogUHJvbWlzZTxMb2FkUmVzdWx0PFBlcnNvbj4+IHtcbiAgICBpZiAoRW50aXR5VXRpbHMuaXNOb3RFbXB0eSh2YWx1ZSwgJ2lkJykpIHJldHVybiB7ZGF0YTogW3ZhbHVlXX07XG4gICAgdmFsdWUgPSAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZSAhPT0gJyonKSAmJiB2YWx1ZSB8fCB1bmRlZmluZWQ7XG4gICAgc29ydEJ5ID0gc29ydEJ5IHx8IGZpbHRlci5zZWFyY2hBdHRyaWJ1dGUgfHwgKGZpbHRlci5zZWFyY2hBdHRyaWJ1dGVzICYmIGZpbHRlci5zZWFyY2hBdHRyaWJ1dGVzWzBdKTtcbiAgICByZXR1cm4gdGhpcy5sb2FkQWxsKDAsICF2YWx1ZSA/IDMwIDogMTAsIHNvcnRCeSwgc29ydERpcmVjdGlvbixcbiAgICAgIHtcbiAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICBzZWFyY2hUZXh0OiB2YWx1ZSBhcyBzdHJpbmcsXG4gICAgICAgIHN0YXR1c0lkczogZmlsdGVyICYmIGZpbHRlci5zdGF0dXNJZHMgfHwgW1N0YXR1c0lkcy5FTkFCTEUsIFN0YXR1c0lkcy5URU1QT1JBUlldLFxuICAgICAgICB1c2VyUHJvZmlsZXM6IGZpbHRlciAmJiBmaWx0ZXIudXNlclByb2ZpbGVzXG4gICAgICB9LFxuICAgICAgeyB3aXRoVG90YWw6IHRydWUgLyogbmVlZCBieSBhdXRvY29tcGxldGUgKi8gfVxuICAgICAgKTtcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVJbXBvcnQoZmlsdGVyOiBQYXJ0aWFsPFBlcnNvbkZpbHRlcj4sXG4gICAgICAgICAgICAgICAgICAgICAgb3B0czoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvZ3Jlc3Npb24/OiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPjtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1heFByb2dyZXNzaW9uPzogbnVtYmVyO1xuICAgICAgICAgICAgICAgICAgICAgIH0pOiBQcm9taXNlPHZvaWQ+IHtcblxuICAgIGNvbnN0IG1heFByb2dyZXNzaW9uID0gb3B0cyAmJiBvcHRzLm1heFByb2dyZXNzaW9uIHx8IDEwMDtcbiAgICBmaWx0ZXIgPSB7XG4gICAgICAuLi5maWx0ZXIsXG4gICAgICBzdGF0dXNJZHM6IFtTdGF0dXNJZHMuRU5BQkxFLCBTdGF0dXNJZHMuVEVNUE9SQVJZXSxcbiAgICAgIHVzZXJQcm9maWxlczogPFVzZXJQcm9maWxlTGFiZWxbXT5bJ1NVUEVSVklTT1InLCAnVVNFUicsICdHVUVTVCddXG4gICAgfTtcblxuICAgIGNvbnNvbGUuaW5mbygnW3BlcnNvbi1zZXJ2aWNlXSBJbXBvcnRpbmcgcGVyc29ucy4uLicpO1xuXG4gICAgY29uc3QgcmVzID0gYXdhaXQgSm9iVXRpbHMuZmV0Y2hBbGxQYWdlcygob2Zmc2V0LCBzaXplKSA9PlxuICAgICAgICB0aGlzLmxvYWRBbGwob2Zmc2V0LCBzaXplLCAnaWQnLCBudWxsLCBmaWx0ZXIsIHtcbiAgICAgICAgICBkZWJ1ZzogZmFsc2UsXG4gICAgICAgICAgZmV0Y2hQb2xpY3k6ICduZXR3b3JrLW9ubHknLFxuICAgICAgICAgIHdpdGhUb3RhbDogKG9mZnNldCA9PT0gMCksIC8vIENvbXB1dGUgdG90YWwgb25seSBvbmNlXG4gICAgICAgICAgdG9FbnRpdHk6IGZhbHNlXG4gICAgICAgIH0pLFxuICAgICAge3Byb2dyZXNzaW9uOiBvcHRzPy5wcm9ncmVzc2lvbiwgbWF4UHJvZ3Jlc3Npb246IG1heFByb2dyZXNzaW9uICogMC45fVxuICAgICk7XG5cbiAgICAvLyBTYXZlIHJlc3VsdCBsb2NhbGx5XG4gICAgYXdhaXQgdGhpcy5lbnRpdGllcy5zYXZlQWxsKHJlcy5kYXRhLCB7ZW50aXR5TmFtZTogJ1BlcnNvblZPJywgcmVzZXQ6IHRydWV9KTtcbiAgfVxuXG4gIGFzeW5jIGxvYWRCeVB1YmtleShwdWJrZXk6IHN0cmluZywgb3B0cz86IHtcbiAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgIGZldGNoUG9saWN5PzogRmV0Y2hQb2xpY3k7XG4gICAgICB0b0VudGl0eT86IGJvb2xlYW47XG4gICAgfSk6IFByb21pc2U8UGVyc29uPiB7XG4gICAgY29uc3Qge2RhdGF9ID0gYXdhaXQgdGhpcy5sb2FkQWxsKDAsIDEsIG51bGwsICBudWxsLCB7cHVia2V5fSwge3dpdGhUb3RhbDogZmFsc2UsIC4uLm9wdHN9KTtcbiAgICBjb25zdCBlbnRpdHkgPSBpc05vdEVtcHR5QXJyYXkoZGF0YSlcbiAgICAgID8gZGF0YVswXVxuICAgICAgOiBvcHRzPy50b0VudGl0eSAhPT0gZmFsc2UgPyBQZXJzb24uZnJvbU9iamVjdCh7cHVia2V5fSkgOiB7cHVia2V5fSBhcyBQZXJzb247XG4gICAgcmV0dXJuIGVudGl0eTtcbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBtZXRob2RzIC0tICovXG5cbiAgcHJvdGVjdGVkIGFzT2JqZWN0KHNvdXJjZTogUGVyc29uIHwgYW55KTogYW55IHtcbiAgICBpZiAoIXNvdXJjZSkgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGlmICghKHNvdXJjZSBpbnN0YW5jZW9mIFBlcnNvbikpIHtcbiAgICAgIHNvdXJjZSA9IFBlcnNvbi5mcm9tT2JqZWN0KHNvdXJjZSk7XG4gICAgfVxuICAgIGNvbnN0IHRhcmdldCA9IHNvdXJjZS5hc09iamVjdCgpO1xuXG4gICAgLy8gTm90IGtub3duIGluIHNlcnZlciBHcmFwaFFMIHNjaGVtYVxuICAgIGRlbGV0ZSB0YXJnZXQubWFpblByb2ZpbGU7XG5cbiAgICAvLyBNaW5pZnkgdGhlIGRlcGFydG1lbnQgb2JqZWN0XG4gICAgdGFyZ2V0LmRlcGFydG1lbnQgPSBzb3VyY2UuZGVwYXJ0bWVudCAmJiBzb3VyY2UuZGVwYXJ0bWVudC5hc09iamVjdCh0cnVlKTtcblxuICAgIHJldHVybiB0YXJnZXQ7XG4gIH1cblxufVxuIl19
174
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL2FkbWluL3NlcnZpY2VzL3BlcnNvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFlLEdBQUcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBS3ZELE9BQU8sRUFBRSxNQUFNLEVBQW9CLE1BQU0sd0NBQXdDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRWpFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUczRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JFLE9BQU8sRUFBOEIsaUJBQWlCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM5RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDaEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFFekQsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHO0lBQzdCLE1BQU0sRUFBRSxHQUFHLENBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdUJWO0NBQ0YsQ0FBQztBQUVGLHFCQUFxQjtBQUNyQixNQUFNLGFBQWEsR0FBRztJQUNwQixPQUFPLEVBQUUsR0FBRyxDQUFBOzs7Ozs7TUFNUixlQUFlLENBQUMsTUFBTTtHQUN6QjtJQUVELGdCQUFnQixFQUFFLEdBQUcsQ0FBQTs7Ozs7OztNQU9qQixlQUFlLENBQUMsTUFBTTtHQUN6QjtDQUNGLENBQUM7QUFFRixNQUFNLGVBQWUsR0FBK0I7SUFDbEQsT0FBTyxFQUFFLEdBQUcsQ0FBQTs7Ozs7O01BTVIs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SUFDaEIsQ0FBQztJQUVELDZCQUE2QjtJQUVuQixRQUFRLENBQUMsTUFBb0I7UUFDckMsSUFBSSxDQUFDLE1BQU07WUFBRSxPQUFPLFNBQVMsQ0FBQztRQUU5QixJQUFJLENBQUMsQ0FBQyxNQUFNLFlBQVksTUFBTSxDQUFDLEVBQUUsQ0FBQztZQUNoQyxNQUFNLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxDQUFDO1FBQ0QsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpDLHFDQUFxQztRQUNyQyxPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQUM7UUFFMUIsK0JBQStCO1FBQy9CLE1BQU0sQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUxRSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO3VHQXpKVSxhQUFhOzJHQUFiLGFBQWEsY0FEQSxNQUFNOzsyRkFDbkIsYUFBYTtrQkFEekIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGZXRjaFBvbGljeSwgZ3FsIH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEdyYXBocWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9ncmFwaHFsL2dyYXBocWwuc2VydmljZSc7XG5pbXBvcnQgeyBOZXR3b3JrU2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbmV0d29yay5zZXJ2aWNlJztcbmltcG9ydCB7IEVudGl0aWVzU3RvcmFnZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvc3RvcmFnZS9lbnRpdGllcy1zdG9yYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVyc29uLCBVc2VyUHJvZmlsZUxhYmVsIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9wZXJzb24ubW9kZWwnO1xuaW1wb3J0IHsgU3RhdHVzSWRzIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9tb2RlbC5lbnVtJztcbmltcG9ydCB7IFNvcnREaXJlY3Rpb24gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9zb3J0JztcbmltcG9ydCB7IEpvYlV0aWxzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2pvYi51dGlscyc7XG5pbXBvcnQgeyBMb2FkUmVzdWx0LCBTdWdnZXN0U2VydmljZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3BsYXRmb3JtLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGVyc29uRmlsdGVyIH0gZnJvbSAnLi9maWx0ZXIvcGVyc29uLmZpbHRlcic7XG5pbXBvcnQgeyBFbnRpdHlVdGlscyB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IEJhc2VFbnRpdHlHcmFwaHFsTXV0YXRpb25zLCBCYXNlRW50aXR5U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvYmFzZS1lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBlbnZpcm9ubWVudCB9IGZyb20gJy4uLy4uLy4uL2Vudmlyb25tZW50cy9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBpc05vdEVtcHR5QXJyYXkgfSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcblxuZXhwb3J0IGNvbnN0IFBlcnNvbkZyYWdtZW50cyA9IHtcbiAgcGVyc29uOiBncWxgXG4gICAgZnJhZ21lbnQgUGVyc29uRnJhZ21lbnQgb24gUGVyc29uVk8ge1xuICAgICAgaWRcbiAgICAgIGZpcnN0TmFtZVxuICAgICAgbGFzdE5hbWVcbiAgICAgIGVtYWlsXG4gICAgICBwdWJrZXlcbiAgICAgIGF2YXRhclxuICAgICAgc3RhdHVzSWRcbiAgICAgIHVwZGF0ZURhdGVcbiAgICAgIGNyZWF0aW9uRGF0ZVxuICAgICAgcHJvZmlsZXNcbiAgICAgIHVzZXJuYW1lXG4gICAgICB1c2VybmFtZUV4dHJhbmV0XG4gICAgICBkZXBhcnRtZW50IHtcbiAgICAgICAgaWRcbiAgICAgICAgbGFiZWxcbiAgICAgICAgbmFtZVxuICAgICAgICBsb2dvXG4gICAgICAgIF9fdHlwZW5hbWVcbiAgICAgIH1cbiAgICAgIF9fdHlwZW5hbWVcbiAgICB9XG4gIGAsXG59O1xuXG4vLyBMb2FkIHBlcnNvbnMgcXVlcnlcbmNvbnN0IFBlcnNvblF1ZXJpZXMgPSB7XG4gIGxvYWRBbGw6IGdxbGBcbiAgICBxdWVyeSBQZXJzb25zKCRvZmZzZXQ6IEludCwgJHNpemU6IEludCwgJHNvcnRCeTogU3RyaW5nLCAkc29ydERpcmVjdGlvbjogU3RyaW5nLCAkZmlsdGVyOiBQZXJzb25GaWx0ZXJWT0lucHV0KSB7XG4gICAgICBkYXRhOiBwZXJzb25zKGZpbHRlcjogJGZpbHRlciwgb2Zmc2V0OiAkb2Zmc2V0LCBzaXplOiAkc2l6ZSwgc29ydEJ5OiAkc29ydEJ5LCBzb3J0RGlyZWN0aW9uOiAkc29ydERpcmVjdGlvbikge1xuICAgICAgICAuLi5QZXJzb25GcmFnbWVudFxuICAgICAgfVxuICAgIH1cbiAgICAke1BlcnNvbkZyYWdtZW50cy5wZXJzb259XG4gIGAsXG5cbiAgbG9hZEFsbFdpdGhUb3RhbDogZ3FsYFxuICAgIHF1ZXJ5IFBlcnNvbnNXaXRoVG90YWwoJG9mZnNldDogSW50LCAkc2l6ZTogSW50LCAkc29ydEJ5OiBTdHJpbmcsICRzb3J0RGlyZWN0aW9uOiBTdHJpbmcsICRmaWx0ZXI6IFBlcnNvbkZpbHRlclZPSW5wdXQpIHtcbiAgICAgIGRhdGE6IHBlcnNvbnMoZmlsdGVyOiAkZmlsdGVyLCBvZmZzZXQ6ICRvZmZzZXQsIHNpemU6ICRzaXplLCBzb3J0Qnk6ICRzb3J0QnksIHNvcnREaXJlY3Rpb246ICRzb3J0RGlyZWN0aW9uKSB7XG4gICAgICAgIC4uLlBlcnNvbkZyYWdtZW50XG4gICAgICB9XG4gICAgICB0b3RhbDogcGVyc29uc0NvdW50KGZpbHRlcjogJGZpbHRlcilcbiAgICB9XG4gICAgJHtQZXJzb25GcmFnbWVudHMucGVyc29ufVxuICBgLFxufTtcblxuY29uc3QgUGVyc29uTXV0YXRpb25zOiBCYXNlRW50aXR5R3JhcGhxbE11dGF0aW9ucyA9IHtcbiAgc2F2ZUFsbDogZ3FsYFxuICAgIG11dGF0aW9uIHNhdmVQZXJzb25zKCRkYXRhOiBbUGVyc29uVk9JbnB1dF0pIHtcbiAgICAgIGRhdGE6IHNhdmVQZXJzb25zKHBlcnNvbnM6ICRkYXRhKSB7XG4gICAgICAgIC4uLlBlcnNvbkZyYWdtZW50XG4gICAgICB9XG4gICAgfVxuICAgICR7UGVyc29uRnJhZ21lbnRzLnBlcnNvbn1cbiAgYCxcbiAgZGVsZXRlQWxsOiBncWxgXG4gICAgbXV0YXRpb24gZGVsZXRlUGVyc29ucygkaWRzOiBbSW50XSkge1xuICAgICAgZGVsZXRlUGVyc29ucyhpZHM6ICRpZHMpXG4gICAgfVxuICBgLFxufTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBQZXJzb25TZXJ2aWNlIGV4dGVuZHMgQmFzZUVudGl0eVNlcnZpY2U8UGVyc29uLCBQZXJzb25GaWx0ZXI+IGltcGxlbWVudHMgU3VnZ2VzdFNlcnZpY2U8UGVyc29uLCBQZXJzb25GaWx0ZXI+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGdyYXBocWw6IEdyYXBocWxTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBwbGF0Zm9ybTogUGxhdGZvcm1TZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBuZXR3b3JrOiBOZXR3b3JrU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgZW50aXRpZXM6IEVudGl0aWVzU3RvcmFnZVxuICApIHtcbiAgICBzdXBlcihncmFwaHFsLCBwbGF0Zm9ybSwgUGVyc29uLCBQZXJzb25GaWx0ZXIsIHtcbiAgICAgIHF1ZXJpZXM6IFBlcnNvblF1ZXJpZXMsXG4gICAgICBtdXRhdGlvbnM6IFBlcnNvbk11dGF0aW9ucyxcbiAgICAgIGRlZmF1bHRTb3J0Qnk6ICdsYXN0TmFtZScsXG4gICAgICBkZWZhdWx0U29ydERpcmVjdGlvbjogJ2FzYycsXG4gICAgfSk7XG5cbiAgICAvLyBmb3IgREVWIG9ubHkgLS0tLS1cbiAgICB0aGlzLl9kZWJ1ZyA9ICFlbnZpcm9ubWVudC5wcm9kdWN0aW9uO1xuICB9XG5cbiAgYXN5bmMgbG9hZEFsbChcbiAgICBvZmZzZXQ6IG51bWJlcixcbiAgICBzaXplOiBudW1iZXIsXG4gICAgc29ydEJ5Pzogc3RyaW5nLFxuICAgIHNvcnREaXJlY3Rpb24/OiBTb3J0RGlyZWN0aW9uLFxuICAgIGZpbHRlcj86IFBhcnRpYWw8UGVyc29uRmlsdGVyPixcbiAgICBvcHRzPzoge1xuICAgICAgW2tleTogc3RyaW5nXTogYW55O1xuICAgICAgZmV0Y2hQb2xpY3k/OiBGZXRjaFBvbGljeTtcbiAgICAgIGRlYnVnPzogYm9vbGVhbjtcbiAgICAgIHdpdGhUb3RhbD86IGJvb2xlYW47XG4gICAgICB0b0VudGl0eT86IGJvb2xlYW47XG4gICAgfVxuICApOiBQcm9taXNlPExvYWRSZXN1bHQ8UGVyc29uPj4ge1xuICAgIGNvbnN0IG9mZmxpbmUgPSB0aGlzLm5ldHdvcmsub2ZmbGluZSAmJiAoIW9wdHMgfHwgb3B0cy5mZXRjaFBvbGljeSAhPT0gJ25ldHdvcmstb25seScpO1xuICAgIGlmIChvZmZsaW5lKSB7XG4gICAgICByZXR1cm4gdGhpcy5sb2FkQWxsTG9jYWxseShvZmZzZXQsIHNpemUsIHNvcnRCeSwgc29ydERpcmVjdGlvbiwgZmlsdGVyLCBvcHRzKTtcbiAgICB9XG5cbiAgICByZXR1cm4gc3VwZXIubG9hZEFsbChvZmZzZXQsIHNpemUsIHNvcnRCeSwgc29ydERpcmVjdGlvbiwgZmlsdGVyLCBvcHRzKTtcbiAgfVxuXG4gIGFzeW5jIGxvYWRBbGxMb2NhbGx5KFxuICAgIG9mZnNldDogbnVtYmVyLFxuICAgIHNpemU6IG51bWJlcixcbiAgICBzb3J0Qnk/OiBzdHJpbmcsXG4gICAgc29ydERpcmVjdGlvbj86IFNvcnREaXJlY3Rpb24sXG4gICAgZmlsdGVyPzogUGFydGlhbDxQZXJzb25GaWx0ZXI+LFxuICAgIG9wdHM/OiB7XG4gICAgICBba2V5OiBzdHJpbmddOiBhbnk7XG4gICAgICBmZXRjaFBvbGljeT86IEZldGNoUG9saWN5O1xuICAgICAgZGVidWc/OiBib29sZWFuO1xuICAgICAgd2l0aFRvdGFsPzogYm9vbGVhbjtcbiAgICAgIHRvRW50aXR5PzogYm9vbGVhbjtcbiAgICB9XG4gICk6IFByb21pc2U8TG9hZFJlc3VsdDxQZXJzb24+PiB7XG4gICAgZmlsdGVyID0gdGhpcy5hc0ZpbHRlcihmaWx0ZXIpO1xuXG4gICAgY29uc3QgdmFyaWFibGVzID0ge1xuICAgICAgb2Zmc2V0OiBvZmZzZXQgfHwgMCxcbiAgICAgIHNpemU6IHNpemUgfHwgMTAwLFxuICAgICAgc29ydEJ5OiBzb3J0QnkgfHwgdGhpcy5kZWZhdWx0U29ydEJ5LFxuICAgICAgc29ydERpcmVjdGlvbjogc29ydERpcmVjdGlvbiB8fCB0aGlzLmRlZmF1bHRTb3J0RGlyZWN0aW9uLFxuICAgICAgZmlsdGVyOiBmaWx0ZXIgJiYgZmlsdGVyLmFzRmlsdGVyRm4oKSxcbiAgICB9O1xuXG4gICAgY29uc3QgeyBkYXRhLCB0b3RhbCB9ID0gYXdhaXQgdGhpcy5lbnRpdGllcy5sb2FkQWxsPFBlcnNvbj4oJ1BlcnNvblZPJywgdmFyaWFibGVzKTtcblxuICAgIGNvbnN0IGVudGl0aWVzID0gIW9wdHMgfHwgb3B0cy50b0VudGl0eSAhPT0gZmFsc2UgPyAoZGF0YSB8fCBbXSkubWFwKFBlcnNvbi5mcm9tT2JqZWN0KSA6ICgoZGF0YSB8fCBbXSkgYXMgUGVyc29uW10pO1xuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiBlbnRpdGllcyxcbiAgICAgIHRvdGFsLFxuICAgIH07XG4gIH1cblxuICBhc3luYyBzdWdnZXN0KHZhbHVlOiBhbnksIGZpbHRlcj86IFBlcnNvbkZpbHRlciwgc29ydEJ5Pzogc3RyaW5nLCBzb3J0RGlyZWN0aW9uPzogU29ydERpcmVjdGlvbik6IFByb21pc2U8TG9hZFJlc3VsdDxQZXJzb24+PiB7XG4gICAgaWYgKEVudGl0eVV0aWxzLmlzTm90RW1wdHkodmFsdWUsICdpZCcpKSByZXR1cm4geyBkYXRhOiBbdmFsdWVdIH07XG4gICAgdmFsdWUgPSAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiB2YWx1ZSAhPT0gJyonICYmIHZhbHVlKSB8fCB1bmRlZmluZWQ7XG4gICAgc29ydEJ5ID0gc29ydEJ5IHx8IGZpbHRlci5zZWFyY2hBdHRyaWJ1dGUgfHwgKGZpbHRlci5zZWFyY2hBdHRyaWJ1dGVzICYmIGZpbHRlci5zZWFyY2hBdHRyaWJ1dGVzWzBdKTtcbiAgICByZXR1cm4gdGhpcy5sb2FkQWxsKFxuICAgICAgMCxcbiAgICAgICF2YWx1ZSA/IDMwIDogMTAsXG4gICAgICBzb3J0QnksXG4gICAgICBzb3J0RGlyZWN0aW9uLFxuICAgICAge1xuICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgIHNlYXJjaFRleHQ6IHZhbHVlIGFzIHN0cmluZyxcbiAgICAgICAgc3RhdHVzSWRzOiAoZmlsdGVyICYmIGZpbHRlci5zdGF0dXNJZHMpIHx8IFtTdGF0dXNJZHMuRU5BQkxFLCBTdGF0dXNJZHMuVEVNUE9SQVJZXSxcbiAgICAgICAgdXNlclByb2ZpbGVzOiBmaWx0ZXIgJiYgZmlsdGVyLnVzZXJQcm9maWxlcyxcbiAgICAgIH0sXG4gICAgICB7IHdpdGhUb3RhbDogdHJ1ZSAvKiBuZWVkIGJ5IGF1dG9jb21wbGV0ZSAqLyB9XG4gICAgKTtcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVJbXBvcnQoXG4gICAgZmlsdGVyOiBQYXJ0aWFsPFBlcnNvbkZpbHRlcj4sXG4gICAgb3B0czoge1xuICAgICAgcHJvZ3Jlc3Npb24/OiBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPjtcbiAgICAgIG1heFByb2dyZXNzaW9uPzogbnVtYmVyO1xuICAgIH1cbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgbWF4UHJvZ3Jlc3Npb24gPSAob3B0cyAmJiBvcHRzLm1heFByb2dyZXNzaW9uKSB8fCAxMDA7XG4gICAgZmlsdGVyID0ge1xuICAgICAgLi4uZmlsdGVyLFxuICAgICAgc3RhdHVzSWRzOiBbU3RhdHVzSWRzLkVOQUJMRSwgU3RhdHVzSWRzLlRFTVBPUkFSWV0sXG4gICAgICB1c2VyUHJvZmlsZXM6IDxVc2VyUHJvZmlsZUxhYmVsW10+WydTVVBFUlZJU09SJywgJ1VTRVInLCAnR1VFU1QnXSxcbiAgICB9O1xuXG4gICAgY29uc29sZS5pbmZvKCdbcGVyc29uLXNlcnZpY2VdIEltcG9ydGluZyBwZXJzb25zLi4uJyk7XG5cbiAgICBjb25zdCByZXMgPSBhd2FpdCBKb2JVdGlscy5mZXRjaEFsbFBhZ2VzKFxuICAgICAgKG9mZnNldCwgc2l6ZSkgPT5cbiAgICAgICAgdGhpcy5sb2FkQWxsKG9mZnNldCwgc2l6ZSwgJ2lkJywgbnVsbCwgZmlsdGVyLCB7XG4gICAgICAgICAgZGVidWc6IGZhbHNlLFxuICAgICAgICAgIGZldGNoUG9saWN5OiAnbmV0d29yay1vbmx5JyxcbiAgICAgICAgICB3aXRoVG90YWw6IG9mZnNldCA9PT0gMCwgLy8gQ29tcHV0ZSB0b3RhbCBvbmx5IG9uY2VcbiAgICAgICAgICB0b0VudGl0eTogZmFsc2UsXG4gICAgICAgIH0pLFxuICAgICAgeyBwcm9ncmVzc2lvbjogb3B0cz8ucHJvZ3Jlc3Npb24sIG1heFByb2dyZXNzaW9uOiBtYXhQcm9ncmVzc2lvbiAqIDAuOSB9XG4gICAgKTtcblxuICAgIC8vIFNhdmUgcmVzdWx0IGxvY2FsbHlcbiAgICBhd2FpdCB0aGlzLmVudGl0aWVzLnNhdmVBbGwocmVzLmRhdGEsIHsgZW50aXR5TmFtZTogJ1BlcnNvblZPJywgcmVzZXQ6IHRydWUgfSk7XG4gIH1cblxuICBhc3luYyBsb2FkQnlQdWJrZXkoXG4gICAgcHVia2V5OiBzdHJpbmcsXG4gICAgb3B0cz86IHtcbiAgICAgIFtrZXk6IHN0cmluZ106IGFueTtcbiAgICAgIGZldGNoUG9saWN5PzogRmV0Y2hQb2xpY3k7XG4gICAgICB0b0VudGl0eT86IGJvb2xlYW47XG4gICAgfVxuICApOiBQcm9taXNlPFBlcnNvbj4ge1xuICAgIGNvbnN0IHsgZGF0YSB9ID0gYXdhaXQgdGhpcy5sb2FkQWxsKDAsIDEsIG51bGwsIG51bGwsIHsgcHVia2V5IH0sIHsgd2l0aFRvdGFsOiBmYWxzZSwgLi4ub3B0cyB9KTtcbiAgICBjb25zdCBlbnRpdHkgPSBpc05vdEVtcHR5QXJyYXkoZGF0YSkgPyBkYXRhWzBdIDogb3B0cz8udG9FbnRpdHkgIT09IGZhbHNlID8gUGVyc29uLmZyb21PYmplY3QoeyBwdWJrZXkgfSkgOiAoeyBwdWJrZXkgfSBhcyBQZXJzb24pO1xuICAgIHJldHVybiBlbnRpdHk7XG4gIH1cblxuICAvKiAtLSBwcm90ZWN0ZWQgbWV0aG9kcyAtLSAqL1xuXG4gIHByb3RlY3RlZCBhc09iamVjdChzb3VyY2U6IFBlcnNvbiB8IGFueSk6IGFueSB7XG4gICAgaWYgKCFzb3VyY2UpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICBpZiAoIShzb3VyY2UgaW5zdGFuY2VvZiBQZXJzb24pKSB7XG4gICAgICBzb3VyY2UgPSBQZXJzb24uZnJvbU9iamVjdChzb3VyY2UpO1xuICAgIH1cbiAgICBjb25zdCB0YXJnZXQgPSBzb3VyY2UuYXNPYmplY3QoKTtcblxuICAgIC8vIE5vdCBrbm93biBpbiBzZXJ2ZXIgR3JhcGhRTCBzY2hlbWFcbiAgICBkZWxldGUgdGFyZ2V0Lm1haW5Qcm9maWxlO1xuXG4gICAgLy8gTWluaWZ5IHRoZSBkZXBhcnRtZW50IG9iamVjdFxuICAgIHRhcmdldC5kZXBhcnRtZW50ID0gc291cmNlLmRlcGFydG1lbnQgJiYgc291cmNlLmRlcGFydG1lbnQuYXNPYmplY3QodHJ1ZSk7XG5cbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG59XG4iXX0=
@@ -28,18 +28,18 @@ export class PersonValidatorService extends AppValidatorService {
28
28
  pubkey: [data?.pubkey || null, Validators.compose([Validators.required, SharedValidators.pubkey])],
29
29
  };
30
30
  if (opts.withAvatar) {
31
- formConfig.avatar = [data && data.avatar || null];
31
+ formConfig.avatar = [(data && data.avatar) || null];
32
32
  }
33
33
  if (opts.withUsername) {
34
- formConfig.username = [data && data.username || null, Validators.minLength(2)];
34
+ formConfig.username = [(data && data.username) || null, Validators.minLength(2)];
35
35
  }
36
36
  if (opts.withUsernameExtranet) {
37
- formConfig.usernameExtranet = [data && data.usernameExtranet || null, Validators.minLength(2)];
37
+ formConfig.usernameExtranet = [(data && data.usernameExtranet) || null, Validators.minLength(2)];
38
38
  }
39
39
  // Add additional fields
40
- this.accountService.additionalFields.forEach(field => {
40
+ this.accountService.additionalFields.forEach((field) => {
41
41
  //console.debug("[register-form] Add additional field {" + field.name + "} to form", field);
42
- formConfig[field.key] = [data && data[field.key] || null, this.getValidators(field)];
42
+ formConfig[field.key] = [(data && data[field.key]) || null, this.getValidators(field)];
43
43
  });
44
44
  return formConfig;
45
45
  }
@@ -59,14 +59,14 @@ export class PersonValidatorService extends AppValidatorService {
59
59
  withAvatar: true,
60
60
  withUsername: true,
61
61
  withUsernameExtranet: true,
62
- ...opts
62
+ ...opts,
63
63
  };
64
64
  }
65
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: PersonValidatorService, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.TranslateService }, { token: i3.AccountService }], target: i0.ɵɵFactoryTarget.Injectable });
66
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: PersonValidatorService, providedIn: 'root' });
65
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PersonValidatorService, deps: [{ token: i1.UntypedFormBuilder }, { token: i2.TranslateService }, { token: i3.AccountService }], target: i0.ɵɵFactoryTarget.Injectable });
66
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PersonValidatorService, providedIn: 'root' });
67
67
  }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: PersonValidatorService, decorators: [{
68
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImport: i0, type: PersonValidatorService, decorators: [{
69
69
  type: Injectable,
70
70
  args: [{ providedIn: 'root' }]
71
71
  }], ctorParameters: () => [{ type: i1.UntypedFormBuilder }, { type: i2.TranslateService }, { type: i3.AccountService }] });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvYWRtaW4vc2VydmljZXMvdmFsaWRhdG9yL3BlcnNvbi52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQW1DLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBVSxXQUFXLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7Ozs7O0FBVTVGLE1BQU0sT0FBTyxzQkFBNkcsU0FBUSxtQkFBc0I7SUFLMUk7SUFIWixZQUNFLFdBQStCLEVBQy9CLFNBQTJCLEVBQ2pCLGNBQThCO1FBRXhDLEtBQUssQ0FBQyxXQUFXLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFGcEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBRzFDLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFRLEVBQUUsSUFBUTtRQUNuQyxJQUFJLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJDLE1BQU0sVUFBVSxHQUEyQjtZQUN6QyxFQUFFLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDUixVQUFVLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDaEIsWUFBWSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2xCLFFBQVEsRUFBRSxDQUFDLElBQUksRUFBRSxRQUFRLElBQUksSUFBSSxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxT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Q0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDMUgsQ0FBQztJQUVELDZCQUE2QjtJQUVuQixrQkFBa0IsQ0FBQyxJQUFRO1FBQ25DLE9BQU87WUFDTCxVQUFVLEVBQUUsSUFBSTtZQUNoQixZQUFZLEVBQUUsSUFBSTtZQUNsQixvQkFBb0IsRUFBRSxJQUFJO1lBQzFCLEdBQUcsSUFBSTtTQUNSLENBQUM7SUFDSixDQUFDO3VHQWxFVSxzQkFBc0I7MkdBQXRCLHNCQUFzQixjQURWLE1BQU07OzJGQUNsQixzQkFBc0I7a0JBRGxDLFVBQVU7bUJBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1CdWlsZGVyLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFBlcnNvbiwgUGVyc29uVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL3BlcnNvbi5tb2RlbCc7XG5pbXBvcnQgeyBTaGFyZWRWYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3ZhbGlkYXRvci92YWxpZGF0b3JzJztcbmltcG9ydCB7IFN0YXR1c0lkcyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvbW9kZWwuZW51bSc7XG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvYWNjb3VudC5zZXJ2aWNlJztcbmltcG9ydCB7IEZvcm1GaWVsZERlZmluaXRpb24gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZm9ybS9maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBBcHBWYWxpZGF0b3JTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy92YWxpZGF0b3IvYmFzZS52YWxpZGF0b3IuY2xhc3MnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFBlcnNvblZhbGlkYXRvck9wdGlvbnMge1xuICB3aXRoQXZhdGFyPzogYm9vbGVhbjtcbiAgd2l0aFVzZXJuYW1lPzogYm9vbGVhbjtcbiAgd2l0aFVzZXJuYW1lRXh0cmFuZXQ/OiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBQZXJzb25WYWxpZGF0b3JTZXJ2aWNlPFQgZXh0ZW5kcyBQZXJzb24gPSBQZXJzb24sIE8gZXh0ZW5kcyBQZXJzb25WYWxpZGF0b3JPcHRpb25zID0gUGVyc29uVmFsaWRhdG9yT3B0aW9ucz4gZXh0ZW5kcyBBcHBWYWxpZGF0b3JTZXJ2aWNlPFQ+IHtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYWNjb3VudFNlcnZpY2U6IEFjY291bnRTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGZvcm1CdWlsZGVyLCB0cmFuc2xhdGUpO1xuICB9XG5cbiAgZ2V0Rm9ybUdyb3VwQ29uZmlnKGRhdGE/OiBULCBvcHRzPzogTyk6IHsgW2tleTogc3RyaW5nXTogYW55fSB7XG4gICAgb3B0cyA9IHRoaXMuZmlsbERlZmF1bHRPcHRpb25zKG9wdHMpO1xuXG4gICAgY29uc3QgZm9ybUNvbmZpZzoge1trZXk6IHN0cmluZ106IGFueVtdfSA9IHtcbiAgICAgIGlkOiBbJyddLFxuICAgICAgdXBkYXRlRGF0ZTogWycnXSxcbiAgICAgIGNyZWF0aW9uRGF0ZTogWycnXSxcbiAgICAgIGxhc3ROYW1lOiBbZGF0YT8ubGFzdE5hbWUgfHwgbnVsbCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgyKV0pXSxcbiAgICAgIGZpcnN0TmFtZTogW2RhdGE/LmZpcnN0TmFtZSB8fCBudWxsLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDIpXSldLFxuICAgICAgZW1haWw6IFtkYXRhPy5lbWFpbCB8fCBudWxsLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdKV0sXG4gICAgICBtYWluUHJvZmlsZTogW2RhdGE/Lm1haW5Qcm9maWxlIHx8IFBlcnNvblV0aWxzLmdldE1haW5Qcm9maWxlKGRhdGE/LnByb2ZpbGVzKSB8fCAnR1VFU1QnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIHN0YXR1c0lkOiBbZGF0YT8uc3RhdHVzSWQgfHwgU3RhdHVzSWRzLlRFTVBPUkFSWSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBwdWJrZXk6IFtkYXRhPy5wdWJrZXkgfHwgbnVsbCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBTaGFyZWRWYWxpZGF0b3JzLnB1YmtleV0pXSxcbiAgICB9O1xuXG5cbiAgICBpZiAob3B0cy53aXRoQXZhdGFyKSB7XG4gICAgICBmb3JtQ29uZmlnLmF2YXRhciA9IFtkYXRhICYmIGRhdGEuYXZhdGFyIHx8IG51bGxdO1xuICAgIH1cbiAgICBpZiAob3B0cy53aXRoVXNlcm5hbWUpIHtcbiAgICAgIGZvcm1Db25maWcudXNlcm5hbWUgPSBbZGF0YSAmJiBkYXRhLnVzZXJuYW1lIHx8IG51bGwsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDIpXTtcbiAgICB9XG4gICAgaWYgKG9wdHMud2l0aFVzZXJuYW1lRXh0cmFuZXQpIHtcbiAgICAgIGZvcm1Db25maWcudXNlcm5hbWVFeHRyYW5ldCA9IFtkYXRhICYmIGRhdGEudXNlcm5hbWVFeHRyYW5ldCB8fCBudWxsLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgyKV07XG4gICAgfVxuXG4gICAgLy8gQWRkIGFkZGl0aW9uYWwgZmllbGRzXG4gICAgdGhpcy5hY2NvdW50U2VydmljZS5hZGRpdGlvbmFsRmllbGRzLmZvckVhY2goZmllbGQgPT4ge1xuICAgICAgLy9jb25zb2xlLmRlYnVnKFwiW3JlZ2lzdGVyLWZvcm1dIEFkZCBhZGRpdGlvbmFsIGZpZWxkIHtcIiArIGZpZWxkLm5hbWUgKyBcIn0gdG8gZm9ybVwiLCBmaWVsZCk7XG4gICAgICBmb3JtQ29uZmlnW2ZpZWxkLmtleV0gPSBbZGF0YSAmJiBkYXRhW2ZpZWxkLmtleV0gfHwgbnVsbCwgdGhpcy5nZXRWYWxpZGF0b3JzKGZpZWxkKV07XG4gICAgfSk7XG5cbiAgICByZXR1cm4gZm9ybUNvbmZpZztcbiAgfVxuXG4gIGdldFZhbGlkYXRvcnMoZmllbGQ6IEZvcm1GaWVsZERlZmluaXRpb24pOiBWYWxpZGF0b3JGbiB8IFZhbGlkYXRvckZuW10ge1xuICAgIGNvbnN0IHZhbGlkYXRvckZuczogVmFsaWRhdG9yRm5bXSA9IFtdO1xuICAgIGlmIChmaWVsZC5leHRyYSAmJiBmaWVsZC5leHRyYS5hY2NvdW50ICYmIGZpZWxkLmV4dHJhLmFjY291bnQucmVxdWlyZWQpIHtcbiAgICAgIHZhbGlkYXRvckZucy5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgIH1cbiAgICBpZiAoZmllbGQudHlwZSA9PT0gJ2VudGl0eScpIHtcbiAgICAgIHZhbGlkYXRvckZucy5wdXNoKFNoYXJlZFZhbGlkYXRvcnMuZW50aXR5KTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWRhdG9yRm5zLmxlbmd0aCA/IFZhbGlkYXRvcnMuY29tcG9zZSh2YWxpZGF0b3JGbnMpIDogdmFsaWRhdG9yRm5zLmxlbmd0aCA9PT0gMSA/IHZhbGlkYXRvckZuc1swXSA6IHVuZGVmaW5lZDtcbiAgfVxuXG4gIC8qIC0tIHByb3RlY3RlZCBtZXRob2RzIC0tICovXG5cbiAgcHJvdGVjdGVkIGZpbGxEZWZhdWx0T3B0aW9ucyhvcHRzPzogTyk6IE8ge1xuICAgIHJldHVybiB7XG4gICAgICB3aXRoQXZhdGFyOiB0cnVlLFxuICAgICAgd2l0aFVzZXJuYW1lOiB0cnVlLFxuICAgICAgd2l0aFVzZXJuYW1lRXh0cmFuZXQ6IHRydWUsXG4gICAgICAuLi5vcHRzXG4gICAgfTtcbiAgfVxufVxuIl19
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVyc29uLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvYWRtaW4vc2VydmljZXMvdmFsaWRhdG9yL3BlcnNvbi52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQW1DLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBVSxXQUFXLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNoRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFHcEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdURBQXVELENBQUM7Ozs7O0FBVTVGLE1BQU0sT0FBTyxzQkFHWCxTQUFRLG1CQUFzQjtJQUlsQjtJQUhaLFlBQ0UsV0FBK0IsRUFDL0IsU0FBMkIsRUFDakIsY0FBOEI7UUFFeEMsS0FBSyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUZwQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7SUFHMUMsQ0FBQztJQUVELGtCQUFrQixDQUFDLElBQVEsRUFBRSxJQUFRO1FBQ25DLElBQUksR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFckMsTUFBTSxVQUFVLEdBQTZCO1lBQzNDLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNSLFVBQVUsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNoQixZQUFZLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDbEIsUUFBUSxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsSUFBSSxJQUFJLEVBQUUsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsVUFBVSxDQUFDLFNB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QUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUMxSCxDQUFDO0lBRUQsNkJBQTZCO0lBRW5CLGtCQUFrQixDQUFDLElBQVE7UUFDbkMsT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFlBQVksRUFBRSxJQUFJO1lBQ2xCLG9CQUFvQixFQUFFLElBQUk7WUFDMUIsR0FBRyxJQUFJO1NBQ1IsQ0FBQztJQUNKLENBQUM7dUdBbkVVLHNCQUFzQjsyR0FBdEIsc0JBQXNCLGNBRFQsTUFBTTs7MkZBQ25CLHNCQUFzQjtrQkFEbEMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvckZuLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUGVyc29uLCBQZXJzb25VdGlscyB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvcGVyc29uLm1vZGVsJztcbmltcG9ydCB7IFNoYXJlZFZhbGlkYXRvcnMgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvdmFsaWRhdG9yL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgU3RhdHVzSWRzIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9tb2RlbC5lbnVtJztcbmltcG9ydCB7IEFjY291bnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9hY2NvdW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgRm9ybUZpZWxkRGVmaW5pdGlvbiB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mb3JtL2ZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEFwcFZhbGlkYXRvclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL3ZhbGlkYXRvci9iYXNlLnZhbGlkYXRvci5jbGFzcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGVyc29uVmFsaWRhdG9yT3B0aW9ucyB7XG4gIHdpdGhBdmF0YXI/OiBib29sZWFuO1xuICB3aXRoVXNlcm5hbWU/OiBib29sZWFuO1xuICB3aXRoVXNlcm5hbWVFeHRyYW5ldD86IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgUGVyc29uVmFsaWRhdG9yU2VydmljZTxcbiAgVCBleHRlbmRzIFBlcnNvbiA9IFBlcnNvbixcbiAgTyBleHRlbmRzIFBlcnNvblZhbGlkYXRvck9wdGlvbnMgPSBQZXJzb25WYWxpZGF0b3JPcHRpb25zLFxuPiBleHRlbmRzIEFwcFZhbGlkYXRvclNlcnZpY2U8VD4ge1xuICBjb25zdHJ1Y3RvcihcbiAgICBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLFxuICAgIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgYWNjb3VudFNlcnZpY2U6IEFjY291bnRTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKGZvcm1CdWlsZGVyLCB0cmFuc2xhdGUpO1xuICB9XG5cbiAgZ2V0Rm9ybUdyb3VwQ29uZmlnKGRhdGE/OiBULCBvcHRzPzogTyk6IHsgW2tleTogc3RyaW5nXTogYW55IH0ge1xuICAgIG9wdHMgPSB0aGlzLmZpbGxEZWZhdWx0T3B0aW9ucyhvcHRzKTtcblxuICAgIGNvbnN0IGZvcm1Db25maWc6IHsgW2tleTogc3RyaW5nXTogYW55W10gfSA9IHtcbiAgICAgIGlkOiBbJyddLFxuICAgICAgdXBkYXRlRGF0ZTogWycnXSxcbiAgICAgIGNyZWF0aW9uRGF0ZTogWycnXSxcbiAgICAgIGxhc3ROYW1lOiBbZGF0YT8ubGFzdE5hbWUgfHwgbnVsbCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgyKV0pXSxcbiAgICAgIGZpcnN0TmFtZTogW2RhdGE/LmZpcnN0TmFtZSB8fCBudWxsLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDIpXSldLFxuICAgICAgZW1haWw6IFtkYXRhPy5lbWFpbCB8fCBudWxsLCBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMuZW1haWxdKV0sXG4gICAgICBtYWluUHJvZmlsZTogW2RhdGE/Lm1haW5Qcm9maWxlIHx8IFBlcnNvblV0aWxzLmdldE1haW5Qcm9maWxlKGRhdGE/LnByb2ZpbGVzKSB8fCAnR1VFU1QnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIHN0YXR1c0lkOiBbZGF0YT8uc3RhdHVzSWQgfHwgU3RhdHVzSWRzLlRFTVBPUkFSWSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICBwdWJrZXk6IFtkYXRhPy5wdWJrZXkgfHwgbnVsbCwgVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBTaGFyZWRWYWxpZGF0b3JzLnB1YmtleV0pXSxcbiAgICB9O1xuXG4gICAgaWYgKG9wdHMud2l0aEF2YXRhcikge1xuICAgICAgZm9ybUNvbmZpZy5hdmF0YXIgPSBbKGRhdGEgJiYgZGF0YS5hdmF0YXIpIHx8IG51bGxdO1xuICAgIH1cbiAgICBpZiAob3B0cy53aXRoVXNlcm5hbWUpIHtcbiAgICAgIGZvcm1Db25maWcudXNlcm5hbWUgPSBbKGRhdGEgJiYgZGF0YS51c2VybmFtZSkgfHwgbnVsbCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMildO1xuICAgIH1cbiAgICBpZiAob3B0cy53aXRoVXNlcm5hbWVFeHRyYW5ldCkge1xuICAgICAgZm9ybUNvbmZpZy51c2VybmFtZUV4dHJhbmV0ID0gWyhkYXRhICYmIGRhdGEudXNlcm5hbWVFeHRyYW5ldCkgfHwgbnVsbCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMildO1xuICAgIH1cblxuICAgIC8vIEFkZCBhZGRpdGlvbmFsIGZpZWxkc1xuICAgIHRoaXMuYWNjb3VudFNlcnZpY2UuYWRkaXRpb25hbEZpZWxkcy5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgLy9jb25zb2xlLmRlYnVnKFwiW3JlZ2lzdGVyLWZvcm1dIEFkZCBhZGRpdGlvbmFsIGZpZWxkIHtcIiArIGZpZWxkLm5hbWUgKyBcIn0gdG8gZm9ybVwiLCBmaWVsZCk7XG4gICAgICBmb3JtQ29uZmlnW2ZpZWxkLmtleV0gPSBbKGRhdGEgJiYgZGF0YVtmaWVsZC5rZXldKSB8fCBudWxsLCB0aGlzLmdldFZhbGlkYXRvcnMoZmllbGQpXTtcbiAgICB9KTtcblxuICAgIHJldHVybiBmb3JtQ29uZmlnO1xuICB9XG5cbiAgZ2V0VmFsaWRhdG9ycyhmaWVsZDogRm9ybUZpZWxkRGVmaW5pdGlvbik6IFZhbGlkYXRvckZuIHwgVmFsaWRhdG9yRm5bXSB7XG4gICAgY29uc3QgdmFsaWRhdG9yRm5zOiBWYWxpZGF0b3JGbltdID0gW107XG4gICAgaWYgKGZpZWxkLmV4dHJhICYmIGZpZWxkLmV4dHJhLmFjY291bnQgJiYgZmllbGQuZXh0cmEuYWNjb3VudC5yZXF1aXJlZCkge1xuICAgICAgdmFsaWRhdG9yRm5zLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgfVxuICAgIGlmIChmaWVsZC50eXBlID09PSAnZW50aXR5Jykge1xuICAgICAgdmFsaWRhdG9yRm5zLnB1c2goU2hhcmVkVmFsaWRhdG9ycy5lbnRpdHkpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0b3JGbnMubGVuZ3RoID8gVmFsaWRhdG9ycy5jb21wb3NlKHZhbGlkYXRvckZucykgOiB2YWxpZGF0b3JGbnMubGVuZ3RoID09PSAxID8gdmFsaWRhdG9yRm5zWzBdIDogdW5kZWZpbmVkO1xuICB9XG5cbiAgLyogLS0gcHJvdGVjdGVkIG1ldGhvZHMgLS0gKi9cblxuICBwcm90ZWN0ZWQgZmlsbERlZmF1bHRPcHRpb25zKG9wdHM/OiBPKTogTyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHdpdGhBdmF0YXI6IHRydWUsXG4gICAgICB3aXRoVXNlcm5hbWU6IHRydWUsXG4gICAgICB3aXRoVXNlcm5hbWVFeHRyYW5ldDogdHJ1ZSxcbiAgICAgIC4uLm9wdHMsXG4gICAgfTtcbiAgfVxufVxuIl19