@reusa/ngx-reusa-app-lib 0.0.999 → 0.1.101

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 (372) hide show
  1. package/README.md +46 -46
  2. package/esm2022/lib/annimations/app-animations.mjs +1 -1
  3. package/esm2022/lib/components/add-employer/add-employer.component.mjs +1130 -2312
  4. package/esm2022/lib/components/add-participant/add-participant.component.mjs +1 -1
  5. package/esm2022/lib/components/add-payment/add-payment.component.mjs +16 -36
  6. package/esm2022/lib/components/address/address.component.mjs +58 -52
  7. package/esm2022/lib/components/bank-details/bank-details.component.mjs +25 -29
  8. package/esm2022/lib/components/captcha/captcha.component.mjs +6 -6
  9. package/esm2022/lib/components/card/card.component.mjs +1 -1
  10. package/esm2022/lib/components/content/content.component.mjs +1 -1
  11. package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +1 -1
  12. package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +14 -19
  13. package/esm2022/lib/components/disclosure/disclosure.component.mjs +1 -1
  14. package/esm2022/lib/components/dropdown/dropdown.component.mjs +6 -6
  15. package/esm2022/lib/components/dropdown/dropdown.interface.mjs +1 -1
  16. package/esm2022/lib/components/email-update/email-update.component.mjs +32 -14
  17. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +197 -192
  18. package/esm2022/lib/components/error/error.component.mjs +5 -22
  19. package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +1 -1
  20. package/esm2022/lib/components/file-download/file-download.component.mjs +1 -1
  21. package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +1 -1
  22. package/esm2022/lib/components/footer/footer.component.mjs +67 -90
  23. package/esm2022/lib/components/header/header.component.mjs +105 -169
  24. package/esm2022/lib/components/help/help.component.mjs +1 -1
  25. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +13 -13
  26. package/esm2022/lib/components/info/info.component.mjs +12 -4
  27. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +1 -1
  28. package/esm2022/lib/components/job-title/job-title.component.mjs +94 -93
  29. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +82 -93
  30. package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +329 -0
  31. package/esm2022/lib/components/link/link.component.mjs +1 -1
  32. package/esm2022/lib/components/maintenance-detector/maintenance-detector.component.mjs +1 -1
  33. package/esm2022/lib/components/mask/mask.component.mjs +1 -1
  34. package/esm2022/lib/components/menu/menu.component.mjs +35 -44
  35. package/esm2022/lib/components/mfa/mfa.component.mjs +305 -103
  36. package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +16 -7
  37. package/esm2022/lib/components/mfa2/mfa2.component.mjs +260 -0
  38. package/esm2022/lib/components/money-expect/money-expect.component.mjs +36 -148
  39. package/esm2022/lib/components/msg/msg.component.mjs +1 -1
  40. package/esm2022/lib/components/news/news.component.mjs +1 -1
  41. package/esm2022/lib/components/overlay-info/overlay-info.component.mjs +1 -1
  42. package/esm2022/lib/components/page/page.component.mjs +1 -1
  43. package/esm2022/lib/components/profile/profile.component.mjs +213 -56
  44. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +33 -106
  45. package/esm2022/lib/components/questionnaire/AppValidators.mjs +14 -165
  46. package/esm2022/lib/components/questionnaire/FbConstants.mjs +1 -1
  47. package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +60 -110
  48. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +123 -367
  49. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +9 -9
  50. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +1029 -769
  51. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +325 -157
  52. package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +17 -9
  53. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +26 -93
  54. package/esm2022/lib/components/questionnaire/question-base.mjs +1 -1
  55. package/esm2022/lib/components/questionnaire/question-control.service.mjs +1 -2
  56. package/esm2022/lib/components/questionnaire/question.service.mjs +7 -5
  57. package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +25 -14
  58. package/esm2022/lib/components/read-more/read-more.component.mjs +6 -6
  59. package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +196 -333
  60. package/esm2022/lib/components/search-employer/search-employer.component.mjs +24 -47
  61. package/esm2022/lib/components/security-question/security-question.component.mjs +189 -0
  62. package/esm2022/lib/components/select/select.component.mjs +1 -1
  63. package/esm2022/lib/components/sign-ssn/sign-ssn.component.mjs +3 -3
  64. package/esm2022/lib/components/ssn/ssn.component.mjs +1 -1
  65. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +4 -4
  66. package/esm2022/lib/components/test/test.component.mjs +1 -1
  67. package/esm2022/lib/components/user-login/user-login.component.mjs +226 -115
  68. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +155 -287
  69. package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +46 -62
  70. package/esm2022/lib/directives/auto-focus/auto-focus.directive.mjs +1 -1
  71. package/esm2022/lib/directives/caps-lock.directive.mjs +1 -1
  72. package/esm2022/lib/directives/required-roles/required-roles.directive.mjs +1 -1
  73. package/esm2022/lib/enums/EmailStatusEnum.mjs +1 -1
  74. package/esm2022/lib/guards/auth.guard.mjs +4 -26
  75. package/esm2022/lib/guards/no-login/no-login.guard.mjs +1 -1
  76. package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +1 -1
  77. package/esm2022/lib/interceptors/header-interceptor/http-header.interceptor.mjs +1 -1
  78. package/esm2022/lib/models/EmployerDetailSearchResult.mjs +1 -1
  79. package/esm2022/lib/models/ErrorModel.mjs +1 -1
  80. package/esm2022/lib/models/FileModel.mjs +1 -1
  81. package/esm2022/lib/models/LexisNexisAccountCreationModel.mjs +2 -0
  82. package/esm2022/lib/models/LexisNexisAuthSelectionRequestModel.mjs +2 -0
  83. package/esm2022/lib/models/LexisNexisAuthSelectionResponseModel.mjs +2 -0
  84. package/esm2022/lib/models/LexisNexisResponseModel.mjs +3 -0
  85. package/esm2022/lib/models/LibConstants.mjs +15 -12
  86. package/esm2022/lib/models/NotificationModel.mjs +1 -1
  87. package/esm2022/lib/models/OtpAuthModel.mjs +1 -1
  88. package/esm2022/lib/models/PartialEmploymentModel.mjs +3 -0
  89. package/esm2022/lib/models/PaymentComponentModel.mjs +1 -1
  90. package/esm2022/lib/models/SecurityQuestionModel.mjs +3 -0
  91. package/esm2022/lib/models/TrendModel.mjs +1 -1
  92. package/esm2022/lib/models/UserDetailsModel.mjs +1 -1
  93. package/esm2022/lib/models/UserModel.mjs +1 -1
  94. package/esm2022/lib/models/claimant/ClaimantModel.mjs +1 -1
  95. package/esm2022/lib/models/claimant/JobResultsData.mjs +1 -1
  96. package/esm2022/lib/models/claimant/MatchingJobs.mjs +1 -1
  97. package/esm2022/lib/models/claimant/ResetPasswordModel.mjs +1 -1
  98. package/esm2022/lib/models/dependent.model.mjs +1 -1
  99. package/esm2022/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +1 -1
  100. package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +1 -2
  101. package/esm2022/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +1 -1
  102. package/esm2022/lib/models/questionnaire/ComboModel.mjs +175 -73
  103. package/esm2022/lib/models/questionnaire/ElementsModel.mjs +1 -1
  104. package/esm2022/lib/models/questionnaire/KeyValueModel.mjs +1 -1
  105. package/esm2022/lib/models/questionnaire/LegalDiscaimarModel.mjs +1 -1
  106. package/esm2022/lib/models/questionnaire/StatusModel.mjs +1 -1
  107. package/esm2022/lib/ngx-reusa-app-lib.component.mjs +5 -5
  108. package/esm2022/lib/ngx-reusa-app-lib.module.mjs +13 -27
  109. package/esm2022/lib/ngx-reusa-app-lib.service.mjs +1 -1
  110. package/esm2022/lib/pages/BasePage.mjs +22 -3
  111. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +18 -22
  112. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +124 -142
  113. package/esm2022/lib/pages/common/landing/landing.component.mjs +8 -7
  114. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +4 -4
  115. package/esm2022/lib/pages/common/login/login.component.mjs +5 -5
  116. package/esm2022/lib/pages/common/not-found/not-found.page.mjs +1 -1
  117. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +14 -14
  118. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +5 -5
  119. package/esm2022/lib/pages/common/unauthorized/unauthorized.page.mjs +1 -1
  120. package/esm2022/lib/pages/popovers/language/language.page.mjs +1 -1
  121. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +1 -1
  122. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +1 -1
  123. package/esm2022/lib/pages/popovers/user-search/user-search.component.mjs +1 -1
  124. package/esm2022/lib/pipes/filter.pipe.mjs +1 -1
  125. package/esm2022/lib/pipes/mask/mask.email.pipe.mjs +1 -1
  126. package/esm2022/lib/pipes/proper-case/proper-case.pipe.mjs +1 -1
  127. package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +1 -1
  128. package/esm2022/lib/pipes/trust-html/trust-html.pipe.mjs +1 -1
  129. package/esm2022/lib/services/base-service.mjs +1 -1
  130. package/esm2022/lib/services/captcha/captcha.service.mjs +1 -1
  131. package/esm2022/lib/services/chatbot/chatbot.service.mjs +2 -1
  132. package/esm2022/lib/services/chatbot/script.const.mjs +1 -1
  133. package/esm2022/lib/services/claimant/claimant.service.mjs +1 -1
  134. package/esm2022/lib/services/claimant-service/claimant-usps-redirect.service.mjs +36 -0
  135. package/esm2022/lib/services/claimant-service/claimant.service.mjs +13 -1
  136. package/esm2022/lib/services/claims/claims.service.mjs +14 -57
  137. package/esm2022/lib/services/dms-service/dms.service.mjs +1 -1
  138. package/esm2022/lib/services/fpjs/fingerprint.service.mjs +1 -1
  139. package/esm2022/lib/services/google-analytics/google-analytics.service.mjs +1 -1
  140. package/esm2022/lib/services/help/help.service.mjs +1 -1
  141. package/esm2022/lib/services/idle/idle.service.mjs +1 -1
  142. package/esm2022/lib/services/lexis-nexis/lexis.nexis.service.mjs +49 -0
  143. package/esm2022/lib/services/logger/logger.service.mjs +1 -1
  144. package/esm2022/lib/services/login/login.service.mjs +11 -1
  145. package/esm2022/lib/services/maintenance/maintenance.service.mjs +1 -1
  146. package/esm2022/lib/services/notification/notification.service.mjs +1 -1
  147. package/esm2022/lib/services/ovp/ovp.service.mjs +43 -0
  148. package/esm2022/lib/services/questionnaire/questionnaire.service.mjs +1 -4
  149. package/esm2022/lib/services/questionnaire/validation.service.mjs +1 -4
  150. package/esm2022/lib/services/security-service/security.service.mjs +6 -5
  151. package/esm2022/lib/services/tour/tour.service.mjs +1 -1
  152. package/esm2022/lib/services/util/util.service.mjs +5 -5
  153. package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +42 -0
  154. package/esm2022/lib/validations/AppRegex.mjs +1 -1
  155. package/esm2022/lib/validations/AppValidators.mjs +14 -34
  156. package/esm2022/public-api.mjs +5 -16
  157. package/fesm2022/reusa-ngx-reusa-app-lib.mjs +7480 -10431
  158. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -1
  159. package/lib/components/add-employer/add-employer.component.d.ts +48 -77
  160. package/lib/components/add-employer/add-employer.component.d.ts.map +1 -1
  161. package/lib/components/add-payment/add-payment.component.d.ts +2 -7
  162. package/lib/components/add-payment/add-payment.component.d.ts.map +1 -1
  163. package/lib/components/address/address.component.d.ts +3 -2
  164. package/lib/components/address/address.component.d.ts.map +1 -1
  165. package/lib/components/email-update/email-update.component.d.ts +7 -1
  166. package/lib/components/email-update/email-update.component.d.ts.map +1 -1
  167. package/lib/components/employer-grid/employer-grid.component.d.ts +3 -1
  168. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  169. package/lib/components/error/error.component.d.ts +2 -3
  170. package/lib/components/error/error.component.d.ts.map +1 -1
  171. package/lib/components/footer/footer.component.d.ts.map +1 -1
  172. package/lib/components/header/header.component.d.ts +0 -1
  173. package/lib/components/header/header.component.d.ts.map +1 -1
  174. package/lib/components/job-title/job-title.component.d.ts +21 -22
  175. package/lib/components/job-title/job-title.component.d.ts.map +1 -1
  176. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +2 -5
  177. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -1
  178. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts +55 -0
  179. package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -0
  180. package/lib/components/menu/menu.component.d.ts.map +1 -1
  181. package/lib/components/mfa/mfa.component.d.ts +26 -3
  182. package/lib/components/mfa/mfa.component.d.ts.map +1 -1
  183. package/lib/components/mfa-popup/mfa-popup.component.d.ts +4 -1
  184. package/lib/components/mfa-popup/mfa-popup.component.d.ts.map +1 -1
  185. package/lib/components/mfa2/mfa2.component.d.ts +48 -0
  186. package/lib/components/mfa2/mfa2.component.d.ts.map +1 -0
  187. package/lib/components/money-expect/money-expect.component.d.ts +4 -15
  188. package/lib/components/money-expect/money-expect.component.d.ts.map +1 -1
  189. package/lib/components/profile/profile.component.d.ts +32 -4
  190. package/lib/components/profile/profile.component.d.ts.map +1 -1
  191. package/lib/components/profile-redirect/profile-redirect.component.d.ts +2 -9
  192. package/lib/components/profile-redirect/profile-redirect.component.d.ts.map +1 -1
  193. package/lib/components/questionnaire/AppValidators.d.ts +0 -1
  194. package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
  195. package/lib/components/questionnaire/account-success/account-success.page.d.ts +10 -13
  196. package/lib/components/questionnaire/account-success/account-success.page.d.ts.map +1 -1
  197. package/lib/components/questionnaire/common-success/common-success.page.d.ts +0 -7
  198. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  199. package/lib/components/questionnaire/dynamic-form-question.component.d.ts +32 -14
  200. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  201. package/lib/components/questionnaire/dynamic-form.component.d.ts +24 -3
  202. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  203. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +3 -0
  204. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
  205. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +1 -6
  206. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
  207. package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
  208. package/lib/components/questionnaire/question.service.d.ts +1 -0
  209. package/lib/components/questionnaire/question.service.d.ts.map +1 -1
  210. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +3 -1
  211. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
  212. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +3 -6
  213. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts.map +1 -1
  214. package/lib/components/search-employer/search-employer.component.d.ts +2 -1
  215. package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
  216. package/lib/components/security-question/security-question.component.d.ts +37 -0
  217. package/lib/components/security-question/security-question.component.d.ts.map +1 -0
  218. package/lib/components/user-login/user-login.component.d.ts +22 -5
  219. package/lib/components/user-login/user-login.component.d.ts.map +1 -1
  220. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +0 -6
  221. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -1
  222. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +0 -1
  223. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts.map +1 -1
  224. package/lib/guards/auth.guard.d.ts +1 -3
  225. package/lib/guards/auth.guard.d.ts.map +1 -1
  226. package/lib/models/EmployerDetailSearchResult.d.ts +1 -3
  227. package/lib/models/EmployerDetailSearchResult.d.ts.map +1 -1
  228. package/lib/models/LexisNexisAccountCreationModel.d.ts +15 -0
  229. package/lib/models/LexisNexisAccountCreationModel.d.ts.map +1 -0
  230. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts +16 -0
  231. package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts.map +1 -0
  232. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts +39 -0
  233. package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts.map +1 -0
  234. package/lib/models/LexisNexisResponseModel.d.ts +7 -0
  235. package/lib/models/LexisNexisResponseModel.d.ts.map +1 -0
  236. package/lib/models/LibConstants.d.ts +12 -9
  237. package/lib/models/LibConstants.d.ts.map +1 -1
  238. package/lib/models/PartialEmploymentModel.d.ts +6 -0
  239. package/lib/models/PartialEmploymentModel.d.ts.map +1 -0
  240. package/lib/models/PaymentComponentModel.d.ts +1 -1
  241. package/lib/models/PaymentComponentModel.d.ts.map +1 -1
  242. package/lib/models/SecurityQuestionModel.d.ts +7 -0
  243. package/lib/models/SecurityQuestionModel.d.ts.map +1 -0
  244. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +0 -1
  245. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts.map +1 -1
  246. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +3 -13
  247. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -1
  248. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +1 -2
  249. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts.map +1 -1
  250. package/lib/models/questionnaire/ComboModel.d.ts +16 -20
  251. package/lib/models/questionnaire/ComboModel.d.ts.map +1 -1
  252. package/lib/models/questionnaire/ElementsModel.d.ts +1 -0
  253. package/lib/models/questionnaire/ElementsModel.d.ts.map +1 -1
  254. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +0 -2
  255. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts.map +1 -1
  256. package/lib/models/questionnaire/StatusModel.d.ts +0 -1
  257. package/lib/models/questionnaire/StatusModel.d.ts.map +1 -1
  258. package/lib/ngx-reusa-app-lib.module.d.ts +86 -95
  259. package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
  260. package/lib/pages/BasePage.d.ts +6 -3
  261. package/lib/pages/BasePage.d.ts.map +1 -1
  262. package/lib/pages/common/change-password/change-password.page.d.ts +0 -3
  263. package/lib/pages/common/change-password/change-password.page.d.ts.map +1 -1
  264. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts +16 -0
  265. package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts.map +1 -0
  266. package/lib/services/claimant-service/claimant.service.d.ts +5 -0
  267. package/lib/services/claimant-service/claimant.service.d.ts.map +1 -1
  268. package/lib/services/claims/claims.service.d.ts +5 -24
  269. package/lib/services/claims/claims.service.d.ts.map +1 -1
  270. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts +23 -0
  271. package/lib/services/lexis-nexis/lexis.nexis.service.d.ts.map +1 -0
  272. package/lib/services/login/login.service.d.ts +3 -0
  273. package/lib/services/login/login.service.d.ts.map +1 -1
  274. package/lib/services/ovp/ovp.service.d.ts +17 -0
  275. package/lib/services/ovp/ovp.service.d.ts.map +1 -0
  276. package/lib/services/questionnaire/questionnaire.service.d.ts +0 -1
  277. package/lib/services/questionnaire/questionnaire.service.d.ts.map +1 -1
  278. package/lib/services/questionnaire/validation.service.d.ts +0 -3
  279. package/lib/services/questionnaire/validation.service.d.ts.map +1 -1
  280. package/lib/services/security-service/security.service.d.ts +4 -5
  281. package/lib/services/security-service/security.service.d.ts.map +1 -1
  282. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +17 -0
  283. package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -0
  284. package/lib/validations/AppValidators.d.ts +3 -7
  285. package/lib/validations/AppValidators.d.ts.map +1 -1
  286. package/package.json +2 -2
  287. package/public-api.d.ts +4 -15
  288. package/public-api.d.ts.map +1 -1
  289. package/esm2022/lib/components/add-wage/add-wage.component.mjs +0 -160
  290. package/esm2022/lib/components/associate-ssn/associate-ssn.component.mjs +0 -174
  291. package/esm2022/lib/components/dua-request-popup/dua-request-popup.component.mjs +0 -335
  292. package/esm2022/lib/components/employer-info/employer-info.component.mjs +0 -326
  293. package/esm2022/lib/components/employer-pay/employer-pay.component.mjs +0 -243
  294. package/esm2022/lib/components/employer-pay-grid/employer-pay-grid.component.mjs +0 -302
  295. package/esm2022/lib/components/farm-usage/farm-usage.component.mjs +0 -172
  296. package/esm2022/lib/components/gross-earnings/gross-earnings.component.mjs +0 -179
  297. package/esm2022/lib/components/idme/idme.component.mjs +0 -80
  298. package/esm2022/lib/components/scrollable-text/scrollable-text.component.mjs +0 -25
  299. package/esm2022/lib/components/sms/sms.component.mjs +0 -334
  300. package/esm2022/lib/components/wage-grid/wage-grid.component.mjs +0 -274
  301. package/esm2022/lib/models/CountyModel.mjs +0 -3
  302. package/esm2022/lib/models/DuaRequestModel.mjs +0 -3
  303. package/esm2022/lib/models/DuaRetroWeeksComponentModel.mjs +0 -6
  304. package/esm2022/lib/models/EmployerInfoComponentModel.mjs +0 -4
  305. package/esm2022/lib/models/EmployerPayInfoModel.mjs +0 -6
  306. package/esm2022/lib/models/FarmUsageComponentModel.mjs +0 -2
  307. package/esm2022/lib/models/GrossEarningsModel.mjs +0 -3
  308. package/esm2022/lib/models/LexisNexisOtpDetailsResponseModel.mjs +0 -3
  309. package/esm2022/lib/models/ReasonSeparationRequestModel.mjs +0 -3
  310. package/esm2022/lib/models/RetroWeeksModel.mjs +0 -3
  311. package/esm2022/lib/models/SendOtpRequestModel.mjs +0 -3
  312. package/esm2022/lib/models/VerifyOtpRequestModel.mjs +0 -3
  313. package/esm2022/lib/models/WageInfoModel.mjs +0 -4
  314. package/esm2022/lib/models/questionnaire/ScrollableTextModel.mjs +0 -3
  315. package/esm2022/lib/models/questionnaire/WbaHelperTextModel.mjs +0 -3
  316. package/esm2022/lib/services/employer/employer-service.mjs +0 -35
  317. package/lib/components/add-wage/add-wage.component.d.ts +0 -29
  318. package/lib/components/add-wage/add-wage.component.d.ts.map +0 -1
  319. package/lib/components/associate-ssn/associate-ssn.component.d.ts +0 -28
  320. package/lib/components/associate-ssn/associate-ssn.component.d.ts.map +0 -1
  321. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts +0 -59
  322. package/lib/components/dua-request-popup/dua-request-popup.component.d.ts.map +0 -1
  323. package/lib/components/employer-info/employer-info.component.d.ts +0 -48
  324. package/lib/components/employer-info/employer-info.component.d.ts.map +0 -1
  325. package/lib/components/employer-pay/employer-pay.component.d.ts +0 -51
  326. package/lib/components/employer-pay/employer-pay.component.d.ts.map +0 -1
  327. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts +0 -43
  328. package/lib/components/employer-pay-grid/employer-pay-grid.component.d.ts.map +0 -1
  329. package/lib/components/farm-usage/farm-usage.component.d.ts +0 -33
  330. package/lib/components/farm-usage/farm-usage.component.d.ts.map +0 -1
  331. package/lib/components/gross-earnings/gross-earnings.component.d.ts +0 -37
  332. package/lib/components/gross-earnings/gross-earnings.component.d.ts.map +0 -1
  333. package/lib/components/idme/idme.component.d.ts +0 -19
  334. package/lib/components/idme/idme.component.d.ts.map +0 -1
  335. package/lib/components/scrollable-text/scrollable-text.component.d.ts +0 -11
  336. package/lib/components/scrollable-text/scrollable-text.component.d.ts.map +0 -1
  337. package/lib/components/sms/sms.component.d.ts +0 -63
  338. package/lib/components/sms/sms.component.d.ts.map +0 -1
  339. package/lib/components/wage-grid/wage-grid.component.d.ts +0 -43
  340. package/lib/components/wage-grid/wage-grid.component.d.ts.map +0 -1
  341. package/lib/models/CountyModel.d.ts +0 -8
  342. package/lib/models/CountyModel.d.ts.map +0 -1
  343. package/lib/models/DuaRequestModel.d.ts +0 -10
  344. package/lib/models/DuaRequestModel.d.ts.map +0 -1
  345. package/lib/models/DuaRetroWeeksComponentModel.d.ts +0 -5
  346. package/lib/models/DuaRetroWeeksComponentModel.d.ts.map +0 -1
  347. package/lib/models/EmployerInfoComponentModel.d.ts +0 -9
  348. package/lib/models/EmployerInfoComponentModel.d.ts.map +0 -1
  349. package/lib/models/EmployerPayInfoModel.d.ts +0 -20
  350. package/lib/models/EmployerPayInfoModel.d.ts.map +0 -1
  351. package/lib/models/FarmUsageComponentModel.d.ts +0 -10
  352. package/lib/models/FarmUsageComponentModel.d.ts.map +0 -1
  353. package/lib/models/GrossEarningsModel.d.ts +0 -6
  354. package/lib/models/GrossEarningsModel.d.ts.map +0 -1
  355. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts +0 -7
  356. package/lib/models/LexisNexisOtpDetailsResponseModel.d.ts.map +0 -1
  357. package/lib/models/ReasonSeparationRequestModel.d.ts +0 -7
  358. package/lib/models/ReasonSeparationRequestModel.d.ts.map +0 -1
  359. package/lib/models/RetroWeeksModel.d.ts +0 -10
  360. package/lib/models/RetroWeeksModel.d.ts.map +0 -1
  361. package/lib/models/SendOtpRequestModel.d.ts +0 -12
  362. package/lib/models/SendOtpRequestModel.d.ts.map +0 -1
  363. package/lib/models/VerifyOtpRequestModel.d.ts +0 -8
  364. package/lib/models/VerifyOtpRequestModel.d.ts.map +0 -1
  365. package/lib/models/WageInfoModel.d.ts +0 -9
  366. package/lib/models/WageInfoModel.d.ts.map +0 -1
  367. package/lib/models/questionnaire/ScrollableTextModel.d.ts +0 -4
  368. package/lib/models/questionnaire/ScrollableTextModel.d.ts.map +0 -1
  369. package/lib/models/questionnaire/WbaHelperTextModel.d.ts +0 -4
  370. package/lib/models/questionnaire/WbaHelperTextModel.d.ts.map +0 -1
  371. package/lib/services/employer/employer-service.d.ts +0 -16
  372. package/lib/services/employer/employer-service.d.ts.map +0 -1
@@ -1,334 +0,0 @@
1
- import { Component, EventEmitter, Output, ViewChild, Input } from '@angular/core';
2
- import { ComboOption } from '../../models/questionnaire/ComboModel';
3
- import { Validators, UntypedFormControl } from '@angular/forms';
4
- import { SendOtpRequestModel } from '../../models/SendOtpRequestModel';
5
- import { VerifyOtpRequestModel } from '../../models/VerifyOtpRequestModel';
6
- import { FbConstants } from '../questionnaire/FbConstants';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "../../services/logger/logger.service";
9
- import * as i2 from "../../services/questionnaire/validation.service";
10
- import * as i3 from "@angular/forms";
11
- import * as i4 from "../../services/claims/claims.service";
12
- import * as i5 from "../../services/security-service/security.service";
13
- import * as i6 from "@angular/router";
14
- import * as i7 from "@ionic/storage-angular";
15
- import * as i8 from "@ionic/angular";
16
- import * as i9 from "@angular/common";
17
- import * as i10 from "primeng/inputtext";
18
- import * as i11 from "primeng/selectbutton";
19
- import * as i12 from "../error/error.component";
20
- const _c0 = ["sendOtpRequestFormDirective"];
21
- function SmsComponent_div_16_Template(rf, ctx) { if (rf & 1) {
22
- const _r9 = i0.ɵɵgetCurrentView();
23
- i0.ɵɵelementStart(0, "div", 15)(1, "ion-button", 16);
24
- i0.ɵɵlistener("click", function SmsComponent_div_16_Template_ion_button_click_1_listener() { const restoredCtx = i0.ɵɵrestoreView(_r9); const phoneNum_r7 = restoredCtx.$implicit; const ctx_r8 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r8.select(phoneNum_r7)); });
25
- i0.ɵɵelement(2, "ion-icon", 17);
26
- i0.ɵɵelementEnd();
27
- i0.ɵɵelementStart(3, "ion-label");
28
- i0.ɵɵtext(4);
29
- i0.ɵɵelementEnd()();
30
- } if (rf & 2) {
31
- const phoneNum_r7 = ctx.$implicit;
32
- const ctx_r1 = i0.ɵɵnextContext();
33
- i0.ɵɵadvance(1);
34
- i0.ɵɵproperty("color", ctx_r1.selectedPhoneNumber === phoneNum_r7 ? "success" : "primary");
35
- i0.ɵɵadvance(1);
36
- i0.ɵɵproperty("name", ctx_r1.selectedPhoneNumber === phoneNum_r7 ? "checkmark-circle-outline" : "ellipse-outline");
37
- i0.ɵɵadvance(2);
38
- i0.ɵɵtextInterpolate("*** *** " + phoneNum_r7.slice(-4));
39
- } }
40
- const _c1 = () => ({ required: "required." });
41
- function SmsComponent_ion_col_18_Template(rf, ctx) { if (rf & 1) {
42
- i0.ɵɵelementStart(0, "ion-col", 18);
43
- i0.ɵɵelement(1, "br");
44
- i0.ɵɵelementStart(2, "label", 19);
45
- i0.ɵɵtext(3, "Send code by");
46
- i0.ɵɵelementEnd();
47
- i0.ɵɵelement(4, "br")(5, "p-selectButton", 20)(6, "app-error", 8);
48
- i0.ɵɵelementEnd();
49
- } if (rf & 2) {
50
- const ctx_r2 = i0.ɵɵnextContext();
51
- const _r0 = i0.ɵɵreference(1);
52
- i0.ɵɵadvance(5);
53
- i0.ɵɵproperty("options", ctx_r2.contactOptions)("formControl", ctx_r2.otpDeliveryMethod);
54
- i0.ɵɵadvance(1);
55
- i0.ɵɵclassMap("app-grid");
56
- i0.ɵɵproperty("field", ctx_r2.otpDeliveryMethod)("form", _r0)("errDef", i0.ɵɵpureFunction0(7, _c1));
57
- } }
58
- function SmsComponent_div_20_Template(rf, ctx) { if (rf & 1) {
59
- const _r11 = i0.ɵɵgetCurrentView();
60
- i0.ɵɵelementStart(0, "div", 5);
61
- i0.ɵɵelement(1, "br")(2, "br");
62
- i0.ɵɵelementStart(3, "ion-button", 21);
63
- i0.ɵɵlistener("click", function SmsComponent_div_20_Template_ion_button_click_3_listener() { i0.ɵɵrestoreView(_r11); const ctx_r10 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r10.getCode()); });
64
- i0.ɵɵtext(4, "Get Code");
65
- i0.ɵɵelementEnd()();
66
- } if (rf & 2) {
67
- const ctx_r3 = i0.ɵɵnextContext();
68
- i0.ɵɵadvance(3);
69
- i0.ɵɵproperty("disabled", ctx_r3.disableGetCode == true);
70
- } }
71
- function SmsComponent_div_23_Template(rf, ctx) { if (rf & 1) {
72
- i0.ɵɵelementStart(0, "div", 2)(1, "label", 22);
73
- i0.ɵɵtext(2, "Check your phone");
74
- i0.ɵɵelementEnd();
75
- i0.ɵɵelement(3, "br")(4, "input", 23)(5, "input", 24);
76
- i0.ɵɵelementEnd();
77
- } if (rf & 2) {
78
- const ctx_r4 = i0.ɵɵnextContext();
79
- i0.ɵɵadvance(4);
80
- i0.ɵɵproperty("formControl", ctx_r4.otp);
81
- } }
82
- function SmsComponent_div_24_Template(rf, ctx) { if (rf & 1) {
83
- i0.ɵɵelementStart(0, "div", 25);
84
- i0.ɵɵtext(1);
85
- i0.ɵɵelementEnd();
86
- } if (rf & 2) {
87
- const ctx_r5 = i0.ɵɵnextContext();
88
- i0.ɵɵadvance(1);
89
- i0.ɵɵtextInterpolate1(" ", ctx_r5.errorMessage, " ");
90
- } }
91
- function SmsComponent_div_25_Template(rf, ctx) { if (rf & 1) {
92
- const _r13 = i0.ɵɵgetCurrentView();
93
- i0.ɵɵelementStart(0, "div", 26)(1, "ion-button", 27);
94
- i0.ɵɵlistener("click", function SmsComponent_div_25_Template_ion_button_click_1_listener() { i0.ɵɵrestoreView(_r13); const ctx_r12 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r12.verify()); });
95
- i0.ɵɵelement(2, "ion-icon", 28);
96
- i0.ɵɵtext(3, " Verify ");
97
- i0.ɵɵelementEnd()();
98
- } if (rf & 2) {
99
- const ctx_r6 = i0.ɵɵnextContext();
100
- i0.ɵɵadvance(1);
101
- i0.ɵɵproperty("disabled", ctx_r6.disableVerifyButton);
102
- i0.ɵɵadvance(1);
103
- i0.ɵɵproperty("name", ctx_r6.successCheck ? "checkmark-circle-outline" : "ellipse-outline");
104
- } }
105
- export class SmsComponent {
106
- constructor(logger, vs, formBuilder, cs, ss, activatedRoute, storage) {
107
- this.logger = logger;
108
- this.vs = vs;
109
- this.formBuilder = formBuilder;
110
- this.cs = cs;
111
- this.ss = ss;
112
- this.activatedRoute = activatedRoute;
113
- this.storage = storage;
114
- this.delay = false;
115
- this.isDisabled = false;
116
- this.contactOptions = ComboOption.CONTACT_OPTIONS;
117
- this.disableGetCode = false;
118
- this.disableVerifyButton = false;
119
- this.showCodeInput = false;
120
- this.successCheck = false;
121
- this.displayCheckBox = false;
122
- this.showResponse = false;
123
- this.showError = false;
124
- this.maxAllowedAttempts = 2;
125
- this.attemptCount = 0;
126
- this.process = "CLAP";
127
- this.responseFormat = "JSON";
128
- this.transactionId = null;
129
- this.otpRequestId = null;
130
- this.otpVerificationStatus = null;
131
- this.accepted = new EventEmitter();
132
- this.errorMessage = '';
133
- this.uuid = null;
134
- }
135
- ngOnInit() {
136
- this.getPhoneNumbersList();
137
- this.initilizeSmsForm();
138
- setTimeout(() => {
139
- this.delay = true;
140
- }, 1700);
141
- }
142
- async getIdentifier() {
143
- let uuid;
144
- let data = this.activatedRoute.snapshot.queryParamMap.get('identifier');
145
- this.logger.debug("data for identifier is : ", data);
146
- if (data) {
147
- uuid = data;
148
- }
149
- else {
150
- uuid = await this.storage.get(FbConstants.uuid);
151
- }
152
- return uuid;
153
- }
154
- async getPhoneNumbersList() {
155
- this.uuid = await this.getIdentifier();
156
- this.logger.debug('uuid is ====', this.uuid);
157
- this.cs.getPhoneNumbersForOtpByUuid(this.uuid).subscribe(res => {
158
- this.phoneNumbers = res.phoneNumbers;
159
- this.transactionId = res.id;
160
- });
161
- }
162
- initilizeSmsForm() {
163
- let sendOtpRequestInfo = new SendOtpRequestModel();
164
- this.sendOtpRequestForm = this.formBuilder.group({
165
- 'phoneNumber': [sendOtpRequestInfo.phoneNumber, Validators.required],
166
- 'otpDeliveryMethod': [sendOtpRequestInfo.otpDeliveryMethod, Validators.required],
167
- 'otp': []
168
- });
169
- this.form.addControl('lnVerifyHidden', new UntypedFormControl(null, [Validators.requiredTrue, Validators.required]));
170
- this.question.name = "lnVerifyHidden";
171
- }
172
- getCode() {
173
- this.disableGetCode = true;
174
- this.logger.debug('Sending code');
175
- this.showError = false;
176
- if (this.sendOtpRequestForm.valid && this.attemptCount <= this.maxAllowedAttempts) {
177
- this.showCodeInput = !this.showCodeInput;
178
- let sendOtpRequestData = this.sendOtpRequestForm.value;
179
- if (this.transactionId != null) {
180
- sendOtpRequestData.id = this.transactionId;
181
- sendOtpRequestData.process = this.process;
182
- sendOtpRequestData.responseFormat = this.responseFormat;
183
- //this.attemptCount = this.attemptCount + 1;
184
- this.ss.sendOtpRequest(sendOtpRequestData).subscribe(res => {
185
- var parsed = JSON.parse(JSON.stringify(res));
186
- ;
187
- this.otpRequestId = parsed["otpRequestId"];
188
- }, err => {
189
- this.logger.debug('Get code error ', err);
190
- });
191
- }
192
- }
193
- }
194
- verify() {
195
- let verifyOtpRequestData = new VerifyOtpRequestModel();
196
- verifyOtpRequestData.otp = this.sendOtpRequestForm.get('otp')?.value;
197
- //Checking the length of the otp before trigger the verify API Call
198
- if (verifyOtpRequestData.otp.length === 6) {
199
- this.attemptCount = this.attemptCount + 1;
200
- this.lnVerifyHidden.setValue(true);
201
- this.logger.debug(' this.otpRequestId', this.otpRequestId);
202
- this.logger.debug(' this.transactionId', this.transactionId);
203
- verifyOtpRequestData.id = this.transactionId;
204
- verifyOtpRequestData.process = this.process;
205
- verifyOtpRequestData.responseFormat = this.responseFormat;
206
- verifyOtpRequestData.otpRequestId = this.otpRequestId;
207
- this.ss.verifyOtpRequest(verifyOtpRequestData).subscribe(res => {
208
- var parsed = JSON.parse(JSON.stringify(res));
209
- this.otpVerificationStatus = parsed["otpVerificationStatus"];
210
- this.logger.debug('this otpVerificationStatus : ', this.otpVerificationStatus);
211
- if (this.otpVerificationStatus === 'PASS') {
212
- this.logger.debug('otpVerificationStatus is Pass');
213
- this.showError = false;
214
- this.successCheck = true;
215
- this.lnVerifyHidden.setValue(true);
216
- this.accepted.emit(true);
217
- }
218
- else {
219
- this.logger.debug('otpVerificationStatus is Not Pass and attempts remaining', this.otpVerificationStatus);
220
- this.errorMessage = 'wrong code';
221
- this.showError = true;
222
- this.showCodeInput = true;
223
- this.sendOtpRequestForm.get('otp')?.patchValue(null);
224
- if (this.attemptCount >= this.maxAllowedAttempts) {
225
- this.errorMessage = 'only 2 tries allowed';
226
- this.showError = true;
227
- this.disableVerifyButton = true;
228
- this.logger.debug('Reached max attempt limit, no need to try further..');
229
- this.lnVerifyHidden.setValue(true);
230
- this.accepted.emit(true);
231
- }
232
- }
233
- }, err => {
234
- this.logger.debug('Verify status error ', err);
235
- });
236
- }
237
- else {
238
- this.errorMessage = null;
239
- this.lnVerifyHidden.setValue(false);
240
- }
241
- }
242
- select(phoneNum) {
243
- if (this.selectedPhoneNumber === phoneNum) {
244
- this.selectedPhoneNumber = null;
245
- }
246
- else {
247
- this.selectedPhoneNumber = phoneNum;
248
- this.sendOtpRequestForm.get('phoneNumber').setValue(phoneNum);
249
- }
250
- }
251
- get lnVerifyHidden() {
252
- return this.form.get('lnVerifyHidden');
253
- }
254
- get phoneNumber() {
255
- return this.sendOtpRequestForm.controls['phoneNumber'];
256
- }
257
- get otpDeliveryMethod() {
258
- return this.sendOtpRequestForm.controls['otpDeliveryMethod'];
259
- }
260
- get otp() {
261
- return this.sendOtpRequestForm.controls['otp'];
262
- }
263
- static { this.ɵfac = function SmsComponent_Factory(t) { return new (t || SmsComponent)(i0.ɵɵdirectiveInject(i1.LoggerService), i0.ɵɵdirectiveInject(i2.ValidationService), i0.ɵɵdirectiveInject(i3.UntypedFormBuilder), i0.ɵɵdirectiveInject(i4.ClaimService), i0.ɵɵdirectiveInject(i5.SecurityService), i0.ɵɵdirectiveInject(i6.ActivatedRoute), i0.ɵɵdirectiveInject(i7.Storage)); }; }
264
- static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SmsComponent, selectors: [["app-sms"]], viewQuery: function SmsComponent_Query(rf, ctx) { if (rf & 1) {
265
- i0.ɵɵviewQuery(_c0, 5);
266
- } if (rf & 2) {
267
- let _t;
268
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.sendOtpRequestFormDirective = _t.first);
269
- } }, inputs: { form: "form", question: "question" }, outputs: { accepted: "accepted" }, decls: 28, vars: 17, consts: [[3, "formGroup"], ["sendOtpRequestFormDirective", "ngForm"], [2, "margin-left", "-10px"], ["size", "auto"], ["size", "12", "sizeSm", "12", "sizeXs", "12", "sizeMd", "4.75", "sizeLg", "4.75", "sizeXl", "4.75"], [1, "p-fluid", "p-formgrid"], ["for", "phoneNumber", 2, "margin-left", "-15px"], ["style", "margin-left: -15px;", 4, "ngFor", "ngForOf"], [3, "field", "form", "errDef"], ["size", "12", "sizeSm", "12", "sizeXs", "12", "sizeMd", "3.75", "sizeLg", "3.75", "sizeXl", "3.75", 4, "ngIf"], ["size", "12", "sizeSm", "12", "sizeXs", "12", "sizeMd", "3.5", "sizeLg", "3.5", "sizeXl", "3.5"], ["class", "p-fluid p-formgrid", 4, "ngIf"], ["style", "margin-left: -10px;", 4, "ngIf"], ["style", "color:#e60e0e; margin-left: -10px; font-size: 15px", 4, "ngIf"], ["class", "p-fluid p-formgrid", "style", "margin-left: -15px", 4, "ngIf"], [2, "margin-left", "-15px"], ["size", "small", "fill", "outline", 1, "action-button", 3, "color", "click"], [2, "font-size", "25px", "font-weight", "bold", 3, "name"], ["size", "12", "sizeSm", "12", "sizeXs", "12", "sizeMd", "3.75", "sizeLg", "3.75", "sizeXl", "3.75"], ["for", "otpDeliveryMethod", 2, "padding-left", "2px"], ["optionLabel", "text", "optionValue", "value", 3, "options", "formControl"], ["shape", "round", "fill", "outline", "type", "submit", 2, "width", "80px", "margin-top", "-1px", "margin-bottom", "5px", 3, "disabled", "click"], ["for", "otp"], ["type", "input", "placeholder", "enter code", "pTextInput", "", "maxlength", "6", 2, "width", "110px", "height", "30px", "margin-top", "5px", 3, "formControl"], ["type", "text", "id", "lnVerifyHidden", "pInputText", "", "formControlName", "lnVerifyHidden", "hidden", ""], [2, "color", "#e60e0e", "margin-left", "-10px", "font-size", "15px"], [1, "p-fluid", "p-formgrid", 2, "margin-left", "-15px"], ["size", "small", "shape", "round", "fill", "outline", "type", "submit", 2, "width", "90px", "height", "20px", "margin-bottom", "-45px", "border-radius", "10px", 3, "disabled", "click"], ["slot", "start", 2, "font-size", "20px", "font-weight", "bold", 3, "name"]], template: function SmsComponent_Template(rf, ctx) { if (rf & 1) {
270
- i0.ɵɵelementStart(0, "form", 0, 1)(2, "ion-grid")(3, "div", 2);
271
- i0.ɵɵtext(4, "To protect you, we need to verify your identity. We'll send a code to your phone.");
272
- i0.ɵɵelement(5, "br");
273
- i0.ɵɵtext(6, "- The code is good for 5 minutes.");
274
- i0.ɵɵelement(7, "br");
275
- i0.ɵɵtext(8, "- You have two tries to enter the code correctly ");
276
- i0.ɵɵelementEnd();
277
- i0.ɵɵelementStart(9, "div")(10, "ion-row", 3)(11, "ion-col", 4)(12, "div", 5);
278
- i0.ɵɵelement(13, "br");
279
- i0.ɵɵelementStart(14, "label", 6);
280
- i0.ɵɵtext(15, "Choose your phone number");
281
- i0.ɵɵelementEnd();
282
- i0.ɵɵtemplate(16, SmsComponent_div_16_Template, 5, 3, "div", 7);
283
- i0.ɵɵelementEnd();
284
- i0.ɵɵelement(17, "app-error", 8);
285
- i0.ɵɵelementEnd();
286
- i0.ɵɵtemplate(18, SmsComponent_ion_col_18_Template, 7, 8, "ion-col", 9);
287
- i0.ɵɵelementStart(19, "ion-col", 10);
288
- i0.ɵɵtemplate(20, SmsComponent_div_20_Template, 5, 1, "div", 11);
289
- i0.ɵɵelementEnd()();
290
- i0.ɵɵelementStart(21, "ion-row")(22, "div", 5);
291
- i0.ɵɵtemplate(23, SmsComponent_div_23_Template, 6, 1, "div", 12)(24, SmsComponent_div_24_Template, 2, 1, "div", 13);
292
- i0.ɵɵelementEnd();
293
- i0.ɵɵtemplate(25, SmsComponent_div_25_Template, 4, 2, "div", 14);
294
- i0.ɵɵelementEnd()();
295
- i0.ɵɵelementStart(26, "div", 2);
296
- i0.ɵɵelement(27, "app-error", 8);
297
- i0.ɵɵelementEnd()()();
298
- } if (rf & 2) {
299
- const _r0 = i0.ɵɵreference(1);
300
- i0.ɵɵproperty("formGroup", ctx.sendOtpRequestForm);
301
- i0.ɵɵadvance(16);
302
- i0.ɵɵproperty("ngForOf", ctx.phoneNumbers);
303
- i0.ɵɵadvance(1);
304
- i0.ɵɵclassMap("app-grid");
305
- i0.ɵɵproperty("field", ctx.phoneNumber)("form", _r0)("errDef", i0.ɵɵpureFunction0(15, _c1));
306
- i0.ɵɵadvance(1);
307
- i0.ɵɵproperty("ngIf", ctx.delay);
308
- i0.ɵɵadvance(2);
309
- i0.ɵɵproperty("ngIf", ctx.phoneNumber.value && ctx.otpDeliveryMethod.value);
310
- i0.ɵɵadvance(3);
311
- i0.ɵɵproperty("ngIf", ctx.showCodeInput);
312
- i0.ɵɵadvance(1);
313
- i0.ɵɵproperty("ngIf", ctx.showError);
314
- i0.ɵɵadvance(1);
315
- i0.ɵɵproperty("ngIf", ctx.showCodeInput);
316
- i0.ɵɵadvance(2);
317
- i0.ɵɵproperty("field", ctx.lnVerifyHidden)("form", _r0)("errDef", i0.ɵɵpureFunction0(16, _c1));
318
- } }, dependencies: [i8.IonButton, i8.IonCol, i8.IonGrid, i8.IonIcon, i8.IonLabel, i8.IonRow, i9.NgForOf, i9.NgIf, i3.ɵNgNoValidate, i3.DefaultValueAccessor, i3.NgControlStatus, i3.NgControlStatusGroup, i3.MaxLengthValidator, i3.FormControlDirective, i3.FormGroupDirective, i3.FormControlName, i10.InputText, i11.SelectButton, i12.ErrorComponent], styles: [".custom-checbox[_ngcontent-%COMP%]{text-align:left;--padding: 6px;--border-radius:20px;--border-width:1px;--border-color: var(--ion-color-light);--border-style: solid}.action-icon[_ngcontent-%COMP%]{margin-end:8px}.action-icon.checked[_ngcontent-%COMP%]{color:var(--ion-color-success)}.custom-checkbox.selected[_ngcontent-%COMP%]{--background: var(--ion-color-success);--border-color: var(--ion-color-success)}.custom-checkbox.selected[_ngcontent-%COMP%] .action-icon[_ngcontent-%COMP%]{display:block}"] }); }
319
- }
320
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SmsComponent, [{
321
- type: Component,
322
- args: [{ selector: 'app-sms', template: "<form [formGroup]=\"sendOtpRequestForm\" #sendOtpRequestFormDirective=\"ngForm\">\r\n <ion-grid>\r\n <div style=\"margin-left: -10px\">To protect you, we need to verify your identity. We'll send a code to your\r\n phone.<br>- The code is good for 5 minutes.<br>- You have two tries to enter the code correctly\r\n </div>\r\n <div>\r\n <ion-row size=\"auto\">\r\n <ion-col size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"4.75\" sizeLg=\"4.75\" sizeXl=\"4.75\">\r\n <div class=\"p-fluid p-formgrid\">\r\n <br><label style=\"margin-left: -15px\" for=\"phoneNumber\">Choose your phone number</label>\r\n <div style=\"margin-left: -15px;\" *ngFor=\"let phoneNum of phoneNumbers\">\r\n <ion-button size=\"small\" [color]=\"selectedPhoneNumber === phoneNum? 'success' : 'primary'\"\r\n fill=\"outline\" class=\"action-button\" (click)=\"select(phoneNum)\">\r\n <ion-icon\r\n [name]=\"selectedPhoneNumber === phoneNum? 'checkmark-circle-outline' : 'ellipse-outline'\"\r\n style=\"font-size: 25px; font-weight: bold;\"></ion-icon>\r\n </ion-button>\r\n <ion-label>{{ '*** *** ' + phoneNum.slice(-4) }}</ion-label>\r\n </div>\r\n </div>\r\n <app-error [class]=\"'app-grid'\" [field]='phoneNumber' [form]=\"sendOtpRequestFormDirective\" [errDef]=\"{ \r\n required: 'required.'\r\n }\"></app-error>\r\n </ion-col>\r\n <ion-col size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"3.75\" sizeLg=\"3.75\" sizeXl=\"3.75\" *ngIf=\"delay\">\r\n <br><label for=\"otpDeliveryMethod\" style=\"padding-left: 2px;\">Send code by</label><br>\r\n <p-selectButton [options]=\"contactOptions\" optionLabel=\"text\" optionValue=\"value\"\r\n [formControl]=\"otpDeliveryMethod\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='otpDeliveryMethod' [form]=\"sendOtpRequestFormDirective\"\r\n [errDef]=\"{ \r\n required: 'required.'\r\n }\"></app-error>\r\n </ion-col>\r\n <ion-col size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"3.5\" sizeLg=\"3.5\" sizeXl=\"3.5\">\r\n <div class=\"p-fluid p-formgrid\" *ngIf=\"phoneNumber.value && otpDeliveryMethod.value\">\r\n <br><br><ion-button shape=\"round\" style=\"width: 80px; margin-top: -1px; margin-bottom: 5px;\"\r\n fill=\"outline\" type=\"submit\" (click)=\"getCode()\" [disabled]=\"disableGetCode==true\">Get\r\n Code</ion-button>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <div class=\"p-fluid p-formgrid\">\r\n <div style=\"margin-left: -10px;\" *ngIf=\"showCodeInput\">\r\n <label for=\"otp\">Check your phone</label><br>\r\n <input style=\"width:110px; height:30px; margin-top: 5px;\" type=\"input\"\r\n placeholder=\"enter code\" [formControl]=\"otp\" pTextInput maxlength=\"6\" />\r\n <input type=\"text\" id=\"lnVerifyHidden\" pInputText formControlName=\"lnVerifyHidden\" hidden />\r\n </div> \r\n <div *ngIf=\"showError\" style=\"color:#e60e0e; margin-left: -10px; font-size: 15px\">\r\n {{ errorMessage }}\r\n </div>\r\n </div>\r\n <div class=\"p-fluid p-formgrid\" style=\"margin-left: -15px\" *ngIf=\"showCodeInput\">\r\n <ion-button size=\"small\" shape=\"round\" style=\"width: 90px; height: 20px; margin-bottom: -45px; border-radius: 10px;\"\r\n fill=\"outline\" type=\"submit\" [disabled]=\"disableVerifyButton\" (click)=\"verify()\">\r\n <ion-icon slot=\"start\" [name]=\"successCheck ? 'checkmark-circle-outline' : 'ellipse-outline'\"\r\n style=\"font-size: 20px; font-weight: bold;\"></ion-icon>\r\n Verify\r\n </ion-button>\r\n </div>\r\n </ion-row>\r\n </div>\r\n <div style=\"margin-left: -10px;\">\r\n <app-error [field]='lnVerifyHidden' [form]=\"sendOtpRequestFormDirective\" [errDef]=\"{\r\n required: 'required.'\r\n }\"></app-error>\r\n </div>\r\n </ion-grid>\r\n</form>", styles: [".custom-checbox{text-align:left;--padding: 6px;--border-radius:20px;--border-width:1px;--border-color: var(--ion-color-light);--border-style: solid}.action-icon{margin-end:8px}.action-icon.checked{color:var(--ion-color-success)}.custom-checkbox.selected{--background: var(--ion-color-success);--border-color: var(--ion-color-success)}.custom-checkbox.selected .action-icon{display:block}\n"] }]
323
- }], () => [{ type: i1.LoggerService }, { type: i2.ValidationService }, { type: i3.UntypedFormBuilder }, { type: i4.ClaimService }, { type: i5.SecurityService }, { type: i6.ActivatedRoute }, { type: i7.Storage }], { accepted: [{
324
- type: Output
325
- }], form: [{
326
- type: Input
327
- }], question: [{
328
- type: Input
329
- }], sendOtpRequestFormDirective: [{
330
- type: ViewChild,
331
- args: ['sendOtpRequestFormDirective', { static: false }]
332
- }] }); })();
333
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SmsComponent, { className: "SmsComponent", filePath: "lib\\components\\sms\\sms.component.ts", lineNumber: 21 }); })();
334
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9zbXMvc21zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9zbXMvc21zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRSxPQUFPLEVBQW1FLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBR2pJLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBR3ZFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBSTNFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNGbkMsK0JBQXVFLHFCQUFBO0lBRTFCLDZOQUFTLGVBQUEsMEJBQWdCLENBQUEsSUFBQztJQUMvRCwrQkFFMkQ7SUFDL0QsaUJBQWE7SUFDYixpQ0FBVztJQUFBLFlBQXFDO0lBQUEsaUJBQVksRUFBQTs7OztJQU5uQyxlQUFpRTtJQUFqRSwwRkFBaUU7SUFHbEYsZUFBeUY7SUFBekYsa0hBQXlGO0lBR3RGLGVBQXFDO0lBQXJDLHdEQUFxQzs7OztJQU81RCxtQ0FBbUc7SUFDL0YscUJBQUk7SUFBQSxpQ0FBMEQ7SUFBQSw0QkFBWTtJQUFBLGlCQUFRO0lBQUEscUJBQUkseUJBQUEsbUJBQUE7SUFPMUYsaUJBQVU7Ozs7SUFOVSxlQUEwQjtJ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Ozs7WUNwQnpCLGtDQUE2RSxlQUFBLGFBQUE7WUFFckMsaUdBQ3RCO1lBQUEscUJBQUk7WUFBQSxpREFBaUM7WUFBQSxxQkFBSTtZQUFBLGlFQUNuRDtZQUFBLGlCQUFNO1lBQ04sMkJBQUssa0JBQUEsa0JBQUEsY0FBQTtZQUlXLHNCQUFJO1lBQUEsaUNBQW9EO1lBQUEseUNBQXdCO1lBQUEsaUJBQVE7WUFDeEYsK0RBUU07WUFDVixpQkFBTTtZQUNOLGdDQUVlO1lBQ25CLGlCQUFVO1lBQ1YsdUVBUVU7WUFDVixvQ0FBa0Y7WUFDOUUsZ0VBSU07WUFDVixpQkFBVSxFQUFBO1lBRWQsZ0NBQVMsY0FBQTtZQUVHLGdFQUtNLG1EQUFBO1lBSVYsaUJBQU07WUFDTixnRUFPTTtZQUNkLGlCQUFVLEVBQUE7WUFFZCwrQkFBaUM7WUFDN0IsZ0NBRWlCO1lBQ3JCLGlCQUFNLEVBQUEsRUFBQTs7O1lBbkVSLGtEQUFnQztZQVV3QyxnQkFBZTtZQUFmLDBDQUFlO1lBVTlELGVBQW9CO1lBQXBCLHlCQUFvQjtZQUFDLHVDQUFxQixhQUFBLHVDQUFBO1lBSTZCLGVBQVc7WUFBWCxnQ0FBVztZQVU1RCxlQUFrRDtZQUFsRCwyRUFBa0Q7WUFTN0MsZUFBbUI7WUFBbkIsd0NBQW1CO1lBTS9DLGVBQWU7WUFBZixvQ0FBZTtZQUltQyxlQUFtQjtZQUFuQix3Q0FBbUI7WUFXNUUsZUFBd0I7WUFBeEIsMENBQXdCLGFBQUEsdUNBQUE7OztpRkQ1Q2xDLFlBQVk7Y0FOeEIsU0FBUzsyQkFDRSxTQUFTOzJOQXlCVCxRQUFRO2tCQUFqQixNQUFNO1lBQ0UsSUFBSTtrQkFBWixLQUFLO1lBQ0csUUFBUTtrQkFBaEIsS0FBSztZQU1DLDJCQUEyQjtrQkFEakMsU0FBUzttQkFBQyw2QkFBNkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7O2tGQTNCaEQsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21ib09wdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0NvbWJvTW9kZWwnO1xyXG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiwgTmdGb3JtLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9xdWVzdGlvbm5haXJlL3ZhbGlkYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTZW5kT3RwUmVxdWVzdE1vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL1NlbmRPdHBSZXF1ZXN0TW9kZWwnO1xyXG5pbXBvcnQgeyBFbGVtZW50c01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvRWxlbWVudHNNb2RlbCc7XHJcbmltcG9ydCB7IENsYWltU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltcy9jbGFpbXMuc2VydmljZSc7XHJcbmltcG9ydCB7IFZlcmlmeU90cFJlcXVlc3RNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9WZXJpZnlPdHBSZXF1ZXN0TW9kZWwnO1xyXG5pbXBvcnQgeyBTZWN1cml0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9zZWN1cml0eS1zZXJ2aWNlL3NlY3VyaXR5LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdG9yYWdlIH0gZnJvbSAnQGlvbmljL3N0b3JhZ2UtYW5ndWxhcic7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgRmJDb25zdGFudHMgfSBmcm9tICcuLi9xdWVzdGlvbm5haXJlL0ZiQ29uc3RhbnRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnYXBwLXNtcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3Ntcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3Ntcy5jb21wb25lbnQuY3NzJyxcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBTbXNDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGRlbGF5PWZhbHNlO1xyXG4gIGlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICBjb250YWN0T3B0aW9ucyA9IENvbWJvT3B0aW9uLkNPTlRBQ1RfT1BUSU9OUztcclxuICBkaXNhYmxlR2V0Q29kZSA9IGZhbHNlO1xyXG4gIGRpc2FibGVWZXJpZnlCdXR0b24gPSBmYWxzZTtcclxuICBzaG93Q29kZUlucHV0ID0gZmFsc2U7XHJcbiAgc3VjY2Vzc0NoZWNrID0gZmFsc2U7XHJcbiAgcGhvbmVOdW1iZXJzOiBzdHJpbmdbXTtcclxuICBzZWxlY3RlZFBob25lTnVtYmVyOiBzdHJpbmc7XHJcbiAgZGlzcGxheUNoZWNrQm94OiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd1Jlc3BvbnNlOiBib29sZWFuID0gZmFsc2U7XHJcbiAgc2hvd0Vycm9yOiBib29sZWFuID0gZmFsc2U7XHJcbiAgbWF4QWxsb3dlZEF0dGVtcHRzIDogbnVtYmVyID0gMjtcclxuICBhdHRlbXB0Q291bnQ6IG51bWJlciA9IDA7XHJcbiAgcHJvY2Vzczogc3RyaW5nID0gXCJDTEFQXCI7XHJcbiAgcmVzcG9uc2VGb3JtYXQ6IHN0cmluZyA9IFwiSlNPTlwiO1xyXG4gIHRyYW5zYWN0aW9uSWQ6IG51bWJlciA9IG51bGw7XHJcbiAgb3RwUmVxdWVzdElkOiBzdHJpbmcgPSBudWxsO1xyXG4gIG90cFZlcmlmaWNhdGlvblN0YXR1czogc3RyaW5nID0gbnVsbDtcclxuICBAT3V0cHV0KCkgYWNjZXB0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XHJcbiAgQElucHV0KCkgZm9ybTogVW50eXBlZEZvcm1Hcm91cDtcclxuICBASW5wdXQoKSBxdWVzdGlvbjogRWxlbWVudHNNb2RlbDtcclxuICBlcnJvck1lc3NhZ2U6IHN0cmluZyA9Jyc7XHJcbiAgXHJcbiAgdXVpZDogc3RyaW5nID0gbnVsbDtcclxuXHJcbiAgQFZpZXdDaGlsZCgnc2VuZE90cFJlcXVlc3RGb3JtRGlyZWN0aXZlJywgeyBzdGF0aWM6IGZhbHNlIH0pXHJcbiAgcHVibGljIHNlbmRPdHBSZXF1ZXN0Rm9ybURpcmVjdGl2ZTogTmdGb3JtO1xyXG4gIHB1YmxpYyBzZW5kT3RwUmVxdWVzdEZvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBsb2dnZXI6IExvZ2dlclNlcnZpY2UsIHB1YmxpYyB2czogVmFsaWRhdGlvblNlcnZpY2UsIHB1YmxpYyBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLCBcclxuICAgIHB1YmxpYyBjczogQ2xhaW1TZXJ2aWNlLCBwdWJsaWMgc3M6IFNlY3VyaXR5U2VydmljZSwgcHVibGljIGFjdGl2YXRlZFJvdXRlIDogQWN0aXZhdGVkUm91dGUsIFxyXG4gICAgcHJpdmF0ZSBzdG9yYWdlIDogU3RvcmFnZSkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmdldFBob25lTnVtYmVyc0xpc3QoKTtcclxuICAgIHRoaXMuaW5pdGlsaXplU21zRm9ybSgpO1xyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZGVsYXk9dHJ1ZTtcclxuICAgIH0sMTcwMCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBnZXRJZGVudGlmaWVyKCl7XHJcbiAgICBsZXQgdXVpZDtcclxuICAgIGxldCBkYXRhID0gdGhpcy5hY3RpdmF0ZWRSb3V0ZS5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgnaWRlbnRpZmllcicpO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJkYXRhIGZvciBpZGVudGlmaWVyIGlzIDogXCIsIGRhdGEpXHJcbiAgICAgIGlmKGRhdGEpeyAgICAgICAgICBcclxuICAgICAgICB1dWlkID0gZGF0YTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB1dWlkID0gYXdhaXQgdGhpcy5zdG9yYWdlLmdldChGYkNvbnN0YW50cy51dWlkKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdXVpZDtcclxuICB9XHJcbiAgYXN5bmMgZ2V0UGhvbmVOdW1iZXJzTGlzdCgpe1xyXG4gICAgdGhpcy51dWlkID0gYXdhaXQgdGhpcy5nZXRJZGVudGlmaWVyKClcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd1dWlkIGlzID09PT0nLCB0aGlzLnV1aWQpO1xyXG4gICAgdGhpcy5jcy5nZXRQaG9uZU51bWJlcnNGb3JPdHBCeVV1aWQodGhpcy51dWlkKS5zdWJzY3JpYmUoXHJcbiAgICAgIHJlcyA9PiB7XHJcbiAgICAgIHRoaXMucGhvbmVOdW1iZXJzID0gcmVzLnBob25lTnVtYmVycztcclxuICAgICAgdGhpcy50cmFuc2FjdGlvbklkID0gcmVzLmlkO1xyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgaW5pdGlsaXplU21zRm9ybSgpIHtcclxuICAgIGxldCBzZW5kT3RwUmVxdWVzdEluZm8gPSBuZXcgU2VuZE90cFJlcXVlc3RNb2RlbCgpO1xyXG4gICAgdGhpcy5zZW5kT3RwUmVxdWVzdEZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcclxuICAgICAgJ3Bob25lTnVtYmVyJzogW3NlbmRPdHBSZXF1ZXN0SW5mby5waG9uZU51bWJlciwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICdvdHBEZWxpdmVyeU1ldGhvZCc6IFtzZW5kT3RwUmVxdWVzdEluZm8ub3RwRGVsaXZlcnlNZXRob2QsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgICAnb3RwJzogW11cclxuICAgIH0pO1xyXG4gICAgdGhpcy5mb3JtLmFkZENvbnRyb2woJ2xuVmVyaWZ5SGlkZGVuJywgbmV3IFVudHlwZWRGb3JtQ29udHJvbChudWxsLFtWYWxpZGF0b3JzLnJlcXVpcmVkVHJ1ZSxWYWxpZGF0b3JzLnJlcXVpcmVkXSkpO1xyXG4gICAgdGhpcy5xdWVzdGlvbi5uYW1lPVwibG5WZXJpZnlIaWRkZW5cIjtcclxuICB9XHJcblxyXG4gIGdldENvZGUoKSB7ICBcclxuICAgIHRoaXMuZGlzYWJsZUdldENvZGU9dHJ1ZTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdTZW5kaW5nIGNvZGUnKTtcclxuICAgIHRoaXMuc2hvd0Vycm9yID0gZmFsc2U7XHJcbiAgICBpZih0aGlzLnNlbmRPdHBSZXF1ZXN0Rm9ybS52YWxpZCAmJiB0aGlzLmF0dGVtcHRDb3VudCA8PSB0aGlzLm1heEFsbG93ZWRBdHRlbXB0cyl7XHJcbiAgICAgICAgdGhpcy5zaG93Q29kZUlucHV0ID0gIXRoaXMuc2hvd0NvZGVJbnB1dDtcclxuICAgICAgICBsZXQgc2VuZE90cFJlcXVlc3REYXRhOiBTZW5kT3RwUmVxdWVzdE1vZGVsID0gdGhpcy5zZW5kT3RwUmVxdWVzdEZvcm0udmFsdWU7XHJcbiAgICAgICAgaWYodGhpcy50cmFuc2FjdGlvbklkICE9IG51bGwpe1xyXG4gICAgICAgICAgc2VuZE90cFJlcXVlc3REYXRhLmlkID0gdGhpcy50cmFuc2FjdGlvbklkO1xyXG4gICAgICAgICAgc2VuZE90cFJlcXVlc3REYXRhLnByb2Nlc3MgPSB0aGlzLnByb2Nlc3M7XHJcbiAgICAgICAgICBzZW5kT3RwUmVxdWVzdERhdGEucmVzcG9uc2VGb3JtYXQgPSB0aGlzLnJlc3BvbnNlRm9ybWF0O1xyXG4gICAgICAgICAgLy90aGlzLmF0dGVtcHRDb3VudCA9IHRoaXMuYXR0ZW1wdENvdW50ICsgMTtcclxuICAgICAgICAgIHRoaXMuc3Muc2VuZE90cFJlcXVlc3Qoc2VuZE90cFJlcXVlc3REYXRhKS5zdWJzY3JpYmUocmVzID0+IHsgIFxyXG4gICAgICAgICAgICB2YXIgcGFyc2VkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShyZXMpKTs7XHJcbiAgICAgICAgICAgIHRoaXMub3RwUmVxdWVzdElkID0gcGFyc2VkW1wib3RwUmVxdWVzdElkXCJdO1xyXG4gICAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnR2V0IGNvZGUgZXJyb3IgJyxlcnIpO1xyXG4gICAgICAgICAgICAgXHJcbiAgICAgICAgICB9KTsgICAgXHJcbiAgICAgICAgfVxyXG4gICAgfSBcclxuICB9XHJcblxyXG4gIHZlcmlmeSgpe1xyXG4gICAgICAgIGxldCB2ZXJpZnlPdHBSZXF1ZXN0RGF0YTogVmVyaWZ5T3RwUmVxdWVzdE1vZGVsID0gbmV3IFZlcmlmeU90cFJlcXVlc3RNb2RlbCgpO1xyXG4gICAgICAgIHZlcmlmeU90cFJlcXVlc3REYXRhLm90cCA9IHRoaXMuc2VuZE90cFJlcXVlc3RGb3JtLmdldCgnb3RwJyk/LnZhbHVlO1xyXG4gICAgICAgIC8vQ2hlY2tpbmcgdGhlIGxlbmd0aCBvZiB0aGUgb3RwIGJlZm9yZSB0cmlnZ2VyIHRoZSB2ZXJpZnkgQVBJIENhbGwgIFxyXG4gICAgICAgIGlmICh2ZXJpZnlPdHBSZXF1ZXN0RGF0YS5vdHAubGVuZ3RoID09PSA2KSB7XHJcbiAgICAgICAgICB0aGlzLmF0dGVtcHRDb3VudCA9IHRoaXMuYXR0ZW1wdENvdW50ICsgMTtcclxuICAgICAgICAgIHRoaXMubG5WZXJpZnlIaWRkZW4uc2V0VmFsdWUodHJ1ZSk7XHJcbiAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnIHRoaXMub3RwUmVxdWVzdElkJywgIHRoaXMub3RwUmVxdWVzdElkKTtcclxuICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCcgdGhpcy50cmFuc2FjdGlvbklkJywgIHRoaXMudHJhbnNhY3Rpb25JZCk7XHJcbiAgICAgICAgICB2ZXJpZnlPdHBSZXF1ZXN0RGF0YS5pZCA9IHRoaXMudHJhbnNhY3Rpb25JZDtcclxuICAgICAgICAgIHZlcmlmeU90cFJlcXVlc3REYXRhLnByb2Nlc3MgPSB0aGlzLnByb2Nlc3M7XHJcbiAgICAgICAgICB2ZXJpZnlPdHBSZXF1ZXN0RGF0YS5yZXNwb25zZUZvcm1hdCA9IHRoaXMucmVzcG9uc2VGb3JtYXQ7XHJcbiAgICAgICAgICB2ZXJpZnlPdHBSZXF1ZXN0RGF0YS5vdHBSZXF1ZXN0SWQgPSB0aGlzLm90cFJlcXVlc3RJZDsgIFxyXG4gICAgICAgICAgdGhpcy5zcy52ZXJpZnlPdHBSZXF1ZXN0KHZlcmlmeU90cFJlcXVlc3REYXRhKS5zdWJzY3JpYmUocmVzID0+IHtcclxuICAgICAgICAgICAgdmFyIHBhcnNlZCA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkocmVzKSk7XHJcbiAgICAgICAgICAgIHRoaXMub3RwVmVyaWZpY2F0aW9uU3RhdHVzID0gcGFyc2VkW1wib3RwVmVyaWZpY2F0aW9uU3RhdHVzXCJdO1xyXG4gICAgICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhpcyBvdHBWZXJpZmljYXRpb25TdGF0dXMgOiAnLCB0aGlzLm90cFZlcmlmaWNhdGlvblN0YXR1cyk7XHJcbiAgICAgICAgICAgIGlmKHRoaXMub3RwVmVyaWZpY2F0aW9uU3RhdHVzID09PSAnUEFTUycpe1xyXG4gICAgICAgICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdvdHBWZXJpZmljYXRpb25TdGF0dXMgaXMgUGFzcycpO1xyXG4gICAgICAgICAgICAgIHRoaXMuc2hvd0Vycm9yPWZhbHNlO1xyXG4gICAgICAgICAgICAgIHRoaXMuc3VjY2Vzc0NoZWNrID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLmxuVmVyaWZ5SGlkZGVuLnNldFZhbHVlKHRydWUpO1xyXG4gICAgICAgICAgICAgIHRoaXMuYWNjZXB0ZWQuZW1pdCh0cnVlKTtcclxuICAgICAgICAgICAgfSBlbHNlIHsgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ290cFZlcmlmaWNhdGlvblN0YXR1cyBpcyBOb3QgUGFzcyBhbmQgYXR0ZW1wdHMgcmVtYWluaW5nJywgdGhpcy5vdHBWZXJpZmljYXRpb25TdGF0dXMpO1xyXG4gICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlPSd3cm9uZyBjb2RlJztcclxuICAgICAgICAgICAgICB0aGlzLnNob3dFcnJvciA9IHRydWU7XHJcbiAgICAgICAgICAgICAgdGhpcy5zaG93Q29kZUlucHV0ID0gdHJ1ZTtcclxuICAgICAgICAgICAgICB0aGlzLnNlbmRPdHBSZXF1ZXN0Rm9ybS5nZXQoJ290cCcpPy5wYXRjaFZhbHVlKG51bGwpO1xyXG4gICAgICAgICAgICAgIGlmKHRoaXMuYXR0ZW1wdENvdW50ID49IHRoaXMubWF4QWxsb3dlZEF0dGVtcHRzKXtcclxuICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlPSdvbmx5IDIgdHJpZXMgYWxsb3dlZCc7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNob3dFcnJvcj10cnVlOyBcclxuICAgICAgICAgICAgICAgIHRoaXMuZGlzYWJsZVZlcmlmeUJ1dHRvbj10cnVlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ1JlYWNoZWQgbWF4IGF0dGVtcHQgbGltaXQsIG5vIG5lZWQgdG8gdHJ5IGZ1cnRoZXIuLicpXHJcbiAgICAgICAgICAgICAgICB0aGlzLmxuVmVyaWZ5SGlkZGVuLnNldFZhbHVlKHRydWUpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5hY2NlcHRlZC5lbWl0KHRydWUpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfSwgZXJyID0+IHtcclxuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ1ZlcmlmeSBzdGF0dXMgZXJyb3IgJyxlcnIpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNle1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2U9bnVsbDtcclxuICAgICAgICAgIHRoaXMubG5WZXJpZnlIaWRkZW4uc2V0VmFsdWUoZmFsc2UpO1xyXG4gICAgICAgIH1cclxuICB9XHJcblxyXG4gIHNlbGVjdChwaG9uZU51bTogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5zZWxlY3RlZFBob25lTnVtYmVyID09PSBwaG9uZU51bSkge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkUGhvbmVOdW1iZXIgPSBudWxsO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRQaG9uZU51bWJlciA9IHBob25lTnVtO1xyXG4gICAgICB0aGlzLnNlbmRPdHBSZXF1ZXN0Rm9ybS5nZXQoJ3Bob25lTnVtYmVyJykuc2V0VmFsdWUocGhvbmVOdW0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGxuVmVyaWZ5SGlkZGVuKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybS5nZXQoJ2xuVmVyaWZ5SGlkZGVuJyk7XHJcbiAgfVxyXG5cclxuICBnZXQgcGhvbmVOdW1iZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZW5kT3RwUmVxdWVzdEZvcm0uY29udHJvbHNbJ3Bob25lTnVtYmVyJ107XHJcbiAgfVxyXG5cclxuICBnZXQgb3RwRGVsaXZlcnlNZXRob2QoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5zZW5kT3RwUmVxdWVzdEZvcm0uY29udHJvbHNbJ290cERlbGl2ZXJ5TWV0aG9kJ107XHJcbiAgfVxyXG5cclxuICBnZXQgb3RwKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2VuZE90cFJlcXVlc3RGb3JtLmNvbnRyb2xzWydvdHAnXTtcclxuICB9XHJcbn1cclxuIiwiPGZvcm0gW2Zvcm1Hcm91cF09XCJzZW5kT3RwUmVxdWVzdEZvcm1cIiAjc2VuZE90cFJlcXVlc3RGb3JtRGlyZWN0aXZlPVwibmdGb3JtXCI+XHJcbiAgICA8aW9uLWdyaWQ+XHJcbiAgICAgICAgPGRpdiBzdHlsZT1cIm1hcmdpbi1sZWZ0OiAtMTBweFwiPlRvIHByb3RlY3QgeW91LCB3ZSBuZWVkIHRvIHZlcmlmeSB5b3VyIGlkZW50aXR5LiBXZSdsbCBzZW5kIGEgY29kZSB0byB5b3VyXHJcbiAgICAgICAgICAgIHBob25lLjxicj4tIFRoZSBjb2RlIGlzIGdvb2QgZm9yIDUgbWludXRlcy48YnI+LSBZb3UgaGF2ZSB0d28gdHJpZXMgdG8gZW50ZXIgdGhlIGNvZGUgY29ycmVjdGx5XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgPGlvbi1yb3cgc2l6ZT1cImF1dG9cIj5cclxuICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI0Ljc1XCIgc2l6ZUxnPVwiNC43NVwiIHNpemVYbD1cIjQuNzVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxicj48bGFiZWwgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTE1cHhcIiBmb3I9XCJwaG9uZU51bWJlclwiPkNob29zZSB5b3VyIHBob25lIG51bWJlcjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTE1cHg7XCIgKm5nRm9yPVwibGV0IHBob25lTnVtIG9mIHBob25lTnVtYmVyc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgW2NvbG9yXT1cInNlbGVjdGVkUGhvbmVOdW1iZXIgPT09IHBob25lTnVtPyAnc3VjY2VzcycgOiAncHJpbWFyeSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJvdXRsaW5lXCIgY2xhc3M9XCJhY3Rpb24tYnV0dG9uXCIgKGNsaWNrKT1cInNlbGVjdChwaG9uZU51bSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb25cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwic2VsZWN0ZWRQaG9uZU51bWJlciA9PT0gcGhvbmVOdW0/ICdjaGVja21hcmstY2lyY2xlLW91dGxpbmUnIDogJ2VsbGlwc2Utb3V0bGluZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT1cImZvbnQtc2l6ZTogMjVweDsgZm9udC13ZWlnaHQ6IGJvbGQ7XCI+PC9pb24taWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpb24tbGFiZWw+e3sgJyoqKiAqKiogJyArIHBob25lTnVtLnNsaWNlKC00KSB9fTwvaW9uLWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncGhvbmVOdW1iZXInIFtmb3JtXT1cInNlbmRPdHBSZXF1ZXN0Rm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjEyXCIgc2l6ZVNtPVwiMTJcIiBzaXplWHM9XCIxMlwiIHNpemVNZD1cIjMuNzVcIiBzaXplTGc9XCIzLjc1XCIgc2l6ZVhsPVwiMy43NVwiICpuZ0lmPVwiZGVsYXlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnI+PGxhYmVsIGZvcj1cIm90cERlbGl2ZXJ5TWV0aG9kXCIgc3R5bGU9XCJwYWRkaW5nLWxlZnQ6IDJweDtcIj5TZW5kIGNvZGUgYnk8L2xhYmVsPjxicj5cclxuICAgICAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwiY29udGFjdE9wdGlvbnNcIiBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIm90cERlbGl2ZXJ5TWV0aG9kXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nb3RwRGVsaXZlcnlNZXRob2QnIFtmb3JtXT1cInNlbmRPdHBSZXF1ZXN0Rm9ybURpcmVjdGl2ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAncmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCIzLjVcIiBzaXplTGc9XCIzLjVcIiBzaXplWGw9XCIzLjVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkXCIgKm5nSWY9XCJwaG9uZU51bWJlci52YWx1ZSAmJiBvdHBEZWxpdmVyeU1ldGhvZC52YWx1ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8YnI+PGJyPjxpb24tYnV0dG9uIHNoYXBlPVwicm91bmRcIiBzdHlsZT1cIndpZHRoOiA4MHB4OyBtYXJnaW4tdG9wOiAtMXB4OyBtYXJnaW4tYm90dG9tOiA1cHg7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJvdXRsaW5lXCIgdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJnZXRDb2RlKClcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZUdldENvZGU9PXRydWVcIj5HZXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIENvZGU8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLWxlZnQ6IC0xMHB4O1wiICpuZ0lmPVwic2hvd0NvZGVJbnB1dFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm90cFwiPkNoZWNrIHlvdXIgcGhvbmU8L2xhYmVsPjxicj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBzdHlsZT1cIndpZHRoOjExMHB4OyBoZWlnaHQ6MzBweDsgbWFyZ2luLXRvcDogNXB4O1wiIHR5cGU9XCJpbnB1dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJlbnRlciBjb2RlXCIgW2Zvcm1Db250cm9sXT1cIm90cFwiIHBUZXh0SW5wdXQgbWF4bGVuZ3RoPVwiNlwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBpZD1cImxuVmVyaWZ5SGlkZGVuXCIgcElucHV0VGV4dCBmb3JtQ29udHJvbE5hbWU9XCJsblZlcmlmeUhpZGRlblwiIGhpZGRlbiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwic2hvd0Vycm9yXCIgc3R5bGU9XCJjb2xvcjojZTYwZTBlOyBtYXJnaW4tbGVmdDogLTEwcHg7IGZvbnQtc2l6ZTogMTVweFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTE1cHhcIiAqbmdJZj1cInNob3dDb2RlSW5wdXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlvbi1idXR0b24gc2l6ZT1cInNtYWxsXCIgc2hhcGU9XCJyb3VuZFwiIHN0eWxlPVwid2lkdGg6IDkwcHg7IGhlaWdodDogMjBweDsgbWFyZ2luLWJvdHRvbTogLTQ1cHg7IGJvcmRlci1yYWRpdXM6IDEwcHg7XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGw9XCJvdXRsaW5lXCIgdHlwZT1cInN1Ym1pdFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlVmVyaWZ5QnV0dG9uXCIgKGNsaWNrKT1cInZlcmlmeSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cInN0YXJ0XCIgW25hbWVdPVwic3VjY2Vzc0NoZWNrID8gJ2NoZWNrbWFyay1jaXJjbGUtb3V0bGluZScgOiAnZWxsaXBzZS1vdXRsaW5lJ1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiZm9udC1zaXplOiAyMHB4OyBmb250LXdlaWdodDogYm9sZDtcIj48L2lvbi1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgVmVyaWZ5XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgc3R5bGU9XCJtYXJnaW4tbGVmdDogLTEwcHg7XCI+XHJcbiAgICAgICAgICAgIDxhcHAtZXJyb3IgW2ZpZWxkXT0nbG5WZXJpZnlIaWRkZW4nIFtmb3JtXT1cInNlbmRPdHBSZXF1ZXN0Rm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwie1xyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdyZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9pb24tZ3JpZD5cclxuPC9mb3JtPiJdfQ==