@po-ui/ng-templates 6.0.0-rc.1 → 6.3.0

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 (356) hide show
  1. package/README.md +18 -18
  2. package/esm2020/lib/components/components.module.mjs +86 -86
  3. package/esm2020/lib/components/index.mjs +12 -12
  4. package/esm2020/lib/components/po-modal-password-recovery/enums/po-modal-password-recovery-modal-content.enum.mjs +17 -17
  5. package/esm2020/lib/components/po-modal-password-recovery/enums/po-modal-password-recovery-type.enum.mjs +17 -17
  6. package/esm2020/lib/components/po-modal-password-recovery/index.mjs +8 -8
  7. package/esm2020/lib/components/po-modal-password-recovery/interfaces/po-modal-password-recovery.interface.mjs +2 -2
  8. package/esm2020/lib/components/po-modal-password-recovery/literals/i18n/po-modal-password-recovery-literals.mjs +119 -119
  9. package/esm2020/lib/components/po-modal-password-recovery/po-modal-password-recovery-base.component.mjs +172 -172
  10. package/esm2020/lib/components/po-modal-password-recovery/po-modal-password-recovery-error-message/po-modal-password-recovery-error-message.component.mjs +31 -31
  11. package/esm2020/lib/components/po-modal-password-recovery/po-modal-password-recovery.component.mjs +451 -451
  12. package/esm2020/lib/components/po-modal-password-recovery/po-modal-password-recovery.module.mjs +29 -29
  13. package/esm2020/lib/components/po-modal-password-recovery/po-modal-password-recovery.service.mjs +17 -17
  14. package/esm2020/lib/components/po-page-background/index.mjs +3 -3
  15. package/esm2020/lib/components/po-page-background/po-page-background.component.mjs +191 -191
  16. package/esm2020/lib/components/po-page-background/po-page-background.module.mjs +27 -27
  17. package/esm2020/lib/components/po-page-blocked-user/enums/po-page-blocked-user-reason.enum.mjs +17 -17
  18. package/esm2020/lib/components/po-page-blocked-user/index.mjs +8 -8
  19. package/esm2020/lib/components/po-page-blocked-user/interfaces/po-page-blocked-user-reason-params.interface.mjs +2 -2
  20. package/esm2020/lib/components/po-page-blocked-user/literals/i18n/po-page-blocked-user-literals.mjs +78 -78
  21. package/esm2020/lib/components/po-page-blocked-user/po-page-blocked-user-base.component.mjs +170 -170
  22. package/esm2020/lib/components/po-page-blocked-user/po-page-blocked-user-contacts/po-page-blocked-user-contacts.component.mjs +109 -109
  23. package/esm2020/lib/components/po-page-blocked-user/po-page-blocked-user-reason/po-page-blocked-user-reason.component.mjs +104 -104
  24. package/esm2020/lib/components/po-page-blocked-user/po-page-blocked-user.component.mjs +112 -112
  25. package/esm2020/lib/components/po-page-blocked-user/po-page-blocked-user.module.mjs +29 -29
  26. package/esm2020/lib/components/po-page-change-password/index.mjs +7 -7
  27. package/esm2020/lib/components/po-page-change-password/interfaces/po-page-change-password-recovery.interface.mjs +2 -2
  28. package/esm2020/lib/components/po-page-change-password/interfaces/po-page-change-password-requirement.interface.mjs +2 -2
  29. package/esm2020/lib/components/po-page-change-password/interfaces/po-page-change-password.interface.mjs +2 -2
  30. package/esm2020/lib/components/po-page-change-password/literals/i18n/po-page-change-password-literals.mjs +79 -79
  31. package/esm2020/lib/components/po-page-change-password/po-page-change-password-base.component.mjs +186 -186
  32. package/esm2020/lib/components/po-page-change-password/po-page-change-password.component.mjs +423 -423
  33. package/esm2020/lib/components/po-page-change-password/po-page-change-password.module.mjs +30 -30
  34. package/esm2020/lib/components/po-page-change-password/po-page-change-password.service.mjs +17 -17
  35. package/esm2020/lib/components/po-page-dynamic-detail/index.mjs +10 -10
  36. package/esm2020/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-actions.interface.mjs +2 -2
  37. package/esm2020/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-back.interface.mjs +2 -2
  38. package/esm2020/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-edit.interface.mjs +2 -2
  39. package/esm2020/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-remove.interface.mjs +2 -2
  40. package/esm2020/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-field.interface.mjs +2 -2
  41. package/esm2020/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-metadata.interface.mjs +2 -2
  42. package/esm2020/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-options.interface.mjs +2 -2
  43. package/esm2020/lib/components/po-page-dynamic-detail/po-page-dynamic-detail-actions.service.mjs +43 -43
  44. package/esm2020/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.component.mjs +462 -462
  45. package/esm2020/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.module.mjs +53 -53
  46. package/esm2020/lib/components/po-page-dynamic-edit/index.mjs +10 -10
  47. package/esm2020/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-actions.interface.mjs +2 -2
  48. package/esm2020/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-cancel.interface.mjs +2 -2
  49. package/esm2020/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-save-new.interface.mjs +2 -2
  50. package/esm2020/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-save.interface.mjs +2 -2
  51. package/esm2020/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-field.interface.mjs +2 -2
  52. package/esm2020/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-metadata.interface.mjs +2 -2
  53. package/esm2020/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-options.interface.mjs +2 -2
  54. package/esm2020/lib/components/po-page-dynamic-edit/po-page-dynamic-edit-actions.service.mjs +43 -43
  55. package/esm2020/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.component.mjs +572 -572
  56. package/esm2020/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.module.mjs +59 -59
  57. package/esm2020/lib/components/po-page-dynamic-search/index.mjs +7 -7
  58. package/esm2020/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-base.component.mjs +134 -134
  59. package/esm2020/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-literals.interface.mjs +2 -2
  60. package/esm2020/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter.component.mjs +74 -74
  61. package/esm2020/lib/components/po-page-dynamic-search/po-page-dynamic-search-base.component.mjs +260 -252
  62. package/esm2020/lib/components/po-page-dynamic-search/po-page-dynamic-search-filters.interface.mjs +2 -2
  63. package/esm2020/lib/components/po-page-dynamic-search/po-page-dynamic-search-literals.interface.mjs +2 -2
  64. package/esm2020/lib/components/po-page-dynamic-search/po-page-dynamic-search-options.interface.mjs +2 -2
  65. package/esm2020/lib/components/po-page-dynamic-search/po-page-dynamic-search.component.mjs +267 -267
  66. package/esm2020/lib/components/po-page-dynamic-search/po-page-dynamic-search.interface.mjs +2 -2
  67. package/esm2020/lib/components/po-page-dynamic-search/po-page-dynamic-search.module.mjs +54 -54
  68. package/esm2020/lib/components/po-page-dynamic-table/index.mjs +16 -16
  69. package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-actions.interface.mjs +2 -2
  70. package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-detail.interface.mjs +2 -2
  71. package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-duplicate.interface.mjs +2 -2
  72. package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-edit.interface.mjs +2 -2
  73. package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-new.interface.mjs +2 -2
  74. package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-remove-all.interface.mjs +2 -2
  75. package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-remove.interface.mjs +2 -2
  76. package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-action.interface.mjs +2 -2
  77. package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-table-action.interface.mjs +2 -2
  78. package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-field.interface.mjs +2 -2
  79. package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-filters.interface.mjs +2 -2
  80. package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-metadata.interface.mjs +2 -2
  81. package/esm2020/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-options.interface.mjs +2 -2
  82. package/esm2020/lib/components/po-page-dynamic-table/po-page-dynamic-list-base.component.mjs +104 -104
  83. package/esm2020/lib/components/po-page-dynamic-table/po-page-dynamic-table-actions.service.mjs +58 -58
  84. package/esm2020/lib/components/po-page-dynamic-table/po-page-dynamic-table-literals.mjs +63 -63
  85. package/esm2020/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.mjs +831 -803
  86. package/esm2020/lib/components/po-page-dynamic-table/po-page-dynamic-table.module.mjs +52 -52
  87. package/esm2020/lib/components/po-page-job-scheduler/index.mjs +4 -4
  88. package/esm2020/lib/components/po-page-job-scheduler/interfaces/po-job-scheduler-internal.interface.mjs +2 -2
  89. package/esm2020/lib/components/po-page-job-scheduler/interfaces/po-job-scheduler.interface.mjs +2 -2
  90. package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler-base.component.mjs +80 -80
  91. package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler-execution/po-page-job-scheduler-execution.component.mjs +374 -374
  92. package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler-internal.mjs +15 -15
  93. package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler-literals.mjs +195 -195
  94. package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler-lookup.service.mjs +21 -21
  95. package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-page-job-scheduler-parameters.component.mjs +81 -81
  96. package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/po-page-job-scheduler-summary.component.mjs +195 -195
  97. package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler.component.mjs +275 -275
  98. package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler.module.mjs +72 -72
  99. package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler.service.mjs +206 -206
  100. package/esm2020/lib/components/po-page-login/enums/po-page-login-authentication-type.enum.mjs +15 -15
  101. package/esm2020/lib/components/po-page-login/index.mjs +8 -8
  102. package/esm2020/lib/components/po-page-login/interfaces/po-page-login-custom-field.interface.mjs +2 -2
  103. package/esm2020/lib/components/po-page-login/interfaces/po-page-login-literals.interface.mjs +2 -2
  104. package/esm2020/lib/components/po-page-login/interfaces/po-page-login-recovery.interface.mjs +2 -2
  105. package/esm2020/lib/components/po-page-login/interfaces/po-page-login.interface.mjs +2 -2
  106. package/esm2020/lib/components/po-page-login/po-page-login-base.component.mjs +954 -954
  107. package/esm2020/lib/components/po-page-login/po-page-login-popover/po-page-login-popover.component.mjs +139 -139
  108. package/esm2020/lib/components/po-page-login/po-page-login.component.mjs +487 -487
  109. package/esm2020/lib/components/po-page-login/po-page-login.module.mjs +31 -31
  110. package/esm2020/lib/components/po-page-login/po-page-login.service.mjs +31 -31
  111. package/esm2020/lib/index.mjs +4 -4
  112. package/esm2020/lib/po-templates.module.mjs +18 -18
  113. package/esm2020/lib/services/index.mjs +4 -4
  114. package/esm2020/lib/services/po-page-customization/index.mjs +4 -4
  115. package/esm2020/lib/services/po-page-customization/po-page-customization.module.mjs +24 -24
  116. package/esm2020/lib/services/po-page-customization/po-page-customization.service.mjs +85 -85
  117. package/esm2020/lib/services/po-page-customization/po-page-dynamic-options.interface.mjs +2 -2
  118. package/esm2020/lib/services/po-page-dynamic/index.mjs +3 -3
  119. package/esm2020/lib/services/po-page-dynamic/po-page-dynamic-literals.interface.mjs +2 -2
  120. package/esm2020/lib/services/po-page-dynamic/po-page-dynamic.module.mjs +24 -24
  121. package/esm2020/lib/services/po-page-dynamic/po-page-dynamic.service.mjs +102 -102
  122. package/esm2020/lib/services/services.module.mjs +18 -18
  123. package/esm2020/lib/utils/util.mjs +352 -352
  124. package/esm2020/po-ui-ng-templates.mjs +4 -4
  125. package/esm2020/public-api.mjs +2 -2
  126. package/fesm2015/po-ui-ng-templates.mjs +9304 -9269
  127. package/fesm2015/po-ui-ng-templates.mjs.map +1 -1
  128. package/fesm2020/po-ui-ng-templates.mjs +8937 -8902
  129. package/fesm2020/po-ui-ng-templates.mjs.map +1 -1
  130. package/lib/components/components.module.d.ts +16 -16
  131. package/lib/components/index.d.ts +11 -11
  132. package/lib/components/po-modal-password-recovery/enums/po-modal-password-recovery-modal-content.enum.d.ts +15 -15
  133. package/lib/components/po-modal-password-recovery/enums/po-modal-password-recovery-type.enum.d.ts +15 -15
  134. package/lib/components/po-modal-password-recovery/index.d.ts +7 -7
  135. package/lib/components/po-modal-password-recovery/interfaces/po-modal-password-recovery.interface.d.ts +25 -25
  136. package/lib/components/po-modal-password-recovery/literals/i18n/po-modal-password-recovery-literals.d.ts +6 -6
  137. package/lib/components/po-modal-password-recovery/po-modal-password-recovery-base.component.d.ts +283 -283
  138. package/lib/components/po-modal-password-recovery/po-modal-password-recovery-error-message/po-modal-password-recovery-error-message.component.d.ts +14 -14
  139. package/lib/components/po-modal-password-recovery/po-modal-password-recovery.component.d.ts +90 -90
  140. package/lib/components/po-modal-password-recovery/po-modal-password-recovery.module.d.ts +16 -16
  141. package/lib/components/po-modal-password-recovery/po-modal-password-recovery.service.d.ts +13 -13
  142. package/lib/components/po-page-background/index.d.ts +2 -2
  143. package/lib/components/po-page-background/po-page-background.component.d.ts +54 -54
  144. package/lib/components/po-page-background/po-page-background.module.d.ts +16 -16
  145. package/lib/components/po-page-blocked-user/enums/po-page-blocked-user-reason.enum.d.ts +15 -15
  146. package/lib/components/po-page-blocked-user/index.d.ts +7 -7
  147. package/lib/components/po-page-blocked-user/interfaces/po-page-blocked-user-reason-params.interface.d.ts +15 -15
  148. package/lib/components/po-page-blocked-user/literals/i18n/po-page-blocked-user-literals.d.ts +72 -72
  149. package/lib/components/po-page-blocked-user/po-page-blocked-user-base.component.d.ts +146 -146
  150. package/lib/components/po-page-blocked-user/po-page-blocked-user-contacts/po-page-blocked-user-contacts.component.d.ts +19 -19
  151. package/lib/components/po-page-blocked-user/po-page-blocked-user-reason/po-page-blocked-user-reason.component.d.ts +26 -26
  152. package/lib/components/po-page-blocked-user/po-page-blocked-user.component.d.ts +43 -43
  153. package/lib/components/po-page-blocked-user/po-page-blocked-user.module.d.ts +18 -18
  154. package/lib/components/po-page-change-password/index.d.ts +6 -6
  155. package/lib/components/po-page-change-password/interfaces/po-page-change-password-recovery.interface.d.ts +30 -30
  156. package/lib/components/po-page-change-password/interfaces/po-page-change-password-requirement.interface.d.ts +17 -17
  157. package/lib/components/po-page-change-password/interfaces/po-page-change-password.interface.d.ts +13 -13
  158. package/lib/components/po-page-change-password/literals/i18n/po-page-change-password-literals.d.ts +6 -6
  159. package/lib/components/po-page-change-password/po-page-change-password-base.component.d.ts +233 -233
  160. package/lib/components/po-page-change-password/po-page-change-password.component.d.ts +93 -93
  161. package/lib/components/po-page-change-password/po-page-change-password.module.d.ts +17 -17
  162. package/lib/components/po-page-change-password/po-page-change-password.service.d.ts +10 -10
  163. package/lib/components/po-page-dynamic-detail/index.d.ts +9 -9
  164. package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-actions.interface.d.ts +95 -95
  165. package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-back.interface.d.ts +18 -18
  166. package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-edit.interface.d.ts +18 -18
  167. package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-remove.interface.d.ts +18 -18
  168. package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-field.interface.d.ts +16 -16
  169. package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-metadata.interface.d.ts +31 -31
  170. package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-options.interface.d.ts +36 -36
  171. package/lib/components/po-page-dynamic-detail/po-page-dynamic-detail-actions.service.d.ts +18 -18
  172. package/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.component.d.ts +257 -257
  173. package/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.module.d.ts +17 -17
  174. package/lib/components/po-page-dynamic-edit/index.d.ts +9 -9
  175. package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-actions.interface.d.ts +123 -123
  176. package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-cancel.interface.d.ts +18 -18
  177. package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-save-new.interface.d.ts +44 -44
  178. package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-save.interface.d.ts +43 -43
  179. package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-field.interface.d.ts +12 -12
  180. package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-metadata.interface.d.ts +25 -25
  181. package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-options.interface.d.ts +28 -28
  182. package/lib/components/po-page-dynamic-edit/po-page-dynamic-edit-actions.service.d.ts +18 -18
  183. package/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.component.d.ts +329 -329
  184. package/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.module.d.ts +17 -17
  185. package/lib/components/po-page-dynamic-search/index.d.ts +6 -6
  186. package/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-base.component.d.ts +48 -48
  187. package/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-literals.interface.d.ts +15 -15
  188. package/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter.component.d.ts +29 -29
  189. package/lib/components/po-page-dynamic-search/po-page-dynamic-search-base.component.d.ts +184 -183
  190. package/lib/components/po-page-dynamic-search/po-page-dynamic-search-filters.interface.d.ts +14 -14
  191. package/lib/components/po-page-dynamic-search/po-page-dynamic-search-literals.interface.d.ts +21 -21
  192. package/lib/components/po-page-dynamic-search/po-page-dynamic-search-options.interface.d.ts +59 -59
  193. package/lib/components/po-page-dynamic-search/po-page-dynamic-search.component.d.ts +62 -62
  194. package/lib/components/po-page-dynamic-search/po-page-dynamic-search.interface.d.ts +29 -29
  195. package/lib/components/po-page-dynamic-search/po-page-dynamic-search.module.d.ts +18 -18
  196. package/lib/components/po-page-dynamic-table/index.d.ts +15 -15
  197. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-actions.interface.d.ts +196 -196
  198. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-detail.interface.d.ts +21 -21
  199. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-duplicate.interface.d.ts +29 -29
  200. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-edit.interface.d.ts +22 -22
  201. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-new.interface.d.ts +18 -18
  202. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-remove-all.interface.d.ts +39 -39
  203. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-remove.interface.d.ts +18 -18
  204. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-action.interface.d.ts +82 -82
  205. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-table-action.interface.d.ts +91 -83
  206. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-field.interface.d.ts +49 -38
  207. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-filters.interface.d.ts +18 -18
  208. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-metadata.interface.d.ts +31 -31
  209. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-options.interface.d.ts +91 -91
  210. package/lib/components/po-page-dynamic-table/po-page-dynamic-list-base.component.d.ts +130 -130
  211. package/lib/components/po-page-dynamic-table/po-page-dynamic-table-actions.service.d.ts +26 -26
  212. package/lib/components/po-page-dynamic-table/po-page-dynamic-table-literals.d.ts +62 -62
  213. package/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.d.ts +314 -303
  214. package/lib/components/po-page-dynamic-table/po-page-dynamic-table.module.d.ts +19 -19
  215. package/lib/components/po-page-job-scheduler/index.d.ts +3 -3
  216. package/lib/components/po-page-job-scheduler/interfaces/po-job-scheduler-internal.interface.d.ts +14 -14
  217. package/lib/components/po-page-job-scheduler/interfaces/po-job-scheduler.interface.d.ts +48 -48
  218. package/lib/components/po-page-job-scheduler/po-page-job-scheduler-base.component.d.ts +176 -176
  219. package/lib/components/po-page-job-scheduler/po-page-job-scheduler-execution/po-page-job-scheduler-execution.component.d.ts +52 -52
  220. package/lib/components/po-page-job-scheduler/po-page-job-scheduler-internal.d.ts +9 -9
  221. package/lib/components/po-page-job-scheduler/po-page-job-scheduler-literals.d.ts +194 -194
  222. package/lib/components/po-page-job-scheduler/po-page-job-scheduler-lookup.service.d.ts +16 -16
  223. package/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-page-job-scheduler-parameters.component.d.ts +14 -14
  224. package/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/po-page-job-scheduler-summary.component.d.ts +36 -36
  225. package/lib/components/po-page-job-scheduler/po-page-job-scheduler.component.d.ts +116 -116
  226. package/lib/components/po-page-job-scheduler/po-page-job-scheduler.module.d.ts +13 -13
  227. package/lib/components/po-page-job-scheduler/po-page-job-scheduler.service.d.ts +32 -32
  228. package/lib/components/po-page-login/enums/po-page-login-authentication-type.enum.d.ts +13 -13
  229. package/lib/components/po-page-login/index.d.ts +7 -7
  230. package/lib/components/po-page-login/interfaces/po-page-login-custom-field.interface.d.ts +72 -72
  231. package/lib/components/po-page-login/interfaces/po-page-login-literals.interface.d.ts +59 -59
  232. package/lib/components/po-page-login/interfaces/po-page-login-recovery.interface.d.ts +30 -30
  233. package/lib/components/po-page-login/interfaces/po-page-login.interface.d.ts +15 -15
  234. package/lib/components/po-page-login/po-page-login-base.component.d.ts +663 -663
  235. package/lib/components/po-page-login/po-page-login-popover/po-page-login-popover.component.d.ts +19 -19
  236. package/lib/components/po-page-login/po-page-login.component.d.ts +72 -72
  237. package/lib/components/po-page-login/po-page-login.module.d.ts +18 -18
  238. package/lib/components/po-page-login/po-page-login.service.d.ts +12 -12
  239. package/lib/index.d.ts +3 -3
  240. package/lib/po-templates.module.d.ts +8 -8
  241. package/lib/services/index.d.ts +3 -3
  242. package/lib/services/po-page-customization/index.d.ts +3 -3
  243. package/lib/services/po-page-customization/po-page-customization.module.d.ts +13 -13
  244. package/lib/services/po-page-customization/po-page-customization.service.d.ts +19 -19
  245. package/lib/services/po-page-customization/po-page-dynamic-options.interface.d.ts +8 -8
  246. package/lib/services/po-page-dynamic/index.d.ts +2 -2
  247. package/lib/services/po-page-dynamic/po-page-dynamic-literals.interface.d.ts +4 -4
  248. package/lib/services/po-page-dynamic/po-page-dynamic.module.d.ts +13 -13
  249. package/lib/services/po-page-dynamic/po-page-dynamic.service.d.ts +31 -31
  250. package/lib/services/services.module.d.ts +8 -8
  251. package/lib/utils/util.d.ts +152 -152
  252. package/package.json +9 -6
  253. package/po-ui-ng-templates-6.3.0.tgz +0 -0
  254. package/po-ui-ng-templates.d.ts +5 -5
  255. package/public-api.d.ts +1 -1
  256. package/schematics/README.md +14 -14
  257. package/schematics/collection.json +50 -50
  258. package/schematics/ng-add/index.d.ts +8 -8
  259. package/schematics/ng-add/index.js +60 -60
  260. package/schematics/ng-add/index.spec.d.ts +1 -1
  261. package/schematics/ng-add/index.spec.js +90 -90
  262. package/schematics/ng-add/schema.json +7 -7
  263. package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  264. package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  265. package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +14 -14
  266. package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  267. package/schematics/ng-generate/po-page-blocked-user/index.d.ts +4 -4
  268. package/schematics/ng-generate/po-page-blocked-user/index.js +12 -12
  269. package/schematics/ng-generate/po-page-blocked-user/index.spec.d.ts +1 -1
  270. package/schematics/ng-generate/po-page-blocked-user/index.spec.js +120 -120
  271. package/schematics/ng-generate/po-page-blocked-user/schema.d.ts +3 -3
  272. package/schematics/ng-generate/po-page-blocked-user/schema.js +2 -2
  273. package/schematics/ng-generate/po-page-blocked-user/schema.json +67 -67
  274. package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  275. package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  276. package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +14 -14
  277. package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  278. package/schematics/ng-generate/po-page-change-password/index.d.ts +4 -4
  279. package/schematics/ng-generate/po-page-change-password/index.js +12 -12
  280. package/schematics/ng-generate/po-page-change-password/index.spec.d.ts +1 -1
  281. package/schematics/ng-generate/po-page-change-password/index.spec.js +120 -120
  282. package/schematics/ng-generate/po-page-change-password/schema.d.ts +3 -3
  283. package/schematics/ng-generate/po-page-change-password/schema.js +2 -2
  284. package/schematics/ng-generate/po-page-change-password/schema.json +67 -67
  285. package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  286. package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
  287. package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  288. package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +23 -23
  289. package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  290. package/schematics/ng-generate/po-page-dynamic-detail/index.d.ts +4 -4
  291. package/schematics/ng-generate/po-page-dynamic-detail/index.js +12 -12
  292. package/schematics/ng-generate/po-page-dynamic-detail/index.spec.d.ts +1 -1
  293. package/schematics/ng-generate/po-page-dynamic-detail/index.spec.js +120 -120
  294. package/schematics/ng-generate/po-page-dynamic-detail/schema.d.ts +3 -3
  295. package/schematics/ng-generate/po-page-dynamic-detail/schema.js +2 -2
  296. package/schematics/ng-generate/po-page-dynamic-detail/schema.json +67 -67
  297. package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  298. package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
  299. package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  300. package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +23 -23
  301. package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  302. package/schematics/ng-generate/po-page-dynamic-edit/index.d.ts +4 -4
  303. package/schematics/ng-generate/po-page-dynamic-edit/index.js +12 -12
  304. package/schematics/ng-generate/po-page-dynamic-edit/index.spec.d.ts +1 -1
  305. package/schematics/ng-generate/po-page-dynamic-edit/index.spec.js +120 -120
  306. package/schematics/ng-generate/po-page-dynamic-edit/schema.d.ts +3 -3
  307. package/schematics/ng-generate/po-page-dynamic-edit/schema.js +2 -2
  308. package/schematics/ng-generate/po-page-dynamic-edit/schema.json +67 -67
  309. package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  310. package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
  311. package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  312. package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +28 -28
  313. package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  314. package/schematics/ng-generate/po-page-dynamic-search/index.d.ts +4 -4
  315. package/schematics/ng-generate/po-page-dynamic-search/index.js +12 -12
  316. package/schematics/ng-generate/po-page-dynamic-search/index.spec.d.ts +1 -1
  317. package/schematics/ng-generate/po-page-dynamic-search/index.spec.js +120 -120
  318. package/schematics/ng-generate/po-page-dynamic-search/schema.d.ts +3 -3
  319. package/schematics/ng-generate/po-page-dynamic-search/schema.js +2 -2
  320. package/schematics/ng-generate/po-page-dynamic-search/schema.json +67 -67
  321. package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  322. package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
  323. package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  324. package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +21 -21
  325. package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  326. package/schematics/ng-generate/po-page-dynamic-table/index.d.ts +4 -4
  327. package/schematics/ng-generate/po-page-dynamic-table/index.js +12 -12
  328. package/schematics/ng-generate/po-page-dynamic-table/index.spec.d.ts +1 -1
  329. package/schematics/ng-generate/po-page-dynamic-table/index.spec.js +120 -120
  330. package/schematics/ng-generate/po-page-dynamic-table/schema.d.ts +3 -3
  331. package/schematics/ng-generate/po-page-dynamic-table/schema.js +2 -2
  332. package/schematics/ng-generate/po-page-dynamic-table/schema.json +67 -67
  333. package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  334. package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +3 -3
  335. package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  336. package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +17 -17
  337. package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  338. package/schematics/ng-generate/po-page-job-scheduler/index.d.ts +4 -4
  339. package/schematics/ng-generate/po-page-job-scheduler/index.js +12 -12
  340. package/schematics/ng-generate/po-page-job-scheduler/index.spec.d.ts +1 -1
  341. package/schematics/ng-generate/po-page-job-scheduler/index.spec.js +120 -120
  342. package/schematics/ng-generate/po-page-job-scheduler/schema.d.ts +3 -3
  343. package/schematics/ng-generate/po-page-job-scheduler/schema.js +2 -2
  344. package/schematics/ng-generate/po-page-job-scheduler/schema.json +67 -67
  345. package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  346. package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  347. package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +14 -14
  348. package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  349. package/schematics/ng-generate/po-page-login/index.d.ts +4 -4
  350. package/schematics/ng-generate/po-page-login/index.js +12 -12
  351. package/schematics/ng-generate/po-page-login/index.spec.d.ts +1 -1
  352. package/schematics/ng-generate/po-page-login/index.spec.js +120 -120
  353. package/schematics/ng-generate/po-page-login/schema.d.ts +3 -3
  354. package/schematics/ng-generate/po-page-login/schema.js +2 -2
  355. package/schematics/ng-generate/po-page-login/schema.json +67 -67
  356. package/po-ui-ng-templates-6.0.0-rc.1.tgz +0 -0
@@ -1,451 +1,451 @@
1
- import { Component, ViewChild } from '@angular/core';
2
- import { isExternalLink } from '../../utils/util';
3
- import { PoModalPasswordRecoveryBaseComponent } from './po-modal-password-recovery-base.component';
4
- import { PoModalPasswordRecoveryModalContent } from './enums/po-modal-password-recovery-modal-content.enum';
5
- import { PoModalPasswordRecoveryType } from './enums/po-modal-password-recovery-type.enum';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/router";
8
- import * as i2 from "@po-ui/ng-components";
9
- import * as i3 from "./po-modal-password-recovery.service";
10
- import * as i4 from "@angular/common";
11
- import * as i5 from "@angular/forms";
12
- import * as i6 from "./po-modal-password-recovery-error-message/po-modal-password-recovery-error-message.component";
13
- const _c0 = ["emailForm"];
14
- const _c1 = ["recoveryModal"];
15
- const _c2 = ["smsCodeForm"];
16
- function PoModalPasswordRecoveryComponent_div_3_div_6_Template(rf, ctx) { if (rf & 1) {
17
- const _r11 = i0.ɵɵgetCurrentView();
18
- i0.ɵɵelementStart(0, "div");
19
- i0.ɵɵelementStart(1, "po-radio-group", 15);
20
- i0.ɵɵlistener("ngModelChange", function PoModalPasswordRecoveryComponent_div_3_div_6_Template_po_radio_group_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(2); return ctx_r10.chosenTypeFormOption = $event; })("p-change", function PoModalPasswordRecoveryComponent_div_3_div_6_Template_po_radio_group_p_change_1_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r12 = i0.ɵɵnextContext(2); return ctx_r12.getInputType($event); });
21
- i0.ɵɵelementEnd();
22
- i0.ɵɵelementEnd();
23
- } if (rf & 2) {
24
- const ctx_r5 = i0.ɵɵnextContext(2);
25
- i0.ɵɵadvance(1);
26
- i0.ɵɵproperty("ngModel", ctx_r5.chosenTypeFormOption)("p-options", ctx_r5.typeFormOptions);
27
- } }
28
- function PoModalPasswordRecoveryComponent_div_3_po_email_8_Template(rf, ctx) { if (rf & 1) {
29
- const _r14 = i0.ɵɵgetCurrentView();
30
- i0.ɵɵelementStart(0, "po-email", 16);
31
- i0.ɵɵlistener("ngModelChange", function PoModalPasswordRecoveryComponent_div_3_po_email_8_Template_po_email_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(2); return ctx_r13.email = $event; })("p-change-model", function PoModalPasswordRecoveryComponent_div_3_po_email_8_Template_po_email_p_change_model_0_listener() { i0.ɵɵrestoreView(_r14); i0.ɵɵnextContext(); const _r4 = i0.ɵɵreference(5); const ctx_r15 = i0.ɵɵnextContext(); return ctx_r15.formModelChangesCheck(_r4); });
32
- i0.ɵɵelementEnd();
33
- } if (rf & 2) {
34
- const ctx_r6 = i0.ɵɵnextContext(2);
35
- i0.ɵɵproperty("ngModel", ctx_r6.email)("p-label", ctx_r6.literals.insertEmail);
36
- } }
37
- function PoModalPasswordRecoveryComponent_div_3_po_input_9_Template(rf, ctx) { if (rf & 1) {
38
- const _r17 = i0.ɵɵgetCurrentView();
39
- i0.ɵɵelementStart(0, "po-input", 17);
40
- i0.ɵɵlistener("ngModelChange", function PoModalPasswordRecoveryComponent_div_3_po_input_9_Template_po_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(2); return ctx_r16.phone = $event; })("p-change-model", function PoModalPasswordRecoveryComponent_div_3_po_input_9_Template_po_input_p_change_model_0_listener() { i0.ɵɵrestoreView(_r17); i0.ɵɵnextContext(); const _r4 = i0.ɵɵreference(5); const ctx_r18 = i0.ɵɵnextContext(); return ctx_r18.formModelChangesCheck(_r4); });
41
- i0.ɵɵelementEnd();
42
- } if (rf & 2) {
43
- const ctx_r7 = i0.ɵɵnextContext(2);
44
- i0.ɵɵproperty("ngModel", ctx_r7.phone)("p-label", ctx_r7.literals.insertPhone)("p-mask", ctx_r7.phoneMask)("p-maxlength", ctx_r7.maxLength)("p-minlength", ctx_r7.minLength);
45
- } }
46
- function PoModalPasswordRecoveryComponent_div_3_po_modal_password_recovery_error_message_11_Template(rf, ctx) { if (rf & 1) {
47
- i0.ɵɵelement(0, "po-modal-password-recovery-error-message", 18);
48
- } if (rf & 2) {
49
- const ctx_r8 = i0.ɵɵnextContext(2);
50
- i0.ɵɵproperty("p-text", ctx_r8.type === "sms" ? ctx_r8.literals.phoneErrorMessagePhrase : ctx_r8.literals.emailErrorMessagePhrase);
51
- } }
52
- function PoModalPasswordRecoveryComponent_div_3_span_14_Template(rf, ctx) { if (rf & 1) {
53
- i0.ɵɵelementStart(0, "span");
54
- i0.ɵɵtext(1);
55
- i0.ɵɵelementStart(2, "a", 19);
56
- i0.ɵɵtext(3);
57
- i0.ɵɵelementEnd();
58
- i0.ɵɵelementEnd();
59
- } if (rf & 2) {
60
- const ctx_r9 = i0.ɵɵnextContext(2);
61
- i0.ɵɵadvance(1);
62
- i0.ɵɵtextInterpolate1(" ", ctx_r9.literals.prepositionIn, " ");
63
- i0.ɵɵadvance(1);
64
- i0.ɵɵpropertyInterpolate1("href", "mailto:", ctx_r9.contactEmail, "", i0.ɵɵsanitizeUrl);
65
- i0.ɵɵadvance(1);
66
- i0.ɵɵtextInterpolate1(" ", ctx_r9.contactEmail, " ");
67
- } }
68
- function PoModalPasswordRecoveryComponent_div_3_Template(rf, ctx) { if (rf & 1) {
69
- i0.ɵɵelementStart(0, "div", 4);
70
- i0.ɵɵelementStart(1, "div", 5);
71
- i0.ɵɵtext(2);
72
- i0.ɵɵelementEnd();
73
- i0.ɵɵelementStart(3, "div", 6);
74
- i0.ɵɵelementStart(4, "form", null, 7);
75
- i0.ɵɵtemplate(6, PoModalPasswordRecoveryComponent_div_3_div_6_Template, 2, 2, "div", 8);
76
- i0.ɵɵelementStart(7, "div", 9);
77
- i0.ɵɵtemplate(8, PoModalPasswordRecoveryComponent_div_3_po_email_8_Template, 1, 2, "po-email", 10);
78
- i0.ɵɵtemplate(9, PoModalPasswordRecoveryComponent_div_3_po_input_9_Template, 1, 5, "po-input", 11);
79
- i0.ɵɵelementEnd();
80
- i0.ɵɵelementStart(10, "div", 12);
81
- i0.ɵɵtemplate(11, PoModalPasswordRecoveryComponent_div_3_po_modal_password_recovery_error_message_11_Template, 1, 1, "po-modal-password-recovery-error-message", 13);
82
- i0.ɵɵelementEnd();
83
- i0.ɵɵelementEnd();
84
- i0.ɵɵelementEnd();
85
- i0.ɵɵelementStart(12, "div", 14);
86
- i0.ɵɵtext(13);
87
- i0.ɵɵtemplate(14, PoModalPasswordRecoveryComponent_div_3_span_14_Template, 4, 3, "span", 8);
88
- i0.ɵɵtext(15);
89
- i0.ɵɵelementEnd();
90
- i0.ɵɵelementEnd();
91
- } if (rf & 2) {
92
- const ctx_r1 = i0.ɵɵnextContext();
93
- i0.ɵɵadvance(2);
94
- i0.ɵɵtextInterpolate1(" ", ctx_r1.emailModalPhrases.firstPhrase, " ");
95
- i0.ɵɵadvance(4);
96
- i0.ɵɵproperty("ngIf", ctx_r1.modalPasswordRecoveryTypeAll);
97
- i0.ɵɵadvance(2);
98
- i0.ɵɵproperty("ngIf", ctx_r1.type === "email" || ctx_r1.type === "all");
99
- i0.ɵɵadvance(1);
100
- i0.ɵɵproperty("ngIf", ctx_r1.type === "sms");
101
- i0.ɵɵadvance(2);
102
- i0.ɵɵproperty("ngIf", ctx_r1.invalidEmail && ctx_r1.control.dirty);
103
- i0.ɵɵadvance(2);
104
- i0.ɵɵtextInterpolate1(" ", ctx_r1.emailModalPhrases.secondPhrase, " ");
105
- i0.ɵɵadvance(1);
106
- i0.ɵɵproperty("ngIf", ctx_r1.contactEmail);
107
- i0.ɵɵadvance(1);
108
- i0.ɵɵtextInterpolate1(" ", ctx_r1.endpoint, " ");
109
- } }
110
- function PoModalPasswordRecoveryComponent_div_4_po_modal_password_recovery_error_message_9_Template(rf, ctx) { if (rf & 1) {
111
- i0.ɵɵelement(0, "po-modal-password-recovery-error-message", 18);
112
- } if (rf & 2) {
113
- const ctx_r21 = i0.ɵɵnextContext(2);
114
- i0.ɵɵproperty("p-text", ctx_r21.smsCodeErrorMessage || ctx_r21.literals.smsCodeErrorMessagePhrase);
115
- } }
116
- function PoModalPasswordRecoveryComponent_div_4_po_modal_password_recovery_error_message_10_Template(rf, ctx) { if (rf & 1) {
117
- i0.ɵɵelement(0, "po-modal-password-recovery-error-message", 18);
118
- } if (rf & 2) {
119
- const ctx_r22 = i0.ɵɵnextContext(2);
120
- i0.ɵɵproperty("p-text", ctx_r22.codeError);
121
- } }
122
- function PoModalPasswordRecoveryComponent_div_4_Template(rf, ctx) { if (rf & 1) {
123
- const _r24 = i0.ɵɵgetCurrentView();
124
- i0.ɵɵelementStart(0, "div", 4, 20);
125
- i0.ɵɵelementStart(2, "div", 5);
126
- i0.ɵɵtext(3);
127
- i0.ɵɵelementEnd();
128
- i0.ɵɵelementStart(4, "div", 6);
129
- i0.ɵɵelementStart(5, "form", null, 21);
130
- i0.ɵɵelementStart(7, "po-input", 22);
131
- i0.ɵɵlistener("ngModelChange", function PoModalPasswordRecoveryComponent_div_4_Template_po_input_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(); return ctx_r23.smsCode = $event; })("p-change-model", function PoModalPasswordRecoveryComponent_div_4_Template_po_input_p_change_model_7_listener() { i0.ɵɵrestoreView(_r24); const _r20 = i0.ɵɵreference(6); const ctx_r25 = i0.ɵɵnextContext(); return ctx_r25.formModelChangesCheck(_r20); });
132
- i0.ɵɵelementEnd();
133
- i0.ɵɵelementStart(8, "div", 12);
134
- i0.ɵɵtemplate(9, PoModalPasswordRecoveryComponent_div_4_po_modal_password_recovery_error_message_9_Template, 1, 1, "po-modal-password-recovery-error-message", 13);
135
- i0.ɵɵtemplate(10, PoModalPasswordRecoveryComponent_div_4_po_modal_password_recovery_error_message_10_Template, 1, 1, "po-modal-password-recovery-error-message", 13);
136
- i0.ɵɵelementEnd();
137
- i0.ɵɵelementEnd();
138
- i0.ɵɵelementEnd();
139
- i0.ɵɵelementStart(11, "div", 14);
140
- i0.ɵɵtext(12);
141
- i0.ɵɵelementStart(13, "span", 23);
142
- i0.ɵɵlistener("click", function PoModalPasswordRecoveryComponent_div_4_Template_span_click_13_listener() { i0.ɵɵrestoreView(_r24); const ctx_r26 = i0.ɵɵnextContext(); return ctx_r26.resendSmsCode(); });
143
- i0.ɵɵtext(14);
144
- i0.ɵɵelementEnd();
145
- i0.ɵɵelementEnd();
146
- i0.ɵɵelementEnd();
147
- } if (rf & 2) {
148
- const ctx_r2 = i0.ɵɵnextContext();
149
- i0.ɵɵadvance(3);
150
- i0.ɵɵtextInterpolate(ctx_r2.literals.sentSmsCodePhrase);
151
- i0.ɵɵadvance(4);
152
- i0.ɵɵproperty("ngModel", ctx_r2.smsCode)("p-label", ctx_r2.literals.insertCode)("p-mask", ctx_r2.codeMask);
153
- i0.ɵɵadvance(2);
154
- i0.ɵɵproperty("ngIf", ctx_r2.invalidEmail);
155
- i0.ɵɵadvance(1);
156
- i0.ɵɵproperty("ngIf", ctx_r2.showCustomCodeError);
157
- i0.ɵɵadvance(2);
158
- i0.ɵɵtextInterpolate1(" ", ctx_r2.literals.sendAgainPhrase, " ");
159
- i0.ɵɵadvance(2);
160
- i0.ɵɵtextInterpolate(ctx_r2.literals.sendAgain);
161
- } }
162
- function PoModalPasswordRecoveryComponent_div_5_Template(rf, ctx) { if (rf & 1) {
163
- i0.ɵɵelementStart(0, "div", 4, 24);
164
- i0.ɵɵelement(2, "img", 25);
165
- i0.ɵɵelementStart(3, "div", 26);
166
- i0.ɵɵtext(4);
167
- i0.ɵɵelementEnd();
168
- i0.ɵɵelementEnd();
169
- } if (rf & 2) {
170
- const ctx_r3 = i0.ɵɵnextContext();
171
- i0.ɵɵadvance(4);
172
- i0.ɵɵtextInterpolate1(" ", ctx_r3.literals.emailSentConfirmationPhrase, " ");
173
- } }
174
- /**
175
- * @docsExtends PoModalPasswordRecoveryBaseComponent
176
- *
177
- * @example
178
- *
179
- * <example name="po-modal-password-recovery-basic" title="PO Modal Password Recovery Basic">
180
- * <file name="sample-po-modal-password-recovery-basic/sample-po-modal-password-recovery-basic.component.html"> </file>
181
- * <file name="sample-po-modal-password-recovery-basic/sample-po-modal-password-recovery-basic.component.ts"> </file>
182
- * </example>
183
- *
184
- * <example name="po-modal-password-recovery-labs" title="PO Modal Password Recovery Labs">
185
- * <file name="sample-po-modal-password-recovery-labs/sample-po-modal-password-recovery-labs.component.html"> </file>
186
- * <file name="sample-po-modal-password-recovery-labs/sample-po-modal-password-recovery-labs.component.ts"> </file>
187
- * </example>
188
- *
189
- * <example name="po-modal-password-recovery-request" title="PO Modal Password Recovery Request">
190
- * <file name="sample-po-modal-password-recovery-request/sample-po-modal-password-recovery-request.component.html"> </file>
191
- * <file name="sample-po-modal-password-recovery-request/sample-po-modal-password-recovery-request.component.ts"> </file>
192
- * </example>
193
- */
194
- export class PoModalPasswordRecoveryComponent extends PoModalPasswordRecoveryBaseComponent {
195
- constructor(router, poI18nPipe, poModalPasswordRecoveryService, poLanguageService) {
196
- super(poLanguageService);
197
- this.router = router;
198
- this.poI18nPipe = poI18nPipe;
199
- this.poModalPasswordRecoveryService = poModalPasswordRecoveryService;
200
- this.chosenTypeFormOption = PoModalPasswordRecoveryType.Email;
201
- this.codeMask = '9 9 9 9 9 9';
202
- this.emailModal = true;
203
- this.emailModalPhrases = { firstPhrase: null, secondPhrase: null };
204
- this.endpoint = '.';
205
- this.invalidCode = false;
206
- this.invalidEmail = false;
207
- this.modalType = PoModalPasswordRecoveryModalContent.Email;
208
- this.submittedCodeValue = {};
209
- this.submittedContactValue = {};
210
- this.primaryAction = { label: undefined, action: () => { } };
211
- this.secondaryAction = { label: undefined, action: () => { } };
212
- this.typeFormOptions = [
213
- { label: 'e-mail', value: PoModalPasswordRecoveryType.Email },
214
- { label: 'SMS', value: PoModalPasswordRecoveryType.SMS }
215
- ];
216
- }
217
- ngOnDestroy() {
218
- if (this.passwordRecoverySubscription) {
219
- this.passwordRecoverySubscription.unsubscribe();
220
- }
221
- if (this.smsCodeSubscription) {
222
- this.smsCodeSubscription.unsubscribe();
223
- }
224
- }
225
- completed() {
226
- this.cancelAction();
227
- }
228
- formModelChangesCheck(form) {
229
- const invalidForm = form.invalid;
230
- this.invalidEmail = invalidForm && form.dirty;
231
- this.primaryAction.disabled = invalidForm;
232
- if (this.modalType === PoModalPasswordRecoveryModalContent.SMSCode) {
233
- const codeError = this.codeError !== undefined && this.codeError !== '';
234
- this.showCustomCodeError = codeError && form.pristine;
235
- }
236
- }
237
- getInputType(type) {
238
- this.type = type;
239
- this.pipeModalPhrases();
240
- setTimeout(() => {
241
- this.control = this.emailForm.controls[type];
242
- this.formModelChangesCheck(this.emailForm);
243
- this.resetFormFields(this.control);
244
- });
245
- }
246
- open() {
247
- const control = this.checkFormType(this.type);
248
- this.control = this.emailForm.controls[control];
249
- this.setEmailModalPhrasesAndActions();
250
- this.formModelChangesCheck(this.emailForm);
251
- this.recoveryModalElement.open();
252
- }
253
- openConfirmation() {
254
- this.modalTitle = this.literals.emailSentTitle;
255
- this.modalType = PoModalPasswordRecoveryModalContent.Confirmation;
256
- this.setActions(this.cancelAction, this.literals.closeButton, this.submitAction, this.literals.resendEmailButton, false);
257
- }
258
- openSmsCode() {
259
- this.modalTitle = this.literals.typeCodeTitle;
260
- this.modalType = PoModalPasswordRecoveryModalContent.SMSCode;
261
- this.setActions(this.submitSmsCodeAction, this.literals.continueButton, this.cancelAction, this.literals.cancelButton, true);
262
- setTimeout(() => {
263
- this.control = this.smsCodeForm.controls['sms'];
264
- this.formModelChangesCheck(this.smsCodeForm);
265
- });
266
- }
267
- resendSmsCode() {
268
- this.incrementRetryAttempts();
269
- if (this.urlRecovery) {
270
- this.submitActionRequest(this.submittedContactValue, this.type);
271
- }
272
- else {
273
- this.submit.emit(this.submittedContactValue);
274
- }
275
- }
276
- assignSmsResponse(responseObj) {
277
- this.smsBodyResponse = Object.assign({}, { hash: responseObj.hash });
278
- if (responseObj.urlValidationCode) {
279
- this.smsBodyResponse = Object.assign(this.smsBodyResponse, { urlValidationCode: responseObj.urlValidationCode });
280
- }
281
- }
282
- cancelAction() {
283
- this.resetFormFields(this.control);
284
- this.submittedContactValue = {};
285
- this.chosenTypeFormOption = PoModalPasswordRecoveryType.Email;
286
- this.modalType = PoModalPasswordRecoveryModalContent.Email;
287
- this.type = this.modalPasswordRecoveryTypeAll ? PoModalPasswordRecoveryType.All : this.type;
288
- this.recoveryModalElement.close();
289
- }
290
- checkFormType(type) {
291
- return type !== PoModalPasswordRecoveryType.All ? type : PoModalPasswordRecoveryType.Email;
292
- }
293
- formReset(control) {
294
- control.markAsPristine();
295
- control.markAsUntouched();
296
- control.updateValueAndValidity();
297
- }
298
- getEmitValue(type) {
299
- return type === PoModalPasswordRecoveryType.SMS ? this.phone : this.email;
300
- }
301
- incrementRetryAttempts() {
302
- this.submittedContactValue.retry = this.submittedContactValue.retry + 1 || 1;
303
- }
304
- openExternalLink(url, queryParam) {
305
- window.open(`${url}?token=${queryParam}`, '_self');
306
- }
307
- openInternalLink(url, endpoint, queryParam) {
308
- this.router.navigate([`${url}/${endpoint}`], { queryParams: { token: queryParam } });
309
- }
310
- pipeModalPhrases() {
311
- if (this.type === PoModalPasswordRecoveryType.SMS) {
312
- this.emailModalPhrases.firstPhrase = this.setPipeArguments(this.literals.recoveryPasswordPhrase, this.literals.sms);
313
- this.emailModalPhrases.secondPhrase = this.setPipeArguments(this.literals.supportContact, this.literals.telephone);
314
- }
315
- else {
316
- this.emailModalPhrases.firstPhrase = this.setPipeArguments(this.literals.recoveryPasswordPhrase, this.literals.email);
317
- this.emailModalPhrases.secondPhrase = this.setPipeArguments(this.literals.supportContact, this.literals.email);
318
- }
319
- }
320
- redirectToChangePassword(recoveryToken) {
321
- const urlChangePassword = recoveryToken.urlChangePassword;
322
- if (urlChangePassword) {
323
- isExternalLink(urlChangePassword)
324
- ? this.openExternalLink(urlChangePassword, recoveryToken.token)
325
- : this.openInternalLink(this.urlRecovery, urlChangePassword, recoveryToken.token);
326
- }
327
- else {
328
- const changePasswordEndpoint = 'changePassword';
329
- this.openInternalLink(this.urlRecovery, changePasswordEndpoint, recoveryToken.token);
330
- }
331
- }
332
- resetFormFields(control) {
333
- this.formReset(control);
334
- this.email = undefined;
335
- this.phone = undefined;
336
- this.smsCode = undefined;
337
- }
338
- setActions(primaryAction, primarylabel, secondaryAction, secondaryLabel, disabled) {
339
- this.primaryAction.action = () => primaryAction.call(this);
340
- this.primaryAction.label = primarylabel;
341
- this.secondaryAction.action = () => secondaryAction.call(this);
342
- this.secondaryAction.label = secondaryLabel;
343
- this.primaryAction.disabled = disabled;
344
- }
345
- setEmailModalPhrasesAndActions() {
346
- this.modalTitle = this.literals.forgotPasswordTitle;
347
- this.pipeModalPhrases();
348
- this.modalPasswordRecoveryTypeAll = this.type === PoModalPasswordRecoveryType.All;
349
- this.setActions(this.submitAction, this.literals.sendButton, this.cancelAction, this.literals.cancelButton, true);
350
- }
351
- setRequestEndpoint(urlValidationCode) {
352
- const endpoint = urlValidationCode || 'validation';
353
- return `${this.urlRecovery}/${endpoint}`;
354
- }
355
- setPipeArguments(literalAttr, arg) {
356
- return this.poI18nPipe.transform(literalAttr, arg);
357
- }
358
- submitAction() {
359
- this.modalType === PoModalPasswordRecoveryModalContent.Confirmation
360
- ? this.incrementRetryAttempts()
361
- : this.formReset(this.control);
362
- this.submittedContactValue[this.checkFormType(this.type)] = this.getEmitValue(this.type);
363
- if (this.urlRecovery) {
364
- this.submitActionRequest(this.submittedContactValue, this.type);
365
- }
366
- else {
367
- this.submit.emit(this.submittedContactValue);
368
- }
369
- }
370
- submitActionRequest(data, modalType) {
371
- const params = modalType === PoModalPasswordRecoveryType.SMS ? { type: 'sms' } : undefined;
372
- this.passwordRecoverySubscription = this.poModalPasswordRecoveryService
373
- .post(this.urlRecovery, data, params)
374
- .subscribe(response => {
375
- if ((modalType === PoModalPasswordRecoveryType.Email || modalType === PoModalPasswordRecoveryType.All) &&
376
- response.status === 204) {
377
- this.openConfirmation();
378
- }
379
- else if (modalType === PoModalPasswordRecoveryType.SMS && response.status === 200) {
380
- this.assignSmsResponse(response.body);
381
- this.openSmsCode();
382
- }
383
- });
384
- }
385
- submitSmsCodeAction() {
386
- this.submittedCodeValue.code = this.smsCode;
387
- if (this.urlRecovery) {
388
- this.submittedCodeValue = Object.assign(this.submittedCodeValue, { hash: this.smsBodyResponse.hash });
389
- this.submitSmsCodeRequest(this.submittedCodeValue);
390
- }
391
- else {
392
- this.codeSubmit.emit(this.submittedCodeValue);
393
- }
394
- this.resetFormFields(this.control);
395
- }
396
- submitSmsCodeRequest(data) {
397
- this.smsCodeSubscription = this.poModalPasswordRecoveryService
398
- .post(this.setRequestEndpoint(this.smsBodyResponse.urlValidationCode), data)
399
- .subscribe(response => {
400
- const successStatus = response.status === 200;
401
- if (successStatus) {
402
- this.completed();
403
- this.redirectToChangePassword(response.body);
404
- }
405
- }, error => {
406
- this.codeError = error.error.message;
407
- this.openSmsCode();
408
- });
409
- }
410
- }
411
- PoModalPasswordRecoveryComponent.ɵfac = function PoModalPasswordRecoveryComponent_Factory(t) { return new (t || PoModalPasswordRecoveryComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.PoI18nPipe), i0.ɵɵdirectiveInject(i3.PoModalPasswordRecoveryService), i0.ɵɵdirectiveInject(i2.PoLanguageService)); };
412
- PoModalPasswordRecoveryComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoModalPasswordRecoveryComponent, selectors: [["po-modal-password-recovery"]], viewQuery: function PoModalPasswordRecoveryComponent_Query(rf, ctx) { if (rf & 1) {
413
- i0.ɵɵviewQuery(_c0, 5);
414
- i0.ɵɵviewQuery(_c1, 7);
415
- i0.ɵɵviewQuery(_c2, 5);
416
- } if (rf & 2) {
417
- let _t;
418
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.emailForm = _t.first);
419
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.recoveryModalElement = _t.first);
420
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.smsCodeForm = _t.first);
421
- } }, features: [i0.ɵɵInheritDefinitionFeature], decls: 6, vars: 7, consts: [["p-hide-close", "", "p-size", "auto", 3, "ngSwitch", "p-primary-action", "p-secondary-action", "p-title"], ["recoveryModal", ""], [1, "po-modal-password-recovery-wrapper"], ["class", "po-modal-password-recovery-content po-row", 4, "ngSwitchCase"], [1, "po-modal-password-recovery-content", "po-row"], [1, "po-modal-password-recovery-text", "po-md-12", "po-mb-1"], [1, "po-mb-2", "po-md-12"], ["emailForm", "ngForm"], [4, "ngIf"], [1, "po-mt-1"], ["name", "email", "p-required", "", 3, "ngModel", "p-label", "ngModelChange", "p-change-model", 4, "ngIf"], ["name", "sms", "p-icon", "po-icon-telephone", "p-required", "", 3, "ngModel", "p-label", "p-mask", "p-maxlength", "p-minlength", "ngModelChange", "p-change-model", 4, "ngIf"], [1, "po-field-container-bottom", "po-field-container-error-container"], [3, "p-text", 4, "ngIf"], [1, "po-modal-password-recovery-text", "po-md-12"], ["name", "type", 3, "ngModel", "p-options", "ngModelChange", "p-change"], ["name", "email", "p-required", "", 3, "ngModel", "p-label", "ngModelChange", "p-change-model"], ["name", "sms", "p-icon", "po-icon-telephone", "p-required", "", 3, "ngModel", "p-label", "p-mask", "p-maxlength", "p-minlength", "ngModelChange", "p-change-model"], [3, "p-text"], ["target", "_self", 1, "po-modal-password-recovery-link", 3, "href"], ["smsCodeModal", ""], ["smsCodeForm", "ngForm"], ["name", "sms", "p-maxlength", "11", "p-minlength", "11", "p-required", "", 3, "ngModel", "p-label", "p-mask", "ngModelChange", "p-change-model"], [1, "po-modal-password-recovery-link", 3, "click"], ["confirmationModal", ""], ["src", "./assets/images/email-sent.svg", 1, "po-modal-password-recovery-user-image", "po-mb-2"], [1, "po-modal-password-recovery-text"]], template: function PoModalPasswordRecoveryComponent_Template(rf, ctx) { if (rf & 1) {
422
- i0.ɵɵelementStart(0, "po-modal", 0, 1);
423
- i0.ɵɵelementStart(2, "div", 2);
424
- i0.ɵɵtemplate(3, PoModalPasswordRecoveryComponent_div_3_Template, 16, 8, "div", 3);
425
- i0.ɵɵtemplate(4, PoModalPasswordRecoveryComponent_div_4_Template, 15, 8, "div", 3);
426
- i0.ɵɵtemplate(5, PoModalPasswordRecoveryComponent_div_5_Template, 5, 1, "div", 3);
427
- i0.ɵɵelementEnd();
428
- i0.ɵɵelementEnd();
429
- } if (rf & 2) {
430
- i0.ɵɵproperty("ngSwitch", ctx.modalType)("p-primary-action", ctx.primaryAction)("p-secondary-action", ctx.secondaryAction)("p-title", ctx.modalTitle);
431
- i0.ɵɵadvance(3);
432
- i0.ɵɵproperty("ngSwitchCase", "email");
433
- i0.ɵɵadvance(1);
434
- i0.ɵɵproperty("ngSwitchCase", "smsCode");
435
- i0.ɵɵadvance(1);
436
- i0.ɵɵproperty("ngSwitchCase", "confirmation");
437
- } }, directives: [i2.PoModalComponent, i4.NgSwitch, i4.NgSwitchCase, i5.ɵNgNoValidate, i5.NgControlStatusGroup, i5.NgForm, i4.NgIf, i2.PoRadioGroupComponent, i5.NgControlStatus, i5.NgModel, i2.PoEmailComponent, i2.PoInputComponent, i6.PoModalPasswordRecoveryErrorMessageComponent], encapsulation: 2 });
438
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoModalPasswordRecoveryComponent, [{
439
- type: Component,
440
- args: [{ selector: 'po-modal-password-recovery', template: "<po-modal\r\n #recoveryModal\r\n p-hide-close\r\n p-size=\"auto\"\r\n [ngSwitch]=\"modalType\"\r\n [p-primary-action]=\"primaryAction\"\r\n [p-secondary-action]=\"secondaryAction\"\r\n [p-title]=\"modalTitle\"\r\n>\r\n <div class=\"po-modal-password-recovery-wrapper\">\r\n <div *ngSwitchCase=\"'email'\" class=\"po-modal-password-recovery-content po-row\">\r\n <div class=\"po-modal-password-recovery-text po-md-12 po-mb-1\">\r\n {{ emailModalPhrases.firstPhrase }}\r\n </div>\r\n <div class=\"po-mb-2 po-md-12\">\r\n <form #emailForm=\"ngForm\">\r\n <div *ngIf=\"modalPasswordRecoveryTypeAll\">\r\n <po-radio-group\r\n name=\"type\"\r\n [(ngModel)]=\"chosenTypeFormOption\"\r\n [p-options]=\"typeFormOptions\"\r\n (p-change)=\"getInputType($event)\"\r\n >\r\n </po-radio-group>\r\n </div>\r\n\r\n <div class=\"po-mt-1\">\r\n <po-email\r\n *ngIf=\"type === 'email' || type === 'all'\"\r\n name=\"email\"\r\n [(ngModel)]=\"email\"\r\n p-required\r\n [p-label]=\"literals.insertEmail\"\r\n (p-change-model)=\"formModelChangesCheck(emailForm)\"\r\n >\r\n </po-email>\r\n\r\n <po-input\r\n *ngIf=\"type === 'sms'\"\r\n name=\"sms\"\r\n [(ngModel)]=\"phone\"\r\n p-icon=\"po-icon-telephone\"\r\n p-required\r\n [p-label]=\"literals.insertPhone\"\r\n [p-mask]=\"phoneMask\"\r\n [p-maxlength]=\"maxLength\"\r\n [p-minlength]=\"minLength\"\r\n (p-change-model)=\"formModelChangesCheck(emailForm)\"\r\n >\r\n </po-input>\r\n </div>\r\n\r\n <div class=\"po-field-container-bottom po-field-container-error-container\">\r\n <po-modal-password-recovery-error-message\r\n *ngIf=\"invalidEmail && control.dirty\"\r\n [p-text]=\"type === 'sms' ? literals.phoneErrorMessagePhrase : literals.emailErrorMessagePhrase\"\r\n >\r\n </po-modal-password-recovery-error-message>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"po-modal-password-recovery-text po-md-12\">\r\n {{ emailModalPhrases.secondPhrase }}\r\n <span *ngIf=\"contactEmail\">\r\n {{ literals.prepositionIn }}\r\n <a class=\"po-modal-password-recovery-link\" href=\"mailto:{{ contactEmail }}\" target=\"_self\">\r\n {{ contactEmail }}\r\n </a>\r\n </span>\r\n {{ endpoint }}\r\n </div>\r\n </div>\r\n\r\n <div #smsCodeModal *ngSwitchCase=\"'smsCode'\" class=\"po-modal-password-recovery-content po-row\">\r\n <div class=\"po-modal-password-recovery-text po-md-12 po-mb-1\">{{ literals.sentSmsCodePhrase }}</div>\r\n <div class=\"po-mb-2 po-md-12\">\r\n <form #smsCodeForm=\"ngForm\">\r\n <po-input\r\n name=\"sms\"\r\n [(ngModel)]=\"smsCode\"\r\n p-maxlength=\"11\"\r\n p-minlength=\"11\"\r\n p-required\r\n [p-label]=\"literals.insertCode\"\r\n [p-mask]=\"codeMask\"\r\n (p-change-model)=\"formModelChangesCheck(smsCodeForm)\"\r\n >\r\n </po-input>\r\n <div class=\"po-field-container-bottom po-field-container-error-container\">\r\n <po-modal-password-recovery-error-message\r\n *ngIf=\"invalidEmail\"\r\n [p-text]=\"smsCodeErrorMessage || this.literals.smsCodeErrorMessagePhrase\"\r\n >\r\n </po-modal-password-recovery-error-message>\r\n <po-modal-password-recovery-error-message *ngIf=\"showCustomCodeError\" [p-text]=\"codeError\">\r\n </po-modal-password-recovery-error-message>\r\n </div>\r\n </form>\r\n </div>\r\n <div class=\"po-modal-password-recovery-text po-md-12\">\r\n {{ literals.sendAgainPhrase }}\r\n <span class=\"po-modal-password-recovery-link\" (click)=\"resendSmsCode()\">{{ literals.sendAgain }}</span>\r\n </div>\r\n </div>\r\n\r\n <div #confirmationModal *ngSwitchCase=\"'confirmation'\" class=\"po-modal-password-recovery-content po-row\">\r\n <img class=\"po-modal-password-recovery-user-image po-mb-2\" src=\"./assets/images/email-sent.svg\" />\r\n <div class=\"po-modal-password-recovery-text\">\r\n {{ literals.emailSentConfirmationPhrase }}\r\n </div>\r\n </div>\r\n </div>\r\n</po-modal>\r\n" }]
441
- }], function () { return [{ type: i1.Router }, { type: i2.PoI18nPipe }, { type: i3.PoModalPasswordRecoveryService }, { type: i2.PoLanguageService }]; }, { emailForm: [{
442
- type: ViewChild,
443
- args: ['emailForm']
444
- }], recoveryModalElement: [{
445
- type: ViewChild,
446
- args: ['recoveryModal', { static: true }]
447
- }], smsCodeForm: [{
448
- type: ViewChild,
449
- args: ['smsCodeForm']
450
- }] }); })();
451
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVtcGxhdGVzL3NyYy9saWIvY29tcG9uZW50cy9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5L3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBYWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdsRCxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUU1RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ0hqRiwyQkFBMEM7SUFDeEMsMENBS0M7SUFIQyw2UEFBa0MsNkxBRXRCLDRCQUFvQixJQUZFO0lBSXBDLGlCQUFpQjtJQUNuQixpQkFBTTs7O0lBTEYsZUFBa0M7SUFBbEMscURBQWtDLHFDQUFBOzs7O0lBUXBDLG9DQU9DO0lBSkMsNk9BQW1CLG9QQUdELGtDQUFnQyxJQUgvQjtJQUtyQixpQkFBVzs7O0lBTFQsc0NBQW1CLHdDQUFBOzs7O0lBT3JCLG9DQVdDO0lBUkMsNk9BQW1CLG9QQU9ELGtDQUFnQyxJQVAvQjtJQVNyQixpQkFBVzs7O0lBVFQsc0NBQW1CLHdDQUFBLDRCQUFBLGlDQUFBLGlDQUFBOzs7SUFhckIs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Q0FBQyxDQUNGLENBQUM7SUFDTixDQUFDOztnSEFqU1UsZ0NBQWdDO21GQUFoQyxnQ0FBZ0M7Ozs7Ozs7Ozs7UUM5QzdDLHNDQVFDO1FBQ0MsOEJBQWdEO1FBQzlDLGtGQTZETTtRQUVOLGtGQThCTTtRQUVOLGlGQUtNO1FBQ1IsaUJBQU07UUFDUixpQkFBVzs7UUE1R1Qsd0NBQXNCLHVDQUFBLDJDQUFBLDJCQUFBO1FBTWQsZUFBcUI7UUFBckIsc0NBQXFCO1FBK0RQLGVBQXVCO1FBQXZCLHdDQUF1QjtRQWdDbEIsZUFBNEI7UUFBNUIsNkNBQTRCOzt1RkQzRDVDLGdDQUFnQztjQUo1QyxTQUFTOzJCQUNFLDRCQUE0QjsrSkFJZCxTQUFTO2tCQUFoQyxTQUFTO21CQUFDLFdBQVc7WUFFd0Isb0JBQW9CO2tCQUFqRSxTQUFTO21CQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFFbEIsV0FBVztrQkFBcEMsU0FBUzttQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5pbXBvcnQge1xyXG4gIFBvSTE4blBpcGUsXHJcbiAgUG9MYW5ndWFnZVNlcnZpY2UsXHJcbiAgUG9Nb2RhbEFjdGlvbixcclxuICBQb01vZGFsQ29tcG9uZW50LFxyXG4gIFBvUmFkaW9Hcm91cE9wdGlvblxyXG59IGZyb20gJ0Bwby11aS9uZy1jb21wb25lbnRzJztcclxuXHJcbmltcG9ydCB7IGlzRXh0ZXJuYWxMaW5rIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbCc7XHJcblxyXG5pbXBvcnQgeyBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeSB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeUJhc2VDb21wb25lbnQgfSBmcm9tICcuL3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWJhc2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlNb2RhbENvbnRlbnQgfSBmcm9tICcuL2VudW1zL3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LW1vZGFsLWNvbnRlbnQuZW51bSc7XHJcbmltcG9ydCB7IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5U2VydmljZSB9IGZyb20gJy4vcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3Zlcnkuc2VydmljZSc7XHJcbmltcG9ydCB7IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZSB9IGZyb20gJy4vZW51bXMvcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktdHlwZS5lbnVtJztcclxuXHJcbi8qKlxyXG4gKiBAZG9jc0V4dGVuZHMgUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlCYXNlQ29tcG9uZW50XHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqXHJcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1iYXNpY1wiIHRpdGxlPVwiUE8gTW9kYWwgUGFzc3dvcmQgUmVjb3ZlcnkgQmFzaWNcIj5cclxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktYmFzaWMvc2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cclxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktYmFzaWMvc2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWJhc2ljLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XHJcbiAqIDwvZXhhbXBsZT5cclxuICpcclxuICogPGV4YW1wbGUgbmFtZT1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWxhYnNcIiB0aXRsZT1cIlBPIE1vZGFsIFBhc3N3b3JkIFJlY292ZXJ5IExhYnNcIj5cclxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktbGFicy9zYW1wbGUtcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktbGFicy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XHJcbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWxhYnMvc2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWxhYnMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cclxuICogPC9leGFtcGxlPlxyXG4gKlxyXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktcmVxdWVzdFwiIHRpdGxlPVwiUE8gTW9kYWwgUGFzc3dvcmQgUmVjb3ZlcnkgUmVxdWVzdFwiPlxyXG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1yZXF1ZXN0L3NhbXBsZS1wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1yZXF1ZXN0LmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cclxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktcmVxdWVzdC9zYW1wbGUtcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktcmVxdWVzdC5jb21wb25lbnQudHNcIj4gPC9maWxlPlxyXG4gKiA8L2V4YW1wbGU+XHJcbiAqL1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LmNvbXBvbmVudC5odG1sJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlDb21wb25lbnQgZXh0ZW5kcyBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIEBWaWV3Q2hpbGQoJ2VtYWlsRm9ybScpIGVtYWlsRm9ybTogTmdGb3JtO1xyXG5cclxuICBAVmlld0NoaWxkKCdyZWNvdmVyeU1vZGFsJywgeyBzdGF0aWM6IHRydWUgfSkgcmVjb3ZlcnlNb2RhbEVsZW1lbnQ6IFBvTW9kYWxDb21wb25lbnQ7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3Ntc0NvZGVGb3JtJykgc21zQ29kZUZvcm06IE5nRm9ybTtcclxuXHJcbiAgY2hvc2VuVHlwZUZvcm1PcHRpb246IHN0cmluZyA9IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5FbWFpbDtcclxuICBjb2RlTWFzazogc3RyaW5nID0gJzkgOSA5IDkgOSA5JztcclxuICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XHJcbiAgZW1haWxNb2RhbDogYm9vbGVhbiA9IHRydWU7XHJcbiAgZW1haWxNb2RhbFBocmFzZXMgPSB7IGZpcnN0UGhyYXNlOiBudWxsIGFzIHN0cmluZywgc2Vjb25kUGhyYXNlOiBudWxsIGFzIHN0cmluZyB9O1xyXG4gIGVuZHBvaW50OiBzdHJpbmcgPSAnLic7XHJcbiAgaW52YWxpZENvZGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBpbnZhbGlkRW1haWw6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBtb2RhbFRpdGxlOiBzdHJpbmc7XHJcbiAgbW9kYWxUeXBlOiBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeU1vZGFsQ29udGVudCA9IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5TW9kYWxDb250ZW50LkVtYWlsO1xyXG4gIHNob3dDdXN0b21Db2RlRXJyb3I6IGJvb2xlYW47XHJcbiAgc21zQ29kZUVycm9yTWVzc2FnZVBocmFzZTogc3RyaW5nO1xyXG4gIHN1Ym1pdHRlZENvZGVWYWx1ZSA9IHt9IGFzIFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5O1xyXG4gIHN1Ym1pdHRlZENvbnRhY3RWYWx1ZSA9IHt9IGFzIFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5O1xyXG5cclxuICBwcmltYXJ5QWN0aW9uOiBQb01vZGFsQWN0aW9uID0geyBsYWJlbDogdW5kZWZpbmVkLCBhY3Rpb246ICgpID0+IHt9IH07XHJcblxyXG4gIHNlY29uZGFyeUFjdGlvbjogUG9Nb2RhbEFjdGlvbiA9IHsgbGFiZWw6IHVuZGVmaW5lZCwgYWN0aW9uOiAoKSA9PiB7fSB9O1xyXG5cclxuICB0eXBlRm9ybU9wdGlvbnM6IEFycmF5PFBvUmFkaW9Hcm91cE9wdGlvbj4gPSBbXHJcbiAgICB7IGxhYmVsOiAnZS1tYWlsJywgdmFsdWU6IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5FbWFpbCB9LFxyXG4gICAgeyBsYWJlbDogJ1NNUycsIHZhbHVlOiBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuU01TIH1cclxuICBdO1xyXG5cclxuICBwcml2YXRlIHBhc3N3b3JkUmVjb3ZlcnlTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIHNtc0JvZHlSZXNwb25zZTtcclxuICBwcml2YXRlIHNtc0NvZGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxyXG4gICAgcHJpdmF0ZSBwb0kxOG5QaXBlOiBQb0kxOG5QaXBlLFxyXG4gICAgcHJpdmF0ZSBwb01vZGFsUGFzc3dvcmRSZWNvdmVyeVNlcnZpY2U6IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5U2VydmljZSxcclxuICAgIHBvTGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZVxyXG4gICkge1xyXG4gICAgc3VwZXIocG9MYW5ndWFnZVNlcnZpY2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICBpZiAodGhpcy5wYXNzd29yZFJlY292ZXJ5U3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMucGFzc3dvcmRSZWNvdmVyeVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLnNtc0NvZGVTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5zbXNDb2RlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wbGV0ZWQoKSB7XHJcbiAgICB0aGlzLmNhbmNlbEFjdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgZm9ybU1vZGVsQ2hhbmdlc0NoZWNrKGZvcm06IE5nRm9ybSkge1xyXG4gICAgY29uc3QgaW52YWxpZEZvcm0gPSBmb3JtLmludmFsaWQ7XHJcbiAgICB0aGlzLmludmFsaWRFbWFpbCA9IGludmFsaWRGb3JtICYmIGZvcm0uZGlydHk7XHJcbiAgICB0aGlzLnByaW1hcnlBY3Rpb24uZGlzYWJsZWQgPSBpbnZhbGlkRm9ybTtcclxuXHJcbiAgICBpZiAodGhpcy5tb2RhbFR5cGUgPT09IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5TW9kYWxDb250ZW50LlNNU0NvZGUpIHtcclxuICAgICAgY29uc3QgY29kZUVycm9yOiBib29sZWFuID0gdGhpcy5jb2RlRXJyb3IgIT09IHVuZGVmaW5lZCAmJiB0aGlzLmNvZGVFcnJvciAhPT0gJyc7XHJcbiAgICAgIHRoaXMuc2hvd0N1c3RvbUNvZGVFcnJvciA9IGNvZGVFcnJvciAmJiBmb3JtLnByaXN0aW5lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0SW5wdXRUeXBlKHR5cGUpIHtcclxuICAgIHRoaXMudHlwZSA9IHR5cGU7XHJcbiAgICB0aGlzLnBpcGVNb2RhbFBocmFzZXMoKTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLmVtYWlsRm9ybS5jb250cm9sc1t0eXBlXTtcclxuICAgICAgdGhpcy5mb3JtTW9kZWxDaGFuZ2VzQ2hlY2sodGhpcy5lbWFpbEZvcm0pO1xyXG4gICAgICB0aGlzLnJlc2V0Rm9ybUZpZWxkcyh0aGlzLmNvbnRyb2wpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBvcGVuKCkge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY2hlY2tGb3JtVHlwZSh0aGlzLnR5cGUpO1xyXG4gICAgdGhpcy5jb250cm9sID0gdGhpcy5lbWFpbEZvcm0uY29udHJvbHNbY29udHJvbF07XHJcbiAgICB0aGlzLnNldEVtYWlsTW9kYWxQaHJhc2VzQW5kQWN0aW9ucygpO1xyXG4gICAgdGhpcy5mb3JtTW9kZWxDaGFuZ2VzQ2hlY2sodGhpcy5lbWFpbEZvcm0pO1xyXG4gICAgdGhpcy5yZWNvdmVyeU1vZGFsRWxlbWVudC5vcGVuKCk7XHJcbiAgfVxyXG5cclxuICBvcGVuQ29uZmlybWF0aW9uKCkge1xyXG4gICAgdGhpcy5tb2RhbFRpdGxlID0gdGhpcy5saXRlcmFscy5lbWFpbFNlbnRUaXRsZTtcclxuICAgIHRoaXMubW9kYWxUeXBlID0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlNb2RhbENvbnRlbnQuQ29uZmlybWF0aW9uO1xyXG4gICAgdGhpcy5zZXRBY3Rpb25zKFxyXG4gICAgICB0aGlzLmNhbmNlbEFjdGlvbixcclxuICAgICAgdGhpcy5saXRlcmFscy5jbG9zZUJ1dHRvbixcclxuICAgICAgdGhpcy5zdWJtaXRBY3Rpb24sXHJcbiAgICAgIHRoaXMubGl0ZXJhbHMucmVzZW5kRW1haWxCdXR0b24sXHJcbiAgICAgIGZhbHNlXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgb3BlblNtc0NvZGUoKSB7XHJcbiAgICB0aGlzLm1vZGFsVGl0bGUgPSB0aGlzLmxpdGVyYWxzLnR5cGVDb2RlVGl0bGU7XHJcbiAgICB0aGlzLm1vZGFsVHlwZSA9IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5TW9kYWxDb250ZW50LlNNU0NvZGU7XHJcbiAgICB0aGlzLnNldEFjdGlvbnMoXHJcbiAgICAgIHRoaXMuc3VibWl0U21zQ29kZUFjdGlvbixcclxuICAgICAgdGhpcy5saXRlcmFscy5jb250aW51ZUJ1dHRvbixcclxuICAgICAgdGhpcy5jYW5jZWxBY3Rpb24sXHJcbiAgICAgIHRoaXMubGl0ZXJhbHMuY2FuY2VsQnV0dG9uLFxyXG4gICAgICB0cnVlXHJcbiAgICApO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLnNtc0NvZGVGb3JtLmNvbnRyb2xzWydzbXMnXTtcclxuICAgICAgdGhpcy5mb3JtTW9kZWxDaGFuZ2VzQ2hlY2sodGhpcy5zbXNDb2RlRm9ybSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHJlc2VuZFNtc0NvZGUoKSB7XHJcbiAgICB0aGlzLmluY3JlbWVudFJldHJ5QXR0ZW1wdHMoKTtcclxuICAgIGlmICh0aGlzLnVybFJlY292ZXJ5KSB7XHJcbiAgICAgIHRoaXMuc3VibWl0QWN0aW9uUmVxdWVzdCh0aGlzLnN1Ym1pdHRlZENvbnRhY3RWYWx1ZSwgdGhpcy50eXBlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3VibWl0LmVtaXQodGhpcy5zdWJtaXR0ZWRDb250YWN0VmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3NpZ25TbXNSZXNwb25zZShyZXNwb25zZU9iaikge1xyXG4gICAgdGhpcy5zbXNCb2R5UmVzcG9uc2UgPSBPYmplY3QuYXNzaWduKHt9LCB7IGhhc2g6IHJlc3BvbnNlT2JqLmhhc2ggfSk7XHJcbiAgICBpZiAocmVzcG9uc2VPYmoudXJsVmFsaWRhdGlvbkNvZGUpIHtcclxuICAgICAgdGhpcy5zbXNCb2R5UmVzcG9uc2UgPSBPYmplY3QuYXNzaWduKHRoaXMuc21zQm9keVJlc3BvbnNlLCB7IHVybFZhbGlkYXRpb25Db2RlOiByZXNwb25zZU9iai51cmxWYWxpZGF0aW9uQ29kZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FuY2VsQWN0aW9uKCkge1xyXG4gICAgdGhpcy5yZXNldEZvcm1GaWVsZHModGhpcy5jb250cm9sKTtcclxuICAgIHRoaXMuc3VibWl0dGVkQ29udGFjdFZhbHVlID0ge307XHJcblxyXG4gICAgdGhpcy5jaG9zZW5UeXBlRm9ybU9wdGlvbiA9IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5FbWFpbDtcclxuICAgIHRoaXMubW9kYWxUeXBlID0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlNb2RhbENvbnRlbnQuRW1haWw7XHJcbiAgICB0aGlzLnR5cGUgPSB0aGlzLm1vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGVBbGwgPyBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuQWxsIDogdGhpcy50eXBlO1xyXG4gICAgdGhpcy5yZWNvdmVyeU1vZGFsRWxlbWVudC5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjaGVja0Zvcm1UeXBlKHR5cGU6IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZSkge1xyXG4gICAgcmV0dXJuIHR5cGUgIT09IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5BbGwgPyB0eXBlIDogUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLkVtYWlsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmb3JtUmVzZXQoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XHJcbiAgICBjb250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XHJcbiAgICBjb250cm9sLm1hcmtBc1VudG91Y2hlZCgpO1xyXG4gICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdldEVtaXRWYWx1ZSh0eXBlOiBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUpIHtcclxuICAgIHJldHVybiB0eXBlID09PSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuU01TID8gdGhpcy5waG9uZSA6IHRoaXMuZW1haWw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGluY3JlbWVudFJldHJ5QXR0ZW1wdHMoKSB7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZENvbnRhY3RWYWx1ZS5yZXRyeSA9IHRoaXMuc3VibWl0dGVkQ29udGFjdFZhbHVlLnJldHJ5ICsgMSB8fCAxO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvcGVuRXh0ZXJuYWxMaW5rKHVybCwgcXVlcnlQYXJhbSkge1xyXG4gICAgd2luZG93Lm9wZW4oYCR7dXJsfT90b2tlbj0ke3F1ZXJ5UGFyYW19YCwgJ19zZWxmJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG9wZW5JbnRlcm5hbExpbmsodXJsLCBlbmRwb2ludCwgcXVlcnlQYXJhbSkge1xyXG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2Ake3VybH0vJHtlbmRwb2ludH1gXSwgeyBxdWVyeVBhcmFtczogeyB0b2tlbjogcXVlcnlQYXJhbSB9IH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBwaXBlTW9kYWxQaHJhc2VzKCkge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLlNNUykge1xyXG4gICAgICB0aGlzLmVtYWlsTW9kYWxQaHJhc2VzLmZpcnN0UGhyYXNlID0gdGhpcy5zZXRQaXBlQXJndW1lbnRzKFxyXG4gICAgICAgIHRoaXMubGl0ZXJhbHMucmVjb3ZlcnlQYXNzd29yZFBocmFzZSxcclxuICAgICAgICB0aGlzLmxpdGVyYWxzLnNtc1xyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmVtYWlsTW9kYWxQaHJhc2VzLnNlY29uZFBocmFzZSA9IHRoaXMuc2V0UGlwZUFyZ3VtZW50cyhcclxuICAgICAgICB0aGlzLmxpdGVyYWxzLnN1cHBvcnRDb250YWN0LFxyXG4gICAgICAgIHRoaXMubGl0ZXJhbHMudGVsZXBob25lXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmVtYWlsTW9kYWxQaHJhc2VzLmZpcnN0UGhyYXNlID0gdGhpcy5zZXRQaXBlQXJndW1lbnRzKFxyXG4gICAgICAgIHRoaXMubGl0ZXJhbHMucmVjb3ZlcnlQYXNzd29yZFBocmFzZSxcclxuICAgICAgICB0aGlzLmxpdGVyYWxzLmVtYWlsXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuZW1haWxNb2RhbFBocmFzZXMuc2Vjb25kUGhyYXNlID0gdGhpcy5zZXRQaXBlQXJndW1lbnRzKHRoaXMubGl0ZXJhbHMuc3VwcG9ydENvbnRhY3QsIHRoaXMubGl0ZXJhbHMuZW1haWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWRpcmVjdFRvQ2hhbmdlUGFzc3dvcmQocmVjb3ZlcnlUb2tlbjogUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnkpIHtcclxuICAgIGNvbnN0IHVybENoYW5nZVBhc3N3b3JkID0gcmVjb3ZlcnlUb2tlbi51cmxDaGFuZ2VQYXNzd29yZDtcclxuICAgIGlmICh1cmxDaGFuZ2VQYXNzd29yZCkge1xyXG4gICAgICBpc0V4dGVybmFsTGluayh1cmxDaGFuZ2VQYXNzd29yZClcclxuICAgICAgICA/IHRoaXMub3BlbkV4dGVybmFsTGluayh1cmxDaGFuZ2VQYXNzd29yZCwgcmVjb3ZlcnlUb2tlbi50b2tlbilcclxuICAgICAgICA6IHRoaXMub3BlbkludGVybmFsTGluayh0aGlzLnVybFJlY292ZXJ5LCB1cmxDaGFuZ2VQYXNzd29yZCwgcmVjb3ZlcnlUb2tlbi50b2tlbik7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBjaGFuZ2VQYXNzd29yZEVuZHBvaW50ID0gJ2NoYW5nZVBhc3N3b3JkJztcclxuICAgICAgdGhpcy5vcGVuSW50ZXJuYWxMaW5rKHRoaXMudXJsUmVjb3ZlcnksIGNoYW5nZVBhc3N3b3JkRW5kcG9pbnQsIHJlY292ZXJ5VG9rZW4udG9rZW4pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZXNldEZvcm1GaWVsZHMoY29udHJvbCkge1xyXG4gICAgdGhpcy5mb3JtUmVzZXQoY29udHJvbCk7XHJcbiAgICB0aGlzLmVtYWlsID0gdW5kZWZpbmVkO1xyXG4gICAgdGhpcy5waG9uZSA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMuc21zQ29kZSA9IHVuZGVmaW5lZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0QWN0aW9ucyhwcmltYXJ5QWN0aW9uLCBwcmltYXJ5bGFiZWwsIHNlY29uZGFyeUFjdGlvbiwgc2Vjb25kYXJ5TGFiZWwsIGRpc2FibGVkKSB7XHJcbiAgICB0aGlzLnByaW1hcnlBY3Rpb24uYWN0aW9uID0gKCkgPT4gcHJpbWFyeUFjdGlvbi5jYWxsKHRoaXMpO1xyXG4gICAgdGhpcy5wcmltYXJ5QWN0aW9uLmxhYmVsID0gcHJpbWFyeWxhYmVsO1xyXG4gICAgdGhpcy5zZWNvbmRhcnlBY3Rpb24uYWN0aW9uID0gKCkgPT4gc2Vjb25kYXJ5QWN0aW9uLmNhbGwodGhpcyk7XHJcbiAgICB0aGlzLnNlY29uZGFyeUFjdGlvbi5sYWJlbCA9IHNlY29uZGFyeUxhYmVsO1xyXG4gICAgdGhpcy5wcmltYXJ5QWN0aW9uLmRpc2FibGVkID0gZGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEVtYWlsTW9kYWxQaHJhc2VzQW5kQWN0aW9ucygpIHtcclxuICAgIHRoaXMubW9kYWxUaXRsZSA9IHRoaXMubGl0ZXJhbHMuZm9yZ290UGFzc3dvcmRUaXRsZTtcclxuICAgIHRoaXMucGlwZU1vZGFsUGhyYXNlcygpO1xyXG4gICAgdGhpcy5tb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlQWxsID0gdGhpcy50eXBlID09PSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuQWxsO1xyXG4gICAgdGhpcy5zZXRBY3Rpb25zKHRoaXMuc3VibWl0QWN0aW9uLCB0aGlzLmxpdGVyYWxzLnNlbmRCdXR0b24sIHRoaXMuY2FuY2VsQWN0aW9uLCB0aGlzLmxpdGVyYWxzLmNhbmNlbEJ1dHRvbiwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFJlcXVlc3RFbmRwb2ludCh1cmxWYWxpZGF0aW9uQ29kZT86IHN0cmluZykge1xyXG4gICAgY29uc3QgZW5kcG9pbnQgPSB1cmxWYWxpZGF0aW9uQ29kZSB8fCAndmFsaWRhdGlvbic7XHJcblxyXG4gICAgcmV0dXJuIGAke3RoaXMudXJsUmVjb3Zlcnl9LyR7ZW5kcG9pbnR9YDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0UGlwZUFyZ3VtZW50cyhsaXRlcmFsQXR0cjogc3RyaW5nLCBhcmc6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0obGl0ZXJhbEF0dHIsIGFyZyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1Ym1pdEFjdGlvbigpIHtcclxuICAgIHRoaXMubW9kYWxUeXBlID09PSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeU1vZGFsQ29udGVudC5Db25maXJtYXRpb25cclxuICAgICAgPyB0aGlzLmluY3JlbWVudFJldHJ5QXR0ZW1wdHMoKVxyXG4gICAgICA6IHRoaXMuZm9ybVJlc2V0KHRoaXMuY29udHJvbCk7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZENvbnRhY3RWYWx1ZVt0aGlzLmNoZWNrRm9ybVR5cGUodGhpcy50eXBlKV0gPSB0aGlzLmdldEVtaXRWYWx1ZSh0aGlzLnR5cGUpO1xyXG4gICAgaWYgKHRoaXMudXJsUmVjb3ZlcnkpIHtcclxuICAgICAgdGhpcy5zdWJtaXRBY3Rpb25SZXF1ZXN0KHRoaXMuc3VibWl0dGVkQ29udGFjdFZhbHVlLCB0aGlzLnR5cGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zdWJtaXQuZW1pdCh0aGlzLnN1Ym1pdHRlZENvbnRhY3RWYWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1Ym1pdEFjdGlvblJlcXVlc3QoZGF0YTogUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnksIG1vZGFsVHlwZTogUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlKSB7XHJcbiAgICBjb25zdCBwYXJhbXMgPSBtb2RhbFR5cGUgPT09IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5TTVMgPyB7IHR5cGU6ICdzbXMnIH0gOiB1bmRlZmluZWQ7XHJcblxyXG4gICAgdGhpcy5wYXNzd29yZFJlY292ZXJ5U3Vic2NyaXB0aW9uID0gdGhpcy5wb01vZGFsUGFzc3dvcmRSZWNvdmVyeVNlcnZpY2VcclxuICAgICAgLnBvc3QodGhpcy51cmxSZWNvdmVyeSwgZGF0YSwgcGFyYW1zKVxyXG4gICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcclxuICAgICAgICBpZiAoXHJcbiAgICAgICAgICAobW9kYWxUeXBlID09PSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuRW1haWwgfHwgbW9kYWxUeXBlID09PSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuQWxsKSAmJlxyXG4gICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID09PSAyMDRcclxuICAgICAgICApIHtcclxuICAgICAgICAgIHRoaXMub3BlbkNvbmZpcm1hdGlvbigpO1xyXG4gICAgICAgIH0gZWxzZSBpZiAobW9kYWxUeXBlID09PSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuU01TICYmIHJlc3BvbnNlLnN0YXR1cyA9PT0gMjAwKSB7XHJcbiAgICAgICAgICB0aGlzLmFzc2lnblNtc1Jlc3BvbnNlKHJlc3BvbnNlLmJvZHkpO1xyXG4gICAgICAgICAgdGhpcy5vcGVuU21zQ29kZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1Ym1pdFNtc0NvZGVBY3Rpb24oKSB7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZENvZGVWYWx1ZS5jb2RlID0gdGhpcy5zbXNDb2RlO1xyXG5cclxuICAgIGlmICh0aGlzLnVybFJlY292ZXJ5KSB7XHJcbiAgICAgIHRoaXMuc3VibWl0dGVkQ29kZVZhbHVlID0gT2JqZWN0LmFzc2lnbih0aGlzLnN1Ym1pdHRlZENvZGVWYWx1ZSwgeyBoYXNoOiB0aGlzLnNtc0JvZHlSZXNwb25zZS5oYXNoIH0pO1xyXG4gICAgICB0aGlzLnN1Ym1pdFNtc0NvZGVSZXF1ZXN0KHRoaXMuc3VibWl0dGVkQ29kZVZhbHVlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY29kZVN1Ym1pdC5lbWl0KHRoaXMuc3VibWl0dGVkQ29kZVZhbHVlKTtcclxuICAgIH1cclxuICAgIHRoaXMucmVzZXRGb3JtRmllbGRzKHRoaXMuY29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHN1Ym1pdFNtc0NvZGVSZXF1ZXN0KGRhdGE6IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5KSB7XHJcbiAgICB0aGlzLnNtc0NvZGVTdWJzY3JpcHRpb24gPSB0aGlzLnBvTW9kYWxQYXNzd29yZFJlY292ZXJ5U2VydmljZVxyXG4gICAgICAucG9zdCh0aGlzLnNldFJlcXVlc3RFbmRwb2ludCh0aGlzLnNtc0JvZHlSZXNwb25zZS51cmxWYWxpZGF0aW9uQ29kZSksIGRhdGEpXHJcbiAgICAgIC5zdWJzY3JpYmUoXHJcbiAgICAgICAgcmVzcG9uc2UgPT4ge1xyXG4gICAgICAgICAgY29uc3Qgc3VjY2Vzc1N0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cyA9PT0gMjAwO1xyXG4gICAgICAgICAgaWYgKHN1Y2Nlc3NTdGF0dXMpIHtcclxuICAgICAgICAgICAgdGhpcy5jb21wbGV0ZWQoKTtcclxuICAgICAgICAgICAgdGhpcy5yZWRpcmVjdFRvQ2hhbmdlUGFzc3dvcmQocmVzcG9uc2UuYm9keSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvciA9PiB7XHJcbiAgICAgICAgICB0aGlzLmNvZGVFcnJvciA9IGVycm9yLmVycm9yLm1lc3NhZ2U7XHJcbiAgICAgICAgICB0aGlzLm9wZW5TbXNDb2RlKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gIH1cclxufVxyXG4iLCI8cG8tbW9kYWxcclxuICAjcmVjb3ZlcnlNb2RhbFxyXG4gIHAtaGlkZS1jbG9zZVxyXG4gIHAtc2l6ZT1cImF1dG9cIlxyXG4gIFtuZ1N3aXRjaF09XCJtb2RhbFR5cGVcIlxyXG4gIFtwLXByaW1hcnktYWN0aW9uXT1cInByaW1hcnlBY3Rpb25cIlxyXG4gIFtwLXNlY29uZGFyeS1hY3Rpb25dPVwic2Vjb25kYXJ5QWN0aW9uXCJcclxuICBbcC10aXRsZV09XCJtb2RhbFRpdGxlXCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS13cmFwcGVyXCI+XHJcbiAgICA8ZGl2ICpuZ1N3aXRjaENhc2U9XCInZW1haWwnXCIgY2xhc3M9XCJwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1jb250ZW50IHBvLXJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktdGV4dCBwby1tZC0xMiBwby1tYi0xXCI+XHJcbiAgICAgICAge3sgZW1haWxNb2RhbFBocmFzZXMuZmlyc3RQaHJhc2UgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwby1tYi0yIHBvLW1kLTEyXCI+XHJcbiAgICAgICAgPGZvcm0gI2VtYWlsRm9ybT1cIm5nRm9ybVwiPlxyXG4gICAgICAgICAgPGRpdiAqbmdJZj1cIm1vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGVBbGxcIj5cclxuICAgICAgICAgICAgPHBvLXJhZGlvLWdyb3VwXHJcbiAgICAgICAgICAgICAgbmFtZT1cInR5cGVcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY2hvc2VuVHlwZUZvcm1PcHRpb25cIlxyXG4gICAgICAgICAgICAgIFtwLW9wdGlvbnNdPVwidHlwZUZvcm1PcHRpb25zXCJcclxuICAgICAgICAgICAgICAocC1jaGFuZ2UpPVwiZ2V0SW5wdXRUeXBlKCRldmVudClcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvcG8tcmFkaW8tZ3JvdXA+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicG8tbXQtMVwiPlxyXG4gICAgICAgICAgICA8cG8tZW1haWxcclxuICAgICAgICAgICAgICAqbmdJZj1cInR5cGUgPT09ICdlbWFpbCcgfHwgdHlwZSA9PT0gJ2FsbCdcIlxyXG4gICAgICAgICAgICAgIG5hbWU9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgcC1yZXF1aXJlZFxyXG4gICAgICAgICAgICAgIFtwLWxhYmVsXT1cImxpdGVyYWxzLmluc2VydEVtYWlsXCJcclxuICAgICAgICAgICAgICAocC1jaGFuZ2UtbW9kZWwpPVwiZm9ybU1vZGVsQ2hhbmdlc0NoZWNrKGVtYWlsRm9ybSlcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvcG8tZW1haWw+XHJcblxyXG4gICAgICAgICAgICA8cG8taW5wdXRcclxuICAgICAgICAgICAgICAqbmdJZj1cInR5cGUgPT09ICdzbXMnXCJcclxuICAgICAgICAgICAgICBuYW1lPVwic21zXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cInBob25lXCJcclxuICAgICAgICAgICAgICBwLWljb249XCJwby1pY29uLXRlbGVwaG9uZVwiXHJcbiAgICAgICAgICAgICAgcC1yZXF1aXJlZFxyXG4gICAgICAgICAgICAgIFtwLWxhYmVsXT1cImxpdGVyYWxzLmluc2VydFBob25lXCJcclxuICAgICAgICAgICAgICBbcC1tYXNrXT1cInBob25lTWFza1wiXHJcbiAgICAgICAgICAgICAgW3AtbWF4bGVuZ3RoXT1cIm1heExlbmd0aFwiXHJcbiAgICAgICAgICAgICAgW3AtbWlubGVuZ3RoXT1cIm1pbkxlbmd0aFwiXHJcbiAgICAgICAgICAgICAgKHAtY2hhbmdlLW1vZGVsKT1cImZvcm1Nb2RlbENoYW5nZXNDaGVjayhlbWFpbEZvcm0pXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L3BvLWlucHV0PlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1ib3R0b20gcG8tZmllbGQtY29udGFpbmVyLWVycm9yLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICA8cG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktZXJyb3ItbWVzc2FnZVxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiaW52YWxpZEVtYWlsICYmIGNvbnRyb2wuZGlydHlcIlxyXG4gICAgICAgICAgICAgIFtwLXRleHRdPVwidHlwZSA9PT0gJ3NtcycgPyBsaXRlcmFscy5waG9uZUVycm9yTWVzc2FnZVBocmFzZSA6IGxpdGVyYWxzLmVtYWlsRXJyb3JNZXNzYWdlUGhyYXNlXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWVycm9yLW1lc3NhZ2U+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktdGV4dCBwby1tZC0xMlwiPlxyXG4gICAgICAgIHt7IGVtYWlsTW9kYWxQaHJhc2VzLnNlY29uZFBocmFzZSB9fVxyXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiY29udGFjdEVtYWlsXCI+XHJcbiAgICAgICAgICB7eyBsaXRlcmFscy5wcmVwb3NpdGlvbkluIH19XHJcbiAgICAgICAgICA8YSBjbGFzcz1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWxpbmtcIiBocmVmPVwibWFpbHRvOnt7IGNvbnRhY3RFbWFpbCB9fVwiIHRhcmdldD1cIl9zZWxmXCI+XHJcbiAgICAgICAgICAgIHt7IGNvbnRhY3RFbWFpbCB9fVxyXG4gICAgICAgICAgPC9hPlxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgICB7eyBlbmRwb2ludCB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgI3Ntc0NvZGVNb2RhbCAqbmdTd2l0Y2hDYXNlPVwiJ3Ntc0NvZGUnXCIgY2xhc3M9XCJwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1jb250ZW50IHBvLXJvd1wiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktdGV4dCBwby1tZC0xMiBwby1tYi0xXCI+e3sgbGl0ZXJhbHMuc2VudFNtc0NvZGVQaHJhc2UgfX08L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBvLW1iLTIgcG8tbWQtMTJcIj5cclxuICAgICAgICA8Zm9ybSAjc21zQ29kZUZvcm09XCJuZ0Zvcm1cIj5cclxuICAgICAgICAgIDxwby1pbnB1dFxyXG4gICAgICAgICAgICBuYW1lPVwic21zXCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzbXNDb2RlXCJcclxuICAgICAgICAgICAgcC1tYXhsZW5ndGg9XCIxMVwiXHJcbiAgICAgICAgICAgIHAtbWlubGVuZ3RoPVwiMTFcIlxyXG4gICAgICAgICAgICBwLXJlcXVpcmVkXHJcbiAgICAgICAgICAgIFtwLWxhYmVsXT1cImxpdGVyYWxzLmluc2VydENvZGVcIlxyXG4gICAgICAgICAgICBbcC1tYXNrXT1cImNvZGVNYXNrXCJcclxuICAgICAgICAgICAgKHAtY2hhbmdlLW1vZGVsKT1cImZvcm1Nb2RlbENoYW5nZXNDaGVjayhzbXNDb2RlRm9ybSlcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPC9wby1pbnB1dD5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwby1maWVsZC1jb250YWluZXItYm90dG9tIHBvLWZpZWxkLWNvbnRhaW5lci1lcnJvci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPHBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWVycm9yLW1lc3NhZ2VcclxuICAgICAgICAgICAgICAqbmdJZj1cImludmFsaWRFbWFpbFwiXHJcbiAgICAgICAgICAgICAgW3AtdGV4dF09XCJzbXNDb2RlRXJyb3JNZXNzYWdlIHx8IHRoaXMubGl0ZXJhbHMuc21zQ29kZUVycm9yTWVzc2FnZVBocmFzZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1lcnJvci1tZXNzYWdlPlxyXG4gICAgICAgICAgICA8cG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktZXJyb3ItbWVzc2FnZSAqbmdJZj1cInNob3dDdXN0b21Db2RlRXJyb3JcIiBbcC10ZXh0XT1cImNvZGVFcnJvclwiPlxyXG4gICAgICAgICAgICA8L3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWVycm9yLW1lc3NhZ2U+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Zvcm0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktdGV4dCBwby1tZC0xMlwiPlxyXG4gICAgICAgIHt7IGxpdGVyYWxzLnNlbmRBZ2FpblBocmFzZSB9fVxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktbGlua1wiIChjbGljayk9XCJyZXNlbmRTbXNDb2RlKClcIj57eyBsaXRlcmFscy5zZW5kQWdhaW4gfX08L3NwYW4+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiAjY29uZmlybWF0aW9uTW9kYWwgKm5nU3dpdGNoQ2FzZT1cIidjb25maXJtYXRpb24nXCIgY2xhc3M9XCJwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1jb250ZW50IHBvLXJvd1wiPlxyXG4gICAgICA8aW1nIGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktdXNlci1pbWFnZSBwby1tYi0yXCIgc3JjPVwiLi9hc3NldHMvaW1hZ2VzL2VtYWlsLXNlbnQuc3ZnXCIgLz5cclxuICAgICAgPGRpdiBjbGFzcz1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LXRleHRcIj5cclxuICAgICAgICB7eyBsaXRlcmFscy5lbWFpbFNlbnRDb25maXJtYXRpb25QaHJhc2UgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9wby1tb2RhbD5cclxuIl19
1
+ import { Component, ViewChild } from '@angular/core';
2
+ import { isExternalLink } from '../../utils/util';
3
+ import { PoModalPasswordRecoveryBaseComponent } from './po-modal-password-recovery-base.component';
4
+ import { PoModalPasswordRecoveryModalContent } from './enums/po-modal-password-recovery-modal-content.enum';
5
+ import { PoModalPasswordRecoveryType } from './enums/po-modal-password-recovery-type.enum';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/router";
8
+ import * as i2 from "@po-ui/ng-components";
9
+ import * as i3 from "./po-modal-password-recovery.service";
10
+ import * as i4 from "@angular/common";
11
+ import * as i5 from "@angular/forms";
12
+ import * as i6 from "./po-modal-password-recovery-error-message/po-modal-password-recovery-error-message.component";
13
+ const _c0 = ["emailForm"];
14
+ const _c1 = ["recoveryModal"];
15
+ const _c2 = ["smsCodeForm"];
16
+ function PoModalPasswordRecoveryComponent_div_3_div_6_Template(rf, ctx) { if (rf & 1) {
17
+ const _r11 = i0.ɵɵgetCurrentView();
18
+ i0.ɵɵelementStart(0, "div");
19
+ i0.ɵɵelementStart(1, "po-radio-group", 15);
20
+ i0.ɵɵlistener("ngModelChange", function PoModalPasswordRecoveryComponent_div_3_div_6_Template_po_radio_group_ngModelChange_1_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(2); return ctx_r10.chosenTypeFormOption = $event; })("p-change", function PoModalPasswordRecoveryComponent_div_3_div_6_Template_po_radio_group_p_change_1_listener($event) { i0.ɵɵrestoreView(_r11); const ctx_r12 = i0.ɵɵnextContext(2); return ctx_r12.getInputType($event); });
21
+ i0.ɵɵelementEnd();
22
+ i0.ɵɵelementEnd();
23
+ } if (rf & 2) {
24
+ const ctx_r5 = i0.ɵɵnextContext(2);
25
+ i0.ɵɵadvance(1);
26
+ i0.ɵɵproperty("ngModel", ctx_r5.chosenTypeFormOption)("p-options", ctx_r5.typeFormOptions);
27
+ } }
28
+ function PoModalPasswordRecoveryComponent_div_3_po_email_8_Template(rf, ctx) { if (rf & 1) {
29
+ const _r14 = i0.ɵɵgetCurrentView();
30
+ i0.ɵɵelementStart(0, "po-email", 16);
31
+ i0.ɵɵlistener("ngModelChange", function PoModalPasswordRecoveryComponent_div_3_po_email_8_Template_po_email_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r14); const ctx_r13 = i0.ɵɵnextContext(2); return ctx_r13.email = $event; })("p-change-model", function PoModalPasswordRecoveryComponent_div_3_po_email_8_Template_po_email_p_change_model_0_listener() { i0.ɵɵrestoreView(_r14); i0.ɵɵnextContext(); const _r4 = i0.ɵɵreference(5); const ctx_r15 = i0.ɵɵnextContext(); return ctx_r15.formModelChangesCheck(_r4); });
32
+ i0.ɵɵelementEnd();
33
+ } if (rf & 2) {
34
+ const ctx_r6 = i0.ɵɵnextContext(2);
35
+ i0.ɵɵproperty("ngModel", ctx_r6.email)("p-label", ctx_r6.literals.insertEmail);
36
+ } }
37
+ function PoModalPasswordRecoveryComponent_div_3_po_input_9_Template(rf, ctx) { if (rf & 1) {
38
+ const _r17 = i0.ɵɵgetCurrentView();
39
+ i0.ɵɵelementStart(0, "po-input", 17);
40
+ i0.ɵɵlistener("ngModelChange", function PoModalPasswordRecoveryComponent_div_3_po_input_9_Template_po_input_ngModelChange_0_listener($event) { i0.ɵɵrestoreView(_r17); const ctx_r16 = i0.ɵɵnextContext(2); return ctx_r16.phone = $event; })("p-change-model", function PoModalPasswordRecoveryComponent_div_3_po_input_9_Template_po_input_p_change_model_0_listener() { i0.ɵɵrestoreView(_r17); i0.ɵɵnextContext(); const _r4 = i0.ɵɵreference(5); const ctx_r18 = i0.ɵɵnextContext(); return ctx_r18.formModelChangesCheck(_r4); });
41
+ i0.ɵɵelementEnd();
42
+ } if (rf & 2) {
43
+ const ctx_r7 = i0.ɵɵnextContext(2);
44
+ i0.ɵɵproperty("ngModel", ctx_r7.phone)("p-label", ctx_r7.literals.insertPhone)("p-mask", ctx_r7.phoneMask)("p-maxlength", ctx_r7.maxLength)("p-minlength", ctx_r7.minLength);
45
+ } }
46
+ function PoModalPasswordRecoveryComponent_div_3_po_modal_password_recovery_error_message_11_Template(rf, ctx) { if (rf & 1) {
47
+ i0.ɵɵelement(0, "po-modal-password-recovery-error-message", 18);
48
+ } if (rf & 2) {
49
+ const ctx_r8 = i0.ɵɵnextContext(2);
50
+ i0.ɵɵproperty("p-text", ctx_r8.type === "sms" ? ctx_r8.literals.phoneErrorMessagePhrase : ctx_r8.literals.emailErrorMessagePhrase);
51
+ } }
52
+ function PoModalPasswordRecoveryComponent_div_3_span_14_Template(rf, ctx) { if (rf & 1) {
53
+ i0.ɵɵelementStart(0, "span");
54
+ i0.ɵɵtext(1);
55
+ i0.ɵɵelementStart(2, "a", 19);
56
+ i0.ɵɵtext(3);
57
+ i0.ɵɵelementEnd();
58
+ i0.ɵɵelementEnd();
59
+ } if (rf & 2) {
60
+ const ctx_r9 = i0.ɵɵnextContext(2);
61
+ i0.ɵɵadvance(1);
62
+ i0.ɵɵtextInterpolate1(" ", ctx_r9.literals.prepositionIn, " ");
63
+ i0.ɵɵadvance(1);
64
+ i0.ɵɵpropertyInterpolate1("href", "mailto:", ctx_r9.contactEmail, "", i0.ɵɵsanitizeUrl);
65
+ i0.ɵɵadvance(1);
66
+ i0.ɵɵtextInterpolate1(" ", ctx_r9.contactEmail, " ");
67
+ } }
68
+ function PoModalPasswordRecoveryComponent_div_3_Template(rf, ctx) { if (rf & 1) {
69
+ i0.ɵɵelementStart(0, "div", 4);
70
+ i0.ɵɵelementStart(1, "div", 5);
71
+ i0.ɵɵtext(2);
72
+ i0.ɵɵelementEnd();
73
+ i0.ɵɵelementStart(3, "div", 6);
74
+ i0.ɵɵelementStart(4, "form", null, 7);
75
+ i0.ɵɵtemplate(6, PoModalPasswordRecoveryComponent_div_3_div_6_Template, 2, 2, "div", 8);
76
+ i0.ɵɵelementStart(7, "div", 9);
77
+ i0.ɵɵtemplate(8, PoModalPasswordRecoveryComponent_div_3_po_email_8_Template, 1, 2, "po-email", 10);
78
+ i0.ɵɵtemplate(9, PoModalPasswordRecoveryComponent_div_3_po_input_9_Template, 1, 5, "po-input", 11);
79
+ i0.ɵɵelementEnd();
80
+ i0.ɵɵelementStart(10, "div", 12);
81
+ i0.ɵɵtemplate(11, PoModalPasswordRecoveryComponent_div_3_po_modal_password_recovery_error_message_11_Template, 1, 1, "po-modal-password-recovery-error-message", 13);
82
+ i0.ɵɵelementEnd();
83
+ i0.ɵɵelementEnd();
84
+ i0.ɵɵelementEnd();
85
+ i0.ɵɵelementStart(12, "div", 14);
86
+ i0.ɵɵtext(13);
87
+ i0.ɵɵtemplate(14, PoModalPasswordRecoveryComponent_div_3_span_14_Template, 4, 3, "span", 8);
88
+ i0.ɵɵtext(15);
89
+ i0.ɵɵelementEnd();
90
+ i0.ɵɵelementEnd();
91
+ } if (rf & 2) {
92
+ const ctx_r1 = i0.ɵɵnextContext();
93
+ i0.ɵɵadvance(2);
94
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.emailModalPhrases.firstPhrase, " ");
95
+ i0.ɵɵadvance(4);
96
+ i0.ɵɵproperty("ngIf", ctx_r1.modalPasswordRecoveryTypeAll);
97
+ i0.ɵɵadvance(2);
98
+ i0.ɵɵproperty("ngIf", ctx_r1.type === "email" || ctx_r1.type === "all");
99
+ i0.ɵɵadvance(1);
100
+ i0.ɵɵproperty("ngIf", ctx_r1.type === "sms");
101
+ i0.ɵɵadvance(2);
102
+ i0.ɵɵproperty("ngIf", ctx_r1.invalidEmail && ctx_r1.control.dirty);
103
+ i0.ɵɵadvance(2);
104
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.emailModalPhrases.secondPhrase, " ");
105
+ i0.ɵɵadvance(1);
106
+ i0.ɵɵproperty("ngIf", ctx_r1.contactEmail);
107
+ i0.ɵɵadvance(1);
108
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.endpoint, " ");
109
+ } }
110
+ function PoModalPasswordRecoveryComponent_div_4_po_modal_password_recovery_error_message_9_Template(rf, ctx) { if (rf & 1) {
111
+ i0.ɵɵelement(0, "po-modal-password-recovery-error-message", 18);
112
+ } if (rf & 2) {
113
+ const ctx_r21 = i0.ɵɵnextContext(2);
114
+ i0.ɵɵproperty("p-text", ctx_r21.smsCodeErrorMessage || ctx_r21.literals.smsCodeErrorMessagePhrase);
115
+ } }
116
+ function PoModalPasswordRecoveryComponent_div_4_po_modal_password_recovery_error_message_10_Template(rf, ctx) { if (rf & 1) {
117
+ i0.ɵɵelement(0, "po-modal-password-recovery-error-message", 18);
118
+ } if (rf & 2) {
119
+ const ctx_r22 = i0.ɵɵnextContext(2);
120
+ i0.ɵɵproperty("p-text", ctx_r22.codeError);
121
+ } }
122
+ function PoModalPasswordRecoveryComponent_div_4_Template(rf, ctx) { if (rf & 1) {
123
+ const _r24 = i0.ɵɵgetCurrentView();
124
+ i0.ɵɵelementStart(0, "div", 4, 20);
125
+ i0.ɵɵelementStart(2, "div", 5);
126
+ i0.ɵɵtext(3);
127
+ i0.ɵɵelementEnd();
128
+ i0.ɵɵelementStart(4, "div", 6);
129
+ i0.ɵɵelementStart(5, "form", null, 21);
130
+ i0.ɵɵelementStart(7, "po-input", 22);
131
+ i0.ɵɵlistener("ngModelChange", function PoModalPasswordRecoveryComponent_div_4_Template_po_input_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(); return ctx_r23.smsCode = $event; })("p-change-model", function PoModalPasswordRecoveryComponent_div_4_Template_po_input_p_change_model_7_listener() { i0.ɵɵrestoreView(_r24); const _r20 = i0.ɵɵreference(6); const ctx_r25 = i0.ɵɵnextContext(); return ctx_r25.formModelChangesCheck(_r20); });
132
+ i0.ɵɵelementEnd();
133
+ i0.ɵɵelementStart(8, "div", 12);
134
+ i0.ɵɵtemplate(9, PoModalPasswordRecoveryComponent_div_4_po_modal_password_recovery_error_message_9_Template, 1, 1, "po-modal-password-recovery-error-message", 13);
135
+ i0.ɵɵtemplate(10, PoModalPasswordRecoveryComponent_div_4_po_modal_password_recovery_error_message_10_Template, 1, 1, "po-modal-password-recovery-error-message", 13);
136
+ i0.ɵɵelementEnd();
137
+ i0.ɵɵelementEnd();
138
+ i0.ɵɵelementEnd();
139
+ i0.ɵɵelementStart(11, "div", 14);
140
+ i0.ɵɵtext(12);
141
+ i0.ɵɵelementStart(13, "span", 23);
142
+ i0.ɵɵlistener("click", function PoModalPasswordRecoveryComponent_div_4_Template_span_click_13_listener() { i0.ɵɵrestoreView(_r24); const ctx_r26 = i0.ɵɵnextContext(); return ctx_r26.resendSmsCode(); });
143
+ i0.ɵɵtext(14);
144
+ i0.ɵɵelementEnd();
145
+ i0.ɵɵelementEnd();
146
+ i0.ɵɵelementEnd();
147
+ } if (rf & 2) {
148
+ const ctx_r2 = i0.ɵɵnextContext();
149
+ i0.ɵɵadvance(3);
150
+ i0.ɵɵtextInterpolate(ctx_r2.literals.sentSmsCodePhrase);
151
+ i0.ɵɵadvance(4);
152
+ i0.ɵɵproperty("ngModel", ctx_r2.smsCode)("p-label", ctx_r2.literals.insertCode)("p-mask", ctx_r2.codeMask);
153
+ i0.ɵɵadvance(2);
154
+ i0.ɵɵproperty("ngIf", ctx_r2.invalidEmail);
155
+ i0.ɵɵadvance(1);
156
+ i0.ɵɵproperty("ngIf", ctx_r2.showCustomCodeError);
157
+ i0.ɵɵadvance(2);
158
+ i0.ɵɵtextInterpolate1(" ", ctx_r2.literals.sendAgainPhrase, " ");
159
+ i0.ɵɵadvance(2);
160
+ i0.ɵɵtextInterpolate(ctx_r2.literals.sendAgain);
161
+ } }
162
+ function PoModalPasswordRecoveryComponent_div_5_Template(rf, ctx) { if (rf & 1) {
163
+ i0.ɵɵelementStart(0, "div", 4, 24);
164
+ i0.ɵɵelement(2, "img", 25);
165
+ i0.ɵɵelementStart(3, "div", 26);
166
+ i0.ɵɵtext(4);
167
+ i0.ɵɵelementEnd();
168
+ i0.ɵɵelementEnd();
169
+ } if (rf & 2) {
170
+ const ctx_r3 = i0.ɵɵnextContext();
171
+ i0.ɵɵadvance(4);
172
+ i0.ɵɵtextInterpolate1(" ", ctx_r3.literals.emailSentConfirmationPhrase, " ");
173
+ } }
174
+ /**
175
+ * @docsExtends PoModalPasswordRecoveryBaseComponent
176
+ *
177
+ * @example
178
+ *
179
+ * <example name="po-modal-password-recovery-basic" title="PO Modal Password Recovery Basic">
180
+ * <file name="sample-po-modal-password-recovery-basic/sample-po-modal-password-recovery-basic.component.html"> </file>
181
+ * <file name="sample-po-modal-password-recovery-basic/sample-po-modal-password-recovery-basic.component.ts"> </file>
182
+ * </example>
183
+ *
184
+ * <example name="po-modal-password-recovery-labs" title="PO Modal Password Recovery Labs">
185
+ * <file name="sample-po-modal-password-recovery-labs/sample-po-modal-password-recovery-labs.component.html"> </file>
186
+ * <file name="sample-po-modal-password-recovery-labs/sample-po-modal-password-recovery-labs.component.ts"> </file>
187
+ * </example>
188
+ *
189
+ * <example name="po-modal-password-recovery-request" title="PO Modal Password Recovery Request">
190
+ * <file name="sample-po-modal-password-recovery-request/sample-po-modal-password-recovery-request.component.html"> </file>
191
+ * <file name="sample-po-modal-password-recovery-request/sample-po-modal-password-recovery-request.component.ts"> </file>
192
+ * </example>
193
+ */
194
+ export class PoModalPasswordRecoveryComponent extends PoModalPasswordRecoveryBaseComponent {
195
+ constructor(router, poI18nPipe, poModalPasswordRecoveryService, poLanguageService) {
196
+ super(poLanguageService);
197
+ this.router = router;
198
+ this.poI18nPipe = poI18nPipe;
199
+ this.poModalPasswordRecoveryService = poModalPasswordRecoveryService;
200
+ this.chosenTypeFormOption = PoModalPasswordRecoveryType.Email;
201
+ this.codeMask = '9 9 9 9 9 9';
202
+ this.emailModal = true;
203
+ this.emailModalPhrases = { firstPhrase: null, secondPhrase: null };
204
+ this.endpoint = '.';
205
+ this.invalidCode = false;
206
+ this.invalidEmail = false;
207
+ this.modalType = PoModalPasswordRecoveryModalContent.Email;
208
+ this.submittedCodeValue = {};
209
+ this.submittedContactValue = {};
210
+ this.primaryAction = { label: undefined, action: () => { } };
211
+ this.secondaryAction = { label: undefined, action: () => { } };
212
+ this.typeFormOptions = [
213
+ { label: 'e-mail', value: PoModalPasswordRecoveryType.Email },
214
+ { label: 'SMS', value: PoModalPasswordRecoveryType.SMS }
215
+ ];
216
+ }
217
+ ngOnDestroy() {
218
+ if (this.passwordRecoverySubscription) {
219
+ this.passwordRecoverySubscription.unsubscribe();
220
+ }
221
+ if (this.smsCodeSubscription) {
222
+ this.smsCodeSubscription.unsubscribe();
223
+ }
224
+ }
225
+ completed() {
226
+ this.cancelAction();
227
+ }
228
+ formModelChangesCheck(form) {
229
+ const invalidForm = form.invalid;
230
+ this.invalidEmail = invalidForm && form.dirty;
231
+ this.primaryAction.disabled = invalidForm;
232
+ if (this.modalType === PoModalPasswordRecoveryModalContent.SMSCode) {
233
+ const codeError = this.codeError !== undefined && this.codeError !== '';
234
+ this.showCustomCodeError = codeError && form.pristine;
235
+ }
236
+ }
237
+ getInputType(type) {
238
+ this.type = type;
239
+ this.pipeModalPhrases();
240
+ setTimeout(() => {
241
+ this.control = this.emailForm.controls[type];
242
+ this.formModelChangesCheck(this.emailForm);
243
+ this.resetFormFields(this.control);
244
+ });
245
+ }
246
+ open() {
247
+ const control = this.checkFormType(this.type);
248
+ this.control = this.emailForm.controls[control];
249
+ this.setEmailModalPhrasesAndActions();
250
+ this.formModelChangesCheck(this.emailForm);
251
+ this.recoveryModalElement.open();
252
+ }
253
+ openConfirmation() {
254
+ this.modalTitle = this.literals.emailSentTitle;
255
+ this.modalType = PoModalPasswordRecoveryModalContent.Confirmation;
256
+ this.setActions(this.cancelAction, this.literals.closeButton, this.submitAction, this.literals.resendEmailButton, false);
257
+ }
258
+ openSmsCode() {
259
+ this.modalTitle = this.literals.typeCodeTitle;
260
+ this.modalType = PoModalPasswordRecoveryModalContent.SMSCode;
261
+ this.setActions(this.submitSmsCodeAction, this.literals.continueButton, this.cancelAction, this.literals.cancelButton, true);
262
+ setTimeout(() => {
263
+ this.control = this.smsCodeForm.controls['sms'];
264
+ this.formModelChangesCheck(this.smsCodeForm);
265
+ });
266
+ }
267
+ resendSmsCode() {
268
+ this.incrementRetryAttempts();
269
+ if (this.urlRecovery) {
270
+ this.submitActionRequest(this.submittedContactValue, this.type);
271
+ }
272
+ else {
273
+ this.submit.emit(this.submittedContactValue);
274
+ }
275
+ }
276
+ assignSmsResponse(responseObj) {
277
+ this.smsBodyResponse = Object.assign({}, { hash: responseObj.hash });
278
+ if (responseObj.urlValidationCode) {
279
+ this.smsBodyResponse = Object.assign(this.smsBodyResponse, { urlValidationCode: responseObj.urlValidationCode });
280
+ }
281
+ }
282
+ cancelAction() {
283
+ this.resetFormFields(this.control);
284
+ this.submittedContactValue = {};
285
+ this.chosenTypeFormOption = PoModalPasswordRecoveryType.Email;
286
+ this.modalType = PoModalPasswordRecoveryModalContent.Email;
287
+ this.type = this.modalPasswordRecoveryTypeAll ? PoModalPasswordRecoveryType.All : this.type;
288
+ this.recoveryModalElement.close();
289
+ }
290
+ checkFormType(type) {
291
+ return type !== PoModalPasswordRecoveryType.All ? type : PoModalPasswordRecoveryType.Email;
292
+ }
293
+ formReset(control) {
294
+ control.markAsPristine();
295
+ control.markAsUntouched();
296
+ control.updateValueAndValidity();
297
+ }
298
+ getEmitValue(type) {
299
+ return type === PoModalPasswordRecoveryType.SMS ? this.phone : this.email;
300
+ }
301
+ incrementRetryAttempts() {
302
+ this.submittedContactValue.retry = this.submittedContactValue.retry + 1 || 1;
303
+ }
304
+ openExternalLink(url, queryParam) {
305
+ window.open(`${url}?token=${queryParam}`, '_self');
306
+ }
307
+ openInternalLink(url, endpoint, queryParam) {
308
+ this.router.navigate([`${url}/${endpoint}`], { queryParams: { token: queryParam } });
309
+ }
310
+ pipeModalPhrases() {
311
+ if (this.type === PoModalPasswordRecoveryType.SMS) {
312
+ this.emailModalPhrases.firstPhrase = this.setPipeArguments(this.literals.recoveryPasswordPhrase, this.literals.sms);
313
+ this.emailModalPhrases.secondPhrase = this.setPipeArguments(this.literals.supportContact, this.literals.telephone);
314
+ }
315
+ else {
316
+ this.emailModalPhrases.firstPhrase = this.setPipeArguments(this.literals.recoveryPasswordPhrase, this.literals.email);
317
+ this.emailModalPhrases.secondPhrase = this.setPipeArguments(this.literals.supportContact, this.literals.email);
318
+ }
319
+ }
320
+ redirectToChangePassword(recoveryToken) {
321
+ const urlChangePassword = recoveryToken.urlChangePassword;
322
+ if (urlChangePassword) {
323
+ isExternalLink(urlChangePassword)
324
+ ? this.openExternalLink(urlChangePassword, recoveryToken.token)
325
+ : this.openInternalLink(this.urlRecovery, urlChangePassword, recoveryToken.token);
326
+ }
327
+ else {
328
+ const changePasswordEndpoint = 'changePassword';
329
+ this.openInternalLink(this.urlRecovery, changePasswordEndpoint, recoveryToken.token);
330
+ }
331
+ }
332
+ resetFormFields(control) {
333
+ this.formReset(control);
334
+ this.email = undefined;
335
+ this.phone = undefined;
336
+ this.smsCode = undefined;
337
+ }
338
+ setActions(primaryAction, primarylabel, secondaryAction, secondaryLabel, disabled) {
339
+ this.primaryAction.action = () => primaryAction.call(this);
340
+ this.primaryAction.label = primarylabel;
341
+ this.secondaryAction.action = () => secondaryAction.call(this);
342
+ this.secondaryAction.label = secondaryLabel;
343
+ this.primaryAction.disabled = disabled;
344
+ }
345
+ setEmailModalPhrasesAndActions() {
346
+ this.modalTitle = this.literals.forgotPasswordTitle;
347
+ this.pipeModalPhrases();
348
+ this.modalPasswordRecoveryTypeAll = this.type === PoModalPasswordRecoveryType.All;
349
+ this.setActions(this.submitAction, this.literals.sendButton, this.cancelAction, this.literals.cancelButton, true);
350
+ }
351
+ setRequestEndpoint(urlValidationCode) {
352
+ const endpoint = urlValidationCode || 'validation';
353
+ return `${this.urlRecovery}/${endpoint}`;
354
+ }
355
+ setPipeArguments(literalAttr, arg) {
356
+ return this.poI18nPipe.transform(literalAttr, arg);
357
+ }
358
+ submitAction() {
359
+ this.modalType === PoModalPasswordRecoveryModalContent.Confirmation
360
+ ? this.incrementRetryAttempts()
361
+ : this.formReset(this.control);
362
+ this.submittedContactValue[this.checkFormType(this.type)] = this.getEmitValue(this.type);
363
+ if (this.urlRecovery) {
364
+ this.submitActionRequest(this.submittedContactValue, this.type);
365
+ }
366
+ else {
367
+ this.submit.emit(this.submittedContactValue);
368
+ }
369
+ }
370
+ submitActionRequest(data, modalType) {
371
+ const params = modalType === PoModalPasswordRecoveryType.SMS ? { type: 'sms' } : undefined;
372
+ this.passwordRecoverySubscription = this.poModalPasswordRecoveryService
373
+ .post(this.urlRecovery, data, params)
374
+ .subscribe(response => {
375
+ if ((modalType === PoModalPasswordRecoveryType.Email || modalType === PoModalPasswordRecoveryType.All) &&
376
+ response.status === 204) {
377
+ this.openConfirmation();
378
+ }
379
+ else if (modalType === PoModalPasswordRecoveryType.SMS && response.status === 200) {
380
+ this.assignSmsResponse(response.body);
381
+ this.openSmsCode();
382
+ }
383
+ });
384
+ }
385
+ submitSmsCodeAction() {
386
+ this.submittedCodeValue.code = this.smsCode;
387
+ if (this.urlRecovery) {
388
+ this.submittedCodeValue = Object.assign(this.submittedCodeValue, { hash: this.smsBodyResponse.hash });
389
+ this.submitSmsCodeRequest(this.submittedCodeValue);
390
+ }
391
+ else {
392
+ this.codeSubmit.emit(this.submittedCodeValue);
393
+ }
394
+ this.resetFormFields(this.control);
395
+ }
396
+ submitSmsCodeRequest(data) {
397
+ this.smsCodeSubscription = this.poModalPasswordRecoveryService
398
+ .post(this.setRequestEndpoint(this.smsBodyResponse.urlValidationCode), data)
399
+ .subscribe(response => {
400
+ const successStatus = response.status === 200;
401
+ if (successStatus) {
402
+ this.completed();
403
+ this.redirectToChangePassword(response.body);
404
+ }
405
+ }, error => {
406
+ this.codeError = error.error.message;
407
+ this.openSmsCode();
408
+ });
409
+ }
410
+ }
411
+ PoModalPasswordRecoveryComponent.ɵfac = function PoModalPasswordRecoveryComponent_Factory(t) { return new (t || PoModalPasswordRecoveryComponent)(i0.ɵɵdirectiveInject(i1.Router), i0.ɵɵdirectiveInject(i2.PoI18nPipe), i0.ɵɵdirectiveInject(i3.PoModalPasswordRecoveryService), i0.ɵɵdirectiveInject(i2.PoLanguageService)); };
412
+ PoModalPasswordRecoveryComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoModalPasswordRecoveryComponent, selectors: [["po-modal-password-recovery"]], viewQuery: function PoModalPasswordRecoveryComponent_Query(rf, ctx) { if (rf & 1) {
413
+ i0.ɵɵviewQuery(_c0, 5);
414
+ i0.ɵɵviewQuery(_c1, 7);
415
+ i0.ɵɵviewQuery(_c2, 5);
416
+ } if (rf & 2) {
417
+ let _t;
418
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.emailForm = _t.first);
419
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.recoveryModalElement = _t.first);
420
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.smsCodeForm = _t.first);
421
+ } }, features: [i0.ɵɵInheritDefinitionFeature], decls: 6, vars: 7, consts: [["p-hide-close", "", "p-size", "auto", 3, "ngSwitch", "p-primary-action", "p-secondary-action", "p-title"], ["recoveryModal", ""], [1, "po-modal-password-recovery-wrapper"], ["class", "po-modal-password-recovery-content po-row", 4, "ngSwitchCase"], [1, "po-modal-password-recovery-content", "po-row"], [1, "po-modal-password-recovery-text", "po-md-12", "po-mb-1"], [1, "po-mb-2", "po-md-12"], ["emailForm", "ngForm"], [4, "ngIf"], [1, "po-mt-1"], ["name", "email", "p-required", "", 3, "ngModel", "p-label", "ngModelChange", "p-change-model", 4, "ngIf"], ["name", "sms", "p-icon", "po-icon-telephone", "p-required", "", 3, "ngModel", "p-label", "p-mask", "p-maxlength", "p-minlength", "ngModelChange", "p-change-model", 4, "ngIf"], [1, "po-field-container-bottom", "po-field-container-error-container"], [3, "p-text", 4, "ngIf"], [1, "po-modal-password-recovery-text", "po-md-12"], ["name", "type", 3, "ngModel", "p-options", "ngModelChange", "p-change"], ["name", "email", "p-required", "", 3, "ngModel", "p-label", "ngModelChange", "p-change-model"], ["name", "sms", "p-icon", "po-icon-telephone", "p-required", "", 3, "ngModel", "p-label", "p-mask", "p-maxlength", "p-minlength", "ngModelChange", "p-change-model"], [3, "p-text"], ["target", "_self", 1, "po-modal-password-recovery-link", 3, "href"], ["smsCodeModal", ""], ["smsCodeForm", "ngForm"], ["name", "sms", "p-maxlength", "11", "p-minlength", "11", "p-required", "", 3, "ngModel", "p-label", "p-mask", "ngModelChange", "p-change-model"], [1, "po-modal-password-recovery-link", 3, "click"], ["confirmationModal", ""], ["src", "./assets/images/email-sent.svg", 1, "po-modal-password-recovery-user-image", "po-mb-2"], [1, "po-modal-password-recovery-text"]], template: function PoModalPasswordRecoveryComponent_Template(rf, ctx) { if (rf & 1) {
422
+ i0.ɵɵelementStart(0, "po-modal", 0, 1);
423
+ i0.ɵɵelementStart(2, "div", 2);
424
+ i0.ɵɵtemplate(3, PoModalPasswordRecoveryComponent_div_3_Template, 16, 8, "div", 3);
425
+ i0.ɵɵtemplate(4, PoModalPasswordRecoveryComponent_div_4_Template, 15, 8, "div", 3);
426
+ i0.ɵɵtemplate(5, PoModalPasswordRecoveryComponent_div_5_Template, 5, 1, "div", 3);
427
+ i0.ɵɵelementEnd();
428
+ i0.ɵɵelementEnd();
429
+ } if (rf & 2) {
430
+ i0.ɵɵproperty("ngSwitch", ctx.modalType)("p-primary-action", ctx.primaryAction)("p-secondary-action", ctx.secondaryAction)("p-title", ctx.modalTitle);
431
+ i0.ɵɵadvance(3);
432
+ i0.ɵɵproperty("ngSwitchCase", "email");
433
+ i0.ɵɵadvance(1);
434
+ i0.ɵɵproperty("ngSwitchCase", "smsCode");
435
+ i0.ɵɵadvance(1);
436
+ i0.ɵɵproperty("ngSwitchCase", "confirmation");
437
+ } }, directives: [i2.PoModalComponent, i4.NgSwitch, i4.NgSwitchCase, i5.ɵNgNoValidate, i5.NgControlStatusGroup, i5.NgForm, i4.NgIf, i2.PoRadioGroupComponent, i5.NgControlStatus, i5.NgModel, i2.PoEmailComponent, i2.PoInputComponent, i6.PoModalPasswordRecoveryErrorMessageComponent], encapsulation: 2 });
438
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoModalPasswordRecoveryComponent, [{
439
+ type: Component,
440
+ args: [{ selector: 'po-modal-password-recovery', template: "<po-modal\n #recoveryModal\n p-hide-close\n p-size=\"auto\"\n [ngSwitch]=\"modalType\"\n [p-primary-action]=\"primaryAction\"\n [p-secondary-action]=\"secondaryAction\"\n [p-title]=\"modalTitle\"\n>\n <div class=\"po-modal-password-recovery-wrapper\">\n <div *ngSwitchCase=\"'email'\" class=\"po-modal-password-recovery-content po-row\">\n <div class=\"po-modal-password-recovery-text po-md-12 po-mb-1\">\n {{ emailModalPhrases.firstPhrase }}\n </div>\n <div class=\"po-mb-2 po-md-12\">\n <form #emailForm=\"ngForm\">\n <div *ngIf=\"modalPasswordRecoveryTypeAll\">\n <po-radio-group\n name=\"type\"\n [(ngModel)]=\"chosenTypeFormOption\"\n [p-options]=\"typeFormOptions\"\n (p-change)=\"getInputType($event)\"\n >\n </po-radio-group>\n </div>\n\n <div class=\"po-mt-1\">\n <po-email\n *ngIf=\"type === 'email' || type === 'all'\"\n name=\"email\"\n [(ngModel)]=\"email\"\n p-required\n [p-label]=\"literals.insertEmail\"\n (p-change-model)=\"formModelChangesCheck(emailForm)\"\n >\n </po-email>\n\n <po-input\n *ngIf=\"type === 'sms'\"\n name=\"sms\"\n [(ngModel)]=\"phone\"\n p-icon=\"po-icon-telephone\"\n p-required\n [p-label]=\"literals.insertPhone\"\n [p-mask]=\"phoneMask\"\n [p-maxlength]=\"maxLength\"\n [p-minlength]=\"minLength\"\n (p-change-model)=\"formModelChangesCheck(emailForm)\"\n >\n </po-input>\n </div>\n\n <div class=\"po-field-container-bottom po-field-container-error-container\">\n <po-modal-password-recovery-error-message\n *ngIf=\"invalidEmail && control.dirty\"\n [p-text]=\"type === 'sms' ? literals.phoneErrorMessagePhrase : literals.emailErrorMessagePhrase\"\n >\n </po-modal-password-recovery-error-message>\n </div>\n </form>\n </div>\n <div class=\"po-modal-password-recovery-text po-md-12\">\n {{ emailModalPhrases.secondPhrase }}\n <span *ngIf=\"contactEmail\">\n {{ literals.prepositionIn }}\n <a class=\"po-modal-password-recovery-link\" href=\"mailto:{{ contactEmail }}\" target=\"_self\">\n {{ contactEmail }}\n </a>\n </span>\n {{ endpoint }}\n </div>\n </div>\n\n <div #smsCodeModal *ngSwitchCase=\"'smsCode'\" class=\"po-modal-password-recovery-content po-row\">\n <div class=\"po-modal-password-recovery-text po-md-12 po-mb-1\">{{ literals.sentSmsCodePhrase }}</div>\n <div class=\"po-mb-2 po-md-12\">\n <form #smsCodeForm=\"ngForm\">\n <po-input\n name=\"sms\"\n [(ngModel)]=\"smsCode\"\n p-maxlength=\"11\"\n p-minlength=\"11\"\n p-required\n [p-label]=\"literals.insertCode\"\n [p-mask]=\"codeMask\"\n (p-change-model)=\"formModelChangesCheck(smsCodeForm)\"\n >\n </po-input>\n <div class=\"po-field-container-bottom po-field-container-error-container\">\n <po-modal-password-recovery-error-message\n *ngIf=\"invalidEmail\"\n [p-text]=\"smsCodeErrorMessage || this.literals.smsCodeErrorMessagePhrase\"\n >\n </po-modal-password-recovery-error-message>\n <po-modal-password-recovery-error-message *ngIf=\"showCustomCodeError\" [p-text]=\"codeError\">\n </po-modal-password-recovery-error-message>\n </div>\n </form>\n </div>\n <div class=\"po-modal-password-recovery-text po-md-12\">\n {{ literals.sendAgainPhrase }}\n <span class=\"po-modal-password-recovery-link\" (click)=\"resendSmsCode()\">{{ literals.sendAgain }}</span>\n </div>\n </div>\n\n <div #confirmationModal *ngSwitchCase=\"'confirmation'\" class=\"po-modal-password-recovery-content po-row\">\n <img class=\"po-modal-password-recovery-user-image po-mb-2\" src=\"./assets/images/email-sent.svg\" />\n <div class=\"po-modal-password-recovery-text\">\n {{ literals.emailSentConfirmationPhrase }}\n </div>\n </div>\n </div>\n</po-modal>\n" }]
441
+ }], function () { return [{ type: i1.Router }, { type: i2.PoI18nPipe }, { type: i3.PoModalPasswordRecoveryService }, { type: i2.PoLanguageService }]; }, { emailForm: [{
442
+ type: ViewChild,
443
+ args: ['emailForm']
444
+ }], recoveryModalElement: [{
445
+ type: ViewChild,
446
+ args: ['recoveryModal', { static: true }]
447
+ }], smsCodeForm: [{
448
+ type: ViewChild,
449
+ args: ['smsCodeForm']
450
+ }] }); })();
451
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVtcGxhdGVzL3NyYy9saWIvY29tcG9uZW50cy9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5L3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBYWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdsRCxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUU1RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ0hqRiwyQkFBMEM7SUFDeEMsMENBS0M7SUFIQyw2UEFBa0MsNkxBRXRCLDRCQUFvQixJQUZFO0lBSXBDLGlCQUFpQjtJQUNuQixpQkFBTTs7O0lBTEYsZUFBa0M7SUFBbEMscURBQWtDLHFDQUFBOzs7O0lBUXBDLG9DQU9DO0lBSkMsNk9BQW1CLG9QQUdELGtDQUFnQyxJQUgvQjtJQUtyQixpQkFBVzs7O0lBTFQsc0NBQW1CLHdDQUFBOzs7O0lBT3JCLG9DQVdDO0lBUkMsNk9BQW1CLG9QQU9ELGtDQUFnQyxJQVAvQjtJQVNyQixpQkFBVzs7O0lBVFQsc0NBQW1CLHdDQUFBLDRCQUFBLGlDQUFBLGlDQUFBOzs7SUFhckIs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Q0FBQyxDQUNGLENBQUM7SUFDTixDQUFDOztnSEFqU1UsZ0NBQWdDO21GQUFoQyxnQ0FBZ0M7Ozs7Ozs7Ozs7UUM5QzdDLHNDQVFDO1FBQ0MsOEJBQWdEO1FBQzlDLGtGQTZETTtRQUVOLGtGQThCTTtRQUVOLGlGQUtNO1FBQ1IsaUJBQU07UUFDUixpQkFBVzs7UUE1R1Qsd0NBQXNCLHVDQUFBLDJDQUFBLDJCQUFBO1FBTWQsZUFBcUI7UUFBckIsc0NBQXFCO1FBK0RQLGVBQXVCO1FBQXZCLHdDQUF1QjtRQWdDbEIsZUFBNEI7UUFBNUIsNkNBQTRCOzt1RkQzRDVDLGdDQUFnQztjQUo1QyxTQUFTOzJCQUNFLDRCQUE0QjsrSkFJZCxTQUFTO2tCQUFoQyxTQUFTO21CQUFDLFdBQVc7WUFFd0Isb0JBQW9CO2tCQUFqRSxTQUFTO21CQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7WUFFbEIsV0FBVztrQkFBcEMsU0FBUzttQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIFBvSTE4blBpcGUsXG4gIFBvTGFuZ3VhZ2VTZXJ2aWNlLFxuICBQb01vZGFsQWN0aW9uLFxuICBQb01vZGFsQ29tcG9uZW50LFxuICBQb1JhZGlvR3JvdXBPcHRpb25cbn0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQgeyBpc0V4dGVybmFsTGluayB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWwnO1xuXG5pbXBvcnQgeyBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeSB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeU1vZGFsQ29udGVudCB9IGZyb20gJy4vZW51bXMvcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktbW9kYWwtY29udGVudC5lbnVtJztcbmltcG9ydCB7IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5U2VydmljZSB9IGZyb20gJy4vcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3Zlcnkuc2VydmljZSc7XG5pbXBvcnQgeyBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUgfSBmcm9tICcuL2VudW1zL3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LXR5cGUuZW51bSc7XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5QmFzZUNvbXBvbmVudFxuICpcbiAqIEBleGFtcGxlXG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWJhc2ljXCIgdGl0bGU9XCJQTyBNb2RhbCBQYXNzd29yZCBSZWNvdmVyeSBCYXNpY1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktYmFzaWMvc2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWJhc2ljL3NhbXBsZS1wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1sYWJzXCIgdGl0bGU9XCJQTyBNb2RhbCBQYXNzd29yZCBSZWNvdmVyeSBMYWJzXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1sYWJzL3NhbXBsZS1wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWxhYnMvc2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWxhYnMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktcmVxdWVzdFwiIHRpdGxlPVwiUE8gTW9kYWwgUGFzc3dvcmQgUmVjb3ZlcnkgUmVxdWVzdFwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktcmVxdWVzdC9zYW1wbGUtcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktcmVxdWVzdC5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1yZXF1ZXN0L3NhbXBsZS1wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1yZXF1ZXN0LmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKi9cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnknLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnkuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5Q29tcG9uZW50IGV4dGVuZHMgUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZCgnZW1haWxGb3JtJykgZW1haWxGb3JtOiBOZ0Zvcm07XG5cbiAgQFZpZXdDaGlsZCgncmVjb3ZlcnlNb2RhbCcsIHsgc3RhdGljOiB0cnVlIH0pIHJlY292ZXJ5TW9kYWxFbGVtZW50OiBQb01vZGFsQ29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoJ3Ntc0NvZGVGb3JtJykgc21zQ29kZUZvcm06IE5nRm9ybTtcblxuICBjaG9zZW5UeXBlRm9ybU9wdGlvbjogc3RyaW5nID0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLkVtYWlsO1xuICBjb2RlTWFzazogc3RyaW5nID0gJzkgOSA5IDkgOSA5JztcbiAgY29udHJvbDogQWJzdHJhY3RDb250cm9sO1xuICBlbWFpbE1vZGFsOiBib29sZWFuID0gdHJ1ZTtcbiAgZW1haWxNb2RhbFBocmFzZXMgPSB7IGZpcnN0UGhyYXNlOiBudWxsIGFzIHN0cmluZywgc2Vjb25kUGhyYXNlOiBudWxsIGFzIHN0cmluZyB9O1xuICBlbmRwb2ludDogc3RyaW5nID0gJy4nO1xuICBpbnZhbGlkQ29kZTogYm9vbGVhbiA9IGZhbHNlO1xuICBpbnZhbGlkRW1haWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbW9kYWxUaXRsZTogc3RyaW5nO1xuICBtb2RhbFR5cGU6IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5TW9kYWxDb250ZW50ID0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlNb2RhbENvbnRlbnQuRW1haWw7XG4gIHNob3dDdXN0b21Db2RlRXJyb3I6IGJvb2xlYW47XG4gIHNtc0NvZGVFcnJvck1lc3NhZ2VQaHJhc2U6IHN0cmluZztcbiAgc3VibWl0dGVkQ29kZVZhbHVlID0ge30gYXMgUG9Nb2RhbFBhc3N3b3JkUmVjb3Zlcnk7XG4gIHN1Ym1pdHRlZENvbnRhY3RWYWx1ZSA9IHt9IGFzIFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5O1xuXG4gIHByaW1hcnlBY3Rpb246IFBvTW9kYWxBY3Rpb24gPSB7IGxhYmVsOiB1bmRlZmluZWQsIGFjdGlvbjogKCkgPT4ge30gfTtcblxuICBzZWNvbmRhcnlBY3Rpb246IFBvTW9kYWxBY3Rpb24gPSB7IGxhYmVsOiB1bmRlZmluZWQsIGFjdGlvbjogKCkgPT4ge30gfTtcblxuICB0eXBlRm9ybU9wdGlvbnM6IEFycmF5PFBvUmFkaW9Hcm91cE9wdGlvbj4gPSBbXG4gICAgeyBsYWJlbDogJ2UtbWFpbCcsIHZhbHVlOiBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuRW1haWwgfSxcbiAgICB7IGxhYmVsOiAnU01TJywgdmFsdWU6IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5TTVMgfVxuICBdO1xuXG4gIHByaXZhdGUgcGFzc3dvcmRSZWNvdmVyeVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIHNtc0JvZHlSZXNwb25zZTtcbiAgcHJpdmF0ZSBzbXNDb2RlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHBvSTE4blBpcGU6IFBvSTE4blBpcGUsXG4gICAgcHJpdmF0ZSBwb01vZGFsUGFzc3dvcmRSZWNvdmVyeVNlcnZpY2U6IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5U2VydmljZSxcbiAgICBwb0xhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIocG9MYW5ndWFnZVNlcnZpY2UpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMucGFzc3dvcmRSZWNvdmVyeVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5wYXNzd29yZFJlY292ZXJ5U3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc21zQ29kZVN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5zbXNDb2RlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgY29tcGxldGVkKCkge1xuICAgIHRoaXMuY2FuY2VsQWN0aW9uKCk7XG4gIH1cblxuICBmb3JtTW9kZWxDaGFuZ2VzQ2hlY2soZm9ybTogTmdGb3JtKSB7XG4gICAgY29uc3QgaW52YWxpZEZvcm0gPSBmb3JtLmludmFsaWQ7XG4gICAgdGhpcy5pbnZhbGlkRW1haWwgPSBpbnZhbGlkRm9ybSAmJiBmb3JtLmRpcnR5O1xuICAgIHRoaXMucHJpbWFyeUFjdGlvbi5kaXNhYmxlZCA9IGludmFsaWRGb3JtO1xuXG4gICAgaWYgKHRoaXMubW9kYWxUeXBlID09PSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeU1vZGFsQ29udGVudC5TTVNDb2RlKSB7XG4gICAgICBjb25zdCBjb2RlRXJyb3I6IGJvb2xlYW4gPSB0aGlzLmNvZGVFcnJvciAhPT0gdW5kZWZpbmVkICYmIHRoaXMuY29kZUVycm9yICE9PSAnJztcbiAgICAgIHRoaXMuc2hvd0N1c3RvbUNvZGVFcnJvciA9IGNvZGVFcnJvciAmJiBmb3JtLnByaXN0aW5lO1xuICAgIH1cbiAgfVxuXG4gIGdldElucHV0VHlwZSh0eXBlKSB7XG4gICAgdGhpcy50eXBlID0gdHlwZTtcbiAgICB0aGlzLnBpcGVNb2RhbFBocmFzZXMoKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuY29udHJvbCA9IHRoaXMuZW1haWxGb3JtLmNvbnRyb2xzW3R5cGVdO1xuICAgICAgdGhpcy5mb3JtTW9kZWxDaGFuZ2VzQ2hlY2sodGhpcy5lbWFpbEZvcm0pO1xuICAgICAgdGhpcy5yZXNldEZvcm1GaWVsZHModGhpcy5jb250cm9sKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW4oKSB7XG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuY2hlY2tGb3JtVHlwZSh0aGlzLnR5cGUpO1xuICAgIHRoaXMuY29udHJvbCA9IHRoaXMuZW1haWxGb3JtLmNvbnRyb2xzW2NvbnRyb2xdO1xuICAgIHRoaXMuc2V0RW1haWxNb2RhbFBocmFzZXNBbmRBY3Rpb25zKCk7XG4gICAgdGhpcy5mb3JtTW9kZWxDaGFuZ2VzQ2hlY2sodGhpcy5lbWFpbEZvcm0pO1xuICAgIHRoaXMucmVjb3ZlcnlNb2RhbEVsZW1lbnQub3BlbigpO1xuICB9XG5cbiAgb3BlbkNvbmZpcm1hdGlvbigpIHtcbiAgICB0aGlzLm1vZGFsVGl0bGUgPSB0aGlzLmxpdGVyYWxzLmVtYWlsU2VudFRpdGxlO1xuICAgIHRoaXMubW9kYWxUeXBlID0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlNb2RhbENvbnRlbnQuQ29uZmlybWF0aW9uO1xuICAgIHRoaXMuc2V0QWN0aW9ucyhcbiAgICAgIHRoaXMuY2FuY2VsQWN0aW9uLFxuICAgICAgdGhpcy5saXRlcmFscy5jbG9zZUJ1dHRvbixcbiAgICAgIHRoaXMuc3VibWl0QWN0aW9uLFxuICAgICAgdGhpcy5saXRlcmFscy5yZXNlbmRFbWFpbEJ1dHRvbixcbiAgICAgIGZhbHNlXG4gICAgKTtcbiAgfVxuXG4gIG9wZW5TbXNDb2RlKCkge1xuICAgIHRoaXMubW9kYWxUaXRsZSA9IHRoaXMubGl0ZXJhbHMudHlwZUNvZGVUaXRsZTtcbiAgICB0aGlzLm1vZGFsVHlwZSA9IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5TW9kYWxDb250ZW50LlNNU0NvZGU7XG4gICAgdGhpcy5zZXRBY3Rpb25zKFxuICAgICAgdGhpcy5zdWJtaXRTbXNDb2RlQWN0aW9uLFxuICAgICAgdGhpcy5saXRlcmFscy5jb250aW51ZUJ1dHRvbixcbiAgICAgIHRoaXMuY2FuY2VsQWN0aW9uLFxuICAgICAgdGhpcy5saXRlcmFscy5jYW5jZWxCdXR0b24sXG4gICAgICB0cnVlXG4gICAgKTtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5zbXNDb2RlRm9ybS5jb250cm9sc1snc21zJ107XG4gICAgICB0aGlzLmZvcm1Nb2RlbENoYW5nZXNDaGVjayh0aGlzLnNtc0NvZGVGb3JtKTtcbiAgICB9KTtcbiAgfVxuXG4gIHJlc2VuZFNtc0NvZGUoKSB7XG4gICAgdGhpcy5pbmNyZW1lbnRSZXRyeUF0dGVtcHRzKCk7XG4gICAgaWYgKHRoaXMudXJsUmVjb3ZlcnkpIHtcbiAgICAgIHRoaXMuc3VibWl0QWN0aW9uUmVxdWVzdCh0aGlzLnN1Ym1pdHRlZENvbnRhY3RWYWx1ZSwgdGhpcy50eXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdWJtaXQuZW1pdCh0aGlzLnN1Ym1pdHRlZENvbnRhY3RWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhc3NpZ25TbXNSZXNwb25zZShyZXNwb25zZU9iaikge1xuICAgIHRoaXMuc21zQm9keVJlc3BvbnNlID0gT2JqZWN0LmFzc2lnbih7fSwgeyBoYXNoOiByZXNwb25zZU9iai5oYXNoIH0pO1xuICAgIGlmIChyZXNwb25zZU9iai51cmxWYWxpZGF0aW9uQ29kZSkge1xuICAgICAgdGhpcy5zbXNCb2R5UmVzcG9uc2UgPSBPYmplY3QuYXNzaWduKHRoaXMuc21zQm9keVJlc3BvbnNlLCB7IHVybFZhbGlkYXRpb25Db2RlOiByZXNwb25zZU9iai51cmxWYWxpZGF0aW9uQ29kZSB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNhbmNlbEFjdGlvbigpIHtcbiAgICB0aGlzLnJlc2V0Rm9ybUZpZWxkcyh0aGlzLmNvbnRyb2wpO1xuICAgIHRoaXMuc3VibWl0dGVkQ29udGFjdFZhbHVlID0ge307XG5cbiAgICB0aGlzLmNob3NlblR5cGVGb3JtT3B0aW9uID0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLkVtYWlsO1xuICAgIHRoaXMubW9kYWxUeXBlID0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlNb2RhbENvbnRlbnQuRW1haWw7XG4gICAgdGhpcy50eXBlID0gdGhpcy5tb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlQWxsID8gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLkFsbCA6IHRoaXMudHlwZTtcbiAgICB0aGlzLnJlY292ZXJ5TW9kYWxFbGVtZW50LmNsb3NlKCk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrRm9ybVR5cGUodHlwZTogUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlKSB7XG4gICAgcmV0dXJuIHR5cGUgIT09IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5BbGwgPyB0eXBlIDogUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLkVtYWlsO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JtUmVzZXQoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XG4gICAgY29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xuICAgIGNvbnRyb2wubWFya0FzVW50b3VjaGVkKCk7XG4gICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxuICBwcml2YXRlIGdldEVtaXRWYWx1ZSh0eXBlOiBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUpIHtcbiAgICByZXR1cm4gdHlwZSA9PT0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLlNNUyA/IHRoaXMucGhvbmUgOiB0aGlzLmVtYWlsO1xuICB9XG5cbiAgcHJpdmF0ZSBpbmNyZW1lbnRSZXRyeUF0dGVtcHRzKCkge1xuICAgIHRoaXMuc3VibWl0dGVkQ29udGFjdFZhbHVlLnJldHJ5ID0gdGhpcy5zdWJtaXR0ZWRDb250YWN0VmFsdWUucmV0cnkgKyAxIHx8IDE7XG4gIH1cblxuICBwcml2YXRlIG9wZW5FeHRlcm5hbExpbmsodXJsLCBxdWVyeVBhcmFtKSB7XG4gICAgd2luZG93Lm9wZW4oYCR7dXJsfT90b2tlbj0ke3F1ZXJ5UGFyYW19YCwgJ19zZWxmJyk7XG4gIH1cblxuICBwcml2YXRlIG9wZW5JbnRlcm5hbExpbmsodXJsLCBlbmRwb2ludCwgcXVlcnlQYXJhbSkge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgJHt1cmx9LyR7ZW5kcG9pbnR9YF0sIHsgcXVlcnlQYXJhbXM6IHsgdG9rZW46IHF1ZXJ5UGFyYW0gfSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgcGlwZU1vZGFsUGhyYXNlcygpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuU01TKSB7XG4gICAgICB0aGlzLmVtYWlsTW9kYWxQaHJhc2VzLmZpcnN0UGhyYXNlID0gdGhpcy5zZXRQaXBlQXJndW1lbnRzKFxuICAgICAgICB0aGlzLmxpdGVyYWxzLnJlY292ZXJ5UGFzc3dvcmRQaHJhc2UsXG4gICAgICAgIHRoaXMubGl0ZXJhbHMuc21zXG4gICAgICApO1xuICAgICAgdGhpcy5lbWFpbE1vZGFsUGhyYXNlcy5zZWNvbmRQaHJhc2UgPSB0aGlzLnNldFBpcGVBcmd1bWVudHMoXG4gICAgICAgIHRoaXMubGl0ZXJhbHMuc3VwcG9ydENvbnRhY3QsXG4gICAgICAgIHRoaXMubGl0ZXJhbHMudGVsZXBob25lXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmVtYWlsTW9kYWxQaHJhc2VzLmZpcnN0UGhyYXNlID0gdGhpcy5zZXRQaXBlQXJndW1lbnRzKFxuICAgICAgICB0aGlzLmxpdGVyYWxzLnJlY292ZXJ5UGFzc3dvcmRQaHJhc2UsXG4gICAgICAgIHRoaXMubGl0ZXJhbHMuZW1haWxcbiAgICAgICk7XG4gICAgICB0aGlzLmVtYWlsTW9kYWxQaHJhc2VzLnNlY29uZFBocmFzZSA9IHRoaXMuc2V0UGlwZUFyZ3VtZW50cyh0aGlzLmxpdGVyYWxzLnN1cHBvcnRDb250YWN0LCB0aGlzLmxpdGVyYWxzLmVtYWlsKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlZGlyZWN0VG9DaGFuZ2VQYXNzd29yZChyZWNvdmVyeVRva2VuOiBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeSkge1xuICAgIGNvbnN0IHVybENoYW5nZVBhc3N3b3JkID0gcmVjb3ZlcnlUb2tlbi51cmxDaGFuZ2VQYXNzd29yZDtcbiAgICBpZiAodXJsQ2hhbmdlUGFzc3dvcmQpIHtcbiAgICAgIGlzRXh0ZXJuYWxMaW5rKHVybENoYW5nZVBhc3N3b3JkKVxuICAgICAgICA/IHRoaXMub3BlbkV4dGVybmFsTGluayh1cmxDaGFuZ2VQYXNzd29yZCwgcmVjb3ZlcnlUb2tlbi50b2tlbilcbiAgICAgICAgOiB0aGlzLm9wZW5JbnRlcm5hbExpbmsodGhpcy51cmxSZWNvdmVyeSwgdXJsQ2hhbmdlUGFzc3dvcmQsIHJlY292ZXJ5VG9rZW4udG9rZW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBjaGFuZ2VQYXNzd29yZEVuZHBvaW50ID0gJ2NoYW5nZVBhc3N3b3JkJztcbiAgICAgIHRoaXMub3BlbkludGVybmFsTGluayh0aGlzLnVybFJlY292ZXJ5LCBjaGFuZ2VQYXNzd29yZEVuZHBvaW50LCByZWNvdmVyeVRva2VuLnRva2VuKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc2V0Rm9ybUZpZWxkcyhjb250cm9sKSB7XG4gICAgdGhpcy5mb3JtUmVzZXQoY29udHJvbCk7XG4gICAgdGhpcy5lbWFpbCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnBob25lID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuc21zQ29kZSA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QWN0aW9ucyhwcmltYXJ5QWN0aW9uLCBwcmltYXJ5bGFiZWwsIHNlY29uZGFyeUFjdGlvbiwgc2Vjb25kYXJ5TGFiZWwsIGRpc2FibGVkKSB7XG4gICAgdGhpcy5wcmltYXJ5QWN0aW9uLmFjdGlvbiA9ICgpID0+IHByaW1hcnlBY3Rpb24uY2FsbCh0aGlzKTtcbiAgICB0aGlzLnByaW1hcnlBY3Rpb24ubGFiZWwgPSBwcmltYXJ5bGFiZWw7XG4gICAgdGhpcy5zZWNvbmRhcnlBY3Rpb24uYWN0aW9uID0gKCkgPT4gc2Vjb25kYXJ5QWN0aW9uLmNhbGwodGhpcyk7XG4gICAgdGhpcy5zZWNvbmRhcnlBY3Rpb24ubGFiZWwgPSBzZWNvbmRhcnlMYWJlbDtcbiAgICB0aGlzLnByaW1hcnlBY3Rpb24uZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RW1haWxNb2RhbFBocmFzZXNBbmRBY3Rpb25zKCkge1xuICAgIHRoaXMubW9kYWxUaXRsZSA9IHRoaXMubGl0ZXJhbHMuZm9yZ290UGFzc3dvcmRUaXRsZTtcbiAgICB0aGlzLnBpcGVNb2RhbFBocmFzZXMoKTtcbiAgICB0aGlzLm1vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGVBbGwgPSB0aGlzLnR5cGUgPT09IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5BbGw7XG4gICAgdGhpcy5zZXRBY3Rpb25zKHRoaXMuc3VibWl0QWN0aW9uLCB0aGlzLmxpdGVyYWxzLnNlbmRCdXR0b24sIHRoaXMuY2FuY2VsQWN0aW9uLCB0aGlzLmxpdGVyYWxzLmNhbmNlbEJ1dHRvbiwgdHJ1ZSk7XG4gIH1cblxuICBwcml2YXRlIHNldFJlcXVlc3RFbmRwb2ludCh1cmxWYWxpZGF0aW9uQ29kZT86IHN0cmluZykge1xuICAgIGNvbnN0IGVuZHBvaW50ID0gdXJsVmFsaWRhdGlvbkNvZGUgfHwgJ3ZhbGlkYXRpb24nO1xuXG4gICAgcmV0dXJuIGAke3RoaXMudXJsUmVjb3Zlcnl9LyR7ZW5kcG9pbnR9YDtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UGlwZUFyZ3VtZW50cyhsaXRlcmFsQXR0cjogc3RyaW5nLCBhcmc6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKGxpdGVyYWxBdHRyLCBhcmcpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJtaXRBY3Rpb24oKSB7XG4gICAgdGhpcy5tb2RhbFR5cGUgPT09IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5TW9kYWxDb250ZW50LkNvbmZpcm1hdGlvblxuICAgICAgPyB0aGlzLmluY3JlbWVudFJldHJ5QXR0ZW1wdHMoKVxuICAgICAgOiB0aGlzLmZvcm1SZXNldCh0aGlzLmNvbnRyb2wpO1xuICAgIHRoaXMuc3VibWl0dGVkQ29udGFjdFZhbHVlW3RoaXMuY2hlY2tGb3JtVHlwZSh0aGlzLnR5cGUpXSA9IHRoaXMuZ2V0RW1pdFZhbHVlKHRoaXMudHlwZSk7XG4gICAgaWYgKHRoaXMudXJsUmVjb3ZlcnkpIHtcbiAgICAgIHRoaXMuc3VibWl0QWN0aW9uUmVxdWVzdCh0aGlzLnN1Ym1pdHRlZENvbnRhY3RWYWx1ZSwgdGhpcy50eXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zdWJtaXQuZW1pdCh0aGlzLnN1Ym1pdHRlZENvbnRhY3RWYWx1ZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdWJtaXRBY3Rpb25SZXF1ZXN0KGRhdGE6IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5LCBtb2RhbFR5cGU6IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZSkge1xuICAgIGNvbnN0IHBhcmFtcyA9IG1vZGFsVHlwZSA9PT0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLlNNUyA/IHsgdHlwZTogJ3NtcycgfSA6IHVuZGVmaW5lZDtcblxuICAgIHRoaXMucGFzc3dvcmRSZWNvdmVyeVN1YnNjcmlwdGlvbiA9IHRoaXMucG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlTZXJ2aWNlXG4gICAgICAucG9zdCh0aGlzLnVybFJlY292ZXJ5LCBkYXRhLCBwYXJhbXMpXG4gICAgICAuc3Vic2NyaWJlKHJlc3BvbnNlID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIChtb2RhbFR5cGUgPT09IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5FbWFpbCB8fCBtb2RhbFR5cGUgPT09IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5BbGwpICYmXG4gICAgICAgICAgcmVzcG9uc2Uuc3RhdHVzID09PSAyMDRcbiAgICAgICAgKSB7XG4gICAgICAgICAgdGhpcy5vcGVuQ29uZmlybWF0aW9uKCk7XG4gICAgICAgIH0gZWxzZSBpZiAobW9kYWxUeXBlID09PSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuU01TICYmIHJlc3BvbnNlLnN0YXR1cyA9PT0gMjAwKSB7XG4gICAgICAgICAgdGhpcy5hc3NpZ25TbXNSZXNwb25zZShyZXNwb25zZS5ib2R5KTtcbiAgICAgICAgICB0aGlzLm9wZW5TbXNDb2RlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJtaXRTbXNDb2RlQWN0aW9uKCkge1xuICAgIHRoaXMuc3VibWl0dGVkQ29kZVZhbHVlLmNvZGUgPSB0aGlzLnNtc0NvZGU7XG5cbiAgICBpZiAodGhpcy51cmxSZWNvdmVyeSkge1xuICAgICAgdGhpcy5zdWJtaXR0ZWRDb2RlVmFsdWUgPSBPYmplY3QuYXNzaWduKHRoaXMuc3VibWl0dGVkQ29kZVZhbHVlLCB7IGhhc2g6IHRoaXMuc21zQm9keVJlc3BvbnNlLmhhc2ggfSk7XG4gICAgICB0aGlzLnN1Ym1pdFNtc0NvZGVSZXF1ZXN0KHRoaXMuc3VibWl0dGVkQ29kZVZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RlU3VibWl0LmVtaXQodGhpcy5zdWJtaXR0ZWRDb2RlVmFsdWUpO1xuICAgIH1cbiAgICB0aGlzLnJlc2V0Rm9ybUZpZWxkcyh0aGlzLmNvbnRyb2wpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdWJtaXRTbXNDb2RlUmVxdWVzdChkYXRhOiBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeSkge1xuICAgIHRoaXMuc21zQ29kZVN1YnNjcmlwdGlvbiA9IHRoaXMucG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlTZXJ2aWNlXG4gICAgICAucG9zdCh0aGlzLnNldFJlcXVlc3RFbmRwb2ludCh0aGlzLnNtc0JvZHlSZXNwb25zZS51cmxWYWxpZGF0aW9uQ29kZSksIGRhdGEpXG4gICAgICAuc3Vic2NyaWJlKFxuICAgICAgICByZXNwb25zZSA9PiB7XG4gICAgICAgICAgY29uc3Qgc3VjY2Vzc1N0YXR1cyA9IHJlc3BvbnNlLnN0YXR1cyA9PT0gMjAwO1xuICAgICAgICAgIGlmIChzdWNjZXNzU3RhdHVzKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBsZXRlZCgpO1xuICAgICAgICAgICAgdGhpcy5yZWRpcmVjdFRvQ2hhbmdlUGFzc3dvcmQocmVzcG9uc2UuYm9keSk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvciA9PiB7XG4gICAgICAgICAgdGhpcy5jb2RlRXJyb3IgPSBlcnJvci5lcnJvci5tZXNzYWdlO1xuICAgICAgICAgIHRoaXMub3BlblNtc0NvZGUoKTtcbiAgICAgICAgfVxuICAgICAgKTtcbiAgfVxufVxuIiwiPHBvLW1vZGFsXG4gICNyZWNvdmVyeU1vZGFsXG4gIHAtaGlkZS1jbG9zZVxuICBwLXNpemU9XCJhdXRvXCJcbiAgW25nU3dpdGNoXT1cIm1vZGFsVHlwZVwiXG4gIFtwLXByaW1hcnktYWN0aW9uXT1cInByaW1hcnlBY3Rpb25cIlxuICBbcC1zZWNvbmRhcnktYWN0aW9uXT1cInNlY29uZGFyeUFjdGlvblwiXG4gIFtwLXRpdGxlXT1cIm1vZGFsVGl0bGVcIlxuPlxuICA8ZGl2IGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3Zlcnktd3JhcHBlclwiPlxuICAgIDxkaXYgKm5nU3dpdGNoQ2FzZT1cIidlbWFpbCdcIiBjbGFzcz1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWNvbnRlbnQgcG8tcm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktdGV4dCBwby1tZC0xMiBwby1tYi0xXCI+XG4gICAgICAgIHt7IGVtYWlsTW9kYWxQaHJhc2VzLmZpcnN0UGhyYXNlIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwby1tYi0yIHBvLW1kLTEyXCI+XG4gICAgICAgIDxmb3JtICNlbWFpbEZvcm09XCJuZ0Zvcm1cIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwibW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZUFsbFwiPlxuICAgICAgICAgICAgPHBvLXJhZGlvLWdyb3VwXG4gICAgICAgICAgICAgIG5hbWU9XCJ0eXBlXCJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjaG9zZW5UeXBlRm9ybU9wdGlvblwiXG4gICAgICAgICAgICAgIFtwLW9wdGlvbnNdPVwidHlwZUZvcm1PcHRpb25zXCJcbiAgICAgICAgICAgICAgKHAtY2hhbmdlKT1cImdldElucHV0VHlwZSgkZXZlbnQpXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvcG8tcmFkaW8tZ3JvdXA+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicG8tbXQtMVwiPlxuICAgICAgICAgICAgPHBvLWVtYWlsXG4gICAgICAgICAgICAgICpuZ0lmPVwidHlwZSA9PT0gJ2VtYWlsJyB8fCB0eXBlID09PSAnYWxsJ1wiXG4gICAgICAgICAgICAgIG5hbWU9XCJlbWFpbFwiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZW1haWxcIlxuICAgICAgICAgICAgICBwLXJlcXVpcmVkXG4gICAgICAgICAgICAgIFtwLWxhYmVsXT1cImxpdGVyYWxzLmluc2VydEVtYWlsXCJcbiAgICAgICAgICAgICAgKHAtY2hhbmdlLW1vZGVsKT1cImZvcm1Nb2RlbENoYW5nZXNDaGVjayhlbWFpbEZvcm0pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvcG8tZW1haWw+XG5cbiAgICAgICAgICAgIDxwby1pbnB1dFxuICAgICAgICAgICAgICAqbmdJZj1cInR5cGUgPT09ICdzbXMnXCJcbiAgICAgICAgICAgICAgbmFtZT1cInNtc1wiXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwicGhvbmVcIlxuICAgICAgICAgICAgICBwLWljb249XCJwby1pY29uLXRlbGVwaG9uZVwiXG4gICAgICAgICAgICAgIHAtcmVxdWlyZWRcbiAgICAgICAgICAgICAgW3AtbGFiZWxdPVwibGl0ZXJhbHMuaW5zZXJ0UGhvbmVcIlxuICAgICAgICAgICAgICBbcC1tYXNrXT1cInBob25lTWFza1wiXG4gICAgICAgICAgICAgIFtwLW1heGxlbmd0aF09XCJtYXhMZW5ndGhcIlxuICAgICAgICAgICAgICBbcC1taW5sZW5ndGhdPVwibWluTGVuZ3RoXCJcbiAgICAgICAgICAgICAgKHAtY2hhbmdlLW1vZGVsKT1cImZvcm1Nb2RlbENoYW5nZXNDaGVjayhlbWFpbEZvcm0pXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvcG8taW5wdXQ+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicG8tZmllbGQtY29udGFpbmVyLWJvdHRvbSBwby1maWVsZC1jb250YWluZXItZXJyb3ItY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8cG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktZXJyb3ItbWVzc2FnZVxuICAgICAgICAgICAgICAqbmdJZj1cImludmFsaWRFbWFpbCAmJiBjb250cm9sLmRpcnR5XCJcbiAgICAgICAgICAgICAgW3AtdGV4dF09XCJ0eXBlID09PSAnc21zJyA/IGxpdGVyYWxzLnBob25lRXJyb3JNZXNzYWdlUGhyYXNlIDogbGl0ZXJhbHMuZW1haWxFcnJvck1lc3NhZ2VQaHJhc2VcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1lcnJvci1tZXNzYWdlPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Zvcm0+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS10ZXh0IHBvLW1kLTEyXCI+XG4gICAgICAgIHt7IGVtYWlsTW9kYWxQaHJhc2VzLnNlY29uZFBocmFzZSB9fVxuICAgICAgICA8c3BhbiAqbmdJZj1cImNvbnRhY3RFbWFpbFwiPlxuICAgICAgICAgIHt7IGxpdGVyYWxzLnByZXBvc2l0aW9uSW4gfX1cbiAgICAgICAgICA8YSBjbGFzcz1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWxpbmtcIiBocmVmPVwibWFpbHRvOnt7IGNvbnRhY3RFbWFpbCB9fVwiIHRhcmdldD1cIl9zZWxmXCI+XG4gICAgICAgICAgICB7eyBjb250YWN0RW1haWwgfX1cbiAgICAgICAgICA8L2E+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAge3sgZW5kcG9pbnQgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAjc21zQ29kZU1vZGFsICpuZ1N3aXRjaENhc2U9XCInc21zQ29kZSdcIiBjbGFzcz1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWNvbnRlbnQgcG8tcm93XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktdGV4dCBwby1tZC0xMiBwby1tYi0xXCI+e3sgbGl0ZXJhbHMuc2VudFNtc0NvZGVQaHJhc2UgfX08L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwby1tYi0yIHBvLW1kLTEyXCI+XG4gICAgICAgIDxmb3JtICNzbXNDb2RlRm9ybT1cIm5nRm9ybVwiPlxuICAgICAgICAgIDxwby1pbnB1dFxuICAgICAgICAgICAgbmFtZT1cInNtc1wiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cInNtc0NvZGVcIlxuICAgICAgICAgICAgcC1tYXhsZW5ndGg9XCIxMVwiXG4gICAgICAgICAgICBwLW1pbmxlbmd0aD1cIjExXCJcbiAgICAgICAgICAgIHAtcmVxdWlyZWRcbiAgICAgICAgICAgIFtwLWxhYmVsXT1cImxpdGVyYWxzLmluc2VydENvZGVcIlxuICAgICAgICAgICAgW3AtbWFza109XCJjb2RlTWFza1wiXG4gICAgICAgICAgICAocC1jaGFuZ2UtbW9kZWwpPVwiZm9ybU1vZGVsQ2hhbmdlc0NoZWNrKHNtc0NvZGVGb3JtKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvcG8taW5wdXQ+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBvLWZpZWxkLWNvbnRhaW5lci1ib3R0b20gcG8tZmllbGQtY29udGFpbmVyLWVycm9yLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPHBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWVycm9yLW1lc3NhZ2VcbiAgICAgICAgICAgICAgKm5nSWY9XCJpbnZhbGlkRW1haWxcIlxuICAgICAgICAgICAgICBbcC10ZXh0XT1cInNtc0NvZGVFcnJvck1lc3NhZ2UgfHwgdGhpcy5saXRlcmFscy5zbXNDb2RlRXJyb3JNZXNzYWdlUGhyYXNlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktZXJyb3ItbWVzc2FnZT5cbiAgICAgICAgICAgIDxwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1lcnJvci1tZXNzYWdlICpuZ0lmPVwic2hvd0N1c3RvbUNvZGVFcnJvclwiIFtwLXRleHRdPVwiY29kZUVycm9yXCI+XG4gICAgICAgICAgICA8L3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWVycm9yLW1lc3NhZ2U+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LXRleHQgcG8tbWQtMTJcIj5cbiAgICAgICAge3sgbGl0ZXJhbHMuc2VuZEFnYWluUGhyYXNlIH19XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktbGlua1wiIChjbGljayk9XCJyZXNlbmRTbXNDb2RlKClcIj57eyBsaXRlcmFscy5zZW5kQWdhaW4gfX08L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgI2NvbmZpcm1hdGlvbk1vZGFsICpuZ1N3aXRjaENhc2U9XCInY29uZmlybWF0aW9uJ1wiIGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktY29udGVudCBwby1yb3dcIj5cbiAgICAgIDxpbWcgY2xhc3M9XCJwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS11c2VyLWltYWdlIHBvLW1iLTJcIiBzcmM9XCIuL2Fzc2V0cy9pbWFnZXMvZW1haWwtc2VudC5zdmdcIiAvPlxuICAgICAgPGRpdiBjbGFzcz1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LXRleHRcIj5cbiAgICAgICAge3sgbGl0ZXJhbHMuZW1haWxTZW50Q29uZmlybWF0aW9uUGhyYXNlIH19XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3BvLW1vZGFsPlxuIl19