@reusa/ngx-reusa-app-lib 0.0.731 → 0.1.731

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 (472) hide show
  1. package/{esm2020 → esm2022}/lib/annimations/app-animations.mjs +36 -36
  2. package/esm2022/lib/components/add-employer/add-employer.component.mjs +3027 -0
  3. package/esm2022/lib/components/add-participant/add-participant.component.mjs +394 -0
  4. package/esm2022/lib/components/add-payment/add-payment.component.mjs +187 -0
  5. package/esm2022/lib/components/address/address.component.mjs +487 -0
  6. package/esm2022/lib/components/bank-details/bank-details.component.mjs +276 -0
  7. package/esm2022/lib/components/captcha/captcha.component.mjs +181 -0
  8. package/esm2022/lib/components/card/card.component.mjs +55 -0
  9. package/esm2022/lib/components/contact-us/contact-us.component.mjs +970 -0
  10. package/esm2022/lib/components/content/content.component.mjs +61 -0
  11. package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +83 -0
  12. package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +223 -0
  13. package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +292 -0
  14. package/esm2022/lib/components/disclosure/disclosure.component.mjs +60 -0
  15. package/esm2022/lib/components/dropdown/dropdown.component.mjs +1974 -0
  16. package/esm2022/lib/components/dropdown/dropdown.interface.mjs +2 -0
  17. package/esm2022/lib/components/email-update/email-update.component.mjs +283 -0
  18. package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +794 -0
  19. package/esm2022/lib/components/error/error.component.mjs +86 -0
  20. package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +163 -0
  21. package/{esm2020 → esm2022}/lib/components/file-download/file-download.component.mjs +104 -104
  22. package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +315 -0
  23. package/esm2022/lib/components/footer/footer.component.mjs +332 -0
  24. package/esm2022/lib/components/header/header.component.mjs +558 -0
  25. package/esm2022/lib/components/help/help.component.mjs +49 -0
  26. package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +65 -0
  27. package/{esm2020 → esm2022}/lib/components/info/info.component.mjs +187 -188
  28. package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +206 -0
  29. package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +193 -0
  30. package/esm2022/lib/components/maintenance-detector/maintenance-detector.component.mjs +43 -0
  31. package/esm2022/lib/components/mask/mask.component.mjs +48 -0
  32. package/esm2022/lib/components/menu/menu.component.mjs +423 -0
  33. package/esm2022/lib/components/mfa/mfa.component.mjs +444 -0
  34. package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +50 -0
  35. package/esm2022/lib/components/money-expect/money-expect.component.mjs +90 -0
  36. package/esm2022/lib/components/msg/msg.component.mjs +48 -0
  37. package/esm2022/lib/components/news/news.component.mjs +90 -0
  38. package/esm2022/lib/components/overlay-info/overlay-info.component.mjs +213 -0
  39. package/esm2022/lib/components/page/page.component.mjs +136 -0
  40. package/esm2022/lib/components/profile/profile.component.mjs +177 -0
  41. package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +63 -0
  42. package/esm2022/lib/components/questionnaire/AppValidators.mjs +487 -0
  43. package/{esm2020 → esm2022}/lib/components/questionnaire/FbConstants.mjs +7 -7
  44. package/{esm2020 → esm2022}/lib/components/questionnaire/SelectItem.mjs +1 -1
  45. package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +256 -0
  46. package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +475 -0
  47. package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +1094 -0
  48. package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +1882 -0
  49. package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +1263 -0
  50. package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +244 -0
  51. package/{esm2020 → esm2022}/lib/components/questionnaire/input-focus.directive.mjs +44 -44
  52. package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +256 -0
  53. package/{esm2020 → esm2022}/lib/components/questionnaire/question-base.mjs +2 -2
  54. package/{esm2020 → esm2022}/lib/components/questionnaire/question-control.service.mjs +420 -419
  55. package/{esm2020 → esm2022}/lib/components/questionnaire/question.service.mjs +33 -33
  56. package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +262 -0
  57. package/{esm2020 → esm2022}/lib/components/read-more/read-more.component.mjs +67 -67
  58. package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +690 -0
  59. package/esm2022/lib/components/search-employer/search-employer.component.mjs +142 -0
  60. package/esm2022/lib/components/select/select.component.mjs +154 -0
  61. package/esm2022/lib/components/ssn/ssn.component.mjs +44 -0
  62. package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +151 -0
  63. package/esm2022/lib/components/test/test.component.mjs +19 -0
  64. package/esm2022/lib/components/user-login/user-login.component.mjs +398 -0
  65. package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +442 -0
  66. package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +307 -0
  67. package/{esm2020 → esm2022}/lib/directives/auto-focus/auto-focus.directive.mjs +31 -31
  68. package/{esm2020 → esm2022}/lib/directives/caps-lock.directive.mjs +38 -38
  69. package/{esm2020 → esm2022}/lib/directives/required-roles/required-roles.directive.mjs +30 -30
  70. package/{esm2020 → esm2022}/lib/enums/EmailStatusEnum.mjs +8 -8
  71. package/{esm2020 → esm2022}/lib/guards/auth.guard.mjs +138 -138
  72. package/esm2022/lib/guards/no-login/no-login.guard.mjs +21 -0
  73. package/{esm2020 → esm2022}/lib/interceptors/error-interceptor/http-error-interceptor.mjs +107 -107
  74. package/{esm2020 → esm2022}/lib/interceptors/header-interceptor/http-header.interceptor.mjs +99 -99
  75. package/{esm2020 → esm2022}/lib/models/AddressComponentModel.mjs +2 -2
  76. package/{esm2020 → esm2022}/lib/models/BankDetailsComponentModel.mjs +2 -2
  77. package/{esm2020 → esm2022}/lib/models/BankDetailsModel.mjs +3 -3
  78. package/{esm2020 → esm2022}/lib/models/CinRequalificationCriteriaModel.mjs +3 -3
  79. package/{esm2020 → esm2022}/lib/models/EmployerDetailSearchResult.mjs +5 -5
  80. package/{esm2020 → esm2022}/lib/models/ErrorModel.mjs +5 -5
  81. package/{esm2020 → esm2022}/lib/models/FileModel.mjs +1 -1
  82. package/{esm2020 → esm2022}/lib/models/LibConstants.mjs +119 -119
  83. package/{esm2020 → esm2022}/lib/models/NewsAndAnnouncementModel.mjs +2 -2
  84. package/{esm2020 → esm2022}/lib/models/NotificationModel.mjs +5 -5
  85. package/{esm2020 → esm2022}/lib/models/OtpAuthModel.mjs +2 -2
  86. package/{esm2020 → esm2022}/lib/models/PaymentComponentModel.mjs +2 -2
  87. package/esm2022/lib/models/RequalifyLiftPageModel.mjs +11 -0
  88. package/{esm2020 → esm2022}/lib/models/SsaVerificationModel.mjs +3 -3
  89. package/{esm2020 → esm2022}/lib/models/TrendModel.mjs +2 -2
  90. package/{esm2020 → esm2022}/lib/models/UserDetailsModel.mjs +2 -2
  91. package/{esm2020 → esm2022}/lib/models/UserModel.mjs +5 -5
  92. package/{esm2020 → esm2022}/lib/models/case/CaseAttachmentModel.mjs +3 -3
  93. package/{esm2020 → esm2022}/lib/models/claimant/ClaimantModel.mjs +2 -2
  94. package/{esm2020 → esm2022}/lib/models/claimant/JobResultsData.mjs +2 -2
  95. package/{esm2020 → esm2022}/lib/models/claimant/MatchingJobs.mjs +2 -2
  96. package/{esm2020 → esm2022}/lib/models/claimant/ResetPasswordModel.mjs +2 -2
  97. package/esm2022/lib/models/cmp/CaseCoreModel.mjs +3 -0
  98. package/{esm2020 → esm2022}/lib/models/cmp/ComplaintCategoryModel.mjs +3 -3
  99. package/{esm2020 → esm2022}/lib/models/cmp/ComplaintCategoryOutputModel.mjs +5 -5
  100. package/esm2022/lib/models/cmp/ContactUsModel.mjs +3 -0
  101. package/{esm2020 → esm2022}/lib/models/cmp/EmailTemplateModel.mjs +3 -3
  102. package/esm2022/lib/models/cmp/contactUsInqueryModel.mjs +7 -0
  103. package/{esm2020 → esm2022}/lib/models/cmp/messageRourceModel.mjs +3 -3
  104. package/esm2022/lib/models/dashboard-model.mjs +3 -0
  105. package/esm2022/lib/models/dependent.model.mjs +8 -0
  106. package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimAppEmpRequestModel.mjs +2 -2
  107. package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +7 -7
  108. package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +5 -5
  109. package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +2 -2
  110. package/esm2022/lib/models/questionnaire/ComboModel.mjs +337 -0
  111. package/{esm2020 → esm2022}/lib/models/questionnaire/ElementsModel.mjs +7 -7
  112. package/{esm2020 → esm2022}/lib/models/questionnaire/EmployerDetailSearchResult.mjs +2 -2
  113. package/{esm2020 → esm2022}/lib/models/questionnaire/EmployerWagesModel.mjs +3 -3
  114. package/{esm2020 → esm2022}/lib/models/questionnaire/FBConfigModel.mjs +5 -5
  115. package/{esm2020 → esm2022}/lib/models/questionnaire/KeyValueModel.mjs +2 -2
  116. package/{esm2020 → esm2022}/lib/models/questionnaire/LegalDiscaimarModel.mjs +2 -2
  117. package/{esm2020 → esm2022}/lib/models/questionnaire/LoaderModel.mjs +2 -2
  118. package/{esm2020 → esm2022}/lib/models/questionnaire/PollingStatusModel.mjs +3 -3
  119. package/{esm2020 → esm2022}/lib/models/questionnaire/QtrYearEmployerWageModel.mjs +2 -2
  120. package/{esm2020 → esm2022}/lib/models/questionnaire/QuestionnaireQueryModel.mjs +7 -7
  121. package/{esm2020 → esm2022}/lib/models/questionnaire/QuestionnaireReturnModel.mjs +10 -10
  122. package/{esm2020 → esm2022}/lib/models/questionnaire/QuestionnaireSaveModel.mjs +2 -2
  123. package/esm2022/lib/models/questionnaire/RequalifyLiftIssuesModel.mjs +3 -0
  124. package/{esm2020 → esm2022}/lib/models/questionnaire/ServiceActionResponseModel.mjs +3 -3
  125. package/esm2022/lib/models/questionnaire/StatusModel.mjs +6 -0
  126. package/{esm2020 → esm2022}/lib/models/questionnaire/SuccessPageElement.mjs +2 -2
  127. package/esm2022/lib/models/questionnaire/UI512AResponseModel.mjs +3 -0
  128. package/{esm2020 → esm2022}/lib/models/questionnaire/ValidationModel.mjs +2 -2
  129. package/esm2022/lib/ngx-reusa-app-lib.component.mjs +23 -0
  130. package/esm2022/lib/ngx-reusa-app-lib.module.mjs +402 -0
  131. package/{esm2020 → esm2022}/lib/ngx-reusa-app-lib.service.mjs +14 -14
  132. package/{esm2020 → esm2022}/lib/pages/BasePage.mjs +76 -76
  133. package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +81 -0
  134. package/esm2022/lib/pages/common/change-password/change-password.page.mjs +463 -0
  135. package/esm2022/lib/pages/common/landing/landing.component.mjs +208 -0
  136. package/esm2022/lib/pages/common/landing2/landing2.component.mjs +244 -0
  137. package/esm2022/lib/pages/common/login/login.component.mjs +526 -0
  138. package/esm2022/lib/pages/common/not-found/not-found.page.mjs +24 -0
  139. package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +306 -0
  140. package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +61 -0
  141. package/esm2022/lib/pages/common/unauthorized/unauthorized.page.mjs +24 -0
  142. package/esm2022/lib/pages/popovers/language/language.page.mjs +61 -0
  143. package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +204 -0
  144. package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +129 -0
  145. package/esm2022/lib/pages/popovers/user-search/user-search.component.mjs +251 -0
  146. package/{esm2020 → esm2022}/lib/pipes/filter.pipe.mjs +30 -30
  147. package/{esm2020 → esm2022}/lib/pipes/mask/mask.email.pipe.mjs +23 -23
  148. package/{esm2020 → esm2022}/lib/pipes/proper-case/proper-case.pipe.mjs +27 -27
  149. package/{esm2020 → esm2022}/lib/pipes/translate/dynamic-translate.pipe.mjs +44 -44
  150. package/{esm2020 → esm2022}/lib/pipes/trust-html/trust-html.pipe.mjs +20 -20
  151. package/{esm2020 → esm2022}/lib/services/base-service.mjs +49 -49
  152. package/{esm2020 → esm2022}/lib/services/captcha/captcha.service.mjs +46 -46
  153. package/{esm2020 → esm2022}/lib/services/case-service/case.service.mjs +47 -47
  154. package/{esm2020 → esm2022}/lib/services/chatbot/chatbot.service.mjs +257 -257
  155. package/esm2022/lib/services/chatbot/script.const.mjs +42 -0
  156. package/{esm2020 → esm2022}/lib/services/claimant/claimant.service.mjs +31 -31
  157. package/esm2022/lib/services/claimant-context/claimant-context.service.mjs +48 -0
  158. package/{esm2020 → esm2022}/lib/services/claimant-service/claimant.service.mjs +47 -47
  159. package/{esm2020 → esm2022}/lib/services/claims/claims.service.mjs +99 -99
  160. package/{esm2020 → esm2022}/lib/services/cmp-service/cmp.service.mjs +84 -84
  161. package/{esm2020 → esm2022}/lib/services/dms-service/dms.service.mjs +60 -60
  162. package/{esm2020 → esm2022}/lib/services/fpjs/fingerprint.service.mjs +70 -70
  163. package/{esm2020 → esm2022}/lib/services/google-analytics/google-analytics.service.mjs +29 -29
  164. package/{esm2020 → esm2022}/lib/services/help/help.service.mjs +63 -63
  165. package/{esm2020 → esm2022}/lib/services/idle/idle.service.mjs +159 -159
  166. package/{esm2020 → esm2022}/lib/services/logger/logger.service.mjs +67 -67
  167. package/esm2022/lib/services/login/login.service.mjs +330 -0
  168. package/{esm2020 → esm2022}/lib/services/maintenance/maintenance.service.mjs +21 -21
  169. package/{esm2020 → esm2022}/lib/services/notification/notification.service.mjs +113 -113
  170. package/{esm2020 → esm2022}/lib/services/questionnaire/questionnaire.service.mjs +69 -69
  171. package/{esm2020 → esm2022}/lib/services/questionnaire/validation.service.mjs +59 -59
  172. package/{esm2020 → esm2022}/lib/services/security-service/security.service.mjs +35 -35
  173. package/{esm2020 → esm2022}/lib/services/tour/tour.service.mjs +60 -60
  174. package/{esm2020 → esm2022}/lib/services/util/util.service.mjs +424 -424
  175. package/esm2022/lib/validations/AppRegex.mjs +45 -0
  176. package/{esm2020 → esm2022}/lib/validations/AppValidators.mjs +165 -165
  177. package/{esm2020 → esm2022}/public-api.mjs +131 -131
  178. package/{esm2020 → esm2022}/reusa-ngx-reusa-app-lib.mjs +4 -4
  179. package/{fesm2020 → fesm2022}/reusa-ngx-reusa-app-lib.mjs +27966 -27877
  180. package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -0
  181. package/index.d.ts +5 -5
  182. package/lib/annimations/app-animations.d.ts +3 -3
  183. package/lib/components/add-employer/add-employer.component.d.ts +276 -276
  184. package/lib/components/add-participant/add-participant.component.d.ts +45 -45
  185. package/lib/components/add-payment/add-payment.component.d.ts +33 -33
  186. package/lib/components/address/address.component.d.ts +68 -68
  187. package/lib/components/address/address.component.d.ts.map +1 -1
  188. package/lib/components/bank-details/bank-details.component.d.ts +39 -39
  189. package/lib/components/captcha/captcha.component.d.ts +44 -44
  190. package/lib/components/card/card.component.d.ts +11 -11
  191. package/lib/components/contact-us/contact-us.component.d.ts +105 -107
  192. package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
  193. package/lib/components/content/content.component.d.ts +13 -13
  194. package/lib/components/correspondence-download/correspondence-download.component.d.ts +21 -21
  195. package/lib/components/dashboard-card/dashboard-card.component.d.ts +25 -25
  196. package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
  197. package/lib/components/dependent-grid/dependent-grid.component.d.ts +35 -35
  198. package/lib/components/disclosure/disclosure.component.d.ts +12 -12
  199. package/lib/components/dropdown/dropdown.component.d.ts +581 -207
  200. package/lib/components/dropdown/dropdown.component.d.ts.map +1 -1
  201. package/lib/components/dropdown/dropdown.interface.d.ts +155 -0
  202. package/lib/components/dropdown/dropdown.interface.d.ts.map +1 -0
  203. package/lib/components/email-update/email-update.component.d.ts +31 -31
  204. package/lib/components/employer-grid/employer-grid.component.d.ts +95 -94
  205. package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
  206. package/lib/components/error/error.component.d.ts +17 -17
  207. package/lib/components/fav-menu/fav-menu.component.d.ts +21 -21
  208. package/lib/components/file-download/file-download.component.d.ts +22 -22
  209. package/lib/components/file-uploader/file-uploader.component.d.ts +47 -47
  210. package/lib/components/footer/footer.component.d.ts +36 -36
  211. package/lib/components/header/header.component.d.ts +59 -58
  212. package/lib/components/header/header.component.d.ts.map +1 -1
  213. package/lib/components/help/help.component.d.ts +10 -10
  214. package/lib/components/idle-detector/idle-detector.component.d.ts +15 -15
  215. package/lib/components/info/info.component.d.ts +22 -22
  216. package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +21 -21
  217. package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +33 -33
  218. package/lib/components/maintenance-detector/maintenance-detector.component.d.ts +15 -15
  219. package/lib/components/mask/mask.component.d.ts +11 -11
  220. package/lib/components/menu/menu.component.d.ts +43 -43
  221. package/lib/components/mfa/mfa.component.d.ts +59 -59
  222. package/lib/components/mfa-popup/mfa-popup.component.d.ts +16 -16
  223. package/lib/components/money-expect/money-expect.component.d.ts +18 -18
  224. package/lib/components/msg/msg.component.d.ts +10 -10
  225. package/lib/components/news/news.component.d.ts +14 -14
  226. package/lib/components/overlay-info/overlay-info.component.d.ts +34 -34
  227. package/lib/components/page/page.component.d.ts +23 -23
  228. package/lib/components/profile/profile.component.d.ts +28 -28
  229. package/lib/components/profile-redirect/profile-redirect.component.d.ts +13 -13
  230. package/lib/components/questionnaire/AppValidators.d.ts +14 -14
  231. package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
  232. package/lib/components/questionnaire/FbConstants.d.ts +7 -7
  233. package/lib/components/questionnaire/SelectItem.d.ts +4 -4
  234. package/lib/components/questionnaire/account-success/account-success.page.d.ts +53 -53
  235. package/lib/components/questionnaire/common-success/common-success.page.d.ts +75 -75
  236. package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
  237. package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +46 -46
  238. package/lib/components/questionnaire/dynamic-form-question.component.d.ts +82 -82
  239. package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
  240. package/lib/components/questionnaire/dynamic-form.component.d.ts +130 -130
  241. package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
  242. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +66 -64
  243. package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
  244. package/lib/components/questionnaire/input-focus.directive.d.ts +11 -11
  245. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +38 -38
  246. package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
  247. package/lib/components/questionnaire/question-base.d.ts +16 -16
  248. package/lib/components/questionnaire/question-control.service.d.ts +19 -19
  249. package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
  250. package/lib/components/questionnaire/question.service.d.ts +18 -18
  251. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +75 -74
  252. package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
  253. package/lib/components/read-more/read-more.component.d.ts +14 -14
  254. package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +67 -67
  255. package/lib/components/search-employer/search-employer.component.d.ts +37 -36
  256. package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
  257. package/lib/components/select/select.component.d.ts +55 -55
  258. package/lib/components/ssn/ssn.component.d.ts +11 -11
  259. package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +22 -22
  260. package/lib/components/test/test.component.d.ts +8 -8
  261. package/lib/components/user-login/user-login.component.d.ts +48 -48
  262. package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +59 -59
  263. package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +45 -45
  264. package/lib/directives/auto-focus/auto-focus.directive.d.ts +12 -12
  265. package/lib/directives/caps-lock.directive.d.ts +11 -11
  266. package/lib/directives/required-roles/required-roles.directive.d.ts +14 -14
  267. package/lib/enums/EmailStatusEnum.d.ts +7 -7
  268. package/lib/guards/auth.guard.d.ts +28 -28
  269. package/lib/guards/auth.guard.d.ts.map +1 -1
  270. package/lib/guards/no-login/no-login.guard.d.ts +11 -11
  271. package/lib/guards/no-login/no-login.guard.d.ts.map +1 -1
  272. package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts +22 -22
  273. package/lib/interceptors/header-interceptor/http-header.interceptor.d.ts +21 -21
  274. package/lib/interceptors/header-interceptor/http-header.interceptor.d.ts.map +1 -1
  275. package/lib/models/AddressComponentModel.d.ts +12 -12
  276. package/lib/models/BankDetailsComponentModel.d.ts +11 -11
  277. package/lib/models/BankDetailsModel.d.ts +4 -4
  278. package/lib/models/CinRequalificationCriteriaModel.d.ts +10 -10
  279. package/lib/models/EmployerDetailSearchResult.d.ts +47 -47
  280. package/lib/models/ErrorModel.d.ts +6 -6
  281. package/lib/models/FileModel.d.ts +4 -4
  282. package/lib/models/LibConstants.d.ts +112 -112
  283. package/lib/models/NewsAndAnnouncementModel.d.ts +5 -5
  284. package/lib/models/NotificationModel.d.ts +10 -10
  285. package/lib/models/OtpAuthModel.d.ts +6 -6
  286. package/lib/models/PaymentComponentModel.d.ts +7 -7
  287. package/lib/models/RequalifyLiftPageModel.d.ts +11 -11
  288. package/lib/models/SsaVerificationModel.d.ts +8 -8
  289. package/lib/models/TrendModel.d.ts +13 -13
  290. package/lib/models/UserDetailsModel.d.ts +9 -9
  291. package/lib/models/UserModel.d.ts +46 -46
  292. package/lib/models/case/CaseAttachmentModel.d.ts +5 -5
  293. package/lib/models/claimant/ClaimantModel.d.ts +22 -22
  294. package/lib/models/claimant/JobResultsData.d.ts +7 -7
  295. package/lib/models/claimant/MatchingJobs.d.ts +12 -12
  296. package/lib/models/claimant/ResetPasswordModel.d.ts +8 -8
  297. package/lib/models/cmp/CaseCoreModel.d.ts +20 -20
  298. package/lib/models/cmp/ComplaintCategoryModel.d.ts +8 -8
  299. package/lib/models/cmp/ComplaintCategoryOutputModel.d.ts +5 -5
  300. package/lib/models/cmp/ContactUsModel.d.ts +22 -22
  301. package/lib/models/cmp/EmailTemplateModel.d.ts +6 -6
  302. package/lib/models/cmp/contactUsInqueryModel.d.ts +46 -46
  303. package/lib/models/cmp/messageRourceModel.d.ts +5 -5
  304. package/lib/models/dashboard-model.d.ts +43 -43
  305. package/lib/models/dependent.model.d.ts +11 -18
  306. package/lib/models/dependent.model.d.ts.map +1 -1
  307. package/lib/models/questionnaire/ClaimAppEmpRequestModel.d.ts +8 -8
  308. package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +16 -16
  309. package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +151 -151
  310. package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +16 -16
  311. package/lib/models/questionnaire/ComboModel.d.ts +85 -85
  312. package/lib/models/questionnaire/ElementsModel.d.ts +68 -68
  313. package/lib/models/questionnaire/EmployerDetailSearchResult.d.ts +17 -17
  314. package/lib/models/questionnaire/EmployerWagesModel.d.ts +4 -4
  315. package/lib/models/questionnaire/FBConfigModel.d.ts +11 -11
  316. package/lib/models/questionnaire/KeyValueModel.d.ts +10 -10
  317. package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +10 -10
  318. package/lib/models/questionnaire/LoaderModel.d.ts +4 -4
  319. package/lib/models/questionnaire/PollingStatusModel.d.ts +6 -6
  320. package/lib/models/questionnaire/QtrYearEmployerWageModel.d.ts +8 -8
  321. package/lib/models/questionnaire/QuestionnaireQueryModel.d.ts +23 -23
  322. package/lib/models/questionnaire/QuestionnaireReturnModel.d.ts +20 -20
  323. package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts +24 -24
  324. package/lib/models/questionnaire/RequalifyLiftIssuesModel.d.ts +13 -13
  325. package/lib/models/questionnaire/ServiceActionResponseModel.d.ts +6 -6
  326. package/lib/models/questionnaire/StatusModel.d.ts +15 -15
  327. package/lib/models/questionnaire/SuccessPageElement.d.ts +8 -8
  328. package/lib/models/questionnaire/UI512AResponseModel.d.ts +12 -12
  329. package/lib/models/questionnaire/ValidationModel.d.ts +17 -17
  330. package/lib/ngx-reusa-app-lib.component.d.ts +8 -8
  331. package/lib/ngx-reusa-app-lib.module.d.ts +148 -145
  332. package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
  333. package/lib/ngx-reusa-app-lib.service.d.ts +6 -6
  334. package/lib/pages/BasePage.d.ts +26 -26
  335. package/lib/pages/common/accessibility-policy/accessibility-policy.page.d.ts +11 -11
  336. package/lib/pages/common/change-password/change-password.page.d.ts +40 -40
  337. package/lib/pages/common/landing/landing.component.d.ts +24 -24
  338. package/lib/pages/common/landing2/landing2.component.d.ts +30 -30
  339. package/lib/pages/common/login/login.component.d.ts +64 -64
  340. package/lib/pages/common/not-found/not-found.page.d.ts +8 -8
  341. package/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.d.ts +11 -11
  342. package/lib/pages/common/security-policy/security-policy.page.d.ts +11 -11
  343. package/lib/pages/common/unauthorized/unauthorized.page.d.ts +8 -8
  344. package/lib/pages/popovers/language/language.page.d.ts +16 -16
  345. package/lib/pages/popovers/my-notifications/my-notifications.page.d.ts +21 -21
  346. package/lib/pages/popovers/my-profile/my-profile.page.d.ts +20 -20
  347. package/lib/pages/popovers/user-search/user-search.component.d.ts +31 -31
  348. package/lib/pipes/filter.pipe.d.ts +7 -7
  349. package/lib/pipes/mask/mask.email.pipe.d.ts +10 -10
  350. package/lib/pipes/proper-case/proper-case.pipe.d.ts +8 -8
  351. package/lib/pipes/translate/dynamic-translate.pipe.d.ts +10 -10
  352. package/lib/pipes/trust-html/trust-html.pipe.d.ts +10 -10
  353. package/lib/services/base-service.d.ts +92 -92
  354. package/lib/services/captcha/captcha.service.d.ts +15 -15
  355. package/lib/services/case-service/case.service.d.ts +19 -19
  356. package/lib/services/chatbot/chatbot.service.d.ts +60 -60
  357. package/lib/services/chatbot/script.const.d.ts +15 -15
  358. package/lib/services/claimant/claimant.service.d.ts +17 -17
  359. package/lib/services/claimant-context/claimant-context.service.d.ts +18 -18
  360. package/lib/services/claimant-context/claimant-context.service.d.ts.map +1 -1
  361. package/lib/services/claimant-service/claimant.service.d.ts +19 -19
  362. package/lib/services/claims/claims.service.d.ts +39 -39
  363. package/lib/services/cmp-service/cmp.service.d.ts +33 -33
  364. package/lib/services/dms-service/dms.service.d.ts +23 -23
  365. package/lib/services/fpjs/fingerprint.service.d.ts +18 -18
  366. package/lib/services/google-analytics/google-analytics.service.d.ts +8 -8
  367. package/lib/services/help/help.service.d.ts +25 -25
  368. package/lib/services/help/help.service.d.ts.map +1 -1
  369. package/lib/services/idle/idle.service.d.ts +43 -43
  370. package/lib/services/logger/logger.service.d.ts +31 -31
  371. package/lib/services/logger/logger.service.d.ts.map +1 -1
  372. package/lib/services/login/login.service.d.ts +75 -75
  373. package/lib/services/login/login.service.d.ts.map +1 -1
  374. package/lib/services/maintenance/maintenance.service.d.ts +15 -15
  375. package/lib/services/notification/notification.service.d.ts +38 -38
  376. package/lib/services/questionnaire/questionnaire.service.d.ts +35 -35
  377. package/lib/services/questionnaire/validation.service.d.ts +81 -81
  378. package/lib/services/security-service/security.service.d.ts +14 -14
  379. package/lib/services/tour/tour.service.d.ts +24 -24
  380. package/lib/services/util/util.service.d.ts +190 -190
  381. package/lib/validations/AppRegex.d.ts +43 -43
  382. package/lib/validations/AppValidators.d.ts +53 -53
  383. package/package.json +6 -11
  384. package/public-api.d.ts +121 -121
  385. package/esm2020/lib/components/add-employer/add-employer.component.mjs +0 -3099
  386. package/esm2020/lib/components/add-participant/add-participant.component.mjs +0 -396
  387. package/esm2020/lib/components/add-payment/add-payment.component.mjs +0 -186
  388. package/esm2020/lib/components/address/address.component.mjs +0 -480
  389. package/esm2020/lib/components/bank-details/bank-details.component.mjs +0 -275
  390. package/esm2020/lib/components/captcha/captcha.component.mjs +0 -180
  391. package/esm2020/lib/components/card/card.component.mjs +0 -54
  392. package/esm2020/lib/components/contact-us/contact-us.component.mjs +0 -1004
  393. package/esm2020/lib/components/content/content.component.mjs +0 -60
  394. package/esm2020/lib/components/correspondence-download/correspondence-download.component.mjs +0 -82
  395. package/esm2020/lib/components/dashboard-card/dashboard-card.component.mjs +0 -219
  396. package/esm2020/lib/components/dependent-grid/dependent-grid.component.mjs +0 -297
  397. package/esm2020/lib/components/disclosure/disclosure.component.mjs +0 -59
  398. package/esm2020/lib/components/dropdown/dropdown.component.mjs +0 -1552
  399. package/esm2020/lib/components/email-update/email-update.component.mjs +0 -287
  400. package/esm2020/lib/components/employer-grid/employer-grid.component.mjs +0 -800
  401. package/esm2020/lib/components/error/error.component.mjs +0 -85
  402. package/esm2020/lib/components/fav-menu/fav-menu.component.mjs +0 -163
  403. package/esm2020/lib/components/file-uploader/file-uploader.component.mjs +0 -317
  404. package/esm2020/lib/components/footer/footer.component.mjs +0 -337
  405. package/esm2020/lib/components/header/header.component.mjs +0 -566
  406. package/esm2020/lib/components/help/help.component.mjs +0 -48
  407. package/esm2020/lib/components/idle-detector/idle-detector.component.mjs +0 -64
  408. package/esm2020/lib/components/job-search-result-page/job-search-result-page.component.mjs +0 -209
  409. package/esm2020/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +0 -192
  410. package/esm2020/lib/components/maintenance-detector/maintenance-detector.component.mjs +0 -42
  411. package/esm2020/lib/components/mask/mask.component.mjs +0 -48
  412. package/esm2020/lib/components/menu/menu.component.mjs +0 -430
  413. package/esm2020/lib/components/mfa/mfa.component.mjs +0 -451
  414. package/esm2020/lib/components/mfa-popup/mfa-popup.component.mjs +0 -49
  415. package/esm2020/lib/components/money-expect/money-expect.component.mjs +0 -89
  416. package/esm2020/lib/components/msg/msg.component.mjs +0 -48
  417. package/esm2020/lib/components/news/news.component.mjs +0 -89
  418. package/esm2020/lib/components/overlay-info/overlay-info.component.mjs +0 -235
  419. package/esm2020/lib/components/page/page.component.mjs +0 -138
  420. package/esm2020/lib/components/profile/profile.component.mjs +0 -182
  421. package/esm2020/lib/components/profile-redirect/profile-redirect.component.mjs +0 -62
  422. package/esm2020/lib/components/questionnaire/AppValidators.mjs +0 -523
  423. package/esm2020/lib/components/questionnaire/account-success/account-success.page.mjs +0 -259
  424. package/esm2020/lib/components/questionnaire/common-success/common-success.page.mjs +0 -483
  425. package/esm2020/lib/components/questionnaire/dynamic-form-panel.component.mjs +0 -1137
  426. package/esm2020/lib/components/questionnaire/dynamic-form-question.component.mjs +0 -1948
  427. package/esm2020/lib/components/questionnaire/dynamic-form.component.mjs +0 -1257
  428. package/esm2020/lib/components/questionnaire/form-builder/form-builder.page.mjs +0 -240
  429. package/esm2020/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +0 -259
  430. package/esm2020/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +0 -260
  431. package/esm2020/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +0 -703
  432. package/esm2020/lib/components/search-employer/search-employer.component.mjs +0 -142
  433. package/esm2020/lib/components/select/select.component.mjs +0 -153
  434. package/esm2020/lib/components/ssn/ssn.component.mjs +0 -43
  435. package/esm2020/lib/components/ssn-reverify/ssn-reverify.component.mjs +0 -150
  436. package/esm2020/lib/components/test/test.component.mjs +0 -18
  437. package/esm2020/lib/components/user-login/user-login.component.mjs +0 -401
  438. package/esm2020/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +0 -445
  439. package/esm2020/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +0 -308
  440. package/esm2020/lib/guards/no-login/no-login.guard.mjs +0 -21
  441. package/esm2020/lib/models/RequalifyLiftPageModel.mjs +0 -11
  442. package/esm2020/lib/models/cmp/CaseCoreModel.mjs +0 -3
  443. package/esm2020/lib/models/cmp/ContactUsModel.mjs +0 -3
  444. package/esm2020/lib/models/cmp/contactUsInqueryModel.mjs +0 -7
  445. package/esm2020/lib/models/dashboard-model.mjs +0 -3
  446. package/esm2020/lib/models/dependent.model.mjs +0 -8
  447. package/esm2020/lib/models/questionnaire/ComboModel.mjs +0 -337
  448. package/esm2020/lib/models/questionnaire/RequalifyLiftIssuesModel.mjs +0 -3
  449. package/esm2020/lib/models/questionnaire/StatusModel.mjs +0 -6
  450. package/esm2020/lib/models/questionnaire/UI512AResponseModel.mjs +0 -3
  451. package/esm2020/lib/ngx-reusa-app-lib.component.mjs +0 -22
  452. package/esm2020/lib/ngx-reusa-app-lib.module.mjs +0 -390
  453. package/esm2020/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +0 -80
  454. package/esm2020/lib/pages/common/change-password/change-password.page.mjs +0 -477
  455. package/esm2020/lib/pages/common/landing/landing.component.mjs +0 -207
  456. package/esm2020/lib/pages/common/landing2/landing2.component.mjs +0 -244
  457. package/esm2020/lib/pages/common/login/login.component.mjs +0 -542
  458. package/esm2020/lib/pages/common/not-found/not-found.page.mjs +0 -23
  459. package/esm2020/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +0 -305
  460. package/esm2020/lib/pages/common/security-policy/security-policy.page.mjs +0 -60
  461. package/esm2020/lib/pages/common/unauthorized/unauthorized.page.mjs +0 -23
  462. package/esm2020/lib/pages/popovers/language/language.page.mjs +0 -60
  463. package/esm2020/lib/pages/popovers/my-notifications/my-notifications.page.mjs +0 -205
  464. package/esm2020/lib/pages/popovers/my-profile/my-profile.page.mjs +0 -129
  465. package/esm2020/lib/pages/popovers/user-search/user-search.component.mjs +0 -253
  466. package/esm2020/lib/services/chatbot/script.const.mjs +0 -42
  467. package/esm2020/lib/services/claimant-context/claimant-context.service.mjs +0 -47
  468. package/esm2020/lib/services/login/login.service.mjs +0 -330
  469. package/esm2020/lib/validations/AppRegex.mjs +0 -45
  470. package/fesm2015/reusa-ngx-reusa-app-lib.mjs +0 -30728
  471. package/fesm2015/reusa-ngx-reusa-app-lib.mjs.map +0 -1
  472. package/fesm2020/reusa-ngx-reusa-app-lib.mjs.map +0 -1
@@ -0,0 +1,45 @@
1
+ /***
2
+ *
3
+ * @description Class Contains all regular expressions used in the project.
4
+ * @author Prerak Tiwari
5
+ */
6
+ // @dynamic
7
+ export class AppRegex {
8
+ /**
9
+ * @description Regular Expression to validate username
10
+ */
11
+ static { this.USERNAME_REGEX = /^[a-zA-Z]{1}[\w\@\.]*$/; }
12
+ /**
13
+ * @description Regular Expression to validate First Name, Last Name
14
+ */
15
+ static { this.NAME_REGEX = /^[A-Za-z%][A-Za-z\s'-]*$/; }
16
+ /**
17
+ * @description Regular Expression to validate if at least 1 of the following character is present or not : '_' '@' '*' '$' '!' '#' '.'
18
+ */
19
+ static { this.CLAIMANT_SYMBOL_REGEX = /.*[_@*$!#.]+.*/; }
20
+ /**
21
+ * @description Regular Expression to validate if at least 2 of the following character is present or not : '_' '@' '*' '$' '!' '#' '.'
22
+ */
23
+ static { this.AGENCY_SYMBOL_REGEX = /.*[_@*$!#.]+.*[_@*$!#.]+.*/; }
24
+ /**
25
+ * @description Regular Expression to validate if small case letter is present or not
26
+ */
27
+ static { this.LOWER_CASE_REGEX = /.*[a-z]+.*/; }
28
+ /**
29
+ * @description Regular Expression to validate if upper case letter is present or not
30
+ */
31
+ static { this.UPPER_CASE_REGEX = /.*[A-Z]+.*/; }
32
+ /**
33
+ * @description Regular Expression to validate if numbber is present or not
34
+ */
35
+ static { this.NUMBER_REGEX = /.*[0-9]+.*/; }
36
+ /**
37
+ * @description Regular Expression to validate email format
38
+ */
39
+ static { this.EMAIL_REGEX = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; }
40
+ /**
41
+ * @description Regular Expression to station no. format
42
+ */
43
+ static { this.STATION_NO_REGEX = /^[A-Za-z0-9]{4}$/; }
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwUmVnZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL3ZhbGlkYXRpb25zL0FwcFJlZ2V4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxXQUFXO0FBQ1gsTUFBTSxPQUFPLFFBQVE7SUFDakI7O01BRUU7YUFDSyxtQkFBYyxHQUFZLHdCQUF3QixDQUFDO0lBRTFEOztNQUVFO2FBQ0ssZUFBVSxHQUFhLDBCQUEwQixDQUFDO0lBRXpEOztNQUVFO2FBQ0ssMEJBQXFCLEdBQWEsZ0JBQWdCLENBQUM7SUFFMUQ7O01BRUU7YUFDSyx3QkFBbUIsR0FBYSw0QkFBNEIsQ0FBQztJQUVwRTs7TUFFRTthQUNLLHFCQUFnQixHQUFhLFlBQVksQ0FBQztJQUVqRDs7TUFFRTthQUNLLHFCQUFnQixHQUFhLFlBQVksQ0FBQztJQUVqRDs7TUFFRTthQUNLLGlCQUFZLEdBQWEsWUFBWSxDQUFDO0lBRTdDOztNQUVFO2FBQ0ssZ0JBQVcsR0FBYSx3SkFBd0osQ0FBQztJQUV4TDs7T0FFRzthQUNJLHFCQUFnQixHQUFHLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqKlxuICogXG4gKiBAZGVzY3JpcHRpb24gQ2xhc3MgQ29udGFpbnMgYWxsIHJlZ3VsYXIgZXhwcmVzc2lvbnMgdXNlZCBpbiB0aGUgcHJvamVjdC5cbiAqIEBhdXRob3IgUHJlcmFrIFRpd2FyaVxuICovXG4vLyBAZHluYW1pY1xuZXhwb3J0IGNsYXNzIEFwcFJlZ2V4e1xuICAgIC8qKiBcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVndWxhciBFeHByZXNzaW9uIHRvIHZhbGlkYXRlIHVzZXJuYW1lXG4gICAgKi9cbiAgICBzdGF0aWMgVVNFUk5BTUVfUkVHRVggOiBSZWdFeHAgPSAvXlthLXpBLVpdezF9W1xcd1xcQFxcLl0qJC87XG5cbiAgICAvKiogXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZ3VsYXIgRXhwcmVzc2lvbiB0byB2YWxpZGF0ZSBGaXJzdCBOYW1lLCBMYXN0IE5hbWVcbiAgICAqL1xuICAgIHN0YXRpYyBOQU1FX1JFR0VYIDogUmVnRXhwICA9IC9eW0EtWmEteiVdW0EtWmEtelxccyctXSokLztcblxuICAgIC8qKiBcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVndWxhciBFeHByZXNzaW9uIHRvIHZhbGlkYXRlIGlmIGF0IGxlYXN0IDEgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXIgaXMgcHJlc2VudCBvciBub3QgOiAnXycgJ0AnICcqJyAnJCcgJyEnICcjJyAnLidcbiAgICAqL1xuICAgIHN0YXRpYyBDTEFJTUFOVF9TWU1CT0xfUkVHRVggOiBSZWdFeHAgID0gLy4qW19AKiQhIy5dKy4qLztcblxuICAgIC8qKiBcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVndWxhciBFeHByZXNzaW9uIHRvIHZhbGlkYXRlIGlmIGF0IGxlYXN0IDIgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXIgaXMgcHJlc2VudCBvciBub3QgOiAnXycgJ0AnICcqJyAnJCcgJyEnICcjJyAnLidcbiAgICAqL1xuICAgIHN0YXRpYyBBR0VOQ1lfU1lNQk9MX1JFR0VYIDogUmVnRXhwICA9IC8uKltfQCokISMuXSsuKltfQCokISMuXSsuKi87XG5cbiAgICAvKiogXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZ3VsYXIgRXhwcmVzc2lvbiB0byB2YWxpZGF0ZSBpZiBzbWFsbCBjYXNlIGxldHRlciBpcyBwcmVzZW50IG9yIG5vdFxuICAgICovXG4gICAgc3RhdGljIExPV0VSX0NBU0VfUkVHRVggOiBSZWdFeHAgID0gLy4qW2Etel0rLiovO1xuXG4gICAgLyoqIFxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWd1bGFyIEV4cHJlc3Npb24gdG8gdmFsaWRhdGUgaWYgdXBwZXIgY2FzZSBsZXR0ZXIgaXMgcHJlc2VudCBvciBub3RcbiAgICAqL1xuICAgIHN0YXRpYyBVUFBFUl9DQVNFX1JFR0VYIDogUmVnRXhwICA9IC8uKltBLVpdKy4qLztcblxuICAgIC8qKiBcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVndWxhciBFeHByZXNzaW9uIHRvIHZhbGlkYXRlIGlmIG51bWJiZXIgaXMgcHJlc2VudCBvciBub3RcbiAgICAqL1xuICAgIHN0YXRpYyBOVU1CRVJfUkVHRVggOiBSZWdFeHAgID0gLy4qWzAtOV0rLiovO1xuXG4gICAgLyoqIFxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWd1bGFyIEV4cHJlc3Npb24gdG8gdmFsaWRhdGUgZW1haWwgZm9ybWF0XG4gICAgKi9cbiAgICBzdGF0aWMgRU1BSUxfUkVHRVggOiBSZWdFeHAgID0gL14oKFtePD4oKVxcW1xcXVxcXFwuLDs6XFxzQFwiXSsoXFwuW148PigpXFxbXFxdXFxcXC4sOzpcXHNAXCJdKykqKXwoXCIuK1wiKSlAKChcXFtbMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XSl8KChbYS16QS1aXFwtMC05XStcXC4pK1thLXpBLVpdezIsfSkpJC87XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVndWxhciBFeHByZXNzaW9uIHRvIHN0YXRpb24gbm8uIGZvcm1hdFxuICAgICAqL1xuICAgIHN0YXRpYyBTVEFUSU9OX05PX1JFR0VYID0gL15bQS1aYS16MC05XXs0fSQvO1xufSJdfQ==
@@ -1,166 +1,166 @@
1
- import { Validators } from '@angular/forms';
2
- /***
3
- *
4
- * @description Class Contains all common form validation used in the project.
5
- * @author Prerak Tiwari
6
- */
7
- export class AppValidators {
8
- static confirmPasswordValidator(c) {
9
- if (c.get('password').value != c.get('confirmPassword').value) {
10
- return { invalid: true };
11
- }
12
- }
13
- static passwordAndConfirmPasswordMustMatch(formGroup) {
14
- const { value: password } = formGroup.get('password');
15
- const { value: confirmPassword } = formGroup.get('confirmPassword');
16
- return password === confirmPassword ? null : { passwordNotMatch: true };
17
- }
18
- // @dynamic
19
- static confirmValidator(controlName, matchingControlName) {
20
- const func = (formGroup) => {
21
- const control = formGroup.controls[controlName];
22
- const matchingControl = formGroup.controls[matchingControlName];
23
- if (matchingControl.errors && !matchingControl.errors.confirmedValidator) {
24
- return;
25
- }
26
- if (control.value !== matchingControl.value) {
27
- matchingControl.setErrors({ notMatch: true });
28
- }
29
- else {
30
- matchingControl.setErrors(null);
31
- }
32
- };
33
- return func;
34
- }
35
- // @dynamic
36
- static selectAtleastOne(validator) {
37
- const func = (group) => {
38
- const isAtleastOnePassTheValidation = group && group.controls && Object.keys(group.controls).some(k => !validator(group.controls[k]));
39
- return isAtleastOnePassTheValidation ? null : { selectAtleastOne: true };
40
- };
41
- return func;
42
- }
43
- // @dynamic
44
- static requiredIfValidator(predicate) {
45
- const func = (formControl => {
46
- if (!formControl.parent) {
47
- return null;
48
- }
49
- if (predicate() === '1' || predicate() === 'true' || predicate()) {
50
- return Validators.required(formControl);
51
- }
52
- return null;
53
- });
54
- return func;
55
- }
56
- /**
57
- *
58
- * @param regex Regular Expression against which value needs to be validated
59
- * @param error Error which should be returned in case validation fails
60
- *
61
- * @description Form validator to validate control value against a regular expression
62
- *
63
- * @author Prerak Tiwari
64
- */
65
- static match(regex, error) {
66
- const func = (control) => {
67
- if (!control.value) {
68
- // if control is empty return no error
69
- return null;
70
- }
71
- // test the value of the control against the regexp supplied
72
- const valid = regex.test(control.value);
73
- // if true, return no error (no error), else return error passed in the second parameter
74
- return valid ? null : error;
75
- };
76
- return func;
77
- }
78
- /***
79
- * This method checks if the entered routing number is valid or not as per following logic
80
- *
81
- * (3 * (d1 + d4 + d7) + 7 * (d2 + d5 + d8) + 1 * (d3 + d6 + d9) ) mod 10 = 0
82
- *
83
- * This formula is taken from https://en.wikipedia.org/wiki/Routing_transit_number#MICR_Routing_number_format
84
- */
85
- static isValidRoutingNumber(control) {
86
- let routingNumber = control.value;
87
- let sum = 0, mod = 0;
88
- let routingNumberArr = (routingNumber + "").split("");
89
- let sum1 = 3 * (parseInt(routingNumberArr[0]) + parseInt(routingNumberArr[3]) + parseInt(routingNumberArr[6]));
90
- let sum2 = 7 * (parseInt(routingNumberArr[1]) + parseInt(routingNumberArr[4]) + parseInt(routingNumberArr[7]));
91
- let sum3 = 1 * (parseInt(routingNumberArr[2]) + parseInt(routingNumberArr[5]) + parseInt(routingNumberArr[8]));
92
- sum = sum1 + sum2 + sum3;
93
- mod = sum % 10;
94
- if (!(mod == 0)) {
95
- return { isRoutingNumberNotValid: true };
96
- }
97
- return;
98
- }
99
- static isValidZipCode(control) {
100
- if (control.value != null && !AppValidators.isNumber(control.value)) {
101
- return { invalidNumber: true };
102
- }
103
- else if (control.value != null && (control.value.length == 5 || control.value.length == 9)) {
104
- //do nothing
105
- }
106
- else {
107
- return { invalidLength: true };
108
- }
109
- }
110
- static isNumber(number) {
111
- var reg = new RegExp("^[0-9]*$");
112
- return reg.test(number);
113
- }
114
- static isBetween(from, to) {
115
- return (control) => {
116
- if (!control.value) {
117
- // if control is empty return no error
118
- return null;
119
- }
120
- let wsDate = control.value;
121
- if (wsDate.getTime() < from.getTime() || wsDate.getTime() > to.getTime()) {
122
- return { dateNotBetween: true };
123
- }
124
- };
125
- }
126
- static equal(matchingControlName, error) {
127
- return (control) => {
128
- if (!control.parent) {
129
- return null;
130
- }
131
- let matchingControl = control.parent.get(matchingControlName);
132
- if (!control.value || !matchingControl.value) {
133
- // if control is empty return no error
134
- return null;
135
- }
136
- const valid = (control.value === matchingControl.value);
137
- // if true, return no error (no error), else return error passed in the second parameter
138
- return valid ? null : error;
139
- };
140
- }
141
- /**
142
- *
143
- * @param matchingControlName Form control name against which current form control value should be matched
144
- * @param error Error which should be returned in case validation fails
145
- *
146
- * @description Form validator to validate control value against a other control value
147
- *
148
- * @author Prerak Tiwari
149
- */
150
- static notEqual(matchingControlName, error) {
151
- return (control) => {
152
- if (!control.parent) {
153
- return null;
154
- }
155
- let matchingControl = control.parent.get(matchingControlName);
156
- if (!control.value || !matchingControl.value) {
157
- // if control is empty return no error
158
- return null;
159
- }
160
- const valid = (control.value !== matchingControl.value);
161
- // if true, return no error (no error), else return error passed in the second parameter
162
- return valid ? null : error;
163
- };
164
- }
165
- }
1
+ import { Validators } from '@angular/forms';
2
+ /***
3
+ *
4
+ * @description Class Contains all common form validation used in the project.
5
+ * @author Prerak Tiwari
6
+ */
7
+ export class AppValidators {
8
+ static confirmPasswordValidator(c) {
9
+ if (c.get('password').value != c.get('confirmPassword').value) {
10
+ return { invalid: true };
11
+ }
12
+ }
13
+ static passwordAndConfirmPasswordMustMatch(formGroup) {
14
+ const { value: password } = formGroup.get('password');
15
+ const { value: confirmPassword } = formGroup.get('confirmPassword');
16
+ return password === confirmPassword ? null : { passwordNotMatch: true };
17
+ }
18
+ // @dynamic
19
+ static confirmValidator(controlName, matchingControlName) {
20
+ const func = (formGroup) => {
21
+ const control = formGroup.controls[controlName];
22
+ const matchingControl = formGroup.controls[matchingControlName];
23
+ if (matchingControl.errors && !matchingControl.errors.confirmedValidator) {
24
+ return;
25
+ }
26
+ if (control.value !== matchingControl.value) {
27
+ matchingControl.setErrors({ notMatch: true });
28
+ }
29
+ else {
30
+ matchingControl.setErrors(null);
31
+ }
32
+ };
33
+ return func;
34
+ }
35
+ // @dynamic
36
+ static selectAtleastOne(validator) {
37
+ const func = (group) => {
38
+ const isAtleastOnePassTheValidation = group && group.controls && Object.keys(group.controls).some(k => !validator(group.controls[k]));
39
+ return isAtleastOnePassTheValidation ? null : { selectAtleastOne: true };
40
+ };
41
+ return func;
42
+ }
43
+ // @dynamic
44
+ static requiredIfValidator(predicate) {
45
+ const func = (formControl => {
46
+ if (!formControl.parent) {
47
+ return null;
48
+ }
49
+ if (predicate() === '1' || predicate() === 'true' || predicate()) {
50
+ return Validators.required(formControl);
51
+ }
52
+ return null;
53
+ });
54
+ return func;
55
+ }
56
+ /**
57
+ *
58
+ * @param regex Regular Expression against which value needs to be validated
59
+ * @param error Error which should be returned in case validation fails
60
+ *
61
+ * @description Form validator to validate control value against a regular expression
62
+ *
63
+ * @author Prerak Tiwari
64
+ */
65
+ static match(regex, error) {
66
+ const func = (control) => {
67
+ if (!control.value) {
68
+ // if control is empty return no error
69
+ return null;
70
+ }
71
+ // test the value of the control against the regexp supplied
72
+ const valid = regex.test(control.value);
73
+ // if true, return no error (no error), else return error passed in the second parameter
74
+ return valid ? null : error;
75
+ };
76
+ return func;
77
+ }
78
+ /***
79
+ * This method checks if the entered routing number is valid or not as per following logic
80
+ *
81
+ * (3 * (d1 + d4 + d7) + 7 * (d2 + d5 + d8) + 1 * (d3 + d6 + d9) ) mod 10 = 0
82
+ *
83
+ * This formula is taken from https://en.wikipedia.org/wiki/Routing_transit_number#MICR_Routing_number_format
84
+ */
85
+ static isValidRoutingNumber(control) {
86
+ let routingNumber = control.value;
87
+ let sum = 0, mod = 0;
88
+ let routingNumberArr = (routingNumber + "").split("");
89
+ let sum1 = 3 * (parseInt(routingNumberArr[0]) + parseInt(routingNumberArr[3]) + parseInt(routingNumberArr[6]));
90
+ let sum2 = 7 * (parseInt(routingNumberArr[1]) + parseInt(routingNumberArr[4]) + parseInt(routingNumberArr[7]));
91
+ let sum3 = 1 * (parseInt(routingNumberArr[2]) + parseInt(routingNumberArr[5]) + parseInt(routingNumberArr[8]));
92
+ sum = sum1 + sum2 + sum3;
93
+ mod = sum % 10;
94
+ if (!(mod == 0)) {
95
+ return { isRoutingNumberNotValid: true };
96
+ }
97
+ return;
98
+ }
99
+ static isValidZipCode(control) {
100
+ if (control.value != null && !AppValidators.isNumber(control.value)) {
101
+ return { invalidNumber: true };
102
+ }
103
+ else if (control.value != null && (control.value.length == 5 || control.value.length == 9)) {
104
+ //do nothing
105
+ }
106
+ else {
107
+ return { invalidLength: true };
108
+ }
109
+ }
110
+ static isNumber(number) {
111
+ var reg = new RegExp("^[0-9]*$");
112
+ return reg.test(number);
113
+ }
114
+ static isBetween(from, to) {
115
+ return (control) => {
116
+ if (!control.value) {
117
+ // if control is empty return no error
118
+ return null;
119
+ }
120
+ let wsDate = control.value;
121
+ if (wsDate.getTime() < from.getTime() || wsDate.getTime() > to.getTime()) {
122
+ return { dateNotBetween: true };
123
+ }
124
+ };
125
+ }
126
+ static equal(matchingControlName, error) {
127
+ return (control) => {
128
+ if (!control.parent) {
129
+ return null;
130
+ }
131
+ let matchingControl = control.parent.get(matchingControlName);
132
+ if (!control.value || !matchingControl.value) {
133
+ // if control is empty return no error
134
+ return null;
135
+ }
136
+ const valid = (control.value === matchingControl.value);
137
+ // if true, return no error (no error), else return error passed in the second parameter
138
+ return valid ? null : error;
139
+ };
140
+ }
141
+ /**
142
+ *
143
+ * @param matchingControlName Form control name against which current form control value should be matched
144
+ * @param error Error which should be returned in case validation fails
145
+ *
146
+ * @description Form validator to validate control value against a other control value
147
+ *
148
+ * @author Prerak Tiwari
149
+ */
150
+ static notEqual(matchingControlName, error) {
151
+ return (control) => {
152
+ if (!control.parent) {
153
+ return null;
154
+ }
155
+ let matchingControl = control.parent.get(matchingControlName);
156
+ if (!control.value || !matchingControl.value) {
157
+ // if control is empty return no error
158
+ return null;
159
+ }
160
+ const valid = (control.value !== matchingControl.value);
161
+ // if true, return no error (no error), else return error passed in the second parameter
162
+ return valid ? null : error;
163
+ };
164
+ }
165
+ }
166
166
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwVmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9FLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlHOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUV4QixNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBa0I7UUFDaEQsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsS0FBSyxFQUFFO1lBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLFNBQTJCO1FBQ3BFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RCxNQUFNLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNwRSxPQUFPLFFBQVEsS0FBSyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMxRSxDQUFDO0lBRUQsV0FBVztJQUNYLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFtQixFQUFFLG1CQUEyQjtRQUN0RSxNQUFNLElBQUksR0FBRyxDQUFDLFNBQTJCLEVBQUUsRUFBRTtZQUMzQyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUNoRSxJQUFJLGVBQWUsQ0FBQyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLGtCQUFrQixFQUFFO2dCQUN4RSxPQUFPO2FBQ1I7WUFDRCxJQUFJLE9BQU8sQ0FBQyxLQUFLLEtBQUssZUFBZSxDQUFDLEtBQUssRUFBRTtnQkFDM0MsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO2FBQy9DO2lCQUFNO2dCQUNMLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDakM7UUFDSCxDQUFDLENBQUE7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXO0lBQ1gsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQXNCO1FBQzVDLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBdUIsRUFBMkIsRUFBRTtZQUNoRSxNQUFNLDZCQUE2QixHQUFHLEtBQUssSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RJLE9BQU8sNkJBQTZCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztRQUMzRSxDQUFDLENBQUE7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRCxXQUFXO0lBQ1gsTUFBTSxDQUFDLG1CQUFtQixDQUFDLFNBQVM7UUFDbEMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRTtnQkFDdkIsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUVELElBQUksU0FBUyxFQUFFLEtBQUssR0FBRyxJQUFJLFNBQVMsRUFBRSxLQUFLLE1BQU0sSUFBSSxTQUFTLEVBQUUsRUFBRTtnQkFDaEUsT0FBTyxVQUFVLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3pDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDLENBQUMsQ0FBQTtRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0YsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFhLEVBQUUsS0FBdUI7UUFDbEQsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUF3QixFQUEwQixFQUFFO1lBQ2hFLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO2dCQUNsQixzQ0FBc0M7Z0JBQ3RDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFFRCw0REFBNEQ7WUFDNUQsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDeEMsd0ZBQXdGO1lBQ3hGLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM5QixDQUFDLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFQzs7Ozs7O01BTUU7SUFDSixNQUFNLENBQUMsb0JBQW9CLENBQUMsT0FBd0I7UUFDbEQsSUFBSSxhQUFhLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQztRQUNsQyxJQUFJLEdBQUcsR0FBRyxDQUFDLEVBQUUsR0FBRyxHQUFHLENBQUMsQ0FBQztRQUNyQixJQUFJLGdCQUFnQixHQUFHLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQy9HLElBQUksSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDL0csSUFBSSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUUvRyxHQUFHLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxJQUFJLENBQUM7UUFDekIsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFFZixJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLEVBQUU7WUFDZixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDMUM7UUFDRCxPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sQ0FBQyxjQUFjLENBQUMsT0FBd0I7UUFDNUMsSUFBRyxPQUFPLENBQUMsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFDO1lBQ2pFLE9BQU8sRUFBQyxhQUFhLEVBQUcsSUFBSSxFQUFDLENBQUM7U0FDL0I7YUFBSyxJQUFHLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxFQUFDO1lBQ3pGLFlBQVk7U0FDYjthQUFJO1lBQ0gsT0FBTyxFQUFDLGFBQWEsRUFBRyxJQUFJLEVBQUMsQ0FBQztTQUMvQjtJQUNILENBQUM7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU07UUFDcEIsSUFBSSxHQUFHLEdBQUcsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDakMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBUyxDQUFDLElBQVcsRUFBRSxFQUFRO1FBQ3BDLE9BQU8sQ0FBQyxPQUF3QixFQUEwQixFQUFFO1lBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFO2dCQUNsQixzQ0FBc0M7Z0JBQ3RDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQzNCLElBQUcsTUFBTSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsSUFBSSxNQUFNLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxFQUFDO2dCQUN0RSxPQUFPLEVBQUMsY0FBYyxFQUFHLElBQUksRUFBQyxDQUFDO2FBQ2hDO1FBQ0gsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFLLENBQUMsbUJBQTJCLEVBQUUsS0FBdUI7UUFDL0QsT0FBTyxDQUFDLE9BQXdCLEVBQTBCLEVBQUU7WUFDMUQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUU7Z0JBQ25CLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFDRCxJQUFJLGVBQWUsR0FBb0IsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztZQUMvRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUU7Z0JBQzVDLHNDQUFzQztnQkFDdEMsT0FBTyxJQUFJLENBQUM7YUFDYjtZQUVELE1BQU0sS0FBSyxHQUFHLENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFeEQsd0ZBQXdGO1lBQ3hGLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM5QixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLG1CQUEyQixFQUFFLEtBQXVCO1FBQ2xFLE9BQU8sQ0FBQyxPQUF3QixFQUEwQixFQUFFO1lBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUNuQixPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsSUFBSSxlQUFlLEdBQW9CLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDL0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFO2dCQUM1QyxzQ0FBc0M7Z0JBQ3RDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFFRCxNQUFNLEtBQUssR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXhELHdGQUF3RjtZQUN4RixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDOUIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbi8qKipcbiAqIFxuICogQGRlc2NyaXB0aW9uIENsYXNzIENvbnRhaW5zIGFsbCBjb21tb24gZm9ybSB2YWxpZGF0aW9uIHVzZWQgaW4gdGhlIHByb2plY3QuXG4gKiBAYXV0aG9yIFByZXJhayBUaXdhcmlcbiAqL1xuZXhwb3J0IGNsYXNzIEFwcFZhbGlkYXRvcnMge1xuXG4gIHN0YXRpYyBjb25maXJtUGFzc3dvcmRWYWxpZGF0b3IoYzogQWJzdHJhY3RDb250cm9sKTogeyBpbnZhbGlkOiBib29sZWFuIH0ge1xuICAgIGlmIChjLmdldCgncGFzc3dvcmQnKS52YWx1ZSAhPSBjLmdldCgnY29uZmlybVBhc3N3b3JkJykudmFsdWUpIHtcbiAgICAgIHJldHVybiB7IGludmFsaWQ6IHRydWUgfTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgcGFzc3dvcmRBbmRDb25maXJtUGFzc3dvcmRNdXN0TWF0Y2goZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwKSB7XG4gICAgY29uc3QgeyB2YWx1ZTogcGFzc3dvcmQgfSA9IGZvcm1Hcm91cC5nZXQoJ3Bhc3N3b3JkJyk7XG4gICAgY29uc3QgeyB2YWx1ZTogY29uZmlybVBhc3N3b3JkIH0gPSBmb3JtR3JvdXAuZ2V0KCdjb25maXJtUGFzc3dvcmQnKTtcbiAgICByZXR1cm4gcGFzc3dvcmQgPT09IGNvbmZpcm1QYXNzd29yZCA/IG51bGwgOiB7IHBhc3N3b3JkTm90TWF0Y2g6IHRydWUgfTtcbiAgfVxuXG4gIC8vIEBkeW5hbWljXG4gIHN0YXRpYyBjb25maXJtVmFsaWRhdG9yKGNvbnRyb2xOYW1lOiBzdHJpbmcsIG1hdGNoaW5nQ29udHJvbE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGZ1bmMgPSAoZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwKSA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xOYW1lXTtcbiAgICAgIGNvbnN0IG1hdGNoaW5nQ29udHJvbCA9IGZvcm1Hcm91cC5jb250cm9sc1ttYXRjaGluZ0NvbnRyb2xOYW1lXTtcbiAgICAgIGlmIChtYXRjaGluZ0NvbnRyb2wuZXJyb3JzICYmICFtYXRjaGluZ0NvbnRyb2wuZXJyb3JzLmNvbmZpcm1lZFZhbGlkYXRvcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoY29udHJvbC52YWx1ZSAhPT0gbWF0Y2hpbmdDb250cm9sLnZhbHVlKSB7XG4gICAgICAgIG1hdGNoaW5nQ29udHJvbC5zZXRFcnJvcnMoeyBub3RNYXRjaDogdHJ1ZSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1hdGNoaW5nQ29udHJvbC5zZXRFcnJvcnMobnVsbCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmdW5jO1xuICB9XG4gIFxuICAvLyBAZHluYW1pY1xuICBzdGF0aWMgc2VsZWN0QXRsZWFzdE9uZSh2YWxpZGF0b3I6IFZhbGlkYXRvckZuKSB7XG4gICAgY29uc3QgZnVuYyA9IChncm91cDogVW50eXBlZEZvcm1Hcm91cCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IGlzQXRsZWFzdE9uZVBhc3NUaGVWYWxpZGF0aW9uID0gZ3JvdXAgJiYgZ3JvdXAuY29udHJvbHMgJiYgT2JqZWN0LmtleXMoZ3JvdXAuY29udHJvbHMpLnNvbWUoayA9PiAhdmFsaWRhdG9yKGdyb3VwLmNvbnRyb2xzW2tdKSk7XG4gICAgICByZXR1cm4gaXNBdGxlYXN0T25lUGFzc1RoZVZhbGlkYXRpb24gPyBudWxsIDogeyBzZWxlY3RBdGxlYXN0T25lOiB0cnVlIH07XG4gICAgfVxuICAgIHJldHVybiBmdW5jO1xuICB9XG5cbiAgLy8gQGR5bmFtaWNcbiAgc3RhdGljIHJlcXVpcmVkSWZWYWxpZGF0b3IocHJlZGljYXRlKSB7XG4gICAgY29uc3QgZnVuYyA9IChmb3JtQ29udHJvbCA9PiB7XG4gICAgICBpZiAoIWZvcm1Db250cm9sLnBhcmVudCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgaWYgKHByZWRpY2F0ZSgpID09PSAnMScgfHwgcHJlZGljYXRlKCkgPT09ICd0cnVlJyB8fCBwcmVkaWNhdGUoKSkge1xuICAgICAgICByZXR1cm4gVmFsaWRhdG9ycy5yZXF1aXJlZChmb3JtQ29udHJvbCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KVxuICAgIHJldHVybiBmdW5jO1xuICB9XG5cbiAgLyoqXG4gICAqIFxuICAgKiBAcGFyYW0gcmVnZXggUmVndWxhciBFeHByZXNzaW9uIGFnYWluc3Qgd2hpY2ggdmFsdWUgbmVlZHMgdG8gYmUgdmFsaWRhdGVkXG4gICAqIEBwYXJhbSBlcnJvciBFcnJvciB3aGljaCBzaG91bGQgYmUgcmV0dXJuZWQgaW4gY2FzZSB2YWxpZGF0aW9uIGZhaWxzXG4gICAqIFxuICAgKiBAZGVzY3JpcHRpb24gRm9ybSB2YWxpZGF0b3IgdG8gdmFsaWRhdGUgY29udHJvbCB2YWx1ZSBhZ2FpbnN0IGEgcmVndWxhciBleHByZXNzaW9uXG4gICAqIFxuICAgKiBAYXV0aG9yIFByZXJhayBUaXdhcmlcbiAgICovXG4gICBzdGF0aWMgbWF0Y2gocmVnZXg6IFJlZ0V4cCwgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMpOiBWYWxpZGF0b3JGbiB7XG4gICAgY29uc3QgZnVuYyA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcbiAgICAgIGlmICghY29udHJvbC52YWx1ZSkge1xuICAgICAgICAvLyBpZiBjb250cm9sIGlzIGVtcHR5IHJldHVybiBubyBlcnJvclxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgLy8gdGVzdCB0aGUgdmFsdWUgb2YgdGhlIGNvbnRyb2wgYWdhaW5zdCB0aGUgcmVnZXhwIHN1cHBsaWVkXG4gICAgICBjb25zdCB2YWxpZCA9IHJlZ2V4LnRlc3QoY29udHJvbC52YWx1ZSk7XG4gICAgICAvLyBpZiB0cnVlLCByZXR1cm4gbm8gZXJyb3IgKG5vIGVycm9yKSwgZWxzZSByZXR1cm4gZXJyb3IgcGFzc2VkIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyXG4gICAgICByZXR1cm4gdmFsaWQgPyBudWxsIDogZXJyb3I7XG4gICAgfTtcbiAgICByZXR1cm4gZnVuYztcbiAgfVxuXG4gICAgLyoqKlxuICAgICogVGhpcyBtZXRob2QgY2hlY2tzIGlmIHRoZSBlbnRlcmVkIHJvdXRpbmcgbnVtYmVyIGlzIHZhbGlkIG9yIG5vdCBhcyBwZXIgZm9sbG93aW5nIGxvZ2ljXG4gICAgKiBcbiAgICAqICgzICogKGQxICsgZDQgKyBkNykgKyA3ICogKGQyICsgZDUgKyBkOCkgKyAxICogKGQzICsgZDYgKyBkOSkgKSBtb2QgMTAgPSAwXG4gICAgKiBcbiAgICAqICBUaGlzIGZvcm11bGEgaXMgdGFrZW4gZnJvbSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Sb3V0aW5nX3RyYW5zaXRfbnVtYmVyI01JQ1JfUm91dGluZ19udW1iZXJfZm9ybWF0XG4gICAgKi9cbiAgc3RhdGljIGlzVmFsaWRSb3V0aW5nTnVtYmVyKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW3M6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gICAgbGV0IHJvdXRpbmdOdW1iZXIgPSBjb250cm9sLnZhbHVlO1xuICAgIGxldCBzdW0gPSAwLCBtb2QgPSAwO1xuICAgIGxldCByb3V0aW5nTnVtYmVyQXJyID0gKHJvdXRpbmdOdW1iZXIgKyBcIlwiKS5zcGxpdChcIlwiKTtcbiAgICBsZXQgc3VtMSA9IDMgKiAocGFyc2VJbnQocm91dGluZ051bWJlckFyclswXSkgKyBwYXJzZUludChyb3V0aW5nTnVtYmVyQXJyWzNdKSArIHBhcnNlSW50KHJvdXRpbmdOdW1iZXJBcnJbNl0pKTtcbiAgICBsZXQgc3VtMiA9IDcgKiAocGFyc2VJbnQocm91dGluZ051bWJlckFyclsxXSkgKyBwYXJzZUludChyb3V0aW5nTnVtYmVyQXJyWzRdKSArIHBhcnNlSW50KHJvdXRpbmdOdW1iZXJBcnJbN10pKTtcbiAgICBsZXQgc3VtMyA9IDEgKiAocGFyc2VJbnQocm91dGluZ051bWJlckFyclsyXSkgKyBwYXJzZUludChyb3V0aW5nTnVtYmVyQXJyWzVdKSArIHBhcnNlSW50KHJvdXRpbmdOdW1iZXJBcnJbOF0pKTtcblxuICAgIHN1bSA9IHN1bTEgKyBzdW0yICsgc3VtMztcbiAgICBtb2QgPSBzdW0gJSAxMDtcblxuICAgIGlmICghKG1vZCA9PSAwKSkge1xuICAgICAgcmV0dXJuIHsgaXNSb3V0aW5nTnVtYmVyTm90VmFsaWQ6IHRydWUgfTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc3RhdGljIGlzVmFsaWRaaXBDb2RlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW3M6IHN0cmluZ106IGJvb2xlYW4gfXtcbiAgICBpZihjb250cm9sLnZhbHVlICE9IG51bGwgJiYgIUFwcFZhbGlkYXRvcnMuaXNOdW1iZXIoY29udHJvbC52YWx1ZSkpe1xuICAgICAgcmV0dXJuIHtpbnZhbGlkTnVtYmVyIDogdHJ1ZX07XG4gICAgfWVsc2UgaWYoY29udHJvbC52YWx1ZSAhPSBudWxsICYmIChjb250cm9sLnZhbHVlLmxlbmd0aCA9PSA1IHx8IGNvbnRyb2wudmFsdWUubGVuZ3RoID09IDkpKXtcbiAgICAgIC8vZG8gbm90aGluZ1xuICAgIH1lbHNle1xuICAgICAgcmV0dXJuIHtpbnZhbGlkTGVuZ3RoIDogdHJ1ZX07XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGlzTnVtYmVyKG51bWJlcikge1xuICAgIHZhciByZWcgPSBuZXcgUmVnRXhwKFwiXlswLTldKiRcIik7IFxuICAgIHJldHVybiByZWcudGVzdChudW1iZXIpO1xuICB9XG5cbiAgc3RhdGljIGlzQmV0d2Vlbihmcm9tIDogRGF0ZSwgdG86IERhdGUpIDogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9PiB7XG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgLy8gaWYgY29udHJvbCBpcyBlbXB0eSByZXR1cm4gbm8gZXJyb3JcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBsZXQgd3NEYXRlID0gY29udHJvbC52YWx1ZTtcbiAgICAgIGlmKHdzRGF0ZS5nZXRUaW1lKCkgPCBmcm9tLmdldFRpbWUoKSB8fCB3c0RhdGUuZ2V0VGltZSgpID4gdG8uZ2V0VGltZSgpKXtcbiAgICAgICAgcmV0dXJuIHtkYXRlTm90QmV0d2VlbiA6IHRydWV9O1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZXF1YWwobWF0Y2hpbmdDb250cm9sTmFtZTogc3RyaW5nLCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPT4ge1xuICAgICAgaWYgKCFjb250cm9sLnBhcmVudCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGxldCBtYXRjaGluZ0NvbnRyb2w6IEFic3RyYWN0Q29udHJvbCA9IGNvbnRyb2wucGFyZW50LmdldChtYXRjaGluZ0NvbnRyb2xOYW1lKTtcbiAgICAgIGlmICghY29udHJvbC52YWx1ZSB8fCAhbWF0Y2hpbmdDb250cm9sLnZhbHVlKSB7XG4gICAgICAgIC8vIGlmIGNvbnRyb2wgaXMgZW1wdHkgcmV0dXJuIG5vIGVycm9yXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2YWxpZCA9IChjb250cm9sLnZhbHVlID09PSBtYXRjaGluZ0NvbnRyb2wudmFsdWUpO1xuXG4gICAgICAvLyBpZiB0cnVlLCByZXR1cm4gbm8gZXJyb3IgKG5vIGVycm9yKSwgZWxzZSByZXR1cm4gZXJyb3IgcGFzc2VkIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyXG4gICAgICByZXR1cm4gdmFsaWQgPyBudWxsIDogZXJyb3I7XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcbiAgICogQHBhcmFtIG1hdGNoaW5nQ29udHJvbE5hbWUgRm9ybSBjb250cm9sIG5hbWUgYWdhaW5zdCB3aGljaCBjdXJyZW50IGZvcm0gY29udHJvbCB2YWx1ZSBzaG91bGQgYmUgbWF0Y2hlZFxuICAgKiBAcGFyYW0gZXJyb3IgRXJyb3Igd2hpY2ggc2hvdWxkIGJlIHJldHVybmVkIGluIGNhc2UgdmFsaWRhdGlvbiBmYWlsc1xuICAgKiBcbiAgICogQGRlc2NyaXB0aW9uIEZvcm0gdmFsaWRhdG9yIHRvIHZhbGlkYXRlIGNvbnRyb2wgdmFsdWUgYWdhaW5zdCBhIG90aGVyIGNvbnRyb2wgdmFsdWVcbiAgICogXG4gICAqIEBhdXRob3IgUHJlcmFrIFRpd2FyaVxuICAgKi9cbiAgc3RhdGljIG5vdEVxdWFsKG1hdGNoaW5nQ29udHJvbE5hbWU6IHN0cmluZywgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcbiAgICAgIGlmICghY29udHJvbC5wYXJlbnQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBsZXQgbWF0Y2hpbmdDb250cm9sOiBBYnN0cmFjdENvbnRyb2wgPSBjb250cm9sLnBhcmVudC5nZXQobWF0Y2hpbmdDb250cm9sTmFtZSk7XG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUgfHwgIW1hdGNoaW5nQ29udHJvbC52YWx1ZSkge1xuICAgICAgICAvLyBpZiBjb250cm9sIGlzIGVtcHR5IHJldHVybiBubyBlcnJvclxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsaWQgPSAoY29udHJvbC52YWx1ZSAhPT0gbWF0Y2hpbmdDb250cm9sLnZhbHVlKTtcblxuICAgICAgLy8gaWYgdHJ1ZSwgcmV0dXJuIG5vIGVycm9yIChubyBlcnJvciksIGVsc2UgcmV0dXJuIGVycm9yIHBhc3NlZCBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlclxuICAgICAgcmV0dXJuIHZhbGlkID8gbnVsbCA6IGVycm9yO1xuICAgIH07XG4gIH1cbn0iXX0=