@sumaris-net/ngx-components 4.0.0-rc5 → 4.0.0-rc7

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 (309) hide show
  1. package/esm2022/public_api.mjs +5 -2
  2. package/esm2022/src/app/admin/admin-routing.module.mjs +5 -5
  3. package/esm2022/src/app/admin/admin.module.mjs +6 -6
  4. package/esm2022/src/app/admin/services/filter/person.filter.mjs +3 -2
  5. package/esm2022/src/app/admin/services/person.service.mjs +5 -5
  6. package/esm2022/src/app/admin/services/validator/person.validator.mjs +5 -5
  7. package/esm2022/src/app/admin/users/users.mjs +18 -27
  8. package/esm2022/src/app/admin/users/users.module.mjs +5 -5
  9. package/esm2022/src/app/core/about/about.modal.mjs +6 -6
  10. package/esm2022/src/app/core/about/about.module.mjs +5 -5
  11. package/esm2022/src/app/core/account/account.module.mjs +5 -5
  12. package/esm2022/src/app/core/account/account.page.mjs +23 -23
  13. package/esm2022/src/app/core/account/new-token.modal.mjs +5 -5
  14. package/esm2022/src/app/core/account/token.table.mjs +8 -8
  15. package/esm2022/src/app/core/auth/auth.form.mjs +6 -6
  16. package/esm2022/src/app/core/auth/auth.modal.mjs +5 -5
  17. package/esm2022/src/app/core/auth/auth.module.mjs +5 -5
  18. package/esm2022/src/app/core/core.module.mjs +5 -5
  19. package/esm2022/src/app/core/core.testing.module.mjs +5 -5
  20. package/esm2022/src/app/core/form/buttons/form-buttons-bar.component.mjs +6 -6
  21. package/esm2022/src/app/core/form/buttons/form-buttons-bar.module.mjs +5 -5
  22. package/esm2022/src/app/core/form/entity/editor.class.mjs +18 -13
  23. package/esm2022/src/app/core/form/entity/entity-editor-modal.class.mjs +6 -6
  24. package/esm2022/src/app/core/form/entity/entity-editor.class.mjs +17 -11
  25. package/esm2022/src/app/core/form/entity/entity-metadata.component.mjs +5 -5
  26. package/esm2022/src/app/core/form/entity/entity.module.mjs +5 -5
  27. package/esm2022/src/app/core/form/form.class.mjs +5 -5
  28. package/esm2022/src/app/core/form/form.module.mjs +5 -5
  29. package/esm2022/src/app/core/form/list/list.form.mjs +6 -6
  30. package/esm2022/src/app/core/form/list/list.module.mjs +5 -5
  31. package/esm2022/src/app/core/form/properties/properties.form.mjs +7 -7
  32. package/esm2022/src/app/core/form/properties/properties.module.mjs +5 -5
  33. package/esm2022/src/app/core/form/properties/properties.table.mjs +12 -12
  34. package/esm2022/src/app/core/form/properties/property.validator.mjs +5 -5
  35. package/esm2022/src/app/core/form/properties/testing/properties-form.test.mjs +5 -5
  36. package/esm2022/src/app/core/form/properties/testing/properties-form.testing.module.mjs +5 -5
  37. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.mjs +5 -5
  38. package/esm2022/src/app/core/form/text-popover/testing/text-popover.testing.module.mjs +5 -5
  39. package/esm2022/src/app/core/form/text-popover/text-popover.component.mjs +7 -7
  40. package/esm2022/src/app/core/form/text-popover/text-popover.module.mjs +6 -11
  41. package/esm2022/src/app/core/graphql/graphql.module.mjs +6 -6
  42. package/esm2022/src/app/core/graphql/graphql.service.mjs +11 -7
  43. package/esm2022/src/app/core/home/home.mjs +7 -8
  44. package/esm2022/src/app/core/home/home.module.mjs +5 -5
  45. package/esm2022/src/app/core/icon/icon.component.mjs +4 -4
  46. package/esm2022/src/app/core/icon/icon.module.mjs +5 -5
  47. package/esm2022/src/app/core/install/install-upgrade-card.component.mjs +6 -6
  48. package/esm2022/src/app/core/install/install-upgrade-card.module.mjs +5 -5
  49. package/esm2022/src/app/core/menu/menu.component.mjs +16 -12
  50. package/esm2022/src/app/core/menu/menu.model.mjs +3 -2
  51. package/esm2022/src/app/core/menu/menu.module.mjs +5 -5
  52. package/esm2022/src/app/core/menu/menu.service.mjs +13 -7
  53. package/esm2022/src/app/core/menu/sub-menu-tab.directive.mjs +5 -5
  54. package/esm2022/src/app/core/menu/testing/menu-other.testing.mjs +5 -5
  55. package/esm2022/src/app/core/menu/testing/menu.testing.mjs +5 -5
  56. package/esm2022/src/app/core/menu/testing/menu.testing.module.mjs +5 -5
  57. package/esm2022/src/app/core/offline/update-offline-mode-card.component.mjs +5 -5
  58. package/esm2022/src/app/core/offline/update-offline-mode-card.module.mjs +5 -5
  59. package/esm2022/src/app/core/peer/select-peer.modal.mjs +8 -7
  60. package/esm2022/src/app/core/peer/select-peer.module.mjs +5 -5
  61. package/esm2022/src/app/core/register/register-confirm.page.mjs +5 -5
  62. package/esm2022/src/app/core/register/register.form.mjs +6 -6
  63. package/esm2022/src/app/core/register/register.modal.mjs +5 -5
  64. package/esm2022/src/app/core/register/register.module.mjs +5 -5
  65. package/esm2022/src/app/core/services/account.service.mjs +52 -25
  66. package/esm2022/src/app/core/services/auth-guard.service.mjs +6 -6
  67. package/esm2022/src/app/core/services/base-entity-service.class.mjs +5 -5
  68. package/esm2022/src/app/core/services/base-graphql-service.class.mjs +6 -6
  69. package/esm2022/src/app/core/services/config/core.config.mjs +7 -7
  70. package/esm2022/src/app/core/services/config.service.mjs +6 -6
  71. package/esm2022/src/app/core/services/crypto.service.mjs +4 -4
  72. package/esm2022/src/app/core/services/local-settings.service.mjs +6 -6
  73. package/esm2022/src/app/core/services/model/account.model.mjs +5 -3
  74. package/esm2022/src/app/core/services/model/config.model.mjs +5 -3
  75. package/esm2022/src/app/core/services/model/department.model.mjs +3 -2
  76. package/esm2022/src/app/core/services/model/peer.model.mjs +3 -2
  77. package/esm2022/src/app/core/services/model/person.model.mjs +3 -2
  78. package/esm2022/src/app/core/services/model/referential.model.mjs +7 -3
  79. package/esm2022/src/app/core/services/model/token.model.mjs +3 -2
  80. package/esm2022/src/app/core/services/network.service.mjs +6 -6
  81. package/esm2022/src/app/core/services/pipes/account.pipes.mjs +9 -9
  82. package/esm2022/src/app/core/services/pipes/department-to-string.pipe.mjs +5 -5
  83. package/esm2022/src/app/core/services/pipes/person-to-string.pipe.mjs +5 -5
  84. package/esm2022/src/app/core/services/pipes/usage-mode.pipes.mjs +9 -9
  85. package/esm2022/src/app/core/services/platform.service.mjs +22 -12
  86. package/esm2022/src/app/core/services/storage/entities-storage.service.mjs +6 -6
  87. package/esm2022/src/app/core/services/testing/referential-filter.model.mjs +1 -1
  88. package/esm2022/src/app/core/services/testing/referential.validator.mjs +5 -5
  89. package/esm2022/src/app/core/services/validator/account.validator.mjs +5 -5
  90. package/esm2022/src/app/core/services/validator/base.validator.class.mjs +5 -5
  91. package/esm2022/src/app/core/services/validator/local-settings.validator.mjs +5 -5
  92. package/esm2022/src/app/core/services/validator/user-settings.validator.mjs +5 -5
  93. package/esm2022/src/app/core/services/validator/user-token.validator.mjs +5 -5
  94. package/esm2022/src/app/core/settings/settings.module.mjs +5 -5
  95. package/esm2022/src/app/core/settings/settings.page.mjs +7 -7
  96. package/esm2022/src/app/core/table/actions-column.component.mjs +5 -5
  97. package/esm2022/src/app/core/table/async-table.class.mjs +5 -5
  98. package/esm2022/src/app/core/table/entities-async-table-datasource.class.mjs +5 -5
  99. package/esm2022/src/app/core/table/entities-table-datasource.class.mjs +5 -5
  100. package/esm2022/src/app/core/table/memory-table.class.mjs +5 -5
  101. package/esm2022/src/app/core/table/table-select-columns.component.mjs +5 -5
  102. package/esm2022/src/app/core/table/table.class.mjs +9 -5
  103. package/esm2022/src/app/core/table/table.module.mjs +5 -5
  104. package/esm2022/src/app/core/table/testing/table-validator.service.mjs +5 -5
  105. package/esm2022/src/app/core/table/testing/table.testing.mjs +7 -7
  106. package/esm2022/src/app/core/table/testing/table.testing.module.mjs +5 -5
  107. package/esm2022/src/app/core/table/testing/table2-validator.service.mjs +5 -5
  108. package/esm2022/src/app/core/table/testing/table2.testing.mjs +7 -7
  109. package/esm2022/src/app/shared/audio/audio.mjs +6 -6
  110. package/esm2022/src/app/shared/audio/audio.testing.mjs +5 -5
  111. package/esm2022/src/app/shared/audio/audio.testing.module.mjs +5 -5
  112. package/esm2022/src/app/shared/capacitor/keyboard.mjs +5 -5
  113. package/esm2022/src/app/shared/debug/debug.component.mjs +6 -6
  114. package/esm2022/src/app/shared/debug/debug.module.mjs +5 -5
  115. package/esm2022/src/app/shared/directives/autofocus.directive.mjs +5 -5
  116. package/esm2022/src/app/shared/directives/autotitle.directive.mjs +6 -6
  117. package/esm2022/src/app/shared/directives/directives.module.mjs +5 -5
  118. package/esm2022/src/app/shared/directives/drag-and-drop.directive.mjs +4 -4
  119. package/esm2022/src/app/shared/directives/ng-var.directive.mjs +5 -5
  120. package/esm2022/src/app/shared/directives/resizable/resizable.component.mjs +6 -6
  121. package/esm2022/src/app/shared/directives/resizable/resizable.directive.mjs +6 -6
  122. package/esm2022/src/app/shared/directives/resizable/resizable.module.mjs +5 -5
  123. package/esm2022/src/app/shared/file/file.service.mjs +6 -6
  124. package/esm2022/src/app/shared/form/field.component.mjs +7 -7
  125. package/esm2022/src/app/shared/form/loading-spinner.mjs +4 -4
  126. package/esm2022/src/app/shared/gesture/gesture-config.mjs +4 -4
  127. package/esm2022/src/app/shared/guard/component-dirty.guard.mjs +5 -5
  128. package/esm2022/src/app/shared/help/help.modal.mjs +5 -5
  129. package/esm2022/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +8 -9
  130. package/esm2022/src/app/shared/hotkeys/hotkeys.service.mjs +5 -5
  131. package/esm2022/src/app/shared/hotkeys/shared-hotkeys.module.mjs +5 -5
  132. package/esm2022/src/app/shared/image/gallery/image-gallery.component.mjs +6 -6
  133. package/esm2022/src/app/shared/image/gallery/image-gallery.module.mjs +5 -5
  134. package/esm2022/src/app/shared/image/gallery/testing/gallegry.model.testing.mjs +1 -1
  135. package/esm2022/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +5 -5
  136. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.mjs +5 -5
  137. package/esm2022/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +5 -5
  138. package/esm2022/src/app/shared/image/image.module.mjs +5 -5
  139. package/esm2022/src/app/shared/image/image.service.mjs +6 -6
  140. package/esm2022/src/app/shared/interceptors/progess.interceptor.mjs +1 -1
  141. package/esm2022/src/app/shared/logging/logging-service.class.mjs +6 -6
  142. package/esm2022/src/app/shared/logging/logging-service.module.mjs +5 -5
  143. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.mjs +8 -8
  144. package/esm2022/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +5 -5
  145. package/esm2022/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +6 -6
  146. package/esm2022/src/app/shared/material/badge/badge.directive.mjs +6 -6
  147. package/esm2022/src/app/shared/material/badge/badge.module.mjs +5 -5
  148. package/esm2022/src/app/shared/material/badge/badge.test.mjs +5 -5
  149. package/esm2022/src/app/shared/material/boolean/boolean.module.mjs +5 -5
  150. package/esm2022/src/app/shared/material/boolean/material-boolean2.mjs +6 -6
  151. package/esm2022/src/app/shared/material/boolean/material.boolean.mjs +7 -7
  152. package/esm2022/src/app/shared/material/boolean/testing/boolean.test.page.mjs +5 -5
  153. package/esm2022/src/app/shared/material/chips/chips.module.mjs +5 -5
  154. package/esm2022/src/app/shared/material/chips/material.chips.mjs +7 -7
  155. package/esm2022/src/app/shared/material/chips/testing/chips.test.mjs +5 -5
  156. package/esm2022/src/app/shared/material/datetime/datetime.module.mjs +5 -5
  157. package/esm2022/src/app/shared/material/datetime/material.date.mjs +8 -8
  158. package/esm2022/src/app/shared/material/datetime/material.dateshort.mjs +7 -7
  159. package/esm2022/src/app/shared/material/datetime/material.datetime.mjs +7 -7
  160. package/esm2022/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +7 -6
  161. package/esm2022/src/app/shared/material/datetime/testing/mat-date.test.mjs +8 -7
  162. package/esm2022/src/app/shared/material/datetime/testing/mat-dateshort.test.mjs +5 -5
  163. package/esm2022/src/app/shared/material/duration/duration.module.mjs +5 -5
  164. package/esm2022/src/app/shared/material/duration/material.duration.mjs +6 -6
  165. package/esm2022/src/app/shared/material/duration/testing/mat-duration.test.mjs +5 -5
  166. package/esm2022/src/app/shared/material/latlong/material.latlong.mjs +7 -7
  167. package/esm2022/src/app/shared/material/latlong/material.latlong.module.mjs +5 -5
  168. package/esm2022/src/app/shared/material/latlong/testing/latlong.test.mjs +5 -5
  169. package/esm2022/src/app/shared/material/material.module.mjs +14 -9
  170. package/esm2022/src/app/shared/material/material.testing.module.mjs +16 -5
  171. package/esm2022/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +5 -5
  172. package/esm2022/src/app/shared/material/numpad/numpad.component.mjs +5 -5
  173. package/esm2022/src/app/shared/material/numpad/numpad.container.mjs +5 -5
  174. package/esm2022/src/app/shared/material/numpad/numpad.content.mjs +4 -4
  175. package/esm2022/src/app/shared/material/numpad/numpad.directive.mjs +5 -5
  176. package/esm2022/src/app/shared/material/numpad/numpad.dom-service.mjs +5 -5
  177. package/esm2022/src/app/shared/material/numpad/numpad.module.mjs +5 -5
  178. package/esm2022/src/app/shared/material/numpad/testing/numpad.test.mjs +5 -5
  179. package/esm2022/src/app/shared/material/paginator/material.paginator-i18n.mjs +5 -5
  180. package/esm2022/src/app/shared/material/stepper/material.stepper-i18n.mjs +5 -5
  181. package/esm2022/src/app/shared/material/swipe/material.swipe.mjs +6 -6
  182. package/esm2022/src/app/shared/material/swipe/swipe.module.mjs +5 -5
  183. package/esm2022/src/app/shared/material/swipe/testing/swipe.test.mjs +5 -5
  184. package/esm2022/src/app/shared/material/testing/common.test.mjs +5 -5
  185. package/esm2022/src/app/shared/material/text/testing/text-form.testing.mjs +31 -0
  186. package/esm2022/src/app/shared/material/text/text-form.component.mjs +97 -0
  187. package/esm2022/src/app/shared/material/text/text-form.module.mjs +63 -0
  188. package/esm2022/src/app/shared/named-filter/named-filter-selector.component.mjs +21 -11
  189. package/esm2022/src/app/shared/named-filter/named-filter.model.mjs +1 -1
  190. package/esm2022/src/app/shared/named-filter/named-filter.module.mjs +5 -5
  191. package/esm2022/src/app/shared/named-filter/named-filter.service.mjs +5 -5
  192. package/esm2022/src/app/shared/pipes/arrays.pipe.mjs +25 -25
  193. package/esm2022/src/app/shared/pipes/colors.pipe.mjs +4 -4
  194. package/esm2022/src/app/shared/pipes/date-diff-duration.pipe.mjs +6 -6
  195. package/esm2022/src/app/shared/pipes/date-format.pipe.mjs +9 -9
  196. package/esm2022/src/app/shared/pipes/date-from-now.pipe.mjs +6 -6
  197. package/esm2022/src/app/shared/pipes/duration.pipe.mjs +6 -6
  198. package/esm2022/src/app/shared/pipes/file-size.pipe.mjs +4 -4
  199. package/esm2022/src/app/shared/pipes/form.pipes.mjs +21 -21
  200. package/esm2022/src/app/shared/pipes/highlight.pipe.mjs +5 -5
  201. package/esm2022/src/app/shared/pipes/latlong-format.pipe.mjs +10 -10
  202. package/esm2022/src/app/shared/pipes/maps.pipe.mjs +13 -13
  203. package/esm2022/src/app/shared/pipes/maskito.pipe.mjs +7 -7
  204. package/esm2022/src/app/shared/pipes/math.pipes.mjs +13 -13
  205. package/esm2022/src/app/shared/pipes/ng-init.pipe.mjs +4 -4
  206. package/esm2022/src/app/shared/pipes/number-format.pipe.mjs +5 -5
  207. package/esm2022/src/app/shared/pipes/pipes.module.mjs +5 -5
  208. package/esm2022/src/app/shared/pipes/property.pipes.mjs +9 -9
  209. package/esm2022/src/app/shared/pipes/string.pipes.mjs +31 -31
  210. package/esm2022/src/app/shared/pipes/translate-context.pipe.mjs +10 -10
  211. package/esm2022/src/app/shared/pipes/types.pipes.mjs +13 -13
  212. package/esm2022/src/app/shared/rx-state.module.mjs +5 -5
  213. package/esm2022/src/app/shared/services/entity-service.class.mjs +1 -1
  214. package/esm2022/src/app/shared/services/memory-entity-service.class.mjs +7 -7
  215. package/esm2022/src/app/shared/services/progress-bar.service.mjs +4 -4
  216. package/esm2022/src/app/shared/services/startable-observable-service.class.mjs +6 -6
  217. package/esm2022/src/app/shared/services/startable-service.class.mjs +7 -7
  218. package/esm2022/src/app/shared/services/translate-context.service.mjs +5 -5
  219. package/esm2022/src/app/shared/shared-routing.module.mjs +9 -9
  220. package/esm2022/src/app/shared/shared.module.mjs +29 -13
  221. package/esm2022/src/app/shared/shared.testing.module.mjs +5 -5
  222. package/esm2022/src/app/shared/storage/storage-explorer.component.mjs +6 -6
  223. package/esm2022/src/app/shared/storage/storage-explorer.module.mjs +5 -5
  224. package/esm2022/src/app/shared/storage/storage-explorer.testing-routing.module.mjs +5 -5
  225. package/esm2022/src/app/shared/storage/storage-explorer.testing.module.mjs +5 -5
  226. package/esm2022/src/app/shared/storage/storage.service.mjs +6 -6
  227. package/esm2022/src/app/shared/testing/observable.test.mjs +5 -5
  228. package/esm2022/src/app/shared/testing/tests.page.mjs +6 -6
  229. package/esm2022/src/app/shared/toast/toast.testing.mjs +5 -5
  230. package/esm2022/src/app/shared/toast/toast.testing.module.mjs +5 -5
  231. package/esm2022/src/app/shared/toolbar/modal-toolbar.mjs +5 -5
  232. package/esm2022/src/app/shared/toolbar/toolbar.mjs +7 -7
  233. package/esm2022/src/app/shared/toolbar/toolbar.module.mjs +5 -5
  234. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.mjs +5 -5
  235. package/esm2022/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +5 -5
  236. package/esm2022/src/app/shared/upload-file/upload-file-popover.component.mjs +5 -5
  237. package/esm2022/src/app/shared/upload-file/upload-file.component.mjs +5 -5
  238. package/esm2022/src/app/shared/validator/form-error-adapter.class.mjs +6 -6
  239. package/esm2022/src/app/social/job/job.module.mjs +5 -5
  240. package/esm2022/src/app/social/job/progression/job-progression.component.mjs +5 -5
  241. package/esm2022/src/app/social/job/progression/job-progression.icon.mjs +6 -6
  242. package/esm2022/src/app/social/job/progression/job-progression.list.mjs +5 -5
  243. package/esm2022/src/app/social/job/progression/job-progression.model.mjs +3 -2
  244. package/esm2022/src/app/social/job/progression/job-progression.service.mjs +6 -6
  245. package/esm2022/src/app/social/job/testing/job-progression.testing.mjs +6 -6
  246. package/esm2022/src/app/social/job/testing/job-progression.testing.service.mjs +4 -4
  247. package/esm2022/src/app/social/job/testing/job.testing.module.mjs +5 -5
  248. package/esm2022/src/app/social/message/message.form.mjs +59 -7
  249. package/esm2022/src/app/social/message/message.modal.mjs +21 -13
  250. package/esm2022/src/app/social/message/message.model.mjs +5 -1
  251. package/esm2022/src/app/social/message/message.module.mjs +9 -22
  252. package/esm2022/src/app/social/message/message.service.mjs +33 -11
  253. package/esm2022/src/app/social/social.module.mjs +5 -5
  254. package/esm2022/src/app/social/social.testing.module.mjs +5 -5
  255. package/esm2022/src/app/social/user-event/notification/user-event-notification.icon.mjs +6 -6
  256. package/esm2022/src/app/social/user-event/notification/user-event-notification.list.mjs +6 -6
  257. package/esm2022/src/app/social/user-event/testing/user-event.testing.mjs +6 -6
  258. package/esm2022/src/app/social/user-event/testing/user-event.testing.model.mjs +3 -2
  259. package/esm2022/src/app/social/user-event/testing/user-event.testing.module.mjs +5 -5
  260. package/esm2022/src/app/social/user-event/testing/user-event.testing.service.mjs +6 -6
  261. package/esm2022/src/app/social/user-event/user-event.module.mjs +5 -5
  262. package/esm2022/src/app/social/user-event/user-event.service.mjs +40 -26
  263. package/esm2022/src/environments/environment.class.mjs +3 -1
  264. package/esm2022/src/environments/environment.loader.mjs +83 -0
  265. package/esm2022/src/environments/environment.mjs +18 -15
  266. package/fesm2022/sumaris-net.ngx-components.mjs +4208 -3861
  267. package/fesm2022/sumaris-net.ngx-components.mjs.map +1 -1
  268. package/package.json +6 -6
  269. package/public_api.d.ts +4 -1
  270. package/src/app/core/account/account.page.d.ts +3 -2
  271. package/src/app/core/form/buttons/form-buttons-bar.component.d.ts +1 -1
  272. package/src/app/core/form/entity/editor.class.d.ts +1 -1
  273. package/src/app/core/form/entity/entity-editor.class.d.ts +10 -6
  274. package/src/app/core/form/entity/entity-metadata.component.d.ts +1 -1
  275. package/src/app/core/form/text-popover/text-popover.component.d.ts +1 -1
  276. package/src/app/core/form/text-popover/text-popover.module.d.ts +4 -5
  277. package/src/app/core/graphql/graphql.utils.d.ts +1 -1
  278. package/src/app/core/menu/menu.component.d.ts +6 -2
  279. package/src/app/core/menu/menu.service.d.ts +2 -0
  280. package/src/app/core/services/account.service.d.ts +4 -0
  281. package/src/app/core/services/config/core.config.d.ts +2 -2
  282. package/src/app/core/services/model/referential.model.d.ts +2 -1
  283. package/src/app/core/table/table.class.d.ts +1 -0
  284. package/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.d.ts +2 -4
  285. package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +1 -1
  286. package/src/app/shared/material/material.module.d.ts +2 -1
  287. package/src/app/shared/material/material.testing.module.d.ts +14 -13
  288. package/src/app/shared/material/text/testing/text-form.testing.d.ts +13 -0
  289. package/src/app/{core/form/text-popover → shared/material/text}/text-form.component.d.ts +2 -2
  290. package/src/app/shared/material/text/text-form.module.d.ts +16 -0
  291. package/src/app/shared/named-filter/named-filter-selector.component.d.ts +4 -1
  292. package/src/app/shared/services/entity-service.class.d.ts +1 -1
  293. package/src/app/shared/services/memory-entity-service.class.d.ts +3 -1
  294. package/src/app/shared/shared.module.d.ts +5 -3
  295. package/src/app/social/message/message.form.d.ts +8 -2
  296. package/src/app/social/message/message.modal.d.ts +5 -1
  297. package/src/app/social/message/message.model.d.ts +2 -0
  298. package/src/app/social/message/message.module.d.ts +2 -1
  299. package/src/app/social/message/message.service.d.ts +8 -3
  300. package/src/app/social/user-event/user-event.service.d.ts +5 -0
  301. package/src/assets/environments/environment-test.json +6 -0
  302. package/src/assets/i18n/en-US.json +25 -23
  303. package/src/assets/i18n/en.json +25 -23
  304. package/src/assets/i18n/fr.json +8 -5
  305. package/src/assets/manifest.json +1 -1
  306. package/src/environments/environment.class.d.ts +1 -0
  307. package/src/environments/environment.loader.d.ts +26 -0
  308. package/src/theme/_ngx-components.table.scss +1 -1
  309. package/esm2022/src/app/core/form/text-popover/text-form.component.mjs +0 -97
@@ -7,15 +7,15 @@ import { JobModule } from '../job.module';
7
7
  import * as i0 from "@angular/core";
8
8
  import * as i1 from "@ngx-translate/core";
9
9
  export class JobTestingModule {
10
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: JobTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: JobTestingModule, declarations: [JobProgressionTestingPage], imports: [CommonModule, i1.TranslateModule, SharedModule,
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: JobTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: JobTestingModule, declarations: [JobProgressionTestingPage], imports: [CommonModule, i1.TranslateModule, SharedModule,
12
12
  JobModule], exports: [JobProgressionTestingPage] });
13
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: JobTestingModule, imports: [CommonModule,
13
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: JobTestingModule, imports: [CommonModule,
14
14
  TranslateModule.forChild(),
15
15
  SharedModule,
16
16
  JobModule] });
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: JobTestingModule, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: JobTestingModule, decorators: [{
19
19
  type: NgModule,
20
20
  args: [{
21
21
  imports: [
@@ -32,4 +32,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
32
32
  ]
33
33
  }]
34
34
  }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLnRlc3RpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zb2NpYWwvam9iL3Rlc3Rpbmcvam9iLnRlc3RpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBZ0IxQyxNQUFNLE9BQU8sZ0JBQWdCO3dHQUFoQixnQkFBZ0I7eUdBQWhCLGdCQUFnQixpQkFOekIseUJBQXlCLGFBTnpCLFlBQVksc0JBRVosWUFBWTtZQUNaLFNBQVMsYUFNVCx5QkFBeUI7eUdBR2hCLGdCQUFnQixZQVp6QixZQUFZO1lBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTtZQUMxQixZQUFZO1lBQ1osU0FBUzs7NEZBU0EsZ0JBQWdCO2tCQWQ1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGVBQWUsQ0FBQyxRQUFRLEVBQUU7d0JBQzFCLFlBQVk7d0JBQ1osU0FBUztxQkFDVjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1oseUJBQXlCO3FCQUMxQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AseUJBQXlCO3FCQUMxQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBKb2JQcm9ncmVzc2lvblRlc3RpbmdQYWdlIH0gZnJvbSAnLi9qb2ItcHJvZ3Jlc3Npb24udGVzdGluZyc7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQgeyBKb2JNb2R1bGUgfSBmcm9tICcuLi9qb2IubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKSxcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgSm9iTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEpvYlByb2dyZXNzaW9uVGVzdGluZ1BhZ2VcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEpvYlByb2dyZXNzaW9uVGVzdGluZ1BhZ2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBKb2JUZXN0aW5nTW9kdWxlIHt9XG4iXX0=
35
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLnRlc3RpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zb2NpYWwvam9iL3Rlc3Rpbmcvam9iLnRlc3RpbmcubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDN0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBZ0IxQyxNQUFNLE9BQU8sZ0JBQWdCO3VHQUFoQixnQkFBZ0I7d0dBQWhCLGdCQUFnQixpQkFOekIseUJBQXlCLGFBTnpCLFlBQVksc0JBRVosWUFBWTtZQUNaLFNBQVMsYUFNVCx5QkFBeUI7d0dBR2hCLGdCQUFnQixZQVp6QixZQUFZO1lBQ1osZUFBZSxDQUFDLFFBQVEsRUFBRTtZQUMxQixZQUFZO1lBQ1osU0FBUzs7MkZBU0EsZ0JBQWdCO2tCQWQ1QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGVBQWUsQ0FBQyxRQUFRLEVBQUU7d0JBQzFCLFlBQVk7d0JBQ1osU0FBUztxQkFDVjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1oseUJBQXlCO3FCQUMxQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AseUJBQXlCO3FCQUMxQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBKb2JQcm9ncmVzc2lvblRlc3RpbmdQYWdlIH0gZnJvbSAnLi9qb2ItcHJvZ3Jlc3Npb24udGVzdGluZyc7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQgeyBKb2JNb2R1bGUgfSBmcm9tICcuLi9qb2IubW9kdWxlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBUcmFuc2xhdGVNb2R1bGUuZm9yQ2hpbGQoKSxcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgSm9iTW9kdWxlXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEpvYlByb2dyZXNzaW9uVGVzdGluZ1BhZ2VcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEpvYlByb2dyZXNzaW9uVGVzdGluZ1BhZ2VcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBKb2JUZXN0aW5nTW9kdWxlIHt9XG4iXX0=
@@ -5,7 +5,8 @@ import { AppForm } from '../../core/form/form.class';
5
5
  import { StatusIds } from '../../core/services/model/model.enum';
6
6
  import { PersonUtils } from '../../core/services/model/person.model';
7
7
  import { EntityUtils } from '../../core/services/model/entity.model';
8
- import { changeCaseToUnderscore } from '../../shared/functions';
8
+ import { changeCaseToUnderscore, isNotNil, toBoolean } from '../../shared/functions';
9
+ import { filter } from 'rxjs/operators';
9
10
  import * as i0 from "@angular/core";
10
11
  import * as i1 from "@angular/forms";
11
12
  import * as i2 from "@angular/common";
@@ -17,6 +18,7 @@ import * as i7 from "@angular/cdk/text-field";
17
18
  import * as i8 from "@angular/material/select";
18
19
  import * as i9 from "@angular/material/core";
19
20
  import * as i10 from "../../shared/material/chips/material.chips";
21
+ import * as i11 from "@angular/material/chips";
20
22
  export class MessageForm extends AppForm {
21
23
  formBuilder;
22
24
  cd;
@@ -27,6 +29,8 @@ export class MessageForm extends AppForm {
27
29
  bodyMaxLength = 2000;
28
30
  bodyAutoHeight = true;
29
31
  canSelectType = false;
32
+ canRecipientFilter = false;
33
+ recipientFilterCount = 0;
30
34
  types = MessageTypeList;
31
35
  constructor(injector, formBuilder, cd) {
32
36
  super(injector);
@@ -38,6 +42,7 @@ export class MessageForm extends AppForm {
38
42
  this.setForm(this.formBuilder.group({
39
43
  type: [MessageTypes.INBOX_MESSAGE, Validators.required],
40
44
  recipients: [null, Validators.required],
45
+ recipientFilter: [null],
41
46
  subject: [
42
47
  null,
43
48
  this.subjectMaxLength
@@ -46,6 +51,11 @@ export class MessageForm extends AppForm {
46
51
  ],
47
52
  body: [null, this.bodyMaxLength ? Validators.compose([Validators.maxLength(this.bodyMaxLength)]) : Validators.required],
48
53
  }));
54
+ this.registerSubscription(this._form
55
+ .get('type')
56
+ .valueChanges.pipe(filter(isNotNil))
57
+ .subscribe((type) => this.updateFormGroup(this._form, { type })));
58
+ // Person combo
49
59
  const personAttributes = this.settings.getFieldDisplayAttributes('person', ['lastName', 'firstName', 'department.name']);
50
60
  this.registerAutocompleteField('recipients', {
51
61
  showAllOnFocus: false,
@@ -63,16 +73,54 @@ export class MessageForm extends AppForm {
63
73
  isSamePerson(o1, o2) {
64
74
  return EntityUtils.equals(o1, o2, 'id');
65
75
  }
76
+ updateFormGroup(formGroup, opts) {
77
+ console.debug('[message-form] Updating form group...', opts);
78
+ // Recipient validator
79
+ const recipientsRequired = toBoolean(opts?.recipientRequired, opts?.type !== MessageTypes.FEED);
80
+ {
81
+ const control = formGroup.get('recipients');
82
+ if (recipientsRequired) {
83
+ if (!control.hasValidator(Validators.required)) {
84
+ control.addValidators(Validators.required);
85
+ }
86
+ control.enable();
87
+ }
88
+ else {
89
+ if (control.hasValidator(Validators.required)) {
90
+ control.removeValidators(Validators.required);
91
+ }
92
+ control.disable();
93
+ }
94
+ }
95
+ // Recipient filter validator
96
+ const recipientFilterRequired = this.canRecipientFilter && !recipientsRequired;
97
+ {
98
+ const control = formGroup.get('recipientFilter');
99
+ if (recipientFilterRequired) {
100
+ if (!control.hasValidator(Validators.required)) {
101
+ control.addValidators(Validators.required);
102
+ }
103
+ control.enable();
104
+ }
105
+ else {
106
+ if (control.hasValidator(Validators.required)) {
107
+ control.removeValidators(Validators.required);
108
+ }
109
+ control.disable();
110
+ }
111
+ }
112
+ formGroup.updateValueAndValidity();
113
+ }
66
114
  markForCheck() {
67
115
  this.cd.markForCheck();
68
116
  }
69
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageForm, deps: [{ token: i0.Injector }, { token: i1.UntypedFormBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
70
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MessageForm, selector: "app-message-form", inputs: { suggestFn: "suggestFn", subjectMinLength: "subjectMinLength", subjectMaxLength: "subjectMaxLength", bodyMaxLength: "bodyMaxLength", bodyAutoHeight: "bodyAutoHeight", canSelectType: "canSelectType" }, usesInheritance: true, ngImport: i0, template: "\n\n<form [formGroup]=\"form\" class=\"form-container\">\n\n <!-- type -->\n <mat-form-field *ngIf=\"canSelectType\">\n <mat-label>{{'SOCIAL.MESSAGE.TYPE'|translate}}</mat-label>\n <mat-select formControlName=\"type\">\n <mat-option *ngFor=\"let item of types\" [value]=\"item.id\">\n <ion-icon [name]=\"item.icon\"></ion-icon>\n {{ item.label |translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <!-- Recipients -->\n <mat-chips-field *ngIf=\"(form.controls.type.valueChanges|async) !== 'FEED'\"\n formControlName=\"recipients\"\n [placeholder]=\"'SOCIAL.MESSAGE.RECIPIENTS'|translate\"\n [config]=\"autocompleteFields.recipients\"\n [equals]=\"isSamePerson\">\n </mat-chips-field>\n\n <!-- Subject -->\n <mat-form-field>\n <mat-label>{{'SOCIAL.MESSAGE.SUBJECT'|translate}}</mat-label>\n <input matInput type=\"text\"\n formControlName=\"subject\"\n autocomplete=\"off\"\n required>\n <mat-error *ngIf=\"form.controls.subject.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"form.controls.subject.hasError('minlength')\">\n {{ 'ERROR.FIELD_MIN_LENGTH_COMPACT'|translate }}\n </mat-error>\n <mat-error *ngIf=\"form.controls.subject.hasError('maxlength')\">\n {{ 'ERROR.FIELD_MAX_LENGTH_COMPACT'|translate }}\n </mat-error>\n <mat-hint *ngIf=\"subjectMaxLength\" align=\"end\">\n {{ 'INFO.TEXT_PROGRESS' | translate: { current: form.controls.subject.value?.length || 0, max: subjectMaxLength } }}\n </mat-hint>\n </mat-form-field>\n\n <!-- Body -->\n <mat-form-field>\n <mat-label>{{'SOCIAL.MESSAGE.BODY_HELP'|translate}}</mat-label>\n <textarea matInput type=\"text\"\n formControlName=\"body\"\n [class.fixed-height]=\"!bodyAutoHeight\"\n [cdkTextareaAutosize]=\"bodyAutoHeight\"\n (keydown.control.enter)=\"doSubmit($event)\"\n >\n </textarea>\n <mat-error *ngIf=\"form.controls.body.hasError('maxlength')\">\n {{ 'ERROR.FIELD_MAX_LENGTH' | translate: form.controls.body.errors.maxlength }}\n </mat-error>\n <mat-hint *ngIf=\"bodyMaxLength\" align=\"end\">\n {{ 'INFO.TEXT_PROGRESS' | translate: { current: form.controls.body.value?.length || 0, max: bodyMaxLength } }}\n </mat-hint>\n </mat-form-field>\n\n</form>\n", styles: ["textarea.fixed-height{height:11.5em}textarea{min-height:11.5em}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i6.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: "directive", type: i7.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "panelWidth", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i10.MatChipsField, selector: "mat-chips-field", inputs: ["equals", "logPrefix", "formControl", "formControlName", "floatLabel", "appearance", "placeholder", "suggestFn", "required", "mobile", "readonly", "clearable", "debounceTime", "displayWith", "displayAttributes", "displayColumnSizes", "displayColumnNames", "highlightAccent", "showAllOnFocus", "showPanelOnFocus", "autofocus", "config", "i18nPrefix", "noResultMessage", "class", "panelWidth", "matAutocompletePosition", "itemSize", "fetchMoreThreshold", "suggestLengthThreshold", "showLoadingSpinner", "chipColor", "debug", "filter", "tabindex", "items"], outputs: ["click", "blur", "focus", "dropButtonClick", "keydown.escape", "keyup.enter"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
117
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: MessageForm, deps: [{ token: i0.Injector }, { token: i1.UntypedFormBuilder }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
118
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: MessageForm, selector: "app-message-form", inputs: { suggestFn: "suggestFn", subjectMinLength: "subjectMinLength", subjectMaxLength: "subjectMaxLength", bodyMaxLength: "bodyMaxLength", bodyAutoHeight: "bodyAutoHeight", canSelectType: "canSelectType", canRecipientFilter: "canRecipientFilter", recipientFilterCount: "recipientFilterCount" }, usesInheritance: true, ngImport: i0, template: "\n\n<form [formGroup]=\"form\" class=\"form-container\">\n\n <!-- type -->\n <mat-form-field *ngIf=\"canSelectType\">\n <mat-label>{{'SOCIAL.MESSAGE.TYPE'|translate}}</mat-label>\n <mat-select formControlName=\"type\">\n <ng-container *ngFor=\"let item of types\">\n <mat-option [value]=\"item.id\" *ngIf=\"item.id !== 'FEED' || canRecipientFilter\">\n <ion-icon [name]=\"item.icon\"></ion-icon>\n {{ item.label |translate }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n\n <!-- Recipients -->\n <mat-chips-field *ngIf=\"(form.controls.type.valueChanges|async) !== 'FEED'; else recipientFilter\"\n formControlName=\"recipients\"\n chipColor=\"accent\"\n [placeholder]=\"'SOCIAL.MESSAGE.RECIPIENTS'|translate\"\n [config]=\"autocompleteFields.recipients\"\n [equals]=\"isSamePerson\">\n </mat-chips-field>\n <ng-template #recipientFilter>\n <mat-form-field>\n <mat-chip-grid>\n <mat-chip-row>{{'SOCIAL.MESSAGE.RECIPIENT_FILTER_COUNT'|translate: {count: recipientFilterCount} }}</mat-chip-row>\n </mat-chip-grid>\n <input matInput hidden type=\"number\">\n </mat-form-field>\n </ng-template>\n\n <!-- Subject -->\n <mat-form-field>\n <mat-label>{{'SOCIAL.MESSAGE.SUBJECT'|translate}}</mat-label>\n <input matInput type=\"text\"\n formControlName=\"subject\"\n autocomplete=\"off\"\n required>\n <mat-error *ngIf=\"form.controls.subject.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"form.controls.subject.hasError('minlength')\">\n {{ 'ERROR.FIELD_MIN_LENGTH_COMPACT'|translate }}\n </mat-error>\n <mat-error *ngIf=\"form.controls.subject.hasError('maxlength')\">\n {{ 'ERROR.FIELD_MAX_LENGTH_COMPACT'|translate }}\n </mat-error>\n <mat-hint *ngIf=\"subjectMaxLength\" align=\"end\">\n {{ 'INFO.TEXT_PROGRESS' | translate: { current: form.controls.subject.value?.length || 0, max: subjectMaxLength } }}\n </mat-hint>\n </mat-form-field>\n\n <!-- Body -->\n <mat-form-field>\n <mat-label>{{'SOCIAL.MESSAGE.BODY_HELP'|translate}}</mat-label>\n <textarea matInput type=\"text\"\n formControlName=\"body\"\n [class.fixed-height]=\"!bodyAutoHeight\"\n [cdkTextareaAutosize]=\"bodyAutoHeight\"\n (keydown.control.enter)=\"doSubmit($event)\"\n >\n </textarea>\n <mat-error *ngIf=\"form.controls.body.hasError('maxlength')\">\n {{ 'ERROR.FIELD_MAX_LENGTH' | translate: form.controls.body.errors.maxlength }}\n </mat-error>\n <mat-hint *ngIf=\"bodyMaxLength\" align=\"end\">\n {{ 'INFO.TEXT_PROGRESS' | translate: { current: form.controls.body.value?.length || 0, max: bodyMaxLength } }}\n </mat-hint>\n </mat-form-field>\n\n</form>\n", styles: ["textarea.fixed-height{height:11.5em}textarea{min-height:11.5em}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "directive", type: i4.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.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: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i6.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: "directive", type: i7.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "component", type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "aria-describedby", "panelClass", "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: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i10.MatChipsField, selector: "mat-chips-field", inputs: ["equals", "logPrefix", "formControl", "formControlName", "floatLabel", "appearance", "placeholder", "suggestFn", "required", "mobile", "readonly", "clearable", "debounceTime", "displayWith", "displayAttributes", "displayColumnSizes", "displayColumnNames", "highlightAccent", "showAllOnFocus", "showPanelOnFocus", "autofocus", "config", "i18nPrefix", "noResultMessage", "class", "panelWidth", "matAutocompletePosition", "itemSize", "fetchMoreThreshold", "suggestLengthThreshold", "showLoadingSpinner", "chipColor", "debug", "filter", "tabindex", "items"], outputs: ["click", "blur", "focus", "dropButtonClick", "keydown.escape", "keyup.enter"] }, { kind: "component", type: i11.MatChipGrid, selector: "mat-chip-grid", inputs: ["tabIndex", "disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "component", type: i11.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "editable"], outputs: ["edited"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
71
119
  }
72
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageForm, decorators: [{
120
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: MessageForm, decorators: [{
73
121
  type: Component,
74
- args: [{ selector: 'app-message-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "\n\n<form [formGroup]=\"form\" class=\"form-container\">\n\n <!-- type -->\n <mat-form-field *ngIf=\"canSelectType\">\n <mat-label>{{'SOCIAL.MESSAGE.TYPE'|translate}}</mat-label>\n <mat-select formControlName=\"type\">\n <mat-option *ngFor=\"let item of types\" [value]=\"item.id\">\n <ion-icon [name]=\"item.icon\"></ion-icon>\n {{ item.label |translate }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n\n <!-- Recipients -->\n <mat-chips-field *ngIf=\"(form.controls.type.valueChanges|async) !== 'FEED'\"\n formControlName=\"recipients\"\n [placeholder]=\"'SOCIAL.MESSAGE.RECIPIENTS'|translate\"\n [config]=\"autocompleteFields.recipients\"\n [equals]=\"isSamePerson\">\n </mat-chips-field>\n\n <!-- Subject -->\n <mat-form-field>\n <mat-label>{{'SOCIAL.MESSAGE.SUBJECT'|translate}}</mat-label>\n <input matInput type=\"text\"\n formControlName=\"subject\"\n autocomplete=\"off\"\n required>\n <mat-error *ngIf=\"form.controls.subject.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"form.controls.subject.hasError('minlength')\">\n {{ 'ERROR.FIELD_MIN_LENGTH_COMPACT'|translate }}\n </mat-error>\n <mat-error *ngIf=\"form.controls.subject.hasError('maxlength')\">\n {{ 'ERROR.FIELD_MAX_LENGTH_COMPACT'|translate }}\n </mat-error>\n <mat-hint *ngIf=\"subjectMaxLength\" align=\"end\">\n {{ 'INFO.TEXT_PROGRESS' | translate: { current: form.controls.subject.value?.length || 0, max: subjectMaxLength } }}\n </mat-hint>\n </mat-form-field>\n\n <!-- Body -->\n <mat-form-field>\n <mat-label>{{'SOCIAL.MESSAGE.BODY_HELP'|translate}}</mat-label>\n <textarea matInput type=\"text\"\n formControlName=\"body\"\n [class.fixed-height]=\"!bodyAutoHeight\"\n [cdkTextareaAutosize]=\"bodyAutoHeight\"\n (keydown.control.enter)=\"doSubmit($event)\"\n >\n </textarea>\n <mat-error *ngIf=\"form.controls.body.hasError('maxlength')\">\n {{ 'ERROR.FIELD_MAX_LENGTH' | translate: form.controls.body.errors.maxlength }}\n </mat-error>\n <mat-hint *ngIf=\"bodyMaxLength\" align=\"end\">\n {{ 'INFO.TEXT_PROGRESS' | translate: { current: form.controls.body.value?.length || 0, max: bodyMaxLength } }}\n </mat-hint>\n </mat-form-field>\n\n</form>\n", styles: ["textarea.fixed-height{height:11.5em}textarea{min-height:11.5em}\n"] }]
75
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.UntypedFormBuilder }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { suggestFn: [{
122
+ args: [{ selector: 'app-message-form', changeDetection: ChangeDetectionStrategy.OnPush, template: "\n\n<form [formGroup]=\"form\" class=\"form-container\">\n\n <!-- type -->\n <mat-form-field *ngIf=\"canSelectType\">\n <mat-label>{{'SOCIAL.MESSAGE.TYPE'|translate}}</mat-label>\n <mat-select formControlName=\"type\">\n <ng-container *ngFor=\"let item of types\">\n <mat-option [value]=\"item.id\" *ngIf=\"item.id !== 'FEED' || canRecipientFilter\">\n <ion-icon [name]=\"item.icon\"></ion-icon>\n {{ item.label |translate }}\n </mat-option>\n </ng-container>\n </mat-select>\n </mat-form-field>\n\n <!-- Recipients -->\n <mat-chips-field *ngIf=\"(form.controls.type.valueChanges|async) !== 'FEED'; else recipientFilter\"\n formControlName=\"recipients\"\n chipColor=\"accent\"\n [placeholder]=\"'SOCIAL.MESSAGE.RECIPIENTS'|translate\"\n [config]=\"autocompleteFields.recipients\"\n [equals]=\"isSamePerson\">\n </mat-chips-field>\n <ng-template #recipientFilter>\n <mat-form-field>\n <mat-chip-grid>\n <mat-chip-row>{{'SOCIAL.MESSAGE.RECIPIENT_FILTER_COUNT'|translate: {count: recipientFilterCount} }}</mat-chip-row>\n </mat-chip-grid>\n <input matInput hidden type=\"number\">\n </mat-form-field>\n </ng-template>\n\n <!-- Subject -->\n <mat-form-field>\n <mat-label>{{'SOCIAL.MESSAGE.SUBJECT'|translate}}</mat-label>\n <input matInput type=\"text\"\n formControlName=\"subject\"\n autocomplete=\"off\"\n required>\n <mat-error *ngIf=\"form.controls.subject.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"form.controls.subject.hasError('minlength')\">\n {{ 'ERROR.FIELD_MIN_LENGTH_COMPACT'|translate }}\n </mat-error>\n <mat-error *ngIf=\"form.controls.subject.hasError('maxlength')\">\n {{ 'ERROR.FIELD_MAX_LENGTH_COMPACT'|translate }}\n </mat-error>\n <mat-hint *ngIf=\"subjectMaxLength\" align=\"end\">\n {{ 'INFO.TEXT_PROGRESS' | translate: { current: form.controls.subject.value?.length || 0, max: subjectMaxLength } }}\n </mat-hint>\n </mat-form-field>\n\n <!-- Body -->\n <mat-form-field>\n <mat-label>{{'SOCIAL.MESSAGE.BODY_HELP'|translate}}</mat-label>\n <textarea matInput type=\"text\"\n formControlName=\"body\"\n [class.fixed-height]=\"!bodyAutoHeight\"\n [cdkTextareaAutosize]=\"bodyAutoHeight\"\n (keydown.control.enter)=\"doSubmit($event)\"\n >\n </textarea>\n <mat-error *ngIf=\"form.controls.body.hasError('maxlength')\">\n {{ 'ERROR.FIELD_MAX_LENGTH' | translate: form.controls.body.errors.maxlength }}\n </mat-error>\n <mat-hint *ngIf=\"bodyMaxLength\" align=\"end\">\n {{ 'INFO.TEXT_PROGRESS' | translate: { current: form.controls.body.value?.length || 0, max: bodyMaxLength } }}\n </mat-hint>\n </mat-form-field>\n\n</form>\n", styles: ["textarea.fixed-height{height:11.5em}textarea{min-height:11.5em}\n"] }]
123
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.UntypedFormBuilder }, { type: i0.ChangeDetectorRef }], propDecorators: { suggestFn: [{
76
124
  type: Input
77
125
  }], subjectMinLength: [{
78
126
  type: Input
@@ -84,5 +132,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
84
132
  type: Input
85
133
  }], canSelectType: [{
86
134
  type: Input
135
+ }], canRecipientFilter: [{
136
+ type: Input
137
+ }], recipientFilterCount: [{
138
+ type: Input
87
139
  }] } });
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zb2NpYWwvbWVzc2FnZS9tZXNzYWdlLmZvcm0udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9tZXNzYWdlL21lc3NhZ2UuZm9ybS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFZLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQXNCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hFLE9BQU8sRUFBVyxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRSxPQUFPLEVBQVUsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7Ozs7Ozs7QUFRaEUsTUFBTSxPQUFPLFdBQVksU0FBUSxPQUFnQjtJQVlQO0lBQWtEO0lBWGpGLE1BQU0sQ0FBVTtJQUVoQixTQUFTLENBQWtDO0lBQzNDLGdCQUFnQixHQUFHLENBQUMsQ0FBQztJQUNyQixnQkFBZ0IsR0FBRyxHQUFHLENBQUM7SUFDdkIsYUFBYSxHQUFHLElBQUksQ0FBQztJQUNyQixjQUFjLEdBQUcsSUFBSSxDQUFDO0lBQ3RCLGFBQWEsR0FBRyxLQUFLLENBQUM7SUFFL0IsS0FBSyxHQUFHLGVBQWUsQ0FBQztJQUV4QixZQUFZLFFBQWtCLEVBQVUsV0FBK0IsRUFBbUIsRUFBcUI7UUFDN0csS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRHNCLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUFtQixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUU3RyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLE9BQU8sQ0FDVixJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQztZQUNyQixJQUFJLEVBQUUsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDdkQsVUFBVSxFQUFFLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDdkMsT0FBTyxFQUFFO2dCQUNQLElBQUk7Z0JBQ0osSUFBSSxDQUFDLGdCQUFnQjtvQkFDbkIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO29CQUNySSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVE7YUFDeEI7WUFDRCxJQUFJLEVBQUUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUN4SCxDQUFDLENBQ0gsQ0FBQztRQUVGLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxVQUFVLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQztRQUN6SCxJQUFJLENBQUMseUJBQXlCLENBQUMsWUFBWSxFQUFFO1lBQzNDLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztZQUN6QixNQUFNLEVBQUU7Z0JBQ04sU0FBUyxFQUFFLENBQUMsU0FBUyxDQUFDLFNBQVMsRUFBRSxTQUFTLENBQUMsTUFBTSxDQUFDO2FBQ25EO1lBQ0QsVUFBVSxFQUFFLGdCQUFnQjtZQUM1QixXQUFXLEVBQUUsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxRQUFRLHNCQUFzQixDQUFDLElBQUksQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDakcsV0FBVyxFQUFFLFdBQVcsQ0FBQyxjQUFjO1lBQ3ZDLFFBQVEsRUFBRSxJQUFJO1lBQ2QsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxZQUFZLENBQUMsRUFBVSxFQUFFLEVBQVU7UUFDakMsT0FBTyxXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVTLFlBQVk7UUFDcEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDO3dHQXJEVSxXQUFXOzRGQUFYLFdBQVcsaVNDakJ4QixrNUVBNkRBOzs0RkQ1Q2EsV0FBVztrQkFOdkIsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTtnS0FLdEMsU0FBUztzQkFBakIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdG9yLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNZXNzYWdlLCBNZXNzYWdlVHlwZUxpc3QsIE1lc3NhZ2VUeXBlcyB9IGZyb20gJy4vbWVzc2FnZS5tb2RlbCc7XG5pbXBvcnQgeyBBcHBGb3JtIH0gZnJvbSAnLi4vLi4vY29yZS9mb3JtL2Zvcm0uY2xhc3MnO1xuaW1wb3J0IHsgU3RhdHVzSWRzIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9tb2RlbC5lbnVtJztcbmltcG9ydCB7IFBlcnNvbiwgUGVyc29uVXRpbHMgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL3BlcnNvbi5tb2RlbCc7XG5pbXBvcnQgeyBTdWdnZXN0Rm4gfSBmcm9tICcuLi8uLi9zaGFyZWQvc2VydmljZXMvZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHsgUGVyc29uRmlsdGVyIH0gZnJvbSAnLi4vLi4vYWRtaW4vc2VydmljZXMvZmlsdGVyL3BlcnNvbi5maWx0ZXInO1xuaW1wb3J0IHsgRW50aXR5VXRpbHMgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBjaGFuZ2VDYXNlVG9VbmRlcnNjb3JlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1tZXNzYWdlLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVzc2FnZS5mb3JtLmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZXNzYWdlLmZvcm0uc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZUZvcm0gZXh0ZW5kcyBBcHBGb3JtPE1lc3NhZ2U+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcmVhZG9ubHkgbW9iaWxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHN1Z2dlc3RGbjogU3VnZ2VzdEZuPFBlcnNvbiwgUGVyc29uRmlsdGVyPjtcbiAgQElucHV0KCkgc3ViamVjdE1pbkxlbmd0aCA9IDU7XG4gIEBJbnB1dCgpIHN1YmplY3RNYXhMZW5ndGggPSAyNTU7XG4gIEBJbnB1dCgpIGJvZHlNYXhMZW5ndGggPSAyMDAwO1xuICBASW5wdXQoKSBib2R5QXV0b0hlaWdodCA9IHRydWU7XG4gIEBJbnB1dCgpIGNhblNlbGVjdFR5cGUgPSBmYWxzZTtcblxuICB0eXBlcyA9IE1lc3NhZ2VUeXBlTGlzdDtcblxuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IsIHByaXZhdGUgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlciwgcHJpdmF0ZSByZWFkb25seSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gICAgdGhpcy5tb2JpbGUgPSB0aGlzLnNldHRpbmdzLm1vYmlsZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0Rm9ybShcbiAgICAgIHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICB0eXBlOiBbTWVzc2FnZVR5cGVzLklOQk9YX01FU1NBR0UsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICByZWNpcGllbnRzOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgIHN1YmplY3Q6IFtcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIHRoaXMuc3ViamVjdE1heExlbmd0aFxuICAgICAgICAgICAgPyBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKHRoaXMuc3ViamVjdE1pbkxlbmd0aCksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMuc3ViamVjdE1heExlbmd0aCldKVxuICAgICAgICAgICAgOiBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBdLFxuICAgICAgICBib2R5OiBbbnVsbCwgdGhpcy5ib2R5TWF4TGVuZ3RoID8gVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLmJvZHlNYXhMZW5ndGgpXSkgOiBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIGNvbnN0IHBlcnNvbkF0dHJpYnV0ZXMgPSB0aGlzLnNldHRpbmdzLmdldEZpZWxkRGlzcGxheUF0dHJpYnV0ZXMoJ3BlcnNvbicsIFsnbGFzdE5hbWUnLCAnZmlyc3ROYW1lJywgJ2RlcGFydG1lbnQubmFtZSddKTtcbiAgICB0aGlzLnJlZ2lzdGVyQXV0b2NvbXBsZXRlRmllbGQoJ3JlY2lwaWVudHMnLCB7XG4gICAgICBzaG93QWxsT25Gb2N1czogZmFsc2UsXG4gICAgICBzdWdnZXN0Rm46IHRoaXMuc3VnZ2VzdEZuLFxuICAgICAgZmlsdGVyOiB7XG4gICAgICAgIHN0YXR1c0lkczogW1N0YXR1c0lkcy5URU1QT1JBUlksIFN0YXR1c0lkcy5FTkFCTEVdLFxuICAgICAgfSxcbiAgICAgIGF0dHJpYnV0ZXM6IHBlcnNvbkF0dHJpYnV0ZXMsXG4gICAgICBjb2x1bW5OYW1lczogcGVyc29uQXR0cmlidXRlcy5tYXAoKGF0dHIpID0+IGBVU0VSLiR7Y2hhbmdlQ2FzZVRvVW5kZXJzY29yZShhdHRyKS50b1VwcGVyQ2FzZSgpfWApLFxuICAgICAgZGlzcGxheVdpdGg6IFBlcnNvblV0aWxzLnBlcnNvblRvU3RyaW5nLFxuICAgICAgbXVsdGlwbGU6IHRydWUsXG4gICAgICBtb2JpbGU6IHRoaXMubW9iaWxlLFxuICAgIH0pO1xuICB9XG5cbiAgaXNTYW1lUGVyc29uKG8xOiBQZXJzb24sIG8yOiBQZXJzb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gRW50aXR5VXRpbHMuZXF1YWxzKG8xLCBvMiwgJ2lkJyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0ZvckNoZWNrKCkge1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cblxuIiwiXG5cbjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiZm9ybS1jb250YWluZXJcIj5cblxuICA8IS0tIHR5cGUgLS0+XG4gIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImNhblNlbGVjdFR5cGVcIj5cbiAgICA8bWF0LWxhYmVsPnt7J1NPQ0lBTC5NRVNTQUdFLlRZUEUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG4gICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwidHlwZVwiPlxuICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IGl0ZW0gb2YgdHlwZXNcIiBbdmFsdWVdPVwiaXRlbS5pZFwiPlxuICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiaXRlbS5pY29uXCI+PC9pb24taWNvbj5cbiAgICAgICAge3sgaXRlbS5sYWJlbCB8dHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDwhLS0gUmVjaXBpZW50cyAtLT5cbiAgPG1hdC1jaGlwcy1maWVsZCAqbmdJZj1cIihmb3JtLmNvbnRyb2xzLnR5cGUudmFsdWVDaGFuZ2VzfGFzeW5jKSAhPT0gJ0ZFRUQnXCJcbiAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZWNpcGllbnRzXCJcbiAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ1NPQ0lBTC5NRVNTQUdFLlJFQ0lQSUVOVFMnfHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgW2NvbmZpZ109XCJhdXRvY29tcGxldGVGaWVsZHMucmVjaXBpZW50c1wiXG4gICAgICAgICAgICAgICAgICAgW2VxdWFsc109XCJpc1NhbWVQZXJzb25cIj5cbiAgPC9tYXQtY2hpcHMtZmllbGQ+XG5cbiAgPCEtLSBTdWJqZWN0IC0tPlxuICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1sYWJlbD57eydTT0NJQUwuTUVTU0FHRS5TVUJKRUNUJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dCBtYXRJbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInN1YmplY3RcIlxuICAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxuICAgICAgICAgICByZXF1aXJlZD5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9scy5zdWJqZWN0Lmhhc0Vycm9yKCdyZXF1aXJlZCcpXCIgdHJhbnNsYXRlPkVSUk9SLkZJRUxEX1JFUVVJUkVEPC9tYXQtZXJyb3I+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHMuc3ViamVjdC5oYXNFcnJvcignbWlubGVuZ3RoJylcIj5cbiAgICAgIHt7ICdFUlJPUi5GSUVMRF9NSU5fTEVOR1RIX0NPTVBBQ1QnfHRyYW5zbGF0ZSB9fVxuICAgIDwvbWF0LWVycm9yPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzLnN1YmplY3QuaGFzRXJyb3IoJ21heGxlbmd0aCcpXCI+XG4gICAgICB7eyAnRVJST1IuRklFTERfTUFYX0xFTkdUSF9DT01QQUNUJ3x0cmFuc2xhdGUgfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgICA8bWF0LWhpbnQgKm5nSWY9XCJzdWJqZWN0TWF4TGVuZ3RoXCIgYWxpZ249XCJlbmRcIj5cbiAgICAgIHt7ICdJTkZPLlRFWFRfUFJPR1JFU1MnIHwgdHJhbnNsYXRlOiB7IGN1cnJlbnQ6IGZvcm0uY29udHJvbHMuc3ViamVjdC52YWx1ZT8ubGVuZ3RoIHx8IDAsIG1heDogc3ViamVjdE1heExlbmd0aCB9IH19XG4gICAgPC9tYXQtaGludD5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuICA8IS0tIEJvZHkgLS0+XG4gIDxtYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWxhYmVsPnt7J1NPQ0lBTC5NRVNTQUdFLkJPRFlfSEVMUCd8dHJhbnNsYXRlfX08L21hdC1sYWJlbD5cbiAgICA8dGV4dGFyZWEgbWF0SW5wdXQgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJib2R5XCJcbiAgICAgICAgICAgICAgW2NsYXNzLmZpeGVkLWhlaWdodF09XCIhYm9keUF1dG9IZWlnaHRcIlxuICAgICAgICAgICAgICBbY2RrVGV4dGFyZWFBdXRvc2l6ZV09XCJib2R5QXV0b0hlaWdodFwiXG4gICAgICAgICAgICAgIChrZXlkb3duLmNvbnRyb2wuZW50ZXIpPVwiZG9TdWJtaXQoJGV2ZW50KVwiXG4gICAgPlxuICAgIDwvdGV4dGFyZWE+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHMuYm9keS5oYXNFcnJvcignbWF4bGVuZ3RoJylcIj5cbiAgICAgIHt7ICdFUlJPUi5GSUVMRF9NQVhfTEVOR1RIJyB8IHRyYW5zbGF0ZTogZm9ybS5jb250cm9scy5ib2R5LmVycm9ycy5tYXhsZW5ndGggfX1cbiAgICA8L21hdC1lcnJvcj5cbiAgICA8bWF0LWhpbnQgKm5nSWY9XCJib2R5TWF4TGVuZ3RoXCIgYWxpZ249XCJlbmRcIj5cbiAgICAgIHt7ICdJTkZPLlRFWFRfUFJPR1JFU1MnIHwgdHJhbnNsYXRlOiB7IGN1cnJlbnQ6IGZvcm0uY29udHJvbHMuYm9keS52YWx1ZT8ubGVuZ3RoIHx8IDAsIG1heDogYm9keU1heExlbmd0aCB9IH19XG4gICAgPC9tYXQtaGludD5cbiAgPC9tYXQtZm9ybS1maWVsZD5cblxuPC9mb3JtPlxuIl19
140
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5mb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zb2NpYWwvbWVzc2FnZS9tZXNzYWdlLmZvcm0udHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9tZXNzYWdlL21lc3NhZ2UuZm9ybS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFZLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRyxPQUFPLEVBQXdDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xGLE9BQU8sRUFBVyxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3JELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNqRSxPQUFPLEVBQVUsV0FBVyxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFHN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDckYsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7O0FBUXhDLE1BQU0sT0FBTyxXQUFZLFNBQVEsT0FBZ0I7SUFjUDtJQUFrRDtJQWJqRixNQUFNLENBQVU7SUFFaEIsU0FBUyxDQUFrQztJQUMzQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7SUFDckIsZ0JBQWdCLEdBQUcsR0FBRyxDQUFDO0lBQ3ZCLGFBQWEsR0FBRyxJQUFJLENBQUM7SUFDckIsY0FBYyxHQUFHLElBQUksQ0FBQztJQUN0QixhQUFhLEdBQUcsS0FBSyxDQUFDO0lBQ3RCLGtCQUFrQixHQUFHLEtBQUssQ0FBQztJ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QUFNO2dCQUNMLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7b0JBQzdDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7aUJBQy9DO2dCQUNELE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUNuQjtTQUNGO1FBRUQsU0FBUyxDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVTLFlBQVk7UUFDcEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDO3VHQXhHVSxXQUFXOzJGQUFYLFdBQVcseVhDbEJ4QixvM0ZBd0VBOzsyRkR0RGEsV0FBVztrQkFOdkIsU0FBUzsrQkFDRSxrQkFBa0IsbUJBR1gsdUJBQXVCLENBQUMsTUFBTTs4SUFLdEMsU0FBUztzQkFBakIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csZ0JBQWdCO3NCQUF4QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1lc3NhZ2UsIE1lc3NhZ2VUeXBlTGlzdCwgTWVzc2FnZVR5cGVzIH0gZnJvbSAnLi9tZXNzYWdlLm1vZGVsJztcbmltcG9ydCB7IEFwcEZvcm0gfSBmcm9tICcuLi8uLi9jb3JlL2Zvcm0vZm9ybS5jbGFzcyc7XG5pbXBvcnQgeyBTdGF0dXNJZHMgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL21vZGVsLmVudW0nO1xuaW1wb3J0IHsgUGVyc29uLCBQZXJzb25VdGlscyB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvcGVyc29uLm1vZGVsJztcbmltcG9ydCB7IFN1Z2dlc3RGbiB9IGZyb20gJy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBQZXJzb25GaWx0ZXIgfSBmcm9tICcuLi8uLi9hZG1pbi9zZXJ2aWNlcy9maWx0ZXIvcGVyc29uLmZpbHRlcic7XG5pbXBvcnQgeyBFbnRpdHlVdGlscyB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IGNoYW5nZUNhc2VUb1VuZGVyc2NvcmUsIGlzTm90TmlsLCB0b0Jvb2xlYW4gfSBmcm9tICcuLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW1lc3NhZ2UtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZXNzYWdlLmZvcm0uaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lc3NhZ2UuZm9ybS5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlRm9ybSBleHRlbmRzIEFwcEZvcm08TWVzc2FnZT4gaW1wbGVtZW50cyBPbkluaXQge1xuICByZWFkb25seSBtb2JpbGU6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgc3VnZ2VzdEZuOiBTdWdnZXN0Rm48UGVyc29uLCBQZXJzb25GaWx0ZXI+O1xuICBASW5wdXQoKSBzdWJqZWN0TWluTGVuZ3RoID0gNTtcbiAgQElucHV0KCkgc3ViamVjdE1heExlbmd0aCA9IDI1NTtcbiAgQElucHV0KCkgYm9keU1heExlbmd0aCA9IDIwMDA7XG4gIEBJbnB1dCgpIGJvZHlBdXRvSGVpZ2h0ID0gdHJ1ZTtcbiAgQElucHV0KCkgY2FuU2VsZWN0VHlwZSA9IGZhbHNlO1xuICBASW5wdXQoKSBjYW5SZWNpcGllbnRGaWx0ZXIgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVjaXBpZW50RmlsdGVyQ291bnQgPSAwO1xuXG4gIHR5cGVzID0gTWVzc2FnZVR5cGVMaXN0O1xuXG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLCBwcml2YXRlIHJlYWRvbmx5IGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHN1cGVyKGluamVjdG9yKTtcbiAgICB0aGlzLm1vYmlsZSA9IHRoaXMuc2V0dGluZ3MubW9iaWxlO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXRGb3JtKFxuICAgICAgdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgIHR5cGU6IFtNZXNzYWdlVHlwZXMuSU5CT1hfTUVTU0FHRSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgIHJlY2lwaWVudHM6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgcmVjaXBpZW50RmlsdGVyOiBbbnVsbF0sXG4gICAgICAgIHN1YmplY3Q6IFtcbiAgICAgICAgICBudWxsLFxuICAgICAgICAgIHRoaXMuc3ViamVjdE1heExlbmd0aFxuICAgICAgICAgICAgPyBWYWxpZGF0b3JzLmNvbXBvc2UoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKHRoaXMuc3ViamVjdE1pbkxlbmd0aCksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKHRoaXMuc3ViamVjdE1heExlbmd0aCldKVxuICAgICAgICAgICAgOiBWYWxpZGF0b3JzLnJlcXVpcmVkLFxuICAgICAgICBdLFxuICAgICAgICBib2R5OiBbbnVsbCwgdGhpcy5ib2R5TWF4TGVuZ3RoID8gVmFsaWRhdG9ycy5jb21wb3NlKFtWYWxpZGF0b3JzLm1heExlbmd0aCh0aGlzLmJvZHlNYXhMZW5ndGgpXSkgOiBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMucmVnaXN0ZXJTdWJzY3JpcHRpb24oXG4gICAgICB0aGlzLl9mb3JtXG4gICAgICAgIC5nZXQoJ3R5cGUnKVxuICAgICAgICAudmFsdWVDaGFuZ2VzLnBpcGUoZmlsdGVyKGlzTm90TmlsKSlcbiAgICAgICAgLnN1YnNjcmliZSgodHlwZSkgPT4gdGhpcy51cGRhdGVGb3JtR3JvdXAodGhpcy5fZm9ybSwgeyB0eXBlIH0pKVxuICAgICk7XG5cbiAgICAvLyBQZXJzb24gY29tYm9cbiAgICBjb25zdCBwZXJzb25BdHRyaWJ1dGVzID0gdGhpcy5zZXR0aW5ncy5nZXRGaWVsZERpc3BsYXlBdHRyaWJ1dGVzKCdwZXJzb24nLCBbJ2xhc3ROYW1lJywgJ2ZpcnN0TmFtZScsICdkZXBhcnRtZW50Lm5hbWUnXSk7XG4gICAgdGhpcy5yZWdpc3RlckF1dG9jb21wbGV0ZUZpZWxkKCdyZWNpcGllbnRzJywge1xuICAgICAgc2hvd0FsbE9uRm9jdXM6IGZhbHNlLFxuICAgICAgc3VnZ2VzdEZuOiB0aGlzLnN1Z2dlc3RGbixcbiAgICAgIGZpbHRlcjoge1xuICAgICAgICBzdGF0dXNJZHM6IFtTdGF0dXNJZHMuVEVNUE9SQVJZLCBTdGF0dXNJZHMuRU5BQkxFXSxcbiAgICAgIH0sXG4gICAgICBhdHRyaWJ1dGVzOiBwZXJzb25BdHRyaWJ1dGVzLFxuICAgICAgY29sdW1uTmFtZXM6IHBlcnNvbkF0dHJpYnV0ZXMubWFwKChhdHRyKSA9PiBgVVNFUi4ke2NoYW5nZUNhc2VUb1VuZGVyc2NvcmUoYXR0cikudG9VcHBlckNhc2UoKX1gKSxcbiAgICAgIGRpc3BsYXlXaXRoOiBQZXJzb25VdGlscy5wZXJzb25Ub1N0cmluZyxcbiAgICAgIG11bHRpcGxlOiB0cnVlLFxuICAgICAgbW9iaWxlOiB0aGlzLm1vYmlsZSxcbiAgICB9KTtcbiAgfVxuXG4gIGlzU2FtZVBlcnNvbihvMTogUGVyc29uLCBvMjogUGVyc29uKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEVudGl0eVV0aWxzLmVxdWFscyhvMSwgbzIsICdpZCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZUZvcm1Hcm91cChmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsIG9wdHM/OiB7IHR5cGU/OiBzdHJpbmc7IHJlY2lwaWVudFJlcXVpcmVkPzogYm9vbGVhbiB9KSB7XG4gICAgY29uc29sZS5kZWJ1ZygnW21lc3NhZ2UtZm9ybV0gVXBkYXRpbmcgZm9ybSBncm91cC4uLicsIG9wdHMpO1xuXG4gICAgLy8gUmVjaXBpZW50IHZhbGlkYXRvclxuICAgIGNvbnN0IHJlY2lwaWVudHNSZXF1aXJlZCA9IHRvQm9vbGVhbihvcHRzPy5yZWNpcGllbnRSZXF1aXJlZCwgb3B0cz8udHlwZSAhPT0gTWVzc2FnZVR5cGVzLkZFRUQpO1xuICAgIHtcbiAgICAgIGNvbnN0IGNvbnRyb2wgPSBmb3JtR3JvdXAuZ2V0KCdyZWNpcGllbnRzJyk7XG4gICAgICBpZiAocmVjaXBpZW50c1JlcXVpcmVkKSB7XG4gICAgICAgIGlmICghY29udHJvbC5oYXNWYWxpZGF0b3IoVmFsaWRhdG9ycy5yZXF1aXJlZCkpIHtcbiAgICAgICAgICBjb250cm9sLmFkZFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgIH1cbiAgICAgICAgY29udHJvbC5lbmFibGUoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChjb250cm9sLmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKSkge1xuICAgICAgICAgIGNvbnRyb2wucmVtb3ZlVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgfVxuICAgICAgICBjb250cm9sLmRpc2FibGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBSZWNpcGllbnQgZmlsdGVyIHZhbGlkYXRvclxuICAgIGNvbnN0IHJlY2lwaWVudEZpbHRlclJlcXVpcmVkID0gdGhpcy5jYW5SZWNpcGllbnRGaWx0ZXIgJiYgIXJlY2lwaWVudHNSZXF1aXJlZDtcbiAgICB7XG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldCgncmVjaXBpZW50RmlsdGVyJyk7XG4gICAgICBpZiAocmVjaXBpZW50RmlsdGVyUmVxdWlyZWQpIHtcbiAgICAgICAgaWYgKCFjb250cm9sLmhhc1ZhbGlkYXRvcihWYWxpZGF0b3JzLnJlcXVpcmVkKSkge1xuICAgICAgICAgIGNvbnRyb2wuYWRkVmFsaWRhdG9ycyhWYWxpZGF0b3JzLnJlcXVpcmVkKTtcbiAgICAgICAgfVxuICAgICAgICBjb250cm9sLmVuYWJsZSgpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKGNvbnRyb2wuaGFzVmFsaWRhdG9yKFZhbGlkYXRvcnMucmVxdWlyZWQpKSB7XG4gICAgICAgICAgY29udHJvbC5yZW1vdmVWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGZvcm1Hcm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0ZvckNoZWNrKCkge1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cblxuIiwiXG5cbjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIGNsYXNzPVwiZm9ybS1jb250YWluZXJcIj5cblxuICA8IS0tIHR5cGUgLS0+XG4gIDxtYXQtZm9ybS1maWVsZCAqbmdJZj1cImNhblNlbGVjdFR5cGVcIj5cbiAgICA8bWF0LWxhYmVsPnt7J1NPQ0lBTC5NRVNTQUdFLlRZUEUnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG4gICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwidHlwZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0eXBlc1wiPlxuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwiaXRlbS5pZFwiICpuZ0lmPVwiaXRlbS5pZCAhPT0gJ0ZFRUQnIHx8IGNhblJlY2lwaWVudEZpbHRlclwiPlxuICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJpdGVtLmljb25cIj48L2lvbi1pY29uPlxuICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L21hdC1zZWxlY3Q+XG4gIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgPCEtLSBSZWNpcGllbnRzIC0tPlxuICA8bWF0LWNoaXBzLWZpZWxkICpuZ0lmPVwiKGZvcm0uY29udHJvbHMudHlwZS52YWx1ZUNoYW5nZXN8YXN5bmMpICE9PSAnRkVFRCc7IGVsc2UgcmVjaXBpZW50RmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJyZWNpcGllbnRzXCJcbiAgICAgICAgICAgICAgICAgICBjaGlwQ29sb3I9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInU09DSUFMLk1FU1NBR0UuUkVDSVBJRU5UUyd8dHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICAgICBbY29uZmlnXT1cImF1dG9jb21wbGV0ZUZpZWxkcy5yZWNpcGllbnRzXCJcbiAgICAgICAgICAgICAgICAgICBbZXF1YWxzXT1cImlzU2FtZVBlcnNvblwiPlxuICA8L21hdC1jaGlwcy1maWVsZD5cbiAgPG5nLXRlbXBsYXRlICNyZWNpcGllbnRGaWx0ZXI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1jaGlwLWdyaWQ+XG4gICAgICAgIDxtYXQtY2hpcC1yb3c+e3snU09DSUFMLk1FU1NBR0UuUkVDSVBJRU5UX0ZJTFRFUl9DT1VOVCd8dHJhbnNsYXRlOiB7Y291bnQ6IHJlY2lwaWVudEZpbHRlckNvdW50fSB9fTwvbWF0LWNoaXAtcm93PlxuICAgICAgPC9tYXQtY2hpcC1ncmlkPlxuICAgICAgPGlucHV0IG1hdElucHV0IGhpZGRlbiB0eXBlPVwibnVtYmVyXCI+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8IS0tIFN1YmplY3QgLS0+XG4gIDxtYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWxhYmVsPnt7J1NPQ0lBTC5NRVNTQUdFLlNVQkpFQ1QnfHRyYW5zbGF0ZX19PC9tYXQtbGFiZWw+XG4gICAgPGlucHV0IG1hdElucHV0IHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3ViamVjdFwiXG4gICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgICAgIHJlcXVpcmVkPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzLnN1YmplY3QuaGFzRXJyb3IoJ3JlcXVpcmVkJylcIiB0cmFuc2xhdGU+RVJST1IuRklFTERfUkVRVUlSRUQ8L21hdC1lcnJvcj5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9scy5zdWJqZWN0Lmhhc0Vycm9yKCdtaW5sZW5ndGgnKVwiPlxuICAgICAge3sgJ0VSUk9SLkZJRUxEX01JTl9MRU5HVEhfQ09NUEFDVCd8dHJhbnNsYXRlIH19XG4gICAgPC9tYXQtZXJyb3I+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cImZvcm0uY29udHJvbHMuc3ViamVjdC5oYXNFcnJvcignbWF4bGVuZ3RoJylcIj5cbiAgICAgIHt7ICdFUlJPUi5GSUVMRF9NQVhfTEVOR1RIX0NPTVBBQ1QnfHRyYW5zbGF0ZSB9fVxuICAgIDwvbWF0LWVycm9yPlxuICAgIDxtYXQtaGludCAqbmdJZj1cInN1YmplY3RNYXhMZW5ndGhcIiBhbGlnbj1cImVuZFwiPlxuICAgICAge3sgJ0lORk8uVEVYVF9QUk9HUkVTUycgfCB0cmFuc2xhdGU6IHsgY3VycmVudDogZm9ybS5jb250cm9scy5zdWJqZWN0LnZhbHVlPy5sZW5ndGggfHwgMCwgbWF4OiBzdWJqZWN0TWF4TGVuZ3RoIH0gfX1cbiAgICA8L21hdC1oaW50PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gIDwhLS0gQm9keSAtLT5cbiAgPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+e3snU09DSUFMLk1FU1NBR0UuQk9EWV9IRUxQJ3x0cmFuc2xhdGV9fTwvbWF0LWxhYmVsPlxuICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImJvZHlcIlxuICAgICAgICAgICAgICBbY2xhc3MuZml4ZWQtaGVpZ2h0XT1cIiFib2R5QXV0b0hlaWdodFwiXG4gICAgICAgICAgICAgIFtjZGtUZXh0YXJlYUF1dG9zaXplXT1cImJvZHlBdXRvSGVpZ2h0XCJcbiAgICAgICAgICAgICAgKGtleWRvd24uY29udHJvbC5lbnRlcik9XCJkb1N1Ym1pdCgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC90ZXh0YXJlYT5cbiAgICA8bWF0LWVycm9yICpuZ0lmPVwiZm9ybS5jb250cm9scy5ib2R5Lmhhc0Vycm9yKCdtYXhsZW5ndGgnKVwiPlxuICAgICAge3sgJ0VSUk9SLkZJRUxEX01BWF9MRU5HVEgnIHwgdHJhbnNsYXRlOiBmb3JtLmNvbnRyb2xzLmJvZHkuZXJyb3JzLm1heGxlbmd0aCB9fVxuICAgIDwvbWF0LWVycm9yPlxuICAgIDxtYXQtaGludCAqbmdJZj1cImJvZHlNYXhMZW5ndGhcIiBhbGlnbj1cImVuZFwiPlxuICAgICAge3sgJ0lORk8uVEVYVF9QUk9HUkVTUycgfCB0cmFuc2xhdGU6IHsgY3VycmVudDogZm9ybS5jb250cm9scy5ib2R5LnZhbHVlPy5sZW5ndGggfHwgMCwgbWF4OiBib2R5TWF4TGVuZ3RoIH0gfX1cbiAgICA8L21hdC1oaW50PlxuICA8L21hdC1mb3JtLWZpZWxkPlxuXG48L2Zvcm0+XG4iXX0=
@@ -19,6 +19,8 @@ export class MessageModal {
19
19
  suggestFn;
20
20
  data;
21
21
  canSelectType;
22
+ canRecipientFilter;
23
+ recipientFilterCount;
22
24
  form;
23
25
  constructor(settings, viewCtrl, accountService, cd) {
24
26
  this.settings = settings;
@@ -31,13 +33,15 @@ export class MessageModal {
31
33
  this.canSelectType = toBoolean(this.canSelectType, this.accountService.isAdmin());
32
34
  }
33
35
  ngAfterViewInit() {
34
- this.form.markAsReady({ emitEvent: false });
35
- if (this.data) {
36
- this.data.type = this.data.type || MessageTypes.INBOX_MESSAGE;
37
- this.form.setValue(this.data);
38
- }
39
- this.form.markAsLoaded();
40
- this.form.enable();
36
+ setTimeout(() => {
37
+ this.form.markAsReady({ emitEvent: false });
38
+ if (this.data) {
39
+ this.data.type = this.data.type || MessageTypes.INBOX_MESSAGE;
40
+ this.form.setValue(this.data);
41
+ }
42
+ this.form.markAsLoaded();
43
+ this.form.enable();
44
+ });
41
45
  }
42
46
  cancel(event) {
43
47
  this.viewCtrl.dismiss();
@@ -83,20 +87,24 @@ export class MessageModal {
83
87
  markAsLoaded(opts) {
84
88
  this.form.markAsLoaded(opts);
85
89
  }
86
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageModal, deps: [{ token: i1.LocalSettingsService }, { token: i2.ModalController }, { token: i3.AccountService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
87
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MessageModal, selector: "app-message-modal", inputs: { suggestFn: "suggestFn", data: "data", canSelectType: "canSelectType" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true, static: true }], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"secondary\">\n <ion-buttons slot=\"start\">\n <ion-button class=\"back-button\" (click)=\"cancel($event)\" visible-xs visible-sm visible-mobile>\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n </ion-buttons>\n\n <ion-title>\n {{'SOCIAL.MESSAGE.NEW.TITLE' | translate}}\n </ion-title>\n\n <ion-buttons slot=\"end\">\n\n <ion-button class=\"back-button\" (click)=\"doSubmit($event)\"\n [disabled]=\"!form.valid\"\n visible-xs visible-sm visible-mobile>\n <ion-icon slot=\"icon-only\" name=\"checkmark\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n\n<ion-content class=\"ion-padding\" >\n\n <ion-item *ngIf=\"form.error\" visible-xs visible-sm visible-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"form.error|translate\"></ion-label>\n </ion-item>\n\n <app-message-form #form (onSubmit)=\"doSubmit($event)\"\n (onCancel)=\"cancel($event)\"\n [canSelectType]=\"canSelectType\"\n [suggestFn]=\"suggestFn\">\n </app-message-form>\n\n</ion-content>\n\n\n<ion-footer hidden-xs hidden-sm hidden-mobile>\n\n <ion-toolbar>\n\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col></ion-col>\n\n <!-- buttons -->\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"cancel($event)\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n\n <ion-button [fill]=\"form.invalid ? 'clear' : 'solid'\"\n [disabled]=\"form.loading || form.invalid\"\n (keyup.enter)=\"doSubmit($event)\"\n (click)=\"doSubmit($event)\" color=\"tertiary\">\n <ion-label translate>COMMON.BTN_SEND</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n\n\n </ion-toolbar>\n</ion-footer>\n", dependencies: [{ kind: "directive", type: i4.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.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { 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.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.MessageForm, selector: "app-message-form", inputs: ["suggestFn", "subjectMinLength", "subjectMaxLength", "bodyMaxLength", "bodyAutoHeight", "canSelectType"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
90
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: MessageModal, deps: [{ token: i1.LocalSettingsService }, { token: i2.ModalController }, { token: i3.AccountService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
91
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: MessageModal, selector: "app-message-modal", inputs: { suggestFn: "suggestFn", data: "data", canSelectType: "canSelectType", canRecipientFilter: "canRecipientFilter", recipientFilterCount: "recipientFilterCount" }, viewQueries: [{ propertyName: "form", first: true, predicate: ["form"], descendants: true, static: true }], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"secondary\">\n <ion-buttons slot=\"start\">\n <ion-button class=\"back-button\" (click)=\"cancel($event)\" visible-xs visible-sm visible-mobile>\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n </ion-buttons>\n\n <ion-title>\n {{'SOCIAL.MESSAGE.NEW.TITLE' | translate}}\n </ion-title>\n\n <ion-buttons slot=\"end\">\n\n <ion-button class=\"back-button\" (click)=\"doSubmit($event)\"\n [disabled]=\"!form.valid\"\n visible-xs visible-sm visible-mobile>\n <ion-icon slot=\"icon-only\" name=\"checkmark\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n\n<ion-content class=\"ion-padding\" >\n\n <ion-item *ngIf=\"form.error\" visible-xs visible-sm visible-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"form.error|translate\"></ion-label>\n </ion-item>\n\n <app-message-form #form (onSubmit)=\"doSubmit($event)\"\n (onCancel)=\"cancel($event)\"\n [canSelectType]=\"canSelectType\"\n [canRecipientFilter]=\"canRecipientFilter\"\n [recipientFilterCount]=\"recipientFilterCount\"\n [suggestFn]=\"suggestFn\">\n </app-message-form>\n\n</ion-content>\n\n\n<ion-footer hidden-xs hidden-sm hidden-mobile>\n\n <ion-toolbar>\n\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col></ion-col>\n\n <!-- buttons -->\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"cancel($event)\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n\n <ion-button [fill]=\"form.invalid ? 'clear' : 'solid'\"\n [disabled]=\"form.loading || form.invalid\"\n (keyup.enter)=\"doSubmit($event)\"\n (click)=\"doSubmit($event)\" color=\"tertiary\">\n <ion-label translate>COMMON.BTN_SEND</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n\n\n </ion-toolbar>\n</ion-footer>\n", dependencies: [{ kind: "directive", type: i4.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.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { 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.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: i6.MessageForm, selector: "app-message-form", inputs: ["suggestFn", "subjectMinLength", "subjectMaxLength", "bodyMaxLength", "bodyAutoHeight", "canSelectType", "canRecipientFilter", "recipientFilterCount"] }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
88
92
  }
89
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageModal, decorators: [{
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: MessageModal, decorators: [{
90
94
  type: Component,
91
- args: [{ selector: 'app-message-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-header>\n <ion-toolbar color=\"secondary\">\n <ion-buttons slot=\"start\">\n <ion-button class=\"back-button\" (click)=\"cancel($event)\" visible-xs visible-sm visible-mobile>\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n </ion-buttons>\n\n <ion-title>\n {{'SOCIAL.MESSAGE.NEW.TITLE' | translate}}\n </ion-title>\n\n <ion-buttons slot=\"end\">\n\n <ion-button class=\"back-button\" (click)=\"doSubmit($event)\"\n [disabled]=\"!form.valid\"\n visible-xs visible-sm visible-mobile>\n <ion-icon slot=\"icon-only\" name=\"checkmark\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n\n<ion-content class=\"ion-padding\" >\n\n <ion-item *ngIf=\"form.error\" visible-xs visible-sm visible-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"form.error|translate\"></ion-label>\n </ion-item>\n\n <app-message-form #form (onSubmit)=\"doSubmit($event)\"\n (onCancel)=\"cancel($event)\"\n [canSelectType]=\"canSelectType\"\n [suggestFn]=\"suggestFn\">\n </app-message-form>\n\n</ion-content>\n\n\n<ion-footer hidden-xs hidden-sm hidden-mobile>\n\n <ion-toolbar>\n\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col></ion-col>\n\n <!-- buttons -->\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"cancel($event)\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n\n <ion-button [fill]=\"form.invalid ? 'clear' : 'solid'\"\n [disabled]=\"form.loading || form.invalid\"\n (keyup.enter)=\"doSubmit($event)\"\n (click)=\"doSubmit($event)\" color=\"tertiary\">\n <ion-label translate>COMMON.BTN_SEND</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n\n\n </ion-toolbar>\n</ion-footer>\n" }]
92
- }], ctorParameters: function () { return [{ type: i1.LocalSettingsService }, { type: i2.ModalController }, { type: i3.AccountService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { suggestFn: [{
95
+ args: [{ selector: 'app-message-modal', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-header>\n <ion-toolbar color=\"secondary\">\n <ion-buttons slot=\"start\">\n <ion-button class=\"back-button\" (click)=\"cancel($event)\" visible-xs visible-sm visible-mobile>\n <ion-icon slot=\"icon-only\" name=\"arrow-back\"></ion-icon>\n </ion-button>\n </ion-buttons>\n\n <ion-title>\n {{'SOCIAL.MESSAGE.NEW.TITLE' | translate}}\n </ion-title>\n\n <ion-buttons slot=\"end\">\n\n <ion-button class=\"back-button\" (click)=\"doSubmit($event)\"\n [disabled]=\"!form.valid\"\n visible-xs visible-sm visible-mobile>\n <ion-icon slot=\"icon-only\" name=\"checkmark\"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n\n\n<ion-content class=\"ion-padding\" >\n\n <ion-item *ngIf=\"form.error\" visible-xs visible-sm visible-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"form.error|translate\"></ion-label>\n </ion-item>\n\n <app-message-form #form (onSubmit)=\"doSubmit($event)\"\n (onCancel)=\"cancel($event)\"\n [canSelectType]=\"canSelectType\"\n [canRecipientFilter]=\"canRecipientFilter\"\n [recipientFilterCount]=\"recipientFilterCount\"\n [suggestFn]=\"suggestFn\">\n </app-message-form>\n\n</ion-content>\n\n\n<ion-footer hidden-xs hidden-sm hidden-mobile>\n\n <ion-toolbar>\n\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col></ion-col>\n\n <!-- buttons -->\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"cancel($event)\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n\n <ion-button [fill]=\"form.invalid ? 'clear' : 'solid'\"\n [disabled]=\"form.loading || form.invalid\"\n (keyup.enter)=\"doSubmit($event)\"\n (click)=\"doSubmit($event)\" color=\"tertiary\">\n <ion-label translate>COMMON.BTN_SEND</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n\n\n </ion-toolbar>\n</ion-footer>\n" }]
96
+ }], ctorParameters: () => [{ type: i1.LocalSettingsService }, { type: i2.ModalController }, { type: i3.AccountService }, { type: i0.ChangeDetectorRef }], propDecorators: { suggestFn: [{
93
97
  type: Input
94
98
  }], data: [{
95
99
  type: Input
96
100
  }], canSelectType: [{
97
101
  type: Input
102
+ }], canRecipientFilter: [{
103
+ type: Input
104
+ }], recipientFilterCount: [{
105
+ type: Input
98
106
  }], form: [{
99
107
  type: ViewChild,
100
108
  args: ['form', { static: true }]
101
109
  }] } });
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5tb2RhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL21lc3NhZ2UvbWVzc2FnZS5tb2RhbC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL21lc3NhZ2UvbWVzc2FnZS5tb2RhbC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRzdILE9BQU8sRUFBQyxPQUFPLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFNdEQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3hELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7QUFjakQsTUFBTSxPQUFPLFlBQVk7SUFhWDtJQUNBO0lBQ0E7SUFDQTtJQWRILE1BQU0sQ0FBVTtJQUVoQixTQUFTLENBQWtDO0lBRTNDLElBQUksQ0FBVTtJQUVkLGFBQWEsQ0FBVTtJQUVhLElBQUksQ0FBYztJQUUvRCxZQUNZLFFBQThCLEVBQzlCLFFBQXlCLEVBQ3pCLGNBQThCLEVBQzlCLEVBQXFCO1FBSHJCLGFBQVEsR0FBUixRQUFRLENBQXNCO1FBQzlCLGFBQVEsR0FBUixRQUFRLENBQWlCO1FBQ3pCLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUUvQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMs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QUVaLHVCQUF1QixDQUFDLE1BQU07c01BTXRDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBRXVDLElBQUk7c0JBQWhELFNBQVM7dUJBQUMsTUFBTSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7TW9kYWxDb250cm9sbGVyfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge01lc3NhZ2UsIE1lc3NhZ2VUeXBlc30gZnJvbSAnLi9tZXNzYWdlLm1vZGVsJztcbmltcG9ydCB7UGVyc29ufSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL3BlcnNvbi5tb2RlbCc7XG5pbXBvcnQge1N1Z2dlc3RGbn0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2VudGl0eS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7UGVyc29uRmlsdGVyfSBmcm9tICcuLi8uLi9hZG1pbi9zZXJ2aWNlcy9maWx0ZXIvcGVyc29uLmZpbHRlcic7XG5pbXBvcnQge0xvY2FsU2V0dGluZ3NTZXJ2aWNlfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2xvY2FsLXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHtNZXNzYWdlRm9ybX0gZnJvbSAnLi9tZXNzYWdlLmZvcm0nO1xuaW1wb3J0IHtmaXJzdE5vdE5pbFByb21pc2V9IGZyb20gJy4uLy4uL3NoYXJlZC9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge0FwcEZvcm1VdGlsc30gZnJvbSAnLi4vLi4vY29yZS9mb3JtL2Zvcm0udXRpbHMnO1xuaW1wb3J0IHt0b0Jvb2xlYW59IGZyb20gJy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHtBY2NvdW50U2VydmljZX0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9hY2NvdW50LnNlcnZpY2UnO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1lc3NhZ2VNb2RhbE9wdGlvbnMge1xuICBzdWdnZXN0Rm46IFN1Z2dlc3RGbjxQZXJzb24sIFBlcnNvbkZpbHRlcj47XG4gIGRhdGE/OiBNZXNzYWdlO1xuICBjYW5TZWxlY3RUeXBlPzogYm9vbGVhbjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW1lc3NhZ2UtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVzc2FnZS5tb2RhbC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZU1vZGFsIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBNZXNzYWdlTW9kYWxPcHRpb25zIHtcblxuICByZWFkb25seSBtb2JpbGU6IGJvb2xlYW47XG5cbiAgQElucHV0KCkgc3VnZ2VzdEZuOiBTdWdnZXN0Rm48UGVyc29uLCBQZXJzb25GaWx0ZXI+O1xuXG4gIEBJbnB1dCgpIGRhdGE6IE1lc3NhZ2U7XG5cbiAgQElucHV0KCkgY2FuU2VsZWN0VHlwZTogYm9vbGVhbjtcblxuICBAVmlld0NoaWxkKCdmb3JtJywgeyBzdGF0aWM6IHRydWUgfSkgcHJpdmF0ZSBmb3JtOiBNZXNzYWdlRm9ybTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgc2V0dGluZ3M6IExvY2FsU2V0dGluZ3NTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCB2aWV3Q3RybDogTW9kYWxDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCBhY2NvdW50U2VydmljZTogQWNjb3VudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgICB0aGlzLm1vYmlsZSA9IHRoaXMuc2V0dGluZ3MubW9iaWxlO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5jYW5TZWxlY3RUeXBlID0gdG9Cb29sZWFuKHRoaXMuY2FuU2VsZWN0VHlwZSwgdGhpcy5hY2NvdW50U2VydmljZS5pc0FkbWluKCkpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuZm9ybS5tYXJrQXNSZWFkeSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgIGlmICh0aGlzLmRhdGEpIHtcbiAgICAgIHRoaXMuZGF0YS50eXBlID0gdGhpcy5kYXRhLnR5cGUgfHwgTWVzc2FnZVR5cGVzLklOQk9YX01FU1NBR0U7XG4gICAgICB0aGlzLmZvcm0uc2V0VmFsdWUodGhpcy5kYXRhKTtcbiAgICB9XG4gICAgdGhpcy5mb3JtLm1hcmtBc0xvYWRlZCgpO1xuICAgIHRoaXMuZm9ybS5lbmFibGUoKTtcbiAgfVxuXG4gIGNhbmNlbChldmVudD86IEV2ZW50KSB7XG4gICAgdGhpcy52aWV3Q3RybC5kaXNtaXNzKCk7XG4gIH1cblxuICBhc3luYyBkb1N1Ym1pdChldmVudD86IEV2ZW50KTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAodGhpcy5mb3JtLmRpc2FibGVkKSByZXR1cm47XG4gICAgaWYgKCF0aGlzLmZvcm0udmFsaWQpIHtcblxuICAgICAgYXdhaXQgQXBwRm9ybVV0aWxzLndhaXRXaGlsZVBlbmRpbmcodGhpcy5mb3JtKTtcblxuICAgICAgaWYgKHRoaXMuZm9ybS5pbnZhbGlkKSB7XG4gICAgICAgIEFwcEZvcm1VdGlscy5sb2dGb3JtRXJyb3JzKHRoaXMuZm9ybS5mb3JtLCAnW21lc3NhZ2UtbW9kYWxdICcpO1xuICAgICAgICB0aGlzLmZvcm0ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMubWFya0FzTG9hZGluZygpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSB0aGlzLmZvcm0udmFsdWU7XG5cbiAgICAgIC8vIERpc2FibGUgdGhlIGZvcm1cbiAgICAgIHRoaXMuZm9ybS5kaXNhYmxlKCk7XG5cbiAgICAgIGNvbnN0IGVudGl0eSA9IE1lc3NhZ2UuZnJvbU9iamVjdChkYXRhKTtcblxuICAgICAgcmV0dXJuIHRoaXMudmlld0N0cmwuZGlzbWlzcyhlbnRpdHkpO1xuICAgIH1cbiAgICBjYXRjaCAoZXJyKSB7XG4gICAgICB0aGlzLmZvcm0uZXJyb3IgPSBlcnIgJiYgZXJyLm1lc3NhZ2UgfHwgZXJyO1xuICAgICAgdGhpcy5tYXJrQXNMb2FkZWQoKTtcblxuICAgICAgLy8gRW5hYmxlIHRoZSBmb3JtXG4gICAgICB0aGlzLmZvcm0uZW5hYmxlKCk7XG5cbiAgICAgIC8vIFJlc2V0IGZvcm0gZXJyb3Igb24gbmV4dCBjaGFuZ2VzXG4gICAgICBmaXJzdE5vdE5pbFByb21pc2UodGhpcy5mb3JtLmZvcm0udmFsdWVDaGFuZ2VzKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5mb3JtLmVycm9yID0gbnVsbDtcbiAgICAgICAgdGhpcy5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtGb3JDaGVjaygpIHtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtBc0xvYWRpbmcob3B0cz86IHtlbWl0RXZlbnQ/OiBib29sZWFufSkge1xuICAgIHRoaXMuZm9ybS5tYXJrQXNMb2FkaW5nKG9wdHMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtBc0xvYWRlZChvcHRzPzoge2VtaXRFdmVudD86IGJvb2xlYW59KSB7XG4gICAgdGhpcy5mb3JtLm1hcmtBc0xvYWRlZChvcHRzKTtcbiAgfVxufVxuXG4iLCI8aW9uLWhlYWRlcj5cbiAgPGlvbi10b29sYmFyIGNvbG9yPVwic2Vjb25kYXJ5XCI+XG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiPlxuICAgICAgPGlvbi1idXR0b24gY2xhc3M9XCJiYWNrLWJ1dHRvblwiIChjbGljayk9XCJjYW5jZWwoJGV2ZW50KVwiIHZpc2libGUteHMgdmlzaWJsZS1zbSB2aXNpYmxlLW1vYmlsZT5cbiAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiYXJyb3ctYmFja1wiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tYnV0dG9ucz5cblxuICAgIDxpb24tdGl0bGU+XG4gICAgICB7eydTT0NJQUwuTUVTU0FHRS5ORVcuVElUTEUnIHwgdHJhbnNsYXRlfX1cbiAgICA8L2lvbi10aXRsZT5cblxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG5cbiAgICAgIDxpb24tYnV0dG9uIGNsYXNzPVwiYmFjay1idXR0b25cIiAoY2xpY2spPVwiZG9TdWJtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWZvcm0udmFsaWRcIlxuICAgICAgICAgICAgICAgICAgdmlzaWJsZS14cyB2aXNpYmxlLXNtIHZpc2libGUtbW9iaWxlPlxuICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjaGVja21hcmtcIj48L2lvbi1pY29uPlxuICAgICAgPC9pb24tYnV0dG9uPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG4gIDwvaW9uLXRvb2xiYXI+XG48L2lvbi1oZWFkZXI+XG5cblxuPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmdcIiA+XG5cbiAgPGlvbi1pdGVtICpuZ0lmPVwiZm9ybS5lcnJvclwiIHZpc2libGUteHMgdmlzaWJsZS1zbSB2aXNpYmxlLW1vYmlsZSBsaW5lcz1cIm5vbmVcIj5cbiAgICA8aW9uLWljb24gY29sb3I9XCJkYW5nZXJcIiBzbG90PVwic3RhcnRcIiBuYW1lPVwiYWxlcnQtY2lyY2xlXCI+PC9pb24taWNvbj5cbiAgICA8aW9uLWxhYmVsIGNvbG9yPVwiZGFuZ2VyXCIgY2xhc3M9XCJlcnJvclwiIFtpbm5lckhUTUxdPVwiZm9ybS5lcnJvcnx0cmFuc2xhdGVcIj48L2lvbi1sYWJlbD5cbiAgPC9pb24taXRlbT5cblxuICA8YXBwLW1lc3NhZ2UtZm9ybSAjZm9ybSAob25TdWJtaXQpPVwiZG9TdWJtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIChvbkNhbmNlbCk9XCJjYW5jZWwoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgIFtjYW5TZWxlY3RUeXBlXT1cImNhblNlbGVjdFR5cGVcIlxuICAgICAgICAgICAgICAgICAgICBbc3VnZ2VzdEZuXT1cInN1Z2dlc3RGblwiPlxuICA8L2FwcC1tZXNzYWdlLWZvcm0+XG5cbjwvaW9uLWNvbnRlbnQ+XG5cblxuPGlvbi1mb290ZXIgaGlkZGVuLXhzIGhpZGRlbi1zbSBoaWRkZW4tbW9iaWxlPlxuXG4gIDxpb24tdG9vbGJhcj5cblxuICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLW5vLXBhZGRpbmdcIiBub3dyYXA+XG4gICAgICA8aW9uLWNvbD48L2lvbi1jb2w+XG5cbiAgICAgIDwhLS0gYnV0dG9ucyAtLT5cbiAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+XG4gICAgICAgIDxpb24tYnV0dG9uIGZpbGw9XCJjbGVhclwiIGNvbG9yPVwiZGFya1wiIChjbGljayk9XCJjYW5jZWwoJGV2ZW50KVwiPlxuICAgICAgICAgIDxpb24tbGFiZWwgdHJhbnNsYXRlPkNPTU1PTi5CVE5fQ0FOQ0VMPC9pb24tbGFiZWw+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cblxuICAgICAgICA8aW9uLWJ1dHRvbiBbZmlsbF09XCJmb3JtLmludmFsaWQgPyAnY2xlYXInIDogJ3NvbGlkJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJmb3JtLmxvYWRpbmcgfHwgZm9ybS5pbnZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgKGtleXVwLmVudGVyKT1cImRvU3VibWl0KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZG9TdWJtaXQoJGV2ZW50KVwiIGNvbG9yPVwidGVydGlhcnlcIj5cbiAgICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5DT01NT04uQlROX1NFTkQ8L2lvbi1sYWJlbD5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgPC9pb24tY29sPlxuICAgIDwvaW9uLXJvdz5cblxuXG4gIDwvaW9uLXRvb2xiYXI+XG48L2lvbi1mb290ZXI+XG4iXX0=
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5tb2RhbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL21lc3NhZ2UvbWVzc2FnZS5tb2RhbC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL21lc3NhZ2UvbWVzc2FnZS5tb2RhbC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsdUJBQXVCLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQVUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9ILE9BQU8sRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFNeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDOUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzFELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7Ozs7QUFnQm5ELE1BQU0sT0FBTyxZQUFZO0lBYVg7SUFDQTtJQUNBO0lBQ0E7SUFkSCxNQUFNLENBQVU7SUFDaEIsU0FBUyxDQUFrQztJQUMzQyxJQUFJLENBQVU7SUFDZCxhQUFhLENBQVU7SUFDdkIsa0JBQWtCLENBQVU7SUFDNUIsb0JBQW9CLENBQVM7SUFHTyxJQUFJLENBQWM7SUFFL0QsWUFDWSxRQUE4QixFQUM5QixRQUF5QixFQUN6QixjQUE4QixFQUM5QixFQUFxQjtRQUhyQixhQUFRLEdBQVIsUUFBUSxDQUFzQjtRQUM5QixhQUFRLEdBQVIsUUFBUSxDQUFpQjtRQUN6QixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFFL0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQztJQUNyQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FB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Q0FBQzt1R0E1RlUsWUFBWTsyRkFBWixZQUFZLCtVQzNCekIsK3JFQW1FQTs7MkZEeENhLFlBQVk7a0JBTHhCLFNBQVM7K0JBQ0UsbUJBQW1CLG1CQUVaLHVCQUF1QixDQUFDLE1BQU07b0xBS3RDLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFHdUMsSUFBSTtzQkFBaEQsU0FBUzt1QkFBQyxNQUFNLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBNZXNzYWdlLCBNZXNzYWdlVHlwZXMgfSBmcm9tICcuL21lc3NhZ2UubW9kZWwnO1xuaW1wb3J0IHsgUGVyc29uIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9wZXJzb24ubW9kZWwnO1xuaW1wb3J0IHsgU3VnZ2VzdEZuIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2VudGl0eS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IFBlcnNvbkZpbHRlciB9IGZyb20gJy4uLy4uL2FkbWluL3NlcnZpY2VzL2ZpbHRlci9wZXJzb24uZmlsdGVyJztcbmltcG9ydCB7IExvY2FsU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9sb2NhbC1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IE1lc3NhZ2VGb3JtIH0gZnJvbSAnLi9tZXNzYWdlLmZvcm0nO1xuaW1wb3J0IHsgZmlyc3ROb3ROaWxQcm9taXNlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL29ic2VydmFibGVzJztcbmltcG9ydCB7IEFwcEZvcm1VdGlscyB9IGZyb20gJy4uLy4uL2NvcmUvZm9ybS9mb3JtLnV0aWxzJztcbmltcG9ydCB7IHRvQm9vbGVhbiB9IGZyb20gJy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2FjY291bnQuc2VydmljZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWVzc2FnZU1vZGFsT3B0aW9ucyB7XG4gIHN1Z2dlc3RGbjogU3VnZ2VzdEZuPFBlcnNvbiwgUGVyc29uRmlsdGVyPjtcbiAgZGF0YT86IE1lc3NhZ2U7XG4gIGNhblNlbGVjdFR5cGU/OiBib29sZWFuO1xuICBjYW5SZWNpcGllbnRGaWx0ZXI/OiBib29sZWFuO1xuICByZWNpcGllbnRGaWx0ZXJDb3VudD86IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLW1lc3NhZ2UtbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVzc2FnZS5tb2RhbC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTWVzc2FnZU1vZGFsIGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBNZXNzYWdlTW9kYWxPcHRpb25zIHtcblxuICByZWFkb25seSBtb2JpbGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHN1Z2dlc3RGbjogU3VnZ2VzdEZuPFBlcnNvbiwgUGVyc29uRmlsdGVyPjtcbiAgQElucHV0KCkgZGF0YTogTWVzc2FnZTtcbiAgQElucHV0KCkgY2FuU2VsZWN0VHlwZTogYm9vbGVhbjtcbiAgQElucHV0KCkgY2FuUmVjaXBpZW50RmlsdGVyOiBib29sZWFuO1xuICBASW5wdXQoKSByZWNpcGllbnRGaWx0ZXJDb3VudDogbnVtYmVyO1xuXG5cbiAgQFZpZXdDaGlsZCgnZm9ybScsIHsgc3RhdGljOiB0cnVlIH0pIHByaXZhdGUgZm9ybTogTWVzc2FnZUZvcm07XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIHNldHRpbmdzOiBMb2NhbFNldHRpbmdzU2VydmljZSxcbiAgICBwcm90ZWN0ZWQgdmlld0N0cmw6IE1vZGFsQ29udHJvbGxlcixcbiAgICBwcm90ZWN0ZWQgYWNjb3VudFNlcnZpY2U6IEFjY291bnRTZXJ2aWNlLFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy5tb2JpbGUgPSB0aGlzLnNldHRpbmdzLm1vYmlsZTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuY2FuU2VsZWN0VHlwZSA9IHRvQm9vbGVhbih0aGlzLmNhblNlbGVjdFR5cGUsIHRoaXMuYWNjb3VudFNlcnZpY2UuaXNBZG1pbigpKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZm9ybS5tYXJrQXNSZWFkeSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgaWYgKHRoaXMuZGF0YSkge1xuICAgICAgICB0aGlzLmRhdGEudHlwZSA9IHRoaXMuZGF0YS50eXBlIHx8IE1lc3NhZ2VUeXBlcy5JTkJPWF9NRVNTQUdFO1xuICAgICAgICB0aGlzLmZvcm0uc2V0VmFsdWUodGhpcy5kYXRhKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZm9ybS5tYXJrQXNMb2FkZWQoKTtcbiAgICAgIHRoaXMuZm9ybS5lbmFibGUoKTtcbiAgICB9KVxuICB9XG5cbiAgY2FuY2VsKGV2ZW50PzogRXZlbnQpIHtcbiAgICB0aGlzLnZpZXdDdHJsLmRpc21pc3MoKTtcbiAgfVxuXG4gIGFzeW5jIGRvU3VibWl0KGV2ZW50PzogRXZlbnQpOiBQcm9taXNlPGFueT4ge1xuICAgIGlmICh0aGlzLmZvcm0uZGlzYWJsZWQpIHJldHVybjtcbiAgICBpZiAoIXRoaXMuZm9ybS52YWxpZCkge1xuXG4gICAgICBhd2FpdCBBcHBGb3JtVXRpbHMud2FpdFdoaWxlUGVuZGluZyh0aGlzLmZvcm0pO1xuXG4gICAgICBpZiAodGhpcy5mb3JtLmludmFsaWQpIHtcbiAgICAgICAgQXBwRm9ybVV0aWxzLmxvZ0Zvcm1FcnJvcnModGhpcy5mb3JtLmZvcm0sICdbbWVzc2FnZS1tb2RhbF0gJyk7XG4gICAgICAgIHRoaXMuZm9ybS5tYXJrQWxsQXNUb3VjaGVkKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5tYXJrQXNMb2FkaW5nKCk7XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZm9ybS52YWx1ZTtcblxuICAgICAgLy8gRGlzYWJsZSB0aGUgZm9ybVxuICAgICAgdGhpcy5mb3JtLmRpc2FibGUoKTtcblxuICAgICAgY29uc3QgZW50aXR5ID0gTWVzc2FnZS5mcm9tT2JqZWN0KGRhdGEpO1xuXG4gICAgICByZXR1cm4gdGhpcy52aWV3Q3RybC5kaXNtaXNzKGVudGl0eSk7XG4gICAgfVxuICAgIGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuZm9ybS5lcnJvciA9IGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnI7XG4gICAgICB0aGlzLm1hcmtBc0xvYWRlZCgpO1xuXG4gICAgICAvLyBFbmFibGUgdGhlIGZvcm1cbiAgICAgIHRoaXMuZm9ybS5lbmFibGUoKTtcblxuICAgICAgLy8gUmVzZXQgZm9ybSBlcnJvciBvbiBuZXh0IGNoYW5nZXNcbiAgICAgIGZpcnN0Tm90TmlsUHJvbWlzZSh0aGlzLmZvcm0uZm9ybS52YWx1ZUNoYW5nZXMpLnRoZW4oKCkgPT4ge1xuICAgICAgICB0aGlzLmZvcm0uZXJyb3IgPSBudWxsO1xuICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0ZvckNoZWNrKCkge1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0FzTG9hZGluZyhvcHRzPzoge2VtaXRFdmVudD86IGJvb2xlYW59KSB7XG4gICAgdGhpcy5mb3JtLm1hcmtBc0xvYWRpbmcob3B0cyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0FzTG9hZGVkKG9wdHM/OiB7ZW1pdEV2ZW50PzogYm9vbGVhbn0pIHtcbiAgICB0aGlzLmZvcm0ubWFya0FzTG9hZGVkKG9wdHMpO1xuICB9XG59XG5cbiIsIjxpb24taGVhZGVyPlxuICA8aW9uLXRvb2xiYXIgY29sb3I9XCJzZWNvbmRhcnlcIj5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cInN0YXJ0XCI+XG4gICAgICA8aW9uLWJ1dHRvbiBjbGFzcz1cImJhY2stYnV0dG9uXCIgKGNsaWNrKT1cImNhbmNlbCgkZXZlbnQpXCIgdmlzaWJsZS14cyB2aXNpYmxlLXNtIHZpc2libGUtbW9iaWxlPlxuICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJhcnJvdy1iYWNrXCI+PC9pb24taWNvbj5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICA8L2lvbi1idXR0b25zPlxuXG4gICAgPGlvbi10aXRsZT5cbiAgICAgIHt7J1NPQ0lBTC5NRVNTQUdFLk5FVy5USVRMRScgfCB0cmFuc2xhdGV9fVxuICAgIDwvaW9uLXRpdGxlPlxuXG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cblxuICAgICAgPGlvbi1idXR0b24gY2xhc3M9XCJiYWNrLWJ1dHRvblwiIChjbGljayk9XCJkb1N1Ym1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCIhZm9ybS52YWxpZFwiXG4gICAgICAgICAgICAgICAgICB2aXNpYmxlLXhzIHZpc2libGUtc20gdmlzaWJsZS1tb2JpbGU+XG4gICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNoZWNrbWFya1wiPjwvaW9uLWljb24+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tYnV0dG9ucz5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cblxuXG48aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiID5cblxuICA8aW9uLWl0ZW0gKm5nSWY9XCJmb3JtLmVycm9yXCIgdmlzaWJsZS14cyB2aXNpYmxlLXNtIHZpc2libGUtbW9iaWxlIGxpbmVzPVwibm9uZVwiPlxuICAgIDxpb24taWNvbiBjb2xvcj1cImRhbmdlclwiIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJhbGVydC1jaXJjbGVcIj48L2lvbi1pY29uPlxuICAgIDxpb24tbGFiZWwgY29sb3I9XCJkYW5nZXJcIiBjbGFzcz1cImVycm9yXCIgW2lubmVySFRNTF09XCJmb3JtLmVycm9yfHRyYW5zbGF0ZVwiPjwvaW9uLWxhYmVsPlxuICA8L2lvbi1pdGVtPlxuXG4gIDxhcHAtbWVzc2FnZS1mb3JtICNmb3JtIChvblN1Ym1pdCk9XCJkb1N1Ym1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKG9uQ2FuY2VsKT1cImNhbmNlbCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NhblNlbGVjdFR5cGVdPVwiY2FuU2VsZWN0VHlwZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjYW5SZWNpcGllbnRGaWx0ZXJdPVwiY2FuUmVjaXBpZW50RmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgW3JlY2lwaWVudEZpbHRlckNvdW50XT1cInJlY2lwaWVudEZpbHRlckNvdW50XCJcbiAgICAgICAgICAgICAgICAgICAgW3N1Z2dlc3RGbl09XCJzdWdnZXN0Rm5cIj5cbiAgPC9hcHAtbWVzc2FnZS1mb3JtPlxuXG48L2lvbi1jb250ZW50PlxuXG5cbjxpb24tZm9vdGVyIGhpZGRlbi14cyBoaWRkZW4tc20gaGlkZGVuLW1vYmlsZT5cblxuICA8aW9uLXRvb2xiYXI+XG5cbiAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1uby1wYWRkaW5nXCIgbm93cmFwPlxuICAgICAgPGlvbi1jb2w+PC9pb24tY29sPlxuXG4gICAgICA8IS0tIGJ1dHRvbnMgLS0+XG4gICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiPlxuICAgICAgICA8aW9uLWJ1dHRvbiBmaWxsPVwiY2xlYXJcIiBjb2xvcj1cImRhcmtcIiAoY2xpY2spPVwiY2FuY2VsKCRldmVudClcIj5cbiAgICAgICAgICA8aW9uLWxhYmVsIHRyYW5zbGF0ZT5DT01NT04uQlROX0NBTkNFTDwvaW9uLWxhYmVsPlxuICAgICAgICA8L2lvbi1idXR0b24+XG5cbiAgICAgICAgPGlvbi1idXR0b24gW2ZpbGxdPVwiZm9ybS5pbnZhbGlkID8gJ2NsZWFyJyA6ICdzb2xpZCdcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybS5sb2FkaW5nIHx8IGZvcm0uaW52YWxpZFwiXG4gICAgICAgICAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJkb1N1Ym1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImRvU3VibWl0KCRldmVudClcIiBjb2xvcj1cInRlcnRpYXJ5XCI+XG4gICAgICAgICAgPGlvbi1sYWJlbCB0cmFuc2xhdGU+Q09NTU9OLkJUTl9TRU5EPC9pb24tbGFiZWw+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIDwvaW9uLWNvbD5cbiAgICA8L2lvbi1yb3c+XG5cblxuICA8L2lvbi10b29sYmFyPlxuPC9pb24tZm9vdGVyPlxuIl19
@@ -3,6 +3,7 @@ import { EntityClass } from '../../core/services/model/entity.decorators';
3
3
  import { Entity } from '../../core/services/model/entity.model';
4
4
  import { EntityFilter } from '../../core/services/model/filter.model';
5
5
  import { Person } from '../../core/services/model/person.model';
6
+ import { PersonFilter } from '../../admin/services/filter/person.filter';
6
7
  export const MessageTypes = {
7
8
  INBOX_MESSAGE: 'INBOX_MESSAGE',
8
9
  EMAIL: 'EMAIL',
@@ -31,6 +32,7 @@ let Message = class Message extends Entity {
31
32
  type;
32
33
  issuer;
33
34
  recipients;
35
+ recipientFilter;
34
36
  subject;
35
37
  body;
36
38
  constructor() {
@@ -41,12 +43,14 @@ let Message = class Message extends Entity {
41
43
  this.type = source.type;
42
44
  this.issuer = source.issuer && Person.fromObject(source.issuer);
43
45
  this.recipients = source.recipients && source.recipients.map(Person.fromObject);
46
+ this.recipientFilter = source.recipientFilter && PersonFilter.fromObject(source.recipientFilter) || undefined;
44
47
  this.subject = source.subject;
45
48
  this.body = source.body;
46
49
  }
47
50
  asObject(opts) {
48
51
  const target = super.asObject(opts);
49
52
  target.recipients = this.recipients && this.recipients.map(p => p.asObject(opts));
53
+ target.recipientFilter = this.recipientFilter && this.recipientFilter.asObject(opts) || undefined;
50
54
  return target;
51
55
  }
52
56
  };
@@ -68,4 +72,4 @@ MessageFilter = __decorate([
68
72
  EntityClass({ typename: 'MessageFilterVO' })
69
73
  ], MessageFilter);
70
74
  export { MessageFilter };
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL21lc3NhZ2UvbWVzc2FnZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQ3hFLE9BQU8sRUFBQyxNQUFNLEVBQXdCLE1BQU0sd0NBQXdDLENBQUM7QUFFckYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHdDQUF3QyxDQUFDO0FBRXBFLE9BQU8sRUFBQyxNQUFNLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUc7SUFDMUIsYUFBYSxFQUFFLGVBQWU7SUFDOUIsS0FBSyxFQUFFLE9BQU87SUFDZCxJQUFJLEVBQUUsTUFBTTtDQUNiLENBQUM7QUFDRixNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUMzQztRQUNFLEVBQUUsRUFBRSxZQUFZLENBQUMsYUFBYTtRQUM5QixJQUFJLEVBQUUsZUFBZTtRQUNyQixLQUFLLEVBQUUsd0NBQXdDO0tBQ2hEO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsWUFBWSxDQUFDLEtBQUs7UUFDdEIsSUFBSSxFQUFFLE1BQU07UUFDWixLQUFLLEVBQUUsZ0NBQWdDO0tBQ3hDO0lBQ0Q7UUFDRSxFQUFFLEVBQUUsWUFBWSxDQUFDLElBQUk7UUFDckIsSUFBSSxFQUFFLE9BQU87UUFDYixLQUFLLEVBQUUsK0JBQStCO0tBQ3ZDO0NBQ0YsQ0FBQyxDQUFDO0FBRUgsV0FBVztBQUVKLElBQU0sT0FBTyxHQUFiLE1BQU0sT0FBUSxTQUFRLE1BQWU7SUFFMUMsTUFBTSxDQUFDLFVBQVUsQ0FBdUM7SUFFeEQsSUFBSSxDQUFTO0lBQ2IsTUFBTSxDQUFTO0lBQ2YsVUFBVSxDQUFXO0lBQ3JCLE9BQU8sQ0FBUztJQUNoQixJQUFJLENBQVM7SUFFYjtRQUNFLEtBQUssRUFBRSxDQUFDO0lBQ1YsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFXLEVBQUUsSUFBVTtRQUNoQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQzlCLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztJQUMxQixDQUFDO0lBRUQsUUFBUSxDQUFDLElBQTRCO1FBQ25DLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsTUFBTSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRixDQUFBO0FBNUJZLE9BQU87SUFEbkIsV0FBVyxDQUFDLEVBQUMsUUFBUSxFQUFFLFdBQVcsRUFBQyxDQUFDO0dBQ3hCLE9BQU8sQ0E0Qm5CO1NBNUJZLE9BQU87QUErQnBCLFdBQVc7QUFFSixJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFjLFNBQVEsWUFBb0M7SUFFckUsTUFBTSxDQUFDLFVBQVUsQ0FBNkM7SUFHOUQsVUFBVSxDQUFDLE1BQVcsRUFBRSxJQUFVO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFUyxXQUFXO1FBQ25CLE9BQU8sS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdCLENBQUM7Q0FDRixDQUFBO0FBWlksYUFBYTtJQUR6QixXQUFXLENBQUMsRUFBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUMsQ0FBQztHQUM5QixhQUFhLENBWXpCO1NBWlksYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RW50aXR5Q2xhc3N9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvZW50aXR5LmRlY29yYXRvcnMnO1xuaW1wb3J0IHtFbnRpdHksIEVudGl0eUFzT2JqZWN0T3B0aW9uc30gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHtTdG9yZU9iamVjdH0gZnJvbSAnQGFwb2xsby9jbGllbnQvY29yZSc7XG5pbXBvcnQge0VudGl0eUZpbHRlcn0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9maWx0ZXIubW9kZWwnO1xuaW1wb3J0IHtGaWx0ZXJGbn0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2VudGl0eS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7UGVyc29ufSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL3BlcnNvbi5tb2RlbCc7XG5cbmV4cG9ydCBjb25zdCBNZXNzYWdlVHlwZXMgPSB7XG4gIElOQk9YX01FU1NBR0U6ICdJTkJPWF9NRVNTQUdFJyxcbiAgRU1BSUw6ICdFTUFJTCcsXG4gIEZFRUQ6ICdGRUVEJyxcbn07XG5leHBvcnQgY29uc3QgTWVzc2FnZVR5cGVMaXN0ID0gT2JqZWN0LmZyZWV6ZShbXG4gIHtcbiAgICBpZDogTWVzc2FnZVR5cGVzLklOQk9YX01FU1NBR0UsXG4gICAgaWNvbjogJ25vdGlmaWNhdGlvbnMnLFxuICAgIGxhYmVsOiAnU09DSUFMLk1FU1NBR0UuVFlQRV9FTlVNLklOQk9YX01FU1NBR0UnXG4gIH0sXG4gIHtcbiAgICBpZDogTWVzc2FnZVR5cGVzLkVNQUlMLFxuICAgIGljb246ICdtYWlsJyxcbiAgICBsYWJlbDogJ1NPQ0lBTC5NRVNTQUdFLlRZUEVfRU5VTS5FTUFJTCdcbiAgfSxcbiAge1xuICAgIGlkOiBNZXNzYWdlVHlwZXMuRkVFRCxcbiAgICBpY29uOiAncGFwZXInLFxuICAgIGxhYmVsOiAnU09DSUFMLk1FU1NBR0UuVFlQRV9FTlVNLkZFRUQnXG4gIH1cbl0pO1xuXG4vLyBAZHluYW1pY1xuQEVudGl0eUNsYXNzKHt0eXBlbmFtZTogJ01lc3NhZ2VWTyd9KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2UgZXh0ZW5kcyBFbnRpdHk8TWVzc2FnZT57XG5cbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gTWVzc2FnZTtcblxuICB0eXBlOiBzdHJpbmc7XG4gIGlzc3VlcjogUGVyc29uO1xuICByZWNpcGllbnRzOiBQZXJzb25bXTtcbiAgc3ViamVjdDogc3RyaW5nO1xuICBib2R5OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyk7XG4gICAgdGhpcy50eXBlID0gc291cmNlLnR5cGU7XG4gICAgdGhpcy5pc3N1ZXIgPSBzb3VyY2UuaXNzdWVyICYmIFBlcnNvbi5mcm9tT2JqZWN0KHNvdXJjZS5pc3N1ZXIpO1xuICAgIHRoaXMucmVjaXBpZW50cyA9IHNvdXJjZS5yZWNpcGllbnRzICYmIHNvdXJjZS5yZWNpcGllbnRzLm1hcChQZXJzb24uZnJvbU9iamVjdCk7XG4gICAgdGhpcy5zdWJqZWN0ID0gc291cmNlLnN1YmplY3Q7XG4gICAgdGhpcy5ib2R5ID0gc291cmNlLmJvZHk7XG4gIH1cblxuICBhc09iamVjdChvcHRzPzogRW50aXR5QXNPYmplY3RPcHRpb25zKTogU3RvcmVPYmplY3Qge1xuICAgIGNvbnN0IHRhcmdldCA9IHN1cGVyLmFzT2JqZWN0KG9wdHMpO1xuICAgIHRhcmdldC5yZWNpcGllbnRzID0gdGhpcy5yZWNpcGllbnRzICYmIHRoaXMucmVjaXBpZW50cy5tYXAocCA9PiBwLmFzT2JqZWN0KG9wdHMpKTtcbiAgICByZXR1cm4gdGFyZ2V0O1xuICB9XG59XG5cblxuLy8gQGR5bmFtaWNcbkBFbnRpdHlDbGFzcyh7dHlwZW5hbWU6ICdNZXNzYWdlRmlsdGVyVk8nfSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlRmlsdGVyIGV4dGVuZHMgRW50aXR5RmlsdGVyPE1lc3NhZ2VGaWx0ZXIsIE1lc3NhZ2U+IHtcblxuICBzdGF0aWMgZnJvbU9iamVjdDogKHNvdXJjZTogYW55LCBvcHRzPzogYW55KSA9PiBNZXNzYWdlRmlsdGVyO1xuXG5cbiAgZnJvbU9iamVjdChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkge1xuICAgIHN1cGVyLmZyb21PYmplY3Qoc291cmNlLCBvcHRzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBidWlsZEZpbHRlcigpOiBGaWx0ZXJGbjxNZXNzYWdlPltdIHtcbiAgICByZXR1cm4gc3VwZXIuYnVpbGRGaWx0ZXIoKTtcbiAgfVxufVxuIl19
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL21lc3NhZ2UvbWVzc2FnZS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxNQUFNLEVBQXlCLE1BQU0sd0NBQXdDLENBQUM7QUFFdkYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRXRFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFFekUsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHO0lBQzFCLGFBQWEsRUFBRSxlQUFlO0lBQzlCLEtBQUssRUFBRSxPQUFPO0lBQ2QsSUFBSSxFQUFFLE1BQU07Q0FDYixDQUFDO0FBQ0YsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUM7SUFDM0M7UUFDRSxFQUFFLEVBQUUsWUFBWSxDQUFDLGFBQWE7UUFDOUIsSUFBSSxFQUFFLGVBQWU7UUFDckIsS0FBSyxFQUFFLHdDQUF3QztLQUNoRDtJQUNEO1FBQ0UsRUFBRSxFQUFFLFlBQVksQ0FBQyxLQUFLO1FBQ3RCLElBQUksRUFBRSxNQUFNO1FBQ1osS0FBSyxFQUFFLGdDQUFnQztLQUN4QztJQUNEO1FBQ0UsRUFBRSxFQUFFLFlBQVksQ0FBQyxJQUFJO1FBQ3JCLElBQUksRUFBRSxPQUFPO1FBQ2IsS0FBSyxFQUFFLCtCQUErQjtLQUN2QztDQUNGLENBQUMsQ0FBQztBQUVILFdBQVc7QUFFSixJQUFNLE9BQU8sR0FBYixNQUFNLE9BQVEsU0FBUSxNQUFlO0lBRTFDLE1BQU0sQ0FBQyxVQUFVLENBQXVDO0lBRXhELElBQUksQ0FBUztJQUNiLE1BQU0sQ0FBUztJQUNmLFVBQVUsQ0FBVztJQUNyQixlQUFlLENBQWU7SUFDOUIsT0FBTyxDQUFTO0lBQ2hCLElBQUksQ0FBUztJQUViO1FBQ0UsS0FBSyxFQUFFLENBQUM7SUFDVixDQUFDO0lBRUQsVUFBVSxDQUFDLE1BQVcsRUFBRSxJQUFVO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsZUFBZSxHQUFHLE1BQU0sQ0FBQyxlQUFlLElBQUksWUFBWSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksU0FBUyxDQUFDO1FBQzlHLElBQUksQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVELFFBQVEsQ0FBQyxJQUE0QjtRQUNuQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BDLE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsRixNQUFNLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksU0FBUyxDQUFDO1FBQ2xHLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRixDQUFBO0FBL0JZLE9BQU87SUFEbkIsV0FBVyxDQUFDLEVBQUMsUUFBUSxFQUFFLFdBQVcsRUFBQyxDQUFDO0dBQ3hCLE9BQU8sQ0ErQm5COztBQUdELFdBQVc7QUFFSixJQUFNLGFBQWEsR0FBbkIsTUFBTSxhQUFjLFNBQVEsWUFBb0M7SUFFckUsTUFBTSxDQUFDLFVBQVUsQ0FBNkM7SUFHOUQsVUFBVSxDQUFDLE1BQVcsRUFBRSxJQUFVO1FBQ2hDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFUyxXQUFXO1FBQ25CLE9BQU8sS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzdCLENBQUM7Q0FDRixDQUFBO0FBWlksYUFBYTtJQUR6QixXQUFXLENBQUMsRUFBQyxRQUFRLEVBQUUsaUJBQWlCLEVBQUMsQ0FBQztHQUM5QixhQUFhLENBWXpCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5Q2xhc3MgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL21vZGVsL2VudGl0eS5kZWNvcmF0b3JzJztcbmltcG9ydCB7IEVudGl0eSwgRW50aXR5QXNPYmplY3RPcHRpb25zIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgU3RvcmVPYmplY3QgfSBmcm9tICdAYXBvbGxvL2NsaWVudC9jb3JlJztcbmltcG9ydCB7IEVudGl0eUZpbHRlciB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvZmlsdGVyLm1vZGVsJztcbmltcG9ydCB7IEZpbHRlckZuIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2VudGl0eS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IFBlcnNvbiB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvcGVyc29uLm1vZGVsJztcbmltcG9ydCB7IFBlcnNvbkZpbHRlciB9IGZyb20gJy4uLy4uL2FkbWluL3NlcnZpY2VzL2ZpbHRlci9wZXJzb24uZmlsdGVyJztcblxuZXhwb3J0IGNvbnN0IE1lc3NhZ2VUeXBlcyA9IHtcbiAgSU5CT1hfTUVTU0FHRTogJ0lOQk9YX01FU1NBR0UnLFxuICBFTUFJTDogJ0VNQUlMJyxcbiAgRkVFRDogJ0ZFRUQnLFxufTtcbmV4cG9ydCBjb25zdCBNZXNzYWdlVHlwZUxpc3QgPSBPYmplY3QuZnJlZXplKFtcbiAge1xuICAgIGlkOiBNZXNzYWdlVHlwZXMuSU5CT1hfTUVTU0FHRSxcbiAgICBpY29uOiAnbm90aWZpY2F0aW9ucycsXG4gICAgbGFiZWw6ICdTT0NJQUwuTUVTU0FHRS5UWVBFX0VOVU0uSU5CT1hfTUVTU0FHRSdcbiAgfSxcbiAge1xuICAgIGlkOiBNZXNzYWdlVHlwZXMuRU1BSUwsXG4gICAgaWNvbjogJ21haWwnLFxuICAgIGxhYmVsOiAnU09DSUFMLk1FU1NBR0UuVFlQRV9FTlVNLkVNQUlMJ1xuICB9LFxuICB7XG4gICAgaWQ6IE1lc3NhZ2VUeXBlcy5GRUVELFxuICAgIGljb246ICdwYXBlcicsXG4gICAgbGFiZWw6ICdTT0NJQUwuTUVTU0FHRS5UWVBFX0VOVU0uRkVFRCdcbiAgfVxuXSk7XG5cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3Moe3R5cGVuYW1lOiAnTWVzc2FnZVZPJ30pXG5leHBvcnQgY2xhc3MgTWVzc2FnZSBleHRlbmRzIEVudGl0eTxNZXNzYWdlPntcblxuICBzdGF0aWMgZnJvbU9iamVjdDogKHNvdXJjZTogYW55LCBvcHRzPzogYW55KSA9PiBNZXNzYWdlO1xuXG4gIHR5cGU6IHN0cmluZztcbiAgaXNzdWVyOiBQZXJzb247XG4gIHJlY2lwaWVudHM6IFBlcnNvbltdO1xuICByZWNpcGllbnRGaWx0ZXI6IFBlcnNvbkZpbHRlcjtcbiAgc3ViamVjdDogc3RyaW5nO1xuICBib2R5OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyk7XG4gICAgdGhpcy50eXBlID0gc291cmNlLnR5cGU7XG4gICAgdGhpcy5pc3N1ZXIgPSBzb3VyY2UuaXNzdWVyICYmIFBlcnNvbi5mcm9tT2JqZWN0KHNvdXJjZS5pc3N1ZXIpO1xuICAgIHRoaXMucmVjaXBpZW50cyA9IHNvdXJjZS5yZWNpcGllbnRzICYmIHNvdXJjZS5yZWNpcGllbnRzLm1hcChQZXJzb24uZnJvbU9iamVjdCk7XG4gICAgdGhpcy5yZWNpcGllbnRGaWx0ZXIgPSBzb3VyY2UucmVjaXBpZW50RmlsdGVyICYmIFBlcnNvbkZpbHRlci5mcm9tT2JqZWN0KHNvdXJjZS5yZWNpcGllbnRGaWx0ZXIpIHx8IHVuZGVmaW5lZDtcbiAgICB0aGlzLnN1YmplY3QgPSBzb3VyY2Uuc3ViamVjdDtcbiAgICB0aGlzLmJvZHkgPSBzb3VyY2UuYm9keTtcbiAgfVxuXG4gIGFzT2JqZWN0KG9wdHM/OiBFbnRpdHlBc09iamVjdE9wdGlvbnMpOiBTdG9yZU9iamVjdCB7XG4gICAgY29uc3QgdGFyZ2V0ID0gc3VwZXIuYXNPYmplY3Qob3B0cyk7XG4gICAgdGFyZ2V0LnJlY2lwaWVudHMgPSB0aGlzLnJlY2lwaWVudHMgJiYgdGhpcy5yZWNpcGllbnRzLm1hcChwID0+IHAuYXNPYmplY3Qob3B0cykpO1xuICAgIHRhcmdldC5yZWNpcGllbnRGaWx0ZXIgPSB0aGlzLnJlY2lwaWVudEZpbHRlciAmJiB0aGlzLnJlY2lwaWVudEZpbHRlci5hc09iamVjdChvcHRzKSB8fCB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHRhcmdldDtcbiAgfVxufVxuXG5cbi8vIEBkeW5hbWljXG5ARW50aXR5Q2xhc3Moe3R5cGVuYW1lOiAnTWVzc2FnZUZpbHRlclZPJ30pXG5leHBvcnQgY2xhc3MgTWVzc2FnZUZpbHRlciBleHRlbmRzIEVudGl0eUZpbHRlcjxNZXNzYWdlRmlsdGVyLCBNZXNzYWdlPiB7XG5cbiAgc3RhdGljIGZyb21PYmplY3Q6IChzb3VyY2U6IGFueSwgb3B0cz86IGFueSkgPT4gTWVzc2FnZUZpbHRlcjtcblxuXG4gIGZyb21PYmplY3Qoc291cmNlOiBhbnksIG9wdHM/OiBhbnkpIHtcbiAgICBzdXBlci5mcm9tT2JqZWN0KHNvdXJjZSwgb3B0cyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYnVpbGRGaWx0ZXIoKTogRmlsdGVyRm48TWVzc2FnZT5bXSB7XG4gICAgcmV0dXJuIHN1cGVyLmJ1aWxkRmlsdGVyKCk7XG4gIH1cbn1cbiJdfQ==
@@ -4,32 +4,19 @@ import { CoreModule } from '../../core/core.module';
4
4
  import { SharedModule } from '../../shared/shared.module';
5
5
  import { MessageModal } from './message.modal';
6
6
  import { MessageForm } from './message.form';
7
+ import { MatChipsModule } from '@angular/material/chips';
7
8
  import * as i0 from "@angular/core";
8
9
  export class MessageModule {
9
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.2.12", ngImport: i0, type: MessageModule, declarations: [MessageModal,
11
- MessageForm], imports: [CommonModule,
12
- CoreModule,
13
- SharedModule], exports: [MessageModal] });
14
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageModule, imports: [CommonModule,
15
- CoreModule,
16
- SharedModule] });
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: MessageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: MessageModule, declarations: [MessageModal, MessageForm], imports: [CommonModule, CoreModule, SharedModule, MatChipsModule], exports: [MessageModal] });
12
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: MessageModule, imports: [CommonModule, CoreModule, SharedModule, MatChipsModule] });
17
13
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MessageModule, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: MessageModule, decorators: [{
19
15
  type: NgModule,
20
16
  args: [{
21
- imports: [
22
- CommonModule,
23
- CoreModule,
24
- SharedModule
25
- ],
26
- declarations: [
27
- MessageModal,
28
- MessageForm
29
- ],
30
- exports: [
31
- MessageModal
32
- ]
17
+ imports: [CommonModule, CoreModule, SharedModule, MatChipsModule],
18
+ declarations: [MessageModal, MessageForm],
19
+ exports: [MessageModal],
33
20
  }]
34
21
  }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9tZXNzYWdlL21lc3NhZ2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFnQjdDLE1BQU0sT0FBTyxhQUFhO3dHQUFiLGFBQWE7eUdBQWIsYUFBYSxpQkFQdEIsWUFBWTtZQUNaLFdBQVcsYUFOWCxZQUFZO1lBQ1osVUFBVTtZQUNWLFlBQVksYUFPWixZQUFZO3lHQUdILGFBQWEsWUFadEIsWUFBWTtZQUNaLFVBQVU7WUFDVixZQUFZOzs0RkFVSCxhQUFhO2tCQWR6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFVBQVU7d0JBQ1YsWUFBWTtxQkFDYjtvQkFDRCxZQUFZLEVBQUU7d0JBQ1osWUFBWTt3QkFDWixXQUFXO3FCQUNaO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3FCQUNiO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb3JlTW9kdWxlIH0gZnJvbSAnLi4vLi4vY29yZS9jb3JlLm1vZHVsZSc7XG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvc2hhcmVkLm1vZHVsZSc7XG5pbXBvcnQgeyBNZXNzYWdlTW9kYWwgfSBmcm9tICcuL21lc3NhZ2UubW9kYWwnO1xuaW1wb3J0IHsgTWVzc2FnZUZvcm0gfSBmcm9tICcuL21lc3NhZ2UuZm9ybSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ29yZU1vZHVsZSxcbiAgICBTaGFyZWRNb2R1bGVcbiAgXSxcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgTWVzc2FnZU1vZGFsLFxuICAgIE1lc3NhZ2VGb3JtXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBNZXNzYWdlTW9kYWxcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBNZXNzYWdlTW9kdWxlIHt9XG4iXX0=
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9tZXNzYWdlL21lc3NhZ2UubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBT3pELE1BQU0sT0FBTyxhQUFhO3VHQUFiLGFBQWE7d0dBQWIsYUFBYSxpQkFIVCxZQUFZLEVBQUUsV0FBVyxhQUQ5QixZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxjQUFjLGFBRXRELFlBQVk7d0dBRVgsYUFBYSxZQUpkLFlBQVksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGNBQWM7OzJGQUlyRCxhQUFhO2tCQUx6QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLGNBQWMsQ0FBQztvQkFDakUsWUFBWSxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsQ0FBQztvQkFDekMsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29yZU1vZHVsZSB9IGZyb20gJy4uLy4uL2NvcmUvY29yZS5tb2R1bGUnO1xuaW1wb3J0IHsgU2hhcmVkTW9kdWxlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3NoYXJlZC5tb2R1bGUnO1xuaW1wb3J0IHsgTWVzc2FnZU1vZGFsIH0gZnJvbSAnLi9tZXNzYWdlLm1vZGFsJztcbmltcG9ydCB7IE1lc3NhZ2VGb3JtIH0gZnJvbSAnLi9tZXNzYWdlLmZvcm0nO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENvcmVNb2R1bGUsIFNoYXJlZE1vZHVsZSwgTWF0Q2hpcHNNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtNZXNzYWdlTW9kYWwsIE1lc3NhZ2VGb3JtXSxcbiAgZXhwb3J0czogW01lc3NhZ2VNb2RhbF0sXG59KVxuZXhwb3J0IGNsYXNzIE1lc3NhZ2VNb2R1bGUge31cbiJdfQ==