@sumaris-net/ngx-components 2.0.0-rc1 → 2.0.0-rc4

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 (287) hide show
  1. package/doc/changelog.md +50 -0
  2. package/esm2020/public_api.mjs +9 -5
  3. package/esm2020/src/app/admin/admin-routing.module.mjs +5 -5
  4. package/esm2020/src/app/admin/admin.module.mjs +13 -28
  5. package/esm2020/src/app/admin/services/person.service.mjs +3 -3
  6. package/esm2020/src/app/admin/services/validator/person.validator.mjs +3 -3
  7. package/esm2020/src/app/admin/users/list/users.mjs +33 -27
  8. package/esm2020/src/app/admin/users/list/users.module.mjs +58 -0
  9. package/esm2020/src/app/core/about/modal-about.mjs +3 -3
  10. package/esm2020/src/app/core/account/account.mjs +3 -3
  11. package/esm2020/src/app/core/auth/form/form-auth.mjs +3 -3
  12. package/esm2020/src/app/core/auth/modal/modal-auth.mjs +3 -3
  13. package/esm2020/src/app/core/core.module.mjs +6 -6
  14. package/esm2020/src/app/core/core.testing.module.mjs +26 -12
  15. package/esm2020/src/app/core/form/editor.class.mjs +129 -62
  16. package/esm2020/src/app/core/form/entity-editor-modal.class.mjs +25 -10
  17. package/esm2020/src/app/core/form/entity-editor.class.mjs +10 -33
  18. package/esm2020/src/app/core/form/entity-metadata.component.mjs +3 -3
  19. package/esm2020/src/app/core/form/form-buttons-bar.component.mjs +3 -3
  20. package/esm2020/src/app/core/form/form.class.mjs +10 -4
  21. package/esm2020/src/app/core/form/form.utils.mjs +39 -4
  22. package/esm2020/src/app/core/form/list.form.mjs +7 -6
  23. package/esm2020/src/app/core/form/properties/properties.form.mjs +129 -0
  24. package/esm2020/src/app/core/form/properties/property.validator.mjs +23 -0
  25. package/esm2020/src/app/core/form/properties/testing/properties-form.test.mjs +90 -0
  26. package/esm2020/src/app/core/form/properties/testing/properties-form.testing.module.mjs +39 -0
  27. package/esm2020/src/app/core/graphql/graphql.module.mjs +4 -4
  28. package/esm2020/src/app/core/graphql/graphql.service.mjs +3 -3
  29. package/esm2020/src/app/core/graphql/graphql.utils.mjs +2 -2
  30. package/esm2020/src/app/core/home/home.mjs +3 -3
  31. package/esm2020/src/app/core/icon/icon.component.mjs +5 -5
  32. package/esm2020/src/app/core/icon/icon.module.mjs +4 -4
  33. package/esm2020/src/app/core/install/install-upgrade-card.component.mjs +3 -3
  34. package/esm2020/src/app/core/install/install-upgrade-card.module.mjs +4 -4
  35. package/esm2020/src/app/core/menu/menu.component.mjs +3 -3
  36. package/esm2020/src/app/core/menu/menu.module.mjs +4 -4
  37. package/esm2020/src/app/core/menu/menu.service.mjs +3 -3
  38. package/esm2020/src/app/core/offline/update-offline-mode-card.component.mjs +3 -3
  39. package/esm2020/src/app/core/peer/select-peer.modal.mjs +3 -3
  40. package/esm2020/src/app/core/peer/select-peer.module.mjs +4 -4
  41. package/esm2020/src/app/core/register/confirm/confirm.mjs +3 -3
  42. package/esm2020/src/app/core/register/form/form-register.mjs +3 -3
  43. package/esm2020/src/app/core/register/modal/modal-register.mjs +3 -3
  44. package/esm2020/src/app/core/register/register.module.mjs +4 -4
  45. package/esm2020/src/app/core/services/account.service.mjs +5 -5
  46. package/esm2020/src/app/core/services/auth-guard.service.mjs +3 -3
  47. package/esm2020/src/app/core/services/base-entity-service.class.mjs +8 -9
  48. package/esm2020/src/app/core/services/base-graphql-service.class.mjs +3 -3
  49. package/esm2020/src/app/core/services/config.service.mjs +5 -5
  50. package/esm2020/src/app/core/services/crypto.service.mjs +3 -3
  51. package/esm2020/src/app/core/services/local-settings.service.mjs +3 -3
  52. package/esm2020/src/app/core/services/model/peer.model.mjs +3 -3
  53. package/esm2020/src/app/core/services/model/referential.model.mjs +11 -3
  54. package/esm2020/src/app/core/services/network.service.mjs +21 -28
  55. package/esm2020/src/app/core/services/pipes/account.pipes.mjs +8 -8
  56. package/esm2020/src/app/core/services/pipes/department-to-string.pipe.mjs +4 -4
  57. package/esm2020/src/app/core/services/pipes/person-to-string.pipe.mjs +4 -4
  58. package/esm2020/src/app/core/services/pipes/usage-mode.pipes.mjs +8 -8
  59. package/esm2020/src/app/core/services/platform.service.mjs +3 -3
  60. package/esm2020/src/app/core/services/storage/entities-storage.service.mjs +3 -3
  61. package/esm2020/src/app/core/services/testing/referential.validator.mjs +3 -3
  62. package/esm2020/src/app/core/services/validator/account.validator.mjs +3 -3
  63. package/esm2020/src/app/core/services/validator/base.validator.class.mjs +3 -3
  64. package/esm2020/src/app/core/services/validator/local-settings.validator.mjs +3 -3
  65. package/esm2020/src/app/core/services/validator/user-settings.validator.mjs +3 -3
  66. package/esm2020/src/app/core/settings/settings.page.mjs +4 -4
  67. package/esm2020/src/app/core/table/actions-column.component.mjs +9 -9
  68. package/esm2020/src/app/core/table/entities-table-datasource.class.mjs +74 -65
  69. package/esm2020/src/app/core/table/memory-table.class.mjs +3 -3
  70. package/esm2020/src/app/core/table/table-select-columns.component.mjs +3 -3
  71. package/esm2020/src/app/core/table/table.class.mjs +223 -208
  72. package/esm2020/src/app/core/table/table.utils.mjs +1 -1
  73. package/esm2020/src/app/core/table/testing/table.testing.mjs +5 -5
  74. package/esm2020/src/app/core/table/testing/table.testing.module.mjs +4 -4
  75. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.mjs +3 -3
  76. package/esm2020/src/app/core/text-popover/testing/text-popover.testing.module.mjs +4 -4
  77. package/esm2020/src/app/core/text-popover/text-form.component.mjs +3 -3
  78. package/esm2020/src/app/core/text-popover/text-popover.component.mjs +3 -3
  79. package/esm2020/src/app/shared/audio/audio.mjs +4 -4
  80. package/esm2020/src/app/shared/audio/audio.testing.mjs +3 -3
  81. package/esm2020/src/app/shared/audio/audio.testing.module.mjs +4 -4
  82. package/esm2020/src/app/shared/capacitor/keyboard.mjs +3 -3
  83. package/esm2020/src/app/shared/debug/debug.component.mjs +39 -0
  84. package/esm2020/src/app/shared/debug/debug.module.mjs +44 -0
  85. package/esm2020/src/app/shared/directives/autofocus.directive.mjs +6 -6
  86. package/esm2020/src/app/shared/directives/autotitle.directive.mjs +3 -3
  87. package/esm2020/src/app/shared/directives/directives.module.mjs +4 -4
  88. package/esm2020/src/app/shared/directives/drag-and-drop.directive.mjs +3 -3
  89. package/esm2020/src/app/shared/directives/ng-var.directive.mjs +3 -3
  90. package/esm2020/src/app/shared/directives/resizable/resizable.component.mjs +3 -3
  91. package/esm2020/src/app/shared/directives/resizable/resizable.directive.mjs +3 -3
  92. package/esm2020/src/app/shared/directives/resizable/resizable.module.mjs +4 -4
  93. package/esm2020/src/app/shared/events.mjs +2 -2
  94. package/esm2020/src/app/shared/file/file.service.mjs +5 -5
  95. package/esm2020/src/app/shared/form/field.component.mjs +10 -7
  96. package/esm2020/src/app/shared/form/loading-spinner.mjs +3 -3
  97. package/esm2020/src/app/shared/forms.mjs +21 -2
  98. package/esm2020/src/app/shared/functions.mjs +23 -10
  99. package/esm2020/src/app/shared/gesture/gesture-config.mjs +3 -3
  100. package/esm2020/src/app/shared/graph/graph-colors.mjs +17 -63
  101. package/esm2020/src/app/shared/guard/component-dirty.guard.mjs +3 -3
  102. package/esm2020/src/app/shared/help/help.modal.mjs +3 -3
  103. package/esm2020/src/app/shared/hotkeys/dialog/hotkeys-dialog.component.mjs +3 -3
  104. package/esm2020/src/app/shared/hotkeys/hotkeys.service.mjs +3 -3
  105. package/esm2020/src/app/shared/hotkeys/shared-hotkeys.module.mjs +4 -4
  106. package/esm2020/src/app/shared/image/gallery/image-gallery.component.mjs +3 -3
  107. package/esm2020/src/app/shared/image/gallery/image-gallery.module.mjs +4 -4
  108. package/esm2020/src/app/shared/image/gallery/testing/gallery.service.testing.mjs +3 -3
  109. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.mjs +3 -3
  110. package/esm2020/src/app/shared/image/gallery/testing/gallery.testing.module.mjs +4 -4
  111. package/esm2020/src/app/shared/image/image.module.mjs +4 -4
  112. package/esm2020/src/app/shared/image/image.service.mjs +3 -3
  113. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.mjs +8 -10
  114. package/esm2020/src/app/shared/material/autocomplete/material.autocomplete.module.mjs +4 -4
  115. package/esm2020/src/app/shared/material/autocomplete/testing/autocomplete.test.mjs +3 -3
  116. package/esm2020/src/app/shared/material/badge/badge.directive.mjs +157 -0
  117. package/esm2020/src/app/shared/material/badge/badge.module.mjs +32 -0
  118. package/esm2020/src/app/shared/material/badge/badge.test.mjs +26 -0
  119. package/esm2020/src/app/shared/material/boolean/boolean.module.mjs +4 -4
  120. package/esm2020/src/app/shared/material/boolean/material.boolean.mjs +3 -3
  121. package/esm2020/src/app/shared/material/chips/chips.module.mjs +4 -4
  122. package/esm2020/src/app/shared/material/chips/material.chips.mjs +11 -13
  123. package/esm2020/src/app/shared/material/chips/testing/chips.test.mjs +3 -3
  124. package/esm2020/src/app/shared/material/datetime/datetime.module.mjs +4 -4
  125. package/esm2020/src/app/shared/material/datetime/material.date.mjs +79 -83
  126. package/esm2020/src/app/shared/material/datetime/material.dateshort.mjs +5 -5
  127. package/esm2020/src/app/shared/material/datetime/material.datetime.mjs +95 -77
  128. package/esm2020/src/app/shared/material/datetime/testing/mat-date-time.test.mjs +5 -5
  129. package/esm2020/src/app/shared/material/datetime/testing/mat-date.test.mjs +5 -5
  130. package/esm2020/src/app/shared/material/duration/duration.module.mjs +4 -4
  131. package/esm2020/src/app/shared/material/duration/material.duration.mjs +3 -3
  132. package/esm2020/src/app/shared/material/latlong/material.latlong.mjs +3 -3
  133. package/esm2020/src/app/shared/material/latlong/material.latlong.module.mjs +4 -4
  134. package/esm2020/src/app/shared/material/latlong/testing/latlong.test.mjs +3 -3
  135. package/esm2020/src/app/shared/material/material.animations.mjs +1 -1
  136. package/esm2020/src/app/shared/material/material.module.mjs +10 -10
  137. package/esm2020/src/app/shared/material/material.testing.module.mjs +24 -12
  138. package/esm2020/src/app/shared/material/numpad/numpad.append-to-input.directive.mjs +3 -3
  139. package/esm2020/src/app/shared/material/numpad/numpad.component.mjs +3 -3
  140. package/esm2020/src/app/shared/material/numpad/numpad.container.mjs +5 -5
  141. package/esm2020/src/app/shared/material/numpad/numpad.content.mjs +3 -3
  142. package/esm2020/src/app/shared/material/numpad/numpad.directive.mjs +3 -3
  143. package/esm2020/src/app/shared/material/numpad/numpad.dom-service.mjs +3 -3
  144. package/esm2020/src/app/shared/material/numpad/numpad.module.mjs +4 -4
  145. package/esm2020/src/app/shared/material/numpad/testing/numpad.test.mjs +3 -3
  146. package/esm2020/src/app/shared/material/paginator/material.paginator-i18n.mjs +3 -3
  147. package/esm2020/src/app/shared/material/stepper/material.stepper-i18n.mjs +3 -3
  148. package/esm2020/src/app/shared/material/swipe/material.swipe.mjs +3 -3
  149. package/esm2020/src/app/shared/material/swipe/swipe.module.mjs +4 -4
  150. package/esm2020/src/app/shared/material/swipe/testing/swipe.test.mjs +3 -3
  151. package/esm2020/src/app/shared/observables.mjs +29 -22
  152. package/esm2020/src/app/shared/pipes/arrays.pipe.mjs +48 -27
  153. package/esm2020/src/app/shared/pipes/colors.pipe.mjs +3 -3
  154. package/esm2020/src/app/shared/pipes/date-diff-duration.pipe.mjs +4 -4
  155. package/esm2020/src/app/shared/pipes/date-format.pipe.mjs +4 -4
  156. package/esm2020/src/app/shared/pipes/date-from-now.pipe.mjs +4 -4
  157. package/esm2020/src/app/shared/pipes/duration.pipe.mjs +4 -4
  158. package/esm2020/src/app/shared/pipes/file-size.pipe.mjs +3 -3
  159. package/esm2020/src/app/shared/pipes/form.pipes.mjs +18 -18
  160. package/esm2020/src/app/shared/pipes/highlight.pipe.mjs +4 -4
  161. package/esm2020/src/app/shared/pipes/latlong-format.pipe.mjs +9 -9
  162. package/esm2020/src/app/shared/pipes/maps.pipe.mjs +12 -12
  163. package/esm2020/src/app/shared/pipes/math.pipes.mjs +12 -12
  164. package/esm2020/src/app/shared/pipes/ng-init.pipe.mjs +3 -3
  165. package/esm2020/src/app/shared/pipes/number-format.pipe.mjs +4 -4
  166. package/esm2020/src/app/shared/pipes/pipes.module.mjs +10 -6
  167. package/esm2020/src/app/shared/pipes/property.pipes.mjs +7 -7
  168. package/esm2020/src/app/shared/pipes/string.pipes.mjs +15 -15
  169. package/esm2020/src/app/shared/pipes/translate-context.pipe.mjs +8 -8
  170. package/esm2020/src/app/shared/services/entity-service.class.mjs +1 -13
  171. package/esm2020/src/app/shared/services/memory-entity-service.class.mjs +127 -43
  172. package/esm2020/src/app/shared/services/progress-bar.service.mjs +3 -3
  173. package/esm2020/src/app/shared/services/startable-observable-service.class.mjs +119 -0
  174. package/esm2020/src/app/shared/services/startable-service.class.mjs +42 -31
  175. package/esm2020/src/app/shared/services/storage/storage.service.mjs +3 -3
  176. package/esm2020/src/app/shared/services/translate-context.service.mjs +3 -3
  177. package/esm2020/src/app/shared/shared-routing.module.mjs +7 -7
  178. package/esm2020/src/app/shared/shared.module.mjs +4 -4
  179. package/esm2020/src/app/shared/shared.testing.module.mjs +4 -4
  180. package/esm2020/src/app/shared/testing/observable.test.mjs +96 -0
  181. package/esm2020/src/app/shared/testing/tests.page.mjs +3 -3
  182. package/esm2020/src/app/shared/toast/toast.testing.mjs +10 -11
  183. package/esm2020/src/app/shared/toast/toast.testing.module.mjs +4 -4
  184. package/esm2020/src/app/shared/toast/toasts.mjs +38 -15
  185. package/esm2020/src/app/shared/toolbar/modal-toolbar.mjs +5 -5
  186. package/esm2020/src/app/shared/toolbar/toolbar.mjs +9 -9
  187. package/esm2020/src/app/shared/toolbar/toolbar.module.mjs +4 -4
  188. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.mjs +3 -3
  189. package/esm2020/src/app/shared/upload-file/testing/upload-file.testing.module.mjs +4 -4
  190. package/esm2020/src/app/shared/upload-file/upload-file-popover.component.mjs +3 -3
  191. package/esm2020/src/app/shared/upload-file/upload-file.component.mjs +3 -3
  192. package/esm2020/src/app/shared/validator/form-error-adapter.class.mjs +3 -3
  193. package/esm2020/src/app/social/job/job.module.mjs +9 -9
  194. package/esm2020/src/app/social/job/job.service.mjs +27 -15
  195. package/esm2020/src/app/social/job/progression/job-progression.icon.mjs +210 -0
  196. package/esm2020/src/app/social/job/progression/job-progression.list.mjs +3 -3
  197. package/esm2020/src/app/social/job/testing/job-progression.testing.mjs +33 -31
  198. package/esm2020/src/app/social/job/testing/job-progression.testing.service.mjs +27 -5
  199. package/esm2020/src/app/social/job/testing/job.testing.module.mjs +4 -4
  200. package/esm2020/src/app/social/message/message.form.mjs +3 -3
  201. package/esm2020/src/app/social/message/message.modal.mjs +3 -3
  202. package/esm2020/src/app/social/message/message.module.mjs +4 -4
  203. package/esm2020/src/app/social/message/message.service.mjs +3 -3
  204. package/esm2020/src/app/social/social.module.mjs +5 -5
  205. package/esm2020/src/app/social/social.testing.module.mjs +4 -4
  206. package/esm2020/src/app/social/user-event/notification/user-event-notification.icon.mjs +28 -17
  207. package/esm2020/src/app/social/user-event/notification/user-event-notification.list.mjs +6 -6
  208. package/esm2020/src/app/social/user-event/testing/user-event.testing.mjs +6 -6
  209. package/esm2020/src/app/social/user-event/testing/user-event.testing.module.mjs +4 -4
  210. package/esm2020/src/app/social/user-event/testing/user-event.testing.service.mjs +3 -3
  211. package/esm2020/src/app/social/user-event/user-event.module.mjs +9 -9
  212. package/esm2020/src/app/social/user-event/user-event.service.mjs +5 -5
  213. package/esm2020/src/app/vendor.mjs +6 -1
  214. package/fesm2015/sumaris-net.ngx-components.mjs +2692 -1945
  215. package/fesm2015/sumaris-net.ngx-components.mjs.map +1 -1
  216. package/fesm2020/sumaris-net.ngx-components.mjs +2512 -1718
  217. package/fesm2020/sumaris-net.ngx-components.mjs.map +1 -1
  218. package/package.json +6 -2
  219. package/public_api.d.ts +8 -4
  220. package/src/app/admin/admin.module.d.ts +4 -8
  221. package/src/app/admin/users/list/users.d.ts +1 -0
  222. package/src/app/admin/users/list/users.module.d.ts +14 -0
  223. package/src/app/core/core.module.d.ts +1 -1
  224. package/src/app/core/core.testing.module.d.ts +2 -1
  225. package/src/app/core/form/editor.class.d.ts +20 -6
  226. package/src/app/core/form/entity-editor-modal.class.d.ts +13 -4
  227. package/src/app/core/form/entity-editor.class.d.ts +4 -11
  228. package/src/app/core/form/form.class.d.ts +2 -0
  229. package/src/app/core/form/form.utils.d.ts +28 -2
  230. package/src/app/core/form/{properties.form.d.ts → properties/properties.form.d.ts} +13 -13
  231. package/src/app/core/form/properties/property.validator.d.ts +13 -0
  232. package/src/app/core/form/properties/testing/properties-form.test.d.ts +19 -0
  233. package/src/app/core/form/properties/testing/properties-form.testing.module.d.ts +12 -0
  234. package/src/app/core/services/model/referential.model.d.ts +6 -1
  235. package/src/app/core/services/network.service.d.ts +6 -8
  236. package/src/app/core/table/entities-table-datasource.class.d.ts +22 -15
  237. package/src/app/core/table/table.class.d.ts +37 -47
  238. package/src/app/core/table/table.utils.d.ts +2 -1
  239. package/src/app/shared/debug/debug.component.d.ts +13 -0
  240. package/src/app/shared/debug/debug.module.d.ts +12 -0
  241. package/src/app/shared/events.d.ts +4 -4
  242. package/src/app/shared/form/field.component.d.ts +4 -1
  243. package/src/app/shared/forms.d.ts +8 -1
  244. package/src/app/shared/functions.d.ts +9 -4
  245. package/src/app/shared/graph/graph-colors.d.ts +8 -8
  246. package/src/app/shared/image/gallery/testing/gallery.testing.d.ts +1 -1
  247. package/src/app/shared/material/badge/badge.directive.d.ts +28 -0
  248. package/src/app/shared/material/badge/badge.module.d.ts +10 -0
  249. package/src/app/shared/material/badge/badge.test.d.ts +12 -0
  250. package/src/app/shared/material/datetime/material.date.d.ts +12 -13
  251. package/src/app/shared/material/datetime/material.datetime.d.ts +14 -14
  252. package/src/app/shared/material/material.module.d.ts +2 -2
  253. package/src/app/shared/material/material.testing.module.d.ts +10 -9
  254. package/src/app/shared/observables.d.ts +1 -1
  255. package/src/app/shared/pipes/arrays.pipe.d.ts +12 -2
  256. package/src/app/shared/pipes/pipes.module.d.ts +1 -1
  257. package/src/app/shared/services/entity-service.class.d.ts +0 -11
  258. package/src/app/shared/services/memory-entity-service.class.d.ts +20 -6
  259. package/src/app/shared/services/startable-observable-service.class.d.ts +33 -0
  260. package/src/app/shared/services/startable-service.class.d.ts +12 -9
  261. package/src/app/shared/testing/observable.test.d.ts +25 -0
  262. package/src/app/shared/toast/toast.testing.d.ts +3 -5
  263. package/src/app/shared/toast/toasts.d.ts +5 -2
  264. package/src/app/social/job/job.module.d.ts +2 -2
  265. package/src/app/social/job/job.service.d.ts +10 -2
  266. package/src/app/social/job/progression/{job-progression.component.d.ts → job-progression.icon.d.ts} +5 -5
  267. package/src/app/social/job/testing/job-progression.testing.d.ts +7 -4
  268. package/src/app/social/job/testing/job-progression.testing.service.d.ts +4 -0
  269. package/src/app/social/social.module.d.ts +1 -1
  270. package/src/app/social/user-event/notification/user-event-notification.icon.d.ts +8 -5
  271. package/src/app/social/user-event/testing/user-event.testing.d.ts +2 -2
  272. package/src/app/social/user-event/user-event.module.d.ts +1 -1
  273. package/src/app/social/user-event/user-event.service.d.ts +1 -1
  274. package/src/app/vendor.d.ts +2 -0
  275. package/src/theme/_ionic.globals.scss +4 -0
  276. package/src/theme/_material.globals.scss +3 -1
  277. package/src/theme/_material.scss +29 -4
  278. package/src/theme/_mixins.scss +3 -3
  279. package/src/theme/_ngx-components.scss +26 -0
  280. package/esm2020/src/app/core/form/properties.form.mjs +0 -126
  281. package/esm2020/src/app/shared/material/badge/badge-icon.directive.mjs +0 -143
  282. package/esm2020/src/app/shared/material/badge/badge-icon.module.mjs +0 -32
  283. package/esm2020/src/app/shared/material/badge/badge-icon.test.mjs +0 -27
  284. package/esm2020/src/app/social/job/progression/job-progression.component.mjs +0 -201
  285. package/src/app/shared/material/badge/badge-icon.directive.d.ts +0 -30
  286. package/src/app/shared/material/badge/badge-icon.module.d.ts +0 -10
  287. package/src/app/shared/material/badge/badge-icon.test.d.ts +0 -12
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component, Inject, Input, Optional, Output, ViewChild, ViewChildren } from '@angular/core';
2
2
  import { BehaviorSubject, Subscription } from 'rxjs';
3
3
  import { IonContent, IonItem } from '@ionic/angular';
4
- import { USER_EVENT_SERVICE } from '../user-event.service';
4
+ import { APP_USER_EVENT_SERVICE } from '../user-event.service';
5
5
  import { removeDuplicatesFromArray } from '../../../shared/functions';
6
6
  import { fromScrollEndEvent } from '../../../shared/events';
7
7
  import { waitFor } from '../../../shared/observables';
@@ -170,9 +170,9 @@ export class UserEventNotificationList {
170
170
  this.cd.markForCheck();
171
171
  }
172
172
  }
173
- UserEventNotificationList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UserEventNotificationList, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PopoverController }, { token: i2.LocalSettingsService, optional: true }, { token: USER_EVENT_SERVICE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
174
- UserEventNotificationList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: UserEventNotificationList, selector: "app-user-event-notification-list", inputs: { debug: "debug", mobile: "mobile", titleI18n: "titleI18n", sortBy: "sortBy", sortDirection: "sortDirection", filter: "filter", enableInfiniteScroll: "enableInfiniteScroll", pageSize: "pageSize" }, outputs: { readEvent: "readEvent", readEvents: "readEvents" }, viewQueries: [{ propertyName: "ionContent", first: true, predicate: IonContent, descendants: true }, { propertyName: "ionItems", predicate: IonItem, descendants: true }], ngImport: i0, template: "<ion-content>\n <ion-list class=\"ion-list-popover\">\n\n <ion-row class=\"ion-list-header column\">\n <ion-col>\n <ion-label>{{titleI18n | translate}}</ion-label>\n </ion-col>\n <ion-col class=\"top-action\" *ngIf=\"$items|async|isNotEmptyArray\">\n <ion-text color=\"primary\">\n <a (click)=\"markAllAsRead($event)\">{{'SOCIAL.USER_EVENT.NOTIFICATION.READ_ALL' | translate}}</a>\n </ion-text>\n </ion-col>\n </ion-row>\n\n <ion-item\n *ngFor=\"let item of $items | async; trackBy: trackByFn; last as last\"\n [lines]=\"last ? 'none' : undefined\"\n [class.unread]=\"!item.readDate\"\n [class.tappable]=\"item.actions|arrayFilter:isDefaultAction|isNotEmptyArray\"\n (click)=\"click($event, item)\">\n\n <ion-avatar slot=\"start\">\n\n <img *ngIf=\"item.avatar; else avatarIcon\" src=\"{{ item.avatar }}\">\n\n <ng-template #avatarIcon>\n <app-icon\n *ngIf=\"item.avatarIcon; else generateIcon\"\n [ref]=\"item.avatarIcon\"\n height=\"40\"\n width=\"40\"\n ></app-icon>\n </ng-template>\n\n <ng-template #generateIcon>\n <div class=\"avatar\" *ngIf=\"item.avatarJdenticon\">\n <svg width=\"40\" width=\"40\" [data-jdenticon-value]=\"item.avatarJdenticon\"></svg>\n </div>\n </ng-template>\n\n </ion-avatar>\n\n <ion-grid class=\"ion-no-margin ion-no-padding message\">\n <ion-row>\n <ion-col size=\"12\">\n <p [class.unread]=\"!item.readDate\" [innerHTML]=\"item.message\"></p>\n </ion-col>\n </ion-row>\n\n <!-- date -->\n <ion-row>\n <ion-col size=\"12\">\n <app-icon\n *ngIf=\"item.icon\"\n [ref]=\"item.icon\"\n height=\"16\"\n width=\"16\"\n style=\"vertical-align: sub; margin-right: 3px\"\n ></app-icon>\n <small>\n <span>{{item.creationDate|dateFromNow}}</span>\n <span style=\"color: gray\">{{ ' | ' + (item.creationDate|dateFormat:{time:true}) }}</span>\n </small>\n </ion-col>\n </ion-row>\n\n <!-- actions -->\n <ion-row *ngIf=\"item.actions|isNotEmptyArray\">\n <ion-col></ion-col>\n <ion-col size=\"auto\">\n <ng-container *ngFor=\"let action of item.actions\">\n <a *ngIf=\"!action.default\" class=\"action\" (click)=\"executeAction($event, action, item)\" [title]=\"(action.title || action.name) |translate\">\n <app-icon *ngIf=\"action.iconRef\" slot=\"start\" height=\"20\" width=\"20\" [ref]=\"action.iconRef\"></app-icon>\n <span>{{ action.name | translate }}</span>\n </a>\n </ng-container>\n </ion-col>\n </ion-row>\n\n </ion-grid>\n\n <mat-icon slot=\"end\" *ngIf=\"item.actions|arrayFilter: isDefaultAction|isNotEmptyArray\">chevron_right</mat-icon>\n </ion-item>\n\n <!-- loading -->\n <ng-container *ngIf=\"!($items|async); else notLoading\">\n <ng-container *ngTemplateOutlet=\"loadingItem\"></ng-container>\n </ng-container>\n\n <ng-template #notLoading>\n <!-- no result -->\n <ion-item *ngIf=\"$items|async|isEmptyArray\" lines=\"none\">\n <ion-text color=\"dark\" class=\"text-italic\">{{'SOCIAL.USER_EVENT.NOTIFICATION.EMPTY' | translate}}</ion-text>\n </ion-item>\n\n <!-- Fetching more -->\n <ng-container *ngIf=\"fetchingMore; else infiniteLoop\" lines=\"none\" disabled>\n <ng-container *ngTemplateOutlet=\"loadingItem\"></ng-container>\n </ng-container>\n\n <!-- Infinite loop -->\n <ng-template #infiniteLoop>\n <ng-container *ngIf=\"canFetchMore\" lines=\"none\" disabled\n [ngTemplateOutlet]=\"loadingItem\">\n </ng-container>\n </ng-template>\n </ng-template>\n\n <!-- footer -->\n <ion-row class=\"ion-list-footer column\">\n <ion-col>\n <ion-text *ngIf=\"$itemCount|async; let count\"\n class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n </ion-list>\n</ion-content>\n\n<!-- loading -->\n<ng-template #loadingItem>\n <ion-item lines=\"none\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </ion-item>\n</ng-template>\n", styles: [":host(.popover-viewport){overflow-y:auto;-webkit-user-select:none;user-select:none;max-height:calc(90vh - 20px)}ion-list ion-item.tappable{cursor:pointer}ion-list ion-item.tappable:hover{--ion-item-background: var(--ion-item-background-color-hover)}.message{font-size:.9em}.message p{margin-top:5px;margin-bottom:5px}.message p.unread{font-weight:700}.top-action{text-align:end;margin-right:8px}.top-action a{cursor:pointer;color:var(--ion-color-contrast)}.top-action a:hover{text-decoration:underline}a.action{font-size:.9em;margin-right:10px;cursor:pointer}a.action:hover span{text-decoration:underline}a.action app-icon{vertical-align:middle}ion-avatar img,ion-avatar .avatar svg{border:1px solid rgba(var(--ion-color-secondary-rgb, .5));border-radius:50%}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1.IonAvatar, selector: "ion-avatar" }, { kind: "component", type: i1.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: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i1.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: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "component", type: i1.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.AppIconComponent, selector: "app-icon", inputs: ["icon", "matIcon", "matSvgIcon", "color", "height", "width", "ref"] }, { kind: "directive", type: i6.SvgJdenticonDirective, selector: "svg[data-jdenticon-hash],svg[data-jdenticon-value]", inputs: ["data-jdenticon-hash", "data-jdenticon-value", "width", "height"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "pipe", type: i8.DateFormatPipe, name: "dateFormat" }, { kind: "pipe", type: i9.DateFromNowPipe, name: "dateFromNow" }, { kind: "pipe", type: i10.NotEmptyArrayPipe, name: "isNotEmptyArray" }, { kind: "pipe", type: i10.EmptyArrayPipe, name: "isEmptyArray" }, { kind: "pipe", type: i10.ArrayFilterPipe, name: "arrayFilter" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UserEventNotificationList, decorators: [{
173
+ UserEventNotificationList.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: UserEventNotificationList, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.PopoverController }, { token: i2.LocalSettingsService, optional: true }, { token: APP_USER_EVENT_SERVICE, optional: true }], target: i0.ɵɵFactoryTarget.Component });
174
+ UserEventNotificationList.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.6", type: UserEventNotificationList, selector: "app-user-event-notification-list", inputs: { debug: "debug", mobile: "mobile", titleI18n: "titleI18n", sortBy: "sortBy", sortDirection: "sortDirection", filter: "filter", enableInfiniteScroll: "enableInfiniteScroll", pageSize: "pageSize" }, outputs: { readEvent: "readEvent", readEvents: "readEvents" }, viewQueries: [{ propertyName: "ionContent", first: true, predicate: IonContent, descendants: true }, { propertyName: "ionItems", predicate: IonItem, descendants: true }], ngImport: i0, template: "<ion-content>\n <ion-list class=\"ion-list-popover\">\n\n <ion-row class=\"ion-list-header column\">\n <ion-col>\n <ion-label>{{titleI18n | translate}}</ion-label>\n </ion-col>\n <ion-col class=\"top-action\" *ngIf=\"$items|async|isNotEmptyArray\">\n <ion-text color=\"primary\">\n <a (click)=\"markAllAsRead($event)\">{{'SOCIAL.USER_EVENT.NOTIFICATION.READ_ALL' | translate}}</a>\n </ion-text>\n </ion-col>\n </ion-row>\n\n <ion-item\n *ngFor=\"let item of $items | async; trackBy: trackByFn; last as last\"\n [lines]=\"last ? 'none' : undefined\"\n [class.unread]=\"!item.readDate\"\n [class.tappable]=\"item.actions|arrayFilter:isDefaultAction|isNotEmptyArray\"\n (click)=\"click($event, item)\">\n\n <ion-avatar slot=\"start\">\n\n <img *ngIf=\"item.avatar; else avatarIcon\" src=\"{{ item.avatar }}\">\n\n <ng-template #avatarIcon>\n <app-icon\n *ngIf=\"item.avatarIcon; else generateIcon\"\n [ref]=\"item.avatarIcon\"\n height=\"40\"\n width=\"40\"\n ></app-icon>\n </ng-template>\n\n <ng-template #generateIcon>\n <div class=\"avatar\" *ngIf=\"item.avatarJdenticon\">\n <svg width=\"40\" width=\"40\" [data-jdenticon-value]=\"item.avatarJdenticon\"></svg>\n </div>\n </ng-template>\n\n </ion-avatar>\n\n <ion-grid class=\"ion-no-margin ion-no-padding message\">\n <ion-row>\n <ion-col size=\"12\">\n <p [class.unread]=\"!item.readDate\" [innerHTML]=\"item.message\"></p>\n </ion-col>\n </ion-row>\n\n <!-- date -->\n <ion-row>\n <ion-col size=\"12\">\n <app-icon\n *ngIf=\"item.icon\"\n [ref]=\"item.icon\"\n height=\"16\"\n width=\"16\"\n style=\"vertical-align: sub; margin-right: 3px\"\n ></app-icon>\n <small>\n <span>{{item.creationDate|dateFromNow}}</span>\n <span style=\"color: gray\">{{ ' | ' + (item.creationDate|dateFormat:{time:true}) }}</span>\n </small>\n </ion-col>\n </ion-row>\n\n <!-- actions -->\n <ion-row *ngIf=\"item.actions|isNotEmptyArray\">\n <ion-col></ion-col>\n <ion-col size=\"auto\">\n <ng-container *ngFor=\"let action of item.actions\">\n <a *ngIf=\"!action.default\" class=\"action\" (click)=\"executeAction($event, action, item)\" [title]=\"(action.title || action.name) |translate\">\n <app-icon *ngIf=\"action.iconRef\" slot=\"start\" height=\"20\" width=\"20\" [ref]=\"action.iconRef\"></app-icon>\n <span>{{ action.name | translate }}</span>\n </a>\n </ng-container>\n </ion-col>\n </ion-row>\n\n </ion-grid>\n\n <mat-icon slot=\"end\" *ngIf=\"item.actions|arrayFilter: isDefaultAction|isNotEmptyArray\">chevron_right</mat-icon>\n </ion-item>\n\n <!-- loading -->\n <ng-container *ngIf=\"!($items|async); else notLoading\">\n <ng-container *ngTemplateOutlet=\"loadingItem\"></ng-container>\n </ng-container>\n\n <ng-template #notLoading>\n <!-- no result -->\n <ion-item *ngIf=\"$items|async|isEmptyArray\" lines=\"none\">\n <ion-text color=\"dark\" class=\"text-italic\">{{'SOCIAL.USER_EVENT.NOTIFICATION.EMPTY' | translate}}</ion-text>\n </ion-item>\n\n <!-- Fetching more -->\n <ng-container *ngIf=\"fetchingMore; else infiniteLoop\" lines=\"none\" disabled>\n <ng-container *ngTemplateOutlet=\"loadingItem\"></ng-container>\n </ng-container>\n\n <!-- Infinite loop -->\n <ng-template #infiniteLoop>\n <ng-container *ngIf=\"canFetchMore\" lines=\"none\" disabled\n [ngTemplateOutlet]=\"loadingItem\">\n </ng-container>\n </ng-template>\n </ng-template>\n\n <!-- footer -->\n <ion-row class=\"ion-list-footer column\">\n <ion-col>\n <ion-text *ngIf=\"$itemCount|async; let count\"\n class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n </ion-list>\n</ion-content>\n\n<!-- loading -->\n<ng-template #loadingItem>\n <ion-item lines=\"none\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </ion-item>\n</ng-template>\n", styles: [":host(.popover-viewport){overflow-y:auto;-webkit-user-select:none;user-select:none;max-height:calc(90vh - 20px)}ion-list ion-item.tappable{cursor:pointer}ion-list ion-item.tappable:hover{--ion-item-background: var(--ion-item-background-color-hover)}.message{font-size:.9em}.message p{margin-top:5px;margin-bottom:5px}.message p.unread{font-weight:700}.top-action{text-align:end;margin-right:8px}.top-action a{cursor:pointer;color:var(--ion-color-contrast)}.top-action a:hover{text-decoration:underline}a.action{font-size:.9em;margin-right:10px;cursor:pointer}a.action:hover span{text-decoration:underline}a.action app-icon{vertical-align:middle}ion-avatar img,ion-avatar .avatar svg{border:1px solid rgba(var(--ion-color-secondary-rgb, .5));border-radius:50%}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1.IonAvatar, selector: "ion-avatar" }, { kind: "component", type: i1.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: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i1.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: i1.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i1.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "component", type: i1.IonSkeletonText, selector: "ion-skeleton-text", inputs: ["animated"] }, { kind: "component", type: i1.IonText, selector: "ion-text", inputs: ["color", "mode"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.AppIconComponent, selector: "app-icon", inputs: ["icon", "matIcon", "matSvgIcon", "color", "height", "width", "ref"] }, { kind: "directive", type: i6.SvgJdenticonDirective, selector: "svg[data-jdenticon-hash],svg[data-jdenticon-value]", inputs: ["data-jdenticon-hash", "data-jdenticon-value", "width", "height"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "pipe", type: i8.DateFormatPipe, name: "dateFormat" }, { kind: "pipe", type: i9.DateFromNowPipe, name: "dateFromNow" }, { kind: "pipe", type: i10.NotEmptyArrayPipe, name: "isNotEmptyArray" }, { kind: "pipe", type: i10.EmptyArrayPipe, name: "isEmptyArray" }, { kind: "pipe", type: i10.ArrayFilterPipe, name: "arrayFilter" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
175
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: UserEventNotificationList, decorators: [{
176
176
  type: Component,
177
177
  args: [{ selector: 'app-user-event-notification-list', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ion-content>\n <ion-list class=\"ion-list-popover\">\n\n <ion-row class=\"ion-list-header column\">\n <ion-col>\n <ion-label>{{titleI18n | translate}}</ion-label>\n </ion-col>\n <ion-col class=\"top-action\" *ngIf=\"$items|async|isNotEmptyArray\">\n <ion-text color=\"primary\">\n <a (click)=\"markAllAsRead($event)\">{{'SOCIAL.USER_EVENT.NOTIFICATION.READ_ALL' | translate}}</a>\n </ion-text>\n </ion-col>\n </ion-row>\n\n <ion-item\n *ngFor=\"let item of $items | async; trackBy: trackByFn; last as last\"\n [lines]=\"last ? 'none' : undefined\"\n [class.unread]=\"!item.readDate\"\n [class.tappable]=\"item.actions|arrayFilter:isDefaultAction|isNotEmptyArray\"\n (click)=\"click($event, item)\">\n\n <ion-avatar slot=\"start\">\n\n <img *ngIf=\"item.avatar; else avatarIcon\" src=\"{{ item.avatar }}\">\n\n <ng-template #avatarIcon>\n <app-icon\n *ngIf=\"item.avatarIcon; else generateIcon\"\n [ref]=\"item.avatarIcon\"\n height=\"40\"\n width=\"40\"\n ></app-icon>\n </ng-template>\n\n <ng-template #generateIcon>\n <div class=\"avatar\" *ngIf=\"item.avatarJdenticon\">\n <svg width=\"40\" width=\"40\" [data-jdenticon-value]=\"item.avatarJdenticon\"></svg>\n </div>\n </ng-template>\n\n </ion-avatar>\n\n <ion-grid class=\"ion-no-margin ion-no-padding message\">\n <ion-row>\n <ion-col size=\"12\">\n <p [class.unread]=\"!item.readDate\" [innerHTML]=\"item.message\"></p>\n </ion-col>\n </ion-row>\n\n <!-- date -->\n <ion-row>\n <ion-col size=\"12\">\n <app-icon\n *ngIf=\"item.icon\"\n [ref]=\"item.icon\"\n height=\"16\"\n width=\"16\"\n style=\"vertical-align: sub; margin-right: 3px\"\n ></app-icon>\n <small>\n <span>{{item.creationDate|dateFromNow}}</span>\n <span style=\"color: gray\">{{ ' | ' + (item.creationDate|dateFormat:{time:true}) }}</span>\n </small>\n </ion-col>\n </ion-row>\n\n <!-- actions -->\n <ion-row *ngIf=\"item.actions|isNotEmptyArray\">\n <ion-col></ion-col>\n <ion-col size=\"auto\">\n <ng-container *ngFor=\"let action of item.actions\">\n <a *ngIf=\"!action.default\" class=\"action\" (click)=\"executeAction($event, action, item)\" [title]=\"(action.title || action.name) |translate\">\n <app-icon *ngIf=\"action.iconRef\" slot=\"start\" height=\"20\" width=\"20\" [ref]=\"action.iconRef\"></app-icon>\n <span>{{ action.name | translate }}</span>\n </a>\n </ng-container>\n </ion-col>\n </ion-row>\n\n </ion-grid>\n\n <mat-icon slot=\"end\" *ngIf=\"item.actions|arrayFilter: isDefaultAction|isNotEmptyArray\">chevron_right</mat-icon>\n </ion-item>\n\n <!-- loading -->\n <ng-container *ngIf=\"!($items|async); else notLoading\">\n <ng-container *ngTemplateOutlet=\"loadingItem\"></ng-container>\n </ng-container>\n\n <ng-template #notLoading>\n <!-- no result -->\n <ion-item *ngIf=\"$items|async|isEmptyArray\" lines=\"none\">\n <ion-text color=\"dark\" class=\"text-italic\">{{'SOCIAL.USER_EVENT.NOTIFICATION.EMPTY' | translate}}</ion-text>\n </ion-item>\n\n <!-- Fetching more -->\n <ng-container *ngIf=\"fetchingMore; else infiniteLoop\" lines=\"none\" disabled>\n <ng-container *ngTemplateOutlet=\"loadingItem\"></ng-container>\n </ng-container>\n\n <!-- Infinite loop -->\n <ng-template #infiniteLoop>\n <ng-container *ngIf=\"canFetchMore\" lines=\"none\" disabled\n [ngTemplateOutlet]=\"loadingItem\">\n </ng-container>\n </ng-template>\n </ng-template>\n\n <!-- footer -->\n <ion-row class=\"ion-list-footer column\">\n <ion-col>\n <ion-text *ngIf=\"$itemCount|async; let count\"\n class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n </ion-list>\n</ion-content>\n\n<!-- loading -->\n<ng-template #loadingItem>\n <ion-item lines=\"none\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </ion-item>\n</ng-template>\n", styles: [":host(.popover-viewport){overflow-y:auto;-webkit-user-select:none;user-select:none;max-height:calc(90vh - 20px)}ion-list ion-item.tappable{cursor:pointer}ion-list ion-item.tappable:hover{--ion-item-background: var(--ion-item-background-color-hover)}.message{font-size:.9em}.message p{margin-top:5px;margin-bottom:5px}.message p.unread{font-weight:700}.top-action{text-align:end;margin-right:8px}.top-action a{cursor:pointer;color:var(--ion-color-contrast)}.top-action a:hover{text-decoration:underline}a.action{font-size:.9em;margin-right:10px;cursor:pointer}a.action:hover span{text-decoration:underline}a.action app-icon{vertical-align:middle}ion-avatar img,ion-avatar .avatar svg{border:1px solid rgba(var(--ion-color-secondary-rgb, .5));border-radius:50%}\n"] }]
178
178
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: i1.PopoverController }, { type: i2.LocalSettingsService, decorators: [{
@@ -181,7 +181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
181
181
  type: Optional
182
182
  }, {
183
183
  type: Inject,
184
- args: [USER_EVENT_SERVICE]
184
+ args: [APP_USER_EVENT_SERVICE]
185
185
  }] }]; }, propDecorators: { debug: [{
186
186
  type: Input
187
187
  }], mobile: [{
@@ -209,4 +209,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
209
209
  type: ViewChildren,
210
210
  args: [IonItem]
211
211
  }] } });
212
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC1ub3RpZmljYXRpb24ubGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvbm90aWZpY2F0aW9uL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmxpc3QudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L25vdGlmaWNhdGlvbi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5saXN0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFxQixTQUFTLEVBQWdCLE1BQU0sRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUxTCxPQUFPLEVBQUMsZUFBZSxFQUFFLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUMsVUFBVSxFQUFFLE9BQU8sRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQW9CLGtCQUFrQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHNUUsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRXBELE9BQU8sRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7QUFtQnJGLE1BQU0sT0FBTyx5QkFBeUI7SUEwQ3BDLFlBQ1ksRUFBcUIsRUFDckIsaUJBQW9DLEVBQ3hCLFFBQThCLEVBQ0wsZ0JBQTZEO1FBSGxHLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBbUI7UUFDeEIsYUFBUSxHQUFSLFFBQVEsQ0FBc0I7UUFDTCxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTZDO1FBeENwRyxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFHcEMsZUFBVSxHQUFHLElBQUksZUFBZSxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBRXZELGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLFdBQU0sR0FBRyxJQUFJLGVBQWUsQ0FBTSxTQUFTLENBQUMsQ0FBQztRQUM3QyxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQVMsU0FBUyxDQUFDLENBQUM7UUFFM0MsVUFBSyxHQUFHLEtBQUssQ0FBQztRQUdkLFdBQU0sR0FBRyxjQUFjLENBQUM7UUFDeEIsa0JBQWEsR0FBa0IsTUFBTSxDQUFDO1FBRXRDLHlCQUFvQixHQUFHLElBQUksQ0FBQztRQTJCbkMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sSUFBSSxLQUFLLENBQUM7SUFDL0MsQ0FBQztJQTFCRCxJQUFhLFFBQVEsQ0FBQyxLQUFhO1FBQ2pDLElBQUksS0FBSyxHQUFHLENBQUMsSUFBSSxLQUFLLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLO1lBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEYsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQVNELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzFELENBQUM7SUFXRCxRQUFRO1FBRU4sd0JBQXdCO1FBQ3hCLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3pCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FDbEIsb0JBQW9CLEVBQUUsRUFDdEIsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDakg7aUJBQ0UsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUNsQixJQUFJLElBQUksQ0FBQyxLQUFLO29CQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsNENBQTRDLE1BQU0sQ0FBQyxLQUFLLGNBQWMsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ25ILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDL0QsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxDQUFDLHdCQUF3QjtnQkFDbkQsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLENBQUMsQ0FBQyxDQUNMLENBQUM7WUFFRixpQkFBaUI7WUFDakIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQ3JCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO2lCQUNoRCxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2hCLElBQUksSUFBSSxDQUFDLEtBQUs7b0JBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyw0Q0FBNEMsSUFBSSxDQUFDLE1BQU0sMEJBQTBCLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDekgsQ0FBQyxDQUFDLENBQ0wsQ0FBQztZQUVGLElBQUksSUFBSSxDQUFDLG9CQUFvQjtnQkFBRSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztTQUMxRDtJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELEtBQUssQ0FBQyxLQUFZLEVBQUUsU0FBWTtRQUM5QixJQUFJLENBQUMsU0FBUztZQUFFLE9BQU0sQ0FBQyxPQUFPO1FBRTlCLGFBQWE7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQztRQUVsQyxrQ0FBa0M7UUFDbEMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxTQUFTLEVBQUUsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV0RSxJQUFJLGFBQWEsRUFBRTtZQUNoQixJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsU0FBUyxDQUFDLENBQUM7U0FDdEQ7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLE1BQXdCO1FBQ3RDLE9BQU8sTUFBTSxJQUFJLE1BQU0sQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDO0lBQzNDLENBQUM7SUFFRCxVQUFVLENBQUMsS0FBWSxFQUFFLFNBQVk7UUFDbkMsSUFBSSxTQUFTLEVBQUUsUUFBUTtZQUFFLE9BQU87UUFDaEMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFZO1FBQ3hCLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTTtZQUFFLE9BQU87UUFDckMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsS0FBSyxDQUFDLGFBQWEsQ0FDZixLQUFZLEVBQ1osTUFBd0IsRUFDeEIsU0FBMEI7UUFFNUIsSUFBSSxLQUFLLEVBQUUsZ0JBQWdCO1lBQUUsT0FBTyxDQUFDLG9CQUFvQjtRQUV6RCwrREFBK0Q7UUFDL0QsSUFBSSxLQUFLO1lBQUUsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRWxDLDZCQUE2QjtRQUM3QixJQUFJO1lBQ0YsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUM1QyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixJQUFJLEdBQUcsWUFBWSxPQUFPO2dCQUFFLE1BQU0sR0FBRyxDQUFDO1NBQ3ZDO1FBQ0QsT0FBTSxHQUFHLEVBQUU7WUFDVCxPQUFPLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQ3BCO0lBQ0gsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakMsd0VBQXdFO1FBQ3hFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsS0FBSyxDQUFDLFNBQVMsQ0FBQyxLQUF5RTtRQUN2RixJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsWUFBWTtZQUFFLE9BQU87UUFFcEQsT0FBTyxDQUFDLEtBQUssQ0FBQywrREFBK0QsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0RixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUN6QixNQUFNLFdBQVcsR0FBSSxJQUFJLENBQUMsWUFBWSxDQUFDO1FBRXZDLElBQUk7WUFDRixNQUFNLE1BQU0sR0FBRyxNQUFNLFdBQVcsRUFBRSxDQUFDO1lBQ25DLElBQUksSUFBSSxHQUFHO2dCQUNULEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQzVCLEdBQUcsTUFBTSxDQUFDLElBQUk7YUFDZixDQUFDO1lBRUYsMEVBQTBFO1lBQzFFLElBQUksR0FBRyx5QkFBeUIsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFN0MscUVBQXFFO1lBQ3JFLElBQUksV0FBVyxLQUFLLElBQUksQ0FBQyxZQUFZO2dCQUFFLE9BQU8sQ0FBQyxPQUFPO1lBRXRELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxNQUFNLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDL0QsSUFBSSxDQUFDLFlBQVksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDO1lBRXJDLDJFQUEyRTtZQUMzRSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdEQ7UUFDRCxPQUFNLEdBQUcsRUFBRTtZQUNULE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkIsSUFBSSxDQUFDLFlBQVksR0FBRyxTQUFTLENBQUMsQ0FBQyxzQkFBc0I7U0FDdEQ7Z0JBQ087WUFDTixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRUQsU0FBUyxDQUFDLEtBQWEsRUFBRSxJQUFPO1FBQzlCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRVMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLFNBQWtCO1FBQ25ELE9BQU8sQ0FBQyxLQUFLLENBQUMsbURBQW1ELENBQUMsQ0FBQztRQUNuRSxJQUFJLElBQUksQ0FBQyxzQkFBc0I7WUFBRSxJQUFJLENBQUMsc0JBQXNCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFM0UsU0FBUyxHQUFHLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEQsTUFBTSxPQUFPLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUMsQ0FBQyxDQUFDO1FBQ3RFLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXZELDZDQUE2QztRQUM3QyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQzFDLFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDL0IsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLDJEQUEyRCxDQUFDLENBQUMsQ0FDdkg7YUFDQSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFFckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVTLFlBQVk7UUFDcEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDOztzSEE5TVUseUJBQXlCLHdJQThDZCxrQkFBa0I7MEdBOUM3Qix5QkFBeUIsaVlBa0N6QixVQUFVLDhEQUNQLE9BQU8sZ0RDakV2QixrOElBNkhBOzJGRC9GYSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0Usa0NBQWtDLG1CQUczQix1QkFBdUIsQ0FBQyxNQUFNOzswQkErQzVDLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsa0JBQWtCOzRDQS9CL0IsS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBRU8sUUFBUTtzQkFBcEIsS0FBSztnQkFRSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBRWdCLFVBQVU7c0JBQWhDLFNBQVM7dUJBQUMsVUFBVTtnQkFDRSxRQUFRO3NCQUE5QixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SVVzZXJFdmVudCwgSVVzZXJFdmVudEZpbHRlciwgSVVzZXJFdmVudEFjdGlvbn0gZnJvbSAnLi4vdXNlci1ldmVudC5tb2RlbCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7SW9uQ29udGVudCwgSW9uSXRlbSwgUG9wb3ZlckNvbnRyb2xsZXJ9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7SVVzZXJFdmVudFNlcnZpY2UsIFVTRVJfRVZFTlRfU0VSVklDRX0gZnJvbSAnLi4vdXNlci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7TG9jYWxTZXR0aW5nc1NlcnZpY2V9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvbG9jYWwtc2V0dGluZ3Muc2VydmljZSc7XG5pbXBvcnQge0ZldGNoTW9yZUZuLCBMb2FkUmVzdWx0fSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvZW50aXR5LXNlcnZpY2UuY2xhc3MnO1xuaW1wb3J0IHtyZW1vdmVEdXBsaWNhdGVzRnJvbUFycmF5fSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZnVuY3Rpb25zJztcbmltcG9ydCB7ZnJvbVNjcm9sbEVuZEV2ZW50fSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZXZlbnRzJztcbmltcG9ydCB7d2FpdEZvcn0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL29ic2VydmFibGVzJztcbmltcG9ydCB7U29ydERpcmVjdGlvbn0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckV2ZW50Tm90aWZpY2F0aW9uTGlzdE9wdGlvbnM8XG4gIEUgZXh0ZW5kcyBJVXNlckV2ZW50PGFueT4gPSBJVXNlckV2ZW50PGFueT4sXG4gIEYgZXh0ZW5kcyBJVXNlckV2ZW50RmlsdGVyPGFueT4gPSBJVXNlckV2ZW50RmlsdGVyPGFueT5cbiAgPiB7XG4gIGRlYnVnPzogYm9vbGVhbjtcbiAgdGl0bGVJMThuPzogc3RyaW5nO1xuICByZWFkRXZlbnQ/OiBFdmVudEVtaXR0ZXI8RT47XG4gIHJlYWRFdmVudHM/OiBFdmVudEVtaXR0ZXI8RVtdPjtcbiAgZmlsdGVyPzogUGFydGlhbDxGPjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXVzZXItZXZlbnQtbm90aWZpY2F0aW9uLWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vdXNlci1ldmVudC1ub3RpZmljYXRpb24ubGlzdC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdXNlci1ldmVudC1ub3RpZmljYXRpb24ubGlzdC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3Q8XG4gIEUgZXh0ZW5kcyBJVXNlckV2ZW50PGFueT4gPSBJVXNlckV2ZW50PGFueT4sXG4gIEYgZXh0ZW5kcyBJVXNlckV2ZW50RmlsdGVyPGFueT4gPSBJVXNlckV2ZW50RmlsdGVyPGFueT5cbiAgPlxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBVc2VyRXZlbnROb3RpZmljYXRpb25MaXN0T3B0aW9uczxFLCBGPiB7XG5cbiAgcHJvdGVjdGVkIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuICBwcm90ZWN0ZWQgX2ZldGNoTW9yZUZuOiBGZXRjaE1vcmVGbjxMb2FkUmVzdWx0PEU+PjtcbiAgcHJvdGVjdGVkIF9mZXRjaE1vcmVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJvdGVjdGVkIF8kcGFnZVNpemUgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMjApO1xuXG4gIGZldGNoaW5nTW9yZSA9IGZhbHNlO1xuICAkaXRlbXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEVbXT4odW5kZWZpbmVkKTtcbiAgJGl0ZW1Db3VudCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8bnVtYmVyPih1bmRlZmluZWQpO1xuXG4gIEBJbnB1dCgpIGRlYnVnID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1vYmlsZTogYm9vbGVhbjtcbiAgQElucHV0KCkgdGl0bGVJMThuOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNvcnRCeSA9ICdjcmVhdGlvbkRhdGUnO1xuICBASW5wdXQoKSBzb3J0RGlyZWN0aW9uOiBTb3J0RGlyZWN0aW9uID0gJ2Rlc2MnO1xuICBASW5wdXQoKSBmaWx0ZXI6IFBhcnRpYWw8Rj47XG4gIEBJbnB1dCgpIGVuYWJsZUluZmluaXRlU2Nyb2xsID0gdHJ1ZTtcblxuICBASW5wdXQoKSBzZXQgcGFnZVNpemUodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh2YWx1ZSA+IDAgJiYgdmFsdWUgIT09IHRoaXMuXyRwYWdlU2l6ZS52YWx1ZSkgdGhpcy5fJHBhZ2VTaXplLm5leHQodmFsdWUpO1xuICB9XG5cbiAgZ2V0IHBhZ2VTaXplKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuXyRwYWdlU2l6ZS52YWx1ZTtcbiAgfVxuXG4gIEBPdXRwdXQoKSByZWFkRXZlbnQ6IEV2ZW50RW1pdHRlcjxFPjtcbiAgQE91dHB1dCgpIHJlYWRFdmVudHM6IEV2ZW50RW1pdHRlcjxFW10+O1xuXG4gIEBWaWV3Q2hpbGQoSW9uQ29udGVudCkgaW9uQ29udGVudDogSW9uQ29udGVudDtcbiAgQFZpZXdDaGlsZHJlbihJb25JdGVtKSBpb25JdGVtczogUXVlcnlMaXN0PElvbkl0ZW0+O1xuXG5cbiAgZ2V0IGNhbkZldGNoTW9yZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lbmFibGVJbmZpbml0ZVNjcm9sbCAmJiAhIXRoaXMuX2ZldGNoTW9yZUZuO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcm90ZWN0ZWQgcG9wb3ZlckNvbnRyb2xsZXI6IFBvcG92ZXJDb250cm9sbGVyLFxuICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBzZXR0aW5nczogTG9jYWxTZXR0aW5nc1NlcnZpY2UsXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChVU0VSX0VWRU5UX1NFUlZJQ0UpIHB1YmxpYyB1c2VyRXZlbnRTZXJ2aWNlOiBJVXNlckV2ZW50U2VydmljZTxFLCBJVXNlckV2ZW50RmlsdGVyPGFueT4+XG4gICkge1xuICAgIHRoaXMubW9iaWxlID0gdGhpcy5zZXR0aW5ncz8ubW9iaWxlIHx8IGZhbHNlO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG5cbiAgICAvLyBXYXRjaCBhbGwgdXNlciBldmVudHNcbiAgICBpZiAodGhpcy51c2VyRXZlbnRTZXJ2aWNlKSB7XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgdGhpcy5fJHBhZ2VTaXplLnBpcGUoXG4gICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICBzd2l0Y2hNYXAocGFnZVNpemUgPT4gdGhpcy51c2VyRXZlbnRTZXJ2aWNlLndhdGNoQWxsKDAsIHBhZ2VTaXplLCB0aGlzLnNvcnRCeSwgdGhpcy5zb3J0RGlyZWN0aW9uLCB0aGlzLmZpbHRlcikpXG4gICAgICAgIClcbiAgICAgICAgICAuc3Vic2NyaWJlKHJlc3VsdCA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLWxpc3RdIFJlY2VpdmluZyAke3Jlc3VsdC50b3RhbH0gdXNlciBldmVudHNgLCByZXN1bHQuZGF0YSk7XG4gICAgICAgICAgICB0aGlzLiRpdGVtcy5uZXh0KHJlc3VsdC5kYXRhKTtcbiAgICAgICAgICAgIHRoaXMuJGl0ZW1Db3VudC5uZXh0KHJlc3VsdC50b3RhbCB8fCByZXN1bHQuZGF0YT8ubGVuZ3RoIHx8IDApO1xuICAgICAgICAgICAgdGhpcy5fZmV0Y2hNb3JlRm4gPSByZXN1bHQuZmV0Y2hNb3JlO1xuICAgICAgICAgICAgdGhpcy5mZXRjaGluZ01vcmUgPSBmYWxzZTsgLy8gQWxsb3cgdG8gcmVmZXRjaCBtb3JlXG4gICAgICAgICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICAvLyBMaXN0ZW4gY2hhbmdlc1xuICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICAgIHRoaXMudXNlckV2ZW50U2VydmljZS5saXN0ZW5BbGxDaGFuZ2VzKHRoaXMuZmlsdGVyKVxuICAgICAgICAgIC5zdWJzY3JpYmUoZGF0YSA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5kZWJ1ZykgY29uc29sZS5kZWJ1ZyhgW3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLWxpc3RdIFJlY2VpdmluZyAke2RhdGEubGVuZ3RofSBuZXcgdXNlciBldmVudHMgKGJ5IFdTKWAsIGRhdGEpO1xuICAgICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgICBpZiAodGhpcy5lbmFibGVJbmZpbml0ZVNjcm9sbCkgdGhpcy5pbml0SW5maW5pdGVTY3JvbGwoKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy4kaXRlbXMuY29tcGxldGUoKTtcbiAgICB0aGlzLiRpdGVtQ291bnQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGNsaWNrKGV2ZW50OiBFdmVudCwgdXNlckV2ZW50OiBFKSB7XG4gICAgaWYgKCF1c2VyRXZlbnQpIHJldHVybiAvLyBTa2lwXG5cbiAgICAvLyBNYXJrQXNSZWFkXG4gICAgdGhpcy5tYXJrQXNSZWFkKGV2ZW50LCB1c2VyRXZlbnQpO1xuXG4gICAgLy8gR2V0IHRoZSBkZWZhdWx0IGFjdGlvbiAoaWYgYW55KVxuICAgIGNvbnN0IGRlZmF1bHRBY3Rpb24gPSAodXNlckV2ZW50Py5hY3Rpb25zIHx8IFtdKS5maW5kKGEgPT4gYS5kZWZhdWx0KTtcblxuICAgIGlmIChkZWZhdWx0QWN0aW9uKSB7XG4gICAgICAgdGhpcy5leGVjdXRlQWN0aW9uKGV2ZW50LCBkZWZhdWx0QWN0aW9uLCB1c2VyRXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIGlzRGVmYXVsdEFjdGlvbihhY3Rpb246IElVc2VyRXZlbnRBY3Rpb24pOiBib29sZWFuIHtcbiAgICByZXR1cm4gYWN0aW9uICYmIGFjdGlvbi5kZWZhdWx0IHx8IGZhbHNlO1xuICB9XG5cbiAgbWFya0FzUmVhZChldmVudDogRXZlbnQsIHVzZXJFdmVudDogRSkge1xuICAgIGlmICh1c2VyRXZlbnQ/LnJlYWREYXRlKSByZXR1cm47XG4gICAgdGhpcy5yZWFkRXZlbnQ/LmVtaXQodXNlckV2ZW50KTtcbiAgfVxuXG4gIG1hcmtBbGxBc1JlYWQoZXZlbnQ6IEV2ZW50KSB7XG4gICAgY29uc3QgdW5yZWFkVXNlckV2ZW50cyA9ICh0aGlzLiRpdGVtcy52YWx1ZSB8fCBbXSkuZmlsdGVyKHZhbHVlID0+ICF2YWx1ZS5yZWFkRGF0ZSk7XG4gICAgaWYgKCF1bnJlYWRVc2VyRXZlbnRzLmxlbmd0aCkgcmV0dXJuO1xuICAgIHRoaXMucmVhZEV2ZW50cz8uZW1pdCh1bnJlYWRVc2VyRXZlbnRzKTtcbiAgfVxuXG4gIGFzeW5jIGV4ZWN1dGVBY3Rpb24oXG4gICAgICBldmVudDogRXZlbnQsXG4gICAgICBhY3Rpb246IElVc2VyRXZlbnRBY3Rpb24sXG4gICAgICB1c2VyRXZlbnQ6IElVc2VyRXZlbnQ8YW55Pikge1xuXG4gICAgaWYgKGV2ZW50Py5kZWZhdWx0UHJldmVudGVkKSByZXR1cm47IC8vIFNraXAgaWYgcHJldmVudGVkXG5cbiAgICAvLyBEaXNhYmxlIGRlZmF1bHQgYWN0aW9uICguZS5nIGF2b2lkIHRvIGNhbGwgY2xpY2soKSBmdW5jdGlvbilcbiAgICBpZiAoZXZlbnQpIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyBFeGVjdXRlIHRoZW4gY2xvc2UgcG9wb3ZlclxuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXMgPSBhY3Rpb24uZXhlY3V0ZUFjdGlvbih1c2VyRXZlbnQpO1xuICAgICAgdGhpcy5kaXNtaXNzKCk7XG4gICAgICBpZiAocmVzIGluc3RhbmNlb2YgUHJvbWlzZSkgYXdhaXQgcmVzO1xuICAgIH1cbiAgICBjYXRjaChlcnIpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKTtcbiAgICB9XG4gIH1cblxuICBkaXNtaXNzKCkge1xuICAgIHRoaXMucG9wb3ZlckNvbnRyb2xsZXIuZGlzbWlzcygpO1xuICAgIC8vIFJlc2V0IGNvdW50ZXIgKG5lZWQgaWYgZXZlbnQgaGFzIGJlZW4gcmVjZWl2ZWQgd2hpbGUgcG9wb3ZlciBpZiBvcGVuKVxuICAgIHRoaXMudXNlckV2ZW50U2VydmljZS5yZXNldENvdW50KCk7XG4gIH1cblxuICBhc3luYyBmZXRjaE1vcmUoZXZlbnQ/OiBDdXN0b21FdmVudCAmIHsgdGFyZ2V0PzogRXZlbnRUYXJnZXQgJiB7IGNvbXBsZXRlPzogKCkgPT4gdm9pZCB9fSkge1xuICAgIGlmICghdGhpcy5fZmV0Y2hNb3JlRm4gfHwgdGhpcy5mZXRjaGluZ01vcmUpIHJldHVybjtcblxuICAgIGNvbnNvbGUuZGVidWcoJ1t1c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi1saXN0XSBGZXRjaGluZyBtb3JlIG5vdGlmaWNhdGlvbnMuLi4nLCBldmVudCk7XG4gICAgdGhpcy5mZXRjaGluZ01vcmUgPSB0cnVlO1xuICAgIGNvbnN0IGZldGNoTW9yZUZuID0gIHRoaXMuX2ZldGNoTW9yZUZuO1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGZldGNoTW9yZUZuKCk7XG4gICAgICBsZXQgZGF0YSA9IFtcbiAgICAgICAgLi4uKHRoaXMuJGl0ZW1zLnZhbHVlIHx8IFtdKSxcbiAgICAgICAgLi4ucmVzdWx0LmRhdGFcbiAgICAgIF07XG5cbiAgICAgIC8vIFJlbW92ZSBkdXBsaWNhdGlvbiAoZS5nLiB3aGVuIG5ldyB1c2VyIGV2ZW50IHdhcyBhZGRlZCBieSBzdWJzY3JpcHRpb24pXG4gICAgICBkYXRhID0gcmVtb3ZlRHVwbGljYXRlc0Zyb21BcnJheShkYXRhLCAnaWQnKTtcblxuICAgICAgLy8gZmV0Y2ggbW9yZSBjaGFuZ2VzIChlLmcuIGlmIHdhdGNoQWxsIG9ic2VydmFibGUgYXMgYmVlbiByZWZyZXNoZWQpXG4gICAgICBpZiAoZmV0Y2hNb3JlRm4gIT09IHRoaXMuX2ZldGNoTW9yZUZuKSByZXR1cm47IC8vIFNraXBcblxuICAgICAgdGhpcy4kaXRlbXMubmV4dChkYXRhKTtcbiAgICAgIHRoaXMuJGl0ZW1Db3VudC5uZXh0KHJlc3VsdC50b3RhbCB8fCByZXN1bHQuZGF0YT8ubGVuZ3RoIHx8IDApO1xuICAgICAgdGhpcy5fZmV0Y2hNb3JlRm4gPSByZXN1bHQuZmV0Y2hNb3JlO1xuXG4gICAgICAvLyBVcGRhdGUgdGhlIHBhZ2Ugc2l6ZSwgdG8ga2VlcCBzYW1lIHNjcm9sbCBoZWlnaHQsIGFmdGVyIHRoZSBuZXh0IHJlZnJlc2hcbiAgICAgIHRoaXMucGFnZVNpemUgPSBNYXRoLm1heCh0aGlzLnBhZ2VTaXplLCBkYXRhLmxlbmd0aCk7XG4gICAgfVxuICAgIGNhdGNoKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgdGhpcy5fZmV0Y2hNb3JlRm4gPSB1bmRlZmluZWQ7IC8vIEZvcmdldCB0aGUgZnVuY3Rpb25cbiAgICB9XG4gICAgZmluYWxseSB7XG4gICAgICB0aGlzLm1hcmtGb3JDaGVjaygpO1xuICAgICAgdGhpcy5mZXRjaGluZ01vcmUgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogRSkge1xuICAgIHJldHVybiBpdGVtLmlkO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGluaXRJbmZpbml0ZVNjcm9sbCh0aHJlc2hvbGQ/OiBzdHJpbmcpIHtcbiAgICBjb25zb2xlLmRlYnVnKCdbdXNlci1ldmVudC1ub3RpZmljYXRpb24tbGlzdF0gSW5pdCBpbmZpbml0ZSBsb29wJyk7XG4gICAgaWYgKHRoaXMuX2ZldGNoTW9yZVN1YnNjcmlwdGlvbikgdGhpcy5fZmV0Y2hNb3JlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aHJlc2hvbGQgPSB0aHJlc2hvbGQgfHwgKHRoaXMubW9iaWxlID8gJzE1JScgOiAnMiUnKTtcbiAgICBhd2FpdCB3YWl0Rm9yKCgpID0+ICEhdGhpcy5pb25Db250ZW50LCB7ZHVlVGltZTogMjUwLCB0aW1lb3V0OiAxMDAwfSk7XG4gICAgY29uc3QgcGFuZWwgPSBhd2FpdCB0aGlzLmlvbkNvbnRlbnQuZ2V0U2Nyb2xsRWxlbWVudCgpO1xuXG4gICAgLy8gVHJpZ2dlciBmZXRjaCBtb3JlLCBlbmQgZW5kIHNjcm9sbCByZWFjaGVkXG4gICAgdGhpcy5fZmV0Y2hNb3JlU3Vic2NyaXB0aW9uID0gdGhpcy4kaXRlbXMucGlwZShcbiAgICAgICAgZGVib3VuY2VUaW1lKDI1MCksXG4gICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLmNhbkZldGNoTW9yZSksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiBmcm9tU2Nyb2xsRW5kRXZlbnQocGFuZWwsIHRocmVzaG9sZCwgMjUwIC8qZm9yY2UgdG8gY2hlY2sgd2hlbiBubyBzY3JvbGxiYXIgLSBlLmcuIGluIGxhcmdlIHNjcmVlbiovKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5mZXRjaE1vcmUoKSk7XG5cbiAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZCh0aGlzLl9mZXRjaE1vcmVTdWJzY3JpcHRpb24pO1xuICB9XG5cbiAgcHJvdGVjdGVkIG1hcmtGb3JDaGVjaygpIHtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG59XG4iLCI8aW9uLWNvbnRlbnQ+XG4gIDxpb24tbGlzdCBjbGFzcz1cImlvbi1saXN0LXBvcG92ZXJcIj5cblxuICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLWxpc3QtaGVhZGVyIGNvbHVtblwiPlxuICAgICAgPGlvbi1jb2w+XG4gICAgICAgIDxpb24tbGFiZWw+e3t0aXRsZUkxOG4gfCB0cmFuc2xhdGV9fTwvaW9uLWxhYmVsPlxuICAgICAgPC9pb24tY29sPlxuICAgICAgPGlvbi1jb2wgY2xhc3M9XCJ0b3AtYWN0aW9uXCIgKm5nSWY9XCIkaXRlbXN8YXN5bmN8aXNOb3RFbXB0eUFycmF5XCI+XG4gICAgICAgIDxpb24tdGV4dCBjb2xvcj1cInByaW1hcnlcIj5cbiAgICAgICAgICA8YSAoY2xpY2spPVwibWFya0FsbEFzUmVhZCgkZXZlbnQpXCI+e3snU09DSUFMLlVTRVJfRVZFTlQuTk9USUZJQ0FUSU9OLlJFQURfQUxMJyB8IHRyYW5zbGF0ZX19PC9hPlxuICAgICAgICA8L2lvbi10ZXh0PlxuICAgICAgPC9pb24tY29sPlxuICAgIDwvaW9uLXJvdz5cblxuICAgIDxpb24taXRlbVxuICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgJGl0ZW1zIHwgYXN5bmM7IHRyYWNrQnk6IHRyYWNrQnlGbjsgbGFzdCBhcyBsYXN0XCJcbiAgICAgIFtsaW5lc109XCJsYXN0ID8gJ25vbmUnIDogdW5kZWZpbmVkXCJcbiAgICAgIFtjbGFzcy51bnJlYWRdPVwiIWl0ZW0ucmVhZERhdGVcIlxuICAgICAgW2NsYXNzLnRhcHBhYmxlXT1cIml0ZW0uYWN0aW9uc3xhcnJheUZpbHRlcjppc0RlZmF1bHRBY3Rpb258aXNOb3RFbXB0eUFycmF5XCJcbiAgICAgIChjbGljayk9XCJjbGljaygkZXZlbnQsIGl0ZW0pXCI+XG5cbiAgICAgIDxpb24tYXZhdGFyIHNsb3Q9XCJzdGFydFwiPlxuXG4gICAgICAgIDxpbWcgKm5nSWY9XCJpdGVtLmF2YXRhcjsgZWxzZSBhdmF0YXJJY29uXCIgc3JjPVwie3sgaXRlbS5hdmF0YXIgfX1cIj5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2F2YXRhckljb24+XG4gICAgICAgICAgPGFwcC1pY29uXG4gICAgICAgICAgICAqbmdJZj1cIml0ZW0uYXZhdGFySWNvbjsgZWxzZSBnZW5lcmF0ZUljb25cIlxuICAgICAgICAgICAgW3JlZl09XCJpdGVtLmF2YXRhckljb25cIlxuICAgICAgICAgICAgaGVpZ2h0PVwiNDBcIlxuICAgICAgICAgICAgd2lkdGg9XCI0MFwiXG4gICAgICAgICAgPjwvYXBwLWljb24+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNnZW5lcmF0ZUljb24+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF2YXRhclwiICpuZ0lmPVwiaXRlbS5hdmF0YXJKZGVudGljb25cIj5cbiAgICAgICAgICAgIDxzdmcgd2lkdGg9XCI0MFwiIHdpZHRoPVwiNDBcIiBbZGF0YS1qZGVudGljb24tdmFsdWVdPVwiaXRlbS5hdmF0YXJKZGVudGljb25cIj48L3N2Zz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgPC9pb24tYXZhdGFyPlxuXG4gICAgICA8aW9uLWdyaWQgY2xhc3M9XCJpb24tbm8tbWFyZ2luIGlvbi1uby1wYWRkaW5nIG1lc3NhZ2VcIj5cbiAgICAgICAgPGlvbi1yb3c+XG4gICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjEyXCI+XG4gICAgICAgICAgICA8cCBbY2xhc3MudW5yZWFkXT1cIiFpdGVtLnJlYWREYXRlXCIgW2lubmVySFRNTF09XCJpdGVtLm1lc3NhZ2VcIj48L3A+XG4gICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8L2lvbi1yb3c+XG5cbiAgICAgICAgPCEtLSBkYXRlIC0tPlxuICAgICAgICA8aW9uLXJvdz5cbiAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIj5cbiAgICAgICAgICAgIDxhcHAtaWNvblxuICAgICAgICAgICAgICAqbmdJZj1cIml0ZW0uaWNvblwiXG4gICAgICAgICAgICAgIFtyZWZdPVwiaXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgaGVpZ2h0PVwiMTZcIlxuICAgICAgICAgICAgICB3aWR0aD1cIjE2XCJcbiAgICAgICAgICAgICAgc3R5bGU9XCJ2ZXJ0aWNhbC1hbGlnbjogc3ViOyBtYXJnaW4tcmlnaHQ6IDNweFwiXG4gICAgICAgICAgICA+PC9hcHAtaWNvbj5cbiAgICAgICAgICAgIDxzbWFsbD5cbiAgICAgICAgICAgICAgPHNwYW4+e3tpdGVtLmNyZWF0aW9uRGF0ZXxkYXRlRnJvbU5vd319PC9zcGFuPlxuICAgICAgICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiBncmF5XCI+e3sgJyB8ICcgKyAoaXRlbS5jcmVhdGlvbkRhdGV8ZGF0ZUZvcm1hdDp7dGltZTp0cnVlfSkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgPC9pb24tcm93PlxuXG4gICAgICAgIDwhLS0gYWN0aW9ucyAtLT5cbiAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJpdGVtLmFjdGlvbnN8aXNOb3RFbXB0eUFycmF5XCI+XG4gICAgICAgICAgPGlvbi1jb2w+PC9pb24tY29sPlxuICAgICAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgaXRlbS5hY3Rpb25zXCI+XG4gICAgICAgICAgICAgIDxhICpuZ0lmPVwiIWFjdGlvbi5kZWZhdWx0XCIgY2xhc3M9XCJhY3Rpb25cIiAoY2xpY2spPVwiZXhlY3V0ZUFjdGlvbigkZXZlbnQsIGFjdGlvbiwgaXRlbSlcIiBbdGl0bGVdPVwiKGFjdGlvbi50aXRsZSB8fCBhY3Rpb24ubmFtZSkgfHRyYW5zbGF0ZVwiPlxuICAgICAgICAgICAgICAgIDxhcHAtaWNvbiAqbmdJZj1cImFjdGlvbi5pY29uUmVmXCIgc2xvdD1cInN0YXJ0XCIgaGVpZ2h0PVwiMjBcIiB3aWR0aD1cIjIwXCIgW3JlZl09XCJhY3Rpb24uaWNvblJlZlwiPjwvYXBwLWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4+e3sgYWN0aW9uLm5hbWUgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgPC9pb24tcm93PlxuXG4gICAgICA8L2lvbi1ncmlkPlxuXG4gICAgICA8bWF0LWljb24gc2xvdD1cImVuZFwiICpuZ0lmPVwiaXRlbS5hY3Rpb25zfGFycmF5RmlsdGVyOiBpc0RlZmF1bHRBY3Rpb258aXNOb3RFbXB0eUFycmF5XCI+Y2hldnJvbl9yaWdodDwvbWF0LWljb24+XG4gICAgPC9pb24taXRlbT5cblxuICAgIDwhLS0gbG9hZGluZyAtLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiISgkaXRlbXN8YXN5bmMpOyBlbHNlIG5vdExvYWRpbmdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nSXRlbVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICNub3RMb2FkaW5nPlxuICAgICAgPCEtLSBubyByZXN1bHQgLS0+XG4gICAgICA8aW9uLWl0ZW0gKm5nSWY9XCIkaXRlbXN8YXN5bmN8aXNFbXB0eUFycmF5XCIgbGluZXM9XCJub25lXCI+XG4gICAgICAgIDxpb24tdGV4dCBjb2xvcj1cImRhcmtcIiBjbGFzcz1cInRleHQtaXRhbGljXCI+e3snU09DSUFMLlVTRVJfRVZFTlQuTk9USUZJQ0FUSU9OLkVNUFRZJyB8IHRyYW5zbGF0ZX19PC9pb24tdGV4dD5cbiAgICAgIDwvaW9uLWl0ZW0+XG5cbiAgICAgIDwhLS0gRmV0Y2hpbmcgbW9yZSAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmZXRjaGluZ01vcmU7IGVsc2UgaW5maW5pdGVMb29wXCIgbGluZXM9XCJub25lXCIgZGlzYWJsZWQ+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJsb2FkaW5nSXRlbVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgIDwhLS0gSW5maW5pdGUgbG9vcCAtLT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjaW5maW5pdGVMb29wPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY2FuRmV0Y2hNb3JlXCIgbGluZXM9XCJub25lXCIgZGlzYWJsZWRcbiAgICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJsb2FkaW5nSXRlbVwiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDwhLS0gZm9vdGVyIC0tPlxuICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLWxpc3QtZm9vdGVyIGNvbHVtblwiPlxuICAgICAgPGlvbi1jb2w+XG4gICAgICAgIDxpb24tdGV4dCAqbmdJZj1cIiRpdGVtQ291bnR8YXN5bmM7IGxldCBjb3VudFwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImlvbi1mbG9hdC1lbmQgaW9uLXBhZGRpbmctZW5kXCI+PGk+e3snQ09NTU9OLlJFU1VMVF9DT1VOVCd8dHJhbnNsYXRlOiB7Y291bnQ6IGNvdW50fSB9fTwvaT48L2lvbi10ZXh0PlxuICAgICAgPC9pb24tY29sPlxuICAgIDwvaW9uLXJvdz5cblxuICA8L2lvbi1saXN0PlxuPC9pb24tY29udGVudD5cblxuPCEtLSBsb2FkaW5nIC0tPlxuPG5nLXRlbXBsYXRlICNsb2FkaW5nSXRlbT5cbiAgPGlvbi1pdGVtIGxpbmVzPVwibm9uZVwiIGRpc2FibGVkPlxuICAgIDxpb24tc2tlbGV0b24tdGV4dCBbYW5pbWF0ZWRdPVwidHJ1ZVwiIHN0eWxlPVwid2lkdGg6IDEwMCVcIj48L2lvbi1za2VsZXRvbi10ZXh0PlxuICA8L2lvbi1pdGVtPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
212
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC1ub3RpZmljYXRpb24ubGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvbm90aWZpY2F0aW9uL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmxpc3QudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L25vdGlmaWNhdGlvbi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5saXN0Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFxQixTQUFTLEVBQWdCLE1BQU0sRUFBRSxLQUFLLEVBQXFCLFFBQVEsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUxTCxPQUFPLEVBQUMsZUFBZSxFQUFFLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUMsVUFBVSxFQUFFLE9BQU8sRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQW9CLHNCQUFzQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHaEYsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDcEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDMUQsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRXBELE9BQU8sRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7Ozs7QUFtQnJGLE1BQU0sT0FBTyx5QkFBeUI7SUEwQ3BDLFlBQ1ksRUFBcUIsRUFDckIsaUJBQW9DLEVBQ3hCLFFBQThCLEVBQ0QsZ0JBQTZEO1FBSHRHLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBQ3JCLHNCQUFpQixH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NkhBOzJGRC9GYSx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBQ0Usa0NBQWtDLG1CQUczQix1QkFBdUIsQ0FBQyxNQUFNOzswQkErQzVDLFFBQVE7OzBCQUNSLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsc0JBQXNCOzRDQS9CbkMsS0FBSztzQkFBYixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBRU8sUUFBUTtzQkFBcEIsS0FBSztnQkFRSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBRWdCLFVBQVU7c0JBQWhDLFNBQVM7dUJBQUMsVUFBVTtnQkFDRSxRQUFRO3NCQUE5QixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPcHRpb25hbCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7SVVzZXJFdmVudCwgSVVzZXJFdmVudEZpbHRlciwgSVVzZXJFdmVudEFjdGlvbn0gZnJvbSAnLi4vdXNlci1ldmVudC5tb2RlbCc7XG5pbXBvcnQge0JlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7SW9uQ29udGVudCwgSW9uSXRlbSwgUG9wb3ZlckNvbnRyb2xsZXJ9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7SVVzZXJFdmVudFNlcnZpY2UsIEFQUF9VU0VSX0VWRU5UX1NFUlZJQ0V9IGZyb20gJy4uL3VzZXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQge0xvY2FsU2V0dGluZ3NTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9jb3JlL3NlcnZpY2VzL2xvY2FsLXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHtGZXRjaE1vcmVGbiwgTG9hZFJlc3VsdH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL3NlcnZpY2VzL2VudGl0eS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7cmVtb3ZlRHVwbGljYXRlc0Zyb21BcnJheX0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQge2Zyb21TY3JvbGxFbmRFdmVudH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2V2ZW50cyc7XG5pbXBvcnQge3dhaXRGb3J9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9vYnNlcnZhYmxlcyc7XG5pbXBvcnQge1NvcnREaXJlY3Rpb259IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHtkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIHN3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3RPcHRpb25zPFxuICBFIGV4dGVuZHMgSVVzZXJFdmVudDxhbnk+ID0gSVVzZXJFdmVudDxhbnk+LFxuICBGIGV4dGVuZHMgSVVzZXJFdmVudEZpbHRlcjxhbnk+ID0gSVVzZXJFdmVudEZpbHRlcjxhbnk+XG4gID4ge1xuICBkZWJ1Zz86IGJvb2xlYW47XG4gIHRpdGxlSTE4bj86IHN0cmluZztcbiAgcmVhZEV2ZW50PzogRXZlbnRFbWl0dGVyPEU+O1xuICByZWFkRXZlbnRzPzogRXZlbnRFbWl0dGVyPEVbXT47XG4gIGZpbHRlcj86IFBhcnRpYWw8Rj47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC11c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmxpc3QuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmxpc3Quc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBVc2VyRXZlbnROb3RpZmljYXRpb25MaXN0PFxuICBFIGV4dGVuZHMgSVVzZXJFdmVudDxhbnk+ID0gSVVzZXJFdmVudDxhbnk+LFxuICBGIGV4dGVuZHMgSVVzZXJFdmVudEZpbHRlcjxhbnk+ID0gSVVzZXJFdmVudEZpbHRlcjxhbnk+XG4gID5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgVXNlckV2ZW50Tm90aWZpY2F0aW9uTGlzdE9wdGlvbnM8RSwgRj4ge1xuXG4gIHByb3RlY3RlZCBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJvdGVjdGVkIF9mZXRjaE1vcmVGbjogRmV0Y2hNb3JlRm48TG9hZFJlc3VsdDxFPj47XG4gIHByb3RlY3RlZCBfZmV0Y2hNb3JlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByb3RlY3RlZCBfJHBhZ2VTaXplID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDIwKTtcblxuICBmZXRjaGluZ01vcmUgPSBmYWxzZTtcbiAgJGl0ZW1zID0gbmV3IEJlaGF2aW9yU3ViamVjdDxFW10+KHVuZGVmaW5lZCk7XG4gICRpdGVtQ291bnQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4odW5kZWZpbmVkKTtcblxuICBASW5wdXQoKSBkZWJ1ZyA9IGZhbHNlO1xuICBASW5wdXQoKSBtb2JpbGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIHRpdGxlSTE4bjogc3RyaW5nO1xuICBASW5wdXQoKSBzb3J0QnkgPSAnY3JlYXRpb25EYXRlJztcbiAgQElucHV0KCkgc29ydERpcmVjdGlvbjogU29ydERpcmVjdGlvbiA9ICdkZXNjJztcbiAgQElucHV0KCkgZmlsdGVyOiBQYXJ0aWFsPEY+O1xuICBASW5wdXQoKSBlbmFibGVJbmZpbml0ZVNjcm9sbCA9IHRydWU7XG5cbiAgQElucHV0KCkgc2V0IHBhZ2VTaXplKHZhbHVlOiBudW1iZXIpIHtcbiAgICBpZiAodmFsdWUgPiAwICYmIHZhbHVlICE9PSB0aGlzLl8kcGFnZVNpemUudmFsdWUpIHRoaXMuXyRwYWdlU2l6ZS5uZXh0KHZhbHVlKTtcbiAgfVxuXG4gIGdldCBwYWdlU2l6ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl8kcGFnZVNpemUudmFsdWU7XG4gIH1cblxuICBAT3V0cHV0KCkgcmVhZEV2ZW50OiBFdmVudEVtaXR0ZXI8RT47XG4gIEBPdXRwdXQoKSByZWFkRXZlbnRzOiBFdmVudEVtaXR0ZXI8RVtdPjtcblxuICBAVmlld0NoaWxkKElvbkNvbnRlbnQpIGlvbkNvbnRlbnQ6IElvbkNvbnRlbnQ7XG4gIEBWaWV3Q2hpbGRyZW4oSW9uSXRlbSkgaW9uSXRlbXM6IFF1ZXJ5TGlzdDxJb25JdGVtPjtcblxuXG4gIGdldCBjYW5GZXRjaE1vcmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlSW5maW5pdGVTY3JvbGwgJiYgISF0aGlzLl9mZXRjaE1vcmVGbjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByb3RlY3RlZCBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJvdGVjdGVkIHBvcG92ZXJDb250cm9sbGVyOiBQb3BvdmVyQ29udHJvbGxlcixcbiAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgc2V0dGluZ3M6IExvY2FsU2V0dGluZ3NTZXJ2aWNlLFxuICAgIEBPcHRpb25hbCgpIEBJbmplY3QoQVBQX1VTRVJfRVZFTlRfU0VSVklDRSkgcHVibGljIHVzZXJFdmVudFNlcnZpY2U6IElVc2VyRXZlbnRTZXJ2aWNlPEUsIElVc2VyRXZlbnRGaWx0ZXI8YW55Pj5cbiAgKSB7XG4gICAgdGhpcy5tb2JpbGUgPSB0aGlzLnNldHRpbmdzPy5tb2JpbGUgfHwgZmFsc2U7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgIC8vIFdhdGNoIGFsbCB1c2VyIGV2ZW50c1xuICAgIGlmICh0aGlzLnVzZXJFdmVudFNlcnZpY2UpIHtcbiAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgICB0aGlzLl8kcGFnZVNpemUucGlwZShcbiAgICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgICAgIHN3aXRjaE1hcChwYWdlU2l6ZSA9PiB0aGlzLnVzZXJFdmVudFNlcnZpY2Uud2F0Y2hBbGwoMCwgcGFnZVNpemUsIHRoaXMuc29ydEJ5LCB0aGlzLnNvcnREaXJlY3Rpb24sIHRoaXMuZmlsdGVyKSlcbiAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUocmVzdWx0ID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGBbdXNlci1ldmVudC1ub3RpZmljYXRpb24tbGlzdF0gUmVjZWl2aW5nICR7cmVzdWx0LnRvdGFsfSB1c2VyIGV2ZW50c2AsIHJlc3VsdC5kYXRhKTtcbiAgICAgICAgICAgIHRoaXMuJGl0ZW1zLm5leHQocmVzdWx0LmRhdGEpO1xuICAgICAgICAgICAgdGhpcy4kaXRlbUNvdW50Lm5leHQocmVzdWx0LnRvdGFsIHx8IHJlc3VsdC5kYXRhPy5sZW5ndGggfHwgMCk7XG4gICAgICAgICAgICB0aGlzLl9mZXRjaE1vcmVGbiA9IHJlc3VsdC5mZXRjaE1vcmU7XG4gICAgICAgICAgICB0aGlzLmZldGNoaW5nTW9yZSA9IGZhbHNlOyAvLyBBbGxvdyB0byByZWZldGNoIG1vcmVcbiAgICAgICAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIC8vIExpc3RlbiBjaGFuZ2VzXG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgICAgdGhpcy51c2VyRXZlbnRTZXJ2aWNlLmxpc3RlbkFsbENoYW5nZXModGhpcy5maWx0ZXIpXG4gICAgICAgICAgLnN1YnNjcmliZShkYXRhID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRlYnVnKSBjb25zb2xlLmRlYnVnKGBbdXNlci1ldmVudC1ub3RpZmljYXRpb24tbGlzdF0gUmVjZWl2aW5nICR7ZGF0YS5sZW5ndGh9IG5ldyB1c2VyIGV2ZW50cyAoYnkgV1MpYCwgZGF0YSk7XG4gICAgICAgICAgfSlcbiAgICAgICk7XG5cbiAgICAgIGlmICh0aGlzLmVuYWJsZUluZmluaXRlU2Nyb2xsKSB0aGlzLmluaXRJbmZpbml0ZVNjcm9sbCgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLiRpdGVtcy5jb21wbGV0ZSgpO1xuICAgIHRoaXMuJGl0ZW1Db3VudC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgY2xpY2soZXZlbnQ6IEV2ZW50LCB1c2VyRXZlbnQ6IEUpIHtcbiAgICBpZiAoIXVzZXJFdmVudCkgcmV0dXJuIC8vIFNraXBcblxuICAgIC8vIE1hcmtBc1JlYWRcbiAgICB0aGlzLm1hcmtBc1JlYWQoZXZlbnQsIHVzZXJFdmVudCk7XG5cbiAgICAvLyBHZXQgdGhlIGRlZmF1bHQgYWN0aW9uIChpZiBhbnkpXG4gICAgY29uc3QgZGVmYXVsdEFjdGlvbiA9ICh1c2VyRXZlbnQ/LmFjdGlvbnMgfHwgW10pLmZpbmQoYSA9PiBhLmRlZmF1bHQpO1xuXG4gICAgaWYgKGRlZmF1bHRBY3Rpb24pIHtcbiAgICAgICB0aGlzLmV4ZWN1dGVBY3Rpb24oZXZlbnQsIGRlZmF1bHRBY3Rpb24sIHVzZXJFdmVudCk7XG4gICAgfVxuICB9XG5cbiAgaXNEZWZhdWx0QWN0aW9uKGFjdGlvbjogSVVzZXJFdmVudEFjdGlvbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBhY3Rpb24gJiYgYWN0aW9uLmRlZmF1bHQgfHwgZmFsc2U7XG4gIH1cblxuICBtYXJrQXNSZWFkKGV2ZW50OiBFdmVudCwgdXNlckV2ZW50OiBFKSB7XG4gICAgaWYgKHVzZXJFdmVudD8ucmVhZERhdGUpIHJldHVybjtcbiAgICB0aGlzLnJlYWRFdmVudD8uZW1pdCh1c2VyRXZlbnQpO1xuICB9XG5cbiAgbWFya0FsbEFzUmVhZChldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCB1bnJlYWRVc2VyRXZlbnRzID0gKHRoaXMuJGl0ZW1zLnZhbHVlIHx8IFtdKS5maWx0ZXIodmFsdWUgPT4gIXZhbHVlLnJlYWREYXRlKTtcbiAgICBpZiAoIXVucmVhZFVzZXJFdmVudHMubGVuZ3RoKSByZXR1cm47XG4gICAgdGhpcy5yZWFkRXZlbnRzPy5lbWl0KHVucmVhZFVzZXJFdmVudHMpO1xuICB9XG5cbiAgYXN5bmMgZXhlY3V0ZUFjdGlvbihcbiAgICAgIGV2ZW50OiBFdmVudCxcbiAgICAgIGFjdGlvbjogSVVzZXJFdmVudEFjdGlvbixcbiAgICAgIHVzZXJFdmVudDogSVVzZXJFdmVudDxhbnk+KSB7XG5cbiAgICBpZiAoZXZlbnQ/LmRlZmF1bHRQcmV2ZW50ZWQpIHJldHVybjsgLy8gU2tpcCBpZiBwcmV2ZW50ZWRcblxuICAgIC8vIERpc2FibGUgZGVmYXVsdCBhY3Rpb24gKC5lLmcgYXZvaWQgdG8gY2FsbCBjbGljaygpIGZ1bmN0aW9uKVxuICAgIGlmIChldmVudCkgZXZlbnQucHJldmVudERlZmF1bHQoKTtcblxuICAgIC8vIEV4ZWN1dGUgdGhlbiBjbG9zZSBwb3BvdmVyXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlcyA9IGFjdGlvbi5leGVjdXRlQWN0aW9uKHVzZXJFdmVudCk7XG4gICAgICB0aGlzLmRpc21pc3MoKTtcbiAgICAgIGlmIChyZXMgaW5zdGFuY2VvZiBQcm9taXNlKSBhd2FpdCByZXM7XG4gICAgfVxuICAgIGNhdGNoKGVycikge1xuICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgIH1cbiAgfVxuXG4gIGRpc21pc3MoKSB7XG4gICAgdGhpcy5wb3BvdmVyQ29udHJvbGxlci5kaXNtaXNzKCk7XG4gICAgLy8gUmVzZXQgY291bnRlciAobmVlZCBpZiBldmVudCBoYXMgYmVlbiByZWNlaXZlZCB3aGlsZSBwb3BvdmVyIGlmIG9wZW4pXG4gICAgdGhpcy51c2VyRXZlbnRTZXJ2aWNlLnJlc2V0Q291bnQoKTtcbiAgfVxuXG4gIGFzeW5jIGZldGNoTW9yZShldmVudD86IEN1c3RvbUV2ZW50ICYgeyB0YXJnZXQ/OiBFdmVudFRhcmdldCAmIHsgY29tcGxldGU/OiAoKSA9PiB2b2lkIH19KSB7XG4gICAgaWYgKCF0aGlzLl9mZXRjaE1vcmVGbiB8fCB0aGlzLmZldGNoaW5nTW9yZSkgcmV0dXJuO1xuXG4gICAgY29uc29sZS5kZWJ1ZygnW3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLWxpc3RdIEZldGNoaW5nIG1vcmUgbm90aWZpY2F0aW9ucy4uLicsIGV2ZW50KTtcbiAgICB0aGlzLmZldGNoaW5nTW9yZSA9IHRydWU7XG4gICAgY29uc3QgZmV0Y2hNb3JlRm4gPSAgdGhpcy5fZmV0Y2hNb3JlRm47XG5cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmV0Y2hNb3JlRm4oKTtcbiAgICAgIGxldCBkYXRhID0gW1xuICAgICAgICAuLi4odGhpcy4kaXRlbXMudmFsdWUgfHwgW10pLFxuICAgICAgICAuLi5yZXN1bHQuZGF0YVxuICAgICAgXTtcblxuICAgICAgLy8gUmVtb3ZlIGR1cGxpY2F0aW9uIChlLmcuIHdoZW4gbmV3IHVzZXIgZXZlbnQgd2FzIGFkZGVkIGJ5IHN1YnNjcmlwdGlvbilcbiAgICAgIGRhdGEgPSByZW1vdmVEdXBsaWNhdGVzRnJvbUFycmF5KGRhdGEsICdpZCcpO1xuXG4gICAgICAvLyBmZXRjaCBtb3JlIGNoYW5nZXMgKGUuZy4gaWYgd2F0Y2hBbGwgb2JzZXJ2YWJsZSBhcyBiZWVuIHJlZnJlc2hlZClcbiAgICAgIGlmIChmZXRjaE1vcmVGbiAhPT0gdGhpcy5fZmV0Y2hNb3JlRm4pIHJldHVybjsgLy8gU2tpcFxuXG4gICAgICB0aGlzLiRpdGVtcy5uZXh0KGRhdGEpO1xuICAgICAgdGhpcy4kaXRlbUNvdW50Lm5leHQocmVzdWx0LnRvdGFsIHx8IHJlc3VsdC5kYXRhPy5sZW5ndGggfHwgMCk7XG4gICAgICB0aGlzLl9mZXRjaE1vcmVGbiA9IHJlc3VsdC5mZXRjaE1vcmU7XG5cbiAgICAgIC8vIFVwZGF0ZSB0aGUgcGFnZSBzaXplLCB0byBrZWVwIHNhbWUgc2Nyb2xsIGhlaWdodCwgYWZ0ZXIgdGhlIG5leHQgcmVmcmVzaFxuICAgICAgdGhpcy5wYWdlU2l6ZSA9IE1hdGgubWF4KHRoaXMucGFnZVNpemUsIGRhdGEubGVuZ3RoKTtcbiAgICB9XG4gICAgY2F0Y2goZXJyKSB7XG4gICAgICBjb25zb2xlLmVycm9yKGVycik7XG4gICAgICB0aGlzLl9mZXRjaE1vcmVGbiA9IHVuZGVmaW5lZDsgLy8gRm9yZ2V0IHRoZSBmdW5jdGlvblxuICAgIH1cbiAgICBmaW5hbGx5IHtcbiAgICAgIHRoaXMubWFya0ZvckNoZWNrKCk7XG4gICAgICB0aGlzLmZldGNoaW5nTW9yZSA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBFKSB7XG4gICAgcmV0dXJuIGl0ZW0uaWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgYXN5bmMgaW5pdEluZmluaXRlU2Nyb2xsKHRocmVzaG9sZD86IHN0cmluZykge1xuICAgIGNvbnNvbGUuZGVidWcoJ1t1c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi1saXN0XSBJbml0IGluZmluaXRlIGxvb3AnKTtcbiAgICBpZiAodGhpcy5fZmV0Y2hNb3JlU3Vic2NyaXB0aW9uKSB0aGlzLl9mZXRjaE1vcmVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblxuICAgIHRocmVzaG9sZCA9IHRocmVzaG9sZCB8fCAodGhpcy5tb2JpbGUgPyAnMTUlJyA6ICcyJScpO1xuICAgIGF3YWl0IHdhaXRGb3IoKCkgPT4gISF0aGlzLmlvbkNvbnRlbnQsIHtkdWVUaW1lOiAyNTAsIHRpbWVvdXQ6IDEwMDB9KTtcbiAgICBjb25zdCBwYW5lbCA9IGF3YWl0IHRoaXMuaW9uQ29udGVudC5nZXRTY3JvbGxFbGVtZW50KCk7XG5cbiAgICAvLyBUcmlnZ2VyIGZldGNoIG1vcmUsIGVuZCBlbmQgc2Nyb2xsIHJlYWNoZWRcbiAgICB0aGlzLl9mZXRjaE1vcmVTdWJzY3JpcHRpb24gPSB0aGlzLiRpdGVtcy5waXBlKFxuICAgICAgICBkZWJvdW5jZVRpbWUoMjUwKSxcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuY2FuRmV0Y2hNb3JlKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IGZyb21TY3JvbGxFbmRFdmVudChwYW5lbCwgdGhyZXNob2xkLCAyNTAgLypmb3JjZSB0byBjaGVjayB3aGVuIG5vIHNjcm9sbGJhciAtIGUuZy4gaW4gbGFyZ2Ugc2NyZWVuKi8pKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmZldGNoTW9yZSgpKTtcblxuICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKHRoaXMuX2ZldGNoTW9yZVN1YnNjcmlwdGlvbik7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWFya0ZvckNoZWNrKCkge1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxpb24tY29udGVudD5cbiAgPGlvbi1saXN0IGNsYXNzPVwiaW9uLWxpc3QtcG9wb3ZlclwiPlxuXG4gICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tbGlzdC1oZWFkZXIgY29sdW1uXCI+XG4gICAgICA8aW9uLWNvbD5cbiAgICAgICAgPGlvbi1sYWJlbD57e3RpdGxlSTE4biB8IHRyYW5zbGF0ZX19PC9pb24tbGFiZWw+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgICA8aW9uLWNvbCBjbGFzcz1cInRvcC1hY3Rpb25cIiAqbmdJZj1cIiRpdGVtc3xhc3luY3xpc05vdEVtcHR5QXJyYXlcIj5cbiAgICAgICAgPGlvbi10ZXh0IGNvbG9yPVwicHJpbWFyeVwiPlxuICAgICAgICAgIDxhIChjbGljayk9XCJtYXJrQWxsQXNSZWFkKCRldmVudClcIj57eydTT0NJQUwuVVNFUl9FVkVOVC5OT1RJRklDQVRJT04uUkVBRF9BTEwnIHwgdHJhbnNsYXRlfX08L2E+XG4gICAgICAgIDwvaW9uLXRleHQ+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgPC9pb24tcm93PlxuXG4gICAgPGlvbi1pdGVtXG4gICAgICAqbmdGb3I9XCJsZXQgaXRlbSBvZiAkaXRlbXMgfCBhc3luYzsgdHJhY2tCeTogdHJhY2tCeUZuOyBsYXN0IGFzIGxhc3RcIlxuICAgICAgW2xpbmVzXT1cImxhc3QgPyAnbm9uZScgOiB1bmRlZmluZWRcIlxuICAgICAgW2NsYXNzLnVucmVhZF09XCIhaXRlbS5yZWFkRGF0ZVwiXG4gICAgICBbY2xhc3MudGFwcGFibGVdPVwiaXRlbS5hY3Rpb25zfGFycmF5RmlsdGVyOmlzRGVmYXVsdEFjdGlvbnxpc05vdEVtcHR5QXJyYXlcIlxuICAgICAgKGNsaWNrKT1cImNsaWNrKCRldmVudCwgaXRlbSlcIj5cblxuICAgICAgPGlvbi1hdmF0YXIgc2xvdD1cInN0YXJ0XCI+XG5cbiAgICAgICAgPGltZyAqbmdJZj1cIml0ZW0uYXZhdGFyOyBlbHNlIGF2YXRhckljb25cIiBzcmM9XCJ7eyBpdGVtLmF2YXRhciB9fVwiPlxuXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjYXZhdGFySWNvbj5cbiAgICAgICAgICA8YXBwLWljb25cbiAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5hdmF0YXJJY29uOyBlbHNlIGdlbmVyYXRlSWNvblwiXG4gICAgICAgICAgICBbcmVmXT1cIml0ZW0uYXZhdGFySWNvblwiXG4gICAgICAgICAgICBoZWlnaHQ9XCI0MFwiXG4gICAgICAgICAgICB3aWR0aD1cIjQwXCJcbiAgICAgICAgICA+PC9hcHAtaWNvbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI2dlbmVyYXRlSWNvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXZhdGFyXCIgKm5nSWY9XCJpdGVtLmF2YXRhckpkZW50aWNvblwiPlxuICAgICAgICAgICAgPHN2ZyB3aWR0aD1cIjQwXCIgd2lkdGg9XCI0MFwiIFtkYXRhLWpkZW50aWNvbi12YWx1ZV09XCJpdGVtLmF2YXRhckpkZW50aWNvblwiPjwvc3ZnPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgICA8L2lvbi1hdmF0YXI+XG5cbiAgICAgIDxpb24tZ3JpZCBjbGFzcz1cImlvbi1uby1tYXJnaW4gaW9uLW5vLXBhZGRpbmcgbWVzc2FnZVwiPlxuICAgICAgICA8aW9uLXJvdz5cbiAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMTJcIj5cbiAgICAgICAgICAgIDxwIFtjbGFzcy51bnJlYWRdPVwiIWl0ZW0ucmVhZERhdGVcIiBbaW5uZXJIVE1MXT1cIml0ZW0ubWVzc2FnZVwiPjwvcD5cbiAgICAgICAgICA8L2lvbi1jb2w+XG4gICAgICAgIDwvaW9uLXJvdz5cblxuICAgICAgICA8IS0tIGRhdGUgLS0+XG4gICAgICAgIDxpb24tcm93PlxuICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiPlxuICAgICAgICAgICAgPGFwcC1pY29uXG4gICAgICAgICAgICAgICpuZ0lmPVwiaXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgW3JlZl09XCJpdGVtLmljb25cIlxuICAgICAgICAgICAgICBoZWlnaHQ9XCIxNlwiXG4gICAgICAgICAgICAgIHdpZHRoPVwiMTZcIlxuICAgICAgICAgICAgICBzdHlsZT1cInZlcnRpY2FsLWFsaWduOiBzdWI7IG1hcmdpbi1yaWdodDogM3B4XCJcbiAgICAgICAgICAgID48L2FwcC1pY29uPlxuICAgICAgICAgICAgPHNtYWxsPlxuICAgICAgICAgICAgICA8c3Bhbj57e2l0ZW0uY3JlYXRpb25EYXRlfGRhdGVGcm9tTm93fX08L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiY29sb3I6IGdyYXlcIj57eyAnIHwgJyArIChpdGVtLmNyZWF0aW9uRGF0ZXxkYXRlRm9ybWF0Ont0aW1lOnRydWV9KSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvc21hbGw+XG4gICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8L2lvbi1yb3c+XG5cbiAgICAgICAgPCEtLSBhY3Rpb25zIC0tPlxuICAgICAgICA8aW9uLXJvdyAqbmdJZj1cIml0ZW0uYWN0aW9uc3xpc05vdEVtcHR5QXJyYXlcIj5cbiAgICAgICAgICA8aW9uLWNvbD48L2lvbi1jb2w+XG4gICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBpdGVtLmFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPGEgKm5nSWY9XCIhYWN0aW9uLmRlZmF1bHRcIiBjbGFzcz1cImFjdGlvblwiIChjbGljayk9XCJleGVjdXRlQWN0aW9uKCRldmVudCwgYWN0aW9uLCBpdGVtKVwiIFt0aXRsZV09XCIoYWN0aW9uLnRpdGxlIHx8IGFjdGlvbi5uYW1lKSB8dHJhbnNsYXRlXCI+XG4gICAgICAgICAgICAgICAgPGFwcC1pY29uICpuZ0lmPVwiYWN0aW9uLmljb25SZWZcIiBzbG90PVwic3RhcnRcIiBoZWlnaHQ9XCIyMFwiIHdpZHRoPVwiMjBcIiBbcmVmXT1cImFjdGlvbi5pY29uUmVmXCI+PC9hcHAtaWNvbj5cbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBhY3Rpb24ubmFtZSB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8L2lvbi1yb3c+XG5cbiAgICAgIDwvaW9uLWdyaWQ+XG5cbiAgICAgIDxtYXQtaWNvbiBzbG90PVwiZW5kXCIgKm5nSWY9XCJpdGVtLmFjdGlvbnN8YXJyYXlGaWx0ZXI6IGlzRGVmYXVsdEFjdGlvbnxpc05vdEVtcHR5QXJyYXlcIj5jaGV2cm9uX3JpZ2h0PC9tYXQtaWNvbj5cbiAgICA8L2lvbi1pdGVtPlxuXG4gICAgPCEtLSBsb2FkaW5nIC0tPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhKCRpdGVtc3xhc3luYyk7IGVsc2Ugbm90TG9hZGluZ1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdJdGVtXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctdGVtcGxhdGUgI25vdExvYWRpbmc+XG4gICAgICA8IS0tIG5vIHJlc3VsdCAtLT5cbiAgICAgIDxpb24taXRlbSAqbmdJZj1cIiRpdGVtc3xhc3luY3xpc0VtcHR5QXJyYXlcIiBsaW5lcz1cIm5vbmVcIj5cbiAgICAgICAgPGlvbi10ZXh0IGNvbG9yPVwiZGFya1wiIGNsYXNzPVwidGV4dC1pdGFsaWNcIj57eydTT0NJQUwuVVNFUl9FVkVOVC5OT1RJRklDQVRJT04uRU1QVFknIHwgdHJhbnNsYXRlfX08L2lvbi10ZXh0PlxuICAgICAgPC9pb24taXRlbT5cblxuICAgICAgPCEtLSBGZXRjaGluZyBtb3JlIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZldGNoaW5nTW9yZTsgZWxzZSBpbmZpbml0ZUxvb3BcIiBsaW5lcz1cIm5vbmVcIiBkaXNhYmxlZD5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdJdGVtXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgPCEtLSBJbmZpbml0ZSBsb29wIC0tPlxuICAgICAgPG5nLXRlbXBsYXRlICNpbmZpbml0ZUxvb3A+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjYW5GZXRjaE1vcmVcIiBsaW5lcz1cIm5vbmVcIiBkaXNhYmxlZFxuICAgICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxvYWRpbmdJdGVtXCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPCEtLSBmb290ZXIgLS0+XG4gICAgPGlvbi1yb3cgY2xhc3M9XCJpb24tbGlzdC1mb290ZXIgY29sdW1uXCI+XG4gICAgICA8aW9uLWNvbD5cbiAgICAgICAgPGlvbi10ZXh0ICpuZ0lmPVwiJGl0ZW1Db3VudHxhc3luYzsgbGV0IGNvdW50XCJcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW9uLWZsb2F0LWVuZCBpb24tcGFkZGluZy1lbmRcIj48aT57eydDT01NT04uUkVTVUxUX0NPVU5UJ3x0cmFuc2xhdGU6IHtjb3VudDogY291bnR9IH19PC9pPjwvaW9uLXRleHQ+XG4gICAgICA8L2lvbi1jb2w+XG4gICAgPC9pb24tcm93PlxuXG4gIDwvaW9uLWxpc3Q+XG48L2lvbi1jb250ZW50PlxuXG48IS0tIGxvYWRpbmcgLS0+XG48bmctdGVtcGxhdGUgI2xvYWRpbmdJdGVtPlxuICA8aW9uLWl0ZW0gbGluZXM9XCJub25lXCIgZGlzYWJsZWQ+XG4gICAgPGlvbi1za2VsZXRvbi10ZXh0IFthbmltYXRlZF09XCJ0cnVlXCIgc3R5bGU9XCJ3aWR0aDogMTAwJVwiPjwvaW9uLXNrZWxldG9uLXRleHQ+XG4gIDwvaW9uLWl0ZW0+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,5 +1,5 @@
1
1
  import { Component, Inject, ViewChild } from '@angular/core';
2
- import { USER_EVENT_SERVICE } from '../user-event.service';
2
+ import { APP_USER_EVENT_SERVICE } from '../user-event.service';
3
3
  import { Alerts } from '../../../shared/alerts';
4
4
  import * as momentImported from 'moment';
5
5
  import { timer } from 'rxjs';
@@ -213,16 +213,16 @@ export class UserEventTestingPage {
213
213
  return Alerts.showError(text, this.alertController, this.translateService);
214
214
  }
215
215
  }
216
- UserEventTestingPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UserEventTestingPage, deps: [{ token: USER_EVENT_SERVICE }, { token: i1.Router }, { token: i2.AlertController }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
217
- UserEventTestingPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.1", type: UserEventTestingPage, selector: "job-progression-testing", viewQueries: [{ propertyName: "notification", first: true, predicate: ["notification"], descendants: true }], ngImport: i0, template: "<ion-toolbar color=\"primary\">\n <ion-title>User events</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <app-user-event-notification-icon #notification [debug]=\"true\"></app-user-event-notification-icon>\n\n <p>\n <ion-button (click)=\"addNotification()\">Add notification</ion-button>\n <ion-button (click)=\"addError()\">Add error</ion-button>\n <ion-button (click)=\"addWarning()\">Add warning</ion-button>\n <ion-button (click)=\"addDebug()\">Add debug</ion-button>\n </p>\n <p>\n <ion-button (click)=\"addNotificationWithLink()\">Add notification with link</ion-button>\n <ion-button (click)=\"addNotificationWithAction()\">Add notification with action</ion-button>\n <ion-button (click)=\"addNotificationWithDefaultAction()\">Add notification with default action</ion-button>\n </p>\n <p>\n <ion-button (click)=\"addMany()\">Add notifications (x20)</ion-button>\n </p>\n <p>\n <ion-button (click)=\"startTimer()\" *ngIf=\"!timerStarted\">Start timer</ion-button>\n <ion-button (click)=\"stopTimer()\" *ngIf=\"timerStarted\">Stop timer</ion-button>\n </p>\n</ion-content>\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", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i5.AppUserEventNotificationIcon, selector: "app-user-event-notification-icon", inputs: ["debug", "titleI18n", "disabled", "filter"] }] });
218
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UserEventTestingPage, decorators: [{
216
+ UserEventTestingPage.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: UserEventTestingPage, deps: [{ token: APP_USER_EVENT_SERVICE }, { token: i1.Router }, { token: i2.AlertController }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
217
+ UserEventTestingPage.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.6", type: UserEventTestingPage, selector: "job-progression-testing", viewQueries: [{ propertyName: "notification", first: true, predicate: ["notification"], descendants: true }], ngImport: i0, template: "<ion-toolbar color=\"primary\">\n <ion-title>User events</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <app-user-event-notification-icon #notification [debug]=\"true\"></app-user-event-notification-icon>\n\n <p>\n <ion-button (click)=\"addNotification()\">Add notification</ion-button>\n <ion-button (click)=\"addError()\">Add error</ion-button>\n <ion-button (click)=\"addWarning()\">Add warning</ion-button>\n <ion-button (click)=\"addDebug()\">Add debug</ion-button>\n </p>\n <p>\n <ion-button (click)=\"addNotificationWithLink()\">Add notification with link</ion-button>\n <ion-button (click)=\"addNotificationWithAction()\">Add notification with action</ion-button>\n <ion-button (click)=\"addNotificationWithDefaultAction()\">Add notification with default action</ion-button>\n </p>\n <p>\n <ion-button (click)=\"addMany()\">Add notifications (x20)</ion-button>\n </p>\n <p>\n <ion-button (click)=\"startTimer()\" *ngIf=\"!timerStarted\">Start timer</ion-button>\n <ion-button (click)=\"stopTimer()\" *ngIf=\"timerStarted\">Stop timer</ion-button>\n </p>\n</ion-content>\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", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i5.UserEventNotificationIcon, selector: "app-user-event-notification-icon", inputs: ["debug", "titleI18n", "disabled", "filter", "autoHide"] }] });
218
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: UserEventTestingPage, decorators: [{
219
219
  type: Component,
220
220
  args: [{ selector: 'job-progression-testing', template: "<ion-toolbar color=\"primary\">\n <ion-title>User events</ion-title>\n</ion-toolbar>\n\n<ion-content class=\"ion-padding\">\n\n <app-user-event-notification-icon #notification [debug]=\"true\"></app-user-event-notification-icon>\n\n <p>\n <ion-button (click)=\"addNotification()\">Add notification</ion-button>\n <ion-button (click)=\"addError()\">Add error</ion-button>\n <ion-button (click)=\"addWarning()\">Add warning</ion-button>\n <ion-button (click)=\"addDebug()\">Add debug</ion-button>\n </p>\n <p>\n <ion-button (click)=\"addNotificationWithLink()\">Add notification with link</ion-button>\n <ion-button (click)=\"addNotificationWithAction()\">Add notification with action</ion-button>\n <ion-button (click)=\"addNotificationWithDefaultAction()\">Add notification with default action</ion-button>\n </p>\n <p>\n <ion-button (click)=\"addMany()\">Add notifications (x20)</ion-button>\n </p>\n <p>\n <ion-button (click)=\"startTimer()\" *ngIf=\"!timerStarted\">Start timer</ion-button>\n <ion-button (click)=\"stopTimer()\" *ngIf=\"timerStarted\">Stop timer</ion-button>\n </p>\n</ion-content>\n" }]
221
221
  }], ctorParameters: function () { return [{ type: i6.UserEventTestService, decorators: [{
222
222
  type: Inject,
223
- args: [USER_EVENT_SERVICE]
223
+ args: [APP_USER_EVENT_SERVICE]
224
224
  }] }, { type: i1.Router }, { type: i2.AlertController }, { type: i3.TranslateService }]; }, propDecorators: { notification: [{
225
225
  type: ViewChild,
226
226
  args: ['notification']
227
227
  }] } });
228
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC50ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zb2NpYWwvdXNlci1ldmVudC90ZXN0aW5nL3VzZXItZXZlbnQudGVzdGluZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvdGVzdGluZy91c2VyLWV2ZW50LnRlc3RpbmcuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHekQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRzlDLE9BQU8sS0FBSyxjQUFjLE1BQU0sUUFBUSxDQUFDO0FBR3pDLE9BQU8sRUFBZSxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7OztBQUV6RCxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUM7QUFNOUIsTUFBTSxPQUFPLG9CQUFvQjtJQVUvQixZQUN3QyxnQkFBc0MsRUFDbEUsTUFBYyxFQUNkLGVBQWdDLEVBQ2hDLGdCQUFrQztRQUhOLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBc0I7UUFDbEUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBRzVDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO1lBQ2hDLE1BQU0sRUFBRSxDQUFDLFNBQXdCLEVBQUUsRUFBRSxHQUFHLE9BQU8sSUFBSSxDQUFBLENBQUMsQ0FBQztZQUNyRCxVQUFVLEVBQUUsQ0FBQyxTQUF3QixFQUFFLEVBQUU7Z0JBQ3ZDLElBQUks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QVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBLENBQUMsQ0FBQztpQkFDL0Q7YUFDRjtTQUNGLENBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLFdBQVcsQ0FBQyxJQUFZO1FBQ2hDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3RSxDQUFDOztpSEF6T1Usb0JBQW9CLGtCQVdyQixrQkFBa0I7cUdBWGpCLG9CQUFvQiw2S0NuQmpDLHluQ0EyQkE7MkZEUmEsb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLHlCQUF5Qjs7MEJBY2hDLE1BQU07MkJBQUMsa0JBQWtCOzhIQVBELFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VVNFUl9FVkVOVF9TRVJWSUNFfSBmcm9tICcuLi91c2VyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHtJVXNlckV2ZW50QWN0aW9ufSBmcm9tICcuLi91c2VyLWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtBbGVydHN9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9hbGVydHMnO1xuaW1wb3J0IHtBbGVydENvbnRyb2xsZXJ9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgKiBhcyBtb21lbnRJbXBvcnRlZCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHtVc2VyRXZlbnRUZXN0U2VydmljZX0gZnJvbSAnLi91c2VyLWV2ZW50LnRlc3Rpbmcuc2VydmljZSc7XG5pbXBvcnQge0FwcFVzZXJFdmVudE5vdGlmaWNhdGlvbkljb259IGZyb20gJy4uL25vdGlmaWNhdGlvbi91c2VyLWV2ZW50LW5vdGlmaWNhdGlvbi5pY29uJztcbmltcG9ydCB7U3Vic2NyaXB0aW9uLCB0aW1lcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1VzZXJFdmVudFRlc3R9IGZyb20gJy4vdXNlci1ldmVudC50ZXN0aW5nLm1vZGVsJztcblxuY29uc3QgbW9tZW50ID0gbW9tZW50SW1wb3J0ZWQ7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2pvYi1wcm9ncmVzc2lvbi10ZXN0aW5nJyxcbiAgdGVtcGxhdGVVcmw6ICd1c2VyLWV2ZW50LnRlc3RpbmcuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgVXNlckV2ZW50VGVzdGluZ1BhZ2UgaW1wbGVtZW50cyBPbkRlc3Ryb3l7XG5cbiAgcHJpdmF0ZSBfdGltZXJTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBAVmlld0NoaWxkKCdub3RpZmljYXRpb24nKSBub3RpZmljYXRpb246IEFwcFVzZXJFdmVudE5vdGlmaWNhdGlvbkljb247XG5cbiAgZ2V0IHRpbWVyU3RhcnRlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl90aW1lclN1YnNjcmlwdGlvbjtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoVVNFUl9FVkVOVF9TRVJWSUNFKSBwcm90ZWN0ZWQgdXNlckV2ZW50U2VydmljZTogVXNlckV2ZW50VGVzdFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHJvdXRlcjogUm91dGVyLFxuICAgIHByb3RlY3RlZCBhbGVydENvbnRyb2xsZXI6IEFsZXJ0Q29udHJvbGxlcixcbiAgICBwcm90ZWN0ZWQgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHtcblxuICAgIHVzZXJFdmVudFNlcnZpY2UucmVnaXN0ZXJMaXN0ZW5lcih7XG4gICAgICBhY2NlcHQ6ICh1c2VyRXZlbnQ6IFVzZXJFdmVudFRlc3QpID0+IHsgcmV0dXJuIHRydWUgfSxcbiAgICAgIG9uUmVjZWl2ZWQ6ICh1c2VyRXZlbnQ6IFVzZXJFdmVudFRlc3QpID0+IHtcbiAgICAgICAgdGhpcy5jdXN0b21pemUodXNlckV2ZW50KTtcbiAgICAgICAgcmV0dXJuIHVzZXJFdmVudFxuICAgICAgfVxuICAgIH0pXG4gICAgdXNlckV2ZW50U2VydmljZS5yZWdpc3Rlckxpc3RlbmVyKHtcbiAgICAgIGFjY2VwdDogKHVzZXJFdmVudDogVXNlckV2ZW50VGVzdCkgPT4geyByZXR1cm4gdXNlckV2ZW50LmxldmVsID09IFwiREVCVUdcIiB9LFxuICAgICAgb25SZWFkOiAodXNlckV2ZW50OiBVc2VyRXZlbnRUZXN0KSA9PiB7IHRoaXMuc2hvd01lc3NhZ2UoXCJkZWJ1ZyBtZXNzYWdlIHJlYWQgXCIpfVxuICAgIH0pXG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN0b3BUaW1lcigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGN1c3RvbWl6ZSh1c2VyRXZlbnQ6IFVzZXJFdmVudFRlc3QpIHtcblxuICAgIC8vIENob29zZSBhdmF0YXJJY29uXG4gICAgc3dpdGNoICh1c2VyRXZlbnQubGV2ZWwpIHtcbiAgICAgIGNhc2UgJ0VSUk9SJzpcbiAgICAgICAgdXNlckV2ZW50LmF2YXRhckljb24gPSB7IGljb246ICdjbG9zZS1vdXRsaW5lJywgY29sb3I6ICdkYW5nZXInIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnV0FSTklORyc6XG4gICAgICAgIHVzZXJFdmVudC5hdmF0YXJJY29uID0geyBpY29uOiAnd2FybmluZy1vdXRsaW5lJywgY29sb3I6ICd3YXJuaW5nJyB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0lORk8nOlxuICAgICAgICB1c2VyRXZlbnQuYXZhdGFySWNvbiA9IHsgaWNvbjogJ2luZm9ybWF0aW9uLWNpcmNsZS1vdXRsaW5lJyB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0RFQlVHJzpcbiAgICAgICAgdXNlckV2ZW50LmF2YXRhckljb24gPSB7IGljb246ICdjb2cnLCBjb2xvcjogXCJtZWRpdW1cIiB9O1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgICAvLyBDaG9vc2UgaWNvblxuICAgIHN3aXRjaCAodXNlckV2ZW50LnR5cGUpIHtcbiAgICAgIGNhc2UgJ21lc3NhZ2UnOlxuICAgICAgICB1c2VyRXZlbnQuaWNvbiA9IHsgbWF0SWNvbjogJ2luYm94JywgY29sb3I6ICdhY2NlbnQnIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAndXBsb2FkJzpcbiAgICAgICAgdXNlckV2ZW50Lmljb24gPSB7IG1hdEljb246ICdmaWxlX3VwbG9hZCcgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdkb3dubG9hZCc6XG4gICAgICAgIHVzZXJFdmVudC5pY29uID0geyBtYXRJY29uOiAnZmlsZV9kb3dubG9hZCcgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gIH1cblxuICBhZGROb3RpZmljYXRpb24oKSB7XG4gICAgdGhpcy51c2VyRXZlbnRTZXJ2aWNlLmFkZChVc2VyRXZlbnRUZXN0LmZyb21PYmplY3Qoe1xuICAgICAgICBpc3N1ZXI6ICdzeXN0ZW0nLFxuICAgICAgICByZWNpcGllbnQ6ICdtZScsXG4gICAgICAgIHR5cGU6ICdtZXNzYWdlJyxcbiAgICAgICAgbGV2ZWw6ICdJTkZPJyxcbiAgICAgICAgbWVzc2FnZTogJ21lc3NhZ2UgdGVzdCBtZXNzYWdlIHRlc3QgbWVzc2FnZSB0ZXN0IG1lc3NhZ2UgdGVzdCBtZXNzYWdlIHRlc3QgbWVzc2FnZSB0ZXN0IG1lc3NhZ2UgdGVzdCBtZXNzYWdlIHRlc3QnLFxuICAgICAgICBjcmVhdGlvbkRhdGU6IG1vbWVudCgpLFxuICAgICAgfVxuICAgICkpO1xuICB9XG5cbiAgYWRkRXJyb3IoKSB7XG4gICAgdGhpcy51c2VyRXZlbnRTZXJ2aWNlLmFkZChVc2VyRXZlbnRUZXN0LmZyb21PYmplY3Qoe1xuICAgICAgICBpc3N1ZXI6ICdzeXN0ZW0nLFxuICAgICAgICByZWNpcGllbnQ6ICdtZScsXG4gICAgICAgIHR5cGU6ICd1cGxvYWQnLFxuICAgICAgICBsZXZlbDogJ0VSUk9SJyxcbiAgICAgICAgbWVzc2FnZTogJ21lc3NhZ2UgZXJyb3InLFxuICAgICAgICBjcmVhdGlvbkRhdGU6IG1vbWVudCgpLFxuICAgICAgfVxuICAgICkpO1xuICB9XG5cbiAgYWRkV2FybmluZygpIHtcbiAgICB0aGlzLnVzZXJFdmVudFNlcnZpY2UuYWRkKFVzZXJFdmVudFRlc3QuZnJvbU9iamVjdCh7XG4gICAgICAgIGlzc3VlcjogJ3N5c3RlbScsXG4gICAgICAgIHJlY2lwaWVudDogJ21lJyxcbiAgICAgICAgdHlwZTogJ2Rvd25sb2FkJyxcbiAgICAgICAgbGV2ZWw6ICdXQVJOSU5HJyxcbiAgICAgICAgbWVzc2FnZTogJ21lc3NhZ2Ugd2FybmluZycsXG4gICAgICAgIGNyZWF0aW9uRGF0ZTogbW9tZW50KCksXG4gICAgICB9XG4gICAgKSk7XG4gIH1cblxuICBhZGREZWJ1ZygpIHtcbiAgICB0aGlzLnVzZXJFdmVudFNlcnZpY2UuYWRkKFVzZXJFdmVudFRlc3QuZnJvbU9iamVjdCh7XG4gICAgICAgIGlzc3VlcjogJ3N5c3RlbScsXG4gICAgICAgIHJlY2lwaWVudDogJ21lJyxcbiAgICAgICAgdHlwZTogJ2RlYnVnJyxcbiAgICAgICAgbGV2ZWw6ICdERUJVRycsXG4gICAgICAgIG1lc3NhZ2U6ICdtZXNzYWdlIERFQlVHJyxcbiAgICAgICAgY3JlYXRpb25EYXRlOiBtb21lbnQoKSxcbiAgICAgIH1cbiAgICApKTtcbiAgfVxuXG4gIGFkZE5vdGlmaWNhdGlvbldpdGhMaW5rKCkge1xuICAgIHRoaXMudXNlckV2ZW50U2VydmljZS5hZGQoVXNlckV2ZW50VGVzdC5mcm9tT2JqZWN0KHtcbiAgICAgICAgaXNzdWVyOiAnc3lzdGVtJyxcbiAgICAgICAgcmVjaXBpZW50OiAnbWUnLFxuICAgICAgICB0eXBlOiAnbWVzc2FnZScsXG4gICAgICAgIGxldmVsOiAnSU5GTycsXG4gICAgICAgIG1lc3NhZ2U6ICdtZXNzYWdlIHdpdGggbGluaycsXG4gICAgICAgIGNyZWF0aW9uRGF0ZTogbW9tZW50KCksXG4gICAgICAgIGFjdGlvbnM6IFs8SVVzZXJFdmVudEFjdGlvbj57XG4gICAgICAgICAgbmFtZTogJ2NsaWNrIGhlcmUnLFxuICAgICAgICAgIGljb25SZWY6IHtcbiAgICAgICAgICAgIGljb246ICdhcnJvdy1mb3J3YXJkLW91dGxpbmUnXG4gICAgICAgICAgfSxcbiAgICAgICAgICBleGVjdXRlQWN0aW9uOiBldmVudCA9PiB7IHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwoJy8nKSB9XG4gICAgICAgIH1dXG4gICAgICB9XG4gICAgKSk7XG4gIH1cblxuICBhZGROb3RpZmljYXRpb25XaXRoQWN0aW9uKCkge1xuICAgIHRoaXMudXNlckV2ZW50U2VydmljZS5hZGQoVXNlckV2ZW50VGVzdC5mcm9tT2JqZWN0KHtcbiAgICAgICAgaXNzdWVyOiAnc3lzdGVtJyxcbiAgICAgICAgcmVjaXBpZW50OiAnbWUnLFxuICAgICAgICB0eXBlOiAnbWVzc2FnZScsXG4gICAgICAgIGxldmVsOiAnSU5GTycsXG4gICAgICAgIG1lc3NhZ2U6ICdtZXNzYWdlIHdpdGggYWN0aW9uJyxcbiAgICAgICAgY3JlYXRpb25EYXRlOiBtb21lbnQoKSxcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIDxJVXNlckV2ZW50QWN0aW9uPntcbiAgICAgICAgICAgIG5hbWU6ICdjbGljayBoZXJlJyxcbiAgICAgICAgICAgIGljb25SZWY6IHtcbiAgICAgICAgICAgICAgaWNvbjogJ2Fycm93LWZvcndhcmQtb3V0bGluZScsXG4gICAgICAgICAgICAgIGNvbG9yOiAnd2FybmluZydcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBleGVjdXRlQWN0aW9uOiBldmVudCA9PiB7IHRoaXMuc2hvd01lc3NhZ2UoJ2FjdGlvbiAxJykgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgPElVc2VyRXZlbnRBY3Rpb24+e1xuICAgICAgICAgICAgbmFtZTogJ2NsaWNrIGhlcmUgMicsXG4gICAgICAgICAgICBpY29uUmVmOiB7XG4gICAgICAgICAgICAgIG1hdEljb246ICdzZXR0aW5nc19hcHBsaWNhdGlvbnMnLFxuICAgICAgICAgICAgICBjb2xvcjogJ3NlY29uZGFyeSdcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBleGVjdXRlQWN0aW9uOiBldmVudCA9PiB7IHRoaXMuc2hvd01lc3NhZ2UoJ2FjdGlvbiAyJykgfVxuICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH1cbiAgICApKTtcbiAgfVxuXG4gIGFkZE1hbnkoY291bnQ/OiBudW1iZXIpIHtcbiAgICBjb3VudCA9IGNvdW50IHx8IDIwO1xuICAgIGZvciAobGV0IGk9MDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICAgIHRoaXMuYWRkUmFuZG9tKGkpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXJ0VGltZXIocGVyaW9kPzogbnVtYmVyKSB7XG4gICAgdGhpcy5fdGltZXJTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICBwZXJpb2QgPSBwZXJpb2QgfHwgMTAwMDtcbiAgICBsZXQgY291bnRlciA9IDA7XG5cbiAgICB0aGlzLl90aW1lclN1YnNjcmlwdGlvbiA9IHRpbWVyKHBlcmlvZCwgcGVyaW9kKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuYWRkUmFuZG9tKGNvdW50ZXIpO1xuICAgICAgICBjb3VudGVyKys7XG4gICAgICB9KTtcbiAgfVxuXG4gIHN0b3BUaW1lcigpIHtcbiAgICB0aGlzLl90aW1lclN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl90aW1lclN1YnNjcmlwdGlvbiA9IG51bGw7XG4gIH1cblxuICBhZGRSYW5kb20odmFsdWU6IG51bWJlcikge1xuICAgIHN3aXRjaCAodmFsdWUgJSA2KSB7XG4gICAgICBjYXNlIDA6XG4gICAgICAgIHRoaXMuYWRkTm90aWZpY2F0aW9uKCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAxOlxuICAgICAgICB0aGlzLmFkZEVycm9yKClcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDI6XG4gICAgICAgIHRoaXMuYWRkRGVidWcoKVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMzpcbiAgICAgICAgdGhpcy5hZGROb3RpZmljYXRpb25XaXRoTGluaygpXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA0OlxuICAgICAgICB0aGlzLmFkZE5vdGlmaWNhdGlvbldpdGhBY3Rpb24oKVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgNTpcbiAgICAgICAgdGhpcy5hZGROb3RpZmljYXRpb25XaXRoRGVmYXVsdEFjdGlvbigpXG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuXG4gIGFkZE5vdGlmaWNhdGlvbldpdGhEZWZhdWx0QWN0aW9uKCkge1xuICAgIHRoaXMudXNlckV2ZW50U2VydmljZS5hZGQoVXNlckV2ZW50VGVzdC5mcm9tT2JqZWN0KHtcbiAgICAgICAgaXNzdWVyOiAnc3lzdGVtJyxcbiAgICAgICAgcmVjaXBpZW50OiAnbWUnLFxuICAgICAgICB0eXBlOiAnbWVzc2FnZScsXG4gICAgICAgIGxldmVsOiAnSU5GTycsXG4gICAgICAgIG1lc3NhZ2U6ICdtZXNzYWdlIHdpdGggYWN0aW9uJyxcbiAgICAgICAgY3JlYXRpb25EYXRlOiBtb21lbnQoKSxcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIDxJVXNlckV2ZW50QWN0aW9uPntcbiAgICAgICAgICAgIGRlZmF1bHQ6IHRydWUsXG4gICAgICAgICAgICBuYW1lOiAnZGVmYXVsdCcsXG4gICAgICAgICAgICBleGVjdXRlQWN0aW9uOiBldmVudCA9PiB7IHRoaXMuc2hvd01lc3NhZ2UoJ2RlZmF1bHQgYWN0aW9uJykgfVxuICAgICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgICkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNob3dNZXNzYWdlKHRleHQ6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBBbGVydHMuc2hvd0Vycm9yKHRleHQsIHRoaXMuYWxlcnRDb250cm9sbGVyLCB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UpO1xuICB9XG59XG5cbiIsIjxpb24tdG9vbGJhciBjb2xvcj1cInByaW1hcnlcIj5cbiAgPGlvbi10aXRsZT5Vc2VyIGV2ZW50czwvaW9uLXRpdGxlPlxuPC9pb24tdG9vbGJhcj5cblxuPGlvbi1jb250ZW50IGNsYXNzPVwiaW9uLXBhZGRpbmdcIj5cblxuICA8YXBwLXVzZXItZXZlbnQtbm90aWZpY2F0aW9uLWljb24gI25vdGlmaWNhdGlvbiBbZGVidWddPVwidHJ1ZVwiPjwvYXBwLXVzZXItZXZlbnQtbm90aWZpY2F0aW9uLWljb24+XG5cbiAgPHA+XG4gICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImFkZE5vdGlmaWNhdGlvbigpXCI+QWRkIG5vdGlmaWNhdGlvbjwvaW9uLWJ1dHRvbj5cbiAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiYWRkRXJyb3IoKVwiPkFkZCBlcnJvcjwvaW9uLWJ1dHRvbj5cbiAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiYWRkV2FybmluZygpXCI+QWRkIHdhcm5pbmc8L2lvbi1idXR0b24+XG4gICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImFkZERlYnVnKClcIj5BZGQgZGVidWc8L2lvbi1idXR0b24+XG4gIDwvcD5cbiAgPHA+XG4gICAgPGlvbi1idXR0b24gKGNsaWNrKT1cImFkZE5vdGlmaWNhdGlvbldpdGhMaW5rKClcIj5BZGQgbm90aWZpY2F0aW9uIHdpdGggbGluazwvaW9uLWJ1dHRvbj5cbiAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiYWRkTm90aWZpY2F0aW9uV2l0aEFjdGlvbigpXCI+QWRkIG5vdGlmaWNhdGlvbiB3aXRoIGFjdGlvbjwvaW9uLWJ1dHRvbj5cbiAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiYWRkTm90aWZpY2F0aW9uV2l0aERlZmF1bHRBY3Rpb24oKVwiPkFkZCBub3RpZmljYXRpb24gd2l0aCBkZWZhdWx0IGFjdGlvbjwvaW9uLWJ1dHRvbj5cbiAgPC9wPlxuICA8cD5cbiAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiYWRkTWFueSgpXCI+QWRkIG5vdGlmaWNhdGlvbnMgKHgyMCk8L2lvbi1idXR0b24+XG4gIDwvcD5cbiAgPHA+XG4gICAgPGlvbi1idXR0b24gKGNsaWNrKT1cInN0YXJ0VGltZXIoKVwiICpuZ0lmPVwiIXRpbWVyU3RhcnRlZFwiPlN0YXJ0IHRpbWVyPC9pb24tYnV0dG9uPlxuICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJzdG9wVGltZXIoKVwiICpuZ0lmPVwidGltZXJTdGFydGVkXCI+U3RvcCB0aW1lcjwvaW9uLWJ1dHRvbj5cbiAgPC9wPlxuPC9pb24tY29udGVudD5cbiJdfQ==
228
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC50ZXN0aW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zb2NpYWwvdXNlci1ldmVudC90ZXN0aW5nL3VzZXItZXZlbnQudGVzdGluZy50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc29jaWFsL3VzZXItZXZlbnQvdGVzdGluZy91c2VyLWV2ZW50LnRlc3RpbmcuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFHN0QsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRzlDLE9BQU8sS0FBSyxjQUFjLE1BQU0sUUFBUSxDQUFDO0FBR3pDLE9BQU8sRUFBZSxLQUFLLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7OztBQUV6RCxNQUFNLE1BQU0sR0FBRyxjQUFjLENBQUM7QUFNOUIsTUFBTSxPQUFPLG9CQUFvQjtJQVUvQixZQUM0QyxnQkFBc0MsRUFDdEUsTUFBYyxFQUNkLGVBQWdDLEVBQ2hDLGdCQUFrQztRQUhGLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBc0I7UUFDdEUsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBRzVDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDO1lBQ2hDLE1BQU0sRUFBRSxDQUFDLFNBQXdCLEVBQUUsRUFBRSxHQUFHLE9BQU8sSUFBSSxDQUFBLENBQUMsQ0FBQztZQUNyRCxVQUFVLEVBQUUsQ0FBQyxTQUF3QixFQUFFLEVBQUU7Z0JBQ3ZDLElBQUks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QVcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBLENBQUMsQ0FBQztpQkFDL0Q7YUFDRjtTQUNGLENBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVTLFdBQVcsQ0FBQyxJQUFZO1FBQ2hDLE9BQU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM3RSxDQUFDOztpSEF6T1Usb0JBQW9CLGtCQVdyQixzQkFBc0I7cUdBWHJCLG9CQUFvQiw2S0NuQmpDLHluQ0EyQkE7MkZEUmEsb0JBQW9CO2tCQUpoQyxTQUFTOytCQUNFLHlCQUF5Qjs7MEJBY2hDLE1BQU07MkJBQUMsc0JBQXNCOzhIQVBMLFlBQVk7c0JBQXRDLFNBQVM7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QVBQX1VTRVJfRVZFTlRfU0VSVklDRX0gZnJvbSAnLi4vdXNlci1ldmVudC5zZXJ2aWNlJztcbmltcG9ydCB7SVVzZXJFdmVudEFjdGlvbn0gZnJvbSAnLi4vdXNlci1ldmVudC5tb2RlbCc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7QWxlcnRzfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvYWxlcnRzJztcbmltcG9ydCB7QWxlcnRDb250cm9sbGVyfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0ICogYXMgbW9tZW50SW1wb3J0ZWQgZnJvbSAnbW9tZW50JztcbmltcG9ydCB7VXNlckV2ZW50VGVzdFNlcnZpY2V9IGZyb20gJy4vdXNlci1ldmVudC50ZXN0aW5nLnNlcnZpY2UnO1xuaW1wb3J0IHtVc2VyRXZlbnROb3RpZmljYXRpb25JY29ufSBmcm9tICcuLi9ub3RpZmljYXRpb24vdXNlci1ldmVudC1ub3RpZmljYXRpb24uaWNvbic7XG5pbXBvcnQge1N1YnNjcmlwdGlvbiwgdGltZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtVc2VyRXZlbnRUZXN0fSBmcm9tICcuL3VzZXItZXZlbnQudGVzdGluZy5tb2RlbCc7XG5cbmNvbnN0IG1vbWVudCA9IG1vbWVudEltcG9ydGVkO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdqb2ItcHJvZ3Jlc3Npb24tdGVzdGluZycsXG4gIHRlbXBsYXRlVXJsOiAndXNlci1ldmVudC50ZXN0aW5nLmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFVzZXJFdmVudFRlc3RpbmdQYWdlIGltcGxlbWVudHMgT25EZXN0cm95e1xuXG4gIHByaXZhdGUgX3RpbWVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgQFZpZXdDaGlsZCgnbm90aWZpY2F0aW9uJykgbm90aWZpY2F0aW9uOiBVc2VyRXZlbnROb3RpZmljYXRpb25JY29uO1xuXG4gIGdldCB0aW1lclN0YXJ0ZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5fdGltZXJTdWJzY3JpcHRpb247XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KEFQUF9VU0VSX0VWRU5UX1NFUlZJQ0UpIHByb3RlY3RlZCB1c2VyRXZlbnRTZXJ2aWNlOiBVc2VyRXZlbnRUZXN0U2VydmljZSxcbiAgICBwcm90ZWN0ZWQgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJvdGVjdGVkIGFsZXJ0Q29udHJvbGxlcjogQWxlcnRDb250cm9sbGVyLFxuICAgIHByb3RlY3RlZCB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlXG4gICkge1xuXG4gICAgdXNlckV2ZW50U2VydmljZS5yZWdpc3Rlckxpc3RlbmVyKHtcbiAgICAgIGFjY2VwdDogKHVzZXJFdmVudDogVXNlckV2ZW50VGVzdCkgPT4geyByZXR1cm4gdHJ1ZSB9LFxuICAgICAgb25SZWNlaXZlZDogKHVzZXJFdmVudDogVXNlckV2ZW50VGVzdCkgPT4ge1xuICAgICAgICB0aGlzLmN1c3RvbWl6ZSh1c2VyRXZlbnQpO1xuICAgICAgICByZXR1cm4gdXNlckV2ZW50XG4gICAgICB9XG4gICAgfSlcbiAgICB1c2VyRXZlbnRTZXJ2aWNlLnJlZ2lzdGVyTGlzdGVuZXIoe1xuICAgICAgYWNjZXB0OiAodXNlckV2ZW50OiBVc2VyRXZlbnRUZXN0KSA9PiB7IHJldHVybiB1c2VyRXZlbnQubGV2ZWwgPT0gXCJERUJVR1wiIH0sXG4gICAgICBvblJlYWQ6ICh1c2VyRXZlbnQ6IFVzZXJFdmVudFRlc3QpID0+IHsgdGhpcy5zaG93TWVzc2FnZShcImRlYnVnIG1lc3NhZ2UgcmVhZCBcIil9XG4gICAgfSlcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3RvcFRpbWVyKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY3VzdG9taXplKHVzZXJFdmVudDogVXNlckV2ZW50VGVzdCkge1xuXG4gICAgLy8gQ2hvb3NlIGF2YXRhckljb25cbiAgICBzd2l0Y2ggKHVzZXJFdmVudC5sZXZlbCkge1xuICAgICAgY2FzZSAnRVJST1InOlxuICAgICAgICB1c2VyRXZlbnQuYXZhdGFySWNvbiA9IHsgaWNvbjogJ2Nsb3NlLW91dGxpbmUnLCBjb2xvcjogJ2RhbmdlcicgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdXQVJOSU5HJzpcbiAgICAgICAgdXNlckV2ZW50LmF2YXRhckljb24gPSB7IGljb246ICd3YXJuaW5nLW91dGxpbmUnLCBjb2xvcjogJ3dhcm5pbmcnIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnSU5GTyc6XG4gICAgICAgIHVzZXJFdmVudC5hdmF0YXJJY29uID0geyBpY29uOiAnaW5mb3JtYXRpb24tY2lyY2xlLW91dGxpbmUnIH07XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnREVCVUcnOlxuICAgICAgICB1c2VyRXZlbnQuYXZhdGFySWNvbiA9IHsgaWNvbjogJ2NvZycsIGNvbG9yOiBcIm1lZGl1bVwiIH07XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIENob29zZSBpY29uXG4gICAgc3dpdGNoICh1c2VyRXZlbnQudHlwZSkge1xuICAgICAgY2FzZSAnbWVzc2FnZSc6XG4gICAgICAgIHVzZXJFdmVudC5pY29uID0geyBtYXRJY29uOiAnaW5ib3gnLCBjb2xvcjogJ2FjY2VudCcgfTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd1cGxvYWQnOlxuICAgICAgICB1c2VyRXZlbnQuaWNvbiA9IHsgbWF0SWNvbjogJ2ZpbGVfdXBsb2FkJyB9O1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Rvd25sb2FkJzpcbiAgICAgICAgdXNlckV2ZW50Lmljb24gPSB7IG1hdEljb246ICdmaWxlX2Rvd25sb2FkJyB9O1xuICAgICAgICBicmVhaztcbiAgICB9XG5cbiAgfVxuXG4gIGFkZE5vdGlmaWNhdGlvbigpIHtcbiAgICB0aGlzLnVzZXJFdmVudFNlcnZpY2UuYWRkKFVzZXJFdmVudFRlc3QuZnJvbU9iamVjdCh7XG4gICAgICAgIGlzc3VlcjogJ3N5c3RlbScsXG4gICAgICAgIHJlY2lwaWVudDogJ21lJyxcbiAgICAgICAgdHlwZTogJ21lc3NhZ2UnLFxuICAgICAgICBsZXZlbDogJ0lORk8nLFxuICAgICAgICBtZXNzYWdlOiAnbWVzc2FnZSB0ZXN0IG1lc3NhZ2UgdGVzdCBtZXNzYWdlIHRlc3QgbWVzc2FnZSB0ZXN0IG1lc3NhZ2UgdGVzdCBtZXNzYWdlIHRlc3QgbWVzc2FnZSB0ZXN0IG1lc3NhZ2UgdGVzdCcsXG4gICAgICAgIGNyZWF0aW9uRGF0ZTogbW9tZW50KCksXG4gICAgICB9XG4gICAgKSk7XG4gIH1cblxuICBhZGRFcnJvcigpIHtcbiAgICB0aGlzLnVzZXJFdmVudFNlcnZpY2UuYWRkKFVzZXJFdmVudFRlc3QuZnJvbU9iamVjdCh7XG4gICAgICAgIGlzc3VlcjogJ3N5c3RlbScsXG4gICAgICAgIHJlY2lwaWVudDogJ21lJyxcbiAgICAgICAgdHlwZTogJ3VwbG9hZCcsXG4gICAgICAgIGxldmVsOiAnRVJST1InLFxuICAgICAgICBtZXNzYWdlOiAnbWVzc2FnZSBlcnJvcicsXG4gICAgICAgIGNyZWF0aW9uRGF0ZTogbW9tZW50KCksXG4gICAgICB9XG4gICAgKSk7XG4gIH1cblxuICBhZGRXYXJuaW5nKCkge1xuICAgIHRoaXMudXNlckV2ZW50U2VydmljZS5hZGQoVXNlckV2ZW50VGVzdC5mcm9tT2JqZWN0KHtcbiAgICAgICAgaXNzdWVyOiAnc3lzdGVtJyxcbiAgICAgICAgcmVjaXBpZW50OiAnbWUnLFxuICAgICAgICB0eXBlOiAnZG93bmxvYWQnLFxuICAgICAgICBsZXZlbDogJ1dBUk5JTkcnLFxuICAgICAgICBtZXNzYWdlOiAnbWVzc2FnZSB3YXJuaW5nJyxcbiAgICAgICAgY3JlYXRpb25EYXRlOiBtb21lbnQoKSxcbiAgICAgIH1cbiAgICApKTtcbiAgfVxuXG4gIGFkZERlYnVnKCkge1xuICAgIHRoaXMudXNlckV2ZW50U2VydmljZS5hZGQoVXNlckV2ZW50VGVzdC5mcm9tT2JqZWN0KHtcbiAgICAgICAgaXNzdWVyOiAnc3lzdGVtJyxcbiAgICAgICAgcmVjaXBpZW50OiAnbWUnLFxuICAgICAgICB0eXBlOiAnZGVidWcnLFxuICAgICAgICBsZXZlbDogJ0RFQlVHJyxcbiAgICAgICAgbWVzc2FnZTogJ21lc3NhZ2UgREVCVUcnLFxuICAgICAgICBjcmVhdGlvbkRhdGU6IG1vbWVudCgpLFxuICAgICAgfVxuICAgICkpO1xuICB9XG5cbiAgYWRkTm90aWZpY2F0aW9uV2l0aExpbmsoKSB7XG4gICAgdGhpcy51c2VyRXZlbnRTZXJ2aWNlLmFkZChVc2VyRXZlbnRUZXN0LmZyb21PYmplY3Qoe1xuICAgICAgICBpc3N1ZXI6ICdzeXN0ZW0nLFxuICAgICAgICByZWNpcGllbnQ6ICdtZScsXG4gICAgICAgIHR5cGU6ICdtZXNzYWdlJyxcbiAgICAgICAgbGV2ZWw6ICdJTkZPJyxcbiAgICAgICAgbWVzc2FnZTogJ21lc3NhZ2Ugd2l0aCBsaW5rJyxcbiAgICAgICAgY3JlYXRpb25EYXRlOiBtb21lbnQoKSxcbiAgICAgICAgYWN0aW9uczogWzxJVXNlckV2ZW50QWN0aW9uPntcbiAgICAgICAgICBuYW1lOiAnY2xpY2sgaGVyZScsXG4gICAgICAgICAgaWNvblJlZjoge1xuICAgICAgICAgICAgaWNvbjogJ2Fycm93LWZvcndhcmQtb3V0bGluZSdcbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4ZWN1dGVBY3Rpb246IGV2ZW50ID0+IHsgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCgnLycpIH1cbiAgICAgICAgfV1cbiAgICAgIH1cbiAgICApKTtcbiAgfVxuXG4gIGFkZE5vdGlmaWNhdGlvbldpdGhBY3Rpb24oKSB7XG4gICAgdGhpcy51c2VyRXZlbnRTZXJ2aWNlLmFkZChVc2VyRXZlbnRUZXN0LmZyb21PYmplY3Qoe1xuICAgICAgICBpc3N1ZXI6ICdzeXN0ZW0nLFxuICAgICAgICByZWNpcGllbnQ6ICdtZScsXG4gICAgICAgIHR5cGU6ICdtZXNzYWdlJyxcbiAgICAgICAgbGV2ZWw6ICdJTkZPJyxcbiAgICAgICAgbWVzc2FnZTogJ21lc3NhZ2Ugd2l0aCBhY3Rpb24nLFxuICAgICAgICBjcmVhdGlvbkRhdGU6IG1vbWVudCgpLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgPElVc2VyRXZlbnRBY3Rpb24+e1xuICAgICAgICAgICAgbmFtZTogJ2NsaWNrIGhlcmUnLFxuICAgICAgICAgICAgaWNvblJlZjoge1xuICAgICAgICAgICAgICBpY29uOiAnYXJyb3ctZm9yd2FyZC1vdXRsaW5lJyxcbiAgICAgICAgICAgICAgY29sb3I6ICd3YXJuaW5nJ1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV4ZWN1dGVBY3Rpb246IGV2ZW50ID0+IHsgdGhpcy5zaG93TWVzc2FnZSgnYWN0aW9uIDEnKSB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICA8SVVzZXJFdmVudEFjdGlvbj57XG4gICAgICAgICAgICBuYW1lOiAnY2xpY2sgaGVyZSAyJyxcbiAgICAgICAgICAgIGljb25SZWY6IHtcbiAgICAgICAgICAgICAgbWF0SWNvbjogJ3NldHRpbmdzX2FwcGxpY2F0aW9ucycsXG4gICAgICAgICAgICAgIGNvbG9yOiAnc2Vjb25kYXJ5J1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV4ZWN1dGVBY3Rpb246IGV2ZW50ID0+IHsgdGhpcy5zaG93TWVzc2FnZSgnYWN0aW9uIDInKSB9XG4gICAgICAgIH1cbiAgICAgICAgXVxuICAgICAgfVxuICAgICkpO1xuICB9XG5cbiAgYWRkTWFueShjb3VudD86IG51bWJlcikge1xuICAgIGNvdW50ID0gY291bnQgfHwgMjA7XG4gICAgZm9yIChsZXQgaT0wOyBpIDwgY291bnQ7IGkrKykge1xuICAgICAgdGhpcy5hZGRSYW5kb20oaSk7XG4gICAgfVxuICB9XG5cbiAgc3RhcnRUaW1lcihwZXJpb2Q/OiBudW1iZXIpIHtcbiAgICB0aGlzLl90aW1lclN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcblxuICAgIHBlcmlvZCA9IHBlcmlvZCB8fCAxMDAwO1xuICAgIGxldCBjb3VudGVyID0gMDtcblxuICAgIHRoaXMuX3RpbWVyU3Vic2NyaXB0aW9uID0gdGltZXIocGVyaW9kLCBwZXJpb2QpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5hZGRSYW5kb20oY291bnRlcik7XG4gICAgICAgIGNvdW50ZXIrKztcbiAgICAgIH0pO1xuICB9XG5cbiAgc3RvcFRpbWVyKCkge1xuICAgIHRoaXMuX3RpbWVyU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX3RpbWVyU3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgfVxuXG4gIGFkZFJhbmRvbSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgc3dpdGNoICh2YWx1ZSAlIDYpIHtcbiAgICAgIGNhc2UgMDpcbiAgICAgICAgdGhpcy5hZGROb3RpZmljYXRpb24oKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDE6XG4gICAgICAgIHRoaXMuYWRkRXJyb3IoKVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgMjpcbiAgICAgICAgdGhpcy5hZGREZWJ1ZygpXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAzOlxuICAgICAgICB0aGlzLmFkZE5vdGlmaWNhdGlvbldpdGhMaW5rKClcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIDQ6XG4gICAgICAgIHRoaXMuYWRkTm90aWZpY2F0aW9uV2l0aEFjdGlvbigpXG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSA1OlxuICAgICAgICB0aGlzLmFkZE5vdGlmaWNhdGlvbldpdGhEZWZhdWx0QWN0aW9uKClcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgYWRkTm90aWZpY2F0aW9uV2l0aERlZmF1bHRBY3Rpb24oKSB7XG4gICAgdGhpcy51c2VyRXZlbnRTZXJ2aWNlLmFkZChVc2VyRXZlbnRUZXN0LmZyb21PYmplY3Qoe1xuICAgICAgICBpc3N1ZXI6ICdzeXN0ZW0nLFxuICAgICAgICByZWNpcGllbnQ6ICdtZScsXG4gICAgICAgIHR5cGU6ICdtZXNzYWdlJyxcbiAgICAgICAgbGV2ZWw6ICdJTkZPJyxcbiAgICAgICAgbWVzc2FnZTogJ21lc3NhZ2Ugd2l0aCBhY3Rpb24nLFxuICAgICAgICBjcmVhdGlvbkRhdGU6IG1vbWVudCgpLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgPElVc2VyRXZlbnRBY3Rpb24+e1xuICAgICAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgICAgIG5hbWU6ICdkZWZhdWx0JyxcbiAgICAgICAgICAgIGV4ZWN1dGVBY3Rpb246IGV2ZW50ID0+IHsgdGhpcy5zaG93TWVzc2FnZSgnZGVmYXVsdCBhY3Rpb24nKSB9XG4gICAgICAgICAgfVxuICAgICAgICBdXG4gICAgICB9XG4gICAgKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2hvd01lc3NhZ2UodGV4dDogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIEFsZXJ0cy5zaG93RXJyb3IodGV4dCwgdGhpcy5hbGVydENvbnRyb2xsZXIsIHRoaXMudHJhbnNsYXRlU2VydmljZSk7XG4gIH1cbn1cblxuIiwiPGlvbi10b29sYmFyIGNvbG9yPVwicHJpbWFyeVwiPlxuICA8aW9uLXRpdGxlPlVzZXIgZXZlbnRzPC9pb24tdGl0bGU+XG48L2lvbi10b29sYmFyPlxuXG48aW9uLWNvbnRlbnQgY2xhc3M9XCJpb24tcGFkZGluZ1wiPlxuXG4gIDxhcHAtdXNlci1ldmVudC1ub3RpZmljYXRpb24taWNvbiAjbm90aWZpY2F0aW9uIFtkZWJ1Z109XCJ0cnVlXCI+PC9hcHAtdXNlci1ldmVudC1ub3RpZmljYXRpb24taWNvbj5cblxuICA8cD5cbiAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiYWRkTm90aWZpY2F0aW9uKClcIj5BZGQgbm90aWZpY2F0aW9uPC9pb24tYnV0dG9uPlxuICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJhZGRFcnJvcigpXCI+QWRkIGVycm9yPC9pb24tYnV0dG9uPlxuICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJhZGRXYXJuaW5nKClcIj5BZGQgd2FybmluZzwvaW9uLWJ1dHRvbj5cbiAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiYWRkRGVidWcoKVwiPkFkZCBkZWJ1ZzwvaW9uLWJ1dHRvbj5cbiAgPC9wPlxuICA8cD5cbiAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwiYWRkTm90aWZpY2F0aW9uV2l0aExpbmsoKVwiPkFkZCBub3RpZmljYXRpb24gd2l0aCBsaW5rPC9pb24tYnV0dG9uPlxuICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJhZGROb3RpZmljYXRpb25XaXRoQWN0aW9uKClcIj5BZGQgbm90aWZpY2F0aW9uIHdpdGggYWN0aW9uPC9pb24tYnV0dG9uPlxuICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJhZGROb3RpZmljYXRpb25XaXRoRGVmYXVsdEFjdGlvbigpXCI+QWRkIG5vdGlmaWNhdGlvbiB3aXRoIGRlZmF1bHQgYWN0aW9uPC9pb24tYnV0dG9uPlxuICA8L3A+XG4gIDxwPlxuICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJhZGRNYW55KClcIj5BZGQgbm90aWZpY2F0aW9ucyAoeDIwKTwvaW9uLWJ1dHRvbj5cbiAgPC9wPlxuICA8cD5cbiAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwic3RhcnRUaW1lcigpXCIgKm5nSWY9XCIhdGltZXJTdGFydGVkXCI+U3RhcnQgdGltZXI8L2lvbi1idXR0b24+XG4gICAgPGlvbi1idXR0b24gKGNsaWNrKT1cInN0b3BUaW1lcigpXCIgKm5nSWY9XCJ0aW1lclN0YXJ0ZWRcIj5TdG9wIHRpbWVyPC9pb24tYnV0dG9uPlxuICA8L3A+XG48L2lvbi1jb250ZW50PlxuIl19
@@ -8,14 +8,14 @@ import * as i0 from "@angular/core";
8
8
  import * as i1 from "@ngx-translate/core";
9
9
  export class UserEventTestingModule {
10
10
  }
11
- UserEventTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UserEventTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- UserEventTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: UserEventTestingModule, declarations: [UserEventTestingPage], imports: [CommonModule, i1.TranslateModule, SharedModule,
11
+ UserEventTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: UserEventTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ UserEventTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.6", ngImport: i0, type: UserEventTestingModule, declarations: [UserEventTestingPage], imports: [CommonModule, i1.TranslateModule, SharedModule,
13
13
  UserEventModule], exports: [UserEventTestingPage] });
14
- UserEventTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UserEventTestingModule, imports: [CommonModule,
14
+ UserEventTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: UserEventTestingModule, imports: [CommonModule,
15
15
  TranslateModule.forChild(),
16
16
  SharedModule,
17
17
  UserEventModule] });
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UserEventTestingModule, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: UserEventTestingModule, decorators: [{
19
19
  type: NgModule,
20
20
  args: [{
21
21
  imports: [
@@ -100,9 +100,9 @@ export class UserEventTestService extends AbstractUserEventService {
100
100
  return Promise.resolve(res);
101
101
  }
102
102
  }
103
- UserEventTestService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UserEventTestService, deps: [{ token: i1.GraphqlService }, { token: i2.AccountService }, { token: i3.NetworkService }, { token: i4.TranslateService }, { token: ENVIRONMENT }], target: i0.ɵɵFactoryTarget.Injectable });
104
- UserEventTestService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UserEventTestService });
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UserEventTestService, decorators: [{
103
+ UserEventTestService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: UserEventTestService, deps: [{ token: i1.GraphqlService }, { token: i2.AccountService }, { token: i3.NetworkService }, { token: i4.TranslateService }, { token: ENVIRONMENT }], target: i0.ɵɵFactoryTarget.Injectable });
104
+ UserEventTestService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: UserEventTestService });
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: UserEventTestService, decorators: [{
106
106
  type: Injectable
107
107
  }], ctorParameters: function () { return [{ type: i1.GraphqlService }, { type: i2.AccountService }, { type: i3.NetworkService }, { type: i4.TranslateService }, { type: i5.Environment, decorators: [{
108
108
  type: Inject,
@@ -1,24 +1,24 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { SharedModule } from '../../shared/shared.module';
4
- import { AppUserEventNotificationIcon } from './notification/user-event-notification.icon';
4
+ import { UserEventNotificationIcon } from './notification/user-event-notification.icon';
5
5
  import { UserEventNotificationList } from './notification/user-event-notification.list';
6
6
  import { AppIconModule } from '../../core/icon/icon.module';
7
7
  import { NgxJdenticonModule } from 'ngx-jdenticon';
8
8
  import * as i0 from "@angular/core";
9
9
  export class UserEventModule {
10
10
  }
11
- UserEventModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UserEventModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- UserEventModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.1", ngImport: i0, type: UserEventModule, declarations: [AppUserEventNotificationIcon,
11
+ UserEventModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: UserEventModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ UserEventModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.6", ngImport: i0, type: UserEventModule, declarations: [UserEventNotificationIcon,
13
13
  UserEventNotificationList], imports: [CommonModule,
14
14
  SharedModule,
15
15
  AppIconModule,
16
- NgxJdenticonModule], exports: [AppUserEventNotificationIcon] });
17
- UserEventModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UserEventModule, imports: [CommonModule,
16
+ NgxJdenticonModule], exports: [UserEventNotificationIcon] });
17
+ UserEventModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: UserEventModule, imports: [CommonModule,
18
18
  SharedModule,
19
19
  AppIconModule,
20
20
  NgxJdenticonModule] });
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImport: i0, type: UserEventModule, decorators: [{
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.6", ngImport: i0, type: UserEventModule, decorators: [{
22
22
  type: NgModule,
23
23
  args: [{
24
24
  imports: [
@@ -28,12 +28,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.1", ngImpor
28
28
  NgxJdenticonModule
29
29
  ],
30
30
  declarations: [
31
- AppUserEventNotificationIcon,
31
+ UserEventNotificationIcon,
32
32
  UserEventNotificationList
33
33
  ],
34
34
  exports: [
35
- AppUserEventNotificationIcon
35
+ UserEventNotificationIcon
36
36
  ]
37
37
  }]
38
38
  }] });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L3VzZXItZXZlbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsNEJBQTRCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUN6RixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZUFBZSxDQUFDOztBQWlCakQsTUFBTSxPQUFPLGVBQWU7OzRHQUFmLGVBQWU7NkdBQWYsZUFBZSxpQkFQeEIsNEJBQTRCO1FBQzVCLHlCQUF5QixhQVB6QixZQUFZO1FBQ1osWUFBWTtRQUNaLGFBQWE7UUFDYixrQkFBa0IsYUFPbEIsNEJBQTRCOzZHQUduQixlQUFlLFlBYnhCLFlBQVk7UUFDWixZQUFZO1FBQ1osYUFBYTtRQUNiLGtCQUFrQjsyRkFVVCxlQUFlO2tCQWYzQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixrQkFBa0I7cUJBQ25CO29CQUNELFlBQVksRUFBRTt3QkFDWiw0QkFBNEI7d0JBQzVCLHlCQUF5QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLDRCQUE0QjtxQkFDN0I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtTaGFyZWRNb2R1bGV9IGZyb20gJy4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7QXBwVXNlckV2ZW50Tm90aWZpY2F0aW9uSWNvbn0gZnJvbSAnLi9ub3RpZmljYXRpb24vdXNlci1ldmVudC1ub3RpZmljYXRpb24uaWNvbic7XG5pbXBvcnQge1VzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3R9IGZyb20gJy4vbm90aWZpY2F0aW9uL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmxpc3QnO1xuaW1wb3J0IHtBcHBJY29uTW9kdWxlfSBmcm9tICcuLi8uLi9jb3JlL2ljb24vaWNvbi5tb2R1bGUnO1xuaW1wb3J0IHtOZ3hKZGVudGljb25Nb2R1bGV9IGZyb20gJ25neC1qZGVudGljb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNoYXJlZE1vZHVsZSxcbiAgICBBcHBJY29uTW9kdWxlLFxuICAgIE5neEpkZW50aWNvbk1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBBcHBVc2VyRXZlbnROb3RpZmljYXRpb25JY29uLFxuICAgIFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3RcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEFwcFVzZXJFdmVudE5vdGlmaWNhdGlvbkljb25cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyRXZlbnRNb2R1bGUge1xufVxuIl19
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC91c2VyLWV2ZW50L3VzZXItZXZlbnQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzdDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sZUFBZSxDQUFDOztBQWlCakQsTUFBTSxPQUFPLGVBQWU7OzRHQUFmLGVBQWU7NkdBQWYsZUFBZSxpQkFQeEIseUJBQXlCO1FBQ3pCLHlCQUF5QixhQVB6QixZQUFZO1FBQ1osWUFBWTtRQUNaLGFBQWE7UUFDYixrQkFBa0IsYUFPbEIseUJBQXlCOzZHQUdoQixlQUFlLFlBYnhCLFlBQVk7UUFDWixZQUFZO1FBQ1osYUFBYTtRQUNiLGtCQUFrQjsyRkFVVCxlQUFlO2tCQWYzQixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixrQkFBa0I7cUJBQ25CO29CQUNELFlBQVksRUFBRTt3QkFDWix5QkFBeUI7d0JBQ3pCLHlCQUF5QjtxQkFDMUI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLHlCQUF5QjtxQkFDMUI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29tbW9uTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtTaGFyZWRNb2R1bGV9IGZyb20gJy4uLy4uL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcbmltcG9ydCB7VXNlckV2ZW50Tm90aWZpY2F0aW9uSWNvbn0gZnJvbSAnLi9ub3RpZmljYXRpb24vdXNlci1ldmVudC1ub3RpZmljYXRpb24uaWNvbic7XG5pbXBvcnQge1VzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3R9IGZyb20gJy4vbm90aWZpY2F0aW9uL3VzZXItZXZlbnQtbm90aWZpY2F0aW9uLmxpc3QnO1xuaW1wb3J0IHtBcHBJY29uTW9kdWxlfSBmcm9tICcuLi8uLi9jb3JlL2ljb24vaWNvbi5tb2R1bGUnO1xuaW1wb3J0IHtOZ3hKZGVudGljb25Nb2R1bGV9IGZyb20gJ25neC1qZGVudGljb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFNoYXJlZE1vZHVsZSxcbiAgICBBcHBJY29uTW9kdWxlLFxuICAgIE5neEpkZW50aWNvbk1vZHVsZVxuICBdLFxuICBkZWNsYXJhdGlvbnM6IFtcbiAgICBVc2VyRXZlbnROb3RpZmljYXRpb25JY29uLFxuICAgIFVzZXJFdmVudE5vdGlmaWNhdGlvbkxpc3RcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIFVzZXJFdmVudE5vdGlmaWNhdGlvbkljb25cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBVc2VyRXZlbnRNb2R1bGUge1xufVxuIl19