@po-ui/ng-templates 6.13.0 → 14.0.0-next.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 (365) hide show
  1. package/README.md +18 -18
  2. package/esm2020/lib/components/components.module.mjs +84 -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 +30 -30
  11. package/esm2020/lib/components/po-modal-password-recovery/po-modal-password-recovery.component.mjs +433 -433
  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 +179 -179
  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 +97 -97
  23. package/esm2020/lib/components/po-page-blocked-user/po-page-blocked-user-reason/po-page-blocked-user-reason.component.mjs +100 -100
  24. package/esm2020/lib/components/po-page-blocked-user/po-page-blocked-user.component.mjs +104 -104
  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 +388 -388
  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 +461 -461
  45. package/esm2020/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.module.mjs +51 -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 +569 -569
  56. package/esm2020/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.module.mjs +57 -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 -260
  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 +266 -266
  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 +52 -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 +146 -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 +938 -929
  86. package/esm2020/lib/components/po-page-dynamic-table/po-page-dynamic-table.module.mjs +50 -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 +368 -368
  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 +80 -80
  96. package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/po-page-job-scheduler-summary.component.mjs +194 -194
  97. package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler.component.mjs +260 -266
  98. package/esm2020/lib/components/po-page-job-scheduler/po-page-job-scheduler.module.mjs +70 -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 +135 -135
  108. package/esm2020/lib/components/po-page-login/po-page-login.component.mjs +467 -467
  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 +379 -379
  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 +9328 -9295
  127. package/fesm2015/po-ui-ng-templates.mjs.map +1 -1
  128. package/fesm2020/po-ui-ng-templates.mjs +8962 -8929
  129. package/fesm2020/po-ui-ng-templates.mjs.map +1 -1
  130. package/{po-ui-ng-templates.d.ts → index.d.ts} +5 -5
  131. package/lib/components/components.module.d.ts +16 -16
  132. package/lib/components/index.d.ts +11 -11
  133. package/lib/components/po-modal-password-recovery/enums/po-modal-password-recovery-modal-content.enum.d.ts +15 -15
  134. package/lib/components/po-modal-password-recovery/enums/po-modal-password-recovery-type.enum.d.ts +15 -15
  135. package/lib/components/po-modal-password-recovery/index.d.ts +7 -7
  136. package/lib/components/po-modal-password-recovery/interfaces/po-modal-password-recovery.interface.d.ts +25 -25
  137. package/lib/components/po-modal-password-recovery/literals/i18n/po-modal-password-recovery-literals.d.ts +6 -6
  138. package/lib/components/po-modal-password-recovery/po-modal-password-recovery-base.component.d.ts +283 -283
  139. package/lib/components/po-modal-password-recovery/po-modal-password-recovery-error-message/po-modal-password-recovery-error-message.component.d.ts +14 -14
  140. package/lib/components/po-modal-password-recovery/po-modal-password-recovery.component.d.ts +90 -90
  141. package/lib/components/po-modal-password-recovery/po-modal-password-recovery.module.d.ts +16 -16
  142. package/lib/components/po-modal-password-recovery/po-modal-password-recovery.service.d.ts +13 -13
  143. package/lib/components/po-page-background/index.d.ts +2 -2
  144. package/lib/components/po-page-background/po-page-background.component.d.ts +54 -54
  145. package/lib/components/po-page-background/po-page-background.module.d.ts +16 -16
  146. package/lib/components/po-page-blocked-user/enums/po-page-blocked-user-reason.enum.d.ts +15 -15
  147. package/lib/components/po-page-blocked-user/index.d.ts +7 -7
  148. package/lib/components/po-page-blocked-user/interfaces/po-page-blocked-user-reason-params.interface.d.ts +15 -15
  149. package/lib/components/po-page-blocked-user/literals/i18n/po-page-blocked-user-literals.d.ts +72 -72
  150. package/lib/components/po-page-blocked-user/po-page-blocked-user-base.component.d.ts +146 -146
  151. package/lib/components/po-page-blocked-user/po-page-blocked-user-contacts/po-page-blocked-user-contacts.component.d.ts +19 -19
  152. package/lib/components/po-page-blocked-user/po-page-blocked-user-reason/po-page-blocked-user-reason.component.d.ts +26 -26
  153. package/lib/components/po-page-blocked-user/po-page-blocked-user.component.d.ts +43 -43
  154. package/lib/components/po-page-blocked-user/po-page-blocked-user.module.d.ts +18 -18
  155. package/lib/components/po-page-change-password/index.d.ts +6 -6
  156. package/lib/components/po-page-change-password/interfaces/po-page-change-password-recovery.interface.d.ts +30 -30
  157. package/lib/components/po-page-change-password/interfaces/po-page-change-password-requirement.interface.d.ts +17 -17
  158. package/lib/components/po-page-change-password/interfaces/po-page-change-password.interface.d.ts +13 -13
  159. package/lib/components/po-page-change-password/literals/i18n/po-page-change-password-literals.d.ts +6 -6
  160. package/lib/components/po-page-change-password/po-page-change-password-base.component.d.ts +233 -233
  161. package/lib/components/po-page-change-password/po-page-change-password.component.d.ts +93 -93
  162. package/lib/components/po-page-change-password/po-page-change-password.module.d.ts +17 -17
  163. package/lib/components/po-page-change-password/po-page-change-password.service.d.ts +10 -10
  164. package/lib/components/po-page-dynamic-detail/index.d.ts +9 -9
  165. package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-actions.interface.d.ts +95 -95
  166. package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-back.interface.d.ts +18 -18
  167. package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-edit.interface.d.ts +18 -18
  168. package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-before-remove.interface.d.ts +18 -18
  169. package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-field.interface.d.ts +16 -16
  170. package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-metadata.interface.d.ts +31 -31
  171. package/lib/components/po-page-dynamic-detail/interfaces/po-page-dynamic-detail-options.interface.d.ts +36 -36
  172. package/lib/components/po-page-dynamic-detail/po-page-dynamic-detail-actions.service.d.ts +18 -18
  173. package/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.component.d.ts +257 -257
  174. package/lib/components/po-page-dynamic-detail/po-page-dynamic-detail.module.d.ts +17 -17
  175. package/lib/components/po-page-dynamic-edit/index.d.ts +9 -9
  176. package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-actions.interface.d.ts +123 -123
  177. package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-cancel.interface.d.ts +18 -18
  178. package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-save-new.interface.d.ts +44 -44
  179. package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-before-save.interface.d.ts +43 -43
  180. package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-field.interface.d.ts +12 -12
  181. package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-metadata.interface.d.ts +25 -25
  182. package/lib/components/po-page-dynamic-edit/interfaces/po-page-dynamic-edit-options.interface.d.ts +28 -28
  183. package/lib/components/po-page-dynamic-edit/po-page-dynamic-edit-actions.service.d.ts +18 -18
  184. package/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.component.d.ts +329 -329
  185. package/lib/components/po-page-dynamic-edit/po-page-dynamic-edit.module.d.ts +17 -17
  186. package/lib/components/po-page-dynamic-search/index.d.ts +6 -6
  187. package/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-base.component.d.ts +48 -48
  188. package/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter-literals.interface.d.ts +15 -15
  189. package/lib/components/po-page-dynamic-search/po-advanced-filter/po-advanced-filter.component.d.ts +29 -29
  190. package/lib/components/po-page-dynamic-search/po-page-dynamic-search-base.component.d.ts +184 -184
  191. package/lib/components/po-page-dynamic-search/po-page-dynamic-search-filters.interface.d.ts +14 -14
  192. package/lib/components/po-page-dynamic-search/po-page-dynamic-search-literals.interface.d.ts +21 -21
  193. package/lib/components/po-page-dynamic-search/po-page-dynamic-search-options.interface.d.ts +59 -59
  194. package/lib/components/po-page-dynamic-search/po-page-dynamic-search.component.d.ts +62 -62
  195. package/lib/components/po-page-dynamic-search/po-page-dynamic-search.interface.d.ts +29 -29
  196. package/lib/components/po-page-dynamic-search/po-page-dynamic-search.module.d.ts +18 -18
  197. package/lib/components/po-page-dynamic-table/index.d.ts +15 -15
  198. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-actions.interface.d.ts +196 -196
  199. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-detail.interface.d.ts +21 -21
  200. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-duplicate.interface.d.ts +29 -29
  201. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-edit.interface.d.ts +22 -22
  202. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-new.interface.d.ts +18 -18
  203. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-remove-all.interface.d.ts +39 -39
  204. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-before-remove.interface.d.ts +18 -18
  205. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-action.interface.d.ts +97 -97
  206. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-custom-table-action.interface.d.ts +106 -106
  207. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-field.interface.d.ts +49 -49
  208. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-filters.interface.d.ts +18 -18
  209. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-metadata.interface.d.ts +31 -31
  210. package/lib/components/po-page-dynamic-table/interfaces/po-page-dynamic-table-options.interface.d.ts +91 -91
  211. package/lib/components/po-page-dynamic-table/po-page-dynamic-list-base.component.d.ts +164 -130
  212. package/lib/components/po-page-dynamic-table/po-page-dynamic-table-actions.service.d.ts +26 -26
  213. package/lib/components/po-page-dynamic-table/po-page-dynamic-table-literals.d.ts +62 -62
  214. package/lib/components/po-page-dynamic-table/po-page-dynamic-table.component.d.ts +386 -383
  215. package/lib/components/po-page-dynamic-table/po-page-dynamic-table.module.d.ts +19 -19
  216. package/lib/components/po-page-job-scheduler/index.d.ts +3 -3
  217. package/lib/components/po-page-job-scheduler/interfaces/po-job-scheduler-internal.interface.d.ts +14 -14
  218. package/lib/components/po-page-job-scheduler/interfaces/po-job-scheduler.interface.d.ts +48 -48
  219. package/lib/components/po-page-job-scheduler/po-page-job-scheduler-base.component.d.ts +176 -176
  220. package/lib/components/po-page-job-scheduler/po-page-job-scheduler-execution/po-page-job-scheduler-execution.component.d.ts +52 -52
  221. package/lib/components/po-page-job-scheduler/po-page-job-scheduler-internal.d.ts +9 -9
  222. package/lib/components/po-page-job-scheduler/po-page-job-scheduler-literals.d.ts +194 -194
  223. package/lib/components/po-page-job-scheduler/po-page-job-scheduler-lookup.service.d.ts +16 -16
  224. package/lib/components/po-page-job-scheduler/po-page-job-scheduler-parameters/po-page-job-scheduler-parameters.component.d.ts +14 -14
  225. package/lib/components/po-page-job-scheduler/po-page-job-scheduler-summary/po-page-job-scheduler-summary.component.d.ts +36 -36
  226. package/lib/components/po-page-job-scheduler/po-page-job-scheduler.component.d.ts +116 -116
  227. package/lib/components/po-page-job-scheduler/po-page-job-scheduler.module.d.ts +13 -13
  228. package/lib/components/po-page-job-scheduler/po-page-job-scheduler.service.d.ts +32 -32
  229. package/lib/components/po-page-login/enums/po-page-login-authentication-type.enum.d.ts +13 -13
  230. package/lib/components/po-page-login/index.d.ts +7 -7
  231. package/lib/components/po-page-login/interfaces/po-page-login-custom-field.interface.d.ts +72 -72
  232. package/lib/components/po-page-login/interfaces/po-page-login-literals.interface.d.ts +59 -59
  233. package/lib/components/po-page-login/interfaces/po-page-login-recovery.interface.d.ts +30 -30
  234. package/lib/components/po-page-login/interfaces/po-page-login.interface.d.ts +15 -15
  235. package/lib/components/po-page-login/po-page-login-base.component.d.ts +663 -663
  236. package/lib/components/po-page-login/po-page-login-popover/po-page-login-popover.component.d.ts +19 -19
  237. package/lib/components/po-page-login/po-page-login.component.d.ts +72 -72
  238. package/lib/components/po-page-login/po-page-login.module.d.ts +18 -18
  239. package/lib/components/po-page-login/po-page-login.service.d.ts +12 -12
  240. package/lib/index.d.ts +3 -3
  241. package/lib/po-templates.module.d.ts +8 -8
  242. package/lib/services/index.d.ts +3 -3
  243. package/lib/services/po-page-customization/index.d.ts +3 -3
  244. package/lib/services/po-page-customization/po-page-customization.module.d.ts +13 -13
  245. package/lib/services/po-page-customization/po-page-customization.service.d.ts +19 -19
  246. package/lib/services/po-page-customization/po-page-dynamic-options.interface.d.ts +8 -8
  247. package/lib/services/po-page-dynamic/index.d.ts +2 -2
  248. package/lib/services/po-page-dynamic/po-page-dynamic-literals.interface.d.ts +4 -4
  249. package/lib/services/po-page-dynamic/po-page-dynamic.module.d.ts +13 -13
  250. package/lib/services/po-page-dynamic/po-page-dynamic.service.d.ts +31 -31
  251. package/lib/services/services.module.d.ts +8 -8
  252. package/lib/utils/util.d.ts +170 -170
  253. package/package.json +15 -15
  254. package/po-ui-ng-templates-14.0.0-next.0.tgz +0 -0
  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/index.spec.js.map +1 -1
  263. package/schematics/ng-add/schema.json +16 -7
  264. package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  265. package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  266. package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +14 -14
  267. package/schematics/ng-generate/po-page-blocked-user/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  268. package/schematics/ng-generate/po-page-blocked-user/index.d.ts +4 -4
  269. package/schematics/ng-generate/po-page-blocked-user/index.js +12 -12
  270. package/schematics/ng-generate/po-page-blocked-user/index.spec.d.ts +1 -1
  271. package/schematics/ng-generate/po-page-blocked-user/index.spec.js +120 -120
  272. package/schematics/ng-generate/po-page-blocked-user/index.spec.js.map +1 -1
  273. package/schematics/ng-generate/po-page-blocked-user/schema.d.ts +3 -3
  274. package/schematics/ng-generate/po-page-blocked-user/schema.js +2 -2
  275. package/schematics/ng-generate/po-page-blocked-user/schema.json +67 -67
  276. package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  277. package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  278. package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +14 -14
  279. package/schematics/ng-generate/po-page-change-password/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  280. package/schematics/ng-generate/po-page-change-password/index.d.ts +4 -4
  281. package/schematics/ng-generate/po-page-change-password/index.js +12 -12
  282. package/schematics/ng-generate/po-page-change-password/index.spec.d.ts +1 -1
  283. package/schematics/ng-generate/po-page-change-password/index.spec.js +120 -120
  284. package/schematics/ng-generate/po-page-change-password/index.spec.js.map +1 -1
  285. package/schematics/ng-generate/po-page-change-password/schema.d.ts +3 -3
  286. package/schematics/ng-generate/po-page-change-password/schema.js +2 -2
  287. package/schematics/ng-generate/po-page-change-password/schema.json +67 -67
  288. package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  289. package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
  290. package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  291. package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +23 -23
  292. package/schematics/ng-generate/po-page-dynamic-detail/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  293. package/schematics/ng-generate/po-page-dynamic-detail/index.d.ts +4 -4
  294. package/schematics/ng-generate/po-page-dynamic-detail/index.js +12 -12
  295. package/schematics/ng-generate/po-page-dynamic-detail/index.spec.d.ts +1 -1
  296. package/schematics/ng-generate/po-page-dynamic-detail/index.spec.js +120 -120
  297. package/schematics/ng-generate/po-page-dynamic-detail/index.spec.js.map +1 -1
  298. package/schematics/ng-generate/po-page-dynamic-detail/schema.d.ts +3 -3
  299. package/schematics/ng-generate/po-page-dynamic-detail/schema.js +2 -2
  300. package/schematics/ng-generate/po-page-dynamic-detail/schema.json +67 -67
  301. package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  302. package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
  303. package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  304. package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +23 -23
  305. package/schematics/ng-generate/po-page-dynamic-edit/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  306. package/schematics/ng-generate/po-page-dynamic-edit/index.d.ts +4 -4
  307. package/schematics/ng-generate/po-page-dynamic-edit/index.js +12 -12
  308. package/schematics/ng-generate/po-page-dynamic-edit/index.spec.d.ts +1 -1
  309. package/schematics/ng-generate/po-page-dynamic-edit/index.spec.js +120 -120
  310. package/schematics/ng-generate/po-page-dynamic-edit/index.spec.js.map +1 -1
  311. package/schematics/ng-generate/po-page-dynamic-edit/schema.d.ts +3 -3
  312. package/schematics/ng-generate/po-page-dynamic-edit/schema.js +2 -2
  313. package/schematics/ng-generate/po-page-dynamic-edit/schema.json +67 -67
  314. package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  315. package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
  316. package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  317. package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +28 -28
  318. package/schematics/ng-generate/po-page-dynamic-search/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  319. package/schematics/ng-generate/po-page-dynamic-search/index.d.ts +4 -4
  320. package/schematics/ng-generate/po-page-dynamic-search/index.js +12 -12
  321. package/schematics/ng-generate/po-page-dynamic-search/index.spec.d.ts +1 -1
  322. package/schematics/ng-generate/po-page-dynamic-search/index.spec.js +120 -120
  323. package/schematics/ng-generate/po-page-dynamic-search/index.spec.js.map +1 -1
  324. package/schematics/ng-generate/po-page-dynamic-search/schema.d.ts +3 -3
  325. package/schematics/ng-generate/po-page-dynamic-search/schema.js +2 -2
  326. package/schematics/ng-generate/po-page-dynamic-search/schema.json +67 -67
  327. package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  328. package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +5 -5
  329. package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  330. package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +21 -21
  331. package/schematics/ng-generate/po-page-dynamic-table/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  332. package/schematics/ng-generate/po-page-dynamic-table/index.d.ts +4 -4
  333. package/schematics/ng-generate/po-page-dynamic-table/index.js +12 -12
  334. package/schematics/ng-generate/po-page-dynamic-table/index.spec.d.ts +1 -1
  335. package/schematics/ng-generate/po-page-dynamic-table/index.spec.js +120 -120
  336. package/schematics/ng-generate/po-page-dynamic-table/index.spec.js.map +1 -1
  337. package/schematics/ng-generate/po-page-dynamic-table/schema.d.ts +3 -3
  338. package/schematics/ng-generate/po-page-dynamic-table/schema.js +2 -2
  339. package/schematics/ng-generate/po-page-dynamic-table/schema.json +67 -67
  340. package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  341. package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +3 -3
  342. package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  343. package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +17 -17
  344. package/schematics/ng-generate/po-page-job-scheduler/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  345. package/schematics/ng-generate/po-page-job-scheduler/index.d.ts +4 -4
  346. package/schematics/ng-generate/po-page-job-scheduler/index.js +12 -12
  347. package/schematics/ng-generate/po-page-job-scheduler/index.spec.d.ts +1 -1
  348. package/schematics/ng-generate/po-page-job-scheduler/index.spec.js +120 -120
  349. package/schematics/ng-generate/po-page-job-scheduler/index.spec.js.map +1 -1
  350. package/schematics/ng-generate/po-page-job-scheduler/schema.d.ts +3 -3
  351. package/schematics/ng-generate/po-page-job-scheduler/schema.js +2 -2
  352. package/schematics/ng-generate/po-page-job-scheduler/schema.json +67 -67
  353. package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
  354. package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
  355. package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +14 -14
  356. package/schematics/ng-generate/po-page-login/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
  357. package/schematics/ng-generate/po-page-login/index.d.ts +4 -4
  358. package/schematics/ng-generate/po-page-login/index.js +12 -12
  359. package/schematics/ng-generate/po-page-login/index.spec.d.ts +1 -1
  360. package/schematics/ng-generate/po-page-login/index.spec.js +120 -120
  361. package/schematics/ng-generate/po-page-login/index.spec.js.map +1 -1
  362. package/schematics/ng-generate/po-page-login/schema.d.ts +3 -3
  363. package/schematics/ng-generate/po-page-login/schema.js +2 -2
  364. package/schematics/ng-generate/po-page-login/schema.json +67 -67
  365. package/po-ui-ng-templates-6.13.0.tgz +0 -0
@@ -1,433 +1,433 @@
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")(1, "po-radio-group", 15);
19
- 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); });
20
- i0.ɵɵelementEnd()();
21
- } if (rf & 2) {
22
- const ctx_r5 = i0.ɵɵnextContext(2);
23
- i0.ɵɵadvance(1);
24
- i0.ɵɵproperty("ngModel", ctx_r5.chosenTypeFormOption)("p-options", ctx_r5.typeFormOptions);
25
- } }
26
- function PoModalPasswordRecoveryComponent_div_3_po_email_8_Template(rf, ctx) { if (rf & 1) {
27
- const _r14 = i0.ɵɵgetCurrentView();
28
- i0.ɵɵelementStart(0, "po-email", 16);
29
- 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); });
30
- i0.ɵɵelementEnd();
31
- } if (rf & 2) {
32
- const ctx_r6 = i0.ɵɵnextContext(2);
33
- i0.ɵɵproperty("ngModel", ctx_r6.email)("p-label", ctx_r6.literals.insertEmail);
34
- } }
35
- function PoModalPasswordRecoveryComponent_div_3_po_input_9_Template(rf, ctx) { if (rf & 1) {
36
- const _r17 = i0.ɵɵgetCurrentView();
37
- i0.ɵɵelementStart(0, "po-input", 17);
38
- 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); });
39
- i0.ɵɵelementEnd();
40
- } if (rf & 2) {
41
- const ctx_r7 = i0.ɵɵnextContext(2);
42
- 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);
43
- } }
44
- function PoModalPasswordRecoveryComponent_div_3_po_modal_password_recovery_error_message_11_Template(rf, ctx) { if (rf & 1) {
45
- i0.ɵɵelement(0, "po-modal-password-recovery-error-message", 18);
46
- } if (rf & 2) {
47
- const ctx_r8 = i0.ɵɵnextContext(2);
48
- i0.ɵɵproperty("p-text", ctx_r8.type === "sms" ? ctx_r8.literals.phoneErrorMessagePhrase : ctx_r8.literals.emailErrorMessagePhrase);
49
- } }
50
- function PoModalPasswordRecoveryComponent_div_3_span_14_Template(rf, ctx) { if (rf & 1) {
51
- i0.ɵɵelementStart(0, "span");
52
- i0.ɵɵtext(1);
53
- i0.ɵɵelementStart(2, "a", 19);
54
- i0.ɵɵtext(3);
55
- i0.ɵɵelementEnd()();
56
- } if (rf & 2) {
57
- const ctx_r9 = i0.ɵɵnextContext(2);
58
- i0.ɵɵadvance(1);
59
- i0.ɵɵtextInterpolate1(" ", ctx_r9.literals.prepositionIn, " ");
60
- i0.ɵɵadvance(1);
61
- i0.ɵɵpropertyInterpolate1("href", "mailto:", ctx_r9.contactEmail, "", i0.ɵɵsanitizeUrl);
62
- i0.ɵɵadvance(1);
63
- i0.ɵɵtextInterpolate1(" ", ctx_r9.contactEmail, " ");
64
- } }
65
- function PoModalPasswordRecoveryComponent_div_3_Template(rf, ctx) { if (rf & 1) {
66
- i0.ɵɵelementStart(0, "div", 4)(1, "div", 5);
67
- i0.ɵɵtext(2);
68
- i0.ɵɵelementEnd();
69
- i0.ɵɵelementStart(3, "div", 6)(4, "form", null, 7);
70
- i0.ɵɵtemplate(6, PoModalPasswordRecoveryComponent_div_3_div_6_Template, 2, 2, "div", 8);
71
- i0.ɵɵelementStart(7, "div", 9);
72
- i0.ɵɵtemplate(8, PoModalPasswordRecoveryComponent_div_3_po_email_8_Template, 1, 2, "po-email", 10);
73
- i0.ɵɵtemplate(9, PoModalPasswordRecoveryComponent_div_3_po_input_9_Template, 1, 5, "po-input", 11);
74
- i0.ɵɵelementEnd();
75
- i0.ɵɵelementStart(10, "div", 12);
76
- i0.ɵɵtemplate(11, PoModalPasswordRecoveryComponent_div_3_po_modal_password_recovery_error_message_11_Template, 1, 1, "po-modal-password-recovery-error-message", 13);
77
- i0.ɵɵelementEnd()()();
78
- i0.ɵɵelementStart(12, "div", 14);
79
- i0.ɵɵtext(13);
80
- i0.ɵɵtemplate(14, PoModalPasswordRecoveryComponent_div_3_span_14_Template, 4, 3, "span", 8);
81
- i0.ɵɵtext(15);
82
- i0.ɵɵelementEnd()();
83
- } if (rf & 2) {
84
- const ctx_r1 = i0.ɵɵnextContext();
85
- i0.ɵɵadvance(2);
86
- i0.ɵɵtextInterpolate1(" ", ctx_r1.emailModalPhrases.firstPhrase, " ");
87
- i0.ɵɵadvance(4);
88
- i0.ɵɵproperty("ngIf", ctx_r1.modalPasswordRecoveryTypeAll);
89
- i0.ɵɵadvance(2);
90
- i0.ɵɵproperty("ngIf", ctx_r1.type === "email" || ctx_r1.type === "all");
91
- i0.ɵɵadvance(1);
92
- i0.ɵɵproperty("ngIf", ctx_r1.type === "sms");
93
- i0.ɵɵadvance(2);
94
- i0.ɵɵproperty("ngIf", ctx_r1.invalidEmail && ctx_r1.control.dirty);
95
- i0.ɵɵadvance(2);
96
- i0.ɵɵtextInterpolate1(" ", ctx_r1.emailModalPhrases.secondPhrase, " ");
97
- i0.ɵɵadvance(1);
98
- i0.ɵɵproperty("ngIf", ctx_r1.contactEmail);
99
- i0.ɵɵadvance(1);
100
- i0.ɵɵtextInterpolate1(" ", ctx_r1.endpoint, " ");
101
- } }
102
- function PoModalPasswordRecoveryComponent_div_4_po_modal_password_recovery_error_message_9_Template(rf, ctx) { if (rf & 1) {
103
- i0.ɵɵelement(0, "po-modal-password-recovery-error-message", 18);
104
- } if (rf & 2) {
105
- const ctx_r21 = i0.ɵɵnextContext(2);
106
- i0.ɵɵproperty("p-text", ctx_r21.smsCodeErrorMessage || ctx_r21.literals.smsCodeErrorMessagePhrase);
107
- } }
108
- function PoModalPasswordRecoveryComponent_div_4_po_modal_password_recovery_error_message_10_Template(rf, ctx) { if (rf & 1) {
109
- i0.ɵɵelement(0, "po-modal-password-recovery-error-message", 18);
110
- } if (rf & 2) {
111
- const ctx_r22 = i0.ɵɵnextContext(2);
112
- i0.ɵɵproperty("p-text", ctx_r22.codeError);
113
- } }
114
- function PoModalPasswordRecoveryComponent_div_4_Template(rf, ctx) { if (rf & 1) {
115
- const _r24 = i0.ɵɵgetCurrentView();
116
- i0.ɵɵelementStart(0, "div", 4, 20)(2, "div", 5);
117
- i0.ɵɵtext(3);
118
- i0.ɵɵelementEnd();
119
- i0.ɵɵelementStart(4, "div", 6)(5, "form", null, 21)(7, "po-input", 22);
120
- 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); });
121
- i0.ɵɵelementEnd();
122
- i0.ɵɵelementStart(8, "div", 12);
123
- i0.ɵɵtemplate(9, PoModalPasswordRecoveryComponent_div_4_po_modal_password_recovery_error_message_9_Template, 1, 1, "po-modal-password-recovery-error-message", 13);
124
- i0.ɵɵtemplate(10, PoModalPasswordRecoveryComponent_div_4_po_modal_password_recovery_error_message_10_Template, 1, 1, "po-modal-password-recovery-error-message", 13);
125
- i0.ɵɵelementEnd()()();
126
- i0.ɵɵelementStart(11, "div", 14);
127
- i0.ɵɵtext(12);
128
- i0.ɵɵelementStart(13, "span", 23);
129
- i0.ɵɵlistener("click", function PoModalPasswordRecoveryComponent_div_4_Template_span_click_13_listener() { i0.ɵɵrestoreView(_r24); const ctx_r26 = i0.ɵɵnextContext(); return ctx_r26.resendSmsCode(); });
130
- i0.ɵɵtext(14);
131
- i0.ɵɵelementEnd()()();
132
- } if (rf & 2) {
133
- const ctx_r2 = i0.ɵɵnextContext();
134
- i0.ɵɵadvance(3);
135
- i0.ɵɵtextInterpolate(ctx_r2.literals.sentSmsCodePhrase);
136
- i0.ɵɵadvance(4);
137
- i0.ɵɵproperty("ngModel", ctx_r2.smsCode)("p-label", ctx_r2.literals.insertCode)("p-mask", ctx_r2.codeMask);
138
- i0.ɵɵadvance(2);
139
- i0.ɵɵproperty("ngIf", ctx_r2.invalidEmail);
140
- i0.ɵɵadvance(1);
141
- i0.ɵɵproperty("ngIf", ctx_r2.showCustomCodeError);
142
- i0.ɵɵadvance(2);
143
- i0.ɵɵtextInterpolate1(" ", ctx_r2.literals.sendAgainPhrase, " ");
144
- i0.ɵɵadvance(2);
145
- i0.ɵɵtextInterpolate(ctx_r2.literals.sendAgain);
146
- } }
147
- function PoModalPasswordRecoveryComponent_div_5_Template(rf, ctx) { if (rf & 1) {
148
- i0.ɵɵelementStart(0, "div", 4, 24);
149
- i0.ɵɵelement(2, "img", 25);
150
- i0.ɵɵelementStart(3, "div", 26);
151
- i0.ɵɵtext(4);
152
- i0.ɵɵelementEnd()();
153
- } if (rf & 2) {
154
- const ctx_r3 = i0.ɵɵnextContext();
155
- i0.ɵɵadvance(4);
156
- i0.ɵɵtextInterpolate1(" ", ctx_r3.literals.emailSentConfirmationPhrase, " ");
157
- } }
158
- /**
159
- * @docsExtends PoModalPasswordRecoveryBaseComponent
160
- *
161
- * @example
162
- *
163
- * <example name="po-modal-password-recovery-basic" title="PO Modal Password Recovery Basic">
164
- * <file name="sample-po-modal-password-recovery-basic/sample-po-modal-password-recovery-basic.component.html"> </file>
165
- * <file name="sample-po-modal-password-recovery-basic/sample-po-modal-password-recovery-basic.component.ts"> </file>
166
- * </example>
167
- *
168
- * <example name="po-modal-password-recovery-labs" title="PO Modal Password Recovery Labs">
169
- * <file name="sample-po-modal-password-recovery-labs/sample-po-modal-password-recovery-labs.component.html"> </file>
170
- * <file name="sample-po-modal-password-recovery-labs/sample-po-modal-password-recovery-labs.component.ts"> </file>
171
- * </example>
172
- *
173
- * <example name="po-modal-password-recovery-request" title="PO Modal Password Recovery Request">
174
- * <file name="sample-po-modal-password-recovery-request/sample-po-modal-password-recovery-request.component.html"> </file>
175
- * <file name="sample-po-modal-password-recovery-request/sample-po-modal-password-recovery-request.component.ts"> </file>
176
- * </example>
177
- */
178
- export class PoModalPasswordRecoveryComponent extends PoModalPasswordRecoveryBaseComponent {
179
- constructor(router, poI18nPipe, poModalPasswordRecoveryService, poLanguageService) {
180
- super(poLanguageService);
181
- this.router = router;
182
- this.poI18nPipe = poI18nPipe;
183
- this.poModalPasswordRecoveryService = poModalPasswordRecoveryService;
184
- this.chosenTypeFormOption = PoModalPasswordRecoveryType.Email;
185
- this.codeMask = '9 9 9 9 9 9';
186
- this.emailModal = true;
187
- this.emailModalPhrases = { firstPhrase: null, secondPhrase: null };
188
- this.endpoint = '.';
189
- this.invalidCode = false;
190
- this.invalidEmail = false;
191
- this.modalType = PoModalPasswordRecoveryModalContent.Email;
192
- this.submittedCodeValue = {};
193
- this.submittedContactValue = {};
194
- this.primaryAction = { label: undefined, action: () => { } };
195
- this.secondaryAction = { label: undefined, action: () => { } };
196
- this.typeFormOptions = [
197
- { label: 'e-mail', value: PoModalPasswordRecoveryType.Email },
198
- { label: 'SMS', value: PoModalPasswordRecoveryType.SMS }
199
- ];
200
- }
201
- ngOnDestroy() {
202
- if (this.passwordRecoverySubscription) {
203
- this.passwordRecoverySubscription.unsubscribe();
204
- }
205
- if (this.smsCodeSubscription) {
206
- this.smsCodeSubscription.unsubscribe();
207
- }
208
- }
209
- completed() {
210
- this.cancelAction();
211
- }
212
- formModelChangesCheck(form) {
213
- const invalidForm = form.invalid;
214
- this.invalidEmail = invalidForm && form.dirty;
215
- this.primaryAction.disabled = invalidForm;
216
- if (this.modalType === PoModalPasswordRecoveryModalContent.SMSCode) {
217
- const codeError = this.codeError !== undefined && this.codeError !== '';
218
- this.showCustomCodeError = codeError && form.pristine;
219
- }
220
- }
221
- getInputType(type) {
222
- this.type = type;
223
- this.pipeModalPhrases();
224
- setTimeout(() => {
225
- this.control = this.emailForm.controls[type];
226
- this.formModelChangesCheck(this.emailForm);
227
- this.resetFormFields(this.control);
228
- });
229
- }
230
- open() {
231
- const control = this.checkFormType(this.type);
232
- this.control = this.emailForm.controls[control];
233
- this.setEmailModalPhrasesAndActions();
234
- this.formModelChangesCheck(this.emailForm);
235
- this.recoveryModalElement.open();
236
- }
237
- openConfirmation() {
238
- this.modalTitle = this.literals.emailSentTitle;
239
- this.modalType = PoModalPasswordRecoveryModalContent.Confirmation;
240
- this.setActions(this.cancelAction, this.literals.closeButton, this.submitAction, this.literals.resendEmailButton, false);
241
- }
242
- openSmsCode() {
243
- this.modalTitle = this.literals.typeCodeTitle;
244
- this.modalType = PoModalPasswordRecoveryModalContent.SMSCode;
245
- this.setActions(this.submitSmsCodeAction, this.literals.continueButton, this.cancelAction, this.literals.cancelButton, true);
246
- setTimeout(() => {
247
- this.control = this.smsCodeForm.controls['sms'];
248
- this.formModelChangesCheck(this.smsCodeForm);
249
- });
250
- }
251
- resendSmsCode() {
252
- this.incrementRetryAttempts();
253
- if (this.urlRecovery) {
254
- this.submitActionRequest(this.submittedContactValue, this.type);
255
- }
256
- else {
257
- this.submit.emit(this.submittedContactValue);
258
- }
259
- }
260
- assignSmsResponse(responseObj) {
261
- this.smsBodyResponse = Object.assign({}, { hash: responseObj.hash });
262
- if (responseObj.urlValidationCode) {
263
- this.smsBodyResponse = Object.assign(this.smsBodyResponse, { urlValidationCode: responseObj.urlValidationCode });
264
- }
265
- }
266
- cancelAction() {
267
- this.resetFormFields(this.control);
268
- this.submittedContactValue = {};
269
- this.chosenTypeFormOption = PoModalPasswordRecoveryType.Email;
270
- this.modalType = PoModalPasswordRecoveryModalContent.Email;
271
- this.type = this.modalPasswordRecoveryTypeAll ? PoModalPasswordRecoveryType.All : this.type;
272
- this.recoveryModalElement.close();
273
- }
274
- checkFormType(type) {
275
- return type !== PoModalPasswordRecoveryType.All ? type : PoModalPasswordRecoveryType.Email;
276
- }
277
- formReset(control) {
278
- control.markAsPristine();
279
- control.markAsUntouched();
280
- control.updateValueAndValidity();
281
- }
282
- getEmitValue(type) {
283
- return type === PoModalPasswordRecoveryType.SMS ? this.phone : this.email;
284
- }
285
- incrementRetryAttempts() {
286
- this.submittedContactValue.retry = this.submittedContactValue.retry + 1 || 1;
287
- }
288
- openExternalLink(url, queryParam) {
289
- window.open(`${url}?token=${queryParam}`, '_self');
290
- }
291
- openInternalLink(url, endpoint, queryParam) {
292
- this.router.navigate([`${url}/${endpoint}`], { queryParams: { token: queryParam } });
293
- }
294
- pipeModalPhrases() {
295
- if (this.type === PoModalPasswordRecoveryType.SMS) {
296
- this.emailModalPhrases.firstPhrase = this.setPipeArguments(this.literals.recoveryPasswordPhrase, this.literals.sms);
297
- this.emailModalPhrases.secondPhrase = this.setPipeArguments(this.literals.supportContact, this.literals.telephone);
298
- }
299
- else {
300
- this.emailModalPhrases.firstPhrase = this.setPipeArguments(this.literals.recoveryPasswordPhrase, this.literals.email);
301
- this.emailModalPhrases.secondPhrase = this.setPipeArguments(this.literals.supportContact, this.literals.email);
302
- }
303
- }
304
- redirectToChangePassword(recoveryToken) {
305
- const urlChangePassword = recoveryToken.urlChangePassword;
306
- if (urlChangePassword) {
307
- isExternalLink(urlChangePassword)
308
- ? this.openExternalLink(urlChangePassword, recoveryToken.token)
309
- : this.openInternalLink(this.urlRecovery, urlChangePassword, recoveryToken.token);
310
- }
311
- else {
312
- const changePasswordEndpoint = 'changePassword';
313
- this.openInternalLink(this.urlRecovery, changePasswordEndpoint, recoveryToken.token);
314
- }
315
- }
316
- resetFormFields(control) {
317
- this.formReset(control);
318
- this.email = undefined;
319
- this.phone = undefined;
320
- this.smsCode = undefined;
321
- }
322
- setActions(primaryAction, primarylabel, secondaryAction, secondaryLabel, disabled) {
323
- this.primaryAction.action = () => primaryAction.call(this);
324
- this.primaryAction.label = primarylabel;
325
- this.secondaryAction.action = () => secondaryAction.call(this);
326
- this.secondaryAction.label = secondaryLabel;
327
- this.primaryAction.disabled = disabled;
328
- }
329
- setEmailModalPhrasesAndActions() {
330
- this.modalTitle = this.literals.forgotPasswordTitle;
331
- this.pipeModalPhrases();
332
- this.modalPasswordRecoveryTypeAll = this.type === PoModalPasswordRecoveryType.All;
333
- this.setActions(this.submitAction, this.literals.sendButton, this.cancelAction, this.literals.cancelButton, true);
334
- }
335
- setRequestEndpoint(urlValidationCode) {
336
- const endpoint = urlValidationCode || 'validation';
337
- return `${this.urlRecovery}/${endpoint}`;
338
- }
339
- setPipeArguments(literalAttr, arg) {
340
- return this.poI18nPipe.transform(literalAttr, arg);
341
- }
342
- submitAction() {
343
- this.modalType === PoModalPasswordRecoveryModalContent.Confirmation
344
- ? this.incrementRetryAttempts()
345
- : this.formReset(this.control);
346
- this.submittedContactValue[this.checkFormType(this.type)] = this.getEmitValue(this.type);
347
- if (this.urlRecovery) {
348
- this.submitActionRequest(this.submittedContactValue, this.type);
349
- }
350
- else {
351
- this.submit.emit(this.submittedContactValue);
352
- }
353
- }
354
- submitActionRequest(data, modalType) {
355
- const params = modalType === PoModalPasswordRecoveryType.SMS ? { type: 'sms' } : undefined;
356
- this.passwordRecoverySubscription = this.poModalPasswordRecoveryService
357
- .post(this.urlRecovery, data, params)
358
- .subscribe(response => {
359
- if ((modalType === PoModalPasswordRecoveryType.Email || modalType === PoModalPasswordRecoveryType.All) &&
360
- response.status === 204) {
361
- this.openConfirmation();
362
- }
363
- else if (modalType === PoModalPasswordRecoveryType.SMS && response.status === 200) {
364
- this.assignSmsResponse(response.body);
365
- this.openSmsCode();
366
- }
367
- });
368
- }
369
- submitSmsCodeAction() {
370
- this.submittedCodeValue.code = this.smsCode;
371
- if (this.urlRecovery) {
372
- this.submittedCodeValue = Object.assign(this.submittedCodeValue, { hash: this.smsBodyResponse.hash });
373
- this.submitSmsCodeRequest(this.submittedCodeValue);
374
- }
375
- else {
376
- this.codeSubmit.emit(this.submittedCodeValue);
377
- }
378
- this.resetFormFields(this.control);
379
- }
380
- submitSmsCodeRequest(data) {
381
- this.smsCodeSubscription = this.poModalPasswordRecoveryService
382
- .post(this.setRequestEndpoint(this.smsBodyResponse.urlValidationCode), data)
383
- .subscribe(response => {
384
- const successStatus = response.status === 200;
385
- if (successStatus) {
386
- this.completed();
387
- this.redirectToChangePassword(response.body);
388
- }
389
- }, error => {
390
- this.codeError = error.error.message;
391
- this.openSmsCode();
392
- });
393
- }
394
- }
395
- 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)); };
396
- PoModalPasswordRecoveryComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoModalPasswordRecoveryComponent, selectors: [["po-modal-password-recovery"]], viewQuery: function PoModalPasswordRecoveryComponent_Query(rf, ctx) { if (rf & 1) {
397
- i0.ɵɵviewQuery(_c0, 5);
398
- i0.ɵɵviewQuery(_c1, 7);
399
- i0.ɵɵviewQuery(_c2, 5);
400
- } if (rf & 2) {
401
- let _t;
402
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.emailForm = _t.first);
403
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.recoveryModalElement = _t.first);
404
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.smsCodeForm = _t.first);
405
- } }, 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) {
406
- i0.ɵɵelementStart(0, "po-modal", 0, 1)(2, "div", 2);
407
- i0.ɵɵtemplate(3, PoModalPasswordRecoveryComponent_div_3_Template, 16, 8, "div", 3);
408
- i0.ɵɵtemplate(4, PoModalPasswordRecoveryComponent_div_4_Template, 15, 8, "div", 3);
409
- i0.ɵɵtemplate(5, PoModalPasswordRecoveryComponent_div_5_Template, 5, 1, "div", 3);
410
- i0.ɵɵelementEnd()();
411
- } if (rf & 2) {
412
- i0.ɵɵproperty("ngSwitch", ctx.modalType)("p-primary-action", ctx.primaryAction)("p-secondary-action", ctx.secondaryAction)("p-title", ctx.modalTitle);
413
- i0.ɵɵadvance(3);
414
- i0.ɵɵproperty("ngSwitchCase", "email");
415
- i0.ɵɵadvance(1);
416
- i0.ɵɵproperty("ngSwitchCase", "smsCode");
417
- i0.ɵɵadvance(1);
418
- i0.ɵɵproperty("ngSwitchCase", "confirmation");
419
- } }, 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 });
420
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoModalPasswordRecoveryComponent, [{
421
- type: Component,
422
- 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" }]
423
- }], function () { return [{ type: i1.Router }, { type: i2.PoI18nPipe }, { type: i3.PoModalPasswordRecoveryService }, { type: i2.PoLanguageService }]; }, { emailForm: [{
424
- type: ViewChild,
425
- args: ['emailForm']
426
- }], recoveryModalElement: [{
427
- type: ViewChild,
428
- args: ['recoveryModal', { static: true }]
429
- }], smsCodeForm: [{
430
- type: ViewChild,
431
- args: ['smsCodeForm']
432
- }] }); })();
433
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVtcGxhdGVzL3NyYy9saWIvY29tcG9uZW50cy9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5L3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBYWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdsRCxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUU1RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ0hqRiwyQkFBMEMseUJBQUE7SUFHdEMsNlBBQWtDLDZMQUV0Qiw0QkFBb0IsSUFGRTtJQUlwQyxpQkFBaUIsRUFBQTs7O0lBSmYsZUFBa0M7SUFBbEMscURBQWtDLHFDQUFBOzs7O0lBUXBDLG9DQU9DO0lBSkMsNk9BQW1CLG9QQUdELGtDQUFnQyxJQUgvQjtJQUtyQixpQkFBVzs7O0lBTFQsc0NBQW1CLHdDQUFBOzs7O0lBT3JCLG9DQVdDO0lBUkMsNk9BQW1CLG9QQU9ELGtDQUFnQyxJQVAvQjtJQVNyQixpQkFBVzs7O0lBVFQsc0NBQW1CLHdDQUFBLDRCQUFBLGlDQUFBLGlDQUFBOzs7SUFhckIsK0RBSTJDOzs7SUFG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OEJNO1FBRU4saUZBS007UUFDUixpQkFBTSxFQUFBOztRQTNHTix3Q0FBc0IsdUNBQUEsMkNBQUEsMkJBQUE7UUFNZCxlQUFxQjtRQUFyQixzQ0FBcUI7UUErRFAsZUFBdUI7UUFBdkIsd0NBQXVCO1FBZ0NsQixlQUE0QjtRQUE1Qiw2Q0FBNEI7O3VGRDNENUMsZ0NBQWdDO2NBSjVDLFNBQVM7MkJBQ0UsNEJBQTRCOytKQUlkLFNBQVM7a0JBQWhDLFNBQVM7bUJBQUMsV0FBVztZQUV3QixvQkFBb0I7a0JBQWpFLFNBQVM7bUJBQUMsZUFBZSxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtZQUVsQixXQUFXO2tCQUFwQyxTQUFTO21CQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIE5nRm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgUG9JMThuUGlwZSxcbiAgUG9MYW5ndWFnZVNlcnZpY2UsXG4gIFBvTW9kYWxBY3Rpb24sXG4gIFBvTW9kYWxDb21wb25lbnQsXG4gIFBvUmFkaW9Hcm91cE9wdGlvblxufSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XG5cbmltcG9ydCB7IGlzRXh0ZXJuYWxMaW5rIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbCc7XG5cbmltcG9ydCB7IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5IH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeUJhc2VDb21wb25lbnQgfSBmcm9tICcuL3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWJhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5TW9kYWxDb250ZW50IH0gZnJvbSAnLi9lbnVtcy9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1tb2RhbC1jb250ZW50LmVudW0nO1xuaW1wb3J0IHsgUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlTZXJ2aWNlIH0gZnJvbSAnLi9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS5zZXJ2aWNlJztcbmltcG9ydCB7IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZSB9IGZyb20gJy4vZW51bXMvcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktdHlwZS5lbnVtJztcblxuLyoqXG4gKiBAZG9jc0V4dGVuZHMgUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlCYXNlQ29tcG9uZW50XG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktYmFzaWNcIiB0aXRsZT1cIlBPIE1vZGFsIFBhc3N3b3JkIFJlY292ZXJ5IEJhc2ljXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1iYXNpYy9zYW1wbGUtcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktYmFzaWMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktYmFzaWMvc2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWJhc2ljLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWxhYnNcIiB0aXRsZT1cIlBPIE1vZGFsIFBhc3N3b3JkIFJlY292ZXJ5IExhYnNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWxhYnMvc2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWxhYnMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktbGFicy9zYW1wbGUtcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktbGFicy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1yZXF1ZXN0XCIgdGl0bGU9XCJQTyBNb2RhbCBQYXNzd29yZCBSZWNvdmVyeSBSZXF1ZXN0XCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1yZXF1ZXN0L3NhbXBsZS1wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1yZXF1ZXN0LmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LXJlcXVlc3Qvc2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LXJlcXVlc3QuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqL1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlDb21wb25lbnQgZXh0ZW5kcyBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdlbWFpbEZvcm0nKSBlbWFpbEZvcm06IE5nRm9ybTtcblxuICBAVmlld0NoaWxkKCdyZWNvdmVyeU1vZGFsJywgeyBzdGF0aWM6IHRydWUgfSkgcmVjb3ZlcnlNb2RhbEVsZW1lbnQ6IFBvTW9kYWxDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZCgnc21zQ29kZUZvcm0nKSBzbXNDb2RlRm9ybTogTmdGb3JtO1xuXG4gIGNob3NlblR5cGVGb3JtT3B0aW9uOiBzdHJpbmcgPSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuRW1haWw7XG4gIGNvZGVNYXNrOiBzdHJpbmcgPSAnOSA5IDkgOSA5IDknO1xuICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2w7XG4gIGVtYWlsTW9kYWw6IGJvb2xlYW4gPSB0cnVlO1xuICBlbWFpbE1vZGFsUGhyYXNlcyA9IHsgZmlyc3RQaHJhc2U6IG51bGwgYXMgc3RyaW5nLCBzZWNvbmRQaHJhc2U6IG51bGwgYXMgc3RyaW5nIH07XG4gIGVuZHBvaW50OiBzdHJpbmcgPSAnLic7XG4gIGludmFsaWRDb2RlOiBib29sZWFuID0gZmFsc2U7XG4gIGludmFsaWRFbWFpbDogYm9vbGVhbiA9IGZhbHNlO1xuICBtb2RhbFRpdGxlOiBzdHJpbmc7XG4gIG1vZGFsVHlwZTogUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlNb2RhbENvbnRlbnQgPSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeU1vZGFsQ29udGVudC5FbWFpbDtcbiAgc2hvd0N1c3RvbUNvZGVFcnJvcjogYm9vbGVhbjtcbiAgc21zQ29kZUVycm9yTWVzc2FnZVBocmFzZTogc3RyaW5nO1xuICBzdWJtaXR0ZWRDb2RlVmFsdWUgPSB7fSBhcyBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeTtcbiAgc3VibWl0dGVkQ29udGFjdFZhbHVlID0ge30gYXMgUG9Nb2RhbFBhc3N3b3JkUmVjb3Zlcnk7XG5cbiAgcHJpbWFyeUFjdGlvbjogUG9Nb2RhbEFjdGlvbiA9IHsgbGFiZWw6IHVuZGVmaW5lZCwgYWN0aW9uOiAoKSA9PiB7fSB9O1xuXG4gIHNlY29uZGFyeUFjdGlvbjogUG9Nb2RhbEFjdGlvbiA9IHsgbGFiZWw6IHVuZGVmaW5lZCwgYWN0aW9uOiAoKSA9PiB7fSB9O1xuXG4gIHR5cGVGb3JtT3B0aW9uczogQXJyYXk8UG9SYWRpb0dyb3VwT3B0aW9uPiA9IFtcbiAgICB7IGxhYmVsOiAnZS1tYWlsJywgdmFsdWU6IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5FbWFpbCB9LFxuICAgIHsgbGFiZWw6ICdTTVMnLCB2YWx1ZTogUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLlNNUyB9XG4gIF07XG5cbiAgcHJpdmF0ZSBwYXNzd29yZFJlY292ZXJ5U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHByaXZhdGUgc21zQm9keVJlc3BvbnNlO1xuICBwcml2YXRlIHNtc0NvZGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcG9JMThuUGlwZTogUG9JMThuUGlwZSxcbiAgICBwcml2YXRlIHBvTW9kYWxQYXNzd29yZFJlY292ZXJ5U2VydmljZTogUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlTZXJ2aWNlLFxuICAgIHBvTGFuZ3VhZ2VTZXJ2aWNlOiBQb0xhbmd1YWdlU2VydmljZVxuICApIHtcbiAgICBzdXBlcihwb0xhbmd1YWdlU2VydmljZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICBpZiAodGhpcy5wYXNzd29yZFJlY292ZXJ5U3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnBhc3N3b3JkUmVjb3ZlcnlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5zbXNDb2RlU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLnNtc0NvZGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBjb21wbGV0ZWQoKSB7XG4gICAgdGhpcy5jYW5jZWxBY3Rpb24oKTtcbiAgfVxuXG4gIGZvcm1Nb2RlbENoYW5nZXNDaGVjayhmb3JtOiBOZ0Zvcm0pIHtcbiAgICBjb25zdCBpbnZhbGlkRm9ybSA9IGZvcm0uaW52YWxpZDtcbiAgICB0aGlzLmludmFsaWRFbWFpbCA9IGludmFsaWRGb3JtICYmIGZvcm0uZGlydHk7XG4gICAgdGhpcy5wcmltYXJ5QWN0aW9uLmRpc2FibGVkID0gaW52YWxpZEZvcm07XG5cbiAgICBpZiAodGhpcy5tb2RhbFR5cGUgPT09IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5TW9kYWxDb250ZW50LlNNU0NvZGUpIHtcbiAgICAgIGNvbnN0IGNvZGVFcnJvcjogYm9vbGVhbiA9IHRoaXMuY29kZUVycm9yICE9PSB1bmRlZmluZWQgJiYgdGhpcy5jb2RlRXJyb3IgIT09ICcnO1xuICAgICAgdGhpcy5zaG93Q3VzdG9tQ29kZUVycm9yID0gY29kZUVycm9yICYmIGZvcm0ucHJpc3RpbmU7XG4gICAgfVxuICB9XG5cbiAgZ2V0SW5wdXRUeXBlKHR5cGUpIHtcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xuICAgIHRoaXMucGlwZU1vZGFsUGhyYXNlcygpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5lbWFpbEZvcm0uY29udHJvbHNbdHlwZV07XG4gICAgICB0aGlzLmZvcm1Nb2RlbENoYW5nZXNDaGVjayh0aGlzLmVtYWlsRm9ybSk7XG4gICAgICB0aGlzLnJlc2V0Rm9ybUZpZWxkcyh0aGlzLmNvbnRyb2wpO1xuICAgIH0pO1xuICB9XG5cbiAgb3BlbigpIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5jaGVja0Zvcm1UeXBlKHRoaXMudHlwZSk7XG4gICAgdGhpcy5jb250cm9sID0gdGhpcy5lbWFpbEZvcm0uY29udHJvbHNbY29udHJvbF07XG4gICAgdGhpcy5zZXRFbWFpbE1vZGFsUGhyYXNlc0FuZEFjdGlvbnMoKTtcbiAgICB0aGlzLmZvcm1Nb2RlbENoYW5nZXNDaGVjayh0aGlzLmVtYWlsRm9ybSk7XG4gICAgdGhpcy5yZWNvdmVyeU1vZGFsRWxlbWVudC5vcGVuKCk7XG4gIH1cblxuICBvcGVuQ29uZmlybWF0aW9uKCkge1xuICAgIHRoaXMubW9kYWxUaXRsZSA9IHRoaXMubGl0ZXJhbHMuZW1haWxTZW50VGl0bGU7XG4gICAgdGhpcy5tb2RhbFR5cGUgPSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeU1vZGFsQ29udGVudC5Db25maXJtYXRpb247XG4gICAgdGhpcy5zZXRBY3Rpb25zKFxuICAgICAgdGhpcy5jYW5jZWxBY3Rpb24sXG4gICAgICB0aGlzLmxpdGVyYWxzLmNsb3NlQnV0dG9uLFxuICAgICAgdGhpcy5zdWJtaXRBY3Rpb24sXG4gICAgICB0aGlzLmxpdGVyYWxzLnJlc2VuZEVtYWlsQnV0dG9uLFxuICAgICAgZmFsc2VcbiAgICApO1xuICB9XG5cbiAgb3BlblNtc0NvZGUoKSB7XG4gICAgdGhpcy5tb2RhbFRpdGxlID0gdGhpcy5saXRlcmFscy50eXBlQ29kZVRpdGxlO1xuICAgIHRoaXMubW9kYWxUeXBlID0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlNb2RhbENvbnRlbnQuU01TQ29kZTtcbiAgICB0aGlzLnNldEFjdGlvbnMoXG4gICAgICB0aGlzLnN1Ym1pdFNtc0NvZGVBY3Rpb24sXG4gICAgICB0aGlzLmxpdGVyYWxzLmNvbnRpbnVlQnV0dG9uLFxuICAgICAgdGhpcy5jYW5jZWxBY3Rpb24sXG4gICAgICB0aGlzLmxpdGVyYWxzLmNhbmNlbEJ1dHRvbixcbiAgICAgIHRydWVcbiAgICApO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmNvbnRyb2wgPSB0aGlzLnNtc0NvZGVGb3JtLmNvbnRyb2xzWydzbXMnXTtcbiAgICAgIHRoaXMuZm9ybU1vZGVsQ2hhbmdlc0NoZWNrKHRoaXMuc21zQ29kZUZvcm0pO1xuICAgIH0pO1xuICB9XG5cbiAgcmVzZW5kU21zQ29kZSgpIHtcbiAgICB0aGlzLmluY3JlbWVudFJldHJ5QXR0ZW1wdHMoKTtcbiAgICBpZiAodGhpcy51cmxSZWNvdmVyeSkge1xuICAgICAgdGhpcy5zdWJtaXRBY3Rpb25SZXF1ZXN0KHRoaXMuc3VibWl0dGVkQ29udGFjdFZhbHVlLCB0aGlzLnR5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN1Ym1pdC5lbWl0KHRoaXMuc3VibWl0dGVkQ29udGFjdFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzc2lnblNtc1Jlc3BvbnNlKHJlc3BvbnNlT2JqKSB7XG4gICAgdGhpcy5zbXNCb2R5UmVzcG9uc2UgPSBPYmplY3QuYXNzaWduKHt9LCB7IGhhc2g6IHJlc3BvbnNlT2JqLmhhc2ggfSk7XG4gICAgaWYgKHJlc3BvbnNlT2JqLnVybFZhbGlkYXRpb25Db2RlKSB7XG4gICAgICB0aGlzLnNtc0JvZHlSZXNwb25zZSA9IE9iamVjdC5hc3NpZ24odGhpcy5zbXNCb2R5UmVzcG9uc2UsIHsgdXJsVmFsaWRhdGlvbkNvZGU6IHJlc3BvbnNlT2JqLnVybFZhbGlkYXRpb25Db2RlIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2FuY2VsQWN0aW9uKCkge1xuICAgIHRoaXMucmVzZXRGb3JtRmllbGRzKHRoaXMuY29udHJvbCk7XG4gICAgdGhpcy5zdWJtaXR0ZWRDb250YWN0VmFsdWUgPSB7fTtcblxuICAgIHRoaXMuY2hvc2VuVHlwZUZvcm1PcHRpb24gPSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuRW1haWw7XG4gICAgdGhpcy5tb2RhbFR5cGUgPSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeU1vZGFsQ29udGVudC5FbWFpbDtcbiAgICB0aGlzLnR5cGUgPSB0aGlzLm1vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGVBbGwgPyBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuQWxsIDogdGhpcy50eXBlO1xuICAgIHRoaXMucmVjb3ZlcnlNb2RhbEVsZW1lbnQuY2xvc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tGb3JtVHlwZSh0eXBlOiBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUpIHtcbiAgICByZXR1cm4gdHlwZSAhPT0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLkFsbCA/IHR5cGUgOiBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuRW1haWw7XG4gIH1cblxuICBwcml2YXRlIGZvcm1SZXNldChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgICBjb250cm9sLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgY29udHJvbC5tYXJrQXNVbnRvdWNoZWQoKTtcbiAgICBjb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RW1pdFZhbHVlKHR5cGU6IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZSkge1xuICAgIHJldHVybiB0eXBlID09PSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuU01TID8gdGhpcy5waG9uZSA6IHRoaXMuZW1haWw7XG4gIH1cblxuICBwcml2YXRlIGluY3JlbWVudFJldHJ5QXR0ZW1wdHMoKSB7XG4gICAgdGhpcy5zdWJtaXR0ZWRDb250YWN0VmFsdWUucmV0cnkgPSB0aGlzLnN1Ym1pdHRlZENvbnRhY3RWYWx1ZS5yZXRyeSArIDEgfHwgMTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkV4dGVybmFsTGluayh1cmwsIHF1ZXJ5UGFyYW0pIHtcbiAgICB3aW5kb3cub3BlbihgJHt1cmx9P3Rva2VuPSR7cXVlcnlQYXJhbX1gLCAnX3NlbGYnKTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlbkludGVybmFsTGluayh1cmwsIGVuZHBvaW50LCBxdWVyeVBhcmFtKSB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW2Ake3VybH0vJHtlbmRwb2ludH1gXSwgeyBxdWVyeVBhcmFtczogeyB0b2tlbjogcXVlcnlQYXJhbSB9IH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwaXBlTW9kYWxQaHJhc2VzKCkge1xuICAgIGlmICh0aGlzLnR5cGUgPT09IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5TTVMpIHtcbiAgICAgIHRoaXMuZW1haWxNb2RhbFBocmFzZXMuZmlyc3RQaHJhc2UgPSB0aGlzLnNldFBpcGVBcmd1bWVudHMoXG4gICAgICAgIHRoaXMubGl0ZXJhbHMucmVjb3ZlcnlQYXNzd29yZFBocmFzZSxcbiAgICAgICAgdGhpcy5saXRlcmFscy5zbXNcbiAgICAgICk7XG4gICAgICB0aGlzLmVtYWlsTW9kYWxQaHJhc2VzLnNlY29uZFBocmFzZSA9IHRoaXMuc2V0UGlwZUFyZ3VtZW50cyhcbiAgICAgICAgdGhpcy5saXRlcmFscy5zdXBwb3J0Q29udGFjdCxcbiAgICAgICAgdGhpcy5saXRlcmFscy50ZWxlcGhvbmVcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZW1haWxNb2RhbFBocmFzZXMuZmlyc3RQaHJhc2UgPSB0aGlzLnNldFBpcGVBcmd1bWVudHMoXG4gICAgICAgIHRoaXMubGl0ZXJhbHMucmVjb3ZlcnlQYXNzd29yZFBocmFzZSxcbiAgICAgICAgdGhpcy5saXRlcmFscy5lbWFpbFxuICAgICAgKTtcbiAgICAgIHRoaXMuZW1haWxNb2RhbFBocmFzZXMuc2Vjb25kUGhyYXNlID0gdGhpcy5zZXRQaXBlQXJndW1lbnRzKHRoaXMubGl0ZXJhbHMuc3VwcG9ydENvbnRhY3QsIHRoaXMubGl0ZXJhbHMuZW1haWwpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVkaXJlY3RUb0NoYW5nZVBhc3N3b3JkKHJlY292ZXJ5VG9rZW46IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5KSB7XG4gICAgY29uc3QgdXJsQ2hhbmdlUGFzc3dvcmQgPSByZWNvdmVyeVRva2VuLnVybENoYW5nZVBhc3N3b3JkO1xuICAgIGlmICh1cmxDaGFuZ2VQYXNzd29yZCkge1xuICAgICAgaXNFeHRlcm5hbExpbmsodXJsQ2hhbmdlUGFzc3dvcmQpXG4gICAgICAgID8gdGhpcy5vcGVuRXh0ZXJuYWxMaW5rKHVybENoYW5nZVBhc3N3b3JkLCByZWNvdmVyeVRva2VuLnRva2VuKVxuICAgICAgICA6IHRoaXMub3BlbkludGVybmFsTGluayh0aGlzLnVybFJlY292ZXJ5LCB1cmxDaGFuZ2VQYXNzd29yZCwgcmVjb3ZlcnlUb2tlbi50b2tlbik7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IGNoYW5nZVBhc3N3b3JkRW5kcG9pbnQgPSAnY2hhbmdlUGFzc3dvcmQnO1xuICAgICAgdGhpcy5vcGVuSW50ZXJuYWxMaW5rKHRoaXMudXJsUmVjb3ZlcnksIGNoYW5nZVBhc3N3b3JkRW5kcG9pbnQsIHJlY292ZXJ5VG9rZW4udG9rZW4pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVzZXRGb3JtRmllbGRzKGNvbnRyb2wpIHtcbiAgICB0aGlzLmZvcm1SZXNldChjb250cm9sKTtcbiAgICB0aGlzLmVtYWlsID0gdW5kZWZpbmVkO1xuICAgIHRoaXMucGhvbmUgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5zbXNDb2RlID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3Rpb25zKHByaW1hcnlBY3Rpb24sIHByaW1hcnlsYWJlbCwgc2Vjb25kYXJ5QWN0aW9uLCBzZWNvbmRhcnlMYWJlbCwgZGlzYWJsZWQpIHtcbiAgICB0aGlzLnByaW1hcnlBY3Rpb24uYWN0aW9uID0gKCkgPT4gcHJpbWFyeUFjdGlvbi5jYWxsKHRoaXMpO1xuICAgIHRoaXMucHJpbWFyeUFjdGlvbi5sYWJlbCA9IHByaW1hcnlsYWJlbDtcbiAgICB0aGlzLnNlY29uZGFyeUFjdGlvbi5hY3Rpb24gPSAoKSA9PiBzZWNvbmRhcnlBY3Rpb24uY2FsbCh0aGlzKTtcbiAgICB0aGlzLnNlY29uZGFyeUFjdGlvbi5sYWJlbCA9IHNlY29uZGFyeUxhYmVsO1xuICAgIHRoaXMucHJpbWFyeUFjdGlvbi5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRFbWFpbE1vZGFsUGhyYXNlc0FuZEFjdGlvbnMoKSB7XG4gICAgdGhpcy5tb2RhbFRpdGxlID0gdGhpcy5saXRlcmFscy5mb3Jnb3RQYXNzd29yZFRpdGxlO1xuICAgIHRoaXMucGlwZU1vZGFsUGhyYXNlcygpO1xuICAgIHRoaXMubW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZUFsbCA9IHRoaXMudHlwZSA9PT0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLkFsbDtcbiAgICB0aGlzLnNldEFjdGlvbnModGhpcy5zdWJtaXRBY3Rpb24sIHRoaXMubGl0ZXJhbHMuc2VuZEJ1dHRvbiwgdGhpcy5jYW5jZWxBY3Rpb24sIHRoaXMubGl0ZXJhbHMuY2FuY2VsQnV0dG9uLCB0cnVlKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0UmVxdWVzdEVuZHBvaW50KHVybFZhbGlkYXRpb25Db2RlPzogc3RyaW5nKSB7XG4gICAgY29uc3QgZW5kcG9pbnQgPSB1cmxWYWxpZGF0aW9uQ29kZSB8fCAndmFsaWRhdGlvbic7XG5cbiAgICByZXR1cm4gYCR7dGhpcy51cmxSZWNvdmVyeX0vJHtlbmRwb2ludH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRQaXBlQXJndW1lbnRzKGxpdGVyYWxBdHRyOiBzdHJpbmcsIGFyZzogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMucG9JMThuUGlwZS50cmFuc2Zvcm0obGl0ZXJhbEF0dHIsIGFyZyk7XG4gIH1cblxuICBwcml2YXRlIHN1Ym1pdEFjdGlvbigpIHtcbiAgICB0aGlzLm1vZGFsVHlwZSA9PT0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlNb2RhbENvbnRlbnQuQ29uZmlybWF0aW9uXG4gICAgICA/IHRoaXMuaW5jcmVtZW50UmV0cnlBdHRlbXB0cygpXG4gICAgICA6IHRoaXMuZm9ybVJlc2V0KHRoaXMuY29udHJvbCk7XG4gICAgdGhpcy5zdWJtaXR0ZWRDb250YWN0VmFsdWVbdGhpcy5jaGVja0Zvcm1UeXBlKHRoaXMudHlwZSldID0gdGhpcy5nZXRFbWl0VmFsdWUodGhpcy50eXBlKTtcbiAgICBpZiAodGhpcy51cmxSZWNvdmVyeSkge1xuICAgICAgdGhpcy5zdWJtaXRBY3Rpb25SZXF1ZXN0KHRoaXMuc3VibWl0dGVkQ29udGFjdFZhbHVlLCB0aGlzLnR5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnN1Ym1pdC5lbWl0KHRoaXMuc3VibWl0dGVkQ29udGFjdFZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN1Ym1pdEFjdGlvblJlcXVlc3QoZGF0YTogUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnksIG1vZGFsVHlwZTogUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlKSB7XG4gICAgY29uc3QgcGFyYW1zID0gbW9kYWxUeXBlID09PSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuU01TID8geyB0eXBlOiAnc21zJyB9IDogdW5kZWZpbmVkO1xuXG4gICAgdGhpcy5wYXNzd29yZFJlY292ZXJ5U3Vic2NyaXB0aW9uID0gdGhpcy5wb01vZGFsUGFzc3dvcmRSZWNvdmVyeVNlcnZpY2VcbiAgICAgIC5wb3N0KHRoaXMudXJsUmVjb3ZlcnksIGRhdGEsIHBhcmFtcylcbiAgICAgIC5zdWJzY3JpYmUocmVzcG9uc2UgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgKG1vZGFsVHlwZSA9PT0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLkVtYWlsIHx8IG1vZGFsVHlwZSA9PT0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLkFsbCkgJiZcbiAgICAgICAgICByZXNwb25zZS5zdGF0dXMgPT09IDIwNFxuICAgICAgICApIHtcbiAgICAgICAgICB0aGlzLm9wZW5Db25maXJtYXRpb24oKTtcbiAgICAgICAgfSBlbHNlIGlmIChtb2RhbFR5cGUgPT09IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5TTVMgJiYgcmVzcG9uc2Uuc3RhdHVzID09PSAyMDApIHtcbiAgICAgICAgICB0aGlzLmFzc2lnblNtc1Jlc3BvbnNlKHJlc3BvbnNlLmJvZHkpO1xuICAgICAgICAgIHRoaXMub3BlblNtc0NvZGUoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHN1Ym1pdFNtc0NvZGVBY3Rpb24oKSB7XG4gICAgdGhpcy5zdWJtaXR0ZWRDb2RlVmFsdWUuY29kZSA9IHRoaXMuc21zQ29kZTtcblxuICAgIGlmICh0aGlzLnVybFJlY292ZXJ5KSB7XG4gICAgICB0aGlzLnN1Ym1pdHRlZENvZGVWYWx1ZSA9IE9iamVjdC5hc3NpZ24odGhpcy5zdWJtaXR0ZWRDb2RlVmFsdWUsIHsgaGFzaDogdGhpcy5zbXNCb2R5UmVzcG9uc2UuaGFzaCB9KTtcbiAgICAgIHRoaXMuc3VibWl0U21zQ29kZVJlcXVlc3QodGhpcy5zdWJtaXR0ZWRDb2RlVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZGVTdWJtaXQuZW1pdCh0aGlzLnN1Ym1pdHRlZENvZGVWYWx1ZSk7XG4gICAgfVxuICAgIHRoaXMucmVzZXRGb3JtRmllbGRzKHRoaXMuY29udHJvbCk7XG4gIH1cblxuICBwcml2YXRlIHN1Ym1pdFNtc0NvZGVSZXF1ZXN0KGRhdGE6IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5KSB7XG4gICAgdGhpcy5zbXNDb2RlU3Vic2NyaXB0aW9uID0gdGhpcy5wb01vZGFsUGFzc3dvcmRSZWNvdmVyeVNlcnZpY2VcbiAgICAgIC5wb3N0KHRoaXMuc2V0UmVxdWVzdEVuZHBvaW50KHRoaXMuc21zQm9keVJlc3BvbnNlLnVybFZhbGlkYXRpb25Db2RlKSwgZGF0YSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIHJlc3BvbnNlID0+IHtcbiAgICAgICAgICBjb25zdCBzdWNjZXNzU3RhdHVzID0gcmVzcG9uc2Uuc3RhdHVzID09PSAyMDA7XG4gICAgICAgICAgaWYgKHN1Y2Nlc3NTdGF0dXMpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcGxldGVkKCk7XG4gICAgICAgICAgICB0aGlzLnJlZGlyZWN0VG9DaGFuZ2VQYXNzd29yZChyZXNwb25zZS5ib2R5KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yID0+IHtcbiAgICAgICAgICB0aGlzLmNvZGVFcnJvciA9IGVycm9yLmVycm9yLm1lc3NhZ2U7XG4gICAgICAgICAgdGhpcy5vcGVuU21zQ29kZSgpO1xuICAgICAgICB9XG4gICAgICApO1xuICB9XG59XG4iLCI8cG8tbW9kYWxcbiAgI3JlY292ZXJ5TW9kYWxcbiAgcC1oaWRlLWNsb3NlXG4gIHAtc2l6ZT1cImF1dG9cIlxuICBbbmdTd2l0Y2hdPVwibW9kYWxUeXBlXCJcbiAgW3AtcHJpbWFyeS1hY3Rpb25dPVwicHJpbWFyeUFjdGlvblwiXG4gIFtwLXNlY29uZGFyeS1hY3Rpb25dPVwic2Vjb25kYXJ5QWN0aW9uXCJcbiAgW3AtdGl0bGVdPVwibW9kYWxUaXRsZVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS13cmFwcGVyXCI+XG4gICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2VtYWlsJ1wiIGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktY29udGVudCBwby1yb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS10ZXh0IHBvLW1kLTEyIHBvLW1iLTFcIj5cbiAgICAgICAge3sgZW1haWxNb2RhbFBocmFzZXMuZmlyc3RQaHJhc2UgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInBvLW1iLTIgcG8tbWQtMTJcIj5cbiAgICAgICAgPGZvcm0gI2VtYWlsRm9ybT1cIm5nRm9ybVwiPlxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJtb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlQWxsXCI+XG4gICAgICAgICAgICA8cG8tcmFkaW8tZ3JvdXBcbiAgICAgICAgICAgICAgbmFtZT1cInR5cGVcIlxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNob3NlblR5cGVGb3JtT3B0aW9uXCJcbiAgICAgICAgICAgICAgW3Atb3B0aW9uc109XCJ0eXBlRm9ybU9wdGlvbnNcIlxuICAgICAgICAgICAgICAocC1jaGFuZ2UpPVwiZ2V0SW5wdXRUeXBlKCRldmVudClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9wby1yYWRpby1ncm91cD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwby1tdC0xXCI+XG4gICAgICAgICAgICA8cG8tZW1haWxcbiAgICAgICAgICAgICAgKm5nSWY9XCJ0eXBlID09PSAnZW1haWwnIHx8IHR5cGUgPT09ICdhbGwnXCJcbiAgICAgICAgICAgICAgbmFtZT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJlbWFpbFwiXG4gICAgICAgICAgICAgIHAtcmVxdWlyZWRcbiAgICAgICAgICAgICAgW3AtbGFiZWxdPVwibGl0ZXJhbHMuaW5zZXJ0RW1haWxcIlxuICAgICAgICAgICAgICAocC1jaGFuZ2UtbW9kZWwpPVwiZm9ybU1vZGVsQ2hhbmdlc0NoZWNrKGVtYWlsRm9ybSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9wby1lbWFpbD5cblxuICAgICAgICAgICAgPHBvLWlucHV0XG4gICAgICAgICAgICAgICpuZ0lmPVwidHlwZSA9PT0gJ3NtcydcIlxuICAgICAgICAgICAgICBuYW1lPVwic21zXCJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwaG9uZVwiXG4gICAgICAgICAgICAgIHAtaWNvbj1cInBvLWljb24tdGVsZXBob25lXCJcbiAgICAgICAgICAgICAgcC1yZXF1aXJlZFxuICAgICAgICAgICAgICBbcC1sYWJlbF09XCJsaXRlcmFscy5pbnNlcnRQaG9uZVwiXG4gICAgICAgICAgICAgIFtwLW1hc2tdPVwicGhvbmVNYXNrXCJcbiAgICAgICAgICAgICAgW3AtbWF4bGVuZ3RoXT1cIm1heExlbmd0aFwiXG4gICAgICAgICAgICAgIFtwLW1pbmxlbmd0aF09XCJtaW5MZW5ndGhcIlxuICAgICAgICAgICAgICAocC1jaGFuZ2UtbW9kZWwpPVwiZm9ybU1vZGVsQ2hhbmdlc0NoZWNrKGVtYWlsRm9ybSlcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9wby1pbnB1dD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwby1maWVsZC1jb250YWluZXItYm90dG9tIHBvLWZpZWxkLWNvbnRhaW5lci1lcnJvci1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1lcnJvci1tZXNzYWdlXG4gICAgICAgICAgICAgICpuZ0lmPVwiaW52YWxpZEVtYWlsICYmIGNvbnRyb2wuZGlydHlcIlxuICAgICAgICAgICAgICBbcC10ZXh0XT1cInR5cGUgPT09ICdzbXMnID8gbGl0ZXJhbHMucGhvbmVFcnJvck1lc3NhZ2VQaHJhc2UgOiBsaXRlcmFscy5lbWFpbEVycm9yTWVzc2FnZVBocmFzZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWVycm9yLW1lc3NhZ2U+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LXRleHQgcG8tbWQtMTJcIj5cbiAgICAgICAge3sgZW1haWxNb2RhbFBocmFzZXMuc2Vjb25kUGhyYXNlIH19XG4gICAgICAgIDxzcGFuICpuZ0lmPVwiY29udGFjdEVtYWlsXCI+XG4gICAgICAgICAge3sgbGl0ZXJhbHMucHJlcG9zaXRpb25JbiB9fVxuICAgICAgICAgIDxhIGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktbGlua1wiIGhyZWY9XCJtYWlsdG86e3sgY29udGFjdEVtYWlsIH19XCIgdGFyZ2V0PVwiX3NlbGZcIj5cbiAgICAgICAgICAgIHt7IGNvbnRhY3RFbWFpbCB9fVxuICAgICAgICAgIDwvYT5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICB7eyBlbmRwb2ludCB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICNzbXNDb2RlTW9kYWwgKm5nU3dpdGNoQ2FzZT1cIidzbXNDb2RlJ1wiIGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktY29udGVudCBwby1yb3dcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS10ZXh0IHBvLW1kLTEyIHBvLW1iLTFcIj57eyBsaXRlcmFscy5zZW50U21zQ29kZVBocmFzZSB9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cInBvLW1iLTIgcG8tbWQtMTJcIj5cbiAgICAgICAgPGZvcm0gI3Ntc0NvZGVGb3JtPVwibmdGb3JtXCI+XG4gICAgICAgICAgPHBvLWlucHV0XG4gICAgICAgICAgICBuYW1lPVwic21zXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic21zQ29kZVwiXG4gICAgICAgICAgICBwLW1heGxlbmd0aD1cIjExXCJcbiAgICAgICAgICAgIHAtbWlubGVuZ3RoPVwiMTFcIlxuICAgICAgICAgICAgcC1yZXF1aXJlZFxuICAgICAgICAgICAgW3AtbGFiZWxdPVwibGl0ZXJhbHMuaW5zZXJ0Q29kZVwiXG4gICAgICAgICAgICBbcC1tYXNrXT1cImNvZGVNYXNrXCJcbiAgICAgICAgICAgIChwLWNoYW5nZS1tb2RlbCk9XCJmb3JtTW9kZWxDaGFuZ2VzQ2hlY2soc21zQ29kZUZvcm0pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgPC9wby1pbnB1dD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicG8tZmllbGQtY29udGFpbmVyLWJvdHRvbSBwby1maWVsZC1jb250YWluZXItZXJyb3ItY29udGFpbmVyXCI+XG4gICAgICAgICAgICA8cG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktZXJyb3ItbWVzc2FnZVxuICAgICAgICAgICAgICAqbmdJZj1cImludmFsaWRFbWFpbFwiXG4gICAgICAgICAgICAgIFtwLXRleHRdPVwic21zQ29kZUVycm9yTWVzc2FnZSB8fCB0aGlzLmxpdGVyYWxzLnNtc0NvZGVFcnJvck1lc3NhZ2VQaHJhc2VcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1lcnJvci1tZXNzYWdlPlxuICAgICAgICAgICAgPHBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWVycm9yLW1lc3NhZ2UgKm5nSWY9XCJzaG93Q3VzdG9tQ29kZUVycm9yXCIgW3AtdGV4dF09XCJjb2RlRXJyb3JcIj5cbiAgICAgICAgICAgIDwvcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktZXJyb3ItbWVzc2FnZT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktdGV4dCBwby1tZC0xMlwiPlxuICAgICAgICB7eyBsaXRlcmFscy5zZW5kQWdhaW5QaHJhc2UgfX1cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1saW5rXCIgKGNsaWNrKT1cInJlc2VuZFNtc0NvZGUoKVwiPnt7IGxpdGVyYWxzLnNlbmRBZ2FpbiB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAjY29uZmlybWF0aW9uTW9kYWwgKm5nU3dpdGNoQ2FzZT1cIidjb25maXJtYXRpb24nXCIgY2xhc3M9XCJwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1jb250ZW50IHBvLXJvd1wiPlxuICAgICAgPGltZyBjbGFzcz1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LXVzZXItaW1hZ2UgcG8tbWItMlwiIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9lbWFpbC1zZW50LnN2Z1wiIC8+XG4gICAgICA8ZGl2IGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktdGV4dFwiPlxuICAgICAgICB7eyBsaXRlcmFscy5lbWFpbFNlbnRDb25maXJtYXRpb25QaHJhc2UgfX1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvcG8tbW9kYWw+XG4iXX0=
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")(1, "po-radio-group", 15);
19
+ 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 i0.ɵɵresetView(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 i0.ɵɵresetView(ctx_r12.getInputType($event)); });
20
+ i0.ɵɵelementEnd()();
21
+ } if (rf & 2) {
22
+ const ctx_r5 = i0.ɵɵnextContext(2);
23
+ i0.ɵɵadvance(1);
24
+ i0.ɵɵproperty("ngModel", ctx_r5.chosenTypeFormOption)("p-options", ctx_r5.typeFormOptions);
25
+ } }
26
+ function PoModalPasswordRecoveryComponent_div_3_po_email_8_Template(rf, ctx) { if (rf & 1) {
27
+ const _r14 = i0.ɵɵgetCurrentView();
28
+ i0.ɵɵelementStart(0, "po-email", 16);
29
+ 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 i0.ɵɵresetView(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 i0.ɵɵresetView(ctx_r15.formModelChangesCheck(_r4)); });
30
+ i0.ɵɵelementEnd();
31
+ } if (rf & 2) {
32
+ const ctx_r6 = i0.ɵɵnextContext(2);
33
+ i0.ɵɵproperty("ngModel", ctx_r6.email)("p-label", ctx_r6.literals.insertEmail);
34
+ } }
35
+ function PoModalPasswordRecoveryComponent_div_3_po_input_9_Template(rf, ctx) { if (rf & 1) {
36
+ const _r17 = i0.ɵɵgetCurrentView();
37
+ i0.ɵɵelementStart(0, "po-input", 17);
38
+ 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 i0.ɵɵresetView(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 i0.ɵɵresetView(ctx_r18.formModelChangesCheck(_r4)); });
39
+ i0.ɵɵelementEnd();
40
+ } if (rf & 2) {
41
+ const ctx_r7 = i0.ɵɵnextContext(2);
42
+ 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);
43
+ } }
44
+ function PoModalPasswordRecoveryComponent_div_3_po_modal_password_recovery_error_message_11_Template(rf, ctx) { if (rf & 1) {
45
+ i0.ɵɵelement(0, "po-modal-password-recovery-error-message", 18);
46
+ } if (rf & 2) {
47
+ const ctx_r8 = i0.ɵɵnextContext(2);
48
+ i0.ɵɵproperty("p-text", ctx_r8.type === "sms" ? ctx_r8.literals.phoneErrorMessagePhrase : ctx_r8.literals.emailErrorMessagePhrase);
49
+ } }
50
+ function PoModalPasswordRecoveryComponent_div_3_span_14_Template(rf, ctx) { if (rf & 1) {
51
+ i0.ɵɵelementStart(0, "span");
52
+ i0.ɵɵtext(1);
53
+ i0.ɵɵelementStart(2, "a", 19);
54
+ i0.ɵɵtext(3);
55
+ i0.ɵɵelementEnd()();
56
+ } if (rf & 2) {
57
+ const ctx_r9 = i0.ɵɵnextContext(2);
58
+ i0.ɵɵadvance(1);
59
+ i0.ɵɵtextInterpolate1(" ", ctx_r9.literals.prepositionIn, " ");
60
+ i0.ɵɵadvance(1);
61
+ i0.ɵɵpropertyInterpolate1("href", "mailto:", ctx_r9.contactEmail, "", i0.ɵɵsanitizeUrl);
62
+ i0.ɵɵadvance(1);
63
+ i0.ɵɵtextInterpolate1(" ", ctx_r9.contactEmail, " ");
64
+ } }
65
+ function PoModalPasswordRecoveryComponent_div_3_Template(rf, ctx) { if (rf & 1) {
66
+ i0.ɵɵelementStart(0, "div", 4)(1, "div", 5);
67
+ i0.ɵɵtext(2);
68
+ i0.ɵɵelementEnd();
69
+ i0.ɵɵelementStart(3, "div", 6)(4, "form", null, 7);
70
+ i0.ɵɵtemplate(6, PoModalPasswordRecoveryComponent_div_3_div_6_Template, 2, 2, "div", 8);
71
+ i0.ɵɵelementStart(7, "div", 9);
72
+ i0.ɵɵtemplate(8, PoModalPasswordRecoveryComponent_div_3_po_email_8_Template, 1, 2, "po-email", 10);
73
+ i0.ɵɵtemplate(9, PoModalPasswordRecoveryComponent_div_3_po_input_9_Template, 1, 5, "po-input", 11);
74
+ i0.ɵɵelementEnd();
75
+ i0.ɵɵelementStart(10, "div", 12);
76
+ i0.ɵɵtemplate(11, PoModalPasswordRecoveryComponent_div_3_po_modal_password_recovery_error_message_11_Template, 1, 1, "po-modal-password-recovery-error-message", 13);
77
+ i0.ɵɵelementEnd()()();
78
+ i0.ɵɵelementStart(12, "div", 14);
79
+ i0.ɵɵtext(13);
80
+ i0.ɵɵtemplate(14, PoModalPasswordRecoveryComponent_div_3_span_14_Template, 4, 3, "span", 8);
81
+ i0.ɵɵtext(15);
82
+ i0.ɵɵelementEnd()();
83
+ } if (rf & 2) {
84
+ const ctx_r1 = i0.ɵɵnextContext();
85
+ i0.ɵɵadvance(2);
86
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.emailModalPhrases.firstPhrase, " ");
87
+ i0.ɵɵadvance(4);
88
+ i0.ɵɵproperty("ngIf", ctx_r1.modalPasswordRecoveryTypeAll);
89
+ i0.ɵɵadvance(2);
90
+ i0.ɵɵproperty("ngIf", ctx_r1.type === "email" || ctx_r1.type === "all");
91
+ i0.ɵɵadvance(1);
92
+ i0.ɵɵproperty("ngIf", ctx_r1.type === "sms");
93
+ i0.ɵɵadvance(2);
94
+ i0.ɵɵproperty("ngIf", ctx_r1.invalidEmail && ctx_r1.control.dirty);
95
+ i0.ɵɵadvance(2);
96
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.emailModalPhrases.secondPhrase, " ");
97
+ i0.ɵɵadvance(1);
98
+ i0.ɵɵproperty("ngIf", ctx_r1.contactEmail);
99
+ i0.ɵɵadvance(1);
100
+ i0.ɵɵtextInterpolate1(" ", ctx_r1.endpoint, " ");
101
+ } }
102
+ function PoModalPasswordRecoveryComponent_div_4_po_modal_password_recovery_error_message_9_Template(rf, ctx) { if (rf & 1) {
103
+ i0.ɵɵelement(0, "po-modal-password-recovery-error-message", 18);
104
+ } if (rf & 2) {
105
+ const ctx_r21 = i0.ɵɵnextContext(2);
106
+ i0.ɵɵproperty("p-text", ctx_r21.smsCodeErrorMessage || ctx_r21.literals.smsCodeErrorMessagePhrase);
107
+ } }
108
+ function PoModalPasswordRecoveryComponent_div_4_po_modal_password_recovery_error_message_10_Template(rf, ctx) { if (rf & 1) {
109
+ i0.ɵɵelement(0, "po-modal-password-recovery-error-message", 18);
110
+ } if (rf & 2) {
111
+ const ctx_r22 = i0.ɵɵnextContext(2);
112
+ i0.ɵɵproperty("p-text", ctx_r22.codeError);
113
+ } }
114
+ function PoModalPasswordRecoveryComponent_div_4_Template(rf, ctx) { if (rf & 1) {
115
+ const _r24 = i0.ɵɵgetCurrentView();
116
+ i0.ɵɵelementStart(0, "div", 4, 20)(2, "div", 5);
117
+ i0.ɵɵtext(3);
118
+ i0.ɵɵelementEnd();
119
+ i0.ɵɵelementStart(4, "div", 6)(5, "form", null, 21)(7, "po-input", 22);
120
+ i0.ɵɵlistener("ngModelChange", function PoModalPasswordRecoveryComponent_div_4_Template_po_input_ngModelChange_7_listener($event) { i0.ɵɵrestoreView(_r24); const ctx_r23 = i0.ɵɵnextContext(); return i0.ɵɵresetView(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 i0.ɵɵresetView(ctx_r25.formModelChangesCheck(_r20)); });
121
+ i0.ɵɵelementEnd();
122
+ i0.ɵɵelementStart(8, "div", 12);
123
+ i0.ɵɵtemplate(9, PoModalPasswordRecoveryComponent_div_4_po_modal_password_recovery_error_message_9_Template, 1, 1, "po-modal-password-recovery-error-message", 13);
124
+ i0.ɵɵtemplate(10, PoModalPasswordRecoveryComponent_div_4_po_modal_password_recovery_error_message_10_Template, 1, 1, "po-modal-password-recovery-error-message", 13);
125
+ i0.ɵɵelementEnd()()();
126
+ i0.ɵɵelementStart(11, "div", 14);
127
+ i0.ɵɵtext(12);
128
+ i0.ɵɵelementStart(13, "span", 23);
129
+ i0.ɵɵlistener("click", function PoModalPasswordRecoveryComponent_div_4_Template_span_click_13_listener() { i0.ɵɵrestoreView(_r24); const ctx_r26 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r26.resendSmsCode()); });
130
+ i0.ɵɵtext(14);
131
+ i0.ɵɵelementEnd()()();
132
+ } if (rf & 2) {
133
+ const ctx_r2 = i0.ɵɵnextContext();
134
+ i0.ɵɵadvance(3);
135
+ i0.ɵɵtextInterpolate(ctx_r2.literals.sentSmsCodePhrase);
136
+ i0.ɵɵadvance(4);
137
+ i0.ɵɵproperty("ngModel", ctx_r2.smsCode)("p-label", ctx_r2.literals.insertCode)("p-mask", ctx_r2.codeMask);
138
+ i0.ɵɵadvance(2);
139
+ i0.ɵɵproperty("ngIf", ctx_r2.invalidEmail);
140
+ i0.ɵɵadvance(1);
141
+ i0.ɵɵproperty("ngIf", ctx_r2.showCustomCodeError);
142
+ i0.ɵɵadvance(2);
143
+ i0.ɵɵtextInterpolate1(" ", ctx_r2.literals.sendAgainPhrase, " ");
144
+ i0.ɵɵadvance(2);
145
+ i0.ɵɵtextInterpolate(ctx_r2.literals.sendAgain);
146
+ } }
147
+ function PoModalPasswordRecoveryComponent_div_5_Template(rf, ctx) { if (rf & 1) {
148
+ i0.ɵɵelementStart(0, "div", 4, 24);
149
+ i0.ɵɵelement(2, "img", 25);
150
+ i0.ɵɵelementStart(3, "div", 26);
151
+ i0.ɵɵtext(4);
152
+ i0.ɵɵelementEnd()();
153
+ } if (rf & 2) {
154
+ const ctx_r3 = i0.ɵɵnextContext();
155
+ i0.ɵɵadvance(4);
156
+ i0.ɵɵtextInterpolate1(" ", ctx_r3.literals.emailSentConfirmationPhrase, " ");
157
+ } }
158
+ /**
159
+ * @docsExtends PoModalPasswordRecoveryBaseComponent
160
+ *
161
+ * @example
162
+ *
163
+ * <example name="po-modal-password-recovery-basic" title="PO Modal Password Recovery Basic">
164
+ * <file name="sample-po-modal-password-recovery-basic/sample-po-modal-password-recovery-basic.component.html"> </file>
165
+ * <file name="sample-po-modal-password-recovery-basic/sample-po-modal-password-recovery-basic.component.ts"> </file>
166
+ * </example>
167
+ *
168
+ * <example name="po-modal-password-recovery-labs" title="PO Modal Password Recovery Labs">
169
+ * <file name="sample-po-modal-password-recovery-labs/sample-po-modal-password-recovery-labs.component.html"> </file>
170
+ * <file name="sample-po-modal-password-recovery-labs/sample-po-modal-password-recovery-labs.component.ts"> </file>
171
+ * </example>
172
+ *
173
+ * <example name="po-modal-password-recovery-request" title="PO Modal Password Recovery Request">
174
+ * <file name="sample-po-modal-password-recovery-request/sample-po-modal-password-recovery-request.component.html"> </file>
175
+ * <file name="sample-po-modal-password-recovery-request/sample-po-modal-password-recovery-request.component.ts"> </file>
176
+ * </example>
177
+ */
178
+ export class PoModalPasswordRecoveryComponent extends PoModalPasswordRecoveryBaseComponent {
179
+ constructor(router, poI18nPipe, poModalPasswordRecoveryService, poLanguageService) {
180
+ super(poLanguageService);
181
+ this.router = router;
182
+ this.poI18nPipe = poI18nPipe;
183
+ this.poModalPasswordRecoveryService = poModalPasswordRecoveryService;
184
+ this.chosenTypeFormOption = PoModalPasswordRecoveryType.Email;
185
+ this.codeMask = '9 9 9 9 9 9';
186
+ this.emailModal = true;
187
+ this.emailModalPhrases = { firstPhrase: null, secondPhrase: null };
188
+ this.endpoint = '.';
189
+ this.invalidCode = false;
190
+ this.invalidEmail = false;
191
+ this.modalType = PoModalPasswordRecoveryModalContent.Email;
192
+ this.submittedCodeValue = {};
193
+ this.submittedContactValue = {};
194
+ this.primaryAction = { label: undefined, action: () => { } };
195
+ this.secondaryAction = { label: undefined, action: () => { } };
196
+ this.typeFormOptions = [
197
+ { label: 'e-mail', value: PoModalPasswordRecoveryType.Email },
198
+ { label: 'SMS', value: PoModalPasswordRecoveryType.SMS }
199
+ ];
200
+ }
201
+ ngOnDestroy() {
202
+ if (this.passwordRecoverySubscription) {
203
+ this.passwordRecoverySubscription.unsubscribe();
204
+ }
205
+ if (this.smsCodeSubscription) {
206
+ this.smsCodeSubscription.unsubscribe();
207
+ }
208
+ }
209
+ completed() {
210
+ this.cancelAction();
211
+ }
212
+ formModelChangesCheck(form) {
213
+ const invalidForm = form.invalid;
214
+ this.invalidEmail = invalidForm && form.dirty;
215
+ this.primaryAction.disabled = invalidForm;
216
+ if (this.modalType === PoModalPasswordRecoveryModalContent.SMSCode) {
217
+ const codeError = this.codeError !== undefined && this.codeError !== '';
218
+ this.showCustomCodeError = codeError && form.pristine;
219
+ }
220
+ }
221
+ getInputType(type) {
222
+ this.type = type;
223
+ this.pipeModalPhrases();
224
+ setTimeout(() => {
225
+ this.control = this.emailForm.controls[type];
226
+ this.formModelChangesCheck(this.emailForm);
227
+ this.resetFormFields(this.control);
228
+ });
229
+ }
230
+ open() {
231
+ const control = this.checkFormType(this.type);
232
+ this.control = this.emailForm.controls[control];
233
+ this.setEmailModalPhrasesAndActions();
234
+ this.formModelChangesCheck(this.emailForm);
235
+ this.recoveryModalElement.open();
236
+ }
237
+ openConfirmation() {
238
+ this.modalTitle = this.literals.emailSentTitle;
239
+ this.modalType = PoModalPasswordRecoveryModalContent.Confirmation;
240
+ this.setActions(this.cancelAction, this.literals.closeButton, this.submitAction, this.literals.resendEmailButton, false);
241
+ }
242
+ openSmsCode() {
243
+ this.modalTitle = this.literals.typeCodeTitle;
244
+ this.modalType = PoModalPasswordRecoveryModalContent.SMSCode;
245
+ this.setActions(this.submitSmsCodeAction, this.literals.continueButton, this.cancelAction, this.literals.cancelButton, true);
246
+ setTimeout(() => {
247
+ this.control = this.smsCodeForm.controls['sms'];
248
+ this.formModelChangesCheck(this.smsCodeForm);
249
+ });
250
+ }
251
+ resendSmsCode() {
252
+ this.incrementRetryAttempts();
253
+ if (this.urlRecovery) {
254
+ this.submitActionRequest(this.submittedContactValue, this.type);
255
+ }
256
+ else {
257
+ this.submit.emit(this.submittedContactValue);
258
+ }
259
+ }
260
+ assignSmsResponse(responseObj) {
261
+ this.smsBodyResponse = Object.assign({}, { hash: responseObj.hash });
262
+ if (responseObj.urlValidationCode) {
263
+ this.smsBodyResponse = Object.assign(this.smsBodyResponse, { urlValidationCode: responseObj.urlValidationCode });
264
+ }
265
+ }
266
+ cancelAction() {
267
+ this.resetFormFields(this.control);
268
+ this.submittedContactValue = {};
269
+ this.chosenTypeFormOption = PoModalPasswordRecoveryType.Email;
270
+ this.modalType = PoModalPasswordRecoveryModalContent.Email;
271
+ this.type = this.modalPasswordRecoveryTypeAll ? PoModalPasswordRecoveryType.All : this.type;
272
+ this.recoveryModalElement.close();
273
+ }
274
+ checkFormType(type) {
275
+ return type !== PoModalPasswordRecoveryType.All ? type : PoModalPasswordRecoveryType.Email;
276
+ }
277
+ formReset(control) {
278
+ control.markAsPristine();
279
+ control.markAsUntouched();
280
+ control.updateValueAndValidity();
281
+ }
282
+ getEmitValue(type) {
283
+ return type === PoModalPasswordRecoveryType.SMS ? this.phone : this.email;
284
+ }
285
+ incrementRetryAttempts() {
286
+ this.submittedContactValue.retry = this.submittedContactValue.retry + 1 || 1;
287
+ }
288
+ openExternalLink(url, queryParam) {
289
+ window.open(`${url}?token=${queryParam}`, '_self');
290
+ }
291
+ openInternalLink(url, endpoint, queryParam) {
292
+ this.router.navigate([`${url}/${endpoint}`], { queryParams: { token: queryParam } });
293
+ }
294
+ pipeModalPhrases() {
295
+ if (this.type === PoModalPasswordRecoveryType.SMS) {
296
+ this.emailModalPhrases.firstPhrase = this.setPipeArguments(this.literals.recoveryPasswordPhrase, this.literals.sms);
297
+ this.emailModalPhrases.secondPhrase = this.setPipeArguments(this.literals.supportContact, this.literals.telephone);
298
+ }
299
+ else {
300
+ this.emailModalPhrases.firstPhrase = this.setPipeArguments(this.literals.recoveryPasswordPhrase, this.literals.email);
301
+ this.emailModalPhrases.secondPhrase = this.setPipeArguments(this.literals.supportContact, this.literals.email);
302
+ }
303
+ }
304
+ redirectToChangePassword(recoveryToken) {
305
+ const urlChangePassword = recoveryToken.urlChangePassword;
306
+ if (urlChangePassword) {
307
+ isExternalLink(urlChangePassword)
308
+ ? this.openExternalLink(urlChangePassword, recoveryToken.token)
309
+ : this.openInternalLink(this.urlRecovery, urlChangePassword, recoveryToken.token);
310
+ }
311
+ else {
312
+ const changePasswordEndpoint = 'changePassword';
313
+ this.openInternalLink(this.urlRecovery, changePasswordEndpoint, recoveryToken.token);
314
+ }
315
+ }
316
+ resetFormFields(control) {
317
+ this.formReset(control);
318
+ this.email = undefined;
319
+ this.phone = undefined;
320
+ this.smsCode = undefined;
321
+ }
322
+ setActions(primaryAction, primarylabel, secondaryAction, secondaryLabel, disabled) {
323
+ this.primaryAction.action = () => primaryAction.call(this);
324
+ this.primaryAction.label = primarylabel;
325
+ this.secondaryAction.action = () => secondaryAction.call(this);
326
+ this.secondaryAction.label = secondaryLabel;
327
+ this.primaryAction.disabled = disabled;
328
+ }
329
+ setEmailModalPhrasesAndActions() {
330
+ this.modalTitle = this.literals.forgotPasswordTitle;
331
+ this.pipeModalPhrases();
332
+ this.modalPasswordRecoveryTypeAll = this.type === PoModalPasswordRecoveryType.All;
333
+ this.setActions(this.submitAction, this.literals.sendButton, this.cancelAction, this.literals.cancelButton, true);
334
+ }
335
+ setRequestEndpoint(urlValidationCode) {
336
+ const endpoint = urlValidationCode || 'validation';
337
+ return `${this.urlRecovery}/${endpoint}`;
338
+ }
339
+ setPipeArguments(literalAttr, arg) {
340
+ return this.poI18nPipe.transform(literalAttr, arg);
341
+ }
342
+ submitAction() {
343
+ this.modalType === PoModalPasswordRecoveryModalContent.Confirmation
344
+ ? this.incrementRetryAttempts()
345
+ : this.formReset(this.control);
346
+ this.submittedContactValue[this.checkFormType(this.type)] = this.getEmitValue(this.type);
347
+ if (this.urlRecovery) {
348
+ this.submitActionRequest(this.submittedContactValue, this.type);
349
+ }
350
+ else {
351
+ this.submit.emit(this.submittedContactValue);
352
+ }
353
+ }
354
+ submitActionRequest(data, modalType) {
355
+ const params = modalType === PoModalPasswordRecoveryType.SMS ? { type: 'sms' } : undefined;
356
+ this.passwordRecoverySubscription = this.poModalPasswordRecoveryService
357
+ .post(this.urlRecovery, data, params)
358
+ .subscribe(response => {
359
+ if ((modalType === PoModalPasswordRecoveryType.Email || modalType === PoModalPasswordRecoveryType.All) &&
360
+ response.status === 204) {
361
+ this.openConfirmation();
362
+ }
363
+ else if (modalType === PoModalPasswordRecoveryType.SMS && response.status === 200) {
364
+ this.assignSmsResponse(response.body);
365
+ this.openSmsCode();
366
+ }
367
+ });
368
+ }
369
+ submitSmsCodeAction() {
370
+ this.submittedCodeValue.code = this.smsCode;
371
+ if (this.urlRecovery) {
372
+ this.submittedCodeValue = Object.assign(this.submittedCodeValue, { hash: this.smsBodyResponse.hash });
373
+ this.submitSmsCodeRequest(this.submittedCodeValue);
374
+ }
375
+ else {
376
+ this.codeSubmit.emit(this.submittedCodeValue);
377
+ }
378
+ this.resetFormFields(this.control);
379
+ }
380
+ submitSmsCodeRequest(data) {
381
+ this.smsCodeSubscription = this.poModalPasswordRecoveryService
382
+ .post(this.setRequestEndpoint(this.smsBodyResponse.urlValidationCode), data)
383
+ .subscribe(response => {
384
+ const successStatus = response.status === 200;
385
+ if (successStatus) {
386
+ this.completed();
387
+ this.redirectToChangePassword(response.body);
388
+ }
389
+ }, error => {
390
+ this.codeError = error.error.message;
391
+ this.openSmsCode();
392
+ });
393
+ }
394
+ }
395
+ 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)); };
396
+ PoModalPasswordRecoveryComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoModalPasswordRecoveryComponent, selectors: [["po-modal-password-recovery"]], viewQuery: function PoModalPasswordRecoveryComponent_Query(rf, ctx) { if (rf & 1) {
397
+ i0.ɵɵviewQuery(_c0, 5);
398
+ i0.ɵɵviewQuery(_c1, 7);
399
+ i0.ɵɵviewQuery(_c2, 5);
400
+ } if (rf & 2) {
401
+ let _t;
402
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.emailForm = _t.first);
403
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.recoveryModalElement = _t.first);
404
+ i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.smsCodeForm = _t.first);
405
+ } }, 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) {
406
+ i0.ɵɵelementStart(0, "po-modal", 0, 1)(2, "div", 2);
407
+ i0.ɵɵtemplate(3, PoModalPasswordRecoveryComponent_div_3_Template, 16, 8, "div", 3);
408
+ i0.ɵɵtemplate(4, PoModalPasswordRecoveryComponent_div_4_Template, 15, 8, "div", 3);
409
+ i0.ɵɵtemplate(5, PoModalPasswordRecoveryComponent_div_5_Template, 5, 1, "div", 3);
410
+ i0.ɵɵelementEnd()();
411
+ } if (rf & 2) {
412
+ i0.ɵɵproperty("ngSwitch", ctx.modalType)("p-primary-action", ctx.primaryAction)("p-secondary-action", ctx.secondaryAction)("p-title", ctx.modalTitle);
413
+ i0.ɵɵadvance(3);
414
+ i0.ɵɵproperty("ngSwitchCase", "email");
415
+ i0.ɵɵadvance(1);
416
+ i0.ɵɵproperty("ngSwitchCase", "smsCode");
417
+ i0.ɵɵadvance(1);
418
+ i0.ɵɵproperty("ngSwitchCase", "confirmation");
419
+ } }, dependencies: [i4.NgIf, i4.NgSwitch, i4.NgSwitchCase, i5.ɵNgNoValidate, i5.NgControlStatus, i5.NgControlStatusGroup, i5.NgModel, i5.NgForm, i2.PoEmailComponent, i2.PoInputComponent, i2.PoRadioGroupComponent, i2.PoModalComponent, i6.PoModalPasswordRecoveryErrorMessageComponent], encapsulation: 2 });
420
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoModalPasswordRecoveryComponent, [{
421
+ type: Component,
422
+ 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" }]
423
+ }], function () { return [{ type: i1.Router }, { type: i2.PoI18nPipe }, { type: i3.PoModalPasswordRecoveryService }, { type: i2.PoLanguageService }]; }, { emailForm: [{
424
+ type: ViewChild,
425
+ args: ['emailForm']
426
+ }], recoveryModalElement: [{
427
+ type: ViewChild,
428
+ args: ['recoveryModal', { static: true }]
429
+ }], smsCodeForm: [{
430
+ type: ViewChild,
431
+ args: ['smsCodeForm']
432
+ }] }); })();
433
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVtcGxhdGVzL3NyYy9saWIvY29tcG9uZW50cy9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90ZW1wbGF0ZXMvc3JjL2xpYi9jb21wb25lbnRzL3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5L3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBYWhFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUdsRCxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUU1RyxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7Ozs7Ozs7OztJQ0hqRiwyQkFBMEMseUJBQUE7SUFHdEMsNlFBQWtDLDZMQUV0QixlQUFBLDRCQUFvQixDQUFBLElBRkU7SUFJcEMsaUJBQWlCLEVBQUE7OztJQUpmLGVBQWtDO0lBQWxDLHFEQUFrQyxxQ0FBQTs7OztJQVFwQyxvQ0FPQztJQUpDLDZQQUFtQixvUEFHRCxlQUFBLGtDQUFnQyxDQUFBLElBSC9CO0lBS3JCLGlCQUFXOzs7SUFMVCxzQ0FBbUIsd0NBQUE7Ozs7SUFPckIsb0NBV0M7SUFSQyw2UEFBbUIsb1BBT0QsZUFBQSxrQ0FBZ0MsQ0FBQSxJQVAvQjtJQVNyQixpQkFBVzs7O0lBVFQsc0NBQW1CLHdDQUFBLDRCQUFBLGlD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Z0M7Ozs7Ozs7Ozs7UUM5QzdDLHNDQVFDLGFBQUE7UUFFRyxrRkE2RE07UUFFTixrRkE4Qk07UUFFTixpRkFLTTtRQUNSLGlCQUFNLEVBQUE7O1FBM0dOLHdDQUFzQix1Q0FBQSwyQ0FBQSwyQkFBQTtRQU1kLGVBQXFCO1FBQXJCLHNDQUFxQjtRQStEUCxlQUF1QjtRQUF2Qix3Q0FBdUI7UUFnQ2xCLGVBQTRCO1FBQTVCLDZDQUE0Qjs7dUZEM0Q1QyxnQ0FBZ0M7Y0FKNUMsU0FBUzsyQkFDRSw0QkFBNEI7K0pBSWQsU0FBUztrQkFBaEMsU0FBUzttQkFBQyxXQUFXO1lBRXdCLG9CQUFvQjtrQkFBakUsU0FBUzttQkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO1lBRWxCLFdBQVc7a0JBQXBDLFNBQVM7bUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBOZ0Zvcm0gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHtcclxuICBQb0kxOG5QaXBlLFxyXG4gIFBvTGFuZ3VhZ2VTZXJ2aWNlLFxyXG4gIFBvTW9kYWxBY3Rpb24sXHJcbiAgUG9Nb2RhbENvbXBvbmVudCxcclxuICBQb1JhZGlvR3JvdXBPcHRpb25cclxufSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XHJcblxyXG5pbXBvcnQgeyBpc0V4dGVybmFsTGluayB9IGZyb20gJy4uLy4uL3V0aWxzL3V0aWwnO1xyXG5cclxuaW1wb3J0IHsgUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnkgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnkuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1iYXNlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5TW9kYWxDb250ZW50IH0gZnJvbSAnLi9lbnVtcy9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1tb2RhbC1jb250ZW50LmVudW0nO1xyXG5pbXBvcnQgeyBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVNlcnZpY2UgfSBmcm9tICcuL3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUgfSBmcm9tICcuL2VudW1zL3BvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LXR5cGUuZW51bSc7XHJcblxyXG4vKipcclxuICogQGRvY3NFeHRlbmRzIFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5QmFzZUNvbXBvbmVudFxyXG4gKlxyXG4gKiBAZXhhbXBsZVxyXG4gKlxyXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktYmFzaWNcIiB0aXRsZT1cIlBPIE1vZGFsIFBhc3N3b3JkIFJlY292ZXJ5IEJhc2ljXCI+XHJcbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWJhc2ljL3NhbXBsZS1wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XHJcbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWJhc2ljL3NhbXBsZS1wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1iYXNpYy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxyXG4gKiA8L2V4YW1wbGU+XHJcbiAqXHJcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1sYWJzXCIgdGl0bGU9XCJQTyBNb2RhbCBQYXNzd29yZCBSZWNvdmVyeSBMYWJzXCI+XHJcbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWxhYnMvc2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWxhYnMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxyXG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1sYWJzL3NhbXBsZS1wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1sYWJzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XHJcbiAqIDwvZXhhbXBsZT5cclxuICpcclxuICogPGV4YW1wbGUgbmFtZT1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LXJlcXVlc3RcIiB0aXRsZT1cIlBPIE1vZGFsIFBhc3N3b3JkIFJlY292ZXJ5IFJlcXVlc3RcIj5cclxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktcmVxdWVzdC9zYW1wbGUtcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktcmVxdWVzdC5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XHJcbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LXJlcXVlc3Qvc2FtcGxlLXBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LXJlcXVlc3QuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cclxuICogPC9leGFtcGxlPlxyXG4gKi9cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnknLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS5jb21wb25lbnQuaHRtbCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5Q29tcG9uZW50IGV4dGVuZHMgUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICBAVmlld0NoaWxkKCdlbWFpbEZvcm0nKSBlbWFpbEZvcm06IE5nRm9ybTtcclxuXHJcbiAgQFZpZXdDaGlsZCgncmVjb3ZlcnlNb2RhbCcsIHsgc3RhdGljOiB0cnVlIH0pIHJlY292ZXJ5TW9kYWxFbGVtZW50OiBQb01vZGFsQ29tcG9uZW50O1xyXG5cclxuICBAVmlld0NoaWxkKCdzbXNDb2RlRm9ybScpIHNtc0NvZGVGb3JtOiBOZ0Zvcm07XHJcblxyXG4gIGNob3NlblR5cGVGb3JtT3B0aW9uOiBzdHJpbmcgPSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuRW1haWw7XHJcbiAgY29kZU1hc2s6IHN0cmluZyA9ICc5IDkgOSA5IDkgOSc7XHJcbiAgY29udHJvbDogQWJzdHJhY3RDb250cm9sO1xyXG4gIGVtYWlsTW9kYWw6IGJvb2xlYW4gPSB0cnVlO1xyXG4gIGVtYWlsTW9kYWxQaHJhc2VzID0geyBmaXJzdFBocmFzZTogbnVsbCBhcyBzdHJpbmcsIHNlY29uZFBocmFzZTogbnVsbCBhcyBzdHJpbmcgfTtcclxuICBlbmRwb2ludDogc3RyaW5nID0gJy4nO1xyXG4gIGludmFsaWRDb2RlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaW52YWxpZEVtYWlsOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbW9kYWxUaXRsZTogc3RyaW5nO1xyXG4gIG1vZGFsVHlwZTogUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlNb2RhbENvbnRlbnQgPSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeU1vZGFsQ29udGVudC5FbWFpbDtcclxuICBzaG93Q3VzdG9tQ29kZUVycm9yOiBib29sZWFuO1xyXG4gIHNtc0NvZGVFcnJvck1lc3NhZ2VQaHJhc2U6IHN0cmluZztcclxuICBzdWJtaXR0ZWRDb2RlVmFsdWUgPSB7fSBhcyBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeTtcclxuICBzdWJtaXR0ZWRDb250YWN0VmFsdWUgPSB7fSBhcyBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeTtcclxuXHJcbiAgcHJpbWFyeUFjdGlvbjogUG9Nb2RhbEFjdGlvbiA9IHsgbGFiZWw6IHVuZGVmaW5lZCwgYWN0aW9uOiAoKSA9PiB7fSB9O1xyXG5cclxuICBzZWNvbmRhcnlBY3Rpb246IFBvTW9kYWxBY3Rpb24gPSB7IGxhYmVsOiB1bmRlZmluZWQsIGFjdGlvbjogKCkgPT4ge30gfTtcclxuXHJcbiAgdHlwZUZvcm1PcHRpb25zOiBBcnJheTxQb1JhZGlvR3JvdXBPcHRpb24+ID0gW1xyXG4gICAgeyBsYWJlbDogJ2UtbWFpbCcsIHZhbHVlOiBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuRW1haWwgfSxcclxuICAgIHsgbGFiZWw6ICdTTVMnLCB2YWx1ZTogUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLlNNUyB9XHJcbiAgXTtcclxuXHJcbiAgcHJpdmF0ZSBwYXNzd29yZFJlY292ZXJ5U3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBzbXNCb2R5UmVzcG9uc2U7XHJcbiAgcHJpdmF0ZSBzbXNDb2RlU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgcG9JMThuUGlwZTogUG9JMThuUGlwZSxcclxuICAgIHByaXZhdGUgcG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlTZXJ2aWNlOiBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVNlcnZpY2UsXHJcbiAgICBwb0xhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKHBvTGFuZ3VhZ2VTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgaWYgKHRoaXMucGFzc3dvcmRSZWNvdmVyeVN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLnBhc3N3b3JkUmVjb3ZlcnlTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5zbXNDb2RlU3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHRoaXMuc21zQ29kZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29tcGxldGVkKCkge1xyXG4gICAgdGhpcy5jYW5jZWxBY3Rpb24oKTtcclxuICB9XHJcblxyXG4gIGZvcm1Nb2RlbENoYW5nZXNDaGVjayhmb3JtOiBOZ0Zvcm0pIHtcclxuICAgIGNvbnN0IGludmFsaWRGb3JtID0gZm9ybS5pbnZhbGlkO1xyXG4gICAgdGhpcy5pbnZhbGlkRW1haWwgPSBpbnZhbGlkRm9ybSAmJiBmb3JtLmRpcnR5O1xyXG4gICAgdGhpcy5wcmltYXJ5QWN0aW9uLmRpc2FibGVkID0gaW52YWxpZEZvcm07XHJcblxyXG4gICAgaWYgKHRoaXMubW9kYWxUeXBlID09PSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeU1vZGFsQ29udGVudC5TTVNDb2RlKSB7XHJcbiAgICAgIGNvbnN0IGNvZGVFcnJvcjogYm9vbGVhbiA9IHRoaXMuY29kZUVycm9yICE9PSB1bmRlZmluZWQgJiYgdGhpcy5jb2RlRXJyb3IgIT09ICcnO1xyXG4gICAgICB0aGlzLnNob3dDdXN0b21Db2RlRXJyb3IgPSBjb2RlRXJyb3IgJiYgZm9ybS5wcmlzdGluZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldElucHV0VHlwZSh0eXBlKSB7XHJcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy5waXBlTW9kYWxQaHJhc2VzKCk7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5lbWFpbEZvcm0uY29udHJvbHNbdHlwZV07XHJcbiAgICAgIHRoaXMuZm9ybU1vZGVsQ2hhbmdlc0NoZWNrKHRoaXMuZW1haWxGb3JtKTtcclxuICAgICAgdGhpcy5yZXNldEZvcm1GaWVsZHModGhpcy5jb250cm9sKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb3BlbigpIHtcclxuICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmNoZWNrRm9ybVR5cGUodGhpcy50eXBlKTtcclxuICAgIHRoaXMuY29udHJvbCA9IHRoaXMuZW1haWxGb3JtLmNvbnRyb2xzW2NvbnRyb2xdO1xyXG4gICAgdGhpcy5zZXRFbWFpbE1vZGFsUGhyYXNlc0FuZEFjdGlvbnMoKTtcclxuICAgIHRoaXMuZm9ybU1vZGVsQ2hhbmdlc0NoZWNrKHRoaXMuZW1haWxGb3JtKTtcclxuICAgIHRoaXMucmVjb3ZlcnlNb2RhbEVsZW1lbnQub3BlbigpO1xyXG4gIH1cclxuXHJcbiAgb3BlbkNvbmZpcm1hdGlvbigpIHtcclxuICAgIHRoaXMubW9kYWxUaXRsZSA9IHRoaXMubGl0ZXJhbHMuZW1haWxTZW50VGl0bGU7XHJcbiAgICB0aGlzLm1vZGFsVHlwZSA9IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5TW9kYWxDb250ZW50LkNvbmZpcm1hdGlvbjtcclxuICAgIHRoaXMuc2V0QWN0aW9ucyhcclxuICAgICAgdGhpcy5jYW5jZWxBY3Rpb24sXHJcbiAgICAgIHRoaXMubGl0ZXJhbHMuY2xvc2VCdXR0b24sXHJcbiAgICAgIHRoaXMuc3VibWl0QWN0aW9uLFxyXG4gICAgICB0aGlzLmxpdGVyYWxzLnJlc2VuZEVtYWlsQnV0dG9uLFxyXG4gICAgICBmYWxzZVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIG9wZW5TbXNDb2RlKCkge1xyXG4gICAgdGhpcy5tb2RhbFRpdGxlID0gdGhpcy5saXRlcmFscy50eXBlQ29kZVRpdGxlO1xyXG4gICAgdGhpcy5tb2RhbFR5cGUgPSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeU1vZGFsQ29udGVudC5TTVNDb2RlO1xyXG4gICAgdGhpcy5zZXRBY3Rpb25zKFxyXG4gICAgICB0aGlzLnN1Ym1pdFNtc0NvZGVBY3Rpb24sXHJcbiAgICAgIHRoaXMubGl0ZXJhbHMuY29udGludWVCdXR0b24sXHJcbiAgICAgIHRoaXMuY2FuY2VsQWN0aW9uLFxyXG4gICAgICB0aGlzLmxpdGVyYWxzLmNhbmNlbEJ1dHRvbixcclxuICAgICAgdHJ1ZVxyXG4gICAgKTtcclxuXHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5jb250cm9sID0gdGhpcy5zbXNDb2RlRm9ybS5jb250cm9sc1snc21zJ107XHJcbiAgICAgIHRoaXMuZm9ybU1vZGVsQ2hhbmdlc0NoZWNrKHRoaXMuc21zQ29kZUZvcm0pO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICByZXNlbmRTbXNDb2RlKCkge1xyXG4gICAgdGhpcy5pbmNyZW1lbnRSZXRyeUF0dGVtcHRzKCk7XHJcbiAgICBpZiAodGhpcy51cmxSZWNvdmVyeSkge1xyXG4gICAgICB0aGlzLnN1Ym1pdEFjdGlvblJlcXVlc3QodGhpcy5zdWJtaXR0ZWRDb250YWN0VmFsdWUsIHRoaXMudHlwZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnN1Ym1pdC5lbWl0KHRoaXMuc3VibWl0dGVkQ29udGFjdFZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXNzaWduU21zUmVzcG9uc2UocmVzcG9uc2VPYmopIHtcclxuICAgIHRoaXMuc21zQm9keVJlc3BvbnNlID0gT2JqZWN0LmFzc2lnbih7fSwgeyBoYXNoOiByZXNwb25zZU9iai5oYXNoIH0pO1xyXG4gICAgaWYgKHJlc3BvbnNlT2JqLnVybFZhbGlkYXRpb25Db2RlKSB7XHJcbiAgICAgIHRoaXMuc21zQm9keVJlc3BvbnNlID0gT2JqZWN0LmFzc2lnbih0aGlzLnNtc0JvZHlSZXNwb25zZSwgeyB1cmxWYWxpZGF0aW9uQ29kZTogcmVzcG9uc2VPYmoudXJsVmFsaWRhdGlvbkNvZGUgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbmNlbEFjdGlvbigpIHtcclxuICAgIHRoaXMucmVzZXRGb3JtRmllbGRzKHRoaXMuY29udHJvbCk7XHJcbiAgICB0aGlzLnN1Ym1pdHRlZENvbnRhY3RWYWx1ZSA9IHt9O1xyXG5cclxuICAgIHRoaXMuY2hvc2VuVHlwZUZvcm1PcHRpb24gPSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuRW1haWw7XHJcbiAgICB0aGlzLm1vZGFsVHlwZSA9IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5TW9kYWxDb250ZW50LkVtYWlsO1xyXG4gICAgdGhpcy50eXBlID0gdGhpcy5tb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlQWxsID8gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLkFsbCA6IHRoaXMudHlwZTtcclxuICAgIHRoaXMucmVjb3ZlcnlNb2RhbEVsZW1lbnQuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2hlY2tGb3JtVHlwZSh0eXBlOiBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUpIHtcclxuICAgIHJldHVybiB0eXBlICE9PSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuQWxsID8gdHlwZSA6IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5FbWFpbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZm9ybVJlc2V0KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xyXG4gICAgY29udHJvbC5tYXJrQXNQcmlzdGluZSgpO1xyXG4gICAgY29udHJvbC5tYXJrQXNVbnRvdWNoZWQoKTtcclxuICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRFbWl0VmFsdWUodHlwZTogUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlKSB7XHJcbiAgICByZXR1cm4gdHlwZSA9PT0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLlNNUyA/IHRoaXMucGhvbmUgOiB0aGlzLmVtYWlsO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpbmNyZW1lbnRSZXRyeUF0dGVtcHRzKCkge1xyXG4gICAgdGhpcy5zdWJtaXR0ZWRDb250YWN0VmFsdWUucmV0cnkgPSB0aGlzLnN1Ym1pdHRlZENvbnRhY3RWYWx1ZS5yZXRyeSArIDEgfHwgMTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb3BlbkV4dGVybmFsTGluayh1cmwsIHF1ZXJ5UGFyYW0pIHtcclxuICAgIHdpbmRvdy5vcGVuKGAke3VybH0/dG9rZW49JHtxdWVyeVBhcmFtfWAsICdfc2VsZicpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvcGVuSW50ZXJuYWxMaW5rKHVybCwgZW5kcG9pbnQsIHF1ZXJ5UGFyYW0pIHtcclxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgJHt1cmx9LyR7ZW5kcG9pbnR9YF0sIHsgcXVlcnlQYXJhbXM6IHsgdG9rZW46IHF1ZXJ5UGFyYW0gfSB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcGlwZU1vZGFsUGhyYXNlcygpIHtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZS5TTVMpIHtcclxuICAgICAgdGhpcy5lbWFpbE1vZGFsUGhyYXNlcy5maXJzdFBocmFzZSA9IHRoaXMuc2V0UGlwZUFyZ3VtZW50cyhcclxuICAgICAgICB0aGlzLmxpdGVyYWxzLnJlY292ZXJ5UGFzc3dvcmRQaHJhc2UsXHJcbiAgICAgICAgdGhpcy5saXRlcmFscy5zbXNcclxuICAgICAgKTtcclxuICAgICAgdGhpcy5lbWFpbE1vZGFsUGhyYXNlcy5zZWNvbmRQaHJhc2UgPSB0aGlzLnNldFBpcGVBcmd1bWVudHMoXHJcbiAgICAgICAgdGhpcy5saXRlcmFscy5zdXBwb3J0Q29udGFjdCxcclxuICAgICAgICB0aGlzLmxpdGVyYWxzLnRlbGVwaG9uZVxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5lbWFpbE1vZGFsUGhyYXNlcy5maXJzdFBocmFzZSA9IHRoaXMuc2V0UGlwZUFyZ3VtZW50cyhcclxuICAgICAgICB0aGlzLmxpdGVyYWxzLnJlY292ZXJ5UGFzc3dvcmRQaHJhc2UsXHJcbiAgICAgICAgdGhpcy5saXRlcmFscy5lbWFpbFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmVtYWlsTW9kYWxQaHJhc2VzLnNlY29uZFBocmFzZSA9IHRoaXMuc2V0UGlwZUFyZ3VtZW50cyh0aGlzLmxpdGVyYWxzLnN1cHBvcnRDb250YWN0LCB0aGlzLmxpdGVyYWxzLmVtYWlsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVkaXJlY3RUb0NoYW5nZVBhc3N3b3JkKHJlY292ZXJ5VG9rZW46IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5KSB7XHJcbiAgICBjb25zdCB1cmxDaGFuZ2VQYXNzd29yZCA9IHJlY292ZXJ5VG9rZW4udXJsQ2hhbmdlUGFzc3dvcmQ7XHJcbiAgICBpZiAodXJsQ2hhbmdlUGFzc3dvcmQpIHtcclxuICAgICAgaXNFeHRlcm5hbExpbmsodXJsQ2hhbmdlUGFzc3dvcmQpXHJcbiAgICAgICAgPyB0aGlzLm9wZW5FeHRlcm5hbExpbmsodXJsQ2hhbmdlUGFzc3dvcmQsIHJlY292ZXJ5VG9rZW4udG9rZW4pXHJcbiAgICAgICAgOiB0aGlzLm9wZW5JbnRlcm5hbExpbmsodGhpcy51cmxSZWNvdmVyeSwgdXJsQ2hhbmdlUGFzc3dvcmQsIHJlY292ZXJ5VG9rZW4udG9rZW4pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgY2hhbmdlUGFzc3dvcmRFbmRwb2ludCA9ICdjaGFuZ2VQYXNzd29yZCc7XHJcbiAgICAgIHRoaXMub3BlbkludGVybmFsTGluayh0aGlzLnVybFJlY292ZXJ5LCBjaGFuZ2VQYXNzd29yZEVuZHBvaW50LCByZWNvdmVyeVRva2VuLnRva2VuKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVzZXRGb3JtRmllbGRzKGNvbnRyb2wpIHtcclxuICAgIHRoaXMuZm9ybVJlc2V0KGNvbnRyb2wpO1xyXG4gICAgdGhpcy5lbWFpbCA9IHVuZGVmaW5lZDtcclxuICAgIHRoaXMucGhvbmUgPSB1bmRlZmluZWQ7XHJcbiAgICB0aGlzLnNtc0NvZGUgPSB1bmRlZmluZWQ7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEFjdGlvbnMocHJpbWFyeUFjdGlvbiwgcHJpbWFyeWxhYmVsLCBzZWNvbmRhcnlBY3Rpb24sIHNlY29uZGFyeUxhYmVsLCBkaXNhYmxlZCkge1xyXG4gICAgdGhpcy5wcmltYXJ5QWN0aW9uLmFjdGlvbiA9ICgpID0+IHByaW1hcnlBY3Rpb24uY2FsbCh0aGlzKTtcclxuICAgIHRoaXMucHJpbWFyeUFjdGlvbi5sYWJlbCA9IHByaW1hcnlsYWJlbDtcclxuICAgIHRoaXMuc2Vjb25kYXJ5QWN0aW9uLmFjdGlvbiA9ICgpID0+IHNlY29uZGFyeUFjdGlvbi5jYWxsKHRoaXMpO1xyXG4gICAgdGhpcy5zZWNvbmRhcnlBY3Rpb24ubGFiZWwgPSBzZWNvbmRhcnlMYWJlbDtcclxuICAgIHRoaXMucHJpbWFyeUFjdGlvbi5kaXNhYmxlZCA9IGRpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRFbWFpbE1vZGFsUGhyYXNlc0FuZEFjdGlvbnMoKSB7XHJcbiAgICB0aGlzLm1vZGFsVGl0bGUgPSB0aGlzLmxpdGVyYWxzLmZvcmdvdFBhc3N3b3JkVGl0bGU7XHJcbiAgICB0aGlzLnBpcGVNb2RhbFBocmFzZXMoKTtcclxuICAgIHRoaXMubW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZUFsbCA9IHRoaXMudHlwZSA9PT0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLkFsbDtcclxuICAgIHRoaXMuc2V0QWN0aW9ucyh0aGlzLnN1Ym1pdEFjdGlvbiwgdGhpcy5saXRlcmFscy5zZW5kQnV0dG9uLCB0aGlzLmNhbmNlbEFjdGlvbiwgdGhpcy5saXRlcmFscy5jYW5jZWxCdXR0b24sIHRydWUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRSZXF1ZXN0RW5kcG9pbnQodXJsVmFsaWRhdGlvbkNvZGU/OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGVuZHBvaW50ID0gdXJsVmFsaWRhdGlvbkNvZGUgfHwgJ3ZhbGlkYXRpb24nO1xyXG5cclxuICAgIHJldHVybiBgJHt0aGlzLnVybFJlY292ZXJ5fS8ke2VuZHBvaW50fWA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFBpcGVBcmd1bWVudHMobGl0ZXJhbEF0dHI6IHN0cmluZywgYXJnOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLnBvSTE4blBpcGUudHJhbnNmb3JtKGxpdGVyYWxBdHRyLCBhcmcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdWJtaXRBY3Rpb24oKSB7XHJcbiAgICB0aGlzLm1vZGFsVHlwZSA9PT0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlNb2RhbENvbnRlbnQuQ29uZmlybWF0aW9uXHJcbiAgICAgID8gdGhpcy5pbmNyZW1lbnRSZXRyeUF0dGVtcHRzKClcclxuICAgICAgOiB0aGlzLmZvcm1SZXNldCh0aGlzLmNvbnRyb2wpO1xyXG4gICAgdGhpcy5zdWJtaXR0ZWRDb250YWN0VmFsdWVbdGhpcy5jaGVja0Zvcm1UeXBlKHRoaXMudHlwZSldID0gdGhpcy5nZXRFbWl0VmFsdWUodGhpcy50eXBlKTtcclxuICAgIGlmICh0aGlzLnVybFJlY292ZXJ5KSB7XHJcbiAgICAgIHRoaXMuc3VibWl0QWN0aW9uUmVxdWVzdCh0aGlzLnN1Ym1pdHRlZENvbnRhY3RWYWx1ZSwgdGhpcy50eXBlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc3VibWl0LmVtaXQodGhpcy5zdWJtaXR0ZWRDb250YWN0VmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdWJtaXRBY3Rpb25SZXF1ZXN0KGRhdGE6IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5LCBtb2RhbFR5cGU6IFBvTW9kYWxQYXNzd29yZFJlY292ZXJ5VHlwZSkge1xyXG4gICAgY29uc3QgcGFyYW1zID0gbW9kYWxUeXBlID09PSBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeVR5cGUuU01TID8geyB0eXBlOiAnc21zJyB9IDogdW5kZWZpbmVkO1xyXG5cclxuICAgIHRoaXMucGFzc3dvcmRSZWNvdmVyeVN1YnNjcmlwdGlvbiA9IHRoaXMucG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlTZXJ2aWNlXHJcbiAgICAgIC5wb3N0KHRoaXMudXJsUmVjb3ZlcnksIGRhdGEsIHBhcmFtcylcclxuICAgICAgLnN1YnNjcmliZShyZXNwb25zZSA9PiB7XHJcbiAgICAgICAgaWYgKFxyXG4gICAgICAgICAgKG1vZGFsVHlwZSA9PT0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLkVtYWlsIHx8IG1vZGFsVHlwZSA9PT0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLkFsbCkgJiZcclxuICAgICAgICAgIHJlc3BvbnNlLnN0YXR1cyA9PT0gMjA0XHJcbiAgICAgICAgKSB7XHJcbiAgICAgICAgICB0aGlzLm9wZW5Db25maXJtYXRpb24oKTtcclxuICAgICAgICB9IGVsc2UgaWYgKG1vZGFsVHlwZSA9PT0gUG9Nb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlLlNNUyAmJiByZXNwb25zZS5zdGF0dXMgPT09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy5hc3NpZ25TbXNSZXNwb25zZShyZXNwb25zZS5ib2R5KTtcclxuICAgICAgICAgIHRoaXMub3BlblNtc0NvZGUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdWJtaXRTbXNDb2RlQWN0aW9uKCkge1xyXG4gICAgdGhpcy5zdWJtaXR0ZWRDb2RlVmFsdWUuY29kZSA9IHRoaXMuc21zQ29kZTtcclxuXHJcbiAgICBpZiAodGhpcy51cmxSZWNvdmVyeSkge1xyXG4gICAgICB0aGlzLnN1Ym1pdHRlZENvZGVWYWx1ZSA9IE9iamVjdC5hc3NpZ24odGhpcy5zdWJtaXR0ZWRDb2RlVmFsdWUsIHsgaGFzaDogdGhpcy5zbXNCb2R5UmVzcG9uc2UuaGFzaCB9KTtcclxuICAgICAgdGhpcy5zdWJtaXRTbXNDb2RlUmVxdWVzdCh0aGlzLnN1Ym1pdHRlZENvZGVWYWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmNvZGVTdWJtaXQuZW1pdCh0aGlzLnN1Ym1pdHRlZENvZGVWYWx1ZSk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnJlc2V0Rm9ybUZpZWxkcyh0aGlzLmNvbnRyb2wpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdWJtaXRTbXNDb2RlUmVxdWVzdChkYXRhOiBQb01vZGFsUGFzc3dvcmRSZWNvdmVyeSkge1xyXG4gICAgdGhpcy5zbXNDb2RlU3Vic2NyaXB0aW9uID0gdGhpcy5wb01vZGFsUGFzc3dvcmRSZWNvdmVyeVNlcnZpY2VcclxuICAgICAgLnBvc3QodGhpcy5zZXRSZXF1ZXN0RW5kcG9pbnQodGhpcy5zbXNCb2R5UmVzcG9uc2UudXJsVmFsaWRhdGlvbkNvZGUpLCBkYXRhKVxyXG4gICAgICAuc3Vic2NyaWJlKFxyXG4gICAgICAgIHJlc3BvbnNlID0+IHtcclxuICAgICAgICAgIGNvbnN0IHN1Y2Nlc3NTdGF0dXMgPSByZXNwb25zZS5zdGF0dXMgPT09IDIwMDtcclxuICAgICAgICAgIGlmIChzdWNjZXNzU3RhdHVzKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY29tcGxldGVkKCk7XHJcbiAgICAgICAgICAgIHRoaXMucmVkaXJlY3RUb0NoYW5nZVBhc3N3b3JkKHJlc3BvbnNlLmJvZHkpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3IgPT4ge1xyXG4gICAgICAgICAgdGhpcy5jb2RlRXJyb3IgPSBlcnJvci5lcnJvci5tZXNzYWdlO1xyXG4gICAgICAgICAgdGhpcy5vcGVuU21zQ29kZSgpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9XHJcbn1cclxuIiwiPHBvLW1vZGFsXHJcbiAgI3JlY292ZXJ5TW9kYWxcclxuICBwLWhpZGUtY2xvc2VcclxuICBwLXNpemU9XCJhdXRvXCJcclxuICBbbmdTd2l0Y2hdPVwibW9kYWxUeXBlXCJcclxuICBbcC1wcmltYXJ5LWFjdGlvbl09XCJwcmltYXJ5QWN0aW9uXCJcclxuICBbcC1zZWNvbmRhcnktYWN0aW9uXT1cInNlY29uZGFyeUFjdGlvblwiXHJcbiAgW3AtdGl0bGVdPVwibW9kYWxUaXRsZVwiXHJcbj5cclxuICA8ZGl2IGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3Zlcnktd3JhcHBlclwiPlxyXG4gICAgPGRpdiAqbmdTd2l0Y2hDYXNlPVwiJ2VtYWlsJ1wiIGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktY29udGVudCBwby1yb3dcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LXRleHQgcG8tbWQtMTIgcG8tbWItMVwiPlxyXG4gICAgICAgIHt7IGVtYWlsTW9kYWxQaHJhc2VzLmZpcnN0UGhyYXNlIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicG8tbWItMiBwby1tZC0xMlwiPlxyXG4gICAgICAgIDxmb3JtICNlbWFpbEZvcm09XCJuZ0Zvcm1cIj5cclxuICAgICAgICAgIDxkaXYgKm5nSWY9XCJtb2RhbFBhc3N3b3JkUmVjb3ZlcnlUeXBlQWxsXCI+XHJcbiAgICAgICAgICAgIDxwby1yYWRpby1ncm91cFxyXG4gICAgICAgICAgICAgIG5hbWU9XCJ0eXBlXCJcclxuICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNob3NlblR5cGVGb3JtT3B0aW9uXCJcclxuICAgICAgICAgICAgICBbcC1vcHRpb25zXT1cInR5cGVGb3JtT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgKHAtY2hhbmdlKT1cImdldElucHV0VHlwZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L3BvLXJhZGlvLWdyb3VwPlxyXG4gICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInBvLW10LTFcIj5cclxuICAgICAgICAgICAgPHBvLWVtYWlsXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJ0eXBlID09PSAnZW1haWwnIHx8IHR5cGUgPT09ICdhbGwnXCJcclxuICAgICAgICAgICAgICBuYW1lPVwiZW1haWxcIlxyXG4gICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZW1haWxcIlxyXG4gICAgICAgICAgICAgIHAtcmVxdWlyZWRcclxuICAgICAgICAgICAgICBbcC1sYWJlbF09XCJsaXRlcmFscy5pbnNlcnRFbWFpbFwiXHJcbiAgICAgICAgICAgICAgKHAtY2hhbmdlLW1vZGVsKT1cImZvcm1Nb2RlbENoYW5nZXNDaGVjayhlbWFpbEZvcm0pXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L3BvLWVtYWlsPlxyXG5cclxuICAgICAgICAgICAgPHBvLWlucHV0XHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJ0eXBlID09PSAnc21zJ1wiXHJcbiAgICAgICAgICAgICAgbmFtZT1cInNtc1wiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJwaG9uZVwiXHJcbiAgICAgICAgICAgICAgcC1pY29uPVwicG8taWNvbi10ZWxlcGhvbmVcIlxyXG4gICAgICAgICAgICAgIHAtcmVxdWlyZWRcclxuICAgICAgICAgICAgICBbcC1sYWJlbF09XCJsaXRlcmFscy5pbnNlcnRQaG9uZVwiXHJcbiAgICAgICAgICAgICAgW3AtbWFza109XCJwaG9uZU1hc2tcIlxyXG4gICAgICAgICAgICAgIFtwLW1heGxlbmd0aF09XCJtYXhMZW5ndGhcIlxyXG4gICAgICAgICAgICAgIFtwLW1pbmxlbmd0aF09XCJtaW5MZW5ndGhcIlxyXG4gICAgICAgICAgICAgIChwLWNoYW5nZS1tb2RlbCk9XCJmb3JtTW9kZWxDaGFuZ2VzQ2hlY2soZW1haWxGb3JtKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9wby1pbnB1dD5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwby1maWVsZC1jb250YWluZXItYm90dG9tIHBvLWZpZWxkLWNvbnRhaW5lci1lcnJvci1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgPHBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWVycm9yLW1lc3NhZ2VcclxuICAgICAgICAgICAgICAqbmdJZj1cImludmFsaWRFbWFpbCAmJiBjb250cm9sLmRpcnR5XCJcclxuICAgICAgICAgICAgICBbcC10ZXh0XT1cInR5cGUgPT09ICdzbXMnID8gbGl0ZXJhbHMucGhvbmVFcnJvck1lc3NhZ2VQaHJhc2UgOiBsaXRlcmFscy5lbWFpbEVycm9yTWVzc2FnZVBocmFzZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgPC9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1lcnJvci1tZXNzYWdlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LXRleHQgcG8tbWQtMTJcIj5cclxuICAgICAgICB7eyBlbWFpbE1vZGFsUGhyYXNlcy5zZWNvbmRQaHJhc2UgfX1cclxuICAgICAgICA8c3BhbiAqbmdJZj1cImNvbnRhY3RFbWFpbFwiPlxyXG4gICAgICAgICAge3sgbGl0ZXJhbHMucHJlcG9zaXRpb25JbiB9fVxyXG4gICAgICAgICAgPGEgY2xhc3M9XCJwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1saW5rXCIgaHJlZj1cIm1haWx0bzp7eyBjb250YWN0RW1haWwgfX1cIiB0YXJnZXQ9XCJfc2VsZlwiPlxyXG4gICAgICAgICAgICB7eyBjb250YWN0RW1haWwgfX1cclxuICAgICAgICAgIDwvYT5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAge3sgZW5kcG9pbnQgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2ICNzbXNDb2RlTW9kYWwgKm5nU3dpdGNoQ2FzZT1cIidzbXNDb2RlJ1wiIGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktY29udGVudCBwby1yb3dcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LXRleHQgcG8tbWQtMTIgcG8tbWItMVwiPnt7IGxpdGVyYWxzLnNlbnRTbXNDb2RlUGhyYXNlIH19PC9kaXY+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwby1tYi0yIHBvLW1kLTEyXCI+XHJcbiAgICAgICAgPGZvcm0gI3Ntc0NvZGVGb3JtPVwibmdGb3JtXCI+XHJcbiAgICAgICAgICA8cG8taW5wdXRcclxuICAgICAgICAgICAgbmFtZT1cInNtc1wiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic21zQ29kZVwiXHJcbiAgICAgICAgICAgIHAtbWF4bGVuZ3RoPVwiMTFcIlxyXG4gICAgICAgICAgICBwLW1pbmxlbmd0aD1cIjExXCJcclxuICAgICAgICAgICAgcC1yZXF1aXJlZFxyXG4gICAgICAgICAgICBbcC1sYWJlbF09XCJsaXRlcmFscy5pbnNlcnRDb2RlXCJcclxuICAgICAgICAgICAgW3AtbWFza109XCJjb2RlTWFza1wiXHJcbiAgICAgICAgICAgIChwLWNoYW5nZS1tb2RlbCk9XCJmb3JtTW9kZWxDaGFuZ2VzQ2hlY2soc21zQ29kZUZvcm0pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDwvcG8taW5wdXQ+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicG8tZmllbGQtY29udGFpbmVyLWJvdHRvbSBwby1maWVsZC1jb250YWluZXItZXJyb3ItY29udGFpbmVyXCI+XHJcbiAgICAgICAgICAgIDxwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1lcnJvci1tZXNzYWdlXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJpbnZhbGlkRW1haWxcIlxyXG4gICAgICAgICAgICAgIFtwLXRleHRdPVwic21zQ29kZUVycm9yTWVzc2FnZSB8fCB0aGlzLmxpdGVyYWxzLnNtc0NvZGVFcnJvck1lc3NhZ2VQaHJhc2VcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDwvcG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktZXJyb3ItbWVzc2FnZT5cclxuICAgICAgICAgICAgPHBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWVycm9yLW1lc3NhZ2UgKm5nSWY9XCJzaG93Q3VzdG9tQ29kZUVycm9yXCIgW3AtdGV4dF09XCJjb2RlRXJyb3JcIj5cclxuICAgICAgICAgICAgPC9wby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS1lcnJvci1tZXNzYWdlPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LXRleHQgcG8tbWQtMTJcIj5cclxuICAgICAgICB7eyBsaXRlcmFscy5zZW5kQWdhaW5QaHJhc2UgfX1cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LWxpbmtcIiAoY2xpY2spPVwicmVzZW5kU21zQ29kZSgpXCI+e3sgbGl0ZXJhbHMuc2VuZEFnYWluIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgI2NvbmZpcm1hdGlvbk1vZGFsICpuZ1N3aXRjaENhc2U9XCInY29uZmlybWF0aW9uJ1wiIGNsYXNzPVwicG8tbW9kYWwtcGFzc3dvcmQtcmVjb3ZlcnktY29udGVudCBwby1yb3dcIj5cclxuICAgICAgPGltZyBjbGFzcz1cInBvLW1vZGFsLXBhc3N3b3JkLXJlY292ZXJ5LXVzZXItaW1hZ2UgcG8tbWItMlwiIHNyYz1cIi4vYXNzZXRzL2ltYWdlcy9lbWFpbC1zZW50LnN2Z1wiIC8+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJwby1tb2RhbC1wYXNzd29yZC1yZWNvdmVyeS10ZXh0XCI+XHJcbiAgICAgICAge3sgbGl0ZXJhbHMuZW1haWxTZW50Q29uZmlybWF0aW9uUGhyYXNlIH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvcG8tbW9kYWw+XHJcbiJdfQ==