@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.
- package/{esm2020 → esm2022}/lib/annimations/app-animations.mjs +36 -36
- package/esm2022/lib/components/add-employer/add-employer.component.mjs +3027 -0
- package/esm2022/lib/components/add-participant/add-participant.component.mjs +394 -0
- package/esm2022/lib/components/add-payment/add-payment.component.mjs +187 -0
- package/esm2022/lib/components/address/address.component.mjs +487 -0
- package/esm2022/lib/components/bank-details/bank-details.component.mjs +276 -0
- package/esm2022/lib/components/captcha/captcha.component.mjs +181 -0
- package/esm2022/lib/components/card/card.component.mjs +55 -0
- package/esm2022/lib/components/contact-us/contact-us.component.mjs +970 -0
- package/esm2022/lib/components/content/content.component.mjs +61 -0
- package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +83 -0
- package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +223 -0
- package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +292 -0
- package/esm2022/lib/components/disclosure/disclosure.component.mjs +60 -0
- package/esm2022/lib/components/dropdown/dropdown.component.mjs +1974 -0
- package/esm2022/lib/components/dropdown/dropdown.interface.mjs +2 -0
- package/esm2022/lib/components/email-update/email-update.component.mjs +283 -0
- package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +794 -0
- package/esm2022/lib/components/error/error.component.mjs +86 -0
- package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +163 -0
- package/{esm2020 → esm2022}/lib/components/file-download/file-download.component.mjs +104 -104
- package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +315 -0
- package/esm2022/lib/components/footer/footer.component.mjs +332 -0
- package/esm2022/lib/components/header/header.component.mjs +558 -0
- package/esm2022/lib/components/help/help.component.mjs +49 -0
- package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +65 -0
- package/{esm2020 → esm2022}/lib/components/info/info.component.mjs +187 -188
- package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +206 -0
- package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +193 -0
- package/esm2022/lib/components/maintenance-detector/maintenance-detector.component.mjs +43 -0
- package/esm2022/lib/components/mask/mask.component.mjs +48 -0
- package/esm2022/lib/components/menu/menu.component.mjs +423 -0
- package/esm2022/lib/components/mfa/mfa.component.mjs +444 -0
- package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +50 -0
- package/esm2022/lib/components/money-expect/money-expect.component.mjs +90 -0
- package/esm2022/lib/components/msg/msg.component.mjs +48 -0
- package/esm2022/lib/components/news/news.component.mjs +90 -0
- package/esm2022/lib/components/overlay-info/overlay-info.component.mjs +213 -0
- package/esm2022/lib/components/page/page.component.mjs +136 -0
- package/esm2022/lib/components/profile/profile.component.mjs +177 -0
- package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +63 -0
- package/esm2022/lib/components/questionnaire/AppValidators.mjs +487 -0
- package/{esm2020 → esm2022}/lib/components/questionnaire/FbConstants.mjs +7 -7
- package/{esm2020 → esm2022}/lib/components/questionnaire/SelectItem.mjs +1 -1
- package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +256 -0
- package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +475 -0
- package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +1094 -0
- package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +1882 -0
- package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +1263 -0
- package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +244 -0
- package/{esm2020 → esm2022}/lib/components/questionnaire/input-focus.directive.mjs +44 -44
- package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +256 -0
- package/{esm2020 → esm2022}/lib/components/questionnaire/question-base.mjs +2 -2
- package/{esm2020 → esm2022}/lib/components/questionnaire/question-control.service.mjs +420 -419
- package/{esm2020 → esm2022}/lib/components/questionnaire/question.service.mjs +33 -33
- package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +262 -0
- package/{esm2020 → esm2022}/lib/components/read-more/read-more.component.mjs +67 -67
- package/esm2022/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +690 -0
- package/esm2022/lib/components/search-employer/search-employer.component.mjs +142 -0
- package/esm2022/lib/components/select/select.component.mjs +154 -0
- package/esm2022/lib/components/ssn/ssn.component.mjs +44 -0
- package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +151 -0
- package/esm2022/lib/components/test/test.component.mjs +19 -0
- package/esm2022/lib/components/user-login/user-login.component.mjs +398 -0
- package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +442 -0
- package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +307 -0
- package/{esm2020 → esm2022}/lib/directives/auto-focus/auto-focus.directive.mjs +31 -31
- package/{esm2020 → esm2022}/lib/directives/caps-lock.directive.mjs +38 -38
- package/{esm2020 → esm2022}/lib/directives/required-roles/required-roles.directive.mjs +30 -30
- package/{esm2020 → esm2022}/lib/enums/EmailStatusEnum.mjs +8 -8
- package/{esm2020 → esm2022}/lib/guards/auth.guard.mjs +138 -138
- package/esm2022/lib/guards/no-login/no-login.guard.mjs +21 -0
- package/{esm2020 → esm2022}/lib/interceptors/error-interceptor/http-error-interceptor.mjs +107 -107
- package/{esm2020 → esm2022}/lib/interceptors/header-interceptor/http-header.interceptor.mjs +99 -99
- package/{esm2020 → esm2022}/lib/models/AddressComponentModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/BankDetailsComponentModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/BankDetailsModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/CinRequalificationCriteriaModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/EmployerDetailSearchResult.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/ErrorModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/FileModel.mjs +1 -1
- package/{esm2020 → esm2022}/lib/models/LibConstants.mjs +119 -119
- package/{esm2020 → esm2022}/lib/models/NewsAndAnnouncementModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/NotificationModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/OtpAuthModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/PaymentComponentModel.mjs +2 -2
- package/esm2022/lib/models/RequalifyLiftPageModel.mjs +11 -0
- package/{esm2020 → esm2022}/lib/models/SsaVerificationModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/TrendModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/UserDetailsModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/UserModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/case/CaseAttachmentModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/claimant/ClaimantModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/claimant/JobResultsData.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/claimant/MatchingJobs.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/claimant/ResetPasswordModel.mjs +2 -2
- package/esm2022/lib/models/cmp/CaseCoreModel.mjs +3 -0
- package/{esm2020 → esm2022}/lib/models/cmp/ComplaintCategoryModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/cmp/ComplaintCategoryOutputModel.mjs +5 -5
- package/esm2022/lib/models/cmp/ContactUsModel.mjs +3 -0
- package/{esm2020 → esm2022}/lib/models/cmp/EmailTemplateModel.mjs +3 -3
- package/esm2022/lib/models/cmp/contactUsInqueryModel.mjs +7 -0
- package/{esm2020 → esm2022}/lib/models/cmp/messageRourceModel.mjs +3 -3
- package/esm2022/lib/models/dashboard-model.mjs +3 -0
- package/esm2022/lib/models/dependent.model.mjs +8 -0
- package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimAppEmpRequestModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +2 -2
- package/esm2022/lib/models/questionnaire/ComboModel.mjs +337 -0
- package/{esm2020 → esm2022}/lib/models/questionnaire/ElementsModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/models/questionnaire/EmployerDetailSearchResult.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/questionnaire/EmployerWagesModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/questionnaire/FBConfigModel.mjs +5 -5
- package/{esm2020 → esm2022}/lib/models/questionnaire/KeyValueModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/questionnaire/LegalDiscaimarModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/questionnaire/LoaderModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/questionnaire/PollingStatusModel.mjs +3 -3
- package/{esm2020 → esm2022}/lib/models/questionnaire/QtrYearEmployerWageModel.mjs +2 -2
- package/{esm2020 → esm2022}/lib/models/questionnaire/QuestionnaireQueryModel.mjs +7 -7
- package/{esm2020 → esm2022}/lib/models/questionnaire/QuestionnaireReturnModel.mjs +10 -10
- package/{esm2020 → esm2022}/lib/models/questionnaire/QuestionnaireSaveModel.mjs +2 -2
- package/esm2022/lib/models/questionnaire/RequalifyLiftIssuesModel.mjs +3 -0
- package/{esm2020 → esm2022}/lib/models/questionnaire/ServiceActionResponseModel.mjs +3 -3
- package/esm2022/lib/models/questionnaire/StatusModel.mjs +6 -0
- package/{esm2020 → esm2022}/lib/models/questionnaire/SuccessPageElement.mjs +2 -2
- package/esm2022/lib/models/questionnaire/UI512AResponseModel.mjs +3 -0
- package/{esm2020 → esm2022}/lib/models/questionnaire/ValidationModel.mjs +2 -2
- package/esm2022/lib/ngx-reusa-app-lib.component.mjs +23 -0
- package/esm2022/lib/ngx-reusa-app-lib.module.mjs +402 -0
- package/{esm2020 → esm2022}/lib/ngx-reusa-app-lib.service.mjs +14 -14
- package/{esm2020 → esm2022}/lib/pages/BasePage.mjs +76 -76
- package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +81 -0
- package/esm2022/lib/pages/common/change-password/change-password.page.mjs +463 -0
- package/esm2022/lib/pages/common/landing/landing.component.mjs +208 -0
- package/esm2022/lib/pages/common/landing2/landing2.component.mjs +244 -0
- package/esm2022/lib/pages/common/login/login.component.mjs +526 -0
- package/esm2022/lib/pages/common/not-found/not-found.page.mjs +24 -0
- package/esm2022/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +306 -0
- package/esm2022/lib/pages/common/security-policy/security-policy.page.mjs +61 -0
- package/esm2022/lib/pages/common/unauthorized/unauthorized.page.mjs +24 -0
- package/esm2022/lib/pages/popovers/language/language.page.mjs +61 -0
- package/esm2022/lib/pages/popovers/my-notifications/my-notifications.page.mjs +204 -0
- package/esm2022/lib/pages/popovers/my-profile/my-profile.page.mjs +129 -0
- package/esm2022/lib/pages/popovers/user-search/user-search.component.mjs +251 -0
- package/{esm2020 → esm2022}/lib/pipes/filter.pipe.mjs +30 -30
- package/{esm2020 → esm2022}/lib/pipes/mask/mask.email.pipe.mjs +23 -23
- package/{esm2020 → esm2022}/lib/pipes/proper-case/proper-case.pipe.mjs +27 -27
- package/{esm2020 → esm2022}/lib/pipes/translate/dynamic-translate.pipe.mjs +44 -44
- package/{esm2020 → esm2022}/lib/pipes/trust-html/trust-html.pipe.mjs +20 -20
- package/{esm2020 → esm2022}/lib/services/base-service.mjs +49 -49
- package/{esm2020 → esm2022}/lib/services/captcha/captcha.service.mjs +46 -46
- package/{esm2020 → esm2022}/lib/services/case-service/case.service.mjs +47 -47
- package/{esm2020 → esm2022}/lib/services/chatbot/chatbot.service.mjs +257 -257
- package/esm2022/lib/services/chatbot/script.const.mjs +42 -0
- package/{esm2020 → esm2022}/lib/services/claimant/claimant.service.mjs +31 -31
- package/esm2022/lib/services/claimant-context/claimant-context.service.mjs +48 -0
- package/{esm2020 → esm2022}/lib/services/claimant-service/claimant.service.mjs +47 -47
- package/{esm2020 → esm2022}/lib/services/claims/claims.service.mjs +99 -99
- package/{esm2020 → esm2022}/lib/services/cmp-service/cmp.service.mjs +84 -84
- package/{esm2020 → esm2022}/lib/services/dms-service/dms.service.mjs +60 -60
- package/{esm2020 → esm2022}/lib/services/fpjs/fingerprint.service.mjs +70 -70
- package/{esm2020 → esm2022}/lib/services/google-analytics/google-analytics.service.mjs +29 -29
- package/{esm2020 → esm2022}/lib/services/help/help.service.mjs +63 -63
- package/{esm2020 → esm2022}/lib/services/idle/idle.service.mjs +159 -159
- package/{esm2020 → esm2022}/lib/services/logger/logger.service.mjs +67 -67
- package/esm2022/lib/services/login/login.service.mjs +330 -0
- package/{esm2020 → esm2022}/lib/services/maintenance/maintenance.service.mjs +21 -21
- package/{esm2020 → esm2022}/lib/services/notification/notification.service.mjs +113 -113
- package/{esm2020 → esm2022}/lib/services/questionnaire/questionnaire.service.mjs +69 -69
- package/{esm2020 → esm2022}/lib/services/questionnaire/validation.service.mjs +59 -59
- package/{esm2020 → esm2022}/lib/services/security-service/security.service.mjs +35 -35
- package/{esm2020 → esm2022}/lib/services/tour/tour.service.mjs +60 -60
- package/{esm2020 → esm2022}/lib/services/util/util.service.mjs +424 -424
- package/esm2022/lib/validations/AppRegex.mjs +45 -0
- package/{esm2020 → esm2022}/lib/validations/AppValidators.mjs +165 -165
- package/{esm2020 → esm2022}/public-api.mjs +131 -131
- package/{esm2020 → esm2022}/reusa-ngx-reusa-app-lib.mjs +4 -4
- package/{fesm2020 → fesm2022}/reusa-ngx-reusa-app-lib.mjs +27966 -27877
- package/fesm2022/reusa-ngx-reusa-app-lib.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/annimations/app-animations.d.ts +3 -3
- package/lib/components/add-employer/add-employer.component.d.ts +276 -276
- package/lib/components/add-participant/add-participant.component.d.ts +45 -45
- package/lib/components/add-payment/add-payment.component.d.ts +33 -33
- package/lib/components/address/address.component.d.ts +68 -68
- package/lib/components/address/address.component.d.ts.map +1 -1
- package/lib/components/bank-details/bank-details.component.d.ts +39 -39
- package/lib/components/captcha/captcha.component.d.ts +44 -44
- package/lib/components/card/card.component.d.ts +11 -11
- package/lib/components/contact-us/contact-us.component.d.ts +105 -107
- package/lib/components/contact-us/contact-us.component.d.ts.map +1 -1
- package/lib/components/content/content.component.d.ts +13 -13
- package/lib/components/correspondence-download/correspondence-download.component.d.ts +21 -21
- package/lib/components/dashboard-card/dashboard-card.component.d.ts +25 -25
- package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -1
- package/lib/components/dependent-grid/dependent-grid.component.d.ts +35 -35
- package/lib/components/disclosure/disclosure.component.d.ts +12 -12
- package/lib/components/dropdown/dropdown.component.d.ts +581 -207
- package/lib/components/dropdown/dropdown.component.d.ts.map +1 -1
- package/lib/components/dropdown/dropdown.interface.d.ts +155 -0
- package/lib/components/dropdown/dropdown.interface.d.ts.map +1 -0
- package/lib/components/email-update/email-update.component.d.ts +31 -31
- package/lib/components/employer-grid/employer-grid.component.d.ts +95 -94
- package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -1
- package/lib/components/error/error.component.d.ts +17 -17
- package/lib/components/fav-menu/fav-menu.component.d.ts +21 -21
- package/lib/components/file-download/file-download.component.d.ts +22 -22
- package/lib/components/file-uploader/file-uploader.component.d.ts +47 -47
- package/lib/components/footer/footer.component.d.ts +36 -36
- package/lib/components/header/header.component.d.ts +59 -58
- package/lib/components/header/header.component.d.ts.map +1 -1
- package/lib/components/help/help.component.d.ts +10 -10
- package/lib/components/idle-detector/idle-detector.component.d.ts +15 -15
- package/lib/components/info/info.component.d.ts +22 -22
- package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +21 -21
- package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +33 -33
- package/lib/components/maintenance-detector/maintenance-detector.component.d.ts +15 -15
- package/lib/components/mask/mask.component.d.ts +11 -11
- package/lib/components/menu/menu.component.d.ts +43 -43
- package/lib/components/mfa/mfa.component.d.ts +59 -59
- package/lib/components/mfa-popup/mfa-popup.component.d.ts +16 -16
- package/lib/components/money-expect/money-expect.component.d.ts +18 -18
- package/lib/components/msg/msg.component.d.ts +10 -10
- package/lib/components/news/news.component.d.ts +14 -14
- package/lib/components/overlay-info/overlay-info.component.d.ts +34 -34
- package/lib/components/page/page.component.d.ts +23 -23
- package/lib/components/profile/profile.component.d.ts +28 -28
- package/lib/components/profile-redirect/profile-redirect.component.d.ts +13 -13
- package/lib/components/questionnaire/AppValidators.d.ts +14 -14
- package/lib/components/questionnaire/AppValidators.d.ts.map +1 -1
- package/lib/components/questionnaire/FbConstants.d.ts +7 -7
- package/lib/components/questionnaire/SelectItem.d.ts +4 -4
- package/lib/components/questionnaire/account-success/account-success.page.d.ts +53 -53
- package/lib/components/questionnaire/common-success/common-success.page.d.ts +75 -75
- package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +46 -46
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts +82 -82
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -1
- package/lib/components/questionnaire/dynamic-form.component.d.ts +130 -130
- package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -1
- package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +66 -64
- package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -1
- package/lib/components/questionnaire/input-focus.directive.d.ts +11 -11
- package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +38 -38
- package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -1
- package/lib/components/questionnaire/question-base.d.ts +16 -16
- package/lib/components/questionnaire/question-control.service.d.ts +19 -19
- package/lib/components/questionnaire/question-control.service.d.ts.map +1 -1
- package/lib/components/questionnaire/question.service.d.ts +18 -18
- package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +75 -74
- package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -1
- package/lib/components/read-more/read-more.component.d.ts +14 -14
- package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +67 -67
- package/lib/components/search-employer/search-employer.component.d.ts +37 -36
- package/lib/components/search-employer/search-employer.component.d.ts.map +1 -1
- package/lib/components/select/select.component.d.ts +55 -55
- package/lib/components/ssn/ssn.component.d.ts +11 -11
- package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +22 -22
- package/lib/components/test/test.component.d.ts +8 -8
- package/lib/components/user-login/user-login.component.d.ts +48 -48
- package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +59 -59
- package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +45 -45
- package/lib/directives/auto-focus/auto-focus.directive.d.ts +12 -12
- package/lib/directives/caps-lock.directive.d.ts +11 -11
- package/lib/directives/required-roles/required-roles.directive.d.ts +14 -14
- package/lib/enums/EmailStatusEnum.d.ts +7 -7
- package/lib/guards/auth.guard.d.ts +28 -28
- package/lib/guards/auth.guard.d.ts.map +1 -1
- package/lib/guards/no-login/no-login.guard.d.ts +11 -11
- package/lib/guards/no-login/no-login.guard.d.ts.map +1 -1
- package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts +22 -22
- package/lib/interceptors/header-interceptor/http-header.interceptor.d.ts +21 -21
- package/lib/interceptors/header-interceptor/http-header.interceptor.d.ts.map +1 -1
- package/lib/models/AddressComponentModel.d.ts +12 -12
- package/lib/models/BankDetailsComponentModel.d.ts +11 -11
- package/lib/models/BankDetailsModel.d.ts +4 -4
- package/lib/models/CinRequalificationCriteriaModel.d.ts +10 -10
- package/lib/models/EmployerDetailSearchResult.d.ts +47 -47
- package/lib/models/ErrorModel.d.ts +6 -6
- package/lib/models/FileModel.d.ts +4 -4
- package/lib/models/LibConstants.d.ts +112 -112
- package/lib/models/NewsAndAnnouncementModel.d.ts +5 -5
- package/lib/models/NotificationModel.d.ts +10 -10
- package/lib/models/OtpAuthModel.d.ts +6 -6
- package/lib/models/PaymentComponentModel.d.ts +7 -7
- package/lib/models/RequalifyLiftPageModel.d.ts +11 -11
- package/lib/models/SsaVerificationModel.d.ts +8 -8
- package/lib/models/TrendModel.d.ts +13 -13
- package/lib/models/UserDetailsModel.d.ts +9 -9
- package/lib/models/UserModel.d.ts +46 -46
- package/lib/models/case/CaseAttachmentModel.d.ts +5 -5
- package/lib/models/claimant/ClaimantModel.d.ts +22 -22
- package/lib/models/claimant/JobResultsData.d.ts +7 -7
- package/lib/models/claimant/MatchingJobs.d.ts +12 -12
- package/lib/models/claimant/ResetPasswordModel.d.ts +8 -8
- package/lib/models/cmp/CaseCoreModel.d.ts +20 -20
- package/lib/models/cmp/ComplaintCategoryModel.d.ts +8 -8
- package/lib/models/cmp/ComplaintCategoryOutputModel.d.ts +5 -5
- package/lib/models/cmp/ContactUsModel.d.ts +22 -22
- package/lib/models/cmp/EmailTemplateModel.d.ts +6 -6
- package/lib/models/cmp/contactUsInqueryModel.d.ts +46 -46
- package/lib/models/cmp/messageRourceModel.d.ts +5 -5
- package/lib/models/dashboard-model.d.ts +43 -43
- package/lib/models/dependent.model.d.ts +11 -18
- package/lib/models/dependent.model.d.ts.map +1 -1
- package/lib/models/questionnaire/ClaimAppEmpRequestModel.d.ts +8 -8
- package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +16 -16
- package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +151 -151
- package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +16 -16
- package/lib/models/questionnaire/ComboModel.d.ts +85 -85
- package/lib/models/questionnaire/ElementsModel.d.ts +68 -68
- package/lib/models/questionnaire/EmployerDetailSearchResult.d.ts +17 -17
- package/lib/models/questionnaire/EmployerWagesModel.d.ts +4 -4
- package/lib/models/questionnaire/FBConfigModel.d.ts +11 -11
- package/lib/models/questionnaire/KeyValueModel.d.ts +10 -10
- package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +10 -10
- package/lib/models/questionnaire/LoaderModel.d.ts +4 -4
- package/lib/models/questionnaire/PollingStatusModel.d.ts +6 -6
- package/lib/models/questionnaire/QtrYearEmployerWageModel.d.ts +8 -8
- package/lib/models/questionnaire/QuestionnaireQueryModel.d.ts +23 -23
- package/lib/models/questionnaire/QuestionnaireReturnModel.d.ts +20 -20
- package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts +24 -24
- package/lib/models/questionnaire/RequalifyLiftIssuesModel.d.ts +13 -13
- package/lib/models/questionnaire/ServiceActionResponseModel.d.ts +6 -6
- package/lib/models/questionnaire/StatusModel.d.ts +15 -15
- package/lib/models/questionnaire/SuccessPageElement.d.ts +8 -8
- package/lib/models/questionnaire/UI512AResponseModel.d.ts +12 -12
- package/lib/models/questionnaire/ValidationModel.d.ts +17 -17
- package/lib/ngx-reusa-app-lib.component.d.ts +8 -8
- package/lib/ngx-reusa-app-lib.module.d.ts +148 -145
- package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -1
- package/lib/ngx-reusa-app-lib.service.d.ts +6 -6
- package/lib/pages/BasePage.d.ts +26 -26
- package/lib/pages/common/accessibility-policy/accessibility-policy.page.d.ts +11 -11
- package/lib/pages/common/change-password/change-password.page.d.ts +40 -40
- package/lib/pages/common/landing/landing.component.d.ts +24 -24
- package/lib/pages/common/landing2/landing2.component.d.ts +30 -30
- package/lib/pages/common/login/login.component.d.ts +64 -64
- package/lib/pages/common/not-found/not-found.page.d.ts +8 -8
- package/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.d.ts +11 -11
- package/lib/pages/common/security-policy/security-policy.page.d.ts +11 -11
- package/lib/pages/common/unauthorized/unauthorized.page.d.ts +8 -8
- package/lib/pages/popovers/language/language.page.d.ts +16 -16
- package/lib/pages/popovers/my-notifications/my-notifications.page.d.ts +21 -21
- package/lib/pages/popovers/my-profile/my-profile.page.d.ts +20 -20
- package/lib/pages/popovers/user-search/user-search.component.d.ts +31 -31
- package/lib/pipes/filter.pipe.d.ts +7 -7
- package/lib/pipes/mask/mask.email.pipe.d.ts +10 -10
- package/lib/pipes/proper-case/proper-case.pipe.d.ts +8 -8
- package/lib/pipes/translate/dynamic-translate.pipe.d.ts +10 -10
- package/lib/pipes/trust-html/trust-html.pipe.d.ts +10 -10
- package/lib/services/base-service.d.ts +92 -92
- package/lib/services/captcha/captcha.service.d.ts +15 -15
- package/lib/services/case-service/case.service.d.ts +19 -19
- package/lib/services/chatbot/chatbot.service.d.ts +60 -60
- package/lib/services/chatbot/script.const.d.ts +15 -15
- package/lib/services/claimant/claimant.service.d.ts +17 -17
- package/lib/services/claimant-context/claimant-context.service.d.ts +18 -18
- package/lib/services/claimant-context/claimant-context.service.d.ts.map +1 -1
- package/lib/services/claimant-service/claimant.service.d.ts +19 -19
- package/lib/services/claims/claims.service.d.ts +39 -39
- package/lib/services/cmp-service/cmp.service.d.ts +33 -33
- package/lib/services/dms-service/dms.service.d.ts +23 -23
- package/lib/services/fpjs/fingerprint.service.d.ts +18 -18
- package/lib/services/google-analytics/google-analytics.service.d.ts +8 -8
- package/lib/services/help/help.service.d.ts +25 -25
- package/lib/services/help/help.service.d.ts.map +1 -1
- package/lib/services/idle/idle.service.d.ts +43 -43
- package/lib/services/logger/logger.service.d.ts +31 -31
- package/lib/services/logger/logger.service.d.ts.map +1 -1
- package/lib/services/login/login.service.d.ts +75 -75
- package/lib/services/login/login.service.d.ts.map +1 -1
- package/lib/services/maintenance/maintenance.service.d.ts +15 -15
- package/lib/services/notification/notification.service.d.ts +38 -38
- package/lib/services/questionnaire/questionnaire.service.d.ts +35 -35
- package/lib/services/questionnaire/validation.service.d.ts +81 -81
- package/lib/services/security-service/security.service.d.ts +14 -14
- package/lib/services/tour/tour.service.d.ts +24 -24
- package/lib/services/util/util.service.d.ts +190 -190
- package/lib/validations/AppRegex.d.ts +43 -43
- package/lib/validations/AppValidators.d.ts +53 -53
- package/package.json +6 -11
- package/public-api.d.ts +121 -121
- package/esm2020/lib/components/add-employer/add-employer.component.mjs +0 -3099
- package/esm2020/lib/components/add-participant/add-participant.component.mjs +0 -396
- package/esm2020/lib/components/add-payment/add-payment.component.mjs +0 -186
- package/esm2020/lib/components/address/address.component.mjs +0 -480
- package/esm2020/lib/components/bank-details/bank-details.component.mjs +0 -275
- package/esm2020/lib/components/captcha/captcha.component.mjs +0 -180
- package/esm2020/lib/components/card/card.component.mjs +0 -54
- package/esm2020/lib/components/contact-us/contact-us.component.mjs +0 -1004
- package/esm2020/lib/components/content/content.component.mjs +0 -60
- package/esm2020/lib/components/correspondence-download/correspondence-download.component.mjs +0 -82
- package/esm2020/lib/components/dashboard-card/dashboard-card.component.mjs +0 -219
- package/esm2020/lib/components/dependent-grid/dependent-grid.component.mjs +0 -297
- package/esm2020/lib/components/disclosure/disclosure.component.mjs +0 -59
- package/esm2020/lib/components/dropdown/dropdown.component.mjs +0 -1552
- package/esm2020/lib/components/email-update/email-update.component.mjs +0 -287
- package/esm2020/lib/components/employer-grid/employer-grid.component.mjs +0 -800
- package/esm2020/lib/components/error/error.component.mjs +0 -85
- package/esm2020/lib/components/fav-menu/fav-menu.component.mjs +0 -163
- package/esm2020/lib/components/file-uploader/file-uploader.component.mjs +0 -317
- package/esm2020/lib/components/footer/footer.component.mjs +0 -337
- package/esm2020/lib/components/header/header.component.mjs +0 -566
- package/esm2020/lib/components/help/help.component.mjs +0 -48
- package/esm2020/lib/components/idle-detector/idle-detector.component.mjs +0 -64
- package/esm2020/lib/components/job-search-result-page/job-search-result-page.component.mjs +0 -209
- package/esm2020/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +0 -192
- package/esm2020/lib/components/maintenance-detector/maintenance-detector.component.mjs +0 -42
- package/esm2020/lib/components/mask/mask.component.mjs +0 -48
- package/esm2020/lib/components/menu/menu.component.mjs +0 -430
- package/esm2020/lib/components/mfa/mfa.component.mjs +0 -451
- package/esm2020/lib/components/mfa-popup/mfa-popup.component.mjs +0 -49
- package/esm2020/lib/components/money-expect/money-expect.component.mjs +0 -89
- package/esm2020/lib/components/msg/msg.component.mjs +0 -48
- package/esm2020/lib/components/news/news.component.mjs +0 -89
- package/esm2020/lib/components/overlay-info/overlay-info.component.mjs +0 -235
- package/esm2020/lib/components/page/page.component.mjs +0 -138
- package/esm2020/lib/components/profile/profile.component.mjs +0 -182
- package/esm2020/lib/components/profile-redirect/profile-redirect.component.mjs +0 -62
- package/esm2020/lib/components/questionnaire/AppValidators.mjs +0 -523
- package/esm2020/lib/components/questionnaire/account-success/account-success.page.mjs +0 -259
- package/esm2020/lib/components/questionnaire/common-success/common-success.page.mjs +0 -483
- package/esm2020/lib/components/questionnaire/dynamic-form-panel.component.mjs +0 -1137
- package/esm2020/lib/components/questionnaire/dynamic-form-question.component.mjs +0 -1948
- package/esm2020/lib/components/questionnaire/dynamic-form.component.mjs +0 -1257
- package/esm2020/lib/components/questionnaire/form-builder/form-builder.page.mjs +0 -240
- package/esm2020/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +0 -259
- package/esm2020/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +0 -260
- package/esm2020/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.mjs +0 -703
- package/esm2020/lib/components/search-employer/search-employer.component.mjs +0 -142
- package/esm2020/lib/components/select/select.component.mjs +0 -153
- package/esm2020/lib/components/ssn/ssn.component.mjs +0 -43
- package/esm2020/lib/components/ssn-reverify/ssn-reverify.component.mjs +0 -150
- package/esm2020/lib/components/test/test.component.mjs +0 -18
- package/esm2020/lib/components/user-login/user-login.component.mjs +0 -401
- package/esm2020/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +0 -445
- package/esm2020/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +0 -308
- package/esm2020/lib/guards/no-login/no-login.guard.mjs +0 -21
- package/esm2020/lib/models/RequalifyLiftPageModel.mjs +0 -11
- package/esm2020/lib/models/cmp/CaseCoreModel.mjs +0 -3
- package/esm2020/lib/models/cmp/ContactUsModel.mjs +0 -3
- package/esm2020/lib/models/cmp/contactUsInqueryModel.mjs +0 -7
- package/esm2020/lib/models/dashboard-model.mjs +0 -3
- package/esm2020/lib/models/dependent.model.mjs +0 -8
- package/esm2020/lib/models/questionnaire/ComboModel.mjs +0 -337
- package/esm2020/lib/models/questionnaire/RequalifyLiftIssuesModel.mjs +0 -3
- package/esm2020/lib/models/questionnaire/StatusModel.mjs +0 -6
- package/esm2020/lib/models/questionnaire/UI512AResponseModel.mjs +0 -3
- package/esm2020/lib/ngx-reusa-app-lib.component.mjs +0 -22
- package/esm2020/lib/ngx-reusa-app-lib.module.mjs +0 -390
- package/esm2020/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +0 -80
- package/esm2020/lib/pages/common/change-password/change-password.page.mjs +0 -477
- package/esm2020/lib/pages/common/landing/landing.component.mjs +0 -207
- package/esm2020/lib/pages/common/landing2/landing2.component.mjs +0 -244
- package/esm2020/lib/pages/common/login/login.component.mjs +0 -542
- package/esm2020/lib/pages/common/not-found/not-found.page.mjs +0 -23
- package/esm2020/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.mjs +0 -305
- package/esm2020/lib/pages/common/security-policy/security-policy.page.mjs +0 -60
- package/esm2020/lib/pages/common/unauthorized/unauthorized.page.mjs +0 -23
- package/esm2020/lib/pages/popovers/language/language.page.mjs +0 -60
- package/esm2020/lib/pages/popovers/my-notifications/my-notifications.page.mjs +0 -205
- package/esm2020/lib/pages/popovers/my-profile/my-profile.page.mjs +0 -129
- package/esm2020/lib/pages/popovers/user-search/user-search.component.mjs +0 -253
- package/esm2020/lib/services/chatbot/script.const.mjs +0 -42
- package/esm2020/lib/services/claimant-context/claimant-context.service.mjs +0 -47
- package/esm2020/lib/services/login/login.service.mjs +0 -330
- package/esm2020/lib/validations/AppRegex.mjs +0 -45
- package/fesm2015/reusa-ngx-reusa-app-lib.mjs +0 -30728
- package/fesm2015/reusa-ngx-reusa-app-lib.mjs.map +0 -1
- 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwVmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQW9FLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzlHOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sYUFBYTtJQUV4QixNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBa0I7UUFDaEQsSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLENBQUMsS0FBSyxFQUFFO1lBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBRUQsTUFBTSxDQUFDLG1DQUFtQyxDQUFDLFNBQTJCO1FBQ3BFLE1BQU0sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN0RCxNQUFNLEVBQUUsS0FBSyxFQUFFLGVBQWUsRUFBRSxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNwRSxPQUFPLFFBQVEsS0FBSyxlQUFlLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMxRSxDQUFDO0lBRUQsV0FBVztJQUNYLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFtQixFQUFFLG1CQUEyQjtRQUN0RSxNQUFNLElBQUksR0FBRyxDQUFDLFNBQTJCLEVBQUUsRUFBRTtZQUMzQyxNQUFNLE9BQU8sR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1lBQ2hELE1BQU0sZUFB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LENBQUMsT0FBTyxDQUFDLEtBQUssS0FBSyxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFeEQsd0ZBQXdGO1lBQ3hGLE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUM5QixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsUUFBUSxDQUFDLG1CQUEyQixFQUFFLEtBQXVCO1FBQ2xFLE9BQU8sQ0FBQyxPQUF3QixFQUEwQixFQUFFO1lBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUNuQixPQUFPLElBQUksQ0FBQzthQUNiO1lBQ0QsSUFBSSxlQUFlLEdBQW9CLE9BQU8sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLG1CQUFtQixDQUFDLENBQUM7WUFDL0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFO2dCQUM1QyxzQ0FBc0M7Z0JBQ3RDLE9BQU8sSUFBSSxDQUFDO2FBQ2I7WUFFRCxNQUFNLEtBQUssR0FBRyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEtBQUssZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRXhELHdGQUF3RjtZQUN4RixPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDOUIsQ0FBQyxDQUFDO0lBQ0osQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBVbnR5cGVkRm9ybUdyb3VwLCBWYWxpZGF0aW9uRXJyb3JzLCBWYWxpZGF0b3JGbiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbi8qKipcbiAqIFxuICogQGRlc2NyaXB0aW9uIENsYXNzIENvbnRhaW5zIGFsbCBjb21tb24gZm9ybSB2YWxpZGF0aW9uIHVzZWQgaW4gdGhlIHByb2plY3QuXG4gKiBAYXV0aG9yIFByZXJhayBUaXdhcmlcbiAqL1xuZXhwb3J0IGNsYXNzIEFwcFZhbGlkYXRvcnMge1xuXG4gIHN0YXRpYyBjb25maXJtUGFzc3dvcmRWYWxpZGF0b3IoYzogQWJzdHJhY3RDb250cm9sKTogeyBpbnZhbGlkOiBib29sZWFuIH0ge1xuICAgIGlmIChjLmdldCgncGFzc3dvcmQnKS52YWx1ZSAhPSBjLmdldCgnY29uZmlybVBhc3N3b3JkJykudmFsdWUpIHtcbiAgICAgIHJldHVybiB7IGludmFsaWQ6IHRydWUgfTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgcGFzc3dvcmRBbmRDb25maXJtUGFzc3dvcmRNdXN0TWF0Y2goZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwKSB7XG4gICAgY29uc3QgeyB2YWx1ZTogcGFzc3dvcmQgfSA9IGZvcm1Hcm91cC5nZXQoJ3Bhc3N3b3JkJyk7XG4gICAgY29uc3QgeyB2YWx1ZTogY29uZmlybVBhc3N3b3JkIH0gPSBmb3JtR3JvdXAuZ2V0KCdjb25maXJtUGFzc3dvcmQnKTtcbiAgICByZXR1cm4gcGFzc3dvcmQgPT09IGNvbmZpcm1QYXNzd29yZCA/IG51bGwgOiB7IHBhc3N3b3JkTm90TWF0Y2g6IHRydWUgfTtcbiAgfVxuXG4gIC8vIEBkeW5hbWljXG4gIHN0YXRpYyBjb25maXJtVmFsaWRhdG9yKGNvbnRyb2xOYW1lOiBzdHJpbmcsIG1hdGNoaW5nQ29udHJvbE5hbWU6IHN0cmluZykge1xuICAgIGNvbnN0IGZ1bmMgPSAoZm9ybUdyb3VwOiBVbnR5cGVkRm9ybUdyb3VwKSA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xOYW1lXTtcbiAgICAgIGNvbnN0IG1hdGNoaW5nQ29udHJvbCA9IGZvcm1Hcm91cC5jb250cm9sc1ttYXRjaGluZ0NvbnRyb2xOYW1lXTtcbiAgICAgIGlmIChtYXRjaGluZ0NvbnRyb2wuZXJyb3JzICYmICFtYXRjaGluZ0NvbnRyb2wuZXJyb3JzLmNvbmZpcm1lZFZhbGlkYXRvcikge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoY29udHJvbC52YWx1ZSAhPT0gbWF0Y2hpbmdDb250cm9sLnZhbHVlKSB7XG4gICAgICAgIG1hdGNoaW5nQ29udHJvbC5zZXRFcnJvcnMoeyBub3RNYXRjaDogdHJ1ZSB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG1hdGNoaW5nQ29udHJvbC5zZXRFcnJvcnMobnVsbCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmdW5jO1xuICB9XG4gIFxuICAvLyBAZHluYW1pY1xuICBzdGF0aWMgc2VsZWN0QXRsZWFzdE9uZSh2YWxpZGF0b3I6IFZhbGlkYXRvckZuKSB7XG4gICAgY29uc3QgZnVuYyA9IChncm91cDogVW50eXBlZEZvcm1Hcm91cCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcbiAgICAgIGNvbnN0IGlzQXRsZWFzdE9uZVBhc3NUaGVWYWxpZGF0aW9uID0gZ3JvdXAgJiYgZ3JvdXAuY29udHJvbHMgJiYgT2JqZWN0LmtleXMoZ3JvdXAuY29udHJvbHMpLnNvbWUoayA9PiAhdmFsaWRhdG9yKGdyb3VwLmNvbnRyb2xzW2tdKSk7XG4gICAgICByZXR1cm4gaXNBdGxlYXN0T25lUGFzc1RoZVZhbGlkYXRpb24gPyBudWxsIDogeyBzZWxlY3RBdGxlYXN0T25lOiB0cnVlIH07XG4gICAgfVxuICAgIHJldHVybiBmdW5jO1xuICB9XG5cbiAgLy8gQGR5bmFtaWNcbiAgc3RhdGljIHJlcXVpcmVkSWZWYWxpZGF0b3IocHJlZGljYXRlKSB7XG4gICAgY29uc3QgZnVuYyA9IChmb3JtQ29udHJvbCA9PiB7XG4gICAgICBpZiAoIWZvcm1Db250cm9sLnBhcmVudCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgaWYgKHByZWRpY2F0ZSgpID09PSAnMScgfHwgcHJlZGljYXRlKCkgPT09ICd0cnVlJyB8fCBwcmVkaWNhdGUoKSkge1xuICAgICAgICByZXR1cm4gVmFsaWRhdG9ycy5yZXF1aXJlZChmb3JtQ29udHJvbCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9KVxuICAgIHJldHVybiBmdW5jO1xuICB9XG5cbiAgLyoqXG4gICAqIFxuICAgKiBAcGFyYW0gcmVnZXggUmVndWxhciBFeHByZXNzaW9uIGFnYWluc3Qgd2hpY2ggdmFsdWUgbmVlZHMgdG8gYmUgdmFsaWRhdGVkXG4gICAqIEBwYXJhbSBlcnJvciBFcnJvciB3aGljaCBzaG91bGQgYmUgcmV0dXJuZWQgaW4gY2FzZSB2YWxpZGF0aW9uIGZhaWxzXG4gICAqIFxuICAgKiBAZGVzY3JpcHRpb24gRm9ybSB2YWxpZGF0b3IgdG8gdmFsaWRhdGUgY29udHJvbCB2YWx1ZSBhZ2FpbnN0IGEgcmVndWxhciBleHByZXNzaW9uXG4gICAqIFxuICAgKiBAYXV0aG9yIFByZXJhayBUaXdhcmlcbiAgICovXG4gICBzdGF0aWMgbWF0Y2gocmVnZXg6IFJlZ0V4cCwgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMpOiBWYWxpZGF0b3JGbiB7XG4gICAgY29uc3QgZnVuYyA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcbiAgICAgIGlmICghY29udHJvbC52YWx1ZSkge1xuICAgICAgICAvLyBpZiBjb250cm9sIGlzIGVtcHR5IHJldHVybiBubyBlcnJvclxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgLy8gdGVzdCB0aGUgdmFsdWUgb2YgdGhlIGNvbnRyb2wgYWdhaW5zdCB0aGUgcmVnZXhwIHN1cHBsaWVkXG4gICAgICBjb25zdCB2YWxpZCA9IHJlZ2V4LnRlc3QoY29udHJvbC52YWx1ZSk7XG4gICAgICAvLyBpZiB0cnVlLCByZXR1cm4gbm8gZXJyb3IgKG5vIGVycm9yKSwgZWxzZSByZXR1cm4gZXJyb3IgcGFzc2VkIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyXG4gICAgICByZXR1cm4gdmFsaWQgPyBudWxsIDogZXJyb3I7XG4gICAgfTtcbiAgICByZXR1cm4gZnVuYztcbiAgfVxuXG4gICAgLyoqKlxuICAgICogVGhpcyBtZXRob2QgY2hlY2tzIGlmIHRoZSBlbnRlcmVkIHJvdXRpbmcgbnVtYmVyIGlzIHZhbGlkIG9yIG5vdCBhcyBwZXIgZm9sbG93aW5nIGxvZ2ljXG4gICAgKiBcbiAgICAqICgzICogKGQxICsgZDQgKyBkNykgKyA3ICogKGQyICsgZDUgKyBkOCkgKyAxICogKGQzICsgZDYgKyBkOSkgKSBtb2QgMTAgPSAwXG4gICAgKiBcbiAgICAqICBUaGlzIGZvcm11bGEgaXMgdGFrZW4gZnJvbSBodHRwczovL2VuLndpa2lwZWRpYS5vcmcvd2lraS9Sb3V0aW5nX3RyYW5zaXRfbnVtYmVyI01JQ1JfUm91dGluZ19udW1iZXJfZm9ybWF0XG4gICAgKi9cbiAgc3RhdGljIGlzVmFsaWRSb3V0aW5nTnVtYmVyKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW3M6IHN0cmluZ106IGJvb2xlYW4gfSB7XG4gICAgbGV0IHJvdXRpbmdOdW1iZXIgPSBjb250cm9sLnZhbHVlO1xuICAgIGxldCBzdW0gPSAwLCBtb2QgPSAwO1xuICAgIGxldCByb3V0aW5nTnVtYmVyQXJyID0gKHJvdXRpbmdOdW1iZXIgKyBcIlwiKS5zcGxpdChcIlwiKTtcbiAgICBsZXQgc3VtMSA9IDMgKiAocGFyc2VJbnQocm91dGluZ051bWJlckFyclswXSkgKyBwYXJzZUludChyb3V0aW5nTnVtYmVyQXJyWzNdKSArIHBhcnNlSW50KHJvdXRpbmdOdW1iZXJBcnJbNl0pKTtcbiAgICBsZXQgc3VtMiA9IDcgKiAocGFyc2VJbnQocm91dGluZ051bWJlckFyclsxXSkgKyBwYXJzZUludChyb3V0aW5nTnVtYmVyQXJyWzRdKSArIHBhcnNlSW50KHJvdXRpbmdOdW1iZXJBcnJbN10pKTtcbiAgICBsZXQgc3VtMyA9IDEgKiAocGFyc2VJbnQocm91dGluZ051bWJlckFyclsyXSkgKyBwYXJzZUludChyb3V0aW5nTnVtYmVyQXJyWzVdKSArIHBhcnNlSW50KHJvdXRpbmdOdW1iZXJBcnJbOF0pKTtcblxuICAgIHN1bSA9IHN1bTEgKyBzdW0yICsgc3VtMztcbiAgICBtb2QgPSBzdW0gJSAxMDtcblxuICAgIGlmICghKG1vZCA9PSAwKSkge1xuICAgICAgcmV0dXJuIHsgaXNSb3V0aW5nTnVtYmVyTm90VmFsaWQ6IHRydWUgfTtcbiAgICB9XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgc3RhdGljIGlzVmFsaWRaaXBDb2RlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW3M6IHN0cmluZ106IGJvb2xlYW4gfXtcbiAgICBpZihjb250cm9sLnZhbHVlICE9IG51bGwgJiYgIUFwcFZhbGlkYXRvcnMuaXNOdW1iZXIoY29udHJvbC52YWx1ZSkpe1xuICAgICAgcmV0dXJuIHtpbnZhbGlkTnVtYmVyIDogdHJ1ZX07XG4gICAgfWVsc2UgaWYoY29udHJvbC52YWx1ZSAhPSBudWxsICYmIChjb250cm9sLnZhbHVlLmxlbmd0aCA9PSA1IHx8IGNvbnRyb2wudmFsdWUubGVuZ3RoID09IDkpKXtcbiAgICAgIC8vZG8gbm90aGluZ1xuICAgIH1lbHNle1xuICAgICAgcmV0dXJuIHtpbnZhbGlkTGVuZ3RoIDogdHJ1ZX07XG4gICAgfVxuICB9XG5cbiAgc3RhdGljIGlzTnVtYmVyKG51bWJlcikge1xuICAgIHZhciByZWcgPSBuZXcgUmVnRXhwKFwiXlswLTldKiRcIik7IFxuICAgIHJldHVybiByZWcudGVzdChudW1iZXIpO1xuICB9XG5cbiAgc3RhdGljIGlzQmV0d2Vlbihmcm9tIDogRGF0ZSwgdG86IERhdGUpIDogVmFsaWRhdG9yRm4ge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9PiB7XG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUpIHtcbiAgICAgICAgLy8gaWYgY29udHJvbCBpcyBlbXB0eSByZXR1cm4gbm8gZXJyb3JcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBsZXQgd3NEYXRlID0gY29udHJvbC52YWx1ZTtcbiAgICAgIGlmKHdzRGF0ZS5nZXRUaW1lKCkgPCBmcm9tLmdldFRpbWUoKSB8fCB3c0RhdGUuZ2V0VGltZSgpID4gdG8uZ2V0VGltZSgpKXtcbiAgICAgICAgcmV0dXJuIHtkYXRlTm90QmV0d2VlbiA6IHRydWV9O1xuICAgICAgfVxuICAgIH07XG4gIH1cblxuICBzdGF0aWMgZXF1YWwobWF0Y2hpbmdDb250cm9sTmFtZTogc3RyaW5nLCBlcnJvcjogVmFsaWRhdGlvbkVycm9ycyk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPT4ge1xuICAgICAgaWYgKCFjb250cm9sLnBhcmVudCkge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cbiAgICAgIGxldCBtYXRjaGluZ0NvbnRyb2w6IEFic3RyYWN0Q29udHJvbCA9IGNvbnRyb2wucGFyZW50LmdldChtYXRjaGluZ0NvbnRyb2xOYW1lKTtcbiAgICAgIGlmICghY29udHJvbC52YWx1ZSB8fCAhbWF0Y2hpbmdDb250cm9sLnZhbHVlKSB7XG4gICAgICAgIC8vIGlmIGNvbnRyb2wgaXMgZW1wdHkgcmV0dXJuIG5vIGVycm9yXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2YWxpZCA9IChjb250cm9sLnZhbHVlID09PSBtYXRjaGluZ0NvbnRyb2wudmFsdWUpO1xuXG4gICAgICAvLyBpZiB0cnVlLCByZXR1cm4gbm8gZXJyb3IgKG5vIGVycm9yKSwgZWxzZSByZXR1cm4gZXJyb3IgcGFzc2VkIGluIHRoZSBzZWNvbmQgcGFyYW1ldGVyXG4gICAgICByZXR1cm4gdmFsaWQgPyBudWxsIDogZXJyb3I7XG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBcbiAgICogQHBhcmFtIG1hdGNoaW5nQ29udHJvbE5hbWUgRm9ybSBjb250cm9sIG5hbWUgYWdhaW5zdCB3aGljaCBjdXJyZW50IGZvcm0gY29udHJvbCB2YWx1ZSBzaG91bGQgYmUgbWF0Y2hlZFxuICAgKiBAcGFyYW0gZXJyb3IgRXJyb3Igd2hpY2ggc2hvdWxkIGJlIHJldHVybmVkIGluIGNhc2UgdmFsaWRhdGlvbiBmYWlsc1xuICAgKiBcbiAgICogQGRlc2NyaXB0aW9uIEZvcm0gdmFsaWRhdG9yIHRvIHZhbGlkYXRlIGNvbnRyb2wgdmFsdWUgYWdhaW5zdCBhIG90aGVyIGNvbnRyb2wgdmFsdWVcbiAgICogXG4gICAqIEBhdXRob3IgUHJlcmFrIFRpd2FyaVxuICAgKi9cbiAgc3RhdGljIG5vdEVxdWFsKG1hdGNoaW5nQ29udHJvbE5hbWU6IHN0cmluZywgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMpOiBWYWxpZGF0b3JGbiB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcbiAgICAgIGlmICghY29udHJvbC5wYXJlbnQpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICB9XG4gICAgICBsZXQgbWF0Y2hpbmdDb250cm9sOiBBYnN0cmFjdENvbnRyb2wgPSBjb250cm9sLnBhcmVudC5nZXQobWF0Y2hpbmdDb250cm9sTmFtZSk7XG4gICAgICBpZiAoIWNvbnRyb2wudmFsdWUgfHwgIW1hdGNoaW5nQ29udHJvbC52YWx1ZSkge1xuICAgICAgICAvLyBpZiBjb250cm9sIGlzIGVtcHR5IHJldHVybiBubyBlcnJvclxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgdmFsaWQgPSAoY29udHJvbC52YWx1ZSAhPT0gbWF0Y2hpbmdDb250cm9sLnZhbHVlKTtcblxuICAgICAgLy8gaWYgdHJ1ZSwgcmV0dXJuIG5vIGVycm9yIChubyBlcnJvciksIGVsc2UgcmV0dXJuIGVycm9yIHBhc3NlZCBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlclxuICAgICAgcmV0dXJuIHZhbGlkID8gbnVsbCA6IGVycm9yO1xuICAgIH07XG4gIH1cbn0iXX0=
|