{"version":3,"sources":["webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app-routing.module.ts","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.scss","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/common/constants/appsetting.constant.ts","webpack:///./src/app/common/constants/countries.constant.ts","webpack:///./src/app/common/constants/message-setting.constant.ts","webpack:///./src/app/common/constants/states.constant.ts","webpack:///./src/app/common/directive/auto-complete.directive.ts","webpack:///./src/app/common/directive/usd-currency.directive.ts","webpack:///./src/app/common/enum/download-to-csv.enum.ts","webpack:///./src/app/common/enum/report-filter.enum.ts","webpack:///./src/app/common/exceptions/exception.ts","webpack:///./src/app/common/modal-ask-payment/modal-ask-payment.component.html","webpack:///./src/app/common/modal-ask-payment/modal-ask-payment.component.ts","webpack:///./src/app/common/modal-confirm-appt/modal-confirm-one-pmt-appt.component.ts","webpack:///./src/app/common/modal-confirm-invoice-payment/modal-confirm-invoice-payment.component.ts","webpack:///./src/app/common/modal-confirm-one-pmt-appt/modal-confirm-one-pmt-appt.component.ts","webpack:///./src/app/common/modal-confirm-pmt-appt/modal-confirm-pmt-appt.component.ts","webpack:///./src/app/common/modal-invalid-access/modal-invalid-access.component.ts","webpack:///./src/app/common/modal-opt-in-out-sms/modal-opt-in-out-sms.component.html","webpack:///./src/app/common/modal-opt-in-out-sms/modal-opt-in-out-sms.component.ts","webpack:///./src/app/common/modal-reason/modal-reason.component.html","webpack:///./src/app/common/modal-reason/modal-reason.component.ts","webpack:///./src/app/common/modal/modal.component.ts","webpack:///./src/app/common/modal3/modal3.component.ts","webpack:///./src/app/common/modal4/modal4.component.ts","webpack:///./src/app/common/processor-exception/processor-exception.ts","webpack:///./src/app/common/validation/messages.constant.ts","webpack:///./src/app/common/validation/validation.ts","webpack:///./src/app/common/validation/validator.ts","webpack:///./src/app/enum/ach-account-type.enum.ts","webpack:///./src/app/enum/billing-execution.enum.ts","webpack:///./src/app/enum/channeltypes.enum.ts","webpack:///./src/app/enum/features.enum.ts","webpack:///./src/app/enum/invoice.enum.ts","webpack:///./src/app/enum/recurring-payment-type.enum.ts","webpack:///./src/app/enum/storage.enum.ts","webpack:///./src/app/enum/transaction-operation-map.enum.ts","webpack:///./src/app/enum/transaction-operation.enum.ts","webpack:///./src/app/enum/transaction-origin.enum.ts","webpack:///./src/app/enum/transaction-status-map.enum.ts","webpack:///./src/app/enum/transaction-status.enum.ts","webpack:///./src/app/enum/upload-log.enum.ts","webpack:///./src/app/enum/user-type.enum.ts","webpack:///./src/app/module/layouts/footer/footer.component.html","webpack:///./src/app/module/layouts/footer/footer.component.scss","webpack:///./src/app/module/layouts/footer/footer.component.ts","webpack:///./src/app/module/layouts/header/header.component.html","webpack:///./src/app/module/layouts/header/header.component.scss","webpack:///./src/app/module/layouts/header/header.component.ts","webpack:///./src/app/module/layouts/loader/loader.component.html","webpack:///./src/app/module/layouts/loader/loader.component.scss","webpack:///./src/app/module/layouts/loader/loader.component.ts","webpack:///./src/app/module/layouts/side-nav/side-nav.component.html","webpack:///./src/app/module/layouts/side-nav/side-nav.component.scss","webpack:///./src/app/module/layouts/side-nav/side-nav.component.ts","webpack:///./src/app/module/patient-public/patient-login/patient-login.component.html","webpack:///./src/app/module/patient-public/patient-login/patient-login.component.scss","webpack:///./src/app/module/patient-public/patient-login/patient-login.component.ts","webpack:///./src/app/module/patient-public/patient-public.component.html","webpack:///./src/app/module/patient-public/patient-public.component.scss","webpack:///./src/app/module/patient-public/patient-public.component.ts","webpack:///./src/app/module/patient-public/patient-public.routes.ts","webpack:///./src/app/module/public/accept-terms/accept-terms.component.html","webpack:///./src/app/module/public/accept-terms/accept-terms.component.scss","webpack:///./src/app/module/public/accept-terms/accept-terms.component.ts","webpack:///./src/app/module/public/accept-terms/hippa-authorization/hippa-authorization.component.html","webpack:///./src/app/module/public/accept-terms/hippa-authorization/hippa-authorization.component.scss","webpack:///./src/app/module/public/accept-terms/hippa-authorization/hippa-authorization.component.ts","webpack:///./src/app/module/public/accept-terms/privacy-policy/privacy-policy.component.html","webpack:///./src/app/module/public/accept-terms/privacy-policy/privacy-policy.component.scss","webpack:///./src/app/module/public/accept-terms/privacy-policy/privacy-policy.component.ts","webpack:///./src/app/module/public/accept-terms/terms-of-use/terms-of-use.component.html","webpack:///./src/app/module/public/accept-terms/terms-of-use/terms-of-use.component.scss","webpack:///./src/app/module/public/accept-terms/terms-of-use/terms-of-use.component.ts","webpack:///./src/app/module/public/forgot-password/forgot-password.component.html","webpack:///./src/app/module/public/forgot-password/forgot-password.component.scss","webpack:///./src/app/module/public/forgot-password/forgot-password.component.ts","webpack:///./src/app/module/public/forgot-username/forgot-username.component.html","webpack:///./src/app/module/public/forgot-username/forgot-username.component.scss","webpack:///./src/app/module/public/forgot-username/forgot-username.component.ts","webpack:///./src/app/module/public/login/login.component.html","webpack:///./src/app/module/public/login/login.component.scss","webpack:///./src/app/module/public/login/login.component.ts","webpack:///./src/app/module/public/public.component.html","webpack:///./src/app/module/public/public.component.scss","webpack:///./src/app/module/public/public.component.ts","webpack:///./src/app/module/public/reset-password/reset-password.component.html","webpack:///./src/app/module/public/reset-password/reset-password.component.scss","webpack:///./src/app/module/public/reset-password/reset-password.component.ts","webpack:///./src/app/module/secure/admin/admin.component.html","webpack:///./src/app/module/secure/admin/admin.component.scss","webpack:///./src/app/module/secure/admin/admin.component.ts","webpack:///./src/app/module/secure/facility/facility.component.css","webpack:///./src/app/module/secure/facility/facility.component.html","webpack:///./src/app/module/secure/facility/facility.component.ts","webpack:///./src/app/module/secure/patient/component/patient-transaction/patient-transaction/patient-transaction.component.html","webpack:///./src/app/module/secure/patient/component/patient-transaction/patient-transaction/patient-transaction.component.scss","webpack:///./src/app/module/secure/patient/component/patient-transaction/patient-transaction/patient-transaction.component.ts","webpack:///./src/app/module/secure/patient/patient.component.html","webpack:///./src/app/module/secure/patient/patient.component.scss","webpack:///./src/app/module/secure/patient/patient.component.ts","webpack:///./src/app/module/secure/provider/component/download/download-receipt/download-receipt.component.html","webpack:///./src/app/module/secure/provider/component/download/download-receipt/download-receipt.component.scss","webpack:///./src/app/module/secure/provider/component/download/download-receipt/download-receipt.component.ts","webpack:///./src/app/module/secure/provider/component/patient-Account/add-patient-account/add-patient-account.component.html","webpack:///./src/app/module/secure/provider/component/patient-Account/add-patient-account/add-patient-account.component.scss","webpack:///./src/app/module/secure/provider/component/patient-Account/add-patient-account/add-patient-account.component.ts","webpack:///./src/app/module/secure/provider/component/recurring/update-recurring/update-recurring.component.html","webpack:///./src/app/module/secure/provider/component/recurring/update-recurring/update-recurring.component.scss","webpack:///./src/app/module/secure/provider/component/recurring/update-recurring/update-recurring.component.ts","webpack:///./src/app/module/secure/provider/component/transactions/transaction-management/transaction-operations/transaction-operations.component.html","webpack:///./src/app/module/secure/provider/component/transactions/transaction-management/transaction-operations/transaction-operations.component.scss","webpack:///./src/app/module/secure/provider/component/transactions/transaction-management/transaction-operations/transaction-operations.component.ts","webpack:///./src/app/module/secure/provider/component/transactions/virtual-terminal/validation-config.ts","webpack:///./src/app/module/secure/provider/provider.component.html","webpack:///./src/app/module/secure/provider/provider.component.scss","webpack:///./src/app/module/secure/provider/provider.component.ts","webpack:///./src/app/module/secure/secure.component.html","webpack:///./src/app/module/secure/secure.component.scss","webpack:///./src/app/module/secure/secure.component.ts","webpack:///./src/app/module/secure/secure.routes.ts","webpack:///./src/app/module/shared/additional-settings/additional-settings.component.html","webpack:///./src/app/module/shared/additional-settings/additional-settings.component.scss","webpack:///./src/app/module/shared/additional-settings/additional-settings.component.ts","webpack:///./src/app/module/shared/attachment-card/attachment-card.component.html","webpack:///./src/app/module/shared/attachment-card/attachment-card.component.scss","webpack:///./src/app/module/shared/attachment-card/attachment-card.component.ts","webpack:///./src/app/module/shared/change-password/change-password.component.html","webpack:///./src/app/module/shared/change-password/change-password.component.scss","webpack:///./src/app/module/shared/change-password/change-password.component.ts","webpack:///./src/app/module/shared/custom-product-tags/custom-product-tags.component.html","webpack:///./src/app/module/shared/custom-product-tags/custom-product-tags.component.scss","webpack:///./src/app/module/shared/custom-product-tags/custom-product-tags.component.ts","webpack:///./src/app/module/shared/email-settings/email-settings.component.html","webpack:///./src/app/module/shared/email-settings/email-settings.component.scss","webpack:///./src/app/module/shared/email-settings/email-settings.component.ts","webpack:///./src/app/module/shared/link-attachment-to-provider/link-attachment-to-provider.component.html","webpack:///./src/app/module/shared/link-attachment-to-provider/link-attachment-to-provider.component.scss","webpack:///./src/app/module/shared/link-attachment-to-provider/link-attachment-to-provider.component.ts","webpack:///./src/app/module/shared/notification-settings/notification-settings.component.html","webpack:///./src/app/module/shared/notification-settings/notification-settings.component.scss","webpack:///./src/app/module/shared/notification-settings/notification-settings.component.ts","webpack:///./src/app/module/shared/pagination/pagination.component.html","webpack:///./src/app/module/shared/pagination/pagination.component.scss","webpack:///./src/app/module/shared/pagination/pagination.component.ts","webpack:///./src/app/module/shared/skin/skin.component.html","webpack:///./src/app/module/shared/skin/skin.component.scss","webpack:///./src/app/module/shared/skin/skin.component.ts","webpack:///./src/app/module/shared/toaster/toaster.component.html","webpack:///./src/app/module/shared/toaster/toaster.component.scss","webpack:///./src/app/module/shared/toaster/toaster.component.ts","webpack:///./src/app/module/shared/upload-attachment/upload-attachment.component.html","webpack:///./src/app/module/shared/upload-attachment/upload-attachment.component.scss","webpack:///./src/app/module/shared/upload-attachment/upload-attachment.component.ts","webpack:///./src/app/module/shared/upload-logo/upload-logo.component.html","webpack:///./src/app/module/shared/upload-logo/upload-logo.component.scss","webpack:///./src/app/module/shared/upload-logo/upload-logo.component.ts","webpack:///./src/app/services/api/access-rights.service.ts","webpack:///./src/app/services/api/change-password.service.ts","webpack:///./src/app/services/api/common-api-func.service.ts","webpack:///./src/app/services/api/common.service.ts","webpack:///./src/app/services/api/email-settings.service.ts","webpack:///./src/app/services/api/features-access.service.ts","webpack:///./src/app/services/api/forgot-password.service.ts","webpack:///./src/app/services/api/forgot-username.service.ts","webpack:///./src/app/services/api/invoice.service.ts","webpack:///./src/app/services/api/login.service.ts","webpack:///./src/app/services/api/patient-account.service.ts","webpack:///./src/app/services/api/patient-uploads.service.ts","webpack:///./src/app/services/api/patient.service.ts","webpack:///./src/app/services/api/product.service.ts","webpack:///./src/app/services/api/provider.service.ts","webpack:///./src/app/services/api/recurring-payments.service.ts","webpack:///./src/app/services/api/reset-password.service.ts","webpack:///./src/app/services/api/settings.service.ts","webpack:///./src/app/services/api/theme.service.ts","webpack:///./src/app/services/api/toaster.service.ts","webpack:///./src/app/services/api/token-interceptor.ts","webpack:///./src/app/services/api/transaction.service.ts","webpack:///./src/app/services/commonservice/utilities.ts","webpack:///./src/app/services/pipe/customFormatCurrency.pipe.ts","webpack:///./src/app/services/pipe/customFormatPercetage.pipe.ts","webpack:///./src/app/services/pipe/dash-mask.pipe.ts","webpack:///./src/app/services/pipe/minToDay.pipe.ts","webpack:///./src/app/services/pipe/prefixSuffix.pipe.ts","webpack:///./src/app/services/pipe/short-url.pipe.ts","webpack:///./src/app/services/pipe/time.pipe.ts","webpack:///./src/app/services/session/auth.guard.ts","webpack:///./src/app/services/session/storage.enum.ts","webpack:///./src/app/services/session/storage.service.ts","webpack:///./src/app/services/validation/messages.constant.ts","webpack:///./src/app/services/validation/validation.constant.ts","webpack:///./src/app/services/validation/validator.ts","webpack:///./src/app/shared/shared.module.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6E;;;;;;;;;;;ACpSA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,qC;;;;;;;;;;;;;;;;;;;;;;;AC9CyC;AACiC;AAChB;AAGI;AACK;AACuB;AACJ;AAEtF,qCAAqC;AACrC,yBAAyB;AACzB,yFAAyF;AACzF,wGAAwG;AACxG,MAAM;AACN,sEAAsE;AACtE,+DAA+D;AAC/D,OAAO;AACP,yCAAyC;AACzC,KAAK;AACL,mCAAmC;AAEnC,oCAAoC;AACpC,IAAI,MAAM,GAAW;IACnB,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,EAAE;IACnF,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,sGAAsB,EAAE,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,kGAAqB,EAAE;IACjH;QACE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,+EAAe,EAAE,WAAW,EAAE,CAAC,sEAAS,CAAC;QAC9D,IAAI,EAAE,EAAE,KAAK,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,0EAAa;KACzD;IACD,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE;CAClC,CAAC;A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c,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACpG,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACpG,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACpG,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACpG,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACpG,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACpG,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACpG,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACpG,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACpG,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACpG,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACpG,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACpG,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACpG,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACpG,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACpG,KAAK,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;SACrG,CAAC;QACF,gBAAW,GAAG;YACZ,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE;YACrG,MAAM,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAAE,eAAe,EAAE,CAAC,EAAE,cAAc,EAAE,CAAC,EAA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","file":"main.ceef9799baabd30da153.js","sourcesContent":["var map = {\n\t\"./af\": \"./node_modules/moment/locale/af.js\",\n\t\"./af.js\": \"./node_modules/moment/locale/af.js\",\n\t\"./ar\": \"./node_modules/moment/locale/ar.js\",\n\t\"./ar-dz\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-dz.js\": \"./node_modules/moment/locale/ar-dz.js\",\n\t\"./ar-kw\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-kw.js\": \"./node_modules/moment/locale/ar-kw.js\",\n\t\"./ar-ly\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ly.js\": \"./node_modules/moment/locale/ar-ly.js\",\n\t\"./ar-ma\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-ma.js\": \"./node_modules/moment/locale/ar-ma.js\",\n\t\"./ar-sa\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-sa.js\": \"./node_modules/moment/locale/ar-sa.js\",\n\t\"./ar-tn\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar-tn.js\": \"./node_modules/moment/locale/ar-tn.js\",\n\t\"./ar.js\": \"./node_modules/moment/locale/ar.js\",\n\t\"./az\": \"./node_modules/moment/locale/az.js\",\n\t\"./az.js\": \"./node_modules/moment/locale/az.js\",\n\t\"./be\": \"./node_modules/moment/locale/be.js\",\n\t\"./be.js\": \"./node_modules/moment/locale/be.js\",\n\t\"./bg\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bg.js\": \"./node_modules/moment/locale/bg.js\",\n\t\"./bm\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bm.js\": \"./node_modules/moment/locale/bm.js\",\n\t\"./bn\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bn-bd\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn-bd.js\": \"./node_modules/moment/locale/bn-bd.js\",\n\t\"./bn.js\": \"./node_modules/moment/locale/bn.js\",\n\t\"./bo\": \"./node_modules/moment/locale/bo.js\",\n\t\"./bo.js\": \"./node_modules/moment/locale/bo.js\",\n\t\"./br\": \"./node_modules/moment/locale/br.js\",\n\t\"./br.js\": \"./node_modules/moment/locale/br.js\",\n\t\"./bs\": \"./node_modules/moment/locale/bs.js\",\n\t\"./bs.js\": \"./node_modules/moment/locale/bs.js\",\n\t\"./ca\": \"./node_modules/moment/locale/ca.js\",\n\t\"./ca.js\": \"./node_modules/moment/locale/ca.js\",\n\t\"./cs\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cs.js\": \"./node_modules/moment/locale/cs.js\",\n\t\"./cv\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cv.js\": \"./node_modules/moment/locale/cv.js\",\n\t\"./cy\": \"./node_modules/moment/locale/cy.js\",\n\t\"./cy.js\": \"./node_modules/moment/locale/cy.js\",\n\t\"./da\": \"./node_modules/moment/locale/da.js\",\n\t\"./da.js\": \"./node_modules/moment/locale/da.js\",\n\t\"./de\": \"./node_modules/moment/locale/de.js\",\n\t\"./de-at\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-at.js\": \"./node_modules/moment/locale/de-at.js\",\n\t\"./de-ch\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de-ch.js\": \"./node_modules/moment/locale/de-ch.js\",\n\t\"./de.js\": \"./node_modules/moment/locale/de.js\",\n\t\"./dv\": \"./node_modules/moment/locale/dv.js\",\n\t\"./dv.js\": \"./node_modules/moment/locale/dv.js\",\n\t\"./el\": \"./node_modules/moment/locale/el.js\",\n\t\"./el.js\": \"./node_modules/moment/locale/el.js\",\n\t\"./en-au\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-au.js\": \"./node_modules/moment/locale/en-au.js\",\n\t\"./en-ca\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-ca.js\": \"./node_modules/moment/locale/en-ca.js\",\n\t\"./en-gb\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-gb.js\": \"./node_modules/moment/locale/en-gb.js\",\n\t\"./en-ie\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-ie.js\": \"./node_modules/moment/locale/en-ie.js\",\n\t\"./en-il\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-il.js\": \"./node_modules/moment/locale/en-il.js\",\n\t\"./en-in\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-in.js\": \"./node_modules/moment/locale/en-in.js\",\n\t\"./en-nz\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-nz.js\": \"./node_modules/moment/locale/en-nz.js\",\n\t\"./en-sg\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./en-sg.js\": \"./node_modules/moment/locale/en-sg.js\",\n\t\"./eo\": \"./node_modules/moment/locale/eo.js\",\n\t\"./eo.js\": \"./node_modules/moment/locale/eo.js\",\n\t\"./es\": \"./node_modules/moment/locale/es.js\",\n\t\"./es-do\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-do.js\": \"./node_modules/moment/locale/es-do.js\",\n\t\"./es-mx\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-mx.js\": \"./node_modules/moment/locale/es-mx.js\",\n\t\"./es-us\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es-us.js\": \"./node_modules/moment/locale/es-us.js\",\n\t\"./es.js\": \"./node_modules/moment/locale/es.js\",\n\t\"./et\": \"./node_modules/moment/locale/et.js\",\n\t\"./et.js\": \"./node_modules/moment/locale/et.js\",\n\t\"./eu\": \"./node_modules/moment/locale/eu.js\",\n\t\"./eu.js\": \"./node_modules/moment/locale/eu.js\",\n\t\"./fa\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fa.js\": \"./node_modules/moment/locale/fa.js\",\n\t\"./fi\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fi.js\": \"./node_modules/moment/locale/fi.js\",\n\t\"./fil\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fil.js\": \"./node_modules/moment/locale/fil.js\",\n\t\"./fo\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fo.js\": \"./node_modules/moment/locale/fo.js\",\n\t\"./fr\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fr-ca\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ca.js\": \"./node_modules/moment/locale/fr-ca.js\",\n\t\"./fr-ch\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr-ch.js\": \"./node_modules/moment/locale/fr-ch.js\",\n\t\"./fr.js\": \"./node_modules/moment/locale/fr.js\",\n\t\"./fy\": \"./node_modules/moment/locale/fy.js\",\n\t\"./fy.js\": \"./node_modules/moment/locale/fy.js\",\n\t\"./ga\": \"./node_modules/moment/locale/ga.js\",\n\t\"./ga.js\": \"./node_modules/moment/locale/ga.js\",\n\t\"./gd\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gd.js\": \"./node_modules/moment/locale/gd.js\",\n\t\"./gl\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gl.js\": \"./node_modules/moment/locale/gl.js\",\n\t\"./gom-deva\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-deva.js\": \"./node_modules/moment/locale/gom-deva.js\",\n\t\"./gom-latn\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gom-latn.js\": \"./node_modules/moment/locale/gom-latn.js\",\n\t\"./gu\": \"./node_modules/moment/locale/gu.js\",\n\t\"./gu.js\": \"./node_modules/moment/locale/gu.js\",\n\t\"./he\": \"./node_modules/moment/locale/he.js\",\n\t\"./he.js\": \"./node_modules/moment/locale/he.js\",\n\t\"./hi\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hi.js\": \"./node_modules/moment/locale/hi.js\",\n\t\"./hr\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hr.js\": \"./node_modules/moment/locale/hr.js\",\n\t\"./hu\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hu.js\": \"./node_modules/moment/locale/hu.js\",\n\t\"./hy-am\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./hy-am.js\": \"./node_modules/moment/locale/hy-am.js\",\n\t\"./id\": \"./node_modules/moment/locale/id.js\",\n\t\"./id.js\": \"./node_modules/moment/locale/id.js\",\n\t\"./is\": \"./node_modules/moment/locale/is.js\",\n\t\"./is.js\": \"./node_modules/moment/locale/is.js\",\n\t\"./it\": \"./node_modules/moment/locale/it.js\",\n\t\"./it-ch\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it-ch.js\": \"./node_modules/moment/locale/it-ch.js\",\n\t\"./it.js\": \"./node_modules/moment/locale/it.js\",\n\t\"./ja\": \"./node_modules/moment/locale/ja.js\",\n\t\"./ja.js\": \"./node_modules/moment/locale/ja.js\",\n\t\"./jv\": \"./node_modules/moment/locale/jv.js\",\n\t\"./jv.js\": \"./node_modules/moment/locale/jv.js\",\n\t\"./ka\": \"./node_modules/moment/locale/ka.js\",\n\t\"./ka.js\": \"./node_modules/moment/locale/ka.js\",\n\t\"./kk\": \"./node_modules/moment/locale/kk.js\",\n\t\"./kk.js\": \"./node_modules/moment/locale/kk.js\",\n\t\"./km\": \"./node_modules/moment/locale/km.js\",\n\t\"./km.js\": \"./node_modules/moment/locale/km.js\",\n\t\"./kn\": \"./node_modules/moment/locale/kn.js\",\n\t\"./kn.js\": \"./node_modules/moment/locale/kn.js\",\n\t\"./ko\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ko.js\": \"./node_modules/moment/locale/ko.js\",\n\t\"./ku\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ku.js\": \"./node_modules/moment/locale/ku.js\",\n\t\"./ky\": \"./node_modules/moment/locale/ky.js\",\n\t\"./ky.js\": \"./node_modules/moment/locale/ky.js\",\n\t\"./lb\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lb.js\": \"./node_modules/moment/locale/lb.js\",\n\t\"./lo\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lo.js\": \"./node_modules/moment/locale/lo.js\",\n\t\"./lt\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lt.js\": \"./node_modules/moment/locale/lt.js\",\n\t\"./lv\": \"./node_modules/moment/locale/lv.js\",\n\t\"./lv.js\": \"./node_modules/moment/locale/lv.js\",\n\t\"./me\": \"./node_modules/moment/locale/me.js\",\n\t\"./me.js\": \"./node_modules/moment/locale/me.js\",\n\t\"./mi\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mi.js\": \"./node_modules/moment/locale/mi.js\",\n\t\"./mk\": \"./node_modules/moment/locale/mk.js\",\n\t\"./mk.js\": \"./node_modules/moment/locale/mk.js\",\n\t\"./ml\": \"./node_modules/moment/locale/ml.js\",\n\t\"./ml.js\": \"./node_modules/moment/locale/ml.js\",\n\t\"./mn\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mn.js\": \"./node_modules/moment/locale/mn.js\",\n\t\"./mr\": \"./node_modules/moment/locale/mr.js\",\n\t\"./mr.js\": \"./node_modules/moment/locale/mr.js\",\n\t\"./ms\": \"./node_modules/moment/locale/ms.js\",\n\t\"./ms-my\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms-my.js\": \"./node_modules/moment/locale/ms-my.js\",\n\t\"./ms.js\": \"./node_modules/moment/locale/ms.js\",\n\t\"./mt\": \"./node_modules/moment/locale/mt.js\",\n\t\"./mt.js\": \"./node_modules/moment/locale/mt.js\",\n\t\"./my\": \"./node_modules/moment/locale/my.js\",\n\t\"./my.js\": \"./node_modules/moment/locale/my.js\",\n\t\"./nb\": \"./node_modules/moment/locale/nb.js\",\n\t\"./nb.js\": \"./node_modules/moment/locale/nb.js\",\n\t\"./ne\": \"./node_modules/moment/locale/ne.js\",\n\t\"./ne.js\": \"./node_modules/moment/locale/ne.js\",\n\t\"./nl\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nl-be\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl-be.js\": \"./node_modules/moment/locale/nl-be.js\",\n\t\"./nl.js\": \"./node_modules/moment/locale/nl.js\",\n\t\"./nn\": \"./node_modules/moment/locale/nn.js\",\n\t\"./nn.js\": \"./node_modules/moment/locale/nn.js\",\n\t\"./oc-lnc\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./oc-lnc.js\": \"./node_modules/moment/locale/oc-lnc.js\",\n\t\"./pa-in\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pa-in.js\": \"./node_modules/moment/locale/pa-in.js\",\n\t\"./pl\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pl.js\": \"./node_modules/moment/locale/pl.js\",\n\t\"./pt\": \"./node_modules/moment/locale/pt.js\",\n\t\"./pt-br\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt-br.js\": \"./node_modules/moment/locale/pt-br.js\",\n\t\"./pt.js\": \"./node_modules/moment/locale/pt.js\",\n\t\"./ro\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ro.js\": \"./node_modules/moment/locale/ro.js\",\n\t\"./ru\": \"./node_modules/moment/locale/ru.js\",\n\t\"./ru.js\": \"./node_modules/moment/locale/ru.js\",\n\t\"./sd\": \"./node_modules/moment/locale/sd.js\",\n\t\"./sd.js\": \"./node_modules/moment/locale/sd.js\",\n\t\"./se\": \"./node_modules/moment/locale/se.js\",\n\t\"./se.js\": \"./node_modules/moment/locale/se.js\",\n\t\"./si\": \"./node_modules/moment/locale/si.js\",\n\t\"./si.js\": \"./node_modules/moment/locale/si.js\",\n\t\"./sk\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sk.js\": \"./node_modules/moment/locale/sk.js\",\n\t\"./sl\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sl.js\": \"./node_modules/moment/locale/sl.js\",\n\t\"./sq\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sq.js\": \"./node_modules/moment/locale/sq.js\",\n\t\"./sr\": \"./node_modules/moment/locale/sr.js\",\n\t\"./sr-cyrl\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr-cyrl.js\": \"./node_modules/moment/locale/sr-cyrl.js\",\n\t\"./sr.js\": \"./node_modules/moment/locale/sr.js\",\n\t\"./ss\": \"./node_modules/moment/locale/ss.js\",\n\t\"./ss.js\": \"./node_modules/moment/locale/ss.js\",\n\t\"./sv\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sv.js\": \"./node_modules/moment/locale/sv.js\",\n\t\"./sw\": \"./node_modules/moment/locale/sw.js\",\n\t\"./sw.js\": \"./node_modules/moment/locale/sw.js\",\n\t\"./ta\": \"./node_modules/moment/locale/ta.js\",\n\t\"./ta.js\": \"./node_modules/moment/locale/ta.js\",\n\t\"./te\": \"./node_modules/moment/locale/te.js\",\n\t\"./te.js\": \"./node_modules/moment/locale/te.js\",\n\t\"./tet\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tet.js\": \"./node_modules/moment/locale/tet.js\",\n\t\"./tg\": \"./node_modules/moment/locale/tg.js\",\n\t\"./tg.js\": \"./node_modules/moment/locale/tg.js\",\n\t\"./th\": \"./node_modules/moment/locale/th.js\",\n\t\"./th.js\": \"./node_modules/moment/locale/th.js\",\n\t\"./tk\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tk.js\": \"./node_modules/moment/locale/tk.js\",\n\t\"./tl-ph\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tl-ph.js\": \"./node_modules/moment/locale/tl-ph.js\",\n\t\"./tlh\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tlh.js\": \"./node_modules/moment/locale/tlh.js\",\n\t\"./tr\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tr.js\": \"./node_modules/moment/locale/tr.js\",\n\t\"./tzl\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzl.js\": \"./node_modules/moment/locale/tzl.js\",\n\t\"./tzm\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./tzm-latn\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm-latn.js\": \"./node_modules/moment/locale/tzm-latn.js\",\n\t\"./tzm.js\": \"./node_modules/moment/locale/tzm.js\",\n\t\"./ug-cn\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./ug-cn.js\": \"./node_modules/moment/locale/ug-cn.js\",\n\t\"./uk\": \"./node_modules/moment/locale/uk.js\",\n\t\"./uk.js\": \"./node_modules/moment/locale/uk.js\",\n\t\"./ur\": \"./node_modules/moment/locale/ur.js\",\n\t\"./ur.js\": \"./node_modules/moment/locale/ur.js\",\n\t\"./uz\": \"./node_modules/moment/locale/uz.js\",\n\t\"./uz-latn\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz-latn.js\": \"./node_modules/moment/locale/uz-latn.js\",\n\t\"./uz.js\": \"./node_modules/moment/locale/uz.js\",\n\t\"./vi\": \"./node_modules/moment/locale/vi.js\",\n\t\"./vi.js\": \"./node_modules/moment/locale/vi.js\",\n\t\"./x-pseudo\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./x-pseudo.js\": \"./node_modules/moment/locale/x-pseudo.js\",\n\t\"./yo\": \"./node_modules/moment/locale/yo.js\",\n\t\"./yo.js\": \"./node_modules/moment/locale/yo.js\",\n\t\"./zh-cn\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-cn.js\": \"./node_modules/moment/locale/zh-cn.js\",\n\t\"./zh-hk\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-hk.js\": \"./node_modules/moment/locale/zh-hk.js\",\n\t\"./zh-mo\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-mo.js\": \"./node_modules/moment/locale/zh-mo.js\",\n\t\"./zh-tw\": \"./node_modules/moment/locale/zh-tw.js\",\n\t\"./zh-tw.js\": \"./node_modules/moment/locale/zh-tw.js\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tvar id = map[req];\n\tif(!(id + 1)) { // check for number or string\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn id;\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"./node_modules/moment/locale sync recursive ^\\\\.\\\\/.*$\";","var map = {\n\t\"src/app/module/secure/admin/admin.module\": [\n\t\t\"./src/app/module/secure/admin/admin.module.ts\",\n\t\t\"default~src-app-module-secure-admin-admin-module~src-app-module-secure-patient-patient-module~src-ap~388ea39b\",\n\t\t\"src-app-module-secure-admin-admin-module\"\n\t],\n\t\"src/app/module/secure/facility/facility.module\": [\n\t\t\"./src/app/module/secure/facility/facility.module.ts\",\n\t\t\"src-app-module-secure-facility-facility-module\"\n\t],\n\t\"src/app/module/secure/forms/forms.module\": [\n\t\t\"./src/app/module/secure/forms/forms.module.ts\",\n\t\t\"default~src-app-module-secure-forms-forms-module~src-app-module-secure-patient-patient-module~src-ap~fab82e03\"\n\t],\n\t\"src/app/module/secure/patient/patient.module\": [\n\t\t\"./src/app/module/secure/patient/patient.module.ts\",\n\t\t\"default~src-app-module-secure-forms-forms-module~src-app-module-secure-patient-patient-module~src-ap~fab82e03\",\n\t\t\"default~src-app-module-secure-admin-admin-module~src-app-module-secure-patient-patient-module~src-ap~388ea39b\",\n\t\t\"default~src-app-module-secure-patient-patient-module~src-app-module-secure-provider-provider-module\",\n\t\t\"src-app-module-secure-patient-patient-module\"\n\t],\n\t\"src/app/module/secure/provider/provider.module\": [\n\t\t\"./src/app/module/secure/provider/provider.module.ts\",\n\t\t\"default~src-app-module-secure-forms-forms-module~src-app-module-secure-patient-patient-module~src-ap~fab82e03\",\n\t\t\"default~src-app-module-secure-admin-admin-module~src-app-module-secure-patient-patient-module~src-ap~388ea39b\",\n\t\t\"default~src-app-module-secure-patient-patient-module~src-app-module-secure-provider-provider-module\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\tvar id = ids[0];\n\t\treturn __webpack_require__(id);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";\nmodule.exports = webpackAsyncContext;","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule, PreloadAllModules } from '@angular/router';\r\nimport { AuthGuard } from './services/session/auth.guard';\r\nimport { PUBLIC_ROUTES } from './module/public/public.routes';\r\nimport { PublicComponent } from './module/public/public.component';\r\nimport { SECURE_ROUTES } from './module/secure/secure.routes';\r\nimport { SecureComponent } from './module/secure/secure.component';\r\nimport { PatientPublicComponent } from './module/patient-public/patient-public.component';\r\nimport { PATIENT_PUBLIC_ROUTES } from './module/patient-public/patient-public.routes';\r\n\r\n/****** provider route starts ******/\r\n// let routes: Routes = [\r\n// { path: '', redirectTo: 'login', pathMatch: 'full', data: { breadcrumb: 'login' } },\r\n// { path: '', component: PublicComponent, data: { title: 'Public Views' }, children: PUBLIC_ROUTES },\r\n// {\r\n// path: '', component: SecureComponent, canActivate: [AuthGuard],\r\n// data: { title: 'Secure Views' }, children: SECURE_ROUTES\r\n// },\r\n// { path: '**', redirectTo: 'login' },\r\n// ];\r\n/****** provider route ends ******/\r\n\r\n/****** patient route starts ******/\r\nlet routes: Routes = [\r\n { path: '', redirectTo: 'login', pathMatch: 'full', data: { breadcrumb: 'login' } },\r\n { path: '', component: PatientPublicComponent, data: { title: 'Public Views' }, children: PATIENT_PUBLIC_ROUTES },\r\n {\r\n path: '', component: SecureComponent, canActivate: [AuthGuard],\r\n data: { title: 'Secure Views' }, children: SECURE_ROUTES\r\n },\r\n { path: '**', redirectTo: 'login' },\r\n ];\r\n/****** patient route ends ******/\r\n\r\n// if (window.location.host.includes('login.') || window.location.host.includes('logindev.') || window.location.host.includes('localhost:')) {\r\nif (window.location.host.includes('login.') || window.location.host.includes('logindev.')) {\r\n routes = [\r\n { path: '', redirectTo: 'login', pathMatch: 'full', data: { breadcrumb: 'login' } },\r\n { path: '', component: PatientPublicComponent, data: { title: 'Public Views' }, children: PATIENT_PUBLIC_ROUTES },\r\n {\r\n path: '', component: SecureComponent, canActivate: [AuthGuard],\r\n data: { title: 'Secure Views' }, children: SECURE_ROUTES\r\n },\r\n { path: '**', redirectTo: 'login' },\r\n ];\r\n}\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes, { useHash: true, preloadingStrategy: PreloadAllModules })],\r\n exports: [RouterModule]\r\n})\r\n\r\nexport class AppRoutingModule { }\r\n","module.exports = \"\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, HostListener } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { Router } from '@angular/router';\r\nimport { SettingsService } from './services/api/settings.service';\r\nimport { ThemeService } from './services/api/theme.service';\r\nimport { UserTypeEnum } from './enum/user-type.enum';\r\nimport { StorageService } from './services/session/storage.service';\r\nimport { StorageType } from './services/session/storage.enum';\r\nimport { CommonService } from './services/api/common.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n title = 'apf-app';\r\n constructor(translate: TranslateService,\r\n private router: Router,\r\n private settingsService: SettingsService,\r\n private storageService: StorageService,\r\n private themeService: ThemeService,\r\n private commonService: CommonService) {\r\n // this language will be used as a fallback when a translation isn't found in the current language\r\n translate.setDefaultLang('en');\r\n\r\n // the lang to use, if the lang isn't available, it will use the current loader to get them\r\n translate.use('en');\r\n this.setTheme();\r\n }\r\n\r\n\r\n setTheme() {\r\n const loggedInUserData = this.settingsService.getLoggedInData();\r\n\r\n //const settingData = JSON.parse(this.storageService.get(StorageType.session, 'settingsData'));\r\n if(loggedInUserData!==null){\r\n //console.log(\"inside loggedInUserData\")\r\n //this.storageService.startTimer();\r\n // this.storageService.setSessionWarningTimer();\r\n // this.storageService.setSessionTimeout();\r\n this.commonService.startCheckingIdleTime();\r\n }\r\n if (loggedInUserData !== null\r\n && (loggedInUserData.userType === UserTypeEnum.PROVIDER)) {\r\n // this.settingsService.getSettings().subscribe(\r\n // (response: any) => {\r\n // this.themeService.changeTheme(response.skin);\r\n // this.settingsService.setSettingsData(response);\r\n // },\r\n // error => {\r\n // this.themeService.changeTheme(4); //DEFAULT THEME\r\n // }\r\n // );\r\n let providerSelected = JSON.parse(this.storageService.get(StorageType.session, 'providerSelected'));\r\n this.themeService.changeTheme(providerSelected.skin);\r\n } else \r\n if (loggedInUserData !== null\r\n && (loggedInUserData.userType === UserTypeEnum.PATIENT)) {\r\n let providerSelected = JSON.parse(this.storageService.get(StorageType.session, 'providerSelected'));\r\n this.themeService.changeTheme(providerSelected.skin);\r\n } \r\n // else if (settingData !== null &&\r\n // loggedInUserData !== null &&\r\n // (loggedInUserData.userType === UserTypeEnum.PATIENT)) {\r\n // this.themeService.changeTheme(settingData.skin);\r\n // this.settingsService.setSettingsData(settingData);\r\n // } \r\n else {\r\n this.themeService.changeTheme(4); //DEFAULT THEME\r\n }\r\n\r\n }\r\n\r\n\r\n\r\n}\r\n","// Modules\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule } from '@angular/core';\r\nimport { SharedModule } from './shared/shared.module';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport {SuiModule} from 'ng2-semantic-ui';\r\nimport { TranslateModule, TranslateLoader } from '../../node_modules/@ngx-translate/core';\r\nimport { TranslateHttpLoader } from '../../node_modules/@ngx-translate/http-loader';\r\n\r\nimport { NgxMaskModule } from 'ngx-mask';\r\n\r\n// Third party librarypackage\r\n// https://www.npmjs.com/package/ngx-dropzone--> Don't remove\r\nimport { NgxDropzoneModule } from 'ngx-dropzone';\r\n// https://www.npmjs.com/package/@ngu/carousel--> Don't remove\r\n// https://stackblitz.com/edit/ngu-carousel-demo?file=src%2Fapp%2Fnested%2Fnested.component.ts--> Don't remove\r\nimport { NguCarouselModule } from '@ngu/carousel';\r\n// https://www.npmjs.com/package/ngx-color-picker--> Don't remove\r\n// https://stackblitz.com/github/zefoy/ngx-color-picker/tree/master/example?file=src%2Fapp%2Fapp.component.ts--> Don't remove\r\nimport { ColorPickerModule } from 'ngx-color-picker';\r\nimport { NgxDaterangepickerMd } from 'ngx-daterangepicker-material';\r\n// Component\r\nimport { AppComponent } from './app.component';\r\nimport { LoginComponent } from './module/public/login/login.component';\r\nimport { SideNavComponent } from './module/layouts/side-nav/side-nav.component';\r\nimport { HttpClient, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\r\nimport { LoaderComponent } from './module/layouts/loader/loader.component';\r\nimport { TokenInterceptor } from './services/api/token-interceptor';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SecureComponent } from './module/secure/secure.component';\r\nimport { PublicComponent } from './module/public/public.component';\r\nimport { ForgotPasswordComponent } from './module/public/forgot-password/forgot-password.component';\r\nimport { ForgotUsernameComponent } from './module/public/forgot-username/forgot-username.component';\r\nimport { ProviderComponent } from './module/secure/provider/provider.component';\r\nimport { AdminComponent } from './module/secure/admin/admin.component';\r\nimport { PatientComponent } from './module/secure/patient/patient.component';\r\nimport { FacilityComponent } from './module/secure/facility/facility.component';\r\nimport { ResetPasswordComponent } from './module/public/reset-password/reset-password.component';\r\nimport { AcceptTermsComponent } from './module/public/accept-terms/accept-terms.component';\r\nimport { PrivacyPolicyComponent } from './module/public/accept-terms/privacy-policy/privacy-policy.component';\r\nimport { TermsOfUseComponent } from './module/public/accept-terms/terms-of-use/terms-of-use.component';\r\nimport { HippaAuthorizationComponent } from './module/public/accept-terms/hippa-authorization/hippa-authorization.component';\r\nimport { PatientPublicComponent } from './module/patient-public/patient-public.component';\r\nimport { PatientLoginComponent } from './module/patient-public/patient-login/patient-login.component';\r\n//import { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { CalendarModule, DateAdapter } from 'angular-calendar';\r\nimport { adapterFactory } from 'angular-calendar/date-adapters/date-fns';\r\n\r\nimport semantic from '@formio/semantic';\r\nimport { Formio } from 'formiojs';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { UserIdleModule } from 'angular-user-idle';\r\nFormio.use(semantic);\r\n\r\n// AoT requires an exported function for factories\r\nexport function HttpLoaderFactory(http: HttpClient) {\r\n return new TranslateHttpLoader(http);\r\n}\r\n\r\n// const DEFAULT_DROPZONE_CONFIG: DropzoneConfigInterface = {\r\n// // Change this to your upload POST address:\r\n// url: 'http://hpg2-ui.s3-website.us-east-2.amazonaws.com',\r\n// maxFilesize: 50,\r\n// acceptedFiles: 'image/*'\r\n// };\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n LoginComponent,\r\n PublicComponent,\r\n PatientLoginComponent,\r\n PatientPublicComponent,\r\n SecureComponent,\r\n AdminComponent,\r\n PatientComponent,\r\n ProviderComponent,\r\n LoaderComponent,\r\n FacilityComponent,\r\n ForgotPasswordComponent,\r\n ResetPasswordComponent,\r\n ForgotUsernameComponent,\r\n AcceptTermsComponent,\r\n PrivacyPolicyComponent,\r\n TermsOfUseComponent,\r\n HippaAuthorizationComponent,\r\n ],\r\n imports: [\r\n BrowserModule,\r\n // SuiModule,\r\n SharedModule,\r\n HttpClientModule,\r\n // FormsModule,\r\n // ReactiveFormsModule,\r\n AppRoutingModule,\r\n // useFactory: HttpLoaderFactory,\r\n // deps: [HttpClient]\r\n // }\r\n // })\r\n // DropzoneModule,\r\n NgxDropzoneModule,\r\n NguCarouselModule,\r\n ColorPickerModule,\r\n NgxDaterangepickerMd.forRoot(),\r\n NgxMaskModule.forRoot(),\r\n TranslateModule.forRoot({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient]\r\n }\r\n }),\r\n //FlatpickrModule.forRoot(),\r\n //BrowserAnimationsModule,\r\n CalendarModule.forRoot({\r\n provide: DateAdapter,\r\n useFactory: adapterFactory,\r\n }),\r\n BrowserAnimationsModule,\r\n UserIdleModule.forRoot({idle: 900, timeout: 1, ping: 240})\r\n ],\r\n providers: [\r\n {provide: HTTP_INTERCEPTORS, useClass: TokenInterceptor, multi: true},\r\n // {provide: DROPZONE_CONFIG, useValue: DEFAULT_DROPZONE_CONFIG}\r\n ],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule { }\r\n","//const baseUrl = 'https://api.uat.hellopatients.com/';//hellopateint UAT Environment\r\n//const baseUrl = 'https://api.hellopatients.com/';//hellopateint Prod Environment\r\n//HPT new dev environment\r\nlet baseUrl = 'https://atg96ts3g3.execute-api.us-east-2.amazonaws.com/v1/';\r\nif (window.location.host.includes(\"login.uat\") || window.location.host.includes(\"admin.uat\")) {\r\n baseUrl = 'https://api.uat.hellopatients.com/';\r\n}\r\nif (\r\n window.location.host.includes(\"admin.hellopatients\") || \r\n window.location.host.includes(\"login.hellopatients\") ||\r\n window.location.host.includes(\"admin.revique\") ||\r\n window.location.host.includes(\"login.revique\")\r\n) {\r\n baseUrl = 'https://api.hellopatients.com/';\r\n}\r\n// if(window.location.host.includes(\"admindev.\")||window.location.host.includes(\"logindev.\")||window.location.host.includes(\"hptui.\")||window.location.host.includes(\"localhost:\")){\r\n// baseUrl = 'https://atg96ts3g3.execute-api.us-east-2.amazonaws.com/v1/';\r\n// }\r\n//console.log(baseUrl)\r\n//const baseUrl = 'https://atg96ts3g3.execute-api.us-east-2.amazonaws.com/v1/'//const baseUrl = 'http://10.197.1.62:5000/';\r\nexport class AppSetting {\r\n static baseUrl = baseUrl;\r\n static defaultCountry = '1';\r\n static common = {\r\n emulate: AppSetting.baseUrl + 'user/session/{username}/emulation',\r\n login: baseUrl + 'users/sessions',\r\n patientLogin: baseUrl + 'patient/sessions',\r\n getUserByUserName: baseUrl + 'users',\r\n getCountry: baseUrl + 'countries/list',\r\n getState: baseUrl + 'states/',\r\n getTimeZone: baseUrl + 'timezones',\r\n forgotPassword: baseUrl + 'forgotPassword',\r\n forgotUsername: baseUrl + 'forgotUsername',\r\n patientLookup: baseUrl + 'providers/{providerId}/patients/lookup',\r\n getRefreshToken: baseUrl + 'user/session/{userId}/refresh',\r\n providerLookup: baseUrl + 'patients/{patientId}/providers',\r\n customPlanLookup: baseUrl + 'providers/{providerId}/customplans/lookup',\r\n recurringLookup: baseUrl + 'providers/{providerId}/recurringpayments/lookup',\r\n acceptTerm: baseUrl + 'users/{user}/termsconditions',\r\n patientLoginOTP: baseUrl + 'patient/sendotp',\r\n patientLoginViaOTP: baseUrl + 'patient/onetimepassword/sessions',\r\n insuranceLookup: baseUrl + 'insurance/lookup',\r\n training: baseUrl + 'training/videos',\r\n getGlobalUserByUserName: baseUrl + 'users/{username}/name',\r\n getProviderUserByUserName: baseUrl + 'providers/{parentId}/users/{username}/name',\r\n getPatientUserByUserName: baseUrl + 'patients/{parentId}/users/{username}/name',\r\n getProviderUserDetail: baseUrl + 'providers/{parentId}/users/details/{username}',\r\n };\r\n\r\n static featuresaccess = {\r\n getDefaultconfig: AppSetting.baseUrl + 'modules/{userType}',\r\n addModuleConfig: AppSetting.baseUrl + 'providers/{parentId}/moduleconfig',\r\n getModuleConfig: AppSetting.baseUrl + 'providers/{parentId}/moduleconfig',\r\n getfeatureConfig: AppSetting.baseUrl + 'providers/{parentId}/featureconfig',\r\n addfeatureConfig: AppSetting.baseUrl + 'providers/{parentId}/featureconfig',\r\n };\r\n\r\n\r\n static facility = {\r\n add: baseUrl + 'facility',\r\n edit: baseUrl + 'facility',\r\n delete: baseUrl + 'facility',\r\n get: baseUrl + 'global/facility',\r\n getById: baseUrl + 'facility',\r\n find: baseUrl + 'global/facility/',\r\n common: baseUrl + 'facility'\r\n };\r\n\r\n static forms = {\r\n get: baseUrl + 'providers/{parentId}/forms',\r\n add: baseUrl + 'providers/{parentId}/forms',\r\n edit: baseUrl + 'providers/{parentId}/forms',\r\n delete: baseUrl + 'providers/{parentId}/forms/{formId}'\r\n }\r\n\r\n static plforms = {\r\n get: baseUrl + 'providers/{parentId}/forms',\r\n getFormById: baseUrl + 'providers/{parentId}/forms/{formId}',\r\n sendEmail: baseUrl + 'providers/{parentId}/formurl/{formId}/send',\r\n add: baseUrl + 'providers/{parentId}/forms',\r\n link: baseUrl + 'providers/{parentId}/forms/{formId}/link',\r\n edit: baseUrl + 'providers/{parentId}/forms',\r\n delete: baseUrl + 'providers/{parentId}/forms/{formId}',\r\n lookup: baseUrl + 'providers/{parentId}/forms/lookup',\r\n formsMapping: baseUrl + 'providers/{parentId}/formsmapping',\r\n updateFormsMapping: baseUrl + 'providers/{parentId}/formsmapping/{mappingId}',\r\n submissions: baseUrl + 'submissions',\r\n getFormsByIds: baseUrl + 'providers/{parentId}/forms',\r\n submissionsProvider: baseUrl + 'providers/{parentId}/submissions',\r\n submissionsProviderHistory: baseUrl + 'providers/{parentId}/submissions/history',\r\n updateSubmission: baseUrl + 'submissions/{submissionId}',\r\n sendForm: baseUrl + 'providers/{parentId}/forms/{formId}/send'\r\n }\r\n\r\n static patientForms = {\r\n get: baseUrl + 'patients/{parentId}/forms',\r\n getFormById: baseUrl + 'patients/{parentId}/forms/{formId}',\r\n getFormsByIds: baseUrl + 'patients/{parentId}/forms',\r\n formsMapping: baseUrl + 'patients/{parentId}/formsmapping',\r\n submissionsPatients: baseUrl + 'patients/{parentId}/submissions',\r\n submissions: baseUrl + 'submissions',\r\n }\r\n\r\n static provider = {\r\n // add: baseUrl + 'providers',\r\n edit: baseUrl + 'providers',\r\n get: baseUrl + 'providers',\r\n getProviderByUserName: baseUrl + 'providers',\r\n getProviderDetail: baseUrl + 'providers/{providerId}/details',\r\n\r\n\r\n find: baseUrl + 'providers/',\r\n getById: baseUrl + 'providers',\r\n common: baseUrl + 'providers',\r\n delete: baseUrl + 'providers',\r\n\r\n globalGetProviderById: baseUrl + 'providers/{providerId}',\r\n globalFindProvider: baseUrl + 'providers',\r\n addProviderUnderGlobal: baseUrl + 'providers',\r\n editProviderUnderGlobal: baseUrl + 'providers/{providerId}',\r\n activateProviderUnderGlobal: baseUrl + 'providers/{providerId}/activations',\r\n deactivateProviderUnderGlobal: baseUrl + 'providers/{providerId}/activations',\r\n deleteProviderUnderGlobal: baseUrl + 'providers/{providerId}',\r\n practiceLocationLookup: baseUrl + 'providers/{providerId}/practicelocation/lookup'\r\n };\r\n static user = {\r\n find: baseUrl + 'providers/{providerId}/users',\r\n getById: baseUrl + 'providers/{providerId}/users/{userId}',\r\n common: baseUrl + 'providers/{providerId}/users',\r\n delete: baseUrl + 'providers/{providerId}/users/{userId}',\r\n add: baseUrl + 'providers/{providerId}/user',\r\n edit: baseUrl + 'providers/{providerId}/users/{userId}',\r\n activate: baseUrl + 'providers/{providerId}/users/{userId}/activations',\r\n deactivate: baseUrl + 'providers/{providerId}/users/{userId}/activations'\r\n };\r\n // static merchant = {\r\n // getMerchantByUserName: baseUrl + 'merchants'\r\n // };\r\n // ------------------------------------------------------------------------------------------------------------------------------\r\n\r\n static patient = {\r\n getPatientByUserName: baseUrl + 'patients',\r\n addPatient: baseUrl + 'providers/{providerId}/patients',\r\n findPatient: baseUrl + 'providers/{providerId}/patients',\r\n findPatientAccount: baseUrl + 'providers/{providerId}/patients/{custId}/accounts',\r\n linkPatient: baseUrl + 'providers/{providerId}/patients/{patientId}/link',\r\n activatePatientAccount: baseUrl + 'providers/{providerId}/patients/{patientId}/accounts/{accountId}/activations',\r\n activatePatient: baseUrl + 'providers/{providerId}/patients/{custId}/activations',\r\n edit: baseUrl + 'providers/{providerId}/patients/',\r\n editForPatient: baseUrl + 'patients/{patientId}',\r\n getInsurancerPartner: baseUrl + 'providers/insurancepartners',\r\n getNotes: baseUrl + 'providers/{providerId}/notes',\r\n addNote: baseUrl + 'providers/{providerId}/patients/{patientId}/notes',\r\n isExists: baseUrl + 'providers/{providerId}/patients/exists/{emailId}',\r\n optInOptOut: baseUrl + 'hpt/mobile/optInoptOut',\r\n visits: baseUrl + 'providers/{providerId}/patients/{patientId}/visits',\r\n updateVisits: baseUrl + 'providers/{providerId}/patients/{patientId}/visits/{visitId}',\r\n practiceLocationLookup: baseUrl + 'hpt/{providerId}/practicelocation/lookup'\r\n };\r\n static wallet = {\r\n findPatientAccount: baseUrl + 'patients/{custId}/accounts',\r\n linkPatient: baseUrl + 'patients/{patientId}/link',\r\n activatePatientAccount: baseUrl + 'patients/{patientId}/accounts/{accountId}/activations',\r\n deletePatientAccount: baseUrl + 'patients/{patientId}/accounts/{accountId}',\r\n activatePatient: baseUrl + 'patients/{custId}/activations',\r\n edit: baseUrl + 'patients/',\r\n };\r\n static patientAccount = {\r\n addPatientAccount: baseUrl + '',\r\n findPatientAccount: baseUrl + 'patients/{custId}/accounts',\r\n activatePatientAccount: baseUrl + 'patients/{custId}/accounts/{accountId}/activations',\r\n isExists: baseUrl + 'patients/{patientId}/accounts/exists',\r\n };\r\n static transaction = {\r\n add: baseUrl + 'providers/{providerId}/transactions',\r\n patientTransaction: baseUrl + 'patients/{patientId}/transactions',\r\n updateTransaction: baseUrl + 'providers/{providerId}/transactions/{transactionId}',\r\n getCardDetails: baseUrl + 'binlookup',\r\n retry: baseUrl + 'providers/{providerId}/transactions/{transactionId}/retry',\r\n getById: '',\r\n find: '',\r\n sendReceipt: baseUrl + 'providers/{providerId}/transactions/{transactionId}/email',\r\n sendReceiptFromPatient: baseUrl + 'patients/{patientId}/transactions/{transactionId}/email',\r\n sendSchedule: baseUrl + 'providers/{providerId}/schedulepayments/{recurringScheduleId}/email',\r\n sendScheduleFromPatient: baseUrl + 'patients/{patientId}/schedulepayments/{recurringScheduleId}/email',\r\n refund: baseUrl + 'providers/{providerId}/transactions/{transactionId}/refund',\r\n };\r\n\r\n static recurringPayments = {\r\n find: baseUrl + 'providers/{providerId}/recurringpayments',\r\n details: baseUrl + 'providers/{providerId}/patientsdetails',\r\n getById: baseUrl + 'providers/{providerId}/recurringpayments/{recurringId}',\r\n add: baseUrl + 'providers/{providerId}/recurringpayments',\r\n edit: baseUrl + 'providers/{providerId}/recurringpayments/{recurringId}',\r\n activate: baseUrl + 'providers/{providerId}/recurringpayments/{recurringId}/activations',\r\n deactivate: baseUrl + 'providers/{providerId}/recurringpayments/{recurringId}/activations',\r\n cancelPaymentPlan: baseUrl + 'providers/{providerId}/recurringpayments/{recurringId}/cancel',\r\n schedule: baseUrl + 'providers/{providerId}/recurringschedule/{recurringId}',\r\n addScheduleTransaction: baseUrl + 'scheduletransaction',\r\n updateAccount: baseUrl + 'providers/{providerId}/recurringpayments/{recurringId}/accounts',\r\n updatePatientAccount: baseUrl + 'patients/{patientId}/recurringpayments/{recurringId}/accounts',\r\n report: baseUrl + 'providers/{providerId}/reports',\r\n recurringScheduleReport : baseUrl + 'providers/{providerId}/scheduledReports',\r\n };\r\n static patientRecurringPayments = {\r\n find: baseUrl + 'patients/{patientId}/recurringpayments',\r\n details: baseUrl + 'patients/{patientId}/patientsdetails',\r\n getById: baseUrl + 'patients/{patientId}/recurringpayments/{recurringId}',\r\n add: baseUrl + 'patients/{patientId}/recurringpayments',\r\n edit: baseUrl + 'patients/{patientId}/recurringpayments/{recurringId}',\r\n activate: baseUrl + 'patients/{patientId}/recurringpayments/{recurringId}/activations',\r\n deactivate: baseUrl + 'patients/{patientId}/recurringpayments/{recurringId}/activations',\r\n schedule: baseUrl + 'patients/{patientId}/recurringschedule/{recurringId}',\r\n scheduleByDay: baseUrl + 'patients/{patientId}/recurringschedule'\r\n };\r\n\r\n static recurringPaymentSchedule = {\r\n updateRecurringSchedule: baseUrl + 'providers/{providerId}/recurringpayments/{recurringId}/reschedule/{transactionId}'\r\n };\r\n\r\n static customPlans = {\r\n find: baseUrl + 'providers/{parentId}/recurringplans',\r\n getById: baseUrl + 'providers/{parentId}/recurringplans/{customPlanId}',\r\n add: baseUrl + 'providers/{parentId}/recurringplans',\r\n edit: baseUrl + 'providers/{parentId}/recurringplans/{customPlanId}',\r\n activate: baseUrl + 'providers/{parentId}/recurringplans/{customPlanId}/activations',\r\n deactivate: baseUrl + 'providers/{parentId}/recurringplans/{customPlanId}/activations'\r\n };\r\n\r\n static dashboard = {\r\n adminTransactionVolume: baseUrl + 'providers/reports',\r\n providerTransactionVolume: baseUrl + 'providers/{providerId}/dashboardReports',\r\n providerInvoiceVolume: baseUrl + 'providers/{providerId}/reports',\r\n providerRecentActivities: baseUrl + 'providers/{providerId}/recentActivities'\r\n };\r\n\r\n static settings = {\r\n\r\n putProviderSettings: baseUrl + 'providers/{providerId}/providersettings',\r\n getProviderSettings: baseUrl + 'providers/{providerId}/providersettings',\r\n putProviderSettingsInvoiceFormat: baseUrl + 'providers/{providerId}/providersettings/invoiceformat',\r\n getProviderSettingsInvoiceFormat: baseUrl + 'providers/{providerId}/providersettings/invoiceformat',\r\n putProviderSettingsSkin: baseUrl + 'providers/{providerId}/providersettings/skin',\r\n getProviderSettingsSkin: baseUrl + 'providers/{providerId}/providersettings/skin',\r\n putProviderSettingsTimezone: baseUrl + 'providers/{providerId}/providersettings/timezone',\r\n getProviderSettingsTimezone: baseUrl + 'providers/{providerId}/providersettings/timezone',\r\n putProviderSettingsLogo: baseUrl + 'providers/{providerId}/providersettings/logo',\r\n getProviderSettingsLogo: baseUrl + 'providers/{providerId}/providersettings/logo'\r\n };\r\n\r\n\r\n static invoice = {\r\n findInvoice: baseUrl + 'providers/{providerId}/invoices',\r\n addInvoice: baseUrl + 'providers/{providerId}/invoices',\r\n deleteInvoice: baseUrl + 'providers/{providerId}/invoices/{invoiceId}',\r\n getInvoiceById: baseUrl + 'providers/{providerId}/invoices/{invoiceId}',\r\n editInvoice: baseUrl + 'providers/{providerId}/invoices/{invoiceId}',\r\n finalizeInvoice: baseUrl + 'providers/{providerId}/invoices/{invoiceId}/finalize',\r\n patientInvoice: baseUrl + 'patients/{patientId}/invoices',\r\n getInvoiceByIdForPatient: baseUrl + 'patients/{patientId}/invoices/{invoiceId}',\r\n payments: baseUrl + 'invoices/{invoiceId}/payment',\r\n schedulepayment: baseUrl + 'invoices/{invoiceId}/schedulepayment',\r\n recurringpayment: baseUrl + 'invoices/{invoiceId}/recurringpayment',\r\n resendInvoice: baseUrl + 'invoices/{invoiceId}/email',\r\n getInvoiceCount: baseUrl + 'providers/{providerId}/invoices/count',\r\n closeInvoice: baseUrl + 'providers/{providerId}/invoices/{invoiceId}/close',\r\n statusreport: baseUrl + 'providers/{providerId}/invoicestatus/report',\r\n taxreport: baseUrl + 'providers/{providerId}/invoicetax/report'\r\n };\r\n static recurringInvoice = {\r\n findRecurringInvoice: baseUrl + 'providers/{providerId}/recurringinvoices',\r\n addRecurringInvoice: baseUrl + 'providers/{providerId}/recurringinvoices',\r\n deleteRecurringInvoice: baseUrl + 'providers/{providerId}/recurringinvoices/{invoiceId}',\r\n getRecurringInvoiceById: baseUrl + 'providers/{providerId}/recurringinvoices/{invoiceId}',\r\n editRecurringInvoice: baseUrl + 'providers/{providerId}/recurringinvoices/{invoiceId}',\r\n finalizeRecurringInvoice: baseUrl + 'providers/{providerId}/recurringinvoices/{invoiceId}/finalize',\r\n };\r\n\r\n static insurance = {\r\n find: baseUrl + 'providers/{providerId}/insurance',\r\n add: baseUrl + 'providers/{providerId}/insurance',\r\n delete: baseUrl + 'providers/{providerId}/insurance/{insuranceId}',\r\n getById: baseUrl + 'providers/{providerId}/insurance/{insuranceId}',\r\n edit: baseUrl + 'providers/{providerId}/insurance/{insuranceId}',\r\n link: baseUrl + 'providers/{providerId}/insurance/{insuranceId}/link'\r\n };\r\n\r\n static patientInsurance = {\r\n find: baseUrl + 'providers/{providerId}/patients/{patientId}/insurance',\r\n add: baseUrl + 'providers/{providerId}/patients/{patientId}/insurance',\r\n delete: baseUrl + 'providers/{providerId}/patients/{patientId}/insurance/{insuranceId}',\r\n getById: baseUrl + 'providers/{providerId}/patients/{patientId}/insurance/{insuranceId}',\r\n edit: baseUrl + 'providers/{providerId}/patients/{patientId}/insurance/{insuranceId}',\r\n changeType: baseUrl + 'providers/{providerId}/patients/{patientId}/insurance/{insuranceId}/type',\r\n patientFind: baseUrl + 'patients/{patientId}/insurance',\r\n patientAdd: baseUrl + 'patients/{patientId}/insurance',\r\n patientDelete: baseUrl + 'patients/{patientId}/insurance/{insuranceId}',\r\n patientGetById: baseUrl + 'patients/{patientId}/insurance/{insuranceId}',\r\n patientEdit: baseUrl + 'patients/{patientId}/insurance/{insuranceId}',\r\n patientChangeType: baseUrl + 'patients/{patientId}/insurance/{insuranceId}/type',\r\n\r\n };\r\n\r\n static doctor = {\r\n find: baseUrl + 'providers/{providerId}/doctors',\r\n add: baseUrl + 'providers/{providerId}/doctors',\r\n delete: baseUrl + 'providers/{providerId}/doctors/{doctorId}',\r\n getById: baseUrl + 'providers/{providerId}/doctors/{doctorId}',\r\n // getNPIRegistry: 'api',\r\n getNPIRegistry: baseUrl + 'npiregistry/lookup',\r\n edit: baseUrl + 'providers/{providerId}/doctors/{doctorId}',\r\n lookup: baseUrl + 'providers/{providerId}/doctors/lookup',\r\n link: baseUrl + 'providers/{providerId}/doctors/{doctorId}/link',\r\n typeLookup: baseUrl + 'providers/{providerId}/doctors/type/lookup',\r\n activateDeactivatePractitioners: AppSetting.baseUrl + 'providers/{providerId}/doctors/{doctorId}/activations',\r\n checkAvailability: baseUrl + 'providers/{providerId}/doctors/{doctorId}/check/workinghours'\r\n };\r\n\r\n static appointment = {\r\n findAppointment: baseUrl + 'providers/{providerId}/appointments',\r\n editAppointment: baseUrl + 'providers/{providerId}/appointments/{appointmentId}',\r\n deleteAppointment: baseUrl + 'appointments/{appointmentId}/cancel',\r\n getPatientAppointment: baseUrl + 'patients/{patientId}/appointments',\r\n getPatientAppointmentForAdmin: baseUrl + 'providers/appointments',\r\n sendAptNotification: baseUrl + 'providers/{providerId}/appointments/{appointmentId}/notification',\r\n checkAvailability: baseUrl + 'providers/{providerId}/doctors/{doctorId}/check/slot',\r\n getConfigurations: baseUrl + 'providers/{providerId}/appointmentconfig'\r\n }\r\n\r\n static globalAdminName = 'Hellopayments';\r\n static email = 'support@hellopayments.net';\r\n static defaultLogoForInvoiceFormat = 'https://hpg2-ui.s3.us-east-2.amazonaws.com/assets/images/logo_login.png';\r\n static resultsPerPage = 10;\r\n static truncateWordLength = 20;\r\n static defaultStartDateRange = 3;\r\n\r\n static product = {\r\n find: AppSetting.baseUrl + 'providers/{parentId}/items',\r\n findForPartner: AppSetting.baseUrl + 'providers/{parentId}/partners/{partnerId}/items',\r\n getById: AppSetting.baseUrl + 'providers/{parentId}/items/{productId}',\r\n getByIdForPartner: AppSetting.baseUrl + 'providers/{parentId}/partners/{partnerId}/items/{productId}',\r\n add: AppSetting.baseUrl + 'providers/{parentId}/items',\r\n addForPartner: AppSetting.baseUrl + 'providers/{parentId}/partners/{partnerId}/items', // partner adds product for himself\r\n edit: AppSetting.baseUrl + 'providers/{parentId}/items/{productId}',\r\n editForPartner: AppSetting.baseUrl + 'providers/{parentId}/partners/{partnerId}/items/{productId}',\r\n addCustomTags: AppSetting.baseUrl + 'providers/{parentId}/tags',\r\n getAllLookupTags: AppSetting.baseUrl + 'providers/{parentId}/tags/lookup',\r\n getProductsCptCodes: AppSetting.baseUrl + 'providers/{parentId}/servicecodes',\r\n activateDeactivateProducts: AppSetting.baseUrl + 'providers/{parentId}/items/{productId}/activations',\r\n lookup: AppSetting.baseUrl + 'providers/{parentId}/items/lookup'\r\n };\r\n\r\n static claims = {\r\n findClaims: baseUrl + 'providers/{providerId}/claims',\r\n getClaimById: baseUrl + 'providers/{providerId}/claims/{claimId}',\r\n add: baseUrl + 'providers/{providerId}/claims',\r\n edit: baseUrl + 'providers/{providerId}/claims/{claimId}',\r\n delete: baseUrl + 'providers/{providerId}/claims/{claimId}',\r\n reschedule: baseUrl + 'providers/{providerId}/claims/{claimId}/reschedule',\r\n checkStatus: baseUrl + 'providers/{providerId}/claims/{claimId}/status',\r\n getClaimCount: baseUrl + 'providers/{providerId}/claims/count',\r\n };\r\n static eligibility = {\r\n find: baseUrl + 'providers/{providerId}/eligibility',\r\n patientFind: baseUrl + 'patients/{patientId}/eligibility',\r\n add: baseUrl + 'providers/{providerId}/eligibility',\r\n getById: baseUrl + 'providers/{providerId}/eligibility/{eligibilityId}',\r\n //edit: baseUrl + 'providers/{providerId}/eligibility/{eligibilityId}',\r\n checkStatus: baseUrl + 'providers/{providerId}/eligibility/{eligibilityId}/status'\r\n };\r\n static emailSettings = {\r\n putProviderEmailSettings: AppSetting.baseUrl + 'providers/{parentId}/providersettings/email',\r\n verifyIdentity: AppSetting.baseUrl + 'providers/{parentId}/verifyidentity',\r\n isVerifiedIdentity: AppSetting.baseUrl + 'providers/{parentId}/isverifiedidentity'\r\n };\r\n\r\n static productUploads = {\r\n uploadProductsFile: AppSetting.baseUrl + 'providers/{parentId}/uploaditems',\r\n getAllUploadLogs: AppSetting.baseUrl + 'providers/{parentId}/uploaditems',\r\n getByIdUploadLog: AppSetting.baseUrl + 'providers/{parentId}/uploaditems/{id}',\r\n }\r\n\r\n static patientUploads = {\r\n uploadPatientFile: AppSetting.baseUrl + 'providers/{parentId}/uploadpatients',\r\n getAllUploadLogs: AppSetting.baseUrl + 'providers/{parentId}/uploadpatients',\r\n getByIdUploadLog: AppSetting.baseUrl + 'providers/{parentId}/uploadpatients/{id}',\r\n uploadPatientAttachment: AppSetting.baseUrl + 'providers/{parentId}/uploadpatients',\r\n }\r\n\r\n static role = {\r\n find: baseUrl + 'providers/{providerId}/roles',\r\n add: baseUrl + 'providers/{providerId}/roles',\r\n delete: baseUrl + 'providers/{providerId}/roles/{roleId}',\r\n getById: baseUrl + 'providers/{providerId}/roles/{roleId}',\r\n edit: baseUrl + 'providers/{providerId}/roles/{roleId}',\r\n lookup: baseUrl + 'providers/{providerId}/roles/lookup',\r\n activateDeactivateRole: baseUrl + 'providers/{parentId}/roles/{roleId}/activations',\r\n };\r\n\r\n static attachments = {\r\n providerAttachment: AppSetting.baseUrl + 'providers/{parentId}/patients/{patientId}/docs',\r\n providerDelete: AppSetting.baseUrl + 'providers/{parentId}/patients/{patientId}/docs/{docId}',\r\n patientAttachment: AppSetting.baseUrl + 'patients/{patientId}/docs',\r\n patientDelete: AppSetting.baseUrl + 'patients/{patientId}/docs/{docId}',\r\n authorize: AppSetting.baseUrl + 'patients/{patientId}/docs/authorize',\r\n }\r\n\r\n static notification = {\r\n get: baseUrl + 'providers/{providerId}/claims',\r\n getById: baseUrl + 'providers/{providerId}/claims/{claimId}',\r\n };\r\n\r\n static defaultDueInDaysForInvoice = 0;\r\n\r\n static dueInDaysOptionsList = [\r\n { 'name': 'On Receipt', id: 0 },\r\n { 'name': 'Custom', id: '' },\r\n { 'name': 'Net 10', id: 10 },\r\n { 'name': 'Net 15', id: 15 },\r\n { 'name': 'Net 30', id: 30 },\r\n { 'name': 'Net 45', id: 45 }\r\n ];\r\n static excerptSize = 150;\r\n static npiSearchApiVersion = '2.1';\r\n static npiSearchApiMinResult = 20;\r\n static maxRefundLimitInDays = 180;\r\n\r\n}\r\n\r\n\r\n","export class Countries {\r\n static countries = [\r\n {\r\n 'countryId': 1,\r\n 'name': 'USA',\r\n 'id': 1\r\n },\r\n {\r\n 'countryId': 2,\r\n 'name': 'CANADA',\r\n 'id': 2\r\n }\r\n ];\r\n}\r\n","export class MessageSetting {\r\n static admin = {\r\n add: 'User added successfully.',\r\n edit: 'User updated successfully.',\r\n delete: 'User deleted successfully.'\r\n };\r\n static facility = {\r\n add: 'Facility added successfully.',\r\n edit: 'Facility edited successfully.',\r\n delete: 'Facility deleted successfully.',\r\n activate: 'Facility activated successfully.',\r\n deactivate: 'Facility deactivated successfully.',\r\n deactivateConfirmation: 'Are you sure, you would like to deactivate this facility?',\r\n activateConfirmation: 'Are you sure, you would like to activate this facility?'\r\n };\r\n static forms = {\r\n add: 'Form added successfully.',\r\n edit: 'Form edited successfully.',\r\n delete: 'Form deleted successfully.',\r\n activate: 'Form activated successfully.',\r\n deactivate: 'Form deactivated successfully.',\r\n createCopySuccess: 'Created a copy of form successfully.',\r\n createCopyConfirmation: 'Are you sure, you would like to create a copy of this form?',\r\n deactivateConfirmation: 'Are you sure, you would like to deactivate this form?',\r\n activateConfirmation: 'Are you sure, you would like to activate this form?',\r\n deleteConfirmation: 'Are you sure, you would like to delete form [[formTitle]]?',\r\n publishConfirmation: 'Are you sure, you would like to publish form [[formTitle]] ?',\r\n publishSucess: 'Form published successfully.',\r\n deleteSucess: 'Form deleted successfully.',\r\n duplicateTitleError: 'Form with same title already exists.',\r\n invalidFieldsError: 'Please add form fields.',\r\n successSubmission: 'Form submitted successfully.',\r\n successUpdateSubmission: 'Form submission updated successfully.',\r\n failedSubmission: 'Form submission failed.',\r\n successSendForm: 'Form sent to patient sucessfully.',\r\n failedSendForm: 'Failed to send the form.',\r\n };\r\n static provider = {\r\n add: 'Provider added successfully.',\r\n edit: 'Provider edited successfully.',\r\n delete: 'Provider deleted successfully.',\r\n activate: 'Provider activated successfully.',\r\n deactivate: 'Provider deactivated successfully.',\r\n activateError: 'need to be set before activating provider.',\r\n resetPassword: 'Reset password successfully, Check email for more details.',\r\n resetPasswordConfirmation: 'Are you sure, you want to reset password?',\r\n deactivateConfirmation: 'Are you sure, you would like to deactivate this provider?',\r\n activateConfirmation: 'Are you sure, you would like to activate this provider?',\r\n //comfirmation: 'Would you like to collect a payment or create a payment plan?',\r\n comfirmPaymentAndAppointment: 'Would you like to collect a payment or create an appointment?',\r\n comfirmOneAndPaymentAndAppointment: 'What would you like to do next?',\r\n comfirmMakePayment: 'How would you like to pay?'\r\n };\r\n static user = {\r\n add: 'User added successfully.',\r\n edit: 'User updated successfully.',\r\n delete: 'User deleted successfully.',\r\n activate: 'User activated successfully.',\r\n deactivate: 'User deactivated successfully.',\r\n activateError: 'need to be set before activating user.',\r\n resetPassword: 'Reset password successfully, Check email for more details.',\r\n resetPasswordConfirmation: 'Are you sure, you want to reset password?',\r\n deactivateConfirmation: 'Are you sure, you would like to deactivate this user?',\r\n activateConfirmation: 'Are you sure, you would like to activate this user?',\r\n roleUpdateConfirmation: 'Are you sure, you would like to change this user role?',\r\n };\r\n static patient = {\r\n save: 'Patient details saved successfully.',\r\n add: 'Patient added successfully.',\r\n edit: 'Patient edited successfully.',\r\n link: 'Patient linked successfully.',\r\n editLinked: 'Patient linked and updated successfully.',\r\n delete: 'Patient deleted successfully.',\r\n activate: 'Patient activated successfully.',\r\n deactivate: 'Patient deactivated successfully.',\r\n uploadSuccess: 'File uploaded successfully.',\r\n checkInConfirmation: 'Are you sure you would like to check in this patient?',\r\n withDoctorConfirmation: 'Are you sure you would like to change the status of this patient to \"With Doctor\"?',\r\n checkOutConfirmation: 'Are you sure you would like to check out this patient?',\r\n visitAddedSuccess: 'Patient Visit Added Successfully',\r\n visitUpdatedSuccess: 'Patient Visit Updated Successfully',\r\n attachmentAdd: 'Patient attachment added successfully.',\r\n deleteAttachmentConfirmation: 'Are you sure, you want to delete this file?',\r\n deleteAttachment: 'Patient Attachment deleted successfully',\r\n attachmentLink: 'Provider Linked successfully.',\r\n };\r\n static note = {\r\n add: 'Note added successfully.',\r\n edit: 'Note edited successfully.',\r\n delete: 'Note deleted successfully.',\r\n };\r\n static appointment = {\r\n add: 'Appointment added successfully.',\r\n edit: 'Appointment updated successfully.',\r\n delete: 'Appointment Cancelled successfully.',\r\n updateError: 'Past date is not allowed.',\r\n durationError: \"Appointment window is greater than 8 hours\",\r\n emailNotification: \"Email notification sent successfully.\",\r\n textNotification: \"Text notification sent successfully.\"\r\n };\r\n static transaction = {\r\n submit: 'Transaction added successfully.',\r\n updated: 'Transaction updated successfully.',\r\n void: 'Transaction is void attempted.',\r\n voidConfirmation: 'Are you sure, you want to void this transaction?',\r\n voidattempt: 'Transaction sent for void successfully.',\r\n voidAttemptConfirmation: 'Are you sure, you want to attempt to void this transaction?',\r\n refund: 'Refund transaction initiated successfully.',\r\n refundAmountError: 'Refund amount should be greater than 0(zero) and less than or equal to total amount.',\r\n partialRefundAmountNotAllowedError: 'Refund amount should be equal to total amount.',\r\n forceauth: 'Force Auth transaction initiated successfully.',\r\n adjustConfirmation: 'Are you sure, you want to adjust this transaction?',\r\n adjustSuccess: 'Transaction amount adjusted successfully.',\r\n adjustError: 'Unable to adjust transaction amount.',\r\n Key_ChannelConfigurationMissing: 'Transaction failed due to invalid processor configuration.',\r\n Key_InvalidRequestData: 'Transaction failed due to invalid request data.',\r\n Key_ProcessorResponseError: `Transaction failed due to error in processor's response.`,\r\n Key_NetworkError: `Transaction failed due to network issues at processor's end.`,\r\n reprocessSuccess: `Transaction reprocessed successfully.`,\r\n mailSuccess: `Mail has been sent successfully.`,\r\n skip: 'Transaction is void attempted.',\r\n skipConfirmation: 'Are you sure, you want to skip this transaction?',\r\n memo: `Thank you for your business!`,\r\n };\r\n\r\n static recurring = {\r\n save: 'Payment Plan details saved successfully.',\r\n addRecurringSuccess: 'Payment Plan added successfully.',\r\n editRecurringSuccess: 'Payment Plan edited successfully.',\r\n cancelled: 'Payment Plan cancelled successfully',\r\n cancelledSchedule: 'Scheduled transaction cancelled successfully',\r\n accountUpdated: 'Account updated successfully',\r\n accountAdded: 'New Account added successfully',\r\n planUpdated: 'Payment Plan updated successfully',\r\n paymentAccountUpdated: 'Payment account updated successfully',\r\n skipSchedule: 'Transaction moved to the end.',\r\n skipScheduleConfirmation: 'Are you sure, you want to move this transaction to end?',\r\n };\r\n\r\n\r\n static recurringSchedule = {\r\n editRecurringScheduleSuccess: 'Payment Schedule details updated successfully.',\r\n refundRecurringScheduleSuccess: 'Payment Schedule refunded successfully.',\r\n voidRecurringScheduleSuccess: 'Payment Schedule voided successfully.',\r\n };\r\n\r\n static customPlan = {\r\n addCustomPlanSuccess: 'Custom Plan added successfully.',\r\n editCustomPlanSuccess: 'Custom Plan edited successfully.'\r\n };\r\n\r\n\r\n static patientAccount = {\r\n add: 'Account added successfully.',\r\n update: 'Account updated successfully.'\r\n };\r\n\r\n static recurringPaymentInfo = {\r\n add: 'Payment Plan info added successfully.',\r\n activate: 'Payment Plan activated successfully.',\r\n deactivate: 'Payment Plan deactivated successfully.'\r\n };\r\n\r\n static invoice = {\r\n save: 'Payment activity details saved successfully.',\r\n finalize: 'Payment activity finalized successfully.',\r\n delete: 'Payment activity discarded Successfully.',\r\n finalizeConfirmation: 'Are you sure, you want to finalize this patient balance?',\r\n finalizeSuccess: 'Payment activity finalized successfully.',\r\n deleteConfirmation: 'Are you sure, you want to discard this patient balance?',\r\n cancelConfirmation: 'Are you sure, you want to cancel this patient balance?',\r\n fullfillConfirmation: 'Are you sure, you want to mark this patient balance as fullfill?',\r\n cancelSuccess: 'Patient balance cancelled successfully.',\r\n fullfillSuccess: 'Payment activity marked as fullfilled successfully.',\r\n sendSuccess: 'Payment activity sent successfully.',\r\n confirmation: 'Checkout details saved successfully, do you want to continue with further actions?',\r\n memo: `Thank you for your business!`,\r\n captureOfflinePayment: 'Offline Payment is captured successfully',\r\n comfirmation: 'Would you like to collect a payment or create a payment plan?',\r\n resendInvoiceConfirmation: 'Are you sure, you want to resend this patient balance?',\r\n resendInvoiceSuccess: 'Notification sent successfully',\r\n closeConfirmation: 'Are you sure you would like to remove the patient balance and write it off? Please provide reason why.',\r\n closeSuccess: 'Patient balance closed successfully.',\r\n writeOffConfirmation: 'Are you sure, you want to cancel and Write Off this patient balance?',\r\n writeOffSuccess: 'Patient balance cancelled successfully.',\r\n };\r\n\r\n static allowTransaction = {\r\n add: 'Allowed transaction types saved successfully.',\r\n selectAtleastOne: 'Select atleast one transaction type.'\r\n };\r\n\r\n static common = {\r\n error: 'Please contact to administrator.',\r\n errordeletereseller: 'Can not delete this reseller, since it has a child record.',\r\n // temp error message (need to remove once common error handling is implemented)\r\n inactiveAccount: 'Your Account is Inactive. Please contact to administrator.',\r\n sucess: 'Success',\r\n failed: 'Failed',\r\n changePasswordMessage: 'Password changed successfully. Please login again.',\r\n updatePasswordMessage: 'Password changed successfully.',\r\n Key_MatchingPassword: 'New password cannot be the same as previous 3 passwords. Please enter a different new password and try again.',\r\n Key_InvalidOldPassword: 'Invalid old password.',\r\n errorNewPaaswordSameAsOldPassword: 'New password should not be same as old password.',\r\n resetPasswordMessage: 'Password reset successfully.',\r\n sessionExpired: 'Session Expired. Please login again.',\r\n unathorizedToAccessResource: 'Unauthorized to access requested resource. Please login again.',\r\n passwordMismatch: 'New password and confirm password did not match.',\r\n resetPassword: 'Reset password successfully, Check email for more details.',\r\n resetPasswordConfirmation: 'Are you sure, you want to reset password?',\r\n linkPatientConfirmation: 'Is the patient authorizing this provider in person or over the phone?',\r\n select: 'Send Notification via..',\r\n optInConfirmation: 'Is this patient authorizing to opt-in for text message communication via in person or over the phone?',\r\n optOutConfirmation: 'Is this patient authorizing to opt-out for text message communication via in person or over the phone?',\r\n invalidMinAndMaxAmountError: 'Please enter valid Min and Max Amount.',\r\n invalidAccess: 'You don\\'t have access to this feature, please contact administrator!',\r\n };\r\n static patientSetting = {\r\n optInConfirmation: 'Are you sure you would like to opt-in for text notifications?',\r\n optOutConfirmation: 'Are you sure you would like to opt-out of text notifications?'\r\n }\r\n static login = {\r\n invalidCredential: 'Incorrect username or password.'\r\n };\r\n static forgotPassword = {\r\n failed: 'Failed',\r\n success: 'Success',\r\n common: 'Password has been sent to your registered Email Id.'\r\n };\r\n static forgotUsername = {\r\n failed: 'Failed',\r\n success: 'Success',\r\n common: 'Username has been sent to your registered Email Id.'\r\n };\r\n static ratePlan = {\r\n delete: 'Rate Plan deleted successfully.',\r\n add: 'Rate Plan added successfully.',\r\n edit: 'Rate Plan updated successfully.'\r\n };\r\n static processorConfiguration = {\r\n saveSuccess: 'Processor Configuration saved successfully.',\r\n allowedTransactionTypeError: 'Allowed Transaction Type need to be set before Processor Configuration.'\r\n };\r\n\r\n static product = {\r\n delete: 'Product deleted successfully.',\r\n add: 'Product added successfully.',\r\n edit: 'Product updated successfully.',\r\n duplicateTag: 'Product tag already exist',\r\n activated: 'Product and services activated successfully',\r\n deactivated: 'Product and services deactivated successfully',\r\n uploadSuccess: 'File uploaded successfully.',\r\n };\r\n\r\n\r\n static insurance = {\r\n save: 'Insurance details saved successfully.',\r\n add: 'Insurance added successfully.',\r\n edit: 'Insurance edited successfully.',\r\n delete: 'Insurance deleted successfully.',\r\n activate: 'Insurance activated successfully.',\r\n deactivate: 'Insurance deactivated successfully.',\r\n link: 'Insurance linked successfully.',\r\n };\r\n\r\n static patientInsurance = {\r\n save: 'Patient Insurance details saved successfully.',\r\n add: 'Patient Insurance added successfully.',\r\n edit: 'Patient Insurance edited successfully.',\r\n deleteConfirmation: 'Are you sure you want to delete this Insurance?',\r\n delete: 'Patient Insurance deleted successfully.',\r\n activate: 'Patient Insurance activated successfully.',\r\n deactivate: 'Patient Insurance deactivated successfully.',\r\n link: 'Patient Insurance linked successfully.',\r\n primaryConfirmation: 'Are you sure you want to set this Insurance as Primary',\r\n secondaryConfirmation: 'Are you sure you want to set this Insurance as Secondary',\r\n insuranceType: 'Patient Insurance Type updated successfully.',\r\n eligibility: 'Patient eligibility check successful.',\r\n };\r\n\r\n static doctor = {\r\n save: 'Provider details saved successfully.',\r\n add: 'Provider added successfully.',\r\n edit: 'Provider edited successfully.',\r\n delete: 'Provider deleted successfully.',\r\n activate: 'Provider activated successfully.',\r\n deactivate: 'Provider deactivated successfully.',\r\n link: 'Provider linked successfully.',\r\n activated: 'Provider activated successfully',\r\n deactivated: 'Provider deactivated successfully',\r\n editLinked: 'Provider linked and updated successfully.',\r\n };\r\n\r\n static claims = {\r\n save: 'Claims details saved successfully.',\r\n add: 'Claims added successfully.',\r\n edit: 'Claims edited successfully.',\r\n delete: 'Claims deleted successfully.',\r\n activate: 'Claims activated successfully.',\r\n deactivate: 'Claims deactivated successfully.',\r\n link: 'Claims linked successfully.',\r\n cancelConfirmation: 'Are you sure, you want to cancel this claim?',\r\n cancelSuccess: 'Claim cancelled successfully.',\r\n statusCheckConfirmation: 'Please confirm to check the claim status now',\r\n statusCheckSuccess: 'Claim status updated successfully.',\r\n };\r\n\r\n static notifications = {\r\n dismiss: 'Notification dismissed successfully.',\r\n };\r\n static eligibility = {\r\n save: 'Eligibility details saved successfully.',\r\n add: 'Eligibility added successfully.',\r\n edit: 'Eligibility edited successfully.',\r\n statusCheckConfirmation: 'Please confirm to check the eligibility status now',\r\n statusCheckSuccess: 'Eligibility status updated successfully.',\r\n };\r\n static reportAmountFilter = ['captureAmount', 'refundAmount', 'achTransactionAmount',\r\n 'achTransactionFees', 'achTransactionOtherFees', 'ccTransactionAmount', 'ccTransactionFees',\r\n 'ccTransactionOtherFees', 'dcTransactionAmount', 'dcTransactionFees', 'dcTransactionOtherFees', 'defaultFee', 'totalBillingAmount'];\r\n\r\n static role = {\r\n save: 'Role details saved successfully.',\r\n add: 'Role added successfully.',\r\n edit: 'Role edited successfully.',\r\n delete: 'Role deleted successfully.',\r\n activateConfirmation: 'Are you sure, you would like to activate this role?',\r\n activate: 'Role activated successfully.',\r\n deactivateConfirmation: 'Are you sure, you would like to deactivate this role?',\r\n deactivate: 'Role deactivated successfully.',\r\n };\r\n}\r\n\r\n","export class States {\r\n static state = {\r\n '1': [\r\n {\r\n 'name': 'AL-Alabama',\r\n 'abbreviation': 'AL'\r\n },\r\n {\r\n 'name': 'AK-Alaska',\r\n 'abbreviation': 'AK'\r\n },\r\n // {\r\n // 'name': 'AS-American Samoa',\r\n // 'abbreviation': 'AS'\r\n // },\r\n {\r\n 'name': 'AZ-Arizona',\r\n 'abbreviation': 'AZ'\r\n },\r\n {\r\n 'name': 'AR-Arkansas',\r\n 'abbreviation': 'AR'\r\n },\r\n {\r\n 'name': 'CA-California',\r\n 'abbreviation': 'CA'\r\n },\r\n {\r\n 'name': 'CO-Colorado',\r\n 'abbreviation': 'CO'\r\n },\r\n {\r\n 'name': 'CT-Connecticut',\r\n 'abbreviation': 'CT'\r\n },\r\n {\r\n 'name': 'DE-Delaware',\r\n 'abbreviation': 'DE'\r\n },\r\n {\r\n 'name': 'DC-District Of Columbia',\r\n 'abbreviation': 'DC'\r\n },\r\n // {\r\n // 'name': 'FM-Federated States Of Micronesia',\r\n // 'abbreviation': 'FM'\r\n // },\r\n {\r\n 'name': 'FL-Florida',\r\n 'abbreviation': 'FL'\r\n },\r\n {\r\n 'name': 'GA-Georgia',\r\n 'abbreviation': 'GA'\r\n },\r\n // {\r\n // 'name': 'GU-Guam',\r\n // 'abbreviation': 'GU'\r\n // },\r\n {\r\n 'name': 'HI-Hawaii',\r\n 'abbreviation': 'HI'\r\n },\r\n {\r\n 'name': 'ID-Idaho',\r\n 'abbreviation': 'ID'\r\n },\r\n {\r\n 'name': 'IL-Illinois',\r\n 'abbreviation': 'IL'\r\n },\r\n {\r\n 'name': 'IN-Indiana',\r\n 'abbreviation': 'IN'\r\n },\r\n {\r\n 'name': 'IA-Iowa',\r\n 'abbreviation': 'IA'\r\n },\r\n {\r\n 'name': 'KS-Kansas',\r\n 'abbreviation': 'KS'\r\n },\r\n {\r\n 'name': 'KY-Kentucky',\r\n 'abbreviation': 'KY'\r\n },\r\n {\r\n 'name': 'LA-Louisiana',\r\n 'abbreviation': 'LA'\r\n },\r\n {\r\n 'name': 'ME-Maine',\r\n 'abbreviation': 'ME'\r\n },\r\n // {\r\n // 'name': 'MH-Marshall Islands',\r\n // 'abbreviation': 'MH'\r\n // },\r\n {\r\n 'name': 'MD-Maryland',\r\n 'abbreviation': 'MD'\r\n },\r\n {\r\n 'name': 'MA-Massachusetts',\r\n 'abbreviation': 'MA'\r\n },\r\n {\r\n 'name': 'MI-Michigan',\r\n 'abbreviation': 'MI'\r\n },\r\n {\r\n 'name': 'MN-Minnesota',\r\n 'abbreviation': 'MN'\r\n },\r\n {\r\n 'name': 'MS-Mississippi',\r\n 'abbreviation': 'MS'\r\n },\r\n {\r\n 'name': 'MO-Missouri',\r\n 'abbreviation': 'MO'\r\n },\r\n {\r\n 'name': 'MT-Montana',\r\n 'abbreviation': 'MT'\r\n },\r\n {\r\n 'name': 'NE-Nebraska',\r\n 'abbreviation': 'NE'\r\n },\r\n {\r\n 'name': 'NV-Nevada',\r\n 'abbreviation': 'NV'\r\n },\r\n {\r\n 'name': 'NH-New Hampshire',\r\n 'abbreviation': 'NH'\r\n },\r\n {\r\n 'name': 'NJ-New Jersey',\r\n 'abbreviation': 'NJ'\r\n },\r\n {\r\n 'name': 'NM-New Mexico',\r\n 'abbreviation': 'NM'\r\n },\r\n {\r\n 'name': 'NY-New York',\r\n 'abbreviation': 'NY'\r\n },\r\n {\r\n 'name': 'NC-North Carolina',\r\n 'abbreviation': 'NC'\r\n },\r\n {\r\n 'name': 'ND-North Dakota',\r\n 'abbreviation': 'ND'\r\n },\r\n // {\r\n // 'name': 'MP-Northern Mariana Islands',\r\n // 'abbreviation': 'MP'\r\n // },\r\n {\r\n 'name': 'OH-Ohio',\r\n 'abbreviation': 'OH'\r\n },\r\n {\r\n 'name': 'OK-Oklahoma',\r\n 'abbreviation': 'OK'\r\n },\r\n {\r\n 'name': 'OR-Oregon',\r\n 'abbreviation': 'OR'\r\n },\r\n // {\r\n // 'name': 'PW-Palau',\r\n // 'abbreviation': 'PW'\r\n // },\r\n {\r\n 'name': 'PA-Pennsylvania',\r\n 'abbreviation': 'PA'\r\n },\r\n // {\r\n // 'name': 'PR-Puerto Rico',\r\n // 'abbreviation': 'PR'\r\n // },\r\n {\r\n 'name': 'RI-Rhode Island',\r\n 'abbreviation': 'RI'\r\n },\r\n {\r\n 'name': 'SC-South Carolina',\r\n 'abbreviation': 'SC'\r\n },\r\n {\r\n 'name': 'SD-South Dakota',\r\n 'abbreviation': 'SD'\r\n },\r\n {\r\n 'name': 'TN-Tennessee',\r\n 'abbreviation': 'TN'\r\n },\r\n {\r\n 'name': 'TX-Texas',\r\n 'abbreviation': 'TX'\r\n },\r\n {\r\n 'name': 'UT-Utah',\r\n 'abbreviation': 'UT'\r\n },\r\n {\r\n 'name': 'VT-Vermont',\r\n 'abbreviation': 'VT'\r\n },\r\n // {\r\n // 'name': 'VI-Virgin Islands',\r\n // 'abbreviation': 'VI'\r\n // },\r\n {\r\n 'name': 'VA-Virginia',\r\n 'abbreviation': 'VA'\r\n },\r\n {\r\n 'name': 'WA-Washington',\r\n 'abbreviation': 'WA'\r\n },\r\n {\r\n 'name': 'WV-West Virginia',\r\n 'abbreviation': 'WV'\r\n },\r\n {\r\n 'name': 'WI-Wisconsin',\r\n 'abbreviation': 'WI'\r\n },\r\n {\r\n 'name': 'WY-Wyoming',\r\n 'abbreviation': 'WY'\r\n }\r\n ],\r\n '2': [\r\n {\r\n 'name': 'AB-Alberta',\r\n 'abbreviation': 'AB'\r\n },\r\n {\r\n 'name': 'BC-British Columbia',\r\n 'abbreviation': 'BC'\r\n },\r\n {\r\n 'name': 'MB-Manitoba',\r\n 'abbreviation': 'MB'\r\n },\r\n {\r\n 'name': 'NB-New Brunswick',\r\n 'abbreviation': 'NB'\r\n },\r\n {\r\n 'name': 'NL-Newfoundland and Labrador',\r\n 'abbreviation': 'NL'\r\n },\r\n {\r\n 'name': 'NS-Nova Scotia',\r\n 'abbreviation': 'NS'\r\n },\r\n {\r\n 'name': 'NT-Northwest Territories',\r\n 'abbreviation': 'NT'\r\n },\r\n {\r\n 'name': 'NU-Nunavut',\r\n 'abbreviation': 'NU'\r\n },\r\n {\r\n 'name': 'ON-Ontario',\r\n 'abbreviation': 'ON'\r\n },\r\n {\r\n 'name': 'PE-Prince Edward Island',\r\n 'abbreviation': 'PE'\r\n },\r\n {\r\n 'name': 'QC-Québec',\r\n 'abbreviation': 'QC'\r\n },\r\n {\r\n 'name': 'SK-Saskatchewan',\r\n 'abbreviation': 'SK'\r\n },\r\n {\r\n 'name': 'YT-Yukon',\r\n 'abbreviation': 'YT'\r\n }\r\n ],\r\n '4': []\r\n };\r\n}\r\n","import {\r\n Directive,\r\n Input,\r\n TemplateRef,\r\n ElementRef,\r\n ViewContainerRef,\r\n HostListener,\r\n Renderer2,\r\n ViewChild,\r\n EventEmitter,\r\n Output\r\n} from '@angular/core';\r\nimport { TemplatePortal } from '@angular/cdk/portal';\r\nimport {\r\n CdkOverlayOrigin,\r\n OverlayRef,\r\n Overlay,\r\n OverlayConfig,\r\n ConnectionPositionPair\r\n} from '@angular/cdk/overlay';\r\nimport {\r\n map,\r\n distinctUntilChanged,\r\n debounceTime,\r\n mergeMap,\r\n filter,\r\n toArray\r\n} from 'rxjs/operators';\r\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\r\nimport { Subject, from, pipe } from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[appAutoComplete][autofocus]'\r\n})\r\nexport class AutoCompleteDirective {\r\n @Input('template') content: TemplateRef;\r\n @Input() appAutoComplete: any[];\r\n @Input() autoCompleteWaitMs = 0;\r\n @Input() autoCompleteMinLength = 1;\r\n @Output() emitNewItem: EventEmitter = new EventEmitter();\r\n @Output() emitFilterValues: EventEmitter = new EventEmitter();\r\n private _portal: TemplatePortal;\r\n public _overlayRef: OverlayRef;\r\n inputEventSubscription: Subject = new Subject();\r\n listenFunc: Function;\r\n matches: any[];\r\n private host: HTMLElement;\r\n private focused: Element;\r\n private autoFocus = true;\r\n isOpened = undefined;\r\n @Input() set autofocus(value) {\r\n this.autoFocus = coerceBooleanProperty(value);\r\n }\r\n\r\n constructor(\r\n private _orgin: ElementRef,\r\n private _overlay: Overlay,\r\n private _viewContainerRef: ViewContainerRef,\r\n private _r2: Renderer2\r\n ) {\r\n this.host = _orgin.nativeElement;\r\n this.listenFunc = _r2.listen('document', 'click', (event: MouseEvent) => {\r\n if (this._orgin.nativeElement.contains(event.target)) {\r\n return;\r\n }\r\n this.OutsideClick();\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.asyncAction();\r\n if (this.autoFocus && this.host && this.host !== this.focused) {\r\n setTimeout(() => this.host.focus());\r\n }\r\n }\r\n\r\n @HostListener('click')\r\n @HostListener('focus')\r\n focus = () => {\r\n this.toggle();\r\n if (this.autoCompleteMinLength === 0) {\r\n this.inputEventSubscription.next(this._orgin.nativeElement.value || '');\r\n }\r\n }\r\n\r\n @HostListener('input', ['$event'])\r\n oninput = (e) => {\r\n const _api = e.target;\r\n const _value: string = _api.value !== undefined ? _api.value : _api.textContent !== undefined ? _api.textContent : _api.innerText;\r\n if (_value.length >= this.autoCompleteMinLength) {\r\n this.emitInputValue(_value);\r\n } else {\r\n }\r\n }\r\n\r\n\r\n @HostListener('keyup', ['$event'])\r\n onchange = e => {\r\n const txtVal = this._orgin.nativeElement.value;\r\n\r\n // ESC KEY\r\n if (e.keyCode === 27) {\r\n this.OutsideClick();\r\n }\r\n\r\n // ENTER KEY\r\n if (e.keyCode === 13) {\r\n if (txtVal !== '') {\r\n this.emitNewItem.next(txtVal);\r\n this.hide();\r\n }\r\n }\r\n\r\n if (e.keyCode == 8) {\r\n if (txtVal.length < 1) {\r\n this.matches = this.appAutoComplete;\r\n this.emitFilterValues.next(this.matches);\r\n }\r\n if (txtVal.length === 0 && !this._overlayRef.hasAttached()) {\r\n this._overlayRef.attach(this._portal);\r\n }\r\n }\r\n }\r\n\r\n private emitInputValue = (param: any): void => { this.inputEventSubscription.next(param); };\r\n\r\n private asyncAction = (param?: any): void => {\r\n this.inputEventSubscription\r\n .pipe(debounceTime(this.autoCompleteWaitMs), distinctUntilChanged()\r\n , mergeMap((e) => {\r\n return from(this.appAutoComplete)\r\n .pipe(filter((f) => this.filterText(e, f)), toArray());\r\n })).subscribe((result) => this.finalSearchOperation(result));\r\n }\r\n\r\n\r\n private filterText = (e: string, f: any): any => {\r\n return f.name.toLowerCase().indexOf(e.toLowerCase()) >= 0;\r\n }\r\n\r\n private finalSearchOperation = (param: any): void => {\r\n this.matches = param;\r\n if (this.hasMatches()) {\r\n this.emitFilterValues.next(this.matches);\r\n if (!this._overlayRef.hasAttached()) {\r\n this._overlayRef.attach(this._portal);\r\n }\r\n } else {\r\n this.emitFilterValues.next([]);\r\n if (this.matches.length === 0) {\r\n this.hide();\r\n }\r\n }\r\n }\r\n\r\n private hasMatches = (param?: any): boolean => {\r\n return this.matches.length > 0;\r\n }\r\n\r\n get overlayRef(): OverlayRef {\r\n return this._overlayRef;\r\n }\r\n\r\n toggle = (param?: any): void => {\r\n if (this._overlayRef == null || !this._overlayRef.hasAttached()) {\r\n this.attchOverlay();\r\n }\r\n }\r\n\r\n private attchOverlay = (param?: any): void => {\r\n if (!this._overlayRef) {\r\n this.createOverlay();\r\n this.isOpened = true;\r\n }\r\n if (this._overlayRef.hasAttached() != undefined) {\r\n this._overlayRef.attach(this._portal);\r\n this.isOpened = true;\r\n }\r\n }\r\n\r\n private createOverlay = (param?: any): void => {\r\n const positionStrategy = this._overlay\r\n .position()\r\n .flexibleConnectedTo(this._orgin)\r\n .withPositions(this.getPositions())\r\n .withFlexibleDimensions(false)\r\n .withPush(false);\r\n\r\n const overlayRefConfig = new OverlayConfig({\r\n width: '100%',\r\n hasBackdrop: false,\r\n scrollStrategy: this._overlay.scrollStrategies.reposition(),\r\n positionStrategy: positionStrategy\r\n });\r\n this._overlayRef = this._overlay.create(overlayRefConfig);\r\n this._portal = new TemplatePortal(this.content, this._viewContainerRef);\r\n }\r\n\r\n private getPositions(): ConnectionPositionPair[] {\r\n return [\r\n {\r\n originX: 'start',\r\n originY: 'bottom',\r\n overlayX: 'start',\r\n overlayY: 'top'\r\n }\r\n ];\r\n }\r\n\r\n public hide = (param?: any): void => {\r\n if (this._overlayRef) {\r\n this.overlayRef.detach();\r\n this.isOpened = false;\r\n }\r\n }\r\n\r\n private OutsideClick = () => {\r\n if (this._overlayRef) {\r\n this.hide();\r\n this.isOpened = false;\r\n }\r\n }\r\n}","import { Directive, OnInit, ElementRef, HostListener, Renderer2 } from '@angular/core';\r\nimport { CurrencyPipe } from '@angular/common';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\n\r\n@Directive({\r\n selector: '[usd-currency]'\r\n})\r\nexport class UsdCurrencyDirective implements OnInit {\r\n inputCountry;\r\n symbolFormat;\r\n\r\n constructor(\r\n public el: ElementRef,\r\n public renderer: Renderer2,\r\n private currencyPipe: CurrencyPipe,\r\n private commonService: CommonService) { }\r\n\r\n ngOnInit() {\r\n this.getCountry();\r\n }\r\n\r\n getCountry() {\r\n const loggedInUserData = this.commonService.getLoggedInData();\r\n switch (loggedInUserData.contact.address.country) {\r\n case 1:\r\n this.inputCountry = 'USD';\r\n this.symbolFormat = /[$]/g;\r\n break;\r\n case 2:\r\n // this.inputCountry = 'CAD';\r\n // this.symbolFormat = /[CA$]/g;\r\n this.inputCountry = '';\r\n this.symbolFormat = /[$]/g;\r\n break;\r\n default:\r\n this.inputCountry = 'USD';\r\n this.symbolFormat = /[$]/g;\r\n break;\r\n }\r\n this.format(this.el.nativeElement.value, this.inputCountry);\r\n }\r\n\r\n @HostListener('keypress', ['$event']) keypress(event) {\r\n const regex: RegExp = new RegExp(/^\\d*\\.?\\d{0,2}$/g);\r\n const specialKeys: Array = ['Backspace', 'Tab', 'End', 'Home', '-'];\r\n if (specialKeys.indexOf(event.key) !== -1) { return; }\r\n const next: string = event.target.value.concat(event.key);\r\n if (next && !String(next).match(regex)) {\r\n event.preventDefault();\r\n }\r\n }\r\n\r\n @HostListener('blur', ['$event.target.value']) onInput(e: string) {\r\n this.format(e, this.inputCountry);\r\n }\r\n\r\n @HostListener('focus', ['$event.target.value']) onFocus(e: string) {\r\n if (e) {\r\n const split_val = e.split('.');\r\n const original_val = split_val[0].replace(/,/g, '').replace(this.symbolFormat, '');\r\n let appendValue;\r\n if (split_val.length > 1) {\r\n appendValue = (split_val[1] !== '00') ? original_val + '.' + split_val[1] : original_val;\r\n } else {\r\n appendValue = original_val;\r\n }\r\n this.renderer.setProperty(this.el.nativeElement, 'value', appendValue);\r\n }\r\n }\r\n\r\n format(val: string, inputCountry) {\r\n const formatVal = this.currencyPipe.transform(val, inputCountry);\r\n this.renderer.setProperty(this.el.nativeElement, 'value', formatVal);\r\n }\r\n}\r\n","export enum DownloadToCSV_FacilityManagement {\r\n name = 'Facility_Name',\r\n branchName = 'Branch_Name',\r\n fullAddress = 'Address',\r\n isActive = 'Status',\r\n phone = 'Phone_Number',\r\n createdOn = 'Created_On',\r\n url = 'Url'\r\n}\r\nexport enum DownloadToCSV_ProviderManagement {\r\n fullName = 'Provider_Name',\r\n name = 'Provider_Company',\r\n fullAddress = 'Address',\r\n isActive = 'Status',\r\n phone = 'Phone_Number',\r\n email = 'Email_Id',\r\n createdOn = 'Created_On',\r\n url = 'Url',\r\n branchName = 'Facility Branch',\r\n facilityName = 'Faciltiy Name',\r\n providerNpi = 'Provider Npi',\r\n merchantKey = 'Merchant Key',\r\n fromEmail = 'Email',\r\n providerUrlSuffix = 'Provider Url Suffix'\r\n}\r\n\r\nexport enum DownloadToCSV_TransactionList {\r\n authCode = 'Auth_Code',\r\n captureAmount = 'Total_Amount',\r\n channelType = 'Channel_Type',\r\n cardNumber = 'Card_Number',\r\n cardType = 'Card_Type',\r\n convenienceAmount = 'Convenience_Amount',\r\n customerName = 'Customer_Name',\r\n nameOnCheckOrCard = 'Name_On_Card',\r\n settlementDate = 'Settlement_Date',\r\n taxAmount = 'Tax_Amount',\r\n tipAmount = 'Tip_Amount',\r\n transactionDate = 'Transaction_Date',\r\n transactionStatus = 'Transaction_Status',\r\n amount = 'Amount',\r\n}\r\n\r\nexport enum DownloadToCSVForACH_TransactionList {\r\n authCode = 'Auth_Code',\r\n captureAmount = 'Total_Amount',\r\n channelType = 'Channel_Type',\r\n accountNumber = 'Account_Number',\r\n convenienceAmount = 'Convenience_Amount',\r\n customerName = 'Customer_Name',\r\n routingNumber = 'Routing_Number',\r\n settlementDate = 'Settlement_Date',\r\n taxAmount = 'Tax_Amount',\r\n tipAmount = 'Tip_Amount',\r\n transactionDate = 'Transaction_Date',\r\n transactionStatus = 'Transaction_Status',\r\n amount = 'Amount',\r\n}\r\n\r\n\r\n\r\n\r\nexport enum DownloadToCSV_PatientManagement {\r\n fullName = 'Name',\r\n fullAddress = 'Address',\r\n phone = 'Phone_Number',\r\n email = 'Email_Id',\r\n mrn = 'MRN No',\r\n dob = 'DOB',\r\n isInsured = 'Has Insurance',\r\n createdOn = 'Created On',\r\n // isRegistered = 'Status',\r\n primaryFullName = 'Policyholder\\'s Name',\r\n primaryFullAddress = 'Policyholder\\'s Address',\r\n relation = 'Policyholder\\'s Relationship',\r\n primaryMobile = 'Policyholder\\'s Phone',\r\n primaryEmail = 'Policyholder\\'s Email',\r\n insurancePartner = 'Insurance Payer',\r\n policyNo = 'Policy No',\r\n groupNo = 'Group No',\r\n binNo = 'Bin No',\r\n secFullName = 'Secondary Policyholder\\'s Name',\r\n SecFullAddress = 'Secondary Policyholder\\'s Address',\r\n secRelation = 'Secondary Policyholder\\'s Relationship',\r\n secMobile = 'Secondary Policyholder\\'s Phone',\r\n secEmail = 'Secondary Policyholder\\'s Email',\r\n SecInsurancePartner = 'Secondary Insurance Payer',\r\n secPolicyNo = 'Secondary Policy No',\r\n secGroupNo = 'Secondary Group No',\r\n secBinNo = 'Secondary Bin No',\r\n authorizeMode = 'Authorize Mode',\r\n isOptIn = 'Is Opted In',\r\n}\r\n\r\nexport enum DownloadToCSV_PatientReport {\r\n reportType = 'Report Type',\r\n value = 'Value',\r\n before24HrPatientCount = 'Patients Registered in 24 Hours',\r\n customPatientCount = 'Patients Registered in Selected Period',\r\n monthlyPatientRecord = ' Patients Registered in 1 Month',\r\n totalPatientRegistered = 'Total Patients Registered',\r\n yearlyPatientRecord = 'Patients Registered in 1 Year',\r\n\r\n}\r\n\r\nexport enum DownloadToCSV_ScheduledPaymentReport {\r\n reportType = 'Report Type',\r\n value = 'Value',\r\n totalAmount = 'Total Amount',\r\n totalTransactionCount = 'Total Count'\r\n\r\n}\r\n\r\nexport enum DownloadToCSV_OutstandingReceivablesReport {\r\n reportType = 'Report Type',\r\n value = 'Value',\r\n totalOutstandingBalance = 'Total Outstanding Balance',\r\n\r\n}\r\n\r\nexport enum DownloadToCSV_TransactionStatusReport {\r\n channelType = 'Channel Type',\r\n operationType = 'Operation Type',\r\n totalSalesAmount = 'Total Sales Amount',\r\n totalTransactions = 'Total Transactions',\r\n transactionStatus = 'Transaction Status',\r\n}\r\n\r\nexport enum DownloadToCSV_TransactionReport {\r\n paymentMethod = 'Payment Method',\r\n operationType = 'Operation Type',\r\n cardType = 'Card Type',\r\n transactionCount = 'Total Transactions',\r\n salesAmount = 'Sales Amount',\r\n}\r\n\r\nexport enum DownloadReportForRecurringPayment {\r\n fullName = 'Name',\r\n email = 'Email',\r\n discountAmount = 'Discount_Amount',\r\n endDate = 'End_Date',\r\n frequency = 'Frequency',\r\n nextTransactionDate = 'Next_Transaction_Date',\r\n recurringStatus = 'Status',\r\n recurringTransactionName = 'Payment_Plan_Name',\r\n recurringTransactionType = 'Payment_Type',\r\n startDate = 'Start_Date',\r\n subTotal = 'Amount',\r\n taxAmount = 'Tax_Amount',\r\n totalAmount = 'Total_Amount',\r\n totalNumberOfPayments = 'Number_Of_Payment',\r\n isCreditCardAccount = 'Credit_Card/ACH',\r\n maskedCardNumber = 'Card_Number',\r\n maskedAccountNumber = 'Account_Number'\r\n}\r\nexport enum DownloadInvoiceTaxReport {\r\n TransactionDate = 'Date',\r\n InvoiceNumber = 'Reference Number',\r\n Name = 'Name',\r\n UnitPrice = 'Unit_Price',\r\n Quantity = 'Quantity',\r\n TaxPercent = 'Tax_Percent',\r\n TaxAmount = 'Tax_Amount',\r\n ItemSubTotal = 'Sub_Total',\r\n ItemTotal = 'Total_Amount',\r\n PaymentType = 'Payment_Type'\r\n}\r\nexport enum DownloadReportForCustomPlan {\r\n amount = 'Amount',\r\n description = 'Plan_Description',\r\n discountAmount = 'Discount_Amount',\r\n discountRate = 'Discount_Rate',\r\n discountType = 'Discount_Type',\r\n frequency = 'Frequency',\r\n instalmentAmount = 'Installment_Amount',\r\n isActive = 'Status',\r\n name = 'Plan_Name',\r\n noOfInstalments = 'Number_Of_Installment',\r\n productsAndServices = 'Products_And_Services',\r\n recurringType = 'Payment_Type',\r\n totalAmount = 'Total_Amount'\r\n}\r\n\r\nexport enum DownloadReportForProduct {\r\n createdOn = 'Created_On',\r\n name = 'Product Name',\r\n unitPrice = 'Unit Price',\r\n description = 'Description',\r\n discountType = 'Discount Type',\r\n discount = 'Discount Amount',\r\n cptCode = 'Cpt Code',\r\n categoryType = 'Category Type',\r\n status = 'Status',\r\n tags = 'Tags',\r\n}\r\n\r\n\r\nexport enum DownloadToPDF_Invoice {\r\n reportType = 'Report Type',\r\n value = 'Value',\r\n productName = 'Product/Services',\r\n quantity = 'Quantity',\r\n unitRate = 'Unit Rate',\r\n discount = 'Discount',\r\n totalDiscount = 'Total Discount',\r\n rate = 'Rate',\r\n calculatedAmount = 'Amount',\r\n subTotal = 'SubTotal',\r\n finalAmount = 'Total Amount',\r\n tax = 'Tax',\r\n totalTax = 'Total Tax',\r\n patientDetail = 'Patient',\r\n invoiceDate = 'Invoice Date',\r\n dueDate = 'Due Date',\r\n visitDate = 'Visit Date',\r\n serviceDate = 'Service Date',\r\n note = 'Note',\r\n\r\n}\r\n\r\nexport enum DownloadToCSV_InsuranceManagement {\r\n name = 'Insurance Name',\r\n phone = 'Phone Number',\r\n email = 'Email Id',\r\n address = 'Address',\r\n state = 'State',\r\n city = 'City',\r\n countryText = 'Country',\r\n postalCode = 'Postal Code',\r\n createdOn = 'Creation Date'\r\n}\r\n\r\nexport enum DownloadToCSV_DoctorManagement {\r\n doctorType = 'Provider Type',\r\n firstName = 'First Name',\r\n lastName = 'Last Name',\r\n mobile = 'Phone Number',\r\n email = 'Email Id',\r\n address = 'Address',\r\n adddressLine1 = 'Address Line1',\r\n adddressLine2 = 'Address Line2',\r\n state = 'State',\r\n city = 'City',\r\n countryText = 'Country',\r\n postalCode = 'Postal Code',\r\n createdOn = 'Creation Date',\r\n npi = 'NPI Number'\r\n}\r\n\r\nexport enum DownloadToCSV_TodaysAppointment {\r\n fullName = 'Patient Name',\r\n fromDate = 'From Date',\r\n toDate = 'To Date',\r\n email = 'Email',\r\n duration = 'Duration (in Mins)'\r\n}\r\n\r\n\r\n\r\n\r\nexport enum DownloadToPDF_Receipt {\r\n reportType = 'Report Type',\r\n value = 'Value',\r\n providerId = 'Provider ID',\r\n cardDetails = 'Card Details',\r\n checkDetails = 'Check Details',\r\n accountDetails = 'Account Details',\r\n cardNumber = 'Card Number',\r\n accountNumber = 'Account Number',\r\n nameOnCard = 'Name on Card',\r\n nameOnAccount = 'Account Name',\r\n cardType = 'Card Type',\r\n bankName = 'Bank Name',\r\n institutionName = 'Name of Institution',\r\n paymentType = 'Payment Type',\r\n totalDiscount = 'Total Discount',\r\n discount = 'Discount',\r\n rate = 'Rate',\r\n calculatedAmount = 'Amount',\r\n subTotal = 'SubTotal',\r\n finalAmount = 'Total Amount',\r\n tax = 'Tax',\r\n totalTax = 'Total Tax',\r\n note = 'Memo',\r\n\r\n}","export enum ReportFilter {\r\n fromdate = 'Start Date',\r\n todate = 'End Date',\r\n cardType = 'Channel Type',\r\n isActive = 'Is Activated',\r\n endDate = 'End Date',\r\n startDate = 'Start Date',\r\n companyName = 'Company Name',\r\n email = 'Email',\r\n status = 'Status',\r\n\r\n // transaction Management\r\n minAmount = 'Minimum Amount',\r\n maxAmount = 'Maximum Amount',\r\n cardNo = 'Card Number',\r\n recurringId = 'Payment Plan Id',\r\n\r\n // recurring payment\r\n nextBillingStartDate = 'Next Billing Start Date',\r\n nextBillingEndDate = 'Next Billing End Date',\r\n paymentName = 'Payment Name',\r\n type = 'Payment Type',\r\n\r\n // custom plan\r\n planName = 'Plan Name',\r\n frequency = 'Frequency',\r\n\r\n // Facility\r\n facilityName = 'Facility Name',\r\n\r\n // Provider\r\n providerName = 'Provider Name',\r\n providerCompany = 'Provider Company',\r\n branchName = 'Facility Branch',\r\n\r\n // Patient\r\n patientName = 'Patient Name',\r\n mrn = 'Mrn No',\r\n\r\n // Product\r\n name = 'Name',\r\n discountMinAmount = 'Discount Minimum Amount',\r\n discountMaxAmount = 'Discount Maximum Amount',\r\n discountType = 'Discount Type',\r\n\r\n // Insurance\r\n insuranceName = 'Insurance Name',\r\n phone = 'Phone',\r\n // Doctor\r\n doctorName = 'Doctor Name',\r\n}\r\n","export class Exception {\r\n\r\n static exceptionMessage(error) {\r\n const errormessage = [];\r\n\r\n if (error !== undefined && error !== null\r\n && error.error !== undefined && error.error !== null\r\n && error.error.errors !== undefined && error.error.errors !== null) {\r\n\r\n const errorArray = error.error.errors;\r\n if (errorArray.length === 0) {\r\n errormessage.push(this.getExceptionMessage(error.error.message));\r\n } else {\r\n for (const i in errorArray) {\r\n if (i) {\r\n if (errorArray[i]['message'].includes('Key_')) {\r\n errormessage.push(this.getExceptionMessage(errorArray[i]['message']));\r\n } else {\r\n\r\n errormessage.push(this.getExceptionMessage(errorArray[i]['field']));\r\n }\r\n }\r\n }\r\n }\r\n return errormessage;\r\n } else if (error.status === 401) {\r\n // if (error.error.errors === undefined) {\r\n errormessage.push(this.getExceptionMessage('User is not authorized to access this resource'));\r\n return errormessage;\r\n // }\r\n } else if (error.status === 403) {\r\n if (error.error.errors === undefined) {\r\n errormessage.push(this.getExceptionMessage(error.error.message));\r\n return errormessage;\r\n }\r\n } else if (error.status === 404) {\r\n if (error.error.errors === undefined) {\r\n errormessage.push(this.getExceptionMessage(error.error.message));\r\n return errormessage;\r\n }\r\n } else if (error.status === 400) {\r\n if (error.error.errors === undefined) {\r\n errormessage.push(this.getExceptionMessage(error.error.message));\r\n return errormessage;\r\n }\r\n } else if (error.status === 500) {\r\n errormessage.push('Internal server error. Please contact administrator.');\r\n return errormessage;\r\n }\r\n errormessage.push('Something went wrong. Please contact administrator.');\r\n return errormessage;\r\n }\r\n\r\n static getExceptionMessage(error) {\r\n let toastMessage = '';\r\n error = error.charAt(0).toUpperCase() + error.slice(1);\r\n switch (error) {\r\n case 'Key_PatientNotLinkedWithProvider':\r\n toastMessage = 'Your patient account is not activated with this provider. Please reach out to provider for more information.';\r\n break;\r\n // Payment Form\r\n case 'Key_FormNameCannotBeEmpty':\r\n toastMessage = 'Form name cannot be empty';\r\n break;\r\n\r\n case 'Key_Address1CannotBeEmpty':\r\n toastMessage = 'Address1 cannot be empty';\r\n break;\r\n\r\n case 'Key_CityRequired':\r\n toastMessage = 'City name is required';\r\n break;\r\n\r\n case 'Key_StateRequired':\r\n toastMessage = 'State name is required';\r\n break;\r\n case 'Key_SSNInvalid':\r\n toastMessage = 'Invalid SSN';\r\n break;\r\n case 'Key_SsnAlreadyExists':\r\n toastMessage = 'SSN already exists';\r\n break;\r\n case 'Key_DateOfServiceCannotBeBlank':\r\n toastMessage = 'Date of service cannot be blank';\r\n break;\r\n case 'Key_PostalCodeCannotBeEmpty':\r\n toastMessage = 'Postal code can not be empty';\r\n break;\r\n\r\n case 'Key_EmailCannotBeEmpty':\r\n toastMessage = 'Email cannot be empty';\r\n break;\r\n\r\n case 'Key_CountryCannotBeEmpty':\r\n toastMessage = 'Country name is required';\r\n break;\r\n\r\n case 'Key_InvalidEmail':\r\n toastMessage = 'Email Id is invalid';\r\n break;\r\n\r\n case 'Key_MerchantInactive':\r\n toastMessage = 'Merchant is inactive';\r\n break;\r\n\r\n case 'Key_InactiveCustomerAccountId':\r\n toastMessage = 'Patient Account is Inactive';\r\n break;\r\n\r\n case 'Key_ProviderInActive':\r\n toastMessage = 'Provider is inactive';\r\n break;\r\n case 'Key_InvalidColourCode':\r\n toastMessage = 'Colour code is invalid';\r\n break;\r\n\r\n case 'Key_InvalidAllowedCreditCardType':\r\n toastMessage = 'Credit Card type is invalid';\r\n break;\r\n\r\n case 'Key_AllowedCreditCardTypeCannotBeEmpty':\r\n toastMessage = 'Card Card type cannot be empty';\r\n break;\r\n\r\n case 'Key_AccountAlreadyExists':\r\n toastMessage = 'Account already exists';\r\n break;\r\n\r\n case 'Key_NoSuchProvisionMetadataForThisGatewayAndProcessor':\r\n toastMessage = 'No such provision meta data for this gateway and processor';\r\n break;\r\n\r\n case 'Key_NoSuchChannelTypeForThisGatewayAndProcessor':\r\n toastMessage = 'No such channel type for this gateway and processor';\r\n break;\r\n\r\n case 'Key_NoSuchProcessorForThisGatewayAndChannelType':\r\n toastMessage = 'No such processor for this gateway and channel type';\r\n break;\r\n\r\n case 'Key_NoSuchProcessorForThisGateway':\r\n toastMessage = 'No such processor for this gateway';\r\n break;\r\n\r\n case 'Key_NoGatewaySupported':\r\n toastMessage = 'No gateway supported';\r\n break;\r\n\r\n case 'Key_InvalidGatewayName':\r\n toastMessage = 'Gateway name is invalid';\r\n break;\r\n\r\n case 'Key_InvalidProcessorName':\r\n toastMessage = 'Processor Name is invalid';\r\n break;\r\n\r\n case 'Key_InvalidChannelType':\r\n toastMessage = 'ChannelType is invalid';\r\n break;\r\n\r\n case 'Key_InvalidChannelSubType':\r\n toastMessage = 'Channel sub type not configured in allowed transaction types and processor configuration';\r\n break;\r\n\r\n case 'Key_InvalidUserName':\r\n toastMessage = 'Username is invalid';\r\n break;\r\n\r\n case 'Key_InvalidPassword':\r\n toastMessage = 'Password is invalid';\r\n break;\r\n\r\n case 'Key_NoSuchCustomerAccount':\r\n toastMessage = 'Patient account does not exists';\r\n break;\r\n\r\n case 'Key_InvalidAccountType':\r\n toastMessage = 'Account type is invalid';\r\n break;\r\n case 'Key_PhoneAlreadyExists':\r\n toastMessage = 'Phone already exists.';\r\n break;\r\n case 'Key_InvalidAccountNumber':\r\n toastMessage = 'Account number is invalid';\r\n break;\r\n\r\n case 'Key_InvalidRoutingNumber':\r\n toastMessage = 'Routing number is invalid';\r\n break;\r\n\r\n case 'Key_CustomerNameInUse':\r\n toastMessage = 'Patient name is in use';\r\n break;\r\n\r\n case 'Key_CannotChangeAccountType':\r\n toastMessage = 'Cannot change account type';\r\n break;\r\n\r\n case 'Key_InvalidCardExpiry':\r\n toastMessage = 'Card expiry date is invalid';\r\n break;\r\n\r\n case 'Key_InvalidCardNumber':\r\n toastMessage = 'Card number is invalid';\r\n break;\r\n\r\n\r\n case 'Key_InvalidCardType':\r\n toastMessage = 'Card type is invalid';\r\n break;\r\n\r\n\r\n case 'Key_FirstNameCannotBeEmpty':\r\n toastMessage = 'First name cannot be empty';\r\n break;\r\n\r\n case 'Key_LastNameCannotBeEmpty':\r\n toastMessage = 'Last name cannot be empty';\r\n break;\r\n\r\n case 'Key_PhoneCannotBeEmpty':\r\n toastMessage = 'Phone number cannot be empty';\r\n break;\r\n\r\n case 'Key_Address2CannotBeEmpty':\r\n toastMessage = 'Address 2 cannot be empty';\r\n break;\r\n\r\n case 'Key_InvalidURL':\r\n toastMessage = 'URL is invalid';\r\n break;\r\n\r\n case 'Key_SetMerchant':\r\n toastMessage = 'Merchant is not set';\r\n break;\r\n\r\n case 'Key_NoTransactionTypeSet':\r\n toastMessage = 'Transaction type is not set';\r\n break;\r\n\r\n case 'Key_NoProcessorsSet':\r\n toastMessage = 'Processor is not set';\r\n break;\r\n\r\n case 'Key_NoProcessorSetForEachChannelType':\r\n toastMessage = 'Processor is not set for each channel type';\r\n break;\r\n\r\n case 'Key_DuplicateChannelSubType':\r\n toastMessage = 'Duplicate channel sub type';\r\n break;\r\n\r\n case 'Key_InValidTransactionType':\r\n toastMessage = 'Transaction type is invalid';\r\n break;\r\n\r\n case 'Key_RoleIsInUsed':\r\n toastMessage = 'Role is in use';\r\n break;\r\n\r\n case 'Key_InvalidFirstName':\r\n toastMessage = 'First name is invalid';\r\n break;\r\n\r\n case 'Key_InvalidLastName':\r\n toastMessage = 'Last name is invalid';\r\n break;\r\n\r\n case 'Key_InvalidFaxNo':\r\n toastMessage = 'Fax number is invalid';\r\n break;\r\n\r\n case 'Key_InvalidCompanyName':\r\n toastMessage = 'Provider name is invalid';\r\n break;\r\n\r\n case 'Key_InvalidPhoneNo':\r\n toastMessage = 'Phone number is invalid';\r\n break;\r\n\r\n case 'Key_InvalidCity':\r\n toastMessage = 'City name is invalid';\r\n break;\r\n\r\n case 'Key_InvalidPostalCode':\r\n toastMessage = 'Postal code is invalid';\r\n break;\r\n\r\n case 'Key_InvalidFederalTaxId':\r\n toastMessage = 'Federal Tax id is invalid';\r\n break;\r\n\r\n case 'Key_ResellerNameCannotBeEmpty':\r\n toastMessage = 'Reseller name cannot be empty';\r\n break;\r\n\r\n case 'Key_NameCannotBeEmpty':\r\n toastMessage = 'Name cannot be empty';\r\n break;\r\n\r\n case 'Key_CustomFeeNameAlreadyExists':\r\n toastMessage = 'Custom fee name already exists';\r\n break;\r\n\r\n case 'Key_InvalidFeeName':\r\n toastMessage = 'Fee name is invalid';\r\n break;\r\n\r\n case 'Key_InvalidFrequency':\r\n toastMessage = 'Frequency is invalid';\r\n break;\r\n\r\n\r\n case 'Key_InvalidFeeType':\r\n toastMessage = 'Fee Type is invalid';\r\n break;\r\n\r\n case 'Key_FeeCanNotBeDeletedAsIsItUsedInRatePlan':\r\n toastMessage = 'Fee cannot be deleted as it is used in rate plan';\r\n break;\r\n\r\n case 'Key_CanNotDeleteSystemFee':\r\n toastMessage = 'Cannot delete system fee';\r\n break;\r\n\r\n case 'Key_RatePlanIdInUse':\r\n toastMessage = 'Rate plan Id is in use';\r\n break;\r\n\r\n case 'Key_InvalidFeeId':\r\n toastMessage = 'Fee Id is invalid';\r\n break;\r\n\r\n case 'Key_InvalidUserType':\r\n toastMessage = 'User type is invalid';\r\n break;\r\n\r\n case 'Key_InvalidTargetId':\r\n toastMessage = 'Target Id is invalid';\r\n break;\r\n\r\n case 'Key_RatePlanCanNotBeDeletedAsAssignedResellerOrMerchantIsInActiveMode':\r\n toastMessage = 'Rate plan cannot be deleted as it is assiged to a reseller or merchant';\r\n break;\r\n\r\n case 'Key_RatePlanAlreadyAssignedToTargetId':\r\n toastMessage = 'Rate plan already assigned to target Id';\r\n break;\r\n\r\n case 'Key_BuyRateCanNotBeNegative':\r\n toastMessage = 'Buy Rate cannot be negative';\r\n break;\r\n\r\n case 'Key_SellRateCanNotBeNegative':\r\n toastMessage = 'Sell Rate cannot be negative';\r\n break;\r\n\r\n case 'Key_InvalidFrequencyParameter':\r\n toastMessage = 'Frequency parameter is invalid';\r\n break;\r\n\r\n case 'Key_StartDateCannotBeEmpty':\r\n toastMessage = 'Start date cannot be empty';\r\n break;\r\n\r\n case 'Key_ResellerInActive':\r\n toastMessage = 'Reseller is inactive';\r\n break;\r\n\r\n case 'Key_InvalidMerchantId':\r\n toastMessage = 'Merchant Id is invalid';\r\n break;\r\n\r\n case 'Key_InvalidRatePlanId':\r\n toastMessage = 'Please select Rate plan';\r\n break;\r\n\r\n case 'Key_RatePlanNameCannotBeEmpty':\r\n toastMessage = 'Rate plan name cannot be empty';\r\n break;\r\n\r\n case 'Key_RatePlanNameIsInUse':\r\n toastMessage = 'Rate plan name is in use';\r\n break;\r\n\r\n case 'Key_ParentIdIsInvalid':\r\n toastMessage = 'Parent Id is invalid';\r\n break;\r\n\r\n case 'Key_DuplicateFeeConfig':\r\n toastMessage = 'Duplicate fee config';\r\n break;\r\n\r\n // Infrastructure\r\n case 'Key_CannotGoToEmulationMode':\r\n toastMessage = 'Cannot go to emulation mode';\r\n break;\r\n\r\n case 'Key_OldPasswordBlank':\r\n toastMessage = 'Old password is blank';\r\n break;\r\n\r\n case 'Key_InvalidOldPassword':\r\n toastMessage = 'Old Password is invalid';\r\n break;\r\n\r\n case 'Key_InvalidUsernameOrPassword':\r\n toastMessage = 'Invalid username or password';\r\n break;\r\n\r\n case 'Key_PasswordCannotBeEmpty':\r\n toastMessage = 'Password cannot be empty';\r\n break;\r\n\r\n case 'Key_InvalidPasswordLength':\r\n toastMessage = 'Password length should be greater than 8 characters';\r\n break;\r\n\r\n case 'Key_MatchingPassword':\r\n toastMessage = 'New password cannot be the same as previous 3 passwords. Please enter a different new password and try again.';\r\n break;\r\n\r\n case 'Key_LockedAccount':\r\n toastMessage = 'Your account has been locked. Please try again in 30 minutes or request a password reset after 30 minutes.';\r\n break;\r\n\r\n case 'Key_UserNameCannotBeEmpty':\r\n toastMessage = 'Username cannot be empty';\r\n break;\r\n\r\n case 'Key_UserMustBeAtleastOf6Characters':\r\n toastMessage = 'Username must be of atleast 6 charaters long';\r\n break;\r\n\r\n case 'Key_UserNameAlreadyExist':\r\n toastMessage = 'Username already exists';\r\n break;\r\n\r\n case 'Key_RoleNameCanNotBeEmpty':\r\n toastMessage = 'Role name cannot be empty';\r\n break;\r\n\r\n case 'Key_RoleNameIsAlreadyUsed':\r\n toastMessage = 'Role Name is already used';\r\n break;\r\n\r\n case 'Key_EmailNotExistsInDatabase':\r\n toastMessage = 'Email Id does not exists';\r\n break;\r\n\r\n case 'Key_NoRecordsFound':\r\n toastMessage = 'No record found';\r\n break;\r\n\r\n case 'Key_InActiveAccount':\r\n toastMessage = 'Account is inactive';\r\n break;\r\n\r\n case 'Key_UserEmailAlreadyExist':\r\n toastMessage = 'User Email already exists';\r\n break;\r\n\r\n case 'Key_AccountIdUsedWithContract':\r\n toastMessage = 'Account Id used with contract';\r\n break;\r\n\r\n case 'Key_NumbersNotAllowed':\r\n toastMessage = 'Numbers not allowed';\r\n break;\r\n\r\n case 'Key_InvalidModifyAccess':\r\n toastMessage = 'Modify access is invalid';\r\n break;\r\n\r\n case 'Key_InvalidDeleteAccesse':\r\n toastMessage = 'Delete accesse is invalid';\r\n break;\r\n\r\n case 'Key_InvalidViewAccess':\r\n toastMessage = 'View access is invalid';\r\n break;\r\n\r\n case 'Key_InvalidExecuteAccess':\r\n toastMessage = 'Execute access is invalid';\r\n break;\r\n\r\n case 'Key_InvalidOperationid':\r\n toastMessage = 'Operation Id is invalid';\r\n break;\r\n\r\n case 'Key_OperartionCanNotBeEdited':\r\n toastMessage = 'Operation cannot be edited';\r\n break;\r\n\r\n case 'Key_OperartionCanNotBeDuplicate':\r\n toastMessage = 'Operation cannot be duplicate';\r\n break;\r\n\r\n case 'Key_InvalidRoleName':\r\n toastMessage = 'Role Name is invalid';\r\n break;\r\n\r\n case 'Key_InvalidRole':\r\n toastMessage = 'Role is invalid';\r\n break;\r\n\r\n case 'Key_InactiveParentReseller':\r\n toastMessage = 'Reseller is inactive.';\r\n break;\r\n\r\n case 'Key_TransactionDenied':\r\n toastMessage = 'Transaction Denied';\r\n break;\r\n\r\n case 'Key_InvalidChannelProvisionedData':\r\n toastMessage = 'Channel provision data is invalid';\r\n break;\r\n\r\n case 'Key_CannotRepeatOldTransaction':\r\n toastMessage = 'Cannot repeat old transaction';\r\n break;\r\n\r\n case 'Key_CannotRefundOldTransaction':\r\n toastMessage = 'Cannot refund old transaction';\r\n break;\r\n\r\n case 'Key_InvalidOperationType':\r\n toastMessage = 'Operation type is invalid';\r\n break;\r\n\r\n case 'Key_InvalidEBTCardExpiry':\r\n toastMessage = 'EBTCard expiry is invalid';\r\n break;\r\n\r\n case 'Key_CheckNumberMissing':\r\n toastMessage = 'Check number is missing';\r\n break;\r\n\r\n case 'Key_InvalidAmount':\r\n toastMessage = 'Amount is invalid';\r\n break;\r\n\r\n case 'Key_CardNumberMissing':\r\n toastMessage = 'Card number is missing';\r\n break;\r\n\r\n case 'Key_CardExpiryMissing':\r\n toastMessage = 'Card expiry date is missing';\r\n break;\r\n\r\n case 'Key_CardTypeMissing':\r\n toastMessage = 'Card type missing';\r\n break;\r\n\r\n case 'Key_InvalidTransactionCode':\r\n toastMessage = 'Transaction code is invalid';\r\n break;\r\n\r\n case 'Key_TenderInfoMissing':\r\n toastMessage = 'Tender info is missing';\r\n break;\r\n\r\n case 'Key_MerchantNotSpecified':\r\n toastMessage = 'Merchant is not specified';\r\n break;\r\n\r\n case 'Key_InvalidGatewayInfo':\r\n toastMessage = 'Gateway Info is invalid';\r\n break;\r\n\r\n case 'Key_InvalidProcessorInfo':\r\n toastMessage = 'Parent reseller is inactive';\r\n break;\r\n\r\n case 'Key_ChannelTypeUnknown':\r\n toastMessage = 'Channel Type unknown';\r\n break;\r\n\r\n case 'Key_MerchantDisabled':\r\n toastMessage = 'Merchant is disabled';\r\n break;\r\n\r\n case 'Key_CannotAdjustTransactionMerchantDisabled':\r\n toastMessage = 'Cannot adjust Transaction as merchant is disabled';\r\n break;\r\n\r\n case 'Key_DuplicateTransaction':\r\n toastMessage = 'Duplicate transaction';\r\n break;\r\n\r\n case 'Key_AdjustedAmountCannotbeLessThanZero':\r\n toastMessage = 'Adjusted amount cannot be less than zero';\r\n break;\r\n\r\n case 'Key_CannotAdjustTransactionMarchantMismatch':\r\n toastMessage = 'Cannot adjust Transaction Merchant mismatch';\r\n break;\r\n\r\n case 'Key_CannotAdjustTransactionNoTransactionResultFound':\r\n toastMessage = 'No transaction result found';\r\n break;\r\n\r\n case 'Key_CannotAdjustCancelledTransaction':\r\n toastMessage = 'Cannot adjust cancelled transaction';\r\n break;\r\n\r\n case 'Key_CannotAdjustSettledTransaction':\r\n toastMessage = 'Cannot adjust settled transaction';\r\n break;\r\n\r\n case 'Key_CannotAdjustTransactionInvalidOperationType':\r\n toastMessage = 'Operation type is invalid';\r\n break;\r\n\r\n case 'Key_CannotCancelTransaction':\r\n toastMessage = 'Cannot cancel transaction';\r\n break;\r\n\r\n case 'Key_CannotRefundTransaction':\r\n toastMessage = 'Cannot refund transaction';\r\n break;\r\n\r\n case 'Key_CannotResubmitTransaction':\r\n toastMessage = 'Cannot resubmit transaction';\r\n break;\r\n\r\n case 'Key_OperationNotSupportedByProcessor':\r\n toastMessage = 'Operation not supported by processor';\r\n break;\r\n\r\n case 'Key_FraudTransaction':\r\n toastMessage = 'Fraud transaction';\r\n break;\r\n\r\n case 'Key_CVVFraudTransaction':\r\n toastMessage = 'CVV fraud transaction';\r\n break;\r\n\r\n case 'Key_AVSFraudTransaction':\r\n toastMessage = 'AVS fraud transaction';\r\n break;\r\n\r\n case 'Key_PinDataNotCaptured':\r\n toastMessage = 'Pin data not captured';\r\n break;\r\n\r\n case 'Key_CancellationFailed':\r\n toastMessage = 'Cancellation failed';\r\n break;\r\n\r\n case 'Key_InvalidPNRef':\r\n toastMessage = 'PNRef is invalid';\r\n break;\r\n\r\n case 'Key_InvalidAuthCode':\r\n toastMessage = 'AuthCode is invalid';\r\n break;\r\n\r\n case 'Key_InvalidTraceNumber':\r\n toastMessage = 'Trace number is invalid';\r\n break;\r\n\r\n case 'Key_TransactionIsNotVerified':\r\n toastMessage = 'Transaction is not verified';\r\n break;\r\n\r\n case 'Key_MaximumAllowedRecordExceedsForBatchTransaction':\r\n toastMessage = 'Maximum allowed record exceeds for batch transaction';\r\n break;\r\n\r\n case 'Key_InvalidAuthCodeOrPNRef':\r\n toastMessage = 'Invalid AuthCode or PNRef';\r\n break;\r\n\r\n case 'Key_OriginalTransactionNotFound':\r\n toastMessage = 'Original transaction nor found';\r\n break;\r\n\r\n case 'Key_NoACHDetailFound':\r\n toastMessage = 'ACH details not found';\r\n break;\r\n\r\n case 'Key_NoCCDetailFound':\r\n toastMessage = 'CC details not found';\r\n break;\r\n\r\n case 'Key_NoDCDetailFound':\r\n toastMessage = 'DC details not found';\r\n break;\r\n\r\n case 'Key_CvvDataMissing':\r\n toastMessage = 'Cvv data missing';\r\n break;\r\n\r\n case 'Key_ProcessorResponseError':\r\n toastMessage = 'Transaction failed due to error in processor\\'s response';\r\n break;\r\n\r\n case 'Key_NetworkError':\r\n toastMessage = 'Transaction failed due to network issues at processor\\'s end';\r\n break;\r\n\r\n case 'Key_ChannelConfigurationMissing':\r\n toastMessage = 'Transaction failed due to invalid processor configuration';\r\n break;\r\n\r\n case 'Key_InvalidRequestData':\r\n toastMessage = 'Transaction failed due to invalid request data';\r\n break;\r\n\r\n case 'Key_InactiveParentMerchant':\r\n toastMessage = 'Please contact your Reseller, to activate the account';\r\n break;\r\n\r\n case 'Key_TransactionOnHold':\r\n toastMessage = 'Transaction is on hold';\r\n break;\r\n\r\n case 'Key_TransactionFailed':\r\n toastMessage = 'Transaction failed';\r\n break;\r\n\r\n case 'Key_DailyTransactionAmountExceedsTheLimitForMerchant':\r\n toastMessage = 'Daily transaction amount exceeds the limit';\r\n break;\r\n\r\n case 'Key_WeeklyTransactionAmountExceedsTheLimitForMerchant':\r\n toastMessage = 'Weekly transaction amount exceeds the limit';\r\n break;\r\n\r\n case 'Key_MonthlyTransactionAmountExceedsTheLimitForMerchant':\r\n toastMessage = 'Monthly transaction amount exceeds the limit';\r\n break;\r\n\r\n case 'Key_MaximumTransactionAmountExceedsTheLimitForMerchant':\r\n toastMessage = 'Maximum transaction amount exceeds the limit';\r\n break;\r\n\r\n case 'Key_DailyTransactionCountExceedsTheLimitForMerchant':\r\n toastMessage = 'Daily transaction count exceeds the limit';\r\n break;\r\n\r\n case 'Key_WeeklyTransactionCountExceedsTheLimitForMerchant':\r\n toastMessage = 'Weekly transaction count exceeds the limit';\r\n break;\r\n\r\n case 'Key_MonthlyTransactionCountExceedsTheLimitForMerchant':\r\n toastMessage = 'Monthly transaction count exceeds the limit';\r\n break;\r\n\r\n case 'Key_YourTransactionIsOnHold':\r\n toastMessage = 'Your transaction is on hold';\r\n break;\r\n\r\n case 'Key_TransactionNotSucssessfulVelocityNotUpdated':\r\n toastMessage = 'Transaction not successful, Velocity not updated';\r\n break;\r\n\r\n case 'Key_CountryOrIpAddressIsBlocked':\r\n toastMessage = 'Country or IP address is blocked';\r\n break;\r\n\r\n // Merchant\r\n case 'Key_MerchantNameCannotBeEmpty':\r\n toastMessage = 'Merchant name can not be empty';\r\n break;\r\n\r\n case 'Key_MerchantAdminUserCannotBeEmpty':\r\n toastMessage = 'Merchant admin Username can not be empty';\r\n break;\r\n\r\n case 'Key_MerchantIdRequiredForRevenueCalMode':\r\n toastMessage = 'Merchant id required for revenue cal mode';\r\n break;\r\n\r\n case 'Key_ValueNotAvailable':\r\n toastMessage = 'Value not available';\r\n break;\r\n\r\n case 'Key_MerchantNameAlreadyExist':\r\n toastMessage = 'Merchant name already exists';\r\n break;\r\n\r\n case 'Key_InValidMerchantName':\r\n toastMessage = 'Invalid merchant name';\r\n break;\r\n\r\n case 'Key_InValidMerchantAdminUser':\r\n toastMessage = 'Invalid merchant admin user';\r\n break;\r\n\r\n case 'Key_InvalidPhone':\r\n toastMessage = 'Phone number is invalid';\r\n break;\r\n\r\n case 'Key_InvalidFax':\r\n toastMessage = 'Fax number is invalid';\r\n break;\r\n\r\n case 'Key_CustomerInactive':\r\n toastMessage = 'Patient is inactive';\r\n break;\r\n\r\n case 'Key_InvalidPaymentFormID':\r\n toastMessage = 'Invalid payment form id';\r\n break;\r\n\r\n case 'Key_CommunicationException':\r\n toastMessage = 'Communication exception';\r\n break;\r\n\r\n case 'Key_MerchantConfiguration':\r\n toastMessage = 'Merchant configuration';\r\n break;\r\n\r\n case 'Key_MerchantCannotBeDeleteBillingConfigAssigned':\r\n toastMessage = 'Merchant can not be deleted since billing config is assigned';\r\n break;\r\n\r\n case 'Key_ResellerAdminUserCannotBeEmpty':\r\n toastMessage = 'Reseller admin user can not be empty';\r\n break;\r\n\r\n case 'Key_ResellerNameInvalid':\r\n toastMessage = 'Invalid reseller name';\r\n break;\r\n\r\n case 'Key_NoTransactionTypeSetForReseller':\r\n toastMessage = 'Transaction type is not set for reseller';\r\n break;\r\n case 'Key_DuplicateTransactionType':\r\n toastMessage = 'Duplicate transaction type';\r\n break;\r\n\r\n case 'Key_NoProcessorSetForReseller':\r\n toastMessage = 'No processor set for reseller';\r\n break;\r\n\r\n case 'Key_CityCannotBeEmpty':\r\n toastMessage = 'City can not be empty';\r\n break;\r\n\r\n case 'Key_FederalTaxIdCannotBeEmpty':\r\n toastMessage = 'Federal tax id can not be empty';\r\n break;\r\n\r\n case 'Key_StateCannotBeEmpty':\r\n toastMessage = 'State can not be empty';\r\n break;\r\n\r\n case 'Key_InvalidIPAddress':\r\n toastMessage = 'Invalid IP address';\r\n break;\r\n\r\n case 'Key_ThemeCannotBeEmpty':\r\n toastMessage = 'Theme can not be empty';\r\n break;\r\n\r\n case 'Key_ResellerNameAlredyExist':\r\n toastMessage = 'Reseller name already exists';\r\n break;\r\n\r\n case 'Key_UserAlreadyExist':\r\n toastMessage = 'Username already exists';\r\n break;\r\n\r\n case 'Key_LogoCannotBeEmpty':\r\n toastMessage = 'Logo can not be empty';\r\n break;\r\n\r\n case 'Key_CannotDeleteIfChildExist':\r\n toastMessage = 'Can not delete since child exists';\r\n break;\r\n\r\n case 'Key_TransactionOnHold_CountryIsBlocked':\r\n toastMessage = 'Transaction originating from this country is blocked.';\r\n break;\r\n\r\n case 'Key_TransactionDenied_CountryIsBlocked':\r\n toastMessage = 'Transaction originating from this country is blocked.';\r\n break;\r\n\r\n case 'Key_TransactionOnHold_IPAddressIsBlocked':\r\n toastMessage = 'Transaction originating from this IP Address is blocked.';\r\n break;\r\n\r\n case 'Key_TransactionDenied_IPAddressIsBlocked':\r\n toastMessage = 'Transaction originating from this IP Address is blocked.';\r\n break;\r\n\r\n case 'Key_CanNotDoOfflineinCurrentStatusOfTransaction':\r\n toastMessage = 'Can not perform offline transaction in current status.';\r\n break;\r\n\r\n case 'Key_OfflineTransactionNotSupported':\r\n toastMessage = 'Offline transaction not supported.';\r\n break;\r\n\r\n case 'Key_CardNoNotMatchedWithOriginalTransaction':\r\n toastMessage = 'Card number does not match with original transaction.';\r\n break;\r\n\r\n // Added on 15-01-2018 as per list provided by back end team\r\n case 'key_FeeCanNotBeModifyAsIsItUsedInRatePlan':\r\n toastMessage = 'Fee can not be modify as it is used in rate plan.';\r\n break;\r\n\r\n case 'key_FeeCanNotBeDeleteAsIsItUsedInRatePlan':\r\n toastMessage = 'Fee can not be delete as it is used in rate plan.';\r\n break;\r\n\r\n case 'key_CanNotModifySystemFee':\r\n toastMessage = 'Can not modify system fee.';\r\n break;\r\n\r\n case 'key_CanNotModifyChannelType':\r\n toastMessage = 'Can not modify channel type.';\r\n break;\r\n\r\n case 'Key_InvalidAddress1':\r\n toastMessage = 'Invalid address1.';\r\n break;\r\n\r\n case 'Key_CustomerNameCannotBeBlank':\r\n toastMessage = 'Patient name cannot be blank.';\r\n break;\r\n\r\n case 'Key_CustomerFirstNameCannotBeBlank':\r\n toastMessage = 'Patient first name can not be blank.';\r\n break;\r\n\r\n case 'Key_CustomerLastNameCannotBeBlank':\r\n toastMessage = 'Patient last name can not be blank.';\r\n break;\r\n\r\n case 'Key_CustomerCompanyNameCannotBeBlank':\r\n toastMessage = 'Patient company name cannot be blank.';\r\n break;\r\n\r\n case 'Key_CustomerDayTimePhoneCannotBeBlank':\r\n toastMessage = 'Patient phone cannot be blank.';\r\n break;\r\n\r\n case 'Key_CustomerAddress1CannotBeBlank':\r\n toastMessage = 'Patient address1 cannot be blank.';\r\n break;\r\n\r\n case 'Key_CustomerCityCannotBeBlank':\r\n toastMessage = 'Patient city cannot be blank.';\r\n break;\r\n\r\n case 'Key_CustomerPostalCodeCannotBeBlank':\r\n toastMessage = 'Patient postal code cannot be blank.';\r\n break;\r\n\r\n case 'Key_InvalidAlternativePhoneNumber':\r\n toastMessage = 'Invalid alternative phone number.';\r\n break;\r\n\r\n case 'Key_InvalidMobileNumber':\r\n toastMessage = 'Invalid mobile number.';\r\n break;\r\n\r\n case 'Key_InvalidTitle':\r\n toastMessage = 'Invalid title.';\r\n break;\r\n\r\n case 'Key_CustomerEmailAlreadyExists':\r\n toastMessage = 'Email already exists.';\r\n break;\r\n\r\n case 'Key_InvalidCreditCardNumber':\r\n toastMessage = 'Invalid credit card number.';\r\n break;\r\n case 'Key_Failed_UpdateEligibility':\r\n toastMessage = 'Error while checking eligibility';\r\n break;\r\n case 'Key_CreditCardNumberIsNotOfTypeVisa':\r\n toastMessage = 'Credit card number is not of type visa.';\r\n break;\r\n\r\n case 'Key_CreditCardNumberIsNotOfTypeMasterCard':\r\n toastMessage = 'Credit card number is not of type master card.';\r\n break;\r\n\r\n case 'Key_CreditCardNumberIsNotOfTypeAMEX':\r\n toastMessage = 'Credit card number is not of type amex.';\r\n break;\r\n\r\n case 'Key_CreditCardNumberIsNotOfTypeDiscover':\r\n toastMessage = 'Credit card number is not of type discover.';\r\n break;\r\n\r\n case 'Key_CreditCardNumberIsNotOfTypeDiners':\r\n toastMessage = 'Credit card number is not of type diners.';\r\n break;\r\n\r\n case 'Key_CreditCardNumberIsNotOfTypeJCB':\r\n toastMessage = 'Credit card number is not of type jcb.';\r\n break;\r\n\r\n case 'Key_InActiveMerchant':\r\n toastMessage = 'Merchant is inactive.';\r\n break;\r\n\r\n case 'Key_InValidBankName':\r\n toastMessage = 'Invalid bank name.';\r\n break;\r\n\r\n case 'Key_InValidInValidSSN':\r\n toastMessage = 'Invalid SSN.';\r\n break;\r\n\r\n case 'Key_AllowedTransactionTypeNotSet':\r\n toastMessage = 'Allowed transaction type not set.';\r\n break;\r\n\r\n case 'Key_ChannelSubTypeNotSet':\r\n toastMessage = 'Channel sub type not set.';\r\n break;\r\n\r\n case 'Key_AmountCanNotBeEmpty':\r\n toastMessage = 'Amount can not be empty.';\r\n break;\r\n\r\n case 'Key_NotificationTemplateIdCanNotBeEmpty':\r\n toastMessage = 'Notification template id can not be empty.';\r\n break;\r\n\r\n case 'Key_NotificationTemplateIdNumericOnly':\r\n toastMessage = 'Notification template id numeric only.';\r\n break;\r\n\r\n case 'Key_GracePeriodNumericOnly':\r\n toastMessage = 'Grace period numeric only.';\r\n break;\r\n\r\n case 'Key_ScheduleNameCanNotBeEmpty':\r\n toastMessage = 'Schedule name can not be empty.';\r\n break;\r\n\r\n case 'Key_InvalidScheduleName':\r\n toastMessage = 'Invalid schedule name.';\r\n break;\r\n\r\n case 'Key_InvalidScheduleEndDate':\r\n toastMessage = 'Invalid schedule end date.';\r\n break;\r\n\r\n case 'Key_InvalidResellerAdminUser':\r\n toastMessage = 'Invalid reseller admin user.';\r\n break;\r\n\r\n case 'key_InvalidCountryFailAction':\r\n toastMessage = 'Invalid country fail action.';\r\n break;\r\n\r\n case 'key_InvalidIpAddressFailAction':\r\n toastMessage = 'Invalid IP address fail action.';\r\n break;\r\n\r\n case 'key_InvalidInvalidCountryCode':\r\n toastMessage = 'Invalid country code.';\r\n break;\r\n\r\n case 'Key_InvalidCountryId':\r\n toastMessage = 'Invalid country id.';\r\n break;\r\n\r\n case 'Key_WeeklyDebitTransactionCountExceeded':\r\n toastMessage = 'Weekly debit transaction count exceeded.';\r\n break;\r\n\r\n case 'Key_WeeklyDebitTransactionAmountExceeded':\r\n toastMessage = 'Weekly debit transaction amount exceeded.';\r\n break;\r\n\r\n case 'Key_MonthlyDebitTransactionCountExceeded':\r\n toastMessage = 'Monthly debit transaction count exceeded.';\r\n break;\r\n\r\n case 'Key_MonthlyDebitTransactionAmountExceeded':\r\n toastMessage = 'Monthly debit transaction amount exceeded.';\r\n break;\r\n\r\n case 'Key_DailyDebitTransactionCountExceeded':\r\n toastMessage = 'Daily debit transaction count exceeded.';\r\n break;\r\n\r\n case 'Key_DailyDebitTransactionAmountExceeded':\r\n toastMessage = 'Daily debit transaction amount exceeded.';\r\n break;\r\n\r\n case 'Key_WeeklyCreditTransactionCountExceeded':\r\n toastMessage = 'Weekly credit transaction count exceeded.';\r\n break;\r\n\r\n case 'Key_WeeklyCreditTransactionAmountExceeded':\r\n toastMessage = 'Weekly credit transaction amount exceeded.';\r\n break;\r\n\r\n case 'Key_MonthlyCreditTransactionCountExceeded':\r\n toastMessage = 'Monthly credit transaction count exceeded.';\r\n break;\r\n\r\n case 'Key_MonthlyCreditTransactionAmountExceeded':\r\n toastMessage = 'Monthly credit transaction amount exceeded.';\r\n break;\r\n\r\n case 'Key_DailyCreditTransactionCountExceeded':\r\n toastMessage = 'Daily credit transaction count exceeded.';\r\n break;\r\n\r\n case 'Key_DailyCreditTransactionAmountExceeded':\r\n toastMessage = 'Daily credit transaction amount exceeded.';\r\n break;\r\n\r\n case 'Key_MaximumAmoutExceeded':\r\n toastMessage = 'Maximum amout exceeded.';\r\n break;\r\n\r\n case 'Key_WeeklyTransactionCountShouldNotBeNegative':\r\n toastMessage = 'Weekly transaction count should not be negative.';\r\n break;\r\n\r\n case 'Key_WeeklyTransactionAmountShouldNotBeNegative':\r\n toastMessage = 'Weekly transaction amount should not be negative.';\r\n break;\r\n\r\n case 'Key_MonthlyTransactionCountShouldNotBeNegative':\r\n toastMessage = 'Monthly transaction count should not be negative.';\r\n break;\r\n\r\n case 'Key_MonthlyTransactionAmountShouldNotBeNegative':\r\n toastMessage = 'Monthly transaction amount should not be negative.';\r\n break;\r\n\r\n case 'Key_DailyTransactionCountShouldNotBeNegative':\r\n toastMessage = 'Daily transaction count should not be negative.';\r\n break;\r\n\r\n case 'Key_DailyTransactionAmountShouldNotBeNegative':\r\n toastMessage = 'Daily transaction amount should not be negative.';\r\n break;\r\n\r\n case 'Key_MaximumAmoutShouldNotBeNegative':\r\n toastMessage = 'Maximum amout should not be negative.';\r\n break;\r\n\r\n // need to confirm with jaya\r\n case 'Key_DailyTransactionAmountExceedsTheLimitForGlobal':\r\n case 'Key_DailyTransactionAmountExceedsTheLimitForUser':\r\n case 'Key_DailyTransactionAmountExceedsTheLimitForReseller':\r\n toastMessage = 'Daily transaction amount exceeds the limit.';\r\n break;\r\n\r\n case 'Key_WeeklyTransactionAmountExceedsTheLimitForGlobal':\r\n case 'Key_WeeklyTransactionAmountExceedsTheLimitForUser':\r\n case 'Key_WeeklyTransactionAmountExceedsTheLimitForReseller':\r\n toastMessage = 'Weekly transaction amount exceeds the limit.';\r\n break;\r\n\r\n case 'Key_MonthlyTransactionAmountExceedsTheLimitForGlobal':\r\n case 'Key_MonthlyTransactionAmountExceedsTheLimitForUser':\r\n case 'Key_MonthlyTransactionAmountExceedsTheLimitForReseller':\r\n toastMessage = 'Monthly transaction amount exceeds the limit.';\r\n break;\r\n\r\n case 'Key_MaximumTransactionAmountExceedsTheLimitForGlobal':\r\n case 'Key_MaximumTransactionAmountExceedsTheLimitForUser':\r\n case 'Key_MaximumTransactionAmountExceedsTheLimitForReseller':\r\n toastMessage = 'Maximum transaction amount exceeds the limit.';\r\n break;\r\n\r\n case 'Key_DailyTransactionCountExceedsTheLimitForGlobal':\r\n case 'Key_DailyTransactionCountExceedsTheLimitForUser':\r\n case 'Key_DailyTransactionCountExceedsTheLimitForReseller':\r\n toastMessage = 'Daily transaction count exceeds the limit.';\r\n break;\r\n\r\n case 'Key_WeeklyTransactionCountExceedsTheLimitForGlobal':\r\n case 'Key_WeeklyTransactionCountExceedsTheLimitForUser':\r\n case 'Key_WeeklyTransactionCountExceedsTheLimitForReseller':\r\n toastMessage = 'Weekly transaction count exceeds the limit.';\r\n break;\r\n\r\n case 'Key_MonthlyTransactionCountExceedsTheLimitForGlobal':\r\n case 'Key_MonthlyTransactionCountExceedsTheLimitForUser':\r\n case 'Key_MonthlyTransactionCountExceedsTheLimitForReseller':\r\n toastMessage = 'Monthly transaction count exceeds the limit.';\r\n break;\r\n\r\n case 'Key_TemplateNameCannotBeBlank':\r\n toastMessage = 'Template name can not be blank.';\r\n break;\r\n\r\n case 'Key_FromEmailCannotBeBlank':\r\n toastMessage = 'From email can not be blank.';\r\n break;\r\n\r\n case 'Key_ToEmailCannotBeBlank':\r\n toastMessage = 'To email can not be blank.';\r\n break;\r\n\r\n case 'Key_SubjectCannotBeBlank':\r\n toastMessage = 'Subject can not be blank.';\r\n break;\r\n\r\n case 'Key_SmtpServerNotConfigured':\r\n toastMessage = 'Smtp server not configured.';\r\n break;\r\n\r\n case 'Key_TemplateInUse':\r\n toastMessage = 'Template in use.';\r\n break;\r\n\r\n case 'Key_ReferenceCannotBeBlank':\r\n toastMessage = 'Reference can not be blank.';\r\n break;\r\n\r\n case 'key_ChannelTypeCannotBeBlank':\r\n toastMessage = 'Channel type can not be blank.';\r\n break;\r\n\r\n case 'key_InvalidFieldsSpecifiedInTemplate':\r\n toastMessage = 'Invalid fields specified in template.';\r\n break;\r\n\r\n case 'Key_InvalidTemplateName':\r\n toastMessage = 'Invalid template name.';\r\n break;\r\n\r\n case 'Key_InvalidTemplateOrCategoryId':\r\n toastMessage = 'Invalid template or category id.';\r\n break;\r\n\r\n case 'Key_InvalidFromEmail':\r\n toastMessage = 'Invalid from email.';\r\n break;\r\n\r\n case 'Key_InvalidToEmail':\r\n toastMessage = 'Invalid to email.';\r\n break;\r\n\r\n case 'Key_InvalidSubject':\r\n toastMessage = 'Invalid subject.';\r\n break;\r\n\r\n case 'Key_EMailshouldnotbenull':\r\n toastMessage = 'Email should not be blank.';\r\n break;\r\n\r\n case 'Key_EmailFormatisnotvalid':\r\n toastMessage = 'Email format is not valid.';\r\n break;\r\n\r\n case 'Key_InvalidAddressLine1':\r\n toastMessage = 'Invalid address line1.';\r\n break;\r\n\r\n case 'Key_InvalidProvisionedData':\r\n toastMessage = 'Invalid provisioned data.';\r\n break;\r\n\r\n case 'Key_InvalidEndDate':\r\n toastMessage = 'Invalid end date.';\r\n break;\r\n\r\n case 'Key_InvalidSubTotal':\r\n toastMessage = 'Invalid subtotal.';\r\n break;\r\n\r\n case 'Key_TotalNumberOfPaymentsCannotBeEmpty':\r\n toastMessage = 'Total number of payments can not be empty.';\r\n break;\r\n\r\n case 'Key_InvalidCustomerAccount':\r\n toastMessage = 'Invalid patient account.';\r\n break;\r\n\r\n case 'Key_AlreadyActivated':\r\n toastMessage = 'Already activated.';\r\n break;\r\n\r\n case 'Key_CannotAdjustTransactionNoResultFound':\r\n toastMessage = 'Can not adjust transaction no result found.';\r\n break;\r\n\r\n case 'Key_CannotAdjustCapturedTransaction':\r\n toastMessage = 'Can not adjust captured transaction.';\r\n break;\r\n\r\n case 'Key_RefundAmountCanNotExceedOriginalAmount':\r\n toastMessage = 'Refund amount can not exceed original amount.';\r\n break;\r\n\r\n case 'Key_TransactionCanNotBeAdjustedInCurrentStatus':\r\n toastMessage = 'Transaction can not be adjusted in current status.';\r\n break;\r\n\r\n case 'Key_BadRequest':\r\n toastMessage = 'Bad request.';\r\n break;\r\n\r\n case 'Key_CannotRefundCreditTransaction':\r\n toastMessage = 'Can not refund credit transaction.';\r\n break;\r\n\r\n case 'Key_CanRefundOnlySaleTransaction':\r\n toastMessage = 'You can refund only sale transaction.';\r\n break;\r\n\r\n case 'Key_InvalidPreAuthCode':\r\n toastMessage = 'Invalid pre auth code.';\r\n break;\r\n\r\n case 'Key_InvalidReferenceTransactionId':\r\n toastMessage = 'Invalid reference transaction id.';\r\n break;\r\n\r\n case 'Key_InvalidCVDataLength':\r\n toastMessage = 'Invalid CVV length.';\r\n break;\r\n\r\n case 'Key_InvalidInvoiceNo':\r\n toastMessage = 'Invalid invoice no.';\r\n break;\r\n\r\n // Added to handle StatusCode=404\r\n\r\n case 'Key_InvalidReseller':\r\n toastMessage = 'Invalid reseller.';\r\n break;\r\n\r\n case 'Key_InvalidCustomer':\r\n toastMessage = 'Invalid patient.';\r\n break;\r\n\r\n case 'Key_InvalidInvoice':\r\n toastMessage = 'Invalid invoice.';\r\n break;\r\n\r\n case 'Key_InvalidMerchant':\r\n toastMessage = 'Invalid merchant.';\r\n break;\r\n\r\n case 'Key_InvalidPaymentForm':\r\n toastMessage = 'Invalid payment form.';\r\n break;\r\n\r\n case 'Key_InvalidChannel':\r\n toastMessage = 'Invalid channel.';\r\n break;\r\n\r\n case 'Key_InvalidTransaction':\r\n toastMessage = 'Invalid transaction.';\r\n break;\r\n\r\n case 'Key_InValidRatePlan':\r\n toastMessage = 'Invalid rate plan.';\r\n break;\r\n\r\n case 'Key_InValidFee':\r\n toastMessage = 'Invalid fee.';\r\n break;\r\n\r\n case 'Key_InvalidUser':\r\n toastMessage = 'Invalid user.';\r\n break;\r\n\r\n case 'Key_InvalidVelocity':\r\n toastMessage = 'Invalid velocity.';\r\n break;\r\n\r\n case 'Key_InvalidCountries':\r\n toastMessage = 'Invalid countries.';\r\n break;\r\n\r\n case 'Key_UserNotFound':\r\n toastMessage = 'User not found.';\r\n break;\r\n\r\n case 'Key_RoleNotFound':\r\n toastMessage = 'Role not found.';\r\n break;\r\n\r\n case 'Key_OperationNotFound':\r\n toastMessage = 'Operation not found.';\r\n break;\r\n\r\n case 'Key_NotificationTemplateNotFound':\r\n toastMessage = 'Notification template not found.';\r\n break;\r\n\r\n case 'Key_InvalidNotificationTemplate':\r\n toastMessage = 'Invalid notification template.';\r\n break;\r\n\r\n case 'Key_NotificationCategoryNotFound':\r\n toastMessage = 'Notification category not found.';\r\n break;\r\n\r\n case 'Key_PaymentFormNotFound':\r\n toastMessage = 'Payment form not found.';\r\n break;\r\n\r\n case 'Key_FromAmountCantBeGreaterToAmount':\r\n toastMessage = 'Min amount can not be greater than max amount.';\r\n break;\r\n\r\n case 'Key_EnterNonNegativeAmount':\r\n toastMessage = 'Amount should be greater than zero.';\r\n break;\r\n\r\n case 'Key_InvalidCustomerList':\r\n toastMessage = 'Invalid patient list';\r\n break;\r\n\r\n case 'Key_InvalidCcSettlementTimeFormat':\r\n toastMessage = 'Invalid time format of cc settlement.';\r\n break;\r\n\r\n case 'Key_InvalidCcSettlementTime':\r\n toastMessage = 'Invalid cc settlement time.';\r\n break;\r\n\r\n case 'Key_Unauthorized':\r\n toastMessage = 'Unauthorized.';\r\n break;\r\n\r\n case 'Key_InvalidName':\r\n toastMessage = 'Invalid custom plan name';\r\n break;\r\n\r\n case 'Key_InvalidProductsAndServices':\r\n toastMessage = 'Invalid products and services';\r\n break;\r\n\r\n case 'Key_InvalidFrequencyParam':\r\n toastMessage = 'Frequency parameter is invalid';\r\n break;\r\n\r\n case 'Key_InvalidTotalAmount':\r\n toastMessage = 'Total amount is invalid';\r\n break;\r\n\r\n case 'Key_InvalidNoOfPayments':\r\n toastMessage = 'Number of payments are invalid';\r\n break;\r\n\r\n case 'Key_InvalidInvalidPaymentAmount':\r\n toastMessage = 'Payment amount is invalid';\r\n break;\r\n\r\n case 'Key_CustomPalnNameAlreadyExists':\r\n toastMessage = 'Custom plan name already exists.';\r\n break;\r\n\r\n case 'Key_MerchantAdminUserMustBeMoreThan6Characters':\r\n toastMessage = 'Merchant admin Username must be more than 6 characters.';\r\n break;\r\n\r\n case 'Key_ResellerAdminUserMustBeMoreThan6Characters':\r\n toastMessage = 'Reseller admin Username must be more than 6 characters.';\r\n break;\r\n\r\n case 'Key_CannotCreateSubReseller':\r\n toastMessage = 'Can not create subreseller.';\r\n break;\r\n\r\n case 'Key_InvalidProduct':\r\n toastMessage = 'Product is not valid.';\r\n break;\r\n\r\n case 'Key_ProductNotFound':\r\n toastMessage = 'Products and Services not found.';\r\n break;\r\n\r\n case 'Key_ProductNameCannotBeBlank':\r\n toastMessage = 'Product name can not be blank.';\r\n break;\r\n\r\n case 'Key_UnitPriceCannotBeBlank':\r\n toastMessage = 'Unit price can not be blank.';\r\n break;\r\n\r\n case 'Key_UnitPriceNotNumber':\r\n toastMessage = 'Please enter valid unit price.';\r\n break;\r\n\r\n case 'Key_UnitPriceShouldBePositiveNumber':\r\n toastMessage = 'Please enter valid unit price.';\r\n break;\r\n\r\n case 'Key_InvalidDiscountType':\r\n toastMessage = 'Discount type is not valid.';\r\n break;\r\n\r\n case 'Key_InvalidDiscount':\r\n toastMessage = 'Discount is not valid.';\r\n break;\r\n\r\n case 'Key_DiscountToBeGreaterThanZero':\r\n toastMessage = 'Please enter discount greater than 0.';\r\n break;\r\n\r\n case 'DiscountCantBeGreaterThanUnitPrice':\r\n toastMessage = 'Discount can not be greater than unit price.';\r\n break;\r\n\r\n case 'NameExists':\r\n toastMessage = 'Name already exists.';\r\n break;\r\n\r\n case 'Key_UnAuthorisedParent':\r\n toastMessage = 'Unauthorised Parent.';\r\n break;\r\n\r\n case 'Key_InvoiceAlreadyFinalized':\r\n toastMessage = 'Invoice already finalized.';\r\n break;\r\n\r\n case 'Key_InvalidInvoiceId':\r\n toastMessage = 'Invalid invoice id.';\r\n break;\r\n\r\n case 'Key_CustomerNotFound':\r\n toastMessage = 'Patient not found.';\r\n break;\r\n\r\n case 'Key_CustomerNotEditable':\r\n toastMessage = 'Patient not editable';\r\n break;\r\n\r\n case 'Key_InvoiceNotFound':\r\n toastMessage = 'Invoice not found.';\r\n break;\r\n\r\n case 'Key_DiscountTypeNotNumber':\r\n toastMessage = 'Discount type not number.';\r\n break;\r\n\r\n case 'Key_FinalAmountNotNumber':\r\n toastMessage = 'Final amount not number.';\r\n break;\r\n\r\n case 'Key_SubTotalNotNumber':\r\n toastMessage = 'SubTotal not number.';\r\n break;\r\n\r\n case 'Key_FinalAmountNotToBeNegative':\r\n toastMessage = 'Final amount should not be negative.';\r\n break;\r\n\r\n case 'Key_SubTotalNotToBeNegative':\r\n toastMessage = 'SubTotal should not be negative.';\r\n break;\r\n\r\n case 'Key_InvoiceDiscountNotToBeMoreThanProductTotal':\r\n toastMessage = 'Discount Amount should not be greater than total amount.';\r\n break;\r\n\r\n case 'Key_DiscountNotNumber':\r\n toastMessage = 'Discount not number.';\r\n break;\r\n\r\n case 'Key_DiscountCantBeGreaterThanToUnitPrice':\r\n toastMessage = 'Discount cannnot be greater than Unit Price';\r\n break;\r\n case 'Key_DiscountCantBeGreatThanHundered':\r\n toastMessage = 'Discount cannot be greater than 100%';\r\n break;\r\n\r\n case 'Key_DiscountNotToBeNegative':\r\n toastMessage = 'Discount should not be negative.';\r\n break;\r\n case 'Key_DiscountCantBeGreaterThanHundered':\r\n toastMessage = 'Discount should not be greater than hundered.';\r\n break;\r\n\r\n case 'Key_DiscountCantBeGreaterThanSubTotal':\r\n toastMessage = 'Discount should not be greater than SubTotal.';\r\n break;\r\n case 'Key_ToEmailIdNotValid':\r\n toastMessage = 'Invalid To email.';\r\n break;\r\n\r\n case 'Key_CCEmailNotValid':\r\n toastMessage = 'Invalid CC email.';\r\n break;\r\n\r\n case 'Key_DueDateNotValid':\r\n toastMessage = 'Invalid Due date.';\r\n break;\r\n\r\n case 'Key_InvoiceDateNotValid':\r\n toastMessage = 'Invalid Invoice date.';\r\n break;\r\n\r\n case 'Key_CustomerIdNotValid':\r\n toastMessage = 'Invalid patient id.';\r\n break;\r\n case 'Key_RecurringPaymentCancelled':\r\n toastMessage = 'Payment plan cancelled successfully.';\r\n break;\r\n case 'Key_RecurringPaymentCannotCancelled':\r\n toastMessage = 'Payment plan cannot be cancelled.';\r\n break;\r\n case 'Key_RecurringPaymentAlreadyCancelled':\r\n toastMessage = 'Payment plan already cancelled.';\r\n break;\r\n case 'Key_RecurringPaymentNotBelogsToProvider':\r\n toastMessage = 'Payment plan not belongs to provider.';\r\n break;\r\n case 'Key_AuthorizeModeNotValid':\r\n toastMessage = 'Authorize mode not valid.';\r\n break;\r\n case 'Key_AuthorizeModeNotFound':\r\n toastMessage = 'Authorize mode not found.';\r\n break;\r\n case 'Key_TaxPercentageNotValid':\r\n toastMessage = 'Tax percentage not valid.';\r\n break;\r\n case 'Key_InvalidToken':\r\n toastMessage = 'Account is Invalid. Please use valid account.';\r\n break;\r\n case 'Key_InvalidScheduledDate':\r\n toastMessage = 'Scheduled Date not valid.';\r\n break;\r\n case 'Key_InvalidFrequencyAndTransactionType':\r\n toastMessage = 'Invalid Frequency and Transaction Type';\r\n break;\r\n case 'Key_CurrentDateIsNotApplicable':\r\n toastMessage = 'CurrentDate is not applicable';\r\n break;\r\n case 'Key_TaxPercentNotNumber':\r\n toastMessage = 'Tax Percent not number';\r\n break;\r\n case 'Key_InvalidRecurringPayment':\r\n toastMessage = 'Payment invalid.';\r\n break;\r\n case 'Key_InactivePaymentAccount':\r\n toastMessage = 'Account is inactive.';\r\n break;\r\n case 'Key_PaymentAccountNotBelongsToPatient':\r\n toastMessage = 'Payment account not belongs to Patient';\r\n break;\r\n case 'Key_PaymentAccountMandatory':\r\n toastMessage = 'Payment Account Mandatory';\r\n break;\r\n case 'Key_PaymentAccountNotFound':\r\n toastMessage = 'Payment Account not found';\r\n break;\r\n case 'Key_RecurringNotBelongsToPatient':\r\n toastMessage = 'Payment plan not belongs to Patient';\r\n break;\r\n case 'Key_RecurringPaymentAlreadyCompleted':\r\n toastMessage = 'Payment Already Completed';\r\n break;\r\n case 'Key_Failed_UpdatePaymentAccountToRecurringPayment':\r\n toastMessage = 'Failed to update Payment account';\r\n break;\r\n case 'Key_scheduleDateShouldBeFutureDate':\r\n toastMessage = 'Schedule Date should be future date';\r\n break;\r\n case 'Key_SamePaymentAccountCannotBeUpdated':\r\n toastMessage = 'Same Payment Account cannot be updated';\r\n break;\r\n case 'Key_FrequencyNotInRange':\r\n toastMessage = 'Frequency not in Range';\r\n break;\r\n case 'Key_NumberOfPaymentsNotNumber':\r\n toastMessage = 'Number of payments not number';\r\n break;\r\n case 'Key_ScheduleDateNotInRange':\r\n toastMessage = 'Schedule Date not in range';\r\n break;\r\n case 'Key_CustomerNameNotString':\r\n toastMessage = 'Invalid Patient Name.';\r\n break;\r\n case 'Key_TaxAmountNotNumber':\r\n toastMessage = 'TaxAmount should be number.';\r\n break;\r\n case 'Key_FirstTransationDateInPast':\r\n toastMessage = 'First transation date in past.';\r\n break;\r\n case 'Key_AccountTypeCannotBeBlank':\r\n toastMessage = 'AccountType cannot be blank.';\r\n break;\r\n case 'Key_FirstTransationDateShouldBeFutureDate':\r\n toastMessage = 'First transation date should be future date.';\r\n break;\r\n case 'Key_DownPaymentExceedsTotalAmount':\r\n toastMessage = 'Down payment exceeds total amount.';\r\n break;\r\n case 'Key_UpdateLimitExceeded':\r\n toastMessage = 'Update limit exceeded.';\r\n break;\r\n case 'Key_FirstTransactionDateNotValid':\r\n toastMessage = 'First transaction date not valid.';\r\n break;\r\n case 'Key_FrequencyParamCannotBeBlank':\r\n toastMessage = 'Frequency cannot be blank.';\r\n break;\r\n case 'Key_FirstTransationExceeds30DaysLimit':\r\n toastMessage = 'First transation date exceeds 30 days limit.';\r\n break;\r\n case 'Key_TaxAmountNotToBeNegative':\r\n toastMessage = 'TaxAmount should not be negative.';\r\n break;\r\n\r\n case 'Key_InvalidPaymentStatus':\r\n toastMessage = 'Invalid payment status';\r\n break;\r\n\r\n case 'Key_InvalidInvoiceStatus':\r\n toastMessage = 'Invalid invoice status';\r\n break;\r\n\r\n case 'Key_PaymentFormIdNotValid':\r\n toastMessage = 'Invalid Payment Form Id.';\r\n break;\r\n\r\n case 'Key_PaymentFormNotValid':\r\n toastMessage = 'Invalid PaymentForm.';\r\n break;\r\n\r\n case 'Key_ProductNotToBeDuplicate':\r\n toastMessage = 'Duplicate products are not allowed.';\r\n break;\r\n\r\n case 'Key_ProductQuantityToBeGreaterThanZero':\r\n toastMessage = 'Product quantity should be greater than Zero.';\r\n break;\r\n\r\n case 'Key_ProductIdNotValid':\r\n toastMessage = 'Invalid ProductId.';\r\n break;\r\n\r\n case 'Key_DueDateTobeGreaterThanCurrentDate':\r\n toastMessage = 'DueDate should be greater than current date';\r\n break;\r\n\r\n case 'Key_FromInvoiceDateNotValid':\r\n toastMessage = 'Invalid From Date.';\r\n break;\r\n\r\n case 'Key_ToInvoiceDateNotValid':\r\n toastMessage = 'Invalid To Date.';\r\n break;\r\n case 'Key_InvoiceAmountNotNumber':\r\n toastMessage = 'Invalid Invoice Amount.';\r\n break;\r\n\r\n case 'Key_InvalidPaymentStatusWhenInvoiceStatusisDraft':\r\n toastMessage = 'Invalid payment status when invoice status is draft.';\r\n break;\r\n\r\n case 'Key_InvoiceNotEditable':\r\n toastMessage = 'Invoice not allowed to edit.';\r\n break;\r\n\r\n case 'Key_FromInvoiceDateTobeGreaterThanToInvoiceDate':\r\n toastMessage = 'From Invoice Date To be Greater Than To Invoice Date';\r\n break;\r\n\r\n case 'Key_InvoiceUpdatedToFinal':\r\n toastMessage = 'Invoice Updated To Final';\r\n break;\r\n case 'Key_InvoiceCannotBeDeleted':\r\n toastMessage = 'Invoice Cannot Be Deleted';\r\n break;\r\n case 'Key_InvoiceIsDeleted':\r\n toastMessage = 'Invoice Is Deleted';\r\n break;\r\n case 'Key_FromInvoiceAmountNotNumber':\r\n toastMessage = 'From Invoice Amount Not Number';\r\n break;\r\n case 'Key_ToInvoiceAmountNotNumber':\r\n toastMessage = 'To Invoice Amount Not Number';\r\n break;\r\n case 'Key_ToInvoiceAmountToBeGreaterThanFromInvoiceAmount':\r\n toastMessage = 'To Invoice Amount ToBe Greater Than From Invoice Amount';\r\n break;\r\n case 'Key_StartDateNotValid':\r\n toastMessage = 'Start Date Not Valid';\r\n break;\r\n case 'Key_RecurringNameCannotBeEmpty':\r\n toastMessage = 'Payment Plan Name Cannot Be Empty';\r\n break;\r\n case 'Key_EndDateTobeGreaterThanCurrentDate':\r\n toastMessage = 'EndDate Tobe Greater Than CurrentDate';\r\n break;\r\n case 'Key_EndDateNotValid':\r\n toastMessage = 'End Date Not Valid';\r\n break;\r\n case 'Key_RecurringNameAlreadyExists':\r\n toastMessage = 'Payment Plan Name Already Exists';\r\n break;\r\n case 'Key_IsActiveTobeEqualtoOneorTwo':\r\n toastMessage = 'IsActive Tobe Equal to OneorTwo';\r\n break;\r\n case 'Key_FrequencyTobeInRangeofZeroToFour':\r\n toastMessage = 'Frequency Tobe InRange of Zero To Four';\r\n break;\r\n case 'Key_InvoiceNotToBeActivatedWhenInvoiceStatusIsDraft':\r\n toastMessage = 'Invoice Not ToBe Activated When Invoice Status Is Draft';\r\n break;\r\n case 'Key_InvoiceisActivated':\r\n toastMessage = 'Invoice is Activated';\r\n break;\r\n case 'Key_NonEditableFormCannotBeCopied':\r\n toastMessage = 'Non editable form cannot be copied';\r\n break;\r\n case 'Key_FormCannotBeEditable':\r\n toastMessage = 'Form is non-editable. Please contact administrator to edit the form.';\r\n break;\r\n case 'Key_InvoiceCannotBeActivated':\r\n toastMessage = 'Invoice CannotBe Activated';\r\n break;\r\n case 'Key_DraftInvoiceCannotBeActivated':\r\n toastMessage = 'Draft Invoice CannotBe Activated';\r\n break;\r\n case 'Key_InvoiceNotToBeDeActivatedWhenInvoiceStatusIsDraft':\r\n toastMessage = 'Invoice Not ToBe DeActivated When InvoiceStatus Is Draft';\r\n break;\r\n case 'Key_InvoiceisDeActivated':\r\n toastMessage = 'Invoice is DeActivated';\r\n break;\r\n case 'Key_InvoiceCannotBeDeactivated':\r\n toastMessage = 'Invoice Cannot Be Deactivated';\r\n break;\r\n case 'Key_Draft Invoice CannotBe Deactivated':\r\n toastMessage = 'Draft Invoice CannotBe Deactivated';\r\n break;\r\n\r\n\r\n case 'Key_PaymentTermNotString':\r\n toastMessage = 'Payment Term Not String';\r\n break;\r\n case 'Key_PaymentTermExceededMaximumLength':\r\n toastMessage = 'PaymentTermExceededMaximumLength';\r\n break;\r\n case 'Key_PaymentTermCannotBeBlank':\r\n toastMessage = 'PaymentTermCannotBeBlank';\r\n break;\r\n\r\n // Add new exception keys above this line\r\n case 'User is not authorized to access this resource':\r\n toastMessage = 'User is not authorized to access this resource.';\r\n break;\r\n case 'Key_FacilityNameAlreadyExists':\r\n toastMessage = 'Facility name already exists';\r\n break;\r\n\r\n case 'User is not authorized to access ':\r\n toastMessage = 'User is not authorized to access this resource.';\r\n break;\r\n case 'Key_PatientNotFound':\r\n toastMessage = 'Patient Not Found';\r\n break;\r\n case 'Key_EmailIdNotValid':\r\n toastMessage = 'Invalid Email Id';\r\n break;\r\n case 'Key_DobNotValid':\r\n toastMessage = 'Dob Invalid';\r\n break;\r\n case 'Key_NpiNotValid':\r\n toastMessage = 'Npi Invalid';\r\n break;\r\n\r\n case 'Key_LastNameNotString':\r\n toastMessage = 'LastNameNotString';\r\n break;\r\n\r\n case 'Key_PhoneNotToBeNegative':\r\n toastMessage = 'PhoneNotToBeNegative';\r\n break;\r\n case 'Key_PostalCodeNumber':\r\n toastMessage = 'PostalCode only number allowed';\r\n break;\r\n case 'Key_PostalCodeNegative':\r\n toastMessage = 'PostalCode negative value not allowed';\r\n break;\r\n case 'Key_PostalCodeUptoTenDigitNumber':\r\n toastMessage = 'PostalCode upto 10 digit allowed ';\r\n break;\r\n case 'Key_InsurancePartnerIdNotValid':\r\n toastMessage = 'InsurancePartnerId Not Valid';\r\n break;\r\n case 'Key_GroupNoNumber':\r\n toastMessage = 'Group only Number allowed';\r\n break;\r\n case 'Key_GroupNoNegative':\r\n toastMessage = 'Group Negative not allowed';\r\n break;\r\n case 'Key_BinNoNumber':\r\n toastMessage = 'Bin only Number allowed';\r\n break;\r\n case 'Key_BinNegative':\r\n toastMessage = 'Bin Negative not allowed';\r\n break;\r\n case 'Key_IsInsuredNotValid':\r\n toastMessage = 'IsInsured Not Valid';\r\n break;\r\n case 'Key_RelationTobeInRangeofZeroToThree':\r\n toastMessage = 'Relationship To be In Range of Zero To Three';\r\n break;\r\n case 'Key_MrnAlreadyExists':\r\n toastMessage = 'MRN Already Exists';\r\n break;\r\n case 'Key_InsuranceIdNotString':\r\n toastMessage = 'InsuranceId not String';\r\n break;\r\n case 'Key_InsuranceDetailsDuplicate':\r\n toastMessage = 'Insurance Details Duplicate';\r\n break;\r\n\r\n case 'Key_InsurancePartnerNotFound':\r\n toastMessage = 'InsurancePartner Not Found';\r\n break;\r\n\r\n case 'Key_TitleCannotBeEmpty':\r\n toastMessage = 'Title cannot be empty';\r\n break;\r\n case 'Key_DescriptionCannotBeEmpty':\r\n toastMessage = 'Description cannot be empty';\r\n break;\r\n case 'Key_GroupNoNotNumber':\r\n toastMessage = 'Group No - only number allowed';\r\n break;\r\n case 'Key_BinNoNotNumber':\r\n toastMessage = 'Bin No - only number allowed';\r\n break;\r\n case 'Key_PolicyNoAllowsOnlyAlphaNumeric':\r\n toastMessage = 'Policy No - only AlphaNumeric allowed';\r\n break;\r\n case 'Key_GroupNoAllowsOnlyAlphaNumeric':\r\n toastMessage = 'Group No - only AlphaNumeric allowed';\r\n break;\r\n case 'Key_BinNoAllowsOnlyAlphaNumeric':\r\n toastMessage = 'Bin No - only AlphaNumeric allowed';\r\n break;\r\n case 'Key_PostalCodeNotValid':\r\n toastMessage = 'PostalCode Not Valid';\r\n break;\r\n case 'Key_PostalCodeUptoNineDigitNumber':\r\n toastMessage = 'PostalCode Upto 9 Digit';\r\n break;\r\n case 'Key_ProviderNameAlreadyExist':\r\n toastMessage = 'Provider Name already exist';\r\n break;\r\n case 'Key_NameNotString':\r\n toastMessage = 'Invalid Name';\r\n break;\r\n\r\n case 'Key_accountTypeTobeOneorTwo':\r\n toastMessage = 'AccountType is invalid';\r\n break;\r\n case 'Key_IsDefaultNotValid':\r\n toastMessage = 'IsDefault not Valid';\r\n break;\r\n case 'Key_CreditCardNumberAlreadyExists':\r\n toastMessage = 'CreditCard Number Already Exists';\r\n break;\r\n case 'Key_PaymentAccountActivated':\r\n toastMessage = 'Payment Account Activated';\r\n break;\r\n case 'Key_PaymentAccountCannotBeActivated':\r\n toastMessage = 'Payment Account Cannot Be Activated';\r\n break;\r\n case 'Key_PaymentAccountDeActivated':\r\n toastMessage = 'Payment Account Deactivated';\r\n break;\r\n case 'Key_PaymentAccountCannotBeDeActivated':\r\n toastMessage = 'Payment Account Cannot Be Deactivated';\r\n break;\r\n case 'Key_IsCheckingAccountNotValid':\r\n toastMessage = 'Checking Account Not Valid';\r\n break;\r\n case 'Key_SamePatientAddressNotValid':\r\n toastMessage = 'SameAsPatientAddress Not Valid';\r\n break;\r\n case 'Key_CreditCardShouldBeNumberValue':\r\n toastMessage = 'CreditCard: only Number allowed';\r\n break;\r\n case 'Key_InvalidBankAccountNo':\r\n toastMessage = 'Invalid Bank Account No';\r\n break;\r\n case 'Key_AccountNumberExists':\r\n toastMessage = 'Account Number already exists';\r\n break;\r\n case 'Key_EmailAlreadyExists':\r\n toastMessage = 'Email already exists';\r\n break;\r\n\r\n case 'Key_TransactionNotFound':\r\n toastMessage = 'Transaction not found';\r\n break;\r\n case 'Key_InvalidPatient':\r\n toastMessage = 'Invalid Patient';\r\n break;\r\n case 'Key_AppointmentDurationLessThanMinLimit':\r\n toastMessage = 'Duration is less than 1 mins.';\r\n break;\r\n case 'Key_InvalidFromDate':\r\n toastMessage = 'Start time is invalid';\r\n break;\r\n case 'Key_InvalidToDate':\r\n toastMessage = 'End time is invalid';\r\n break;\r\n case 'Key_InvalidAppointment':\r\n toastMessage = 'Appointment is invalid';\r\n break;\r\n case 'Key_AppointmentNotFound':\r\n toastMessage = 'Appointment not found';\r\n break;\r\n case 'Key_AppointmentCancelledSuccessfully':\r\n toastMessage = 'Appointment cancelled successfully';\r\n break;\r\n case 'Key_AppointmentCannotCancelled':\r\n toastMessage = 'Appointment cannot be cancel';\r\n break;\r\n case 'Key_AppointmentNotBelogsToProvider':\r\n toastMessage = 'Appointment not belong to provider';\r\n break;\r\n case 'Key_AppointmentNotBelongsToPatient':\r\n toastMessage = 'Appointment not belong to patient';\r\n break;\r\n case 'Key_ToDateInPast':\r\n toastMessage = 'Please select future end time';\r\n break;\r\n case 'Key_FromDateInPast':\r\n toastMessage = 'Please select future start time';\r\n break;\r\n case 'Key_AppointmentDurationExceededMaxLimit':\r\n toastMessage = 'Durantion should be less that 480 mins';\r\n break;\r\n case 'Key_FromDateExceededMaxDateAllowed':\r\n toastMessage = 'Appointment is not allowed for this date';\r\n break;\r\n case 'Key_Failed_UpdateAppointment':\r\n toastMessage = 'Update appointment failed';\r\n break;\r\n case 'Key_ReasonCannotBeBlank':\r\n toastMessage = 'Reason cannot be blank';\r\n break;\r\n case 'Key_FromDateAndToDateCannotBeSameAsExisting':\r\n toastMessage = 'Same start time and end time is not allowed';\r\n break;\r\n case 'Key_InvalidProvider':\r\n toastMessage = 'Invalid Provider';\r\n break;\r\n case 'Key_InActiveProvider':\r\n toastMessage = 'InActive Provider';\r\n break;\r\n case 'Key_InvalidPaymentAccount':\r\n toastMessage = 'Invalid Payment Account';\r\n break;\r\n case 'Key_InvalidNotes':\r\n toastMessage = 'Invalid Notes';\r\n break;\r\n\r\n case 'Key_InvalidInitiator':\r\n toastMessage = 'Invalid Initiator';\r\n break;\r\n case 'Key_IsDebitNotValid':\r\n toastMessage = 'IsDebit Not Valid';\r\n break;\r\n case 'Key_AmountNotNumber':\r\n toastMessage = 'Amount is Not a Number';\r\n break;\r\n case 'Key_AmountNotToBeNegative':\r\n toastMessage = 'Negative value not allowed for Amount';\r\n break;\r\n case 'Key_TotalAmountNotNumber':\r\n toastMessage = 'TotalAmount only Number allowed';\r\n break;\r\n case 'Key_TotalAmountNotToBeNegative':\r\n toastMessage = 'TotalAmount negative value not allowed';\r\n break;\r\n case 'Key_TaxNotNumber':\r\n toastMessage = 'Tax only number allowed';\r\n break;\r\n case 'Key_TaxNotToBeNegative':\r\n toastMessage = 'Negative Tax value not allowed';\r\n break;\r\n\r\n case 'Key_CardTypeNotString':\r\n toastMessage = 'CardType Not String';\r\n break;\r\n case 'Key_CardTypeCannotBeEmpty':\r\n toastMessage = 'CardType Cannot Be Empty';\r\n break;\r\n\r\n case 'Key_FirstNameNotString':\r\n toastMessage = 'FirstName Not String';\r\n break;\r\n\r\n case 'Key_PhoneShouldBeTenDigitNumber':\r\n toastMessage = 'Phone Should Be Ten Digit Number';\r\n break;\r\n\r\n case 'Key_PostalCodeEitherFiveDigitorNineDigitNumber':\r\n toastMessage = 'PostalCode Either Five Digit or Nine Digit Number';\r\n break;\r\n\r\n case 'Key_AddressLine1NotString':\r\n toastMessage = 'AddressLine1 Not String';\r\n break;\r\n case 'Key_AddressLine1CannotBeEmpty':\r\n toastMessage = 'AddressLine1 Cannot BeEmpty';\r\n break;\r\n case 'Key_PatientAlreadyLinkedToProvider':\r\n toastMessage = 'Patient Already Linked To Provider';\r\n break;\r\n case 'Key_CardHolderNameNotString':\r\n toastMessage = 'CardHolderName Not String';\r\n break;\r\n case 'Key_CardHolderNameCannotBeEmpty':\r\n toastMessage = 'CardHolderName Cannot Be Empty';\r\n break;\r\n\r\n case 'Key_PatientIdCannotBeBlank':\r\n toastMessage = 'PatientId Cannot Be Blank';\r\n break;\r\n case 'Key_PaymentAccountIdCannotBeBlank':\r\n toastMessage = 'Payment AccountId Cannot Be Blank';\r\n break;\r\n case 'Key_RecurringPaymentNotFound':\r\n toastMessage = 'Payment Plan Not Found';\r\n break;\r\n case 'Key_InvalidCustomerIdOrCustomerAccountId':\r\n toastMessage = 'Invalid Patient Or CustomerAccount';\r\n break;\r\n case 'Key_ProviderNotFound':\r\n toastMessage = 'Provider Not Found';\r\n break;\r\n case 'Key_InitatorCannotBeBlank':\r\n toastMessage = 'Initiator Cannot Be Blank';\r\n break;\r\n case 'Key_InitiatorCannotBeBlank':\r\n toastMessage = 'Initiator Cannot Be Blank';\r\n break;\r\n case 'Key_TotalAmountCannotBeBlank':\r\n toastMessage = 'TotalAmount Cannot Be Blank';\r\n break;\r\n\r\n case 'Key_CityNotValid':\r\n toastMessage = 'City not Valid';\r\n break;\r\n case 'Key_AddressLine1NotMoreThanThirty':\r\n toastMessage = 'AddressLine1 not more than 30';\r\n break;\r\n case 'Key_PaymentAccountInUse':\r\n toastMessage = 'This card cannot be deleted as it is associated with a payment plan. To remove card, please update payment plan to another payment method, then delete.';\r\n break;\r\n case 'Key_PaymentAccountCannotBeDeleted':\r\n toastMessage = 'Payment Account cannot be deleted';\r\n break;\r\n case 'Key_PaymentAccountDeleted':\r\n toastMessage = 'Payment Account Deleted';\r\n break;\r\n case 'Key_ErrorMailSend':\r\n toastMessage = 'Error in sending Mail';\r\n break;\r\n case 'Key_FirstTransDateInPast':\r\n toastMessage = 'First Transaction Date is in Past';\r\n break;\r\n case 'Key_InvalidOTP':\r\n toastMessage = 'Invalid OTP';\r\n break;\r\n case 'Key_OtpExpired':\r\n toastMessage = 'Your One Time Password is Expired. Please re-generate and try again';\r\n break;\r\n case 'Key_UserOptedOutFromSMS':\r\n toastMessage = 'User Opted Out from SMS';\r\n break;\r\n case 'Key_UserPhoneAndEmailNotLinked':\r\n toastMessage = 'Phone number and Email not linked';\r\n break;\r\n\r\n case 'Key_RemarksShoulNotBeEmpty':\r\n toastMessage = 'Reason should not be empty.';\r\n break;\r\n case 'Key_PhoneNumberCanbeOptedInAfter30days':\r\n toastMessage = 'You cannot opt in within 30 days of opting out. Please try again later';\r\n break;\r\n case 'Key_PatientDoesNotHavePhoneNumber':\r\n toastMessage = 'Patient does not have phone number added. Please try again later';\r\n break;\r\n case 'Key_InvalidLogoFormat':\r\n toastMessage = 'Invalid Logo format.';\r\n break;\r\n case 'Key_UnAuthorisedUserType':\r\n toastMessage = 'Usertype is unauthorised.';\r\n break;\r\n\r\n case 'Key_FromDateAndToDateNotSame':\r\n toastMessage = 'Start and end date are not matching with DB';\r\n break;\r\n case 'Key_PatientEmailNotAvailable':\r\n toastMessage = 'Patient email not available. Please update patient email.';\r\n break;\r\n case 'Key_AppointmentEmailSendSuccessfully':\r\n toastMessage = 'Email sent successfully';\r\n break;\r\n case 'Key_AppointmentEmailSendNotSuccessful':\r\n toastMessage = 'Error in sending Mail';\r\n break;\r\n\r\n case 'Key_PatientMobileNotAvailable':\r\n toastMessage = 'Patient mobile not available';\r\n break;\r\n case 'Key_PatientOptedOut':\r\n toastMessage = 'Patient is opted out. Notification not sent.';\r\n break;\r\n case 'Key_Failed_AddTag':\r\n toastMessage = 'Failed to add tag';\r\n break;\r\n case 'Key_InvalidTag':\r\n toastMessage = 'Tag is Invalid';\r\n break;\r\n case 'Key_TagNotToBeDuplicate':\r\n toastMessage = 'Tag already exists';\r\n break;\r\n case 'Key_TagNotToBeEmpty':\r\n toastMessage = 'Tag cannot be empty';\r\n break;\r\n case 'Key_TagShouldBeArrayofStrings':\r\n toastMessage = 'Should provide array of strings';\r\n break;\r\n case 'Key_TagShouldBeArray':\r\n toastMessage = 'Should provide array';\r\n break;\r\n case 'Key_TagAlreadyExists':\r\n toastMessage = 'Tag already exists';\r\n break;\r\n\r\n case 'Key_CptIdNotNumber':\r\n toastMessage = 'CptId is not a number';\r\n break;\r\n case 'Key_CptIdAlreadyExists':\r\n toastMessage = 'Cpt Id already exists';\r\n break;\r\n case 'Key_InvalidProviderSuffix':\r\n toastMessage = 'Provider Suffix is Invalid';\r\n break;\r\n case 'Key_IsOptInNotValid':\r\n toastMessage = 'OptIn value not valid';\r\n break;\r\n case 'Key_InvalidItemId':\r\n toastMessage = 'Invalid Item Id';\r\n break;\r\n case 'Key_ItemIdNotValid':\r\n toastMessage = 'Invalid Item Id';\r\n break;\r\n case 'Key_ItemNotFound':\r\n toastMessage = 'Product not found';\r\n break;\r\n case 'Key_ProductNameAlreadyExists':\r\n toastMessage = 'Product name already exists!';\r\n break;\r\n case 'Failed_AddItem':\r\n toastMessage = 'Error while adding Item';\r\n break;\r\n case 'Failed_UpdateItem':\r\n toastMessage = 'Error while updating Item';\r\n break;\r\n case 'Key_InsuranceNotFound':\r\n toastMessage = 'Insurance not found';\r\n break;\r\n case 'Key_InsuranceAlreadyLinked':\r\n toastMessage = 'Insurance already linked with Provider';\r\n break;\r\n case 'Key_InvalidInsurancePayerId':\r\n toastMessage = 'Invalid Insurance Id';\r\n break;\r\n case 'Key_AddressLineNotLessThanFive':\r\n toastMessage = 'Address should be atleast 5 character';\r\n break;\r\n case 'Key_CountryEitherOneorTwo':\r\n toastMessage = 'Country Should be either USA or Canada';\r\n break;\r\n case 'InsuranceNameAlreadyExists':\r\n toastMessage = 'Insurance name already Exists';\r\n break;\r\n case 'Key_Failed_AddInsurance':\r\n toastMessage = 'Error in adding Insurance';\r\n break;\r\n case 'Key_Failed_UpdateInsurance':\r\n toastMessage = 'Error in updating Insurance';\r\n break;\r\n case 'Key_InsuranceLinked':\r\n toastMessage = 'Insurance linked successfully';\r\n break;\r\n case 'Key_InsuranceLinkedError':\r\n toastMessage = 'Error in linking Insurance';\r\n break;\r\n case 'Key_PhoneNumberAlreadyOptedOut':\r\n toastMessage = 'Phone Number already opted out';\r\n break;\r\n case 'Key_InstallmentDateExceedsCardExpiryDate':\r\n toastMessage = 'Installment date exceeds card expiry date.';\r\n break;\r\n case 'Key_ScheduleTransactionDateExceedsCardExpiryDate':\r\n toastMessage = 'Schedule transaction date exceeds card expiry date.';\r\n break;\r\n case 'Key_LastInstallmentDateExceedsCardExpiryDate':\r\n toastMessage = 'Last installment date exceeds card expiry date.';\r\n break;\r\n case 'Key_DoctorLinkedToProvider':\r\n toastMessage = 'Provider linked to Provider';\r\n break;\r\n case 'Key_ErrorDoctorLinkedToProvider':\r\n toastMessage = 'Error in linking doctor to provider';\r\n break;\r\n case 'Key_Failed_UpdateDoctor':\r\n toastMessage = 'Error id updating the doctor';\r\n break;\r\n case 'Key_Failed_AddDoctor':\r\n toastMessage = 'Unable to addd Provider ';\r\n break;\r\n case 'Key_DoctorNotFound':\r\n toastMessage = 'Provider not found';\r\n break;\r\n case 'Key_InvalidDoctor':\r\n toastMessage = 'Provider is not valid';\r\n break;\r\n case 'Key_ScheduleTransactionDateNotValid':\r\n toastMessage = 'Invalid Scheduled traansaction date';\r\n break;\r\n case 'Key_CheckNumberShouldBeNumberValue':\r\n toastMessage = 'Check number should be numeric value';\r\n break;\r\n case 'Key_InvalidCheckNumber':\r\n toastMessage = 'Invalid check number';\r\n break;\r\n case 'Key_InvalidTransactionDate':\r\n toastMessage = 'Invalid transaction date';\r\n break;\r\n case 'Key_NumberOfPaymentsCannotbeLessThanOne':\r\n toastMessage = 'Number of Payments must be greater than zero';\r\n break;\r\n case 'Key_NumberOfPaymentsExceededMaximumLimit':\r\n toastMessage = 'Number of payment exceeds maximum limit';\r\n break;\r\n case 'Key_NumberOfPaymentsNotToBeNegative':\r\n toastMessage = 'Number of payments cannot be a negative value';\r\n break;\r\n case 'Key_NotValidTransactionDate':\r\n toastMessage = 'Invalid transaction date';\r\n break;\r\n case 'Key_TransationDateExceedsPastDateLimit':\r\n toastMessage = 'Transaction date exceeds past date limit';\r\n break;\r\n case 'Key_TransactionTypeCannotBeBlank':\r\n toastMessage = 'Transaction Type cannot be blank';\r\n break;\r\n case 'Key_ParamRequired':\r\n toastMessage = 'Error while checking doctor\\'s availability. Required field not available. Please contact administrator.';\r\n break;\r\n case 'Key_InvoicePayScheduled':\r\n toastMessage = 'Payment already scheduled!';\r\n break;\r\n case 'Key_QuantityNotNumber':\r\n toastMessage = 'Quantity not number';\r\n break;\r\n case 'Key_ItemNameChangeNotAllowed':\r\n toastMessage = 'Cannot change Item name!';\r\n break;\r\n case 'Key_ServiceIdNotFound':\r\n toastMessage = 'Invalid Service Id!';\r\n break;\r\n case 'Key_SlotNotAvailable':\r\n toastMessage = 'Slot not available';\r\n break;\r\n case 'Key_InvalidFrequency':\r\n toastMessage = 'Invalid Frequency';\r\n break;\r\n case 'Key_InvoiceAlreadyCancelled':\r\n toastMessage = 'Patient Balance already cancelled';\r\n break;\r\n case 'Key_ItemNameAlreadyExists':\r\n toastMessage = 'Item Name already exists';\r\n break;\r\n case 'Key_OperationTypeCannotBeBlank':\r\n toastMessage = 'Operation type cannot be blank';\r\n break;\r\n case 'Key_NewExecutionDateCannotBeBlank':\r\n toastMessage = 'New execution date cannot be blank';\r\n break;\r\n case 'Key_QuantityNotValid':\r\n toastMessage = 'Quantity is not valid';\r\n break;\r\n case 'Key_TaxPercentNotToBeNegative':\r\n toastMessage = 'Tax percent cannot be negative';\r\n break;\r\n case 'Key_TaxPercentNotMoreThanHundred':\r\n toastMessage = 'Tax percent cannot be greater than or equal to 100';\r\n break;\r\n case 'Key_ServiceIdNotNumber':\r\n toastMessage = 'Service Id should be numeric value';\r\n break;\r\n case 'Key_ServiceIdNotValid':\r\n toastMessage = 'Invalid Service Id';\r\n break;\r\n case 'Key_ItemNameCannotBeBlank':\r\n toastMessage = 'Item Name cannot be blank';\r\n break;\r\n case 'Key_UnitPriceNotToBeNegative':\r\n toastMessage = 'Unt price cannot be negative';\r\n break;\r\n case 'Key_ItemIdNotNumber':\r\n toastMessage = 'Item Id is not a number';\r\n break;\r\n case 'Key_InvalidItemType':\r\n toastMessage = 'Invalid Item Type';\r\n break;\r\n case 'Key_InvalidServiceType':\r\n toastMessage = 'Invalid Service type';\r\n break;\r\n case 'Key_ItemQuantityToBeGreaterThanZero':\r\n toastMessage = 'Quantity should be greater than zero';\r\n break;\r\n case 'Key_ItemNotToBeDuplicate':\r\n toastMessage = 'Item name already exists';\r\n break;\r\n case 'Key_DiscountTypeTobeEqualtoOneorTwo':\r\n toastMessage = 'Invalid discount type';\r\n break;\r\n case 'Key_FromPriceShouldBePositiveNumber':\r\n toastMessage = 'From price should be a positive number';\r\n break;\r\n case 'Key_ToUnitPriceShouldBePositiveNumber':\r\n toastMessage = 'Unit price should be a positive number';\r\n break;\r\n case 'Key_FromPriceCantBeGreaterToUnitPrice':\r\n toastMessage = 'From price cannot be greater than to price';\r\n break;\r\n case 'Key_FromDiscountShouldBePositiveNumber':\r\n toastMessage = 'From discount should be a positive number';\r\n break;\r\n case 'Key_ToDiscountShouldBePositiveNumber':\r\n toastMessage = 'To discount should be a positive number';\r\n break;\r\n case 'Key_DiscountAndDiscountTypeNotToBeEmpty':\r\n toastMessage = 'Discount and discount type should not be empty';\r\n break;\r\n case 'Key_ItemTypeChangeNotAllowed':\r\n toastMessage = 'Cannot change Item type';\r\n break;\r\n case 'Key_ServiceTypeChangeNotAllowed':\r\n toastMessage = 'Cannot change service type';\r\n break;\r\n case 'Key_ServiceCodeChangeNotAllowed':\r\n toastMessage = 'Cannot change service code';\r\n break;\r\n case 'Key_ServiceIdAlreadyExists':\r\n toastMessage = 'Code already exists';\r\n break;\r\n case 'Key_ItemActivated':\r\n toastMessage = 'Item activated';\r\n break;\r\n case 'Key_Failed_ItemActivated':\r\n toastMessage = 'Fail to activate Item';\r\n break;\r\n case 'Key_ItemAlreadyActivated':\r\n toastMessage = 'Item already activated';\r\n break;\r\n case 'Key_ItemDeActivated':\r\n toastMessage = 'Item deactivated';\r\n break;\r\n case 'Key_ItemAlreadyDeActivated':\r\n toastMessage = 'Item already deactivated';\r\n break;\r\n case 'Key_Failed_ItemDeActivated':\r\n toastMessage = 'Fail to deactivate Item';\r\n break;\r\n case 'Key_AmountShouldBeMoreThanZero':\r\n toastMessage = 'Amount should be greater than zero';\r\n break;\r\n case 'Key_TotalAmountShouldBeMoreThanZero':\r\n toastMessage = 'Total amount should be greater than zero';\r\n break;\r\n case 'Key_NpiAlreadyExists':\r\n toastMessage = 'Npi number already exists';\r\n break;\r\n case 'Key_NpiShouldBeTenDigitNumber':\r\n toastMessage = 'NPI number should be 10 digits';\r\n break;\r\n case 'Key_ProviderNpiAlreadyExist':\r\n toastMessage = 'Provider Npi number already exists';\r\n break;\r\n case 'Key_ProviderNpiShouldBeTenDigitNumber':\r\n toastMessage = 'Provider NPI number should be 10 digits';\r\n break;\r\n case 'Key_InvalidProviderNpi':\r\n toastMessage = 'Invalid Provider Npi';\r\n break;\r\n case 'Key_RecurringPaymentCancelledSuccessfully':\r\n toastMessage = 'Payment Plan Cancelled Successfully';\r\n break;\r\n case 'Key_PatientNameCannotBeBlank':\r\n toastMessage = 'Patient Name cannot be blank';\r\n break;\r\n case 'Key_InvoiceAlreadyUnsubscribed':\r\n toastMessage = 'Invoice already unsubscribed';\r\n break;\r\n case 'Key_InvoicePaymentInitiated':\r\n toastMessage = 'Payment already initiated.';\r\n break;\r\n case 'Key_InvoiceAlreadyPaid':\r\n toastMessage = 'Invoice already paid.';\r\n break;\r\n case 'Key_InvoiceAlreadyClosed':\r\n toastMessage = 'Invoice already closed.';\r\n break;\r\n case 'Key_CloseReasonLessThanMinimumLength':\r\n toastMessage = 'Close reason less than minimum length.';\r\n break;\r\n case 'Key_CloseReasonNotString':\r\n toastMessage = 'Invalid Reason.';\r\n break;\r\n case 'Key_InvalidPatientInsurance':\r\n toastMessage = 'Invalid Patient Insurance';\r\n break;\r\n case 'Key_Failed_AddClaim':\r\n toastMessage = 'Add claim failed';\r\n break;\r\n case 'Key_Failed_UpdateClaim':\r\n toastMessage = 'Update claim failed';\r\n break;\r\n case 'Key_ServiceDateNotValid':\r\n toastMessage = 'Invalid service date';\r\n break;\r\n case 'Key_ClaimFrequencyNotInRange':\r\n toastMessage = 'Claim frequency not in range';\r\n break;\r\n case 'Key_FirstClaimDateNotValid':\r\n toastMessage = 'First claim date not vlaid';\r\n break;\r\n case 'Key_FirstClaimDateInPast':\r\n toastMessage = 'Past date not allowed for first claim';\r\n break;\r\n case 'Key_NumberOfClaimsCannotbeLessThanOne':\r\n toastMessage = 'No of times cannot be less than 1';\r\n break;\r\n case 'Key_NumberOfClaimsNotNumber':\r\n toastMessage = 'No of times is not a number';\r\n break; case 'Key_ClaimNotFound':\r\n toastMessage = 'Claim not found';\r\n break;\r\n case 'Key_PatientNotEditable':\r\n toastMessage = 'Patient details not editable for claim';\r\n break;\r\n case 'Key_ClaimAlreadyCancelled':\r\n toastMessage = 'Claim already cancelled';\r\n break;\r\n case 'Key_ClaimAlreadyPaid':\r\n toastMessage = 'Claim Already paid';\r\n break;\r\n case 'Key_ClaimIsClosed':\r\n toastMessage = 'Claim is closed';\r\n break;\r\n case 'Key_ClaimIsDenied':\r\n toastMessage = 'Claim denied';\r\n break;\r\n case 'Key_Failed_UpdateClaim':\r\n toastMessage = 'Claim update failed';\r\n break;\r\n case 'Key_ClaimCancelledSuccessfully':\r\n toastMessage = 'Claim cancelled successfully';\r\n break;\r\n case 'Key_NoChangeinClaimSchedule':\r\n toastMessage = 'No change in claim schedule';\r\n break;\r\n case 'Key_Failed_RescheduleClaim':\r\n toastMessage = 'Failed to re schedule claim';\r\n break;\r\n case 'Key_FileTypeNotAccepted':\r\n toastMessage = 'File type not accepted';\r\n break;\r\n case 'Key_InvalidPatientBulkUpload':\r\n toastMessage = 'Invalid patient bulk upload';\r\n break;\r\n case 'Key_NumberOfClaimsCannotbeMoreThan99':\r\n toastMessage = 'Total number of claims cannot be greater than 99';\r\n break;\r\n case 'Key_InsurancePayerNotEligibleForClaimUpdate':\r\n toastMessage = 'Insurance payer not eligible for claim update';\r\n break;\r\n case 'Key_PatientOrInsuranceNotFound':\r\n toastMessage = 'Patient or Insurance not found';\r\n break;\r\n case 'Key_InvalidFirstClaimDate':\r\n toastMessage = 'Invalid first claim date';\r\n break;\r\n case 'Key_FirstClaimsDateInPast':\r\n toastMessage = 'First claim date in past';\r\n break;\r\n case 'Key_AutoClaimStatusShouldBeBoolean':\r\n toastMessage = 'Auto claim status should be a true or false';\r\n break;\r\n case 'Key_InvoiceCannotBeCancelled':\r\n toastMessage = 'Invoice cannot be cancelled';\r\n break;\r\n case 'Key_InvoiceAlreadyCompleted':\r\n toastMessage = 'Invoice already completed';\r\n break;\r\n case 'Key_CheckEligibilityNotValid':\r\n toastMessage = 'Invalid Check Eligibility';\r\n break;\r\n case 'Key_InsuranceDetailsCannotBeBlank':\r\n toastMessage = 'Insurance details cannot be blank';\r\n break;\r\n case 'Key_FirstNameNotValid':\r\n toastMessage = 'FirstName is invalid';\r\n break;\r\n case 'Key_LastNameNotValid':\r\n toastMessage = 'LastName is invalid';\r\n break;\r\n case 'Key_PatientInsuranceLimitExceeded':\r\n toastMessage = 'Patient Insurance limit exceeded, can only add 5 insurance per patient';\r\n break;\r\n case 'Key_PatientInsuranceNotFound':\r\n toastMessage = 'Patient Insurance not found';\r\n break;\r\n case 'Key_InvalidPatientInsuranceId':\r\n toastMessage = 'Invalid Patient Insurance Id';\r\n break;\r\n case 'Key_PatientInsuranceUpdated':\r\n toastMessage = 'Patient Insurance Updated';\r\n break;\r\n case 'Key_InvalidInsuranceType':\r\n toastMessage = 'Invalid Insurance Type';\r\n break;\r\n case 'Key_InsuranceTypeNotInRange':\r\n toastMessage = 'Insurance Type not in Range';\r\n break;\r\n case 'Key_CannotSetSameInsuranceType':\r\n toastMessage = 'Cannot set same Insurance type';\r\n break;\r\n case 'Key_CannotSetToSecondary':\r\n toastMessage = 'Cannot set this I nsurance as Secondary';\r\n break;\r\n case 'Key_InsurancePayerNotEligibleForEligibilityCheck':\r\n toastMessage = 'Insurance payer is not eligible for check eligibility';\r\n break;\r\n case 'Key_InvalidDoctorType':\r\n toastMessage = 'Invalid Provider Type';\r\n break;\r\n case 'Key_InvalidAccess':\r\n toastMessage = 'You don\\'t have access to this module';\r\n break;\r\n case 'Key_InvalidModule':\r\n toastMessage = 'Invalid Module';\r\n break;\r\n case 'Key_ModuleNotToBeDuplicate':\r\n toastMessage = 'Module Name cannot be duplicate';\r\n break;\r\n case 'Key_ModuleNotToBeEmpty':\r\n toastMessage = 'Invalid Name cannot be empty';\r\n break;\r\n case 'Key_ModuleShouldBeArray':\r\n toastMessage = 'Should be array of module';\r\n break;\r\n case 'Key_InvalidModuleConfig':\r\n toastMessage = 'Invalid Module Config';\r\n break;\r\n case 'Key_SMSTurnedOffForProvider':\r\n toastMessage = 'SMS service turned off for provider';\r\n break;\r\n case 'Key_EmailTurnedOffForProvider':\r\n toastMessage = 'Email service turned off for provider';\r\n break;\r\n case 'Key_NotificationTurnedOffForProvider':\r\n toastMessage = 'Notification turned off for provider';\r\n break;\r\n case 'Key_InvoiceNotificationsDisabled':\r\n toastMessage = 'Notification turned off for payment activity';\r\n break;\r\n case 'Key_DoctorActivated':\r\n toastMessage = 'Provider successfully activated';\r\n break;\r\n case 'Key_DoctorCannotBeActivated':\r\n toastMessage = 'Provider cannot be activated';\r\n break;\r\n case 'Key_DoctorDeActivated':\r\n toastMessage = 'Provider successfully deactivatedt';\r\n break;\r\n case 'Key_DoctorCannotBeDeActivated':\r\n toastMessage = 'Provider cannot be deactivated';\r\n break;\r\n case 'Key_DoctorInActive':\r\n toastMessage = 'Provider is not active';\r\n break;\r\n case 'Key_InValidNewExecutionDate':\r\n toastMessage = 'New Excecution date is not valid';\r\n break;\r\n case 'Key_NewExecutionDateInPast':\r\n toastMessage = 'New excecution date cannot be in past';\r\n break;\r\n case 'Key_NewExecutionDateShouldBeFutureDate':\r\n toastMessage = 'New excecution date should be future date';\r\n break;\r\n case 'Key_NewExecutionDateNotValid':\r\n toastMessage = 'New excecution date is not valid';\r\n break;\r\n case 'Key_RecurringScheduleNotFound':\r\n toastMessage = 'Recurring Schedule not found';\r\n break;\r\n case 'Key_DownPaymentNotEligibleForReschedule':\r\n toastMessage = 'Down Payment is not eligible for reschedule';\r\n break;\r\n case 'Key_NewExecutionDateShouldNotExceedsNextScheduleDate':\r\n toastMessage = 'New excecution date cannot be equal to or greater than next schedule date';\r\n break;\r\n case 'Key_NewExecutionDateShouldBeGreaterThanExistingScheduleDate':\r\n toastMessage = 'New excecution date should be greater than current schedule date';\r\n break;\r\n case 'Key_NewExecutionDateShouldNotExceedsEstimatedScheduleDateAsPerFrequency':\r\n toastMessage = 'New excecution date is exceeding the limit';\r\n break;\r\n case 'Key_FrequencyNotEligibleForReschedule':\r\n toastMessage = 'Recurring schedule with this frequency cannot be rescheduled';\r\n break;\r\n case 'Key_LastVisit_Not_Closed':\r\n toastMessage = 'Please checkout previous Check In request';\r\n break;\r\n case 'Key_InvalidCheckInDate':\r\n toastMessage = 'Invalid Check In Date';\r\n break;\r\n case 'Key_VisitStatusNotInRange':\r\n toastMessage = 'Visit status not in Range';\r\n break;\r\n case 'Key_InvalidDoctorCheckInDate':\r\n toastMessage = 'Invalid doctor check In Date';\r\n break;\r\n case 'Key_InvalidCheckOutDate':\r\n toastMessage = 'Invalid check Out Date';\r\n break;\r\n case 'Key_Failed_AddPatientVisit':\r\n toastMessage = 'Failed to add Patient Visit';\r\n break;\r\n case 'Key_Failed_UpdatePatientVisit':\r\n toastMessage = 'Failed to Update Patient Visit';\r\n break;\r\n case 'Key_ItemsNotFound':\r\n toastMessage = 'Line Items not found';\r\n break;\r\n case 'Key_PatientVisitNotFound':\r\n toastMessage = 'Invalid Patient Visit';\r\n break;\r\n case 'Key_CheckOutDateSldBeMoreThanDoctorCheckInDate':\r\n toastMessage = 'Checkout date should be greater than doctor Check In date';\r\n break;\r\n case 'Key_DoctorCheckInDateSldBeMoreThanCheckInDate':\r\n toastMessage = 'Docotr check In date should be greater than Check In date';\r\n break;\r\n case 'Key_DoctorCheckInNotAllowed':\r\n toastMessage = 'Doctor Check In not allowed';\r\n break;\r\n case 'Key_CheckOutNotAllowed':\r\n toastMessage = 'Patient checkout not allowed';\r\n break;\r\n case 'Key_DocumentNotFound':\r\n toastMessage = 'Document not found';\r\n break;\r\n case 'Key_DeleteNotAllowed':\r\n toastMessage = 'Cannot delete this document';\r\n break;\r\n case 'Key_DocumentDeleted':\r\n toastMessage = 'Patient document deleted successfully';\r\n break;\r\n case 'Key_DocumentCannotBeDeleted':\r\n toastMessage = 'Document cannot be deleted';\r\n break;\r\n case 'Key_DocumentAccessAuthorized':\r\n toastMessage = 'Document is successfully linked to provider';\r\n break;\r\n case 'Key_DocumentAccessCannotBeAuthorized':\r\n toastMessage = 'Unable to link the document';\r\n break;\r\n case 'Key_DocumentAccessRemoved':\r\n toastMessage = 'Document access removed successfully';\r\n break;\r\n case 'Key_DocumentAccessCannotBeRemoved':\r\n toastMessage = 'Unable to remove the aceess to this document';\r\n break;\r\n case 'Key_InvalidBankName':\r\n toastMessage = 'Invalid Bank Name';\r\n break;\r\n case 'Key_FeatureNotToBeEmpty':\r\n toastMessage = 'Feature name is empty';\r\n break;\r\n case 'Key_FeatureNotToBeDuplicate':\r\n toastMessage = 'Feature name cannot be duplicate';\r\n break;\r\n case 'Key_OnlySMSAndEMailModuleAccessible':\r\n toastMessage = 'Only Email and Sms Module is accessible';\r\n break;\r\n case 'Key_FeatureIdCannotBeBlank':\r\n toastMessage = 'Feature Id cannot be blank';\r\n break;\r\n case 'Key_IsEmailEnabledCannotBeBlank':\r\n toastMessage = 'isEmailEnabled field cannot be blank';\r\n break;\r\n case 'Key_IsSmsEnabledCannotBeBlank':\r\n toastMessage = 'isSmsEnabled field cannot be blank';\r\n case 'Key_ReportNotFound':\r\n toastMessage = \"Invoice reporting data not found.\"\r\n break;\r\n case 'Key_InvalidPatientId':\r\n toastMessage = \"Invalid patient Id\"\r\n break;\r\n case 'Key_Not_Authorized_To_Access_Features':\r\n toastMessage = \"Provider is not authorized to access this feature\"\r\n break;\r\n case 'Key_RoleNameNotString':\r\n toastMessage = \"Role name should be string\"\r\n break;\r\n case 'Key_RoleNameNotValid':\r\n toastMessage = \"Role name is not valid\"\r\n break;\r\n case 'Key_RoleNameCannotBeEmpty':\r\n toastMessage = \"Role name cannot be empty \"\r\n break;\r\n case 'Key_FeaturesListNotToBeDuplicate':\r\n toastMessage = \"dDuplicate feature list\"\r\n break;\r\n case 'Key_FeaturesListNotToBeEmpty':\r\n toastMessage = \"Feature list should not be empty\"\r\n break;\r\n case 'Key_FeaturesListShouldBeArray':\r\n toastMessage = \"feature list should be an array\"\r\n break;\r\n case 'Key_RoleNameAlreadyExists':\r\n toastMessage = \"Role Name already exists\"\r\n break;\r\n case 'Key_RoleNotFound':\r\n toastMessage = \"Role not found\"\r\n break;\r\n case 'Key_RoleActivated':\r\n toastMessage = \"Role activated sucessfully\"\r\n break;\r\n case 'Key_RoleCannotBeActivated':\r\n toastMessage = \"Role cannot be activated\"\r\n break;\r\n case 'Key_UserNameAlreadyExists':\r\n toastMessage = \"Username already exists\"\r\n break;\r\n case 'Key_RoleDeActivated':\r\n toastMessage = \"Role de activated sucessfully\"\r\n break;\r\n case 'Key_RoleCannotBeDeActivated':\r\n toastMessage = \"Role cannot be de activated\"\r\n break;\r\n case 'Key_RoleInUse':\r\n toastMessage = \"Role in use\"\r\n break;\r\n case 'Key_InvoiceCloseNotAllowed':\r\n toastMessage = \"Closing invoice is not allowed.\"\r\n break;\r\n case 'Key_ErrorInFetchingInvoiceReport':\r\n toastMessage = \"Error in fetching report.\"\r\n break;\r\n case 'Key_ErrorInFetchingRecuringPaymentReport':\r\n toastMessage = \"Error in fetching report.\"\r\n break;\r\n case 'Key_StartTimeShouldNotEmptyInParams':\r\n toastMessage = \"Start time should not be empty\"\r\n break;\r\n case 'Key_EndTimeShouldNotEmptyInParams':\r\n toastMessage = \"End time should not be empty\"\r\n break;\r\n case 'Key_DaysShouldNotEmptyInParams':\r\n toastMessage = \"Week Day should not be empty\"\r\n break;\r\n case 'Key_StartTimeShouldBeLessThenEndTime':\r\n toastMessage = \"Start time should be less than end time\"\r\n break;\r\n case 'Key_AppointmentOutsideWorkingHoursRange':\r\n toastMessage = \"Appointment outside Provider's working hours\"\r\n break;\r\n case 'Key_TimeZoneRequired':\r\n toastMessage = \"Timezone required. Error in checking Provider's working hours.\"\r\n break;\r\n case 'Key_DoctorScheduledAtAnotherPractice':\r\n toastMessage = \"This doctor is scheduled at another practice for times selected.\"\r\n break;\r\n\r\n default:\r\n toastMessage = 'Something went wrong. Please contact administrator.';\r\n\r\n }\r\n return toastMessage;\r\n }\r\n}\r\n","module.exports = \"
{{ modal.context.title }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ modal.context.question }}

\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\"","import { Component } from '@angular/core';\r\nimport { SuiModal, ComponentModalConfig, ModalSize, SuiModalService } from 'ng2-semantic-ui';\r\nimport { InvoiceStatusEnum, InvoiceTypeEnum } from 'src/app/enum/invoice.enum';\r\nimport { AccessRightsService } from 'src/app/services/api/access-rights.service';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\n\r\ninterface AskPaymentModelContext {\r\n question: string;\r\n title?: string;\r\n invoice?: any\r\n}\r\n\r\n@Component({\r\n selector: 'app-ask-payment',\r\n templateUrl: './modal-ask-payment.component.html',\r\n})\r\nexport class AskPaymentModelComponent {\r\n\r\n loggedInUserData: any = {};\r\n \r\n invoiceStatusEnum = InvoiceStatusEnum;\r\n invoiceTypeEnum = InvoiceTypeEnum;\r\n permissions: any = this.accessRightsService.getAllFeatureAccessToUser();\r\n constructor(\r\n public modal: SuiModal,\r\n private commonService: CommonService,\r\n private accessRightsService: AccessRightsService\r\n ) {\r\n this.loggedInUserData = this.commonService.getLoggedInData();\r\n }\r\n}\r\n\r\nexport class AskPaymentModel extends ComponentModalConfig {\r\n constructor(question: string, title?: string, invoice?: any) {\r\n super(AskPaymentModelComponent, { question, title, invoice });\r\n\r\n this.isClosable = false;\r\n this.transitionDuration = 200;\r\n this.size = ModalSize.Small;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { SuiModal, ComponentModalConfig, ModalSize, SuiModalService } from 'ng2-semantic-ui';\r\n\r\ninterface IConfirmApptModalContext {\r\n question: string;\r\n title?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-confirm-one-pmt-appt',\r\n template: `\r\n
{{ modal.context.title }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ modal.context.question }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n `\r\n})\r\nexport class ConfirmApptModalComponent {\r\n constructor(public modal: SuiModal) {}\r\n}\r\n\r\nexport class ConfirmApptModal extends ComponentModalConfig {\r\n constructor(question: string, title?: string) {\r\n super(ConfirmApptModalComponent, { question, title });\r\n\r\n this.isClosable = false;\r\n this.transitionDuration = 200;\r\n this.size = ModalSize.Small;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { SuiModal, ComponentModalConfig, ModalSize, SuiModalService } from 'ng2-semantic-ui';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\n\r\ninterface IConfirmInvoicePaymentModelContext {\r\n question: string;\r\n title?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-confirm-pmt-appt',\r\n template: `\r\n
{{ modal.context.title }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ modal.context.question }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n`\r\n})\r\nexport class ConfirmInvoicePaymentModelComponent {\r\n\r\n loggedInUserData: any = {};\r\n constructor(\r\n public modal: SuiModal,\r\n private commonService: CommonService\r\n\r\n ) {\r\n this.loggedInUserData = this.commonService.getLoggedInData();\r\n }\r\n}\r\n\r\nexport class ConfirmInvoicePaymentModel extends ComponentModalConfig {\r\n constructor(question: string, title?: string) {\r\n super(ConfirmInvoicePaymentModelComponent, { question, title });\r\n\r\n this.isClosable = false;\r\n this.transitionDuration = 200;\r\n this.size = ModalSize.Small;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { SuiModal, ComponentModalConfig, ModalSize, SuiModalService } from 'ng2-semantic-ui';\r\n\r\ninterface IConfirmOnePmtAptModalContext {\r\n question: string;\r\n title?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-confirm-one-pmt-appt',\r\n template: `\r\n
{{ modal.context.title }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ modal.context.question }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n `\r\n})\r\nexport class ConfirmOnePmtAptModalComponent {\r\n constructor(public modal: SuiModal) {}\r\n}\r\n\r\nexport class ConfirmOnePmtAptModal extends ComponentModalConfig {\r\n constructor(question: string, title?: string) {\r\n super(ConfirmOnePmtAptModalComponent, { question, title });\r\n\r\n this.isClosable = false;\r\n this.transitionDuration = 200;\r\n this.size = ModalSize.Small;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { SuiModal, ComponentModalConfig, ModalSize, SuiModalService } from 'ng2-semantic-ui';\r\n\r\ninterface IConfirmPmtAptModalContext {\r\n question: string;\r\n title?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-confirm-pmt-appt',\r\n template: `\r\n
{{ modal.context.title }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ modal.context.question }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n `\r\n})\r\nexport class ConfirmPmtAptModalComponent {\r\n constructor(public modal: SuiModal) {}\r\n}\r\n\r\nexport class ConfirmPmtAptModal extends ComponentModalConfig {\r\n constructor(question: string, title?: string) {\r\n super(ConfirmPmtAptModalComponent, { question, title });\r\n\r\n this.isClosable = false;\r\n this.transitionDuration = 200;\r\n this.size = ModalSize.Small;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { SuiModal, ComponentModalConfig, ModalSize, SuiModalService } from 'ng2-semantic-ui';\r\n\r\ninterface IConfirmInvalidAcccessContext {\r\n question: string;\r\n title?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-modal-invalid-access-confirm',\r\n template: `\r\n
{{ modal.context.title }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ modal.context.question }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n `\r\n})\r\nexport class ConfirmInvalidAcccessComponent {\r\n constructor(public modal: SuiModal) { }\r\n}\r\n\r\nexport class ConfirmInvalidAcccessModal extends ComponentModalConfig {\r\n constructor(question: string, title?: string) {\r\n super(ConfirmInvalidAcccessComponent, { question, title });\r\n\r\n this.isClosable = false;\r\n this.transitionDuration = 200;\r\n this.size = ModalSize.Small;\r\n }\r\n}\r\n","module.exports = \"
{{ modal.context.title }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ modal.context.question }}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\"","import { Component } from '@angular/core';\r\nimport { SuiModal, ComponentModalConfig, ModalSize } from 'ng2-semantic-ui';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\n\r\n\r\ninterface IConfirmModalOptInOutContext {\r\n question: string;\r\n title?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-optinout-confirm',\r\n templateUrl: './modal-opt-in-out-sms.component.html',\r\n})\r\nexport class ConfirmModalOptInOutSmsComponent {\r\n\r\n loggedInUserData: any = {};\r\n\r\n constructor(\r\n private commonService: CommonService,\r\n public modal: SuiModal) {\r\n this.loggedInUserData = this.commonService.getLoggedInData();\r\n }\r\n\r\n}\r\n\r\nexport class ConfirmModalOptInOutSMS extends ComponentModalConfig {\r\n constructor(question: string, title?: string) {\r\n super(ConfirmModalOptInOutSmsComponent, { question, title });\r\n\r\n this.isClosable = false;\r\n this.transitionDuration = 200;\r\n this.size = ModalSize.Small;\r\n }\r\n}\r\n","module.exports = \"
{{ modal.context.title }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ modal.context.question }}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{reasonModalFormErrors.Description}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\"","import { Component, OnInit } from '@angular/core';\r\nimport { SuiModal, ComponentModalConfig, ModalSize } from 'ng2-semantic-ui';\r\nimport { FormBuilder, FormGroup, Validators } from '@angular/forms';\r\nimport { ValidationConstant } from 'src/app/services/validation/validation.constant';\r\nimport { Validator } from 'src/app/services/validation/validator';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\n\r\n\r\ninterface IConfirmModalReasonContext {\r\n question: string;\r\n title?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-reason-confirm',\r\n templateUrl: './modal-reason.component.html',\r\n})\r\nexport class ConfirmModalReasonComponent {\r\n\r\n loggedInUserData: any = {};\r\n reasonModalForm: FormGroup;\r\n reasonModalFormErrors: any = {};\r\n\r\n validator: Validator;\r\n\r\n config = {\r\n 'Description': {\r\n required: { name: ValidationConstant.recurring.cancel.reason.name },\r\n maxlength: {\r\n name: ValidationConstant.recurring.cancel.reason.name,\r\n max: ValidationConstant.recurring.cancel.reason.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.recurring.cancel.reason.name,\r\n min: ValidationConstant.recurring.cancel.reason.minLength.toString()\r\n },\r\n }\r\n }\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private commonService: CommonService,\r\n public modal: SuiModal) {\r\n this.loggedInUserData = this.commonService.getLoggedInData();\r\n this.validator = new Validator(this.config);\r\n }\r\n\r\n ngOnInit() {\r\n this.reasonModalForm = this.formBuilder.group({\r\n Description: ['', [\r\n Validators.required,\r\n Validators.maxLength(ValidationConstant.recurring.cancel.reason.maxLength),\r\n Validators.minLength(ValidationConstant.recurring.cancel.reason.minLength),\r\n Validators.pattern(ValidationConstant.alphanumericWithSpace_regex)\r\n ]],\r\n });\r\n\r\n this.reasonModalForm.valueChanges.subscribe(data => this.onValueChanged(data));\r\n\r\n }\r\n\r\n onValueChanged(data?: any) {\r\n if (!this.reasonModalForm) {\r\n return;\r\n }\r\n this.reasonModalFormErrors = this.validator.validate(this.reasonModalForm);\r\n }\r\n\r\n approve() {\r\n\r\n this.validator.validateAllFormFields(this.reasonModalForm);\r\n\r\n this.reasonModalFormErrors = this.validator.validate(this.reasonModalForm);\r\n if (this.reasonModalForm.invalid) {\r\n return;\r\n }\r\n\r\n this.modal.approve(this.reasonModalForm.value.Description);\r\n }\r\n\r\n}\r\n\r\nexport class ConfirmModalReason extends ComponentModalConfig {\r\n constructor(question: string, title?: string) {\r\n super(ConfirmModalReasonComponent, { question, title });\r\n this.isClosable = false;\r\n this.transitionDuration = 200;\r\n this.size = ModalSize.Small;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { SuiModal, ComponentModalConfig, ModalSize, SuiModalService } from 'ng2-semantic-ui';\r\n\r\ninterface IConfirmModalContext {\r\n question: string;\r\n title?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-modal-confirm',\r\n template: `\r\n
{{ modal.context.title }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ modal.context.question }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n `\r\n})\r\nexport class ConfirmModalComponent {\r\n constructor(public modal: SuiModal) {}\r\n}\r\n\r\nexport class ConfirmModal extends ComponentModalConfig {\r\n constructor(question: string, title?: string) {\r\n super(ConfirmModalComponent, { question, title });\r\n\r\n this.isClosable = false;\r\n this.transitionDuration = 200;\r\n this.size = ModalSize.Small;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { SuiModal, ComponentModalConfig, ModalSize, SuiModalService } from 'ng2-semantic-ui';\r\n\r\ninterface IConfirmModal3Context {\r\n question: string;\r\n title?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-modal3-confirm',\r\n template: `\r\n
{{ modal.context.title }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ modal.context.question }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n `\r\n})\r\nexport class ConfirmModal3Component {\r\n constructor(public modal: SuiModal) {}\r\n}\r\n\r\nexport class ConfirmModal3 extends ComponentModalConfig {\r\n constructor(question: string, title?: string) {\r\n super(ConfirmModal3Component, { question, title });\r\n\r\n this.isClosable = false;\r\n this.transitionDuration = 200;\r\n this.size = ModalSize.Small;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { SuiModal, ComponentModalConfig, ModalSize, SuiModalService } from 'ng2-semantic-ui';\r\n\r\ninterface IConfirmModal4Context {\r\n question: string;\r\n title?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-modal4-confirm',\r\n template: `\r\n
{{ modal.context.title }}\r\n \r\n
\r\n
\r\n
\r\n
\r\n

{{ modal.context.question }}

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n `\r\n})\r\nexport class ConfirmModal4Component {\r\n constructor(public modal: SuiModal) { }\r\n}\r\n\r\nexport class ConfirmModal4 extends ComponentModalConfig {\r\n constructor(question: string, title?: string) {\r\n super(ConfirmModal4Component, { question, title });\r\n\r\n this.isClosable = false;\r\n this.transitionDuration = 200;\r\n this.size = ModalSize.Small;\r\n }\r\n}\r\n","export class ProcessorException {\r\n static processorExceptionMessages = {\r\n // Elavon\r\n 'AA': 'Approved Transaction',\r\n 'AP': 'Approved Transaction for a Partial Amount',\r\n 'AC': 'Approved Transaction (without Cashback)',\r\n 'NC': 'Decline (Pick Up Card)',\r\n 'ND': 'Decline (Hard or Soft)',\r\n 'NF': 'Decline (Record Not Found)',\r\n 'NR': 'Decline (Referral Message)',\r\n 'N7': 'Decline (For CVV2 Only)',\r\n 'NL': 'Decline (Loyalty/Gift Error)',\r\n\r\n // TSYS\r\n '500': 'Gateway lost its connection to the network or host while processing the transaction The transaction should be re-attempted If this condition continues, contact Administrator',\r\n '501': 'The Visa II packet contained a bad BIN, or the host was either unavailable or disconnected prematurely Check BIN and re-try transaction.',\r\n '502': 'The Visa II packet was formatted improperly. Check the format of the transaction and try again',\r\n\t '503': 'SSL Gateway is unable to contact the network or the host Re-try transaction. If condition persists,contact Administrator',\r\n '504': 'Merchant attempted to submit a transaction through a transaction other than POST (for example GET) Re-submit transaction as a POST transaction',\r\n '505': 'SSL Gateway received an invalid response from the network or host. Re-try the transaction. If condition persists, contact administrator NOTE For an SSL connection, make sure Application Type value is set to 4 (Interleaved)',\r\n '506': 'SSL Gateway received a host response larger than it is capable of handling Re-try the transaction If condition persists, contact Administrator',\r\n '507': 'The HTTP Content-Type header must be a recognized type (currently \"x-Visa-II/x-auth\" or \"x-Visa-II/x-settle\")',\r\n '508': 'Gateway reached end of settlement batch before receiving a response from the host This can be caused by the omission of a trailer record or other framing errors',\r\n '509': 'Host rejected the settlement batch for some reason. The number of records sent prior to receiving the NAK is returned to the client for further investigation.',\r\n '510': 'The SSL Gateway only accepts auth. transactions through the Visa II interleaved protocol (type 4 record). Make sure the submitted packet is formatted correctly and re-try the transaction',\r\n '511': 'Record in batch does not begin with 0x82. The submitted settlement transaction contains an improperly framed record',\r\n '512': 'Record in batch does not end with ETX/E113. The submitted settlement transaction contains an improperly framed record',\r\n '513': 'Record in batch missing LRC. The submitted settlement transaction contains an improperly framed record',\r\n '514': 'Record in batch is not application type 1. The SSL Payment Gateway only supports application type 1 records.',\r\n\r\n '00': 'Approved Transaction',\r\n '01': 'Refer to issuer',\r\n '02': 'Refer to issuer-Special condition',\r\n '03': 'Term ID Error. Invalid Merchant ID',\r\n '04': 'Hold-call or Pick Up Card.',\r\n '05': 'Incorrect CVV code',\r\n '06': 'Error XXXX General error',\r\n '07': 'Hold-call or Pick Up Card, special condition (fraud account)',\r\n '08': 'Approval Honor Mastercard with ID',\r\n '10': 'Partial approval for the authorized amount returned in Group III version 022',\r\n '11': 'Approval VIP approval',\r\n '12': 'Invalid transaction',\r\n '13': 'Invalid amount',\r\n '14': 'Invalid card number',\r\n '15': 'No Such Issuer',\r\n '19': 'Re-enter transaction',\r\n '21': 'No Action Taken.Unable to back out transaction',\r\n '25': 'Unable to locate the account number',\r\n '28': 'No Reply File is temporarily unavailable',\r\n '34': 'Transaction Cancelled Mastercard use only; Fraud Concern (Used in reversal requests only)',\r\n '39': 'No credit account',\r\n '41': 'Pick Up Card Lost card,(fraud account)',\r\n '43': 'Pick Up Card Stolen card,(fraud account)',\r\n '51': 'Decline Insufficient funds',\r\n '52': 'No checking account',\r\n '53': 'No savings account',\r\n '54': 'Expired card',\r\n '55': 'Incorrect PIN',\r\n '57': 'Serv not allowed Transaction not permitted-Card',\r\n '58': 'Serv not allowed Transaction not permitted-Terminal',\r\n '59': 'Serv not allowed Transaction not permitted-Merchant',\r\n '61': 'Declined.Exceeds withdrawal limit',\r\n '62': 'Declined.Invalid service code, restricted',\r\n '63': 'Security violation',\r\n '65': 'Declined.Activity limit exceeded',\r\n '75': 'PIN tried exceeded',\r\n '76': 'Unsolicated.Reversal Unable to locate, no match',\r\n '77': 'No Action Taken.Inconsistant data, reversed, or repeat',\r\n '78': 'No Account',\r\n '79': 'Already reversed at switch',\r\n '80': 'No Financial impact (used in reversal responses to declined originals).',\r\n '81': 'Encryption Error.Cryptographic error',\r\n '82': 'CVV data is not correct',\r\n '83': 'Cannot verify PIN',\r\n '85': 'Card OK.No reason to decline',\r\n '86': 'Cannot verify PIN',\r\n '91': 'No Reply Issuer or switch is unavailable',\r\n '92': 'Invalid Routin.Destination not found',\r\n '93': 'Decline.Violation,cannot complete',\r\n '94': 'Duplicate Trans Unable to locate,no match',\r\n '96': 'System Error System malfunction',\r\n 'A1': 'Activated POS device authentication successful',\r\n 'A2': 'Not Activated POS device authentication not successful',\r\n 'A3': 'Deactivated POS device deactivation successful',\r\n 'B1': 'Surcharge amount not permitted on debit cards or EBT food stamps',\r\n 'B2': 'Surcharge amount not supported by debit network issuer',\r\n 'CV': 'Failure CV Card Type Verification Error',\r\n 'D3': 'SECUR CRYPT FAIL Transaction failure due to missing or invalid 3D-Secure cryptogram',\r\n 'E1': 'ENCR NOT CONFIGD.Encryption is not configured',\r\n 'E2': 'TERM NOT AUTHENT.Terminal is not authenticated',\r\n 'E3': 'DECRYPT FAILURE.Data could not be decrypted',\r\n 'EA': 'Acct Length Error.Verification error',\r\n 'EB': 'Check Digit Error.Verification error',\r\n 'EC': 'CID Format.Error Verification error',\r\n 'HV': 'Failure.HV Hierarchy Verification Error',\r\n 'K0': 'TOKEN RESPONSE.Token request was processed',\r\n 'K1': 'TOKEN NOT CONFIG.Tokenization is not configured',\r\n 'K2': 'TERM NOT AUTHENT.Terminal is not authenticated',\r\n 'K3': 'TOKEN FAILURE.Data could not be de-tokenized',\r\n 'M0': 'DOM DBT NOT ALWD.Mastercard: Canada region-issued Domestic Debit Transaction not allowed',\r\n 'N3': 'Cash back service not available',\r\n 'N4': 'Decline Exceeds issuer withdrawal limit',\r\n // 'N7': 'CVV2 Value supplied is invalid',\r\n 'P0': 'SERV NOT ALLOWED.Contact Merchant Services/Technical Support',\r\n 'P1': 'SERV NOT ALLOWED.Contact Merchant Services/Technical Support',\r\n 'P2': 'SERV NOT ALLOWED.Contact Merchant Services/Technical Support',\r\n 'P3': 'SERV NOT ALLOWED.Contact Merchant Services/Technical Support',\r\n 'P4': 'SERV NOT ALLOWED.Contact Merchant Services/Technical Support',\r\n 'P5': 'SERV NOT ALLOWED.Contact Merchant Services/Technical Support',\r\n 'P6': 'SERV NOT ALLOWED.Contact Merchant Services/Technical Support',\r\n 'P7': 'Missing Serial Num.The terminal has not yet completed the boarding process. The Serial Number has not been set up.',\r\n 'Q1': 'authentication failed',\r\n 'R0': 'Stop recurring Customer.requested stop of specific recurring payment',\r\n 'R1': 'Stop recurring Customer.requested stop of all recurring payments from specific merchant',\r\n 'T0': 'Approval.First check is OK and has been converted',\r\n 'T1': 'Cannot Convert Check is OK but cannot be converted This is a declined transaction',\r\n 'T2': 'not an ACH participant',\r\n 'T3': 'Amount Error.Amount greater than the limit',\r\n 'T4': 'Unpaid items,failed negative file check',\r\n 'T5': 'Duplicate check number',\r\n 'T6': 'MICR error',\r\n 'T7': 'Too many checks (over merchant or bank limit)',\r\n 'V1': 'Failure VM.Daily threshold exceeded',\r\n\r\n // Actum\r\n 'DAR104': 'Account number length > 17',\r\n 'DAR105': 'Account number contains 123456',\r\n 'DAR108': 'Invalid ABA Number',\r\n 'DAR109': 'Invalid Fractional',\r\n 'DCR103': 'Name scrub',\r\n 'DCR105': 'Email blocking',\r\n 'DCR106': 'Previous scrubbed account (Negative BD)',\r\n 'DCR107': 'Recurring Velocity Check Exceeded',\r\n 'DDR101': 'Duplicate Check indicates that this transaction was previously declined',\r\n 'DMR001': 'Invalid merchant',\r\n 'DMR002': 'Invalid billing profile',\r\n 'DMR003': 'Invalid cross sale ID',\r\n 'DMR004': 'Invalid Consumer Unique',\r\n 'DMR005': 'Missing field: processtype, parent_id, mersubid, accttype, consumername, accountname, host_ip, or client_ip',\r\n 'DMR006': 'Payment Type Not Supported',\r\n 'DMR007': 'Invalid Origination Code',\r\n 'DMR102': 'Transaction over limit for merchant',\r\n 'DMR103': 'Account not eligible for promotion',\r\n 'DMR104': 'Merchant not authorized for credit',\r\n 'DMR105': 'Invalid or non-matching original order for repeat-order-only SubID',\r\n 'DMR106': 'Invalid Amount Passed In',\r\n 'DMR107': 'Invalid Merchant TransID Passed In',\r\n 'DMR109': 'Invalid SysPass or SubID',\r\n 'DMR110': 'Future Initial Billing not authorized for this merchant',\r\n 'DMR201': 'Amount over the per-trans limit',\r\n 'DMR202': 'Amount over daily amount limit',\r\n 'DMR203': 'Count over daily count limit',\r\n 'DMR204': 'Amount over monthly amount limit',\r\n 'DMR205': 'Count over monthly count limit',\r\n 'DOR001': 'An upgrade has already been processed for the order',\r\n 'DOR002': 'A recur has been found for Order',\r\n 'DOR003': 'A return has been found for Order',\r\n 'DOR004': 'Order was not found',\r\n 'DOR005': 'Order is not active.',\r\n 'DOR006': 'The merchant does not match the order',\r\n 'DOR007': 'Upgrade Amount is missing.',\r\n 'DOR008': 'Could not find original transaction for orderkeyid',\r\n 'DOR009': 'Recur Record not found for keyid',\r\n 'DOR010': 'Multiple transactions found with that TransID',\r\n 'DTA001': 'TOAST decline',\r\n 'DTE200': 'Account information could not be verified',\r\n };\r\n\r\n\r\n // static getProcessorExceptionMessage(error) {\r\n // let toastMessage = '';\r\n // // error = error.toLowerCase();\r\n // switch (error) {\r\n // case 'AA':\r\n // toastMessage = 'Approved Transaction (Authorizations and Reversals)';\r\n // break;\r\n\r\n // case 'AP':\r\n // toastMessage = 'Approved Transaction for a Partial Amount ';\r\n // break;\r\n\r\n // case 'AC':\r\n // toastMessage = 'Approved Transaction (without Cashback) ';\r\n // break;\r\n\r\n // case 'NC':\r\n // toastMessage = 'Decline (Pick Up Card) ';\r\n // break;\r\n\r\n // case 'ND':\r\n // toastMessage = 'Decline (Hard or Soft) ';\r\n // break;\r\n\r\n // case 'NF':\r\n // toastMessage = 'Decline (Record Not Found) ';\r\n // break;\r\n\r\n // case 'NR':\r\n // toastMessage = 'Decline (Referral Message) ';\r\n // break;\r\n\r\n // case 'N7':\r\n // toastMessage = 'Decline (For CVV2 Only) ';\r\n // break;\r\n\r\n // case 'NL':\r\n // toastMessage = 'Decline (Loyalty/Gift Error) ';\r\n // break;\r\n // // Add new exception keys above this line\r\n // default :\r\n // toastMessage = 'Something went wrong. Please contact administrator.';\r\n // }\r\n // return toastMessage;\r\n // }\r\n}","export namespace Messages {\r\n export const required = 'Please enter {name}.';\r\n export const requiredImage = 'Please upload {name}.';\r\n export const minlength = 'Min {min} digits/characters required.';\r\n export const maxlength = 'Max {max} digits/characters allowed.';\r\n export const email = '{name} is not valid.';\r\n export const pattern = '{name} is not valid.';\r\n export const amountpattern = '{name} should be in the range of 0-999999999.99 with max. of 2 decimals';\r\n export const matchPassword = '{name} is not matched.';\r\n export const invalidmobile = 'Only number is allowed.';\r\n export const isNumberOnly = 'Only number is allowed.';\r\n export const blankPassword = '{name} should not be blank.';\r\n export const cardNumber = '{name} not valid.';\r\n export const amount = 'Please enter {name} greater than 0';\r\n export const expiryDate = '{name} not valid';\r\n export const buyRate = '{name} should be greater than or equal to 0';\r\n export const emailWithMergeFields = `{name} is not valid (multiple values should be seperated with ; )`;\r\n export const numberLimitPattern = '{name} should be in the range of 1-60';\r\n export const DiscountAmount = '{name} should be less than Amount';\r\n export const DownPayment = '{name} should be less than Total Amount';\r\n export const Discount = '{name} should be less than Amount';\r\n export const MinDuration = 'Length of appointment must be at least 15 minutes';\r\n export const MaxDuration = 'Length of appointment must be less than or equal to 480 minutes';\r\n export const transactionDate = 'Schedule transaction date exceeds card expiry date.';\r\n export const doctorSlotNotAvaliable = 'Timeslot is not available for selected provider.';\r\n export const outsideWorkingHours = 'Time selected is outside provider working hours';\r\n export const isActiveDoctor = '{name} is not Active';\r\n export const isValidDate = '{name} is not Valid';\r\n export const isValidTime = '{name} is not Valid';\r\n export const validWorkingHours = 'Start time must be less than End time';\r\n export const slotUnAvailable = 'Slot not available';\r\n export const workingHoursAlreadyAdded = 'This doctor is scheduled at another practice for times selected.';\r\n}\r\n","import { AbstractControl, FormControl, ValidatorFn } from '@angular/forms';\r\nimport { DiscountTypeEnum } from 'src/app/enum/recurring-payment-type.enum';\r\n\r\nimport * as moment from 'moment';\r\n\r\n// import { PhoneNumberFormat, PhoneNumberUtil } from 'google-libphonenumber';\r\n\r\nexport class PasswordValidation {\r\n\r\n static MatchPassword(AC: AbstractControl) {\r\n const password = AC.get('newPassword').value; // to get value in input tag\r\n const confirmPassword = AC.get('confirmPassword').value; // to get value in input tag\r\n if (password !== confirmPassword) {\r\n AC.get('confirmPassword').setErrors({ matchPassword: true });\r\n } else if (confirmPassword && confirmPassword.trim() === '') {\r\n AC.get('newPassword').setErrors({ blankPassword: true });\r\n AC.get('confirmPassword').setErrors({ blankPassword: true });\r\n } else if (password === confirmPassword) {\r\n AC.get('confirmPassword').setErrors(null);\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n static isMobileNumber(AC: AbstractControl) {\r\n\r\n const mobileNo = AC.get('MobileNoHide').value; // to get value in input tag\r\n const countryCode = AC.get('countryCode').value; // to get value in input tag\r\n\r\n if (mobileNo && countryCode) {\r\n const noWithCountryCode = \"+\" + countryCode.ISDCode + \" \" + mobileNo;\r\n let valid = false;\r\n try {\r\n // const phoneUtil = PhoneNumberUtil.getInstance();\r\n // valid = phoneUtil.isValidNumber(phoneUtil.parse(noWithCountryCode));\r\n } catch (e) {\r\n valid = false;\r\n }\r\n if (valid) {\r\n return null;\r\n\r\n } else {\r\n AC.get('MobileNo').setErrors({ invalidmobile: true })\r\n }\r\n }\r\n }\r\n\r\n static isMobileValid(AC: AbstractControl) {\r\n if (AC.get('MobileNo')) {\r\n const mobileNo = AC.get('MobileNo').value; // to get value in input tag\r\n\r\n if (mobileNo) {\r\n try {\r\n\r\n if (mobileNo.match(/.*[^0-9].*/)) {\r\n AC.get('MobileNo').setErrors({ invalidmobile: true })\r\n\r\n } else {\r\n return null;\r\n }\r\n } catch (e) {\r\n AC.get('MobileNo').setErrors({ invalidmobile: true })\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n static isOTP(AC: AbstractControl) {\r\n if (AC.get('OTP')) {\r\n const otp = AC.get('OTP').value; // to get value in input tag\r\n\r\n if (otp) {\r\n try {\r\n if (otp.match(/.*[^0-9].*/)) {\r\n AC.get('OTP').setErrors({ invalidmobile: true })\r\n\r\n } else {\r\n return null;\r\n }\r\n } catch (e) {\r\n AC.get('OTP').setErrors({ invalidmobile: true })\r\n }\r\n }\r\n }\r\n\r\n }\r\n\r\n}\r\n\r\nexport class RatePlanValidation {\r\n static amount(control: FormControl) {\r\n // const amount = control.get('feeconfig').value;\r\n // if (amount !== null) {\r\n // if (amount <= 0) {\r\n // // debugger;\r\n // control.get('amount').setErrors({amount: true});\r\n // } else if (amount > 0 && !(/^[0-9]{1,9}(\\.[0-9]{1,2})?$/).test(amount)) {\r\n // control.get('amount').setErrors({amountpattern: true});\r\n // } else {\r\n // return null;\r\n // // control.parent.get('maskCardNumber').setErrors({cardNumber: true});\r\n // }\r\n // } else {\r\n // return null;\r\n // }\r\n }\r\n}\r\n\r\nexport class CardValidation {\r\n static amount(control: FormControl) {\r\n const amount = control.get('amount').value;\r\n if (amount !== null && amount !== '') {\r\n if (amount <= 0) {\r\n // debugger;\r\n control.get('amount').setErrors({ amount: true });\r\n } else if (amount > 0 && !(/^[0-9]{1,9}(\\.[0-9]{1,2})?$/).test(amount)) {\r\n control.get('amount').setErrors({ amountpattern: true });\r\n } else {\r\n return null;\r\n // control.parent.get('maskCardNumber').setErrors({cardNumber: true});\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n static convenienceAmount(control: FormControl) {\r\n const amount = control.get('convenienceAmount').value;\r\n if (amount !== null) {\r\n if (amount < 0) {\r\n // debugger;\r\n control.get('convenienceAmount').setErrors({ amount: true });\r\n } else if (amount > 0 && !(/^[0-9]{1,9}(\\.[0-9]{1,2})?$/).test(amount)) {\r\n control.get('convenienceAmount').setErrors({ amountpattern: true });\r\n } else {\r\n return null;\r\n // control.parent.get('maskCardNumber').setErrors({cardNumber: true});\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n static tipAmount(control: FormControl) {\r\n const amount = control.get('tipAmount').value;\r\n if (amount !== null) {\r\n if (amount < 0) {\r\n // debugger;\r\n control.get('tipAmount').setErrors({ amount: true });\r\n } else if (amount > 0 && !(/^[0-9]{1,9}(\\.[0-9]{1,2})?$/).test(amount)) {\r\n control.get('tipAmount').setErrors({ amountpattern: true });\r\n } else {\r\n return null;\r\n // control.parent.get('maskCardNumber').setErrors({cardNumber: true});\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n static taxAmount(control: FormControl) {\r\n const amount = control.get('taxAmount').value;\r\n if (amount !== null) {\r\n if (amount < 0) {\r\n // debugger;\r\n control.get('taxAmount').setErrors({ amount: true });\r\n } else if (amount > 0 && !(/^[0-9]{1,9}(\\.[0-9]{1,2})?$/).test(amount)) {\r\n control.get('taxAmount').setErrors({ amountpattern: true });\r\n } else {\r\n return null;\r\n // control.parent.get('maskCardNumber').setErrors({cardNumber: true});\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n static cvvValidation(control: FormControl) {\r\n const cvDataStatus = control.get('cvDataStatus').value;\r\n if (cvDataStatus === 'AV') {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n static card_Expiry(control: FormControl) {\r\n const cardExpiry = control.get('cardExpiry').value;\r\n if (cardExpiry !== null) {\r\n if (/[^0-9]+/.test(cardExpiry)) {\r\n control.get('cardExpiry').setErrors({ expiryDate: true });\r\n }\r\n if (cardExpiry.length < 4) {\r\n control.get('cardExpiry').setErrors({ expiryDate: true });\r\n }\r\n if (cardExpiry.length === 4) {\r\n const yy = Number(cardExpiry.substr(2));\r\n const mm = Number(cardExpiry.substr(0, 2));\r\n if (mm <= 12 && mm > 0) {\r\n let expirationDate;\r\n if (mm === 12) {\r\n expirationDate = new Date(2000 + yy, mm - 1, 31);\r\n } else {\r\n expirationDate = new Date(2000 + yy, mm, 1);\r\n expirationDate.setDate(expirationDate.getDate() - 1);\r\n // expirationDate = expirationDate - 1;\r\n }\r\n const todaysDate = Date.now();\r\n if (expirationDate > todaysDate) {\r\n return null;\r\n } else {\r\n control.get('cardExpiry').setErrors({ expiryDate: true });\r\n }\r\n } else {\r\n control.get('cardExpiry').setErrors({ expiryDate: true });\r\n }\r\n }\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n static valid_card(control: FormControl) {\r\n let validCard = false;\r\n let cardNo = '';\r\n // let cardNo = control.value;\r\n if (control['controls'].maskCardNumber !== undefined) {\r\n cardNo = control.get('maskCardNumber').value;\r\n }\r\n\r\n if (control['controls'].creditCardNumber !== undefined) {\r\n cardNo = control.get('creditCardNumber').value;\r\n }\r\n\r\n if (control['controls'].cardNumber !== undefined) {\r\n cardNo = control.get('cardNumber').value;\r\n }\r\n\r\n // let amount = control.get('amount').value;\r\n // accept only digits, dashes or spaces\r\n if (cardNo !== '' && cardNo !== null) {\r\n // if (cardNo !== null) {\r\n if (cardNo.length === 8 && cardNo.includes('****')) {\r\n return null;\r\n }\r\n // }\r\n\r\n if (/[^0-9]+/.test(cardNo)) {\r\n if (control['controls'].maskCardNumber !== undefined) {\r\n control.get('maskCardNumber').setErrors({ cardNumber: true });\r\n }\r\n if (control['controls'].cardNumber !== undefined) {\r\n control.get('cardNumber').setErrors({ cardNumber: true });\r\n }\r\n\r\n if (control['controls'].creditCardNumber !== undefined) {\r\n control.get('creditCardNumber').setErrors({ cardNumber: true });\r\n }\r\n }\r\n\r\n // The Luhn Algorithm. It's so pretty.\r\n let nCheck = 0;\r\n let nDigit = 0;\r\n let bEven = false;\r\n cardNo = cardNo.replace(/\\D/g, '');\r\n\r\n for (let n = cardNo.length - 1; n >= 0; n--) {\r\n const cDigit = cardNo.charAt(n);\r\n nDigit = parseInt(cDigit, 10);\r\n if (bEven) {\r\n if ((nDigit *= 2) > 9) {\r\n nDigit -= 9;\r\n }\r\n }\r\n\r\n nCheck += nDigit;\r\n bEven = !bEven;\r\n }\r\n validCard = ((nCheck % 10) === 0);\r\n\r\n if (validCard) {\r\n // debugger;\r\n return null;\r\n } else {\r\n if (control['controls'].maskCardNumber !== undefined) {\r\n control.get('maskCardNumber').setErrors({ cardNumber: true });\r\n }\r\n if (control['controls'].creditCardNumber !== undefined) {\r\n control.get('creditCardNumber').setErrors({ cardNumber: true });\r\n }\r\n if (control['controls'].cardNumber !== undefined) {\r\n control.get('cardNumber').setErrors({ cardNumber: true });\r\n }\r\n // control.parent.get('maskCardNumber').setErrors({cardNumber: true});\r\n }\r\n }\r\n // return validCard;\r\n }\r\n}\r\n\r\n\r\nexport class TemplateValidation {\r\n static toEmail_mergefield(control: FormControl) {\r\n const emailValue = control.get('To').value;\r\n const MailMergeFields = control.get('MailMergeFields').value;\r\n if (emailValue !== null && emailValue !== '') {\r\n const values = emailValue.split(';');\r\n values.forEach(element => {\r\n const 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,}))$/;\r\n if (MailMergeFields == null) {\r\n if (!email_regex.test(element)) {\r\n control.get('To').setErrors({ emailWithMergeFields: true });\r\n }\r\n } else {\r\n for (let i = 0; i < MailMergeFields.length; i++) {\r\n if (email_regex.test(element) || element === `[[${MailMergeFields[i].displayName}]]`) {\r\n control.get('To').setErrors(null);\r\n break;\r\n } else {\r\n control.get('To').setErrors({ emailWithMergeFields: true });\r\n }\r\n }\r\n }\r\n });\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n static ccEmail_mergefield(control: FormControl) {\r\n const emailValue = control.get('CC').value;\r\n const MailMergeFields = control.get('MailMergeFields').value;\r\n if (emailValue !== null && emailValue !== '') {\r\n const values = emailValue.split(';');\r\n values.forEach(element => {\r\n const 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,}))$/;\r\n if (MailMergeFields == null) {\r\n if (!email_regex.test(element)) {\r\n control.get('CC').setErrors({ emailWithMergeFields: true });\r\n }\r\n } else {\r\n for (let i = 0; i < MailMergeFields.length; i++) {\r\n if (email_regex.test(element) || element === `[[${MailMergeFields[i].displayName}]]`) {\r\n control.get('CC').setErrors(null);\r\n break;\r\n } else {\r\n control.get('CC').setErrors({ emailWithMergeFields: true });\r\n }\r\n }\r\n }\r\n });\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n static bccEmail_mergefield(control: FormControl) {\r\n const emailValue = control.get('BCC').value;\r\n const MailMergeFields = control.get('MailMergeFields').value;\r\n if (emailValue !== null && emailValue !== '') {\r\n const values = emailValue.split(';');\r\n values.forEach(element => {\r\n const 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,}))$/;\r\n if (MailMergeFields == null) {\r\n if (!email_regex.test(element)) {\r\n control.get('BCC').setErrors({ emailWithMergeFields: true });\r\n }\r\n } else {\r\n for (let i = 0; i < MailMergeFields.length; i++) {\r\n if (email_regex.test(element) || element === `[[${MailMergeFields[i].displayName}]]`) {\r\n control.get('BCC').setErrors(null);\r\n break;\r\n } else {\r\n control.get('BCC').setErrors({ emailWithMergeFields: true });\r\n }\r\n }\r\n }\r\n });\r\n } else {\r\n return null;\r\n }\r\n }\r\n\r\n\r\n static checkDiscountAmount(control: FormControl) {\r\n const subtotal = control.get('SubTotal').value;\r\n const discountType = control.get('DiscountList').value;\r\n const discount = control.get('Discount').value;\r\n const discountAmount = control.get('DiscountAmount').value;\r\n const amount_regex = new RegExp('^([0-9]{1,9})(\\\\.[0-9]{1,2})?$');\r\n\r\n if (discountType == 1) {\r\n if (parseFloat(subtotal) <= parseFloat(discount)) {\r\n control.get('Discount').setErrors({ Discount: true });\r\n } else if (discount !== null && discount !== undefined && discount !== '') {\r\n if (!amount_regex.test(discount.toString())) {\r\n control.get('Discount').setErrors({ pattern: true });\r\n return null;\r\n }\r\n } else {\r\n control.get('Discount').setErrors(null);\r\n return null;\r\n }\r\n } else if (discountType == 2) {\r\n if (discount == 100) {\r\n control.get('Discount').setErrors({ Discount: true });\r\n return null;\r\n }\r\n if (parseFloat(subtotal) <= parseFloat(discountAmount)) {\r\n control.get('DiscountAmount').setErrors({ DiscountAmount: true });\r\n } else if (discountAmount !== null && discountAmount !== undefined && discountAmount !== '') {\r\n if (!amount_regex.test(discountAmount.toString())) {\r\n control.get('DiscountAmount').setErrors({ pattern: true });\r\n return null;\r\n }\r\n } else {\r\n control.get('DiscountAmount').setErrors(null);\r\n return null;\r\n }\r\n }\r\n }\r\n static checkTransDiscountAmount(control: FormControl) {\r\n const subtotal = control.get('Amount').value;\r\n const discountType = control.get('DiscountList').value;\r\n const discount = control.get('Discount').value;\r\n const discountAmount = control.get('DiscountAmount').value;\r\n const amount_regex = new RegExp('^([0-9]{1,9})(\\\\.[0-9]{1,2})?$');\r\n\r\n if (discountType == 1) {\r\n if (parseFloat(subtotal) <= parseFloat(discount)) {\r\n control.get('Discount').setErrors({ Discount: true });\r\n } else if (discount !== null && discount !== undefined && discount !== '') {\r\n if (!amount_regex.test(discount.toString())) {\r\n control.get('Discount').setErrors({ pattern: true });\r\n return null;\r\n }\r\n } else {\r\n control.get('Discount').setErrors(null);\r\n return null;\r\n }\r\n } else if (discountType == 2) {\r\n if (discount == 100) {\r\n control.get('Discount').setErrors({ Discount: true });\r\n return null;\r\n }\r\n if (parseFloat(subtotal) <= parseFloat(discountAmount)) {\r\n control.get('DiscountAmount').setErrors({ DiscountAmount: true });\r\n } else if (discountAmount !== null && discountAmount !== undefined && discountAmount !== '') {\r\n if (!amount_regex.test(discountAmount.toString())) {\r\n control.get('DiscountAmount').setErrors({ pattern: true });\r\n return null;\r\n }\r\n } else {\r\n control.get('DiscountAmount').setErrors(null);\r\n return null;\r\n }\r\n }\r\n }\r\n static checkDownPaymentAmount(control: FormControl) {\r\n const subtotal = control.get('SubTotal').value;\r\n const discountType = control.get('DiscountList').value;\r\n const discount = control.get('Discount').value;\r\n const discountAmount = control.get('DiscountAmount').value;\r\n const downPayment = control.get('DownPayment').value;\r\n const taxCalculated = control.get('TaxCalculated').value;\r\n\r\n const amount_regex = new RegExp('^([0-9]{1,9})(\\\\.[0-9]{1,2})?$');\r\n\r\n if (discountType == 1) {\r\n if ((parseFloat(subtotal) - (discount !== '' ? parseFloat(discount) : 0) + (taxCalculated !== '' ? parseFloat(taxCalculated) : 0)) <= parseFloat(downPayment)) {\r\n control.get('DownPayment').setErrors({ DownPayment: true });\r\n } else if (downPayment !== null && downPayment !== undefined && downPayment !== '') {\r\n if (!amount_regex.test(downPayment.toString())) {\r\n control.get('DownPayment').setErrors({ pattern: true });\r\n return null;\r\n } else {\r\n control.get('DownPayment').setErrors(null);\r\n return null;\r\n }\r\n } else {\r\n control.get('DownPayment').setErrors(null);\r\n return null;\r\n }\r\n } else if (discountType == 2) {\r\n // if (discount == 100) {\r\n // control.get('Discount').setErrors({ Discount: true });\r\n // return null;\r\n // }\r\n if ((parseFloat(subtotal) - (discountAmount !== '' ? parseFloat(discountAmount) : 0) + (taxCalculated !== '' ? parseFloat(taxCalculated) : 0)) <= parseFloat(downPayment)) {\r\n control.get('DownPayment').setErrors({ DownPayment: true });\r\n } else if (downPayment !== null && downPayment !== undefined && downPayment !== '') {\r\n if (!amount_regex.test(downPayment.toString())) {\r\n control.get('DownPayment').setErrors({ pattern: true });\r\n return null;\r\n } else {\r\n control.get('DownPayment').setErrors(null);\r\n return null;\r\n }\r\n } else {\r\n control.get('DownPayment').setErrors(null);\r\n return null;\r\n }\r\n }\r\n }\r\n static checkDiscountAmountForSubscription(control: FormControl) {\r\n const subtotal = control.get('SubscriptionAmount').value;\r\n const discountType = control.get('DiscountList').value;\r\n const discount = control.get('Discount').value;\r\n const discountAmount = control.get('DiscountAmount').value;\r\n const amount_regex = new RegExp('^([0-9]{1,9})(\\\\.[0-9]{1,2})?$');\r\n\r\n if (discountType == 1) {\r\n if (parseFloat(subtotal) <= parseFloat(discount)) {\r\n control.get('Discount').setErrors({ Discount: true });\r\n } else if (discount !== null && discount !== undefined && discount !== '') {\r\n if (!amount_regex.test(discount.toString())) {\r\n control.get('Discount').setErrors({ pattern: true });\r\n return null;\r\n }\r\n } else {\r\n control.get('Discount').setErrors(null);\r\n return null;\r\n }\r\n } else if (discountType == 2) {\r\n if (discount == 100) {\r\n control.get('Discount').setErrors({ Discount: true });\r\n return null;\r\n }\r\n if (parseFloat(subtotal) <= parseFloat(discountAmount)) {\r\n control.get('DiscountAmount').setErrors({ DiscountAmount: true });\r\n } else if (discountAmount !== null && discountAmount !== undefined && discountAmount !== '') {\r\n if (!amount_regex.test(discountAmount.toString())) {\r\n control.get('DiscountAmount').setErrors({ pattern: true });\r\n return null;\r\n }\r\n } else {\r\n control.get('DiscountAmount').setErrors(null);\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n static validateDiscountAmount(control: FormControl) {\r\n const unitPrice = control.get('UnitPrice').value;\r\n const discountType = control.get('DiscountList').value;\r\n const discountAmount = control.get('DiscountAmount').value;\r\n const amount_regex = new RegExp('^([0-9]{1,9})(\\\\.[0-9]{1,2})?$');\r\n if (parseFloat(unitPrice) < parseFloat(discountAmount)) {\r\n control.get('DiscountAmount').setErrors({ DiscountAmount: true });\r\n } else if (discountAmount !== null && discountAmount !== undefined && discountAmount !== '') {\r\n if (!amount_regex.test(discountAmount.toString())) {\r\n if (discountType == 1) {\r\n control.get('DiscountAmount').setErrors({ pattern: true });\r\n return null;\r\n }\r\n } else {\r\n control.get('DiscountAmount').setErrors(null);\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n static validateDiscountAmountForCustomPlan(control: FormControl) {\r\n const rate = control.get('Rate').value;\r\n const discountType = control.get('DiscountList').value;\r\n const discountAmount = control.get('DiscountAmount').value;\r\n const amount_regex = new RegExp('^([0-9]{1,9})(\\\\.[0-9]{1,2})?$');\r\n if (rate === 0) {\r\n if (discountAmount !== null && discountAmount !== undefined && discountAmount !== \"\") {\r\n if (!amount_regex.test(discountAmount.toString())) {\r\n if (discountType == 1) {\r\n control.get('DiscountAmount').setErrors({ pattern: true, required: true });\r\n return null;\r\n }\r\n } else {\r\n control.get('DiscountAmount').setErrors(null);\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n if (parseFloat(rate) < parseFloat(discountAmount)) {\r\n control.get('DiscountAmount').setErrors({ DiscountAmount: true });\r\n } else if (discountAmount !== null && discountAmount !== undefined && discountAmount !== '') {\r\n if (!amount_regex.test(discountAmount.toString())) {\r\n if (discountType == 1) {\r\n control.get('DiscountAmount').setErrors({ pattern: true });\r\n return null;\r\n }\r\n } else {\r\n control.get('DiscountAmount').setErrors(null);\r\n return null;\r\n }\r\n }\r\n }\r\n\r\n static validateMinMaxAmount(control: FormControl) {\r\n const minAmount = control.get('MinAmount').value;\r\n const maxAmount = +control.get('MaxAmount').value;\r\n if (maxAmount < minAmount) {\r\n control.get('MinAmount').setErrors({ MinAmount: true });\r\n } else {\r\n return null;\r\n }\r\n }\r\n static validateDuration(control: FormControl) {\r\n const duration = control.get('Duration').value;\r\n const duration_regex = new RegExp('^(1[5-9]|[2-9][0-9]|[1-3][0-9]{2}|4[0-7][0-9]|480)?$');\r\n if (!duration_regex.test(duration)) {\r\n control.get('Duration').setErrors({ pattern: true });\r\n if (duration < 15) {\r\n control.get('Duration').setErrors({ MinDuration: true });\r\n } else if (duration > 480) {\r\n control.get('Duration').setErrors({ MaxDuration: true });\r\n }\r\n return null;\r\n } else {\r\n control.get('Duration').setErrors(null);\r\n return null;\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\nexport class CustomValidation {\r\n static discount(control: FormControl) {\r\n const discountType = control.get('DiscountType').value;\r\n const discountAmount = control.get('DiscountAmount').value;\r\n const subTotal = control.get('SubTotal').value;\r\n\r\n if (discountType === DiscountTypeEnum.Fixed) {\r\n if (+discountAmount > +subTotal) {\r\n control.get('DiscountAmount').setErrors({ pattern: true });\r\n } else {\r\n control.get('DiscountAmount').setErrors(null);\r\n }\r\n } else if (discountType === DiscountTypeEnum.Percentage) {\r\n if (+discountAmount > +subTotal) {\r\n control.get('DiscountPercentage').setErrors({ pattern: true });\r\n } else {\r\n control.get('DiscountPercentage').setErrors(null);\r\n }\r\n } else {\r\n return null;\r\n }\r\n\r\n }\r\n\r\n static validateRoutingNumber(control: FormControl) {\r\n let routingNumber;\r\n if (control['controls'].RoutingNo) {\r\n // temp condition, need to change formControlName in add ACH TXN\r\n routingNumber = control.get('RoutingNo').value;\r\n } else if (control['controls'].routingNumber) {\r\n routingNumber = control.get('routingNumber').value;\r\n }\r\n\r\n const strRegex =\r\n '[/?a/?b/?c/?d/?e/?f/?g/?h/?i/?j/?k/?l/?m/?n/?o/?p/?q/?r/?s/?t/?u/?v/?w/?x/?y/?z/?A/?B/?C/?D/?E/?F/?G/?H/?I/?J/?K/?L/?M/?N/?O/?P/?Q/?R/?S/?T/?U/?V/?W/?X/?Y/?Z]';\r\n const regex = new RegExp(strRegex);\r\n if (routingNumber === null || routingNumber.length !== 9 || regex.test(routingNumber)) {\r\n if (control['controls'].RoutingNo) {\r\n // temp condition, need to change formControlName in add ACH TXN\r\n control.get('RoutingNo').setErrors({ pattern: true });\r\n } else if (control['controls'].routingNumber) {\r\n control.get('routingNumber').setErrors({ pattern: true });\r\n }\r\n return;\r\n }\r\n\r\n let n = 0;\r\n for (let i = 0; i < routingNumber.length; i += 3) {\r\n n +=\r\n parseInt(routingNumber.charAt(i), 10) * 3 +\r\n parseInt(routingNumber.charAt(i + 1), 10) * 7 +\r\n parseInt(routingNumber.charAt(i + 2), 10);\r\n }\r\n\r\n // If the resulting sum is an even multiple of ten (but not zero),\r\n // the aba routing number is good.\r\n if (n !== 0 && n % 10 === 0) {\r\n if (control['controls'].RoutingNo) {\r\n // temp condition, need to change formControlName in add ACH TXN\r\n control.get('RoutingNo').setErrors(null);\r\n } else if (control['controls'].routingNumber) {\r\n control.get('routingNumber').setErrors(null);\r\n }\r\n } else {\r\n if (control['controls'].RoutingNo) {\r\n // temp condition, need to change formControlName in add ACH TXN\r\n control.get('RoutingNo').setErrors({ pattern: true });\r\n } else if (control['controls'].routingNumber) {\r\n control.get('routingNumber').setErrors({ pattern: true });\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\n\r\nexport class PractitionerValidation {\r\n\r\n static isActiveDoctor(doctorList): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: boolean } | null => {\r\n\r\n if (control.value !== undefined && control.value !== '' && control.value !== null) {\r\n const selectedDoctor = doctorList.find(x => x.id == control.value);\r\n if (selectedDoctor !== undefined && Boolean(JSON.parse(selectedDoctor.isActiveDoctor)) == false) {\r\n return { isActiveDoctor: true };\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n }\r\n\r\n\r\n}\r\nexport class DateValidation {\r\n\r\n static isValidDate(): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: boolean } | null => {\r\n\r\n if (control.value !== undefined && control.value !== '' && control.value !== null) {\r\n if (moment(control.value, 'MM/DD/YYYY', true).isValid()) {\r\n return null;\r\n } else {\r\n return { isValidDate: false };\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n }\r\n\r\n static isValidTime(): ValidatorFn {\r\n return (control: AbstractControl): { [key: string]: boolean } | null => {\r\n\r\n if (control.value !== undefined && control.value !== '' && control.value !== null) {\r\n\r\n let today = moment().format(\"MM/DD/YYYY\");\r\n let time = today + ' ' + control.value;\r\n\r\n var formats = [\"YYYY-MM-DD LT\", \"YYYY-MM-DD h:mm:ss A\", \"YYYY-MM-DD HH:mm:ss\", \"YYYY-MM-DD HH:mm\", \"MM/DD/YYYY HH:mm\"];\r\n\r\n if (moment(time, formats, true).isValid()) {\r\n return null;\r\n } else {\r\n return { isValidTime: false };\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n }\r\n\r\n\r\n}","import { NgForm, FormGroup, AbstractControl, FormControl, FormArray } from '@angular/forms';\r\nimport { Messages } from './messages.constant';\r\n\r\ninterface Config {\r\n [key: string]: {\r\n [key: string]: { [key: string]: string }\r\n };\r\n}\r\n\r\nexport class Validator {\r\n config: Config;\r\n formErrors: {};\r\n\r\n constructor(config: Config) {\r\n this.config = config;\r\n }\r\n\r\n validateAllFormFields(formGroup: FormGroup) {\r\n Object.keys(formGroup.controls).forEach(field => {\r\n const control = formGroup.get(field);\r\n if (control instanceof FormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n control.markAsDirty({ onlySelf: true });\r\n }\r\n else if (control instanceof FormArray) {\r\n Object.keys(control.controls).forEach(f => {\r\n const control2 = formGroup.get(f);\r\n if (control2 instanceof FormControl) {\r\n control2.markAsTouched({ onlySelf: true });\r\n control2.markAsDirty({ onlySelf: true });\r\n } else if (control2 instanceof FormGroup) {\r\n this.validateAllFormFields(control2);\r\n }\r\n });\r\n }\r\n else if (control instanceof FormGroup) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n\r\n validate(ngForm: NgForm | FormGroup) {\r\n this.formErrors = {};\r\n // Object.keys(ngForm.controls).forEach((ck) => {\r\n // this.formErrors[ck] = \"\";\r\n // let control = null;\r\n // if ((ngForm).get) {\r\n // control = (ngForm).get(ck);\r\n // } else {\r\n // control = (ngForm).form.get(ck);\r\n // }\r\n //\r\n // if (control && control.dirty && !control.valid) {\r\n // Object.keys(control.errors).forEach((ek) => {\r\n // this.formErrors[ck] += this.replacedToArgs(Messages[ek], this.config[ck][ek]) + \" \";\r\n // });\r\n // }\r\n // });\r\n\r\n // Validate multilevel form's validation (Used recursive)\r\n this.findChildrenAndValidate(ngForm, '');\r\n return this.formErrors;\r\n }\r\n\r\n private findChildrenAndValidate(obj, fieldName) {\r\n if (typeof obj.controls !== 'undefined') {\r\n const newObj = Object.keys(obj.controls);\r\n for (const i in newObj) {\r\n if (i) {\r\n this.findChildrenAndValidate(obj.controls[newObj[i]], newObj[i]);\r\n }\r\n }\r\n } else {\r\n if (obj && obj.dirty && !obj.valid && obj.errors !== null) {\r\n Object.keys(obj.errors).forEach((ek) => {\r\n this.formErrors[fieldName] = this.replacedToArgs(Messages[ek], this.config[fieldName][ek]) + \" \";\r\n });\r\n }\r\n }\r\n }\r\n\r\n private replacedToArgs(message: string, args: { [key: string]: string }) {\r\n if (args !== undefined) {\r\n Object.keys(args).forEach((arg) => {\r\n message = message.replace(new RegExp(`{${arg}}`, 'g'), args[arg]);\r\n });\r\n return message;\r\n }\r\n return message;\r\n }\r\n\r\n emailValidator(email: string): boolean {\r\n const EMAIL_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,}))$/;\r\n\r\n if (!EMAIL_REGEXP.test(email)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n mobileValidator(mobile: string): boolean {\r\n debugger;\r\n const PHONE_REGEXP = /^[(]{0,1}[0-9]{3}[)\\.\\- ]{0,1}[0-9]{3}[\\.\\- ]{0,1}[0-9]{4}$/;\r\n if (!PHONE_REGEXP.test(mobile)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n getVerifyMessage(err) {\r\n if (err) {\r\n err = err.replace('400 - Bad Request ', '');\r\n err = err.replace('\"', '');\r\n err = err.replace('\"', '');\r\n return err;\r\n } else {\r\n return 'Server is down Please contact to administrator.';\r\n }\r\n }\r\n\r\n getAge(birth) {\r\n const today = new Date();\r\n const nowyear = today.getFullYear();\r\n const nowmonth = today.getMonth() + 1;\r\n const nowday = today.getDate();\r\n const birthyear = birth.split('/')[2];\r\n const birthmonth = birth.split('/')[1];\r\n const birthday = birth.split('/')[0];\r\n let age = nowyear - birthyear;\r\n const age_month = nowmonth - birthmonth;\r\n const age_day = nowday - birthday;\r\n if (age_month < 0 || (age_month == 0 && age_day < 0)) {\r\n age = (age - 1);\r\n }\r\n return age;\r\n }\r\n\r\n checkemptyArray(obj) {\r\n if (obj && obj.length > 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n postalFilter(postalCode) {\r\n if (!postalCode) {\r\n return null;\r\n }\r\n\r\n postalCode = postalCode.toString().trim();\r\n\r\n const us = new RegExp('^\\\\d{5}(-{0,1}\\\\d{4})?$');\r\n const ca = new RegExp(/([ABCEGHJKLMNPRSTVXY]\\d)([ABCEGHJKLMNPRSTVWXYZ]\\d){2}/i);\r\n\r\n if (us.test(postalCode.toString())) {\r\n return postalCode;\r\n }\r\n\r\n if (ca.test(postalCode.toString().replace(/\\W+/g, ''))) {\r\n return postalCode;\r\n }\r\n return null;\r\n }\r\n}\r\n","export enum AchAccountType {\r\n Saving = 'Saving',\r\n Checking = 'Checking'\r\n\r\n}\r\n","export enum FrequencyEnum {\r\n Daily = '0',\r\n Weekly = '1',\r\n BiWeekly = '2',\r\n Monthly = '3',\r\n Quarterly = '4',\r\n HalfYearly = '5',\r\n Annually = '6'\r\n}\r\nexport enum FrequencyEnumToShow {\r\n Daily = '0',\r\n Week = '1',\r\n BiWeek = '2',\r\n Month = '3',\r\n Quarter = '4',\r\n HalfYear = '5',\r\n Annual = '6'\r\n}\r\n\r\nexport enum FrequencyParamEnum {\r\n Sunday = 'sun',\r\n Monday = 'mon',\r\n Tuesday = 'tue',\r\n Wednesday = 'wed',\r\n Thursday = 'thu',\r\n Friday = 'fri',\r\n Saturday = 'sat'\r\n}\r\n\r\nexport enum FrequencyParamEnumMapping {\r\n sun = 'Sunday',\r\n mon = 'Monday',\r\n tue = 'Tuesday',\r\n wed = 'Wednesday',\r\n thu = 'Thursday',\r\n fri = 'Friday',\r\n sat = 'Saturday'\r\n}\r\n\r\nexport enum FrequencyEnumForMonth {\r\n '1st' = '1',\r\n '2nd' = '2',\r\n '3rd' = '3',\r\n '4th' = '4',\r\n '5th' = '5',\r\n '6th' = '6',\r\n '7th' = '7',\r\n '8th' = '8',\r\n '9th' = '9',\r\n '10th' = '10',\r\n '11th' = '11',\r\n '12th' = '12',\r\n '13th' = '13',\r\n '14th' = '14',\r\n '15th' = '15',\r\n '16th' = '16',\r\n '17th' = '17',\r\n '18th' = '18',\r\n '19th' = '19',\r\n '20th' = '20',\r\n '21st' = '21',\r\n '22nd' = '22',\r\n '23rd' = '23',\r\n '24th' = '24',\r\n '25th' = '25',\r\n '26th' = '26',\r\n '27th' = '27',\r\n '28th' = '28',\r\n '29th' = '29',\r\n '30th' = '30',\r\n '31st' = '31',\r\n '32nd' = '32',\r\n '33rd' = '33',\r\n '34th' = '34',\r\n '35th' = '35',\r\n '36th' = '36',\r\n '37th' = '37',\r\n '38th' = '38',\r\n '39th' = '39',\r\n '40th' = '40',\r\n '41st' = '41',\r\n '42nd' = '42',\r\n '43rd' = '43',\r\n '44th' = '44',\r\n '45th' = '45',\r\n '46th' = '46',\r\n '47th' = '47',\r\n '48th' = '48',\r\n '49th' = '49',\r\n '50th' = '50',\r\n '51st' = '51',\r\n '52nd' = '52',\r\n '53rd' = '53',\r\n '54th' = '54',\r\n '55th' = '55',\r\n '56th' = '56',\r\n '57th' = '57',\r\n '58th' = '58',\r\n '59th' = '59',\r\n '60th' = '60',\r\n}\r\n\r\nexport enum InvoiceFrequencyEnum {\r\n OneTime = '0',\r\n Daily = '1',\r\n Weekly = '2',\r\n BiWeekly = '3'\r\n}","export enum ChannelTypeEnum {\r\n NotDefined = 1,\r\n ACH = 2,\r\n CreditCard = 3,\r\n DebitCard = 4,\r\n Cash = 9,\r\n Check = 10,\r\n}\r\nexport enum ChannelTypeTabEnum {\r\n 'all' = 0,\r\n 'ach' = 2,\r\n 'credit' = 3,\r\n 'debit' = 4,\r\n 'cash' = 9,\r\n 'check' = 10,\r\n}\r\nexport enum ChannelTypeForReportEnum {\r\n 'All' = '0',\r\n 'ACH' = '2',\r\n 'CC' = '3',\r\n 'Debit' = '4',\r\n 'Cash' = '9',\r\n 'Check' = '10',\r\n}\r\nexport enum ChannelTypeForPaymentPlanReportEnum {\r\n 'All' = '0',\r\n 'ACH' = '2',\r\n 'CC' = '3'\r\n}\r\nexport enum InvoicePaymentTypeForReportEnum{\r\n 'All' = 'NA',\r\n 'Installment' = '1',\r\n 'Scheduled OneTime' = '2',\r\n 'Subscription' = '3'\r\n}\r\nexport enum TransactionVolumeTypeForReportEnum{\r\n 'Payment Collected' = 'totalSale',\r\n //'InProcess' = 'inProcess',\r\n 'Refund' = 'refund',\r\n 'Decline' = 'decline'\r\n}\r\nexport enum InvoiceReportTypeEnum {\r\n 'All' = '0',\r\n 'Total' = '1',\r\n 'Tax' = '2',\r\n 'Discount' = '3'\r\n}\r\nexport enum ChannelTypeForReportListEnum {\r\n 'All' = '0',\r\n 'ACH' = '2',\r\n 'Credit Card' = '3',\r\n 'Debit Card' = '4',\r\n 'Cash' = '9',\r\n 'Check' = '10',\r\n}\r\n","export enum FeaturesEnum {\r\n \"addLinkPatient\" = 101,\r\n \"editPatient\" = 102,\r\n \"viewAllPatient\" = 103,\r\n \"resetPatientPassword\" = 104,\r\n \"addNotes\" = 105,\r\n \"patientInsuranceManagement\" = 106,\r\n \"bulkUploadPatients\" = 107,\r\n \"addPaymentAccount\" = 108,\r\n \"editPaymentAccount\" = 109,\r\n \"viewPaymentAccount\" = 110,\r\n \"deletePaymentAccount\" = 111,\r\n \"patientCheckInCheckOut\" = 112,\r\n \"optInOut\" = 113,\r\n \"uploadAttachments\" = 114,\r\n \"viewAttachments\" = 115,\r\n \"viewNotes\" = 116,\r\n \"productServicesManagement\" = 201,\r\n \"itemLookup\" = 202,\r\n \"viewAllInvoices\" = 203,\r\n \"addInvoice\" = 204,\r\n \"editInvoice\" = 205,\r\n \"sendToPatientInvoice\" = 206,\r\n \"resendInvoice\" = 207,\r\n \"closeAndWritreOff\" = 208,\r\n \"cancelInvoice\" = 209,\r\n \"invoicePayInFull\" = 210,\r\n \"createPaymentPlan\" = 211,\r\n \"createSubscriptionPlan\" = 212,\r\n \"viewAllClaims\" = 301,\r\n \"addNewClaim\" = 302,\r\n \"editClaim\" = 303,\r\n \"reScheduleClaim\" = 304,\r\n \"checkClaimStatus\" = 305,\r\n \"cancelClaim\" = 306,\r\n \"viewAllTransaction\" = 401,\r\n \"transactionReceipt\" = 402,\r\n \"voidTransaction\" = 403,\r\n \"refundTransaction\" = 404,\r\n \"cashAndCheckPayments\" = 405,\r\n \"updateCashAndCheckPayments\" = 406,\r\n \"achPayments\" = 407,\r\n \"viewAllplans\" = 501,\r\n \"viewReceipt\" = 502,\r\n \"viewTransactionHistory\" = 503,\r\n \"updatePlan\" = 504,\r\n \"updateAccount\" = 505,\r\n \"sendPaymentPlanReceipt\" = 506,\r\n \"24HourReminderScheduledPaymentNotifications(OTR)\" = 507,\r\n \"viewProviderSettings\" = 601,\r\n \"uploadLogo\" = 602,\r\n \"skins\" = 603,\r\n \"profile\" = 604,\r\n \"changePassword\" = 605,\r\n \"emailSetting\" = 606,\r\n \"viewNotificationSetting\" = 607,\r\n \"updateNotificationSetting\" = 608,\r\n \"viewAllInsurance\" = 701,\r\n \"viewInsuranceDetail\" = 702,\r\n \"addInsurance\" = 703,\r\n \"editInsurance\" = 704,\r\n \"viewAllUsers\" = 801,\r\n \"addUser\" = 802,\r\n \"editUser\" = 803,\r\n \"activatedUser\" = 804,\r\n \"deactivateUser\" = 805,\r\n \"userResetPassword\" = 806,\r\n \"viewAllPractitioner\" = 901,\r\n \"addPractitioner\" = 902,\r\n \"editPractitioner\" = 903,\r\n \"activatePractitioner\" = 904,\r\n \"deactivatePractitioner\" = 905,\r\n \"viewAllForms\" = 1001,\r\n \"addForms\" = 1002,\r\n \"editForms\" = 1003,\r\n \"linkForm\" = 1004,\r\n \"deactivateForm\" = 1005,\r\n \"activateForm\" = 1005,\r\n \"duplicateForm\" = 1006,\r\n \"viewPublicSubmissions\" = 1007,\r\n \"viewFormUrlAndQRCode\" = 1008,\r\n \"publicFormSubmissionEmailNotification\" = 1009,\r\n \"publicFormURLSenttoPatient\" = 1010,\r\n \"addsubmission\" = 1011,\r\n \"viewTrainingVideos\" = 1101,\r\n \"viewAllAppointment\" = 1401,\r\n \"addAppointment\" = 1402,\r\n \"editAppointment\" = 1403,\r\n \"deleteAppointment\" = 1404,\r\n \"24hAutoAppointmentReminder\" = 1405,\r\n \"transactionDashboardReports\" = 1501,\r\n \"patientReports\" = 1502,\r\n \"appointmentReports\" = 1503,\r\n \"invoiceReports\" = 1504,\r\n \"taxReports\" = 1505,\r\n \"viewEligibility\" = 1601,\r\n \"addEligibility\" = 1602,\r\n \"viewRoles\" = 1701,\r\n \"addUpdateRoles\" = 1702,\r\n \"activateDeactivateRole\" = 1703,\r\n \"roleLookup\" = 1704\r\n}","export enum InvoiceStatusEnum {\r\n 'Draft' = 1,\r\n 'Finalize' = 2,\r\n 'Cancelled' = 3,\r\n 'FullPaymentCreated' = 4, //'PayInProgress' = 4,\r\n\t'PaymentPlanCreated' = 5,\r\n 'OneTimeScheduledCreated'= 6, //'PayScheduled' = 6,\r\n\t'SubscriptionPlanCreated' = 7,\r\n\t'InProgress' = 8, //Unknown = 100,Created = 0,Pending = 1,Approved = 10,\r\n 'Paid' = 9, //Authorized = 2,Success = 16,\r\n 'Unpaid' = 10, //Failed = 5, Cancelled = 8,Refunded = 9,CancelAttempt = 11,RefundAttempt = 12,Denied = 14\r\n 'Unsubscribed' = 11, //subscription payment plan when cancel = 8\r\n 'Closed' = 30\r\n}\r\nexport enum InvoiceStatusReportEnum {\r\n 'Ready To Send'= 1,\r\n 'Awaiting Payment'= 2,\r\n 'Cancelled'= 3,\r\n 'Full payment created'= 4,\r\n 'Payment plan created'= 5,\r\n 'OneTime scheduled created'= 6,\r\n 'Subscription plan created'= 7,\r\n 'In progress'= 8,\r\n 'Paid'= 9,\r\n 'Unpaid'= 10,\r\n 'Unsubscribed'= 11,\r\n 'Closed'= 30\r\n }\r\nexport enum InvoiceStatusMapEnum {\r\n 'Draft' = 'Ready To Send',\r\n 'Finalize' = 'Awaiting Payment',\r\n 'Cancelled' = 'Cancelled',\r\n 'FullPaymentCreated' = 'Payment Created',\r\n 'PaymentPlanCreated' = 'Payment Plan Created',\r\n 'OneTimeScheduledCreated' = 'Payment Scheduled',\r\n 'SubscriptionPlanCreated' = 'Subscription Plan Created',\r\n 'InProgress' ='In Progress',\r\n 'Paid' = 'Paid',\r\n 'Unpaid' = 'Unpaid',\r\n 'Unsubscribed' ='Unsubscribed',\r\n 'Closed' = 'Closed'\r\n}\r\n\r\nexport enum InvoicePaymentStatusEnum {\r\n 'Unpaid' = 1,\r\n 'PartiallyPaid' = 2,\r\n 'Paid' = 3\r\n}\r\n\r\nexport enum InvoiceLineItemSourceEnum {\r\n 'Product' = 1,\r\n 'Manual' = 2\r\n}\r\n\r\nexport enum InvoiceTypeEnum {\r\n 'OneTime'= 0,\r\n 'Installment'= 1,\r\n 'ScheduledOneTime'= 2,\r\n 'Subscription'= 3\r\n}\r\nexport enum InvoiceTypeMapEnum {\r\n 'OneTime'= 'Full Payment',\r\n 'Installment'= 'Installment',\r\n 'ScheduledOneTime'= 'Scheduled One Time',\r\n 'Subscription'= 'Subscription'\r\n}\r\n","export enum RecurringPaymentTypeEnum {\r\n Installment = 1,\r\n OneTimeSchedulePayment = 2,\r\n Subscription = 3\r\n}\r\n\r\nexport enum DiscountTypeEnum {\r\n Fixed = 1,\r\n Percentage = 2\r\n}\r\n\r\n\r\nexport enum FrequencyEnum {\r\n Daily = 0,\r\n Weekly = 1,\r\n BiWeekly = 2,\r\n Monthly = 3,\r\n Quarterly = 4,\r\n HalfYearly = 5,\r\n Annually = 6\r\n}\r\n\r\nexport enum PaymentTypeEnum {\r\n creditCard = 'Credit Card',\r\n ach = 'ACH'\r\n}\r\n","export enum StorageType {\r\n \"local\",\r\n \"session\",\r\n \"cookie\"\r\n}\r\nexport enum MessageType {\r\n \"success\",\r\n \"error\",\r\n \"warning\",\r\n \"closed\"\r\n}\r\nexport enum UserType {\r\n \"User\",\r\n \"Patient\", \r\n \"Provider\",\r\n \"Global\"\r\n}\r\n","export enum TransactionOperationMapEnum {\r\n Sale = 'Sale', // 0,\r\n VerifyOnly = 'Auth Only', // 1,\r\n ForceSale = 'Force Sale', // 2,\r\n Adjust = 'Adjust', // 3,\r\n Activate = 'Activate', // 4,\r\n Deactivate = 'Deactivate', // 5,\r\n Reload = 'Reload', // 6,\r\n Refund = 'Refund', // 7,\r\n Inquire = 'Inquire', // 8\r\n}\r\n","export enum TransactionOperationEnum {\r\n Sale = 0,\r\n VerifyOnly = 1, // PreAuth for CC //auth\r\n ForceSale = 2, // Force Auth For CC //forcecap\r\n Adjust = 3, // Tip\r\n Activate = 4,\r\n Deactivate = 5,\r\n Reload = 6, // For Pre paid cards\r\n Refund = 7, // void (Earlier it was -Return)\r\n Inquire = 8, // For Gift Card And EBT\r\n}\r\n\r\nexport enum TransactionTypeEnum {\r\n 'Sale' = '0',\r\n 'Auth Only' = '1', // PreAuth for CC //auth// PreAuth for CC //auth\r\n}\r\n\r\nexport enum TransactionTypeForReport {\r\n Sale = 0,\r\n VerifyOnly = 1,\r\n}\r\n","export enum TransactionOriginEnum {\r\n Terminal = 0,\r\n VirtualTerminal = 1,\r\n WebForm = 2,\r\n API = 3,\r\n Schedule = 4,\r\n Batch = 5\r\n}\r\n","export enum TransactionStatusMapEnum {\r\n Created = 'Created', // 0\r\n Pending = 'Pending', // 1\r\n Authorized = 'Authorized', // 2\r\n Posted = 'Posted', // 3\r\n Captured = 'Accepted', // 4 (Earlier it was- Settled)\r\n Failed = 'Failed', // 5\r\n Returned = 'Returned', // 6\r\n Chargeback = 'Chargeback', // 7\r\n Cancelled = 'Void', // 8\r\n Refunded = 'Refunded', // 9\r\n Approved = 'Approved', // 10\r\n CancelAttempt = 'Void attempted', // 11\r\n RefundAttempt = 'Refund attempted' , // 12\r\n Hold = 'Hold', // 13\r\n Denied = 'Denied', // 14\r\n SettlementHold = 'Settlement hold', // 15\r\n Success = 'Success', // 16\r\n ReprocessAttempt = 'Reprocess attempted',\r\n Reprocessed = 'Reprocessed',\r\n Unknown = 'Unknown', // 100\r\n PartiallyCaptured = 'Partially accepted', // 101\r\n PartiallyReturned = 'Partially returned', // 102\r\n PartialReturnRequested = 'Partial return requested', // 103\r\n Closed = 'Closed', //30\r\n Deleted = 'Deleted' //25 where Recurring schdule table record is deleted\r\n}\r\n","export enum TransactionStatusEnum {\r\nCreated = 0,\r\nPending = 1,\r\nAuthorized = 2,\r\nPosted = 3,\r\nCaptured = 4, // (Earlier it was- Settled)\r\nFailed = 5,\r\nReturned = 6,\r\nChargeback = 7,\r\nCancelled = 8,\r\nRefunded = 9,\r\nApproved = 10,\r\nCancelAttempt = 11,\r\nRefundAttempt = 12,\r\nHold = 13,\r\nDenied = 14,\r\nSettlementHold = 15,\r\nSuccess = 16,\r\nRetried=17,\r\nReprocessAttempt = 18,\r\nReprocessed = 19,\r\nUnknown = 100,\r\nPartiallyCaptured = 101,\r\nPartiallyReturned = 102,\r\nPartialReturnRequested = 103,\r\nClosed = 30,\r\nDeleted = 25 //where Recurring schdule table record is deleted\r\n}\r\n","export enum UploadFileStatusEnum {\r\n PROCESSING = 1,\r\n PROCESSED = 2,\r\n ERROR = 3,\r\n}\r\nexport enum UploadRecordStatusEnum {\r\n FAILED = 1,\r\n PASSED = 2,\r\n}\r\n\r\nexport enum PatientUploadRecordEnum {\r\n Error = 'Error',\r\n FirstName = 'First Name',\r\n LastName = 'Last Name',\r\n Mrn = 'MRN',\r\n Dob = 'DOB(MM/DD/YYYY)',\r\n Phone = 'Phone',\r\n Email = 'Email',\r\n OptIn = 'Opt In for Text Message(Y/N)',\r\n AddressLine1 = 'Address Line 1',\r\n AddressLine2 = 'Address Line 2',\r\n City = 'City',\r\n State = 'State',\r\n Country = 'Country(USA/CANADA)',\r\n PostalCode = 'Postal Code',\r\n // HasInsurance = 'Has Insurance(Y/N)',\r\n // InsurancePayer = 'Insurance Payer',\r\n // PayerId = 'Payer Id',\r\n // PolicyNumber = 'Policy No.',\r\n // GroupNumber = 'Group No.',\r\n // BinNumber = 'Bin No.',\r\n // Relationship = 'Relationship(Self/Spouse/Parent/Other)',\r\n // InsurerFirstName = 'Insurer First Name',\r\n // InsurerLastName = 'Insurer Last Name',\r\n // InsurerPhone = 'Insurer Phone',\r\n // InsurerEmail = 'Insurer Email',\r\n // InsurerSameAddress = 'Is insurer has same addresss(Y/N)',\r\n // InsurerAddressLine1 = 'Insurer Address Line 1',\r\n // InsurerAddressLine2 = 'Insurer Address Line 2',\r\n // InsurerCity = 'Insurer City',\r\n // InsurerState = 'Insurer State',\r\n // InsurerCountry = 'Insurer Country',\r\n // InsurerPostalCode = 'Insurer Postal Code',\r\n Comment = 'Comment'\r\n}\r\n\r\nexport enum ProductUploadRecordEnum {\r\n Error = 'Error',\r\n //ProductType = 'Product Type',\r\n //CodeType = 'Code Type',\r\n Name = 'Name',\r\n //CptIcd10Code = 'CPT/ICD10 Code',\r\n //Icd10Code = 'ICD10 Code',\r\n Quantity = 'Quantity',\r\n UnitPrice = 'Unit Price',\r\n TaxPercent = 'Tax Percent',\r\n Description = 'Description',\r\n //Tags = 'Tags',\r\n //Comment = 'Comment'\r\n}","export enum UserTypeEnum {\r\n PATIENT = 0,\r\n PROVIDER = 1,\r\n GLOBAL = 2\r\n}\r\n","module.exports = \"
\\r\\n
© ™ 2011 aurionpro Solutions, Inc. All Rights Reserved.\\r\\n Terms of Use |\\r\\n Privacy Policy\\r\\n
\\r\\n
APF LOGO
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9sYXlvdXRzL2Zvb3Rlci9mb290ZXIuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-footer',\r\n templateUrl: './footer.component.html',\r\n styleUrls: ['./footer.component.scss']\r\n})\r\nexport class FooterComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n\\r\\n
Welcome {{userName}}
\\r\\n
{{parentUserName}} logged in as {{userName}}
\\r\\n \\r\\n
\\r\\n
Logout
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{headerFormErrors.ProviderName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9sYXlvdXRzL2hlYWRlci9oZWFkZXIuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from \"@angular/core\";\r\nimport { Router } from \"@angular/router\";\r\nimport { StorageService } from \"src/app/services/session/storage.service\";\r\nimport { AppSetting } from \"src/app/common/constants/appsetting.constant\";\r\nimport { StorageType } from \"src/app/services/session/storage.enum\";\r\nimport { SettingsService } from \"src/app/services/api/settings.service\";\r\nimport { CommonService } from \"src/app/services/api/common.service\";\r\nimport { ValidationConstant } from \"src/app/services/validation/validation.constant\";\r\nimport { Validators, FormBuilder } from \"@angular/forms\";\r\nimport { Validator } from \"src/app/common/validation/validator\";\r\nimport { ThemeService } from \"src/app/services/api/theme.service\";\r\nimport { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\n\r\n@Component({\r\n selector: \"app-header\",\r\n templateUrl: \"./header.component.html\",\r\n styleUrls: [\"./header.component.scss\"]\r\n})\r\nexport class HeaderComponent implements OnInit {\r\n userName = \"\";\r\n loggedInUserData: any;\r\n providerSelected: any;\r\n truncateWordLength = AppSetting.truncateWordLength;\r\n providerList;\r\n parentUserName = \"\";\r\n authData: any;\r\n headerForm: any;\r\n headerFormErrors: any = {};\r\n validator: Validator;\r\n math = Math;\r\n config = {\r\n ProviderName: {\r\n required: { name: ValidationConstant.patient.header.providerName.name }\r\n }\r\n };\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n public storageService: StorageService,\r\n private commonService: CommonService,\r\n private router: Router,\r\n private settingsService: SettingsService,\r\n private themeService: ThemeService\r\n ) {\r\n this.validator = new Validator(this.config);\r\n }\r\n\r\n ngOnInit() {\r\n this.loggedInUserData = JSON.parse(\r\n this.storageService.get(StorageType.session, \"userDetails\")\r\n );\r\n if (this.loggedInUserData.userName == null && this.loggedInUserData.userType !== UserTypeEnum.PATIENT) {\r\n let fullName = \"\";\r\n fullName =\r\n this.loggedInUserData.contact.name.firstName != null\r\n ? `${fullName} ${this.loggedInUserData.contact.name.firstName}`\r\n : `${fullName}`;\r\n fullName =\r\n this.loggedInUserData.contact.name.lastName != null\r\n ? `${fullName} ${this.loggedInUserData.contact.name.lastName}`\r\n : `${fullName}`;\r\n fullName = fullName.trim();\r\n this.userName = fullName;\r\n } else if (this.loggedInUserData.userType === UserTypeEnum.PATIENT) {\r\n this.userName = (this.loggedInUserData.contact.email !== null && this.loggedInUserData.contact.email !== \"\") ? this.loggedInUserData.contact.email : this.loggedInUserData.contact.phone;\r\n }\r\n else {\r\n this.userName = this.loggedInUserData.userName;\r\n }\r\n\r\n this.authData = this.commonService.getAuthData();\r\n if (this.authData.isEmulated) {\r\n this.parentUserName = this.authData.emulatorUserName.split(\"|\")[0];\r\n }\r\n if (this.loggedInUserData.userType === UserTypeEnum.PATIENT) {\r\n this.providerSelected = JSON.parse(\r\n this.storageService.get(StorageType.session, \"providerSelected\")\r\n );\r\n\r\n this.headerForm = this.formBuilder.group({\r\n ProviderName: [\"\", [Validators.required]]\r\n });\r\n\r\n this.providerList = JSON.parse(\r\n this.storageService.get(StorageType.session, \"providerList\")\r\n );\r\n\r\n this.headerForm.controls[\"ProviderName\"].patchValue(\r\n this.providerSelected.id\r\n );\r\n let providerData = this.getSelectedProviderByFilter(\r\n this.providerSelected.id\r\n )[0];\r\n\r\n this.settingsService.setProviderData(providerData);\r\n this.storageService.save(\r\n StorageType.session,\r\n \"providerSelected\",\r\n JSON.stringify(providerData)\r\n );\r\n let patientSettings = {\r\n logo: providerData.logo,\r\n skin: providerData.skin,\r\n providerName: providerData.providerUrlSuffix\r\n };\r\n this.storageService.save(\r\n StorageType.session,\r\n \"settingsData\",\r\n JSON.stringify(patientSettings)\r\n );\r\n this.settingsService.setSettingsData(patientSettings);\r\n this.themeService.changeTheme(patientSettings.skin);\r\n this.headerForm.valueChanges.subscribe(data => this.onValueChanged(data));\r\n this.headerForm.get(\"ProviderName\").valueChanges.subscribe(value => {\r\n\r\n if (value !== undefined) {\r\n let newProviderData = this.getSelectedProviderByFilter(value)[0];\r\n this.settingsService.setProviderData(newProviderData);\r\n this.storageService.save(\r\n StorageType.session,\r\n \"providerSelected\",\r\n JSON.stringify(newProviderData)\r\n );\r\n let patientSettings = {\r\n logo: newProviderData.logo,\r\n skin: newProviderData.skin,\r\n providerName: newProviderData.providerUrlSuffix\r\n };\r\n this.storageService.save(\r\n StorageType.session,\r\n \"settingsData\",\r\n JSON.stringify(patientSettings)\r\n );\r\n this.settingsService.setSettingsData(patientSettings);\r\n this.themeService.changeTheme(patientSettings.skin);\r\n }\r\n });\r\n }\r\n\r\n }\r\n getSelectedProviderByFilter(id) {\r\n return this.providerList.filter(x => x.id === id);\r\n }\r\n onValueChanged(data?: any) {\r\n if (!this.headerForm) {\r\n return;\r\n }\r\n this.headerFormErrors = this.validator.validate(this.headerForm);\r\n }\r\n logOut(sessionTimedOut?) {\r\n let settingData = JSON.parse(\r\n this.storageService.get(StorageType.session, \"settingsData\")\r\n );\r\n\r\n try {\r\n // this.isLoader = true;\r\n this.userName = \"\";\r\n\r\n this.storageService.remove(StorageType.session, \"userDetails\");\r\n this.storageService.remove(StorageType.session, \"auth\");\r\n this.storageService.remove(StorageType.session, \"roleDetails\");\r\n this.storageService.remove(StorageType.session, \"settingsData\");\r\n this.storageService.remove(StorageType.session, \"providerList\");\r\n this.storageService.remove(StorageType.session, \"providerSelected\");\r\n this.storageService.remove(StorageType.session, 'moduleDetails');\r\n // this.storageService.remove(StorageType.session, 'sessionTimeOut');\r\n // this.storageService.remove(StorageType.session, 'sessionWarning');\r\n this.settingsService.setSettingsData(undefined);\r\n // this.storageService.unsubscribeSignal()\r\n } catch (Execption) {\r\n // this.isLoader = false;\r\n this.userName = \"\";\r\n this.storageService.remove(StorageType.session, \"userDetails\");\r\n this.storageService.remove(StorageType.session, \"auth\");\r\n this.storageService.remove(StorageType.session, \"roleDetails\");\r\n this.storageService.remove(StorageType.session, \"settingsData\");\r\n this.storageService.remove(StorageType.session, \"providerList\");\r\n this.storageService.remove(StorageType.session, \"providerSelected\");\r\n this.storageService.remove(StorageType.session, 'moduleDetails');\r\n // this.storageService.remove(StorageType.session, 'sessionTimeOut');\r\n // this.storageService.remove(StorageType.session, 'sessionWarning');\r\n this.settingsService.setSettingsData(undefined);\r\n //this.storageService.unsubscribeSignal()\r\n }\r\n if(sessionTimedOut){\r\n //window.location.reload();\r\n var openModals = document.querySelectorAll(\".modal.ui\");\r\n if(openModals) {\r\n for(let i = 0; i < openModals.length; i++) {\r\n let modalHeader = openModals[i].getElementsByClassName(\"header\")\r\n var closeButton : any = modalHeader[0].getElementsByClassName(\"close\");\r\n if(closeButton && closeButton.length > 0) {\r\n //simulate click on close button\r\n closeButton[0].click();\r\n }\r\n }\r\n }\r\n }\r\n this.commonService.stopIdleSubscription();\r\n if (settingData != null && settingData.providerName != null) {\r\n let newUrl = \"/login/\" + settingData.providerName;\r\n this.router.navigate([newUrl]);\r\n } else {\r\n this.router.navigate([\"/login\"]);\r\n }\r\n \r\n }\r\n}\r\n","module.exports = \"
\\r\\n
 
\\r\\n
\\r\\n\\r\\n
\\r\\n

Page background text for loader works! Page background text for loader works! Page background text for loader works! Page background text for loader works! Page background text for loader works! Page background text for loader works! Page background text for loader works! Page background text for loader works! Page background text for loader works! Page background text for loader works! Page background text for loader works! Page background text for loader works! Page background text for loader works! Page background text for loader works! Page background text for loader works! Page background text for loader works! Page background text for loader works! Page background text for loader works!

\\r\\n
\\r\\n \"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9sYXlvdXRzL2xvYWRlci9sb2FkZXIuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-loader',\r\n templateUrl: './loader.component.html',\r\n styleUrls: ['./loader.component.scss']\r\n})\r\nexport class LoaderComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{'invoice.find.header' | translate}}\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{'invoice.find.header' | translate}}\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9sYXlvdXRzL3NpZGUtbmF2L3NpZGUtbmF2LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, ElementRef, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { StorageType } from '../../../enum/storage.enum';\r\nimport { StorageService } from '../../../services/session/storage.service';\r\nimport { AccessRightsService } from '../../../services/api/access-rights.service';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\nimport { SettingsService } from 'src/app/services/api/settings.service';\r\nimport { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\nimport { ThemeService } from 'src/app/services/api/theme.service';\r\nimport { ModalTemplate, SuiModalService, TemplateModalConfig } from 'ng2-semantic-ui';\r\n//import { Subscription } from 'rxjs';\r\nimport { Exception } from 'src/app/common/exceptions/exception';\r\n//import { IContext } from '../../secure/provider/component/transactions/transaction-management/find-transaction/find-transaction.component';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\nimport { ToasterService } from 'src/app/services/api/toaster.service';\r\n\r\n@Component({\r\n selector: 'app-side-nav',\r\n templateUrl: './side-nav.component.html',\r\n styleUrls: ['./side-nav.component.scss']\r\n})\r\nexport class SideNavComponent implements OnInit, OnDestroy {\r\n loggedInUserData: any = {};\r\n loggedInAuthData: any = {};\r\n enableOnProduction = false;\r\n sideNavVisible = false;\r\n settingsData: any = {};\r\n isRefreshLoader = false;\r\n rootRoute = '';\r\n toastData: any;\r\n // private sessionWarningTimer: Subscription;\r\n // private sessionTimeoutTimer: Subscription;\r\n // @ViewChild('modalSessionExpiringAlert') modalSessionExpiringAlert: ModalTemplate;\r\n //@ViewChild('closeResetSession') closeResetSession: ElementRef;\r\n\r\n permissions: any = this.accessRightsService.getAllFeatureAccessToUser();\r\n\r\n constructor(\r\n private storageService: StorageService,\r\n private accessRightsService: AccessRightsService,\r\n private settingsService: SettingsService,\r\n private themeService: ThemeService,\r\n private commonService: CommonService,\r\n private toasterService: ToasterService,\r\n private modalService: SuiModalService,\r\n ) { }\r\n ngOnDestroy(): void {\r\n //console.log(\"Destroy called\")\r\n // if (this.sessionWarningTimer && !this.sessionWarningTimer.closed) { this.sessionWarningTimer.unsubscribe() };\r\n // if (this.sessionTimeoutTimer && !this.sessionTimeoutTimer.closed) { this.sessionTimeoutTimer.unsubscribe() };\r\n }\r\n\r\n ngOnInit() {\r\n //console.log(\"ngOnInit called\")\r\n // this.sessionWarningTimer = this.storageService.sessionWarningTimer$.subscribe(() => {\r\n // // console.log(\"inside \")\r\n // //console.log(JSON.stringify(this.loggedInAuthData))\r\n // this.storageService.stopWarningTimer();\r\n // this.displaySessionWarning()\r\n // });\r\n // this.sessionTimeoutTimer = this.storageService.sessionTimeoutTimer$.subscribe(() => {\r\n // //console.log(\"inside timeout\")\r\n // //close model if open\r\n // if (this.closeResetSession !== undefined) {\r\n // this.closeResetSession.nativeElement.click(); // close existing modal \r\n // }\r\n // this.commonService.logOut(true)\r\n // });\r\n\r\n this.loggedInAuthData = JSON.parse(this.storageService.get(StorageType.session, 'auth'));\r\n this.loggedInUserData = JSON.parse(\r\n this.storageService.get(StorageType.session, 'userDetails')\r\n );\r\n\r\n if (\r\n AppSetting.baseUrl === 'https://api.hellopatients.com/' ||\r\n AppSetting.baseUrl === 'https://api.uat.hellopatients.com/'\r\n ) {\r\n this.enableOnProduction = false;\r\n } else {\r\n this.enableOnProduction = true;\r\n }\r\n if (this.loggedInUserData.userType === UserTypeEnum.PATIENT) {\r\n this.rootRoute = '/patient';\r\n this.getPatientSetting();\r\n } else if (this.loggedInUserData.userType === UserTypeEnum.PROVIDER) {\r\n this.rootRoute = '/provider';\r\n this.getProviderSetting();\r\n } else {\r\n this.rootRoute = '/admin';\r\n this.getProviderSetting();\r\n }\r\n\r\n }\r\n\r\n //changed refresh token logic with idle user\r\n\r\n // refreshToken() {\r\n // this.storageService.stopTimer();\r\n // this.isRefreshLoader = true;\r\n // //call refresh token api \r\n // let reqObj = {\r\n // \"token\": this.loggedInAuthData.token,\r\n // //\"refreshToken\": this.loggedInAuthData.refreshToken,\r\n // \"id\": this.loggedInUserData.id,\r\n // \"changePassword\": false,\r\n // \"userType\": this.loggedInUserData.userType,\r\n // \"roleId\": this.loggedInUserData.roleId,\r\n // \"parentId\": this.loggedInUserData.parentId\r\n // }\r\n // this.commonService.getRefreshToken(reqObj).subscribe(\r\n // response => {\r\n // this.storageService.restartTimer();\r\n // if (this.closeResetSession !== undefined) {\r\n // this.closeResetSession.nativeElement.click(); // close existing modal \r\n // }\r\n // //console.log(JSON.stringify(response))\r\n // this.isRefreshLoader = false;\r\n // this.loggedInAuthData = response;\r\n // this.storageService.save(StorageType.session, \"auth\", JSON.stringify(response))\r\n // },\r\n // error => {\r\n // this.isRefreshLoader = false;\r\n // this.checkException(error);\r\n // });\r\n // }\r\n logOut() {\r\n //logout\r\n // if (this.closeResetSession !== undefined) {\r\n // this.closeResetSession.nativeElement.click(); // close existing modal \r\n // }\r\n this.commonService.logOut(true);\r\n }\r\n // public displaySessionWarning(dynamicContent: string = 'Example') {\r\n // //console.log(\"inside displaySessionWarning\")\r\n // if (this.closeResetSession !== undefined) {\r\n // return;\r\n // }\r\n // const config = new TemplateModalConfig(this.modalSessionExpiringAlert);\r\n // config.closeResult = 'closed!';\r\n // config.context = { data: dynamicContent };\r\n // config.size = 'small';\r\n // config.isClosable = false;\r\n // config.transitionDuration = 200;\r\n // this.modalService\r\n // .open(config)\r\n // .onApprove(result => {\r\n // })\r\n // .onDeny(result => {\r\n // });\r\n // }\r\n checkException(error) {\r\n // if (this.closeResetSession !== undefined) {\r\n // this.closeResetSession.nativeElement.click(); // close existing modal \r\n // }\r\n if (error.status === 403 && error.error.message !== 'User is not authorized to access this resource') {\r\n this.commonService.logOut(true);\r\n } else {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 5000);\r\n }\r\n }\r\n getPatientSetting() {\r\n\r\n this.settingsService.getSettingsData().subscribe(value => {\r\n if (value !== undefined) {\r\n this.settingsData = value;\r\n if (\r\n value &&\r\n (value.logo === '' || value.logo === null || value.logo === undefined)\r\n ) {\r\n this.settingsData.logo = '';\r\n } else if (value && value === '' && value.logo !== '') {\r\n this.settingsData.logo = value.logo;\r\n } else if (value && value !== '') {\r\n this.settingsData.logo = value.logo;\r\n }\r\n } else {\r\n this.settingsData.logo = '';\r\n }\r\n });\r\n }\r\n\r\n getProviderSetting() {\r\n this.settingsService.getSettingsData().subscribe(value => {\r\n if (value !== undefined) {\r\n this.settingsData = value;\r\n if (\r\n value &&\r\n (value.logo === '' || value.logo === null || value.logo === undefined)\r\n ) {\r\n this.settingsData.logo = '';\r\n } else if (value && value === '' && value.logo !== '') {\r\n this.settingsData.logo = value.logo;\r\n } else if (value && value !== '') {\r\n this.settingsData.logo = value.logo;\r\n }\r\n } else {\r\n this.settingsData.logo = '';\r\n }\r\n });\r\n const settingData = JSON.parse(this.storageService.get(StorageType.session, 'settingsData'));\r\n if (settingData !== null &&\r\n this.loggedInUserData !== null\r\n ) {\r\n this.settingsData = settingData;\r\n this.themeService.changeTheme(settingData.skin);\r\n this.settingsService.setSettingsData(settingData);\r\n } else {\r\n this.settingsData.logo = '';\r\n this.themeService.changeTheme(4);\r\n }\r\n }\r\n\r\n hasModuleAccess(moduleId) {\r\n return this.accessRightsService.hasModuleAccess(moduleId);\r\n }\r\n\r\n isAdmin() {\r\n return this.loggedInUserData.userType === UserTypeEnum.GLOBAL;\r\n }\r\n\r\n isProvider() {\r\n return this.loggedInUserData.userType === UserTypeEnum.PROVIDER;\r\n }\r\n\r\n isPatient() {\r\n return this.loggedInUserData.userType === UserTypeEnum.PATIENT;\r\n }\r\n\r\n /*hasTransactionTypeAccess(channelType) {\r\n return this.accessRightsService.hasTransactionTypeAccess(channelType);\r\n }*/\r\n onTabSelection(event) {\r\n if (event.currentTarget.className === 'open') {\r\n this.sideNavVisible = false;\r\n } else {\r\n this.sideNavVisible = true;\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
Loading..
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n

Login

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{formErrors.userName}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{formErrors.password}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{formErrors.authCode}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n

{{ 'login.authCodeMessage' | translate}}

\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n  \\r\\n  {{ 'login.forgotPassword' | translate}} \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9wYXRpZW50LXB1YmxpYy9wYXRpZW50LWxvZ2luL3BhdGllbnQtbG9naW4uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from \"@angular/core\";\r\nimport {\r\n FormBuilder,\r\n Validators,\r\n FormControl,\r\n FormGroup\r\n} from \"@angular/forms\";\r\nimport { ValidationConstant } from \"src/app/services/validation/validation.constant\";\r\nimport { LoginService } from \"src/app/services/api/login.service\";\r\nimport { Router, ActivatedRoute } from \"@angular/router\";\r\nimport { StorageService } from \"src/app/services/session/storage.service\";\r\nimport { StorageType } from \"src/app/services/session/storage.enum\";\r\nimport { AccessRightsService } from \"../../../services/api/access-rights.service\";\r\nimport { Validator } from \"../../../common/validation/validator\";\r\nimport { ToasterService } from \"../../../services/api/toaster.service\";\r\nimport { Exception } from \"../../../common/exceptions/exception\";\r\nimport { MessageSetting } from \"src/app/common/constants/message-setting.constant\";\r\nimport { SettingsService } from \"../../../services/api/settings.service\";\r\nimport { ThemeService } from \"../../../services/api/theme.service\";\r\nimport { CommonService } from \"src/app/services/api/common.service\";\r\nimport { environment } from \"src/environments/environment\";\r\n\r\n@Component({\r\n selector: \"app-patient-login\",\r\n templateUrl: \"./patient-login.component.html\",\r\n styleUrls: [\"./patient-login.component.scss\"]\r\n})\r\nexport class PatientLoginComponent implements OnInit {\r\n loginForm: FormGroup;\r\n isloggingin = false;\r\n loggedInUser: any;\r\n formErrors: any = {};\r\n validator: Validator;\r\n showPassword = false;\r\n toastData: any;\r\n otpLoader = false;\r\n loginMethod: any = \"none\";\r\n providerList: any;\r\n providerName = null;\r\n routeParameter: any;\r\n forgotPasswordLink;\r\n skin = \"\";\r\n logo = \"\";\r\n patientSettings: any;\r\n isLoaderTheme = true;\r\n isLoaderLogo = true;\r\n config = {\r\n userName: {\r\n required: { name: ValidationConstant.login.username.name },\r\n maxlength: {\r\n name: ValidationConstant.login.username.name,\r\n max: ValidationConstant.login.username.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.login.username.name,\r\n min: ValidationConstant.login.username.minLength.toString()\r\n }\r\n },\r\n password: {\r\n required: { name: ValidationConstant.login.password.name },\r\n maxlength: {\r\n name: ValidationConstant.login.password.name,\r\n max: ValidationConstant.login.password.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.login.password.name,\r\n min: ValidationConstant.login.password.minLength.toString()\r\n }\r\n },\r\n authCode: {\r\n required: { name: ValidationConstant.login.authcode.name },\r\n maxlength: {\r\n name: ValidationConstant.login.authcode.name,\r\n max: ValidationConstant.login.authcode.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.login.authcode.name,\r\n min: ValidationConstant.login.authcode.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.login.authcode.name }\r\n }\r\n };\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private loginService: LoginService,\r\n private storageService: StorageService,\r\n private toasterService: ToasterService,\r\n private router: Router,\r\n private accessRightsService: AccessRightsService,\r\n private settingsService: SettingsService,\r\n private themeService: ThemeService,\r\n private commonService: CommonService,\r\n private route: ActivatedRoute\r\n ) {\r\n this.validator = new Validator(this.config);\r\n }\r\n\r\n ngOnInit() {\r\n this.routeParameter = this.route.params.subscribe(params => {\r\n this.providerName = \"\";\r\n this.logo = \"\";\r\n this.skin = \"\";\r\n this.providerName = params[\"providerName\"];\r\n if (\r\n this.providerName !== undefined &&\r\n this.providerName !== null &&\r\n this.providerName !== \"\"\r\n ) {\r\n this.getLogo(this.providerName);\r\n this.getTheme(this.providerName);\r\n this.storageService.save(\r\n StorageType.session,\r\n \"settingsData\",\r\n JSON.stringify(this.patientSettings)\r\n );\r\n this.forgotPasswordLink = \"/forgot-password/\" + this.providerName;\r\n } else {\r\n this.logo = \"../../../../assets/images/logo_login.png\";\r\n this.forgotPasswordLink = \"/forgot-password\";\r\n this.providerName = \"\";\r\n this.themeService.changeTheme(4);\r\n this.storageService.remove(StorageType.session, \"settingsData\");\r\n this.isLoaderTheme = false;\r\n this.isLoaderLogo = false;\r\n }\r\n });\r\n this.loginForm = this.formBuilder.group({\r\n userName: [\"\", [Validators.required]],\r\n password: [\"\", []],\r\n authCode: [\"\", []],\r\n RememberMe: [],\r\n sendCatalog: true\r\n });\r\n this.checkAccountStatus();\r\n this.loginForm.valueChanges.subscribe(data => this.onValueChanged(data));\r\n if (this.storageService.get(StorageType.local, \"userAuth\")) {\r\n this.loggedInUser = JSON.parse(\r\n this.storageService.get(StorageType.local, \"userAuth\")\r\n );\r\n if (this.loggedInUser) {\r\n if (this.loggedInUser[\"RememberMe\"]) {\r\n this.loginForm.controls[\"RememberMe\"].patchValue(\r\n this.loggedInUser.RememberMe\r\n );\r\n this.loginForm.controls[\"userName\"].patchValue(\r\n this.loggedInUser.userName\r\n );\r\n this.loginForm.controls[\"password\"].patchValue(\r\n this.loggedInUser.password\r\n );\r\n }\r\n }\r\n }\r\n }\r\n\r\n getLogo(providerName) {\r\n this.settingsService.getProviderSettingsLogo(providerName).subscribe(\r\n (response: any) => {\r\n this.logo = response.logo;\r\n this.patientSettings = {\r\n logo: this.logo,\r\n skin: this.skin,\r\n providerName: this.providerName\r\n };\r\n this.storageService.save(\r\n StorageType.session,\r\n \"settingsData\",\r\n JSON.stringify(this.patientSettings)\r\n );\r\n this.isLoaderLogo = false;\r\n },\r\n error => {\r\n this.logo = \"../../../../assets/images/logo_login.png\";\r\n this.isLoaderLogo = false;\r\n }\r\n );\r\n }\r\n\r\n getTheme(providerName) {\r\n this.settingsService.getProviderSettingsSkin(providerName).subscribe(\r\n (response: any) => {\r\n this.skin = response.skin;\r\n this.patientSettings = {\r\n logo: this.logo,\r\n skin: this.skin,\r\n providerName: this.providerName\r\n };\r\n this.storageService.save(\r\n StorageType.session,\r\n \"settingsData\",\r\n JSON.stringify(this.patientSettings)\r\n );\r\n this.themeService.changeTheme(response.skin);\r\n this.isLoaderTheme = false;\r\n },\r\n error => {\r\n\r\n this.themeService.changeTheme(4);\r\n this.isLoaderTheme = false;\r\n }\r\n );\r\n }\r\n\r\n onValueChanged(data?: any) {\r\n if (!this.loginForm) {\r\n return;\r\n }\r\n // this.formErrors = this.validator.validate(this.loginForm);\r\n }\r\n\r\n checkAccountStatus() {\r\n if (this.storageService.get(StorageType.local, \"sessionExpired\")) {\r\n this.isloggingin = false;\r\n this.toastData = this.toasterService.error(\r\n MessageSetting.common.sessionExpired\r\n );\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(\r\n MessageSetting.common.sessionExpired\r\n );\r\n }, 5000);\r\n this.storageService.remove(StorageType.local, \"sessionExpired\");\r\n }\r\n if (this.storageService.get(StorageType.local, \"inactiveAccount\")) {\r\n this.isloggingin = false;\r\n this.toastData = this.toasterService.error(\r\n MessageSetting.common.inactiveAccount\r\n );\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(\r\n MessageSetting.common.inactiveAccount\r\n );\r\n }, 5000);\r\n this.storageService.remove(StorageType.local, \"inactiveAccount\");\r\n }\r\n }\r\n\r\n login() {\r\n this.validateAllFormFields(this.loginForm);\r\n this.formErrors = this.validator.validate(this.loginForm);\r\n if (this.loginForm.invalid) {\r\n return;\r\n }\r\n\r\n const data = this.loginForm.value;\r\n data.providerUrl =\r\n this.providerName !== undefined &&\r\n this.providerName != null &&\r\n this.providerName !== \"\"\r\n ? this.providerName\r\n : \"\";\r\n const username = this.loginForm.controls[\"userName\"].value;\r\n delete data[\"RememberMe\"];\r\n this.isloggingin = true; // display loader\r\n this.loginService.patientLogin(data).subscribe(\r\n loginResponse => {\r\n this.storageService.setFirstLoginCount();\r\n if (loginResponse[\"termsConditions\"] === false) {\r\n this.router.navigate([\r\n \"/terms-conditions\",\r\n loginResponse[\"parentId\"],\r\n loginResponse[\"id\"],\r\n this.loginMethod,\r\n this.providerName\r\n ]);\r\n } else if (loginResponse[\"changePassword\"] === true) {\r\n // change payal back\r\n\r\n // if (loginResponse[\"roleId\"] == null) {\r\n // loginResponse[\"roleId\"] = 0;\r\n // }\r\n this.router.navigate([\r\n \"/reset-password\",\r\n loginResponse[\"parentId\"],\r\n loginResponse[\"userType\"],\r\n loginResponse[\"id\"],\r\n loginResponse[\"isAdmin\"],\r\n this.providerName\r\n ]);\r\n } else {\r\n this.storageService.save(\r\n StorageType.session,\r\n \"auth\",\r\n JSON.stringify(loginResponse)\r\n );\r\n this.loginService\r\n .getloginUserData(\r\n loginResponse[\"userType\"],\r\n loginResponse[\"id\"],\r\n loginResponse[\"parentId\"]\r\n )\r\n .subscribe(\r\n (userDataResponse: any) => {\r\n this.storageService.save(\r\n StorageType.session,\r\n \"userDetails\",\r\n JSON.stringify(userDataResponse)\r\n );\r\n this.handleNavigation(loginResponse, userDataResponse);\r\n },\r\n error => {\r\n this.isloggingin = false; // hide loader\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(\r\n toastMessage.join(\", \")\r\n );\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(\r\n toastMessage.join(\", \")\r\n );\r\n }, 5000);\r\n }\r\n );\r\n }\r\n },\r\n error => {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.isloggingin = false; // hide loader\r\n this.toastData = this.toasterService.error(toastMessage);\r\n if (\r\n error.error !== undefined &&\r\n error.error.message != undefined &&\r\n error.error.message == \"Key_LockedAccount\"\r\n ) {\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage);\r\n }, 10000);\r\n } else {\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(\r\n toastMessage.join(\", \")\r\n );\r\n }, 5000);\r\n }\r\n }\r\n );\r\n }\r\n\r\n loginViaOTP() {\r\n this.validateAllFormFields(this.loginForm);\r\n this.formErrors = this.validator.validate(this.loginForm);\r\n if (this.loginForm.invalid) {\r\n return;\r\n }\r\n\r\n const data = this.loginForm.value;\r\n data.otp = data.authCode;\r\n data.providerUrl =\r\n this.providerName !== undefined &&\r\n this.providerName != null &&\r\n this.providerName !== \"\"\r\n ? this.providerName\r\n : \"\";\r\n this.isloggingin = true; // display loader\r\n this.loginService.patientLoginViaOTP(data).subscribe(\r\n loginResponse => {\r\n this.storageService.setFirstLoginCount();\r\n if (loginResponse[\"termsConditions\"] === false) {\r\n this.router.navigate([\r\n \"/terms-conditions\",\r\n loginResponse[\"parentId\"],\r\n loginResponse[\"id\"],\r\n this.loginMethod,\r\n this.providerName\r\n ]);\r\n } else {\r\n this.storageService.save(\r\n StorageType.session,\r\n \"auth\",\r\n JSON.stringify(loginResponse)\r\n );\r\n this.loginService\r\n .getloginUserData(\r\n loginResponse[\"userType\"],\r\n loginResponse[\"id\"],\r\n loginResponse[\"parentId\"]\r\n )\r\n .subscribe(\r\n (userDataResponse: any) => {\r\n this.storageService.save(\r\n StorageType.session,\r\n \"userDetails\",\r\n JSON.stringify(userDataResponse)\r\n );\r\n this.handleNavigation(loginResponse, userDataResponse);\r\n },\r\n error => {\r\n this.isloggingin = false; // hide loader\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(\r\n toastMessage.join(\", \")\r\n );\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(\r\n toastMessage.join(\", \")\r\n );\r\n }, 5000);\r\n }\r\n );\r\n }\r\n },\r\n error => {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.isloggingin = false; // hide loader\r\n this.toastData = this.toasterService.error(toastMessage);\r\n if (\r\n error.error !== undefined &&\r\n error.error.message !== undefined &&\r\n error.error.message === \"Key_InvalidOTP\" &&\r\n error.error.message === \"Key_OtpExpired\"\r\n ) {\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage);\r\n }, 10000);\r\n } else {\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(\r\n toastMessage.join(\", \")\r\n );\r\n }, 5000);\r\n }\r\n }\r\n );\r\n }\r\n\r\n validateAllFormFields(formGroup: FormGroup) {\r\n Object.keys(formGroup.controls).forEach(field => {\r\n const control = formGroup.get(field);\r\n if (control instanceof FormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n control.markAsDirty({ onlySelf: true });\r\n } else if (control instanceof FormGroup) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n\r\n toggleShow() {\r\n this.showPassword = !this.showPassword;\r\n }\r\n\r\n // This function will decide landing page based on logged in userType (ie. Dashboard for GlobalAdmin/User/Patient/Provider/ChangePassword)\r\n handleNavigation(loginResponse, userDataResponse) {\r\n\r\n if (this.loginForm.value[\"RememberMe\"] === true) {\r\n this.loginForm.controls[\"password\"].patchValue(null);\r\n this.storageService.save(\r\n StorageType.local,\r\n \"userAuth\",\r\n JSON.stringify(this.loginForm.value)\r\n );\r\n } else {\r\n this.storageService.remove(StorageType.local, \"userAuth\");\r\n }\r\n\r\n if (loginResponse[\"changePassword\"] === true) {\r\n this.router.navigate([\"/change-password\"]);\r\n }\r\n\r\n if (userDataResponse[\"userType\"] === 0) {\r\n // providerLookUp for patient\r\n this.commonService.providerLookup().subscribe(\r\n (response: any) => {\r\n this.providerList = response.data;\r\n this.storageService.save(\r\n StorageType.session,\r\n \"providerList\",\r\n JSON.stringify(response.data)\r\n );\r\n // let timeOut = new Date();\r\n // timeOut.setSeconds(timeOut.getSeconds() + environment.sessionTimeOutSec);\r\n // let timeWarning = new Date();\r\n // timeWarning.setSeconds(timeWarning.getSeconds() + environment.sessionWarningSec);\r\n if (\r\n this.providerName !== undefined &&\r\n this.providerName != null &&\r\n this.providerName !== \"\"\r\n ) {\r\n\r\n const providerSelected = this.getSelectedProviderByFilter(\r\n this.providerName\r\n );\r\n this.storageService.save(\r\n StorageType.session,\r\n \"providerSelected\",\r\n JSON.stringify(providerSelected[0])\r\n );\r\n //this.router.navigate([\"/\" + this.providerName + \"/patient\"]);\r\n\r\n // this.storageService.save(StorageType.session, 'sessionTimeOut', JSON.stringify({ remainTimeOut: timeOut }));\r\n // this.storageService.save(StorageType.session, 'sessionWarning', JSON.stringify({ remainWarning: timeWarning }));\r\n // this.storageService.startTimer();\r\n // this.storageService.setSessionWarningTimer();\r\n // this.storageService.setSessionTimeout();\r\n this.commonService.startCheckingIdleTime();\r\n this.router.navigate([\"/patient\"]);\r\n } else {\r\n this.storageService.save(\r\n StorageType.session,\r\n \"providerSelected\",\r\n JSON.stringify(this.providerList[0])\r\n );\r\n\r\n // this.storageService.save(StorageType.session, 'sessionTimeOut', JSON.stringify({ remainTimeOut: timeOut }));\r\n // this.storageService.save(StorageType.session, 'sessionWarning', JSON.stringify({ remainWarning: timeWarning }));\r\n // this.storageService.startTimer();\r\n // this.storageService.setSessionWarningTimer();\r\n // this.storageService.setSessionTimeout();\r\n this.commonService.startCheckingIdleTime();\r\n this.router.navigate([\"/patient\"]);\r\n }\r\n },\r\n error => {\r\n this.isloggingin = false; // hide loader\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(\", \"));\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(\r\n toastMessage.join(\", \")\r\n );\r\n }, 5000);\r\n }\r\n );\r\n }\r\n }\r\n getSelectedProviderByFilter(url) {\r\n return this.providerList.filter(x => x.providerUrlSuffix === url);\r\n }\r\n changeLoginMethod(method: string) {\r\n switch (method) {\r\n case \"authcode\":\r\n this.validateAllFormFields(this.loginForm);\r\n this.formErrors = this.validator.validate(this.loginForm);\r\n if (this.loginForm.invalid) {\r\n return;\r\n }\r\n\r\n const data = this.loginForm.value;\r\n if (\r\n this.providerName !== undefined &&\r\n this.providerName !== null &&\r\n this.providerName !== \"\"\r\n ) {\r\n data[\"providerSuffix\"] = this.providerName;\r\n }\r\n this.otpLoader = true;\r\n const username = this.loginForm.controls[\"userName\"].value;\r\n this.loginService.patientLoginOTP(data).subscribe(\r\n loginResponse => {\r\n this.storageService.setFirstLoginCount();\r\n this.otpLoader = false;\r\n this.loginMethod = \"authcode\";\r\n\r\n if (\r\n loginResponse != null &&\r\n loginResponse[\"termsConditions\"] === false\r\n ) {\r\n this.router.navigate([\r\n \"/terms-conditions\",\r\n loginResponse[\"parentId\"],\r\n loginResponse[\"id\"],\r\n this.loginMethod,\r\n this.providerName\r\n ]);\r\n } else {\r\n this.loginForm\r\n .get(\"authCode\")\r\n .setValidators([\r\n Validators.required,\r\n Validators.minLength(\r\n ValidationConstant.login.authcode.minLength\r\n ),\r\n Validators.maxLength(\r\n ValidationConstant.login.authcode.maxLength\r\n ),\r\n Validators.pattern(ValidationConstant.numbersOnly_regex)\r\n ]);\r\n this.loginForm.get(\"authCode\").updateValueAndValidity();\r\n }\r\n },\r\n error => {\r\n this.otpLoader = false;\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage);\r\n if (\r\n error.error !== undefined &&\r\n error.error.message !== undefined &&\r\n error.error.message === \"Key_LockedAccount\" &&\r\n error.error.message === \"Key_NoRecordsFound\" &&\r\n error.error.message === \"Key_UserOptedOutFromSMS\" &&\r\n error.error.message === \"Key_UserPhoneAndEmailNotLinked\" &&\r\n error.error.message === \"Key_InvalidUserName\" &&\r\n error.error.message === \"Key_OtpExpired\"\r\n ) {\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage);\r\n }, 10000);\r\n } else {\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(\r\n toastMessage.join(\", \")\r\n );\r\n }, 5000);\r\n }\r\n }\r\n );\r\n\r\n break;\r\n case \"password\":\r\n this.loginMethod = \"password\";\r\n this.loginForm.get(\"password\").setValidators([Validators.required]);\r\n this.loginForm.get(\"password\").updateValueAndValidity();\r\n break;\r\n default:\r\n this.loginMethod = \"none\";\r\n this.loginForm.get(\"authCode\").setValidators([]);\r\n this.loginForm.get(\"authCode\").updateValueAndValidity();\r\n break;\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9wYXRpZW50LXB1YmxpYy9wYXRpZW50LXB1YmxpYy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-public',\r\n templateUrl: './patient-public.component.html',\r\n styleUrls: ['./patient-public.component.scss']\r\n})\r\nexport class PatientPublicComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import {Routes, RouterModule} from '@angular/router';\r\nimport { PatientLoginComponent } from './patient-login/patient-login.component';\r\nimport { ForgotPasswordComponent } from '../public/forgot-password/forgot-password.component';\r\nimport { ResetPasswordComponent } from '../public/reset-password/reset-password.component';\r\nimport { AcceptTermsComponent } from '../public/accept-terms/accept-terms.component';\r\n\r\nexport const PATIENT_PUBLIC_ROUTES: Routes = [\r\n {path: '', redirectTo: 'login', pathMatch: 'full'},\r\n {path: 'login/:providerName', component: PatientLoginComponent},\r\n {path: 'login', component: PatientLoginComponent},\r\n { path: 'forgot-password/:providerName', component: ForgotPasswordComponent},\r\n { path: 'forgot-password', component: ForgotPasswordComponent},\r\n { path:'reset-password/:parentID/:userType/:userId/:isAdmin/:providerName', component: ResetPasswordComponent},\r\n { path:'terms-conditions/:parentID/:username/:loginMethod/:providerName', component: AcceptTermsComponent}\r\n];\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ 'resetPassword.acceptTerms' | translate}}

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{'resetPassword.termsOfUse' | translate}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{'resetPassword.privacyPolicy' | translate}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{'resetPassword.hipaaAuthorization' | translate}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n I agree to the HelloPatients Terms of Use\\r\\n {{acceptTermsFormErrors.TermsOfUse}}\\r\\n
\\r\\n
\\r\\n I agree to the HelloPatients Privacy Policy\\r\\n {{acceptTermsFormErrors.PrivacyPolicy}}\\r\\n
\\r\\n
\\r\\n I agree to the HelloPatients HIPAA Authorization\\r\\n \\r\\n {{acceptTermsFormErrors.HIPAAAuthorization}}\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{acceptTermsFormErrors.authCode}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ 'login.authCodeMessage' | translate}}

\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9wdWJsaWMvYWNjZXB0LXRlcm1zL2FjY2VwdC10ZXJtcy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { ValidationConstant } from 'src/app/services/validation/validation.constant';\r\nimport { Validator } from '../../../services/validation/validator';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ResetPasswordService } from 'src/app/services/api/reset-password.service';\r\nimport { Exception } from 'src/app/common/exceptions/exception';\r\nimport { ToasterService } from 'src/app/services/api/toaster.service';\r\nimport { StorageService } from 'src/app/services/session/storage.service';\r\nimport { LoginService } from 'src/app/services/api/login.service';\r\nimport { StorageType } from 'src/app/services/session/storage.enum';\r\nimport { SettingsService } from 'src/app/services/api/settings.service';\r\nimport { ThemeService } from 'src/app/services/api/theme.service';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\nimport { environment } from \"src/environments/environment\";\r\n@Component({\r\n selector: 'app-accept-terms',\r\n templateUrl: './accept-terms.component.html',\r\n styleUrls: ['./accept-terms.component.scss']\r\n})\r\nexport class AcceptTermsComponent implements OnInit {\r\n validator: Validator;\r\n acceptTermsForm: FormGroup;\r\n formErrors: any = {};\r\n acceptTermsFormErrors: any = {};\r\n isLoader = false;\r\n toastData: any;\r\n showErrorMessage = false;\r\n username: string;\r\n parentID: string;\r\n loginMethod: string;\r\n authCodeInputDisabled;\r\n isloggingin = false;\r\n routeParameter: any;\r\n errorMessage = '';\r\n isDisabled = true;\r\n skin = '';\r\n logo = '';\r\n patientSettings: any;\r\n providerName = '';\r\n accordian = {\r\n termsOfUse: false,\r\n privacyPolicy: false,\r\n hipaaAuthorization: false\r\n };\r\n policyContent: any;\r\n @Output() cancel = new EventEmitter;\r\n config = {\r\n TermsOfUse: {\r\n required: { name: ValidationConstant.resetPassword.termsOfUse.name },\r\n pattern: { name: ValidationConstant.resetPassword.termsOfUse.name }\r\n },\r\n PrivacyPolicy: {\r\n required: { name: ValidationConstant.resetPassword.privacyPolicy.name },\r\n pattern: { name: ValidationConstant.resetPassword.privacyPolicy.name }\r\n },\r\n HIPAAAuthorization: {\r\n required: { name: ValidationConstant.resetPassword.hipaaAuthorization.name },\r\n pattern: { name: ValidationConstant.resetPassword.hipaaAuthorization.name }\r\n },\r\n authCode: {\r\n required: { name: ValidationConstant.login.authcode.name },\r\n maxlength: {\r\n name: ValidationConstant.login.authcode.name,\r\n max: ValidationConstant.login.authcode.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.login.authcode.name,\r\n min: ValidationConstant.login.authcode.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.login.authcode.name }\r\n }\r\n }\r\n\r\n providerList: any;\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private resetPasswordService: ResetPasswordService,\r\n private loginService: LoginService,\r\n private storageService: StorageService,\r\n private toasterService: ToasterService,\r\n private themeService: ThemeService,\r\n private settingsService: SettingsService,\r\n private commonService: CommonService) {\r\n this.validator = new Validator(this.config);\r\n }\r\n ngOnInit() {\r\n this.routeParameter = this.route.params.subscribe(params => {\r\n this.username = params['username'];\r\n this.parentID = params['parentID'];\r\n this.loginMethod = params['loginMethod'];\r\n this.providerName = params['providerName'];\r\n if (this.providerName != undefined) {\r\n this.getLogo(this.providerName);\r\n this.getTheme(this.providerName);\r\n this.storageService.save(StorageType.session, 'settingsData', JSON.stringify(this.patientSettings));\r\n } else {\r\n this.logo = '../../../../assets/images/logo_login.png';\r\n this.providerName = '';\r\n }\r\n });\r\n this.acceptTermsForm = this.formBuilder.group(\r\n {\r\n TermsOfUse: [\r\n false,\r\n [\r\n Validators.required, Validators.pattern('true')\r\n ]\r\n ],\r\n PrivacyPolicy: [\r\n false,\r\n [\r\n Validators.required, Validators.pattern('true')\r\n ]\r\n ],\r\n HIPAAAuthorization: [\r\n false,\r\n [\r\n Validators.required, Validators.pattern('true')\r\n ]\r\n ],\r\n authCode: ['', []],\r\n },\r\n );\r\n\r\n\r\n if (this.loginMethod === 'authcode') {\r\n\r\n this.acceptTermsForm.get('authCode').disable();\r\n\r\n this.acceptTermsForm.get('authCode').setValidators([Validators.required,\r\n Validators.minLength(ValidationConstant.login.authcode.minLength),\r\n Validators.maxLength(ValidationConstant.login.authcode.maxLength),\r\n Validators.pattern(ValidationConstant.numbersOnly_regex)]);\r\n this.acceptTermsForm.get('authCode').updateValueAndValidity();\r\n\r\n this.authCodeInputDisabled = true;\r\n\r\n }\r\n\r\n this.acceptTermsForm.valueChanges.subscribe(data =>\r\n this.onValueChanged(data)\r\n );\r\n this.acceptTermsForm.get('authCode').valueChanges.subscribe(value => {\r\n this.acceptTermsFormErrors = this.validator.validate(this.acceptTermsForm);\r\n });\r\n }\r\n onValueChanged(data?: any) {\r\n this.validateAllFormFields(this.acceptTermsForm);\r\n if (this.acceptTermsForm.invalid) {\r\n this.isDisabled = true;\r\n return;\r\n }\r\n this.isDisabled = false;\r\n if (this.authCodeInputDisabled === true) {\r\n this.acceptTermsForm.get('authCode').enable();\r\n }\r\n this.authCodeInputDisabled = false;\r\n // this.acceptTermsFormErrors = this.validator.validate(this.acceptTermsForm);\r\n }\r\n closeModal() {\r\n\r\n this.cancel.emit({ isNavigate: true });\r\n }\r\n onSubmit() {\r\n this.validateAllFormFields(this.acceptTermsForm);\r\n this.acceptTermsFormErrors = this.validator.validate(this.acceptTermsForm);\r\n if (this.acceptTermsForm.invalid) {\r\n return;\r\n }\r\n this.isLoader = true;\r\n const data = this.acceptTermsForm.value;\r\n const reqObj: any = {\r\n hipaaPolicy: data.HIPAAAuthorization,\r\n privacyPolicy: data.PrivacyPolicy,\r\n termsOfUse: data.TermsOfUse\r\n };\r\n\r\n if (this.loginMethod === 'authcode') {\r\n reqObj.otp = data.authCode;\r\n }\r\n this.resetPasswordService.acceptTerms(this.username, reqObj).subscribe(\r\n loginResponse => {\r\n if (loginResponse['changePassword'] === true && this.loginMethod === 'password') {\r\n // if (loginResponse['roleId'] == null) {\r\n // loginResponse['roleId'] = 0;\r\n // }\r\n this.router.navigate(['/reset-password',\r\n loginResponse['parentId'],\r\n loginResponse['userType'],\r\n this.username, loginResponse['isAdmin'],\r\n this.providerName\r\n ]);\r\n } else {\r\n if (loginResponse['token'] && loginResponse['userType'] === 0) {\r\n\r\n this.storageService.save(StorageType.session, 'auth', JSON.stringify(loginResponse));\r\n this.loginService.getloginUserData(loginResponse['userType'], loginResponse['id'], loginResponse['parentId']).subscribe(\r\n (userDataResponse: any) => {\r\n this.storageService.save(StorageType.session, 'userDetails', JSON.stringify(userDataResponse));\r\n\r\n if (userDataResponse[\"userType\"] === 0) {\r\n // providerLookUp for patient\r\n this.commonService.providerLookup().subscribe(\r\n (response: any) => {\r\n this.providerList = response.data;\r\n this.storageService.save(\r\n StorageType.session,\r\n \"providerList\",\r\n JSON.stringify(response.data)\r\n );\r\n // let timeOut = new Date();\r\n // timeOut.setSeconds(timeOut.getSeconds() + environment.sessionTimeOutSec);\r\n //console.log(\"timeout :\" + timeOut)\r\n // let timeWarning = new Date();\r\n // timeWarning.setSeconds(timeWarning.getSeconds() + environment.sessionWarningSec);\r\n //console.log(\"timeWarning :\" + timeWarning)\r\n // this.storageService.save(StorageType.session, 'sessionTimeOut', JSON.stringify({ remainTimeOut: timeOut }));\r\n // this.storageService.save(StorageType.session, 'sessionWarning', JSON.stringify({ remainWarning: timeWarning }));\r\n // this.storageService.startTimer();\r\n // this.storageService.setSessionWarningTimer();\r\n // this.storageService.setSessionTimeout();\r\n this.commonService.startCheckingIdleTime();\r\n if (\r\n this.providerName !== undefined &&\r\n this.providerName != null &&\r\n this.providerName !== \"\"\r\n ) {\r\n\r\n const providerSelected = this.getSelectedProviderByFilter(\r\n this.providerName\r\n );\r\n this.storageService.save(\r\n StorageType.session,\r\n \"providerSelected\",\r\n JSON.stringify(providerSelected[0])\r\n );\r\n //this.router.navigate([\"/\" + this.providerName + \"/patient\"]);\r\n this.router.navigate([\"/patient\"]);\r\n } else {\r\n this.storageService.save(\r\n StorageType.session,\r\n \"providerSelected\",\r\n JSON.stringify(this.providerList[0])\r\n );\r\n this.router.navigate([\"/patient\"]);\r\n }\r\n },\r\n error => {\r\n this.isloggingin = false; // hide loader\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(\", \"));\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(\r\n toastMessage.join(\", \")\r\n );\r\n }, 5000);\r\n }\r\n );\r\n }\r\n \r\n },\r\n\r\n error => {\r\n this.isloggingin = false; // hide loader\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.isloggingin = false;\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 5000);\r\n }\r\n );\r\n\r\n } else {\r\n this.redirectToLogin();\r\n }\r\n }\r\n\r\n },\r\n error => {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage);\r\n if (error.error !== undefined &&\r\n error.error.message !== undefined &&\r\n error.error.message === 'Key_LockedAccount' &&\r\n error.error.message === 'Key_NoRecordsFound' &&\r\n error.error.message === 'Key_UserOptedOutFromSMS' &&\r\n error.error.message === 'Key_UserPhoneAndEmailNotLinked' &&\r\n error.error.message === 'Key_InvalidUserName' &&\r\n error.error.message === 'Key_OtpExpired') {\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage);\r\n }, 10000);\r\n } else {\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 5000);\r\n }\r\n\r\n });\r\n\r\n }\r\n\r\n getSelectedProviderByFilter(url) {\r\n return this.providerList.filter(x => x.providerUrlSuffix === url);\r\n }\r\n\r\n getLogo(providerName) {\r\n this.settingsService.getProviderSettingsLogo(providerName).subscribe(\r\n (response: any) => {\r\n this.logo = response.logo;\r\n this.patientSettings = { logo: this.logo, skin: this.skin, providerName: this.providerName };\r\n this.storageService.save(StorageType.session, 'settingsData', JSON.stringify(this.patientSettings));\r\n },\r\n error => {\r\n this.logo = '../../../../assets/images/logo_login.png';\r\n console.log(error)\r\n }\r\n );\r\n }\r\n\r\n getTheme(providerName) {\r\n this.settingsService.getProviderSettingsSkin(providerName).subscribe(\r\n (response: any) => {\r\n this.skin = response.skin;\r\n this.patientSettings = { logo: this.logo, skin: this.skin, providerName: this.providerName };\r\n this.storageService.save(StorageType.session, 'settingsData', JSON.stringify(this.patientSettings));\r\n this.themeService.changeTheme(response.skin);\r\n },\r\n error => {\r\n console.log(error)\r\n }\r\n );\r\n }\r\n\r\n redirectToLogin() {\r\n if (this.providerName != undefined && this.providerName != null && this.providerName != '') {\r\n let newUrl = '/login/' + this.providerName;\r\n this.router.navigate([newUrl]);\r\n } else {\r\n this.router.navigate(['/login']);\r\n }\r\n }\r\n validateAllFormFields(formGroup: FormGroup) {\r\n Object.keys(formGroup.controls).forEach(field => {\r\n const control = formGroup.get(field);\r\n if (control instanceof FormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n control.markAsDirty({ onlySelf: true });\r\n } else if (control instanceof FormGroup) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

(Marketing Authorization)

\\r\\n

PLEASE READ THIS Authorization CAREFULLY BEFORE CLICKING THE “I AGREE” BUTTON BELOW. BY CLICKING “I AGREE”, YOU AGREE TO BE BOUND BY THE TERMS OF THIS Authorization. CLICKING THE AGREE BUTTON IS A LEGALLY VALID WAY TO CREATE A BINDING CONTRACT AND CONSTITUTES YOUR ELECTRONIC SIGNATURE TO THIS Authorization. IF YOU DO NOT AGREE TO THE TERMS OF THIS Authorization, PRESS “I DO NOT AGREE”, IN WHICH CASE YOU MAY NOT ACCESS OR OTHERWISE USE THE SERVICES. You represent and warrant that you have full power and authority to enter into, deliver and carry out the terms of this Authorization.

\\r\\n

Pursuant to Health Insurance Portability and Accountability Act (\\\"HIPAA\\\") Standards for Privacy of Individually Identifiable Health Information, I hereby authorize Real Patient Solutions, Inc. d/b/a HelloPatients (\\\"HelloPatients\\\") to use and disclose my protected health information as described below. HelloPatients is hereby authorized to use and disclose my protected health information, including without limitation identifiable information, billing records, financial information and my records that are provided to HelloPatients by my healthcare providers and/or their business associates to communicate to me the marketing messages received from companies that remit payment to HelloPatients to perform marketing services to encourage me to purchase products or services (\\\"Vendors\\\"). The disclosure of my information will be to HelloPatients personnel for the purposes of delivering the marketing messages to me. HelloPatients will directly receive payment from the Vendors to provide the marketing messages to me.

\\r\\n

HelloPatients will not disclose my protected health information to the Vendors that remit payment to HelloPatients for marketing of the Vendors' products.

\\r\\n

Federal and state laws protect the information disclosed pursuant to this Authorization. I understand that if the authorized recipient of the information is not a health care provider or health plan covered by federal privacy regulations, the information may be re-disclosed and no longer protected. This authorization will expire in twelve (12) months.

\\r\\n

 

\\r\\n

I understand that I am waiving my right to privacy and this information may be disclosed by the recipient. I understand that I have the right to revoke this Authorization at any time, and in order to do so, I must present a written revocation to HelloPatients at Farhan@hellopatients.com. I understand that the revocation will not apply to information that already has been released in response to or in reliance upon this Authorization. I understand that I need not sign this Authorization in order to ensure health care treatment, payment, enrollment in my health plan, or eligibility benefits. I understand that I may receive a copy of this Authorization form, after signing it.

\\r\\n\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9wdWJsaWMvYWNjZXB0LXRlcm1zL2hpcHBhLWF1dGhvcml6YXRpb24vaGlwcGEtYXV0aG9yaXphdGlvbi5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-hippa-authorization',\r\n templateUrl: './hippa-authorization.component.html',\r\n styleUrls: ['./hippa-authorization.component.scss']\r\n})\r\nexport class HippaAuthorizationComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Effective Date: April 1, 2020 | Last Updated: April 1, 2020

\\r\\n

Real Patient Solutions, Inc. d/b/a HelloPatients and its affiliates (collectively \\\"HelloPatients\\\", \\\"we\\\", \\\"us\\\", \\\"our\\\" and \\\"ourselves\\\") respect your privacy. We offer services that enable platforms and merchants to run businesses, and to safely conduct online payment transactions.

\\r\\n

This Privacy Policy describes the types of Personal Data we collect through our payments and other products and services (\\\"Services\\\") and via our online presence, which include our main website at hellopatients.com, HelloPatients-branded apps, as well as services and websites that we enable Internet users to access (collectively, our \\\"Sites\\\"). This policy also describes how we use Personal Data, with whom we share it, your rights and choices, and how you can contact us about our privacy practices. This policy does not apply to third-party websites, products, or services, even if they link to our Services or Sites, and you should consider the privacy practices of those third-parties carefully. \\\"Personal Data\\\" is any information that relates to an identified or identifiable individual.

\\r\\n

This Privacy Policy is entered into between you, the User of this Website and HelloPatients, the owner and provider of this Website. HelloPatients takes the privacy of your information very seriously. This Privacy Policy applies to our use of any and all Data collected by us or provided by you in relation to your use of the Website. Capitalized terms in this Privacy Policy are defined in the section headed \\\"Definitions and interpretation\\\" at the end of this Privacy Policy if not otherwise defined in the provisions below.

\\r\\n

Please familiarize yourself with our privacy practices and let us know if you have any questions. By using the Sites, you signify your acceptance of this Privacy Policy. If you do not agree to this Privacy Policy, please do not use the Sites.

\\r\\n

Irrespective of which country you live in, you authorize us to transfer, store, and use your information in the United States, and any other country where we operate. In some of these countries, the privacy and data protection laws and rules regarding when government authorities may access data may vary from those in the country where you live. Learn more about our data transfer operations in the \\\"International Transfer\\\" section below. If you do not agree to the transfer, storage and use of your information in the United States, and any other country where we operate, please do not use the Sites or Services.

\\r\\n
    \\r\\n
  1. Overview
  2. \\r\\n
\\r\\n

HelloPatients provides payments and other products and services for commercial and non-commercial enterprises. Those products and services include payment card processing, point-of-sale terminal management and support, merchant accounting and funds transfer. As a part of our payment processing function and other products and services, we routinely collect and retain personal information about our customers and the third parties with whom our customers do business. For our customers, additional information about disclosures, transfers and other processing of personal information as part of our payment processing function may be set out in the documentation provided to them at or before onboarding. \\\"You\\\" may be a visitor to one of our websites, a user of one or more of our Services (\\\"User\\\" or \\\"HelloPatients User\\\"), or a customer of a User (\\\"Customer\\\"). If you are a Customer, HelloPatients will generally not collect your Personal Data directly from you. Your agreement with the relevant HelloPatients User should explain how the HelloPatients User shares your Personal Data with HelloPatients, and if you have questions about this sharing, then you should direct those questions to the HelloPatients User.

\\r\\n
    \\r\\n
  • Site Visitors – If you visit or use our Sites, we may collect Personal Data. For example, we collect Personal Data that you submit to us via online forms and surveys, and when you contact us by email.
  • \\r\\n
  • Payment Processing Services – As a processor of payment transactions and provider of related services, we may collect, use and disclose Personal Data about Customers when we act as a HelloPatients User's service provider. HelloPatients Users are responsible for making sure that the Customer's privacy rights are respected, including ensuring appropriate disclosures about third party data collection and use. To the extent that we are acting as a HelloPatients User's data processor, we will process Personal Data in accordance with the terms of our agreement with the HelloPatients User and the HelloPatients User's lawful instructions. If you are a Customer and would like to obtain more information about how a HelloPatients User uses third party services like HelloPatients to process your Personal Data in the context of payment transactions, please contact the HelloPatients User directly or visit the HelloPatients User's privacy policy.
  • \\r\\n
  • Fraud prevention activities and activities for offering a compliant and secure platform – The collection and use of Personal Data is critical in helping us to ensure that our platform and services are safe, secure and compliant. In the context of fraud monitoring, prevention and detection services, we may monitor insights and patterns of payment transactions and other online signals to reduce the risk of fraud, money laundering and other harmful activity for ourselves, our Users and their Customers. The HelloPatients entities responsible for the collection and use of Personal Data for fraud monitoring, detection and prevention activities are indicated below.
  • \\r\\n
\\r\\n
    \\r\\n
  1. Data\\r\\n
      \\r\\n
    • Collecting Data
    • \\r\\n
    \\r\\n
  2. \\r\\n
\\r\\n

We collect Personal Data in the following ways:

\\r\\n
    \\r\\n
  • Information You Give to Us
  • \\r\\n
\\r\\n

You may choose to provide us with personal data about yourself, including your name, phone number and email address, by completing forms on our website or mobile app, such as:

\\r\\n
    \\r\\n
  • When you register for a HelloPatients account we collect your full name, email address, and account log-in credentials.
  • \\r\\n
  • When you fill-in our online form to contact our sales team, we collect your full name, work email, country, and anything else you tell us about your project, needs and timeline.
  • \\r\\n
  • When you use the \\\"Remember Me\\\" feature for checkout or other services, we collect your email address, payment card number, CVC code and expiration date.
  • \\r\\n
  • When you apply for a job with us, we may collect your past job history and professional experience, current job title and information and educational history and
  • \\r\\n
  • Your date of birth and government identifiers associated with you and your organization (such as your social security number, tax number, or Employer Identification Number).
  • \\r\\n
  • When you make payments or conduct transactions through a HelloPatients User's website or application, we will receive your transaction information. Depending on how the HelloPatients User implements our Services, we may receive this information directly from you, or from the HelloPatients User or third parties.
  • \\r\\n
  • The information that we collect will include payment method information (such as credit or debit card number, or bank account information), purchase amount, date of purchase, and payment method. Different payment methods may require the collection of different categories of information. The HelloPatients User will determine the payment methods that it enables you to use, and the payment method information that we collect will depend upon the payment method that you choose to use from the list of available payment methods that are offered to you by the HelloPatients User. When you make a transaction, we may also receive your name, email, billing or shipping address and in some cases your transaction history to authenticate you.
  • \\r\\n
  • You may also choose to submit information to us via other methods, including: (i) in response to marketing or other communications, (ii) through social media or online forums, (iii) through participation in an offer, program or promotion, in connection with an actual or potential business relationship with us, or (iv) by giving us your business card or contact details at trade shows or other events.
  • \\r\\n
\\r\\n

You may also provide us with Personal Data about yourself when your report a problem or have a question about our services. Please note that if you do not provide us with Personal Data, your ability to use certain aspects of our products and services may be limited.

\\r\\n
    \\r\\n
  • Information We Obtain from Your Use of Our Services
  • \\r\\n
\\r\\n

We collect certain information automatically, such as your operating system version, browser type, and internet service provider. When you use our Site, we automatically collect and store this information in service logs. This includes: details of how you used our Site; Internet protocol address; and cookies that uniquely identify your browser. We may also collect and process information about your actual location. The information we collect automatically is statistical data and may or may not include Personal Data, but we may maintain it or associate it with Personal Data we collect in other ways or receive from third parties. When we conduct fraud monitoring, prevention and detection activities, we may also receive Personal Data about you from our business partners, financial service providers, identity verification services, and publicly available sources (e.g., name, address, phone number, country), as necessary to confirm your identity and prevent fraud. Our fraud monitoring, detection and prevention services may use technology that helps us assess the risk associated with an attempted transaction that is enabled on the HelloPatients User's website or the application that collects information.

\\r\\n
    \\r\\n
  • Information Received from a Healthcare or Other Service Provider
  • \\r\\n
\\r\\n

We may obtain personal information about you from a health plan, physician, health care professional, hospital, clinic, laboratory, pharmacy, medical facility, or other health care provider that has provided payment, treatment, or services to you or on your behalf. HelloPatients may receive information about you with your consent from your health provider.

\\r\\n
    \\r\\n
  • Cookies and Similar Technologies
  • \\r\\n
\\r\\n

We and our partners use various technologies to collect and store information when you visit one of our services, and this may include using cookies or similar technologies to identify your browser or device. We also use these technologies to collect and store information when you interact with services from our partners, such as advertising services. Our third party advertising and analytics partners include Google, [describe any other third party advertising or analytics partners].

\\r\\n

The technologies we use for this automatic data collection may include:

\\r\\n

Cookies. A cookie is a small file placed on the hard drive of your computer. You may refuse to accept browser cookies by activating the appropriate setting on your browser. However, if you select this setting you may be unable to access certain parts of our services. Unless you have adjusted your browser setting so that it will refuse cookies, our system will issue cookies when you direct your browser to our services.

\\r\\n

Web Beacons. Pages of our services or our e-mails may contain small electronic files known as web beacons (also referred to as clear gifs, pixel tags and single-pixel gifs) that permit us, for example, to count users who have visited those pages or opened an e-mail and for other related website statistics (for example, recording the popularity of certain website content and verifying system and server integrity).

\\r\\n
    \\r\\n
  • Use of Data
  • \\r\\n
\\r\\n

We use your personal data in ways that are compatible with the purposes for which it was collected or authorized by you, including for the following purposes:

\\r\\n
    \\r\\n
  • To contact you regarding any inquiry you make or to fulfill a request, such as, for example, a request for information about our products and services;
  • \\r\\n
  • To improve and personalize your experience when you use our Sites;
  • \\r\\n
  • To improve our products and services and for the development of future products and services;
  • \\r\\n
  • For internal record keeping and administration of records;
  • \\r\\n
  • For auditing related to a current interaction with the consumer and concurrent transactions, including, but not limited to, counting ad impressions to unique visitors, verifying positioning and quality of ad impressions, and auditing compliance with laws and other standards;
  • \\r\\n
  • For detecting security incidents, protecting against malicious, deceptive, fraudulent, or illegal activity, and prosecuting those responsible for that activity
  • \\r\\n
  • For internal research for technological development and demonstration;
  • \\r\\n
  • To verify or maintain the quality or safety of our products and services and to improve, upgrade, or enhance our services;
  • \\r\\n
  • To contact you by email and, if you have signed up for the service, to share e-newsletter or any other updates, communications or publications;
  • \\r\\n
  • For direct marketing purposes subject to your consent if required by applicable law (see \\\"Managing Your Preferences\\\" below);
  • \\r\\n
  • As necessary to set up and administer your sign up to, and use of, the log in facility available on the Sites; and
  • \\r\\n
  • For compliance with applicable laws and/or regulations and as otherwise required or permitted by applicable laws and/or regulations.
  • \\r\\n
  • For any other lawful purpose.
  • \\r\\n
\\r\\n

We use information collected from cookies and other technologies, to improve your user experience and the overall quality of our services. We may use your personal information to see which web pages you visit at our Site, which web site you visited before coming to our Site, and where you go after you leave our Site. We can then develop statistics that help us understand how our visitors use our Site and how to improve it. We may also use the information we obtain about you in other ways for which we provide specific notice at the time of collection.

\\r\\n

We will ask for your consent before using information for a purpose other than those set out in this Privacy Policy.

\\r\\n
    \\r\\n
  • Disclosing & Sharing Data
  • \\r\\n
\\r\\n

We may share your Personal Data as outlined below and for any other lawful purpose. We share Personal Data with the following entities and third parties:

\\r\\n
    \\r\\n
  • any of our group companies or affiliates – to ensure the proper administration of your website and business;
  • \\r\\n
  • our employees, agents and/or professional advisors – to obtain advice from professional advisers;
  • \\r\\n
  • Our Service providers – we share Personal Data with a limited number of our service providers. We have service providers that provide services on our behalf, such as identity verification services, website hosting, data analysis, information technology and related infrastructure, customer service, email delivery, and auditing services. These service providers may need to access Personal Data to perform their services. We authorize such service providers to use or disclose the Personal Data only as necessary to perform services on our behalf or comply with legal requirements. We require such service providers to contractually commit to protect the security and confidentiality of Personal Data they process on our behalf. Our service providers are predominantly located in the United States of America;
  • \\r\\n
  • Your service providers – we share Personal Data with your third-party service providers in connection with the Services, including but not limited to any of your healthcare providers using or interacting with our Services.
  • \\r\\n
  • Business partners – we share Personal Data with third party business partners when this is necessary to provide our Services to our Users. Examples of third parties to whom we may disclose Personal Data for this purpose are banks and payment method providers (such as credit card networks) when we provide payment processing services, and the professional services firms that we partner with to deliver Services;
  • \\r\\n
  • Our Users and third parties authorized by our Users – we share Personal Data with Users as necessary to maintain a User account and provide the Services. We share data with parties directly authorized by a User to receive Personal Data, such as when a User authorizes a third party application provider to access the User's HelloPatients account. The use of Personal Data by an authorized third party is subject to the third party's privacy policy;
  • \\r\\n
  • Corporate transactions – in the event that we enter into, or intend to enter into, a transaction that alters the structure of our business, such as a reorganization, merger, sale, joint venture, assignment, transfer, change of control, or other disposition of all or any portion of our business, assets or stock, we may share Personal Data with third parties for the purpose of facilitating and completing the transaction;
  • \\r\\n
  • To regulators including state and federal agencies, card payment networks, issuing banks and other parties required to enable compliance with laws, regulations and industry standards related to transaction processing in order to obtain commercial and credit information to establish, maintain or renew a customer's contract(s), as may be required to provide any of the services for which a customer has subscribed, to comply with the rules and regulations of any credit or debit card payment network or otherwise in accordance with this policy; and
  • \\r\\n
  • To law enforcement, courts and other relevant parties in response to a court order or a request for cooperation from a regulatory, law enforcement or other government agency; to establish or exercise our legal rights; to defend legal claims; as otherwise required or permitted by applicable laws and/or regulations; when we believe that disclosure is appropriate in connection with efforts to investigate, prevent, or take action regarding actual or suspected illegal activity, fraud, or other wrongdoing; or to protect and defend the rights, property or safety of HelloPatients, its customers, staff, suppliers or others.
  • \\r\\n
\\r\\n
    \\r\\n
  • Data Security & Retention
  • \\r\\n
\\r\\n

We make reasonable efforts to ensure a level of security appropriate to the risk associated with the processing of Personal Data. We maintain organizational, technical and administrative measures designed to protect Personal Data within our organization against unauthorized access, destruction, loss, alteration or misuse. Your Personal Data is only accessible to a limited number of personnel who need access to the information to perform their duties. Unfortunately, no data transmission or storage system can be guaranteed to be 100% secure. If you have reason to believe that your interaction with us is no longer secure (for example, if you feel that the security of your account has been compromised), please contact us immediately.

\\r\\n

If you are a HelloPatients User, we retain your Personal Data as long as we are providing the Services to you. We retain Personal Data after we cease providing Services to you, even if you close your HelloPatients account, to the extent necessary to comply with our legal and regulatory obligations, and for the purpose of fraud monitoring, detection and prevention. We also retain Personal Data to comply with our tax, accounting, and financial reporting obligations, where we are required to retain the data by our contractual commitments to our financial partners, and where data retention is mandated by the payment methods that we support. Where we retain data, we do so in accordance with any limitation periods and records retention obligations that are imposed by applicable law.

\\r\\n

Unless a longer retention period is required or permitted by law, we will only hold your Data on our systems for the period necessary to fulfil the purposes outlined in this Privacy Policy or until you request that the Data be deleted.

\\r\\n

Even if we delete your Data, it may persist on backup or archival media for legal, tax or regulatory purposes.

\\r\\n
    \\r\\n
  • We will use technical and organizational measures to safeguard you Data, for example:\\r\\n
      \\r\\n
    • access to your account is controlled by a password and a username that is unique to you.
    • \\r\\n
    • access to Website occurs only over a secured channel and may require two-factor authentication (2FA).
    • \\r\\n
    • we store your Data on secure servers and use the third party software component for access management security, which has been evaluated as conformant with the U.S. Federal Information Processing Standard (FIPS) 140-2 standards.
    • \\r\\n
    • payment details are encrypted using SSL (Secure Socket Layer) or TLS (Transport Layer Security) technology (typically you will see a lock icon or green address bar (or both) in your browser when we use this technology.
    • \\r\\n
    \\r\\n
  • \\r\\n
  • We adhere and/or are certified to the Payment Card Industry Data Security Standard (PCI DSS). This family of standards helps us manage your Data and keep it secure.
  • \\r\\n
  • Technical and organizational measures include measures to deal with any suspected data breach. If you suspect any misuse or loss or unauthorized access to your Data, please let us know immediately by contacting us via this e-mail address: info@hellopatients.com.
  • \\r\\n
\\r\\n
    \\r\\n
  1. HIPAA Authorization
  2. \\r\\n
\\r\\n

You hereby authorize the receipt, use, and disclosure of your Protected Health Information, as defined in 45 CFR 160.103 (\\\"PHI\\\"), from any health plan, physician, health care professional, hospital, clinic, laboratory, pharmacy, medical facility, or other health care provider (each a \\\"Provider\\\") that has provided payment, treatment, or services to you or on your behalf, by HelloPatients in accordance with this Agreement and our Privacy Policy. In the event our relationship terminates with one or more Providers that you have a relationship with and provides information to us relating to you, you authorize us to maintain such information on your behalf. You authorize HelloPatients to use and disclose your health information to provide you with the Services. You understand that your Protected Health Information may contain sensitive information. Unless you expressly revoke it, your authorization shall remain in effect for so long as you use our Services and for a period of six (6) months thereafter; provided, however, that we may retain your information after such date for so long as necessary to fulfill the purpose(s) for which it was collected, as authorized by you, and to comply with applicable laws.

\\r\\n
    \\r\\n
  1. Use by Minors
  2. \\r\\n
\\r\\n

The Site is not intended for use by children. We do not intentionally gather Personal Data about United States visitors who are under the age of 13 or about European Union, United Kingdom or Swiss visitors who are under the age of 16. If a child has provided us with Personal Data, a parent or guardian of that child may contact us to have the information deleted from our records. If you believe that we might have any information from a child under the ages of 13 or 16 in the applicable jurisdictions, please contact us at info@hellopatients.com. If we learn that we have inadvertently collected the personal information of a child under 13, or equivalent minimum age depending on jurisdiction, we will take steps to delete the information as soon as possible.

\\r\\n
    \\r\\n
  1. Updates To this Privacy Policy and Notifications
  2. \\r\\n
\\r\\n

We may change this Privacy Policy from time to time to reflect new services, changes in our Personal Data practices or relevant laws. The \\\"Last Updated\\\" legend at the top of this Privacy Policy indicates when this Privacy Policy was last revised. Any changes are effective when we post the revised Privacy Policy on the Services. We may provide you with disclosures and alerts regarding the Privacy Policy or Personal Data collected by posting them on our website and, if you are a User, by contacting you through your HelloPatients dashboard, email address and/or the physical address listed in your HelloPatients account.

\\r\\n
    \\r\\n
  1. Links to Other Websites
  2. \\r\\n
\\r\\n

The Services may provide the ability to connect to other websites. These websites may operate independently from us and may have their own privacy notices or policies, which we strongly suggest you review. If any linked website is not owned or controlled by us, we are not responsible for its content, any use of the website or the privacy practices of the operator of the website.

\\r\\n
    \\r\\n
  1. California \\\"Shine the Light\\\" Law
  2. \\r\\n
\\r\\n

California Civil Code Section § 1798.83 permits Users of our Site that are California residents to request certain information regarding our disclosure of personal information to third parties for their direct marketing purposes. To make such a request, please write to us at the address listed in the \\\"Contact Us\\\" section below. We do not disclose personal information to third parties for the third parties' direct marketing purposes.

\\r\\n
    \\r\\n
  1. Cookies
  2. \\r\\n
\\r\\n

This Website may place and access certain Cookies on your computer as set forth in our Cookie Policy available at https://hellopatients.com/terms-and-conditions which is hereby incorporated by reference.

\\r\\n
    \\r\\n
  1. International Transfer
  2. \\r\\n
\\r\\n

We may, directly or indirectly through third-party entities around the world, process, store, and transfer the information you provide, including your Personal Data, as described in this Privacy Policy. Specifically, the Personal Data that we collect may be transferred to, and stored at, a location outside of your jurisdiction. It may also be processed by staff operating outside of your jurisdiction who work for us or for one of the organizations outlined in this Privacy Policy in connection with the activities outlined in this Privacy Policy. By submitting your information and Personal Data using the Sites, you agree to this transfer, storing or processing. We will take all steps necessary to ensure that your Personal Data is treated securely and in accordance with this Privacy Policy. We have put in place commercially reasonable technical and organizational procedures to safeguard the information and Personal Data we collect on the Sites.

\\r\\n
    \\r\\n
  1. Contact Us
  2. \\r\\n
\\r\\n

If You have any questions or complaints about this Privacy Policy, please contact us via email or phone or by writing to us at the address below:

\\r\\n

Send email to: info@hellopatients.com

\\r\\n

Send mail to our address:

\\r\\n

Real Patient Solutions, Inc.

\\r\\n

Attn: Privacy Policy Inquiry

\\r\\n

53 Longbow Lane

\\r\\n

Springfield, IL, 62704

\\r\\n
    \\r\\n
  1. Definitions
  2. \\r\\n
\\r\\n

In this Privacy Policy, the following definitions are used:

\\r\\n
    \\r\\n
  1. \\\"Cookies\\\" means a small text file placed on your computer by this Website when you visit certain parts of the Website and/or when you use certain features of the Website. Details of the cookies used by this Website are set out in the clause below (Cookies that we use);
  2. \\r\\n
  3. \\\"Data\\\" means all information that you submit to HelloPatients via the Sites. This definition incorporates, where applicable, the definitions provided in applicable data protection laws;
  4. \\r\\n
  5. \\\"User\\\" or \\\"you\\\" means any third party that accesses the Website and is not either (i) employed by HelloPatients and acting in the course of their employment or (ii) engaged as a consultant or otherwise providing services to HelloPatients and accessing the Website in connection with the provision of such services; and
  6. \\r\\n
  7. \\\"Website\\\", \\\"Web site\\\" or \\\"Site\\\" means the website that you were browsing when you clicked on a link to this Privacy Policy, including all subsidiary pages, https://hellopatients.com and any sub-domains of this site unless expressly excluded by their own terms and conditions.
  8. \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9wdWJsaWMvYWNjZXB0LXRlcm1zL3ByaXZhY3ktcG9saWN5L3ByaXZhY3ktcG9saWN5LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-privacy-policy',\r\n templateUrl: './privacy-policy.component.html',\r\n styleUrls: ['./privacy-policy.component.scss']\r\n})\r\nexport class PrivacyPolicyComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

These HelloPatients Website Terms of Use (\\\"Agreement\\\") form a legal agreement between Real Patient Solutions, Inc. d/b/a HelloPatients (\\\"HelloPatients\\\", \\\"HPT\\\", \\\"us\\\", \\\"our\\\", or \\\"we\\\") and the entity or person (\\\"you\\\" or \\\"your\\\") who registered on the HelloPatients account page to receive certain payment gateway services, data, technology and analytics services, or other business services that may be offered by HelloPatients or its affiliates (\\\"Service(s)\\\") or is otherwise accessing or using HPT's websites ( \\\"Website(s)\\\"), services or content governed by this Agreement. This Agreement describes the terms and conditions that apply to your use of the Websites, Services and related content, provided that Services may also be governed by one or more additional agreements between you and HPT.

\\r\\n

If you do not understand any of the terms of this Agreement, please contact us before using the Services or Websites.

\\r\\n

You may not access or use any Services or Websites unless you agree to abide by all of the terms and conditions in this Agreement.

\\r\\n
    \\r\\n
  1. Overview \\r\\n
      \\r\\n
    1. This Agreement provides a general description of the Services that HPT may provide to you, including those that allow you to accept payments from purchasers of your goods or services or donors to your organization (your \\\"Customers\\\"). We provide you with a more detailed description of the Services through additional resources we make available to you on our Website. Additionally, certain Services may be governed by one or more additional agreements between you and HPT.
    2. \\r\\n
    3. This Agreement forms a legal agreement between you and HelloPatients. You are deemed to have accepted and agreed to this Agreement, and all terms herein including the Limitation of Liability and indemnification provisions, when you access this Website or the Services. If you are accessing this Website or the Services on behalf of a business or other entity or organization, your access constitutes the entity's or organization's acceptance of this Agreement. By accessing the Services or https://hellopatients.com or any subsidiary web pages within the Website, you agree to this Agreement in full, together with any additional or specific terms and conditions we may draw to your attention prior to your purchasing any products or services from or via this Website or through other means. You hereby consent to the exchange of information and documents between you and us electronically over the Internet or by email and agree this electronic Agreement shall be the equivalent of a written paper agreement between you and us.
    4. \\r\\n
    \\r\\n
  2. \\r\\n
  3. Ownership and Copyright\\r\\n
      \\r\\n
    1. You acknowledge that any and all information, content, reports, data, databases, graphics, interfaces, web pages, text, files, software, product names, company names, trademarks, logos and trade names contained on this Website (collectively, the \\\"Content\\\"), including the manner in which the Content is presented or appears and all information relating thereto, are the property of HelloPatients or its licensors, as the case may be. You shall have no right, title or interest, ownership or otherwise, in the Content.
    2. \\r\\n
    \\r\\n
  4. \\r\\n
  5. Permitted Use of Content\\r\\n
      \\r\\n
    1. HelloPatients hereby grants to you a limited, revocable, personal, non-transferable and non-exclusive license to access, read and download one copy of the Content solely for the purpose of evaluating the services offered by us (Services).
    2. \\r\\n
    \\r\\n
  6. \\r\\n
  7. Restrictions on Use\\r\\n
      \\r\\n
    1. You agree that you will not:\\r\\n
        \\r\\n
      1. distribute the Content for any purpose, including, without limitation, compiling an internal database, redistributing or reproducing the Content by way of the press or media or through any commercial network, cable or satellite system; or
      2. \\r\\n
      3. create derivative works of, reverse engineer, decompile, disassemble, adapt, translate, transmit, arrange, modify, copy, bundle, sell, sublicense, export, merge, transfer, adapt, loan, rent, lease, assign, share, outsource, host, publish, make available to any person or otherwise use, either directly or indirectly, the Services, Websites or Content in whole or in part, in any form or by any means whatsoever, be they physical, electronic or otherwise. You shall not permit, allow or do anything that would infringe or otherwise prejudice the proprietary rights of HelloPatients or its licensors or allow any third party to access the Services, Websites or Content. The restrictions set out in this Agreement shall not apply to the limited extent the restrictions are prohibited by applicable law.
      4. \\r\\n
      5. use the Services, Website or Content in violation of the Acceptable Use Policy available at https://hellopatients.com/terms-and-conditions, which is hereby incorporated by reference.
      6. \\r\\n
      \\r\\n
    2. \\r\\n
    \\r\\n
  8. \\r\\n
  9. Your Information\\r\\n
      \\r\\n
    1. If you are a merchant user of the Services or Websites (e.g. you are using the services in connection with the receipt of payments), to the extent applicable:\\r\\n
        \\r\\n
      • You and your users are responsible for obtaining consents, authorizations, and releases required by applicable law to access, use and disclose protected health information (as defined by HIPAA), mental health information and other patient medical information (collectively, \\\"Patient Information\\\") in connection with the Services, and you represent to HelloPatients that you and your users have obtained such consents, authorizations and releases.
      • \\r\\n
      • You are responsible for training your users on HIPAA and other laws and regulations relating to the privacy and security of Patient Information and for ensuring that your users use the Services in compliance with such laws and regulations.
      • \\r\\n
      • You are solely responsible for monitoring the access, use and disclosure of Patient Information by your users.
      • \\r\\n
      • You understand that HelloPatients will not verify the accuracy of any Patient Information that you or your users access, use or disclose in connection with the Services and you are solely responsible for the accuracy of the Patient Information.
      • \\r\\n
      • You represent and warrant that all Patient Information will be collected, shared and retained in compliance with applicable law.
      • \\r\\n
      • In the event a person signs up with HelloPatients for services with HelloPatients (e.g. a HelloPatients Wallet) and authorizes HelloPatients to retain and use such person's information and data (including Protected Health Information), you acknowledge and agree that HelloPatients may use such information and data (even if provided solely by you) in accordance with its agreement with such person and, notwithstanding anything to the contrary in this Agreement or any Business Associate Agreement between you and HelloPatients, to the extent permitted by law, HelloPatients may continue to retain, store and otherwise use such person's data following termination or expiration of this Agreement.
      • \\r\\n
      \\r\\n
    2. \\r\\n
    3. If you are a patient user of the Services or Websites (e.g. you are using the Services as a \\\"payer\\\" or in a similar capacity):\\r\\n
        \\r\\n
      • You hereby authorize the receipt, use, and disclosure of your Protected Health Information, as defined in 45 CFR 160.103 (\\\"PHI\\\"), from any health plan, physician, health care professional, hospital, clinic, laboratory, pharmacy, medical facility, or other health care provider (each a \\\"Provider\\\") that has provided payment, treatment, or services to you or on your behalf, by HelloPatients in accordance with this Agreement and our Privacy Policy.
      • \\r\\n
      • In the event our relationship terminates with one or more Providers that you have a relationship with and provides information to us relating to you, you authorize us to maintain such information on your behalf.
      • \\r\\n
      • You authorize HelloPatients to use and disclose your health information to provide you with the Services. You understand that your Protected Health Information may contain sensitive information. Unless you expressly revoke it, your authorization shall remain in effect for so long as you use our Services and for a period of six (6) months thereafter; provided, however, that we may retain your information after such date for so long as necessary to fulfill the purpose(s) for which it was collected, as authorized by you, and to comply with applicable laws.
      • \\r\\n
      • You acknowledge that your use of the Services may be in connection with HelloPatients' agreement with certain healthcare providers (each such agreement a \\\"Provider Agreement\\\"). You agree that this Agreement is an independent agreement and that the termination of a Provider Agreement does not terminate this Agreement. Accordingly, in the event you make a payment through our Services after the applicable Provider Agreement is terminated, you agree that this Agreement shall still apply to those payments and that we may facilitate the payment in accordance with your instruction. Additionally, subject to the terms of this Agreement and the Privacy Policy, we may retain all information about you provided by the applicable Provider following termination of a Provider Agreement. You acknowledge that, except as expressly provided otherwise, this Agreement is solely between you and HelloPatients.
      • \\r\\n
      \\r\\n
    4. \\r\\n
    5. With the exception of your non-public personal information, you hereby grant to HelloPatients a perpetual, unlimited, royalty-free, worldwide, non-exclusive, irrevocable, transferable license to run, display, copy, reproduce, publish, bundle, distribute, market, create derivative works of, adapt, translate, transmit, arrange, modify, sublicense, export, merge, transfer, loan, rent, lease, assign, share, outsource, host, make available to any person or otherwise use any information or other content you provide on or through the Services or Websites or which is sent to HelloPatients by email or other correspondence, including, without limitation, any ideas, concepts, inventions, know-how, techniques or any intellectual property contained therein, for any purpose whatsoever. HelloPatients shall not be subject to any obligations of confidentiality regarding any such information unless specifically agreed to by HelloPatients in writing or required by law. You represent and warrant that you have the right to grant the license set out above.
    6. \\r\\n
    \\r\\n
  10. \\r\\n
  11. Personal Information; Data Rights\\r\\n
      \\r\\n
    1. HelloPatients may from time to time, but is not obligated to, monitor your use of the Website and collect, store, use and disclose information concerning you to solicit or offer you its Services, and you hereby consent to such collection, storage, use and disclosure and waive any right of privacy you may have in it. Additionally, the Privacy Policy available at https://hellopatients.com/terms-and-conditions is hereby incorporated by reference and made a part of this Agreement. HelloPatients may use collect and use data and information from or about you as necessary or appropriate to provide the Services and for any other lawful purpose in accordance with the Privacy Policy.
    2. \\r\\n
    \\r\\n
  12. \\r\\n
  13. Service Agreements\\r\\n
      \\r\\n
    1. If you procure Services from HelloPatients or one of its suppliers or sponsors, then such Services shall be delivered pursuant to a separate agreement and are not provided hereunder, and you shall have no rights or claims in respect of such Services hereunder. Any support obligations regarding the Services shall be set forth in the applicable agreement. You are solely responsible for providing support to Customers, as applicable. We are not responsible for providing support for the Services to your Customers unless we agree to do so in a separate agreement with you or one of your Customers.
    2. \\r\\n
    \\r\\n
  14. \\r\\n
  15. Links to Third Part Websites and Services\\r\\n
      \\r\\n
    1. The Website or Services may contain links, buttons and banners that redirect you to third-party resources and websites that may be of interest. The inclusion of any link does not mean we endorse the site or have any association with its operators, nor should the inclusion of any link be viewed as an encouragement to purchase or use any third-party products or services. We provide these links to you for information purposes and convenience only.
    2. \\r\\n
    3. Linked Websites are not under our control and we are not responsible for the contents of any Linked Website including, without limitation, any link contained in a Linked Website, or any changes or updates to a Linked Website. We do not accept responsibility or liability for the privacy of your personal information on any Linked Website, and we are not responsible for webcasting or any other form of transmission received from any Linked Website. \\\"Linked Website(s)\\\" means a website or entity other than https://hellopatients.com, which are linked through a hyperlink or through another means (including text, image, and moving image) to or from this Website.
    4. \\r\\n
    5. This Agreement does not cover your interaction with Linked Websites; therefore, you should carefully review the terms and conditions and privacy policies of any third party sites you visit. Your use of any Linked Website is at your own risk.
    6. \\r\\n
    7. Certain services made available via the Website or Services are delivered by third parties. By using any product, service or functionality originating from a Website, you acknowledge and consent that we may share such information and data with any third party with whom we have a contractual relationship to provide the requested product, service or functionality for the Website users and customers.
    8. \\r\\n
    9. HelloPatients does not assume responsibility for the accuracy or appropriateness of the information, data, opinions, advice or statements contained at Linked Websites, and when you access such sites, you are doing so at your own risk. In providing links to the other sites, HelloPatients is in no way acting as a publisher or disseminator of the material contained on those other sites and does not seek to monitor or control such sites. A link to another site should not be construed to mean that HelloPatients is affiliated or associated with the same. HELLOPATIENTS DOES NOT RECOMMEND OR ENDORSE ANY OF THE CONTENT, INCLUDING WITHOUT LIMITATION ANY HYPERLINKS TO, OR CONTENT FOUND ON, OTHER WEBSITES.
    10. \\r\\n
    \\r\\n
  16. \\r\\n
  17. Limitations on Liability and Disclaimers\\r\\n
      \\r\\n
    1. You accept that any comments posted by you on the Website and/or social media pages can be viewed by the public, and that we have no control over, or liability for, the way in which this information is used by any third party who views your comments.
    2. \\r\\n
    3. THERE IS NO GUARANTEE THAT PERSONAL INFORMATION PROVIDED AND TRANSACTIONS CONDUCTED ON THIS WEBSITE, THROUGH THE SERVICES OR ON THE INTERNET WILL BE CONFIDENTIAL AND SECURE. THE USE OF THIS WEBSITE, THE SERVICES AND THE CONTENT IS AT YOUR OWN RISK.
    4. \\r\\n
    5. HelloPatients will not be responsible for any damages you or any third party may suffer as a result of the transmission, storage or receipt of confidential or proprietary information that you make available on the Website or that you expressly or implicitly authorize HelloPatients to make available, or for any errors or any changes made to any transmitted, stored or received information.
    6. \\r\\n
    7. You are solely responsible for the retrieval and use of the Content. You should apply your own judgment in making any use of any Content, including, without limitation, the use of the Content as the basis for any conclusions or decisions.
    8. \\r\\n
    9. THE CONTENT MAY NOT BE ACCURATE, UP TO DATE, COMPLETE OR UNCORRUPTED, AND IS NOT TO BE RELIED UPON.
    10. \\r\\n
    11. THE CONTENT IS PROVIDED FOR INFORMATIONAL PURPOSES ONLY AND SHOULD NOT BE INTERPRETED AS A RECOMMENDATION FOR ANY SPECIFIC PRODUCT OR SERVICE, USE OR COURSE OF ACTION.
    12. \\r\\n
    13. EXCEPT AS EXPRESSLY PROVIDED IN A SEPARATE AGREEMENT WITH YOU, THIS WEBSITE AND ALL CONTENT, PRODUCTS, SERVICES AND SOFTWARE ON THIS WEBSITE OR MADE AVAILABLE THROUGH THIS WEBSITE ARE PROVIDED AS IS WITHOUT ANY REPRESENTATIONS, WARRANTIES, GUARANTEES OR CONDITIONS, OF ANY KIND, WHETHER EXPRESS OR IMPLIED, STATUTORY OR OTHERWISE, INCLUDING, BUT NOT LIMITED TO, WARRANTIES AS TO UNINTERRUPTED OR ERROR-FREE OPERATION, AVAILABILITY, ACCURACY, COMPLETENESS, RELIABILITY, TIMELINESS, LEGALITY, SUITABILITY, PRIVACY, SECURITY, MERCHANTABILITY, QUALITY, TITLE, NON-INFRINGEMENT OR FITNESS FOR A PARTICULAR PURPOSE, OR ANY REPRESENTATION, WARRANTY, GUARANTY OR CONDITION ARISING OUT OF A COURSE OF DEALING OR USAGE OF TRADE.
    14. \\r\\n
    15. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL HELLOPATIENTS, ITS AFFILIATES, AGENTS, LICENSORS, SUPPLIERS OR THEIR RESPECTIVE OWNERS, DIRECTORS, OFFICERS OR EMPLOYEES (\\\"RELEASED PARTIES\\\") BE LIABLE FOR ANY SPECIAL, INDIRECT, INCIDENTAL, PUNITIVE, EXEMPLARY, AGGRAVATED, ECONOMIC OR CONSEQUENTIAL DAMAGES, HOWSOEVER CAUSED, INCLUDING BUT NOT LIMITED TO DAMAGES FOR LOSS OF USE, LOST PROFITS OR LOST SAVINGS, EVEN IF THE RELEASED PARTY HAD BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES OR CLAIMS.
    16. \\r\\n
    17. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT WILL ANY OF THE RELEASED PARTIES BE LIABLE FOR DAMAGES OR LOSSES RESULTING FROM: VIRUSES, DATA CORRUPTION, FAILED MESSAGES, TRANSMISSION ERRORS OR PROBLEMS; TELECOMMUNICATIONS SERVICE PROVIDERS; LINKS TO THIRD PARTY WEBSITES; THE INTERNET; PERSONAL INJURY; THIRD PARTY CONTENT, PRODUCTS OR SERVICES; DAMAGES OR LOSSES CAUSED BY YOU OR YOUR RESPECTIVE EMPLOYEES, AGENTS OR SUBCONTRACTORS; LOSS OF USE OR LACK OF AVAILABILITY OF FACILITIES, INCLUDING COMPUTER RESOURCES, ROUTERS AND STORED DATA; THE USE OR INABILITY TO USE THIS WEBSITE OR THE CONTENT; ANY OTHER WEBSITE ACCESSED TO OR FROM THIS WEBSITE; OR EVENTS BEYOND THE REASONABLE CONTROL OF HELLOPATIENTS, EVEN IF THE RELEASED PARTY HAD BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES OR CLAIMS.
    18. \\r\\n
    19. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO CASE WILL ANY RELEASED PARTY'S CUMULATIVE TOTAL LIABILITY ARISING UNDER ANY CAUSE OF ACTION WHATSOEVER (INCLUDING WITHOUT LIMITATION BREACH OF CONTRACT, TORT, NEGLIGENCE, GROSS NEGLIGENCE OR OTHERWISE) ARISING IN CONNECTION WITH THIS AGREEMENT BE MORE THAN TWENTY UNITED STATES DOLLAR $25.00 USD.
    20. \\r\\n
    21. HELLOPATIENTS ASSUMES NO OBLIGATION TO UPDATE THE CONTENT ON THIS WEBSITE. THE CONTENT ON THIS WEBSITE MAY BE CHANGED WITHOUT NOTICE TO YOU. HELLOPATIENTS IS NOT RESPONSIBLE FOR ANY CONTENT OR INFORMATION THAT YOU MAY FIND UNDESIRABLE OR OBJECTIONABLE. HELLOPATIENTS DISCLAIMS ANY LIABILITY FOR UNAUTHORIZED USE OR REPRODUCTION OF ANY PORTION OF THE WEBSITE. ACCESSING THE CONTENT FROM TERRITORIES WHERE IT MAY BE ILLEGAL IS PROHIBITED.
    22. \\r\\n
    \\r\\n
  18. \\r\\n
  19. Termination\\r\\n
      \\r\\n
    1. This Agreement is effective until terminated by HelloPatients, with or without cause, in HelloPatients' sole discretion. HelloPatients may terminate this Agreement without notice to you for any reason or for no reason. Any such termination by HelloPatients shall be in addition to and without prejudice to such rights and remedies as may be available to HelloPatients, including injunction and other equitable remedies.
    2. \\r\\n
    3. The disclaimers, limitations on liability, ownership, termination, interpretation, your license to HelloPatients, your warranty and the indemnity provisions of this Agreement shall survive the termination or expiry of this Agreement.
    4. \\r\\n
    \\r\\n
  20. \\r\\n
  21. Indemnity\\r\\n
      \\r\\n
    1. You agree at all times to indemnify, defend and hold harmless the Released Parties, and each of them, against all actions, proceedings, costs, claims, damages, demands, liabilities and expenses whatsoever (including legal and other fees and disbursements) arising out of, sustained, incurred or paid by any of the Released Parties directly or indirectly in respect of:\\r\\n
        \\r\\n
      • any information or other content you provide on or through this Website or which is sent to HelloPatients by email or other correspondence;
      • \\r\\n
      • your use or misuse of the Content or this Website, including without limitation infringement claims;
      • \\r\\n
      • your failure to comply with any of your obligations set forth in this Agreement;
      • \\r\\n
      • the inaccuracy or falsity of any representation or warranty made by you in relation to this Agreement; or
      • \\r\\n
      • your alleged or actual negligence or willful misconduct.
      • \\r\\n
      \\r\\n
    2. \\r\\n
    \\r\\n
  22. \\r\\n
  23. Healthcare\\r\\n
      \\r\\n
    1. HelloPatients does not provide professional medical, therapy or counseling services or advice, and to the extent you or your users are providing healthcare services or advice, you are solely responsible for the provision of any such services and advice to your or your user's patients. Any information or materials that are made available by HelloPatients are for informational and educational purposes only and are not intended as professional advice, and you and your users assume full risk and responsibility for the use and dissemination of such information and materials. HelloPatients does not endorse any products, items, services, methodologies or techniques.
    2. \\r\\n
    \\r\\n
  24. \\r\\n
  25. Governing Law; Interpretation\\r\\n
      \\r\\n
    1. This Website and the Content (excluding Linked Websites or their content) are located within the USA. Any dispute, controversy or claim arising out of or in connection with this Agreement, or the breach, termination or invalidity thereof, shall be finally settled by arbitration in accordance with the Arbitration Rules and Mediation Procedures of the American Arbitration Association (the \\\"AAA\\\"). The arbitral tribunal shall be composed of a sole arbitrator. The seat of arbitration shall be Chicago, Illinois, USA. The language to be used in the arbitral proceedings shall be English. This Agreement shall be governed by the substantive law of the United States and the State of Illinois, without regard to conflicts of laws provisions thereof and without regard to the United Nations Convention on Contracts for the International Sale of Goods.
    2. \\r\\n
    3. You agree to waive any right you may have to the commencement of or participation in any class action against HPT related to this Website. You also agree to opt out of any class proceedings against HPT or its affiliates or licensors.
    4. \\r\\n
    5. In this Agreement, unless the context requires a different interpretation:\\r\\n
        \\r\\n
      1. the singular includes the plural and vice versa;
      2. \\r\\n
      3. references to sub-clauses, clauses, schedules or appendices are to sub-clauses, clauses, schedules or appendices of this Agreement;
      4. \\r\\n
      5. a reference to a person includes firms, companies, government entities, trusts and partnerships;
      6. \\r\\n
      7. reference to any statutory provision includes any modification or amendment of it;
      8. \\r\\n
      9. the headings and sub-headings do not form part of this Agreement.
      10. \\r\\n
      \\r\\n
    6. \\r\\n
    \\r\\n
  26. \\r\\n
  27. Entire Agreement\\r\\n
      \\r\\n
    1. This Agreement, as it may be amended from time to time in accordance with the provisions of the Section below, and any and all other legal notices and policies on this Website, constitute the entire agreement between you and HelloPatients with respect to the use of this Website and the Content.
    2. \\r\\n
    3. This Agreement and all policies and procedures that are incorporated by reference, together with any other agreements between you and HelloPatients with respect to applicable Services, constitute the entire agreement between you and HelloPatients for provision and use of the Services. Except where expressly stated otherwise in a writing executed between you and HelloPatients, this Agreement will prevail over any conflicting policy or agreement for the provision or use of the Services.
    4. \\r\\n
    5. This Agreement sets forth your exclusive remedies with respect to the Services. If any provision or portion of this Agreement is held to be invalid or unenforceable under law, then it will be reformed and interpreted to accomplish the objectives of such provision to the greatest extent possible, and all remaining provisions will continue in full force and effect.
    6. \\r\\n
    \\r\\n
  28. \\r\\n
  29. Amendment and Waiver\\r\\n
      \\r\\n
    1. HelloPatients reserves the right, in its discretion, to amend this Agreement at any time by posting amendments on this Website or through the Services. You are responsible for periodically reviewing the amendments on this Website and through the Services, and you are deemed to be aware of such amendments. If you do not agree to the amended terms and conditions, you shall immediately stop using this Website. Access to this Website or use of this Website or Services after any amendments have been posted shall constitute your acknowledgement and acceptance of the amended terms and conditions. No supplement, modification or amendment to this Agreement and no waiver of any provision of this Agreement shall be binding on HelloPatients unless executed by HelloPatients in writing or posted by HelloPatients to the Website. No waiver of any of the provisions of this Agreement shall be deemed to be or shall constitute a waiver of any other provision (whether or not similar) in this Agreement or any other agreement between you and HelloPatients nor shall such waiver constitute a continuing waiver unless otherwise expressly provided.
    2. \\r\\n
    \\r\\n
  30. \\r\\n
  31. Severability\\r\\n
      \\r\\n
    1. Any provision of this Agreement which is held by an arbitrator to be illegal, invalid or unenforceable in such jurisdiction shall, as to that jurisdiction, be ineffective to the extent of such illegality, invalidity or un-enforceability and shall otherwise be enforced to the maximum extent permitted by law, all without affecting the remaining provisions of this Agreement or affecting the legality, validity or enforceability of such provision in any other jurisdiction.
    2. \\r\\n
    \\r\\n
  32. \\r\\n
  33. Inurement\\r\\n
      \\r\\n
    1. This Agreement shall inure to the benefit of and be binding upon you and HelloPatients and our respective successors and permitted assigns. You acknowledge having read this Agreement before accepting it and using the Website, having the authority to accept this Agreement and having received a copy of this Agreement.
    2. \\r\\n
    \\r\\n
  34. \\r\\n
  35. Assignment\\r\\n
      \\r\\n
    1. This Agreement and any rights and licenses granted hereunder may not be transferred or assigned by you and any attempted transfer or assignment shall be null and void.
    2. \\r\\n
    \\r\\n
  36. \\r\\n
  37. Language\\r\\n
      \\r\\n
    1. The parties hereto agree that this Agreement is drafted and executed in the English language.
    2. \\r\\n
    \\r\\n
  38. \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9wdWJsaWMvYWNjZXB0LXRlcm1zL3Rlcm1zLW9mLXVzZS90ZXJtcy1vZi11c2UuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-terms-of-use',\r\n templateUrl: './terms-of-use.component.html',\r\n styleUrls: ['./terms-of-use.component.scss']\r\n})\r\nexport class TermsOfUseComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ 'forgotPassword.forgotPasswordHeading' | translate}}

\\r\\n

Please enter your {{getLabel()}}, a temporary password will be sent to your registered email id

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{formErrors.userName}}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9wdWJsaWMvZm9yZ290LXBhc3N3b3JkL2ZvcmdvdC1wYXNzd29yZC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators, FormControl, FormGroup } from '@angular/forms';\r\nimport { ValidationConstant } from 'src/app/services/validation/validation.constant';\r\nimport { ForgotPasswordService } from 'src/app/services/api/forgot-password.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { StorageService } from 'src/app/services/session/storage.service';\r\nimport { StorageType } from 'src/app/services/session/storage.enum';\r\nimport { ToasterService } from 'src/app/services/api/toaster.service';\r\nimport { Exception } from 'src/app/common/exceptions/exception';\r\nimport { MessageSetting } from 'src/app/common/constants/message-setting.constant';\r\nimport { AccessRightsService } from '../../../services/api/access-rights.service';\r\nimport { Validator } from '../../../common/validation/validator';\r\nimport { SettingsService } from 'src/app/services/api/settings.service';\r\nimport { ThemeService } from 'src/app/services/api/theme.service';\r\n\r\n@Component({\r\n selector: 'app-forgot-password',\r\n templateUrl: './forgot-password.component.html',\r\n styleUrls: ['./forgot-password.component.scss']\r\n})\r\nexport class ForgotPasswordComponent implements OnInit {\r\n forgotPasswordForm: FormGroup;\r\n isloggingin = false;\r\n isLoader: any;\r\n toastData: any;\r\n loggedInUser: any;\r\n formErrors: any = {};\r\n validator: Validator;\r\n providerName = null;\r\n routeParameter: any;\r\n skin = '';\r\n logo = '';\r\n patientSettings: any;\r\n config = {\r\n userName: {\r\n required: { name: ValidationConstant.forgotPassword.username.name },\r\n maxlength: {\r\n name: ValidationConstant.forgotPassword.username.name,\r\n max: ValidationConstant.forgotPassword.username.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.forgotPassword.username.name,\r\n min: ValidationConstant.forgotPassword.username.minLength.toString()\r\n }\r\n },\r\n };\r\n constructor(private formBuilder: FormBuilder,\r\n private forgotPasswordService: ForgotPasswordService,\r\n private storageService: StorageService,\r\n private router: Router,\r\n private toasterService: ToasterService,\r\n private accessRightsService: AccessRightsService,\r\n private themeService: ThemeService,\r\n private route: ActivatedRoute,\r\n private settingsService: SettingsService) {\r\n {\r\n this.validator = new Validator(this.config);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.forgotPasswordForm = this.formBuilder.group(\r\n {\r\n userName: ['', [Validators.required]],\r\n sendCatalog: true\r\n });\r\n this.routeParameter = this.route.params.subscribe(params => {\r\n this.providerName = params['providerName'];\r\n if (this.providerName !== undefined) {\r\n this.getLogo(this.providerName);\r\n this.getTheme(this.providerName);\r\n this.storageService.save(StorageType.session, 'settingsData', JSON.stringify(this.patientSettings));\r\n } else {\r\n this.logo = '../../../../assets/images/logo_login.png';\r\n }\r\n });\r\n }\r\n\r\n forgotPassword() {\r\n this.validateAllFormFields(this.forgotPasswordForm);\r\n this.formErrors = this.validator.validate(this.forgotPasswordForm);\r\n if (this.forgotPasswordForm.invalid) {\r\n return;\r\n }\r\n // if (this.isRobot) {\r\n // this.formErrors['IsCaptcha'] = 'Please check, You are not robot.';\r\n // return;\r\n // }\r\n this.isLoader = true;\r\n try {\r\n let reqObj = {};\r\n if (this.providerName !== undefined && this.providerName != null && this.providerName !== '') {\r\n // if(window.location.host.includes(\"localhost:\")||window.location.host.includes(\"logindev.\")||window.location.host.includes(\"login.uat\")||window.location.host.includes(\"login.hellopatients\")){\r\n if (window.location.host.includes(\"logindev.\") || window.location.host.includes(\"login.uat\") || window.location.host.includes(\"login.hellopatients\")) {\r\n reqObj = { providerSuffix: this.providerName };\r\n }\r\n }\r\n const userName = this.forgotPasswordForm.controls['userName'].value;\r\n this.forgotPasswordService.forgotPassword(userName, reqObj).subscribe(\r\n a => {\r\n this.toastData = this.toasterService.success(MessageSetting.forgotPassword.common);\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(MessageSetting.forgotPassword.common);\r\n if (this.providerName !== undefined && this.providerName != null && this.providerName !== '') {\r\n const newUrl = '/login/' + this.providerName;\r\n this.router.navigate([newUrl]);\r\n } else {\r\n this.router.navigate(['/login']);\r\n }\r\n }, 5000);\r\n this.isLoader = false;\r\n },\r\n error => {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.isLoader = false;\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 3000);\r\n }\r\n );\r\n } catch (e) {\r\n\r\n this.isLoader = false;\r\n this.toastData = this.toasterService.error(\r\n MessageSetting.forgotPassword.common\r\n );\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(MessageSetting.forgotPassword.common);\r\n }, 5000);\r\n }\r\n }\r\n forgotUsername() {\r\n this.router.navigate(['/forgot-username']);\r\n }\r\n getLogo(providerName) {\r\n this.settingsService.getProviderSettingsLogo(providerName).subscribe(\r\n (response: any) => {\r\n this.logo = response.logo;\r\n this.patientSettings = { logo: this.logo, skin: this.skin, providerName: this.providerName };\r\n this.storageService.save(StorageType.session, 'settingsData', JSON.stringify(this.patientSettings));\r\n },\r\n error => {\r\n this.logo = '../../../../assets/images/logo_login.png';\r\n console.log(error);\r\n }\r\n );\r\n }\r\n\r\n getTheme(providerName) {\r\n this.settingsService.getProviderSettingsSkin(providerName).subscribe(\r\n (response: any) => {\r\n this.skin = response.skin;\r\n this.patientSettings = { logo: this.logo, skin: this.skin, providerName: this.providerName };\r\n this.storageService.save(StorageType.session, 'settingsData', JSON.stringify(this.patientSettings));\r\n this.themeService.changeTheme(response.skin);\r\n },\r\n error => {\r\n console.log(error);\r\n }\r\n );\r\n }\r\n cancel() {\r\n if (this.providerName !== undefined) {\r\n const newUrl = '/login/' + this.providerName;\r\n this.router.navigate([newUrl]);\r\n } else {\r\n this.router.navigate(['/login']);\r\n }\r\n }\r\n validateAllFormFields(formGroup: FormGroup) {\r\n // {1}\r\n Object.keys(formGroup.controls).forEach(field => {\r\n // {2}\r\n const control = formGroup.get(field); // {3}\r\n if (control instanceof FormControl) {\r\n // {4}\r\n control.markAsTouched({ onlySelf: true });\r\n control.markAsDirty({ onlySelf: true });\r\n } else if (control instanceof FormGroup) {\r\n // {5}\r\n this.validateAllFormFields(control); // {6}\r\n }\r\n });\r\n }\r\n getPlaceHolder() {\r\n //if(window.location.host.includes(\"login.\")||window.location.host.includes(\"logindev.\")||window.location.host.includes(\"localhost:\")){\r\n if (window.location.host.includes('login.') || window.location.host.includes('logindev.')) {\r\n return 'Email or Phone Number';\r\n }\r\n return 'Username';\r\n }\r\n getLabel() {\r\n if (window.location.host.includes('login.') || window.location.host.includes('logindev.') || window.location.host.includes('localhost:')) {\r\n //if(window.location.host.includes(\"login.\")||window.location.host.includes(\"logindev.\")){\r\n return 'Email/Phone';\r\n }\r\n return 'Username';\r\n }\r\n}\r\n\r\n\r\n\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ 'forgotUsername.forgotUsernameHeading' | translate}}

\\r\\n

Please enter your email id, your Username will be sent to your registered email id

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{formErrors.email}}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9wdWJsaWMvZm9yZ290LXVzZXJuYW1lL2ZvcmdvdC11c2VybmFtZS5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators, FormControl, FormGroup } from '@angular/forms';\r\nimport { ValidationConstant } from 'src/app/services/validation/validation.constant';\r\nimport { ForgotUsernameService } from 'src/app/services/api/forgot-username.service';\r\nimport { Router } from '@angular/router';\r\nimport { StorageService } from 'src/app/services/session/storage.service';\r\nimport { StorageType } from 'src/app/services/session/storage.enum';\r\n import { ToasterService } from 'src/app/services/api/toaster.service';\r\nimport { Exception } from 'src/app/common/exceptions/exception';\r\nimport { MessageSetting } from 'src/app/common/constants/message-setting.constant';\r\nimport { AccessRightsService } from '../../../services/api/access-rights.service';\r\nimport { Validator } from '../../../common/validation/validator';\r\n\r\n@Component({\r\n selector: 'app-forgot-username',\r\n templateUrl: './forgot-username.component.html',\r\n styleUrls: ['./forgot-username.component.scss']\r\n})\r\nexport class ForgotUsernameComponent implements OnInit {\r\n forgotUsernameForm: FormGroup;\r\n isloggingin = false;\r\n isLoader: any;\r\n toastData: any;\r\n loggedInUser: any;\r\n formErrors: any = {};\r\n validator: Validator;\r\n\r\n config = {\r\n email: {\r\n required: { name: ValidationConstant.forgotUsername.email.name },\r\n maxlength: {\r\n name: ValidationConstant.forgotUsername.email.name,\r\n max: ValidationConstant.forgotUsername.email.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.forgotUsername.email.name,\r\n min: ValidationConstant.forgotUsername.email.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.forgotUsername.email.name }\r\n },\r\n }\r\n constructor(private formBuilder: FormBuilder,\r\n private forgotUsernameService: ForgotUsernameService,\r\n private storageService: StorageService,\r\n private router: Router,\r\n private toasterService: ToasterService,\r\n private accessRightsService: AccessRightsService) {\r\n {\r\n this.validator = new Validator(this.config);\r\n }\r\n }\r\n\r\n ngOnInit() {\r\n this.forgotUsernameForm = this.formBuilder.group(\r\n {\r\n email: ['', [Validators.required,\r\n Validators.maxLength(ValidationConstant.forgotUsername.email.maxLength),\r\n Validators.minLength(ValidationConstant.forgotUsername.email.minLength),\r\n Validators.pattern(ValidationConstant.email_regex)]],\r\n sendCatalog: true\r\n }); \r\n } \r\n forgotUsername() {\r\n this.validateAllFormFields(this.forgotUsernameForm);\r\n this.formErrors = this.validator.validate(this.forgotUsernameForm);\r\n if (this.forgotUsernameForm.invalid) {\r\n return;\r\n }\r\n // if (this.isRobot) {\r\n // this.formErrors['IsCaptcha'] = 'Please check, You are not robot.';\r\n // return;\r\n // }\r\n this.isLoader = true;\r\n try {\r\n const email = this.forgotUsernameForm.controls['email'].value;\r\n this.forgotUsernameService.forgotUsername(email).subscribe(\r\n a => { \r\n this.toastData = this.toasterService.successRedirect(MessageSetting.forgotUsername.common, '/login');\r\n // this.router.navigate(['/login']); \r\n this.isLoader = false;\r\n },\r\n error => {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.isLoader = false;\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n setTimeout(() => {\r\n this.toastData =this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 5000);\r\n }\r\n );\r\n } catch (e) {\r\n \r\n this.isLoader = false;\r\n this.toastData = this.toasterService.error(\r\n MessageSetting.forgotUsername.common\r\n );\r\n setTimeout(() => {\r\n this.toastData =this.toasterService.closeToaster(MessageSetting.forgotUsername.common);\r\n }, 5000);\r\n }\r\n }\r\n \r\n cancel() {\r\n this.router.navigate(['/login']);\r\n }\r\n validateAllFormFields(formGroup: FormGroup) {\r\n // {1}\r\n Object.keys(formGroup.controls).forEach(field => {\r\n // {2}\r\n const control = formGroup.get(field); // {3}\r\n if (control instanceof FormControl) {\r\n // {4}\r\n control.markAsTouched({ onlySelf: true });\r\n control.markAsDirty({ onlySelf: true });\r\n } else if (control instanceof FormGroup) {\r\n // {5}\r\n this.validateAllFormFields(control); // {6}\r\n }\r\n });\r\n }\r\n }\r\n \r\n\r\n \r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
Loading..
\\r\\n
\\r\\n
\\r\\n \\r\\n

Login

\\r\\n

{{ 'login.emulateLoad' | translate}}

\\r\\n

{{ 'login.emulateError' | translate}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{formErrors.userName}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{formErrors.password}}\\r\\n \\r\\n
\\r\\n \\r\\n {{ 'login.submit' | translate}}\\r\\n \\r\\n    {{ 'login.forgotPassword' | translate}} \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9wdWJsaWMvbG9naW4vbG9naW4uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { FormBuilder, Validators, FormControl, FormGroup } from '@angular/forms';\r\nimport { ValidationConstant } from 'src/app/services/validation/validation.constant';\r\nimport { LoginService } from 'src/app/services/api/login.service';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { StorageService } from 'src/app/services/session/storage.service';\r\nimport { StorageType } from 'src/app/services/session/storage.enum';\r\nimport { AccessRightsService } from '../../../services/api/access-rights.service';\r\nimport { Validator } from '../../../common/validation/validator';\r\nimport { ToasterService } from '../../../services/api/toaster.service';\r\nimport { Exception } from '../../../common/exceptions/exception';\r\nimport { MessageSetting } from 'src/app/common/constants/message-setting.constant';\r\nimport { SettingsService } from '../../../services/api/settings.service';\r\nimport { ThemeService } from '../../../services/api/theme.service';\r\nimport { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\nimport { ProviderService } from 'src/app/services/api/provider.service';\r\nimport { forkJoin } from 'rxjs';\r\nimport { environment } from 'src/environments/environment';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\n\r\n@Component({\r\n selector: 'app-login',\r\n templateUrl: './login.component.html',\r\n styleUrls: ['./login.component.scss']\r\n})\r\nexport class LoginComponent implements OnInit {\r\n loginForm: FormGroup;\r\n isloggingin = false;\r\n loggedInUser: any;\r\n formErrors: any = {};\r\n validator: Validator;\r\n showPassword = false;\r\n toastData: any;\r\n providerName = null;\r\n routeParameter: any;\r\n skin = \"\";\r\n logo = \"\";\r\n providerSettings: any;\r\n isLoaderTheme = true;\r\n isLoaderLogo = true;\r\n forgotPasswordLink;\r\n\r\n showGuestUserMessage = false;\r\n showGuestUserErrorMessage = false;\r\n authData: any;\r\n config = {\r\n userName: {\r\n required: { name: ValidationConstant.login.username.name },\r\n maxlength: {\r\n name: ValidationConstant.login.username.name,\r\n max: ValidationConstant.login.username.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.login.username.name,\r\n min: ValidationConstant.login.username.minLength.toString()\r\n }\r\n },\r\n password: {\r\n required: { name: ValidationConstant.login.password.name },\r\n maxlength: {\r\n name: ValidationConstant.login.password.name,\r\n max: ValidationConstant.login.password.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.login.password.name,\r\n min: ValidationConstant.login.password.minLength.toString()\r\n }\r\n }\r\n };\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private loginService: LoginService,\r\n private storageService: StorageService,\r\n private toasterService: ToasterService,\r\n private router: Router,\r\n private accessRightsService: AccessRightsService,\r\n private settingsService: SettingsService,\r\n private themeService: ThemeService,\r\n private route: ActivatedRoute,\r\n private commonService: CommonService,\r\n private providerService: ProviderService) {\r\n this.validator = new Validator(this.config);\r\n }\r\n\r\n ngOnInit() {\r\n this.loginForm = this.formBuilder.group(\r\n {\r\n userName: ['', [Validators.required]],\r\n password: ['', [Validators.required]],\r\n RememberMe: [],\r\n sendCatalog: true\r\n });\r\n\r\n this.routeParameter = this.route.params.subscribe(params => {\r\n this.providerName = \"\";\r\n this.logo = \"\";\r\n this.skin = \"\";\r\n this.providerName = params['providerName'];\r\n if (this.providerName !== undefined && this.providerName !== null && this.providerName !== '') {\r\n this.getLogoTheme(this.providerName);\r\n this.forgotPasswordLink = '/forgot-password/' + this.providerName;\r\n\r\n } else {\r\n this.logo = \"../../../../assets/images/logo_login.png\";\r\n this.forgotPasswordLink = \"/forgot-password\";\r\n this.providerName = \"\";\r\n this.themeService.changeTheme(4);\r\n this.storageService.remove(StorageType.session, \"settingsData\");\r\n this.isLoaderTheme = false;\r\n this.isLoaderLogo = false;\r\n }\r\n\r\n });\r\n this.checkAccountStatus();\r\n this.loginForm.valueChanges.subscribe(data => this.onValueChanged(data));\r\n if (this.storageService.get(StorageType.local, 'userAuth')) {\r\n this.loggedInUser = JSON.parse(\r\n this.storageService.get(StorageType.local, 'userAuth')\r\n );\r\n if (this.loggedInUser) {\r\n if (this.loggedInUser['RememberMe']) {\r\n this.loginForm.controls['RememberMe'].patchValue(this.loggedInUser.RememberMe);\r\n this.loginForm.controls['userName'].patchValue(this.loggedInUser.userName);\r\n this.loginForm.controls['password'].patchValue(this.loggedInUser.password);\r\n }\r\n }\r\n }\r\n\r\n // to handle guest user/emulate functionality\r\n let guestUser = this.storageService.get(StorageType.local, 'guestUser');\r\n if (guestUser) {\r\n guestUser = JSON.parse(this.storageService.get(StorageType.local, 'guestUser'));\r\n }\r\n\r\n if (guestUser !== undefined && guestUser !== null && guestUser !== '') {\r\n this.showGuestUserMessage = true;\r\n this.storageService.remove(StorageType.local, 'guestUser');\r\n this.handleLoginResponse(guestUser);\r\n }\r\n }\r\n\r\n onValueChanged(data?: any) {\r\n if (!this.loginForm) {\r\n return;\r\n }\r\n // this.formErrors = this.validator.validate(this.loginForm);\r\n }\r\n\r\n checkAccountStatus() {\r\n if (this.storageService.get(StorageType.local, 'unathorizedToAccessResource')) {\r\n this.isloggingin = false;\r\n this.toastData = this.toasterService.error(MessageSetting.common.unathorizedToAccessResource);\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(MessageSetting.common.unathorizedToAccessResource);\r\n }, 5000);\r\n this.storageService.remove(StorageType.local, 'unathorizedToAccessResource');\r\n } else if (this.storageService.get(StorageType.local, 'inactiveAccount')) {\r\n this.isloggingin = false;\r\n this.toastData = this.toasterService.error(MessageSetting.common.inactiveAccount);\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(MessageSetting.common.inactiveAccount);\r\n }, 5000);\r\n this.storageService.remove(StorageType.local, 'inactiveAccount');\r\n } else if (this.storageService.get(StorageType.local, 'sessionExpired')) {\r\n this.isloggingin = false;\r\n this.toastData = this.toasterService.error(MessageSetting.common.sessionExpired);\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(MessageSetting.common.sessionExpired);\r\n }, 5000);\r\n this.storageService.remove(StorageType.local, 'sessionExpired');\r\n }\r\n }\r\n\r\n login() {\r\n\r\n this.validator.validateAllFormFields(this.loginForm);\r\n this.formErrors = this.validator.validate(this.loginForm);\r\n if (this.loginForm.invalid) {\r\n return;\r\n }\r\n\r\n const data = this.loginForm.value;\r\n\r\n delete data['RememberMe'];\r\n this.isloggingin = true; // display loader\r\n this.loginService.login(data).subscribe(\r\n loginResponse => {\r\n this.storageService.setFirstLoginCount();\r\n\r\n if (loginResponse['termsConditions'] === false) {\r\n this.router.navigate(['/terms-conditions', loginResponse['parentId'], loginResponse['id'], \"password\", this.providerName]);\r\n } else if (loginResponse['changePassword'] === true) { //change payal back\r\n\r\n // if (loginResponse['roleId'] == null) {\r\n // loginResponse['roleId'] = 0;\r\n // }\r\n this.router.navigate(['/reset-password', loginResponse['parentId'], loginResponse['userType'], loginResponse['id'], loginResponse['isAdmin'], this.providerName]);\r\n } else {\r\n\r\n this.storageService.save(StorageType.session, 'auth', JSON.stringify(loginResponse));\r\n\r\n if (loginResponse['userType'] === UserTypeEnum.PROVIDER) {\r\n\r\n forkJoin(\r\n // this.loginService.getloginUserData(loginResponse['userType'], data['userName'], loginResponse['parentId']),\r\n this.loginService.getloginUserDetail(loginResponse['userType'], data['userName'], loginResponse['parentId']),\r\n this.providerService.getProviderDetails(loginResponse['parentId']),\r\n // this.accessRightsService.getModuleDetails(loginResponse['parentId'])\r\n )\r\n .subscribe(([userDataResponse, response]) => {\r\n this.storageService.save(StorageType.session, 'userDetails', JSON.stringify(userDataResponse));\r\n this.storageService.save(StorageType.session, \"providerSelected\", JSON.stringify(response));\r\n this.accessRightsService.getModuleDetails(userDataResponse);\r\n let details: any = response;\r\n this.providerSettings = {\r\n logo: details.logo,\r\n skin: details.skin,\r\n providerName: details.providerUrlSuffix\r\n };\r\n this.storageService.save(StorageType.session, \"settingsData\", JSON.stringify(this.providerSettings)\r\n );\r\n\r\n this.handleNavigation(loginResponse, userDataResponse);\r\n },\r\n error => {\r\n this.isloggingin = false; // hide loader\r\n this.themeService.changeTheme(4);\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(\", \"));\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(\r\n toastMessage.join(\", \")\r\n );\r\n }, 5000);\r\n })\r\n\r\n } else {\r\n this.loginService.getloginUserData(loginResponse['userType'], data['userName'], loginResponse['parentId']).subscribe(\r\n (userDataResponse: any) => {\r\n this.storageService.save(StorageType.session, 'userDetails', JSON.stringify(userDataResponse));\r\n this.handleNavigation(loginResponse, userDataResponse);\r\n\r\n },\r\n error => {\r\n this.isloggingin = false; // hide loader\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 5000);\r\n }\r\n );\r\n }\r\n }\r\n },\r\n error => {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.isloggingin = false; // hide loader\r\n this.toastData = this.toasterService.error(toastMessage);\r\n if (error.error != undefined && error.error.message != undefined && error.error.message == \"Key_LockedAccount\") {\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage);\r\n }, 10000);\r\n } else {\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 5000);\r\n }\r\n }\r\n );\r\n }\r\n\r\n handleLoginResponse(loginResponse) {\r\n\r\n if (loginResponse['termsConditions'] === false) {\r\n\r\n if (loginResponse.isEmulated === true) {\r\n this.showGuestUserErrorMessage = true;\r\n return;\r\n }\r\n } else if (loginResponse['changePassword'] === true) {\r\n\r\n if (loginResponse.isEmulated === true) {\r\n this.showGuestUserErrorMessage = true;\r\n return;\r\n }\r\n } else {\r\n\r\n this.storageService.save(StorageType.session, 'auth', JSON.stringify(loginResponse));\r\n\r\n //parallel call name and detail api\r\n forkJoin(\r\n // this.loginService.getloginUserData(loginResponse['userType'], loginResponse['userName'], loginResponse['parentId']),\r\n this.loginService.getloginUserDetail(loginResponse['userType'], loginResponse['userName'], loginResponse['parentId']),\r\n this.providerService.getProviderDetails(loginResponse['parentId']),\r\n // this.accessRightsService.getModuleDetails(loginResponse['parentId'])\r\n )\r\n .subscribe(\r\n ([userDataResponse, response]) => {\r\n this.storageService.save(StorageType.session, 'userDetails', JSON.stringify(userDataResponse));\r\n this.storageService.save(StorageType.session, \"providerSelected\", JSON.stringify(response));\r\n this.accessRightsService.getModuleDetails(userDataResponse);\r\n let details: any = response;\r\n this.providerSettings = {\r\n logo: details.logo,\r\n skin: details.skin,\r\n providerName: details.providerUrlSuffix\r\n };\r\n this.storageService.save(StorageType.session, \"settingsData\", JSON.stringify(this.providerSettings)\r\n );\r\n this.router.navigate(['/provider']);\r\n this.handleNavigation(loginResponse, userDataResponse);\r\n },\r\n (error) => {\r\n this.isloggingin = false; // hide loader\r\n this.themeService.changeTheme(4);\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(\", \"));\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(\r\n toastMessage.join(\", \")\r\n );\r\n }, 5000);\r\n }\r\n )\r\n }\r\n\r\n }\r\n\r\n toggleShow() {\r\n this.showPassword = !this.showPassword;\r\n }\r\n\r\n getLogoTheme(providerName) {\r\n forkJoin(\r\n this.settingsService.getProviderSettingsLogo(providerName),\r\n this.settingsService.getProviderSettingsSkin(providerName)\r\n )\r\n .subscribe(\r\n ([responseLogo, responseSkin]) => {\r\n let logoDetails: any = responseLogo;\r\n let SkinDetails: any = responseSkin;\r\n this.logo = logoDetails.logo;\r\n this.skin = SkinDetails.skin;\r\n this.providerSettings = {\r\n logo: this.logo,\r\n skin: this.skin,\r\n providerName: this.providerName\r\n };\r\n this.storageService.save(StorageType.session, \"settingsData\", JSON.stringify(this.providerSettings));\r\n this.themeService.changeTheme(SkinDetails.skin);\r\n this.isLoaderTheme = false;\r\n this.isLoaderLogo = false;\r\n\r\n },\r\n error => {\r\n this.logo = \"../../../../assets/images/logo_login.png\";\r\n this.themeService.changeTheme(4);\r\n this.isLoaderTheme = false;\r\n this.isLoaderLogo = false;\r\n }\r\n )\r\n }\r\n\r\n // This function will decide landing page based on logged in userType (ie. Dashboard for GlobalAdmin/User/Patient/Provider/ChangePassword)\r\n handleNavigation(loginResponse, userDataResponse) {\r\n if (this.loginForm.value['RememberMe'] === true) {\r\n this.loginForm.controls['password'].patchValue(null);\r\n this.storageService.save(StorageType.local, 'userAuth', JSON.stringify(this.loginForm.value));\r\n } else {\r\n this.storageService.remove(StorageType.local, 'userAuth');\r\n }\r\n\r\n if (loginResponse['changePassword'] === true) {\r\n this.router.navigate(['/change-password']);\r\n }\r\n\r\n\r\n // let timeOut = new Date();\r\n // timeOut.setSeconds(timeOut.getSeconds() + environment.sessionTimeOutSec);\r\n\r\n\r\n // let timeWarning = new Date();\r\n // timeWarning.setSeconds(timeWarning.getSeconds() + environment.sessionWarningSec);\r\n\r\n\r\n if (userDataResponse['userType'] === UserTypeEnum.PROVIDER) {\r\n\r\n this.authData = JSON.parse(this.storageService.get(StorageType.session, 'auth'));\r\n\r\n if (!this.authData.isEmulated) {\r\n\r\n // this.storageService.save(StorageType.session, 'sessionTimeOut', JSON.stringify({ remainTimeOut: timeOut }));\r\n // this.storageService.save(StorageType.session, 'sessionWarning', JSON.stringify({ remainWarning: timeWarning }));\r\n // this.storageService.startTimer();\r\n // this.storageService.setSessionWarningTimer();\r\n // this.storageService.setSessionTimeout();\r\n\r\n this.commonService.startCheckingIdleTime();\r\n }\r\n this.router.navigate(['/provider']);\r\n } else if (userDataResponse['userType'] === UserTypeEnum.GLOBAL) {\r\n\r\n // this.storageService.save(StorageType.session, 'sessionTimeOut', JSON.stringify({ remainTimeOut: timeOut }));\r\n // this.storageService.save(StorageType.session, 'sessionWarning', JSON.stringify({ remainWarning: timeWarning }));\r\n // this.storageService.startTimer();\r\n // this.storageService.setSessionWarningTimer();\r\n // this.storageService.setSessionTimeout();\r\n this.commonService.startCheckingIdleTime();\r\n this.resetThemeOptions();\r\n this.router.navigate(['/admin']);\r\n }\r\n }\r\n\r\n resetThemeOptions() {\r\n this.logo = \"../../../../assets/images/logo_login.png\";\r\n this.forgotPasswordLink = \"/forgot-password\";\r\n this.providerName = \"\";\r\n this.themeService.changeTheme(4);\r\n this.storageService.remove(StorageType.session, \"settingsData\");\r\n this.isLoaderTheme = false;\r\n this.isLoaderLogo = false;\r\n }\r\n\r\n\r\n}\r\n","module.exports = \"\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9wdWJsaWMvcHVibGljLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-public',\r\n templateUrl: './public.component.html',\r\n styleUrls: ['./public.component.scss']\r\n})\r\nexport class PublicComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n

{{ 'resetPassword.resetPasswordHeading' | translate}}

\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{formErrors.oldPassword}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{formErrors.newPassword}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{formErrors.confirmPassword}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n **Minimum eight characters, at least one letter, one number and one special character(&?#$_!@^%)\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
{{'resetPassword.acceptTerms' | translate}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9wdWJsaWMvcmVzZXQtcGFzc3dvcmQvcmVzZXQtcGFzc3dvcmQuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { FormGroup, FormBuilder, Validators, FormControl } from '@angular/forms';\r\nimport { Validator } from '../../../services/validation/validator';\r\nimport { ValidationConstant } from '../../../services/validation/validation.constant';\r\nimport { StorageService } from '../../../services/session/storage.service';\r\nimport { ResetPasswordService } from '../../../services/api/reset-password.service';\r\nimport { MessageSetting } from '../../../common/constants/message-setting.constant';\r\nimport { Exception } from '../../../common/exceptions/exception';\r\nimport { Router, ActivatedRoute } from '@angular/router';\r\nimport { ToasterService } from 'src/app/services/api/toaster.service';\r\nimport { IContext } from '../../secure/provider/component/transactions/transaction-management/find-transaction/find-transaction.component';\r\nimport { TemplateModalConfig, ModalTemplate, SuiModalService } from 'ng2-semantic-ui';\r\nimport { StorageType } from 'src/app/services/session/storage.enum';\r\nimport { LoginService } from 'src/app/services/api/login.service';\r\nimport { SettingsService } from 'src/app/services/api/settings.service';\r\nimport { ThemeService } from 'src/app/services/api/theme.service';\r\nimport { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\nimport { environment } from \"src/environments/environment\";\r\n\r\n@Component({\r\n selector: 'app-reset-password',\r\n templateUrl: './reset-password.component.html',\r\n styleUrls: ['./reset-password.component.scss'],\r\n providers: [ResetPasswordService, ToasterService, StorageService]\r\n})\r\nexport class ResetPasswordComponent implements OnInit {\r\n resetPasswordForm: FormGroup;\r\n isloggingin = false;\r\n loggedInUser: any;\r\n isLoader: any;\r\n showOldPassword: any;\r\n showNewPassword: any;\r\n showConfirmPassword: any;\r\n formErrors: any = {};\r\n userObj = {};\r\n userType: Number;\r\n toastData: any;\r\n parentID: Number;\r\n userId: string;\r\n isAdmin: any;\r\n firstTimeLogin: any;\r\n routeParameter: any;\r\n validator: Validator;\r\n showPassword = false;\r\n isDisabled = false;\r\n providerName = null;\r\n providerList: any;\r\n skin = '';\r\n logo = '';\r\n patientSettings: any;\r\n ifModalOpened = false;\r\n @ViewChild('modalAcceptTerms') public modalAcceptTerms: ModalTemplate;\r\n @ViewChild('cancel') cancel: ElementRef;\r\n\r\n config = {\r\n oldPassword: {\r\n required: { name: ValidationConstant.resetPassword.oldPassword.name },\r\n maxlength: {\r\n name: ValidationConstant.resetPassword.oldPassword.name,\r\n max: ValidationConstant.resetPassword.oldPassword.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.resetPassword.oldPassword.name,\r\n min: ValidationConstant.resetPassword.oldPassword.minLength.toString()\r\n }\r\n },\r\n newPassword: {\r\n required: { name: ValidationConstant.resetPassword.newPassword.name },\r\n maxlength: {\r\n name: ValidationConstant.resetPassword.newPassword.name,\r\n max: ValidationConstant.resetPassword.newPassword.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.resetPassword.newPassword.name,\r\n min: ValidationConstant.resetPassword.newPassword.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.resetPassword.newPassword.name }\r\n },\r\n confirmPassword: {\r\n required: { name: ValidationConstant.resetPassword.confirmPassword.name },\r\n maxlength: {\r\n name: ValidationConstant.resetPassword.confirmPassword.name,\r\n max: ValidationConstant.resetPassword.newPassword.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.resetPassword.confirmPassword.name,\r\n min: ValidationConstant.resetPassword.confirmPassword.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.resetPassword.confirmPassword.name }\r\n }\r\n };\r\n constructor(private formBuilder: FormBuilder,\r\n private resetPasswordService: ResetPasswordService,\r\n private modalService: SuiModalService,\r\n private toasterService: ToasterService,\r\n private loginService: LoginService,\r\n private storageService: StorageService,\r\n private router: Router,\r\n private themeService: ThemeService,\r\n private commonService: CommonService,\r\n private route: ActivatedRoute,\r\n private settingsService: SettingsService) {\r\n this.validator = new Validator(this.config);\r\n }\r\n\r\n ngAfterViewInit() {\r\n\r\n }\r\n ngOnInit() {\r\n\r\n this.routeParameter = this.route.params.subscribe(params => {\r\n this.userType = +params['userType']; // (+) converts string 'id' to a number\r\n this.parentID = params['parentID'];\r\n this.userId = params['userId'];\r\n this.isAdmin = params['isAdmin'];\r\n this.providerName = params['providerName'];\r\n if (this.providerName != undefined && this.providerName != null && this.providerName != '') {\r\n this.getLogo(this.providerName);\r\n this.getTheme(this.providerName);\r\n this.storageService.save(StorageType.session, 'settingsData', JSON.stringify(this.patientSettings));\r\n } else {\r\n this.logo = '../../../../assets/images/logo_login.png';\r\n }\r\n //this.firstTimeLogin = params['firstTimeLogin'];\r\n this.firstTimeLogin = true;\r\n // if(this.firstTimeLogin===true){\r\n // this.isDisabled=true;\r\n // this.open();\r\n // }\r\n this.resetPasswordForm = this.formBuilder.group(\r\n {\r\n oldPassword: [\r\n '',\r\n [\r\n Validators.required,\r\n Validators.maxLength(\r\n ValidationConstant.resetPassword.oldPassword.maxLength\r\n ),\r\n Validators.minLength(ValidationConstant.resetPassword.oldPassword.minLength)\r\n ]\r\n ],\r\n newPassword: [\r\n '',\r\n [\r\n Validators.required,\r\n Validators.maxLength(\r\n ValidationConstant.resetPassword.newPassword.maxLength\r\n ),\r\n Validators.minLength(\r\n ValidationConstant.resetPassword.newPassword.minLength\r\n ),\r\n Validators.pattern(ValidationConstant.password_regex)\r\n ]\r\n ],\r\n confirmPassword: [\r\n '',\r\n [\r\n Validators.required,\r\n Validators.maxLength(\r\n ValidationConstant.resetPassword.confirmPassword.maxLength\r\n ),\r\n Validators.minLength(\r\n ValidationConstant.resetPassword.confirmPassword.minLength\r\n ),\r\n Validators.pattern(ValidationConstant.password_regex)\r\n ]\r\n ]\r\n },\r\n // {\r\n // validator: PasswordValidation.MatchPassword // your validation method\r\n // }\r\n );\r\n this.resetPasswordForm.valueChanges.subscribe(data =>\r\n this.onValueChanged(data)\r\n );\r\n });\r\n }\r\n\r\n onValueChanged(data?: any) {\r\n if (!this.resetPasswordForm) {\r\n return;\r\n }\r\n this.formErrors = this.validator.validate(this.resetPasswordForm);\r\n }\r\n\r\n resetPassword() {\r\n this.validateAllFormFields(this.resetPasswordForm);\r\n this.formErrors = this.validator.validate(this.resetPasswordForm);\r\n if (this.resetPasswordForm.invalid) {\r\n this.isLoader = false;\r\n return;\r\n }\r\n try {\r\n if (this.resetPasswordForm.controls['oldPassword'].value === this.resetPasswordForm.controls['newPassword'].value) {\r\n this.toastData = this.toasterService.error(MessageSetting.common.errorNewPaaswordSameAsOldPassword);\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(MessageSetting.common.errorNewPaaswordSameAsOldPassword);\r\n }, 5000);\r\n this.isLoader = false;\r\n return;\r\n } else if (this.resetPasswordForm.controls['newPassword'].value != this.resetPasswordForm.controls['confirmPassword'].value) {\r\n this.toastData = this.toasterService.error(MessageSetting.common.passwordMismatch);\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(MessageSetting.common.passwordMismatch);\r\n }, 5000);\r\n this.isLoader = false;\r\n return;\r\n }\r\n this.isLoader = true;\r\n\r\n const data = {};\r\n data['oldPassword'] = this.resetPasswordForm.controls['oldPassword'].value;\r\n data['newpassword'] = this.resetPasswordForm.controls['newPassword'].value;\r\n data['isReset'] = false;\r\n data['userType'] = this.userType;\r\n if (this.providerName !== undefined &&\r\n this.providerName !== null &&\r\n this.providerName !== '') {\r\n data['providerSuffix'] = this.providerName;\r\n }\r\n\r\n this.resetPasswordService.resetPassword(data, this.userId, this.userType, this.parentID, this.isAdmin)\r\n .subscribe(\r\n a => {\r\n this.isLoader = false;\r\n\r\n if (a != null && a['token'] && a['userType'] === 0) {\r\n\r\n this.storageService.save(StorageType.session, 'auth', JSON.stringify(a));\r\n this.loginService.getloginUserData(a['userType'], a['id'], a['parentId']).subscribe(\r\n (userDataResponse: any) => {\r\n this.storageService.save(StorageType.session, 'userDetails', JSON.stringify(userDataResponse));\r\n this.commonService.providerLookup().subscribe(\r\n (response: any) => {\r\n this.providerList = response.data;\r\n this.storageService.save(StorageType.session, \"providerList\", JSON.stringify(response.data));\r\n // let timeOut = new Date();\r\n // timeOut.setSeconds(timeOut.getSeconds() + environment.sessionTimeOutSec);\r\n // //console.log(\"timeout :\" + timeOut)\r\n // let timeWarning = new Date();\r\n // timeWarning.setSeconds(timeWarning.getSeconds() + environment.sessionWarningSec);\r\n // //console.log(\"timeWarning :\" + timeWarning)\r\n // this.storageService.save(StorageType.session, 'sessionTimeOut', JSON.stringify({ remainTimeOut: timeOut }));\r\n // this.storageService.save(StorageType.session, 'sessionWarning', JSON.stringify({ remainWarning: timeWarning }));\r\n // this.storageService.startTimer();\r\n // this.storageService.setSessionWarningTimer();\r\n // this.storageService.setSessionTimeout();\r\n this.commonService.startCheckingIdleTime();\r\n if (this.providerName !== undefined && this.providerName != null && this.providerName !== \"\") {\r\n\r\n const providerSelected = this.getSelectedProviderByFilter(this.providerName);\r\n this.storageService.save(StorageType.session, \"providerSelected\", JSON.stringify(providerSelected[0]));\r\n //this.router.navigate([\"/\" + this.providerName + \"/patient\"]);\r\n this.router.navigate([\"/patient\"]);\r\n } else {\r\n this.storageService.save(StorageType.session, \"providerSelected\", JSON.stringify(this.providerList[0]));\r\n this.router.navigate([\"/patient\"]);\r\n }\r\n },\r\n error => {\r\n this.isloggingin = false; // hide loader\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(\", \"));\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(\r\n toastMessage.join(\", \")\r\n );\r\n }, 5000);\r\n }\r\n );\r\n //this.router.navigate(['/patient']);\r\n },\r\n\r\n error => {\r\n this.isloggingin = false; // hide loader\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.isloggingin = false;\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 5000);\r\n }\r\n );\r\n\r\n } else {\r\n this.toastData = this.toasterService.success(MessageSetting.common.changePasswordMessage);\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(MessageSetting.common.changePasswordMessage);\r\n if (this.providerName != undefined) {\r\n let newUrl = '/login/' + this.providerName;\r\n this.router.navigate([newUrl]);\r\n } else {\r\n this.router.navigate(['/login']);\r\n }\r\n }, 3000);\r\n this.isLoader = false;\r\n }\r\n\r\n\r\n },\r\n error => {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.isLoader = false;\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n if (error.error != undefined && error.error.message != undefined && error.error.message == \"Key_MatchingPassword\") {\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 10000);\r\n } else {\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 5000);\r\n\r\n }\r\n }\r\n );\r\n } catch (e) {\r\n this.isLoader = false;\r\n this.toastData = this.toasterService.error(MessageSetting.common.error);\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(MessageSetting.common.error);\r\n }, 5000);\r\n }\r\n }\r\n getSelectedProviderByFilter(url) {\r\n return this.providerList.filter(x => x.providerUrlSuffix === url);\r\n }\r\n validateAllFormFields(formGroup: FormGroup) {\r\n // {1}\r\n Object.keys(formGroup.controls).forEach(field => {\r\n // {2}\r\n const control = formGroup.get(field); // {3}\r\n if (control instanceof FormControl) {\r\n // {4}\r\n control.markAsTouched({ onlySelf: true });\r\n control.markAsDirty({ onlySelf: true });\r\n } else if (control instanceof FormGroup) {\r\n // {5}\r\n this.validateAllFormFields(control); // {6}\r\n }\r\n });\r\n }\r\n getLogo(providerName) {\r\n this.settingsService.getProviderSettingsLogo(providerName).subscribe(\r\n (response: any) => {\r\n this.logo = response.logo;\r\n this.patientSettings = { logo: this.logo, skin: this.skin, providerName: this.providerName };\r\n this.storageService.save(StorageType.session, 'settingsData', JSON.stringify(this.patientSettings));\r\n },\r\n error => {\r\n this.logo = '../../../../assets/images/logo_login.png';\r\n console.log(error)\r\n }\r\n );\r\n }\r\n\r\n getTheme(providerName) {\r\n this.settingsService.getProviderSettingsSkin(providerName).subscribe(\r\n (response: any) => {\r\n this.skin = response.skin;\r\n this.patientSettings = { logo: this.logo, skin: this.skin, providerName: this.providerName };\r\n this.storageService.save(StorageType.session, 'settingsData', JSON.stringify(this.patientSettings));\r\n this.themeService.changeTheme(response.skin);\r\n },\r\n error => {\r\n console.log(error)\r\n }\r\n );\r\n }\r\n\r\n toggleShow(data) {\r\n if (data === 'showOldPassword') {\r\n this.showOldPassword = !this.showOldPassword;\r\n } else if (data === 'showNewPassword') {\r\n this.showNewPassword = !this.showNewPassword;\r\n } else {\r\n this.showConfirmPassword = !this.showConfirmPassword;\r\n }\r\n }\r\n // Accept terms Modal\r\n public open(dynamicContent: string = 'Example') {\r\n if (this.ifModalOpened) { // To avoid opening of multiple modal\r\n return;\r\n }\r\n this.ifModalOpened = true;\r\n const config = new TemplateModalConfig(this.modalAcceptTerms);\r\n config.closeResult = 'closed!';\r\n config.context = { data: dynamicContent };\r\n config.size = 'normal';\r\n config.isClosable = false;\r\n //config.transition = 'horizontal flip' ;\r\n //config.transitionDuration = 1500;\r\n this.modalService\r\n .open(config)\r\n .onApprove(result => {\r\n this.ngOnInit();\r\n const scroll = document.querySelector('#initialLoad');\r\n setTimeout(() => {\r\n scroll.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' });\r\n }, 400);\r\n })\r\n .onDeny(result => {\r\n this.ifModalOpened = true;\r\n // const scroll = document.querySelector('#initialLoad');\r\n // setTimeout(() => {\r\n // scroll.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' });\r\n // }, 400);\r\n });\r\n }\r\n redirectToLogin() {\r\n if (this.providerName != undefined) {\r\n let newUrl = '/login/' + this.providerName;\r\n this.router.navigate([newUrl]);\r\n } else {\r\n this.router.navigate(['/login']);\r\n }\r\n }\r\n closeModal(data) {\r\n this.cancel.nativeElement.click();\r\n this.isDisabled = false;\r\n if (data.isNavigate) {\r\n this.redirectToLogin();\r\n }\r\n }\r\n}\r\n\r\n","module.exports = \"

\\r\\n admin works!\\r\\n

\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zZWN1cmUvYWRtaW4vYWRtaW4uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-admin',\r\n templateUrl: './admin.component.html',\r\n styleUrls: ['./admin.component.scss']\r\n})\r\nexport class AdminComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zZWN1cmUvZmFjaWxpdHkvZmFjaWxpdHkuY29tcG9uZW50LmNzcyJ9 */\"","module.exports = \"

\\r\\n facility works!\\r\\n

\\r\\n\\r\\n\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-facility',\r\n templateUrl: './facility.component.html',\r\n styleUrls: ['./facility.component.css']\r\n})\r\nexport class FacilityComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n

{{noResultsMessage}}

\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
{{operation.value}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{transaction.fullName}}\\r\\n   $ {{transaction.tenderInfo.totalAmount.toFixed(2)}} \\r\\n \\r\\n \\r\\n    {{'transaction.find.recurringId' | translate}}:\\r\\n {{transaction.recurringId}}\\r\\n \\r\\n
\\r\\n\\r\\n {{'transaction.find.txnDateTime' | translate}}:\\r\\n {{getFormattedDate(transaction.transactionDate)}}\\r\\n |\\r\\n\\r\\n \\r\\n {{transaction.tenderInfo.cardType}}:****{{transaction.tenderInfo.maskCardNumber}}|\\r\\n \\r\\n {{'transaction.find.type' | translate}}: \\r\\n {{transaction.operationType}}|\\r\\n\\r\\n \\r\\n {{'transaction.find.chequeNumber' | translate}}:\\r\\n {{transaction.tenderInfo.checkNumber}}\\r\\n \\r\\n\\r\\n \\r\\n {{'transaction.find.nameOnCard' | translate}}:\\r\\n {{transaction.tenderInfo.nameOnCheckOrCard}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{'transaction.find.totalAmount' | translate}}:\\r\\n {{transaction.tenderInfo.totalAmount.toFixed(2)}}\\r\\n |\\r\\n {{'transaction.find.amount' | translate}}: {{transaction.tenderInfo.amount.toFixed(2)}}|\\r\\n {{'customPlans.find.discount' | translate}}:\\r\\n {{transaction.tenderInfo.discountAmount | CustomFormatCurrency}}|\\r\\n {{'transaction.find.taxAmount' | translate}}:\\r\\n {{transaction.tenderInfo.taxAmount.toFixed(2)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{'transaction.find.email' | translate}}:\\r\\n {{transaction.email != null ? transaction.email : '--'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{'transaction.find.address' | translate}}:\\r\\n {{transaction.fullAddress != '' ? transaction.fullAddress : '--'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{'transaction.find.reasonForFailure' | translate}}:\\r\\n \\r\\n {{'transaction.find.reasonForDeny' | translate}}:\\r\\n \\r\\n {{'transaction.find.reasonForHold' | translate}}:\\r\\n \\r\\n {{'transaction.find.reasonForClose' | translate}}:\\r\\n {{transaction.reasonStatus}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n {{operation.value}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{transaction.fullName}}\\r\\n   $ {{transaction.tenderInfo.totalAmount.toFixed(2)}}\\r\\n \\r\\n \\r\\n    {{'transaction.find.recurringId' | translate}}:\\r\\n {{transaction.recurringId}}\\r\\n \\r\\n
\\r\\n {{'transaction.find.txnDateTime' | translate}}:\\r\\n {{getFormattedDate(transaction.transactionDate)}}\\r\\n |\\r\\n {{'transaction.find.type' | translate}}: {{transaction.operationType}}|\\r\\n {{'transaction.find.routingOrTransitNo' | translate}}:\\r\\n {{transaction.tenderInfo.routingNumber != null ? transaction.tenderInfo.routingNumber: '--' }}|\\r\\n {{'transaction.find.accountNo' | translate}}:\\r\\n {{transaction.tenderInfo.maskAccount != null ? '****'+transaction.tenderInfo.maskAccount: '--' }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{'transaction.find.totalAmount' | translate}}:\\r\\n {{transaction.tenderInfo.totalAmount}}|\\r\\n {{'transaction.find.amount' | translate}}: {{transaction.tenderInfo.amount.toFixed(2)}}|\\r\\n {{'customPlans.find.discount' | translate}}:\\r\\n {{transaction.tenderInfo.discountAmount | CustomFormatCurrency}}|\\r\\n {{'transaction.find.taxAmount' | translate}}:\\r\\n {{transaction.tenderInfo.taxAmount.toFixed(2)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{'transaction.find.email' | translate}}:\\r\\n {{transaction.email != null ? transaction.email : '--'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{'transaction.find.address' | translate}}:\\r\\n {{transaction.fullAddress != '' ? transaction.fullAddress : '--'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{'transaction.find.reasonForFailure' | translate}}:\\r\\n \\r\\n {{'transaction.find.reasonForDeny' | translate}}:\\r\\n \\r\\n {{'transaction.find.reasonForHold' | translate}}:\\r\\n \\r\\n {{'transaction.find.reasonForClose' | translate}}:\\r\\n {{transaction.reasonStatus}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
0\\\">\\r\\n \\r\\n
\\r\\n
\\r\\n
{{operation.value}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{recurringPayment.firstName}} {{recurringPayment.lastName}}\\r\\n   {{recurringPayment.paymentAmount | CustomFormatCurrency}} \\r\\n \\r\\n    {{'transaction.find.recurringId' | translate}}:\\r\\n {{recurringPayment.id}}\\r\\n \\r\\n
\\r\\n\\r\\n {{'transaction.find.OneTimetxnDate' | translate}}: \\r\\n {{recurringPayment.startDate != null ? getFormattedDate(recurringPayment.startDate) : '--'}}|\\r\\n {{recurringPayment.cardType}}: ****{{recurringPayment.maskedCardNumber}}|\\r\\n {{'transaction.find.type' | translate}}: Schedule Payment\\r\\n |\\r\\n {{'transaction.find.createdOn' | translate}}:\\r\\n {{getFormattedDate(recurringPayment.createdOn)}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{'transaction.find.totalAmount' | translate}}:\\r\\n {{recurringPayment.totalAmount.toFixed(2)}}\\r\\n |\\r\\n {{'transaction.find.amount' | translate}}: {{recurringPayment.amount.toFixed(2)}}|\\r\\n \\r\\n {{'customPlans.find.discount' | translate}}:\\r\\n {{recurringPayment.discountAmount | CustomFormatCurrency}}\\r\\n \\r\\n {{'customPlans.find.discount' | translate}}:\\r\\n {{recurringPayment.discountRate}}%|\\r\\n {{'transaction.find.taxAmount' | translate}}:\\r\\n {{recurringPayment.taxAmount.toFixed(2)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{'transaction.find.email' | translate}}:\\r\\n {{recurringPayment.email != null ? recurringPayment.email : '--'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n\\r\\n
{{typeOfOperationHeading}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n {{(inputDataForUpdatePlan.hideSchedulePlan)!=true?('recurringPayments.update.heading' | translate):'Update Account'}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zZWN1cmUvcGF0aWVudC9jb21wb25lbnQvcGF0aWVudC10cmFuc2FjdGlvbi9wYXRpZW50LXRyYW5zYWN0aW9uL3BhdGllbnQtdHJhbnNhY3Rpb24uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, ViewChild, ElementRef } from '@angular/core';\r\nimport { ValidationConstant } from 'src/app/services/validation/validation.constant';\r\nimport * as moment from 'moment';\r\nimport { DatepickerMode, ModalTemplate, SuiModalService, Transition, TransitionDirection, TemplateModalConfig, ComponentModalConfig, ModalSize } from 'ng2-semantic-ui';\r\nimport { Exception } from 'src/app/common/exceptions/exception';\r\nimport { DatePipe } from '@angular/common';\r\nimport { FormBuilder } from '@angular/forms';\r\nimport { StorageService } from 'src/app/services/session/storage.service';\r\nimport { TransactionService } from 'src/app/services/api/transaction.service';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\nimport { PatientService } from 'src/app/services/api/patient.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { ToasterService } from 'src/app/services/api/toaster.service';\r\nimport { StorageType } from 'src/app/services/session/storage.enum';\r\nimport { TransactionStatusMapEnum } from 'src/app/enum/transaction-status-map.enum';\r\nimport { TransactionStatusEnum } from 'src/app/enum/transaction-status.enum';\r\nimport { TransactionOperationEnum } from 'src/app/enum/transaction-operation.enum';\r\nimport { TransactionOperationMapEnum } from 'src/app/enum/transaction-operation-map.enum';\r\nimport { ChannelTypeEnum } from 'src/app/enum/channeltypes.enum';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\nimport { MessageSetting } from 'src/app/common/constants/message-setting.constant';\r\nimport { Utilities } from 'src/app/services/commonservice/utilities';\r\nimport { ConfirmModalComponent } from 'src/app/common/modal/modal.component';\r\nimport { TransactionOperationsComponent } from 'src/app/module/secure/provider/component/transactions/transaction-management/transaction-operations/transaction-operations.component';\r\nimport { Validator } from 'src/app/common/validation/validator';\r\nimport { TransitionController } from 'ng2-semantic-ui';\r\nimport { UpdateRecurringComponent } from 'src/app/module/secure/provider/component/recurring/update-recurring/update-recurring.component';\r\nimport { RecurringPaymentsService } from 'src/app/services/api/recurring-payments.service';\r\nimport { RecurringPaymentTypeEnum, FrequencyEnum } from 'src/app/enum/recurring-payment-type.enum';\r\nimport { SettingsService } from 'src/app/services/api/settings.service';\r\nimport { Subscription } from 'rxjs';\r\nimport { PatientAccountService } from 'src/app/services/api/patient-account.service';\r\nexport interface IContext {\r\n data: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-patient-transaction',\r\n templateUrl: './patient-transaction.component.html',\r\n styleUrls: ['./patient-transaction.component.scss']\r\n})\r\nexport class PatientTransactionComponent implements OnInit {\r\n @ViewChild(TransactionOperationsComponent) txnOperation: TransactionOperationsComponent;\r\n @ViewChild('closeModal') closeModal: ElementRef;\r\n @ViewChild('modalUpdatePlan')\r\n public modalUpdatePlan: ModalTemplate;\r\n @ViewChild(UpdateRecurringComponent) updateRecurringComponentObject: UpdateRecurringComponent;\r\n @ViewChild('closePlanWizard') closePlanWizard: ElementRef;\r\n isLoader_ProcessTransaction = false;\r\n selectedPatientId = this.patientService.getSelectedPatientId();\r\n selectedPatientName = this.patientService.getSelectedPatientName();\r\n validator: Validator;\r\n transactionResultsForm: any;\r\n formErrors: any = {};\r\n searchParamsData: any = {};\r\n isLoader: any;\r\n transactionList: any;\r\n transactionListData = [];\r\n searchResultFlag;\r\n Filter = 'Date Range';\r\n loggedInUserData: any = {};\r\n providerSelected: any;\r\n minStartDate: any;\r\n maxStartDate: any;\r\n minEndDate: any;\r\n maxEndDate: any;\r\n noResultsMessage = '';\r\n findClicked = false;\r\n sortColumnOrder: any = {};\r\n channelType: any;\r\n pager: any = {};\r\n ifModalOpened = false;\r\n dateMode: DatepickerMode = DatepickerMode.Date;\r\n searchPatientList: any;\r\n searchRecurringList: any;\r\n providerList: any;\r\n inputValidation = ValidationConstant; // used for maxlength in HTML\r\n toastData: any;\r\n displayPatientNameFilter;\r\n //displayPatientNameFilter = [];\r\n displayProviderNameFilter;\r\n displayRecurringIdFilter;\r\n displayTransactionStatusFilter;\r\n inputDataForOperation: any = {}; // using to pass operation to new modal\r\n typeOfOperationHeading;\r\n countryList;\r\n recurringPaymentsList: any;\r\n inputDataForUpdatePlan: any = {};\r\n providerData: Subscription;\r\n sortingItemsList = [\r\n { 'label': 'Date: Desc', 'columnName': 'TransactionDate', 'sortingOrder': 'Desc' },\r\n { 'label': 'Date: Asc', 'columnName': 'TransactionDate', 'sortingOrder': 'Asc' },\r\n { 'label': 'Amount: Desc', 'columnName': 'TotalAmount', 'sortingOrder': 'Desc' },\r\n { 'label': 'Amount: Asc', 'columnName': 'TotalAmount', 'sortingOrder': 'Asc' },\r\n ];\r\n\r\n channelTypeList = [\r\n { 'channelName': 'All', 'channelType': 'All' },\r\n // { 'channelName': 'ACH', 'channelType': 'ach' },\r\n { 'channelName': 'Credit Card', 'channelType': 'CreditCard' },\r\n //{ 'channelName': 'DebitCard', 'channelType': 'debit' },\r\n { 'channelName': 'Cash', 'channelType': 'Cash' },\r\n { 'channelName': 'Check', 'channelType': 'Check' },\r\n { 'channelName': 'Scheduled', 'channelType': 'Onetime' },\r\n ];\r\n @ViewChild('modalTransactionOperations')\r\n public modalTransactionOperations: ModalTemplate;\r\n\r\n // Need to review----------------------------------------------------------------------------\r\n public transitionController = new TransitionController();\r\n // Need to review----------------------------------------------------------------------------\r\n\r\n\r\n config = {\r\n 'Sorting': {},\r\n 'ChannelType': {}\r\n };\r\n\r\n selectedAccountId = this.patientService.getSelectedAccountId();\r\n selectedAccountcardNumber = this.patientService.getSelectedAccountName();\r\n accountData: Subscription;\r\n displayCardNumberFilter = (this.patientService.getSelectedAccountName()) ? '****' + this.patientService.getSelectedAccountName() : '';\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private storageService: StorageService,\r\n private transactionService: TransactionService,\r\n private commonService: CommonService,\r\n private patientService: PatientService,\r\n private modalService: SuiModalService,\r\n private toasterService: ToasterService,\r\n private recurringPaymentsService: RecurringPaymentsService,\r\n private datePipe: DatePipe,\r\n private settingsService: SettingsService,\r\n private patientAccountService: PatientAccountService\r\n ) {\r\n this.validator = new Validator(this.config);\r\n this.loggedInUserData =this.commonService.getLoggedInData();\r\n this.maxStartDate = new Date();\r\n this.maxEndDate = new Date();\r\n this.channelType = 'All';\r\n }\r\n\r\n // tslint:disable-next-line: use-life-cycle-interface\r\n ngOnDestroy() {\r\n this.providerData.unsubscribe();\r\n this.accountData.unsubscribe();\r\n }\r\n ngOnInit() {\r\n this.providerSelected = JSON.parse(this.storageService.get(StorageType.session, 'providerSelected'));\r\n this.transactionResultsForm = this.formBuilder.group({ // used for sorting control on HTML\r\n 'Sorting': [this.sortingItemsList[0].label, []],\r\n 'ChannelType': [this.channelTypeList[0].channelType, []]\r\n });\r\n\r\n this.sortColumnOrder.TransactionId = true;\r\n this.sortColumnOrder.PatientId = true;\r\n this.sortColumnOrder.TransactionDate = true;\r\n this.sortColumnOrder.CardType = true;\r\n this.sortColumnOrder.Card = true;\r\n this.sortColumnOrder.Name = true;\r\n this.sortColumnOrder.operationType = true;\r\n this.sortColumnOrder.transactionStatus = true;\r\n this.sortColumnOrder.Amount = true;\r\n this.sortColumnOrder.PatientName = true;\r\n this.sortColumnOrder.ProviderName = true;\r\n\r\n this.pager = this.commonService.initiatePager();\r\n\r\n this.providerData = this.settingsService.getProviderData().subscribe((value) => {\r\n if (value !== undefined) {\r\n\r\n this.providerSelected = value;\r\n this.find();\r\n this.animate();\r\n }\r\n });\r\n\r\n this.accountData = this.patientAccountService.getSelectedAccount().subscribe(value => {\r\n if (value.tab === 'transactions') {\r\n this.selectedAccountId = this.patientService.getSelectedAccountId();\r\n this.selectedAccountcardNumber = this.patientService.getSelectedAccountName();\r\n this.displayCardNumberFilter = '****' + this.selectedAccountcardNumber;\r\n this.find();\r\n this.animate();\r\n }\r\n });\r\n }\r\n\r\n // Need to review----------------------------------------------------------------------------\r\n public animate(transitionName: string = 'vertical flip') {\r\n this.transitionController.animate(\r\n new Transition(transitionName, 200, TransitionDirection.In, () => console.log('Completed transition.')));\r\n }\r\n // Need to review----------------------------------------------------------------------------\r\n\r\n\r\n\r\n\r\n findTransaction(pageNumber) {\r\n if (pageNumber <= 0) {\r\n return;\r\n }\r\n if (this.pager.totalPages > 0) {\r\n if (pageNumber > this.pager.totalPages) {\r\n return;\r\n }\r\n }\r\n const parentId = this.loggedInUserData.parentId;\r\n this.searchParamsData.StartRow = this.commonService.calculatePageStartRow(pageNumber, this.pager.resultPerPage);\r\n this.searchParamsData.RecurringTransactionType = '';\r\n this.searchParamsData.ProviderIds = this.providerSelected.id;\r\n this.isLoader = true;\r\n this.transactionService.findTransaction(parentId, this.searchParamsData).subscribe(\r\n (response: any) => {\r\n this.commonService.setPager(response, pageNumber, this.pager);\r\n this.transactionList = response.data;\r\n if (this.transactionList.length > 0) {\r\n this.searchResultFlag = true;\r\n this.actionsAllowedOnTransaction();\r\n this.transactionList.forEach(element => {\r\n element.fullName = (element.firstName) ? element.firstName : '';\r\n element.fullName += (element.lastName) ? ' ' + element.lastName : '';\r\n element.transactionStatus = TransactionStatusMapEnum[TransactionStatusEnum[element.transactionStatus]];\r\n if (element.referenceTransactionId != null && element.operationType === TransactionOperationEnum.Refund) {\r\n if (element.transactionStatus === 'Success' || element.transactionStatus === 'Authorized') {\r\n element.transactionStatus = 'Refunded';\r\n } else {\r\n element.transactionStatus = 'Refund ' + element.transactionStatus;\r\n }\r\n }\r\n\r\n element.operationType = TransactionOperationMapEnum[TransactionOperationEnum[element.operationType]];\r\n\r\n if (element.tenderInfo.channelType === ChannelTypeEnum.Cash) {\r\n element.operationType = 'Cash';\r\n }\r\n if (element.tenderInfo.channelType === ChannelTypeEnum.Check) {\r\n element.operationType = 'Check';\r\n }\r\n\r\n });\r\n\r\n } else {\r\n this.noResultsMessage = 'No results found';\r\n }\r\n this.findClicked = true;\r\n this.isLoader = false;\r\n\r\n },\r\n error => {\r\n this.isLoader = false;\r\n this.checkException(error);\r\n });\r\n }\r\n findRecurring(pageNumber) {\r\n this.findClicked = true;\r\n const searchParamsData: any = {};\r\n\r\n const parentId = this.loggedInUserData.parentId;\r\n this.searchParamsData.StartRow = this.commonService.calculatePageStartRow(pageNumber, this.pager.resultPerPage);\r\n this.searchParamsData.RecurringTransactionType = 2;\r\n this.searchParamsData.ProviderIds = this.providerSelected.id;\r\n this.isLoader = true;\r\n this.recurringPaymentsService.findRecurringPayments(this.searchParamsData).subscribe(\r\n (response: any) => {\r\n this.pager = this.commonService.setPager(response, pageNumber, this.pager);\r\n this.recurringPaymentsList = response.data;\r\n if (this.recurringPaymentsList.length > 0) {\r\n this.searchResultFlag = true;\r\n this.recurringPaymentsList.forEach(element => {\r\n element.recurringTransactionType = RecurringPaymentTypeEnum[element.recurringTransactionType];\r\n element.frequency = FrequencyEnum[element.frequency];\r\n if (element.taxPercent != 0) {\r\n element.taxAmount = element.taxAmount;\r\n } else {\r\n element.taxAmount = 0;\r\n }\r\n element.startDate = element.firstTransactionDate;\r\n element.operations = [];\r\n\r\n\r\n if (this.loggedInUserData.userType == 0 && element.status !== 8 && element.status !== 5 && element.status !== 3) {\r\n element.operations.push({ 'key': 'updateAccount', 'value': 'Update Account' });\r\n }\r\n });\r\n } else {\r\n this.noResultsMessage = 'No results found';\r\n }\r\n this.findClicked = true;\r\n this.isLoader = false;\r\n },\r\n error => {\r\n this.isLoader = false;\r\n this.checkException(error);\r\n });\r\n }\r\n find() {\r\n\r\n // On find click reset the sorting order\r\n this.transactionResultsForm.controls['Sorting'].patchValue(this.sortingItemsList[0].label);\r\n this.transactionResultsForm.controls['ChannelType'].patchValue(this.channelTypeList[0].channelType);\r\n this.channelType = 'All';\r\n this.searchParamsData.TransactionId = '';\r\n this.searchParamsData.PageSize = AppSetting.resultsPerPage;\r\n this.searchParamsData.StartRow = this.commonService.calculatePageStartRow(this.pager.currentPage, this.pager.resultPerPage);\r\n this.sortTransactions(this.sortingItemsList[0], this.channelTypeList[0]);\r\n }\r\n\r\n actionsAllowedOnTransaction() {\r\n this.transactionList.forEach(element => {\r\n element.showDetails = false;\r\n element.transactionDetails = {};\r\n element.operations = [{ 'key': 'receipt', 'value': 'Receipt' }];\r\n\r\n });\r\n }\r\n\r\n\r\n\r\n getTransactionById(transaction) {\r\n if (transaction.showDetails) {\r\n transaction.showDetails = !transaction.showDetails;\r\n return;\r\n }\r\n transaction.isLoader_TransactionDetails = true;\r\n this.transactionService.viewTransaction(this.loggedInUserData.parentId, transaction.id).subscribe(response => {\r\n transaction.showDetails = !transaction.showDetails;\r\n const transactionDetails: any = response;\r\n transactionDetails.fullAddress = this.commonService.getFullAddress(transactionDetails.billingContact.address, []);\r\n transactionDetails.operationType = TransactionOperationMapEnum[TransactionOperationEnum[transactionDetails.operationType]];\r\n transactionDetails.transactionStatus = TransactionStatusMapEnum[TransactionStatusEnum[transactionDetails.transactionStatus]];\r\n const localDate = moment.utc(transactionDetails.transactionDate).local();\r\n transactionDetails.date = this.commonService.getFormattedDate(localDate['_d']);\r\n transactionDetails.time = this.commonService.getFormattedTime(localDate['_d']);\r\n\r\n if (transactionDetails.transactionStatus === 'Failed'\r\n || transactionDetails.transactionStatus === 'Denied'\r\n || transactionDetails.transactionStatus === 'Hold'\r\n || transactionDetails.transactionStatus === 'Closed') {\r\n transactionDetails.reasonStatus = this.transactionService.getExceptionMessage(transactionDetails);\r\n }\r\n transaction.transactionDetails = transactionDetails;\r\n transaction.showDetails = true;\r\n this.animate();\r\n transaction.isLoader_TransactionDetails = false;\r\n }, error => {\r\n transaction.isLoader_TransactionDetails = false;\r\n this.isLoader = false;\r\n this.checkException(error);\r\n });\r\n }\r\n getTransactionDetails(transaction) {\r\n if (transaction.showDetails) {\r\n transaction.showDetails = !transaction.showDetails;\r\n return;\r\n }\r\n transaction.isLoader_TransactionDetails = true;\r\n transaction.showDetails = !transaction.showDetails;\r\n //const transactionDetails=transaction;\r\n transaction.fullAddress = this.commonService.getFullAddress(transaction.address, []);\r\n //transaction.operationType = TransactionOperationMapEnum[TransactionOperationEnum[transaction.operationType]];\r\n // transaction.transactionStatus = TransactionStatusMapEnum[TransactionStatusEnum[transaction.transactionStatus]];\r\n const localDate = moment.utc(transaction.transactionDate).local();\r\n transaction.date = this.commonService.getFormattedDate(localDate['_d']);\r\n transaction.time = this.commonService.getFormattedTime(localDate['_d']);\r\n\r\n if (transaction.transactionStatus === 'Failed'\r\n || transaction.transactionStatus === 'Denied'\r\n || transaction.transactionStatus === 'Hold'\r\n || transaction.transactionStatus === 'Closed') {\r\n transaction.reasonStatus = this.transactionService.getExceptionMessage(transaction);\r\n }\r\n //transaction.transactionDetails = transactionDetails;\r\n transaction.showDetails = true;\r\n this.animate();\r\n transaction.isLoader_TransactionDetails = false;\r\n }\r\n getRecurringTransactionById(recurringPayment) {\r\n recurringPayment.isLoader_RecurringPaymentDetails = true;\r\n recurringPayment.showDetails = !recurringPayment.showDetails;\r\n recurringPayment.recurringId = recurringPayment.id;\r\n if (!recurringPayment.showDetails) {\r\n return;\r\n }\r\n recurringPayment.showDetails = true;\r\n this.animate();\r\n }\r\n onRecurringOperationClick(operationData, recurringData) {\r\n this.typeOfOperationHeading = operationData.value;\r\n if (operationData.key === 'updateAccount') {\r\n this.inputDataForUpdatePlan.recurringData = recurringData;\r\n this.inputDataForUpdatePlan.hideSchedulePlan = true;\r\n this.openUpdatePlanModal();\r\n }\r\n }\r\n\r\n public openUpdatePlanModal(dynamicContent: string = 'Example') {\r\n if (this.ifModalOpened) { // To avoid opening of multiple modal\r\n return;\r\n }\r\n this.ifModalOpened = true;\r\n const config = new TemplateModalConfig(this.modalUpdatePlan);\r\n config.closeResult = 'closed!';\r\n config.context = { data: dynamicContent };\r\n config.size = 'small';\r\n config.isClosable = false;\r\n this.modalService\r\n .open(config)\r\n .onApprove(result => {\r\n this.ngOnInit();\r\n const scroll = document.querySelector('#initialLoad');\r\n setTimeout(() => {\r\n scroll.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' });\r\n }, 400);\r\n /* approve callback */\r\n })\r\n .onDeny(result => {\r\n this.inputDataForOperation = {};\r\n this.ifModalOpened = false;\r\n const scroll = document.querySelector('#initialLoad');\r\n setTimeout(() => {\r\n scroll.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' });\r\n }, 400);\r\n });\r\n }\r\n\r\n outputDataFromUpdatePlan(OutputData) {\r\n if (OutputData.error) {\r\n this.closePlanWizard.nativeElement.click();\r\n } else {\r\n this.closePlanWizard.nativeElement.click();\r\n if (OutputData.isUpdated != undefined && OutputData.isUpdated) {\r\n\r\n this.findRecurring(1);\r\n this.toastData = this.toasterService.success(MessageSetting.recurring.paymentAccountUpdated);\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(MessageSetting.recurring.paymentAccountUpdated);\r\n }, 5000);\r\n }\r\n }\r\n }\r\n onTransactionOperationClick(operationData, transactionData) {\r\n this.inputDataForOperation.operationName = operationData.key;\r\n this.inputDataForOperation.channelType = transactionData.tenderInfo.channelType;\r\n this.inputDataForOperation.transactionId = transactionData.id;\r\n this.typeOfOperationHeading = operationData.value;\r\n this.openTransactionOperation();\r\n\r\n }\r\n\r\n getFormattedDateToDisplay(date) { // used to display date in filter as \"23 March 2019\" to match with datepicker format\r\n return this.commonService.getFormattedDateToDisplayInFilter(date);\r\n }\r\n\r\n // get date in mm-dd-yyyy format\r\n getFormattedDate(date) {\r\n return this.commonService.getFormattedDateTime(date);\r\n }\r\n\r\n\r\n sortTransactions(inputData, inputData2) {\r\n let columnName, orderBy;\r\n\r\n if (inputData.selectedOption === undefined && inputData2.selectedOption === undefined) { // if called from find transaction\r\n columnName = inputData.columnName;\r\n orderBy = (inputData.sortingOrder === 'Asc' ? true : false);\r\n } else {\r\n if (inputData2.selectedOption != undefined) {\r\n if (inputData2.selectedOption.channelType != 'All' && inputData2.selectedOption.channelType != 'Onetime') {\r\n this.channelType = inputData2.selectedOption.channelType;\r\n this.searchParamsData.ChannelType = ChannelTypeEnum[inputData2.selectedOption.channelType];\r\n } else {\r\n this.channelType = inputData2.selectedOption.channelType;\r\n }\r\n }\r\n if (inputData.selectedOption != undefined)// if called from change sorting option provided on HTML\r\n {\r\n if (this.channelType != 'Onetime') {\r\n columnName = inputData.selectedOption.columnName;\r\n orderBy = (inputData.selectedOption.sortingOrder === 'Asc' ? true : false);\r\n } else {\r\n //schedule payment filter works for 'columnName': 'CreatedOn' and 'columnName': 'paymentAmount'\r\n columnName = inputData.selectedOption.columnName === 'TransactionDate' ? 'CreatedOn' : 'paymentAmount';\r\n orderBy = (inputData.selectedOption.sortingOrder === 'Asc' ? true : false);\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n if (this.selectedAccountcardNumber !== '') {\r\n this.searchParamsData.AccountIds = this.selectedAccountId;\r\n this.patientService.setSelectedAccount('', '');\r\n this.selectedAccountId = '';\r\n this.selectedAccountcardNumber = '';\r\n }\r\n\r\n this.searchResultFlag = false;\r\n this.searchParamsData.SortField = columnName;\r\n this.searchParamsData.Asc = orderBy;\r\n this.sortColumnOrder[columnName] = !orderBy;\r\n if (this.channelType != 'Onetime') {\r\n this.findTransaction(1);\r\n } else {\r\n this.findRecurring(1);\r\n }\r\n\r\n }\r\n\r\n\r\n clearFilter() {\r\n this.displayCardNumberFilter = '';\r\n this.find();\r\n }\r\n\r\n outputDataFromOperation(OutputData) {\r\n this.inputDataForOperation = {};\r\n if (OutputData.error) {\r\n this.closeModal.nativeElement.click();\r\n } else {\r\n this.closeModal.nativeElement.click();\r\n if (OutputData.id !== undefined) {\r\n if (OutputData.isEdit) {\r\n this.find();\r\n this.toastData = this.toasterService.success(MessageSetting.transaction.updated);\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(MessageSetting.transaction.updated);\r\n }, 5000);\r\n } else {\r\n this.find();\r\n this.toastData = this.toasterService.success(MessageSetting.transaction.submit);\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(MessageSetting.transaction.submit);\r\n }, 5000);\r\n }\r\n\r\n }\r\n }\r\n }\r\n onPerformOperationClick() {\r\n this.txnOperation.performOperation();\r\n }\r\n\r\n outputDataFromTransactionOperation(OutputData) {\r\n if (OutputData.error) {\r\n this.closeModal.nativeElement.click();\r\n } else {\r\n this.closeModal.nativeElement.click();\r\n\r\n if (OutputData.id !== undefined) {\r\n this.find();\r\n this.toastData = this.toasterService.success(MessageSetting.transaction.submit);\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(MessageSetting.transaction.submit);\r\n }, 5000);\r\n }\r\n }\r\n }\r\n\r\n // Transaction Operation Modal (Refund, ForcAuth, etc.)\r\n public openTransactionOperation(dynamicContent: string = 'Example') {\r\n if (this.ifModalOpened) { // To avoid opening of multiple modal\r\n return;\r\n }\r\n this.ifModalOpened = true;\r\n const config = new TemplateModalConfig(this.modalTransactionOperations);\r\n config.closeResult = 'closed!';\r\n config.context = { data: dynamicContent };\r\n config.size = this.inputDataForOperation.operationName === 'receipt' ? 'normal' : 'tiny';\r\n config.isClosable = false;\r\n config.transition = 'horizontal flip';\r\n config.transitionDuration = 1000;\r\n this.modalService\r\n .open(config)\r\n .onApprove(result => {\r\n this.ngOnInit();\r\n const scroll = document.querySelector('#initialLoad');\r\n setTimeout(() => {\r\n scroll.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' });\r\n }, 400);\r\n })\r\n .onDeny(result => {\r\n //this.find();\r\n this.ifModalOpened = false;\r\n const scroll = document.querySelector('#initialLoad');\r\n setTimeout(() => {\r\n scroll.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' });\r\n }, 400);\r\n });\r\n }\r\n\r\n checkException(error) {\r\n if (error.status === 403 && error.error.message !== 'User is not authorized to access this resource') {\r\n this.commonService.logOut();\r\n } else {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 5000);\r\n }\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n\r\ninterface IConfirmModalContext {\r\n question: string;\r\n title?: string;\r\n}\r\n\r\nexport class ConfirmModal extends ComponentModalConfig {\r\n constructor(question: string, title?: string) {\r\n super(ConfirmModalComponent, { question, title });\r\n\r\n this.isClosable = false;\r\n this.transitionDuration = 200;\r\n this.size = ModalSize.Small;\r\n }\r\n}\r\n\r\n\r\n","module.exports = \"

\\r\\n patient works!\\r\\n

\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zZWN1cmUvcGF0aWVudC9wYXRpZW50LmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-patient',\r\n templateUrl: './patient.component.html',\r\n styleUrls: ['./patient.component.scss']\r\n})\r\nexport class PatientComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zZWN1cmUvcHJvdmlkZXIvY29tcG9uZW50L2Rvd25sb2FkL2Rvd25sb2FkLXJlY2VpcHQvZG93bmxvYWQtcmVjZWlwdC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, Input, OnInit } from '@angular/core';\r\nimport { Utilities } from 'src/app/services/commonservice/utilities';\r\nimport { DownloadToPDF_Receipt } from 'src/app/common/enum/download-to-csv.enum';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\nimport { CustomFormatCurrencyPipe } from 'src/app/services/pipe/customFormatCurrency.pipe';\r\nimport { CustomFormatPercentagePipe } from 'src/app/services/pipe/customFormatPercetage.pipe';\r\n\r\nimport * as moment from 'moment';\r\nimport { StorageService } from 'src/app/services/session/storage.service';\r\nimport { StorageType } from 'src/app/services/session/storage.enum';\r\nimport { ChannelTypeEnum } from 'src/app/enum/channeltypes.enum';\r\nimport { PrefixSuffixPipe } from 'src/app/services/pipe/prefixSuffix.pipe';\r\n\r\n@Component({\r\n selector: 'app-download-receipt',\r\n templateUrl: './download-receipt.component.html',\r\n styleUrls: ['./download-receipt.component.scss']\r\n})\r\nexport class DownloadReceiptComponent implements OnInit {\r\n\r\n @Input() InputData;\r\n\r\n // logo configuration for PDF\r\n activeLogo: any = '';\r\n loggedInUserData: any = {};\r\n\r\n constructor(\r\n private commonService: CommonService,\r\n private storageService: StorageService,\r\n private customFormatCurrencyPipe: CustomFormatCurrencyPipe,\r\n private CustomFormatPercentagePipe: CustomFormatPercentagePipe,\r\n private maskPipe: PrefixSuffixPipe\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n this.loggedInUserData = this.commonService.getLoggedInData();\r\n // const settingData = JSON.parse(this.storageService.get(StorageType.session, 'settingsData'));\r\n // if (settingData !== null && this.loggedInUserData !== null) {\r\n // this.toDataURL(settingData.logo, dataUrl => {\r\n // this.activeLogo = (dataUrl !== undefined) ? dataUrl : '';\r\n // });\r\n // }\r\n\r\n }\r\n\r\n toDataURL(url, callback) {\r\n if (url == null || url === undefined) {\r\n return;\r\n }\r\n const xhr = new XMLHttpRequest();\r\n xhr.onload = function () {\r\n const reader = new FileReader();\r\n reader.onloadend = function () { callback(reader.result); };\r\n reader.readAsDataURL(xhr.response);\r\n };\r\n xhr.open('GET', url, true);\r\n xhr.responseType = 'blob';\r\n xhr.send();\r\n }\r\n\r\n download() {\r\n\r\n const pdfpageSize = 'A4';\r\n const docDefinition = {\r\n pageSize: pdfpageSize,\r\n // pageOrientation: 'landscape',\r\n footer: function (currentPage, pageCount) {\r\n return {};\r\n },\r\n header: function (currentPage, pageCount) {\r\n return { text: '', alignment: 'center', padding: [10, 10, 10, 10], margin: [10, 20, 10, 20] };\r\n },\r\n content: [\r\n {\r\n columns: [\r\n [this.getLogoObject()]\r\n ],\r\n },\r\n this.getCardDetailsObject(),\r\n {\r\n text: '',\r\n style: 'divider'\r\n },\r\n this.getPatientDetailsObject(),\r\n {\r\n text: '',\r\n style: 'divider'\r\n },\r\n this.getInvoiceDetailsObject(),\r\n {\r\n text: '',\r\n style: 'divider'\r\n },\r\n this.getTransactionDetailsObject(),\r\n ],\r\n styles: {\r\n header: {\r\n fontSize: 18,\r\n bold: true,\r\n margin: [0, 20, 0, 10]\r\n },\r\n divider: {\r\n margin: [0, 5, 0, 5],\r\n },\r\n subheader: {\r\n fontSize: 16,\r\n bold: true,\r\n margin: [0, 10, 0, 5]\r\n },\r\n tableExample: {\r\n margin: [0, 5, 0, 15]\r\n },\r\n tableHeader: {\r\n bold: true,\r\n fontSize: 13,\r\n color: 'black'\r\n }\r\n },\r\n defaultStyle: {}\r\n };\r\n\r\n Utilities.htmlToPdf({}, docDefinition, 'receipt.pdf');\r\n\r\n }\r\n\r\n getLogoObject() {\r\n\r\n let logo = '';\r\n if (this.activeLogo !== '') {\r\n logo = this.activeLogo;\r\n } else {\r\n logo = `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJoAAAAcCAYAAACZFqbSAAAA\r\n BHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABZ0RVh0Q3JlYXRpb24gVGltZQAxMi8wNi8xOHdDEHg\r\n AAAQRdEVYdFhNTDpjb20uYWRvYmUueG1wADw/eHBhY2tldCBiZWdpbj0iICAgIiBpZD0iVzVNME1wQ2VoaUh6cmVTek\r\n 5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb\r\n 3JlIDQuMS1jMDM0IDQ2LjI3Mjk3NiwgU2F0IEphbiAyNyAyMDA3IDIyOjM3OjM3ICAgICAgICAiPgogICA8cmRmOlJE\r\n RiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmR\r\n mOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4YXA9Imh0dHA6Ly9ucy5hZG9iZS5jb2\r\n 0veGFwLzEuMC8iPgogICAgICAgICA8eGFwOkNyZWF0b3JUb29sPkFkb2JlIEZpcmV3b3JrcyBDUzM8L3hhcDpDcmVhd\r\n G9yVG9vbD4KICAgICAgICAgPHhhcDpDcmVhdGVEYXRlPjIwMTktMDQtMDJUMDc6Mzg6MjZaPC94YXA6Q3JlYXRlRGF0\r\n ZT4KICAgICAgICAgPHhhcDpNb2RpZnlEYXRlPjIwMTktMDQtMDJUMDc6NDA6MDFaPC94YXA6TW9kaWZ5RGF0ZT4KICA\r\n gICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgIC\r\n AgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+a\r\n W1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBt\r\n ZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA\r\n gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC\r\n AgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgI\r\n CAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg\r\n ICAgICAgICAgICAgICAgICAgICAgICAgILMaOxcAAAAYdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3Jrc0+zH04AAA9\r\n SSURBVHic7Zt7lBxVncc/3T2Pmkkmz+UdSERYETW8Q3azCrq4CApCLAWfIMsrVp/jWgsL7JGcA6i7ylrBbNcq64lyVh\r\n 6KtUsIoMh7VV4qRIGwkQ1JTDYhmIRkmCHTM9PdtX9876Wrqx/TMwnIH/meU6dP3brv+3v/bmfiOGYv9uKNRsefegJ78\r\n eYiCKNO4K+BF33P/d83a9zsmzXQXrxlsA9wIdD7Zg761pJoeacLzaliSspACegGMkAM5IBhCsXSRIcJwigLOKa/ZrZD\r\n Bij5njs60XEmiiCMOnzPnfD6xsCngA8C//IG9d8QmTiOIe+chza8AkwBXgHuoVAcaNk67xwPHA8MIQJ5DbibQnFw3DP\r\n JO93AIuAIoIik7RrgJ8BFwGRgBJgEPABEFIqVxp21RhBGJwGfBEYRMWcSn2PzngVeBdYCzwNrfM/dOpHxxjGvmWZefw\r\n bc7Xvub/Zg3+cCm4FlwCHA2cCjwMeByPfcnXtqrEawEu2mVPnLwHPmaYXPA19IvA8C84D/mcBceoDzgaMSZb9Dh3w5t\r\n cTQDfwXVck3XiwALhlH/V3AL4IwWgb8p++5Ex23KYIw2g/4LnCGKbokCKMLgWfROWWatW2BCjAMnAl827y/BKwGuoBT\r\n zJinBmF0DdBvyjOJ8TJIi2z1PXfbBOYANFedOxC3j4Vi6v3VNts1wijwx1TZJmAAceJBqfmVJzgOwPZx1u8FTjXPPwD\r\n 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\r\n vdiLNxj/Dz6axgvPJYQYAAAAAElFTkSuQmCC`;\r\n }\r\n return {\r\n image: logo,\r\n width: 75,\r\n alignment: 'center',\r\n margin: [0, 0, 0, 20]\r\n };\r\n }\r\n\r\n getCardDetailsObject() {\r\n\r\n let cardNumber = '--';\r\n let nameOnCheckOrCard = '--';\r\n let cardType = '--';\r\n let operationType = '--';\r\n\r\n if (this.InputData.transactionType !== 'plan') {\r\n if (this.InputData.transactionData.tenderInfo.channelType === ChannelTypeEnum.ACH) {\r\n cardNumber = (this.InputData.transactionData.tenderInfo.maskAccount == null) ? 'NA' : this.InputData.transactionData.tenderInfo.maskAccount;\r\n cardType = (this.InputData.transactionData.tenderInfo.bankName == null) ? 'NA' : this.InputData.transactionData.tenderInfo.bankName;\r\n } else if (this.InputData.transactionData.tenderInfo.channelType === ChannelTypeEnum.CreditCard) {\r\n cardNumber = (this.InputData.transactionData.tenderInfo.maskCardNumber == null) ? 'NA' : this.InputData.transactionData.tenderInfo.maskCardNumber;\r\n cardType = (this.InputData.transactionData.tenderInfo.cardType == null) ? 'NA' : this.InputData.transactionData.tenderInfo.cardType;\r\n } else if (this.InputData.transactionData.tenderInfo.channelType === ChannelTypeEnum.Check) {\r\n cardNumber = 'Check Number - ' + this.InputData.transactionData.tenderInfo.checkNumber;\r\n cardType = (this.InputData.transactionData.tenderInfo.bankName == null) ? 'NA' : this.InputData.transactionData.tenderInfo.bankName;\r\n }\r\n nameOnCheckOrCard = (this.InputData.transactionData.tenderInfo.nameOnCheckOrCard == null) ? 'NA' : this.InputData.transactionData.tenderInfo.nameOnCheckOrCard;\r\n operationType = this.InputData.transactionData.operationType + ' - ' + this.InputData.transactionData.tenderInfo.channelTypeName;\r\n }\r\n\r\n const body = [];\r\n\r\n body.push(\r\n [\r\n {\r\n text: [\r\n {\r\n text: this.InputData.providerData.fullName + '\\n',\r\n fontSize: 14,\r\n bold: true,\r\n },\r\n {\r\n text: this.InputData.providerData.fullAddress + '\\n',\r\n },\r\n {\r\n text: this.InputData.providerData.email + '\\n'\r\n },\r\n {\r\n text: this.InputData.providerData.phone + '\\n'\r\n }\r\n ],\r\n colSpan: 4\r\n }, {}, {}, {}\r\n ]\r\n );\r\n\r\n if (this.InputData.transactionType !== 'plan') {\r\n body.push(\r\n [\r\n {\r\n text: [\r\n {\r\n text: [\r\n { text: DownloadToPDF_Receipt['paymentType'] + '\\n', style: 'tableHeader' },\r\n { text: operationType }\r\n ]\r\n }\r\n ]\r\n },\r\n {\r\n text: [\r\n {\r\n text: (this.InputData.transactionData.tenderInfo.channelType === ChannelTypeEnum.Check) ?\r\n DownloadToPDF_Receipt['checkDetails'] + '\\n' :\r\n (this.InputData.transactionData.tenderInfo.channelType === ChannelTypeEnum.ACH) ? DownloadToPDF_Receipt['accountNumber'] + '\\n' :\r\n DownloadToPDF_Receipt['cardNumber'] + '\\n',\r\n style: 'tableHeader'\r\n },\r\n { text: cardNumber }\r\n ]\r\n },\r\n {\r\n text: [\r\n {\r\n text: (this.InputData.transactionData.tenderInfo.channelType === ChannelTypeEnum.ACH) ? DownloadToPDF_Receipt['nameOnAccount'] + '\\n' :\r\n DownloadToPDF_Receipt['nameOnCard'] + '\\n',\r\n style: 'tableHeader'\r\n },\r\n { text: nameOnCheckOrCard }\r\n ]\r\n },\r\n {\r\n text: [\r\n {\r\n text: (this.InputData.transactionData.tenderInfo.channelType === ChannelTypeEnum.ACH) ? DownloadToPDF_Receipt['bankName'] + '\\n' :\r\n (this.InputData.transactionData.tenderInfo.channelType === ChannelTypeEnum.Check) ? DownloadToPDF_Receipt['institutionName'] + '\\n' : DownloadToPDF_Receipt['cardType'] + '\\n',\r\n style: 'tableHeader'\r\n },\r\n { text: cardType }\r\n ]\r\n }\r\n ]\r\n )\r\n }\r\n\r\n return {\r\n table: {\r\n widths: ['25%', '25%', '25%', '25%'],\r\n body: [\r\n ...body\r\n ]\r\n },\r\n layout: {\r\n\r\n hLineWidth: function (i, node) {\r\n return (i === 0 || i === node.table.body.length) ? 1 : 1;\r\n },\r\n vLineWidth: function (i, node) {\r\n return (i === 0 || i === node.table.widths.length) ? 1 : 1;\r\n },\r\n hLineColor: function (i, node) {\r\n return (i === 0 || i === node.table.body.length) ? 'gray' : 'gray';\r\n },\r\n vLineColor: function (i, node) {\r\n return (i === 0 || i === node.table.widths.length) ? 'gray' : 'gray';\r\n },\r\n // hLineStyle: function (i, node) { return {dash: { length: 10, space: 4 }}; },\r\n // vLineStyle: function (i, node) { return {dash: { length: 10, space: 4 }}; },\r\n // paddingLeft: function(i, node) { return 4; },\r\n // paddingRight: function(i, node) { return 4; },\r\n // paddingTop: function(i, node) { return 2; },\r\n // paddingBottom: function(i, node) { return 2; },\r\n // fillColor: function (rowIndex, node, columnIndex) { return null; }\r\n\r\n }\r\n };\r\n }\r\n\r\n getPatientDetailsObject() {\r\n\r\n if (this.InputData.patientDetails === undefined) {\r\n return {};\r\n }\r\n\r\n return {\r\n table: {\r\n widths: ['25%', '25%', '25%', '25%'],\r\n body: [\r\n [\r\n {\r\n text: [\r\n {\r\n text: 'Reference No' + '\\n',\r\n style: 'tableHeader'\r\n },\r\n { text: this.InputData.transactionData.invoiceNumber }\r\n ]\r\n }, {\r\n text: [\r\n {\r\n text: 'Patient Name' + '\\n',\r\n style: 'tableHeader'\r\n },\r\n { text: this.InputData.patientDetails.patientName }\r\n ]\r\n }, {\r\n text: [\r\n {\r\n text: 'Email' + '\\n',\r\n style: 'tableHeader'\r\n },\r\n { text: this.InputData.patientDetails.email }\r\n ]\r\n }, {\r\n text: [\r\n {\r\n text: 'Phone' + '\\n',\r\n style: 'tableHeader'\r\n },\r\n { text: this.InputData.patientDetails.phone }\r\n ]\r\n },\r\n ]\r\n ]\r\n },\r\n layout: {\r\n\r\n hLineWidth: function (i, node) {\r\n return (i === 0 || i === node.table.body.length) ? 1 : 1;\r\n },\r\n vLineWidth: function (i, node) {\r\n return (i === 0 || i === node.table.widths.length) ? 1 : 1;\r\n },\r\n hLineColor: function (i, node) {\r\n return (i === 0 || i === node.table.body.length) ? 'gray' : 'gray';\r\n },\r\n vLineColor: function (i, node) {\r\n return (i === 0 || i === node.table.widths.length) ? 'gray' : 'gray';\r\n },\r\n\r\n }\r\n };\r\n }\r\n\r\n getTransactionDetailsObject() {\r\n\r\n const body = [];\r\n if (this.InputData.transactionType === 'plan') {\r\n body.push(\r\n [\r\n {\r\n text: [\r\n { text: 'Provider Id:' },\r\n { text: this.InputData.transactionData.providerId }\r\n ]\r\n },\r\n {\r\n text: [\r\n { text: 'Payment Plan Id: ' },\r\n { text: this.InputData.transactionData.id }\r\n ]\r\n }\r\n ],\r\n [\r\n {\r\n text: [\r\n { text: 'Payment Type:' },\r\n { text: this.InputData.transactionData.paymentType }\r\n ]\r\n },\r\n {}\r\n ],\r\n [\r\n {\r\n text: [\r\n { text: 'Total Amount: ' },\r\n { text: this.customFormatCurrencyPipe.transform(this.InputData.transactionData.totalAmount) }\r\n ]\r\n }, {\r\n text: [\r\n { text: 'Down Payment:' },\r\n { text: this.customFormatCurrencyPipe.transform(this.InputData.transactionData.downPayment) }\r\n ]\r\n }\r\n ],\r\n [\r\n {\r\n text: [\r\n { text: 'Remaining Balance: ' },\r\n { text: this.customFormatCurrencyPipe.transform(this.InputData.transactionData.totalDueAmount) }\r\n ]\r\n }, {\r\n text: [\r\n { text: 'Number of Payments:' },\r\n { text: this.InputData.transactionData.noOfPayments }\r\n ]\r\n }\r\n ],\r\n [\r\n {\r\n text: [\r\n { text: 'Payment Amount: ' },\r\n { text: this.customFormatCurrencyPipe.transform(this.InputData.transactionData.paymentAmount) }\r\n ]\r\n }, {\r\n text: [\r\n { text: 'Created Date:' },\r\n { text: this.getFormattedDate(this.InputData.transactionData.createdOn) }\r\n ]\r\n }\r\n ],\r\n [\r\n {\r\n text: 'Payment Schedule',\r\n alignment: 'center',\r\n color: '#1C1053',\r\n style: 'tableHeader',\r\n padding: [0, 10, 0, 10],\r\n colSpan: 2\r\n }, {}\r\n ],\r\n [\r\n {\r\n stack: [\r\n `${this.InputData.transactionData.noOfPayments} ${this.InputData.transactionData.frequency == undefined ?\r\n 'time scheduled payment' :\r\n this.InputData.transactionData.frequency + ' payments'} of $${this.InputData.transactionData.paymentAmount.toFixed(2)}`,\r\n {\r\n ul: this.getPaymentScheduleObject()\r\n }\r\n ],\r\n colSpan: 2\r\n }, {}\r\n ]\r\n );\r\n } else {\r\n body.push(\r\n [\r\n {\r\n text: [\r\n { text: 'Transaction Date\\n', style: 'tableHeader' },\r\n { text: this.getFormattedDate(this.InputData.transactionData.transactionDate, true) }\r\n ]\r\n }, {\r\n text: [\r\n { text: 'Provider Id\\n', style: 'tableHeader' },\r\n { text: this.InputData.transactionData.providerId }\r\n ]\r\n },\r\n ],\r\n );\r\n body.push(\r\n [\r\n {\r\n text: '',\r\n border: [true, true, false, true],\r\n },\r\n\r\n {\r\n table: {\r\n widths: ['*', '*'],\r\n body: [\r\n [\r\n {\r\n text: DownloadToPDF_Receipt['subTotal'],\r\n style: 'tableHeader'\r\n }, {\r\n text: this.customFormatCurrencyPipe.transform(this.InputData.invoiceData.subTotalAmount),\r\n alignment: 'right'\r\n }\r\n ],\r\n ]\r\n },\r\n layout: 'noBorders',\r\n border: [false, true, true, true],\r\n }\r\n ],\r\n [\r\n {\r\n text: '',\r\n border: [true, true, false, true],\r\n },\r\n\r\n {\r\n table: {\r\n widths: ['*', '*'],\r\n body: [\r\n [\r\n {\r\n text: DownloadToPDF_Receipt['totalDiscount'],\r\n style: 'tableHeader'\r\n }, {\r\n text: this.customFormatCurrencyPipe.transform(this.InputData.invoiceData.totalDiscountAmount),\r\n alignment: 'right'\r\n }\r\n ],\r\n ]\r\n },\r\n layout: 'noBorders',\r\n border: [false, true, true, true],\r\n }\r\n ],\r\n [\r\n {\r\n text: '',\r\n border: [true, true, false, true],\r\n },\r\n\r\n {\r\n table: {\r\n widths: ['*', '*'],\r\n body: [\r\n [\r\n {\r\n text: DownloadToPDF_Receipt['totalTax'],\r\n style: 'tableHeader'\r\n }, {\r\n text: this.customFormatCurrencyPipe.transform(this.InputData.invoiceData.totalTaxAmount),\r\n alignment: 'right'\r\n }\r\n ],\r\n ]\r\n },\r\n layout: 'noBorders',\r\n border: [false, true, true, true],\r\n }\r\n ],\r\n [\r\n {\r\n text: '',\r\n border: [true, true, false, true],\r\n },\r\n\r\n {\r\n table: {\r\n widths: ['*', '*'],\r\n body: [\r\n [\r\n {\r\n text: DownloadToPDF_Receipt['finalAmount'],\r\n style: 'tableHeader'\r\n }, {\r\n text: this.customFormatCurrencyPipe.transform(this.InputData.transactionData.tenderInfo.totalAmount),\r\n alignment: 'right'\r\n }\r\n ],\r\n ]\r\n },\r\n layout: 'noBorders',\r\n border: [false, true, true, true],\r\n }\r\n ]\r\n );\r\n }\r\n\r\n body.push(\r\n [\r\n {\r\n text: [\r\n { text: DownloadToPDF_Receipt['note'] + '\\n', style: 'tableHeader' },\r\n { text: this.InputData.transactionData.description },\r\n ],\r\n fillColor: '#F8F8F9',\r\n border: [true, true, true, true],\r\n colSpan: 2\r\n },\r\n {}\r\n ]\r\n );\r\n\r\n return {\r\n table: {\r\n widths: ['50%', '50%'],\r\n body: [\r\n ...body\r\n ]\r\n },\r\n layout: {\r\n\r\n hLineWidth: function (i, node) {\r\n return (i === 0 || i === node.table.body.length) ? 1 : 1;\r\n },\r\n vLineWidth: function (i, node) {\r\n return (i === 0 || i === node.table.widths.length) ? 1 : 1;\r\n },\r\n hLineColor: function (i, node) {\r\n return (i === 0 || i === node.table.body.length) ? 'gray' : 'gray';\r\n },\r\n vLineColor: function (i, node) {\r\n return (i === 0 || i === node.table.widths.length) ? 'gray' : 'gray';\r\n },\r\n // hLineStyle: function (i, node) { return {dash: { length: 10, space: 4 }}; },\r\n // vLineStyle: function (i, node) { return {dash: { length: 10, space: 4 }}; },\r\n // paddingLeft: function(i, node) { return 4; },\r\n // paddingRight: function(i, node) { return 4; },\r\n // paddingTop: function(i, node) { return 2; },\r\n // paddingBottom: function(i, node) { return 2; },\r\n // fillColor: function (rowIndex, node, columnIndex) { return null; }\r\n\r\n }\r\n };\r\n }\r\n\r\n\r\n getPaymentScheduleObject() {\r\n const arr = [];\r\n\r\n this.InputData.paymentScheduleList.forEach(element => {\r\n let text = {};\r\n if (element.transactionStatus != null) {\r\n\r\n text = {\r\n text: [\r\n { text: ((element.installationType == 1) ? 'Down Payment:' : 'Scheduled:'), style: 'tableHeader' },\r\n { text: this.getFormattedDate(element.executionDate) + ' | ' },\r\n { text: this.customFormatCurrencyPipe.transform(element.amountDue), style: 'tableHeader' },\r\n { text: ' | ' },\r\n { text: 'Status:', style: 'tableHeader' },\r\n { text: element.transactionStatus + ' | ' },\r\n { text: ((element.transactionId != null) ? 'Paid On:' : ''), style: 'tableHeader' },\r\n { text: ((element.transactionId != null) ? this.getFormattedDate(element.executionDate) + '\\n' : '') },\r\n { text: 'Payment Plan Id:', style: 'tableHeader' },\r\n { text: element.recurringPaymentId + '\\n' },\r\n { text: ((element.transactionId != null) ? 'Trandsaction Id:' : ''), style: 'tableHeader' },\r\n { text: ((element.transactionId != null) ? element.transactionId : '') + '\\n' },\r\n\r\n\r\n { text: 'Payment Mode:', style: 'tableHeader' },\r\n { text: ((element.accountType == '2') ? 'ACH' : 'CC') + ' | ' },\r\n { text: 'Name on Account:', style: 'tableHeader' },\r\n {\r\n text: ((element.accountHolderName != '' &&\r\n element.accountHolderName != null) ? element.accountHolderName : '--') + ' | '\r\n },\r\n { text: 'Account Number:', style: 'tableHeader' },\r\n { text: (this.maskPipe.transform(element.maskAccountNumber)) },\r\n { text: ((element.accountType != '2') ? ' | ' + 'Card Type:' : ''), style: 'tableHeader' },\r\n { text: ((element.accountType != '2') ? element.cardType : '') },\r\n ],\r\n };\r\n\r\n } else {\r\n text = {\r\n text: [\r\n { text: ((element.installationType == 1) ? 'Down Payment:' : 'Scheduled:'), style: 'tableHeader' },\r\n { text: this.getFormattedDate(element.executionDate) + ' | ' },\r\n { text: this.customFormatCurrencyPipe.transform(element.amountDue) + ' \\n ', style: 'tableHeader' },\r\n\r\n { text: 'Payment Mode:', style: 'tableHeader' },\r\n { text: ((element.accountType == '2') ? 'ACH' : 'CC') + ' | ' },\r\n { text: 'Name on Account:', style: 'tableHeader' },\r\n {\r\n text: ((element.accountHolderName != '' &&\r\n element.accountHolderName != null) ? element.accountHolderName : '--') + ' | '\r\n },\r\n { text: 'Account Number:', style: 'tableHeader' },\r\n { text: (this.maskPipe.transform(element.maskAccountNumber)) },\r\n { text: ((element.accountType != '2') ? ' | ' + 'Card Type:' : ''), style: 'tableHeader' },\r\n { text: ((element.accountType != '2') ? element.cardType : '') },\r\n ],\r\n };\r\n }\r\n arr.push(text);\r\n });\r\n\r\n return arr;\r\n\r\n }\r\n\r\n getInvoiceDetailsObject() {\r\n\r\n if (this.InputData.invoiceData === undefined) {\r\n return {};\r\n }\r\n\r\n const body = [];\r\n\r\n\r\n body.push(\r\n [\r\n {\r\n text: [\r\n { text: 'Product Name', style: 'tableHeader' }\r\n ]\r\n }, {\r\n text: [\r\n { text: 'Unit Rate', style: 'tableHeader' }\r\n ]\r\n }, {\r\n text: [\r\n { text: 'Quantity', style: 'tableHeader' }\r\n ]\r\n }, {\r\n text: [\r\n { text: 'Discount', style: 'tableHeader' }\r\n ]\r\n }, {\r\n text: [\r\n { text: 'Tax Percent', style: 'tableHeader' }\r\n ]\r\n }, {\r\n text: [\r\n { text: 'Amount(%)', style: 'tableHeader' }\r\n ]\r\n },\r\n ],\r\n );\r\n\r\n this.InputData.invoiceData.items.forEach(element => {\r\n\r\n body.push(\r\n [\r\n {\r\n text: [\r\n { text: element.name }\r\n ]\r\n }, {\r\n text: [\r\n { text: this.customFormatCurrencyPipe.transform(element.unitPrice) }\r\n ]\r\n }, {\r\n text: [\r\n { text: element.quantity }\r\n ]\r\n }, {\r\n text: [\r\n { text: this.customFormatCurrencyPipe.transform(element.discount) }\r\n ]\r\n }, {\r\n text: [\r\n { text: this.CustomFormatPercentagePipe.transform(element.taxPercent) }\r\n ]\r\n }, {\r\n text: [\r\n { text: this.customFormatCurrencyPipe.transform(element.calculatedTotalPrice) }\r\n ]\r\n },\r\n ],\r\n );\r\n });\r\n\r\n return {\r\n table: {\r\n widths: ['25%', '15%', '15%', '15%', '15%', '15%'],\r\n body: [\r\n ...body\r\n ]\r\n },\r\n layout: {\r\n\r\n hLineWidth: function (i, node) {\r\n return (i === 0 || i === node.table.body.length) ? 1 : 1;\r\n },\r\n vLineWidth: function (i, node) {\r\n return (i === 0 || i === node.table.widths.length) ? 1 : 1;\r\n },\r\n hLineColor: function (i, node) {\r\n return (i === 0 || i === node.table.body.length) ? 'gray' : 'gray';\r\n },\r\n vLineColor: function (i, node) {\r\n return (i === 0 || i === node.table.widths.length) ? 'gray' : 'gray';\r\n },\r\n\r\n\r\n }\r\n };\r\n }\r\n\r\n getFormattedDate(date, datetime = false) {\r\n if (!datetime) {\r\n const localDate = moment.utc(date).local();\r\n const d = this.commonService.getFormattedDate(localDate['_d']);\r\n return d;\r\n }\r\n return this.commonService.getFormattedDateTime(date);\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
{{'common.processing' | translate}}
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n

{{successMessage}}

\\r\\n
\\r\\n
\\r\\n \\r\\n

{{errorMessage}}

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{'patientAccount.add.accountDetails' | translate}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{'patientAccount.add.cc' | translate}}\\r\\n
\\r\\n     \\r\\n
\\r\\n {{'patientAccount.add.ach' | translate}}\\r\\n
\\r\\n
\\r\\n {{addPatientAccountFormErrors.PaymentType}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{addPatientAccountFormErrors.PracticeLocationId}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{addPatientAccountFormErrors.CardHolderName}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{addPatientAccountFormErrors.cardNumber}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{addPatientAccountFormErrors.cardExpiry}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{addPatientAccountFormErrors.PracticeLocationId}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{addPatientAccountFormErrors.NameOnAccount}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{addPatientAccountFormErrors.AccountType}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{addPatientAccountFormErrors.routingNumber}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{addPatientAccountFormErrors.AccountNo}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{addPatientAccountFormErrors.BankName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{'patientAccount.add.addressDetails' | translate}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{'patientAccount.add.sameAsPatientAddress' | translate}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{addressDetailsFormErrors.AddressLine1}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{addressDetailsFormErrors.AddressLine2}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{addressDetailsFormErrors.City}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{addressDetailsFormErrors.Country}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{addressDetailsFormErrors.State}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n {{addressDetailsFormErrors.PostalCode}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zZWN1cmUvcHJvdmlkZXIvY29tcG9uZW50L3BhdGllbnQtQWNjb3VudC9hZGQtcGF0aWVudC1hY2NvdW50L2FkZC1wYXRpZW50LWFjY291bnQuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Input, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { Validator } from '../../../../../../common/validation/validator';\r\nimport { ValidationConfig } from '../../transactions/virtual-terminal/validation-config';\r\nimport { FormBuilder, Validators, FormGroup, FormControl } from '@angular/forms';\r\nimport { PatientService } from '../../../../../../services/api/patient.service';\r\nimport { ValidationConstant } from '../../../../../../services/validation/validation.constant';\r\nimport { CardValidation } from '../../../../../../common/validation/validation';\r\nimport { PatientAccountService } from '../../../../../../services/api/patient-account.service';\r\nimport { Exception } from '../../../../../../common/exceptions/exception';\r\nimport { MessageSetting } from '../../../../../../common/constants/message-setting.constant';\r\nimport { Utilities } from '../../../../../../services/commonservice/utilities';\r\nimport { AchAccountType } from '../../../../../../enum/ach-account-type.enum';\r\nimport { States } from '../../../../../../common/constants/states.constant';\r\nimport { CommonService } from '../../../../../../services/api/common.service';\r\nimport { StorageType } from 'src/app/services/session/storage.enum';\r\nimport { StorageService } from 'src/app/services/session/storage.service';\r\nimport { distinctUntilChanged } from 'rxjs/operators';\r\nimport { Countries } from 'src/app/common/constants/countries.constant';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\n\r\n@Component({\r\n selector: 'app-add-patient-account',\r\n templateUrl: './add-patient-account.component.html',\r\n styleUrls: ['./add-patient-account.component.scss']\r\n})\r\nexport class AddPatientAccountComponent implements OnInit {\r\n // Input parameter passed by parent component (Find Patient Component)\r\n @Input() InputData;\r\n\r\n // Form variables\r\n addPatientAccountForm: any;\r\n addPatientAccountCCForm: any;\r\n addPatientAccountACHForm: any;\r\n addressDetailsForm: any;\r\n addPatientAccountFormErrors: any = {};\r\n addressDetailsFormErrors: any = {};\r\n validator: Validator;\r\n // validationConfig = new ValidationConfig();\r\n\r\n // Success/Error messages\r\n successMessage = '';\r\n errorMessage = '';\r\n showSuccessMessage = false;\r\n showErrorMessage = false;\r\n isLoader_practiceLocationLookup = false;\r\n practiceLocationLookupList: any = [];\r\n // Loaders\r\n isLoader_AddCustAccount = false;\r\n\r\n // Others\r\n accordian = {\r\n accountDetails: true,\r\n addressDetails: false\r\n };\r\n loggedInUserData: any = {};\r\n providerSelected: any;\r\n accountTypeList = Utilities.enumSelector(AchAccountType);\r\n countryList = Countries.countries;\r\n stateList = States.state[AppSetting.defaultCountry];\r\n States = States.state;\r\n @Output() OutputData = new EventEmitter;\r\n @ViewChild('searchInput') searchInput;\r\n config = {\r\n PracticeLocationId: {\r\n required: { name: ValidationConstant.patientAccount.add.practiceLocation.name },\r\n },\r\n CardHolderName: {\r\n required: { name: ValidationConstant.patientAccount.add.cardHolderName.name },\r\n maxlength: {\r\n name: ValidationConstant.patientAccount.add.cardHolderName.name,\r\n max: ValidationConstant.patientAccount.add.cardHolderName.maxLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.patientAccount.add.cardHolderName.name }\r\n },\r\n cardNumber: {\r\n required: { name: ValidationConstant.patientAccount.add.cardNumber.name },\r\n maxlength: {\r\n name: ValidationConstant.patientAccount.add.cardNumber.name,\r\n max: ValidationConstant.patientAccount.add.cardNumber.maxLength.toString()\r\n },\r\n cardNumber: { name: 'Card Number' },\r\n },\r\n CardType: {\r\n required: { name: ValidationConstant.patientAccount.add.cardType.name },\r\n },\r\n cardExpiry: {\r\n required: { name: ValidationConstant.patientAccount.add.cardExpiry.name },\r\n minlength: {\r\n name: ValidationConstant.patientAccount.add.cardExpiry.name,\r\n min: ValidationConstant.patientAccount.add.cardExpiry.minLength.toString()\r\n },\r\n maxlength: {\r\n name: ValidationConstant.patientAccount.add.cardExpiry.name,\r\n max: ValidationConstant.patientAccount.add.cardExpiry.maxLength.toString()\r\n },\r\n expiryDate: { name: 'Expiry Date' },\r\n },\r\n NameOnAccount: {\r\n required: { name: ValidationConstant.patientAccount.add.nameOnAccount.name },\r\n minlength: {\r\n name: ValidationConstant.patientAccount.add.nameOnAccount.name,\r\n min: ValidationConstant.patientAccount.add.nameOnAccount.minLength.toString()\r\n },\r\n maxlength: {\r\n name: ValidationConstant.patientAccount.add.nameOnAccount.name,\r\n max: ValidationConstant.patientAccount.add.nameOnAccount.maxLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.patientAccount.add.nameOnAccount.name },\r\n },\r\n AccountType: {\r\n required: { name: ValidationConstant.patientAccount.add.accountType.name },\r\n },\r\n AccountNo: {\r\n required: { name: ValidationConstant.patientAccount.add.accountNo.name },\r\n minlength: {\r\n name: ValidationConstant.patientAccount.add.accountNo.name,\r\n min: ValidationConstant.patientAccount.add.accountNo.minLength.toString()\r\n },\r\n maxlength: {\r\n name: ValidationConstant.patientAccount.add.accountNo.name,\r\n max: ValidationConstant.patientAccount.add.accountNo.maxLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.patientAccount.add.accountNo.name },\r\n },\r\n routingNumber: {\r\n required: { name: ValidationConstant.patientAccount.add.routingNumber.name },\r\n maxlength: {\r\n name: ValidationConstant.patientAccount.add.routingNumber.name,\r\n max: ValidationConstant.patientAccount.add.routingNumber.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.patientAccount.add.routingNumber.name,\r\n min: ValidationConstant.patientAccount.add.routingNumber.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.patientAccount.add.routingNumber.name }\r\n },\r\n BankName: {\r\n required: { name: ValidationConstant.patientAccount.add.bankName.name },\r\n maxlength: {\r\n name: ValidationConstant.patientAccount.add.bankName.name,\r\n max: ValidationConstant.patientAccount.add.bankName.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.patientAccount.add.bankName.name,\r\n min: ValidationConstant.patientAccount.add.bankName.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.patientAccount.add.bankName.name }\r\n },\r\n AddressLine1: {\r\n required: { name: ValidationConstant.patientAccount.add.addressLine1.name },\r\n maxlength: {\r\n name: ValidationConstant.patientAccount.add.addressLine1.name,\r\n max: ValidationConstant.patientAccount.add.addressLine1.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.patientAccount.add.addressLine1.name,\r\n min: ValidationConstant.patientAccount.add.addressLine1.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.patientAccount.add.addressLine1.name }\r\n },\r\n AddressLine2: {\r\n maxlength: {\r\n name: ValidationConstant.patientAccount.add.addressLine2.name,\r\n max: ValidationConstant.patientAccount.add.addressLine2.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.patientAccount.add.addressLine2.name,\r\n min: ValidationConstant.patientAccount.add.addressLine2.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.patientAccount.add.addressLine2.name }\r\n },\r\n City: {\r\n required: { name: ValidationConstant.patientAccount.add.city.name },\r\n maxlength: {\r\n name: ValidationConstant.patientAccount.add.city.name,\r\n max: ValidationConstant.patientAccount.add.city.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.patientAccount.add.city.name,\r\n min: ValidationConstant.patientAccount.add.city.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.patientAccount.add.city.name }\r\n },\r\n State: {\r\n required: { name: ValidationConstant.patientAccount.add.state.name }\r\n },\r\n Country: {\r\n required: { name: ValidationConstant.patientAccount.add.country.name }\r\n },\r\n PostalCode: {\r\n required: { name: ValidationConstant.patientAccount.add.postalCode.name },\r\n maxlength: {\r\n name: ValidationConstant.patientAccount.add.postalCode.name,\r\n max: ValidationConstant.patientAccount.add.postalCode.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.patientAccount.add.postalCode.name,\r\n min: ValidationConstant.patientAccount.add.postalCode.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.patientAccount.add.postalCode.name }\r\n }\r\n };\r\n\r\n //addressFormHasValidation = false;\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private commonService: CommonService,\r\n private patientService: PatientService,\r\n private patientAccountService: PatientAccountService,\r\n private storageService: StorageService) {\r\n this.validator = new Validator(this.config);\r\n }\r\n\r\n ngOnInit() {\r\n this.loggedInUserData = this.patientService.getLoggedInData();\r\n if (this.loggedInUserData.userType == 0) {\r\n const providerId = JSON.parse(this.storageService.get(StorageType.session, \"providerSelected\")).id\r\n if(providerId){\r\n this.providerSelected = providerId;\r\n }\r\n }\r\n //this.populateCountry();\r\n this.practiceLocationLookup();\r\n this.addPatientAccountForm = this.formBuilder.group({\r\n 'PaymentType': ['cc', [Validators.required]],\r\n });\r\n this.addPatientAccountCCForm = this.formBuilder.group({\r\n 'PracticeLocationId': ['', [Validators.required]],\r\n 'CardHolderName': ['', [Validators.required,\r\n Validators.maxLength(ValidationConstant.patientAccount.add.cardHolderName.maxLength),\r\n Validators.pattern(ValidationConstant.firstNameLastName_regex)]],\r\n 'cardNumber': ['', [Validators.required]],\r\n 'CardType': ['', [Validators.required]],\r\n 'cardExpiry': ['', [Validators.required,\r\n Validators.maxLength(ValidationConstant.patientAccount.add.cardExpiry.maxLength),\r\n Validators.minLength(ValidationConstant.patientAccount.add.cardExpiry.minLength),]]\r\n },\r\n {\r\n validator: [CardValidation.valid_card,\r\n CardValidation.card_Expiry\r\n ]\r\n });\r\n this.addPatientAccountACHForm = this.formBuilder.group({\r\n 'PracticeLocationId': ['', [Validators.required]],\r\n 'NameOnAccount': ['', [Validators.required,\r\n Validators.maxLength(ValidationConstant.patientAccount.add.nameOnAccount.maxLength),\r\n Validators.pattern(ValidationConstant.firstNameLastName_regex)]],\r\n 'AccountType': ['', [Validators.required]],\r\n 'AccountNo': ['', [Validators.required,\r\n Validators.minLength(ValidationConstant.patientAccount.add.accountNo.minLength),\r\n Validators.maxLength(ValidationConstant.patientAccount.add.accountNo.maxLength),\r\n Validators.pattern(ValidationConstant.numbersOnly_regex)]],\r\n 'routingNumber': ['', [Validators.required,\r\n Validators.maxLength(ValidationConstant.patientAccount.add.routingNumber.maxLength),\r\n Validators.minLength(ValidationConstant.patientAccount.add.routingNumber.minLength),\r\n Validators.pattern(ValidationConstant.numbersOnly_regex)]],\r\n 'BankName': ['', [Validators.required,\r\n Validators.maxLength(ValidationConstant.patientAccount.add.bankName.maxLength),\r\n Validators.pattern(ValidationConstant.spaceNotAccepted_regex)]],\r\n });\r\n this.addressDetailsForm = this.formBuilder.group({\r\n 'SameAsPatientAddress': [false, []],\r\n 'AddressLine1': ['', [Validators.required, Validators.maxLength(ValidationConstant.patientAccount.add.addressLine1.maxLength),\r\n Validators.pattern(ValidationConstant.spaceNotAccepted_regex)]],\r\n 'AddressLine2': ['', [Validators.maxLength(ValidationConstant.patientAccount.add.addressLine2.maxLength),\r\n Validators.pattern(ValidationConstant.spaceNotAccepted_regex)]],\r\n 'City': ['', [Validators.required, Validators.maxLength(ValidationConstant.patientAccount.add.city.maxLength),\r\n Validators.pattern(ValidationConstant.charactersOnlyWithSpace_regex)]],\r\n 'State': ['', [Validators.required]],\r\n 'Country': ['', [Validators.required]],\r\n 'PostalCode': ['', [\r\n Validators.required,\r\n Validators.maxLength(ValidationConstant.patientAccount.add.postalCode.maxLength),\r\n Validators.minLength(ValidationConstant.patientAccount.add.postalCode.minLength),\r\n Validators.pattern(ValidationConstant.postalcode_regex)\r\n ]],\r\n });\r\n\r\n this.addPatientAccountCCForm.valueChanges.subscribe(data => this.onValueChanged('cc'));\r\n this.addPatientAccountACHForm.valueChanges.subscribe(data => this.onValueChanged('ach'));\r\n this.addressDetailsForm.valueChanges.subscribe(data => this.onValueChanged('addressDetails'));\r\n\r\n this.addPatientAccountCCForm.get('cardNumber').valueChanges.subscribe(value => {\r\n const cardValue = this.addPatientAccountCCForm.get('cardNumber').value;\r\n if (cardValue != null && cardValue.length >= 14) {\r\n this.addPatientAccountCCForm.controls['CardType'].patchValue(Utilities.getCardType(cardValue));\r\n } else {\r\n this.addPatientAccountCCForm.controls['CardType'].patchValue('');\r\n }\r\n });\r\n\r\n if (this.InputData.isEdit === true) {\r\n\r\n this.getPatientAccountById();\r\n\r\n }\r\n if (this.loggedInUserData.userType == 0) {\r\n\r\n this.patientService.getPatientById(this.loggedInUserData.parentId).subscribe(\r\n response => {\r\n\r\n this.loggedInUserData.contact.address = response['address'];\r\n this.onChangeSameAsPatientAddress(true);\r\n\r\n },\r\n error => {\r\n this.checkException(error);\r\n }\r\n );\r\n } else {\r\n this.onChangeSameAsPatientAddress(true);\r\n }\r\n\r\n }\r\n practiceLocationLookup() {\r\n this.isLoader_practiceLocationLookup = true;\r\n this.patientAccountService.practiceLocationLookup(this.loggedInUserData.userType == 0 && this.providerSelected ? this.providerSelected : null).subscribe(\r\n (response) => {\r\n this.practiceLocationLookupList = response;\r\n this.isLoader_practiceLocationLookup = false;\r\n },\r\n (error) => {\r\n this.isLoader_practiceLocationLookup = false;\r\n this.checkException(error)\r\n }\r\n )\r\n }\r\n // addressFormValueChanged() {\r\n // if (this.addressFormHasValidation === false) {\r\n // this.setValidations();\r\n // } else if (this.addressFormHasValidation === true && this.addressDetailsForm.get('AddressLine1').value === '') {\r\n // this.setValidations();\r\n // } else if (this.addressFormHasValidation === true && this.addressDetailsForm.get('AddressLine2').value === '') {\r\n // this.setValidations();\r\n // } else if (this.addressFormHasValidation === true && this.addressDetailsForm.get('City').value === '') {\r\n // this.setValidations();\r\n // } else if (this.addressFormHasValidation === true && this.addressDetailsForm.get('State').value === '') {\r\n // this.setValidations();\r\n // } else if (this.addressFormHasValidation === true && this.addressDetailsForm.get('Country').value === '') {\r\n // this.setValidations();\r\n // } else if (this.addressFormHasValidation === true && this.addressDetailsForm.get('PostalCode').value === '') {\r\n // this.setValidations();\r\n // }\r\n // }\r\n\r\n // setValidations() {\r\n\r\n // if (this.addressDetailsForm.get('SameAsPatientAddress').value == true) {\r\n // return;\r\n // }\r\n\r\n // if (\r\n // (this.addressDetailsForm.get('AddressLine1').value !== '' &&\r\n // this.addressDetailsForm.get('AddressLine1').value !== null) ||\r\n // (this.addressDetailsForm.get('AddressLine2').value !== '' &&\r\n // this.addressDetailsForm.get('AddressLine2').value !== null) ||\r\n // (this.addressDetailsForm.get('City').value !== '' &&\r\n // this.addressDetailsForm.get('City').value !== null) ||\r\n // (this.addressDetailsForm.get('State').value !== '' &&\r\n // this.addressDetailsForm.get('State').value !== null) ||\r\n // (this.addressDetailsForm.get('Country').value !== '' &&\r\n // this.addressDetailsForm.get('Country').value !== null) ||\r\n // (this.addressDetailsForm.get('PostalCode').value !== '' &&\r\n // this.addressDetailsForm.get('PostalCode').value !== null)\r\n // ) {\r\n // this.addressFormHasValidation = true;\r\n // this.addressDetailsForm.get('AddressLine1').setValidators([Validators.required,\r\n // Validators.maxLength(ValidationConstant.patient.add.addressLine1.maxLength),\r\n // Validators.pattern(ValidationConstant.spaceNotAccepted_regex)]);\r\n\r\n // this.addressDetailsForm.get('AddressLine1').updateValueAndValidity();\r\n\r\n // this.addressDetailsForm.get('State').setValidators([Validators.required]);\r\n // this.addressDetailsForm.get('State').updateValueAndValidity();\r\n\r\n // this.addressDetailsForm.get('City').setValidators([Validators.required,\r\n // Validators.maxLength(ValidationConstant.patient.add.city.maxLength),\r\n // Validators.pattern(ValidationConstant.charactersOnlyWithSpace_regex)]);\r\n\r\n // this.addressDetailsForm.get('City').updateValueAndValidity();\r\n // this.addressDetailsForm.get('Country').setValidators([Validators.required]);\r\n // this.addressDetailsForm.get('Country').updateValueAndValidity();\r\n\r\n // this.addressDetailsForm.get('PostalCode').setValidators([Validators.required,\r\n // Validators.maxLength(ValidationConstant.patient.add.postalCode.maxLength),\r\n // Validators.minLength(ValidationConstant.patient.add.postalCode.minLength),\r\n // Validators.pattern(ValidationConstant.postalcode_regex)]);\r\n\r\n // this.addressDetailsForm.get('PostalCode').updateValueAndValidity();\r\n // } else {\r\n // this.addressFormHasValidation = false;\r\n // this.addressDetailsForm.get('AddressLine1').setValidators([\r\n // Validators.maxLength(ValidationConstant.patient.add.addressLine1.maxLength),\r\n // Validators.pattern(ValidationConstant.spaceNotAccepted_regex)]);\r\n\r\n // this.addressDetailsForm.get('AddressLine1').updateValueAndValidity();\r\n\r\n // this.addressDetailsForm.get('State').setValidators([]);\r\n // this.addressDetailsForm.get('State').updateValueAndValidity();\r\n\r\n // this.addressDetailsForm.get('City').setValidators([\r\n // Validators.maxLength(ValidationConstant.patient.add.city.maxLength),\r\n // Validators.pattern(ValidationConstant.charactersOnlyWithSpace_regex)]);\r\n\r\n // this.addressDetailsForm.get('City').updateValueAndValidity();\r\n // this.addressDetailsForm.get('Country').setValidators([]);\r\n // this.addressDetailsForm.get('Country').updateValueAndValidity();\r\n\r\n // this.addressDetailsForm.get('PostalCode').setValidators([\r\n // Validators.maxLength(ValidationConstant.patient.add.postalCode.maxLength),\r\n // Validators.minLength(ValidationConstant.patient.add.postalCode.minLength),\r\n // Validators.pattern(ValidationConstant.postalcode_regex)]);\r\n\r\n // this.addressDetailsForm.get('PostalCode').updateValueAndValidity();\r\n // }\r\n // }\r\n\r\n\r\n onValueChanged(data?: any) {\r\n if (data === 'cc') {\r\n if (!this.addPatientAccountCCForm) {\r\n return;\r\n }\r\n this.addPatientAccountFormErrors = this.validator.validate(this.addPatientAccountCCForm);\r\n } else {\r\n if (!this.addPatientAccountACHForm) {\r\n return;\r\n }\r\n this.addPatientAccountFormErrors = this.validator.validate(this.addPatientAccountACHForm);\r\n }\r\n if (data === 'addressDetails') {\r\n if (!this.addressDetailsForm) {\r\n return;\r\n }\r\n this.addressDetailsFormErrors = this.validator.validate(this.addressDetailsForm);\r\n }\r\n }\r\n\r\n addPatientAccount() {\r\n if (this.addPatientAccountForm.value.PaymentType === 'cc') {\r\n this.validateAllFormFields(this.addPatientAccountCCForm);\r\n this.addPatientAccountFormErrors = this.validator.validate(this.addPatientAccountCCForm);\r\n if (this.addPatientAccountCCForm.invalid) {\r\n this.accordian.addressDetails = false;\r\n this.accordian.accountDetails = true;\r\n return;\r\n }\r\n } else {\r\n this.validateAllFormFields(this.addPatientAccountACHForm);\r\n this.addPatientAccountFormErrors = this.validator.validate(this.addPatientAccountACHForm);\r\n if (this.addPatientAccountACHForm.invalid) {\r\n this.accordian.addressDetails = false;\r\n this.accordian.accountDetails = true;\r\n return;\r\n }\r\n }\r\n this.validateAllFormFields(this.addressDetailsForm);\r\n this.addressDetailsFormErrors = this.validator.validate(this.addressDetailsForm);\r\n if (this.addressDetailsForm.invalid) {\r\n this.accordian.accountDetails = false;\r\n this.accordian.addressDetails = true;\r\n return;\r\n }\r\n\r\n const reqObj: any = {};\r\n reqObj.address = {\r\n addressLine1: this.addressDetailsForm.value.AddressLine1,\r\n addressLine2: this.addressDetailsForm.value.AddressLine2,\r\n city: this.addressDetailsForm.value.City,\r\n state: this.addressDetailsForm.value.State,\r\n country: this.addressDetailsForm.value.Country,\r\n postalCode: this.addressDetailsForm.value.PostalCode\r\n };\r\n reqObj.samePatientAddress = this.addressDetailsForm.value.SameAsPatientAddress;\r\n if (this.addPatientAccountForm.value.PaymentType === 'cc') {\r\n reqObj.accountHolderName = this.addPatientAccountCCForm.value.CardHolderName;\r\n reqObj.cardNumber = this.addPatientAccountCCForm.value.cardNumber;\r\n reqObj.cardExpiry = this.addPatientAccountCCForm.value.cardExpiry;\r\n reqObj.cardType = this.addPatientAccountCCForm.value.CardType;\r\n reqObj.accountType = 1;\r\n reqObj.isActive = true;\r\n reqObj.practiceLocationId = this.addPatientAccountCCForm.value.PracticeLocationId;\r\n } else {\r\n reqObj.accountHolderName = this.addPatientAccountACHForm.value.NameOnAccount;\r\n reqObj.accountNumber = this.addPatientAccountACHForm.value.AccountNo;\r\n reqObj.bankName = this.addPatientAccountACHForm.value.BankName;\r\n reqObj.isCheckingAccount = (this.addPatientAccountACHForm.value.AccountType === 'Checking') ? true : false;\r\n reqObj.routingNumber = this.addPatientAccountACHForm.value.routingNumber;\r\n reqObj.accountType = 2;\r\n reqObj.isActive = true;\r\n reqObj.practiceLocationId = this.addPatientAccountACHForm.value.PracticeLocationId;\r\n }\r\n this.isLoader_AddCustAccount = true;\r\n this.patientAccountService.addPatientAccount(this.InputData.patientData.id, reqObj).subscribe(\r\n addCustAccResponse => {\r\n this.addPatientAccountCCForm.reset();\r\n this.addPatientAccountACHForm.reset();\r\n this.addressDetailsForm.reset();\r\n this.isLoader_AddCustAccount = false;\r\n this.successMessage = MessageSetting.patientAccount.add;\r\n this.showSuccessMessage = true;\r\n this.showErrorMessage = false;\r\n\r\n addCustAccResponse.firstName = this.InputData.patientData.firstName;\r\n addCustAccResponse.lastName = this.InputData.patientData.lastName;\r\n addCustAccResponse.email = this.InputData.patientData.email;\r\n addCustAccResponse.phone = this.InputData.patientData.phone != undefined ? this.InputData.patientData.phone : this.InputData.patientData.mobile;\r\n this.OutputData.emit({ obj: addCustAccResponse, isEdited: false, email: this.InputData.patientData.email });\r\n },\r\n error => {\r\n this.isLoader_AddCustAccount = false;\r\n this.checkException(error);\r\n }\r\n );\r\n }\r\n\r\n getPatientAccountById() {\r\n this.patientAccountService.getPatientAccountById(this.InputData.patientData.id, this.loggedInUserData['parentId'], this.InputData.custAcc.id).subscribe(\r\n (patientAccountData: any) => {\r\n this.addPatientAccountForm.get('PaymentType').patchValue('cc');\r\n if (patientAccountData.accountType === 2) {\r\n this.addPatientAccountForm.get('PaymentType').patchValue('ach');\r\n }\r\n if (patientAccountData.accountType === 1) {\r\n this.addPatientAccountCCForm.get('PracticeLocationId').patchValue(patientAccountData.practiceLocationId);\r\n this.addPatientAccountCCForm.get('CardHolderName').patchValue(patientAccountData.accountHolderName);\r\n this.addPatientAccountCCForm.get('cardNumber').patchValue('****' + patientAccountData.maskedCardNumber);\r\n this.addPatientAccountCCForm.get('CardType').patchValue(patientAccountData.cardType);\r\n this.addPatientAccountCCForm.get('cardExpiry').patchValue(patientAccountData.cardExpiry);\r\n } else {\r\n this.addPatientAccountACHForm.get('PracticeLocationId').patchValue(patientAccountData.practiceLocationId);\r\n this.addPatientAccountACHForm.get('BankName').patchValue(patientAccountData.bankName);\r\n this.addPatientAccountACHForm.get('NameOnAccount').patchValue(patientAccountData.accountHolderName);\r\n this.addPatientAccountACHForm.get('AccountNo').patchValue('****'+patientAccountData.maskedAccountNo );\r\n this.addPatientAccountACHForm.get('routingNumber').patchValue(patientAccountData.routingNumber);\r\n if (patientAccountData.isCheckingAccount) {\r\n this.addPatientAccountACHForm.get('AccountType').patchValue(AchAccountType.Checking);\r\n } else {\r\n this.addPatientAccountACHForm.get('AccountType').patchValue(AchAccountType.Saving);\r\n }\r\n }\r\n const tempAddressObj = patientAccountData.address;\r\n this.addressDetailsForm.get('AddressLine1').patchValue(tempAddressObj.addressLine1);\r\n this.addressDetailsForm.get('AddressLine2').patchValue(tempAddressObj.addressLine2);\r\n this.addressDetailsForm.get('City').patchValue(tempAddressObj.city);\r\n this.addressDetailsForm.get('Country').patchValue(tempAddressObj.country);\r\n this.stateList = this.States[tempAddressObj.country];\r\n this.addressDetailsForm.get('State').patchValue(tempAddressObj.state);\r\n this.addressDetailsForm.get('PostalCode').patchValue(tempAddressObj.postalCode);\r\n this.addressDetailsForm.get('SameAsPatientAddress').patchValue(patientAccountData.samePatientAddress);\r\n }\r\n );\r\n }\r\n\r\n editPatientAccount() {\r\n /*if (this.addPatientAccountForm.value.PaymentType === 'cc') {\r\n this.validateAllFormFields(this.addPatientAccountCCForm);\r\n this.addPatientAccountFormErrors = this.validator.validate(this.addPatientAccountCCForm);\r\n if (this.addPatientAccountCCForm.invalid) {\r\n this.accordian.addressDetails = false;\r\n this.accordian.accountDetails = true;\r\n return;\r\n }\r\n } else {\r\n this.validateAllFormFields(this.addPatientAccountACHForm);\r\n this.addPatientAccountFormErrors = this.validator.validate(this.addPatientAccountACHForm);\r\n if (this.addPatientAccountACHForm.invalid) {\r\n this.accordian.addressDetails = false;\r\n this.accordian.accountDetails = true;\r\n return;\r\n }\r\n }*/\r\n this.validateAllFormFields(this.addressDetailsForm);\r\n this.addressDetailsFormErrors = this.validator.validate(this.addressDetailsForm);\r\n if (this.addressDetailsForm.invalid) {\r\n this.accordian.accountDetails = false;\r\n this.accordian.addressDetails = true;\r\n return;\r\n }\r\n\r\n const reqObj: any = {};\r\n reqObj.address = {\r\n addressLine1: this.addressDetailsForm.value.AddressLine1,\r\n addressLine2: this.addressDetailsForm.value.AddressLine2,\r\n city: this.addressDetailsForm.value.City,\r\n state: this.addressDetailsForm.value.State,\r\n country: this.addressDetailsForm.value.Country,\r\n postalCode: this.addressDetailsForm.value.PostalCode\r\n };\r\n reqObj.samePatientAddress = this.addressDetailsForm.value.SameAsPatientAddress;\r\n if (this.addPatientAccountForm.value.PaymentType === 'cc') {\r\n reqObj.accountHolderName = this.addPatientAccountCCForm.value.CardHolderName;\r\n reqObj.cardNumber = this.addPatientAccountCCForm.value.cardNumber;\r\n reqObj.cardExpiry = (this.addPatientAccountCCForm.value.cardExpiry).toString();\r\n reqObj.cardType = this.addPatientAccountCCForm.value.CardType;\r\n reqObj.accountType = 1;\r\n reqObj.isActive = true;\r\n reqObj.practiceLocationId = (this.addPatientAccountCCForm.value.PracticeLocationId).toString();\r\n } else {\r\n reqObj.accountHolderName = this.addPatientAccountACHForm.value.NameOnAccount;\r\n reqObj.accountNumber = this.addPatientAccountACHForm.value.AccountNo;\r\n reqObj.bankName = this.addPatientAccountACHForm.value.BankName;\r\n reqObj.isCheckingAccount = (this.addPatientAccountACHForm.value.AccountType === 'Checking') ? true : false;\r\n reqObj.routingNumber = this.addPatientAccountACHForm.value.routingNumber;\r\n reqObj.accountType = 2;\r\n reqObj.isActive = true;\r\n reqObj.practiceLocationId = (this.addPatientAccountACHForm.value.PracticeLocationId).toString();\r\n }\r\n this.isLoader_AddCustAccount = true;\r\n this.patientAccountService.editPatientAccount(reqObj, this.InputData.patientData.id, this.InputData.custAcc.id).subscribe(\r\n addCustAccResponse => {\r\n this.addPatientAccountCCForm.reset();\r\n this.addPatientAccountACHForm.reset();\r\n this.isLoader_AddCustAccount = false;\r\n this.successMessage = MessageSetting.patientAccount.update;\r\n this.showSuccessMessage = true;\r\n this.showErrorMessage = false;\r\n this.OutputData.emit({ obj: addCustAccResponse, isEdited: true });\r\n },\r\n error => {\r\n this.isLoader_AddCustAccount = false;\r\n this.checkException(error);\r\n }\r\n );\r\n }\r\n\r\n onChangeSameAsPatientAddress(event) {\r\n if (event === true) {\r\n let tempAddressObj;\r\n if (this.loggedInUserData.userType == 0) {\r\n tempAddressObj = this.loggedInUserData.contact.address;\r\n } else {\r\n tempAddressObj = this.InputData.patientData.address;\r\n }\r\n\r\n this.addressDetailsForm.get('AddressLine1').patchValue(tempAddressObj.addressLine1);\r\n this.addressDetailsForm.get('AddressLine2').patchValue(tempAddressObj.addressLine2);\r\n this.addressDetailsForm.get('City').patchValue(tempAddressObj.city);\r\n this.addressDetailsForm.get('Country').patchValue(tempAddressObj.country);\r\n this.stateList = this.States[tempAddressObj.country];\r\n this.addressDetailsForm.get('State').patchValue(tempAddressObj.state);\r\n this.addressDetailsForm.get('PostalCode').patchValue(tempAddressObj.postalCode.toString());\r\n //this.addressFormHasValidation = true;\r\n } else {\r\n this.addressDetailsForm.reset();\r\n this.addressDetailsForm.get('Country').patchValue(this.countryList[0].countryId);\r\n this.stateList = this.States[this.countryList[0].countryId];\r\n this.addressDetailsForm.get('SameAsPatientAddress').patchValue(false);\r\n //this.addressFormHasValidation = false;\r\n }\r\n }\r\n\r\n // populateCountry() {\r\n // this.commonService.getCountryList().subscribe(\r\n // response => {\r\n // this.countryList = response;\r\n // this.addressDetailsForm.get('Country').patchValue(this.countryList[0].countryId);\r\n // this.stateList = this.States[this.countryList[0].countryId];\r\n // },\r\n // error => {\r\n // const toastMessage = Exception.exceptionMessage(error);\r\n // }\r\n // );\r\n // }\r\n\r\n populateState(countryId) {\r\n this.stateList = this.States[countryId];\r\n //this.addressFormValueChanged()\r\n }\r\n\r\n validateAllFormFields(formGroup: FormGroup) {\r\n Object.keys(formGroup.controls).forEach(field => {\r\n const control = formGroup.get(field);\r\n if (control instanceof FormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n control.markAsDirty({ onlySelf: true });\r\n } else if (control instanceof FormGroup) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n closeModal() {\r\n this.OutputData.emit({});\r\n }\r\n closeErrorModal() {\r\n this.OutputData.emit({ error: true });\r\n }\r\n\r\n checkException(error) {\r\n if (error.status === 403 && error.error.message !== 'User is not authorized to access this resource') {\r\n this.closeErrorModal();\r\n this.commonService.logOut();\r\n } else {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.errorMessage = toastMessage.join(', ');\r\n this.showSuccessMessage = false;\r\n this.showErrorMessage = true;\r\n }\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
{{'common.processing' | translate}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n

{{successMessage}}

\\r\\n
\\r\\n
\\r\\n \\r\\n

{{errorMessage}}

\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{'recurringPayments.update.accountHeading' | translate}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
  {{custAcc.accountHolderName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n ****{{custAcc.maskedCardNumber}}
\\r\\n Valid through: {{custAcc.cardExpiry| mask:'00/00'}}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
  {{custAcc.accountHolderName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{custAcc.maskedAccountNumber}}
\\r\\n Bank Name: {{custAcc.bankName}}\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n

{{'transaction.add.noRecordsFound' | translate}}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
Loading
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n {{'recurringPayments.update.paymentPlanHeading' | translate}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

\\r\\n
\\r\\n \\r\\n
\\r\\n {{dataForPlanDescription.noOfPayments}}\\r\\n {{dataForPlanDescription.frquency}} payments\\r\\n \\r\\n
of $ {{dataForPlanDescription.installmentAmountToShow.toFixed(2)}} each\\r\\n
\\r\\n

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{'recurringPayments.find.firstTransaction' | translate}}:\\r\\n {{InputData.recurringData.startDate != null ? getFormattedDate(InputData.recurringData.startDate) :\\r\\n '--'}} |\\r\\n\\r\\n \\r\\n {{'recurringPayments.find.paymentsCompleted' | translate}}:\\r\\n {{InputData.recurringData.totalPaymentsMade != null ? InputData.recurringData.totalPaymentsMade :\\r\\n '--'}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{'recurringPayments.find.noOfPayments' | translate}}:\\r\\n {{InputData.recurringData.noOfPayments != null ? InputData.recurringData.noOfPayments : '--'}}\\r\\n \\r\\n |\\r\\n \\r\\n {{'recurringPayments.find.remainingPaymentCount' | translate}}:\\r\\n {{InputData.recurringData.totalPaymentLeft!= null ? InputData.recurringData.totalPaymentLeft :\\r\\n '--'}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n {{'recurringPayments.find.amount' | translate}}:\\r\\n {{InputData.recurringData.amount | CustomFormatCurrency}}|\\r\\n \\r\\n {{'customPlans.find.discount' | translate}}:\\r\\n {{InputData.recurringData.discountAmount | CustomFormatCurrency}}\\r\\n \\r\\n {{'customPlans.find.discount' | translate}}:\\r\\n {{InputData.recurringData.discountRate}}%|\\r\\n {{'recurringPayments.find.taxAmount' | translate}}:\\r\\n {{InputData.recurringData.taxAmount | CustomFormatCurrency}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{'recurringPayments.find.remainingBalance' | translate}}:\\r\\n {{InputData.recurringData.totalDueAmount | CustomFormatCurrency}}|\\r\\n {{'recurringPayments.find.totalAmountPaid' | translate}}:\\r\\n {{InputData.recurringData.totalAmountPaid | CustomFormatCurrency}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{updateRecurringFormErrors.NoOfPayments}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{updateRecurringFormErrors.TransactionEmail}}\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n {{updateRecurringFormErrors.StartDate}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n {{'patientAccount.add.heading' | translate}}\\r\\n {{'patientAccount.edit.heading' | translate}}\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zZWN1cmUvcHJvdmlkZXIvY29tcG9uZW50L3JlY3VycmluZy91cGRhdGUtcmVjdXJyaW5nL3VwZGF0ZS1yZWN1cnJpbmcuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef } from '@angular/core';\r\nimport { Validator } from 'src/app/services/validation/validator';\r\nimport { States } from 'src/app/common/constants/states.constant';\r\nimport { ValidationConstant } from 'src/app/services/validation/validation.constant';\r\nimport { FormBuilder, Validators, FormGroup, FormControl } from '@angular/forms';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\nimport { ToasterService } from 'src/app/services/api/toaster.service';\r\nimport { Exception } from 'src/app/common/exceptions/exception';\r\nimport { MessageSetting } from 'src/app/common/constants/message-setting.constant';\r\nimport {\r\n DatepickerMode, TransitionController, Transition, TransitionDirection,\r\n TemplateModalConfig, ModalTemplate, SuiModalService, SuiLocalizationService\r\n} from 'ng2-semantic-ui';\r\nimport { RecurringPaymentsService } from 'src/app/services/api/recurring-payments.service';\r\nimport { PatientService } from 'src/app/services/api/patient.service';\r\nimport { IContext } from '../../transactions/transaction-management/find-transaction/find-transaction.component';\r\nimport { AddPatientAccountComponent } from '../../patient-Account/add-patient-account/add-patient-account.component';\r\nimport { FrequencyEnum, FrequencyEnumToShow, FrequencyEnumForMonth } from 'src/app/enum/billing-execution.enum';\r\nimport * as moment from 'moment';\r\nimport { DatePipe } from '@angular/common';\r\nimport { StorageService } from 'src/app/services/session/storage.service';\r\n@Component({\r\n selector: 'app-update-recurring',\r\n templateUrl: './update-recurring.component.html',\r\n styleUrls: ['./update-recurring.component.scss']\r\n})\r\nexport class UpdateRecurringComponent implements OnInit {\r\n\r\n // Input parameter passed by parent component (Find Recurring Component)\r\n @Input() InputData;\r\n @Output() OutputData = new EventEmitter;\r\n @ViewChild('modalAddPatientAccount')\r\n public modalAddPatientAccount: ModalTemplate;\r\n @ViewChild('closeAccountModal') closeAccountModal: ElementRef;\r\n @ViewChild(AddPatientAccountComponent) addCustAcc: AddPatientAccountComponent;\r\n // Form variables\r\n updateRecurringForm: any;\r\n frequencyList = this.enumSelector(FrequencyEnum);\r\n frequencyListToShow = this.enumSelector(FrequencyEnumToShow);\r\n frequencyListForMonth = this.enumSelector(FrequencyEnumForMonth);\r\n frequencyParamList = [];\r\n showFrequencyParam: any = {};\r\n dataForPlanDescription: any = {};\r\n updateRecurringFormErrors: any = {};\r\n inputDataForAccountOperation: any = {}; // using to pass operation to new modal\r\n validator: Validator;\r\n noRecordsFound_CustAccList = true;\r\n noRecordsFound_CustCreditAccList = true;\r\n noRecordsFound_CustAchAccList = true;\r\n custAccList = [];\r\n isLoader_WalletPatient = true;\r\n patientData: any;\r\n toastData: any;\r\n // Success/Error messages\r\n successMessage = '';\r\n errorMessage = '';\r\n selectedAccountId;\r\n selectedAccount;\r\n selectedScheduleDate;\r\n showSuccessMessage = false;\r\n showErrorMessage = false;\r\n isUpdateAccount = false;\r\n isUpdateSchedule = false;\r\n // Loaders\r\n isLoader = false;\r\n ifModalOpened = false;\r\n // Other\r\n accordian = {\r\n accountDetails: true,\r\n planDetails: false\r\n };\r\n loggedInUserData: any = {};\r\n recurringList;\r\n dateMode: DatepickerMode = DatepickerMode.Date;\r\n minStartDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n minEndDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n maxStartDate = new Date(new Date().setHours(0, 0, 0, 0));\r\n inputValidation = ValidationConstant; // used to apply maxlength on html\r\n\r\n config = {\r\n 'Frequency': {\r\n required: { name: ValidationConstant.recurring.add.recurringPayment.frequency.name }\r\n },\r\n 'FrequencyParam': {\r\n required: { name: ValidationConstant.recurring.add.recurringPayment.frequencyParam.name }\r\n },\r\n 'StartDate': {\r\n required: { name: ValidationConstant.recurring.add.recurringPayment.startDate.name }\r\n },\r\n 'NoOfPayments': {\r\n required: { name: ValidationConstant.recurring.add.recurringPayment.noOfPayments.name },\r\n pattern: { name: ValidationConstant.recurring.add.recurringPayment.noOfPayments.name },\r\n numberLimitPattern: { name: ValidationConstant.recurring.add.recurringPayment.noOfPayments.name }\r\n },\r\n 'TransactionEmail': {\r\n required: { name: ValidationConstant.recurring.add.findPatient.email.name },\r\n pattern: { name: ValidationConstant.recurring.add.findPatient.email.name },\r\n maxlength: {\r\n name: ValidationConstant.recurring.add.findPatient.email.name,\r\n max: ValidationConstant.recurring.add.findPatient.email.maxLength.toString()\r\n }\r\n }\r\n };\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private commonService: CommonService,\r\n private recurringService: RecurringPaymentsService,\r\n private patientService: PatientService,\r\n private modalService: SuiModalService,\r\n private localizationService: SuiLocalizationService,\r\n private datePipe: DatePipe) {\r\n this.validator = new Validator(this.config);\r\n localizationService.patch(\"en-GB\", {\r\n datepicker: {\r\n formats: {\r\n date: 'MM/DD/YYYY', // etc.\r\n },\r\n }\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.maxStartDate.setDate(this.minStartDate.getDate() + 30);\r\n this.minStartDate.setDate(this.minStartDate.getDate() + 1);\r\n\r\n this.updateRecurringForm = this.formBuilder.group({\r\n 'Frequency': ['3', [Validators.required]],\r\n 'NoOfPayments': ['', [Validators.required, Validators.pattern(ValidationConstant.numberOfPayments_regexForInstallmentNew)]],\r\n // 'FrequencyParam': ['', []],\r\n 'StartDate': [null, [Validators.required]],\r\n 'TransactionEmail': ['', [Validators.pattern(ValidationConstant.email_regex)]],\r\n });\r\n this.dataForPlanDescription.frequency = this.InputData.recurringData.frequency;\r\n this.dataForPlanDescription.totalAmountForInstallments = this.InputData.recurringData.totalDueAmount;\r\n this.dataForPlanDescription.noOfPayments = this.InputData.recurringData.noOfPayments;\r\n this.dataForPlanDescription.installmentAmountToShow = this.InputData.recurringData.paymentAmount;\r\n\r\n this.updateRecurringForm.controls.Frequency.patchValue(FrequencyEnum[this.InputData.recurringData.frequency]);\r\n this.updateRecurringForm.controls.NoOfPayments.patchValue(this.InputData.recurringData.noOfPayments);\r\n\r\n\r\n if (this.InputData.recurringData.firstTransactionDate < moment().toISOString()) {\r\n const db = new Date(this.datePipe.transform(this.InputData.recurringData.nextTransactionDate.substring(0, 10)));\r\n this.selectedScheduleDate = this.formatRequestDate(db);\r\n } else {\r\n const db = new Date(this.datePipe.transform(this.InputData.recurringData.firstTransactionDate.substring(0, 10)));\r\n this.selectedScheduleDate = this.formatRequestDate(db);\r\n }\r\n\r\n this.updateRecurringForm.controls.TransactionEmail.patchValue(this.InputData.recurringData.email);\r\n this.updateRecurringForm.valueChanges.subscribe(data =>\r\n\r\n this.onValueChanged(data)\r\n );\r\n this.updateRecurringForm.get('NoOfPayments').valueChanges.subscribe(value => {\r\n this.addAllAmounts();\r\n });\r\n\r\n this.updateRecurringForm.get('Frequency').valueChanges.subscribe(value => {\r\n this.checkFrequencyParam(value);\r\n });\r\n this.updateRecurringForm.get('StartDate').valueChanges.subscribe(value => {\r\n\r\n let startDate = this.formatRequestDate(value);\r\n\r\n this.changeSchedule(startDate);\r\n });\r\n this.loggedInUserData = this.commonService.getLoggedInData();\r\n //this.getRecurringById(this.loggedInUserData.parentId); // to get parent Recurring Name/Id\r\n\r\n this.getPatientAccountList(this.InputData.recurringData.patientId, this.InputData.recurringData.paymentAccountId);\r\n\r\n\r\n }\r\n public transitionController = new TransitionController();\r\n public animate(transitionName: string = 'vertical flip') {\r\n this.transitionController.animate(\r\n new Transition(transitionName, 200, TransitionDirection.In, () => console.log('Completed transition.')));\r\n }\r\n\r\n onValueChanged(data?: any) {\r\n if (!this.updateRecurringForm) {\r\n return;\r\n }\r\n this.updateRecurringFormErrors = this.validator.validate(this.updateRecurringForm);\r\n }\r\n\r\n addAllAmounts() {\r\n setTimeout(() => {\r\n if (this.updateRecurringForm.get('NoOfPayments').value !== '' && this.updateRecurringForm.get('NoOfPayments').value !== 0 && this.updateRecurringForm.get('NoOfPayments').value !== null) {\r\n this.dataForPlanDescription.installmentAmountToShow = (Math.round((this.InputData.totalDueAmount / this.updateRecurringForm.get('NoOfPayments').value) * 100) / 100)\r\n this.dataForPlanDescription.totalAmountForInstallments = this.InputData.totalDueAmount;\r\n }\r\n // }\r\n }, 10);\r\n }\r\n\r\n getPatientAccountList(patientId, cusAccId) {\r\n this.isLoader_WalletPatient = true;\r\n this.custAccList = [];\r\n this.patientService.getPatientById(patientId).subscribe(\r\n (response1: any) => {\r\n this.patientData = response1;\r\n this.patientService.fetchPatientAccount(patientId).subscribe(\r\n (response: any) => {\r\n this.noRecordsFound_CustAccList = false;\r\n\r\n if (response.hasOwnProperty('data') && response['data'].length === 0) {\r\n this.noRecordsFound_CustAccList = true;\r\n this.noRecordsFound_CustCreditAccList = true;\r\n this.noRecordsFound_CustAchAccList = true;\r\n } else {\r\n if (response) {\r\n\r\n this.noRecordsFound_CustCreditAccList = false;\r\n\r\n let cardList = [];\r\n const cardResponse = response.data;\r\n cardResponse.forEach(element => {\r\n if (element.accountType == '1') {\r\n element.maskedCardNumber = '****' + element.maskedCardNumber;\r\n }\r\n\r\n if (element.accountType == '2') {\r\n element.maskedAccountNo = '****'+element.maskedAccountNo ;\r\n }\r\n\r\n });\r\n\r\n let cards: any;\r\n cards = cardResponse.filter(\r\n (item) => Boolean(JSON.parse(item.isActive)) === true);\r\n\r\n\r\n cardList = [\r\n ...cards\r\n ];\r\n\r\n this.custAccList = cardList;\r\n\r\n if (this.custAccList.length === 0) {\r\n this.noRecordsFound_CustAccList = true;\r\n this.noRecordsFound_CustCreditAccList = true;\r\n this.noRecordsFound_CustAchAccList = true;\r\n } else {\r\n this.changeAccount(cusAccId);\r\n }\r\n } else {\r\n this.noRecordsFound_CustAccList = true;\r\n this.noRecordsFound_CustCreditAccList = true;\r\n this.noRecordsFound_CustAchAccList = true;\r\n }\r\n }\r\n this.isLoader_WalletPatient = false;\r\n //patient.showDetails = true;\r\n this.animate();\r\n },\r\n error => {\r\n this.isLoader_WalletPatient = false;\r\n this.checkException(error);\r\n });\r\n }, error => {\r\n this.isLoader_WalletPatient = false;\r\n this.checkException(error);\r\n });\r\n }\r\n closeModal() {\r\n this.OutputData.emit({});\r\n }\r\n closeErrorModal() {\r\n this.OutputData.emit({ error: true });\r\n }\r\n\r\n onUpdateRecurringAccountClick() {\r\n //this.updateRecurring();\r\n this.InputData.isUpdateRecurringClicked = true;\r\n }\r\n onUdateRecurringScheduleClick() {\r\n //this.editRecurring();\r\n }\r\n\r\n validateAllFormFields(formGroup: FormGroup) {\r\n Object.keys(formGroup.controls).forEach(field => {\r\n const control = formGroup.get(field);\r\n if (control instanceof FormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n control.markAsDirty({ onlySelf: true });\r\n } else if (control instanceof FormGroup) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n changeAccount(custAccId) {\r\n\r\n this.deselectOtherAccount(custAccId);\r\n this.selectedAccountId = custAccId;\r\n this.selectedAccount = this.custAccList.find(x => x.id === custAccId);\r\n if (custAccId == this.InputData.recurringData.paymentAccountId) {\r\n this.isUpdateAccount = false;\r\n } else {\r\n this.isUpdateAccount = true;\r\n }\r\n }\r\n changeSchedule(scheduleDate) {\r\n\r\n if (scheduleDate.substring(0, 10) == this.selectedScheduleDate.substring(0, 10)) {\r\n this.isUpdateSchedule = false;\r\n } else {\r\n this.isUpdateSchedule = true;\r\n }\r\n }\r\n deselectOtherAccount(custAccId) {\r\n this.custAccList.forEach(element => {\r\n if (element.id == this.selectedAccountId) {\r\n //do nothing\r\n }\r\n if (element.id == custAccId) {\r\n element.isSelectedAccount = true;\r\n } else {\r\n element.isSelectedAccount = false;\r\n }\r\n });\r\n }\r\n\r\n openAddAccount() {\r\n this.inputDataForAccountOperation.isEdit = false;\r\n this.inputDataForAccountOperation.patientData = this.patientData;\r\n if (this.closeAccountModal !== undefined) {\r\n this.closeAccountModal.nativeElement.click(); // close existing modal before opening new one\r\n }\r\n this.openAddPatientAccountModal();\r\n }\r\n\r\n // Add Patient Payment Account Modal\r\n public openAddPatientAccountModal(dynamicContent: string = 'Example') {\r\n if (this.ifModalOpened) { // To avoid opening of multiple modal\r\n return;\r\n }\r\n this.ifModalOpened = true;\r\n const config = new TemplateModalConfig(this.modalAddPatientAccount);\r\n config.closeResult = 'closed!';\r\n config.context = { data: dynamicContent };\r\n config.size = 'tiny';\r\n config.isClosable = false;\r\n this.modalService\r\n .open(config)\r\n .onApprove(result => {\r\n this.ngOnInit();\r\n const scroll = document.querySelector('#initialLoad');\r\n setTimeout(() => {\r\n scroll.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' });\r\n }, 400);\r\n /* approve callback */\r\n })\r\n .onDeny(result => {\r\n this.ifModalOpened = false;\r\n this.inputDataForAccountOperation = {};\r\n const scroll = document.querySelector('#initialLoad');\r\n setTimeout(() => {\r\n scroll.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' });\r\n }, 400);\r\n });\r\n }\r\n\r\n outputDataFromAccount(OutputData) {\r\n if (OutputData.error) {\r\n this.closeAccountModal.nativeElement.click();\r\n } else {\r\n this.closeAccountModal.nativeElement.click();\r\n if (OutputData.obj.id != undefined) {\r\n\r\n this.getPatientAccountList(this.InputData.recurringData.patientId, OutputData.obj.id);\r\n this.showSuccessMessage = true;\r\n this.showErrorMessage = false;\r\n this.successMessage = MessageSetting.recurring.accountAdded;\r\n\r\n }\r\n }\r\n }\r\n onAddPatientAccountClick() {\r\n this.addCustAcc.addPatientAccount();\r\n }\r\n\r\n onUpdateClick() {\r\n if (this.isUpdateAccount == true && this.isUpdateSchedule == true) {\r\n this.updateBoth();\r\n } else if (this.isUpdateAccount == true && this.isUpdateSchedule == false) {\r\n this.updatePaymentPlanAccount();\r\n } else if (this.isUpdateAccount == false && this.isUpdateSchedule == true) {\r\n this.updatePaymentPlanDate();\r\n }\r\n }\r\n updateBoth() {\r\n this.isLoader = true;\r\n let startDate = this.formatRequestDate(this.updateRecurringForm.controls.StartDate.value);\r\n\r\n const reqObj = {\r\n \"paymentAccountId\": this.selectedAccountId,\r\n \"accountType\": this.selectedAccount.accountType,\r\n \"sendReceiptTo\": this.updateRecurringForm.value.TransactionEmail,\r\n \"firstTransactionDate\": startDate,\r\n \"recurringId\": this.InputData.recurringData.id\r\n }\r\n\r\n this.showSuccessMessage = this.showErrorMessage = false;\r\n this.recurringService.updateRecurringPayment(reqObj).subscribe(\r\n (response: any) => {\r\n this.successMessage = MessageSetting.recurring.planUpdated;\r\n this.isLoader = false;\r\n this.showSuccessMessage = true;\r\n this.showErrorMessage = false;\r\n this.OutputData.emit({ isUpdated: true });\r\n },\r\n error => {\r\n this.isLoader = false;\r\n this.checkException(error);\r\n });\r\n }\r\n updatePaymentPlanAccount() {\r\n this.isLoader = true;\r\n\r\n if (this.isUpdateAccount) {\r\n const reqObj = {\r\n \"paymentAccountId\": this.selectedAccountId,\r\n \"accountType\": this.selectedAccount.accountType\r\n }\r\n this.showSuccessMessage = this.showErrorMessage = false;\r\n this.recurringService.updateAccount(this.InputData.recurringData.id, reqObj).subscribe(\r\n (response: any) => {\r\n this.successMessage = MessageSetting.recurring.accountUpdated;\r\n //this.updateRecurringForm.reset();\r\n this.isLoader = false;\r\n this.showSuccessMessage = true;\r\n this.showErrorMessage = false;\r\n //response.isUpdated=true;\r\n\r\n this.OutputData.emit({ isUpdated: true });\r\n },\r\n error => {\r\n this.isLoader = false;\r\n this.checkException(error);\r\n });\r\n }\r\n }\r\n updatePaymentPlanDate() {\r\n this.isLoader = true;\r\n\r\n if (this.isUpdateSchedule) {\r\n let startDate = this.formatRequestDate(this.updateRecurringForm.controls.StartDate.value);\r\n\r\n const reqObj = {\r\n // \"accountType\": this.selectedAccount.accountType,\r\n \"sendReceiptTo\": this.updateRecurringForm.value.TransactionEmail,\r\n \"firstTransactionDate\": startDate,\r\n \"recurringId\": this.InputData.recurringData.id\r\n }\r\n this.showSuccessMessage = this.showErrorMessage = false;\r\n this.recurringService.updateRecurringPayment(reqObj).subscribe(\r\n (response: any) => {\r\n this.successMessage = MessageSetting.recurring.planUpdated;\r\n\r\n this.isLoader = false;\r\n this.showSuccessMessage = true;\r\n this.showErrorMessage = false;\r\n\r\n this.OutputData.emit({ isUpdated: true });\r\n },\r\n error => {\r\n this.isLoader = false;\r\n this.checkException(error);\r\n });\r\n }\r\n }\r\n\r\n // to calculate frequency param\r\n checkFrequencyParam(value) {\r\n if (value != null) {\r\n this.dataForPlanDescription.frquency = this.frequencyList[value].title;\r\n //this.dataForPlanDescription.frequencyToShow = this.frequencyListToShow[value].title;\r\n }\r\n // if (value != null) {\r\n // this.dataForPlanDescription.frequency = this.frequencyList[value].title;\r\n // this.dataForPlanDescription.frequencyToShow = this.frequencyListToShow[value].title;\r\n // }\r\n // if (value != null && value !== ''\r\n // && (this.frequencyList[value].title === 'Weekly' || this.frequencyList[value].title === 'BiWeekly')) {\r\n // this.frequencyParamList = this.enumSelector(FrequencyParamEnum);\r\n // this.showFrequencyParam = { status: true, value: \"dayOfWeek\" };\r\n // this.updateRecurringForm.get('FrequencyParam').patchValue(this.frequencyParamList[0].value);\r\n // } else if (value != null && value !== '' && (this.frequencyList[value].title === 'Monthly')) {\r\n // this.frequencyParamList = [];\r\n // for (let i = 1; i <= 29; i++) {\r\n // this.frequencyParamList.push({ value: i.toString(), title: this.frequencyListForMonth[i - 1].title });\r\n // }\r\n // this.frequencyParamList.push({ value: 'Last', title: 'End of the Month' });\r\n // this.showFrequencyParam = { status: true, value: \"dayOfMonth\" };\r\n // this.updateRecurringForm.get('FrequencyParam').patchValue(this.frequencyParamList[0].value);\r\n // } else {\r\n // this.showFrequencyParam = { status: false, value: '' };\r\n // this.updateRecurringForm.get('FrequencyParam').patchValue(null);\r\n // }\r\n }\r\n enumSelector(definition) {\r\n\r\n return Object.keys(definition)\r\n .map(key => ({ value: definition[key], title: key }));\r\n }\r\n // returns only date\r\n getFormattedDate(date) {\r\n if (date) {\r\n const localDate = moment.utc(date).local();\r\n const d = this.commonService.getFormattedDate(localDate['_d']);\r\n return d;\r\n }\r\n }\r\n formatRequestDate(value) {\r\n if (value !== undefined && value !== null\r\n && value !== '') {\r\n return moment(value).add(moment().hour(), 'hour').add(moment().minutes(), 'minute').add(moment().seconds(), 'second').toISOString();\r\n } else {\r\n return null;\r\n }\r\n }\r\n checkException(error) {\r\n if (error.status === 403 && error.error.message !== 'User is not authorized to access this resource') {\r\n this.closeErrorModal();\r\n this.commonService.logOut();\r\n } else {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.errorMessage = toastMessage.join(', ');\r\n this.showSuccessMessage = false;\r\n this.showErrorMessage = true;\r\n }\r\n }\r\n}\r\n","module.exports = \"\\r\\n
\\r\\n \\r\\n \\r\\n

{{successMessage}}

\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n

{{errorMessage}}

\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
Loading
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n

Transaction Scheduled

\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Status
\\r\\n {{planReceipt.statusMessage}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Transaction Scheduled On:
\\r\\n {{getFormattedDateToDisplay(planReceipt.firstTransactionDate)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Name on Card
\\r\\n {{planReceipt.tenderInfo.accountHolderName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Card Details
\\r\\n {{planReceipt.tenderInfo.maskedCardNumber}} ({{planReceipt.tenderInfo.cardType}})\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Amount\\r\\n {{planReceipt.amount| CustomFormatCurrency}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Discount\\r\\n - {{planReceipt.discountAmount| CustomFormatCurrency}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Tax\\r\\n + {{planReceipt.taxAmount| CustomFormatCurrency}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Total\\r\\n {{planReceipt.totalAmount| CustomFormatCurrency}}\\r\\n
\\r\\n
\\r\\n
\\r\\n Memo
\\r\\n {{planReceipt.remarks}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n

Transaction {{transactionReceipt.transactionStatus}}

\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{sendReceiptToAlternateEmailsFormErrors.TransactionEmail}}\\r\\n
\\r\\n \\r\\n
\\r\\n {{successMessage_SendReceiptToAlternateEmails}}
\\r\\n
\\r\\n {{errorMessage_SendReceiptToAlternateEmails}}
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{InputData.fullName}}

\\r\\n
\\r\\n
\\r\\n {{InputData.fullAddress}}\\r\\n
\\r\\n
\\r\\n \\r\\n {{InputData.email}} |\\r\\n {{InputData.phone}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
Payment Type
\\r\\n {{transactionReceipt.operationType}} - {{transactionReceipt.tenderInfo.channelTypeName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Account Number
\\r\\n {{ transactionReceipt.tenderInfo.maskAccount | psstring }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Account Name
\\r\\n {{transactionReceipt.tenderInfo.nameOnCheckOrCard==null?'NA':transactionReceipt.tenderInfo.nameOnCheckOrCard}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Bank Name
\\r\\n {{transactionReceipt.tenderInfo.bankName==null?'NA':transactionReceipt.tenderInfo.bankName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Check Details
\\r\\n Check Number: {{transactionReceipt.tenderInfo.checkNumber}}
\\r\\n \\r\\n Account Number: {{transactionReceipt.tenderInfo.accountNumber}}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Account Name
\\r\\n {{transactionReceipt.fullName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Name of Institution
\\r\\n {{(transactionReceipt.tenderInfo.bankName !== null && transactionReceipt.tenderInfo.bankName !==\\r\\n \\\"\\\")?transactionReceipt.tenderInfo.bankName: '--'}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Card Number
\\r\\n {{transactionReceipt.tenderInfo.maskCardNumber}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Account Name
\\r\\n {{transactionReceipt.tenderInfo.nameOnCheckOrCard==null?'NA':transactionReceipt.tenderInfo.nameOnCheckOrCard}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Card Type
\\r\\n {{transactionReceipt.tenderInfo.cardType==null?'NA':transactionReceipt.tenderInfo.cardType}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Reference No
\\r\\n {{transactionReceipt.invoiceNumber}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Patient Name
\\r\\n {{InputData.patientDetails.patientName}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Email
\\r\\n {{InputData.patientDetails.email}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Phone
\\r\\n {{InputData.patientDetails.phone}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{'invoice.find.productName' |\\r\\n translate}}{{'invoice.find.unitRate' |\\r\\n translate}}{{'invoice.find.quantity' |\\r\\n translate}}{{'invoice.find.discount' |\\r\\n translate}}{{'invoice.find.taxPercent' |\\r\\n translate}}{{'invoice.find.amount' |\\r\\n translate}}
\\r\\n

{{product.name}}

\\r\\n
{{product.unitPrice | CustomFormatCurrency}}{{product.quantity}}{{product.discount | CustomFormatCurrency}}{{product.calculatedDiscountAmount |\\r\\n CustomFormatCurrency}}\\r\\n {{product.taxPercent | CustomFormatPercentage}}{{product.calculatedTotalPrice | CustomFormatCurrency}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Provider ID
\\r\\n {{transactionReceipt.providerId}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Transaction Date
\\r\\n {{getFormattedDate(transactionReceipt.transactionDate)}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Amount\\r\\n {{invoiceData.subTotalAmount | CustomFormatCurrency}}\\r\\n {{transactionReceipt.tenderInfo.amount |\\r\\n CustomFormatCurrency}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Discount\\r\\n {{invoiceData.totalDiscountAmount |\\r\\n CustomFormatCurrency}}\\r\\n {{transactionReceipt.discountAmount |\\r\\n CustomFormatCurrency}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Tax\\r\\n {{invoiceData.totalTaxAmount | CustomFormatCurrency}}\\r\\n {{transactionReceipt.tenderInfo.taxAmount |\\r\\n CustomFormatCurrency}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n Total\\r\\n $ {{transactionReceipt.tenderInfo.totalAmount.toFixed(2)}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Memo
\\r\\n {{transactionReceipt.remarks}}\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n
\\r\\n

Transaction {{transactionReceipt.transactionStatus}}

\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Status
\\r\\n {{transactionReceipt.transactionStatus}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Time
\\r\\n {{transactionReceipt.transactionDate}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Declined By
\\r\\n Processor\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Transaction Id
\\r\\n {{transactionReceipt.id}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Failure Code
\\r\\n {{transactionDetails.reasonCode==null ? '' : transactionReceipt.reasonCode}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Failure Reason
\\r\\n {{transactionDetails.reasonStatus==null ? '' : transactionReceipt.reasonStatus}}\\r\\n
\\r\\n {{(transactionReceipt.additionResultData !== null)? transactionReceipt.additionResultData: ''}}\\r\\n
\\r\\n {{(transactionReceipt.additionResultData2 !== null)? transactionReceipt.additionResultData2: ''}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n **Maximum amount allowed to refund : {{transactionDetails.tenderInfo.totalAmount}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n Partial Refund\\r\\n \\r\\n
\\r\\n
\\r\\n Full Refund\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{formErrors.Amount}}\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{formErrors.Description}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{formErrors.Amount}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{formErrors.DiscountAmount}}\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{formErrors.TaxAmount}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
{{transactionDetails.fullName != '' ? transactionDetails.fullName : ''}} $\\r\\n {{transactionDetails.tenderInfo.captureAmount.toFixed(2)}}\\r\\n
\\r\\n
\\r\\n {{transactionDetails.transactionStatus}}
\\r\\n
\\r\\n {{transactionDetails.transactionStatus}}
\\r\\n
\\r\\n {{transactionDetails.transactionStatus}}
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n Date/Time: {{getFormattedDate(transactionDetails.transactionDate)}} |\\r\\n {{transactionDetails.tenderInfo.cardType}} : {{transactionDetails.tenderInfo.maskCardNumber}}\\r\\n |\\r\\n Type: {{transactionDetails.operationType}}|\\r\\n Name on card: {{transactionDetails.tenderInfo.nameOnCheckOrCard}}\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
{{transaction.patientName}} $ {{transaction.captureAmount.toFixed(2)}}\\r\\n
\\r\\n
\\r\\n {{transaction.transactionStatus}}
\\r\\n
\\r\\n {{transaction.transactionStatus}}
\\r\\n
\\r\\n {{transaction.transactionStatus}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n Txn Date Time: {{getFormattedDate(transaction.transactionDate)}}|\\r\\n {{transaction.cardType}}: {{transaction.cardNumber}}\\r\\n |\\r\\n Type: {{transaction.operationType}}|\\r\\n Name on card: {{transaction.nameOnCheckOrCard}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n

{{ noResultsMessage }}

\\r\\n
\\r\\n
\\r\\n \\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zZWN1cmUvcHJvdmlkZXIvY29tcG9uZW50L3RyYW5zYWN0aW9ucy90cmFuc2FjdGlvbi1tYW5hZ2VtZW50L3RyYW5zYWN0aW9uLW9wZXJhdGlvbnMvdHJhbnNhY3Rpb24tb3BlcmF0aW9ucy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit, Input, EventEmitter, Output, ViewChild } from '@angular/core';\r\nimport { TransactionService } from '../../../../../../../services/api/transaction.service';\r\nimport { StorageType } from '../../../../../../../services/session/storage.enum';\r\nimport { StorageService } from '../../../../../../../services/session/storage.service';\r\nimport { TransactionOperationMapEnum } from '../../../../../../../enum/transaction-operation-map.enum';\r\nimport { TransactionOperationEnum } from '../../../../../../../enum/transaction-operation.enum';\r\nimport { TransactionStatusMapEnum } from '../../../../../../../enum/transaction-status-map.enum';\r\nimport { TransactionStatusEnum } from '../../../../../../../enum/transaction-status.enum';\r\nimport * as moment from 'moment';\r\nimport { CommonService } from '../../../../../../../services/api/common.service';\r\nimport { Exception } from '../../../../../../../common/exceptions/exception';\r\nimport { ToasterService } from '../../../../../../../services/api/toaster.service';\r\nimport { FormGroup, FormControl, FormBuilder, Validators } from '../../../../../../../../../node_modules/@angular/forms';\r\nimport { ValidationConstant } from '../../../../../../../services/validation/validation.constant';\r\nimport { CardValidation } from '../../../../../../../common/validation/validation';\r\nimport { Validator } from '../../../../../../../common/validation/validator';\r\nimport { MessageSetting } from '../../../../../../../common/constants/message-setting.constant';\r\nimport { ChannelTypeEnum } from '../../../../../../../enum/channeltypes.enum';\r\nimport { ValidationConfig } from '../../virtual-terminal/validation-config';\r\nimport { TransactionOriginEnum } from '../../../../../../../enum/transaction-origin.enum';\r\nimport { PatientService } from 'src/app/services/api/patient.service';\r\nimport { PatientAccountService } from 'src/app/services/api/patient-account.service';\r\nimport { Countries } from 'src/app/common/constants/countries.constant';\r\nimport { DownloadReceiptComponent } from '../../../download/download-receipt/download-receipt.component';\r\nimport { InvoiceService } from 'src/app/services/api/invoice.service';\r\n\r\n@Component({\r\n selector: 'app-transaction-operations',\r\n templateUrl: './transaction-operations.component.html',\r\n styleUrls: ['./transaction-operations.component.scss']\r\n})\r\nexport class TransactionOperationsComponent implements OnInit {\r\n // Input parameter passed by parent component (Find TXN Component)\r\n @Input() InputData;\r\n // Output parameter/object passing to parent component (Find Transaction Component)\r\n @Output() OutputData = new EventEmitter;\r\n\r\n // Form\r\n transactionOperationsForm: any;\r\n\r\n addPatientForm: any;\r\n addPatientFormErrors: any = {};\r\n addPatientAccountCCForm: any;\r\n addPatientAccountCCFormErrors: any = {};\r\n addPatientAccountACHForm: any;\r\n addPatientAccountACHFormErrors: any = {};\r\n\r\n validator: Validator;\r\n formErrors: any = {};\r\n validationConfig = new ValidationConfig();\r\n\r\n // Loaders\r\n isLoader_Receipt: any;\r\n isLoader_SaveThisPatientForFutureUse = false;\r\n isLoader_ProcessTransaction = false;\r\n isLoaderTransDetails = false;\r\n // Success/Error messages\r\n successMessage = '';\r\n errorMessage = '';\r\n showSuccessMessage = false;\r\n showErrorMessage = false;\r\n\r\n // Other\r\n processorConfig: any = {}; // required for transaction receipt\r\n transactionDetails: any = {};\r\n transactionReceipt: any = {};\r\n planReceipt: any = {};\r\n newlyAddedPatientData: any = {};\r\n newlyAddedPatientAccountData: any = {};\r\n loggedInUserData;\r\n providerSelected;\r\n toastData: any;\r\n displayView = false;\r\n countryList = Countries.countries;\r\n trailTransactionList: any = {};\r\n noResultsMessage;\r\n sendReceiptToAlternateEmailsVisibility = false;\r\n savePatientVisibility = false;\r\n sendReceiptToAlternateEmailsForm: any;\r\n sendReceiptToAlternateEmailsFormErrors: any = {};\r\n isLoader_SendReceiptToAlternateEmails = false;\r\n showSuccessMessage_SendReceiptToAlternateEmails = false;\r\n showErrorMessage_SendReceiptToAlternateEmails = false;\r\n errorMessage_SendReceiptToAlternateEmails = '';\r\n successMessage_SendReceiptToAlternateEmails = '';\r\n\r\n inputDataForDownload: any = {};\r\n invoiceData: any = {};\r\n\r\n @ViewChild(DownloadReceiptComponent) downloadReceipt: DownloadReceiptComponent;\r\n\r\n constructor(private transactionService: TransactionService,\r\n private storageService: StorageService,\r\n private commonService: CommonService,\r\n private toasterService: ToasterService,\r\n private formBuilder: FormBuilder,\r\n private patientService: PatientService,\r\n private patientAccountService: PatientAccountService,\r\n private invoiceService: InvoiceService\r\n ) {\r\n this.validator = new Validator(this.validationConfig.Config);\r\n }\r\n\r\n ngOnInit() {\r\n this.loggedInUserData = this.commonService.getLoggedInData();\r\n //this.getProcessorConfig();\r\n this.sendReceiptToAlternateEmailsForm = this.formBuilder.group({\r\n 'TransactionEmail': ['', [Validators.required,\r\n Validators.pattern(ValidationConstant.email_regex)]]\r\n });\r\n this.addPatientForm = this.formBuilder.group({\r\n 'FirstName': ['', [Validators.required,\r\n Validators.maxLength(ValidationConstant.patient.add.firstName.maxLength),\r\n Validators.pattern(ValidationConstant.firstNameLastName_regex)]],\r\n 'LastName': ['', [Validators.required,\r\n Validators.maxLength(ValidationConstant.patient.add.lastName.maxLength),\r\n Validators.pattern(ValidationConstant.firstNameLastName_regex)]]\r\n });\r\n\r\n this.addPatientAccountCCForm = this.formBuilder.group({\r\n 'cardNumber': ['', [Validators.required]]\r\n },\r\n {\r\n validator: [CardValidation.valid_card]\r\n });\r\n\r\n this.transactionOperationsForm = this.formBuilder.group({\r\n 'RefundType': ['partial', [Validators.required]],\r\n 'Amount': ['', [Validators.pattern(ValidationConstant.amount_regex)]],\r\n 'Description': ['', [\r\n Validators.required,\r\n Validators.minLength(ValidationConstant.transaction.operation.description.minLength),\r\n Validators.maxLength(ValidationConstant.transaction.operation.description.maxLength),\r\n Validators.pattern(ValidationConstant.alphanumericWithSpace_regex)]],\r\n 'ConvenienceAmount': ['', [Validators.pattern(ValidationConstant.amount_regex)]],\r\n 'TipAmount': ['', [Validators.pattern(ValidationConstant.amount_regex)]],\r\n 'DiscountAmount': ['', [Validators.pattern(ValidationConstant.amount_regex)]],\r\n 'TaxAmount': ['', [Validators.pattern(ValidationConstant.amount_regex)]],\r\n 'TotalAmount': ['', []],\r\n 'creditCardNumber': ['', []],\r\n //'cardExpiry': ['', [Validators.minLength(ValidationConstant.transaction.add.addTransaction.cardExpiry.minLength),\r\n // Validators.maxLength(ValidationConstant.transaction.add.addTransaction.cardExpiry.maxLength)]],\r\n 'CVVPresence': ['AV', []],\r\n 'CVV': ['', []],\r\n 'InvoiceNo': ['', [Validators.pattern(ValidationConstant.invoiceNo_regex)]],\r\n 'AuthCode': ['', []]\r\n },\r\n // {\r\n // validator: [CardValidation.valid_card,\r\n // CardValidation.card_Expiry]\r\n // }\r\n );\r\n\r\n switch (this.InputData.operationName) {\r\n case 'forceauth':\r\n this.transactionOperationsForm.get('Amount').setValidators([Validators.required, Validators.pattern(ValidationConstant.amount_regex)]);\r\n this.transactionOperationsForm.get('Amount').updateValueAndValidity();\r\n break;\r\n case 'adjust':\r\n this.transactionOperationsForm.get('TipAmount').setValidators([Validators.required, Validators.pattern(ValidationConstant.amount_regex)]);\r\n this.transactionOperationsForm.get('TipAmount').updateValueAndValidity();\r\n break;\r\n case 'refund':\r\n this.displayView = true;\r\n this.transactionOperationsForm.get('Amount').setValidators([\r\n Validators.required,\r\n Validators.pattern(ValidationConstant.amount_regex)\r\n ]);\r\n this.transactionOperationsForm.get('Amount').updateValueAndValidity();\r\n this.transactionOperationsForm.get('Description').setValidators([\r\n Validators.required,\r\n Validators.minLength(ValidationConstant.transaction.operation.description.minLength),\r\n Validators.maxLength(ValidationConstant.transaction.operation.description.maxLength),\r\n Validators.pattern(ValidationConstant.alphanumericWithSpace_regex)\r\n ]);\r\n this.transactionOperationsForm.get('Description').updateValueAndValidity();\r\n break;\r\n case 'reprocess':\r\n // todo\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n\r\n this.transactionOperationsForm.get('RefundType').valueChanges.subscribe(value => {\r\n if (value == 'full') {\r\n this.transactionOperationsForm.get('Amount').setValidators([\r\n Validators.pattern(ValidationConstant.amount_regex)\r\n ]);\r\n this.transactionOperationsForm.controls.Amount.patchValue(this.transactionDetails.tenderInfo.totalAmount);\r\n this.transactionOperationsForm.controls.Amount.disable();\r\n } else {\r\n this.transactionOperationsForm.get('Amount').setValidators([\r\n Validators.required,\r\n Validators.pattern(ValidationConstant.amount_regex)\r\n ]);\r\n this.transactionOperationsForm.controls.Amount.patchValue('0');\r\n this.transactionOperationsForm.controls.Amount.enable();\r\n }\r\n this.transactionOperationsForm.get('Amount').updateValueAndValidity();\r\n });\r\n\r\n // this.transactionOperationsForm.get('Amount').valueChanges.subscribe(value => {\r\n // this.addAllAmounts();\r\n // });\r\n // this.transactionOperationsForm.get('ConvenienceAmount').valueChanges.subscribe(value => {\r\n // this.addAllAmounts();\r\n // });\r\n // this.transactionOperationsForm.get('TipAmount').valueChanges.subscribe(value => {\r\n // this.addAllAmounts();\r\n // });\r\n // this.transactionOperationsForm.get('TaxAmount').valueChanges.subscribe(value => {\r\n // this.addAllAmounts();\r\n // });\r\n\r\n if (this.InputData.operationName && this.InputData.operationName != 'paymentPlanReceipt' && this.InputData.transactionId !== undefined && this.InputData.transactionId !== null && this.InputData.transactionId !== \"\") {\r\n //this.populateCountry();\r\n this.getTransactionDetailsById();\r\n }\r\n if (this.InputData.operationName && this.InputData.operationName != 'refund' && this.InputData.operationName == 'paymentPlanReceipt') {\r\n // this.populateCountry();\r\n this.displayView = true;\r\n this.planReceipt = this.InputData.recurringData;\r\n }\r\n //(this.InputData.referenceTransactionId&&this.InputData.referenceTransactionId!=null)\r\n this.transactionOperationsForm.valueChanges.subscribe(data => this.onValueChanged(data));\r\n this.sendReceiptToAlternateEmailsForm.valueChanges.subscribe(data => this.sendReceiptToAlternateEmailsFormValueChanged(data));\r\n if (this.InputData.referenceTransactionId && this.InputData.referenceTransactionId != null) {\r\n this.getTrailTransactionList();\r\n }\r\n\r\n if (this.loggedInUserData.userType == 0) {\r\n this.providerSelected = JSON.parse(this.storageService.get(StorageType.session, 'providerSelected'));\r\n\r\n this.InputData.fullAddress = this.commonService.getFullAddress(this.providerSelected.address, []);\r\n this.InputData.fullName = (this.providerSelected.name) ? this.providerSelected.name : '';\r\n this.InputData.phone = this.providerSelected.phone;\r\n this.InputData.email = this.providerSelected.email;\r\n } else {\r\n this.providerSelected = JSON.parse(this.storageService.get(StorageType.session, 'providerSelected'));\r\n\r\n this.InputData.fullAddress = this.commonService.getFullAddress(this.loggedInUserData.contact.address, []);\r\n this.InputData.fullName = (this.providerSelected.name) ? this.providerSelected.name : '';\r\n this.InputData.phone = this.loggedInUserData.contact.phone;\r\n this.InputData.email = this.loggedInUserData.contact.email;\r\n }\r\n }\r\n\r\n onValueChanged(data?: any) {\r\n if (!this.transactionOperationsForm) {\r\n return;\r\n }\r\n this.formErrors = this.validator.validate(this.transactionOperationsForm);\r\n }\r\n\r\n addAllAmounts() {\r\n setTimeout(() => {\r\n // purposefully added conditional statement while adding amount since we need to exclude invalid amount from totalAmount\r\n // tslint:disable-next-line:max-line-length\r\n let totalAmount = (this.formErrors['Amount'] === undefined ? Number(this.transactionOperationsForm.get('Amount').value) : 0) -\r\n // tslint:disable-next-line:max-line-length\r\n (this.formErrors['DiscountAmount'] === undefined ? Number(this.transactionOperationsForm.get('DiscountAmount').value) : 0) +\r\n // tslint:disable-next-line:max-line-length\r\n (this.formErrors['TaxAmount'] === undefined ? Number(this.transactionOperationsForm.get('TaxAmount').value) : 0);\r\n totalAmount = Math.round(totalAmount * 100) / 100;\r\n this.transactionOperationsForm.get('TotalAmount').patchValue(totalAmount);\r\n }, 10);\r\n }\r\n\r\n getTransactionDetailsById() {\r\n // if operation = trail then using referenceTransactionId instead of transactionId\r\n this.isLoaderTransDetails = true;\r\n const transactionId = this.InputData.operationName === 'trail' ? this.InputData.referenceTransactionId : this.InputData.transactionId;\r\n this.transactionService.viewTransaction(this.loggedInUserData.parentId, transactionId).subscribe(response => {\r\n this.transactionDetails = response;\r\n this.transactionDetails.fullName = this.commonService.getFullName1(this.transactionDetails.firstName, this.transactionDetails.lastName);\r\n this.transactionDetails.fullAddress = this.commonService.getFullAddress(JSON.parse(JSON.stringify(this.transactionDetails.address)), []);\r\n this.transactionDetails.operationType = TransactionOperationMapEnum[TransactionOperationEnum[this.transactionDetails.operationType]];\r\n // tslint:disable-next-line:max-line-length\r\n this.transactionDetails.transactionStatus = TransactionStatusMapEnum[TransactionStatusEnum[this.transactionDetails.transactionStatus]];\r\n\r\n this.transactionDetails.transactionDate = this.commonService.getFormattedDateTime(this.transactionDetails.transactionDate);\r\n\r\n if (this.transactionDetails.transactionStatus === 'Failed'\r\n || this.transactionDetails.transactionStatus === 'Denied'\r\n || this.transactionDetails.transactionStatus === 'Hold'\r\n || this.transactionDetails.transactionStatus === 'Closed') {\r\n this.transactionDetails.reasonStatus = this.transactionService.getExceptionMessage(this.transactionDetails);\r\n }\r\n\r\n if (this.InputData.operationName === 'forceauth') {\r\n this.transactionOperationsForm.controls['Amount'].patchValue(this.transactionDetails.tenderInfo.amount);\r\n this.transactionOperationsForm.controls['TaxAmount'].patchValue(this.transactionDetails.tenderInfo.taxAmount);\r\n this.transactionOperationsForm.controls['DiscountAmount'].patchValue(this.transactionDetails.discountAmount);\r\n this.transactionOperationsForm.controls['TotalAmount'].patchValue(this.transactionDetails.tenderInfo.captureAmount);\r\n }\r\n if (this.InputData.operationName === 'receipt') {\r\n if (this.transactionDetails.referenceTransactionId != null &&\r\n this.transactionDetails.operationType === TransactionOperationMapEnum.Refund) {\r\n this.transactionDetails.transactionStatus = 'Refund ' + this.transactionDetails.transactionStatus;\r\n }\r\n\r\n this.transactionDetails.tenderInfo.nameOnCheckOrCard == null ? 'NA' : this.transactionDetails.tenderInfo.nameOnCheckOrCard\r\n this.transactionDetails.tenderInfo.channelTypeName = ChannelTypeEnum[this.transactionDetails.tenderInfo.channelType];\r\n this.transactionReceipt = this.transactionDetails;\r\n\r\n }\r\n\r\n if (this.InputData.invoiceData !== undefined) {\r\n this.displayView = true;\r\n this.invoiceData = this.InputData.invoiceData;\r\n } else if (this.transactionDetails.invoiceId) {\r\n this.getInvoiceDetails(this.transactionDetails.invoiceId);\r\n } else {\r\n this.displayView = true;\r\n }\r\n this.isLoaderTransDetails = false;\r\n }, error => {\r\n this.isLoader_Receipt = false;\r\n this.isLoaderTransDetails = false;\r\n this.checkException(error);\r\n });\r\n }\r\n\r\n getInvoiceDetails(invoiceId) {\r\n\r\n this.invoiceService.getInvoiceById(invoiceId).subscribe(\r\n (response: any) => {\r\n\r\n const invoiceDetail = response;\r\n invoiceDetail.subTotalAmount = invoiceDetail.totalDiscountAmount = invoiceDetail.totalTaxAmount = 0;\r\n\r\n invoiceDetail.items.forEach(productElement => {\r\n let calculatedPrice: any;\r\n if (productElement.discountType === 1) {\r\n calculatedPrice = productElement.unitPrice - productElement.discountAmount;\r\n productElement.discount = productElement.discountAmount;\r\n invoiceDetail.totalDiscountAmount = invoiceDetail.totalDiscountAmount + (productElement.discountAmount * productElement.quantity);\r\n } else if (productElement.discountType === 2) {\r\n productElement.calculatedDiscountAmount = parseFloat(\r\n ((productElement.unitPrice * productElement.discountPercent) / 100).toFixed(2)\r\n );\r\n calculatedPrice = (productElement.unitPrice) - (productElement.calculatedDiscountAmount);\r\n productElement.discount = productElement.calculatedDiscountAmount;\r\n\r\n invoiceDetail.totalDiscountAmount = invoiceDetail.totalDiscountAmount + (\r\n ((productElement.unitPrice * productElement.discountPercent) / 100) * productElement.quantity\r\n );\r\n } else {\r\n calculatedPrice = productElement.unitPrice;\r\n productElement.discount = 0;\r\n }\r\n\r\n const calculatedTaxAmount = parseFloat(((calculatedPrice * productElement.taxPercent) / 100).toFixed(2));\r\n calculatedPrice = parseFloat((calculatedPrice + calculatedTaxAmount).toFixed(2));\r\n productElement.calculatedPrice = calculatedPrice;\r\n\r\n productElement.calculatedTotalPrice = productElement.calculatedPrice * productElement.quantity;\r\n\r\n invoiceDetail.subTotalAmount = invoiceDetail.subTotalAmount + (productElement.unitPrice * productElement.quantity);\r\n invoiceDetail.totalTaxAmount = invoiceDetail.totalTaxAmount + (calculatedTaxAmount * productElement.quantity);\r\n\r\n });\r\n\r\n this.displayView = true;\r\n this.invoiceData = invoiceDetail;\r\n },\r\n error => {\r\n this.displayView = true;\r\n this.checkException(error);\r\n });\r\n\r\n }\r\n\r\n\r\n onPrintClick() {\r\n //window.print();\r\n setTimeout(() => {\r\n window.print();\r\n setTimeout(() => window.close(), 0)\r\n }, 0)\r\n }\r\n sendReceiptToAlternateEmailsFormValueChanged(data?: any) {\r\n if (!this.sendReceiptToAlternateEmailsForm) {\r\n return;\r\n }\r\n this.sendReceiptToAlternateEmailsFormErrors = this.validator.validate(this.sendReceiptToAlternateEmailsForm);\r\n }\r\n isExistsPatient() {\r\n this.patientService.isExistsPatient(this.transactionReceipt.billingContact).subscribe(\r\n (response: any) => {\r\n if (response.message === 'Key_NoPatientFound') {\r\n this.addPatient();\r\n } else {\r\n this.newlyAddedPatientData = response;\r\n this.isExistsPatientAccount();\r\n }\r\n },\r\n error => {\r\n this.isLoader_SaveThisPatientForFutureUse = false;\r\n this.checkException(error);\r\n }\r\n );\r\n }\r\n\r\n\r\n isExistsPatientAccount() {\r\n let reqObj: any = {};\r\n reqObj = this.transactionReceipt.tenderInfo;\r\n reqObj.parentId = this.transactionReceipt.providerId;\r\n reqObj.patientId = this.newlyAddedPatientData.id;\r\n this.patientAccountService.isExistsPatientAccount(reqObj).subscribe(\r\n (response: any) => {\r\n if (response.message === 'Key_NoPatientAccountFound') {\r\n this.addPatientAccount();\r\n } else {\r\n this.newlyAddedPatientAccountData = response;\r\n this.updateTransaction();\r\n }\r\n },\r\n error => {\r\n this.isLoader_SaveThisPatientForFutureUse = false;\r\n this.checkException(error);\r\n }\r\n );\r\n }\r\n\r\n addPatient() {\r\n this.isLoader_SaveThisPatientForFutureUse = true;\r\n const reqObj: any = {};\r\n reqObj.providerId = this.loggedInUserData.parentId;\r\n reqObj.isEnabled = true;\r\n reqObj.firstName = this.addPatientForm.value.FirstName,\r\n reqObj.lastName = this.addPatientForm.value.LastName,\r\n reqObj.email = this.transactionReceipt.email,\r\n reqObj.address = {\r\n addressLine1: this.transactionReceipt.address.adddressLine1,\r\n addressLine2: this.transactionReceipt.address.adddressLine2,\r\n city: this.transactionReceipt.address.city,\r\n state: this.transactionReceipt.address.state,\r\n country: this.transactionReceipt.address.country,\r\n postalCode: this.transactionReceipt.address.postalCode\r\n }\r\n this.patientService.addPatient(reqObj).subscribe(\r\n a => {\r\n this.newlyAddedPatientData = a;\r\n this.addPatientForm.reset();\r\n this.addPatientAccount();\r\n },\r\n error => {\r\n this.isLoader_SaveThisPatientForFutureUse = false;\r\n this.checkException(error);\r\n }\r\n );\r\n }\r\n\r\n addPatientAccount() {\r\n if (this.transactionReceipt.channelType === 3) {\r\n this.validator.validateAllFormFields(this.addPatientAccountCCForm);\r\n this.addPatientAccountCCFormErrors = this.validator.validate(this.addPatientAccountCCForm);\r\n if (this.addPatientAccountCCForm.invalid) {\r\n return;\r\n }\r\n } else if (this.transactionReceipt.channelType === 2) {\r\n this.validator.validateAllFormFields(this.addPatientAccountACHForm);\r\n this.addPatientAccountACHFormErrors = this.validator.validate(this.addPatientAccountACHForm);\r\n if (this.addPatientAccountACHForm.invalid) {\r\n return;\r\n }\r\n }\r\n\r\n this.isLoader_SaveThisPatientForFutureUse = true;\r\n const reqObj: any = {};\r\n reqObj.contact = {\r\n address: {\r\n addressLine1: this.transactionReceipt.address.adddressLine1,\r\n addressLine2: this.transactionReceipt.address.adddressLine2,\r\n city: this.transactionReceipt.address.city,\r\n state: this.transactionReceipt.address.state,\r\n country: this.transactionReceipt.address.country,\r\n postalCode: this.transactionReceipt.address.postalCode\r\n }\r\n };\r\n reqObj.sameAsPatientAddress = false;\r\n if (this.transactionReceipt.channelType === 3) {\r\n reqObj.accountHolderName = this.transactionReceipt.tenderInfo.nameOnCheckOrCard;\r\n reqObj.cardNumber = this.addPatientAccountCCForm.value.cardNumber;\r\n reqObj.cardExpiry = this.transactionReceipt.tenderInfo.cardExpiry;\r\n reqObj.cardType = this.transactionReceipt.tenderInfo.cardType;\r\n reqObj.isCreditCard = true;\r\n reqObj.isActive = true;\r\n } else if (this.transactionReceipt.channelType === 2) {\r\n reqObj.accountHolderName = this.addPatientAccountACHForm.value.NameOnAccount;\r\n reqObj.accountNumber = this.addPatientAccountACHForm.value.AccountNo;\r\n reqObj.bankName = this.addPatientAccountACHForm.value.BankName;\r\n reqObj.isCheckingAccount = (this.addPatientAccountACHForm.value.AccountType === 'Checking') ? true : false;\r\n reqObj.routingNumber = this.addPatientAccountACHForm.value.routingNumber;\r\n reqObj.isCreditCard = false;\r\n reqObj.isActive = true;\r\n }\r\n\r\n let patientId = (this.transactionReceipt.referencePatientId) ? this.transactionReceipt.referencePatientId : this.newlyAddedPatientData.id;\r\n\r\n this.patientAccountService.addPatientAccount(patientId, reqObj).subscribe(\r\n a => {\r\n this.newlyAddedPatientAccountData = a;\r\n this.addPatientForm.reset();\r\n this.isLoader_SaveThisPatientForFutureUse = false;\r\n this.updateTransaction();\r\n },\r\n error => {\r\n this.isLoader_SaveThisPatientForFutureUse = false;\r\n this.checkException(error);\r\n }\r\n );\r\n }\r\n\r\n updateTransaction() {\r\n const reqObj: any = {};\r\n reqObj.transactionId = this.transactionReceipt.transactionId;\r\n reqObj.patientId = this.newlyAddedPatientData.id;\r\n reqObj.patientAccountId = this.newlyAddedPatientAccountData.id;\r\n this.transactionService.updateTransaction(reqObj).subscribe(\r\n (response: any) => {\r\n if (response.message === 'Key_TransactionUpdatedSuccessfully') {\r\n this.getTransactionDetailsById();\r\n }\r\n }, error => {\r\n this.isLoader_ProcessTransaction = false;\r\n this.checkException2(error);\r\n });\r\n }\r\n\r\n onSaveThisPatientForFutureUseClick() {\r\n this.validator.validateAllFormFields(this.addPatientForm);\r\n this.addPatientFormErrors = this.validator.validate(this.addPatientForm);\r\n this.validator.validateAllFormFields(this.addPatientAccountCCForm);\r\n this.addPatientAccountCCFormErrors = this.validator.validate(this.addPatientAccountCCForm);\r\n if (this.addPatientForm.invalid || this.addPatientAccountCCForm.invalid) {\r\n return;\r\n }\r\n\r\n this.showSuccessMessage = false;\r\n this.showErrorMessage = false;\r\n this.isLoader_SaveThisPatientForFutureUse = true;\r\n if (this.transactionReceipt.referencePatientId == null) {\r\n this.isExistsPatient();\r\n } else if (this.transactionReceipt.patientAccountId == null) {\r\n this.isExistsPatientAccount();\r\n }\r\n }\r\n\r\n onSendReceiptToMorePatientClick() {\r\n const reqObj: any = {};\r\n reqObj.emailIds = this.sendReceiptToAlternateEmailsForm.value.TransactionEmail;\r\n this.validator.validateAllFormFields(this.sendReceiptToAlternateEmailsForm);\r\n this.sendReceiptToAlternateEmailsFormErrors = this.validator.validate(this.sendReceiptToAlternateEmailsForm);\r\n if (this.sendReceiptToAlternateEmailsForm.invalid) {\r\n return;\r\n }\r\n this.isLoader_SendReceiptToAlternateEmails = true;\r\n this.transactionService.sendReceipt(this.transactionReceipt.id, reqObj).subscribe(\r\n (response: any) => {\r\n this.successMessage_SendReceiptToAlternateEmails = MessageSetting.transaction.mailSuccess;\r\n this.showSuccessMessage_SendReceiptToAlternateEmails = true;\r\n this.showErrorMessage_SendReceiptToAlternateEmails = false;\r\n this.isLoader_SendReceiptToAlternateEmails = false;\r\n },\r\n error => {\r\n this.isLoader_SendReceiptToAlternateEmails = false;\r\n if (error.status === 403 && error.error.message !== 'User is not authorized to access this resource') {\r\n this.closeErrorModal();\r\n this.commonService.logOut();\r\n } else {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.errorMessage_SendReceiptToAlternateEmails = toastMessage.join(', ');\r\n this.showSuccessMessage_SendReceiptToAlternateEmails = false;\r\n this.showErrorMessage_SendReceiptToAlternateEmails = true;\r\n }\r\n });\r\n }\r\n\r\n onInformSystemAdministratorClick() {\r\n\r\n }\r\n sendRecieptClear() {\r\n this.sendReceiptToAlternateEmailsForm.reset();\r\n this.sendReceiptToAlternateEmailsVisibility = false;\r\n this.successMessage_SendReceiptToAlternateEmails = '';\r\n this.errorMessage_SendReceiptToAlternateEmails = '';\r\n this.showSuccessMessage_SendReceiptToAlternateEmails = false;\r\n this.showErrorMessage_SendReceiptToAlternateEmails = false;\r\n }\r\n onRetryClick() {\r\n this.transactionReceipt.retryTransactionId = this.transactionReceipt.transactionId;\r\n this.OutputData.emit(this.transactionReceipt);\r\n }\r\n closeErrorModal() {\r\n\r\n this.OutputData.emit({ error: true });\r\n }\r\n getTrailTransactionList() {\r\n\r\n const searchParamsData: any = {};\r\n searchParamsData.referenceTransactionId = this.InputData.referenceTransactionId;\r\n searchParamsData.SortField = 'TransactionDate';\r\n searchParamsData.Asc = false;\r\n this.transactionService.findTransaction(this.loggedInUserData.parentId, searchParamsData).subscribe(\r\n (response: any) => {\r\n this.trailTransactionList = response.data;\r\n if (this.trailTransactionList) {\r\n this.trailTransactionList.forEach(element => {\r\n element.transactionStatus = TransactionStatusMapEnum[TransactionStatusEnum[element.transactionStatus]];\r\n element.operationType = TransactionOperationMapEnum[TransactionOperationEnum[element.operationType]];\r\n });\r\n } else {\r\n this.noResultsMessage = 'No results found';\r\n }\r\n },\r\n error => {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 5000);\r\n });\r\n }\r\n\r\n adjust() {\r\n this.validateAllFormFields(this.transactionOperationsForm);\r\n this.formErrors = this.validator.validate(this.transactionOperationsForm);\r\n if (this.transactionOperationsForm.invalid) {\r\n return;\r\n }\r\n this.displayView = false;\r\n // tslint:disable-next-line:max-line-length\r\n this.transactionService.adjustTransaction(this.loggedInUserData.parentId, this.InputData.transactionId, { 'tipAmount': this.transactionOperationsForm.value.TipAmount })\r\n .subscribe(response => {\r\n this.transactionOperationsForm.reset();\r\n // const successMessage = MessageSetting.transaction.adjustSuccess;\r\n // this.toastData = this.toasterService.success(successMessage);\r\n this.successMessage = MessageSetting.transaction.adjustSuccess;\r\n this.showSuccessMessage = true;\r\n this.displayView = true;\r\n }, err => {\r\n this.errorMessage = MessageSetting.transaction.adjustError;\r\n this.showErrorMessage = true;\r\n });\r\n }\r\n\r\n refund() {\r\n\r\n this.validateAllFormFields(this.transactionOperationsForm);\r\n this.formErrors = this.validator.validate(this.transactionOperationsForm);\r\n if (this.transactionOperationsForm.invalid) {\r\n return;\r\n }\r\n //console.log(\"this transactionDetails : \"+JSON.stringify(this.transactionDetails))\r\n // Refund Amount should be greater than 0 AND less than or equal to capture amount\r\n if (this.transactionOperationsForm.value.Amount < 0 || this.transactionOperationsForm.value.Amount > this.transactionDetails.tenderInfo.totalAmount) {\r\n this.toastData = this.toasterService.error(MessageSetting.transaction.refundAmountError);\r\n this.errorMessage = MessageSetting.transaction.refundAmountError;\r\n this.showErrorMessage = true;\r\n return;\r\n }\r\n\r\n const reqObj: any = {};\r\n reqObj.amount = (this.transactionOperationsForm.getRawValue().Amount == 0) ? null : +this.transactionOperationsForm.getRawValue().Amount;\r\n reqObj.remarks = this.transactionOperationsForm.value.Description;\r\n\r\n this.displayView = false;\r\n // tslint:disable-next-line:max-line-length\r\n this.transactionService.refundTransaction(this.loggedInUserData.parentId, this.InputData.transactionId, reqObj).subscribe(response => {\r\n this.transactionOperationsForm.reset();\r\n this.OutputData.emit({ response, isRefund: true });\r\n }, error => {\r\n this.displayView = true;\r\n this.checkException(error);\r\n });\r\n }\r\n\r\n forceauth() {\r\n this.validateAllFormFields(this.transactionOperationsForm);\r\n this.formErrors = this.validator.validate(this.transactionOperationsForm);\r\n if (this.transactionOperationsForm.invalid) {\r\n return;\r\n }\r\n\r\n const reqObj: any = {};\r\n\r\n reqObj.transactionOrigin = TransactionOriginEnum[this.transactionDetails.transactionOrigin];\r\n reqObj.transactionCode = this.transactionDetails.transactionCode;\r\n reqObj.firstName = this.transactionDetails.firstName;\r\n reqObj.lastName = this.transactionDetails.lastName;\r\n reqObj.email = this.transactionDetails.email;\r\n reqObj.address.country = this.transactionDetails.address.country;\r\n reqObj.shippingContact = this.transactionDetails.shippingContact;\r\n reqObj.referenceTransactionId = this.transactionDetails.transactionId; // transactionId\r\n reqObj.providerId = this.transactionDetails.providerId;\r\n reqObj.operationType = TransactionOperationEnum.ForceSale; // should be 2;\r\n reqObj.channelType = ChannelTypeEnum.CreditCard;\r\n reqObj.isDebit = true; // should be 'true' always (true-->Debit Amount, false-->Credit Amount)\r\n reqObj.referencePatientId = this.transactionDetails.referencePatientId,\r\n reqObj.patientAccountId = this.transactionDetails.patientAccountId,\r\n reqObj.invoiceNo = this.transactionDetails.invoiceNo,\r\n reqObj.poNo = this.transactionDetails.poNo,\r\n reqObj.referenceNo = this.transactionDetails.referenceNo,\r\n reqObj.remarks = this.transactionDetails.remarks,\r\n reqObj.recurringType = this.transactionDetails.recurringType,\r\n reqObj.recurringId = this.transactionDetails.recurringId,\r\n reqObj.installmentNumber = this.transactionDetails.installmentNumber,\r\n reqObj.installmentCount = this.transactionDetails.installmentCount,\r\n reqObj.terminalId = this.transactionDetails.terminalId,\r\n reqObj.allowDuplicates = true, // this.transactionDetails.allowDuplicates,\r\n reqObj.trainingMode = this.transactionDetails.trainingMode; // reqObj.trainingMode = false; when dealing with actual processor\r\n\r\n reqObj.tenderInfo = {\r\n 'cardHolderName': this.transactionDetails.tenderInfo.nameOnCheckOrCard,\r\n 'cardType': this.transactionDetails.tenderInfo.cardType,\r\n // 'cardNumber': this.transactionDetails.tenderInfo.maskCardNumber,\r\n 'cardExpiry': this.transactionDetails.tenderInfo.cardExpiry,\r\n 'cvData': this.transactionDetails.tenderInfo.cvData,\r\n 'cvDataStatus': this.transactionDetails.tenderInfo.cvData == null ? 'NS' : this.transactionDetails.tenderInfo.cvDataStatus,\r\n 'rxAmount': this.transactionDetails.tenderInfo.rxAmount,\r\n 'amount': this.transactionOperationsForm.value.Amount, // this.transactionDetails.tenderInfo.amount,\r\n 'tipAmount': this.transactionOperationsForm.value.TipAmount, // this.transactionDetails.tenderInfo.tipAmount,\r\n 'discountAmount': this.transactionOperationsForm.value.DiscountAmount, // this.transactionDetails.discountAmount,\r\n 'taxAmount': this.transactionOperationsForm.value.TaxAmount, // this.transactionDetails.tenderInfo.taxAmount,\r\n // tslint:disable-next-line:max-line-length\r\n // 'preAuthCode': (this.transactionDetails.transactionResult.processorAuthCode != null) ? this.transactionDetails.transactionResult.processorAuthCode : this.transactionOperationsForm.value.AuthCode\r\n };\r\n\r\n this.displayView = false;\r\n this.transactionService.forceAuthTransaction(this.loggedInUserData.parentId, reqObj).subscribe(response => {\r\n this.successMessage = MessageSetting.transaction.forceauth;\r\n this.showSuccessMessage = true;\r\n this.showErrorMessage = false;\r\n this.displayView = true;\r\n this.transactionOperationsForm.reset();\r\n this.transactionOperationsForm.controls['Amount'].patchValue(this.transactionDetails.tenderInfo.amount);\r\n this.transactionOperationsForm.controls['TipAmount'].patchValue(this.transactionDetails.tenderInfo.tipAmount);\r\n this.transactionOperationsForm.controls['TaxAmount'].patchValue(this.transactionDetails.tenderInfo.taxAmount);\r\n this.transactionOperationsForm.controls['ConvenienceAmount'].patchValue(this.transactionDetails.tenderInfo.convenienceAmount);\r\n this.transactionOperationsForm.controls['TotalAmount'].patchValue(this.transactionDetails.tenderInfo.captureAmount);\r\n }, error => {\r\n this.displayView = true;\r\n this.checkException(error);\r\n });\r\n }\r\n reprocess() {\r\n // to do\r\n }\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n performOperation() {\r\n\r\n switch (this.InputData.operationName) {\r\n case 'forceauth':\r\n this.forceauth();\r\n break;\r\n case 'adjust':\r\n this.adjust();\r\n break;\r\n case 'refund':\r\n this.refund();\r\n break;\r\n case 'reprocess':\r\n this.reprocess();\r\n break;\r\n case 'receipt':\r\n this.onPrintClick();\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n openEmailClick() {\r\n this.sendReceiptToAlternateEmailsForm.controls['TransactionEmail'].patchValue(this.transactionDetails.email);\r\n this.sendReceiptToAlternateEmailsVisibility = true;\r\n this.savePatientVisibility = false;\r\n }\r\n // getFormattedDate(date) {\r\n // if (date) {\r\n // const localDate = moment.utc(date).local();\r\n // const d = this.commonService.getFormattedDate(localDate['_d']);\r\n // const t = this.commonService.getFormattedTime(localDate['_d']);\r\n // return d + ' ' + t;\r\n // }\r\n // }\r\n getFormattedDate(date) {\r\n return this.commonService.getFormattedDateTime(date);\r\n }\r\n // populateCountry() {\r\n // this.commonService.getCountryList().subscribe(\r\n // response => {\r\n // this.getTransactionDetailsById();\r\n // this.countryList = response;\r\n // },\r\n // error => {\r\n // this.checkException2(error);\r\n // }\r\n // );\r\n // }\r\n\r\n mapCountryName(countryId) {\r\n for (let i = 0; i < this.countryList.length; i++) {\r\n const element = this.countryList[i];\r\n if (this.countryList[i].countryId === countryId) {\r\n return this.countryList[i].name;\r\n }\r\n }\r\n }\r\n\r\n\r\n validateAllFormFields(formGroup: FormGroup) {\r\n Object.keys(formGroup.controls).forEach(field => {\r\n const control = formGroup.get(field);\r\n if (control instanceof FormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n control.markAsDirty({ onlySelf: true });\r\n } else if (control instanceof FormGroup) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n getFormattedDateToDisplay(date) { // used to display date in filter as \"23 March 2019\" to match with datepicker format\r\n return this.commonService.getFormattedDateToDisplayInFilter(date);\r\n }\r\n\r\n checkException(error) {\r\n if (error.status === 403 && error.error.message !== 'User is not authorized to access this resource') {\r\n this.closeErrorModal();\r\n this.commonService.logOut();\r\n } else {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.errorMessage = toastMessage.join(', ');\r\n this.showSuccessMessage = false;\r\n this.showErrorMessage = true;\r\n }\r\n }\r\n checkException2(error) {\r\n if (error.status === 403 && error.error.message !== 'User is not authorized to access this resource') {\r\n this.closeErrorModal();\r\n this.commonService.logOut();\r\n } else {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 5000);\r\n }\r\n }\r\n\r\n downloadReceiptClick() {\r\n this.inputDataForDownload.providerData = this.InputData;\r\n this.inputDataForDownload.transactionData = this.transactionDetails;\r\n if (this.InputData.patientDetails) {\r\n this.inputDataForDownload.patientDetails = this.InputData.patientDetails;\r\n }\r\n if (this.invoiceData) {\r\n this.inputDataForDownload.invoiceData = this.invoiceData;\r\n }\r\n this.inputDataForDownload.transactionType = 'oneTime';\r\n this.downloadReceipt.download();\r\n }\r\n\r\n}\r\n\r\n\r\n\r\n\r\n","import { ValidationConstant } from 'src/app/services/validation/validation.constant';\r\n\r\nexport class ValidationConfig {\r\n\r\n config = {\r\n // Find Patient\r\n ProviderName: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.providerName.name }\r\n },\r\n SelectedCard: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.selectedCard.name }\r\n },\r\n PatientName: {\r\n required: { name: ValidationConstant.transaction.add.findPatient.patientName.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.findPatient.patientName.name,\r\n max: ValidationConstant.transaction.add.findPatient.patientName.maxLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.findPatient.patientName.name }\r\n },\r\n PatientEmail: {\r\n required: { name: ValidationConstant.transaction.add.findPatient.email.name },\r\n email: { name: ValidationConstant.transaction.add.findPatient.email.name },\r\n pattern: { name: ValidationConstant.transaction.add.findPatient.email.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.findPatient.email.name,\r\n max: ValidationConstant.transaction.add.findPatient.email.maxLength.toString()\r\n },\r\n },\r\n PatientCompanyName: {\r\n required: { name: ValidationConstant.transaction.add.findPatient.companyName.name },\r\n pattern: { name: ValidationConstant.transaction.add.findPatient.companyName.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.findPatient.companyName.name,\r\n max: ValidationConstant.transaction.add.findPatient.companyName.maxLength.toString()\r\n },\r\n },\r\n\r\n // Add Transaction\r\n TransactionType: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.transactionType.name }\r\n },\r\n CardHolderName: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.cardHolderName.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.cardHolderName.name,\r\n max: ValidationConstant.transaction.add.addTransaction.cardHolderName.maxLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.addTransaction.cardHolderName.name }\r\n },\r\n cardNumber: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.cardNumber.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.cardNumber.name,\r\n max: ValidationConstant.transaction.add.addTransaction.cardNumber.maxLength.toString()\r\n },\r\n cardNumber: { name: 'Card Number' },\r\n },\r\n CardType: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.cardType.name }\r\n },\r\n cardExpiry: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.cardExpiry.name },\r\n minlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.cardExpiry.name,\r\n min: ValidationConstant.transaction.add.addTransaction.cardExpiry.minLength.toString()\r\n },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.cardExpiry.name,\r\n max: ValidationConstant.transaction.add.addTransaction.cardExpiry.maxLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.addTransaction.cardExpiry.name },\r\n expiryDate: { name: 'Expiry Date' },\r\n },\r\n CVV: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.cvv.name },\r\n minlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.cvv.name,\r\n min: ValidationConstant.transaction.add.addTransaction.cvv.minLength.toString()\r\n },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.cvv.name,\r\n max: ValidationConstant.transaction.add.addTransaction.cvv.maxLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.addTransaction.cvv.name }\r\n },\r\n 'TransactionDate': {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.transactionDate.name },\r\n transactionDate: { name: 'Date' },\r\n },\r\n Amount: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.amount.name },\r\n pattern: { name: ValidationConstant.transaction.add.addTransaction.amount.name }\r\n // amount: { name: ValidationConstant.transaction.add.addTransaction.amount.name},\r\n // amountpattern: { name: ValidationConstant.transaction.add.addTransaction.amount.name }\r\n },\r\n patientName: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.patientName.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.patientName.name,\r\n max: ValidationConstant.transaction.add.addTransaction.patientName.maxLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.addTransaction.patientName.name }\r\n },\r\n PayToTheOrderOf: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.payToTheOrderOf.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.payToTheOrderOf.name,\r\n max: ValidationConstant.transaction.add.addTransaction.payToTheOrderOf.maxLength.toString()\r\n }\r\n },\r\n routingNumber: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.routingNumber.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.routingNumber.name,\r\n max: ValidationConstant.transaction.add.addTransaction.routingNumber.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.routingNumber.name,\r\n min: ValidationConstant.transaction.add.addTransaction.routingNumber.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.addTransaction.routingNumber.name }\r\n },\r\n checkNumber: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.checkNumber.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.checkNumber.name,\r\n max: ValidationConstant.transaction.add.addTransaction.checkNumber.maxLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.addTransaction.checkNumber.name }\r\n },\r\n accountNumber: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.accountNumber.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.accountNumber.name,\r\n max: ValidationConstant.transaction.add.addTransaction.accountNumber.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.accountNumber.name,\r\n min: ValidationConstant.transaction.add.addTransaction.accountNumber.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.addTransaction.accountNumber.name }\r\n },\r\n institutionName: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.institutionName.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.institutionName.name,\r\n max: ValidationConstant.transaction.add.addTransaction.institutionName.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.institutionName.name,\r\n min: ValidationConstant.transaction.add.addTransaction.institutionName.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.addTransaction.institutionName.name }\r\n },\r\n AccountType: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.accountType.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.accountType.name,\r\n max: ValidationConstant.transaction.add.addTransaction.accountType.maxLength.toString()\r\n }\r\n },\r\n checkType: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.checkType.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.checkType.name,\r\n max: ValidationConstant.transaction.add.addTransaction.checkType.maxLength.toString()\r\n }\r\n },\r\n ConvenienceAmount: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.convenienceAmount.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.convenienceAmount.name,\r\n max: ValidationConstant.transaction.add.addTransaction.convenienceAmount.maxLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.addTransaction.convenienceAmount.name }\r\n // amount: { name: ValidationConstant.transaction.add.addTransaction.convenienceAmount.name },\r\n // amountpattern: { name: ValidationConstant.transaction.add.addTransaction.convenienceAmount.name }\r\n },\r\n TipAmount: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.tipAmount.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.tipAmount.name,\r\n max: ValidationConstant.transaction.add.addTransaction.tipAmount.maxLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.addTransaction.tipAmount.name }\r\n // amount: { name: ValidationConstant.transaction.add.addTransaction.tipAmount.name },\r\n // amountpattern: { name: ValidationConstant.transaction.add.addTransaction.tipAmount.name }\r\n },\r\n TaxPercent: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.taxPercent.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.taxPercent.name,\r\n max: ValidationConstant.transaction.add.addTransaction.taxPercent.maxLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.addTransaction.taxPercent.name }\r\n // amount: { name: ValidationConstant.transaction.add.addTransaction.taxAmount.name },\r\n // amountpattern: { name: ValidationConstant.transaction.add.addTransaction.taxAmount.name }\r\n },\r\n TaxAmount: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.taxAmount.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.taxAmount.name,\r\n max: ValidationConstant.transaction.add.addTransaction.taxAmount.maxLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.addTransaction.taxAmount.name }\r\n // amount: { name: ValidationConstant.transaction.add.addTransaction.taxAmount.name },\r\n // amountpattern: { name: ValidationConstant.transaction.add.addTransaction.taxAmount.name }\r\n },\r\n TotalAmount: {\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.amount.name,\r\n max: ValidationConstant.transaction.add.addTransaction.taxAmount.maxLength.toString()\r\n }\r\n },\r\n InvoiceNo: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.invoiceno.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.invoiceno.name,\r\n max: ValidationConstant.transaction.add.addTransaction.invoiceno.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.invoiceno.name,\r\n min: ValidationConstant.transaction.add.addTransaction.invoiceno.minLength.toString()\r\n },\r\n pattern: { name: 'Reference No' }\r\n },\r\n TransactionEmail: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.email.name },\r\n email: { name: ValidationConstant.transaction.add.addTransaction.email.name },\r\n pattern: { name: ValidationConstant.transaction.add.addTransaction.email.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.email.name,\r\n max: ValidationConstant.transaction.add.addTransaction.email.maxLength.toString()\r\n },\r\n },\r\n SecCode: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.secCode.name },\r\n },\r\n\r\n // Address Details\r\n AddressLine1: {\r\n required: { name: ValidationConstant.transaction.add.addressDetails.addressLine1.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addressDetails.addressLine1.name,\r\n max: ValidationConstant.transaction.add.addressDetails.addressLine1.maxLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.addressDetails.addressLine1.name }\r\n },\r\n AddressLine2: {\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addressDetails.addressLine2.name,\r\n max: ValidationConstant.transaction.add.addressDetails.addressLine2.maxLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.addressDetails.addressLine2.name }\r\n },\r\n City: {\r\n required: { name: ValidationConstant.transaction.add.addressDetails.city.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addressDetails.city.name,\r\n max: ValidationConstant.transaction.add.addressDetails.city.maxLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.addressDetails.city.name }\r\n },\r\n State: {\r\n required: { name: ValidationConstant.transaction.add.addressDetails.state.name }\r\n },\r\n Country: {\r\n required: { name: ValidationConstant.transaction.add.addressDetails.country.name },\r\n },\r\n PostalCode: {\r\n required: { name: ValidationConstant.patientAccount.add.postalCode.name },\r\n maxlength: {\r\n name: ValidationConstant.patientAccount.add.postalCode.name,\r\n max: ValidationConstant.patientAccount.add.postalCode.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.patientAccount.add.postalCode.name,\r\n min: ValidationConstant.patientAccount.add.postalCode.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.patientAccount.add.postalCode.name }\r\n },\r\n Description: {\r\n required: { name: ValidationConstant.transaction.operation.description.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.operation.description.name,\r\n max: ValidationConstant.transaction.operation.description.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.transaction.operation.description.name,\r\n min: ValidationConstant.transaction.operation.description.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.transaction.operation.description.name }\r\n },\r\n Memo: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.memo.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.memo.name,\r\n max: ValidationConstant.transaction.add.addTransaction.memo.maxLength.toString()\r\n }\r\n },\r\n DiscountList: {\r\n },\r\n Discount: {\r\n required: { name: ValidationConstant.recurring.add.recurringPayment.discount.name },\r\n pattern: { name: ValidationConstant.recurring.add.recurringPayment.discount.name },\r\n Discount: { name: 'Discount' },\r\n },\r\n DiscountAmount: {\r\n required: { name: ValidationConstant.recurring.add.recurringPayment.discountAmount.name },\r\n pattern: { name: ValidationConstant.recurring.add.recurringPayment.discountAmount.name },\r\n DiscountAmount: { name: 'Discount Amount' },\r\n },\r\n RefundType: {\r\n required: { name: ValidationConstant.recurring.add.recurringPayment.refundType.name },\r\n },\r\n\r\n BankName: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.bankName.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.bankName.name,\r\n max: ValidationConstant.transaction.add.addTransaction.bankName.maxLength.toString(),\r\n },\r\n },\r\n NameOnAccount: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.nameOnAccount.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.nameOnAccount.name,\r\n max: ValidationConstant.transaction.add.addTransaction.nameOnAccount.maxLength.toString(),\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.addTransaction.nameOnAccount.name },\r\n },\r\n RoutingNo: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.routingNumber.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.routingNumber.name,\r\n max: ValidationConstant.transaction.add.addTransaction.routingNumber.maxLength.toString(),\r\n },\r\n minlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.routingNumber.name,\r\n min: ValidationConstant.transaction.add.addTransaction.routingNumber.minLength.toString(),\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.addTransaction.routingNumber.name },\r\n },\r\n AccountNo: {\r\n required: { name: ValidationConstant.transaction.add.addTransaction.accountNumber.name },\r\n maxlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.accountNumber.name,\r\n max: ValidationConstant.transaction.add.addTransaction.accountNumber.maxLength.toString(),\r\n },\r\n minlength: {\r\n name: ValidationConstant.transaction.add.addTransaction.accountNumber.name,\r\n min: ValidationConstant.transaction.add.addTransaction.accountNumber.minLength.toString(),\r\n },\r\n pattern: { name: ValidationConstant.transaction.add.addTransaction.accountNumber.name },\r\n },\r\n };\r\n\r\n get Config() {\r\n return this.config;\r\n }\r\n\r\n constructor() {\r\n\r\n }\r\n}\r\n","module.exports = \"

\\r\\n provider works!\\r\\n

\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zZWN1cmUvcHJvdmlkZXIvcHJvdmlkZXIuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-provider',\r\n templateUrl: './provider.component.html',\r\n styleUrls: ['./provider.component.scss']\r\n})\r\nexport class ProviderComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n\\r\\n
\\r\\n
\\r\\n
Loading..
\\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zZWN1cmUvc2VjdXJlLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport {\r\n Router,\r\n // import as RouterEvent to avoid confusion with the DOM Event\r\n Event as RouterEvent,\r\n NavigationStart,\r\n NavigationEnd,\r\n NavigationCancel,\r\n NavigationError\r\n} from '@angular/router'\r\n@Component({\r\n selector: 'app-secure',\r\n templateUrl: './secure.component.html',\r\n styleUrls: ['./secure.component.scss']\r\n})\r\nexport class SecureComponent implements OnInit {\r\n ngOnInit() {\r\n }\r\n\r\n // Sets initial value to true to show loading spinner on first load\r\n loading = true\r\n\r\n constructor(private router: Router) {\r\n this.router.events.subscribe((e : RouterEvent) => {\r\n this.navigationInterceptor(e);\r\n })\r\n }\r\n\r\n // Shows and hides the loading spinner during RouterEvent changes\r\n navigationInterceptor(event: RouterEvent): void {\r\n if (event instanceof NavigationStart) {\r\n this.loading = true\r\n }\r\n if (event instanceof NavigationEnd) {\r\n this.loading = false\r\n }\r\n\r\n // Set loading state to false in both of the below events to hide the spinner in case a request fails\r\n if (event instanceof NavigationCancel) {\r\n this.loading = false\r\n }\r\n if (event instanceof NavigationError) {\r\n this.loading = false\r\n }\r\n }\r\n\r\n}\r\n","import {Routes} from '@angular/router';\r\nimport { AuthGuard } from 'src/app/services/session/auth.guard';\r\n\r\nexport const SECURE_ROUTES: Routes = [\r\n {path: 'admin', loadChildren: 'src/app/module/secure/admin/admin.module#AdminModule', canActivate: [AuthGuard]},\r\n {path: 'facility', loadChildren: 'src/app/module/secure/facility/facility.module#FacilityModule', canActivate: [AuthGuard]},\r\n {path: 'provider', loadChildren: 'src/app/module/secure/provider/provider.module#ProviderModule', canActivate: [AuthGuard]},\r\n {path: 'patient', loadChildren: 'src/app/module/secure/patient/patient.module#PatientModule', canActivate: [AuthGuard]},\r\n {path: 'forms', loadChildren: 'src/app/module/secure/forms/forms.module#FormsModule', canActivate: [AuthGuard]},\r\n];\r\n","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

{{'settings.patient.textNotification' | translate}}({{optInOptOutStatus}})

\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zaGFyZWQvYWRkaXRpb25hbC1zZXR0aW5ncy9hZGRpdGlvbmFsLXNldHRpbmdzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, ViewChild, ElementRef, OnDestroy } from '@angular/core';\r\nimport { FormBuilder, Validators } from '@angular/forms';\r\nimport { ToasterService } from 'src/app/services/api/toaster.service';\r\nimport { StorageService } from 'src/app/services/session/storage.service';\r\nimport { Validator } from 'src/app/common/validation/validator';\r\nimport { SuiModalService } from 'ng2-semantic-ui';\r\nimport { ConfirmModalOptInOutSMS } from 'src/app/common/modal-opt-in-out-sms/modal-opt-in-out-sms.component';\r\nimport { StorageType } from 'src/app/services/session/storage.enum';\r\nimport { MessageSetting } from 'src/app/common/constants/message-setting.constant';\r\nimport { PatientService } from 'src/app/services/api/patient.service';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\nimport { Exception } from 'src/app/common/exceptions/exception';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-additional-settings',\r\n templateUrl: './additional-settings.component.html',\r\n styleUrls: ['./additional-settings.component.scss']\r\n})\r\nexport class AdditionalSettingsComponent implements OnInit, OnDestroy {\r\n // Form variables\r\n validator: Validator;\r\n additionalSettings: any;\r\n formErrors: any = {};\r\n\r\n optInOptOutStatus = 'OFF';\r\n toastData: any;\r\n // Loaders\r\n isLoader_Setting = true;\r\n loggedInUserData: any = {};\r\n\r\n patientDataUpdated: Subscription;\r\n @ViewChild('closeWizard') closeWizard: ElementRef;\r\n constructor(private formBuilder: FormBuilder,\r\n private toasterService: ToasterService,\r\n private storageService: StorageService,\r\n private commonService: CommonService,\r\n private modalService: SuiModalService,\r\n private patientService: PatientService) {\r\n\r\n }\r\n\r\n\r\n ngOnInit() {\r\n\r\n this.additionalSettings = this.formBuilder.group({\r\n optInOptOut: [false, []],\r\n });\r\n\r\n this.loggedInUserData = this.commonService.getLoggedInData();\r\n\r\n this.patientDataUpdated = this.patientService.getPatientDataUpdated().subscribe(message => {\r\n this.getPatientData();\r\n });\r\n\r\n this.getPatientData();\r\n\r\n }\r\n\r\n getPatientData() {\r\n const patientData = this.patientService.getPatientData();\r\n if (patientData !== undefined) {\r\n this.optInOptOutStatus = (patientData['isOptIn']) ? 'ON' : 'OFF';\r\n this.additionalSettings.controls['optInOptOut'].patchValue(patientData['isOptIn']);\r\n this.isLoader_Setting = false;\r\n }\r\n }\r\n\r\n onChangeOptInOptOutSms() {\r\n\r\n const formData = this.additionalSettings.value;\r\n\r\n let confirmMessage = '';\r\n let isOptOut = true;\r\n if (formData.optInOptOut === true) {\r\n confirmMessage = MessageSetting.patientSetting.optInConfirmation;\r\n isOptOut = false;\r\n this.optInOptOutStatus = 'ON';\r\n } else {\r\n confirmMessage = MessageSetting.patientSetting.optOutConfirmation;\r\n isOptOut = true;\r\n this.optInOptOutStatus = 'OFF';\r\n }\r\n\r\n this.modalService\r\n .open(new ConfirmModalOptInOutSMS(confirmMessage, ''))\r\n .onApprove((response) => {\r\n let reqObj = {};\r\n if (response === 'confirm') {\r\n const settingData = JSON.parse(this.storageService.get(StorageType.session, 'settingsData'));\r\n if (settingData !== undefined && settingData !== null && settingData.providerName !== undefined) {\r\n reqObj = { 'patientId': this.loggedInUserData.parentId, isOptOut: isOptOut, 'providerSuffix': settingData.providerName };\r\n } else {\r\n reqObj = { 'patientId': this.loggedInUserData.parentId, isOptOut: isOptOut };\r\n }\r\n this.isLoader_Setting = true;\r\n }\r\n this.patientService.optInOptOutPatient(reqObj, this.loggedInUserData.parentId).subscribe(\r\n (patientDeatilsresponse: any) => {\r\n //console.log(formData.optInOptOut)\r\n this.patientService.sendMessage(formData.optInOptOut);\r\n if (this.closeWizard !== undefined) {\r\n this.closeWizard.nativeElement.click(); // close existing modal before opening new one\r\n }\r\n this.toastData = this.toasterService.success('Message service updated successfully.');\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster('Message service updated successfully.');\r\n }, 5000);\r\n this.isLoader_Setting = false;\r\n },\r\n error => {\r\n this.isLoader_Setting = false;\r\n this.additionalSettings.controls['optInOptOut'].patchValue(!formData.optInOptOut);\r\n this.optInOptOutStatus = (this.optInOptOutStatus === 'ON') ? 'OFF' : 'ON';\r\n this.checkException(error);\r\n }\r\n );\r\n })\r\n .onDeny(() => {\r\n this.additionalSettings.controls['optInOptOut'].patchValue(!formData.optInOptOut);\r\n this.optInOptOutStatus = (this.optInOptOutStatus === 'ON') ? 'OFF' : 'ON';\r\n })\r\n }\r\n\r\n\r\n checkException(error) {\r\n if (error.status === 403 && error.error.message !== 'User is not authorized to access this resource') {\r\n this.commonService.logOut();\r\n } else {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 5000);\r\n }\r\n }\r\n \r\n ngOnDestroy() {\r\n // unsubscribe to ensure no memory leaks\r\n this.patientDataUpdated.unsubscribe();\r\n }\r\n}\r\n","module.exports = \"\\r\\n\\r\\n
\\r\\n
\\r\\n
Loading
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n

{{ 'attachment.card.noRecordsFound' | translate }}

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
0 && !isLoader\\\">\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{\\r\\n attachment.docName != null ? attachment.docName : '--'\\r\\n }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{ 'attachment.card.createdOn' | translate }}: {{ attachment.createdOn }}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{ 'File Name' | translate }}: \\r\\n {{ attachment.docName != '' ? attachment.docName : '--' }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n {{ 'attachment.card.description' | translate }}: \\r\\n {{ (attachment.description != '' && attachment.description != null) ? attachment.description : '--' }}\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n \\r\\n \\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n {{ 'attachment.add.heading' | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n {{ 'attachment.link.heading' | translate }}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zaGFyZWQvYXR0YWNobWVudC1jYXJkL2F0dGFjaG1lbnQtY2FyZC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, ElementRef, Input, OnInit, ViewChild, EventEmitter, Output } from '@angular/core';\r\nimport { ModalTemplate, SuiModalService, TemplateModalConfig } from 'ng2-semantic-ui';\r\nimport { Subscription } from 'rxjs';\r\nimport { MessageSetting } from 'src/app/common/constants/message-setting.constant';\r\nimport { Exception } from 'src/app/common/exceptions/exception';\r\nimport { FeaturesEnum } from 'src/app/enum/features.enum';\r\nimport { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\nimport { AccessRightsService } from 'src/app/services/api/access-rights.service';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\nimport { PatientUploadsService } from 'src/app/services/api/patient-uploads.service';\r\nimport { SettingsService } from 'src/app/services/api/settings.service';\r\nimport { ToasterService } from 'src/app/services/api/toaster.service';\r\nimport { StorageType } from 'src/app/services/session/storage.enum';\r\nimport { StorageService } from 'src/app/services/session/storage.service';\r\nimport { ConfirmModal, IContext } from '../../secure/patient/component/patient-transaction/patient-transaction/patient-transaction.component';\r\n\r\n@Component({\r\n selector: 'app-attachment-card',\r\n templateUrl: './attachment-card.component.html',\r\n styleUrls: ['./attachment-card.component.scss']\r\n})\r\nexport class AttachmentCardComponent implements OnInit {\r\n\r\n @Input() patientData;\r\n @Input() showAddButton?= true;\r\n @Input() filterByProvider?= false;\r\n\r\n @Output() OutputData = new EventEmitter();\r\n\r\n @ViewChild('closeWizard') closeWizard: ElementRef;\r\n @ViewChild('modalAddAttach') public modalAddAttach: ModalTemplate;\r\n\r\n isLoader = true;\r\n toastData: any;\r\n showErrorMessage = false;\r\n errorMessage = '';\r\n attachments: any = [];\r\n\r\n noRecordsFound_attachmentsList = false;\r\n isLoader_Insurance = true;\r\n noResultsMessage = '';\r\n // extra\r\n ifModalOpened = false;\r\n\r\n loggedInUserData: any = {};\r\n providerData: Subscription;\r\n providerSelected: any;\r\n userTypeEnum = UserTypeEnum;\r\n\r\n inputDataForLinkAttachment: any = {};\r\n @ViewChild('modalLinkAttach') public modalLinkAttach: ModalTemplate;\r\n\r\n permissions: any = this.accessRightsService.getAllFeatureAccessToUser();\r\n\r\n constructor(\r\n private modalService: SuiModalService,\r\n private commonService: CommonService, private toasterService: ToasterService,\r\n private patientUploadsService: PatientUploadsService,\r\n private storageService: StorageService,\r\n private settingsService: SettingsService,\r\n private accessRightsService: AccessRightsService\r\n ) { }\r\n\r\n ngOnInit() {\r\n\r\n this.loggedInUserData = this.commonService.getLoggedInData();\r\n if (this.loggedInUserData.userType === UserTypeEnum.PATIENT) {\r\n this.patientData.id = this.patientData.parentId;\r\n }\r\n\r\n if (this.loggedInUserData.userType === UserTypeEnum.PATIENT) {\r\n\r\n this.providerData = this.settingsService.getProviderData().subscribe(value => {\r\n if (value !== undefined) {\r\n this.providerSelected = value;\r\n this.fetchAttachments();\r\n }\r\n });\r\n } else if (this.loggedInUserData.userType === UserTypeEnum.PROVIDER) {\r\n this.fetchAttachments();\r\n }\r\n }\r\n\r\n \r\n\r\n fetchAttachments() {\r\n this.isLoader = true;\r\n this.noRecordsFound_attachmentsList = false;\r\n\r\n let reqObj: any = {};\r\n\r\n if (this.filterByProvider === true) {\r\n reqObj.providersList = this.providerSelected.id;\r\n }\r\n\r\n this.patientUploadsService.findAttachments(this.patientData.id, reqObj).subscribe(\r\n (response: any) => {\r\n if (response.hasOwnProperty('data') && response['data'].length === 0) {\r\n this.noRecordsFound_attachmentsList = true;\r\n this.noResultsMessage = 'No results found';\r\n this.attachments = [];\r\n } else {\r\n this.noRecordsFound_attachmentsList = false;\r\n this.attachments = response['data'];\r\n this.attachments.forEach(element => {\r\n element.docPath = \"https://hptpatientdocs.s3.us-east-2.amazonaws.com/\" + element.docPath;\r\n element.createdOn = this.commonService.getFormattedDate(element.createdOn);\r\n element.isLoader_AttachmentOperation = false;\r\n });\r\n }\r\n this.isLoader = false;\r\n\r\n },\r\n error => {\r\n this.isLoader = false;\r\n this.checkException(error);\r\n });\r\n }\r\n\r\n\r\n\r\n // View add attachment Modal\r\n public openAddAttachmentModal(dynamicContent: string = 'Example') {\r\n\r\n if (this.loggedInUserData.userType === UserTypeEnum.PATIENT) {\r\n this.OutputData.emit({ inPageForm: true });\r\n return;\r\n }\r\n\r\n // To avoid opening of multiple modal\r\n if (this.ifModalOpened) {\r\n return;\r\n }\r\n this.ifModalOpened = true;\r\n const config = new TemplateModalConfig(this.modalAddAttach);\r\n config.closeResult = 'closed!';\r\n config.context = { data: dynamicContent };\r\n config.size = 'tiny';\r\n config.isClosable = false;\r\n this.modalService\r\n .open(config)\r\n .onApprove((result: any) => {\r\n this.ifModalOpened = false;\r\n this.ngOnInit();\r\n const scroll = document.querySelector('#initialLoad');\r\n setTimeout(() => {\r\n scroll.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' });\r\n }, 400);\r\n /* approve callback */\r\n })\r\n .onDeny((result) => {\r\n this.ifModalOpened = false;\r\n const scroll = document.querySelector('#initialLoad');\r\n setTimeout(() => {\r\n scroll.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' });\r\n }, 400);\r\n });\r\n }\r\n\r\n outputDataFromOperation(OutputData) {\r\n if (OutputData.error) {\r\n this.closeWizard.nativeElement.click();\r\n } else {\r\n this.closeWizard.nativeElement.click();\r\n if (OutputData[0].id !== undefined) {\r\n\r\n this.toastData = this.toasterService.success(MessageSetting.patient.attachmentAdd);\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(MessageSetting.patient.attachmentAdd);\r\n }, 5000);\r\n this.fetchAttachments();\r\n }\r\n }\r\n }\r\n\r\n\r\n\r\n onOperationClick(operationData, attachmentData) {\r\n\r\n if (operationData.key === 'deleteAttachment') {\r\n this.deleteAttachment(attachmentData);\r\n } else if (operationData.key === 'linkProvider') {\r\n this.inputDataForLinkAttachment.attachment = attachmentData;\r\n this.inputDataForLinkAttachment.patientData = this.patientData;\r\n this.openLinkAttachmentModal();\r\n } else if (operationData.key === 'viewAttachment') {\r\n // window.open(attachmentData.docPath, '_blank');\r\n this.patientUploadsService\r\n .download(attachmentData.docPath)\r\n .subscribe(blob => {\r\n const a = document.createElement('a')\r\n const objectUrl = URL.createObjectURL(blob)\r\n a.href = objectUrl\r\n a.download = 'archive.zip';\r\n a.click();\r\n URL.revokeObjectURL(objectUrl);\r\n })\r\n\r\n }\r\n }\r\n\r\n deleteAttachment(attachmentData) {\r\n // confirmation message\r\n this.modalService\r\n .open(new ConfirmModal(MessageSetting.patient.deleteAttachmentConfirmation, ''))\r\n .onApprove(() => {\r\n attachmentData.isLoader_AttachmentOperation = true;\r\n this.patientUploadsService.deleteAttachment(attachmentData.id, this.patientData.id).subscribe(\r\n a => {\r\n attachmentData.isLoader_AttachmentOperation = false;\r\n this.fetchAttachments();\r\n this.toastData = this.toasterService.success(MessageSetting.patient.deleteAttachment);\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(MessageSetting.patient.deleteAttachment);\r\n }, 5000);\r\n },\r\n error => {\r\n attachmentData.isLoader_AttachmentOperation = false;\r\n this.checkException(error);\r\n }\r\n );\r\n });\r\n }\r\n // View add attachment Modal\r\n public openLinkAttachmentModal(dynamicContent: string = 'Example') {\r\n // To avoid opening of multiple modal\r\n if (this.ifModalOpened) {\r\n return;\r\n }\r\n this.ifModalOpened = true;\r\n const config = new TemplateModalConfig(this.modalLinkAttach);\r\n config.closeResult = 'closed!';\r\n config.context = { data: dynamicContent };\r\n config.size = 'tiny';\r\n config.isClosable = false;\r\n this.modalService\r\n .open(config)\r\n .onApprove((result: any) => {\r\n this.ifModalOpened = false;\r\n this.ngOnInit();\r\n const scroll = document.querySelector('#initialLoad');\r\n setTimeout(() => {\r\n scroll.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' });\r\n }, 400);\r\n /* approve callback */\r\n })\r\n .onDeny((result) => {\r\n this.ifModalOpened = false;\r\n this.inputDataForLinkAttachment = {};\r\n const scroll = document.querySelector('#initialLoad');\r\n setTimeout(() => {\r\n scroll.scrollIntoView({ behavior: 'smooth', block: 'start', inline: 'start' });\r\n }, 400);\r\n });\r\n }\r\n\r\n outputDataFromLinkOperation(OutputData) {\r\n if (OutputData.error) {\r\n this.closeWizard.nativeElement.click();\r\n } else {\r\n this.closeWizard.nativeElement.click();\r\n if (OutputData.isLinked !== undefined) {\r\n this.toastData = this.toasterService.success(MessageSetting.patient.attachmentLink);\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(MessageSetting.patient.attachmentLink);\r\n }, 5000);\r\n this.fetchAttachments();\r\n }\r\n\r\n }\r\n }\r\n\r\n styleCardForDashboard() {\r\n return {\r\n 'margin': this.loggedInUserData.userType === UserTypeEnum.PATIENT ? '5px' : '',\r\n 'max-width': this.loggedInUserData.userType === UserTypeEnum.PATIENT ? '210px' : ''\r\n };\r\n }\r\n\r\n checkException(error) {\r\n if (error.status === 403 && error.error.message !== 'User is not authorized to access this resource') {\r\n this.commonService.logOut();\r\n } else {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 5000);\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n {{'settings.changePassword.changePassword' | translate}}\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{formErrors.oldPassword}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{formErrors.newPassword}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{formErrors.confirmPassword}}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{formErrors.oldPassword}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{formErrors.newPassword}}\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{formErrors.confirmPassword}}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zaGFyZWQvY2hhbmdlLXBhc3N3b3JkL2NoYW5nZS1wYXNzd29yZC5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ChangePasswordService } from '../../../services/api/change-password.service';\r\nimport { ValidationConstant } from '../../../services/validation/validation.constant';\r\nimport { FormBuilder, Validators } from '../../../../../node_modules/@angular/forms';\r\nimport { PasswordValidation } from '../../../common/validation/validation';\r\nimport { Validator } from '../../../common/validation/validator';\r\nimport { ToasterService } from '../../../services/api/toaster.service';\r\nimport { MessageSetting } from '../../../common/constants/message-setting.constant';\r\nimport { StorageService } from '../../../services/session/storage.service';\r\nimport { StorageType } from '../../../services/session/storage.enum';\r\nimport { Exception } from '../../../common/exceptions/exception';\r\nimport { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\n\r\n@Component({\r\n selector: 'app-change-password',\r\n templateUrl: './change-password.component.html',\r\n styleUrls: ['./change-password.component.scss']\r\n})\r\nexport class ChangePasswordComponent implements OnInit {\r\n // Form variables\r\n validator: Validator;\r\n changePasswordForm: any;\r\n formErrors: any = {};\r\n\r\n // Loaders\r\n isLoader = false;\r\n\r\n // Other\r\n toastData: any;\r\n showOldPassword: any;\r\n showNewPassword: any;\r\n showConfirmPassword: any;\r\n loggedInUserData;\r\n\r\n\r\n config = {\r\n oldPassword: {\r\n required: { name: ValidationConstant.changePassword.oldPassword.name },\r\n maxlength: {\r\n name: ValidationConstant.changePassword.oldPassword.name,\r\n max: ValidationConstant.changePassword.oldPassword.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.changePassword.oldPassword.name,\r\n min: ValidationConstant.changePassword.oldPassword.minLength.toString()\r\n }\r\n },\r\n newPassword: {\r\n required: { name: ValidationConstant.changePassword.newPassword.name },\r\n maxlength: {\r\n name: ValidationConstant.changePassword.newPassword.name,\r\n max: ValidationConstant.changePassword.newPassword.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.changePassword.newPassword.name,\r\n min: ValidationConstant.changePassword.newPassword.minLength.toString()\r\n },\r\n matchPassword: { name: 'Password' },\r\n blankPassword: { name: 'Password' }\r\n },\r\n confirmPassword: {\r\n required: { name: ValidationConstant.changePassword.confirmPassword.name },\r\n maxlength: {\r\n name: ValidationConstant.changePassword.confirmPassword.name,\r\n max: ValidationConstant.changePassword.confirmPassword.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.changePassword.confirmPassword.name,\r\n min: ValidationConstant.changePassword.confirmPassword.minLength.toString()\r\n },\r\n matchPassword: { name: 'Password' },\r\n blankPassword: { name: 'Password' }\r\n }\r\n };\r\n\r\n constructor(private formBuilder: FormBuilder,\r\n private toasterService: ToasterService,\r\n private storageService: StorageService,\r\n private commonService: CommonService,\r\n private changePasswordService: ChangePasswordService) {\r\n this.validator = new Validator(this.config);\r\n }\r\n\r\n ngOnInit() {\r\n this.loggedInUserData = this.commonService.getLoggedInData();\r\n this.changePasswordForm = this.formBuilder.group(\r\n {\r\n oldPassword: ['', [Validators.required,\r\n Validators.maxLength(ValidationConstant.changePassword.oldPassword.maxLength),\r\n Validators.minLength(ValidationConstant.changePassword.oldPassword.minLength)]\r\n ],\r\n newPassword: ['', [Validators.required,\r\n Validators.maxLength(ValidationConstant.changePassword.newPassword.maxLength),\r\n Validators.minLength(ValidationConstant.changePassword.newPassword.minLength)]\r\n ],\r\n confirmPassword: ['', [Validators.required,\r\n Validators.maxLength(ValidationConstant.changePassword.confirmPassword.maxLength),\r\n Validators.minLength(ValidationConstant.changePassword.confirmPassword.minLength)]\r\n ]\r\n },\r\n {\r\n validator: PasswordValidation.MatchPassword // custom validator\r\n }\r\n );\r\n\r\n this.changePasswordForm.valueChanges.subscribe(data =>\r\n this.onValueChanged(data)\r\n );\r\n }\r\n\r\n onValueChanged(data?: any) {\r\n if (!this.changePasswordForm) {\r\n return;\r\n }\r\n this.formErrors = this.validator.validate(this.changePasswordForm);\r\n }\r\n\r\n changePassword() {\r\n this.validator.validateAllFormFields(this.changePasswordForm);\r\n this.formErrors = this.validator.validate(this.changePasswordForm);\r\n if (this.changePasswordForm.invalid) {\r\n return;\r\n }\r\n try {\r\n if (this.changePasswordForm.controls['oldPassword'].value === this.changePasswordForm.controls['newPassword'].value) {\r\n this.toastData = this.toasterService.error(MessageSetting.common.errorNewPaaswordSameAsOldPassword);\r\n return;\r\n }\r\n this.isLoader = true;\r\n const loggedInUserData = this.commonService.getLoggedInData();\r\n\r\n let reqObj = {};\r\n const settingData = JSON.parse(this.storageService.get(StorageType.session, 'settingsData'));\r\n if (settingData !== null && settingData.providerName !== undefined) {\r\n reqObj = {\r\n oldPassword: this.changePasswordForm.controls['oldPassword'].value,\r\n newPassword: this.changePasswordForm.controls['newPassword'].value,\r\n isReset: false,\r\n userType: loggedInUserData.userType,\r\n providerSuffix: settingData.providerName\r\n };\r\n } else {\r\n reqObj = {\r\n oldPassword: this.changePasswordForm.controls['oldPassword'].value,\r\n newPassword: this.changePasswordForm.controls['newPassword'].value,\r\n isReset: false,\r\n userType: loggedInUserData.userType,\r\n };\r\n }\r\n\r\n // tslint:disable-next-line:max-line-length\r\n this.changePasswordService.changePassword(reqObj, loggedInUserData.id, loggedInUserData.userType, loggedInUserData.parentID).subscribe(\r\n response => {\r\n this.toastData = this.toasterService.success(MessageSetting.common.updatePasswordMessage);\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(MessageSetting.common.updatePasswordMessage);\r\n //this.router.navigate(['/login']);\r\n }, 5000);\r\n this.changePasswordForm.reset();\r\n this.isLoader = false;\r\n },\r\n error => {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.isLoader = false;\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n if (error.error != undefined && error.error.message != undefined && error.error.message == \"Key_MatchingPassword\") {\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 10000);\r\n } else {\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 5000);\r\n\r\n }\r\n }\r\n );\r\n } catch (e) {\r\n this.isLoader = false;\r\n this.toastData = this.toasterService.error(MessageSetting.common.error);\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(MessageSetting.common.error);\r\n }, 5000);\r\n }\r\n }\r\n\r\n toggleShow(data) {\r\n if (data === 'showOldPassword') {\r\n this.showOldPassword = !this.showOldPassword;\r\n } else if (data === 'showNewPassword') {\r\n this.showNewPassword = !this.showNewPassword;\r\n } else {\r\n this.showConfirmPassword = !this.showConfirmPassword;\r\n }\r\n }\r\n\r\n\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
{{'common.processing' | translate}}
\\r\\n
\\r\\n

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n {{item.name}}\\r\\n  \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n 0\\\">\\r\\n
\\r\\n {{item.name}}\\r\\n
\\r\\n
\\r\\n \\r\\n
No Data Found
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n {{duplicateTagError}}\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zaGFyZWQvY3VzdG9tLXByb2R1Y3QtdGFncy9jdXN0b20tcHJvZHVjdC10YWdzLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, EventEmitter, Input, Output, ViewChild, SimpleChanges, HostListener, OnChanges } from \"@angular/core\";\r\nimport { AutoCompleteDirective } from 'src/app/common/directive/auto-complete.directive';\r\nimport { ProductService } from 'src/app/services/api/product.service';\r\nimport { ToasterService } from 'src/app/services/api/toaster.service';\r\nimport { Exception } from 'src/app/common/exceptions/exception';\r\nimport { MessageSetting } from 'src/app/common/constants/message-setting.constant';\r\n\r\n@Component({\r\n selector: 'app-custom-product-tags',\r\n templateUrl: './custom-product-tags.component.html',\r\n styleUrls: ['./custom-product-tags.component.scss']\r\n})\r\nexport class CustomProductTagsComponent implements OnInit, OnChanges {\r\n data: any[] = [];\r\n flag = true;\r\n showInput = false;\r\n chips = [];\r\n filterData = [];\r\n item;\r\n overlayModalFlag = false;\r\n duplicateTagError;\r\n duplicateTagErrorFlag = false;\r\n @Input() InputData;\r\n @Output() emitter: EventEmitter = new EventEmitter();\r\n @ViewChild(AutoCompleteDirective) overlayEle: AutoCompleteDirective;\r\n @Output() OutputData = new EventEmitter;\r\n @Input() closeFlag;\r\n toastData: any;\r\n isLoader = false;\r\n checkOnEnterClickFlag = false;\r\n dropdownSelectFlag = false;\r\n\r\n constructor(private productService: ProductService,\r\n private toasterService: ToasterService) { }\r\n\r\n ngOnInit() {\r\n this.getAllTagList();\r\n }\r\n\r\n focusOutEvent(event) {\r\n if (event.relatedTarget === null || (event.relatedTarget && event.relatedTarget.nodeName !== 'BUTTON')) {\r\n setTimeout(() => {\r\n if (!this.checkOnEnterClickFlag && event.target.value && !this.dropdownSelectFlag) {\r\n this.addNewItem(event.target.value);\r\n this.showInput = false;\r\n this.flag = true;\r\n if (this.overlayEle !== undefined && this.overlayEle.isOpened !== undefined && this.overlayEle.isOpened) {\r\n this.overlayEle.hide();\r\n }\r\n }\r\n }, 100);\r\n }\r\n }\r\n\r\n inputFocusEvent(event) {\r\n this.dropdownSelectFlag = false;\r\n }\r\n\r\n @HostListener('click', ['$event'])\r\n outsideClickFun = (e) => {\r\n if (e.target.type !== 'text' && this.overlayEle !== undefined && this.overlayEle.isOpened !== undefined && this.overlayEle.isOpened) {\r\n this.overlayEle.hide();\r\n this.showInput = false;\r\n this.flag = true;\r\n }\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges) {\r\n if ('closeFlag' in changes) {\r\n this.closeOverlay();\r\n this.showInput = false;\r\n this.flag = true;\r\n }\r\n }\r\n\r\n closeOverlay() {\r\n if (this.overlayEle) {\r\n this.overlayEle.hide();\r\n this.overlayModalFlag = false;\r\n this.OutputData.emit(this.overlayModalFlag);\r\n }\r\n }\r\n\r\n getAllTagList() {\r\n this.isLoader = true;\r\n this.productService.getAllLookupTags().subscribe((res: any) => {\r\n if (this.InputData.tagData !== undefined && this.InputData.tagData.tags !== undefined) {\r\n this.InputData.tagData.tags.forEach((ele) => {\r\n ele.name = ele.name;\r\n ele.id = ele.id;\r\n });\r\n const selTags = Object.assign([], this.InputData.tagData.tags);\r\n this.chips = selTags;\r\n this.data = this.getfiltertedTags(res, selTags);\r\n this.filterData = this.data;\r\n this.isLoader = false;\r\n } else {\r\n this.data = res;\r\n this.filterData = this.data;\r\n this.isLoader = false;\r\n }\r\n },\r\n error => {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n this.isLoader = false;\r\n });\r\n }\r\n\r\n getfiltertedTags(arr1, arr2) {\r\n const uniques = arr1.filter(o => !arr2.find(o2 => o.id === o2.id));\r\n return uniques;\r\n }\r\n\r\n showAutocomplete() {\r\n this.showInput = true;\r\n this.flag = false;\r\n this.item = '';\r\n this.filterData = this.data;\r\n this.duplicateTagErrorFlag = false;\r\n this.overlayModalFlag = true;\r\n this.OutputData.emit(this.overlayModalFlag);\r\n }\r\n\r\n /* autocomplete search */\r\n selectedItem = (val) => {\r\n this.dropdownSelectFlag = true;\r\n this.chips.push(val);\r\n this.removeItems(this.data, val);\r\n this.showComp();\r\n this.filterData = this.data;\r\n this.item = '';\r\n this.duplicateTagErrorFlag = false;\r\n }\r\n\r\n addNewItem = (val) => {\r\n const allTagsList = this.data.concat(this.chips);\r\n const duplicateName = allTagsList.some((ele) => {\r\n return (ele.name).toLowerCase() === val.trim().toLowerCase();\r\n });\r\n this.duplicateTagErrorFlag = (duplicateName) ? true : false;\r\n if (!duplicateName) {\r\n const obj = { id: 0, name: val };\r\n this.chips.push(obj);\r\n this.emitter.emit(obj.name);\r\n } else {\r\n this.duplicateTagError = MessageSetting.product.duplicateTag;\r\n return false;\r\n }\r\n }\r\n\r\n filterItems = (items) => {\r\n this.filterData = items;\r\n }\r\n\r\n /* remove tag item */\r\n closeItem = (val) => {\r\n this.duplicateTagErrorFlag = false;\r\n if (val.id !== 0) {\r\n this.data.push(val);\r\n }\r\n this.removeItems(this.chips, val);\r\n this.showComp();\r\n this.filterData = this.data;\r\n if (this.overlayEle) {\r\n this.overlayEle.hide();\r\n }\r\n }\r\n\r\n removeItems(arr: string[], val: string) {\r\n const index = arr.indexOf(val);\r\n if (index > -1) {\r\n arr.splice(index, 1);\r\n }\r\n }\r\n\r\n checkOnenter(e) {\r\n if (e.keyCode === 13) {\r\n this.checkOnEnterClickFlag = true;\r\n if (e.target.value) {\r\n this.showComp();\r\n this.item = '';\r\n this.filterData = this.data;\r\n }\r\n } else {\r\n this.checkOnEnterClickFlag = false;\r\n }\r\n }\r\n\r\n showComp() {\r\n this.showInput = false;\r\n this.flag = true;\r\n }\r\n\r\n sendSelectedTagList() {\r\n this.dropdownSelectFlag = true;\r\n if (this.item) {\r\n this.addNewItem(this.item);\r\n this.showInput = false;\r\n this.flag = true;\r\n }\r\n return this.chips;\r\n }\r\n}\r\n","module.exports = \"\\r\\n\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n Email Settings\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{emailSettingsFormErrors.FromEmail}}\\r\\n \\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'emailSettings.emailVerify.approveHeader' | translate }} ({{ savedFromEmail }})\\r\\n
\\r\\n

{{ 'emailSettings.emailVerify.approveBody' | translate }}

\\r\\n
\\r\\n \\r\\n
\\r\\n {{ 'emailSettings.emailVerify.verifyHeader' | translate }} ({{ savedFromEmail }})\\r\\n
\\r\\n

{{ 'emailSettings.emailVerify.verifyBody' | translate }}

\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n {{emailSettingsFormErrors.Phone}}\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n\\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zaGFyZWQvZW1haWwtc2V0dGluZ3MvZW1haWwtc2V0dGluZ3MuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ValidationConstant } from '../../../services/validation/validation.constant';\r\nimport { FormBuilder, Validators } from '../../../../../node_modules/@angular/forms';\r\nimport { Validator } from '../../../common/validation/validator';\r\nimport { ToasterService } from '../../../services/api/toaster.service';\r\nimport { MessageSetting } from '../../../common/constants/message-setting.constant';\r\nimport { StorageService } from '../../../services/session/storage.service';\r\nimport { Exception } from '../../../common/exceptions/exception';\r\nimport { EmailSettingsService } from 'src/app/services/api/email-settings.service';\r\nimport { SettingsService } from 'src/app/services/api/settings.service';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\n\r\n@Component({\r\n selector: 'app-email-settings',\r\n templateUrl: './email-settings.component.html',\r\n styleUrls: ['./email-settings.component.scss']\r\n})\r\nexport class EmailSettingsComponent implements OnInit {\r\n\r\n inputDataForUploadLogo: any = {\r\n initiator: 'EmailSettings'\r\n };\r\n\r\n // Form variables\r\n validator: Validator;\r\n emailSettingsForm: any;\r\n emailSettingsFormErrors: any = {};\r\n // Loaders\r\n isLoader = false;\r\n verifyLoader = false;\r\n\r\n // Other\r\n toastData: any;\r\n logoUrl: any;\r\n inputValidation = ValidationConstant;\r\n\r\n isEmailVerified = true;\r\n emailVerificationSent = false;\r\n\r\n config = {\r\n 'Phone': {\r\n required: { name: ValidationConstant.emailSettings.add.phone.name },\r\n maxlength: {\r\n name: ValidationConstant.emailSettings.add.phone.name,\r\n max: ValidationConstant.emailSettings.add.phone.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.emailSettings.add.phone.name,\r\n min: ValidationConstant.emailSettings.add.phone.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.emailSettings.add.phone.name }\r\n },\r\n 'FromEmail': {\r\n required: { name: ValidationConstant.emailSettings.add.fromEmail.name },\r\n maxlength: {\r\n name: ValidationConstant.emailSettings.add.fromEmail.name,\r\n max: ValidationConstant.emailSettings.add.fromEmail.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.emailSettings.add.fromEmail.name,\r\n min: ValidationConstant.emailSettings.add.fromEmail.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.emailSettings.add.fromEmail.name }\r\n },\r\n 'ContactEmail': {\r\n required: { name: ValidationConstant.emailSettings.add.contactEmail.name },\r\n maxlength: {\r\n name: ValidationConstant.emailSettings.add.contactEmail.name,\r\n max: ValidationConstant.emailSettings.add.contactEmail.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.emailSettings.add.contactEmail.name,\r\n min: ValidationConstant.emailSettings.add.contactEmail.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.emailSettings.add.contactEmail.name }\r\n },\r\n 'Footer': {\r\n maxlength: {\r\n name: ValidationConstant.emailSettings.add.footer.name,\r\n max: ValidationConstant.emailSettings.add.footer.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.emailSettings.add.footer.name,\r\n min: ValidationConstant.emailSettings.add.footer.minLength.toString()\r\n },\r\n }\r\n };\r\n\r\n savedFromEmail: string;\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private toasterService: ToasterService,\r\n private settingsService: SettingsService,\r\n private emailSettingsService: EmailSettingsService,\r\n private commonService: CommonService\r\n ) {\r\n this.validator = new Validator(this.config);\r\n }\r\n\r\n ngOnInit() {\r\n this.emailSettingsForm = this.formBuilder.group(\r\n {\r\n 'Phone': ['', []],\r\n 'FromEmail': ['', [\r\n Validators.required,\r\n Validators.maxLength(ValidationConstant.emailSettings.add.fromEmail.maxLength),\r\n Validators.pattern(ValidationConstant.email_regex)]],\r\n },\r\n );\r\n\r\n this.emailSettingsForm.valueChanges.subscribe(data =>\r\n this.onValueChanged(data)\r\n );\r\n\r\n this.getEmailSettingsData();\r\n }\r\n\r\n onValueChanged(data?: any) {\r\n if (!this.emailSettingsForm) {\r\n return;\r\n }\r\n this.emailSettingsFormErrors = this.validator.validate(this.emailSettingsForm);\r\n }\r\n\r\n save() {\r\n this.validator.validateAllFormFields(this.emailSettingsForm);\r\n this.emailSettingsFormErrors = this.validator.validate(this.emailSettingsForm);\r\n if (this.emailSettingsForm.invalid) {\r\n return;\r\n }\r\n try {\r\n this.isLoader = true;\r\n const reqObj = {\r\n fromEmail: this.emailSettingsForm.controls['FromEmail'].value,\r\n };\r\n this.emailSettingsService.putEmailSettings(reqObj).subscribe(\r\n response => {\r\n this.getEmailSettingsData();\r\n this.toastData = this.toasterService.success('Email settings saved successfully.');\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster('Email settings saved successfully.');\r\n }, 5000);\r\n\r\n this.isLoader = false;\r\n },\r\n error => {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n }, 5000);\r\n this.isLoader = false;\r\n }\r\n );\r\n } catch (e) {\r\n this.isLoader = false;\r\n this.checkException(e);\r\n }\r\n }\r\n\r\n updateLogo(data) {\r\n this.getEmailSettingsData();\r\n this.toastData = this.toasterService.success('Logo uploaded successfully.');\r\n }\r\n\r\n getEmailSettingsData() {\r\n this.isLoader = true;\r\n\r\n this.settingsService.getSettings().subscribe(\r\n (response: any) => {\r\n\r\n this.emailSettingsForm.get('FromEmail').patchValue(response.fromEmail);\r\n this.emailSettingsForm.get('Phone').patchValue(response.phone);\r\n this.isLoader = false;\r\n this.logoUrl = response.logo;\r\n\r\n this.savedFromEmail = response.fromEmail;\r\n\r\n // trigger verified identity check\r\n this.emailVerificationSent = false;\r\n this.emailSettingsService.isVerifiedIdentity().subscribe((res: any) => {\r\n this.isEmailVerified = res.isEmailVerified;\r\n });\r\n\r\n },\r\n error => {\r\n this.isLoader = false;\r\n this.checkException(error);\r\n }\r\n );\r\n }\r\n\r\n verifyEmail() {\r\n this.verifyLoader = true;\r\n this.emailSettingsService.verifyIdentity({}).subscribe(\r\n (response: any) => {\r\n this.verifyLoader = false;\r\n this.emailVerificationSent = true;\r\n this.savedFromEmail = this.emailSettingsForm.controls['FromEmail'].value;\r\n },\r\n (error) => {\r\n this.verifyLoader = false;\r\n this.checkException(error);\r\n },\r\n );\r\n }\r\n\r\n checkException(error) {\r\n if (error.status === 403 && error.error.message !== 'User is not authorized to access this resource') {\r\n this.commonService.logOut();\r\n } else {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 5000);\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
{{ 'common.processing' | translate }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n

{{ successMessage }}

\\r\\n
\\r\\n
\\r\\n \\r\\n

{{ errorMessage }}

\\r\\n
\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zaGFyZWQvbGluay1hdHRhY2htZW50LXRvLXByb3ZpZGVyL2xpbmstYXR0YWNobWVudC10by1wcm92aWRlci5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { FormArray, FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { Exception } from 'src/app/common/exceptions/exception';\r\nimport { Validator } from 'src/app/common/validation/validator';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\nimport { PatientUploadsService } from 'src/app/services/api/patient-uploads.service';\r\nimport { ToasterService } from 'src/app/services/api/toaster.service';\r\nimport { StorageType } from 'src/app/services/session/storage.enum';\r\nimport { StorageService } from 'src/app/services/session/storage.service';\r\n\r\n@Component({\r\n selector: 'app-link-attachment-to-provider',\r\n templateUrl: './link-attachment-to-provider.component.html',\r\n styleUrls: ['./link-attachment-to-provider.component.scss']\r\n})\r\nexport class LinkAttachmentToProviderComponent implements OnInit {\r\n\r\n @Input() InputData;\r\n @Output() OutputData = new EventEmitter();\r\n\r\n isLoader = false;\r\n toastData: any;\r\n\r\n linkForm: FormGroup;\r\n formError: any = {};\r\n files: File[] = [];\r\n\r\n // Success/Error messages\r\n successMessage = '';\r\n errorMessage = '';\r\n showSuccessMessage = false;\r\n showErrorMessage = false;\r\n\r\n validator: Validator;\r\n\r\n isLoader_UploadProcessing = false;\r\n\r\n config = {};\r\n\r\n loggedInUserData: any = {};\r\n providerList;\r\n\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private commonService: CommonService,\r\n private storageService: StorageService,\r\n private toasterService: ToasterService,\r\n private patientUploadsService: PatientUploadsService\r\n ) {\r\n this.validator = new Validator(this.config);\r\n }\r\n\r\n ngOnInit() {\r\n this.loggedInUserData = this.commonService.getLoggedInData();\r\n\r\n this.linkForm = this.formBuilder.group({});\r\n this.linkForm.addControl('ProviderIds', new FormArray([]));\r\n\r\n this.providerList = JSON.parse(\r\n this.storageService.get(StorageType.session, \"providerList\")\r\n );\r\n\r\n }\r\n\r\n onCheckChange(event) {\r\n const formArray: FormArray = this.linkForm.get('ProviderIds') as FormArray;\r\n if (event.target.checked) {\r\n formArray.push(new FormControl(event.target.value));\r\n }\r\n else {\r\n let i: number = 0;\r\n formArray.controls.forEach((ctrl: FormControl) => {\r\n if (ctrl.value == event.target.value) {\r\n // Remove the unselected element from the arrayForm\r\n formArray.removeAt(i);\r\n return;\r\n }\r\n i++;\r\n });\r\n }\r\n\r\n }\r\n\r\n submit() {\r\n\r\n this.validator.validateAllFormFields(this.linkForm);\r\n this.formError = this.validator.validate(this.linkForm);\r\n\r\n if (this.linkForm.invalid) {\r\n return;\r\n }\r\n\r\n // this.isLoader_UploadProcessing = true;\r\n\r\n const reqObj: any = {};\r\n console.log(this.linkForm.value.ProviderIds)\r\n reqObj.providersList = this.linkForm.value.ProviderIds.map(x => x).join(\",\");\r\n reqObj.docId = this.InputData.attachment.id;\r\n\r\n this.patientUploadsService.linkProviderToAttachment(reqObj, this.InputData.patientData.id)\r\n .subscribe(\r\n (response: any) => {\r\n this.isLoader_UploadProcessing = false;\r\n response.isLinked = true;\r\n this.OutputData.emit(response);\r\n },\r\n error => {\r\n this.isLoader_UploadProcessing = false;\r\n this.checkException(error);\r\n }\r\n );\r\n }\r\n\r\n cancel() {\r\n this.OutputData.emit({});\r\n }\r\n\r\n checkException(error) {\r\n if (error.status === 403 && error.error.message !== 'User is not authorized to access this resource') {\r\n this.commonService.logOut();\r\n } else {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n this.errorMessage = toastMessage.join(', ');\r\n this.showSuccessMessage = false;\r\n this.showErrorMessage = true;\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n {{'Notification Settings' | translate}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
Loading
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
{{'common.processing' | translate}}
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
{{'Feature Name' | translate}}\\r\\n \\r\\n {{smsModule.name| translate}}\\r\\n \\r\\n \\r\\n \\r\\n {{emailModule.name | translate}}\\r\\n \\r\\n
{{feature.featureName}}\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zaGFyZWQvbm90aWZpY2F0aW9uLXNldHRpbmdzL25vdGlmaWNhdGlvbi1zZXR0aW5ncy5jb21wb25lbnQuc2NzcyJ9 */\"","import { Component, OnInit } from '@angular/core';\r\nimport { Exception } from 'src/app/common/exceptions/exception';\r\nimport { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\nimport { AccessRightsService } from 'src/app/services/api/access-rights.service';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\nimport { FeaturesAccessService } from 'src/app/services/api/features-access.service';\r\nimport { ToasterService } from 'src/app/services/api/toaster.service';\r\n\r\n@Component({\r\n selector: 'app-notification-settings',\r\n templateUrl: './notification-settings.component.html',\r\n styleUrls: ['./notification-settings.component.scss']\r\n})\r\nexport class NotificationSettingsComponent implements OnInit {\r\n\r\n //Loaders\r\n isLoader_moduleList = false;\r\n isLoader_processing = false;\r\n\r\n toastData: any;\r\n loggedInUserData: any = {};\r\n\r\n moduleList: any = [];\r\n smsModule: any = [];\r\n emailModule: any = [];\r\n featureList: any = [];\r\n\r\n constructor(\r\n private accessRightsService: AccessRightsService,\r\n private toasterService: ToasterService,\r\n private commonService: CommonService,\r\n private featuresAccessService: FeaturesAccessService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.loggedInUserData = this.commonService.getLoggedInData();\r\n this.getModuleConfig();\r\n }\r\n\r\n getModuleConfig() {\r\n\r\n this.isLoader_moduleList = true;\r\n\r\n this.accessRightsService.getModuleConfig(this.loggedInUserData.parentId).subscribe(\r\n (moduleConfigResponse: any) => {\r\n this.moduleList = moduleConfigResponse.data;\r\n this.smsModule = this.moduleList.find(x => x.moduleId === 12);\r\n this.emailModule = this.moduleList.find(x => x.moduleId === 13);\r\n this.getFeatureConfig();\r\n\r\n },\r\n error => {\r\n this.isLoader_moduleList = false;\r\n this.checkException(error);\r\n });\r\n }\r\n\r\n getFeatureConfig() {\r\n this.isLoader_moduleList = true;\r\n let reqObj: any = {};\r\n this.accessRightsService.getfeatureConfig(reqObj, this.loggedInUserData.parentId).subscribe(\r\n (featureConfigResponse: any) => {\r\n this.featureList = featureConfigResponse.data;\r\n this.isLoader_moduleList = false;\r\n },\r\n error => {\r\n this.isLoader_moduleList = false;\r\n this.checkException(error);\r\n });\r\n }\r\n\r\n\r\n updateModuleConfig(event, module) {\r\n\r\n module.hasAccess = event;\r\n\r\n let list: any = [];\r\n list.push({\r\n id: module.id,\r\n moduleId: module.moduleId,\r\n userType: UserTypeEnum.PROVIDER,\r\n hasAccess: Boolean(JSON.parse(module.hasAccess))\r\n });\r\n\r\n const reqObj = {\r\n moduleConfig: list\r\n }\r\n\r\n this.isLoader_processing = true;\r\n\r\n this.featuresAccessService.postModuleAccess(reqObj, this.loggedInUserData.parentId).subscribe(\r\n response => {\r\n this.isLoader_processing = false;\r\n },\r\n error => {\r\n module.hasAccess = !event;\r\n this.isLoader_processing = false;\r\n this.checkException(error);\r\n });\r\n\r\n }\r\n\r\n updateFeatureConfig(event, feature, type) {\r\n\r\n let featureObj: any = {\r\n \"featureId\": feature.featureId,\r\n \"moduleId\": feature.moduleId,\r\n \"isSmsEnabled\": Boolean(JSON.parse(feature.isSmsEnabled)),\r\n \"isEmailEnabled\": Boolean(JSON.parse(feature.isEmailEnabled))\r\n };\r\n\r\n if (feature.id !== undefined) {\r\n featureObj.id = feature.id\r\n }\r\n\r\n let reqObj = {\r\n featureConfig: []\r\n }\r\n reqObj.featureConfig.push(featureObj);\r\n\r\n this.isLoader_processing = true;\r\n\r\n this.featuresAccessService.postFeatureAccess(reqObj, this.loggedInUserData.parentId).subscribe(\r\n (response: any) => {\r\n this.featureList = response.data;\r\n this.isLoader_processing = false;\r\n },\r\n (error) => {\r\n if (type == 'isSms') {\r\n feature.isSmsEnabled = !feature.isSmsEnabled;\r\n } else if (type == 'isEmail') {\r\n feature.isEmailEnabled = !feature.isEmailEnabled;\r\n }\r\n this.isLoader_processing = false;\r\n this.checkException(error);\r\n });\r\n\r\n }\r\n\r\n checkException(error) {\r\n if (error.status === 403 && error.error.message !== 'User is not authorized to access this resource') {\r\n this.commonService.logOut();\r\n } else {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n setTimeout(() => {\r\n this.toastData = this.toasterService.closeToaster(toastMessage.join(', '));\r\n }, 5000);\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"
    \\r\\n pager.resultPerPage\\\">\\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
  • \\r\\n \\r\\n
  • \\r\\n
    \\r\\n
    0\\\">\\r\\n
    \\r\\n showing {{pager.startRecord}} to {{pager.endRecord}} of {{pager.totalResults}}\\r\\n
    \\r\\n
    \\r\\n
\"","module.exports = \"ul.pagination li.disabled {\\n pointer-events: none; }\\n\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvbW9kdWxlL3NoYXJlZC9wYWdpbmF0aW9uL0M6XFxoZWxsb3BhdGllbnRzXFxIUFRVSS9zcmNcXGFwcFxcbW9kdWxlXFxzaGFyZWRcXHBhZ2luYXRpb25cXHBhZ2luYXRpb24uY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxvQkFBb0IsRUFBQSIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zaGFyZWQvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsidWwucGFnaW5hdGlvbiBsaS5kaXNhYmxlZHtcclxuICAgIHBvaW50ZXItZXZlbnRzOiBub25lO1xyXG59Il19 */\"","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { Pager } from 'src/app/services/api/common.service';\r\n\r\n@Component({\r\n selector: 'app-pagination',\r\n templateUrl: './pagination.component.html',\r\n styleUrls: ['./pagination.component.scss']\r\n})\r\nexport class PaginationComponent implements OnInit {\r\n\r\n @Input() pager: Pager;\r\n @Output() OutputData = new EventEmitter;\r\n\r\n constructor() { }\r\n\r\n ngOnInit() { }\r\n\r\n capturePageClick(pageNumber) {\r\n this.OutputData.emit(pageNumber)\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n {{'settings.provider.skins' | translate}}\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zaGFyZWQvc2tpbi9za2luLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\nimport { ToasterService } from '../../../services/api/toaster.service';\r\nimport { SettingsService } from '../../../services/api/settings.service';\r\nimport { Exception } from '../../../common/exceptions/exception';\r\nimport { ThemeService } from '../../../services/api/theme.service';\r\nimport { MessageSetting } from 'src/app/common/constants/message-setting.constant';\r\n\r\n@Component({\r\n selector: 'app-skin',\r\n templateUrl: './skin.component.html',\r\n styleUrls: ['./skin.component.scss']\r\n})\r\nexport class SkinComponent implements OnInit {\r\n isLoader = false;\r\n toastData: any;\r\n selectedSkin = 7;\r\n\r\n constructor(private toasterService: ToasterService,\r\n private settingsService: SettingsService,\r\n private themeService: ThemeService,\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.settingsService.getSettingsData().subscribe((value) => {\r\n if(value!=undefined)\r\n {\r\n this.selectedSkin = value.skin;\r\n this.themeService.changeTheme(this.selectedSkin);\r\n }\r\n \r\n });\r\n }\r\n\r\n onSkinChange(selectedSkin) {\r\n this.selectedSkin = selectedSkin;\r\n this.themeService.changeTheme(this.selectedSkin);\r\n this.apply();\r\n }\r\n\r\n apply() {\r\n this.isLoader = true;\r\n const reqObj = {\r\n skin: this.selectedSkin\r\n };\r\n this.settingsService.putProviderSettingsSkin(reqObj).subscribe(\r\n (response: any) => {\r\n this.settingsService.getSettings().subscribe(\r\n response1 => {\r\n //response.logo = 'http://hptui.s3-website.us-east-2.amazonaws.com/assets/images/logo_login.png';\r\n this.settingsService.setSettingsData(response1);\r\n this.isLoader = false;\r\n },\r\n error => {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n this.isLoader = false;\r\n }\r\n );\r\n this.isLoader = false;\r\n },\r\n error => {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n this.isLoader = false;\r\n });\r\n }\r\n\r\n reset() {\r\n this.selectedSkin = 7; //DEFAULT SKIN\r\n this.themeService.changeTheme(this.selectedSkin);\r\n this.apply();\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n \\r\\n
\\r\\n {{toaster.message}}\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zaGFyZWQvdG9hc3Rlci90b2FzdGVyLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit, Input } from '@angular/core';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { trigger, transition, style, animate, state } from '@angular/animations';\r\nimport { Router } from '../../../../../node_modules/@angular/router';\r\nimport { filter } from 'rxjs/operators';\r\n\r\n@Component({\r\n selector: 'app-toaster',\r\n templateUrl: './toaster.component.html',\r\n styleUrls: ['./toaster.component.scss']\r\n})\r\nexport class ToasterComponent implements OnInit {\r\n isSuccess: any;\r\n redirectLink: '';\r\n @Input() toaster: any;\r\n constructor(private route: Router) {}\r\n ngOnInit() {\r\n this.isSuccess = false;\r\n if (!this.toaster) {\r\n this.toaster = {\r\n isShow: false,\r\n message: ''\r\n };\r\n }\r\n }\r\n getClassName(): string {\r\n //console.log(this.toaster)\r\n if (this.toaster.message === '') {\r\n return 'toaster';\r\n } else if (this.toaster.isShow && this.toaster.messageType === 0) {\r\n return 'down toaster-s toaster';\r\n } else if (!this.toaster.isShow && this.toaster.messageType === 0) {\r\n return 'toaster-s toaster up';\r\n } else if (!this.toaster.isShow && this.toaster.messageType === 1) {\r\n return 'toaster-e toaster up';\r\n } else if (this.toaster.isShow && this.toaster.messageType === 1) {\r\n return 'down toaster-e toaster';\r\n }else if (this.toaster.isShow && this.toaster.messageType === 3) {\r\n return 'toaster-e toaster up';\r\n }else if (this.toaster.isShow && this.toaster.messageType === 3) {\r\n return 'down toaster-e toaster';\r\n }\r\n return '';\r\n }\r\n\r\n hideToaster() {\r\n this.toaster.isShow = false;\r\n if (this.toaster.redirectLink) {\r\n this.route.navigate([this.toaster.redirectLink], { queryParams: filter, skipLocationChange: true});\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
{{ 'common.processing' | translate }}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n

{{ successMessage }}

\\r\\n
\\r\\n
\\r\\n \\r\\n

{{ errorMessage }}

\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{ 'attachment.add.browse' | translate }}\\r\\n \\r\\n {{ f.name }}\\r\\n \\r\\n \\r\\n {{formError.File}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n {{formError.Description}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n {{formError.Description}}\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zaGFyZWQvdXBsb2FkLWF0dGFjaG1lbnQvdXBsb2FkLWF0dGFjaG1lbnQuY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';\r\nimport { CONTEXT } from '@angular/core/src/render3/interfaces/view';\r\nimport { FormArray, FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';\r\nimport { Exception } from 'src/app/common/exceptions/exception';\r\nimport { Validator } from 'src/app/common/validation/validator';\r\nimport { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\nimport { PatientUploadsService } from 'src/app/services/api/patient-uploads.service';\r\nimport { ToasterService } from 'src/app/services/api/toaster.service';\r\nimport { StorageType } from 'src/app/services/session/storage.enum';\r\nimport { StorageService } from 'src/app/services/session/storage.service';\r\nimport { ValidationConstant } from 'src/app/services/validation/validation.constant';\r\n\r\n\r\nexport interface IOutputUploadFileData {\r\n File: File;\r\n Description: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-upload-attachment',\r\n templateUrl: './upload-attachment.component.html',\r\n styleUrls: ['./upload-attachment.component.scss']\r\n})\r\nexport class UploadAttachmentComponent implements OnInit {\r\n\r\n @Input() patientData;\r\n @Output() OutputData = new EventEmitter();\r\n\r\n isLoader = false;\r\n toastData: any;\r\n\r\n uploadForm: FormGroup;\r\n formError: any = {};\r\n files: File[] = [];\r\n maxFilesUplaodLimit = 5;\r\n maxFileSize = 10;\r\n docTypes = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document, application/msword, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel, text/csv, text/plain, application/pdf, image/png, image/jpeg, image/gif, image/bmp'\r\n\r\n // Success/Error messages\r\n successMessage = '';\r\n errorMessage = '';\r\n showSuccessMessage = false;\r\n showErrorMessage = false;\r\n\r\n validator: Validator;\r\n\r\n isLoader_UploadProcessing = false;\r\n\r\n public userTypeEnum = UserTypeEnum;\r\n\r\n config = {\r\n\r\n 'File': {\r\n required: { name: ValidationConstant.attachment.add.file.name },\r\n pattern: { name: ValidationConstant.attachment.add.file.name }\r\n },\r\n 'Description': {\r\n required: { name: ValidationConstant.attachment.add.description.name },\r\n maxlength: {\r\n name: ValidationConstant.attachment.add.description.name,\r\n max: ValidationConstant.attachment.add.description.maxLength.toString()\r\n },\r\n minlength: {\r\n name: ValidationConstant.attachment.add.description.name,\r\n min: ValidationConstant.attachment.add.description.minLength.toString()\r\n },\r\n pattern: { name: ValidationConstant.attachment.add.description.name }\r\n }\r\n };\r\n\r\n loggedInUserData: any = {};\r\n providerList;\r\n\r\n emailFormArray = [];\r\n\r\n constructor(\r\n private formBuilder: FormBuilder,\r\n private patientUploadsService: PatientUploadsService,\r\n private commonService: CommonService,\r\n private toasterService: ToasterService,\r\n private storageService: StorageService) {\r\n this.validator = new Validator(this.config);\r\n }\r\n\r\n ngOnInit() {\r\n\r\n\r\n this.loggedInUserData = this.commonService.getLoggedInData();\r\n\r\n this.uploadForm = this.formBuilder.group({\r\n File: [null, [Validators.required]],\r\n Description: ['', [Validators.required, Validators.maxLength(225)]],\r\n });\r\n\r\n\r\n\r\n if (this.loggedInUserData.userType === UserTypeEnum.PATIENT) {\r\n this.uploadForm.addControl('ProviderIds', new FormArray([]));\r\n\r\n this.providerList = JSON.parse(\r\n this.storageService.get(StorageType.session, \"providerList\")\r\n );\r\n }\r\n\r\n this.uploadForm.valueChanges.subscribe(data => this.onValueChanges(data));\r\n\r\n }\r\n\r\n onValueChanges(data) {\r\n if (!this.uploadForm) { return; }\r\n this.formError = this.validator.validate(this.formError);\r\n }\r\n\r\n public fileAdded(event) {\r\n // Add files to array\r\n event.addedFiles.forEach(element => {\r\n this.files.push(element);\r\n });\r\n\r\n this.files = this.files.slice(0, this.maxFilesUplaodLimit);\r\n if (this.files.length > 0) {\r\n this.uploadForm.controls.File.patchValue(true);\r\n }\r\n\r\n this.showErrorMessage = false;\r\n this.errorMessage = '';\r\n if (event.rejectedFiles.length > 0) {\r\n this.showErrorMessage = true;\r\n event.rejectedFiles.forEach(element => {\r\n console.log(element.name);\r\n if (element.reason == 'size') {\r\n this.errorMessage = (this.errorMessage != '') ? this.errorMessage + ', ' + element.name + ' file size exceeded the limit' : element.name + ' file size exceeded the limit';\r\n }\r\n if (element.reason == 'type') {\r\n this.errorMessage = (this.errorMessage != '') ? this.errorMessage + ', ' + element.name + ' file type is not accepted' : element.name + ' file type is not accepted';\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n public filesRejected(event) {\r\n // Remove files from array\r\n this.files.splice(this.files.indexOf(event), 1);\r\n if (this.files.length === 0) {\r\n this.uploadForm.controls.File.patchValue(null);\r\n }\r\n }\r\n\r\n onCheckChange(event) {\r\n const formArray: FormArray = this.uploadForm.get('ProviderIds') as FormArray;\r\n if (event.target.checked) {\r\n formArray.push(new FormControl(event.target.value));\r\n }\r\n else {\r\n let i: number = 0;\r\n formArray.controls.forEach((ctrl: FormControl) => {\r\n if (ctrl.value == event.target.value) {\r\n // Remove the unselected element from the arrayForm\r\n formArray.removeAt(i);\r\n return;\r\n }\r\n i++;\r\n });\r\n }\r\n\r\n }\r\n\r\n onUpload() {\r\n\r\n this.validator.validateAllFormFields(this.uploadForm);\r\n this.formError = this.validator.validate(this.uploadForm);\r\n\r\n if (this.uploadForm.invalid) {\r\n return;\r\n }\r\n\r\n this.isLoader_UploadProcessing = true;\r\n\r\n const formData: FormData = new FormData();\r\n this.files.forEach((element, index) => {\r\n formData.append('file' + index, element);\r\n });\r\n formData.append('description', this.uploadForm.value.Description);\r\n if (this.loggedInUserData.userType === UserTypeEnum.PATIENT) {\r\n formData.append('providersList', this.uploadForm.value.ProviderIds);\r\n }\r\n this.patientUploadsService.uploadAttachment(formData, this.patientData.id)\r\n .subscribe(\r\n (response) => {\r\n this.isLoader_UploadProcessing = false;\r\n this.OutputData.emit(response);\r\n },\r\n error => {\r\n this.isLoader_UploadProcessing = false;\r\n this.checkException(error);\r\n }\r\n );\r\n }\r\n\r\n cancel() {\r\n this.OutputData.emit({});\r\n }\r\n\r\n checkException(error) {\r\n if (error.status === 403 && error.error.message !== 'User is not authorized to access this resource') {\r\n this.commonService.logOut();\r\n } else {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n this.errorMessage = toastMessage.join(', ');\r\n this.showSuccessMessage = false;\r\n this.showErrorMessage = true;\r\n }\r\n }\r\n\r\n}\r\n","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
Uploading
\\r\\n \\r\\n Max 5MB size | JPG, PNG or GIF format. Recomended size 200 x 40 Pixels\\r\\n \\r\\n {{ f.name }} ({{ f.type }})\\r\\n \\r\\n \\r\\n\\r\\n \\r\\n
\\r\\n\\r\\n\"","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL21vZHVsZS9zaGFyZWQvdXBsb2FkLWxvZ28vdXBsb2FkLWxvZ28uY29tcG9uZW50LnNjc3MifQ== */\"","import { Component, OnInit, ViewChild, ElementRef, Input, Output, EventEmitter } from '@angular/core';\r\nimport { ToasterService } from '../../../services/api/toaster.service';\r\nimport { SettingsService } from '../../../services/api/settings.service';\r\nimport { Exception } from '../../../common/exceptions/exception';\r\nimport { StorageService } from 'src/app/services/session/storage.service';\r\nimport { StorageType } from 'src/app/services/session/storage.enum';\r\n//import { PartnerService } from 'src/app/services/api/partner.service';\r\nimport { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\nimport { EmailSettingsService } from 'src/app/services/api/email-settings.service';\r\nimport { CommonService } from 'src/app/services/api/common.service';\r\n@Component({\r\n selector: 'app-upload-logo',\r\n templateUrl: './upload-logo.component.html',\r\n styleUrls: ['./upload-logo.component.scss']\r\n})\r\nexport class UploadLogoComponent implements OnInit {\r\n\r\n // Input parameter passed by parent component (InputData.initiator Value)\r\n @Input() InputData: any = {};\r\n\r\n @ViewChild('dropzonereset') dropzone: ElementRef;\r\n isLoader = false;\r\n toastData: any;\r\n providerSettings: any = {};\r\n logoUrl = '';\r\n loggedInUserData: any = {};\r\n @Output() OutputData = new EventEmitter;\r\n files;\r\n\r\n constructor(private toasterService: ToasterService,\r\n private settingsService: SettingsService,\r\n private storageService: StorageService,\r\n //private partnerService: PartnerService,\r\n private commonService: CommonService,\r\n private emailSettingsService: EmailSettingsService) { }\r\n\r\n ngOnInit() {\r\n if (this.InputData.initiator === 'ProviderSettings') {\r\n this.settingsService.getSettingsData().subscribe((value) => {\r\n if (value != undefined) {\r\n this.logoUrl = value.logo;\r\n }\r\n });\r\n }\r\n // if (this.InputData.initiator === 'Partner Logo') {\r\n // this.partnerService.getPartnerLogo(this.InputData.id)\r\n // .subscribe((PartnerResponse: any) => {\r\n // this.logoUrl = PartnerResponse.logo;\r\n // });\r\n // }\r\n // if (this.InputData.initiator === 'EmailSettings') {\r\n // this.logoUrl = this.InputData.logo;\r\n // }\r\n }\r\n\r\n onFilesAdded(event) {\r\n this.isLoader = true;\r\n if (this.InputData.initiator === 'ProviderSettings') {\r\n this.putProviderSettingsLogo(event);\r\n }\r\n }\r\n\r\n onFilesRejected(event) {\r\n console.log('rejected', event);\r\n }\r\n\r\n putProviderSettingsLogo(event) {\r\n this.settingsService.putProviderSettingsLogo(event.addedFiles[0]).subscribe(\r\n response => {\r\n this.settingsService.getSettings().subscribe(\r\n (response1: any) => {\r\n this.logoUrl = response1.logo;\r\n this.storageService.save(StorageType.session, 'settingsData', JSON.stringify(response1));\r\n this.settingsService.setSettingsData(response1);\r\n },\r\n error => {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n this.isLoader = false;\r\n }\r\n );\r\n // this.dropzone.nativeElement.click();\r\n this.toastData = this.toasterService.success('Logo uploaded successfully.');\r\n this.isLoader = false;\r\n },\r\n error => {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n // this.dropzone.nativeElement.click();\r\n this.isLoader = false;\r\n }\r\n );\r\n }\r\n\r\n putPartnerLogo(event) {\r\n // this.loggedInUserData = this.commonService.getLoggedInData();\r\n // this.partnerService.putPartnerLogo(event[0], this.InputData.id).subscribe(\r\n // response => {\r\n // if (this.loggedInUserData.userType === UserTypeEnum.MERCHANT) {\r\n // this.partnerService.getPartnerLogo(this.InputData.id).subscribe(\r\n // (PartnerResponse: any) => {\r\n // this.logoUrl = PartnerResponse.logo;\r\n // });\r\n // } else if (this.loggedInUserData.userType === UserTypeEnum.PARTNER) {\r\n // this.settingsService.getSettings().subscribe(\r\n // (response1: any) => {\r\n // this.logoUrl = response1.logo;\r\n // this.storageService.save(StorageType.session, 'settingsData', JSON.stringify(response1));\r\n // this.settingsService.setSettingsData(response1);\r\n // },\r\n // error => {\r\n // const toastMessage = Exception.exceptionMessage(error);\r\n // this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n // this.dropzone.nativeElement.click();\r\n // this.isLoader = false;\r\n // }\r\n // );\r\n // }\r\n // this.dropzone.nativeElement.click();\r\n // this.toastData = this.toasterService.success('Logo uploaded successfully.');\r\n // this.isLoader = false;\r\n // },\r\n // error => {\r\n // const toastMessage = Exception.exceptionMessage(error);\r\n // this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n // this.dropzone.nativeElement.click();\r\n // this.isLoader = false;\r\n // }\r\n // );\r\n }\r\n\r\n putEmailLogo(event) {\r\n this.loggedInUserData = this.commonService.getLoggedInData();\r\n this.emailSettingsService.putEmailLogo(event[0], this.InputData.id).subscribe(\r\n (response: any) => {\r\n // this.dropzone.nativeElement.click();\r\n this.OutputData.emit(response);\r\n this.isLoader = false;\r\n },\r\n error => {\r\n const toastMessage = Exception.exceptionMessage(error);\r\n this.toastData = this.toasterService.error(toastMessage.join(', '));\r\n // this.dropzone.nativeElement.click();\r\n this.isLoader = false;\r\n }\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\n// import { UserType } from '../enum/storage.enum';\r\n// import { AccessRights } from '../enum/access-rights.enum';\r\n// import { StorageService } from '../common/session/storage.service';\r\n// import { StorageType } from '../common/session/storage.enum';\r\n// import { AppSetting } from '../constant/appsetting.constant';\r\n// import { CommonAPIFuncService } from './common-api-func.service';\r\nimport { BehaviorSubject, Observable, of, throwError } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { StorageService } from '../session/storage.service';\r\nimport { CommonApiFuncService } from './common-api-func.service';\r\nimport { StorageType } from '../session/storage.enum';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\nimport { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\nimport { CommonService } from './common.service';\r\nimport { FeaturesEnum } from 'src/app/enum/features.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AccessRightsService {\r\n loggedInUserData: any = {};\r\n loggedInUserRoleDetails: any = {};\r\n loggedInUserModuleDetails = {};\r\n allowedTransactionTypes: any = {};\r\n loggedInUserModuleDetailsNew = new BehaviorSubject(this.getLoggedInUserModuleDetails());\r\n patientUser = {\r\n '101': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '102': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 1, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '103': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '131': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '132': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '201': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 1, 'modifyAccess': 1, 'viewAccess': 1 }, // Manage_Provider\r\n '202': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 1, 'modifyAccess': 1, 'viewAccess': 1 }, // Manage_Patient\r\n '301': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '302': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '351': { 'addAccess': 0, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '352': { 'addAccess': 0, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '354': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '355': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '401': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 }, // Prefrence_Rate_Plan\r\n '402': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 1, 'modifyAccess': 1, 'viewAccess': 1 }, // Prefrence_Fees\r\n '501': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 }, // Manage_Provider_AllowedTransactionType\r\n '502': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 }, // Manage_Provider_Processor_Config\r\n '503': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 }, // Prefrence_ProviderBilling_Config\r\n '510': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '511': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 }\r\n };\r\n globalAdmin = {\r\n '2101': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '2102': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 1, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '2103': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '2131': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '2132': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 1, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '2161': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '2162': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '2201': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 1, 'modifyAccess': 1, 'viewAccess': 1 }, // Manage_Provider\r\n '2202': { 'addAccess': 1, 'deleteAccess': 0, 'executeAccess': 1, 'modifyAccess': 1, 'viewAccess': 1 }, // Manage_Patient\r\n '2203': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 0, 'viewAccess': 1 }, // ReportAccess_ProviderActivation\r\n '2301': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '2302': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '2303': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '2351': { 'addAccess': 0, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '2352': { 'addAccess': 0, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '2353': { 'addAccess': 0, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '2401': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '2402': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 }, // Defaults_Rate_Plan\r\n '2501': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 }, // Manage_Provider_Processor_Config\r\n '2502': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '2503': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 }, // Manage_Provider_AllowedTransactionType\r\n '2504': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 }, // Prefrence_ProviderBilling_Config\r\n '2505': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 0, 'viewAccess': 1 }, // ReportAccess_ProviderBilling\r\n '2510': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 1, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '2511': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 1, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '2512': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 0, 'viewAccess': 1 }, // ReportAccess_Transaction\r\n };\r\n\r\n providerAdmin = {\r\n '1101': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '1102': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 1, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '1103': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '1201': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 }, // Patient_Management\r\n '1202': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 }, // Patient_Account\r\n '1203': { 'addAccess': 1, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 0, 'viewAccess': 1 },\r\n '1204': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 1, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '1210': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 1, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '1301': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '1351': { 'addAccess': 0, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '1352': { 'addAccess': 0, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '1401': { 'addAccess': 1, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '1402': { 'addAccess': 0, 'deleteAccess': 1, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 },\r\n '1403': { 'addAccess': 1, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 1, 'viewAccess': 1 }, // Transactions\r\n '1501': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 0, 'viewAccess': 1 }, // Allowed Transaction Type\r\n '1502': { 'addAccess': 0, 'deleteAccess': 0, 'executeAccess': 0, 'modifyAccess': 0, 'viewAccess': 1 } // Processor Configuration\r\n };\r\n\r\n constructor(\r\n private storageService: StorageService,\r\n private commonAPIFuncService: CommonApiFuncService,\r\n private commonService: CommonService\r\n ) { }\r\n\r\n getLoggedInData() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'userDetails'));\r\n }\r\n\r\n getloggedInUserRoleDetails() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'userDetails'));\r\n }\r\n\r\n getLoggedInUserModuleDetails() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'moduleDetails'));\r\n }\r\n\r\n setLoggedInUserModuleDetails(data): any {\r\n this.loggedInUserModuleDetailsNew.next(data);\r\n }\r\n\r\n getAllowedTransactionTypesDetails() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'allowedTransactionTypes'));\r\n }\r\n\r\n // Method to check Module Permission\r\n hasModuleAccessRedirect(moduleId) {\r\n // temp code to be removed after API Completion for module access for other entities\r\n if (this.loggedInUserData.userType !== UserTypeEnum.PROVIDER) {\r\n return;\r\n }\r\n // temp code to be removed after API Completion for module access for other entities\r\n this.loggedInUserModuleDetails = this.getLoggedInUserModuleDetails();\r\n if (this.loggedInUserModuleDetails.hasOwnProperty(moduleId) && Boolean(JSON.parse(this.loggedInUserModuleDetails[moduleId]['hasAccess'])) === true) {\r\n return;\r\n } else {\r\n this.storageService.save(StorageType.local, 'unathorizedToAccessResource', JSON.stringify(true));\r\n this.commonService.logOut();\r\n }\r\n }\r\n\r\n // Method to check Module Permission\r\n hasModuleAccess(moduleId) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n this.loggedInUserModuleDetails = this.getLoggedInUserModuleDetails();\r\n // console.log('hasModuleAccess called')\r\n if (this.loggedInUserModuleDetails && this.loggedInUserModuleDetails.hasOwnProperty(moduleId) && Boolean(JSON.parse(this.loggedInUserModuleDetails[moduleId]['hasAccess'])) === true) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n // Method to check Operation Permission\r\n // hasAccess(globalOperationId, patientId, providerOperationId, requiredAccess) {\r\n // this.loggedInUserData = this.getLoggedInData();\r\n // if (this.loggedInUserData.roleId !== null) {\r\n // this.loggedInUserRoleDetails = this.getloggedInUserRoleDetails();\r\n // }\r\n\r\n // if (this.loggedInUserData.userType === 0) { // Patient\r\n // if (this.patientUser.hasOwnProperty(patientId) && this.patientUser[patientId][requiredAccess] === 1) {\r\n // if (this.loggedInUserData.roleId !== null) {\r\n // if (this.loggedInUserRoleDetails.hasOwnProperty(patientId) &&\r\n // this.loggedInUserRoleDetails[patientId][requiredAccess] === true) {\r\n // return true;\r\n // } else {\r\n // return false;\r\n // }\r\n // } else {\r\n // return true;\r\n // }\r\n // } else {\r\n // return false;\r\n // }\r\n // }\r\n\r\n // if (this.loggedInUserData.userType === 1) { // Provider\r\n // if (this.providerAdmin.hasOwnProperty(providerOperationId) && this.providerAdmin[providerOperationId][requiredAccess] === 1) {\r\n // if (this.loggedInUserData.roleId !== null) {\r\n // // if (this.loggedInUserRoleDetails.hasOwnProperty(providerOperationId) &&\r\n // // this.loggedInUserRoleDetails[providerOperationId][requiredAccess] === true) {\r\n // return true;\r\n // // } else {\r\n // // return false;\r\n // // }\r\n // } else {\r\n // return true;\r\n // }\r\n // } else {\r\n // return false;\r\n // }\r\n // }\r\n\r\n // if (this.loggedInUserData.userType === 2) { // Global\r\n // if (this.globalAdmin.hasOwnProperty(globalOperationId) && this.globalAdmin[globalOperationId][requiredAccess] === 1) {\r\n // if (this.loggedInUserData.roleId !== null) {\r\n // if (this.loggedInUserRoleDetails.hasOwnProperty(globalOperationId) &&\r\n // this.loggedInUserRoleDetails[globalOperationId][requiredAccess] === true) {\r\n // return true;\r\n // } else {\r\n // return false;\r\n // }\r\n // } else {\r\n // return true;\r\n // }\r\n // } else {\r\n // return false;\r\n // }\r\n // }\r\n // }\r\n\r\n // Method to check Operation Permission\r\n hasAccess(requiredAccess) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n if (this.loggedInUserData.roleId !== null && this.loggedInUserData.roleId !== '') {\r\n this.loggedInUserRoleDetails = this.getloggedInUserRoleDetails();\r\n } else {\r\n return true;\r\n }\r\n\r\n if (this.loggedInUserRoleDetails.accessDetails.length > 0) {\r\n let featuresList: any = [];\r\n this.loggedInUserRoleDetails.accessDetails.forEach(moduleDetail => {\r\n if (Boolean(JSON.parse(moduleDetail.hasAccess)) === true) {\r\n featuresList.push(...moduleDetail.featureList);\r\n }\r\n });\r\n\r\n if (featuresList.length > 0) {\r\n let feature = featuresList.find(x => x.featureId == requiredAccess);\r\n if (feature !== undefined) {\r\n // console.log('feature access given');\r\n return true;\r\n } else {\r\n // console.log('this feature not accessible');\r\n return false;\r\n }\r\n } else {\r\n // console.log('no feature access for this user');\r\n return false;\r\n }\r\n\r\n } else {\r\n // console.log('no module access for this user')\r\n return false;\r\n }\r\n\r\n }\r\n\r\n getAllFeatureAccessToUser() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'permissions'));\r\n }\r\n\r\n setAllFeatureAccessToUser() {\r\n let array = this.convertEnumToArray(FeaturesEnum);\r\n\r\n let permission = {};\r\n\r\n array.forEach(element => {\r\n element.hasAccess = this.hasAccess(element.id);\r\n permission[element.name] = element.hasAccess;\r\n });\r\n\r\n this.storageService.save(StorageType.session, 'permissions', JSON.stringify(permission));\r\n }\r\n\r\n private convertEnumToArray(enums) {\r\n const arrayObjects = []\r\n for (const [propertyKey, propertyValue] of Object.entries(enums)) {\r\n if (!Number.isNaN(Number(propertyKey))) {\r\n continue;\r\n }\r\n arrayObjects.push({ id: propertyValue, name: propertyKey });\r\n }\r\n return arrayObjects;\r\n }\r\n\r\n // /roles\r\n getRoleDetails() {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url = '';\r\n if (this.loggedInUserData.userType === 1) { // Provider\r\n url = `${AppSetting.baseUrl}providers/${this.loggedInUserData.parentId}/roles/${this.loggedInUserData.roleId}`;\r\n } else if (this.loggedInUserData.userType === 2) { // Global\r\n url = `${AppSetting.baseUrl}roles/${this.loggedInUserData.roleId}`;\r\n }\r\n return this.commonAPIFuncService.get(url).pipe(\r\n tap(a => {\r\n const loggedInUserRoleDetails = {};\r\n let tempOperationId;\r\n a['roleDetails'].forEach(function (item) {\r\n tempOperationId = item.operationId;\r\n // delete item.id;\r\n loggedInUserRoleDetails[tempOperationId] = item;\r\n });\r\n this.storageService.save(StorageType.session, 'roleDetails', JSON.stringify(loggedInUserRoleDetails));\r\n this.log(`fetched`);\r\n }),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n // getModuleDetails(parentId) {\r\n\r\n // let url = '';\r\n // url = AppSetting.featuresaccess.getModuleConfig.replace('{parentId}', parentId);\r\n\r\n // return this.commonAPIFuncService.get(url)\r\n // .pipe(\r\n // tap((response: any) => {\r\n // const loggedInUserModuleDetails = {};\r\n // let tempModuleId;\r\n // response.data.forEach(function (item) {\r\n // tempModuleId = item.moduleId;\r\n // loggedInUserModuleDetails[tempModuleId] = item;\r\n // });\r\n // this.storageService.save(StorageType.session, 'moduleDetails', JSON.stringify(loggedInUserModuleDetails));\r\n // this.setLoggedInUserModuleDetails(loggedInUserModuleDetails);\r\n // }),\r\n // map((resp: any) => {\r\n // resp = this.getLoggedInUserModuleDetails();\r\n // return resp;\r\n // }),\r\n // catchError(this.handleError('', []))\r\n // );\r\n // }\r\n\r\n getModuleDetails(userDataResponse) {\r\n\r\n const response = userDataResponse.accessDetails;\r\n const loggedInUserModuleDetails = {};\r\n let tempModuleId;\r\n response.forEach(function (item) {\r\n tempModuleId = item.moduleId;\r\n loggedInUserModuleDetails[tempModuleId] = item;\r\n });\r\n this.storageService.save(StorageType.session, 'moduleDetails', JSON.stringify(loggedInUserModuleDetails));\r\n this.setLoggedInUserModuleDetails(loggedInUserModuleDetails);\r\n this.setAllFeatureAccessToUser();\r\n\r\n }\r\n\r\n getModuleConfig(parentId) {\r\n\r\n let url = '';\r\n url = AppSetting.featuresaccess.getModuleConfig.replace('{parentId}', parentId);\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonAPIFuncService.log(`fetched`)),\r\n catchError(this.commonAPIFuncService.handleError('', []))\r\n );\r\n }\r\n\r\n getfeatureConfig(reqObj, parentId) {\r\n\r\n let url = '';\r\n url = AppSetting.featuresaccess.getfeatureConfig.replace('{parentId}', parentId);\r\n url = `${url}${this.commonService.buildQuery(reqObj)}`;\r\n\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n res.data.forEach(element => {\r\n element.isSmsEnabled = Boolean(JSON.parse(element.isSmsEnabled));\r\n element.isEmailEnabled = Boolean(JSON.parse(element.isEmailEnabled));\r\n });\r\n const data = res;\r\n return data;\r\n }),\r\n tap(a => this.commonAPIFuncService.log(`fetched`)),\r\n catchError(this.commonAPIFuncService.handleError('', []))\r\n );\r\n }\r\n\r\n // Get Allowed Transaction Types for logged in user\r\n getAllowedTransactionType() {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url = '';\r\n if (this.loggedInUserData.userType === 1) {\r\n // url = `${AppSetting.baseUrl}providers/${this.loggedInUserData.parentId}/allowedtransactiontypes`;\r\n } else {\r\n // console.log(\"need to work in it\");\r\n // url = `${AppSetting.baseUrl}resellers/${this.loggedInUserData.resellerId}/providers/${this.loggedInUserData.parentId}/allowedtransactiontypes`;\r\n }\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap((a: any) => {\r\n const allowedTransactionTypes = a.map(item => item.channelType).filter((value, index, self) => self.indexOf(value) === index);\r\n this.storageService.save(StorageType.session, 'allowedTransactionTypes', JSON.stringify(allowedTransactionTypes));\r\n this.log(`fetched`);\r\n }),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n private handleError(operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n // TODO: send the error to remote logging infrastructure\r\n // console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log(`${operation} failed: ${error.message}`);\r\n // Let the app keep running by returning an empty result.\r\n // return Observable.throw(error.json().error || error.message);\r\n return throwError(error);\r\n // return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a HeroService message with the MessageService */\r\n private log(message: string) {\r\n // this.messageService.add('HeroService: ' + message);\r\n }\r\n}\r\n","import {Injectable} from '@angular/core';\r\nimport {Observable, of, throwError} from 'rxjs';\r\nimport {catchError, map, tap} from 'rxjs/operators';\r\nimport { CommonApiFuncService } from './common-api-func.service';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class ChangePasswordService {\r\n constructor(private commonAPIFuncService: CommonApiFuncService) {\r\n }\r\n\r\n changePassword(data, userId, userType, parentID) {\r\n let url = '';\r\n url = AppSetting.baseUrl + 'users/' + userId + '/passwords';\r\n // if (userType === 1 ) {\r\n // url = AppSetting.baseUrl + 'providers/' + parentID + '/users/' + userName + '/passwords';\r\n // }\r\n // if (userType === 2 ) {\r\n // url = AppSetting.baseUrl + 'users/' + userName + '/passwords';\r\n // }\r\n return this.commonAPIFuncService.post(url, data).pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n private handleError(operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n // TODO: send the error to remote logging infrastructure\r\n // console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log(`${operation} failed: ${error.message}`);\r\n // Let the app keep running by returning an empty result.\r\n // return Observable.throw(error.json().error || error.message);\r\n return throwError(error);\r\n // return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a HeroService message with the MessageService */\r\n private log(message: string) {\r\n // this.messageService.add('HeroService: ' + message);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {HttpClient, HttpHeaders, HttpParams} from '@angular/common/http';\r\nimport { throwError, Observable } from 'rxjs';\r\n\r\nconst httpOptions = {\r\n headers: new HttpHeaders({'Content-Type': 'application/json'}),\r\n};\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class CommonApiFuncService {\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n get(url) {\r\n return this.http.get(url, {\r\n headers: httpOptions.headers\r\n });\r\n }\r\n\r\n post(url, data) {\r\n //console.log(JSON.stringify(data));\r\n return this.http.post(url, data, httpOptions);\r\n }\r\n\r\n delete(url) {\r\n return this.http.delete(url, httpOptions);\r\n }\r\n\r\n put(url, data) {\r\n //console.log(JSON.stringify(data));\r\n return this.http.put(url, data, httpOptions);\r\n\r\n }\r\n\r\n formDataPost(url, data) {\r\n const headers = new HttpHeaders();\r\n headers.set('Content-Type', 'multipart/form-data');\r\n headers.set('Accept', 'multipart/form-data');\r\n const params = new HttpParams();\r\n return this.http.post(url, data, { params, headers });\r\n }\r\n\r\n formDataPut(url, data) {\r\n const headers = new HttpHeaders();\r\n headers.set('Content-Type', 'multipart/form-data');\r\n headers.set('Accept', 'multipart/form-data');\r\n const params = new HttpParams();\r\n return this.http.put(url, data, { params, headers });\r\n }\r\n\r\n handleError(operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n // TODO: send the error to remote logging infrastructure\r\n // console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log(`${operation} failed: ${error.message}`);\r\n\r\n // Let the app keep running by returning an empty result.\r\n // return Observable.throw(error.json().error || error.message);\r\n return throwError(error);\r\n // return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a HeroService message with the MessageService */\r\n log(message: string) {\r\n // this.messageService.add('HeroService: ' + message);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CommonApiFuncService } from './common-api-func.service';\r\nimport { Router } from '@angular/router';\r\nimport { StorageService } from '../session/storage.service';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { StorageType } from '../session/storage.enum';\r\nimport * as moment from 'moment';\r\nimport { Observable, Subscription, throwError } from 'rxjs';\r\nimport { Utilities } from '../commonservice/utilities';\r\nimport { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\nimport { UserIdleService } from 'angular-user-idle';\r\n\r\nexport interface Pager {\r\n currentPage: number;\r\n totalPages: number;\r\n resultPerPage: number;\r\n totalResults: number;\r\n pages: Array;\r\n data: Array;\r\n results?: number;\r\n currentResults?: number;\r\n startRecord?: number;\r\n endRecord?: number;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CommonService {\r\n\r\n loggedInUserData: any = {};\r\n\r\n loggedInAuthData: any = {};\r\n\r\n private pingSubscription: Subscription;\r\n private timeoutSubscription: Subscription;\r\n private timerStartSubscription: Subscription;\r\n constructor(private commonAPIFuncService: CommonApiFuncService,\r\n private router: Router,\r\n private storageService: StorageService,\r\n private userIdle: UserIdleService\r\n ) { }\r\n\r\n getAuthData() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'auth'));\r\n }\r\n\r\n getLoggedInData() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'userDetails'));\r\n }\r\n\r\n getSettingsData() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'settingsData'));\r\n }\r\n\r\n // providers/{providerId}/patients/lookup\r\n patientLookup(reqObj) {\r\n const url = AppSetting.common.patientLookup.replace('{providerId}', this.getLoggedInData()['parentId']) + this.buildQuery(reqObj);\r\n return this.commonAPIFuncService.get(url).pipe(\r\n\r\n map((res: any[]) => {\r\n res.forEach(element => {\r\n let fullName = '';\r\n fullName = (element.firstName !== '' && element.firstName != null) ? `${element.firstName} ` : '';\r\n fullName = (element.firstName !== '' && element.lastName != null) ? `${fullName}${element.lastName}` : `${fullName}`;\r\n element.fullName = fullName;\r\n });\r\n const data = res;\r\n return data;\r\n }),\r\n\r\n tap(_ => this.commonAPIFuncService.log(`deleted id`)),\r\n catchError(this.commonAPIFuncService.handleError('delete'))\r\n );\r\n }\r\n getRefreshToken(reqObj) {\r\n const url = AppSetting.common.getRefreshToken.replace('{userId}', reqObj.id);\r\n return this.commonAPIFuncService.post(url, reqObj)\r\n .pipe(\r\n tap(a => this.commonAPIFuncService.log(`fetched`)),\r\n catchError(this.commonAPIFuncService.handleError('', []))\r\n );\r\n }\r\n trainingVideos(reqObj) {\r\n const url = AppSetting.common.training + this.buildQuery(reqObj);\r\n return this.commonAPIFuncService.get(url).pipe(\r\n tap(_ => this.commonAPIFuncService.log(`deleted id`)),\r\n catchError(this.commonAPIFuncService.handleError('delete'))\r\n );\r\n }\r\n\r\n // providers/{providerId}/patients/lookup\r\n insuranceLookup(reqObj) {\r\n\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url = '';\r\n\r\n if (this.loggedInUserData.userType === UserTypeEnum.PATIENT) {\r\n const providerDetails = JSON.parse(this.storageService.get(StorageType.session, 'providerSelected'));\r\n url = AppSetting.common.insuranceLookup\r\n .replace('{providerId}', providerDetails.id) + this.buildQuery(reqObj);\r\n } else {\r\n url = AppSetting.common.insuranceLookup\r\n .replace('{providerId}', this.getLoggedInData()['parentId']) + this.buildQuery(reqObj);\r\n }\r\n return this.commonAPIFuncService.get(url).pipe(\r\n tap(_ => this.commonAPIFuncService.log(`deleted id`)),\r\n catchError(this.commonAPIFuncService.handleError('delete'))\r\n );\r\n }\r\n\r\n // patients/{patientId}/providers/lookup\r\n providerLookup() {\r\n const url = AppSetting.common.providerLookup.replace('{patientId}', this.getLoggedInData()['parentId']);\r\n return this.commonAPIFuncService.get(url).pipe(\r\n tap(_ => this.commonAPIFuncService.log(`deleted id`)),\r\n catchError(this.commonAPIFuncService.handleError('delete'))\r\n );\r\n }\r\n\r\n //GET /providers/{parentId}/customplans/lookup\r\n customPlanLookup(reqObj) {\r\n const url = AppSetting.common.customPlanLookup.replace('{providerId}', this.getLoggedInData()['parentId']) + this.buildQuery(reqObj);\r\n return this.commonAPIFuncService.get(url).pipe(\r\n tap(_ => this.commonAPIFuncService.log(`deleted id`)),\r\n catchError(this.commonAPIFuncService.handleError('delete'))\r\n );\r\n }\r\n\r\n // providers/{parentId:int}/recurringpayments/lookup\r\n recurringLookup(reqObj) {\r\n const url = AppSetting.common.recurringLookup.replace('{providerId}', this.getLoggedInData()['parentId']) + this.buildQuery(reqObj);\r\n return this.commonAPIFuncService.get(url).pipe(\r\n tap(_ => this.commonAPIFuncService.log(`deleted id`)),\r\n catchError(this.commonAPIFuncService.handleError('delete'))\r\n );\r\n }\r\n\r\n getCountryList() {\r\n return this.commonAPIFuncService.get(AppSetting.common.getCountry).pipe(\r\n tap(_ => this.commonAPIFuncService.log(`deleted id`)),\r\n catchError(this.commonAPIFuncService.handleError('delete'))\r\n );\r\n }\r\n\r\n getStateList(countryId) {\r\n return this.commonAPIFuncService.get(AppSetting.common.getState + countryId).pipe(\r\n tap(_ => this.commonAPIFuncService.log(`deleted id`)),\r\n catchError(this.commonAPIFuncService.handleError('delete'))\r\n );\r\n }\r\n\r\n getTimeZoneList() {\r\n return this.commonAPIFuncService.get(AppSetting.common.getTimeZone).pipe(\r\n tap(_ => this.commonAPIFuncService.log(`fetched`)),\r\n catchError(this.commonAPIFuncService.handleError('fetch'))\r\n );\r\n }\r\n\r\n getUserNameAvailability(username) {\r\n const url = AppSetting.common.getUserByUserName + '/' + username + '/isavailable';\r\n return this.commonAPIFuncService.get(url).pipe(\r\n tap(_ => this.commonAPIFuncService.log('UserNameCheck')),\r\n catchError(this.commonAPIFuncService.handleError('UserNameCheck'))\r\n );\r\n }\r\n\r\n dynamicUrl(url, reqObj) {\r\n url = AppSetting.baseUrl + url;\r\n return this.commonAPIFuncService.get(url).pipe(\r\n tap(_ => this.commonAPIFuncService.log('dynamicUrl')),\r\n catchError(this.commonAPIFuncService.handleError('dynamicUrl'))\r\n );\r\n }\r\n\r\n getFullName(nameObj) {\r\n let fullName = '';\r\n fullName = (nameObj.title != null) ? `${nameObj.title}` : '';\r\n fullName = (nameObj.firstName != null) ? `${fullName} ${nameObj.firstName}` : `${fullName}`;\r\n fullName = (nameObj.lastName != null) ? `${fullName} ${nameObj.lastName}` : `${fullName}`;\r\n return fullName.trim();\r\n }\r\n getFullName1(firstName, lastName) {\r\n let fullName = '';\r\n fullName = (firstName != null) ? `${fullName} ${firstName}` : `${fullName}`;\r\n fullName = (lastName != null) ? `${fullName} ${lastName}` : `${fullName}`;\r\n return fullName.trim();\r\n }\r\n getFullAddress(addressObj, countryList) {\r\n let fullAddress = `${addressObj.addressLine1}${addressObj.addressLine2}${addressObj.city}${addressObj.state}${addressObj.country}${addressObj.postalCode}`;\r\n if (fullAddress !== '') {\r\n addressObj.country = (addressObj.country !== '' && addressObj.country != null) ? this.mapCountryName(addressObj.country, countryList) : '';\r\n fullAddress = '';\r\n fullAddress = (addressObj.addressLine1 !== '' && addressObj.addressLine1 != null) ? `${addressObj.addressLine1}, ` : '';\r\n fullAddress = (addressObj.addressLine2 !== '' && addressObj.addressLine2 != null) ? `${fullAddress}${addressObj.addressLine2}, ` : `${fullAddress}`;\r\n fullAddress = (addressObj.city !== '' && addressObj.city != null) ? `${fullAddress}${addressObj.city}, ` : `${fullAddress}`;\r\n fullAddress = (addressObj.state !== '' && addressObj.state != null) ? `${fullAddress}${addressObj.state}, ` : `${fullAddress}`;\r\n fullAddress = (addressObj.country !== '' && addressObj.country != null) ? `${fullAddress}${addressObj.country}, ` : `${fullAddress}`;\r\n fullAddress = (addressObj.postalCode !== '' && addressObj.postalCode != null) ? `${fullAddress}${addressObj.postalCode}` : `${fullAddress}`;\r\n }\r\n return fullAddress;\r\n }\r\n\r\n mapCountryName(countryId, countryList) {\r\n for (let i = 0; i < countryList.length; i++) {\r\n const element = countryList[i];\r\n if (countryList[i].countryId === countryId) {\r\n return countryList[i].name;\r\n }\r\n }\r\n }\r\n\r\n mapCountryId(countryName, countryList) {\r\n for (let i = 0; i < countryList.length; i++) {\r\n const element = countryList[i];\r\n if (countryList[i].name === countryName) {\r\n return countryList[i].countryId;\r\n }\r\n }\r\n }\r\n\r\n enumSelector(definition) {\r\n return Object.keys(definition)\r\n .map(key => ({ value: definition[key], title: key }));\r\n }\r\n\r\n logOut(sessionTimedOut?) {\r\n let settingData;\r\n this.storageService.setLoginCount();\r\n let count = this.storageService.getLoginCount();\r\n if (count === 1) {\r\n if (this.storageService.get(StorageType.session, 'settingsData') !== 'undefined') {\r\n settingData = JSON.parse(this.storageService.get(StorageType.session, 'settingsData'));\r\n }\r\n try {\r\n this.storageService.remove(StorageType.session, 'userDetails');\r\n this.storageService.remove(StorageType.session, 'auth');\r\n this.storageService.remove(StorageType.session, 'roleDetails');\r\n this.storageService.remove(StorageType.session, 'settingsData');\r\n this.storageService.remove(StorageType.session, 'providerList');\r\n this.storageService.remove(StorageType.session, 'providerSelected');\r\n this.storageService.remove(StorageType.session, 'moduleDetails');\r\n // this.storageService.remove(StorageType.session, 'sessionTimeOut');\r\n // this.storageService.remove(StorageType.session, 'sessionWarning');\r\n // this.storageService.unsubscribeSignal()\r\n } catch (Execption) {\r\n this.storageService.remove(StorageType.session, 'userDetails');\r\n this.storageService.remove(StorageType.session, 'auth');\r\n this.storageService.remove(StorageType.session, 'roleDetails');\r\n this.storageService.remove(StorageType.session, 'settingsData');\r\n this.storageService.remove(StorageType.session, 'providerList');\r\n this.storageService.remove(StorageType.session, 'providerSelected');\r\n this.storageService.remove(StorageType.session, 'moduleDetails');\r\n // this.storageService.remove(StorageType.session, 'sessionTimeOut');\r\n // this.storageService.remove(StorageType.session, 'sessionWarning');\r\n // this.storageService.unsubscribeSignal();\r\n }\r\n this.storageService.save(StorageType.local, 'sessionExpired', JSON.stringify(true));\r\n\r\n if (sessionTimedOut) {\r\n //window.location.reload();\r\n var openModals = document.querySelectorAll(\".modal.ui\");\r\n if (openModals) {\r\n for (let i = 0; i < openModals.length; i++) {\r\n let modalHeader = openModals[i].getElementsByClassName(\"header\")\r\n var closeButton: any = modalHeader[0].getElementsByClassName(\"close\");\r\n if (closeButton && closeButton.length > 0) {\r\n //simulate click on close button\r\n closeButton[0].click();\r\n }\r\n }\r\n }\r\n }\r\n this.stopIdleSubscription();\r\n if (settingData != null && settingData.providerName != null) {\r\n let newUrl = '/login/' + settingData.providerName;\r\n this.router.navigate([newUrl]);\r\n } else {\r\n this.router.navigate(['/login']);\r\n }\r\n }\r\n\r\n }\r\n\r\n // returns only date (yyyy-mm-dd) from date object\r\n getFormattedDate_yyyy_mm_dd(date) {\r\n if (date) {\r\n return moment(date).format('YYYY-MM-DD');\r\n }\r\n }\r\n\r\n // returns only date (ddd hh:mm a MM-DD-YYYY) from date string from db\r\n getFormattedTimeDate(date) {\r\n if (date) {\r\n return moment.utc(date).local().format('ddd hh:mm a MM-DD-YYYY');\r\n }\r\n }\r\n\r\n // returns only date (mm-dd-yyyy) from date object\r\n getFormattedDate(date) {\r\n const d = new Date(date);\r\n const year = d.getFullYear();\r\n let month = (1 + d.getMonth()).toString();\r\n month = month.length > 1 ? month : '0' + month;\r\n let day = d.getDate().toString();\r\n day = day.length > 1 ? day : '0' + day;\r\n return month + '-' + day + '-' + year;\r\n }\r\n\r\n // convert date according to local timeZone\r\n getLocalFormattedDate(date) {\r\n const localDate = moment.utc(date).local();\r\n return this.getFormattedDate(localDate['_d']);\r\n }\r\n\r\n // returns only time (hh:mm:ss) from date object\r\n getFormattedTime(date) {\r\n const d = new Date(date);\r\n let minutes = d.getMinutes().toString();\r\n let hours = d.getHours().toString();\r\n let seconds = d.getSeconds().toString();\r\n hours = (hours.length > 1) ? hours : '0' + hours;\r\n minutes = (minutes.length > 1) ? minutes : '0' + minutes;\r\n seconds = (seconds.length > 1) ? seconds : '0' + seconds;\r\n return hours + ':' + minutes + ':' + seconds;\r\n }\r\n\r\n // returns only time (hh:mm) from date object\r\n getFormattedTimehhmm(date) {\r\n const d = new Date(date);\r\n let minutes = d.getMinutes().toString();\r\n let hours = d.getHours().toString();\r\n hours = (hours.length > 1) ? hours : '0' + hours;\r\n minutes = (minutes.length > 1) ? minutes : '0' + minutes;\r\n return hours + ':' + minutes;\r\n }\r\n\r\n getFormattedDateForReqObj(date) {\r\n if (date !== undefined && date !== null && date !== '') {\r\n date = new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString();\r\n return date;\r\n }\r\n return null;\r\n }\r\n\r\n buildQuery(data) {\r\n let queryData = '';\r\n for (const prop in data) {\r\n if (data[prop] !== '' && data[prop] !== 'undefined' && data[prop] !== null) {\r\n if (queryData === '') {\r\n queryData = '?' + prop + '=' + data[prop];\r\n } else {\r\n queryData += '&' + prop + '=' + data[prop];\r\n }\r\n }\r\n }\r\n return queryData;\r\n }\r\n\r\n handleError(operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n // TODO: send the error to remote logging infrastructure\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log(`${operation} failed: ${error.message}`);\r\n // Let the app keep running by returning an empty result.\r\n // return Observable.throw(error.json().error || error.message);\r\n return throwError(error);\r\n // return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a HeroService message with the MessageService */\r\n log(message: string) {\r\n // this.messageService.add('HeroService: ' + message);\r\n }\r\n\r\n // pagination logic---------------------------------------------------------\r\n initiatePager() {\r\n let pager: Pager = {\r\n currentPage: 1,\r\n totalPages: 0,\r\n resultPerPage: AppSetting.resultsPerPage,\r\n totalResults: 0,\r\n pages: [],\r\n data: [],\r\n };\r\n return pager;\r\n }\r\n\r\n setPager(result, pageNumber, pager: Pager) {\r\n const data = result.data;\r\n const dataCount = result.totalRowCount;\r\n const pageCount = Math.ceil(dataCount / pager.resultPerPage);\r\n if (dataCount > 0) {\r\n pager.totalPages = pageCount;\r\n pager.results = dataCount;\r\n pager.totalResults = dataCount;\r\n pager.data = data;\r\n pager.currentResults = data.length;\r\n pager.currentPage = pageNumber;\r\n pager.pages = Utilities.getPaginationNumberArray(dataCount, pageNumber, pager.resultPerPage);\r\n pager.startRecord = ((pager.currentPage * pager.resultPerPage) - (pager.resultPerPage - 1))\r\n pager.endRecord = ((pager.currentPage * pager.resultPerPage) > pager.totalResults) ? pager.totalResults : pager.currentPage * pager.resultPerPage;\r\n } else {\r\n this.initiatePager();\r\n }\r\n return pager;\r\n }\r\n\r\n calculatePageStartRow(pageNumber, resultPerPage) {\r\n return (((pageNumber * 1) - 1) * (resultPerPage * 1));\r\n }\r\n\r\n getFormattedDateToDisplayInFilter(date) { // used to display date in filter as \"23 March 2019\" to match with datepicker format\r\n if (date) {\r\n return moment(date).format('D MMMM YYYY');\r\n }\r\n return null;\r\n }\r\n\r\n // returns date time (10-11-2019 03:53:24 / mm-dd-yyyy hh:mm:ss) from date object\r\n getFormattedDateTime(date) {\r\n if (date) {\r\n const localDate = moment.utc(date, \"YYYY-MM-DDTHH:mm:ss.SSSz\").local();\r\n const d = this.getFormattedDate(localDate['_i']);\r\n const t = this.getFormattedTime(localDate['_i']);\r\n return d + ' ' + t;\r\n }\r\n }\r\n\r\n getFormattedTimeWithMeredian(date) {\r\n const localDate = moment.utc(date).local();\r\n const dt = new Date(localDate['_i']);\r\n let hours = dt.getHours();\r\n let minutes = dt.getMinutes();\r\n const ampm = hours >= 12 ? 'PM' : 'AM';\r\n hours = hours % 12;\r\n hours = hours ? hours : 12; // the hour '0' should be '12'\r\n const hhours = hours < 10 ? '0' + hours : hours;\r\n // appending zero in the start if hours less than 10\r\n const mminutes = minutes < 10 ? '0' + minutes : minutes;\r\n return hours + ':' + minutes + ' ' + ampm;\r\n\r\n }\r\n\r\n getFormattedDateTimeWithMeredian(date) {\r\n const localDate = moment.utc(date).local();\r\n const dt = new Date(localDate['_i']);\r\n let hours = dt.getHours();\r\n let minutes = dt.getMinutes();\r\n const ampm = hours >= 12 ? 'PM' : 'AM';\r\n hours = hours % 12;\r\n hours = hours ? hours : 12; // the hour '0' should be '12'\r\n const hhours = hours < 10 ? '0' + hours : hours;\r\n // appending zero in the start if hours less than 10\r\n const mminutes = minutes < 10 ? '0' + minutes : minutes;\r\n\r\n const d = this.getFormattedDate(localDate['_i']);\r\n const t = this.getFormattedTime(localDate['_i']);\r\n\r\n return d + ' ' + hhours + ':' + mminutes + ' ' + ampm;\r\n\r\n }\r\n\r\n getFormattedMinOrMaxDate(date, operation, days) { // used to set minDate Or maxDate for datePicker (DateRange)\r\n days = (days === 'custom') ? 0 : days;\r\n if (date === undefined || date === null || date === '') {\r\n date = moment();\r\n }\r\n if (operation === 'add') {\r\n date = moment(date, 'MM-DD-YYYY HH:mm:ss').add(days, 'days');\r\n } else if (operation === 'sub') {\r\n date = moment(date, 'MM-DD-YYYY HH:mm:ss').subtract(days, 'days');\r\n }\r\n return date.startOf('day')['_d'];\r\n }\r\n\r\n getConvertedDateFormat(date) {\r\n // date = new Date(date);\r\n // date = new Date( date.getTime() + Math.abs(date.getTimezoneOffset() * 60000) );\r\n // return date;\r\n if (date == null || date === undefined || date === '') {\r\n date = new Date();\r\n } else {\r\n let dt = date.split('T')[0].replace(/-/g, '/');\r\n let time = date.split('T')[1];\r\n if (time === undefined || time === null || time === '') {\r\n time = '00:00:00';\r\n }\r\n date = new Date(new Date(dt).setHours(time.split(':')[0], time.split(':')[1], time.split(':')[2].split('.')[0]));\r\n }\r\n return this.getFormattedDate(date);\r\n }\r\n\r\n calculateDueInDays(invoiceDate, dueDate) {\r\n\r\n invoiceDate = moment(invoiceDate);\r\n dueDate = moment(dueDate);\r\n\r\n let days = dueDate.diff(invoiceDate, 'days');\r\n dueDate.add(days, 'days');\r\n\r\n // In case when custom value is selected for DueInDays\r\n if (AppSetting.dueInDaysOptionsList.find(x => x.id === days) === undefined) {\r\n days = '';\r\n }\r\n\r\n return days;\r\n }\r\n\r\n isEmpty(value) {\r\n if (value === undefined || value === null || value === '' || value === '' || value === [] || value === {}) {\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n // setA - setB\r\n difference(setA, setB) {\r\n const _difference = new Set(setA);\r\n for (const elem of Array.from(setB)) {\r\n _difference.delete(elem);\r\n }\r\n return _difference;\r\n }\r\n\r\n getLastSegmentOfUrl(url: string) {\r\n return url.slice(url.lastIndexOf('/') + 1);\r\n }\r\n\r\n trimSpaces(str) {\r\n return str.replace(/\\s/g, \"\");\r\n }\r\n\r\n copyMessage(val: string) {\r\n const selBox = document.createElement('textarea');\r\n selBox.style.position = 'fixed';\r\n selBox.style.left = '0';\r\n selBox.style.top = '0';\r\n selBox.style.opacity = '0';\r\n selBox.value = val;\r\n document.body.appendChild(selBox);\r\n selBox.focus();\r\n selBox.select();\r\n document.execCommand('copy');\r\n document.body.removeChild(selBox);\r\n this.copyAlert('Copied', 2000);\r\n }\r\n\r\n copyAlert(msg, duration) {\r\n var el = document.createElement('div');\r\n el.setAttribute(\r\n 'style',\r\n `background-color: black;color: white;width:60px;position:fixed;left:1%;bottom:5%;border-radius: 4px; padding: 5px;z-index: 9;\r\n `,\r\n );\r\n el.setAttribute('class', 'canvas-legend');\r\n el.innerHTML = msg;\r\n setTimeout(function () {\r\n el.parentNode.removeChild(el);\r\n }, duration);\r\n document.body.appendChild(el);\r\n }\r\n\r\n calculateDateDifference(date, now?: any) {\r\n let A = moment(new Date(date), 'MM/DD/YYYY');\r\n let B = (now !== undefined) ? moment(new Date(now), 'MM/DD/YYYY') : moment(new Date(), 'MM/DD/YYYY');\r\n\r\n let days = B.diff(A, 'days');\r\n\r\n return days;\r\n\r\n }\r\n\r\n createDateFromDateTime(date, time, meridian) {\r\n let mdate = moment(date + ' ' + time + ' ' + meridian, 'MM-DD-YYYY hh:mm A');\r\n let jDate = new Date(mdate.format());\r\n const localDate = moment.utc(jDate, true).format('YYYY-MM-DDTHH:mm:ss.SSSz');\r\n return localDate.replace('UTC', 'Z');\r\n }\r\n\r\n pad(num: number, size: number): string {\r\n let s = num + \"\";\r\n while (s.length < size) s = \"0\" + s;\r\n return s;\r\n }\r\n\r\n getStartDate(date: any, time: any) {\r\n const _date = new Date(date);\r\n const convertedDate = `${this.pad((_date.getMonth() + 1), 2)}/${this.pad(_date.getDate(), 2)}/${_date.getFullYear()}`;\r\n const convertedTime = moment(time, 'hh:mm A').format('HH:mm')\r\n const __datetime = new Date(convertedDate + ' ' + convertedTime);\r\n return new Date(__datetime);\r\n };\r\n\r\n add_minutes = function (dt, minutes) {\r\n return new Date(dt.getTime() + minutes * 60000);\r\n }\r\n startCheckingIdleTime() {\r\n //console.log(\"startCheckingIdleTime called\")\r\n this.stopIdleSubscription();\r\n this.userIdle.startWatching();\r\n this.userIdle.resetTimer();\r\n this.timerStartSubscription = this.userIdle.onTimerStart().subscribe(count => {\r\n //console.log(\"onTimerStart \"+count)\r\n });\r\n this.timeoutSubscription = this.userIdle.onTimeout().subscribe(() => {\r\n // let currentdate = moment().format(\"HH:mm:ss\")\r\n // console.log(\"logout...\"+currentdate)\r\n this.logOut(true);\r\n });\r\n this.pingSubscription = this.userIdle.ping$.subscribe((value) => {\r\n // let currentdate = moment().format(\"HH:mm:ss\")\r\n // console.log(\"PING\" +value + \" ...\"+currentdate)\r\n this.refreshToken();\r\n });\r\n }\r\n\r\n stopIdleSubscription() {\r\n //console.log(\"stop watch called\")\r\n if (this.pingSubscription && !this.pingSubscription.closed) { this.pingSubscription.unsubscribe(); }\r\n if (this.timerStartSubscription && !this.timerStartSubscription.closed) { this.timerStartSubscription.unsubscribe(); }\r\n if (this.timeoutSubscription && !this.timeoutSubscription.closed) { this.timeoutSubscription.unsubscribe(); }\r\n this.userIdle.stopTimer();\r\n this.userIdle.stopWatching();\r\n }\r\n\r\n restart() {\r\n //console.log(\"restart timer called\")\r\n this.userIdle.resetTimer();\r\n }\r\n refreshToken() {\r\n //call refresh token api \r\n //console.log(\"call refresh token api \")\r\n this.loggedInAuthData = JSON.parse(this.storageService.get(StorageType.session, 'auth'));\r\n this.loggedInUserData = JSON.parse(this.storageService.get(StorageType.session, 'userDetails'));\r\n let reqObj = {\r\n \"token\": this.loggedInAuthData.token,\r\n \"id\": this.loggedInUserData.id,\r\n \"changePassword\": false,\r\n \"userType\": this.loggedInUserData.userType,\r\n \"role\": this.loggedInUserData.roleId,\r\n \"parentId\": this.loggedInUserData.parentId\r\n }\r\n this.getRefreshToken(reqObj).subscribe(\r\n response => {\r\n this.loggedInAuthData = response;\r\n this.storageService.save(StorageType.session, \"auth\", JSON.stringify(response))\r\n },\r\n error => {\r\n this.logOut();\r\n });\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CommonService } from './common.service';\r\nimport { StorageService } from '../session/storage.service';\r\nimport { CommonApiFuncService } from './common-api-func.service';\r\n//import { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\nimport { tap, catchError } from 'rxjs/operators';\r\nimport { StorageType } from '../session/storage.enum';\r\nimport { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class EmailSettingsService {\r\n loggedInUserData: any = {};\r\n\r\n constructor(private commonService: CommonService,\r\n private storageService: StorageService,\r\n private commonAPIFuncService: CommonApiFuncService) { }\r\n\r\n putEmailLogo(file: File, partnerId) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url;\r\n // if (this.loggedInUserData.userType === UserTypeEnum.MERCHANT) {\r\n // url = AppSetting.emailSettings.putMerchantEmailLogo\r\n // .replace('{merchantId}', this.getLoggedInData()['parentId']);\r\n // } else if (this.loggedInUserData.userType === UserTypeEnum.RESELLER) {\r\n // url = AppSetting.emailSettings.putResellerEmailLogo\r\n // .replace('{resellerId}', this.getLoggedInData()['parentId']);\r\n // } else if (this.loggedInUserData.userType === UserTypeEnum.GLOBAL) {\r\n // url = AppSetting.emailSettings.putGlobalEmailLogo;\r\n // } else if (this.loggedInUserData.userType === UserTypeEnum.PARTNER) {\r\n // url = AppSetting.emailSettings.putPartnerEmailLogo\r\n // .replace('{merchantId}', this.loggedInUserData.merchantId)\r\n // .replace('{partnerId}', this.loggedInUserData.parentId);\r\n // }\r\n\r\n if (AppSetting.baseUrl === 'https://api.hellopayments.net/') { // temp fix for image upload is not working on PROD (As per discussion with Manoj)\r\n url = url.replace('https://api.hellopayments.net/', 'https://d1e8pu72ok79g.cloudfront.net/');\r\n }\r\n const formData: FormData = new FormData();\r\n formData.append('logo', file, `${+new Date()}_logo.png`);\r\n return this.commonAPIFuncService.formDataPut(url, formData)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n getEmailSettings() {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url;\r\n // if (this.loggedInUserData.userType === UserTypeEnum.MERCHANT) {\r\n // url = AppSetting.emailSettings.getEmailSettingsForMerchant\r\n // .replace('{merchantId}', this.getLoggedInData()['parentId']);\r\n // } else if (this.loggedInUserData.userType === UserTypeEnum.RESELLER) {\r\n // url = AppSetting.emailSettings.getEmailSettingsForReseller\r\n // .replace('{resellerId}', this.getLoggedInData()['parentId']);\r\n // } else if (this.loggedInUserData.userType === UserTypeEnum.GLOBAL) {\r\n // url = AppSetting.emailSettings.getEmailSettingsForGlobal;\r\n // } else if (this.loggedInUserData.userType === UserTypeEnum.PARTNER) {\r\n // url = AppSetting.emailSettings.getEmailSettingsForPartner\r\n // .replace('{merchantId}', this.loggedInUserData.merchantId)\r\n // .replace('{partnerId}', this.loggedInUserData.parentId);\r\n // }\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n putEmailSettings(reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url = '';\r\n if (this.loggedInUserData.userType === UserTypeEnum.PROVIDER) {\r\n url = AppSetting.emailSettings.putProviderEmailSettings\r\n .replace('{parentId}', this.getLoggedInData()['parentId']);\r\n }\r\n // else if (this.loggedInUserData.userType === UserTypeEnum.RESELLER) {\r\n // url = AppSetting.emailSettings.putEmailSettingsForReseller\r\n // .replace('{resellerId}', this.getLoggedInData()['parentId']);\r\n // } else if (this.loggedInUserData.userType === UserTypeEnum.GLOBAL) {\r\n // url = AppSetting.emailSettings.putEmailSettingsForGlobal;\r\n // } else if (this.loggedInUserData.userType === UserTypeEnum.PARTNER) {\r\n // url = AppSetting.emailSettings.putEmailSettingsForPartner\r\n // .replace('{merchantId}', this.loggedInUserData.merchantId)\r\n // .replace('{partnerId}', this.loggedInUserData.parentId);\r\n // }\r\n return this.commonAPIFuncService.put(url, reqObj)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n\r\n\r\n verifyIdentity(reqObj = null) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url = '';\r\n\r\n url = AppSetting.emailSettings.verifyIdentity\r\n .replace('{parentId}', this.loggedInUserData.parentId);\r\n\r\n return this.commonAPIFuncService.post(url, reqObj).pipe(\r\n tap((a) => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', [])),\r\n );\r\n }\r\n\r\n isVerifiedIdentity() {\r\n this.loggedInUserData = this.getLoggedInData();\r\n\r\n let url = '';\r\n\r\n url = AppSetting.emailSettings.isVerifiedIdentity\r\n .replace('{parentId}', this.loggedInUserData.parentId);\r\n\r\n return this.commonAPIFuncService.get(url).pipe(\r\n tap((a) => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', [])),\r\n );\r\n }\r\n\r\n getLoggedInData() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'userDetails'));\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\nimport { CommonApiFuncService } from './common-api-func.service';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { StorageService } from '../session/storage.service';\r\nimport { StorageType } from '../session/storage.enum';\r\nimport { CommonService } from './common.service';\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\n\r\nexport class FeaturesAccessService {\r\n\r\n loggedInUserData: any = {};\r\n\r\n constructor(\r\n private commonAPIFuncService: CommonApiFuncService,\r\n private storageService: StorageService,\r\n private commonService: CommonService) {\r\n }\r\n\r\n getLoggedInData() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'userDetails'));\r\n }\r\n\r\n getDefaultFeaturesAccess(userType) {\r\n\r\n let url;\r\n url = AppSetting.featuresaccess.getDefaultconfig\r\n .replace('{userType}', userType);\r\n\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n getModuleAccessById(providerId) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url;\r\n\r\n url = AppSetting.featuresaccess.addModuleConfig\r\n .replace('{parentId}', providerId);\r\n\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n postModuleAccess(data, providerId) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url;\r\n url = AppSetting.featuresaccess.addModuleConfig\r\n .replace('{parentId}', providerId);\r\n\r\n return this.commonAPIFuncService.post(url, data).pipe(\r\n tap((a) => this.commonService.log(`added w/ id`)),\r\n catchError(this.commonService.handleError('add', {}))\r\n );\r\n }\r\n\r\n postFeatureAccess(data, providerId) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url;\r\n url = AppSetting.featuresaccess.addfeatureConfig\r\n .replace('{parentId}', providerId);\r\n\r\n return this.commonAPIFuncService.post(url, data).pipe(\r\n map((res: any) => {\r\n res.data.forEach(element => {\r\n element.isSmsEnabled = Boolean(JSON.parse(element.isSmsEnabled));\r\n element.isEmailEnabled = Boolean(JSON.parse(element.isEmailEnabled));\r\n });\r\n const data = res;\r\n return data;\r\n }),\r\n tap((a) => this.commonService.log(`added w/ id`)),\r\n catchError(this.commonService.handleError('add', {}))\r\n );\r\n }\r\n\r\n}\r\n","\r\nimport {Injectable} from '@angular/core';\r\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\r\n\r\nimport {Observable, of} from 'rxjs';\r\nimport {catchError, map, tap} from 'rxjs/operators';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\nimport { CommonApiFuncService } from './common-api-func.service';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class ForgotPasswordService {\r\n constructor(private commonAPIFuncService: CommonApiFuncService) {\r\n }\r\n\r\n forgotPassword(userName, reqObj) {\r\n let url = AppSetting.baseUrl + 'users/' + userName + '/forgotpasswords';\r\n // if(window.location.host.includes(\"localhost:\")||window.location.host.includes(\"logindev.\")||window.location.host.includes(\"login.uat\")||window.location.host.includes(\"login.hellopatients\")){\r\n if(window.location.host.includes(\"logindev.\")||window.location.host.includes(\"login.uat\")||window.location.host.includes(\"login.hellopatients\")){\r\n url = AppSetting.baseUrl + 'patient/' + userName + '/forgotpasswords';\r\n }\r\n // if(window.location.host.includes(\"admindev.\")||window.location.host.includes(\"admin.uat\")||window.location.host.includes(\"admin.hellopatients\")){\r\n // url = AppSetting.baseUrl + 'users/' + userName + '/forgotpasswords';\r\n // }\r\n return this.commonAPIFuncService.post(url, reqObj).pipe(\r\n tap(_ => this.commonAPIFuncService.log('Username:' + userName)),\r\n catchError(this.commonAPIFuncService.handleError('forgotPassword'))\r\n );\r\n }\r\n} \r\n","\r\nimport {Injectable} from '@angular/core';\r\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\r\n\r\nimport {Observable, of} from 'rxjs';\r\nimport {catchError, map, tap} from 'rxjs/operators';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\nimport { CommonApiFuncService } from './common-api-func.service';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class ForgotUsernameService {\r\n constructor(private commonAPIFuncService: CommonApiFuncService) {\r\n }\r\n\r\n forgotUsername(email) {\r\n const url = AppSetting.baseUrl + 'users/' + email + '/forgotusername';\r\n return this.commonAPIFuncService.post(url, {}).pipe(\r\n tap(_ => this.commonAPIFuncService.log('Email:' + email)),\r\n catchError(this.commonAPIFuncService.handleError('forgotUsername'))\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\nimport { CommonApiFuncService } from './common-api-func.service';\r\nimport { StorageService } from '../session/storage.service';\r\nimport { StorageType } from '../session/storage.enum';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError, tap } from 'rxjs/operators';\r\nimport { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\nimport { UserType } from 'src/app/enum/storage.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class InvoiceService {\r\n loggedInUserData: any = {};\r\n\r\n filterByStatus: Boolean = false;\r\n\r\n constructor(private commonAPIFuncService: CommonApiFuncService,\r\n private storageService: StorageService) { }\r\n\r\n getLoggedInData() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'userDetails'));\r\n }\r\n\r\n setSelectedStatuses(status: Boolean = false) {\r\n this.filterByStatus = status;\r\n }\r\n\r\n getSelectedStatuses() {\r\n return this.filterByStatus;\r\n }\r\n\r\n findInvoice(reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url = '';\r\n if (this.loggedInUserData.userType === UserTypeEnum.PATIENT) {\r\n url = AppSetting.invoice.patientInvoice\r\n .replace('{patientId}', this.loggedInUserData.parentId);\r\n } else if (this.loggedInUserData.userType === UserTypeEnum.PROVIDER) {\r\n url = AppSetting.invoice.findInvoice\r\n .replace('{providerId}', this.loggedInUserData.parentId);\r\n }\r\n url = `${url}${this.buildQuery(reqObj)}`;\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n getInvoiceById(invoiceId) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n\r\n let url = '';\r\n\r\n if (this.loggedInUserData.userType === UserTypeEnum.PATIENT) {\r\n url = AppSetting.invoice.getInvoiceByIdForPatient\r\n .replace('{patientId}', this.loggedInUserData.parentId)\r\n .replace('{invoiceId}', invoiceId);\r\n } else if (this.loggedInUserData.userType === UserTypeEnum.PROVIDER) {\r\n url = AppSetting.invoice.getInvoiceById\r\n .replace('{providerId}', this.loggedInUserData.parentId)\r\n .replace('{invoiceId}', invoiceId);\r\n }\r\n\r\n\r\n return this.commonAPIFuncService.get(url).pipe(\r\n tap((a) => this.log(`fetched`)),\r\n catchError(this.handleError('fetch', {}))\r\n );\r\n }\r\n\r\n addInvoice(reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n const url = AppSetting.invoice.addInvoice\r\n .replace('{providerId}', this.loggedInUserData.parentId);\r\n return this.commonAPIFuncService.post(url, reqObj).pipe(\r\n tap((a) => this.log(`added w/ id`)),\r\n catchError(this.handleError('add', {}))\r\n );\r\n }\r\n\r\n editInvoice(reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n const url = AppSetting.invoice.editInvoice\r\n .replace('{providerId}', this.loggedInUserData.parentId)\r\n .replace('{invoiceId}', reqObj.invoiceId);\r\n return this.commonAPIFuncService.put(url, reqObj).pipe(\r\n tap((a) => this.log(`added w/ id`)),\r\n catchError(this.handleError('add', {}))\r\n );\r\n }\r\n\r\n deleteInvoice(invoiceId) {\r\n const url = AppSetting.invoice.deleteInvoice\r\n .replace('{providerId}', this.loggedInUserData.parentId)\r\n .replace('{invoiceId}', invoiceId);\r\n return this.commonAPIFuncService.delete(url).pipe(\r\n tap((a) => this.log(`deleted w/ id`)),\r\n catchError(this.handleError('delete'))\r\n );\r\n }\r\n\r\n resendInvoice(invoiceId, reqObj) {\r\n const url = AppSetting.invoice.resendInvoice\r\n .replace('{invoiceId}', invoiceId);\r\n return this.commonAPIFuncService.post(url, reqObj).pipe(\r\n tap((a) => this.log(`deleted w/ id`)),\r\n catchError(this.handleError('delete'))\r\n );\r\n }\r\n\r\n finalizeInvoice(invoiceId) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n const url = AppSetting.invoice.finalizeInvoice\r\n .replace('{providerId}', this.loggedInUserData.parentId)\r\n .replace('{invoiceId}', invoiceId);\r\n return this.commonAPIFuncService.post(url, {}).pipe(\r\n tap((a) => this.log(`added w/ id`)),\r\n catchError(this.handleError('add', {}))\r\n );\r\n }\r\n\r\n getInvoiceCount(reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n\r\n let url = '';\r\n url = AppSetting.invoice.getInvoiceCount\r\n .replace('{providerId}', this.loggedInUserData.parentId);\r\n\r\n return this.commonAPIFuncService.post(url, reqObj)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n closeAndWriteOff(invoiceId, reqObj) {\r\n const url = AppSetting.invoice.closeInvoice\r\n .replace('{providerId}', this.loggedInUserData.parentId)\r\n .replace('{invoiceId}', invoiceId);\r\n return this.commonAPIFuncService.post(url, reqObj).pipe(\r\n tap((a) => this.log(`closed w/ id`)),\r\n catchError(this.handleError('delete'))\r\n );\r\n }\r\n\r\n buildQuery(data) {\r\n let queryData = '';\r\n for (const prop in data) {\r\n if (data[prop] !== '' && data[prop] !== 'undefined' && data[prop] !== null) {\r\n if (queryData === '') {\r\n queryData = '?' + prop + '=' + data[prop];\r\n } else {\r\n queryData += '&' + prop + '=' + data[prop];\r\n }\r\n }\r\n }\r\n return queryData;\r\n }\r\n\r\n payment(invoiceId, reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n const url = AppSetting.invoice.payments\r\n .replace('{invoiceId}', invoiceId);\r\n return this.commonAPIFuncService.post(url, reqObj).pipe(\r\n tap((a) => this.log(`added w/ id`)),\r\n catchError(this.handleError('add', {}))\r\n );\r\n }\r\n\r\n schedulePayment(invoiceId, reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n const url = AppSetting.invoice.schedulepayment\r\n .replace('{invoiceId}', invoiceId);\r\n return this.commonAPIFuncService.post(url, reqObj).pipe(\r\n tap((a) => this.log(`added w/ id`)),\r\n catchError(this.handleError('add', {}))\r\n );\r\n }\r\n\r\n // /providers/{parentId}/recurringpayments\r\n addRecurringPayment(invoiceId, reqObj) {\r\n const url = AppSetting.invoice.recurringpayment\r\n .replace('{invoiceId}', invoiceId);\r\n return this.commonAPIFuncService.post(url, reqObj)\r\n .pipe(\r\n tap((a) => this.log(`added w/ id`)),\r\n catchError(this.handleError('add', {}))\r\n );\r\n }\r\n getInvoiceStatusReport(reqObj){\r\n const url = AppSetting.invoice.statusreport\r\n .replace('{providerId}', this.getLoggedInData()['parentId']) + this.buildQuery(reqObj);\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n getTaxReport(reqObj){\r\n const url = AppSetting.invoice.taxreport\r\n .replace('{providerId}', this.getLoggedInData()['parentId']) + this.buildQuery(reqObj);\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n private handleError(operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n // TODO: send the error to remote logging infrastructure\r\n // console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log(`${operation} failed: ${error.message}`);\r\n // Let the app keep running by returning an empty result.\r\n // return Observable.throw(error.json().error || error.message);\r\n return throwError(error);\r\n // return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a HeroService message with the MessageService */\r\n private log(message: string) {\r\n // this.messageService.add('HeroService: ' + message);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CommonApiFuncService } from './common-api-func.service';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\nimport { tap, catchError } from 'rxjs/operators';\r\nimport { StorageService } from '../session/storage.service';\r\nimport { StorageType } from 'src/app/enum/storage.enum';\r\nimport { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class LoginService {\r\n\r\n constructor(private commonAPIFuncService: CommonApiFuncService,\r\n private storageService: StorageService) { }\r\n\r\n getLoggedInData() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'userDetails'));\r\n }\r\n\r\n login(data) {\r\n return this.commonAPIFuncService.post(AppSetting.common.login, data).pipe(\r\n tap(_ => this.commonAPIFuncService.log(`deleted id`)),\r\n catchError(this.commonAPIFuncService.handleError('delete'))\r\n );\r\n }\r\n patientLogin(data) {\r\n return this.commonAPIFuncService.post(AppSetting.common.patientLogin, data).pipe(\r\n tap(_ => this.commonAPIFuncService.log(`deleted id`)),\r\n catchError(this.commonAPIFuncService.handleError('delete'))\r\n );\r\n }\r\n patientLoginOTP(data) {\r\n return this.commonAPIFuncService.post(AppSetting.common.patientLoginOTP, data).pipe(\r\n tap(_ => this.commonAPIFuncService.log(`deleted id`)),\r\n catchError(this.commonAPIFuncService.handleError('delete'))\r\n );\r\n }\r\n\r\n patientLoginViaOTP(data) {\r\n return this.commonAPIFuncService.post(AppSetting.common.patientLoginViaOTP, data).pipe(\r\n tap(_ => this.commonAPIFuncService.log(`deleted id`)),\r\n catchError(this.commonAPIFuncService.handleError('delete'))\r\n );\r\n }\r\n getloginUserData(userType, username, parentID) {\r\n let url;\r\n if (userType === UserTypeEnum.GLOBAL) {\r\n url = AppSetting.common.getGlobalUserByUserName\r\n .replace('{username}', username);\r\n } else if (userType === UserTypeEnum.PROVIDER) {\r\n url = AppSetting.common.getProviderUserByUserName\r\n .replace('{parentId}', parentID)\r\n .replace('{username}', username);\r\n } else if (userType === UserTypeEnum.PATIENT) {\r\n url = AppSetting.common.getPatientUserByUserName\r\n .replace('{parentId}', parentID)\r\n .replace('{username}', username);\r\n\r\n }\r\n\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonAPIFuncService.log(`fetched`)),\r\n catchError(this.commonAPIFuncService.handleError('', []))\r\n );\r\n\r\n }\r\n\r\n getProviderData(providerId) {\r\n let url = AppSetting.provider.globalGetProviderById\r\n .replace('{providerId}', providerId);\r\n return this.commonAPIFuncService.get(url).pipe(\r\n tap(_ => this.commonAPIFuncService.log(`deleted id`)),\r\n catchError(this.commonAPIFuncService.handleError('delete'))\r\n );\r\n }\r\n\r\n getloginUserDetail(userType, username, parentID) {\r\n let url;\r\n\r\n url = AppSetting.common.getProviderUserDetail\r\n .replace('{parentId}', parentID)\r\n .replace('{username}', username);\r\n\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonAPIFuncService.log(`fetched`)),\r\n catchError(this.commonAPIFuncService.handleError('', []))\r\n );\r\n\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\nimport { CommonApiFuncService } from './common-api-func.service';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { Observable, of, Subject, throwError } from 'rxjs';\r\nimport { StorageService } from '../session/storage.service';\r\nimport { StorageType } from '../session/storage.enum';\r\nimport { CommonService } from './common.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PatientAccountService {\r\n\r\n private subject = new Subject();\r\n\r\n constructor(\r\n private commonAPIFuncService: CommonApiFuncService,\r\n private storageService: StorageService,\r\n private commonService: CommonService\r\n ) { }\r\n\r\n sendMessage(message: string) {\r\n this.subject.next({ text: message });\r\n }\r\n\r\n setSelectedAccount(id, maskedCardNumber, tab) {\r\n this.subject.next({ AccountId: id, cardNumber: maskedCardNumber, tab: tab });\r\n }\r\n\r\n getSelectedAccount(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n\r\n getLoggedInData() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'userDetails'));\r\n }\r\n\r\n addPatientAccount(patientId, data) {\r\n\r\n let url;\r\n if (this.getLoggedInData().userType == 0) {\r\n url = AppSetting.patientAccount.findPatientAccount.replace('{custId}', patientId);\r\n } else {\r\n url = AppSetting.provider.common + '/' + this.getLoggedInData()['parentId']\r\n + '/patients/' + patientId + '/accounts'\r\n }\r\n\r\n return this.commonAPIFuncService.post(url, data).pipe(\r\n tap(a => this.log('added w/ id')),\r\n catchError(this.handleError('add'))\r\n );\r\n }\r\n\r\n editPatientAccount(data, patientId, patientAccountId) {\r\n let url;\r\n if (this.getLoggedInData().userType == 0) {\r\n url = AppSetting.patientAccount.findPatientAccount.replace('{custId}', patientId) + '/' + patientAccountId;\r\n } else {\r\n url = AppSetting.provider.common + '/' + this.getLoggedInData()['parentId'] + '/patients/' + patientId +\r\n '/accounts/' + patientAccountId;\r\n }\r\n return this.commonAPIFuncService.put(url, data).pipe(\r\n tap((a) => this.log(`added w/ id`)),\r\n catchError(this.handleError('add', {}))\r\n );\r\n }\r\n\r\n deletePatientService(patientId, patientAccountId) {\r\n const url = AppSetting.provider.common + '/' + this.getLoggedInData()['parentId'] + '/patients/' + patientId +\r\n '/accounts/' + patientAccountId;\r\n return this.commonAPIFuncService.delete(url).pipe(\r\n tap(_ => this.log(`deleted id`)),\r\n catchError(this.handleError('delete'))\r\n );\r\n }\r\n\r\n getPatientAccountById(patientId, providerId, patientAccountId) {\r\n let url;\r\n if (this.getLoggedInData().userType == 0) {\r\n url = AppSetting.patientAccount.findPatientAccount.replace('{custId}', patientId) + '/' + patientAccountId;\r\n } else {\r\n url = AppSetting.provider.common + '/' + providerId + '/patients/' + patientId + '/accounts/' + patientAccountId;\r\n }\r\n\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n activatePatientAccount(patientId, parentId, patientAcountId) {\r\n let url;\r\n if (this.getLoggedInData().userType == 0) {\r\n url = AppSetting.wallet.activatePatientAccount.replace('{patientId}', patientId)\r\n .replace('{accountId}', patientAcountId);\r\n } else {\r\n url = AppSetting.patient.activatePatientAccount\r\n .replace('{providerId}', parentId)\r\n .replace('{patientId}', patientId)\r\n .replace('{accountId}', patientAcountId)\r\n }\r\n return this.commonAPIFuncService.post(url, {})\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n inactivatePatientAccount(patientId, parentId, patientAccountId) {\r\n\r\n let url;\r\n if (this.getLoggedInData().userType == 0) {\r\n url = AppSetting.wallet.activatePatientAccount.replace('{patientId}', patientId)\r\n .replace('{accountId}', patientAccountId);\r\n } else {\r\n url = AppSetting.provider.common + '/' + parentId + '/patients/' + patientId + '/accounts/' + patientAccountId + '/activations';\r\n }\r\n return this.commonAPIFuncService.delete(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n deletePatientAccount(patientId, parentId, patientAccountId) {\r\n\r\n let url;\r\n if (this.getLoggedInData().userType == 0) {\r\n url = AppSetting.wallet.deletePatientAccount.replace('{patientId}', patientId)\r\n .replace('{accountId}', patientAccountId);\r\n } else {\r\n url = AppSetting.provider.common + '/' + parentId + '/patients/' + patientId + '/accounts/' + patientAccountId;\r\n }\r\n return this.commonAPIFuncService.delete(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n practiceLocationLookup(patientSelectedProviderId) {\r\n let url = '';\r\n if (this.getLoggedInData().userType == 0) {\r\n url = AppSetting.patient.practiceLocationLookup.replace('{providerId}', patientSelectedProviderId);\r\n } else {\r\n url = AppSetting.provider.practiceLocationLookup\r\n .replace('{providerId}', this.getLoggedInData()['parentId']);\r\n }\r\n return this.commonAPIFuncService.get(url).pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n buildQuery(data) {\r\n let queryData = '';\r\n for (const prop in data) {\r\n if (data[prop] !== '' && data[prop] !== 'undefined' && data[prop] !== null) {\r\n if (queryData === '') {\r\n queryData = '?' + prop + '=' + data[prop];\r\n } else {\r\n queryData += '&' + prop + '=' + data[prop];\r\n }\r\n }\r\n }\r\n return queryData;\r\n }\r\n\r\n private handleError(operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n // TODO: send the error to remote logging infrastructure\r\n // console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log(`${operation} failed: ${error.message}`);\r\n\r\n // Let the app keep running by returning an empty result.\r\n return throwError(error);\r\n // return Observable.throw(error.json().error || error.message);\r\n // return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a HeroService message with the MessageService */\r\n private log(message: string) {\r\n\r\n }\r\n isExistsPatientAccount(reqObj) {\r\n let url;\r\n url = AppSetting.patientAccount.isExists\r\n .replace('{patientId}', this.getLoggedInData()['parentId']);\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { StorageService } from '../session/storage.service';\r\nimport { StorageType } from '../session/storage.enum';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { CommonService } from './common.service';\r\nimport { HttpHeaders, HttpClient } from '@angular/common/http';\r\nimport { CommonApiFuncService } from './common-api-func.service';\r\nimport { IUploadLogItem } from 'src/app/common/interface/uploadLog';\r\nimport { PatientUploadRecordEnum, UploadFileStatusEnum } from 'src/app/enum/upload-log.enum';\r\nimport { BulkUploadService } from './bulk-upload.service';\r\nimport { Observable } from 'rxjs';\r\nimport { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class PatientUploadsService implements BulkUploadService {\r\n UNIQUE_IDENTIFIER = 'SYL__';\r\n httpOptions = {\r\n headers: new HttpHeaders({ 'Content-Type': 'application/json' }),\r\n };\r\n fileStatusTextMap: Map;\r\n\r\n constructor(\r\n private commonAPIFuncService: CommonApiFuncService,\r\n private storageService: StorageService,\r\n private commonService: CommonService,\r\n private http: HttpClient\r\n ) {\r\n this.fileStatusTextMap = new Map();\r\n this.fileStatusTextMap.set(UploadFileStatusEnum.PROCESSING, 'Processing');\r\n this.fileStatusTextMap.set(UploadFileStatusEnum.PROCESSED, 'Processed');\r\n this.fileStatusTextMap.set(UploadFileStatusEnum.ERROR, 'Error');\r\n }\r\n\r\n private getLoggedInData() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'userDetails'));\r\n }\r\n\r\n public getUploadLog(id: string) {\r\n let url = AppSetting.patientUploads.getByIdUploadLog.replace('{id}', id);\r\n let params = {};\r\n\r\n url = url.replace('{parentId}', this.getLoggedInData().parentId);\r\n\r\n return this.getHttp(url, params).pipe(\r\n catchError(this.commonAPIFuncService.handleError('', [])),\r\n map((r: IUploadLogItem) => {\r\n r.totalProcessed = this.getTotalRecordsProcessed(r);\r\n return r;\r\n }),\r\n );\r\n }\r\n\r\n public getAllUploadLogs(params) {\r\n const defaultParams = { SortField: 'createdOn', ...params };\r\n const url = AppSetting.patientUploads.getAllUploadLogs.replace('{parentId}', this.getLoggedInData().parentId);\r\n return this.getHttp(url, defaultParams).pipe(catchError(this.commonAPIFuncService.handleError('', [])));\r\n\r\n }\r\n\r\n public upload(file: File, description: string) {\r\n const formData: FormData = new FormData();\r\n formData.append('file', file);\r\n\r\n let url = AppSetting.patientUploads.uploadPatientFile.\r\n replace('{parentId}', this.getLoggedInData().parentId);\r\n\r\n url = `${url}${this.commonService.buildQuery({ description })}`;\r\n\r\n return this.commonAPIFuncService.formDataPost(url, formData)\r\n .pipe(\r\n tap(() => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n public uploadAttachment(formData: FormData, patientId) {\r\n\r\n let url = '';\r\n\r\n if (this.getLoggedInData().userType === UserTypeEnum.PROVIDER) {\r\n url = AppSetting.attachments.providerAttachment.\r\n replace('{parentId}', this.getLoggedInData().parentId).\r\n replace('{patientId}', patientId);\r\n } else if (this.getLoggedInData().userType === UserTypeEnum.PATIENT) {\r\n url = AppSetting.attachments.patientAttachment.\r\n replace('{patientId}', patientId);\r\n }\r\n\r\n return this.commonAPIFuncService.formDataPost(url, formData)\r\n .pipe(\r\n tap(() => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n findAttachments(patientId, reqObj) {\r\n\r\n let url = '';\r\n\r\n if (this.getLoggedInData().userType === UserTypeEnum.PROVIDER) {\r\n url = AppSetting.attachments.providerAttachment\r\n .replace('{parentId}', this.getLoggedInData().parentId)\r\n .replace('{patientId}', patientId);\r\n } else if (this.getLoggedInData().userType === UserTypeEnum.PATIENT) {\r\n url = AppSetting.attachments.patientAttachment\r\n .replace('{patientId}', patientId);\r\n }\r\n\r\n url = `${url}${this.commonService.buildQuery(reqObj)}`;\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonAPIFuncService.log(`fetched`)),\r\n catchError(this.commonAPIFuncService.handleError('', []))\r\n );\r\n }\r\n\r\n download(url: string): Observable {\r\n return this.http.get(url, {\r\n responseType: 'blob'\r\n })\r\n }\r\n\r\n deleteAttachment(attachmentId, patientId) {\r\n\r\n let url = '';\r\n\r\n if (this.getLoggedInData().userType === UserTypeEnum.PROVIDER) {\r\n url = AppSetting.attachments.providerDelete\r\n .replace('{parentId}', this.getLoggedInData().parentId)\r\n .replace('{patientId}', patientId)\r\n .replace('{docId}', attachmentId)\r\n } else if (this.getLoggedInData().userType === UserTypeEnum.PATIENT) {\r\n url = AppSetting.attachments.patientDelete\r\n .replace('{patientId}', patientId)\r\n .replace('{docId}', attachmentId)\r\n }\r\n\r\n return this.commonAPIFuncService.delete(url)\r\n .pipe(\r\n tap(a => this.commonAPIFuncService.log(`fetched`)),\r\n catchError(this.commonAPIFuncService.handleError('', []))\r\n );\r\n }\r\n\r\n linkProviderToAttachment(reqObj, patientId) {\r\n let url = '';\r\n\r\n url = AppSetting.attachments.authorize.\r\n replace('{patientId}', patientId);\r\n\r\n return this.commonAPIFuncService.post(url, reqObj)\r\n .pipe(\r\n tap(() => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n // custom get with params\r\n private getHttp(url, params?) {\r\n return this.http.get(url, {\r\n params: params,\r\n headers: this.httpOptions.headers,\r\n });\r\n }\r\n\r\n // getPresentable file name\r\n public getFilenNameFromPath(ul: IUploadLogItem) {\r\n const s = ul.filePath;\r\n const a = s.slice(0, s.lastIndexOf('_')); // remove datetime\r\n const b = a.slice(a.lastIndexOf('/') + 1); // get file name\r\n let c = b.slice(b.indexOf('_') + 1); // first _ prefix merhchant\r\n if (c.indexOf(this.UNIQUE_IDENTIFIER) !== -1) {\r\n c = c.slice(c.lastIndexOf(this.UNIQUE_IDENTIFIER) + this.UNIQUE_IDENTIFIER.length);\r\n }\r\n return c;\r\n }\r\n\r\n public getFileStatusText(status: UploadFileStatusEnum) {\r\n return this.fileStatusTextMap.get(status);\r\n }\r\n\r\n public checkMissingHeaders(parsedData: any): any {\r\n const headersSet = new Set();\r\n headersSet.add(PatientUploadRecordEnum.FirstName);\r\n headersSet.add(PatientUploadRecordEnum.LastName);\r\n headersSet.add(PatientUploadRecordEnum.Dob);\r\n headersSet.add(PatientUploadRecordEnum.Phone);\r\n headersSet.add(PatientUploadRecordEnum.OptIn);\r\n headersSet.add(PatientUploadRecordEnum.City);\r\n headersSet.add(PatientUploadRecordEnum.Country);\r\n headersSet.add(PatientUploadRecordEnum.State);\r\n headersSet.add(PatientUploadRecordEnum.PostalCode);\r\n\r\n const parsedHeadersSet = new Set(parsedData.data[0]);\r\n const missingHeadersSet = this.commonService.difference(headersSet, parsedHeadersSet);\r\n return Array.from(missingHeadersSet);\r\n }\r\n\r\n public getTotalRecordsProcessed(ul: IUploadLogItem): number {\r\n return (ul.totalProcessed = ul.failedCount + ul.successfulCount || 0);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\nimport { CommonApiFuncService } from './common-api-func.service';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { Observable, throwError, Subject } from 'rxjs';\r\nimport { StorageService } from '../session/storage.service';\r\nimport { StorageType } from '../session/storage.enum';\r\nimport { CommonService } from './common.service';\r\nimport { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class PatientService {\r\n\r\n\r\n loggedInUserData: any = {};\r\n selectedPatientId = '';\r\n selectedPatientName = '';\r\n selectedAccountId = '';\r\n selectedAccountcardNumber = '';\r\n\r\n private subject = new Subject();\r\n private patientUpdated = new Subject();\r\n\r\n private patientData: any;\r\n private patientDataUpdated = new Subject();\r\n\r\n constructor(\r\n private commonAPIFuncService: CommonApiFuncService,\r\n private storageService: StorageService,\r\n private commonService: CommonService\r\n ) { }\r\n\r\n\r\n sendMessage(message: string) {\r\n this.subject.next({ text: message });\r\n }\r\n\r\n getMessage(): Observable {\r\n return this.subject.asObservable();\r\n }\r\n setSelectedPatient(id, name) {\r\n this.selectedPatientId = id;\r\n this.selectedPatientName = name;\r\n }\r\n\r\n setSelectedAccount(id, maskedCardNumber) {\r\n this.selectedAccountId = id;\r\n this.selectedAccountcardNumber = maskedCardNumber;\r\n }\r\n getSelectedAccountId() {\r\n return this.selectedAccountId;\r\n }\r\n\r\n getSelectedAccountName() {\r\n return this.selectedAccountcardNumber;\r\n }\r\n getSelectedPatientId() {\r\n return this.selectedPatientId;\r\n }\r\n getSelectedPatientName() {\r\n return this.selectedPatientName;\r\n }\r\n getLoggedInData() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'userDetails'));\r\n }\r\n getInsuranceList() {\r\n return this.commonAPIFuncService.get(AppSetting.patient.getInsurancerPartner).pipe(\r\n tap(_ => this.commonAPIFuncService.log(`deleted id`)),\r\n catchError(this.commonAPIFuncService.handleError('delete'))\r\n );\r\n }\r\n\r\n setPatientUpdated(message: boolean = true) {\r\n this.patientUpdated.next({ text: message });\r\n }\r\n\r\n getPatientUpdated(): Observable {\r\n return this.patientUpdated.asObservable();\r\n }\r\n\r\n setPatientDataUpdated(message: boolean = true) {\r\n this.patientDataUpdated.next({ text: message });\r\n }\r\n\r\n getPatientDataUpdated(message: boolean = true) {\r\n return this.patientDataUpdated.asObservable();\r\n }\r\n\r\n getPatientData() {\r\n return this.patientData;\r\n }\r\n\r\n addNote(data, patientId) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n\r\n const url = AppSetting.patient.addNote.replace('{providerId}', this.getLoggedInData()['parentId'])\r\n .replace('{patientId}', patientId);\r\n //const url = 'http://10.197.1.67:8081/providers/{providerId}/patients'.replace('{providerId}', 'n1WxodVY');\r\n return this.commonAPIFuncService.post(url, data).pipe(\r\n tap(a => this.log('added w/ id')),\r\n catchError(this.handleError('add'))\r\n );\r\n }\r\n\r\n editNote(data, patientId, noteID) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n\r\n const url = AppSetting.patient.addNote.replace('{providerId}', this.getLoggedInData()['parentId'])\r\n .replace('{patientId}', patientId) + '/' + noteID;\r\n //const url = 'http://10.197.1.67:8081/providers/{providerId}/patients'.replace('{providerId}', 'n1WxodVY');\r\n return this.commonAPIFuncService.put(url, data).pipe(\r\n tap(a => this.log('added w/ id')),\r\n catchError(this.handleError('add'))\r\n );\r\n }\r\n\r\n addPatient(data) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n\r\n const url = AppSetting.patient.addPatient.replace('{providerId}', this.getLoggedInData()['parentId']);\r\n\r\n //const url = 'http://10.197.1.67:8081/providers/{providerId}/patients'.replace('{providerId}', 'n1WxodVY');\r\n return this.commonAPIFuncService.post(url, data).pipe(\r\n tap(a => this.log('added w/ id')),\r\n catchError(this.handleError('add')),\r\n );\r\n }\r\n\r\n editPatient(data, patientId) {\r\n\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url = '';\r\n if (this.loggedInUserData.userType === UserTypeEnum.PATIENT) {\r\n url = AppSetting.patient.editForPatient.replace('{patientId}', this.getLoggedInData()['parentId']);\r\n } else if (this.loggedInUserData.userType === UserTypeEnum.PROVIDER) {\r\n url = AppSetting.patient.edit.replace('{providerId}', this.getLoggedInData()['parentId']) + patientId;\r\n }\r\n return this.commonAPIFuncService.put(url, data).pipe(\r\n tap((a) => this.log(`added w/ id`)),\r\n catchError(this.handleError('add', {}))\r\n );\r\n }\r\n\r\n getPatientById(patientId) {\r\n let url;\r\n if (this.getLoggedInData().userType == 0) {\r\n url = AppSetting.wallet.edit + patientId;\r\n } else {\r\n url = AppSetting.patient.edit.replace('{providerId}', this.getLoggedInData()['parentId']) + patientId;\r\n }\r\n\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n map((res: any) => {\r\n\r\n let fullName = '';\r\n fullName = (res.firstName !== '' && res.firstName != null) ? `${res.firstName} ` : '';\r\n fullName = (res.firstName !== '' && res.lastName != null) ? `${fullName}${res.lastName}` : `${fullName}`;\r\n res.fullName = fullName;\r\n\r\n const data = res;\r\n this.patientData = res; this.setPatientDataUpdated(true);\r\n return data;\r\n }),\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n optInOptOutPatient(request, parentId) {\r\n const url = AppSetting.patient.optInOptOut;\r\n return this.commonAPIFuncService.post(url, request)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n linkPatient(request, parentId) {\r\n const url = AppSetting.patient.linkPatient\r\n .replace('{providerId}', this.getLoggedInData()['parentId'])\r\n .replace('{patientId}', request.id)\r\n return this.commonAPIFuncService.post(url, request)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n findNotes(reqObj) {\r\n const url = AppSetting.patient.getNotes\r\n .replace('{providerId}', this.getLoggedInData()['parentId'])\r\n + this.buildQuery(reqObj);\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n inactivatePatient(patientId, parentId) {\r\n const url = AppSetting.patient.activatePatient\r\n .replace('{providerId}', parentId)\r\n .replace('{custId}', patientId)\r\n return this.commonAPIFuncService.delete(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n findPatient(reqObj) {\r\n let url;\r\n if (reqObj.AllActiveInactive) {\r\n // delete reqObj.isEnabled;\r\n delete reqObj.AllActiveInactive;\r\n }\r\n url = AppSetting.patient.findPatient.replace('{providerId}', this.getLoggedInData()['parentId']) + this.buildQuery(reqObj);\r\n //url ='http://10.197.1.67:8081/providers/{providerId}/patients'.replace('{providerId}', 'n1WxodVY') + this.buildQuery(reqObj);\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n fetchPatientAccount(patientId) {\r\n let url;\r\n if (this.getLoggedInData().userType == 0) {\r\n url = AppSetting.wallet.findPatientAccount.replace('{custId}', patientId);\r\n } else {\r\n url = AppSetting.patient.findPatientAccount.replace('{providerId}', this.getLoggedInData()['parentId']).replace('{custId}', patientId);\r\n }\r\n\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n getRecurringPaymentInfo(patientId, providerId) {\r\n let url;\r\n url = `${AppSetting.provider.get}/${providerId}/patients/${patientId}/recurringpayments`;\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n getInvoiceInfo(patientId, providerId, type) {\r\n let url;\r\n if (type === 'onetime') {\r\n url = `${AppSetting.provider.get}/${providerId}/patients/${patientId}/invoices`;\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n if (type === 'schedule') {\r\n url = `${AppSetting.provider.get}/${providerId}/patients/${patientId}/invoiceschedule`;\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n }\r\n\r\n isExistsPatient(reqObj) {\r\n let url;\r\n url = AppSetting.patient.isExists.replace('{providerId}', this.getLoggedInData()['parentId']).replace('{emailId}', reqObj.email);\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n addVisits(reqObj, parentId) {\r\n const url = AppSetting.patient.visits\r\n .replace('{providerId}', this.getLoggedInData()['parentId'])\r\n .replace('{patientId}', parentId);\r\n return this.commonAPIFuncService.post(url, reqObj)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n updateVisits(reqObj, patientId, visitId) {\r\n const url = AppSetting.patient.updateVisits\r\n .replace('{providerId}', this.getLoggedInData()['parentId'])\r\n .replace('{patientId}', patientId)\r\n .replace('{visitId}', visitId);\r\n return this.commonAPIFuncService.put(url, reqObj)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n findVisits(reqObj, patientId) {\r\n const url = AppSetting.patient.visits\r\n .replace('{providerId}', this.getLoggedInData()['parentId'])\r\n .replace('{patientId}', patientId)\r\n + this.buildQuery(reqObj);\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n buildQuery(data) {\r\n let queryData = '';\r\n for (const prop in data) {\r\n if (data[prop] !== '' && data[prop] !== 'undefined' && data[prop] !== null) {\r\n if (queryData === '') {\r\n queryData = '?' + prop + '=' + data[prop];\r\n } else {\r\n queryData += '&' + prop + '=' + data[prop];\r\n }\r\n }\r\n }\r\n return queryData;\r\n }\r\n\r\n private handleError(operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n // TODO: send the error to remote logging infrastructure\r\n // console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log(`${operation} failed: ${error.message}`);\r\n\r\n // Let the app keep running by returning an empty result.\r\n return throwError(error);\r\n // return Observable.throw(error.json().error || error.message);\r\n // return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a HeroService message with the MessageService */\r\n private log(message: string) {\r\n // this.messageService.add('HeroService: ' + message);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CommonApiFuncService } from './common-api-func.service';\r\nimport { StorageService } from '../session/storage.service';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\nimport { StorageType } from '../session/storage.enum';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { CommonService } from './common.service';\r\nimport { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ProductService {\r\n findMerchantData;\r\n isFromAddProduct = false;\r\n loggedInUserData: any = {};\r\n\r\n constructor(private commonAPIFuncService: CommonApiFuncService,\r\n private storageService: StorageService,\r\n private commonService: CommonService) {\r\n\r\n }\r\n\r\n getLoggedInData() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'userDetails'));\r\n\r\n }\r\n\r\n productLookup(reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url = '';\r\n\r\n url = AppSetting.product.lookup\r\n .replace('{parentId}', this.getLoggedInData()['parentId']) +\r\n this.commonService.buildQuery(reqObj);\r\n\r\n return this.commonAPIFuncService.get(url).pipe(\r\n tap(_ => this.commonAPIFuncService.log(`deleted id`)),\r\n catchError(this.commonAPIFuncService.handleError('delete'))\r\n );\r\n }\r\n\r\n addProduct(reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url = '';\r\n\r\n url = AppSetting.product.add\r\n .replace('{parentId}', this.getLoggedInData()['parentId']);\r\n\r\n return this.commonAPIFuncService.post(url, reqObj)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n editProduct(reqObj) {\r\n let url = '';\r\n\r\n url = AppSetting.product.edit\r\n .replace('{parentId}', this.getLoggedInData()['parentId'])\r\n .replace('{productId}', reqObj.id);\r\n\r\n return this.commonAPIFuncService.put(url, reqObj)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n findProduct(reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url;\r\n\r\n url = AppSetting.product.find\r\n .replace('{parentId}', this.getLoggedInData()['parentId'])\r\n + this.commonService.buildQuery(reqObj);\r\n\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n getProductById(reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url;\r\n\r\n url = AppSetting.product.getById\r\n .replace('{parentId}', this.getLoggedInData()['parentId'])\r\n .replace('{productId}', reqObj.id);\r\n\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n addcustomTags(reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url = '';\r\n\r\n url = AppSetting.product.addCustomTags\r\n .replace('{parentId}', this.getLoggedInData()['parentId']);\r\n\r\n return this.commonAPIFuncService.post(url, reqObj)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n getAllLookupTags() {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url;\r\n\r\n url = AppSetting.product.getAllLookupTags\r\n .replace('{parentId}', this.getLoggedInData()['parentId']);\r\n\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n getProductsCptCodes(reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url;\r\n\r\n url = AppSetting.product.getProductsCptCodes\r\n .replace('{parentId}', this.getLoggedInData()['parentId'])\r\n + this.commonService.buildQuery(reqObj);\r\n\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n activateProduct(reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url;\r\n\r\n url = AppSetting.product.activateDeactivateProducts\r\n .replace('{parentId}', this.loggedInUserData.parentId)\r\n .replace('{productId}', reqObj.id);\r\n\r\n return this.commonAPIFuncService.post(url, {})\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n deactivateProduct(reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url;\r\n url = AppSetting.product.activateDeactivateProducts\r\n .replace('{parentId}', this.loggedInUserData.parentId)\r\n .replace('{productId}', reqObj.id);\r\n\r\n return this.commonAPIFuncService.delete(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CommonApiFuncService } from './common-api-func.service';\r\nimport { StorageService } from '../session/storage.service';\r\nimport { StorageType } from '../session/storage.enum';\r\nimport { Observable, of, throwError } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\n\r\n\r\n\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class \r\nProviderService {\r\n loggedInUserData: any = {};\r\n findProviderData;\r\n isFromAddProvider = false;\r\n\r\n constructor(private commonAPIFuncService: CommonApiFuncService, private storageService: StorageService) {\r\n }\r\n\r\n getLoggedInData() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'userDetails'));\r\n }\r\n\r\n getProviderData() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'providerDetails'));\r\n }\r\n\r\n findProvider(reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url = AppSetting.provider.globalFindProvider;\r\n url = `${url}${this.buildQuery(reqObj)}`;\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n\r\n getProviderById(providerId) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url = AppSetting.provider.globalGetProviderById.replace('{providerId}', providerId);\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n getProviderDetails(providerId) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url = AppSetting.provider.getProviderDetail.replace('{providerId}', providerId);\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n // /providers/{providerId}/activations\r\n activateProvider(providerId) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url = AppSetting.provider.activateProviderUnderGlobal.replace('{providerId}', providerId);\r\n return this.commonAPIFuncService.post(url, {})\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n // /providers/{providerId}/activations\r\n deactivateProvider(providerId) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url = AppSetting.provider.deactivateProviderUnderGlobal.replace('{providerId}', providerId);\r\n return this.commonAPIFuncService.delete(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n getAllActiveProviders() {\r\n const url = `${AppSetting.provider.get}/list`;\r\n //const url = 'http://10.197.1.67:5000/providers/list';\r\n return this.commonAPIFuncService.get(url).pipe(\r\n tap(a => this.log('fetched')),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n addProvider(reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url = AppSetting.provider.addProviderUnderGlobal;\r\n return this.commonAPIFuncService.post(url, reqObj).pipe(\r\n tap(a => this.log('added w/ id')),\r\n catchError(this.handleError('add'))\r\n );\r\n }\r\n\r\n editProvider(reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url = AppSetting.provider.editProviderUnderGlobal.replace('{providerId}', reqObj.id);\r\n return this.commonAPIFuncService.put(url, reqObj).pipe(\r\n tap((a) => this.log(`added w/ id`)),\r\n catchError(this.handleError('add', {}))\r\n );\r\n }\r\n\r\n emulate(reqObj) {\r\n this.loggedInUserData = this.getLoggedInData();\r\n const url = AppSetting.common.emulate\r\n .replace('{username}', reqObj.userName);\r\n return this.commonAPIFuncService.post(url, reqObj).pipe(\r\n tap(a => this.log('added w/ id')),\r\n catchError(this.handleError('add'))\r\n );\r\n }\r\n\r\n buildQuery(data) {\r\n let queryData = '';\r\n for (const prop in data) {\r\n if (data[prop] !== '' && data[prop] !== 'undefined' && data[prop] !== null) {\r\n if (queryData === '') {\r\n queryData = '?' + prop + '=' + data[prop];\r\n } else {\r\n queryData += '&' + prop + '=' + data[prop];\r\n }\r\n }\r\n }\r\n return queryData;\r\n }\r\n\r\n private handleError(operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n // TODO: send the error to remote logging infrastructure\r\n // console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log(`${operation} failed: ${error.message}`);\r\n\r\n // Let the app keep running by returning an empty result.\r\n return throwError(error);\r\n // return Observable.throw(error.json().error || error.message);\r\n // return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a HeroService message with the MessageService */\r\n private log(message: string) {\r\n // this.messageService.add('HeroService: ' + message);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, of, throwError } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { CommonApiFuncService } from './common-api-func.service';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\nimport { StorageService } from '../session/storage.service';\r\nimport { StorageType } from '../session/storage.enum';\r\nimport { CommonService } from './common.service';\r\nimport { UserTypeEnum } from 'src/app/enum/user-type.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class RecurringPaymentsService {\r\n\r\n loggedInUserData: any = {};\r\n\r\n constructor(\r\n private commonAPIFuncService: CommonApiFuncService,\r\n private storageService: StorageService,\r\n private commonService: CommonService\r\n ) { }\r\n\r\n getLoggedInData() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'userDetails'));\r\n }\r\n\r\n // /providers/{parentId}/recurringpayments\r\n findRecurringPayments(reqObj) {\r\n let url;\r\n if (this.getLoggedInData().userType == 0) {\r\n url = AppSetting.patientRecurringPayments.find\r\n .replace('{patientId}', this.getLoggedInData()['parentId'])\r\n + this.commonService.buildQuery(reqObj);\r\n } else {\r\n url = AppSetting.recurringPayments.find\r\n .replace('{providerId}', this.getLoggedInData()['parentId'])\r\n + this.commonService.buildQuery(reqObj);\r\n }\r\n\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n // /providers/{providerId}/recurringpayments/{recurringId}\r\n getRecurringPaymentsById(reqObj) {\r\n let url;\r\n if (this.getLoggedInData().userType == 0) {\r\n url = AppSetting.patientRecurringPayments.getById\r\n .replace('{patientId}', this.getLoggedInData()['parentId'])\r\n .replace('{recurringId}', reqObj.recurringId);\r\n } else {\r\n url = AppSetting.recurringPayments.getById\r\n .replace('{providerId}', this.getLoggedInData()['parentId'])\r\n .replace('{recurringId}', reqObj.recurringId);\r\n }\r\n\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n // /providers/{parentId}/recurringpayments\r\n addRecurringPayment(reqObj) {\r\n const url = AppSetting.recurringPayments.add\r\n .replace('{providerId}', this.getLoggedInData()['parentId']);\r\n return this.commonAPIFuncService.post(url, reqObj)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n updateRecurringPayment(reqObj) {\r\n const url = AppSetting.recurringPayments.getById\r\n .replace('{providerId}', this.getLoggedInData()['parentId'])\r\n .replace('{recurringId}', reqObj.recurringId);\r\n return this.commonAPIFuncService.put(url, reqObj)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n addScheduleTransaction(reqObj) {\r\n const url = AppSetting.recurringPayments.addScheduleTransaction;\r\n return this.commonAPIFuncService.post(url, reqObj)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n getPaymentScheduleFor90Day(reqObj) { // todo -- need to parentId from input parameter\r\n let url;\r\n url = AppSetting.patientRecurringPayments.scheduleByDay.replace('{patientId}', this.getLoggedInData()['parentId'])\r\n + this.commonService.buildQuery(reqObj);\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n getPaymentSchedule(reqObj) {\r\n let url;\r\n if (this.getLoggedInData().userType == 0) {\r\n url = AppSetting.patientRecurringPayments.schedule\r\n .replace('{patientId}', this.getLoggedInData()['parentId'])\r\n .replace('{recurringId}', reqObj.recurringId);\r\n } else {\r\n url = AppSetting.recurringPayments.schedule\r\n .replace('{providerId}', this.getLoggedInData()['parentId'])\r\n .replace('{recurringId}', reqObj.recurringId);\r\n }\r\n\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n // /providers/{parentId}/recurringpayments/{id}\r\n editRecurringPayment(reqObj) {\r\n const url = AppSetting.recurringPayments.edit\r\n .replace('{providerId}', this.getLoggedInData()['parentId'])\r\n .replace('{recurringId}', reqObj.recurringId);\r\n return this.commonAPIFuncService.put(url, reqObj)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n cancelPaymentPlan(reqObj) {\r\n const url = AppSetting.recurringPayments.cancelPaymentPlan\r\n .replace('{providerId}', this.getLoggedInData()['parentId'])\r\n .replace('{recurringId}', reqObj.id);\r\n return this.commonAPIFuncService.post(url, reqObj)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n // /providers/{providerId}/recurringpayments/{recurringId}/activations\r\n activateRecurringPayment(reqObj) {\r\n const url = AppSetting.recurringPayments.activate\r\n .replace('{providerId}', this.getLoggedInData()['parentId'])\r\n .replace('{recurringId}', reqObj.recurringId);\r\n return this.commonAPIFuncService.post(url, {})\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n getPaymentPlanReport(reqObj,selectedReportType){\r\n let url;\r\n if(selectedReportType == 'past'){\r\n url = AppSetting.recurringPayments.report\r\n .replace('{providerId}', this.getLoggedInData()['parentId']) + this.commonService.buildQuery(reqObj);\r\n }\r\n if(selectedReportType == 'future'){\r\n url = AppSetting.recurringPayments.recurringScheduleReport\r\n .replace('{providerId}', this.getLoggedInData()['parentId']) + this.commonService.buildQuery(reqObj);\r\n }\r\n \r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n // /providers/{providerId}/recurringpayments/{recurringId}/activations\r\n deactivateRecurringPayment(reqObj) {\r\n const url = AppSetting.recurringPayments.deactivate\r\n .replace('{providerId}', this.getLoggedInData()['parentId'])\r\n .replace('{recurringId}', reqObj.recurringId);\r\n return this.commonAPIFuncService.delete(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n getMaskedCardNo(cardNo) {\r\n var endNo = cardNo.substr(cardNo.length - 4, cardNo.length);\r\n var cardNumber = \"****\" + endNo\r\n return cardNumber;\r\n }\r\n\r\n getMaskedAccountNo(accNo) {\r\n const endNo = accNo.substr(accNo.length - 4, accNo.length);\r\n const accountNumber = '****' + endNo;\r\n return accountNumber;\r\n }\r\n\r\n updateAccount(recurringId, reqObj) {\r\n let url;\r\n if (this.getLoggedInData().userType == 0) {\r\n url = AppSetting.recurringPayments.updatePatientAccount\r\n .replace('{patientId}', this.getLoggedInData()['parentId'])\r\n .replace('{recurringId}', recurringId);\r\n } else {\r\n url = AppSetting.recurringPayments.updateAccount\r\n .replace('{providerId}', this.getLoggedInData()['parentId'])\r\n .replace('{recurringId}', recurringId);\r\n }\r\n return this.commonAPIFuncService.put(url, reqObj)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n}\r\n","\r\nimport {Injectable} from '@angular/core';\r\nimport {HttpClient, HttpHeaders} from '@angular/common/http';\r\n\r\nimport {Observable, of, throwError} from 'rxjs';\r\nimport {catchError, map, tap} from 'rxjs/operators';\r\n\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\nimport { CommonApiFuncService } from './common-api-func.service';\r\n\r\n@Injectable({providedIn: 'root'})\r\nexport class ResetPasswordService {\r\n constructor(private commonAPIFuncService: CommonApiFuncService) {\r\n }\r\n\r\n resetPassword(data, userName, userType, parentID, isAdmin) {\r\n //console.log( userName+\" ..\"+ userType+\" ..\"+ parentID+\" ..\"+ isAdmin)\r\n let url = '';\r\n url=AppSetting.baseUrl +'users/' + userName + '/passwords';\r\n if (userType === 1 && data.isReset===true && isAdmin) { //username=userID\r\n url = AppSetting.baseUrl + 'providers/' + parentID + '/users/' + userName + '/resetpassword';\r\n }\r\n if (userType === 1 && data.isReset===true && !isAdmin) { //username=userID\r\n url = AppSetting.baseUrl + 'providers/' + parentID + '/providerusers/' + userName + '/resetpassword';\r\n }\r\n if ( data.isReset===true && userType === 0 ) { //username= patientId\r\n url = AppSetting.baseUrl + 'patients/' + parentID + '/users/' + userName + '/resetpassword';\r\n }\r\n return this.commonAPIFuncService.post(url, data).pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n acceptTerms(username,data){\r\n let url= AppSetting.common.acceptTerm.replace('{user}', username);\r\n return this.commonAPIFuncService.post(url, data).pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n private handleError(operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n // TODO: send the error to remote logging infrastructure\r\n // console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log(`${operation} failed: ${error.message}`);\r\n // Let the app keep running by returning an empty result.\r\n // return Observable.throw(error.json().error || error.message);\r\n return throwError(error);\r\n // return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a HeroService message with the MessageService */\r\n private log(message: string) {\r\n // this.messageService.add('HeroService: ' + message);\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CommonApiFuncService } from './common-api-func.service';\r\nimport { StorageService } from '../session/storage.service';\r\nimport { StorageType } from '../session/storage.enum';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\nimport { tap, catchError } from 'rxjs/operators';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { CommonService } from './common.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class SettingsService {\r\n settingsData = new BehaviorSubject(undefined);\r\n providerData = new BehaviorSubject(undefined);\r\n loggedInUserData: any = {};\r\n private logoURL: BehaviorSubject;\r\n\r\n constructor(private commonAPIFuncService: CommonApiFuncService,\r\n private storageService: StorageService,\r\n private commonService: CommonService) {\r\n this.logoURL = new BehaviorSubject('');\r\n }\r\n\r\n getLoggedInData() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'userDetails'));\r\n }\r\n\r\n setSettingsData(data): any {\r\n this.settingsData.next(data);\r\n }\r\n getSettingsData(): Observable {\r\n return this.settingsData.asObservable();\r\n }\r\n setProviderData(data): any {\r\n this.providerData.next(data);\r\n }\r\n getProviderData(): Observable {\r\n return this.providerData.asObservable();\r\n }\r\n setLogo(newValue): void {\r\n this.logoURL.next(newValue);\r\n }\r\n getLogo(): Observable {\r\n return this.logoURL.asObservable();\r\n }\r\n\r\n getSettings() {\r\n this.loggedInUserData = this.getLoggedInData();\r\n let url = ' ';\r\n \r\n url = AppSetting.settings.getProviderSettings\r\n .replace('{providerId}', this.loggedInUserData.parentId);\r\n return this.commonAPIFuncService.get(url).pipe(\r\n tap(a => {\r\n const loggedInUserRoleDetails = a;\r\n this.storageService.save(StorageType.session, 'settingsData', JSON.stringify(loggedInUserRoleDetails));\r\n this.commonService.log(`fetched`);\r\n }),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n\r\n updateSettings(data, file: File) {\r\n const url = AppSetting.settings.putProviderSettings.replace('{providerId}', this.getLoggedInData().parentId);\r\n\r\n const formData: FormData = new FormData();\r\n formData.append('logo', file, `${this.getLoggedInData().parentId}_logo.png`);\r\n //formData.append('colourTheme', data.colourTheme);\r\n formData.append('skin', data.skin);\r\n //formData.append('timZoneInfo', data.timZoneInfo);\r\n return this.commonAPIFuncService.formDataPut(url, formData).pipe(\r\n tap((a) => this.commonService.log(`updated w/ id`)),\r\n catchError(this.commonService.handleError('update', {}))\r\n );\r\n }\r\n\r\n getProviderSettingsLogo(providerName) {\r\n const url = AppSetting.settings.getProviderSettingsLogo.replace('{providerId}', providerName);\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n putProviderSettingsLogo(file: File) {\r\n let url = AppSetting.settings.putProviderSettingsLogo.replace('{providerId}', this.getLoggedInData().parentId);\r\n // if (AppSetting.baseUrl === 'https://api.hellopayments.net/') { // temp fix for image upload is not working on PROD (As per discussion with Manoj)\r\n // url = url.replace('https://api.hellopayments.net/', 'https://d1e8pu72ok79g.cloudfront.net/');\r\n // }\r\n const formData: FormData = new FormData();\r\n formData.append('logo', file, `${+new Date()}_logo.png`);\r\n return this.commonAPIFuncService.formDataPut(url, formData)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n\r\n getProviderSettingsSkin(providerName) {\r\n const url = AppSetting.settings.getProviderSettingsSkin.replace('{providerId}', providerName);\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n\r\n putProviderSettingsSkin(reqObj) {\r\n const url = AppSetting.settings.putProviderSettingsSkin.replace('{providerId}', this.getLoggedInData().parentId);\r\n return this.commonAPIFuncService.put(url, reqObj)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n \r\n}\r\n","import { Injectable } from '@angular/core';\r\n\r\nexport const skin7 = {\r\n 'background-color': '#F3F4F6',\r\n // 'text-color': 'red'\r\n // graph-dtl\r\n 'graph-dtl': '#F3F4F6',\r\n\r\n // button\r\n 'button-color': '#F36C21',\r\n // teal button\r\n 'teal-button-color': '#a5673f',\r\n // page title\r\n 'page-title': '#666666',\r\n // side-nav-color\r\n 'side-nav-color': '#567986',\r\n 'side-nav-a': '#567986',\r\n // header image\r\n 'header-img': 'url(assets/images/header/00-header.png)',\r\n 'mnu-img': 'url(assets/images/menu/menu-bg00.png)',\r\n // ribbon1\r\n 'ribbon1': '#F36C21',\r\n 'ribbon1-border': '#CF5923',\r\n // ribbon2\r\n 'ribbon2': '#a5673f',\r\n 'ribbon2-border': '#007E79',\r\n // link\r\n 'link': '#4183c4',\r\n 'toaster': '#ffffff',\r\n 'menu-item': 'rgba(0,0,0,.87)',\r\n 'tab-menu-item': 'rgba(0,0,0,.87)',\r\n 'ui-label': 'rgba(0,0,0,.6)',\r\n // wizard\r\n 'indicator-step': '#67B25D',\r\n 'indicator-done': '#D9ECD6',\r\n 'mnu-sctn': 'rgba(255, 255, 255, 0.999)',\r\n 'mnu-sctn-bg': 'rgba(0,0,0,.08)',\r\n 'v-mnu-bg': 'rgba(0,0,0,0.0)',\r\n 'v-mnu-lnk': 'rgba(249, 249, 249, 1)',\r\n};\r\n\r\nexport const skin1 = {\r\n 'background-color': '#F3F4F6',\r\n // 'text-color': 'red'\r\n // graph-dtl\r\n 'graph-dtl': '#F3F4F6',\r\n\r\n // button\r\n 'button-color': '#4627CF',\r\n // teal button\r\n 'teal-button-color': '#0034AC',\r\n // page title\r\n 'page-title': '#1C1053',\r\n // side-nav-color\r\n 'side-nav-color': '#1C1053',\r\n 'side-nav-a': '#1C1053',\r\n // header image\r\n 'header-img': 'url(assets/images/header/01-header.png)',\r\n 'mnu-img': 'url(assets/images/menu/menu-bg01.png)',\r\n // ribbon1\r\n 'ribbon1': '#4627CF',\r\n 'ribbon1-border': '#311B90',\r\n // ribbon2\r\n 'ribbon2': '#1A48B4',\r\n 'ribbon2-border': '#12327E',\r\n // link\r\n 'link': '#4183c4',\r\n 'toaster': '#ffffff',\r\n 'menu-item': 'rgba(0,0,0,.87)',\r\n 'tab-menu-item': 'rgba(0,0,0,.87)',\r\n 'ui-label': 'rgba(0,0,0,.6)',\r\n // wizard\r\n 'indicator-step': '#37ABCD',\r\n 'indicator-done': '#CDEAF2',\r\n 'mnu-sctn': 'rgba(255, 255, 255, 0.999)',\r\n 'mnu-sctn-bg': 'rgba(0,0,0,.08)',\r\n 'v-mnu-bg': 'rgba(0,0,0,0.0)',\r\n 'v-mnu-lnk': 'rgba(249, 249, 249, 1)',\r\n};\r\n\r\nexport const skin2 = {\r\n 'background-color': '#F4F8F1',\r\n // 'text-color': 'black'\r\n // graph-dtl\r\n 'graph-dtl': '#F4F8F1',\r\n\r\n // button\r\n 'button-color': '#1E9C40',\r\n // teal button\r\n 'teal-button-color': '#65AC00',\r\n // page title\r\n 'page-title': '#0B3E1A',\r\n // side-nav-color\r\n 'side-nav-color': '#0B3E1A',\r\n 'side-nav-a': '#0B3E1A',\r\n // header image\r\n 'header-img': 'url(assets/images/header/02-header.png)',\r\n 'mnu-img': 'url(assets/images/menu/menu-bg02.png)',\r\n // ribbon1\r\n 'ribbon1': '#34A653',\r\n 'ribbon1-border': '#24743A',\r\n // ribbon2\r\n 'ribbon2': '#74B41A',\r\n 'ribbon2-border': '#517E12',\r\n // link\r\n 'link': '#4183c4',\r\n 'toaster': '#ffffff',\r\n 'menu-item': 'rgba(0,0,0,.87)',\r\n 'tab-menu-item': 'rgba(0,0,0,.87)',\r\n 'ui-label': 'rgba(0,0,0,.6)',\r\n // wizard\r\n 'indicator-step': '#96C82F',\r\n 'indicator-done': '#E5F1CB',\r\n 'mnu-sctn': 'rgba(255, 255, 255, 0.999)',\r\n 'mnu-sctn-bg': 'rgba(0,0,0,.08)',\r\n 'v-mnu-bg': 'rgba(0,0,0,0.0)',\r\n 'v-mnu-lnk': 'rgba(249, 249, 249, 1)',\r\n};\r\nexport const skin3 = {\r\n 'background-color': '#F8F1F1',\r\n // 'text-color': 'black'\r\n // graph-dtl\r\n 'graph-dtl': '#F8F1F1',\r\n\r\n // button\r\n 'button-color': '#E72124',\r\n // teal button\r\n 'teal-button-color': '#B2002E',\r\n // page title\r\n 'page-title': '#5C0D0E',\r\n // side-nav-color\r\n 'side-nav-color': '#5C0D0E',\r\n 'side-nav-a': '#5C0D0E',\r\n // header image\r\n 'header-img': 'url(assets/images/header/03-header.png)',\r\n 'mnu-img': 'url(assets/images/menu/menu-bg03.png)',\r\n // ribbon1\r\n 'ribbon1': '#E9373A',\r\n 'ribbon1-border': '#A32628',\r\n // ribbon2\r\n 'ribbon2': '#BA1A43',\r\n 'ribbon2-border': '#82122F',\r\n // link\r\n 'link': '#4183c4',\r\n 'toaster': '#ffffff',\r\n 'menu-item': 'rgba(0,0,0,.87)',\r\n 'tab-menu-item': 'rgba(0,0,0,.87)',\r\n 'ui-label': 'rgba(0,0,0,.6)',\r\n // wizard\r\n 'indicator-step': '#EC6466',\r\n 'indicator-done': '#FBE5E5',\r\n 'mnu-sctn': 'rgba(255, 255, 255, 0.999)',\r\n 'mnu-sctn-bg': 'rgba(0,0,0,.08)',\r\n 'v-mnu-bg': 'rgba(0,0,0,0.0)',\r\n 'v-mnu-lnk': 'rgba(249, 249, 249, 1)',\r\n};\r\n\r\nexport const skin4 = {\r\n 'background-color': '#F1F1F8',\r\n // 'text-color': 'white'\r\n // graph-dtl\r\n 'graph-dtl': '#F1F1F8',\r\n\r\n // button\r\n 'button-color': '#21424F',\r\n // teal button\r\n 'teal-button-color': '#852C4B',\r\n // page title\r\n 'page-title': '#0D1A20',\r\n // side-nav-color\r\n 'side-nav-color': '#0D1A20',\r\n 'side-nav-a': '#0D1A20',\r\n // header image\r\n 'header-img': 'url(assets/images/header/04-header.png)',\r\n 'mnu-img': 'url(assets/images/menu/menu-bg04.png)',\r\n // ribbon1\r\n 'ribbon1': '#375560',\r\n 'ribbon1-border': '#263B43',\r\n // ribbon2\r\n 'ribbon2': '#91415D',\r\n 'ribbon2-border': '#652D41',\r\n // link\r\n 'link': '#4183c4',\r\n 'toaster': '#ffffff',\r\n 'menu-item': 'rgba(0,0,0,.87)',\r\n 'tab-menu-item': 'rgba(0,0,0,.87)',\r\n 'ui-label': 'rgba(0,0,0,.6)',\r\n // wizard\r\n 'indicator-step': '#873B37',\r\n 'indicator-done': '#E1CECD',\r\n 'mnu-sctn': 'rgba(255, 255, 255, 0.999)',\r\n 'mnu-sctn-bg': 'rgba(0,0,0,.08)',\r\n 'v-mnu-bg': 'rgba(0,0,0,0.0)',\r\n 'v-mnu-lnk': 'rgba(249, 249, 249, 1)',\r\n};\r\nexport const skin5 = {\r\n 'background-color': '#F1F5F8',\r\n // 'text-color': 'green'\r\n // graph-dtl\r\n 'graph-dtl': '#F1F5F8',\r\n\r\n // button\r\n 'button-color': '#1B3589',\r\n // teal button\r\n 'teal-button-color': '#0079A6',\r\n // page title\r\n 'page-title': '#0A1536',\r\n // side-nav-color\r\n 'side-nav-color': '#0A1536',\r\n 'side-nav-a': '#0A1536',\r\n // header image\r\n 'header-img': 'url(assets/images/header/05-header.png)',\r\n 'mnu-img': 'url(assets/images/menu/menu-bg05.png)',\r\n // ribbon1\r\n 'ribbon1': '#324994',\r\n 'ribbon1-border': '#233367',\r\n // ribbon2\r\n 'ribbon2': '#1A86AF',\r\n 'ribbon2-border': '#125E7A',\r\n // link\r\n 'link': '#4183c4',\r\n 'toaster': '#ffffff',\r\n 'menu-item': 'rgba(0,0,0,.87)',\r\n 'tab-menu-item': 'rgba(0,0,0,.87)',\r\n 'ui-label': 'rgba(0,0,0,.6)',\r\n // wizard\r\n 'indicator-step': '#5384C1',\r\n 'indicator-done': '#D4E0EF',\r\n 'mnu-sctn': 'rgba(255, 255, 255, 0.999)',\r\n 'mnu-sctn-bg': 'rgba(0,0,0,.08)',\r\n 'v-mnu-bg': 'rgba(0,0,0,0.0)',\r\n 'v-mnu-lnk': 'rgba(249, 249, 249, 1)',\r\n};\r\n\r\nexport const skin6 = {\r\n 'background-color': '#FBF4EE',\r\n // 'text-color': 'white'\r\n // graph-dtl\r\n 'graph-dtl': '#FBF4EE',\r\n\r\n // button\r\n 'button-color': '#9A536A',\r\n // teal button\r\n 'teal-button-color': '#8C4F19',\r\n // page title\r\n 'page-title': '#3D212A',\r\n // side-nav-color\r\n 'side-nav-color': '#3D212A',\r\n 'side-nav-a': '#3D212A',\r\n // header image\r\n 'header-img': 'url(assets/images/header/06-header.png)',\r\n 'mnu-img': 'url(assets/images/menu/menu-bg06.png)',\r\n // ribbon1\r\n 'ribbon1': '#A46479',\r\n 'ribbon1-border': '#724654',\r\n // ribbon2\r\n 'ribbon2': '#976130',\r\n 'ribbon2-border': '#694422',\r\n // link\r\n 'link': '#4183c4',\r\n 'toaster': '#ffffff',\r\n 'menu-item': 'rgba(0,0,0,.87)',\r\n 'tab-menu-item': 'rgba(0,0,0,.87)',\r\n 'ui-label': 'rgba(0,0,0,.6)',\r\n // wizard\r\n 'indicator-step': '#E89860',\r\n 'indicator-done': '#F9E5D7',\r\n 'mnu-sctn': 'rgba(255, 255, 255, 0.999)',\r\n 'mnu-sctn-bg': 'rgba(0,0,0,.08)',\r\n 'v-mnu-bg': 'rgba(0,0,0,0.0)',\r\n 'v-mnu-lnk': 'rgba(249, 249, 249, 1)',\r\n};\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class ThemeService {\r\n\r\n constructor() { }\r\n\r\n changeTheme(data) {\r\n let selectedTheme;\r\n switch (data) {\r\n case 7:\r\n selectedTheme = skin7;\r\n break;\r\n case 0:\r\n selectedTheme = skin7;\r\n break;\r\n case 1:\r\n selectedTheme = skin1;\r\n break;\r\n case 2:\r\n selectedTheme = skin2;\r\n break;\r\n case 3:\r\n selectedTheme = skin3;\r\n break;\r\n case 4:\r\n selectedTheme = skin4;\r\n break;\r\n case 5:\r\n selectedTheme = skin5;\r\n break;\r\n case 6:\r\n selectedTheme = skin6;\r\n break;\r\n default:\r\n break;\r\n }\r\n if (selectedTheme) this.setTheme(selectedTheme);\r\n document.getElementById('appFavicon').setAttribute('href', `../../../../assets/images/skins/favicons/skin${data}.ico`);\r\n }\r\n\r\n private setTheme(theme: {}) {\r\n Object.keys(theme).forEach(k =>\r\n document.documentElement.style.setProperty(`--${k}`, theme[k])\r\n );\r\n }\r\n}\r\n\r\n","import { Injectable } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport {MessageType} from '../../enum/storage.enum';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ToasterService {\r\n data: any;\r\n message = {\r\n isOnline: true,\r\n message: ''\r\n };\r\n constructor(private router: Router) { }\r\n successRedirect(message, redirectLink) {\r\n this.data = {\r\n message: message,\r\n messageType: MessageType.success,\r\n isShow: true,\r\n redirectLink: redirectLink\r\n };\r\n return this.data;\r\n }\r\n errorRedirect(message, redirectLink) {\r\n this.data = {\r\n message: message,\r\n messageType: MessageType.error,\r\n isShow: true,\r\n redirectLink: redirectLink\r\n };\r\n return this.data;\r\n }\r\n warningRedirect(message, redirectLink) {\r\n this.data = {\r\n message: message,\r\n messageType: MessageType.warning,\r\n isShow: true,\r\n redirectLink: redirectLink\r\n };\r\n return this.data;\r\n }\r\n closeToasterRedirect(message, redirectLink) {\r\n this.data = {\r\n message: message,\r\n messageType: MessageType.closed,\r\n isShow: false,\r\n redirectLink: redirectLink\r\n };\r\n return this.data;\r\n }\r\n\r\n\r\n success(message) {\r\n this.data = {\r\n message: message,\r\n messageType: MessageType.success,\r\n isShow: true,\r\n };\r\n return this.data;\r\n }\r\n error(message) {\r\n this.data = {\r\n message: message,\r\n messageType: MessageType.error,\r\n isShow: true\r\n };\r\n return this.data;\r\n }\r\n warning(message) {\r\n this.data = {\r\n message: message,\r\n messageType: MessageType.warning,\r\n isShow: true\r\n };\r\n return this.data;\r\n }\r\n closeToaster(message) {\r\n // console.log(message)\r\n this.data = {\r\n message: message,\r\n messageType: MessageType.closed,\r\n isShow: true\r\n };\r\n return this.data;\r\n }\r\n\r\n checkOnlineStatus() {\r\n this.message.isOnline = navigator.onLine;\r\n this.message.message = 'Please check internet connection.';\r\n return this.message;\r\n }\r\n isServerDown() {\r\n this.router.navigate(['/comingsoon']);\r\n return false;\r\n }\r\n\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { AuthGuard } from '../session/auth.guard';\r\nimport { StorageService } from '../session/storage.service';\r\nimport { StorageType } from '../session/storage.enum';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { CommonService } from './common.service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\n\r\nexport class TokenInterceptor implements HttpInterceptor {\r\n user: any;\r\n\r\n constructor(public auth: AuthGuard,\r\n private commonService: CommonService,\r\n private storageService: StorageService) {}\r\n\r\n intercept(request: HttpRequest, next: HttpHandler): Observable> {\r\n\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${this.getToken()}`\r\n }\r\n });\r\n // return next.handle(request);\r\n\r\n return next.handle(request).pipe(catchError(err => {\r\n if (err.status === 403) {\r\n // if (err.error.message === 'User is not authorized to access this resource') {\r\n return throwError(err);\r\n // }\r\n\r\n // this.storageService.save(StorageType.local, 'sessionExpired', JSON.stringify(true));\r\n // this.commonService.logOut();\r\n } else if (err.error !== null) {\r\n if (err.error.message === 'Key_InActiveAccount' || err.error.message === 'Key_ProviderInActive') {\r\n try {\r\n this.storageService.save(StorageType.local, 'inactiveAccount', JSON.stringify(true));\r\n if (window.location.hash === '#/login') {\r\n window.location.reload();\r\n } else {\r\n this.commonService.logOut();\r\n }\r\n } catch (err) {\r\n this.commonService.logOut();\r\n }\r\n } else {\r\n return throwError(err);\r\n }\r\n } else {\r\n return throwError(err);\r\n }\r\n }));\r\n }\r\n\r\n getToken() {\r\n if (this.storageService.get(StorageType.session, 'auth')) {\r\n this.user = JSON.parse(this.storageService.get(StorageType.session, 'auth'));\r\n if (this.user && this.user.token) {\r\n return this.user.token;\r\n } else {\r\n return '';\r\n }\r\n } else {\r\n return '';\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, of, throwError } from 'rxjs';\r\nimport { catchError, map, tap } from 'rxjs/operators';\r\nimport { CommonApiFuncService } from './common-api-func.service';\r\nimport { AppSetting } from 'src/app/common/constants/appsetting.constant';\r\nimport { StorageService } from '../session/storage.service';\r\nimport { StorageType } from '../session/storage.enum';\r\nimport { Exception } from 'src/app/common/exceptions/exception';\r\nimport { CommonService } from './common.service';\r\nimport { ProcessorException } from 'src/app/common/processor-exception/processor-exception';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TransactionService {\r\n\r\n findTransactionData;\r\n\r\n constructor(private commonAPIFuncService: CommonApiFuncService,\r\n private storageService: StorageService,\r\n private commonService: CommonService) { }\r\n\r\n getLoggedInData() {\r\n return JSON.parse(this.storageService.get(StorageType.session, 'userDetails'));\r\n }\r\n\r\n setFindTransactionData(data) {\r\n this.findTransactionData = data;\r\n }\r\n\r\n getFindTransactionData() {\r\n return this.findTransactionData;\r\n }\r\n\r\n buildQuery(data) {\r\n let queryData = '';\r\n for (const prop in data) {\r\n if (data[prop] !== '' && data[prop] !== 'undefined' && data[prop] !== null) {\r\n if (queryData === '') {\r\n queryData = '?' + prop + '=' + data[prop];\r\n } else {\r\n queryData += '&' + prop + '=' + data[prop];\r\n }\r\n }\r\n }\r\n\r\n return queryData;\r\n }\r\n\r\n // providers or patients/{parentId}/transactions\r\n findTransaction(parentId, data) { // todo -- need to parentId from input parameter\r\n let url;\r\n if (this.getLoggedInData().userType == 0) {\r\n url = `${AppSetting.patient.getPatientByUserName}/${parentId}/transactions` + this.buildQuery(data);\r\n } else {\r\n url = `${AppSetting.provider.common}/${parentId}/transactions` + this.buildQuery(data);\r\n }\r\n\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n // /providers/{parentId}/transactions/{id}\r\n viewTransaction(parentId, transactionId) {\r\n let url;\r\n if (this.getLoggedInData().userType == 0) {\r\n url = `${AppSetting.patient.getPatientByUserName}/${parentId}/transactions/${transactionId}`;\r\n } else {\r\n url = `${AppSetting.provider.common}/${parentId}/transactions/${transactionId}`;\r\n }\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n // providers/:parentId/transactions/:transactionId/status\r\n getTransactionStatus(parentId, transactionId) {\r\n let url;\r\n if (this.getLoggedInData().userType == 0) {\r\n url = `${AppSetting.patient.getPatientByUserName}/${parentId}/transactions/${transactionId}/status`;\r\n } else {\r\n url = `${AppSetting.provider.common}/${parentId}/transactions/${transactionId}/status`;\r\n }\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n // /providers/{parentId}/transactions/{id}/refundTransaction\r\n refundTransaction(parentId, transactionId, data) {\r\n const url = `${AppSetting.provider.common}/${parentId}/transactions/${transactionId}/refund`;\r\n return this.commonAPIFuncService.post(url, data)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n // /providers/{parentId}/{channelType}/transactions/{id}/cancellations\r\n voidTransaction(parentId, transactionId) {\r\n const url = `${AppSetting.provider.common}/${parentId}/transactions/${transactionId}/void`;\r\n return this.commonAPIFuncService.post(url, {})\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n // /providers/{parentId}/{channelType}/transactions/{id}/cancellations\r\n skipTransaction(parentId, transactionId) {\r\n const url = `${AppSetting.provider.common}/${parentId}/transactions/${transactionId}/void`;\r\n return this.commonAPIFuncService.post(url, {})\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n // POST : providers/{parentId:int}/transactions/{id}/adjustment\r\n adjustTransaction(providerId, transactionId, data) {\r\n const url = `${AppSetting.provider.common}/${providerId}/transactions/${transactionId}/adjustment` + this.buildQuery(data);\r\n return this.commonAPIFuncService.post(url, null)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n // /providers/{parentId}/transactions\r\n forceAuthTransaction(parentId, reqObj) {\r\n const url = `${AppSetting.provider.common}/${parentId}/transactions`;\r\n return this.commonAPIFuncService.post(url, reqObj)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n // /providers/id/transactions/id/offline\r\n offlineTransaction(providerId, transactionId, reqObj) {\r\n const url = `${AppSetting.provider.common}/${providerId}/transactions/${transactionId}/offline`;\r\n return this.commonAPIFuncService.post(url, reqObj)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n processTransaction(reqObj) {\r\n\r\n let url;\r\n if (this.getLoggedInData().userType == 0) {\r\n url = AppSetting.transaction.patientTransaction.replace('{patientId}', this.getLoggedInData()['parentId']);\r\n } else {\r\n url = AppSetting.transaction.add.replace('{providerId}', this.getLoggedInData()['parentId']);\r\n }\r\n return this.commonAPIFuncService.post(url, reqObj)\r\n .pipe(\r\n tap(a => this.log(`fetched`)),\r\n catchError(this.handleError('', []))\r\n );\r\n }\r\n\r\n private handleError(operation = 'operation', result?: T) {\r\n return (error: any): Observable => {\r\n // TODO: send the error to remote logging infrastructure\r\n // console.error(error); // log to console instead\r\n\r\n // TODO: better job of transforming error for user consumption\r\n this.log(`${operation} failed: ${error.message}`);\r\n // Let the app keep running by returning an empty result.\r\n // return Observable.throw(error.json().error || error.message);\r\n return throwError(error);\r\n // return of(result as T);\r\n };\r\n }\r\n\r\n /** Log a HeroService message with the MessageService */\r\n private log(message: string) {\r\n // this.messageService.add('HeroService: ' + message);\r\n }\r\n getExceptionMessage(transactionDetails) {\r\n let msg = '';\r\n if (transactionDetails.reasonCode !== null) { // first preference is reasonCode\r\n msg = ProcessorException.processorExceptionMessages[transactionDetails.reasonCode];\r\n }\r\n if ((msg === '' || msg === null || msg === undefined) && transactionDetails.reasonStatus != null) { // second preference is reasonStatus\r\n msg = Exception.getExceptionMessage(transactionDetails.reasonStatus);\r\n }\r\n if (msg !== '' && msg !== null && msg !== undefined && msg !== 'Something went wrong. Please contact administrator.') {\r\n return msg;\r\n // Other than these keys, all other messages will be displayed directly as received from backend\r\n }\r\n return transactionDetails.reasonStatus;\r\n }\r\n\r\n // update transaction\r\n updateTransaction(reqObj) {\r\n const url = AppSetting.transaction.updateTransaction\r\n .replace('{providerId}', this.getLoggedInData()['parentId'])\r\n .replace('{transactionId}', reqObj.transactionId);\r\n return this.commonAPIFuncService.put(url, reqObj).pipe(\r\n tap((a) => this.commonService.log(`added w/ id`)),\r\n catchError(this.commonService.handleError('add', {}))\r\n );\r\n }\r\n getCardDetails(reqObj) {\r\n const url = AppSetting.transaction.getCardDetails + this.commonService.buildQuery(reqObj);\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n sendReceipt(transactionId, reqObj) {\r\n let url;\r\n if (this.getLoggedInData().userType == 0) {\r\n url = AppSetting.transaction.sendReceiptFromPatient\r\n .replace('{patientId}', this.getLoggedInData()['parentId'])\r\n .replace('{transactionId}', transactionId)\r\n + this.commonService.buildQuery(reqObj);\r\n } else {\r\n url = AppSetting.transaction.sendReceipt\r\n .replace('{providerId}', this.getLoggedInData()['parentId'])\r\n .replace('{transactionId}', transactionId)\r\n + this.commonService.buildQuery(reqObj);\r\n }\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n sendSchedule(recurringScheduleId, reqObj) {\r\n let url;\r\n if (this.getLoggedInData().userType == 0) {\r\n url = AppSetting.transaction.sendScheduleFromPatient\r\n .replace('{patientId}', this.getLoggedInData()['parentId'])\r\n .replace('{recurringScheduleId}', recurringScheduleId)\r\n + this.commonService.buildQuery(reqObj);\r\n } else {\r\n url = AppSetting.transaction.sendSchedule\r\n .replace('{providerId}', this.getLoggedInData()['parentId'])\r\n .replace('{recurringScheduleId}', recurringScheduleId)\r\n + this.commonService.buildQuery(reqObj);\r\n }\r\n return this.commonAPIFuncService.get(url)\r\n .pipe(\r\n tap(a => this.commonService.log(`fetched`)),\r\n catchError(this.commonService.handleError('', []))\r\n );\r\n }\r\n}\r\n","import { AbstractControl } from '@angular/forms';\r\nimport * as pdfMake from 'pdfmake/build/pdfmake.js';\r\nimport * as pdfFonts from 'pdfmake/build/vfs_fonts.js';\r\nimport { MessageSetting } from 'src/app/common/constants/message-setting.constant';\r\nimport { ReportFilter } from 'src/app/common/enum/report-filter.enum';\r\nimport {\r\n DownloadToCSV_TransactionList,\r\n\r\n DownloadToCSV_PatientManagement,\r\n DownloadReportForRecurringPayment,\r\n DownloadReportForCustomPlan,\r\n DownloadToCSVForACH_TransactionList,\r\n DownloadReportForProduct,\r\n DownloadToCSV_FacilityManagement,\r\n DownloadToCSV_ProviderManagement,\r\n DownloadToCSV_PatientReport,\r\n DownloadToCSV_TransactionStatusReport,\r\n DownloadToCSV_OutstandingReceivablesReport,\r\n DownloadToCSV_ScheduledPaymentReport,\r\n DownloadToCSV_TransactionReport,\r\n DownloadToCSV_InsuranceManagement,\r\n DownloadToCSV_TodaysAppointment,\r\n DownloadToCSV_DoctorManagement,\r\n DownloadInvoiceTaxReport\r\n} from 'src/app/common/enum/download-to-csv.enum';\r\n\r\nexport class Utilities {\r\n static urlReplace(pattern, source, replacementArray) {\r\n for (var i in replacementArray) {\r\n\r\n }\r\n }\r\n\r\n // static compareObject(obj1, obj2) {\r\n // function _equals(obj1, obj2) {\r\n // var clone = $.extend(true, {}, obj1),\r\n // cloneStr = JSON.stringify(clone);\r\n // return cloneStr === JSON.stringify($.extend(true, clone, obj2));\r\n // }\r\n\r\n // return _equals(obj1, obj2) && _equals(obj2, obj1);\r\n // }\r\n\r\n static getPaginationNumberArray(totalItems: number, currentPage: number, pageSize: number) {\r\n const totalPages = Math.ceil(totalItems / pageSize);\r\n let startPage: number, endPage: number;\r\n\r\n if (totalPages <= 5) {\r\n startPage = 1;\r\n endPage = totalPages;\r\n } else {\r\n if (totalPages - currentPage < 2) {\r\n startPage = totalPages - 4;\r\n } else {\r\n startPage = (currentPage - 2 <= 0) ? 1 : currentPage - 2;\r\n }\r\n if (currentPage <= 2) {\r\n endPage = 5;\r\n } else {\r\n endPage = (currentPage + 2 >= totalPages) ? totalPages : currentPage + 2;\r\n }\r\n }\r\n\r\n // if (totalPages <= 3) {\r\n // // less than 10 total pages so show all\r\n // startPage = 1;\r\n // endPage = totalPages;\r\n // } else {\r\n // // more than 10 total pages so calculate start and end pages\r\n // if (currentPage <= 6) {\r\n // switch (currentPage){\r\n // case 4:\r\n // startPage = 2;\r\n // endPage = 4;\r\n // break;\r\n // case 5:\r\n // startPage = 3;\r\n // endPage = 5;\r\n // break;\r\n // case 6:\r\n // startPage = 4;\r\n // endPage = 6;\r\n // break;\r\n // default :\r\n // startPage = 1;\r\n // endPage = 3;\r\n // break;\r\n // }\r\n // } else if (currentPage + 4 >= totalPages) {\r\n // // debugger;\r\n // startPage = (totalPages - 9 <= 0) ? 1 : totalPages - 9;\r\n // endPage = totalPages;\r\n // } else {\r\n // startPage = currentPage - 5;\r\n // endPage = currentPage + 4;\r\n // }\r\n\r\n // //For Showing just list of 3 pages\r\n // // if (currentPage <= 3) {\r\n // // startPage = 1;\r\n // // endPage = 3;\r\n // // }\r\n // // else {\r\n // // startPage = currentPage - 2;\r\n // // endPage = currentPage;\r\n // // }\r\n // }\r\n return Utilities.rangeFunc(startPage, endPage + 1, false);\r\n }\r\n\r\n static rangeFunc(start, stop, step) {\r\n if (stop == null) {\r\n stop = start || 0;\r\n start = 0;\r\n }\r\n if (!step) {\r\n step = stop < start ? -1 : 1;\r\n }\r\n\r\n var length = Math.max(Math.ceil((stop - start) / step), 0);\r\n var range = Array(length);\r\n\r\n for (var idx = 0; idx < length; idx++, start += step) {\r\n range[idx] = start;\r\n }\r\n\r\n return range;\r\n }\r\n\r\n static getCardType(cardNumber) {\r\n // visa\r\n let re = new RegExp('^4');\r\n if (cardNumber.match(re) != null) {\r\n return 'VISA';\r\n }\r\n // Mastercard\r\n // Updated for Mastercard 2017 BINs expansion\r\n // /^5[1-5]\\d{14}$|^2(?:2(?:2[1-9]|[3-9]\\d)|[3-6]\\d\\d|7(?:[01]\\d|20))\\d{12}$/\r\n // if (/^(5[1-5][0-9]{14}|2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12}))$/.test(cardNumber)) {\r\n // return 'MASTERCARD';\r\n // }\r\n\r\n if (/^5[1-5]\\d{14}$|^2(?:2(?:2[1-9]|[3-9]\\d)|[3-6]\\d\\d|7(?:[01]\\d|20))\\d{12}$/.test(cardNumber)) {\r\n return 'MASTERCARD';\r\n }\r\n\r\n // AMEX\r\n re = new RegExp('^3[47]');\r\n if (cardNumber.match(re) != null) {\r\n return 'AMEX';\r\n }\r\n\r\n // Discover\r\n re = new RegExp('^(6011|622(12[6-9]|1[3-9][0-9]|[2-8][0-9]{2}|9[0-1][0-9]|92[0-5]|64[4-9])|65|6282)');\r\n if (cardNumber.match(re) != null) {\r\n return 'DISCOVER';\r\n }\r\n\r\n // Diners\r\n re = new RegExp('^36');\r\n if (cardNumber.match(re) != null) {\r\n return 'DINERS';\r\n }\r\n\r\n // Diners - Carte Blanche\r\n re = new RegExp('^30[0-5]');\r\n if (cardNumber.match(re) != null) {\r\n // return 'Diners - Carte Blanche';\r\n return 'DINERS'; // changed as api expect the card type as Diners\r\n }\r\n\r\n // JCB\r\n re = new RegExp('^35(2[89]|[3-8][0-9])');\r\n if (cardNumber.match(re) != null) {\r\n return 'JCB';\r\n }\r\n\r\n // Visa Electron\r\n re = new RegExp('^(4026|417500|4508|4844|491(3|7))');\r\n if (cardNumber.match(re) != null) {\r\n return 'Visa Electron';\r\n }\r\n return '';\r\n }\r\n\r\n static exportToCsv(data, fileName) {\r\n // const items = this.csvData.data;\r\n const items = data;\r\n if (data.length > 0) {\r\n let tempHeader = [];\r\n const replacer = (key, value) => value === null ? '' : value; // specify how you want to handle null values here\r\n // const replacer = (key, value) => value === null ''\r\n const header = Object.keys(items[0]);\r\n\r\n if (fileName === 'Facility_Management_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_FacilityManagement[header[itemindex]]);\r\n }\r\n }\r\n }\r\n if (fileName === 'Provider_Management_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_ProviderManagement[header[itemindex]]);\r\n }\r\n }\r\n }\r\n if (fileName === 'Patient_Management_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_PatientManagement[header[itemindex]]);\r\n }\r\n }\r\n }\r\n if (fileName === 'Patient_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_PatientReport[header[itemindex]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Scheduled_Payment_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_ScheduledPaymentReport[header[itemindex]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Outstanding_Receivables_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_OutstandingReceivablesReport[header[itemindex]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Transaction_Status_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_TransactionStatusReport[header[itemindex]]);\r\n }\r\n }\r\n }\r\n\r\n\r\n if (fileName === 'Payment_Plan_Report.csv') {\r\n tempHeader = [];\r\n for (const item in header) {\r\n if (item) {\r\n tempHeader.push(DownloadReportForRecurringPayment[header[item]]);\r\n }\r\n }\r\n }\r\n\r\n\r\n if (fileName === 'Product_Report.csv') {\r\n tempHeader = [];\r\n for (const item in header) {\r\n if (item) {\r\n tempHeader.push(DownloadReportForProduct[header[item]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Custom_Plan_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadReportForCustomPlan[header[itemindex]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Transaction_List_Report.csv') {\r\n tempHeader = [];\r\n for (const item in header) {\r\n if (item) {\r\n tempHeader.push(DownloadToCSV_TransactionList[header[item]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Transaction_Report.csv') {\r\n tempHeader = [];\r\n for (const item in header) {\r\n if (item) {\r\n tempHeader.push(DownloadToCSV_TransactionReport[header[item]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Insurance_Management_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_InsuranceManagement[header[itemindex]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Doctor_Management_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_DoctorManagement[header[itemindex]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Todays_Appointment_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_TodaysAppointment[header[itemindex]]);\r\n }\r\n }\r\n }\r\n if (fileName === 'Tax_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadInvoiceTaxReport[header[itemindex]]);\r\n }\r\n }\r\n }\r\n\r\n let csv = items.map(row => header.map(fieldName => JSON.stringify(row[fieldName], replacer)).join(','));\r\n csv.unshift(tempHeader.join(','));\r\n csv = csv.join('\\r\\n');\r\n const file = new Blob([csv], { type: 'csv' });\r\n if (window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(file, fileName);\r\n\r\n } else { // Others\r\n const a = document.createElement('a'),\r\n url = URL.createObjectURL(file);\r\n a.href = url;\r\n a.download = fileName;\r\n document.body.appendChild(a);\r\n a.click();\r\n setTimeout(function () {\r\n document.body.removeChild(a);\r\n window.URL.revokeObjectURL(url);\r\n }, 0);\r\n }\r\n }\r\n return true;\r\n }\r\n\r\n\r\n\r\n static exportToPdf(data, fileName) {\r\n const items = data;\r\n if (data.length > 0) {\r\n let tempHeader = [];\r\n const replacer = (key, value) => value === null ? '' : value; // specify how you want to handle null values here\r\n const header = Object.keys(items[0]);\r\n if (fileName === 'Patient_Management_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_PatientManagement[header[itemindex]]);\r\n }\r\n }\r\n }\r\n if (fileName === 'Facility_Management_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_FacilityManagement[header[itemindex]]);\r\n }\r\n }\r\n }\r\n if (fileName === 'Provider_Management_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_ProviderManagement[header[itemindex]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Payment_Plan_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadReportForRecurringPayment[header[itemindex]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Product_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadReportForProduct[header[itemindex]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Custom_Plan_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadReportForCustomPlan[header[itemindex]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Transaction_List_Report.csv') {\r\n tempHeader = [];\r\n for (const item in header) {\r\n if (item) {\r\n tempHeader.push(DownloadToCSV_TransactionList[header[item]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Transaction_Report.csv') {\r\n tempHeader = [];\r\n for (const item in header) {\r\n if (item) {\r\n tempHeader.push(DownloadToCSV_TransactionReport[header[item]]);\r\n }\r\n }\r\n }\r\n\r\n\r\n if (fileName === 'Patient_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_PatientReport[header[itemindex]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Scheduled_Payment_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_ScheduledPaymentReport[header[itemindex]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Outstanding_Receivables_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_OutstandingReceivablesReport[header[itemindex]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Transaction_Status_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_TransactionStatusReport[header[itemindex]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Insurance_Management_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_InsuranceManagement[header[itemindex]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Doctor_Management_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_DoctorManagement[header[itemindex]]);\r\n }\r\n }\r\n }\r\n\r\n if (fileName === 'Todays_Appointment_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadToCSV_TodaysAppointment[header[itemindex]]);\r\n }\r\n }\r\n }\r\n if (fileName === 'Tax_Report.csv') {\r\n tempHeader = [];\r\n for (const itemindex in header) {\r\n if (itemindex) {\r\n tempHeader.push(DownloadInvoiceTaxReport[header[itemindex]]);\r\n }\r\n }\r\n }\r\n const csvheaderlist = [];\r\n\r\n const csv = items.map(row => header.map(fieldName => {\r\n if (MessageSetting.reportAmountFilter.includes(fieldName)) {\r\n return { text: Number(row[fieldName]).toFixed(2), alignment: 'right' };\r\n } else {\r\n return row[fieldName];\r\n }\r\n }, replacer)\r\n );\r\n\r\n for (const item in tempHeader) {\r\n if (item) {\r\n csvheaderlist.push({\r\n text: tempHeader[item]!==undefined? tempHeader[item].replace(new RegExp('_', 'g'), ' '):'',\r\n fillColor: '#eeeeee', style: 'tableHeader', alignment: 'center'\r\n });\r\n }\r\n }\r\n csv.unshift(csvheaderlist);\r\n\r\n return csv;\r\n }\r\n }\r\n\r\n static pdf(data, filter, fileName) {\r\n const filterFields = [];\r\n let pdfpageSize = 'A2';\r\n for (const item in filter) {\r\n // if (item) {\r\n if (item !== 'Asc' && item !== 'StartRow' && item !== 'SortField' && item !== 'PageSize') {\r\n filterFields.push({\r\n border: [false, false, false, false],\r\n // fillColor: '#eeeeee',\r\n text: ReportFilter[item] + ': ' + filter[item]\r\n });\r\n }\r\n // }\r\n }\r\n\r\n if (fileName === 'Provider_Billing_Report.pdf') {\r\n pdfpageSize = 'A1';\r\n }\r\n if (fileName === 'Patient_Management_Report.pdf') {\r\n pdfpageSize = 'A0';\r\n }\r\n if (fileName === 'Tax_Report.pdf') {\r\n pdfpageSize = 'A4';\r\n }\r\n pdfMake.vfs = pdfFonts.pdfMake.vfs;\r\n const docDefinition = {\r\n pageSize: pdfpageSize,\r\n pageOrientation: 'landscape',\r\n footer: function (currentPage, pageCount) { return { text: currentPage.toString() + ' of ' + pageCount, alignment: 'center' }; },\r\n header: function (currentPage, pageCount) {\r\n // you can apply any logic and return any valid pdfmake element\r\n\r\n return { text: '', alignment: 'right' };\r\n },\r\n content: ['',\r\n // content: ['This is an sample PDF printed with pdfMake',\r\n {\r\n // image: '../../../../../../../../assets/images/logo_login.png',\r\n image: `data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJoAAAAcCAYAAACZFqbSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAK8AAACvABQqw0mAAAABZ0RVh0Q3JlYXRpb24gVGltZQAxMi8wNi8xOHdDEHgAAAQRdEVYdFhNTDpjb20uYWRvYmUueG1wADw/eHBhY2tldCBiZWdpbj0iICAgIiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDQuMS1jMDM0IDQ2LjI3Mjk3NiwgU2F0IEphbiAyNyAyMDA3IDIyOjM3OjM3ICAgICAgICAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp4YXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iPgogICAgICAgICA8eGFwOkNyZWF0b3JUb29sPkFkb2JlIEZpcmV3b3JrcyBDUzM8L3hhcDpDcmVhdG9yVG9vbD4KICAgICAgICAgPHhhcDpDcmVhdGVEYXRlPjIwMTktMDQtMDJUMDc6Mzg6MjZaPC94YXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhhcDpNb2RpZnlEYXRlPjIwMTktMDQtMDJUMDc6NDA6MDFaPC94YXA6TW9kaWZ5RGF0ZT4KICAgICAgPC9yZGY6RGVzY3JpcHRpb24+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyI+CiAgICAgICAgIDxkYzpmb3JtYXQ+aW1hZ2UvcG5nPC9kYzpmb3JtYXQ+CiAgICAgIDwvcmRmOkRlc2NyaXB0aW9uPgogICA8L3JkZjpSREY+CjwveDp4bXBtZXRhPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgILMaOxcAAAAYdEVYdFNvZnR3YXJlAEFkb2JlIEZpcmV3b3Jrc0+zH04AAA9SSURBVHic7Zt7lBxVncc/3T2Pmkkmz+UdSERYETW8Q3azCrq4CApCLAWfIMsrVp/jWgsL7JGcA6i7ylrBbNcq64lyVh6KtUsIoMh7VV4qRIGwkQ1JTDYhmIRkmCHTM9PdtX9876Wrqx/TMwnIH/meU6dP3brv+3v/bmfiOGYv9uKNRsefegJ78eYiCKNO4K+BF33P/d83a9zsmzXQXrxlsA9wIdD7Zg761pJoeacLzaliSspACegGMkAM5IBhCsXSRIcJwigLOKa/ZrZDBij5njs60XEmiiCMOnzPnfD6xsCngA8C//IG9d8QmTiOIe+chza8AkwBXgHuoVAcaNk67xwPHA8MIQJ5DbibQnFw3DPJO93AIuAIoIik7RrgJ8BFwGRgBJgEPABEFIqVxp21RhBGJwGfBEYRMWcSn2PzngVeBdYCzwNrfM/dOpHxxjGvmWZefwbc7Xvub/Zg3+cCm4FlwCHA2cCjwMeByPfcnXtqrEawEu2mVPnLwHPmaYXPA19IvA8C84D/mcBceoDzgaMSZb9Dh3w5tcTQDfwXVck3XiwALhlH/V3AL4IwWgb8p++5Ex23KYIw2g/4LnCGKbokCKMLgWfROWWatW2BCjAMnAl827y/BKwGuoBTzJinBmF0DdBvyjOJ8TJIi2z1PXfbBOYANFedOxC3j4Vi6v3VNts1wijwx1TZJmAAceJBqfmVJzgOwPZx1u8FTjXPPwDX78bYdQjCKAOcR5XIAPYH7gBeQGo+N4GuRxFxvQMR1LuAHyA77WJ0/j8DZgOPo33uRObKZtPeQesvAN+fwByA5oRWobntkkSaqIaZOAFYdZVEzjzp8ixVm20i2B0n6CtBGD3ue+4vx9swCKPpwCxkAoD2eT062H0bNNmFCGEESZrxIgb6gO/4nntDEEb7IPPmS8BpSLrNBmYAlyGissJjBjJTYmAaEAdhlJ2oNG9GaEnR2QqNCGOih9hovFbzmIgqadX2QeBptCcxcABSsYek6nUBPjBuQgMuRZLLEloJuMj33KeCMIqAC4Dpifpf9j23MIFxGsLamEEYWRv6JuPsvIzME8z3LLAcEf8wIsD5wJ1Im4wbby2v80+Lm3zPvdm+BGHkIMdkMTKckzg2CKP9fc/dMs4xDkFqLInpAL7nPhGE0aeQzTsTHfSycfbfLvqRw9eMiA8H3o8cMIsSu6EJdjeOtjtS5a2GGtXke27R99zfAt8E0t5mDhFDDYIwygZh1Ip5007SNuD1oKnvufcCC4EP+Z57ve+5Q60mHIRRd6vvLfAkcJ3vuZubfF+D1GoSm33PbWrbBmHUbWzNhmi2KUWgHXd37Dp552DgQ8CxVNXCi0j1/JRC2p+YIPLOscBJwLtRiGbYjLPSjDM8Rg89Tcr7kV2zT6KshIiEIIxORNx/JFI1uSCMtiNv+ae+5/46CKMFwNuAv0j13Q2cE4TRi8gIt15iHITRNORx/tb33NiMlQXOQir9CGBSEEY7gVXAI77n3m87DsLoQDOvLFLVHcBDvue+ZNoeGYTR7WYtzwEhcubOQGbDlNRc5xiJWwGKvucuD8LoCMQYc83ah4MwsuGgn/ieu842bkZo+wEXkHc2I4MwjbLZkPTGVaHg6xUoBjYDeS6W4ksoZvYoeedKCsVVTfsZC3lnthlnITAV2RMWo4hIVpF3vkmheIeKbaisBs1sj48hAz6JIXRQX0WhgymIaJIYAc4PwuhO4C+BdyKpaR2YDFJNi9F+pCeUBb6HvNzhIIzmAV8HjjHtkl7oh4FLgzBaDlxtJNXJKKSRXPBlQRjNRrbipMScR0z9lcC5SFqnGe/oRH/FIIzOBk4E5qTWHpv9uTwIo+8DP/Q99/c2YJv23ipUXeNm4jBGXJgk1g3A+1D4IDST7kq1IdXn8+gwVwP3oai1xX3AtcCPEZdZLKVQ/CJ55zDgZhQ0Hsv97ycuL+aF0tKvL7zrws5K8bupOYXAvWjTyogxPoIIOEm8MZLkJXQgY5kfZapecnK8dsyOfwX+Hu3pfwAHpr6nOaaC9uzD5lmRqr/e9NHMgx1FZ9oOKoy99l3AP/uee10ziZalnkObIblxZSRBvgh8luomDAMPAU+hRZ6KxG0GqZxrUUS8XY9mJ3mnAxHHialvRTNeDhGL3YypkFnMATy3ofedW98+uDKGOAMZm4ZahDjdwoZb0gRRAq4DDgXyiTH/DzHLLLMme5g50/+w6S95kLFpW0IM66TG24EY7NvUEtkA8Ahi0j9Hgdc+0/+pSMLfjySLlUwxkj6gM8pQn+/sRGc4gs4/SUhWi3WYevZbBdiC7D4HOA6p0REkjZfBnk+qbwfejg7MbtirwFUUiqdTKF5NoXgFiuEkwwMnI0nWbiB1ADgHudxJrAb+zvS3ELgFbY5BPJNurpg98Ox+Qx19Q1klFmwIJYs20T456oksBlb4nrsE+DJinj8AHnCC77lnoI2+zszRYgQxxS2p/gZNP2cBV6G9SmIr8AmqBAKwEbjA99wzfc+90vfchYix+833DFLn70BBVxLlAE+gEMtFKPOSxu/QHq5PlT9j2i2jNn46AFzqe+5C33NPR5L0YeCrwI2+5xahuY22E3HEDmpdXIsS2rx5SDJZvIbUYJL77qBQXELe6UssdidSC+817/sgNdVNEwMqhSmImJIG61rATdl795N3BlEUXKo1w7wTdqyY/MCBlwz1jA70kqlJtTRDCWUt7kIEge+5/UEYLQQm+567KQijyUEYHYC4/VZEIO8x7TtQjC6LDisp6X/me+6qIIw2mr6nmm8xklZHUzULKsC/AXeZlJWt9yPg0+j6Dyg88THqBcla4NO+564FCMJoE8olJyXby8Btpr9DE+Ubfc+NgjB6BfgMVYndBSwIwugFxCgrfc/9QHoDmxHaOuALFIqtc1t55x+pJbRZSGzaBcbAu8k736HWgB2hPhI+HxFqucW8MN8PR5IzWfaDJk7FN5AEnWPenZ7y4KEQ91ayWXJxmVjnvg5tclK1lZEEWQk86HvuE6m+e4G5QRhdhZhlFrLbKihlZpkmh+zIP1DLSB1UwyS91NpOJZQymkN1P8sopncCcrAwY5WBw8x7jLz7U6iqbTveHZbIDNYiLXBsomy2mXva5u0Owihn1tCPVDVINV+BcsergGeCMLob+KXvua9L6GYH2oGkxVhJ1LRnMo1q1NviOPOMhXehIOJYKKKNmJooG0L2Sj0KxfXknQ1YQsswWqFrIBPHfYlaGUSQN1Ll7gww6ntuw7BIEEYu2uDjW8w16WSVU+92jGYpnSxSUUk11Ym0yLwWY1pTwK4vOebOIIwyNlxi+t6Val+msROYQdL7xSCMAuAr1ErCaSjssgDZuz8OwuhLvudugtaE1o734aTe02ovg+yurYhbk1xSMU8H4t5hM9mx1GbG1E0eQJZmnlTeydR8i8lCpdG6i+YAXhtjfHvl5hbqVdMqpD5GkEOQjL01IqhWOeVGJkQZSZNRdMjJtvb+Ws6M34O0SLIPG2KKE23SgqEZXp+P77lLgjDaggjqSBoEr9H1o9EgjD7ve+7I7qag0pu0HU18/0TZvcCVmGBmonzAPDNNeQUIqHfh0+hChmoy3OGg4OTNDerPp6pWIENnNi71ljOZ9ME3ihfWwSTGF1NLZKuBfwJ+hQit38zlrEQde8DJPYupOgCNvuWo9/5DlJ5K2mgVqjdfZiKCPNnMsxXj5mgsbBq12YU0BwC+594WhNEK5PXPM7+nUGvTn4vyo7fv6VznJuTVvCdRdhzQSaH4dE3NvOMACygUH0yUtZMm6ECE1oO4yXqMHyfvPEahWM0P5p2DgK+hi4RCzMCOzn1/kSM+OReX+uIqvbR7E+RgapkhBq71Pfc2W2BsmYNT7axkTTJbD2KYZ5HUT6rpHIrYTzHjWVvvKOBrvufW7GcQRu8DOnzPfdC8NwrNtAO7D2kbzdqedrxPoOj/Q8BDJv20CFiaaJtFAmCPE9o05AF9jmo0/QjgPvLOt9Cdp1EUJc8Dc8k7DyPOW037Sf5h5H2dTdVO6ANuIO+8F8V0+sz32hBImXsfOPDi5fuObDijLf+2MdLXo04JwujnxvuchaTbMQ3mbAO9dp09wDWmzUHUSoMsyoOuR8a/xZnAw+YS5m+QZPsbdAk1G4TRrcA1aP1lxn+PLWfWl7ZNjweWBmH0CEr1fQZ4OgijpcDPERFahrAYxVyebXUfrZ17R+k601F24HrgW4nyw1ByeotpM52qMf9RxNWfpTbuA9qoRkb0DArFx8g7t6B4kMVkFD44B9mYqU3OvEzMZaMdXfO7hoa640yNidWuRFuHDt9KyQy6GXyMCRfMQflW26fd+CFkww0ihrSYjzSA/R9DEvsBS8yajk61mYukYA+1HvwidOA3IXWaNDHS5xU3KOtEavIFlJGw6EXx0U9SPbuTzDw2mvfDqTUp1mKyE80Ctg7tXbRLx9imIrf7RupvoXahazJzqPUYMZPZSK1tB+LKburtpxnGyL8cxXzSaHQjdT1x+W/5Xrzl4MHV+8b1oqwtQvM9dwDZkklkkQT7CFUi20Utdx+CJNCTDbqdhAgmPakZyN67GBFpEr0oFJEOEw2idFWRWmcE6s80R73TN8ms59YG84T6s5uOiG0u9VGIG3zP3QhVQnvMPI8ie+EZ2vC+0O2IZ5FK/BWyz0bNTYmrkZi/h/qwRQU5DsuRRLsebfIGJGofQweyCjkMT6L01aNIxa4DshSK9hA+h3J89kJf0qtahaTp6Wyq3AOQi0u5RD3rdY1Hid6OOPtxpGJsbhgUWT/P1NmE1N82YNhcMlyErlP3U033jJr3NcDvze8r5unwPffX6FbFErP2RtiGHJDT0P8pciguuAFJp03Un0MZaZltps4G038O+G/ARYHmNDags2h0e6di2pyPLgUA1X9BWa6wnk4J2E6h2JrL804vMlZLpl25rp2M/qMQMVhuX4XCA08DQxSKkHdA3NFFNRFdRJJhunkvIw4cAAZfv2Ik6daLRP1CFJMbQR7Pj4A/Jv+eF4TRMShyPmTq9QF3+p77VMv1JhCEEchAPg2pjAo6yBXoIA6gmvPrArZb7g7CqAsZySdQtaOeR0TaZdbag4jjJd9z7Zidpt9FKO3VZ/bobpRpecL33BFTtw9dTYoT+7YZ/cnE9pdDknYaYphO098a33PLZo0zUJbA3lJ5Hvh38/sBlK76KzPntehvfLcB/Yl4nSG0vdiLNxj/Dz6axgvPJYQYAAAAAElFTkSuQmCC`,\r\n margin: [0, 0, 0, 20]\r\n },\r\n {\r\n table: {\r\n body: [filterFields]\r\n }\r\n },\r\n {\r\n style: 'tableExample',\r\n color: '#444',\r\n table: {\r\n // widths: ['auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto', 'auto'],\r\n headerRows: 1,\r\n // keepWithHeaderRows: 1,\r\n body: data\r\n }\r\n }],\r\n styles: {\r\n header: {\r\n fontSize: 18,\r\n bold: true,\r\n margin: [0, 0, 0, 10]\r\n },\r\n subheader: {\r\n fontSize: 16,\r\n bold: true,\r\n margin: [0, 10, 0, 5]\r\n },\r\n tableExample: {\r\n margin: [0, 5, 0, 15]\r\n },\r\n tableHeader: {\r\n bold: true,\r\n fontSize: 13,\r\n color: 'black'\r\n }\r\n },\r\n defaultStyle: {\r\n // alignment: 'justify'\r\n }\r\n };\r\n pdfMake.createPdf(docDefinition).download(fileName);\r\n }\r\n\r\n static enumSelector(definition) {\r\n return Object.keys(definition)\r\n .map(key => ({ value: definition[key], title: key }));\r\n }\r\n\r\n\r\n static htmlToPdf(data, docDefinition, fileName) {\r\n const filterFields = [];\r\n let pdfpageSize = 'A4';\r\n\r\n\r\n // if (fileName === 'Provider_Billing_Report.pdf') {\r\n // pdfpageSize = 'A1';\r\n // }\r\n // if (fileName === 'Patient_Management_Report.pdf') {\r\n // pdfpageSize = 'A0';\r\n // }\r\n\r\n pdfMake.vfs = pdfFonts.pdfMake.vfs;\r\n\r\n pdfMake.createPdf(docDefinition).download(fileName);\r\n }\r\n\r\n\r\n static downloadCsv(data, fileName) {\r\n const file = new Blob([data], { type: 'csv' });\r\n if (window.navigator.msSaveOrOpenBlob) {\r\n window.navigator.msSaveOrOpenBlob(file, fileName);\r\n\r\n } else { // Others\r\n const a = document.createElement('a'),\r\n url = URL.createObjectURL(file);\r\n a.href = url;\r\n a.download = fileName;\r\n document.body.appendChild(a);\r\n a.click();\r\n setTimeout(function () {\r\n document.body.removeChild(a);\r\n window.URL.revokeObjectURL(url);\r\n }, 0);\r\n }\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { CurrencyPipe } from '@angular/common';\r\n\r\n@Pipe({\r\n name: 'CustomFormatCurrency'\r\n})\r\nexport class CustomFormatCurrencyPipe implements PipeTransform {\r\n\r\n constructor(\r\n private currencyPipe: CurrencyPipe\r\n ) { }\r\n\r\n transform(value: any): any {\r\n\r\n let country: any = 'USD';\r\n\r\n if (value != null || value !== undefined || value !== '') {\r\n value = +value;\r\n\r\n const finalValue = this.currencyPipe.transform(value, country);\r\n const result = finalValue;\r\n return result;\r\n\r\n // return `$${value.toFixed(2)}`;\r\n }\r\n return country + '0.00';\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { CurrencyPipe } from '@angular/common';\r\n\r\n@Pipe({\r\n name: 'CustomFormatPercentage'\r\n})\r\nexport class CustomFormatPercentagePipe implements PipeTransform {\r\n transform(value: any): any {\r\n if (value != null || value !== undefined || value !== '') {\r\n value = +value;\r\n return `${value.toFixed(2)}%`;\r\n }\r\n return '0.00%';\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'dashMask',\r\n})\r\nexport class DashMaskPipe implements PipeTransform {\r\n transform(value: any, mask: string): any {\r\n const valueA = value.split('');\r\n const maskA = mask.split('');\r\n\r\n const res = maskA.map((i) => {\r\n if (!valueA.length) {\r\n return '';\r\n }\r\n if (i !== '-') {\r\n return valueA.shift();\r\n } else {\r\n return '-';\r\n }\r\n });\r\n return res.join('');\r\n }\r\n // star mask\r\n // transform(value: any, keepLength: number = 4): any {\r\n // if (!Number.isInteger(keepLength)) {\r\n // keepLength = 4;\r\n // }\r\n // keepLength = -1 * keepLength;\r\n // return '*'.repeat(value.slice(0, keepLength).length) + value.slice(keepLength);\r\n // }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: 'minutes'\r\n})\r\nexport class MinToDayPipe implements PipeTransform {\r\n\r\n transform(minutes: number, format = 'short', args?: any): any {\r\n let formatted = '';\r\n // set minutes to seconds\r\n let seconds = minutes * 60;\r\n\r\n // calculate (and subtract) whole days\r\n let days = 0;\r\n\r\n days = Math.floor(seconds / 86400);\r\n seconds -= days * 86400;\r\n if (days > 0) {\r\n formatted = `${days}d `;\r\n }\r\n\r\n\r\n // calculate (and subtract) whole hours\r\n const hours = Math.floor(seconds / 3600) % 24;\r\n seconds -= hours * 3600;\r\n if (hours > 0) {\r\n formatted += `${hours}h `;\r\n }\r\n\r\n // calculate (and subtract) whole minutes\r\n const min = Math.floor(seconds / 60) % 60;\r\n\r\n formatted += `${min}m`;\r\n\r\n if ('long' === format) {\r\n formatted = formatted.replace('d', ' days');\r\n formatted = formatted.replace('h', ' hours');\r\n formatted = formatted.replace('m', ' minutes');\r\n }\r\n\r\n return formatted;\r\n }\r\n\r\n}","import { Pipe, PipeTransform } from \"@angular/core\";\r\nimport { isNumeric } from 'rxjs/util/isNumeric';\r\n\r\n@Pipe({\r\n name: 'psstring'\r\n})\r\nexport class PrefixSuffixPipe implements PipeTransform {\r\n\r\n transform(string: any, isPrefix = true, delimeter = '****', args?: any): any {\r\n\r\n let blankValue = '--';\r\n let response = blankValue;\r\n\r\n if (string === null || string == \"\" || string == '' || string === undefined) {\r\n return response;\r\n }\r\n\r\n if (isNumeric(string)) {\r\n string = string.toString();\r\n }\r\n\r\n if (isPrefix === true) {\r\n response = delimeter + string;\r\n } else {\r\n response = string + delimeter;\r\n }\r\n\r\n return response;\r\n\r\n }\r\n\r\n}","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({\r\n name: 'shortUrl',\r\n})\r\nexport class ShortUrlPipe implements PipeTransform {\r\n transform(url: string, args?: any): any {\r\n if (url) {\r\n const len = url.length;\r\n if (len > 30) {\r\n // only shorten if greater than 30\r\n // change value 21 and 9 as per requirement\r\n return url.substr(0, 21) + '...' + url.substring(len - 9, len);\r\n }\r\n return url;\r\n }\r\n return url;\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from \"@angular/core\";\r\n\r\n@Pipe({\r\n name: 'time'\r\n })\r\n export class TimePipe implements PipeTransform {\r\n \r\n transform(value: number, args?: any): any {\r\n return `${Math.floor(value / 60)}:${('0' + (value % 60)).slice(-2)}`;\r\n }\r\n \r\n }","import { Injectable } from '@angular/core';\r\nimport { StorageService } from './storage.service';\r\nimport { StorageType } from './storage.enum';\r\nimport { Router, CanActivate, Route } from '@angular/router';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AuthGuard implements CanActivate {\r\n\r\n constructor(private storageService: StorageService, private router: Router) { }\r\n\r\n canActivate() {\r\n if (this.storageService.get(StorageType.session, 'auth')) {\r\n return true;\r\n }\r\n let settingData = JSON.parse(this.storageService.get(StorageType.session, 'settingsData'));\r\n if(settingData!=null && settingData.providerName!=null){\r\n let newUrl = '/login/'+settingData.providerName;\r\n this.router.navigate([newUrl]);\r\n }else{\r\n this.router.navigate(['/login']);\r\n }\r\n //this.router.navigate(['/login']);\r\n return false;\r\n }\r\n\r\n canLoad(route: Route): boolean {\r\n if (this.storageService.get(StorageType.session, 'auth')) {\r\n return true;\r\n }\r\n let settingData = JSON.parse(this.storageService.get(StorageType.session, 'settingsData'));\r\n if(settingData!=null && settingData.providerName!=null){\r\n let newUrl = '/login/'+settingData.providerName;\r\n this.router.navigate([newUrl]);\r\n }else{\r\n this.router.navigate(['/login']);\r\n }\r\n //this.router.navigate(['/login']);\r\n return false;\r\n }\r\n}\r\n","export enum StorageType {\r\n 'local',\r\n 'session',\r\n 'cookie'\r\n}\r\n","import { Injectable } from '@angular/core';\r\n// import { Subject } from 'rxjs/internal/Subject';\r\nimport { StorageType } from './storage.enum';\r\n// import { interval, Observable, Subscription } from 'rxjs';\r\n// import { environment } from 'src/environments/environment';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class StorageService {\r\n // public sessionWarningTimer$ = new Subject();\r\n // public sessionTimeoutTimer$ = new Subject();\r\n // private timerSubscription: Subscription;\r\n // private timeoutSubscription: Subscription;\r\n // private _timeoutSeconds: number;\r\n // private _warningSeconds: number;\r\n // private timerCountSubscription: Subscription;\r\n // private timerWarningCountSubscription: Subscription;\r\n // private timer: Observable = interval(1000);\r\n // private _remainSeconds = new Subject();\r\n /**\r\n * Observable to get session remaining time (in seconds).\r\n *\r\n * Subscribers need to unsubscribe to it before hosting element is destroyed.\r\n *\r\n * @memberof SideNavComponent\r\n */\r\n // remainSeconds$ = this._remainSeconds.asObservable();\r\n prefix = 'nav';\r\n count = 0;\r\n // startTimer() {\r\n // let loggedInSessionTimeOut = JSON.parse(this.get(StorageType.session, \"sessionTimeOut\"));\r\n // let loggedInSessionWarning = JSON.parse(this.get(StorageType.session, \"sessionWarning\"));\r\n // this.timerCountSubscription = this.timer.subscribe(n => {\r\n // let currentTime = new Date();\r\n // this._timeoutSeconds = Math.floor(Math.abs(+new Date(loggedInSessionTimeOut.remainTimeOut) - +currentTime) / 1000);\r\n // //console.log(\"_timeoutSeconds sec interval \"+this._timeoutSeconds)\r\n // if (this._timeoutSeconds == 0) {\r\n // this.timerCountSubscription.unsubscribe()\r\n // }\r\n // if (this._timeoutSeconds > 0) {\r\n // this._remainSeconds.next(this._timeoutSeconds);\r\n // if (this._timeoutSeconds % 5 == 0) {\r\n // //console.log(\"count 5 sec interval \" + this._timeoutSeconds)\r\n // let timeOut = new Date();\r\n // timeOut.setSeconds(timeOut.getSeconds() + this._timeoutSeconds);\r\n // //console.log(\"timeout :\" + timeOut)\r\n // this.save(StorageType.session, 'sessionTimeOut', JSON.stringify({ remainTimeOut: timeOut }));\r\n // }\r\n // }\r\n // });\r\n // this.timerWarningCountSubscription = this.timer.subscribe(n => {\r\n // let currentTime = new Date();\r\n // this._warningSeconds = Math.floor(Math.abs(+new Date(loggedInSessionWarning.remainWarning) - +currentTime) / 1000);\r\n // if (this._warningSeconds == 0) {\r\n // this.timerWarningCountSubscription.unsubscribe()\r\n // }\r\n // if (this._warningSeconds > 0) {\r\n // if (this._warningSeconds % 5 == 0) {\r\n // //console.log(\"_warningSeconds 5 sec interval \" + this._warningSeconds)\r\n // let timeWarning = new Date();\r\n // timeWarning.setSeconds(timeWarning.getSeconds() + this._warningSeconds);\r\n // //console.log(\"timeWarning :\" + timeWarning)\r\n // this.save(StorageType.session, 'sessionWarning', JSON.stringify({ remainWarning: timeWarning }));\r\n // }\r\n // }\r\n // });\r\n // }\r\n // setSessionWarningTimer() {\r\n // //console.log(\"setSessionWarningTimer\")\r\n // let warning;\r\n // let loggedInSessionWarning = JSON.parse(this.get(StorageType.session, \"sessionWarning\"));\r\n // //console.log(loggedInSessionWarning!==null)\r\n // if(loggedInSessionWarning!==null){\r\n // warning = Math.floor(Math.abs(+new Date(loggedInSessionWarning.remainWarning) - +new Date())/1000);\r\n // }else{\r\n // warning = environment.sessionWarningSec;\r\n // }\r\n // //console.log(\"warning \" + warning)\r\n // this.timerSubscription = interval(warning * 1000).subscribe((n) => {\r\n // //console.log(\"called\")\r\n // this.sessionWarningTimer$.next()});\r\n // }\r\n // stopWarningTimer(){\r\n // if (this.timerSubscription && !this.timerSubscription.closed) { this.timerSubscription.unsubscribe(); } \r\n // }\r\n // setSessionTimeout() {\r\n // //console.log(\"setSessionTimeout\")\r\n // let timeout;\r\n // let loggedInSessionTimeOut = JSON.parse(this.get(StorageType.session, \"sessionTimeOut\"));\r\n // //console.log(loggedInSessionTimeOut!==null)\r\n // if(loggedInSessionTimeOut!==null){\r\n // timeout = Math.floor(Math.abs(+new Date(loggedInSessionTimeOut.remainTimeOut) - +new Date())/1000);\r\n // }else{\r\n // timeout = environment.sessionTimeOutSec;\r\n // }\r\n // //console.log(\"timeout \" + timeout)\r\n // this.timeoutSubscription = interval(timeout * 1000).subscribe(n => {\r\n // //console.log(\"logout\")\r\n // this.sessionTimeoutTimer$.next()});\r\n // }\r\n // stopTimer() {\r\n // //console.log(\"stopTimer\")\r\n // //this.signal.next(undefined);\r\n // if (this.timerSubscription && !this.timerSubscription.closed) { this.timerSubscription.unsubscribe(); }\r\n // if (this.timeoutSubscription && !this.timeoutSubscription.closed) { this.timeoutSubscription.unsubscribe(); }\r\n // if (this.timerCountSubscription && !this.timerCountSubscription.closed) { this.timerCountSubscription.unsubscribe(); }\r\n // if (this.timerWarningCountSubscription && !this.timerWarningCountSubscription.closed) { this.timerWarningCountSubscription.unsubscribe(); }\r\n \r\n\r\n // }\r\n // restartTimer(){\r\n // let timeOut = new Date();\r\n // timeOut.setSeconds(timeOut.getSeconds() + environment.sessionTimeOutSec);\r\n // let timeWarning = new Date();\r\n // timeWarning.setSeconds(timeWarning.getSeconds() + environment.sessionWarningSec);\r\n // this.save(StorageType.session, 'sessionTimeOut', JSON.stringify({ remainTimeOut: timeOut }));\r\n // this.save(StorageType.session, 'sessionWarning', JSON.stringify({ remainWarning: timeWarning }));\r\n // this.startTimer();\r\n // this.setSessionWarningTimer();\r\n // this.setSessionTimeout();\r\n // }\r\n // unsubscribeSignal() {\r\n // if (this.timerSubscription && !this.timerSubscription.closed) { this.timerSubscription.unsubscribe(); }\r\n // if (this.timeoutSubscription && !this.timeoutSubscription.closed) { this.timeoutSubscription.unsubscribe(); }\r\n // if (this.timerCountSubscription && !this.timerCountSubscription.closed) { this.timerCountSubscription.unsubscribe(); }\r\n // if (this.timerWarningCountSubscription && !this.timerWarningCountSubscription.closed) { this.timerWarningCountSubscription.unsubscribe(); }\r\n // }\r\n setLoginCount() {\r\n this.count += 1;\r\n }\r\n setFirstLoginCount() {\r\n this.count = 0;\r\n }\r\n getLoginCount() {\r\n return this.count;\r\n }\r\n save(type: StorageType, key: string, value: string) {\r\n if (type === StorageType.local) {\r\n localStorage.setItem(this.prefix + key, this.encryptBase64(value));\r\n } else if (type === StorageType.session) {\r\n sessionStorage.setItem(this.prefix + key, this.encryptBase64(value));\r\n }\r\n }\r\n\r\n get(type: StorageType, key: string) {\r\n if (type === StorageType.local) {\r\n if (localStorage.getItem(this.prefix + key)) {\r\n return this.decryptBase64(localStorage.getItem(this.prefix + key));\r\n }\r\n return;\r\n }\r\n if (type === StorageType.session) {\r\n if (sessionStorage.getItem(this.prefix + key)) {\r\n return this.decryptBase64(sessionStorage.getItem(this.prefix + key));\r\n }\r\n return null;\r\n }\r\n }\r\n\r\n remove(type: StorageType, key: string) {\r\n if (type === StorageType.local) {\r\n localStorage.removeItem(this.prefix + key);\r\n }\r\n if (type === StorageType.session) {\r\n sessionStorage.removeItem(this.prefix + key);\r\n }\r\n }\r\n\r\n encryptBase64(stringData: string) {\r\n return btoa(stringData);\r\n }\r\n decryptBase64(stringData: string) {\r\n return atob(stringData);\r\n }\r\n}\r\n","export namespace Messages {\r\n export const required = 'Please enter {name}.';\r\n export const requiredImage = 'Please upload {name}.';\r\n export const minlength = '{name} must be {min} digits/characters long.';\r\n export const maxlength = '{name} cannot be more than {max} digits/characters.';\r\n export const email = '{name} is not valid.';\r\n export const pattern = '{name} is not valid.';\r\n export const amountpattern = '{name} should be in the range of 0-999999999.99 with max. of 2 decimals';\r\n export const matchPassword = '{name} is not matched.';\r\n export const invalidmobile = 'Only number is allowed.';\r\n export const isNumberOnly = 'Only number is allowed.';\r\n export const blankPassword = '{name} should not be blank.';\r\n export const cardNumber = '{name} not valid.';\r\n export const amount = 'Please enter {name} greater than 0';\r\n export const expiryDate = '{name} not valid';\r\n export const buyRate = '{name} should be greater than or equal to 0';\r\n export const isActiveDoctor = '{name} is not Active'; \r\n}\r\n","export class ValidationConstant {\r\n\r\n static email_regex =\r\n /^(([^<>()\\[\\]\\\\.,;:\\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,}))$/;\r\n static url_regex = '(http(s)?://|)(www\\\\.)([^\\\\.]+)\\\\.(\\\\w{2}|(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|co))$';\r\n static emailWithCommaSeperation = /^((?:[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?\\.)+[a-zA-Z0-9](?:[a-zA-Z0-9-]*[a-zA-Z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-zA-Z0-9-]*[a-zA-Z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\]),?)+$/;\r\n static charactersOnlyWithSpace_regex = '^[a-zA-Z]+([a-zA-Z ]+)*$';\r\n static alphanumeric_regex = '^[a-zA-Z0-9]*$';\r\n static alphanumericWithSpace_regex = '^[a-zA-Z0-9]+([a-zA-Z0-9 ]+)*$';\r\n static charactersOnlyWithoutSpace = '^[a-zA-Z]+$';\r\n static numbersOnly_regex = '^[0-9]*$';\r\n //static duration_regex = '(1[5-9]|[2-9][0-9]|[1-3][0-9]{2}|4[0-7][0-9]|480)'; //15min -480\r\n static duration_newregex = '^([1-9]|[1-8][0-9]|9[0-9]|[1-3][0-9]{2}|4[0-7][0-9]|480)$' //1-480\r\n // Need to check alternative regex for \"allow everything except space\"\r\n static spaceNotAccepted_regex =\r\n '^[a-zA-Z0-9~!@#$%^&*()_+{}|:\"<>?`\\\\-=\\\\[\\\\]\\\\\\\\;\\',./]+([a-zA-Z0-9~!@#$%^&*()_+{}|:\"<>?`\\\\-=\\\\[\\\\]\\\\\\\\;\\',./ \\r\\n|\\r|\\n]+)*$';\r\n //static postalcode_regex = /^(?!00000)(?(?\\d{5})(?:[ -](?=\\d))?(?\\d{4})?)$/;\r\n static postalcode_regex = /(^\\d{5}$)|(^\\d{5}\\d{4}$)/;\r\n static expiration_regex = /(^((0[1-9])|(1[0-2]))[\\/\\.\\-]*((19)|(2[0-9]))$)/;\r\n static numberOfPayments_regexForSubscription = \"^(?:[1-9][0-9]{3}|[1-9][0-9]{2}|[1-9][0-9]|[1-9])$\";\r\n\r\n static numberOfPayments_regexForInstallment = '^(36[0]|3[0-5][0-9]|[12][0-9][0-9]|[1-9]?[0-9])?$';\r\n static numberOfPayments_regexForInstallmentNew = '^(0?[1-9]|[1-9][0-9])$';\r\n // First Name, Last Name, Patient Name, Name on Card, Card Holder Name, Pay To The Order Of\r\n static firstNameLastName_regex = '^[a-zA-Z]+([a-zA-Z ,.\\'-]+)*$';\r\n static ssn_regex = '^([0-9*]{9})*$'\r\n static AppCount_regex = '^[1-9][0-9]?$|^100$';\r\n static amount_regex = '^([0-9]{1,5})(\\\\.[0-9]{1,2})?$';\r\n // static amount_regex = '^\\\\d{0,9}(\\\\.\\\\d{1,2})?$';\r\n static dob_regex = '^(0[1-9]|1[0-2])\\/(0[1-9]|1\\d|2\\d|3[01])\\/(19|20)\\d{2}$';\r\n static invoiceNo_regex = /^[^&?=]+$/;\r\n static percentage_regex = '(^100(\\\\.0{1,2})?$)|(^([1-9]([0-9])?|0)(\\\\.[0-9]{1,2})?$)';\r\n static numberOfPayments_regex = '^([0-5]?[0-9]|60)$';\r\n static amount_regex_amountGreaterThanZero = new RegExp(/^(?=.*[1-9])\\d{0,9}(?:\\.\\d{0,2})?$/);\r\n static subTotal_regex_amountGreaterThanZero = new RegExp(/^(?=.*[1-9])\\d{0,5}(?:\\.\\d{0,2})?$/); //accept till 5 digit\r\n static password_regex = /^(?=.*[A-Za-z])(?=.*\\d)(?=.*[&?#$_!@^%])[A-Za-z\\d@$!%*#?&]{8,}$/;\r\n static common = {\r\n title: { name: 'Title', minLength: 5, maxLength: 50 },\r\n firstName: { name: 'First Name', minLength: 5, maxLength: 50 },\r\n middleName: { name: 'Middle Name', minLength: 5, maxLength: 50 },\r\n lastName: { name: 'Last Name', minLength: 5, maxLength: 50 },\r\n companyName: { name: 'Company Name', maxLength: 50, minLength: 5 },\r\n department: { name: 'Department', maxLength: 50, minLength: 5 },\r\n fax: { name: 'Fax', maxLength: 20, minLength: 10 },\r\n countryCode: { name: 'Country Code', maxLength: 10, minLength: 2 },\r\n phone: { name: 'Phone', maxLength: 12, minLength: 10, mask_minLength: 10, mask_maxLength: 10 },\r\n alternatePhone: { name: 'Alternate Phone', maxLength: 10, minLength: 5 },\r\n mobile: { name: 'Mobile', maxLength: 50, minLength: 5 },\r\n email: { name: 'Email', maxLength: 256, minLength: 5 },\r\n url: { name: 'URL', maxLength: 50, minLength: 5 },\r\n addressLine1: { name: 'Address Line 1', maxLength: 50, minLength: 5 },\r\n addressLine2: { name: 'Address Line 2', maxLength: 50, minLength: 5 },\r\n city: { name: 'City', maxLength: 50, minLength: 5 },\r\n state: { name: 'State', maxLength: 50 },\r\n country: { name: 'Country', maxLength: 50 },\r\n postalCode: { name: 'Postal (Zip) Code', maxLength: 10, minLength: 5 },\r\n\r\n invoiceNo: { name: 'Invoice No', minLength: 1, maxLength: 16 },\r\n date: { name: 'Date' },\r\n startDate: { name: 'Start Date' },\r\n endDate: { name: 'End Date' },\r\n amount: { name: 'Amount' },\r\n customerName: { name: 'Customer Name', minLength: 1, maxLength: 50 },\r\n status: { name: 'Status' },\r\n paymentFor: { name: 'Payment For', minLength: 1, maxLength: 50 },\r\n description: { name: 'Description', minLength: 5, maxLength: 1000 },\r\n };\r\n\r\n static login = {\r\n username: { name: 'Username', maxLength: 50, minLength: 7 },\r\n password: { name: 'Password', maxLength: 50, minLength: 8 },\r\n authcode: { name: 'Auth Code', maxLength: 6, minLength: 6 }\r\n };\r\n\r\n static forgotPassword = {\r\n username: { name: 'Username', maxLength: 50, minLength: 7 }\r\n };\r\n static forgotUsername = {\r\n email: { name: 'Email', maxLength: 256, minLength: 5 }\r\n };\r\n\r\n static resetPassword = {\r\n oldPassword: { name: 'Old Password', maxLength: 50, minLength: 8 },\r\n newPassword: { name: 'New Password', maxLength: 50, minLength: 8 },\r\n confirmPassword: { name: 'Confirm Password', maxLength: 50, minLength: 8 },\r\n termsOfUse: { name: 'Website Terms of Use' },\r\n privacyPolicy: { name: 'Privacy Policy' },\r\n acceptUsePolicy: { name: 'Acceptable Use Policy' },\r\n hipaaAuthorization: { name: 'HIPAA Authorization' }\r\n\r\n };\r\n\r\n static changePassword = {\r\n oldPassword: { name: 'Old Password', maxLength: 50, minLength: 8 },\r\n newPassword: { name: 'New Password', maxLength: 50, minLength: 8 },\r\n confirmPassword: { name: 'Confirm Password', maxLength: 50, minLength: 8 }\r\n };\r\n\r\n static forms = {\r\n add: {\r\n title: { name: 'Title', maxLength: 50, minLength: 5 },\r\n isEditable: { name: 'Provider Edit Access' },\r\n },\r\n }\r\n\r\n static facility = {\r\n add: {\r\n facilityName: { name: 'Facility Name', maxLength: 50, minLength: 5 },\r\n title: { name: 'Title', maxLength: 50, minLength: 5 },\r\n branchName: { name: 'Branch Name', maxLength: 50, minLength: 5 },\r\n phone: { name: 'Phone', maxLength: 10, minLength: 10 },\r\n email: { name: 'Email', maxLength: 256, minLength: 5 },\r\n url: { name: 'URL', maxLength: 50, minLength: 5 },\r\n addressLine1: { name: 'Address Line 1', maxLength: 30, minLength: 5 },\r\n addressLine2: { name: 'Address Line 2', maxLength: 50, minLength: 5 },\r\n city: { name: 'City', maxLength: 50, minLength: 5 },\r\n state: { name: 'State', maxLength: 50 },\r\n country: { name: 'Country', maxLength: 50 },\r\n postalCode: { name: 'Postal (Zip) Code', maxLength: 10, minLength: 5 },\r\n timeZone: { name: 'Time Zone', maxLength: 50 },\r\n },\r\n find: {\r\n facilityName: { name: 'Facility Name', maxLength: 50, minLength: 5 },\r\n branchName: { name: 'Branch Name', maxLength: 50, minLength: 5 },\r\n phone: { name: 'Phone', maxLength: 10, minLength: 10 },\r\n email: { name: 'Email', maxLength: 256 },\r\n status: { name: 'Status' },\r\n\r\n }\r\n };\r\n static provider = {\r\n add: {\r\n providerCompany: { name: 'Provider Company', maxLength: 50, minLength: 5 },\r\n NpiNumber: { name: 'NPI Number', minLength: 10, maxLength: 10 },\r\n providerAdminUserName: { name: 'Admin Username', maxLength: 50, minLength: 7 },\r\n title: { name: 'Title', maxLength: 50, minLength: 5 },\r\n firstName: { name: 'First Name', maxLength: 50, minLength: 5 },\r\n middleName: { name: 'Middle Name', maxLength: 50 },\r\n lastName: { name: 'Last Name', maxLength: 50, minLength: 5 },\r\n companyName: { name: 'Company Name', maxLength: 50, minLength: 5 },\r\n phone: { name: 'Phone', maxLength: 10, minLength: 10 },\r\n email: { name: 'Email', maxLength: 256, minLength: 5 },\r\n url: { name: 'URL', maxLength: 50, minLength: 5 },\r\n addressLine1: { name: 'Address Line 1', maxLength: 30, minLength: 5 },\r\n addressLine2: { name: 'Address Line 2', maxLength: 50, minLength: 5 },\r\n city: { name: 'City', maxLength: 50, minLength: 5 },\r\n state: { name: 'State', maxLength: 50 },\r\n timezone: { name: 'TimeZone' },\r\n country: { name: 'Country', maxLength: 50 },\r\n facilityName: { name: 'Facility Name', maxLength: 50 },\r\n postalCode: { name: 'Postal (Zip) Code', maxLength: 10, minLength: 5 },\r\n timeZone: { name: 'Time Zone', maxLength: 50 },\r\n providerName: { name: 'Provider Name', maxLength: 50, minLength: 5 },\r\n merchantKey: { name: 'Provider Access Key', maxLength: 50, minLength: 8 },\r\n taxId: { name: 'Tax Id', minLength: 0, maxLength: 50 },\r\n },\r\n find: {\r\n firstName: { name: 'First Name', maxLength: 50, minLength: 5 },\r\n lastName: { name: 'Last Name', maxLength: 50, minLength: 5 },\r\n companyName: { name: 'Company Name', maxLength: 50, minLength: 5 },\r\n phone: { name: 'Phone', maxLength: 10, minLength: 10 },\r\n email: { name: 'Email', maxLength: 256 },\r\n city: { name: 'City', maxLength: 50 },\r\n postalCode: { name: 'Postal (Zip) Code', maxLength: 10 },\r\n providerName: { name: 'Provider Name', maxLength: 50, minLength: 5 },\r\n channelType: { name: 'Channel Type', maxLength: 50, minLength: 5 },\r\n paymentType: { name: 'Payment Type', maxLength: 50, minLength: 5 },\r\n transactionVolumeType: { name: 'Transaction Volume Type', maxLength: 50, minLength: 5 },\r\n month: { name: 'Month', maxLength: 50, minLength: 5 },\r\n }\r\n };\r\n static user = {\r\n add: {\r\n providerCompany: { name: 'Provider Company', maxLength: 50, minLength: 5 },\r\n userAdminUserName: { name: 'Admin Username', maxLength: 50, minLength: 7 },\r\n title: { name: 'Title', maxLength: 50, minLength: 5 },\r\n firstName: { name: 'First Name', maxLength: 50, minLength: 5 },\r\n middleName: { name: 'Middle Name', maxLength: 50 },\r\n lastName: { name: 'Last Name', maxLength: 50, minLength: 5 },\r\n companyName: { name: 'Company Name', maxLength: 50, minLength: 5 },\r\n phone: { name: 'Phone', maxLength: 10, minLength: 10 },\r\n email: { name: 'Email', maxLength: 256, minLength: 5 },\r\n url: { name: 'URL', maxLength: 50, minLength: 5 },\r\n addressLine1: { name: 'Address Line 1', maxLength: 30, minLength: 5 },\r\n addressLine2: { name: 'Address Line 2', maxLength: 50, minLength: 5 },\r\n city: { name: 'City', maxLength: 50, minLength: 5 },\r\n state: { name: 'State', maxLength: 50 },\r\n country: { name: 'Country', maxLength: 50 },\r\n facilityName: { name: 'Facility Name', maxLength: 50 },\r\n postalCode: { name: 'Postal (Zip) Code', maxLength: 10, minLength: 5 },\r\n timeZone: { name: 'Time Zone', maxLength: 50 },\r\n userName: { name: 'Username', maxLength: 50, minLength: 5 },\r\n merchantKey: { name: 'Provider Access Key', maxLength: 50, minLength: 8 },\r\n role: { name: 'User Role', maxLength: 50, minLength: 8 }\r\n },\r\n find: {\r\n firstName: { name: 'First Name', maxLength: 50, minLength: 5 },\r\n lastName: { name: 'Last Name', maxLength: 50, minLength: 5 },\r\n companyName: { name: 'Company Name', maxLength: 50, minLength: 5 },\r\n phone: { name: 'Phone', maxLength: 10, minLength: 10 },\r\n email: { name: 'Email', maxLength: 256 },\r\n city: { name: 'City', maxLength: 50 },\r\n postalCode: { name: 'Postal (Zip) Code', maxLength: 10 },\r\n providerName: { name: 'Provider Name', maxLength: 50, minLength: 5 },\r\n }\r\n };\r\n static transaction = {\r\n add: {\r\n findPatient: {\r\n patientName: { name: 'Patient Name', maxLength: 50, minLength: 5 },\r\n email: { name: 'Email', maxLength: 256, minLength: 5 },\r\n companyName: { name: 'Company Name', maxLength: 50, minLength: 5 },\r\n },\r\n addTransaction: {\r\n providerName: { name: 'Provider Name', maxLength: 50 },\r\n selectedCard: { name: 'Card', maxLength: 50 },\r\n taxPercent: { name: 'Tax Percent', maxLength: 5 },\r\n patientName: { name: 'Patient Name', maxLength: 50 },\r\n cardHolderName: { name: 'Card Holder Name', maxLength: 50 },\r\n cardNumber: { name: 'Card Number', maxLength: 19 },\r\n cardType: { name: 'Card Type' },\r\n cardExpiry: { name: 'Card Expiry', minLength: 4, maxLength: 4 },\r\n cvv: { name: 'CVV', minLength: 3, maxLength: 4 },\r\n amount: { name: 'Amount', maxLength: 9 },\r\n convenienceAmount: { name: 'Convenience Amount', maxLength: 50 },\r\n tipAmount: { name: 'Tip Amount', maxLength: 50 },\r\n taxAmount: { name: 'Tax Amount', maxLength: 50 },\r\n discount: { name: 'Discount' },\r\n discountAmount: { name: 'Discount Amount' },\r\n totalAmount: { name: 'Total Amount', maxLength: 9 },\r\n transactionType: { name: 'Transaction Type', maxLength: 50 },\r\n invoiceno: { name: 'Reference No', maxLength: 25, minLength: 1 },\r\n email: { name: 'Email', maxLength: 256 },\r\n payToTheOrderOf: { name: 'Payee Name', maxLength: 50 },\r\n routingNumber: { name: 'Routing/Transit No', maxLength: 9, minLength: 9 },\r\n checkNumber: { name: 'Check No', maxLength: 50 },\r\n accountNumber: { name: 'Account No', minLength: 4, maxLength: 50 },\r\n institutionName: { name: 'Name of Institution', minLength: 2, maxLength: 50 },\r\n accountType: { name: 'Account Type', maxLength: 50 },\r\n checkType: { name: 'Check Type', maxLength: 50 },\r\n secCode: { name: 'SEC Code', maxLength: 50 },\r\n memo: { name: 'memo', maxLength: 500 },\r\n transactionDate: { name: 'Transaction Date' },\r\n bankName: { name: 'Bank Name', maxLength: 50 },\r\n nameOnAccount: { name: 'Account Name', maxLength: 25 },\r\n },\r\n addressDetails: {\r\n addressLine1: { name: 'Address Line1', maxLength: 30, minLength: 5 },\r\n addressLine2: { name: 'Address Line 2', maxLength: 50 },\r\n city: { name: 'City', maxLength: 50 },\r\n state: { name: 'State' },\r\n country: { name: 'Country' },\r\n postalCode: { name: 'Postal (Zip) Code', maxLength: 10 }\r\n },\r\n },\r\n find: {\r\n startDate: { name: 'Start Date' },\r\n endDate: { name: 'End Date' },\r\n patientName: { name: 'Patient Name', maxLength: 50, minLength: 5 },\r\n accountName: { name: 'Account Name', maxLength: 50, minLength: 5 },\r\n providerName: { name: 'Provider Name', maxLength: 50, minLength: 5 },\r\n cardNumber: { name: 'Card No', maxLength: 4, minLength: 19 },\r\n amount: { name: 'Amount', maxLength: 19, minLength: 19 },\r\n status: { name: 'Status', maxLength: 50, minLength: 1 },\r\n recurringId: { name: 'Payment Plan Id', maxLength: 50, minLength: 1 },\r\n type: { name: 'Channel Type', maxLength: 50, minLength: 1 },\r\n },\r\n view: {\r\n\r\n },\r\n operation: {\r\n description: { name: 'Description', maxLength: 50, minLength: 5 },\r\n }\r\n };\r\n\r\n static recurring = {\r\n find: {\r\n nextBillingStartDate: { name: 'Start Date' },\r\n nextBillingEndDate: { name: 'End Date' },\r\n patientName: { name: 'Patient Name' },\r\n accountName: { name: 'Account Name' },\r\n paymentName: { name: 'Payment Name' },\r\n amount: { name: 'Amount', maxLength: 19, minLength: 19 },\r\n status: { name: 'Status' },\r\n },\r\n cancel: {\r\n reason: { name: 'Reason', maxLength: 256, minLength: 10 },\r\n cancelRecurring: { name: 'Option' }\r\n },\r\n add: {\r\n findPatient: {\r\n patientName: { name: 'Patient Name', maxLength: 50, minLength: 5 },\r\n email: { name: 'Email', maxLength: 256, minLength: 5 },\r\n companyName: { name: 'Comapnay Name', maxLength: 50, minLength: 5 },\r\n },\r\n recurringPayment: {\r\n patientName: { name: 'Patient Name', maxLength: 50, minLength: 5 },\r\n patientAccount: { name: 'Payment Account' },\r\n paymentName: { name: 'Payment Name', maxLength: 50, minLength: 5 },\r\n frequency: { name: 'Frequency' },\r\n frequencyParam: { name: 'Frequency Param' },\r\n type: { name: 'Type' },\r\n startDate: { name: 'Start Date' },\r\n endDate: { name: 'End Date' },\r\n subTotal: { name: 'Amount' },\r\n downPayment: { name: 'Amount' },\r\n taxAmount: { name: 'Tax Amount' },\r\n taxCalculated: { name: 'Tax Calculated' },\r\n totalAmount: { name: 'Total Amount' },\r\n noOfPayments: { name: 'No of Payments' },\r\n paymentAmount: { name: 'Payment Amount' },\r\n noOfRetries: { name: 'No of Retries' },\r\n amount: { name: 'Amount' },\r\n discount: { name: 'Discount' },\r\n discountAmount: { name: 'Discount Amount' },\r\n customerName: { name: 'Customer Name', maxLength: 50, minLength: 5 },\r\n customerAccount: { name: 'Payment Account' },\r\n planName: { name: 'Plan Name', maxLength: 50 },\r\n planDescription: { name: 'Payment Plan Description', maxLength: 500 },\r\n subscriptionAmount: { name: 'Subscription Amount' },\r\n firstName: { name: 'First Name', maxLength: 50, minLength: 5 },\r\n middleName: { name: 'Middle Name', maxLength: 50 },\r\n lastName: { name: 'Last Name', maxLength: 50, minLength: 5 },\r\n companyName: { name: 'Company Name', maxLength: 50, minLength: 5 },\r\n cardHolderName: { name: 'Name On Card', minLength: 5, maxLength: 50 },\r\n CVV: { name: 'CVV', minLength: 3, maxLength: 4 },\r\n postalCode: { name: 'Zip Code', minLength: 5, maxLength: 10 },\r\n cardNumber: { name: 'Card Number' },\r\n cardType: { name: 'Card Type' },\r\n cardExpiry: { name: 'Card Expiry', minLength: 4, maxLength: 4 },\r\n refundType: { name: 'Refund Type' },\r\n }\r\n },\r\n edit: {},\r\n };\r\n static note = {\r\n find: {\r\n patientName: { name: 'Patient Name' },\r\n createdOn: { name: 'Created On' },\r\n searchTerm: { name: 'Search Term' }\r\n }\r\n }\r\n static customPlans = {\r\n find: {\r\n planName: { name: 'Plan Name' },\r\n planDescription: { name: 'Plan Description' },\r\n productAndServices: { name: 'Product & Services' },\r\n frequency: { name: 'Frequency' },\r\n paymentType: { name: 'Payment Type' },\r\n status: { name: 'Status' }\r\n },\r\n add: {\r\n planName: { name: 'Plan Name' },\r\n planDescription: { name: 'Plan Description' },\r\n productAndServices: { name: 'Product & Services' },\r\n frequency: { name: 'Frequency' },\r\n frequencyParam: { name: 'Frequency Param' },\r\n paymentType: { name: 'Payment Type' },\r\n rate: { name: 'Rate' },\r\n discount: { name: 'Discount' },\r\n numberOfPayments: { name: 'Number Of Payments' },\r\n discountAmount: { name: 'Discount Amount' }\r\n }\r\n };\r\n\r\n static customer = {\r\n add: {\r\n title: { name: 'Title', minLength: 2, maxLength: 10 },\r\n firstName: { name: 'First Name', minLength: 5, maxLength: 50 },\r\n middleName: { name: 'Middle Name', minLength: 5, maxLength: 50 },\r\n lastName: { name: 'Last Name', minLength: 5, maxLength: 50 },\r\n company: { name: 'Company', minLength: 5, maxLength: 50 },\r\n department: { name: 'Department', minLength: 5, maxLength: 50 },\r\n phone: { name: 'Phone', minLength: 10, maxLength: 10 },\r\n fax: { name: 'Fax', minLength: 10, maxLength: 10 },\r\n email: { name: 'Email', minLength: 5, maxLength: 256 },\r\n addressLine1: { name: 'Address Line 1', minLength: 5, maxLength: 30 },\r\n addressLine2: { name: 'Address Line 2', minLength: 5, maxLength: 50 },\r\n city: { name: 'City', minLength: 5, maxLength: 50 },\r\n state: { name: 'State', minLength: 5, maxLength: 50 },\r\n country: { name: 'Country', minLength: 5, maxLength: 50 },\r\n postalCode: { name: 'Postal (Zip) Code', minLength: 5, maxLength: 10 },\r\n },\r\n find: {\r\n customerName: { name: 'Name', maxLength: 50, minLength: 5 },\r\n providerName: { name: 'Provider Name', maxLength: 50, minLength: 5 },\r\n userName: { name: 'Username', maxLength: 50, minLength: 5 },\r\n email: { name: 'Email', maxLength: 256 },\r\n status: { name: 'Status' },\r\n }\r\n };\r\n static patient = {\r\n add: {\r\n firstName: { name: 'First Name', minLength: 5, maxLength: 50 },\r\n middleName: { name: 'Middle Name', minLength: 5, maxLength: 50 },\r\n doctorId: { name: 'Provider', maxLength: 50, minLength: 8 },\r\n serviceDate: { name: 'Service Date' },\r\n lastName: { name: 'Last Name', minLength: 5, maxLength: 50 },\r\n phone: { name: 'Phone', minLength: 10, maxLength: 10 },\r\n email: { name: 'Email', minLength: 5, maxLength: 256 },\r\n addressLine1: { name: 'Address Line 1', minLength: 5, maxLength: 30 },\r\n addressLine2: { name: 'Address Line 2', minLength: 5, maxLength: 50 },\r\n city: { name: 'City', minLength: 5, maxLength: 50 },\r\n state: { name: 'State', minLength: 5, maxLength: 50 },\r\n country: { name: 'Country', minLength: 5, maxLength: 50 },\r\n postalCode: { name: 'Postal (Zip) Code', minLength: 5, maxLength: 10 },\r\n mrn: { name: 'MRN', maxLength: 50, minLength: 5 },\r\n ssn: { name: 'SSN', maxLength: 9, minLength: 9 },\r\n dob: { name: 'DOB' },\r\n hasInsurance: { name: 'HasInsurance' },\r\n checkEligibility: { name: 'Eligibility check' },\r\n policyNo: { name: 'Policy No', maxLength: 50, minLength: 5 },\r\n groupNo: { name: 'Group No', maxLength: 50, minLength: 5 },\r\n binNo: { name: 'Bin No', maxLength: 50, minLength: 5 },\r\n insurancePartner: { name: 'Insurance Payer' },\r\n relation: { name: 'Relationship' },\r\n\r\n },\r\n find: {\r\n patientName: { name: 'Patient Name', maxLength: 50, minLength: 5 },\r\n email: { name: 'Email', maxLength: 256 },\r\n mrn: { name: 'MRN', maxLength: 50, minLength: 5 },\r\n phone: { name: 'Phone number', maxLength: 10, minLength: 10 },\r\n },\r\n note: {\r\n title: { name: 'Title', minLength: 5, maxLength: 20 },\r\n description: { name: 'Description', minLength: 10, maxLength: 100 },\r\n },\r\n header: {\r\n providerName: { name: 'Provider Name' }\r\n },\r\n checkInOut: {\r\n date: { name: 'Date' },\r\n time: { name: 'Time' },\r\n Meridian: { name: 'Meridian' },\r\n doctorId: { name: 'Provider', maxLength: 50, minLength: 8 },\r\n }\r\n };\r\n static patientAccount = {\r\n add: {\r\n practiceLocation: { name: 'Practice Location', minLength: 5, maxLength: 50 },\r\n paymentType: { name: 'Payment Type', minLength: 5, maxLength: 50 },\r\n cardHolderName: { name: 'Card Holder Name', minLength: 5, maxLength: 50 },\r\n cardNumber: { name: 'Card Number', minLength: 5, maxLength: 19 },\r\n cardType: { name: 'Card Type', minLength: 5, maxLength: 50 },\r\n cardExpiry: { name: 'Card Expiry', minLength: 4, maxLength: 4 },\r\n nameOnAccount: { name: 'Account Name', minLength: 5, maxLength: 50 },\r\n accountType: { name: 'Account Type', minLength: 5, maxLength: 50 },\r\n accountNo: { name: 'Account No', minLength: 5, maxLength: 50 },\r\n routingNumber: { name: 'Routing Number', minLength: 9, maxLength: 9 },\r\n bankName: { name: 'Bank Name', minLength: 5, maxLength: 50 },\r\n addressLine1: { name: 'Address Line 1', minLength: 5, maxLength: 30 },\r\n addressLine2: { name: 'Address Line 2', minLength: 5, maxLength: 50 },\r\n city: { name: 'City', minLength: 5, maxLength: 50 },\r\n state: { name: 'State', minLength: 5, maxLength: 50 },\r\n country: { name: 'Country', minLength: 5, maxLength: 50 },\r\n postalCode: { name: 'Postal (Zip) Code', minLength: 5, maxLength: 10 },\r\n },\r\n edit: {}\r\n };\r\n\r\n static billingConfig = {\r\n ratePlan: { name: 'Rate Plan' },\r\n paymentType: { name: 'Mode of Payment' },\r\n cardNumber: { name: 'Card Number', minLength: 5, maxLength: 19 },\r\n cardType: { name: 'Card Type', minLength: 5, maxLength: 50 },\r\n cardExpiry: { name: 'Card Expiry', minLength: 4, maxLength: 4 },\r\n frequency: { name: 'Billing Execution' },\r\n frequencyParam: { name: 'Billing Execution' },\r\n nextBillingDate: { name: 'Next Transaction Date' },\r\n BillingStartDateDate: { name: 'Next Transaction Date' },\r\n bankName: { name: 'Bank Name', minLength: 5, maxLength: 50 },\r\n accountType: { name: 'Account Type', minLength: 5, maxLength: 50 },\r\n routingNumber: { name: 'Routing Number', minLength: 5, maxLength: 50 },\r\n accountNo: { name: 'Account No', minLength: 5, maxLength: 50 },\r\n };\r\n\r\n static ratePlan = {\r\n add: {\r\n ratePlanName: { name: 'Rate Plan Name', minLength: 5, maxLength: 50 },\r\n description: { name: 'Description', minLength: 5, maxLength: 50 }\r\n }\r\n };\r\n\r\n static product = {\r\n find: {\r\n productName: { name: 'Product Name' },\r\n cptCode: { name: 'Cpt Code' },\r\n unitPrice: { name: 'Unit Price', minLength: 2, maxLength: 10 },\r\n description: { name: 'Description' },\r\n sorting: { name: 'Sorting' },\r\n amount: { name: 'Amount', maxLength: 19, minLength: 19 },\r\n startDate: { name: 'Start Date' },\r\n endDate: { name: 'End Date' }\r\n },\r\n add: {\r\n ProductType: { name: 'Type', },\r\n ServiceType: { name: 'Service Type', },\r\n CodeName: { name: 'Code Name', },\r\n Icd10Code: { name: 'ICD10 Code', },\r\n taxPercent: { name: 'Tax Percent', minLength: 1, maxLength: 5 },\r\n quantity: { name: 'Quantity', minLength: 1, maxLength: 3 },\r\n CptCode: { name: 'Cpt Code' },\r\n unitPrice: { name: 'Unit Price', minLength: 2, maxLength: 10 },\r\n description: { name: 'Description', maxLength: 200 },\r\n discount: { name: 'Discount' },\r\n discountAmount: { name: 'Discount Amount' },\r\n productName: { name: 'Product Name', maxLength: 50 },\r\n productAlias: { name: 'Product Alias', maxLength: 50 },\r\n sorting: { name: 'Sorting' },\r\n partner: { name: 'Partner' },\r\n activeUntil: { name: 'Expiry Date' },\r\n }\r\n };\r\n\r\n static invoice = {\r\n find: {\r\n patientName: { name: 'Patient Name' },\r\n toEmail: { name: 'To', minLength: 5, maxLength: 50 },\r\n ccEmail: { name: 'CC', minLength: 5, maxLength: 50 },\r\n invoiceName: { name: 'Invoice Name', minLength: 5, maxLength: 50 },\r\n amount: { name: 'Amount', minLength: 1, maxLength: 12 },\r\n status: { name: 'Status', minLength: 5, maxLength: 50 },\r\n paymentStatus: { name: 'Payment Status', minLength: 5, maxLength: 50 },\r\n startDate: { name: 'Start Date' },\r\n endDate: { name: 'End Date' },\r\n },\r\n add: {\r\n patientName: { name: 'Patient Name' },\r\n toEmail: { name: 'To', minLength: 5, maxLength: 50 },\r\n ccEmail: { name: 'CC', minLength: 5, maxLength: 50 },\r\n phone: { name: 'Phone', maxLength: 10, minLength: 10 },\r\n product_ServiceName: { name: 'Product/Service Name' },\r\n subTotal: { name: 'Sub Total', minLength: 1, maxLength: 12 },\r\n discountType: { name: 'Discount Type' },\r\n discountPercentage: { name: 'Discount Value', minLength: 1, maxLength: 5 },\r\n discountAmount: { name: 'Discount Amount', minLength: 1, maxLength: 12 },\r\n taxPercentage: { name: 'Tax Percentage', minLength: 1, maxLength: 5 },\r\n taxAmount: { name: 'Tax Amount', minLength: 1, maxLength: 12 },\r\n totalAmount: { name: 'Total Amount', minLength: 1, maxLength: 12 },\r\n invoiceName: { name: 'Invoice Name', minLength: 5, maxLength: 50 },\r\n note: { name: 'Note', minLength: 5, maxLength: 50 },\r\n invoiceDate: { name: 'Invoice Date' },\r\n dueDate: { name: 'Due Date' },\r\n visitDate: { name: 'Visit Date' },\r\n serviceDate: { name: 'Service Date' },\r\n frequency: { name: 'Frequency' },\r\n frequencyParam: { name: 'Frequency Param' },\r\n startDate: { name: 'Start Date' },\r\n patientInsuranceId: { name: 'Patient Insurance', maxLength: 50, minLength: 5 },\r\n endDate: { name: 'End Date' },\r\n dueInDays: { name: 'Due in Days', minLength: 1, maxLength: 5 },\r\n invoiceNo: { name: 'Reference No', minLength: 1, maxLength: 5 },\r\n poNo: { name: 'PO No', minLength: 1, maxLength: 11 },\r\n doctorId: { name: 'Provider Name', minLength: 1, maxLength: 11 },\r\n autoInvoiceDate: { name: 'On Email Delivery', minLength: 1, maxLength: 5 },\r\n autoGenerateInvoiceNo: { name: 'Auto Generate', minLength: 1, maxLength: 5 },\r\n noOfTimes: { name: 'No of Times' },\r\n isActiveDoctor: { name: 'Provider' }\r\n }\r\n };\r\n\r\n static order = {\r\n add: {\r\n partner: { name: 'Partner', minLength: 5, maxLength: 50 },\r\n product_ServiceName: { name: 'Product/Service Name', minLength: 5, maxLength: 50 },\r\n quantity: { name: 'Quantity', minLength: 1, maxLength: 3 },\r\n subTotal: { name: 'SubTotal', minLength: 1, maxLength: 12 },\r\n discountPercentage: { name: 'Discount Value', minLength: 1, maxLength: 5 },\r\n discountAmount: { name: 'Discount Amount', minLength: 1, maxLength: 12 },\r\n state: { name: 'State', minLength: 5, maxLength: 50 },\r\n taxPercent: { name: 'Tax Percent', minLength: 1, maxLength: 5 },\r\n taxAmount: { name: 'Tax Amount', minLength: 1, maxLength: 12 },\r\n totalAmount: { name: 'Total Amount', minLength: 1, maxLength: 12 },\r\n frequency: { name: 'First Transaction', minLength: 1, maxLength: 12 },\r\n frequencyParam: { name: 'Subsequent transactions', minLength: 1, maxLength: 12 },\r\n firstTransactionDate: { name: 'First Transaction Date', minLength: 1, maxLength: 12 },\r\n customerName: { name: 'Customer Name', minLength: 1, maxLength: 50 },\r\n toEmail: { name: 'Customer Email', minLength: 5, maxLength: 256 },\r\n ccEmail: { name: 'Email', minLength: 5, maxLength: 256 },\r\n phone: { name: 'Phone', minLength: 10, maxLength: 10 },\r\n invoiceDateOnEmailDelivery: { name: 'Invoice Date on Email Delivery', minLength: 5, maxLength: 50 },\r\n invoiceDate: { name: 'Invoice Date', minLength: 5, maxLength: 50 },\r\n dueInDays: { name: 'Due in Days', minLength: 5, maxLength: 50 },\r\n dueDate: { name: 'Due Date', minLength: 5, maxLength: 50 },\r\n autoGenerateInvoiceNo: { name: 'Auto Generate Reference No', minLength: 5, maxLength: 50 },\r\n invoiceNo: { name: 'Reference No', minLength: 5, maxLength: 50 },\r\n poNo: { name: 'PO No', minLength: 5, maxLength: 11 },\r\n invoiceFormat: { name: 'Invoice Format', minLength: 5, maxLength: 50 },\r\n note: { name: 'Note', minLength: 5, maxLength: 50 },\r\n },\r\n find: {\r\n startDate: { name: 'Start Date' },\r\n endDate: { name: 'End Date' },\r\n partnerName: { name: 'Partner Name', minLength: 5, maxLength: 50 },\r\n amount: { name: 'Amount', minLength: 1, maxLength: 12 }\r\n }\r\n };\r\n\r\n static appointment = {\r\n find: {\r\n name: { name: 'Patient Name', maxLength: 50, minLength: 8 },\r\n mrn: { name: 'MRN', maxLength: 50, minLength: 8 },\r\n email: { name: 'Email', maxLength: 50, minLength: 8 },\r\n doctor: { name: 'Provider Name', maxLength: 50, minLength: 8 },\r\n },\r\n add: {\r\n patient: { name: 'Name', maxLength: 50, minLength: 8 },\r\n doctor: { name: 'Name', maxLength: 50, minLength: 8 },\r\n repeatOn: { name: 'Repeat On' },\r\n phone: { name: 'Phone', maxLength: 10, minLength: 10 },\r\n email: { name: 'Email', maxLength: 256, minLength: 5 },\r\n startTime: { name: 'Start Time' },\r\n endTime: { name: 'End Time' },\r\n startDate: { name: 'Start Date' },\r\n duration: { name: 'Duration' },\r\n memo: { name: 'memo', maxLength: 200 },\r\n appointmentCount: { name: \"No of Appointment\" },\r\n patientInsuranceId: { name: 'Patient Insurance', maxLength: 50, minLength: 5 },\r\n isActiveDoctor: { name: 'Provider' },\r\n }\r\n };\r\n static emailSettings = {\r\n add: {\r\n phone: { name: 'Phone', minLength: 10, maxLength: 10 },\r\n fromEmail: { name: 'From Email', minLength: 5, maxLength: 256 },\r\n contactEmail: { name: 'Contact Email', minLength: 5, maxLength: 256 },\r\n footer: { name: 'Footer', maxLength: 100, minLength: 5 },\r\n }\r\n };\r\n\r\n static insurance = {\r\n find: {\r\n insuranceName: { name: 'Insurance Name', maxLength: 50, minLength: 5 },\r\n email: { name: 'Email', maxLength: 256 },\r\n phone: { name: 'Phone number', maxLength: 10, minLength: 10 },\r\n },\r\n add: {\r\n insuranceName: { name: 'Insurance Name', minLength: 5, maxLength: 50 },\r\n phone: { name: 'Phone', minLength: 10, maxLength: 10 },\r\n email: { name: 'Email', minLength: 5, maxLength: 256 },\r\n addressLine1: { name: 'Address Line 1', minLength: 5, maxLength: 30 },\r\n addressLine2: { name: 'Address Line 2', minLength: 5, maxLength: 50 },\r\n city: { name: 'City', minLength: 5, maxLength: 50 },\r\n state: { name: 'State', minLength: 5, maxLength: 50 },\r\n country: { name: 'Country', minLength: 5, maxLength: 50 },\r\n postalCode: { name: 'Postal (Zip) Code', minLength: 5, maxLength: 10 },\r\n }\r\n };\r\n\r\n static doctor = {\r\n find: {\r\n doctorName: { name: 'Provider Name', maxLength: 50, minLength: 5 },\r\n email: { name: 'Email', maxLength: 256 },\r\n phone: { name: 'Phone number', maxLength: 10, minLength: 10 },\r\n },\r\n add: {\r\n doctorTypeCode: { name: 'Provider Type Code' },\r\n doctorTypeTitle: { name: 'Provider Type Title' },\r\n NpiNumber: { name: 'NPI Number', minLength: 10, maxLength: 10 },\r\n firstName: { name: 'First Name', minLength: 5, maxLength: 50 },\r\n lastName: { name: 'Last Name', minLength: 5, maxLength: 50 },\r\n userName: { name: 'Username', minLength: 5, maxLength: 50 },\r\n phone: { name: 'Phone', minLength: 10, maxLength: 10 },\r\n email: { name: 'Email', minLength: 5, maxLength: 256 },\r\n url: { name: 'URL', minLength: 5, maxLength: 256 },\r\n addressLine1: { name: 'Address Line 1', maxLength: 30, minLength: 5 },\r\n addressLine2: { name: 'Address Line 2', maxLength: 50, minLength: 5 },\r\n city: { name: 'City', maxLength: 50, minLength: 5 },\r\n state: { name: 'State', maxLength: 50 },\r\n country: { name: 'Country', maxLength: 50 },\r\n postalCode: { name: 'Postal (Zip) Code', maxLength: 10, minLength: 5 },\r\n start: { name: 'Start' },\r\n end: { name: 'End' },\r\n weekDay: { name: 'WeekDay' },\r\n isAvailable: { name: 'Avalability' },\r\n }\r\n };\r\n\r\n\r\n static claims = {\r\n add: {\r\n patientId: { name: 'Patient Name', maxLength: 50, minLength: 5 },\r\n patientInsuranceId: { name: 'Patient Insurance', maxLength: 50, minLength: 5 },\r\n noOfTimes: { name: 'No of Times' },\r\n frequency: { name: 'Frequency' },\r\n startDate: { name: 'Start Date' },\r\n serviceDate: { name: 'Service Date' },\r\n doctorId: { name: 'Provider Name', minLength: 1, maxLength: 11 },\r\n isActiveDoctor: { name: 'Provider' },\r\n },\r\n find: {\r\n patientName: { name: 'Patient Name', maxLength: 50, minLength: 5 },\r\n payerName: { name: 'Payer Name', maxLength: 50, minLength: 5 },\r\n }\r\n };\r\n\r\n static patientInsurance = {\r\n add: {\r\n firstName: { name: 'First Name', minLength: 5, maxLength: 50 },\r\n middleName: { name: 'Middle Name', minLength: 5, maxLength: 50 },\r\n lastName: { name: 'Last Name', minLength: 5, maxLength: 50 },\r\n phone: { name: 'Phone', minLength: 10, maxLength: 10 },\r\n email: { name: 'Email', minLength: 5, maxLength: 256 },\r\n addressLine1: { name: 'Address Line 1', minLength: 5, maxLength: 30 },\r\n addressLine2: { name: 'Address Line 2', minLength: 5, maxLength: 50 },\r\n city: { name: 'City', minLength: 5, maxLength: 50 },\r\n state: { name: 'State', minLength: 5, maxLength: 50 },\r\n country: { name: 'Country', minLength: 5, maxLength: 50 },\r\n postalCode: { name: 'Postal (Zip) Code', minLength: 5, maxLength: 10 },\r\n mrn: { name: 'MRN', maxLength: 50, minLength: 5 },\r\n dob: { name: 'DOB' },\r\n hasInsurance: { name: 'HasInsurance' },\r\n checkEligibility: { name: 'Eligibility check' },\r\n policyNo: { name: 'Policy No', maxLength: 50, minLength: 5 },\r\n groupNo: { name: 'Group No', maxLength: 50, minLength: 5 },\r\n binNo: { name: 'Bin No', maxLength: 50, minLength: 5 },\r\n insurancePartner: { name: 'Insurance Payer' },\r\n relation: { name: 'Relationship' },\r\n }\r\n };\r\n\r\n static scheduleTransactionOperation = {\r\n update: {\r\n reason: { name: 'Reason', maxLength: 50, minLength: 5 },\r\n scheduleDate: { name: 'Schedule Date', maxLength: 50, minLength: 5 },\r\n patientAccountId: { name: 'Patient Account', maxLength: 50, minLength: 5 },\r\n }\r\n };\r\n\r\n static attachment = {\r\n add: {\r\n file: { name: 'File', maxLength: 50, minLength: 5 },\r\n description: { name: 'Description', maxLength: 255, minLength: 5 },\r\n providerId: { name: 'Provider Id', maxLength: 255, minLength: 1 }\r\n }\r\n };\r\n\r\n static role = {\r\n find: {\r\n roleName: { name: 'Role Name', maxLength: 50, minLength: 5 },\r\n },\r\n add: {\r\n roleName: { name: 'Role Name', minLength: 5, maxLength: 50 },\r\n description: { name: 'Description', minLength: 5, maxLength: 255 },\r\n checkArray: { name: 'Feature', minLength: 5, maxLength: 255 },\r\n userType: { name: 'User Type' },\r\n }\r\n };\r\n}\r\n","import { NgForm, FormGroup, AbstractControl, FormControl, FormArray } from '@angular/forms';\r\nimport { Messages } from './messages.constant';\r\n\r\ninterface Config {\r\n [key: string]: {\r\n [key: string]: { [key: string]: string }\r\n };\r\n}\r\n\r\nexport class Validator {\r\n config: Config;\r\n formErrors: {};\r\n\r\n constructor(config: Config) {\r\n this.config = config;\r\n }\r\n\r\n validateAllFormFields(formGroup: FormGroup) {\r\n Object.keys(formGroup.controls).forEach(field => {\r\n const control = formGroup.get(field);\r\n if (control instanceof FormControl) {\r\n control.markAsTouched({ onlySelf: true });\r\n control.markAsDirty({ onlySelf: true });\r\n }\r\n else if (control instanceof FormArray) {\r\n Object.keys(control.controls).forEach(f => {\r\n const control2 = formGroup.get(f);\r\n if (control2 instanceof FormControl) {\r\n control2.markAsTouched({ onlySelf: true });\r\n control2.markAsDirty({ onlySelf: true });\r\n } else if (control2 instanceof FormGroup) {\r\n this.validateAllFormFields(control2);\r\n }\r\n });\r\n }\r\n else if (control instanceof FormGroup) {\r\n this.validateAllFormFields(control);\r\n }\r\n });\r\n }\r\n\r\n validate(ngForm: NgForm | FormGroup) {\r\n this.formErrors = {};\r\n // Validate multilevel form's validation (Used recursive)\r\n this.findChildrenAndValidate(ngForm, '');\r\n return this.formErrors;\r\n }\r\n\r\n private findChildrenAndValidate(obj, fieldName) {\r\n if (typeof obj.controls !== 'undefined') {\r\n const newObj = Object.keys(obj.controls);\r\n for (const i in newObj) {\r\n if (i) {\r\n this.findChildrenAndValidate(obj.controls[newObj[i]], newObj[i]);\r\n }\r\n }\r\n } else {\r\n if (obj && obj.dirty && !obj.valid && obj.errors !== null) {\r\n Object.keys(obj.errors).forEach((ek) => {\r\n this.formErrors[fieldName] = this.replacedToArgs(Messages[ek], this.config[fieldName][ek]) + ' ';\r\n });\r\n }\r\n }\r\n }\r\n\r\n private replacedToArgs(message: string, args: { [key: string]: string }) {\r\n if (args !== undefined) {\r\n Object.keys(args).forEach((arg) => {\r\n message = message.replace(new RegExp(`{${arg}}`, 'g'), args[arg]);\r\n });\r\n return message;\r\n }\r\n return message;\r\n }\r\n\r\n emailValidator(email: string): boolean {\r\n const EMAIL_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,}))$/;\r\n\r\n if (!EMAIL_REGEXP.test(email)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n mobileValidator(mobile: string): boolean {\r\n const PHONE_REGEXP = /^[(]{0,1}[0-9]{3}[)\\.\\- ]{0,1}[0-9]{3}[\\.\\- ]{0,1}[0-9]{4}$/;\r\n if (!PHONE_REGEXP.test(mobile)) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n getVerifyMessage(err) {\r\n if (err) {\r\n err = err.replace('400 - Bad Request ', '');\r\n err = err.replace('\"', '');\r\n err = err.replace('\"', '');\r\n return err;\r\n } else {\r\n return 'Server is down Please contact to administrator.';\r\n }\r\n }\r\n\r\n getAge(birth) {\r\n const today = new Date();\r\n const nowyear = today.getFullYear();\r\n const nowmonth = today.getMonth() + 1;\r\n const nowday = today.getDate();\r\n const birthyear = birth.split('/')[2];\r\n const birthmonth = birth.split('/')[1];\r\n const birthday = birth.split('/')[0];\r\n let age = nowyear - birthyear;\r\n const age_month = nowmonth - birthmonth;\r\n const age_day = nowday - birthday;\r\n if (age_month < 0 || (age_month == 0 && age_day < 0)) {\r\n age = (age - 1);\r\n }\r\n return age;\r\n }\r\n\r\n checkemptyArray(obj) {\r\n if (obj && obj.length > 0) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n postalFilter(postalCode) {\r\n if (!postalCode) {\r\n return null;\r\n }\r\n\r\n postalCode = postalCode.toString().trim();\r\n\r\n const us = new RegExp('^\\\\d{5}(-{0,1}\\\\d{4})?$');\r\n const ca = new RegExp(/([ABCEGHJKLMNPRSTVXY]\\d)([ABCEGHJKLMNPRSTVWXYZ]\\d){2}/i);\r\n\r\n if (us.test(postalCode.toString())) {\r\n return postalCode;\r\n }\r\n\r\n if (ca.test(postalCode.toString().replace(/\\W+/g, ''))) {\r\n return postalCode;\r\n }\r\n return null;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HeaderComponent } from '../module/layouts/header/header.component';\r\nimport { FooterComponent } from '../module/layouts/footer/footer.component';\r\nimport { ConfirmModalComponent } from '../common/modal/modal.component';\r\nimport { NgxMaskModule } from 'ngx-mask';\r\nimport { TranslateModule, TranslateLoader } from '@ngx-translate/core';\r\nimport { HttpClient, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';\r\nimport { TranslateHttpLoader } from '@ngx-translate/http-loader';\r\nimport { TokenInterceptor } from '../services/api/token-interceptor';\r\nimport { RouterModule } from '@angular/router';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { SuiModule } from 'ng2-semantic-ui';\r\nimport { SideNavComponent } from '../module/layouts/side-nav/side-nav.component';\r\nimport { ToasterComponent } from '../module/shared/toaster/toaster.component';\r\nimport { UploadLogoComponent } from '../module/shared/upload-logo/upload-logo.component';\r\nimport { SkinComponent } from '../module/shared/skin/skin.component';\r\nimport { ChangePasswordComponent } from '../module/shared/change-password/change-password.component';\r\nimport { NgxDropzoneModule } from '../../../node_modules/ngx-dropzone';\r\nimport { NguCarouselModule } from '@ngu/carousel';\r\nimport { ColorPickerModule } from 'ngx-color-picker'; // https://www.npmjs.com/package/ngx-color-picker\r\nimport { CustomFormatCurrencyPipe } from '../services/pipe/customFormatCurrency.pipe';\r\nimport { ConfirmModal3Component } from '../common/modal3/modal3.component';\r\nimport { EmailSettingsComponent } from '../module/shared/email-settings/email-settings.component';\r\nimport { ConfirmModalOptInOutSmsComponent } from '../common/modal-opt-in-out-sms/modal-opt-in-out-sms.component';\r\nimport { AdditionalSettingsComponent } from '../module/shared/additional-settings/additional-settings.component';\r\nimport { CustomProductTagsComponent } from '../module/shared/custom-product-tags/custom-product-tags.component';\r\n\r\nimport { AutoCompleteDirective } from '../../app/common/directive/auto-complete.directive';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\nimport { DecimalPipe, CurrencyPipe, DatePipe } from '@angular/common';\r\nimport { UsdCurrencyDirective } from '../common/directive/usd-currency.directive';\r\nimport { ConfirmModal4Component } from '../common/modal4/modal4.component';\r\nimport { CustomFormatPercentagePipe } from '../services/pipe/customFormatPercetage.pipe';\r\nimport { ConfirmPmtAptModalComponent } from '../common/modal-confirm-pmt-appt/modal-confirm-pmt-appt.component';\r\nimport { ConfirmOnePmtAptModalComponent } from '../common/modal-confirm-one-pmt-appt/modal-confirm-one-pmt-appt.component';\r\nimport { ConfirmInvoicePaymentModelComponent } from '../common/modal-confirm-invoice-payment/modal-confirm-invoice-payment.component';\r\nimport { ConfirmApptModalComponent } from '../common/modal-confirm-appt/modal-confirm-one-pmt-appt.component';\r\nimport { ConfirmInvalidAcccessComponent } from '../common/modal-invalid-access/modal-invalid-access.component';\r\nimport { DashMaskPipe } from '../services/pipe/dash-mask.pipe';\r\nimport { ShortUrlPipe } from '../services/pipe/short-url.pipe';\r\nimport { ConfirmModalReasonComponent } from '../common/modal-reason/modal-reason.component';\r\nimport { NotificationSettingsComponent } from '../module/shared/notification-settings/notification-settings.component';\r\nimport { TimePipe } from '../services/pipe/time.pipe';\r\nimport { AttachmentCardComponent } from '../module/shared/attachment-card/attachment-card.component';\r\nimport { UploadAttachmentComponent } from '../module/shared/upload-attachment/upload-attachment.component';\r\nimport { LinkAttachmentToProviderComponent } from '../module/shared/link-attachment-to-provider/link-attachment-to-provider.component';\r\nimport { MinToDayPipe } from '../services/pipe/minToDay.pipe';\r\nimport { PaginationComponent } from '../module/shared/pagination/pagination.component';\r\nimport { PrefixSuffixPipe } from '../services/pipe/prefixSuffix.pipe';\r\n\r\nimport { NgxCurrencyModule, CurrencyMaskInputMode } from 'ngx-currency';\r\nimport { AskPaymentModelComponent } from '../common/modal-ask-payment/modal-ask-payment.component';\r\n\r\n// AoT requires an exported function for factories\r\nexport function HttpLoaderFactory(http: HttpClient) {\r\n return new TranslateHttpLoader(http);\r\n}\r\n\r\nexport const customCurrencyMaskConfig = {\r\n align: 'left',\r\n allowNegative: false,\r\n allowZero: true,\r\n decimal: '.',\r\n precision: 2,\r\n prefix: '$',\r\n suffix: '',\r\n thousands: ',',\r\n nullable: true,\r\n min: null,\r\n max: null,\r\n inputMode: CurrencyMaskInputMode.FINANCIAL,\r\n};\r\n\r\n@NgModule({\r\n declarations: [\r\n CustomFormatCurrencyPipe,\r\n CustomFormatPercentagePipe,\r\n HeaderComponent,\r\n FooterComponent,\r\n ConfirmModalComponent,\r\n SideNavComponent,\r\n ToasterComponent,\r\n ConfirmModal3Component,\r\n ConfirmModal4Component,\r\n ConfirmPmtAptModalComponent,\r\n ConfirmInvoicePaymentModelComponent,\r\n ConfirmApptModalComponent,\r\n ConfirmOnePmtAptModalComponent,\r\n ConfirmModalOptInOutSmsComponent,\r\n ConfirmInvalidAcccessComponent,\r\n UploadLogoComponent,\r\n SkinComponent,\r\n EmailSettingsComponent,\r\n ChangePasswordComponent,\r\n AdditionalSettingsComponent,\r\n NotificationSettingsComponent,\r\n CustomProductTagsComponent,\r\n AutoCompleteDirective,\r\n DashMaskPipe,\r\n ShortUrlPipe,\r\n TimePipe,\r\n UsdCurrencyDirective,\r\n ConfirmModalReasonComponent,\r\n AttachmentCardComponent,\r\n UploadAttachmentComponent,\r\n LinkAttachmentToProviderComponent,\r\n MinToDayPipe,\r\n PaginationComponent,\r\n PrefixSuffixPipe,\r\n AskPaymentModelComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SuiModule,\r\n OverlayModule,\r\n TranslateModule,\r\n NgxDropzoneModule,\r\n NguCarouselModule,\r\n ColorPickerModule,\r\n NgxMaskModule.forRoot(),\r\n TranslateModule.forChild({\r\n loader: {\r\n provide: TranslateLoader,\r\n useFactory: HttpLoaderFactory,\r\n deps: [HttpClient]\r\n }\r\n }),\r\n NgxCurrencyModule.forRoot(customCurrencyMaskConfig),\r\n ],\r\n exports: [\r\n CommonModule,\r\n HeaderComponent,\r\n FooterComponent,\r\n TranslateModule,\r\n HttpClientModule,\r\n RouterModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n SuiModule,\r\n SideNavComponent,\r\n ToasterComponent,\r\n ConfirmModalComponent,\r\n ConfirmModal3Component,\r\n ConfirmModal4Component,\r\n ConfirmPmtAptModalComponent,\r\n ConfirmInvoicePaymentModelComponent,\r\n ConfirmApptModalComponent,\r\n ConfirmOnePmtAptModalComponent,\r\n ConfirmModalOptInOutSmsComponent,\r\n ConfirmInvalidAcccessComponent,\r\n UploadLogoComponent,\r\n SkinComponent,\r\n EmailSettingsComponent,\r\n ChangePasswordComponent,\r\n AdditionalSettingsComponent,\r\n NotificationSettingsComponent,\r\n CustomFormatCurrencyPipe,\r\n CustomFormatPercentagePipe,\r\n DashMaskPipe,\r\n ShortUrlPipe,\r\n TimePipe,\r\n CustomProductTagsComponent,\r\n AutoCompleteDirective,\r\n UsdCurrencyDirective,\r\n ConfirmModalReasonComponent,\r\n AttachmentCardComponent,\r\n UploadAttachmentComponent,\r\n LinkAttachmentToProviderComponent,\r\n MinToDayPipe,\r\n PaginationComponent,\r\n PrefixSuffixPipe,\r\n NgxCurrencyModule,\r\n AskPaymentModelComponent\r\n ],\r\n providers: [\r\n DecimalPipe, CurrencyPipe, DatePipe,\r\n { provide: HTTP_INTERCEPTORS, useClass: TokenInterceptor, multi: true }\r\n ],\r\n entryComponents: [\r\n ConfirmModalComponent,\r\n ConfirmModal3Component,\r\n ConfirmModal4Component,\r\n ConfirmModalOptInOutSmsComponent,\r\n ConfirmPmtAptModalComponent,\r\n ConfirmInvoicePaymentModelComponent,\r\n ConfirmApptModalComponent,\r\n ConfirmOnePmtAptModalComponent,\r\n ConfirmInvalidAcccessComponent,\r\n ConfirmModalReasonComponent,\r\n PaginationComponent,\r\n AskPaymentModelComponent\r\n ],\r\n})\r\nexport class SharedModule { }\r\n","// This file can be replaced during build by using the `fileReplacements` array.\r\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\r\n// The list of file replacements can be found in `angular.json`.\r\n\r\nexport const environment = {\r\n production: false,\r\n //sessionTimeOutSec: 15 * 60,\r\n //sessionWarningSec: 14 * 60\r\n};\r\n\r\n/*\r\n * For easier debugging in development mode, you can import the following file\r\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\r\n *\r\n * This import should be commented out in production mode because it will have a negative impact\r\n * on performance if an error is thrown.\r\n */\r\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\r\n","import { enableProdMode } from '@angular/core';\r\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\n\r\nimport { AppModule } from './app/app.module';\r\nimport { environment } from './environments/environment';\r\nimport 'hammerjs'; // ngu-carousel require hammerjs\r\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\nif(window.location.host.includes(\"login.uat\")){\r\n document.title = 'HPT-UATPatient';\r\n}\r\nif(window.location.host.includes(\"admin.uat\")){\r\n document.title = 'HPT-UATProvider';\r\n}\r\nif(window.location.host.includes(\"admin.hellopatients\")||window.location.host.includes(\"login.hellopatients\")){\r\n document.title = 'Hello Patients';\r\n}\r\n// if(window.location.host.includes(\"admindev.\")||window.location.host.includes(\"logindev.\")||window.location.host.includes(\"localhost:\")){\r\n// document.title = 'HPT-App';\r\n// }\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n\r\nimport 'zone.js/dist/zone';"],"sourceRoot":""}