@ksremp/ngx-ksremp-app-lib 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +46 -0
- package/esm2022/ksremp-ngx-ksremp-app-lib.mjs +5 -0
- package/esm2022/lib/annimations/app-animations.mjs +37 -0
- package/esm2022/lib/components/add-employer/add-employer.component.mjs +2655 -0
- package/esm2022/lib/components/add-participant/add-participant.component.mjs +399 -0
- package/esm2022/lib/components/add-payment/add-payment.component.mjs +201 -0
- package/esm2022/lib/components/address/address.component.mjs +565 -0
- package/esm2022/lib/components/bank-details/bank-details.component.mjs +416 -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 +984 -0
- package/esm2022/lib/components/content/content.component.mjs +61 -0
- package/esm2022/lib/components/correspondence-download/correspondence-download.component.mjs +89 -0
- package/esm2022/lib/components/dashboard-card/dashboard-card.component.mjs +223 -0
- package/esm2022/lib/components/dependent-grid/dependent-grid.component.mjs +301 -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 +376 -0
- package/esm2022/lib/components/employer-grid/employer-grid.component.mjs +1102 -0
- package/esm2022/lib/components/error/error.component.mjs +86 -0
- package/esm2022/lib/components/fav-menu/fav-menu.component.mjs +163 -0
- package/esm2022/lib/components/file-download/file-download.component.mjs +104 -0
- package/esm2022/lib/components/file-uploader/file-uploader.component.mjs +315 -0
- package/esm2022/lib/components/footer/footer.component.mjs +350 -0
- package/esm2022/lib/components/header/header.component.mjs +535 -0
- package/esm2022/lib/components/help/help.component.mjs +49 -0
- package/esm2022/lib/components/idle-detector/idle-detector.component.mjs +76 -0
- package/esm2022/lib/components/info/info.component.mjs +187 -0
- package/esm2022/lib/components/job-search-result-page/job-search-result-page.component.mjs +212 -0
- package/esm2022/lib/components/job-title/job-title.component.mjs +162 -0
- package/esm2022/lib/components/legal-disclaimar/legal-disclaimar.component.mjs +617 -0
- package/esm2022/lib/components/lexis-nexis/lexis-nexis.component.mjs +402 -0
- package/esm2022/lib/components/link/link.component.mjs +131 -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 +452 -0
- package/esm2022/lib/components/mfa/mfa.component.mjs +574 -0
- package/esm2022/lib/components/mfa-popup/mfa-popup.component.mjs +57 -0
- package/esm2022/lib/components/mfa2/mfa2.component.mjs +285 -0
- package/esm2022/lib/components/money-expect/money-expect.component.mjs +98 -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 +505 -0
- package/esm2022/lib/components/profile-redirect/profile-redirect.component.mjs +70 -0
- package/esm2022/lib/components/questionnaire/AppValidators.mjs +541 -0
- package/esm2022/lib/components/questionnaire/FbConstants.mjs +8 -0
- package/esm2022/lib/components/questionnaire/SelectItem.mjs +2 -0
- package/esm2022/lib/components/questionnaire/account-success/account-success.page.mjs +310 -0
- package/esm2022/lib/components/questionnaire/common-success/common-success.page.mjs +528 -0
- package/esm2022/lib/components/questionnaire/dynamic-form-panel.component.mjs +1115 -0
- package/esm2022/lib/components/questionnaire/dynamic-form-question.component.mjs +2521 -0
- package/esm2022/lib/components/questionnaire/dynamic-form.component.mjs +1788 -0
- package/esm2022/lib/components/questionnaire/form-builder/form-builder.page.mjs +256 -0
- package/esm2022/lib/components/questionnaire/input-focus.directive.mjs +44 -0
- package/esm2022/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.mjs +255 -0
- package/esm2022/lib/components/questionnaire/question-base.mjs +3 -0
- package/esm2022/lib/components/questionnaire/question-control.service.mjs +408 -0
- package/esm2022/lib/components/questionnaire/question.service.mjs +33 -0
- package/esm2022/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.mjs +282 -0
- package/esm2022/lib/components/read-more/read-more.component.mjs +72 -0
- 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 +132 -0
- package/esm2022/lib/components/security-question/security-question.component.mjs +199 -0
- package/esm2022/lib/components/select/select.component.mjs +159 -0
- package/esm2022/lib/components/sign-ssn/sign-ssn.component.mjs +141 -0
- package/esm2022/lib/components/ssn/ssn.component.mjs +44 -0
- package/esm2022/lib/components/ssn-reverify/ssn-reverify.component.mjs +171 -0
- package/esm2022/lib/components/test/test.component.mjs +19 -0
- package/esm2022/lib/components/user-login/user-login.component.mjs +619 -0
- package/esm2022/lib/components/weekly-cert-employer/weekly-cert-employer.component.mjs +772 -0
- package/esm2022/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.mjs +356 -0
- package/esm2022/lib/directives/auto-focus/auto-focus.directive.mjs +31 -0
- package/esm2022/lib/directives/caps-lock.directive.mjs +38 -0
- package/esm2022/lib/directives/required-roles/required-roles.directive.mjs +30 -0
- package/esm2022/lib/enums/EmailStatusEnum.mjs +9 -0
- package/esm2022/lib/guards/auth.guard.mjs +138 -0
- package/esm2022/lib/guards/no-login/no-login.guard.mjs +21 -0
- package/esm2022/lib/interceptors/error-interceptor/http-error-interceptor.mjs +107 -0
- package/esm2022/lib/interceptors/header-interceptor/http-header.interceptor.mjs +99 -0
- package/esm2022/lib/models/AddressComponentModel.mjs +3 -0
- package/esm2022/lib/models/BankDetailsComponentModel.mjs +3 -0
- package/esm2022/lib/models/BankDetailsModel.mjs +3 -0
- package/esm2022/lib/models/CinRequalificationCriteriaModel.mjs +3 -0
- package/esm2022/lib/models/EmployerDetailSearchResult.mjs +6 -0
- package/esm2022/lib/models/ErrorModel.mjs +6 -0
- package/esm2022/lib/models/FileModel.mjs +2 -0
- package/esm2022/lib/models/LexisNexisAccountCreationModel.mjs +2 -0
- package/esm2022/lib/models/LexisNexisAuthSelectionRequestModel.mjs +2 -0
- package/esm2022/lib/models/LexisNexisAuthSelectionResponseModel.mjs +2 -0
- package/esm2022/lib/models/LexisNexisEnabledResponseModel.mjs +2 -0
- package/esm2022/lib/models/LexisNexisResponseModel.mjs +3 -0
- package/esm2022/lib/models/LibConstants.mjs +132 -0
- package/esm2022/lib/models/NewsAndAnnouncementModel.mjs +3 -0
- package/esm2022/lib/models/NotificationModel.mjs +6 -0
- package/esm2022/lib/models/OtpAuthModel.mjs +3 -0
- package/esm2022/lib/models/PartialEmploymentModel.mjs +3 -0
- package/esm2022/lib/models/PaymentComponentModel.mjs +2 -0
- package/esm2022/lib/models/RequalifyLiftPageModel.mjs +11 -0
- package/esm2022/lib/models/SecurityQuestionModel.mjs +3 -0
- package/esm2022/lib/models/SsaVerificationModel.mjs +3 -0
- package/esm2022/lib/models/TrendModel.mjs +3 -0
- package/esm2022/lib/models/UserDetailsModel.mjs +3 -0
- package/esm2022/lib/models/UserModel.mjs +6 -0
- package/esm2022/lib/models/case/CaseAttachmentModel.mjs +3 -0
- package/esm2022/lib/models/claimant/ClaimantModel.mjs +3 -0
- package/esm2022/lib/models/claimant/JobResultsData.mjs +3 -0
- package/esm2022/lib/models/claimant/MatchingJobs.mjs +3 -0
- package/esm2022/lib/models/claimant/ResetPasswordModel.mjs +3 -0
- package/esm2022/lib/models/cmp/CaseCoreModel.mjs +3 -0
- package/esm2022/lib/models/cmp/ComplaintCategoryModel.mjs +3 -0
- package/esm2022/lib/models/cmp/ComplaintCategoryOutputModel.mjs +5 -0
- package/esm2022/lib/models/cmp/ContactUsModel.mjs +3 -0
- package/esm2022/lib/models/cmp/EmailTemplateModel.mjs +3 -0
- package/esm2022/lib/models/cmp/contactUsInqueryModel.mjs +7 -0
- package/esm2022/lib/models/cmp/messageRourceModel.mjs +3 -0
- package/esm2022/lib/models/dashboard-model.mjs +3 -0
- package/esm2022/lib/models/dependent.model.mjs +8 -0
- package/esm2022/lib/models/questionnaire/AutocoderModel.mjs +3 -0
- package/esm2022/lib/models/questionnaire/ClaimAppEmpRequestModel.mjs +3 -0
- package/esm2022/lib/models/questionnaire/ClaimAppEmpResponseModel.mjs +8 -0
- package/esm2022/lib/models/questionnaire/ClaimAppEmployerDetailsModel.mjs +6 -0
- package/esm2022/lib/models/questionnaire/ClaimOnlyEmployerDataModel.mjs +3 -0
- package/esm2022/lib/models/questionnaire/ComboModel.mjs +1010 -0
- package/esm2022/lib/models/questionnaire/ElementsModel.mjs +8 -0
- package/esm2022/lib/models/questionnaire/EmployerDetailSearchResult.mjs +3 -0
- package/esm2022/lib/models/questionnaire/EmployerWagesModel.mjs +3 -0
- package/esm2022/lib/models/questionnaire/FBConfigModel.mjs +6 -0
- package/esm2022/lib/models/questionnaire/KeyValueModel.mjs +3 -0
- package/esm2022/lib/models/questionnaire/LegalDiscaimarModel.mjs +3 -0
- package/esm2022/lib/models/questionnaire/LoaderModel.mjs +3 -0
- package/esm2022/lib/models/questionnaire/PollingStatusModel.mjs +3 -0
- package/esm2022/lib/models/questionnaire/QtrYearEmployerWageModel.mjs +3 -0
- package/esm2022/lib/models/questionnaire/QuestionnaireQueryModel.mjs +8 -0
- package/esm2022/lib/models/questionnaire/QuestionnaireReturnModel.mjs +11 -0
- package/esm2022/lib/models/questionnaire/QuestionnaireSaveModel.mjs +3 -0
- package/esm2022/lib/models/questionnaire/RequalifyLiftIssuesModel.mjs +3 -0
- package/esm2022/lib/models/questionnaire/ServiceActionResponseModel.mjs +3 -0
- package/esm2022/lib/models/questionnaire/StatusModel.mjs +6 -0
- package/esm2022/lib/models/questionnaire/SuccessPageElement.mjs +3 -0
- package/esm2022/lib/models/questionnaire/UI512AResponseModel.mjs +3 -0
- package/esm2022/lib/models/questionnaire/ValidationModel.mjs +3 -0
- package/esm2022/lib/ngx-reusa-app-lib.component.mjs +23 -0
- package/esm2022/lib/ngx-reusa-app-lib.module.mjs +410 -0
- package/esm2022/lib/ngx-reusa-app-lib.service.mjs +14 -0
- package/esm2022/lib/pages/BasePage.mjs +98 -0
- package/esm2022/lib/pages/common/accessibility-policy/accessibility-policy.page.mjs +77 -0
- package/esm2022/lib/pages/common/change-password/change-password.page.mjs +471 -0
- package/esm2022/lib/pages/common/landing/landing.component.mjs +209 -0
- package/esm2022/lib/pages/common/landing2/landing2.component.mjs +244 -0
- package/esm2022/lib/pages/common/login/login.component.mjs +533 -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 +62 -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/esm2022/lib/pipes/filter.pipe.mjs +30 -0
- package/esm2022/lib/pipes/mask/mask.email.pipe.mjs +23 -0
- package/esm2022/lib/pipes/proper-case/proper-case.pipe.mjs +27 -0
- package/esm2022/lib/pipes/translate/dynamic-translate.pipe.mjs +44 -0
- package/esm2022/lib/pipes/trust-html/trust-html.pipe.mjs +20 -0
- package/esm2022/lib/services/base-service.mjs +50 -0
- package/esm2022/lib/services/captcha/captcha.service.mjs +46 -0
- package/esm2022/lib/services/case-service/case.service.mjs +47 -0
- package/esm2022/lib/services/chatbot/chatbot.service.mjs +258 -0
- package/esm2022/lib/services/chatbot/script.const.mjs +42 -0
- package/esm2022/lib/services/claimant/claimant.service.mjs +31 -0
- package/esm2022/lib/services/claimant-context/claimant-context.service.mjs +48 -0
- package/esm2022/lib/services/claimant-service/claimant-usps-redirect.service.mjs +36 -0
- package/esm2022/lib/services/claimant-service/claimant.service.mjs +62 -0
- package/esm2022/lib/services/claims/claims.service.mjs +102 -0
- package/esm2022/lib/services/cmp-service/cmp.service.mjs +84 -0
- package/esm2022/lib/services/dms-service/dms.service.mjs +60 -0
- package/esm2022/lib/services/fpjs/fingerprint.service.mjs +70 -0
- package/esm2022/lib/services/google-analytics/google-analytics.service.mjs +29 -0
- package/esm2022/lib/services/help/help.service.mjs +63 -0
- package/esm2022/lib/services/idle/idle.service.mjs +159 -0
- package/esm2022/lib/services/lexis-nexis/lexis.nexis.service.mjs +60 -0
- package/esm2022/lib/services/logger/logger.service.mjs +67 -0
- package/esm2022/lib/services/login/login.service.mjs +343 -0
- package/esm2022/lib/services/maintenance/maintenance.service.mjs +21 -0
- package/esm2022/lib/services/notification/notification.service.mjs +113 -0
- package/esm2022/lib/services/ovp/ovp.service.mjs +43 -0
- package/esm2022/lib/services/questionnaire/questionnaire.service.mjs +69 -0
- package/esm2022/lib/services/questionnaire/validation.service.mjs +59 -0
- package/esm2022/lib/services/security-service/security.service.mjs +42 -0
- package/esm2022/lib/services/tour/tour.service.mjs +60 -0
- package/esm2022/lib/services/util/util.service.mjs +450 -0
- package/esm2022/lib/services/weekly-cert/weekly-cert-v2.service.mjs +42 -0
- package/esm2022/lib/validations/AppRegex.mjs +51 -0
- package/esm2022/lib/validations/AppValidators.mjs +253 -0
- package/esm2022/public-api.mjs +138 -0
- package/fesm2022/ksremp-ngx-ksremp-app-lib.mjs +33786 -0
- package/fesm2022/ksremp-ngx-ksremp-app-lib.mjs.map +1 -0
- package/index.d.ts +6 -0
- package/ksremp-ngx-ksremp-app-lib.d.ts.map +1 -0
- package/lib/annimations/app-animations.d.ts +4 -0
- package/lib/annimations/app-animations.d.ts.map +1 -0
- package/lib/components/add-employer/add-employer.component.d.ts +234 -0
- package/lib/components/add-employer/add-employer.component.d.ts.map +1 -0
- package/lib/components/add-participant/add-participant.component.d.ts +49 -0
- package/lib/components/add-participant/add-participant.component.d.ts.map +1 -0
- package/lib/components/add-payment/add-payment.component.d.ts +33 -0
- package/lib/components/add-payment/add-payment.component.d.ts.map +1 -0
- package/lib/components/address/address.component.d.ts +81 -0
- package/lib/components/address/address.component.d.ts.map +1 -0
- package/lib/components/bank-details/bank-details.component.d.ts +62 -0
- package/lib/components/bank-details/bank-details.component.d.ts.map +1 -0
- package/lib/components/captcha/captcha.component.d.ts +45 -0
- package/lib/components/captcha/captcha.component.d.ts.map +1 -0
- package/lib/components/card/card.component.d.ts +12 -0
- package/lib/components/card/card.component.d.ts.map +1 -0
- package/lib/components/contact-us/contact-us.component.d.ts +109 -0
- package/lib/components/contact-us/contact-us.component.d.ts.map +1 -0
- package/lib/components/content/content.component.d.ts +14 -0
- package/lib/components/content/content.component.d.ts.map +1 -0
- package/lib/components/correspondence-download/correspondence-download.component.d.ts +22 -0
- package/lib/components/correspondence-download/correspondence-download.component.d.ts.map +1 -0
- package/lib/components/dashboard-card/dashboard-card.component.d.ts +26 -0
- package/lib/components/dashboard-card/dashboard-card.component.d.ts.map +1 -0
- package/lib/components/dependent-grid/dependent-grid.component.d.ts +36 -0
- package/lib/components/dependent-grid/dependent-grid.component.d.ts.map +1 -0
- package/lib/components/disclosure/disclosure.component.d.ts +13 -0
- package/lib/components/disclosure/disclosure.component.d.ts.map +1 -0
- package/lib/components/dropdown/dropdown.component.d.ts +582 -0
- package/lib/components/dropdown/dropdown.component.d.ts.map +1 -0
- 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 +43 -0
- package/lib/components/email-update/email-update.component.d.ts.map +1 -0
- package/lib/components/employer-grid/employer-grid.component.d.ts +90 -0
- package/lib/components/employer-grid/employer-grid.component.d.ts.map +1 -0
- package/lib/components/error/error.component.d.ts +18 -0
- package/lib/components/error/error.component.d.ts.map +1 -0
- package/lib/components/fav-menu/fav-menu.component.d.ts +22 -0
- package/lib/components/fav-menu/fav-menu.component.d.ts.map +1 -0
- package/lib/components/file-download/file-download.component.d.ts +23 -0
- package/lib/components/file-download/file-download.component.d.ts.map +1 -0
- package/lib/components/file-uploader/file-uploader.component.d.ts +48 -0
- package/lib/components/file-uploader/file-uploader.component.d.ts.map +1 -0
- package/lib/components/footer/footer.component.d.ts +37 -0
- package/lib/components/footer/footer.component.d.ts.map +1 -0
- package/lib/components/header/header.component.d.ts +64 -0
- package/lib/components/header/header.component.d.ts.map +1 -0
- package/lib/components/help/help.component.d.ts +11 -0
- package/lib/components/help/help.component.d.ts.map +1 -0
- package/lib/components/idle-detector/idle-detector.component.d.ts +16 -0
- package/lib/components/idle-detector/idle-detector.component.d.ts.map +1 -0
- package/lib/components/info/info.component.d.ts +23 -0
- package/lib/components/info/info.component.d.ts.map +1 -0
- package/lib/components/job-search-result-page/job-search-result-page.component.d.ts +24 -0
- package/lib/components/job-search-result-page/job-search-result-page.component.d.ts.map +1 -0
- package/lib/components/job-title/job-title.component.d.ts +38 -0
- package/lib/components/job-title/job-title.component.d.ts.map +1 -0
- package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts +39 -0
- package/lib/components/legal-disclaimar/legal-disclaimar.component.d.ts.map +1 -0
- package/lib/components/lexis-nexis/lexis-nexis.component.d.ts +59 -0
- package/lib/components/lexis-nexis/lexis-nexis.component.d.ts.map +1 -0
- package/lib/components/link/link.component.d.ts +35 -0
- package/lib/components/link/link.component.d.ts.map +1 -0
- package/lib/components/maintenance-detector/maintenance-detector.component.d.ts +16 -0
- package/lib/components/maintenance-detector/maintenance-detector.component.d.ts.map +1 -0
- package/lib/components/mask/mask.component.d.ts +12 -0
- package/lib/components/mask/mask.component.d.ts.map +1 -0
- package/lib/components/menu/menu.component.d.ts +54 -0
- package/lib/components/menu/menu.component.d.ts.map +1 -0
- package/lib/components/mfa/mfa.component.d.ts +72 -0
- package/lib/components/mfa/mfa.component.d.ts.map +1 -0
- package/lib/components/mfa-popup/mfa-popup.component.d.ts +19 -0
- package/lib/components/mfa-popup/mfa-popup.component.d.ts.map +1 -0
- package/lib/components/mfa2/mfa2.component.d.ts +48 -0
- package/lib/components/mfa2/mfa2.component.d.ts.map +1 -0
- package/lib/components/money-expect/money-expect.component.d.ts +19 -0
- package/lib/components/money-expect/money-expect.component.d.ts.map +1 -0
- package/lib/components/msg/msg.component.d.ts +11 -0
- package/lib/components/msg/msg.component.d.ts.map +1 -0
- package/lib/components/news/news.component.d.ts +15 -0
- package/lib/components/news/news.component.d.ts.map +1 -0
- package/lib/components/overlay-info/overlay-info.component.d.ts +35 -0
- package/lib/components/overlay-info/overlay-info.component.d.ts.map +1 -0
- package/lib/components/page/page.component.d.ts +24 -0
- package/lib/components/page/page.component.d.ts.map +1 -0
- package/lib/components/profile/profile.component.d.ts +74 -0
- package/lib/components/profile/profile.component.d.ts.map +1 -0
- package/lib/components/profile-redirect/profile-redirect.component.d.ts +14 -0
- package/lib/components/profile-redirect/profile-redirect.component.d.ts.map +1 -0
- package/lib/components/questionnaire/AppValidators.d.ts +16 -0
- package/lib/components/questionnaire/AppValidators.d.ts.map +1 -0
- package/lib/components/questionnaire/FbConstants.d.ts +8 -0
- package/lib/components/questionnaire/FbConstants.d.ts.map +1 -0
- package/lib/components/questionnaire/SelectItem.d.ts +5 -0
- package/lib/components/questionnaire/SelectItem.d.ts.map +1 -0
- package/lib/components/questionnaire/account-success/account-success.page.d.ts +61 -0
- package/lib/components/questionnaire/account-success/account-success.page.d.ts.map +1 -0
- package/lib/components/questionnaire/common-success/common-success.page.d.ts +77 -0
- package/lib/components/questionnaire/common-success/common-success.page.d.ts.map +1 -0
- package/lib/components/questionnaire/dynamic-form-panel.component.d.ts +47 -0
- package/lib/components/questionnaire/dynamic-form-panel.component.d.ts.map +1 -0
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts +128 -0
- package/lib/components/questionnaire/dynamic-form-question.component.d.ts.map +1 -0
- package/lib/components/questionnaire/dynamic-form.component.d.ts +161 -0
- package/lib/components/questionnaire/dynamic-form.component.d.ts.map +1 -0
- package/lib/components/questionnaire/form-builder/form-builder.page.d.ts +74 -0
- package/lib/components/questionnaire/form-builder/form-builder.page.d.ts.map +1 -0
- package/lib/components/questionnaire/input-focus.directive.d.ts +12 -0
- package/lib/components/questionnaire/input-focus.directive.d.ts.map +1 -0
- package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts +39 -0
- package/lib/components/questionnaire/multi-questionnaire/multi-questionnaire.component.d.ts.map +1 -0
- package/lib/components/questionnaire/question-base.d.ts +17 -0
- package/lib/components/questionnaire/question-base.d.ts.map +1 -0
- package/lib/components/questionnaire/question-control.service.d.ts +21 -0
- package/lib/components/questionnaire/question-control.service.d.ts.map +1 -0
- package/lib/components/questionnaire/question.service.d.ts +19 -0
- package/lib/components/questionnaire/question.service.d.ts.map +1 -0
- package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts +83 -0
- package/lib/components/questionnaire/render-questionnaire/render-questionnaire.page.d.ts.map +1 -0
- package/lib/components/read-more/read-more.component.d.ts +15 -0
- package/lib/components/read-more/read-more.component.d.ts.map +1 -0
- package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts +68 -0
- package/lib/components/requalify-lift-previous-issues/requalify-lift-previous-issues.component.d.ts.map +1 -0
- package/lib/components/search-employer/search-employer.component.d.ts +40 -0
- package/lib/components/search-employer/search-employer.component.d.ts.map +1 -0
- package/lib/components/security-question/security-question.component.d.ts +37 -0
- package/lib/components/security-question/security-question.component.d.ts.map +1 -0
- package/lib/components/select/select.component.d.ts +56 -0
- package/lib/components/select/select.component.d.ts.map +1 -0
- package/lib/components/sign-ssn/sign-ssn.component.d.ts +34 -0
- package/lib/components/sign-ssn/sign-ssn.component.d.ts.map +1 -0
- package/lib/components/ssn/ssn.component.d.ts +12 -0
- package/lib/components/ssn/ssn.component.d.ts.map +1 -0
- package/lib/components/ssn-reverify/ssn-reverify.component.d.ts +27 -0
- package/lib/components/ssn-reverify/ssn-reverify.component.d.ts.map +1 -0
- package/lib/components/test/test.component.d.ts +9 -0
- package/lib/components/test/test.component.d.ts.map +1 -0
- package/lib/components/user-login/user-login.component.d.ts +82 -0
- package/lib/components/user-login/user-login.component.d.ts.map +1 -0
- package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts +67 -0
- package/lib/components/weekly-cert-employer/weekly-cert-employer.component.d.ts.map +1 -0
- package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts +47 -0
- package/lib/components/weekly-cert-employer-grid/weekly-cert-employer-grid.component.d.ts.map +1 -0
- package/lib/directives/auto-focus/auto-focus.directive.d.ts +13 -0
- package/lib/directives/auto-focus/auto-focus.directive.d.ts.map +1 -0
- package/lib/directives/caps-lock.directive.d.ts +12 -0
- package/lib/directives/caps-lock.directive.d.ts.map +1 -0
- package/lib/directives/required-roles/required-roles.directive.d.ts +15 -0
- package/lib/directives/required-roles/required-roles.directive.d.ts.map +1 -0
- package/lib/enums/EmailStatusEnum.d.ts +8 -0
- package/lib/enums/EmailStatusEnum.d.ts.map +1 -0
- package/lib/guards/auth.guard.d.ts +29 -0
- package/lib/guards/auth.guard.d.ts.map +1 -0
- package/lib/guards/no-login/no-login.guard.d.ts +12 -0
- package/lib/guards/no-login/no-login.guard.d.ts.map +1 -0
- package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts +23 -0
- package/lib/interceptors/error-interceptor/http-error-interceptor.d.ts.map +1 -0
- package/lib/interceptors/header-interceptor/http-header.interceptor.d.ts +22 -0
- package/lib/interceptors/header-interceptor/http-header.interceptor.d.ts.map +1 -0
- package/lib/models/AddressComponentModel.d.ts +14 -0
- package/lib/models/AddressComponentModel.d.ts.map +1 -0
- package/lib/models/BankDetailsComponentModel.d.ts +12 -0
- package/lib/models/BankDetailsComponentModel.d.ts.map +1 -0
- package/lib/models/BankDetailsModel.d.ts +5 -0
- package/lib/models/BankDetailsModel.d.ts.map +1 -0
- package/lib/models/CinRequalificationCriteriaModel.d.ts +11 -0
- package/lib/models/CinRequalificationCriteriaModel.d.ts.map +1 -0
- package/lib/models/EmployerDetailSearchResult.d.ts +51 -0
- package/lib/models/EmployerDetailSearchResult.d.ts.map +1 -0
- package/lib/models/ErrorModel.d.ts +7 -0
- package/lib/models/ErrorModel.d.ts.map +1 -0
- package/lib/models/FileModel.d.ts +5 -0
- package/lib/models/FileModel.d.ts.map +1 -0
- package/lib/models/LexisNexisAccountCreationModel.d.ts +15 -0
- package/lib/models/LexisNexisAccountCreationModel.d.ts.map +1 -0
- package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts +16 -0
- package/lib/models/LexisNexisAuthSelectionRequestModel.d.ts.map +1 -0
- package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts +39 -0
- package/lib/models/LexisNexisAuthSelectionResponseModel.d.ts.map +1 -0
- package/lib/models/LexisNexisEnabledResponseModel.d.ts +5 -0
- package/lib/models/LexisNexisEnabledResponseModel.d.ts.map +1 -0
- package/lib/models/LexisNexisResponseModel.d.ts +7 -0
- package/lib/models/LexisNexisResponseModel.d.ts.map +1 -0
- package/lib/models/LibConstants.d.ts +125 -0
- package/lib/models/LibConstants.d.ts.map +1 -0
- package/lib/models/NewsAndAnnouncementModel.d.ts +6 -0
- package/lib/models/NewsAndAnnouncementModel.d.ts.map +1 -0
- package/lib/models/NotificationModel.d.ts +11 -0
- package/lib/models/NotificationModel.d.ts.map +1 -0
- package/lib/models/OtpAuthModel.d.ts +8 -0
- package/lib/models/OtpAuthModel.d.ts.map +1 -0
- package/lib/models/PartialEmploymentModel.d.ts +6 -0
- package/lib/models/PartialEmploymentModel.d.ts.map +1 -0
- package/lib/models/PaymentComponentModel.d.ts +8 -0
- package/lib/models/PaymentComponentModel.d.ts.map +1 -0
- package/lib/models/RequalifyLiftPageModel.d.ts +12 -0
- package/lib/models/RequalifyLiftPageModel.d.ts.map +1 -0
- package/lib/models/SecurityQuestionModel.d.ts +7 -0
- package/lib/models/SecurityQuestionModel.d.ts.map +1 -0
- package/lib/models/SsaVerificationModel.d.ts +9 -0
- package/lib/models/SsaVerificationModel.d.ts.map +1 -0
- package/lib/models/TrendModel.d.ts +14 -0
- package/lib/models/TrendModel.d.ts.map +1 -0
- package/lib/models/UserDetailsModel.d.ts +10 -0
- package/lib/models/UserDetailsModel.d.ts.map +1 -0
- package/lib/models/UserModel.d.ts +48 -0
- package/lib/models/UserModel.d.ts.map +1 -0
- package/lib/models/case/CaseAttachmentModel.d.ts +6 -0
- package/lib/models/case/CaseAttachmentModel.d.ts.map +1 -0
- package/lib/models/claimant/ClaimantModel.d.ts +23 -0
- package/lib/models/claimant/ClaimantModel.d.ts.map +1 -0
- package/lib/models/claimant/JobResultsData.d.ts +8 -0
- package/lib/models/claimant/JobResultsData.d.ts.map +1 -0
- package/lib/models/claimant/MatchingJobs.d.ts +13 -0
- package/lib/models/claimant/MatchingJobs.d.ts.map +1 -0
- package/lib/models/claimant/ResetPasswordModel.d.ts +9 -0
- package/lib/models/claimant/ResetPasswordModel.d.ts.map +1 -0
- package/lib/models/cmp/CaseCoreModel.d.ts +21 -0
- package/lib/models/cmp/CaseCoreModel.d.ts.map +1 -0
- package/lib/models/cmp/ComplaintCategoryModel.d.ts +9 -0
- package/lib/models/cmp/ComplaintCategoryModel.d.ts.map +1 -0
- package/lib/models/cmp/ComplaintCategoryOutputModel.d.ts +6 -0
- package/lib/models/cmp/ComplaintCategoryOutputModel.d.ts.map +1 -0
- package/lib/models/cmp/ContactUsModel.d.ts +23 -0
- package/lib/models/cmp/ContactUsModel.d.ts.map +1 -0
- package/lib/models/cmp/EmailTemplateModel.d.ts +7 -0
- package/lib/models/cmp/EmailTemplateModel.d.ts.map +1 -0
- package/lib/models/cmp/contactUsInqueryModel.d.ts +47 -0
- package/lib/models/cmp/contactUsInqueryModel.d.ts.map +1 -0
- package/lib/models/cmp/messageRourceModel.d.ts +6 -0
- package/lib/models/cmp/messageRourceModel.d.ts.map +1 -0
- package/lib/models/dashboard-model.d.ts +44 -0
- package/lib/models/dashboard-model.d.ts.map +1 -0
- package/lib/models/dependent.model.d.ts +20 -0
- package/lib/models/dependent.model.d.ts.map +1 -0
- package/lib/models/questionnaire/AutocoderModel.d.ts +9 -0
- package/lib/models/questionnaire/AutocoderModel.d.ts.map +1 -0
- package/lib/models/questionnaire/ClaimAppEmpRequestModel.d.ts +9 -0
- package/lib/models/questionnaire/ClaimAppEmpRequestModel.d.ts.map +1 -0
- package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts +18 -0
- package/lib/models/questionnaire/ClaimAppEmpResponseModel.d.ts.map +1 -0
- package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts +156 -0
- package/lib/models/questionnaire/ClaimAppEmployerDetailsModel.d.ts.map +1 -0
- package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts +18 -0
- package/lib/models/questionnaire/ClaimOnlyEmployerDataModel.d.ts.map +1 -0
- package/lib/models/questionnaire/ComboModel.d.ts +178 -0
- package/lib/models/questionnaire/ComboModel.d.ts.map +1 -0
- package/lib/models/questionnaire/ElementsModel.d.ts +71 -0
- package/lib/models/questionnaire/ElementsModel.d.ts.map +1 -0
- package/lib/models/questionnaire/EmployerDetailSearchResult.d.ts +18 -0
- package/lib/models/questionnaire/EmployerDetailSearchResult.d.ts.map +1 -0
- package/lib/models/questionnaire/EmployerWagesModel.d.ts +5 -0
- package/lib/models/questionnaire/EmployerWagesModel.d.ts.map +1 -0
- package/lib/models/questionnaire/FBConfigModel.d.ts +12 -0
- package/lib/models/questionnaire/FBConfigModel.d.ts.map +1 -0
- package/lib/models/questionnaire/KeyValueModel.d.ts +11 -0
- package/lib/models/questionnaire/KeyValueModel.d.ts.map +1 -0
- package/lib/models/questionnaire/LegalDiscaimarModel.d.ts +11 -0
- package/lib/models/questionnaire/LegalDiscaimarModel.d.ts.map +1 -0
- package/lib/models/questionnaire/LoaderModel.d.ts +5 -0
- package/lib/models/questionnaire/LoaderModel.d.ts.map +1 -0
- package/lib/models/questionnaire/PollingStatusModel.d.ts +7 -0
- package/lib/models/questionnaire/PollingStatusModel.d.ts.map +1 -0
- package/lib/models/questionnaire/QtrYearEmployerWageModel.d.ts +9 -0
- package/lib/models/questionnaire/QtrYearEmployerWageModel.d.ts.map +1 -0
- package/lib/models/questionnaire/QuestionnaireQueryModel.d.ts +24 -0
- package/lib/models/questionnaire/QuestionnaireQueryModel.d.ts.map +1 -0
- package/lib/models/questionnaire/QuestionnaireReturnModel.d.ts +21 -0
- package/lib/models/questionnaire/QuestionnaireReturnModel.d.ts.map +1 -0
- package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts +26 -0
- package/lib/models/questionnaire/QuestionnaireSaveModel.d.ts.map +1 -0
- package/lib/models/questionnaire/RequalifyLiftIssuesModel.d.ts +14 -0
- package/lib/models/questionnaire/RequalifyLiftIssuesModel.d.ts.map +1 -0
- package/lib/models/questionnaire/ServiceActionResponseModel.d.ts +7 -0
- package/lib/models/questionnaire/ServiceActionResponseModel.d.ts.map +1 -0
- package/lib/models/questionnaire/StatusModel.d.ts +16 -0
- package/lib/models/questionnaire/StatusModel.d.ts.map +1 -0
- package/lib/models/questionnaire/SuccessPageElement.d.ts +9 -0
- package/lib/models/questionnaire/SuccessPageElement.d.ts.map +1 -0
- package/lib/models/questionnaire/UI512AResponseModel.d.ts +13 -0
- package/lib/models/questionnaire/UI512AResponseModel.d.ts.map +1 -0
- package/lib/models/questionnaire/ValidationModel.d.ts +18 -0
- package/lib/models/questionnaire/ValidationModel.d.ts.map +1 -0
- package/lib/ngx-reusa-app-lib.component.d.ts +9 -0
- package/lib/ngx-reusa-app-lib.component.d.ts.map +1 -0
- package/lib/ngx-reusa-app-lib.module.d.ts +155 -0
- package/lib/ngx-reusa-app-lib.module.d.ts.map +1 -0
- package/lib/ngx-reusa-app-lib.service.d.ts +7 -0
- package/lib/ngx-reusa-app-lib.service.d.ts.map +1 -0
- package/lib/pages/BasePage.d.ts +32 -0
- package/lib/pages/BasePage.d.ts.map +1 -0
- package/lib/pages/common/accessibility-policy/accessibility-policy.page.d.ts +12 -0
- package/lib/pages/common/accessibility-policy/accessibility-policy.page.d.ts.map +1 -0
- package/lib/pages/common/change-password/change-password.page.d.ts +41 -0
- package/lib/pages/common/change-password/change-password.page.d.ts.map +1 -0
- package/lib/pages/common/landing/landing.component.d.ts +25 -0
- package/lib/pages/common/landing/landing.component.d.ts.map +1 -0
- package/lib/pages/common/landing2/landing2.component.d.ts +31 -0
- package/lib/pages/common/landing2/landing2.component.d.ts.map +1 -0
- package/lib/pages/common/login/login.component.d.ts +65 -0
- package/lib/pages/common/login/login.component.d.ts.map +1 -0
- package/lib/pages/common/not-found/not-found.page.d.ts +9 -0
- package/lib/pages/common/not-found/not-found.page.d.ts.map +1 -0
- package/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.d.ts +12 -0
- package/lib/pages/common/privacy-disclaimer/privacy-disclaimer.page.d.ts.map +1 -0
- package/lib/pages/common/security-policy/security-policy.page.d.ts +12 -0
- package/lib/pages/common/security-policy/security-policy.page.d.ts.map +1 -0
- package/lib/pages/common/unauthorized/unauthorized.page.d.ts +9 -0
- package/lib/pages/common/unauthorized/unauthorized.page.d.ts.map +1 -0
- package/lib/pages/popovers/language/language.page.d.ts +17 -0
- package/lib/pages/popovers/language/language.page.d.ts.map +1 -0
- package/lib/pages/popovers/my-notifications/my-notifications.page.d.ts +22 -0
- package/lib/pages/popovers/my-notifications/my-notifications.page.d.ts.map +1 -0
- package/lib/pages/popovers/my-profile/my-profile.page.d.ts +21 -0
- package/lib/pages/popovers/my-profile/my-profile.page.d.ts.map +1 -0
- package/lib/pages/popovers/user-search/user-search.component.d.ts +32 -0
- package/lib/pages/popovers/user-search/user-search.component.d.ts.map +1 -0
- package/lib/pipes/filter.pipe.d.ts +8 -0
- package/lib/pipes/filter.pipe.d.ts.map +1 -0
- package/lib/pipes/mask/mask.email.pipe.d.ts +11 -0
- package/lib/pipes/mask/mask.email.pipe.d.ts.map +1 -0
- package/lib/pipes/proper-case/proper-case.pipe.d.ts +9 -0
- package/lib/pipes/proper-case/proper-case.pipe.d.ts.map +1 -0
- package/lib/pipes/translate/dynamic-translate.pipe.d.ts +11 -0
- package/lib/pipes/translate/dynamic-translate.pipe.d.ts.map +1 -0
- package/lib/pipes/trust-html/trust-html.pipe.d.ts +11 -0
- package/lib/pipes/trust-html/trust-html.pipe.d.ts.map +1 -0
- package/lib/services/base-service.d.ts +93 -0
- package/lib/services/base-service.d.ts.map +1 -0
- package/lib/services/captcha/captcha.service.d.ts +16 -0
- package/lib/services/captcha/captcha.service.d.ts.map +1 -0
- package/lib/services/case-service/case.service.d.ts +20 -0
- package/lib/services/case-service/case.service.d.ts.map +1 -0
- package/lib/services/chatbot/chatbot.service.d.ts +61 -0
- package/lib/services/chatbot/chatbot.service.d.ts.map +1 -0
- package/lib/services/chatbot/script.const.d.ts +16 -0
- package/lib/services/chatbot/script.const.d.ts.map +1 -0
- package/lib/services/claimant/claimant.service.d.ts +18 -0
- package/lib/services/claimant/claimant.service.d.ts.map +1 -0
- package/lib/services/claimant-context/claimant-context.service.d.ts +19 -0
- package/lib/services/claimant-context/claimant-context.service.d.ts.map +1 -0
- package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts +16 -0
- package/lib/services/claimant-service/claimant-usps-redirect.service.d.ts.map +1 -0
- package/lib/services/claimant-service/claimant.service.d.ts +26 -0
- package/lib/services/claimant-service/claimant.service.d.ts.map +1 -0
- package/lib/services/claims/claims.service.d.ts +42 -0
- package/lib/services/claims/claims.service.d.ts.map +1 -0
- package/lib/services/cmp-service/cmp.service.d.ts +34 -0
- package/lib/services/cmp-service/cmp.service.d.ts.map +1 -0
- package/lib/services/dms-service/dms.service.d.ts +24 -0
- package/lib/services/dms-service/dms.service.d.ts.map +1 -0
- package/lib/services/fpjs/fingerprint.service.d.ts +19 -0
- package/lib/services/fpjs/fingerprint.service.d.ts.map +1 -0
- package/lib/services/google-analytics/google-analytics.service.d.ts +9 -0
- package/lib/services/google-analytics/google-analytics.service.d.ts.map +1 -0
- package/lib/services/help/help.service.d.ts +26 -0
- package/lib/services/help/help.service.d.ts.map +1 -0
- package/lib/services/idle/idle.service.d.ts +44 -0
- package/lib/services/idle/idle.service.d.ts.map +1 -0
- package/lib/services/lexis-nexis/lexis.nexis.service.d.ts +26 -0
- package/lib/services/lexis-nexis/lexis.nexis.service.d.ts.map +1 -0
- package/lib/services/logger/logger.service.d.ts +32 -0
- package/lib/services/logger/logger.service.d.ts.map +1 -0
- package/lib/services/login/login.service.d.ts +79 -0
- package/lib/services/login/login.service.d.ts.map +1 -0
- package/lib/services/maintenance/maintenance.service.d.ts +16 -0
- package/lib/services/maintenance/maintenance.service.d.ts.map +1 -0
- package/lib/services/notification/notification.service.d.ts +39 -0
- package/lib/services/notification/notification.service.d.ts.map +1 -0
- package/lib/services/ovp/ovp.service.d.ts +17 -0
- package/lib/services/ovp/ovp.service.d.ts.map +1 -0
- package/lib/services/questionnaire/questionnaire.service.d.ts +36 -0
- package/lib/services/questionnaire/questionnaire.service.d.ts.map +1 -0
- package/lib/services/questionnaire/validation.service.d.ts +82 -0
- package/lib/services/questionnaire/validation.service.d.ts.map +1 -0
- package/lib/services/security-service/security.service.d.ts +18 -0
- package/lib/services/security-service/security.service.d.ts.map +1 -0
- package/lib/services/tour/tour.service.d.ts +25 -0
- package/lib/services/tour/tour.service.d.ts.map +1 -0
- package/lib/services/util/util.service.d.ts +194 -0
- package/lib/services/util/util.service.d.ts.map +1 -0
- package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts +17 -0
- package/lib/services/weekly-cert/weekly-cert-v2.service.d.ts.map +1 -0
- package/lib/validations/AppRegex.d.ts +50 -0
- package/lib/validations/AppRegex.d.ts.map +1 -0
- package/lib/validations/AppValidators.d.ts +82 -0
- package/lib/validations/AppValidators.d.ts.map +1 -0
- package/package.json +28 -0
- package/public-api.d.ts +128 -0
- package/public-api.d.ts.map +1 -0
|
@@ -0,0 +1,450 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
3
|
+
import { Validators } from '@angular/forms';
|
|
4
|
+
import { ErrorModel } from '../../models/ErrorModel';
|
|
5
|
+
import { getBaseUrl, LibConstants } from '../../models/LibConstants';
|
|
6
|
+
import { ActivationEnd, NavigationEnd, NavigationStart } from '@angular/router';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@ionic/angular";
|
|
9
|
+
import * as i2 from "@angular/common/http";
|
|
10
|
+
import * as i3 from "primeng/api";
|
|
11
|
+
import * as i4 from "ngx-spinner";
|
|
12
|
+
import * as i5 from "@ngx-loading-bar/core";
|
|
13
|
+
import * as i6 from "../logger/logger.service";
|
|
14
|
+
import * as i7 from "@angular/router";
|
|
15
|
+
import * as i8 from "@angular/platform-browser";
|
|
16
|
+
import * as i9 from "../tour/tour.service";
|
|
17
|
+
export class UtilService {
|
|
18
|
+
constructor(alertController, httpClient, lc, toastController, msgService, spinner, loader, logger, router, titleService, ar, tourService, platform) {
|
|
19
|
+
this.alertController = alertController;
|
|
20
|
+
this.httpClient = httpClient;
|
|
21
|
+
this.lc = lc;
|
|
22
|
+
this.toastController = toastController;
|
|
23
|
+
this.msgService = msgService;
|
|
24
|
+
this.spinner = spinner;
|
|
25
|
+
this.loader = loader;
|
|
26
|
+
this.logger = logger;
|
|
27
|
+
this.router = router;
|
|
28
|
+
this.titleService = titleService;
|
|
29
|
+
this.ar = ar;
|
|
30
|
+
this.tourService = tourService;
|
|
31
|
+
this.platform = platform;
|
|
32
|
+
this.focusables = ["pinputtext", "p-inputmask", "input", "select", "textarea", "p-calendar", "radio", "p-dropdown", "p-selectButton", "p-autocomplete", "p-password", "p-checkbox", "p-inputtextarea"];
|
|
33
|
+
/*To display various messages*/
|
|
34
|
+
this.msgs = [];
|
|
35
|
+
this.options = {};
|
|
36
|
+
this.loading = null;
|
|
37
|
+
let headers = new HttpHeaders({
|
|
38
|
+
'Content-Type': 'application/json',
|
|
39
|
+
"Accept": 'application/json'
|
|
40
|
+
});
|
|
41
|
+
this.options = { headers: headers };
|
|
42
|
+
}
|
|
43
|
+
async toast(msg) {
|
|
44
|
+
const toast = await this.toastController.create({
|
|
45
|
+
message: msg,
|
|
46
|
+
position: 'bottom',
|
|
47
|
+
duration: 2000,
|
|
48
|
+
keyboardClose: true,
|
|
49
|
+
buttons: [
|
|
50
|
+
{
|
|
51
|
+
text: 'Done',
|
|
52
|
+
role: 'cancel',
|
|
53
|
+
handler: () => {
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
]
|
|
57
|
+
});
|
|
58
|
+
toast.present();
|
|
59
|
+
}
|
|
60
|
+
async presentToast(msg) {
|
|
61
|
+
const toast = await this.toastController.create({
|
|
62
|
+
message: msg,
|
|
63
|
+
color: 'danger',
|
|
64
|
+
duration: 3000,
|
|
65
|
+
keyboardClose: true,
|
|
66
|
+
buttons: [
|
|
67
|
+
{
|
|
68
|
+
text: 'Done',
|
|
69
|
+
role: 'cancel',
|
|
70
|
+
handler: () => {
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
});
|
|
75
|
+
toast.present();
|
|
76
|
+
}
|
|
77
|
+
baseUrl() {
|
|
78
|
+
return getBaseUrl();
|
|
79
|
+
}
|
|
80
|
+
async presentAlert(header, subMsg, errDtl) {
|
|
81
|
+
const alert = await this.alertController.create({
|
|
82
|
+
header: header,
|
|
83
|
+
subHeader: subMsg,
|
|
84
|
+
message: errDtl,
|
|
85
|
+
buttons: ['OK']
|
|
86
|
+
});
|
|
87
|
+
await alert.present();
|
|
88
|
+
}
|
|
89
|
+
error(header, subMsg, errDtl) {
|
|
90
|
+
this.presentAlert(header, subMsg, errDtl);
|
|
91
|
+
}
|
|
92
|
+
showError(msg) {
|
|
93
|
+
let errDtl = new ErrorModel();
|
|
94
|
+
errDtl.msg = msg;
|
|
95
|
+
this.errorMsg(errDtl);
|
|
96
|
+
}
|
|
97
|
+
errorMsg(errDtl) {
|
|
98
|
+
this.msgs.push({ severity: 'error', summary: 'Error', detail: errDtl.msg });
|
|
99
|
+
this.msgService.clear();
|
|
100
|
+
if (errDtl.errorId) {
|
|
101
|
+
//this.msgService.add({severity:'error', summary:'Error', detail: errDtl.msg + `( error id : ${errDtl.errorId})`, life: 7000, id : errDtl.errorId});
|
|
102
|
+
this.msgService.add({ severity: 'error', summary: 'Error', detail: errDtl.msg, life: 7000, id: errDtl.errorId });
|
|
103
|
+
}
|
|
104
|
+
else {
|
|
105
|
+
this.msgService.add({ severity: 'error', summary: 'Error', detail: errDtl.msg, life: 7000, id: errDtl.errorId });
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
async success(msg) {
|
|
109
|
+
this.msgs = [];
|
|
110
|
+
this.msgs.push({ severity: 'success', summary: 'Success', detail: msg });
|
|
111
|
+
this.msgService.clear();
|
|
112
|
+
this.msgService.add({ severity: 'success', summary: 'Success', detail: msg, life: 7000 });
|
|
113
|
+
}
|
|
114
|
+
info(msg) {
|
|
115
|
+
this.presentAlert('Info', '', msg);
|
|
116
|
+
}
|
|
117
|
+
get(endPoint, options, serviceName) {
|
|
118
|
+
return this.httpClient.get(this.getUrl(endPoint, serviceName), options != null ? options : this.options);
|
|
119
|
+
}
|
|
120
|
+
post(url, body, options, serviceName) {
|
|
121
|
+
return this.httpClient.post(this.getUrl(url, serviceName), JSON.stringify(body), options != null ? options : this.options);
|
|
122
|
+
}
|
|
123
|
+
postFormData(url, body, options, serviceName) {
|
|
124
|
+
// alert(this.getFullUrl(url));
|
|
125
|
+
return this.httpClient.post(this.getUrl(url, serviceName), body, options);
|
|
126
|
+
}
|
|
127
|
+
delete(url, options, serviceName) {
|
|
128
|
+
return this.httpClient.delete(this.getUrl(url, serviceName), options != null ? options : this.options);
|
|
129
|
+
}
|
|
130
|
+
patch(url, body, options, serviceName) {
|
|
131
|
+
return this.httpClient.patch(this.getUrl(url, serviceName), body, options != null ? options : this.options);
|
|
132
|
+
}
|
|
133
|
+
errorHandler(error) {
|
|
134
|
+
this.msgs = [];
|
|
135
|
+
this.logger.error('error ---->', error);
|
|
136
|
+
this.errorMsg(error);
|
|
137
|
+
}
|
|
138
|
+
getFullUrl(endPoint) {
|
|
139
|
+
return this.baseUrl() + endPoint;
|
|
140
|
+
}
|
|
141
|
+
getUrl(endPoint, serviceName) {
|
|
142
|
+
if (serviceName) {
|
|
143
|
+
this.baseUrl() + LibConstants.forwardSlash + serviceName + LibConstants.forwardSlash + endPoint;
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
return this.baseUrl() + (LibConstants.context == ''
|
|
147
|
+
? LibConstants.forwardSlash
|
|
148
|
+
: LibConstants.forwardSlash + LibConstants.context + LibConstants.forwardSlash) + endPoint;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
async showLoader() {
|
|
152
|
+
this.spinner.show();
|
|
153
|
+
}
|
|
154
|
+
async hideLoader() {
|
|
155
|
+
this.spinner.hide();
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* @decription This method will find difference of dates by specified interval
|
|
159
|
+
* @author Prerak Tiwari
|
|
160
|
+
* @version 1.0
|
|
161
|
+
* @param fromDate in miliseconds
|
|
162
|
+
* @param todate in miliseconds
|
|
163
|
+
* @param interval : valid values are --> "years", "months", "weeks", "days", "hours", "minutes", "seconds"
|
|
164
|
+
* @returns difference of date as per interval specified.
|
|
165
|
+
**/
|
|
166
|
+
findDifferenceIndate(fromDate, todate, interval) {
|
|
167
|
+
let second = 1000, minute = second * 60, hour = minute * 60, day = hour * 24, week = day * 7;
|
|
168
|
+
let timediff = todate - fromDate;
|
|
169
|
+
if (isNaN(timediff))
|
|
170
|
+
return NaN;
|
|
171
|
+
switch (interval) {
|
|
172
|
+
case "years": return todate.getFullYear() - fromDate.getFullYear();
|
|
173
|
+
case "months": return ((todate.getFullYear() * 12 + todate.getMonth())
|
|
174
|
+
-
|
|
175
|
+
(fromDate.getFullYear() * 12 + fromDate.getMonth()));
|
|
176
|
+
case "weeks": return Math.round(timediff / week);
|
|
177
|
+
case "days": return Math.round(timediff / day);
|
|
178
|
+
case "hours": return Math.round(timediff / hour);
|
|
179
|
+
case "minutes": return Math.round(timediff / minute);
|
|
180
|
+
case "seconds": return Math.round(timediff / second);
|
|
181
|
+
default: return undefined;
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
/**
|
|
185
|
+
* @decription This method will return date in ddMMyyyy format.
|
|
186
|
+
* @author Prerak Tiwari
|
|
187
|
+
* @version 1.0
|
|
188
|
+
* @returns string
|
|
189
|
+
**/
|
|
190
|
+
getDateInMMDDYYYYFormat(date) {
|
|
191
|
+
let dd = date.getDate();
|
|
192
|
+
let MM = date.getMonth() + 1;
|
|
193
|
+
let yyyy = date.getFullYear();
|
|
194
|
+
let dateToReturn = MM + '/' + dd + '/' + yyyy;
|
|
195
|
+
return dateToReturn;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* @decription This method will return Date object (for yyyy/MM/dd)
|
|
199
|
+
* @author Prerak Tiwari
|
|
200
|
+
* @version 1.0
|
|
201
|
+
* @param value : date separated with '-'
|
|
202
|
+
* @returns Date
|
|
203
|
+
**/
|
|
204
|
+
getEnteredDate(value) {
|
|
205
|
+
var dateArray = value.split("-");
|
|
206
|
+
var dd = parseInt(this.prepedZeroIfSingleDigit(dateArray[2]));
|
|
207
|
+
var MM = parseInt(this.prepedZeroIfSingleDigit(dateArray[1])) - 1;
|
|
208
|
+
var yyyy = parseInt(this.prepedZeroIfSingleDigit(dateArray[0]));
|
|
209
|
+
return new Date(yyyy, MM, dd);
|
|
210
|
+
}
|
|
211
|
+
/**
|
|
212
|
+
* @decription This method will return Date object (for MM/dd/yyyy).
|
|
213
|
+
* @author Prerak Tiwari
|
|
214
|
+
* @version 1.0
|
|
215
|
+
* @param value : date separated with '-'
|
|
216
|
+
* @returns Date
|
|
217
|
+
**/
|
|
218
|
+
getDateFromString(value) {
|
|
219
|
+
var dateArray = value.split("-");
|
|
220
|
+
var dd = parseInt(this.prepedZeroIfSingleDigit(dateArray[2]));
|
|
221
|
+
var MM = parseInt(this.prepedZeroIfSingleDigit(dateArray[1])) - 1;
|
|
222
|
+
var yyyy = parseInt(this.prepedZeroIfSingleDigit(dateArray[0]));
|
|
223
|
+
return new Date(yyyy, MM, dd);
|
|
224
|
+
}
|
|
225
|
+
getEnteredDateFromString(value) {
|
|
226
|
+
var dateArray = value.split("/");
|
|
227
|
+
var MM = parseInt(this.prepedZeroIfSingleDigit(dateArray[0])) - 1;
|
|
228
|
+
var dd = parseInt(this.prepedZeroIfSingleDigit(dateArray[1]));
|
|
229
|
+
var yyyy = parseInt(this.prepedZeroIfSingleDigit(dateArray[2]));
|
|
230
|
+
return new Date(yyyy, MM, dd);
|
|
231
|
+
}
|
|
232
|
+
getDateInMMDDYYYY(value) {
|
|
233
|
+
var dateArray = value.split("-");
|
|
234
|
+
var dd = parseInt(this.prepedZeroIfSingleDigit(dateArray[2]));
|
|
235
|
+
var MM = parseInt(this.prepedZeroIfSingleDigit(dateArray[1]));
|
|
236
|
+
var yyyy = parseInt(this.prepedZeroIfSingleDigit(dateArray[0]));
|
|
237
|
+
return MM + '/' + dd + '/' + yyyy;
|
|
238
|
+
}
|
|
239
|
+
prepedZeroIfSingleDigit(number) {
|
|
240
|
+
number = number + LibConstants.blankString;
|
|
241
|
+
if (number.length < 2) {
|
|
242
|
+
number = "0" + number;
|
|
243
|
+
}
|
|
244
|
+
return number;
|
|
245
|
+
}
|
|
246
|
+
/**
|
|
247
|
+
* @decription This method check if entered number is valid or not.
|
|
248
|
+
* @author Prerak Tiwari
|
|
249
|
+
* @version 1.0
|
|
250
|
+
* @returns true : number is valid </br> false : number is invalid
|
|
251
|
+
*/
|
|
252
|
+
validateNumber(number) {
|
|
253
|
+
var reg = new RegExp("^[0-9]*$");
|
|
254
|
+
return reg.test(number);
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* @decription This method check if entered number is valid or not.
|
|
258
|
+
* @author Prerak Tiwari
|
|
259
|
+
* @version 1.0
|
|
260
|
+
* @returns true : number is valid </br> false : number is invalid
|
|
261
|
+
*/
|
|
262
|
+
validateEmail(email) {
|
|
263
|
+
var reg = new RegExp('/^(([^<>()\[\]\\.,;:\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,}))$/');
|
|
264
|
+
return reg.test(email);
|
|
265
|
+
}
|
|
266
|
+
setValidation(control, newValidator) {
|
|
267
|
+
control.setValidators(newValidator);
|
|
268
|
+
control.updateValueAndValidity();
|
|
269
|
+
}
|
|
270
|
+
clearValidation(control) {
|
|
271
|
+
control.clearValidators();
|
|
272
|
+
control.updateValueAndValidity();
|
|
273
|
+
}
|
|
274
|
+
setRequiredValidator(control) {
|
|
275
|
+
this.setValidation(control, Validators.required);
|
|
276
|
+
}
|
|
277
|
+
// @dynamic
|
|
278
|
+
static patternValidator(regex, error) {
|
|
279
|
+
const res = (control) => {
|
|
280
|
+
if (!control.value) {
|
|
281
|
+
// if control is empty return no error
|
|
282
|
+
return null;
|
|
283
|
+
}
|
|
284
|
+
// test the value of the control against the regexp supplied
|
|
285
|
+
const valid = regex.test(control.value);
|
|
286
|
+
// if true, return no error (no error), else return error passed in the second parameter
|
|
287
|
+
return valid ? null : error;
|
|
288
|
+
};
|
|
289
|
+
return res;
|
|
290
|
+
}
|
|
291
|
+
static passwordMatchValidator(control) {
|
|
292
|
+
const password = control.get('password').value; // get password from our password form control
|
|
293
|
+
const confirmPassword = control.get('confirmPassword').value; // get password from our confirmPassword form control
|
|
294
|
+
// compare is the password math
|
|
295
|
+
if (password !== confirmPassword) {
|
|
296
|
+
// if they don't match, set an error in our confirmPassword form control
|
|
297
|
+
control.get('confirmPassword').setErrors({ NoPassswordMatch: true });
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
formatSsn(ssn) {
|
|
301
|
+
return ssn.substr(0, 3) + '-' + ssn.substr(3, 2) + '-' + ssn.substr(5, 4);
|
|
302
|
+
}
|
|
303
|
+
maskSsn(ssn) {
|
|
304
|
+
return 'XXX-XX-' + ssn.substr(5, 4);
|
|
305
|
+
}
|
|
306
|
+
mask(value, charToHide) {
|
|
307
|
+
if (!value) {
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
if (value.length > charToHide) {
|
|
311
|
+
var xxx = '';
|
|
312
|
+
for (var count = 1; count <= charToHide; count++) {
|
|
313
|
+
xxx = 'X' + xxx;
|
|
314
|
+
}
|
|
315
|
+
return xxx + value.substr(value.length - charToHide + 1, charToHide);
|
|
316
|
+
}
|
|
317
|
+
else {
|
|
318
|
+
return value;
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
clearMessages() {
|
|
322
|
+
this.msgs = [];
|
|
323
|
+
}
|
|
324
|
+
isState(state) {
|
|
325
|
+
return this.getStateLowercase() == state.toLowerCase();
|
|
326
|
+
}
|
|
327
|
+
getState() {
|
|
328
|
+
return LibConstants.STATE;
|
|
329
|
+
}
|
|
330
|
+
getStateLowercase() {
|
|
331
|
+
return LibConstants.state;
|
|
332
|
+
}
|
|
333
|
+
setupNavigationBasedEvents() {
|
|
334
|
+
this.router.events.subscribe(val => {
|
|
335
|
+
if (val instanceof NavigationStart) {
|
|
336
|
+
this.msgs = [];
|
|
337
|
+
this.msgService.clear(); //Clear Error/Success Messages
|
|
338
|
+
this.tourService.setCurrentStepsCount(20); //Joyride Setup
|
|
339
|
+
}
|
|
340
|
+
if (val instanceof NavigationEnd) {
|
|
341
|
+
gtag('config', LibConstants.gaId, { 'page_path': val.urlAfterRedirects }); //Send to Goole Analytics
|
|
342
|
+
}
|
|
343
|
+
if (val instanceof ActivationEnd) {
|
|
344
|
+
this.setPageTitle(val.snapshot); //Set Page Title
|
|
345
|
+
this.tourService.setSetpsCount(val.snapshot.data['pageId']);
|
|
346
|
+
this.hideLoader();
|
|
347
|
+
}
|
|
348
|
+
});
|
|
349
|
+
}
|
|
350
|
+
setPageTitle(snapshot) {
|
|
351
|
+
let title = snapshot.data['title'];
|
|
352
|
+
if (title) {
|
|
353
|
+
this.titleService.setTitle(title);
|
|
354
|
+
}
|
|
355
|
+
else {
|
|
356
|
+
throw "Please specify page title in app-routing.module.ts file for page :: " + this.ar.firstChild.snapshot.url;
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* @decription This method will return context root of the application
|
|
361
|
+
* @author Prerak Tiwari
|
|
362
|
+
* @version 1.0
|
|
363
|
+
* @param value : context root of application. e.g if application is running on 'http://localhost:9080/cp/page' then this method will return 'cp'
|
|
364
|
+
* @returns String
|
|
365
|
+
**/
|
|
366
|
+
getContextRoot() {
|
|
367
|
+
return window.location.pathname.substring(0, window.location.pathname.indexOf("/", 2));
|
|
368
|
+
}
|
|
369
|
+
getClaimantAppContextRoot() {
|
|
370
|
+
return "/cp";
|
|
371
|
+
}
|
|
372
|
+
getSecurityAppContextRoot() {
|
|
373
|
+
return "/ss";
|
|
374
|
+
}
|
|
375
|
+
openPageByContextRoot(context, uri, nav) {
|
|
376
|
+
if (!context.startsWith('/')) {
|
|
377
|
+
context = '/' + context;
|
|
378
|
+
}
|
|
379
|
+
if (nav && context.includes(this.getContextRoot())) {
|
|
380
|
+
nav.navigateForward(uri);
|
|
381
|
+
}
|
|
382
|
+
else {
|
|
383
|
+
window.open(location.origin + `${context}/${uri}`, '_self');
|
|
384
|
+
}
|
|
385
|
+
}
|
|
386
|
+
openPageByContextRootWithData(context, uri, data, nav) {
|
|
387
|
+
if (!context.startsWith('/')) {
|
|
388
|
+
context = '/' + context;
|
|
389
|
+
}
|
|
390
|
+
let separator = '&';
|
|
391
|
+
if (!uri.includes('?')) {
|
|
392
|
+
separator = "?";
|
|
393
|
+
}
|
|
394
|
+
if (nav && context.includes(this.getContextRoot())) {
|
|
395
|
+
nav.navigateForward(`${uri}${separator}data=${btoa(JSON.stringify(data))}`);
|
|
396
|
+
}
|
|
397
|
+
else {
|
|
398
|
+
window.open(location.origin + `${context}/${uri}${separator}data=${btoa(JSON.stringify(data))}`, '_self');
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
maskExceptFirstAndLastChar(value) {
|
|
402
|
+
return value[0] + "*".repeat(value.length - 2) + value.slice(-1);
|
|
403
|
+
}
|
|
404
|
+
maskEmail(email) {
|
|
405
|
+
var parts = email.split("@");
|
|
406
|
+
if (parts.length == 2) {
|
|
407
|
+
return this.maskExceptFirstAndLastChar(parts[0]) + "@" + this.maskExceptFirstAndLastChar(parts[1]);
|
|
408
|
+
}
|
|
409
|
+
return this.maskExceptFirstAndLastChar(parts[0]);
|
|
410
|
+
}
|
|
411
|
+
isPlayformCapacitor() {
|
|
412
|
+
return this.platform.is('capacitor');
|
|
413
|
+
}
|
|
414
|
+
isNewPasswordPolicyEnabled() {
|
|
415
|
+
return LibConstants.isNewPasswordPolicyEnabled == 'true';
|
|
416
|
+
}
|
|
417
|
+
isSameSymbolPolicyForClaimantAndAgency() {
|
|
418
|
+
return LibConstants.isSameSymbolPolicyForClaimantAndAgency == 'true';
|
|
419
|
+
}
|
|
420
|
+
focusOnSubmit(el) {
|
|
421
|
+
var element = el.nativeElement.querySelector(this.focusables.map(x => `${x}.ng-invalid`).join(","));
|
|
422
|
+
if (element) {
|
|
423
|
+
var primeNgComponent = element.querySelector(this.focusables.map(x => `${x}.p-component`).join(","));
|
|
424
|
+
if (primeNgComponent) {
|
|
425
|
+
primeNgComponent.focus();
|
|
426
|
+
}
|
|
427
|
+
else {
|
|
428
|
+
element.focus();
|
|
429
|
+
}
|
|
430
|
+
//Block for Radio Button Start
|
|
431
|
+
var primeNgComponent1 = element.querySelector("div.p-selectbutton");
|
|
432
|
+
if (primeNgComponent1) {
|
|
433
|
+
var primeNgComponent2 = primeNgComponent1.querySelector("div.p-component");
|
|
434
|
+
if (primeNgComponent2) {
|
|
435
|
+
primeNgComponent2.focus();
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
//Block for Radio Button End
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
static { this.ɵfac = function UtilService_Factory(t) { return new (t || UtilService)(i0.ɵɵinject(i1.AlertController), i0.ɵɵinject(i2.HttpClient), i0.ɵɵinject(i1.LoadingController), i0.ɵɵinject(i1.ToastController), i0.ɵɵinject(i3.MessageService), i0.ɵɵinject(i4.NgxSpinnerService), i0.ɵɵinject(i5.LoadingBarService), i0.ɵɵinject(i6.LoggerService), i0.ɵɵinject(i7.Router), i0.ɵɵinject(i8.Title), i0.ɵɵinject(i7.ActivatedRoute), i0.ɵɵinject(i9.TourService), i0.ɵɵinject(i1.Platform)); }; }
|
|
442
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: UtilService, factory: UtilService.ɵfac, providedIn: 'root' }); }
|
|
443
|
+
}
|
|
444
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(UtilService, [{
|
|
445
|
+
type: Injectable,
|
|
446
|
+
args: [{
|
|
447
|
+
providedIn: 'root'
|
|
448
|
+
}]
|
|
449
|
+
}], () => [{ type: i1.AlertController }, { type: i2.HttpClient }, { type: i1.LoadingController }, { type: i1.ToastController }, { type: i3.MessageService }, { type: i4.NgxSpinnerService }, { type: i5.LoadingBarService }, { type: i6.LoggerService }, { type: i7.Router }, { type: i8.Title }, { type: i7.ActivatedRoute }, { type: i9.TourService }, { type: i1.Platform }], null); })();
|
|
450
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9zZXJ2aWNlcy91dGlsL3V0aWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZELE9BQU8sRUFBYyxXQUFXLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUUzRSxPQUFPLEVBQWdDLFVBQVUsRUFBb0IsTUFBTSxnQkFBZ0IsQ0FBQztBQUs1RixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVyRSxPQUFPLEVBQWtCLGFBQWEsRUFBRSxhQUFhLEVBQUUsZUFBZSxFQUFVLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7O0FBU3hHLE1BQU0sT0FBTyxXQUFXO0lBV3RCLFlBQW1CLGVBQWdDLEVBQVMsVUFBc0IsRUFBUyxFQUFzQixFQUM5RixlQUFnQyxFQUFTLFVBQTBCLEVBQVUsT0FBMEIsRUFDdkcsTUFBeUIsRUFBVSxNQUFxQixFQUFVLE1BQWMsRUFDL0UsWUFBbUIsRUFBVSxFQUFrQixFQUFVLFdBQXdCLEVBQ2pGLFFBQWtCO1FBSm5CLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUFTLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBUyxPQUFFLEdBQUYsRUFBRSxDQUFvQjtRQUM5RixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFnQjtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQW1CO1FBQ3ZHLFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUFVLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDL0UsaUJBQVksR0FBWixZ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aUJBQWlCLEdBQUcsaUJBQWlCLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQzNFLElBQUksaUJBQWlCLEVBQUU7b0JBQ3JCLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO2lCQUMzQjthQUNGO1lBQ0QsNEJBQTRCO1NBQzdCO0lBQ0gsQ0FBQzs0RUF6aEJVLFdBQVc7dUVBQVgsV0FBVyxXQUFYLFdBQVcsbUJBRlYsTUFBTTs7aUZBRVAsV0FBVztjQUh2QixVQUFVO2VBQUM7Z0JBQ1YsVUFBVSxFQUFFLE1BQU07YUFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFsZXJ0Q29udHJvbGxlciwgTG9hZGluZ0NvbnRyb2xsZXIsIE5hdkNvbnRyb2xsZXIsIFBsYXRmb3JtLCBUb2FzdENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBIZWFkZXJzLCBIdHRwUGFyYW1zIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMsIFZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7TWVzc2FnZX0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQge01lc3NhZ2VTZXJ2aWNlfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IE5neFNwaW5uZXJTZXJ2aWNlIH0gZnJvbSBcIm5neC1zcGlubmVyXCI7XHJcbmltcG9ydCB7IExvYWRpbmdCYXJTZXJ2aWNlIH0gZnJvbSAnQG5neC1sb2FkaW5nLWJhci9jb3JlJztcclxuaW1wb3J0IHsgRXJyb3JNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9FcnJvck1vZGVsJztcclxuaW1wb3J0IHsgZ2V0QmFzZVVybCwgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XHJcbmltcG9ydCB7IExvZ2dlclNlcnZpY2UgfSBmcm9tICcuLi9sb2dnZXIvbG9nZ2VyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgQWN0aXZhdGlvbkVuZCwgTmF2aWdhdGlvbkVuZCwgTmF2aWdhdGlvblN0YXJ0LCBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBUb3VyU2VydmljZSB9IGZyb20gJy4uL3RvdXIvdG91ci5zZXJ2aWNlJztcclxuXHJcbmRlY2xhcmUgbGV0IGd0YWc6IGFueTtcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFV0aWxTZXJ2aWNlIHtcclxuXHJcbiAgZm9jdXNhYmxlcyA9IFtcInBpbnB1dHRleHRcIiwgXCJwLWlucHV0bWFza1wiLCBcImlucHV0XCIsIFwic2VsZWN0XCIsIFwidGV4dGFyZWFcIiwgXCJwLWNhbGVuZGFyXCIsIFwicmFkaW9cIiwgXCJwLWRyb3Bkb3duXCIsIFwicC1zZWxlY3RCdXR0b25cIiwgXCJwLWF1dG9jb21wbGV0ZVwiLCBcInAtcGFzc3dvcmRcIixcInAtY2hlY2tib3hcIiwgXCJwLWlucHV0dGV4dGFyZWFcIl07XHJcblxyXG4gIC8qVG8gZGlzcGxheSB2YXJpb3VzIG1lc3NhZ2VzKi9cclxuICBwdWJsaWMgbXNnczogTWVzc2FnZVtdID0gW107XHJcblxyXG4gIG9wdGlvbnMgPSB7fTtcclxuXHJcbiAgbG9hZGluZyAgPSBudWxsO1xyXG4gIFxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBhbGVydENvbnRyb2xsZXI6IEFsZXJ0Q29udHJvbGxlciwgcHVibGljIGh0dHBDbGllbnQ6IEh0dHBDbGllbnQsIHB1YmxpYyBsYyA6IExvYWRpbmdDb250cm9sbGVyLCBcclxuICAgICAgICAgICAgICBwdWJsaWMgdG9hc3RDb250cm9sbGVyOiBUb2FzdENvbnRyb2xsZXIsIHB1YmxpYyBtc2dTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSBzcGlubmVyOiBOZ3hTcGlubmVyU2VydmljZSxcclxuICAgICAgICAgICAgICBwdWJsaWMgbG9hZGVyOiBMb2FkaW5nQmFyU2VydmljZSwgcHJpdmF0ZSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsIFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBUaXRsZSwgcHJpdmF0ZSBhcjogQWN0aXZhdGVkUm91dGUsIHByaXZhdGUgdG91clNlcnZpY2U6IFRvdXJTZXJ2aWNlLFxyXG4gICAgICAgICAgICAgIHByaXZhdGUgcGxhdGZvcm06IFBsYXRmb3JtKSB7IFxyXG4gICAgbGV0IGhlYWRlcnMgPSBuZXcgSHR0cEhlYWRlcnMoe1xyXG4gICAgICAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nLFxyXG4gICAgICBcIkFjY2VwdFwiOiAnYXBwbGljYXRpb24vanNvbid9KTtcclxuICAgIHRoaXMub3B0aW9ucyA9IHsgaGVhZGVyczogaGVhZGVycyB9O1xyXG4gIH1cclxuXHJcbiAgYXN5bmMgdG9hc3QobXNnIDogc3RyaW5nKXtcclxuICAgIGNvbnN0IHRvYXN0ID0gYXdhaXQgdGhpcy50b2FzdENvbnRyb2xsZXIuY3JlYXRlKHtcclxuICAgICAgbWVzc2FnZTogbXNnLFxyXG4gICAgICBwb3NpdGlvbjogJ2JvdHRvbScsXHJcbiAgICAgIGR1cmF0aW9uOiAyMDAwLFxyXG4gICAgICBrZXlib2FyZENsb3NlOiB0cnVlLFxyXG4gICAgICBidXR0b25zOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGV4dDogJ0RvbmUnLFxyXG4gICAgICAgICAgcm9sZTogJ2NhbmNlbCcsXHJcbiAgICAgICAgICBoYW5kbGVyOiAoKSA9PiB7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9KTtcclxuICAgIHRvYXN0LnByZXNlbnQoKTtcclxuICB9XHJcblxyXG4gIGFzeW5jIHByZXNlbnRUb2FzdChtc2cgOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHRvYXN0ID0gYXdhaXQgdGhpcy50b2FzdENvbnRyb2xsZXIuY3JlYXRlKHtcclxuICAgICAgbWVzc2FnZTogbXNnLFxyXG4gICAgICBjb2xvcjogJ2RhbmdlcicsXHJcbiAgICAgIGR1cmF0aW9uOiAzMDAwLFxyXG4gICAgICBrZXlib2FyZENsb3NlOiB0cnVlLFxyXG4gICAgICBidXR0b25zOiBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgdGV4dDogJ0RvbmUnLFxyXG4gICAgICAgICAgcm9sZTogJ2NhbmNlbCcsXHJcbiAgICAgICAgICBoYW5kbGVyOiAoKSA9PiB7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICBdXHJcbiAgICB9KTtcclxuICAgIHRvYXN0LnByZXNlbnQoKTtcclxuICB9XHJcblxyXG4gIGJhc2VVcmwoKSA6IHN0cmluZ3tcclxuICAgIHJldHVybiBnZXRCYXNlVXJsKCk7XHJcbiAgfVxyXG5cclxuICBhc3luYyBwcmVzZW50QWxlcnQoaGVhZGVyLCBzdWJNc2csIGVyckR0bCkge1xyXG4gICAgY29uc3QgYWxlcnQgPSBhd2FpdCB0aGlzLmFsZXJ0Q29udHJvbGxlci5jcmVhdGUoe1xyXG4gICAgICBoZWFkZXI6IGhlYWRlcixcclxuICAgICAgc3ViSGVhZGVyOiBzdWJNc2csXHJcbiAgICAgIG1lc3NhZ2U6IGVyckR0bCxcclxuICAgICAgYnV0dG9uczogWydPSyddXHJcbiAgICB9KTtcclxuXHJcbiAgICBhd2FpdCBhbGVydC5wcmVzZW50KCk7XHJcbiAgfVxyXG5cclxuICBlcnJvcihoZWFkZXIsIHN1Yk1zZywgZXJyRHRsKXtcclxuICAgIHRoaXMucHJlc2VudEFsZXJ0KGhlYWRlciwgc3ViTXNnLCBlcnJEdGwpO1xyXG4gIH1cclxuXHJcbiAgc2hvd0Vycm9yKG1zZyA6IHN0cmluZyl7XHJcbiAgICBsZXQgZXJyRHRsIDogRXJyb3JNb2RlbCA9IG5ldyBFcnJvck1vZGVsKCk7XHJcbiAgICBlcnJEdGwubXNnID0gbXNnO1xyXG4gICAgdGhpcy5lcnJvck1zZyhlcnJEdGwpO1xyXG4gIH1cclxuXHJcbiAgZXJyb3JNc2coZXJyRHRsIDogRXJyb3JNb2RlbCl7XHJcbiAgICB0aGlzLm1zZ3MucHVzaCh7c2V2ZXJpdHk6ICdlcnJvcicsIHN1bW1hcnkgOiAnRXJyb3InLCBkZXRhaWwgOiBlcnJEdGwubXNnfSk7XHJcbiAgICB0aGlzLm1zZ1NlcnZpY2UuY2xlYXIoKTtcclxuICAgIGlmKGVyckR0bC5lcnJvcklkKXtcclxuICAgICAgLy90aGlzLm1zZ1NlcnZpY2UuYWRkKHtzZXZlcml0eTonZXJyb3InLCBzdW1tYXJ5OidFcnJvcicsIGRldGFpbDogZXJyRHRsLm1zZyArIGAoIGVycm9yIGlkIDogJHtlcnJEdGwuZXJyb3JJZH0pYCwgbGlmZTogNzAwMCwgaWQgOiBlcnJEdGwuZXJyb3JJZH0pO1xyXG4gICAgICB0aGlzLm1zZ1NlcnZpY2UuYWRkKHtzZXZlcml0eTonZXJyb3InLCBzdW1tYXJ5OidFcnJvcicsIGRldGFpbDogZXJyRHRsLm1zZywgbGlmZTogNzAwMCwgaWQgOiBlcnJEdGwuZXJyb3JJZH0pO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMubXNnU2VydmljZS5hZGQoe3NldmVyaXR5OidlcnJvcicsIHN1bW1hcnk6J0Vycm9yJywgZGV0YWlsOiBlcnJEdGwubXNnLCBsaWZlOiA3MDAwLCBpZCA6IGVyckR0bC5lcnJvcklkfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhc3luYyBzdWNjZXNzKG1zZyl7XHJcbiAgICB0aGlzLm1zZ3MgPSBbXTtcclxuICAgIHRoaXMubXNncy5wdXNoKHtzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5IDogJ1N1Y2Nlc3MnLCBkZXRhaWwgOiBtc2d9KTtcclxuXHJcbiAgICB0aGlzLm1zZ1NlcnZpY2UuY2xlYXIoKTtcclxuICAgIHRoaXMubXNnU2VydmljZS5hZGQoe3NldmVyaXR5OidzdWNjZXNzJywgc3VtbWFyeTonU3VjY2VzcycsIGRldGFpbDogbXNnLCBsaWZlOiA3MDAwfSk7XHJcbiAgfVxyXG5cclxuICBpbmZvKG1zZyl7XHJcbiAgICB0aGlzLnByZXNlbnRBbGVydCgnSW5mbycsICcnLCBtc2cpO1xyXG4gIH1cclxuXHJcbiAgZ2V0PFQ+KGVuZFBvaW50IDogc3RyaW5nLCBvcHRpb25zPzoge1xyXG4gICAgICBoZWFkZXJzPzogSHR0cEhlYWRlcnMgfCB7XHJcbiAgICAgICAgICBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICAgICAgfTtcclxuICAgICAgb2JzZXJ2ZT86ICdib2R5JztcclxuICAgICAgcGFyYW1zPzogSHR0cFBhcmFtcyB8IHtcclxuICAgICAgICAgIFtwYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgICAgIH07XHJcbiAgICAgIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbjtcclxuICAgICAgcmVzcG9uc2VUeXBlPzogJ2pzb24nO1xyXG4gICAgICB3aXRoQ3JlZGVudGlhbHM/OiBib29sZWFuO1xyXG4gIH0sIHNlcnZpY2VOYW1lPyA6IHN0cmluZyk6IE9ic2VydmFibGU8VD57XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmdldDxUPih0aGlzLmdldFVybChlbmRQb2ludCwgc2VydmljZU5hbWUpLCBvcHRpb25zICE9IG51bGwgPyBvcHRpb25zIDogdGhpcy5vcHRpb25zKTtcclxuICB9XHJcblxyXG4gIHBvc3Q8VD4odXJsOiBzdHJpbmcsIGJvZHk6IGFueSB8IG51bGwsIG9wdGlvbnM/OiB7XHJcbiAgICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycyB8IHtcclxuICAgICAgICAgIFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gICAgICB9O1xyXG4gICAgICBvYnNlcnZlPzogJ2JvZHknO1xyXG4gICAgICBwYXJhbXM/OiBIdHRwUGFyYW1zIHwge1xyXG4gICAgICAgICAgW3BhcmFtOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICAgICAgfTtcclxuICAgICAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuO1xyXG4gICAgICByZXNwb25zZVR5cGU/OiAnanNvbic7XHJcbiAgICAgIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XHJcbiAgICB9LCBzZXJ2aWNlTmFtZT8gOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucG9zdDxUPih0aGlzLmdldFVybCh1cmwsIHNlcnZpY2VOYW1lKSwgSlNPTi5zdHJpbmdpZnkoYm9keSksIG9wdGlvbnMgIT0gbnVsbCA/IG9wdGlvbnMgOiB0aGlzLm9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgcG9zdEZvcm1EYXRhPFQ+KHVybDogc3RyaW5nLCBib2R5OiBhbnkgfCBudWxsLCBvcHRpb25zPzoge1xyXG4gICAgaGVhZGVycz86IEh0dHBIZWFkZXJzIHwge1xyXG4gICAgICAgIFtoZWFkZXI6IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gICAgfTtcclxuICAgIG9ic2VydmU/OiAnYm9keSc7XHJcbiAgICBwYXJhbXM/OiBIdHRwUGFyYW1zIHwge1xyXG4gICAgICAgIFtwYXJhbTogc3RyaW5nXTogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgICB9O1xyXG4gICAgcmVwb3J0UHJvZ3Jlc3M/OiBib29sZWFuO1xyXG4gICAgcmVzcG9uc2VUeXBlPzogJ2pzb24nO1xyXG4gICAgd2l0aENyZWRlbnRpYWxzPzogYm9vbGVhbjtcclxuICB9LCBzZXJ2aWNlTmFtZT8gOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgLy8gYWxlcnQodGhpcy5nZXRGdWxsVXJsKHVybCkpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wb3N0PFQ+KHRoaXMuZ2V0VXJsKHVybCwgc2VydmljZU5hbWUpLCBib2R5LCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIGRlbGV0ZTxUPih1cmw6IHN0cmluZywgb3B0aW9ucz86IHtcclxuICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycyB8IHtcclxuICAgICAgICBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICAgIH07XHJcbiAgICBvYnNlcnZlPzogJ2JvZHknO1xyXG4gICAgcGFyYW1zPzogSHR0cFBhcmFtcyB8IHtcclxuICAgICAgICBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gICAgfTtcclxuICAgIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbjtcclxuICAgIHJlc3BvbnNlVHlwZT86ICdqc29uJztcclxuICAgIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XHJcbiAgfSwgc2VydmljZU5hbWU/IDogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LmRlbGV0ZTxUPih0aGlzLmdldFVybCh1cmwsIHNlcnZpY2VOYW1lKSwgb3B0aW9ucyAhPSBudWxsID8gb3B0aW9ucyA6IHRoaXMub3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBwYXRjaDxUPih1cmw6IHN0cmluZywgYm9keTogYW55IHwgbnVsbCwgb3B0aW9ucz86IHtcclxuICAgIGhlYWRlcnM/OiBIdHRwSGVhZGVycyB8IHtcclxuICAgICAgICBbaGVhZGVyOiBzdHJpbmddOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICAgIH07XHJcbiAgICBvYnNlcnZlPzogJ2JvZHknO1xyXG4gICAgcGFyYW1zPzogSHR0cFBhcmFtcyB8IHtcclxuICAgICAgICBbcGFyYW06IHN0cmluZ106IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gICAgfTtcclxuICAgIHJlcG9ydFByb2dyZXNzPzogYm9vbGVhbjtcclxuICAgIHJlc3BvbnNlVHlwZT86ICdqc29uJztcclxuICAgIHdpdGhDcmVkZW50aWFscz86IGJvb2xlYW47XHJcbn0sIHNlcnZpY2VOYW1lID86IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wYXRjaDxUPih0aGlzLmdldFVybCh1cmwsIHNlcnZpY2VOYW1lKSwgYm9keSwgb3B0aW9ucyAhPSBudWxsID8gb3B0aW9ucyA6IHRoaXMub3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBlcnJvckhhbmRsZXIoZXJyb3Ipe1xyXG4gICAgdGhpcy5tc2dzID0gW107XHJcbiAgICB0aGlzLmxvZ2dlci5lcnJvcignZXJyb3IgLS0tLT4nLCBlcnJvcik7XHJcbiAgICB0aGlzLmVycm9yTXNnKGVycm9yKTtcclxuICB9XHJcblxyXG4gIGdldEZ1bGxVcmwoZW5kUG9pbnQgOiBzdHJpbmcpe1xyXG4gICAgcmV0dXJuIHRoaXMuYmFzZVVybCgpICsgZW5kUG9pbnQ7XHJcbiAgfVxyXG5cclxuICBnZXRVcmwoZW5kUG9pbnQgOiBzdHJpbmcsIHNlcnZpY2VOYW1lIDogc3RyaW5nKXtcclxuICAgIGlmKHNlcnZpY2VOYW1lKXtcclxuICAgICAgdGhpcy5iYXNlVXJsKCkgKyBMaWJDb25zdGFudHMuZm9yd2FyZFNsYXNoICsgc2VydmljZU5hbWUgKyBMaWJDb25zdGFudHMuZm9yd2FyZFNsYXNoICsgZW5kUG9pbnQ7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgcmV0dXJuIHRoaXMuYmFzZVVybCgpICsgKExpYkNvbnN0YW50cy5jb250ZXh0ID09ICcnIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IExpYkNvbnN0YW50cy5mb3J3YXJkU2xhc2ggXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogTGliQ29uc3RhbnRzLmZvcndhcmRTbGFzaCArIExpYkNvbnN0YW50cy5jb250ZXh0ICsgTGliQ29uc3RhbnRzLmZvcndhcmRTbGFzaCkgKyBlbmRQb2ludDtcclxuICAgIH1cclxuICB9XHJcblxyXG5hc3luYyBzaG93TG9hZGVyKCkge1xyXG4gIHRoaXMuc3Bpbm5lci5zaG93KClcclxufVxyXG5cclxuICBhc3luYyBoaWRlTG9hZGVyKCl7XHJcbiAgICB0aGlzLnNwaW5uZXIuaGlkZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlY3JpcHRpb24gVGhpcyBtZXRob2Qgd2lsbCBmaW5kIGRpZmZlcmVuY2Ugb2YgZGF0ZXMgYnkgc3BlY2lmaWVkIGludGVydmFsXHJcbiAgICogQGF1dGhvciBQcmVyYWsgVGl3YXJpXHJcbiAgICogQHZlcnNpb24gMS4wXHJcbiAgICogQHBhcmFtIGZyb21EYXRlIGluIG1pbGlzZWNvbmRzXHJcbiAgICogQHBhcmFtIHRvZGF0ZSBpbiBtaWxpc2Vjb25kc1xyXG4gICAqIEBwYXJhbSBpbnRlcnZhbCA6IHZhbGlkIHZhbHVlcyBhcmUgLS0+IFwieWVhcnNcIiwgXCJtb250aHNcIiwgXCJ3ZWVrc1wiLCBcImRheXNcIiwgXCJob3Vyc1wiLCBcIm1pbnV0ZXNcIiwgXCJzZWNvbmRzXCJcclxuICAgKiBAcmV0dXJucyBkaWZmZXJlbmNlIG9mIGRhdGUgYXMgcGVyIGludGVydmFsIHNwZWNpZmllZC5cclxuICAgKiovXHJcbiAgZmluZERpZmZlcmVuY2VJbmRhdGUoZnJvbURhdGUsdG9kYXRlLGludGVydmFsKXtcclxuICAgIGxldCBzZWNvbmQ9MTAwMCwgbWludXRlPXNlY29uZCo2MCwgaG91cj1taW51dGUqNjAsIGRheT1ob3VyKjI0LCB3ZWVrPWRheSo3O1xyXG4gICAgbGV0IHRpbWVkaWZmID0gdG9kYXRlIC0gZnJvbURhdGU7XHJcbiAgICBcclxuICAgIGlmIChpc05hTih0aW1lZGlmZikpIFxyXG4gICAgICByZXR1cm4gTmFOO1xyXG4gICAgXHJcbiAgICBzd2l0Y2ggKGludGVydmFsKSB7XHJcbiAgICAgICAgY2FzZSBcInllYXJzXCI6IHJldHVybiB0b2RhdGUuZ2V0RnVsbFllYXIoKSAtIGZyb21EYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICAgICAgY2FzZSBcIm1vbnRoc1wiOiByZXR1cm4gKFxyXG4gICAgICAgICAgICAoIHRvZGF0ZS5nZXRGdWxsWWVhcigpICogMTIgKyB0b2RhdGUuZ2V0TW9udGgoKSApXHJcbiAgICAgICAgICAgIC1cclxuICAgICAgICAgICAgKCBmcm9tRGF0ZS5nZXRGdWxsWWVhcigpICogMTIgKyBmcm9tRGF0ZS5nZXRNb250aCgpIClcclxuICAgICAgICApO1xyXG4gICAgICAgIGNhc2UgXCJ3ZWVrc1wiICA6IHJldHVybiBNYXRoLnJvdW5kKHRpbWVkaWZmIC8gd2Vlayk7XHJcbiAgICAgICAgY2FzZSBcImRheXNcIiAgIDogcmV0dXJuIE1hdGgucm91bmQodGltZWRpZmYgLyBkYXkpOyBcclxuICAgICAgICBjYXNlIFwiaG91cnNcIiAgOiByZXR1cm4gTWF0aC5yb3VuZCh0aW1lZGlmZiAvIGhvdXIpOyBcclxuICAgICAgICBjYXNlIFwibWludXRlc1wiOiByZXR1cm4gTWF0aC5yb3VuZCh0aW1lZGlmZiAvIG1pbnV0ZSk7XHJcbiAgICAgICAgY2FzZSBcInNlY29uZHNcIjogcmV0dXJuIE1hdGgucm91bmQodGltZWRpZmYgLyBzZWNvbmQpO1xyXG4gICAgICAgIGRlZmF1bHQ6IHJldHVybiB1bmRlZmluZWQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVjcmlwdGlvbiBUaGlzIG1ldGhvZCB3aWxsIHJldHVybiBkYXRlIGluIGRkTU15eXl5IGZvcm1hdC5cclxuICAgKiBAYXV0aG9yIFByZXJhayBUaXdhcmlcclxuICAgKiBAdmVyc2lvbiAxLjBcclxuICAgKiBAcmV0dXJucyBzdHJpbmdcclxuICAgKiovXHJcbiAgZ2V0RGF0ZUluTU1ERFlZWVlGb3JtYXQoZGF0ZSA6IERhdGUpe1xyXG4gICAgbGV0IGRkID0gZGF0ZS5nZXREYXRlKCk7XHJcbiAgICBsZXQgTU0gPSBkYXRlLmdldE1vbnRoKCkgKyAxO1xyXG4gICAgbGV0IHl5eXkgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICBcclxuICAgIGxldCBkYXRlVG9SZXR1cm4gPSAgTU0gKyAnLycgKyBkZCArICcvJyArIHl5eXk7XHJcbiAgICByZXR1cm4gZGF0ZVRvUmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlY3JpcHRpb24gVGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gRGF0ZSBvYmplY3QgKGZvciB5eXl5L01NL2RkKVxyXG4gICAqIEBhdXRob3IgUHJlcmFrIFRpd2FyaVxyXG4gICAqIEB2ZXJzaW9uIDEuMFxyXG4gICAqIEBwYXJhbSB2YWx1ZSA6IGRhdGUgc2VwYXJhdGVkIHdpdGggJy0nXHJcbiAgICogQHJldHVybnMgRGF0ZVxyXG4gICAqKi9cclxuICBnZXRFbnRlcmVkRGF0ZSh2YWx1ZSl7XHJcbiAgICB2YXIgZGF0ZUFycmF5ID0gdmFsdWUuc3BsaXQoXCItXCIpO1xyXG4gICAgdmFyIGRkID0gcGFyc2VJbnQodGhpcy5wcmVwZWRaZXJvSWZTaW5nbGVEaWdpdChkYXRlQXJyYXlbMl0pKTtcclxuICAgIHZhciBNTSA9IHBhcnNlSW50KHRoaXMucHJlcGVkWmVyb0lmU2luZ2xlRGlnaXQoZGF0ZUFycmF5WzFdKSkgLSAxO1xyXG4gICAgdmFyIHl5eXkgPSBwYXJzZUludCh0aGlzLnByZXBlZFplcm9JZlNpbmdsZURpZ2l0KGRhdGVBcnJheVswXSkpO1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHl5eXksTU0sZGQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlY3JpcHRpb24gVGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gRGF0ZSBvYmplY3QgKGZvciBNTS9kZC95eXl5KS5cclxuICAgKiBAYXV0aG9yIFByZXJhayBUaXdhcmlcclxuICAgKiBAdmVyc2lvbiAxLjBcclxuICAgKiBAcGFyYW0gdmFsdWUgOiBkYXRlIHNlcGFyYXRlZCB3aXRoICctJ1xyXG4gICAqIEByZXR1cm5zIERhdGVcclxuICAgKiovXHJcbiAgZ2V0RGF0ZUZyb21TdHJpbmcodmFsdWUpe1xyXG4gICAgdmFyIGRhdGVBcnJheSA9IHZhbHVlLnNwbGl0KFwiLVwiKTtcclxuICAgIHZhciBkZCA9IHBhcnNlSW50KHRoaXMucHJlcGVkWmVyb0lmU2luZ2xlRGlnaXQoZGF0ZUFycmF5WzJdKSk7XHJcbiAgICB2YXIgTU0gPSBwYXJzZUludCh0aGlzLnByZXBlZFplcm9JZlNpbmdsZURpZ2l0KGRhdGVBcnJheVsxXSkpIC0gMTtcclxuICAgIHZhciB5eXl5ID0gcGFyc2VJbnQodGhpcy5wcmVwZWRaZXJvSWZTaW5nbGVEaWdpdChkYXRlQXJyYXlbMF0pKTtcclxuICAgIHJldHVybiBuZXcgRGF0ZSh5eXl5LE1NLGRkKTtcclxuICB9XHJcblxyXG4gIGdldEVudGVyZWREYXRlRnJvbVN0cmluZyh2YWx1ZSl7XHJcbiAgICB2YXIgZGF0ZUFycmF5ID0gdmFsdWUuc3BsaXQoXCIvXCIpO1xyXG4gICAgdmFyIE1NID0gcGFyc2VJbnQodGhpcy5wcmVwZWRaZXJvSWZTaW5nbGVEaWdpdChkYXRlQXJyYXlbMF0pKSAtIDE7XHJcbiAgICB2YXIgZGQgPSBwYXJzZUludCh0aGlzLnByZXBlZFplcm9JZlNpbmdsZURpZ2l0KGRhdGVBcnJheVsxXSkpO1xyXG4gICAgdmFyIHl5eXkgPSBwYXJzZUludCh0aGlzLnByZXBlZFplcm9JZlNpbmdsZURpZ2l0KGRhdGVBcnJheVsyXSkpO1xyXG4gICAgcmV0dXJuIG5ldyBEYXRlKHl5eXksTU0sZGQpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGF0ZUluTU1ERFlZWVkodmFsdWUpe1xyXG4gICAgdmFyIGRhdGVBcnJheSA9IHZhbHVlLnNwbGl0KFwiLVwiKTtcclxuICAgIHZhciBkZCA9IHBhcnNlSW50KHRoaXMucHJlcGVkWmVyb0lmU2luZ2xlRGlnaXQoZGF0ZUFycmF5WzJdKSk7XHJcbiAgICB2YXIgTU0gPSBwYXJzZUludCh0aGlzLnByZXBlZFplcm9JZlNpbmdsZURpZ2l0KGRhdGVBcnJheVsxXSkpO1xyXG4gICAgdmFyIHl5eXkgPSBwYXJzZUludCh0aGlzLnByZXBlZFplcm9JZlNpbmdsZURpZ2l0KGRhdGVBcnJheVswXSkpO1xyXG4gICAgcmV0dXJuIE1NICsgJy8nICsgZGQgKyAnLycgKyB5eXl5O1xyXG4gIH1cclxuXHJcbiAgcHJlcGVkWmVyb0lmU2luZ2xlRGlnaXQobnVtYmVyKXtcclxuICAgIG51bWJlciA9IG51bWJlciArIExpYkNvbnN0YW50cy5ibGFua1N0cmluZztcclxuICAgIGlmKG51bWJlci5sZW5ndGggPCAyKXtcclxuICAgICAgbnVtYmVyID0gXCIwXCIgKyBudW1iZXI7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVtYmVyO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgKiBAZGVjcmlwdGlvbiBUaGlzIG1ldGhvZCBjaGVjayBpZiBlbnRlcmVkIG51bWJlciBpcyB2YWxpZCBvciBub3QuXHJcbiAgKiBAYXV0aG9yIFByZXJhayBUaXdhcmlcclxuICAqIEB2ZXJzaW9uIDEuMFxyXG4gICogQHJldHVybnMgdHJ1ZSA6IG51bWJlciBpcyB2YWxpZCA8L2JyPiBmYWxzZSA6IG51bWJlciBpcyBpbnZhbGlkXHJcbiAgKi9cclxuICB2YWxpZGF0ZU51bWJlcihudW1iZXIpIHtcclxuICAgIHZhciByZWcgPSBuZXcgUmVnRXhwKFwiXlswLTldKiRcIik7IFxyXG4gICAgcmV0dXJuIHJlZy50ZXN0KG51bWJlcik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAqIEBkZWNyaXB0aW9uIFRoaXMgbWV0aG9kIGNoZWNrIGlmIGVudGVyZWQgbnVtYmVyIGlzIHZhbGlkIG9yIG5vdC5cclxuICAqIEBhdXRob3IgUHJlcmFrIFRpd2FyaVxyXG4gICogQHZlcnNpb24gMS4wXHJcbiAgKiBAcmV0dXJucyB0cnVlIDogbnVtYmVyIGlzIHZhbGlkIDwvYnI+IGZhbHNlIDogbnVtYmVyIGlzIGludmFsaWRcclxuICAqL1xyXG4gIHZhbGlkYXRlRW1haWwoZW1haWwpIHtcclxuICAgIHZhciByZWcgPSBuZXcgUmVnRXhwKCcvXigoW148PigpXFxbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClcXFtcXF1cXFxcLiw7Olxcc0BcIl0rKSopfChcIi4rXCIpKUAoKFxcW1swLTldezEsM31cXC5bMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31dKXwoKFthLXpBLVpcXC0wLTldK1xcLikrW2EtekEtWl17Mix9KSkkLycpOyBcclxuICAgIHJldHVybiByZWcudGVzdChlbWFpbCk7XHJcbiAgfVxyXG5cclxuICBzZXRWYWxpZGF0aW9uKGNvbnRyb2wgOiBBYnN0cmFjdENvbnRyb2wsIG5ld1ZhbGlkYXRvciA6IFZhbGlkYXRvckZuICB8IFZhbGlkYXRvckZuW10gfCBudWxsKXtcclxuICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyhuZXdWYWxpZGF0b3IpO1xyXG4gICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBjbGVhclZhbGlkYXRpb24oY29udHJvbCA6IEFic3RyYWN0Q29udHJvbCl7XHJcbiAgICBjb250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xyXG4gICAgY29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgfVxyXG5cclxuICBzZXRSZXF1aXJlZFZhbGlkYXRvcihjb250cm9sIDogQWJzdHJhY3RDb250cm9sKXtcclxuICAgIHRoaXMuc2V0VmFsaWRhdGlvbihjb250cm9sLCBWYWxpZGF0b3JzLnJlcXVpcmVkKTtcclxuICB9XHJcblxyXG4gIC8vIEBkeW5hbWljXHJcbiAgc3RhdGljIHBhdHRlcm5WYWxpZGF0b3IocmVnZXg6IFJlZ0V4cCwgZXJyb3I6IFZhbGlkYXRpb25FcnJvcnMpOiBWYWxpZGF0b3JGbiB7XHJcbiAgICBjb25zdCByZXMgPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9PiB7XHJcbiAgICAgIGlmICghY29udHJvbC52YWx1ZSkge1xyXG4gICAgICAgIC8vIGlmIGNvbnRyb2wgaXMgZW1wdHkgcmV0dXJuIG5vIGVycm9yXHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICAgIH1cclxuICBcclxuICAgICAgLy8gdGVzdCB0aGUgdmFsdWUgb2YgdGhlIGNvbnRyb2wgYWdhaW5zdCB0aGUgcmVnZXhwIHN1cHBsaWVkXHJcbiAgICAgIGNvbnN0IHZhbGlkID0gcmVnZXgudGVzdChjb250cm9sLnZhbHVlKTtcclxuICBcclxuICAgICAgLy8gaWYgdHJ1ZSwgcmV0dXJuIG5vIGVycm9yIChubyBlcnJvciksIGVsc2UgcmV0dXJuIGVycm9yIHBhc3NlZCBpbiB0aGUgc2Vjb25kIHBhcmFtZXRlclxyXG4gICAgICByZXR1cm4gdmFsaWQgPyBudWxsIDogZXJyb3I7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIHJlcztcclxuICB9XHJcblxyXG4gIHN0YXRpYyBwYXNzd29yZE1hdGNoVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkge1xyXG4gICAgY29uc3QgcGFzc3dvcmQ6IHN0cmluZyA9IGNvbnRyb2wuZ2V0KCdwYXNzd29yZCcpLnZhbHVlOyAvLyBnZXQgcGFzc3dvcmQgZnJvbSBvdXIgcGFzc3dvcmQgZm9ybSBjb250cm9sXHJcbiAgICBjb25zdCBjb25maXJtUGFzc3dvcmQ6IHN0cmluZyA9IGNvbnRyb2wuZ2V0KCdjb25maXJtUGFzc3dvcmQnKS52YWx1ZTsgLy8gZ2V0IHBhc3N3b3JkIGZyb20gb3VyIGNvbmZpcm1QYXNzd29yZCBmb3JtIGNvbnRyb2xcclxuICAgIC8vIGNvbXBhcmUgaXMgdGhlIHBhc3N3b3JkIG1hdGhcclxuICAgIGlmIChwYXNzd29yZCAhPT0gY29uZmlybVBhc3N3b3JkKSB7XHJcbiAgICAgIC8vIGlmIHRoZXkgZG9uJ3QgbWF0Y2gsIHNldCBhbiBlcnJvciBpbiBvdXIgY29uZmlybVBhc3N3b3JkIGZvcm0gY29udHJvbFxyXG4gICAgICBjb250cm9sLmdldCgnY29uZmlybVBhc3N3b3JkJykuc2V0RXJyb3JzKHsgTm9QYXNzc3dvcmRNYXRjaDogdHJ1ZSB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGZvcm1hdFNzbihzc24gOiBzdHJpbmcpe1xyXG4gICAgcmV0dXJuIHNzbi5zdWJzdHIoMCwgMykgKyAnLScgKyBzc24uc3Vic3RyKDMsIDIpICsgJy0nICsgc3NuLnN1YnN0cig1LCA0KVxyXG4gIH1cclxuXHJcbiAgbWFza1Nzbihzc24gOiBzdHJpbmcpe1xyXG4gICAgcmV0dXJuICdYWFgtWFgtJyArIHNzbi5zdWJzdHIoNSwgNClcclxuICB9XHJcblxyXG4gIG1hc2sodmFsdWUgOiBzdHJpbmcsIGNoYXJUb0hpZGUgOiBudW1iZXIpe1xyXG4gICAgaWYoIXZhbHVlKXtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYodmFsdWUubGVuZ3RoID4gY2hhclRvSGlkZSl7XHJcbiAgICAgIHZhciB4eHggPSAnJztcclxuICAgICAgZm9yKHZhciBjb3VudCA9IDEgOyBjb3VudCA8PSBjaGFyVG9IaWRlIDsgY291bnQrKyl7XHJcbiAgICAgICAgeHh4ID0gJ1gnICsgeHh4O1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiB4eHggKyB2YWx1ZS5zdWJzdHIodmFsdWUubGVuZ3RoIC0gY2hhclRvSGlkZSArIDEsIGNoYXJUb0hpZGUpXHJcbiAgICB9ZWxzZXtcclxuICAgICAgcmV0dXJuIHZhbHVlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJNZXNzYWdlcygpe1xyXG4gICAgdGhpcy5tc2dzID0gW107XHJcbiAgfVxyXG5cclxuICBpc1N0YXRlKHN0YXRlIDogc3RyaW5nKSA6IGJvb2xlYW57XHJcbiAgICByZXR1cm4gdGhpcy5nZXRTdGF0ZUxvd2VyY2FzZSgpID09IHN0YXRlLnRvTG93ZXJDYXNlKCk7XHJcbiAgfVxyXG5cclxuICBnZXRTdGF0ZSgpe1xyXG4gICAgcmV0dXJuIExpYkNvbnN0YW50cy5TVEFURTtcclxuICB9XHJcblxyXG4gIGdldFN0YXRlTG93ZXJjYXNlKCl7XHJcbiAgICByZXR1cm4gTGliQ29uc3RhbnRzLnN0YXRlO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHNldHVwTmF2aWdhdGlvbkJhc2VkRXZlbnRzKCkge1xyXG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnN1YnNjcmliZShcclxuICAgICAgdmFsID0+IHtcclxuICAgICAgICBpZiAodmFsIGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XHJcbiAgICAgICAgICB0aGlzLm1zZ3MgPSBbXTtcclxuICAgICAgICAgIHRoaXMubXNnU2VydmljZS5jbGVhcigpOyAvL0NsZWFyIEVycm9yL1N1Y2Nlc3MgTWVzc2FnZXNcclxuICAgICAgICAgIHRoaXMudG91clNlcnZpY2Uuc2V0Q3VycmVudFN0ZXBzQ291bnQoMjApOyAvL0pveXJpZGUgU2V0dXBcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcclxuICAgICAgICAgIGd0YWcoJ2NvbmZpZycsIExpYkNvbnN0YW50cy5nYUlkLCB7ICdwYWdlX3BhdGgnOiB2YWwudXJsQWZ0ZXJSZWRpcmVjdHMgfSk7IC8vU2VuZCB0byBHb29sZSBBbmFseXRpY3NcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIEFjdGl2YXRpb25FbmQpIHtcclxuICAgICAgICAgIHRoaXMuc2V0UGFnZVRpdGxlKHZhbC5zbmFwc2hvdCk7IC8vU2V0IFBhZ2UgVGl0bGVcclxuICAgICAgICAgIHRoaXMudG91clNlcnZpY2Uuc2V0U2V0cHNDb3VudCh2YWwuc25hcHNob3QuZGF0YVsncGFnZUlkJ10pO1xyXG4gICAgICAgICAgdGhpcy5oaWRlTG9hZGVyKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFBhZ2VUaXRsZShzbmFwc2hvdCkge1xyXG4gICAgbGV0IHRpdGxlID0gc25hcHNob3QuZGF0YVsndGl0bGUnXTtcclxuICAgIGlmICh0aXRsZSkge1xyXG4gICAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZSh0aXRsZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aHJvdyBcIlBsZWFzZSBzcGVjaWZ5IHBhZ2UgdGl0bGUgaW4gYXBwLXJvdXRpbmcubW9kdWxlLnRzIGZpbGUgZm9yIHBhZ2UgOjogXCIgKyB0aGlzLmFyLmZpcnN0Q2hpbGQuc25hcHNob3QudXJsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlY3JpcHRpb24gVGhpcyBtZXRob2Qgd2lsbCByZXR1cm4gY29udGV4dCByb290IG9mIHRoZSBhcHBsaWNhdGlvblxyXG4gICAqIEBhdXRob3IgUHJlcmFrIFRpd2FyaVxyXG4gICAqIEB2ZXJzaW9uIDEuMFxyXG4gICAqIEBwYXJhbSB2YWx1ZSA6IGNvbnRleHQgcm9vdCBvZiBhcHBsaWNhdGlvbi4gZS5nIGlmIGFwcGxpY2F0aW9uIGlzIHJ1bm5pbmcgb24gJ2h0dHA6Ly9sb2NhbGhvc3Q6OTA4MC9jcC9wYWdlJyB0aGVuIHRoaXMgbWV0aG9kIHdpbGwgcmV0dXJuICdjcCdcclxuICAgKiBAcmV0dXJucyBTdHJpbmdcclxuICAgKiovXHJcbiAgZ2V0Q29udGV4dFJvb3QoKSA6IHN0cmluZ3tcclxuICAgIHJldHVybiB3aW5kb3cubG9jYXRpb24ucGF0aG5hbWUuc3Vic3RyaW5nKDAsIHdpbmRvdy5sb2NhdGlvbi5wYXRobmFtZS5pbmRleE9mKFwiL1wiLDIpKTtcclxuICB9XHJcblxyXG4gIGdldENsYWltYW50QXBwQ29udGV4dFJvb3QoKSA6IHN0cmluZ3tcclxuICAgIHJldHVybiBcIi9jcFwiO1xyXG4gIH1cclxuXHJcbiAgZ2V0U2VjdXJpdHlBcHBDb250ZXh0Um9vdCgpIDogc3RyaW5ne1xyXG4gICAgcmV0dXJuIFwiL3NzXCI7XHJcbiAgfVxyXG5cclxuXHJcbiAgb3BlblBhZ2VCeUNvbnRleHRSb290KGNvbnRleHQ6IHN0cmluZywgdXJpOiBzdHJpbmcsIG5hdj86IE5hdkNvbnRyb2xsZXIpe1xyXG4gICAgaWYoIWNvbnRleHQuc3RhcnRzV2l0aCgnLycpKXtcclxuICAgICAgY29udGV4dCA9ICcvJyArIGNvbnRleHQ7XHJcbiAgICB9XHJcbiAgICBpZihuYXYgJiYgY29udGV4dC5pbmNsdWRlcyh0aGlzLmdldENvbnRleHRSb290KCkpKXtcclxuICAgICAgbmF2Lm5hdmlnYXRlRm9yd2FyZCh1cmkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgd2luZG93Lm9wZW4obG9jYXRpb24ub3JpZ2luICsgYCR7Y29udGV4dH0vJHt1cml9YCAsICdfc2VsZicpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3BlblBhZ2VCeUNvbnRleHRSb290V2l0aERhdGEoY29udGV4dDogc3RyaW5nLCB1cmk6IHN0cmluZywgZGF0YSwgbmF2PzogTmF2Q29udHJvbGxlcil7XHJcbiAgICBpZighY29udGV4dC5zdGFydHNXaXRoKCcvJykpe1xyXG4gICAgICBjb250ZXh0ID0gJy8nICsgY29udGV4dDtcclxuICAgIH1cclxuICAgIGxldCBzZXBhcmF0b3IgPSAnJic7XHJcbiAgICBpZighdXJpLmluY2x1ZGVzKCc/Jykpe1xyXG4gICAgICBzZXBhcmF0b3IgPSBcIj9cIjtcclxuICAgIH1cclxuICAgIGlmKG5hdiAmJiBjb250ZXh0LmluY2x1ZGVzKHRoaXMuZ2V0Q29udGV4dFJvb3QoKSkpe1xyXG4gICAgICBuYXYubmF2aWdhdGVGb3J3YXJkKGAke3VyaX0ke3NlcGFyYXRvcn1kYXRhPSR7YnRvYShKU09OLnN0cmluZ2lmeShkYXRhKSl9YCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB3aW5kb3cub3Blbihsb2NhdGlvbi5vcmlnaW4gKyBgJHtjb250ZXh0fS8ke3VyaX0ke3NlcGFyYXRvcn1kYXRhPSR7YnRvYShKU09OLnN0cmluZ2lmeShkYXRhKSl9YCwnX3NlbGYnKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1hc2tFeGNlcHRGaXJzdEFuZExhc3RDaGFyKHZhbHVlIDogc3RyaW5nKSB7XHJcbiAgICAgIHJldHVybiB2YWx1ZVswXSArIFwiKlwiLnJlcGVhdCh2YWx1ZS5sZW5ndGggLSAyKSArIHZhbHVlLnNsaWNlKC0xKTtcclxuICB9XHJcblxyXG4gIG1hc2tFbWFpbChlbWFpbCA6IHN0cmluZyl7XHJcbiAgICB2YXIgcGFydHMgPSBlbWFpbC5zcGxpdChcIkBcIik7XHJcbiAgICBpZihwYXJ0cy5sZW5ndGggPT0gMil7XHJcbiAgICAgIHJldHVybiB0aGlzLm1hc2tFeGNlcHRGaXJzdEFuZExhc3RDaGFyKHBhcnRzWzBdKSArIFwiQFwiICsgdGhpcy5tYXNrRXhjZXB0Rmlyc3RBbmRMYXN0Q2hhcihwYXJ0c1sxXSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5tYXNrRXhjZXB0Rmlyc3RBbmRMYXN0Q2hhcihwYXJ0c1swXSk7XHJcbiAgfVxyXG5cclxuICBpc1BsYXlmb3JtQ2FwYWNpdG9yKCl7XHJcbiAgICByZXR1cm4gdGhpcy5wbGF0Zm9ybS5pcygnY2FwYWNpdG9yJyk7XHJcbiAgfVxyXG5cclxuICBpc05ld1Bhc3N3b3JkUG9saWN5RW5hYmxlZCgpIDogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gTGliQ29uc3RhbnRzLmlzTmV3UGFzc3dvcmRQb2xpY3lFbmFibGVkID09ICd0cnVlJztcclxuICB9XHJcblxyXG4gIGlzU2FtZVN5bWJvbFBvbGljeUZvckNsYWltYW50QW5kQWdlbmN5KCkgOiBib29sZWFuIHtcclxuICAgIHJldHVybiBMaWJDb25zdGFudHMuaXNTYW1lU3ltYm9sUG9saWN5Rm9yQ2xhaW1hbnRBbmRBZ2VuY3kgPT0gJ3RydWUnO1xyXG4gIH1cclxuXHJcbiAgZm9jdXNPblN1Ym1pdChlbDogRWxlbWVudFJlZil7XHJcbiAgICB2YXIgZWxlbWVudCA9IGVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcclxuICAgICAgdGhpcy5mb2N1c2FibGVzLm1hcCh4ID0+IGAke3h9Lm5nLWludmFsaWRgKS5qb2luKFwiLFwiKVxyXG4gICAgKTtcclxuXHJcbiAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICB2YXIgcHJpbWVOZ0NvbXBvbmVudCA9IGVsZW1lbnQucXVlcnlTZWxlY3RvcihcclxuICAgICAgICB0aGlzLmZvY3VzYWJsZXMubWFwKHggPT4gYCR7eH0ucC1jb21wb25lbnRgKS5qb2luKFwiLFwiKVxyXG4gICAgICApO1xyXG4gICAgICBpZiAocHJpbWVOZ0NvbXBvbmVudCkge1xyXG4gICAgICAgIHByaW1lTmdDb21wb25lbnQuZm9jdXMoKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBlbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIC8vQmxvY2sgZm9yIFJhZGlvIEJ1dHRvbiBTdGFydFxyXG4gICAgICB2YXIgcHJpbWVOZ0NvbXBvbmVudDEgPSBlbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJkaXYucC1zZWxlY3RidXR0b25cIik7XHJcbiAgICAgIGlmIChwcmltZU5nQ29tcG9uZW50MSkge1xyXG4gICAgICAgIHZhciBwcmltZU5nQ29tcG9uZW50MiA9IHByaW1lTmdDb21wb25lbnQxLnF1ZXJ5U2VsZWN0b3IoXCJkaXYucC1jb21wb25lbnRcIik7XHJcbiAgICAgICAgaWYgKHByaW1lTmdDb21wb25lbnQyKSB7XHJcbiAgICAgICAgICBwcmltZU5nQ29tcG9uZW50Mi5mb2N1cygpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICAvL0Jsb2NrIGZvciBSYWRpbyBCdXR0b24gRW5kXHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { LibConstants } from '../../models/LibConstants';
|
|
3
|
+
import { BaseService } from '../base-service';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@angular/common/http";
|
|
6
|
+
export class WeeklyCertServiceV2 extends BaseService {
|
|
7
|
+
setServiceContext() {
|
|
8
|
+
this.serviceContext = LibConstants.weeklycert_service.context;
|
|
9
|
+
}
|
|
10
|
+
setServicePort() {
|
|
11
|
+
this.servicePort = LibConstants.weeklycert_service.port;
|
|
12
|
+
}
|
|
13
|
+
setServiceProtocol() {
|
|
14
|
+
this.protocol = LibConstants.weeklycert_service.protocol;
|
|
15
|
+
}
|
|
16
|
+
setServiceHost() {
|
|
17
|
+
this.host = LibConstants.weeklycert_service.host;
|
|
18
|
+
}
|
|
19
|
+
constructor(http) {
|
|
20
|
+
super(http);
|
|
21
|
+
this.http = http;
|
|
22
|
+
}
|
|
23
|
+
generateEventForReopenAicFlow(ssnInput) {
|
|
24
|
+
// console.log("check the Aic Events for creation of this SSN:::"+ssnInput);
|
|
25
|
+
let paramsVal = null;
|
|
26
|
+
console.log("check the Aic Events for creation of this SSN::: 6...." + paramsVal);
|
|
27
|
+
return this.get(`weeklycert/events/${ssnInput}`).toPromise();
|
|
28
|
+
}
|
|
29
|
+
getPartialEmployment() {
|
|
30
|
+
console.log("Calling to get the IF any partial employment");
|
|
31
|
+
return this.get('weeklycert/partial-employment');
|
|
32
|
+
}
|
|
33
|
+
static { this.ɵfac = function WeeklyCertServiceV2_Factory(t) { return new (t || WeeklyCertServiceV2)(i0.ɵɵinject(i1.HttpClient)); }; }
|
|
34
|
+
static { this.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: WeeklyCertServiceV2, factory: WeeklyCertServiceV2.ɵfac, providedIn: 'root' }); }
|
|
35
|
+
}
|
|
36
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WeeklyCertServiceV2, [{
|
|
37
|
+
type: Injectable,
|
|
38
|
+
args: [{
|
|
39
|
+
providedIn: 'root'
|
|
40
|
+
}]
|
|
41
|
+
}], () => [{ type: i1.HttpClient }], null); })();
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2Vla2x5LWNlcnQtdjIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvc2VydmljZXMvd2Vla2x5LWNlcnQvd2Vla2x5LWNlcnQtdjIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQUs5QyxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsV0FBVztJQUVsRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsY0FBYyxHQUFHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUM7SUFDaEUsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsV0FBVyxHQUFHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7SUFDMUQsQ0FBQztJQUNELGtCQUFrQjtRQUNoQixJQUFJLENBQUMsUUFBUSxHQUFHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUM7SUFDM0QsQ0FBQztJQUNELGNBQWM7UUFDWixJQUFJLENBQUMsSUFBSSxHQUFHLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7SUFDbkQsQ0FBQztJQUVELFlBQW1CLElBQWdCO1FBQ2pDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQURLLFNBQUksR0FBSixJQUFJLENBQVk7SUFFbkMsQ0FBQztJQUVELDZCQUE2QixDQUFDLFFBQWdCO1FBQzlDLDZFQUE2RTtRQUMzRSxJQUFJLFNBQVMsR0FBRSxJQUFJLENBQUM7UUFDcEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyx3REFBd0QsR0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3RSxPQUFPLElBQUksQ0FBQyxHQUFHLENBQU0scUJBQXFCLFFBQVEsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFFckUsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLENBQUMsR0FBRyxDQUFDLDhDQUE4QyxDQUFFLENBQUM7UUFDNUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUF5QiwrQkFBK0IsQ0FBQyxDQUFDO0lBQzVFLENBQUM7b0ZBOUJRLG1CQUFtQjt1RUFBbkIsbUJBQW1CLFdBQW5CLG1CQUFtQixtQkFGbEIsTUFBTTs7aUZBRVAsbUJBQW1CO2NBSC9CLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XHJcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vYmFzZS1zZXJ2aWNlJztcclxuaW1wb3J0IHsgUGFydGlhbEVtcGxveW1lbnRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9QYXJ0aWFsRW1wbG95bWVudE1vZGVsJztcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgV2Vla2x5Q2VydFNlcnZpY2VWMiBleHRlbmRzIEJhc2VTZXJ2aWNlIHtcclxuXHJcbiAgc2V0U2VydmljZUNvbnRleHQoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2VDb250ZXh0ID0gTGliQ29uc3RhbnRzLndlZWtseWNlcnRfc2VydmljZS5jb250ZXh0O1xyXG4gIH1cclxuICBzZXRTZXJ2aWNlUG9ydCgpIHtcclxuICAgIHRoaXMuc2VydmljZVBvcnQgPSBMaWJDb25zdGFudHMud2Vla2x5Y2VydF9zZXJ2aWNlLnBvcnQ7XHJcbiAgfVxyXG4gIHNldFNlcnZpY2VQcm90b2NvbCgpIHtcclxuICAgIHRoaXMucHJvdG9jb2wgPSBMaWJDb25zdGFudHMud2Vla2x5Y2VydF9zZXJ2aWNlLnByb3RvY29sO1xyXG4gIH1cclxuICBzZXRTZXJ2aWNlSG9zdCgpIHtcclxuICAgIHRoaXMuaG9zdCA9IExpYkNvbnN0YW50cy53ZWVrbHljZXJ0X3NlcnZpY2UuaG9zdDtcclxuICB9ICBcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIGh0dHA6IEh0dHBDbGllbnQpIHtcclxuICAgIHN1cGVyKGh0dHApO1xyXG4gIH1cclxuXHJcbiAgZ2VuZXJhdGVFdmVudEZvclJlb3BlbkFpY0Zsb3coc3NuSW5wdXQ6IHN0cmluZyk6IFByb21pc2U8YW55PiB7ICAgIFxyXG4gIC8vICBjb25zb2xlLmxvZyhcImNoZWNrIHRoZSBBaWMgRXZlbnRzIGZvciBjcmVhdGlvbiBvZiB0aGlzIFNTTjo6OlwiK3NzbklucHV0KTtcclxuICAgIGxldCBwYXJhbXNWYWwgPW51bGw7XHJcbiAgICBjb25zb2xlLmxvZyhcImNoZWNrIHRoZSBBaWMgRXZlbnRzIGZvciBjcmVhdGlvbiBvZiB0aGlzIFNTTjo6OiA2Li4uLlwiK3BhcmFtc1ZhbCk7XHJcbiAgICAgICByZXR1cm4gdGhpcy5nZXQ8YW55Pihgd2Vla2x5Y2VydC9ldmVudHMvJHtzc25JbnB1dH1gKS50b1Byb21pc2UoKTtcclxuICAgICAgICAgICAgIFxyXG4gICAgfVxyXG4gICAgXHJcbiAgICBnZXRQYXJ0aWFsRW1wbG95bWVudCgpIHtcclxuICAgICAgY29uc29sZS5sb2coXCJDYWxsaW5nIHRvIGdldCB0aGUgSUYgYW55IHBhcnRpYWwgZW1wbG95bWVudFwiICk7XHJcbiAgICAgICByZXR1cm4gdGhpcy5nZXQ8UGFydGlhbEVtcGxveW1lbnRNb2RlbD4oJ3dlZWtseWNlcnQvcGFydGlhbC1lbXBsb3ltZW50Jyk7XHJcbiAgICB9XHJcbiAgICBcclxuICB9XHJcblxyXG4gIFxyXG5cclxuIl19
|
|
@@ -0,0 +1,51 @@
|
|
|
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 if accountnumber has only numbers present or not
|
|
38
|
+
*/
|
|
39
|
+
static { this.ACCOUNT_NUMBER_REGEX = /^\d+$/; }
|
|
40
|
+
/**
|
|
41
|
+
* @description Regular Expression to validate email format
|
|
42
|
+
*/
|
|
43
|
+
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,}))$/; }
|
|
44
|
+
/**
|
|
45
|
+
* @description Regular Expression to station no. format
|
|
46
|
+
*/
|
|
47
|
+
static { this.STATION_NO_REGEX = /^[A-Za-z0-9]{4}$/; }
|
|
48
|
+
static { this.ACCOUNT_NUMBER_REGEX_MIN = /^\d{8,17}$/; }
|
|
49
|
+
static { this.ROUTING_NUMBER_REGEX = /^[0-4]{1}[0-9]{8}$/; }
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwUmVnZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL3ZhbGlkYXRpb25zL0FwcFJlZ2V4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxXQUFXO0FBQ1gsTUFBTSxPQUFPLFFBQVE7SUFDakI7O01BRUU7YUFDSyxtQkFBYyxHQUFZLHdCQUF3QixDQUFDO0lBRTFEOztNQUVFO2FBQ0ssZUFBVSxHQUFhLDBCQUEwQixDQUFDO0lBRXpEOztNQUVFO2FBQ0ssMEJBQXFCLEdBQWEsZ0JBQWdCLENBQUM7SUFFMUQ7O01BRUU7YUFDSyx3QkFBbUIsR0FBYSw0QkFBNEIsQ0FBQztJQUVwRTs7TUFFRTthQUNLLHFCQUFnQixHQUFhLFlBQVksQ0FBQztJQUVqRDs7TUFFRTthQUNLLHFCQUFnQixHQUFhLFlBQVksQ0FBQztJQUVqRDs7TUFFRTthQUNLLGlCQUFZLEdBQWEsWUFBWSxDQUFDO0lBRTdDOztNQUVFO2FBQ0sseUJBQW9CLEdBQVksT0FBTyxDQUFDO0lBRS9DOztNQUVFO2FBQ0ssZ0JBQVcsR0FBYSx3SkFBd0osQ0FBQztJQUV4TDs7T0FFRzthQUNJLHFCQUFnQixHQUFHLGtCQUFrQixDQUFDO2FBRXRDLDZCQUF3QixHQUFZLFlBQVksQ0FBQzthQUVqRCx5QkFBb0IsR0FBVSxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKipcclxuICogXHJcbiAqIEBkZXNjcmlwdGlvbiBDbGFzcyBDb250YWlucyBhbGwgcmVndWxhciBleHByZXNzaW9ucyB1c2VkIGluIHRoZSBwcm9qZWN0LlxyXG4gKiBAYXV0aG9yIFByZXJhayBUaXdhcmlcclxuICovXHJcbi8vIEBkeW5hbWljXHJcbmV4cG9ydCBjbGFzcyBBcHBSZWdleHtcclxuICAgIC8qKiBcclxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWd1bGFyIEV4cHJlc3Npb24gdG8gdmFsaWRhdGUgdXNlcm5hbWVcclxuICAgICovXHJcbiAgICBzdGF0aWMgVVNFUk5BTUVfUkVHRVggOiBSZWdFeHAgPSAvXlthLXpBLVpdezF9W1xcd1xcQFxcLl0qJC87XHJcblxyXG4gICAgLyoqIFxyXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZ3VsYXIgRXhwcmVzc2lvbiB0byB2YWxpZGF0ZSBGaXJzdCBOYW1lLCBMYXN0IE5hbWVcclxuICAgICovXHJcbiAgICBzdGF0aWMgTkFNRV9SRUdFWCA6IFJlZ0V4cCAgPSAvXltBLVphLXolXVtBLVphLXpcXHMnLV0qJC87XHJcblxyXG4gICAgLyoqIFxyXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZ3VsYXIgRXhwcmVzc2lvbiB0byB2YWxpZGF0ZSBpZiBhdCBsZWFzdCAxIG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyIGlzIHByZXNlbnQgb3Igbm90IDogJ18nICdAJyAnKicgJyQnICchJyAnIycgJy4nXHJcbiAgICAqL1xyXG4gICAgc3RhdGljIENMQUlNQU5UX1NZTUJPTF9SRUdFWCA6IFJlZ0V4cCAgPSAvLipbX0AqJCEjLl0rLiovO1xyXG5cclxuICAgIC8qKiBcclxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWd1bGFyIEV4cHJlc3Npb24gdG8gdmFsaWRhdGUgaWYgYXQgbGVhc3QgMiBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlciBpcyBwcmVzZW50IG9yIG5vdCA6ICdfJyAnQCcgJyonICckJyAnIScgJyMnICcuJ1xyXG4gICAgKi9cclxuICAgIHN0YXRpYyBBR0VOQ1lfU1lNQk9MX1JFR0VYIDogUmVnRXhwICA9IC8uKltfQCokISMuXSsuKltfQCokISMuXSsuKi87XHJcblxyXG4gICAgLyoqIFxyXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZ3VsYXIgRXhwcmVzc2lvbiB0byB2YWxpZGF0ZSBpZiBzbWFsbCBjYXNlIGxldHRlciBpcyBwcmVzZW50IG9yIG5vdFxyXG4gICAgKi9cclxuICAgIHN0YXRpYyBMT1dFUl9DQVNFX1JFR0VYIDogUmVnRXhwICA9IC8uKlthLXpdKy4qLztcclxuXHJcbiAgICAvKiogXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVndWxhciBFeHByZXNzaW9uIHRvIHZhbGlkYXRlIGlmIHVwcGVyIGNhc2UgbGV0dGVyIGlzIHByZXNlbnQgb3Igbm90XHJcbiAgICAqL1xyXG4gICAgc3RhdGljIFVQUEVSX0NBU0VfUkVHRVggOiBSZWdFeHAgID0gLy4qW0EtWl0rLiovO1xyXG5cclxuICAgIC8qKiBcclxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWd1bGFyIEV4cHJlc3Npb24gdG8gdmFsaWRhdGUgaWYgbnVtYmJlciBpcyBwcmVzZW50IG9yIG5vdFxyXG4gICAgKi9cclxuICAgIHN0YXRpYyBOVU1CRVJfUkVHRVggOiBSZWdFeHAgID0gLy4qWzAtOV0rLiovO1xyXG5cclxuICAgIC8qKiBcclxuICAgICAqIEBkZXNjcmlwdGlvbiBSZWd1bGFyIEV4cHJlc3Npb24gdG8gdmFsaWRhdGUgaWYgYWNjb3VudG51bWJlciBoYXMgb25seSBudW1iZXJzIHByZXNlbnQgb3Igbm90XHJcbiAgICAqL1xyXG4gICAgc3RhdGljIEFDQ09VTlRfTlVNQkVSX1JFR0VYIDogUmVnRXhwID0gL15cXGQrJC87XHJcblxyXG4gICAgLyoqIFxyXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZ3VsYXIgRXhwcmVzc2lvbiB0byB2YWxpZGF0ZSBlbWFpbCBmb3JtYXRcclxuICAgICovXHJcbiAgICBzdGF0aWMgRU1BSUxfUkVHRVggOiBSZWdFeHAgID0gL14oKFtePD4oKVxcW1xcXVxcXFwuLDs6XFxzQFwiXSsoXFwuW148PigpXFxbXFxdXFxcXC4sOzpcXHNAXCJdKykqKXwoXCIuK1wiKSlAKChcXFtbMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XSl8KChbYS16QS1aXFwtMC05XStcXC4pK1thLXpBLVpdezIsfSkpJC87XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAZGVzY3JpcHRpb24gUmVndWxhciBFeHByZXNzaW9uIHRvIHN0YXRpb24gbm8uIGZvcm1hdFxyXG4gICAgICovXHJcbiAgICBzdGF0aWMgU1RBVElPTl9OT19SRUdFWCA9IC9eW0EtWmEtejAtOV17NH0kLztcclxuXHJcbiAgICBzdGF0aWMgQUNDT1VOVF9OVU1CRVJfUkVHRVhfTUlOIDogUmVnRXhwID0gL15cXGR7OCwxN30kLztcclxuXHJcbiAgICBzdGF0aWMgUk9VVElOR19OVU1CRVJfUkVHRVg6UmVnRXhwID0gL15bMC00XXsxfVswLTldezh9JC87ICBcclxufSJdfQ==
|