{"version":3,"sources":["./$_lazy_route_resource lazy namespace object","./src/app/app.component.html","./src/app/components/borrower-portal/borrower-portal-sso.html","./src/app/components/lo-portal/lo-portal.component.html","./src/app/components/modals/consent-pop-up/consent-pop-up.component.html","./src/app/components/modals/hint/hint.component.html","./src/app/components/welcome/welcome.component.html","./src/app/app-routing.module.ts","./src/app/app.component.scss","./src/app/app.component.ts","./src/app/app.module.ts","./src/app/components/borrower-portal/borrower-portal.component.scss","./src/app/components/borrower-portal/borrower-portal.component.ts","./src/app/components/lo-portal/lo-portal.component.scss","./src/app/components/lo-portal/lo-portal.component.ts","./src/app/components/modals/consent-pop-up/consent-pop-up.component.scss","./src/app/components/modals/consent-pop-up/consent-pop-up.component.ts","./src/app/components/modals/hint/hint.component.scss","./src/app/components/modals/hint/hint.component.ts","./src/app/components/welcome/welcome.component.scss","./src/app/components/welcome/welcome.component.ts","./src/app/decode-html-entities.pipe.ts","./src/app/models/authenticationStatusEnum.ts","./src/app/models/enums.ts","./src/app/safe-html.pipe.ts","./src/app/shared/api.service.ts","./src/app/shared/app-config.service.ts","./src/app/shared/appSetting.ts","./src/app/shared/authentication.service.ts","./src/app/shared/interceptors/http.interceptor.ts","./src/app/shared/tcpa-verbiage.service.ts","./src/app/shared/validators.ts","./src/app/user.service.ts","./src/environments/environment.ts","./src/main.ts"],"names":[],"mappings":"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","file":"main-es2015.js","sourcesContent":["function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(function() {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = function() { return []; };\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nmodule.exports = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = \"./$$_lazy_route_resource lazy recursive\";","module.exports = \"\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\\"Company\\r\\n \\r\\n
\\r\\n
{{errorMessage}}
\\r\\n \\r\\n
\\r\\n
\\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
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n Copyright, ©2022, Texoma Community Credit Union - NMLS# 421823 All Rights Reserved 940.851.4000 | realestate@cumortgageapp.com Insured by NCUA | PRIVACY\\r\\n
\\r\\n
\\r\\n
\\r\\n
\"","module.exports = \"\\r\\n
\\r\\n
{{errorMessage}}
\\r\\n
{{getInfoMessage}}
\\r\\n \\r\\n
\\r\\n
\\r\\n Loading...\\r\\n
\\r\\n
\\r\\n
\\r\\n Your Auth Code that needs to be entered during the eSign process is {{authCode}}!\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n

Welcome back!

\\r\\n

Let's activate your account

\\r\\n \\\"home\\\"\\r\\n \\\"home\\\"\\r\\n
\\r\\n
\\r\\n

{{getEventDetail.title}}

\\r\\n

{{getEventDetail.description}}You can now logout

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

Sign-in

\\r\\n

Account Activation

\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Email:\\r\\n

{{username}}

\\r\\n
\\r\\n \\r\\n \\r\\n Security answer is required\\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n Valid password is required\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n

Your password must contain:

\\r\\n
\\r\\n
1 lowercase
\\r\\n
1 special character
\\r\\n
1 uppercase
\\r\\n
8 characters
\\r\\n
1 digit
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n Password does not match\\r\\n \\r\\n \\r\\n Confirm password is required\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n By clicking \\\"Activate & Sign In\\\" you agree to our Terms of Use and our Privacy Policy\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Activate & Sign In\\r\\n \\r\\n \\r\\n \\r\\n Please wait\\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n Email:\\r\\n

{{username}}

\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n Valid password is required\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n \\r\\n \\r\\n Sign in\\r\\n \\r\\n \\r\\n \\r\\n Please wait\\r\\n \\r\\n \\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 = \"
\\r\\n
\\r\\n Loading...\\r\\n
\\r\\n
\\r\\n
{{getInfoMessage}}
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n

Sign in to LO Portal.

\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n
\\r\\n \\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
\\r\\n
\\r\\n\"","module.exports = \"
\\r\\n
\\r\\n

eConsent Disclosure

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

\\r\\n Your Consent To Do Business Electronically\\r\\n

\\r\\n\\r\\n
\\r\\n Please select an option for eConsent\\r\\n
\\r\\n\\r\\n

eConsent Terms

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

Federal and state law require that you be provided various disclosures records, notifications, and documents “Loan Documents” over the course of this specific loan transaction. You have the option of receiving these Loan documents either physically or electronically.  In order to receive, view and/or sign these Loan Documents electronically, you must understand and consent to the following terms and conditions:    The following are the minimum computer software and hardware requirements necessary to access/receive and retain Loan Documents electronically:  Personal computer or other device which is capable of accessing the Internet;  Web browser (Internet 9 or later; current version of Mozilla Firefox, Chrome, Safari);  Adobe Acrobat Reader ® (visit http://get.adobe.com/reader if you need to download the latest version) or other equivalent software, Loan Document(s) will be delivered in Portable Document Format (PDF) so you must have Adobe Acrobat Reader ® or equivalent software;  An active Internet email address; A printer or the ability and space to download and save information to your personal computer or device   Your consent only applies to Loan Document(s) associated with this specific loan transaction and this consent does not apply to any other subsequent loan transaction(s). You may withdraw your consent to receive these Loan Document(s) electronically, at any time, without charge. In the event you wish to withdraw this consent or you need to update your contact information, including your email address, send the information in writing to: 8885 Rio San Diego Dr. #201, San Diego, CA  92108, Attention: Disposition Desk  You have the right to request and obtain a paper version of any electronically-delivered Loan Document(s) without charge, even if you originally consent to receive Loan Document(s) electronically but subsequently withdrew that consent.   By agreeing below, you certify that you understand these requirements, and you consent to the electronic delivery of Loan Documents. By declining, you certify that you are declining electronic delivery of Loan Document(s) and would rather have them delivered in paper form.

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

eConsent Agreement for:

\\r\\n\\r\\n \\r\\n
\\r\\n \\r\\n
{{data.borrower.fullName}}
\\r\\n \\r\\n \\r\\n I agree. I have reviewed and agree to the terms of the eConsent above and consent to the use of electronic records and signatures in connection with my home loan application.\\r\\n \\r\\n \\r\\n \\r\\n I decline. I decline the eConsent terms above and would like to complete my home loan application offline. (A loan officer will contact you).\\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\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 = \"
\\r\\n
\\r\\n

\\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n
\\r\\n\"","module.exports = \"
\\r\\n

Welcome to CV E-Sign Portal!

\\r\\n
\\r\\n\"","import { NgModule } from '@angular/core';\r\nimport { Routes, RouterModule } from '@angular/router';\r\nimport { BorrowerPortalComponent } from './components/borrower-portal/borrower-portal.component';\r\nimport { LoPortalComponent } from './components/lo-portal/lo-portal.component';\r\nimport { WelcomeComponent } from './components/welcome/welcome.component';\r\n\r\n\r\nconst routes: Routes = [\r\n { path: 'borrowerportal', component: BorrowerPortalComponent },\r\n { path: 'borrowerPortal', component: BorrowerPortalComponent },\r\n { path: 'loportal', component: LoPortalComponent },\r\n { path: '', component: WelcomeComponent }\r\n ];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forRoot(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class AppRoutingModule { }\r\n","module.exports = \".imp-company-logo-section {\\n width: 500px;\\n height: 250px;\\n margin: auto;\\n}\\n\\n.imp-company-logo {\\n height: 100%;\\n width: 100%;\\n -o-object-fit: contain;\\n object-fit: contain;\\n}\\n\\n::ng-deep a:not([href]):not([tabindex]) {\\n color: #046492;\\n cursor: pointer;\\n}\\n\\n#cloverTemplate {\\n background-image: url(/assets/img/nebula.jpg);\\n display: flex;\\n flex-direction: column;\\n}\\n\\n#cloverTemplate nav {\\n justify-content: center;\\n background-color: white;\\n height: 100px;\\n position: relative;\\n padding: 10px;\\n}\\n\\n#cloverTemplate nav img {\\n width: 400px;\\n}\\n\\n#cloverTemplate nav .logoutBox {\\n position: absolute;\\n right: 10px;\\n}\\n\\n#cloverTemplate div.outlet-container {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n height: calc(100vh - 100px);\\n width: 100%;\\n}\\n\\n#cloverTemplate div.outlet-container div.outlet {\\n max-width: 820px;\\n width: 100%;\\n border-radius: 5px;\\n padding: 10px;\\n background: white;\\n min-height: 50%;\\n}\\n\\n@media (min-width: 992px) {\\n #cloverTemplate div.outlet-container {\\n padding: 33px 16.667%;\\n }\\n #cloverTemplate div.outlet-container div.outlet {\\n min-width: 66.667%;\\n }\\n}\\n\\n#cloverTemplate #footerContainer {\\n width: 100vw;\\n}\\n\\n#cloverTemplate #footerContainer footer.regular {\\n padding: 20px;\\n}\\n\\n#cloverTemplate footer, #cloverTemplate ::ng-deep footer {\\n background-color: #046492;\\n color: #ffffff;\\n font-family: Montserrat, sans-serif;\\n font-weight: 400;\\n padding: 30px 0;\\n width: 100vw;\\n font-size: 11px;\\n position: absolute;\\n bottom: 0;\\n}\\n\\n#cloverTemplate footer h2, #cloverTemplate footer .h2, #cloverTemplate footer .h2, #cloverTemplate ::ng-deep footer h2, #cloverTemplate ::ng-deep footer .h2, #cloverTemplate ::ng-deep footer .h2 {\\n font-size: 19px;\\n text-transform: uppercase;\\n}\\n\\n#cloverTemplate footer a, #cloverTemplate ::ng-deep footer a {\\n color: white;\\n text-decoration: underline;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvQzpcXEJBLlYuMVxcX3dvcmtcXDcyXFxzL3NyY1xcYXBwXFxhcHAuY29tcG9uZW50LnNjc3MiLCJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLFlBQUE7RUFDQSxhQUFBO0VBQ0EsWUFBQTtBQ0NGOztBREVBO0VBQ0UsWUFBQTtFQUNBLFdBQUE7RUFDQSxzQkFBQTtLQUFBLG1CQUFBO0FDQ0Y7O0FERUE7RUFDRSxjQUFBO0VBQ0EsZUFBQTtBQ0NGOztBREVBO0VBQ0UsNkNBQUE7RUFDQSxhQUFBO0VBQ0Esc0JBQUE7QUNDRjs7QURBRTtFQUNFLHVCQUFBO0VBRUEsdUJBQUE7RUFDQSxhQUFBO0VBQ0Esa0JBQUE7RUFDQSxhQUFBO0FDQ0o7O0FEQ0k7RUFDRSxZQUFBO0FDQ047O0FEQ0k7RUFDRSxrQkFBQTtFQUNBLFdBQUE7QUNDTjs7QURHRTtFQUNFLGFBQUE7RUFDQSxzQkFBQTtFQUNBLG1CQUFBO0VBQ0EsMkJBQUE7RUFDQSxXQUFBO0FDREo7O0FERUk7RUFDRSxnQkFBQTtFQUNBLFdBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxpQkFBQTtFQUNBLGVBQUE7QUNBTjs7QURLRTtFQUNFO0lBQ0UscUJBQUE7RUNISjtFRElJO0lBQ0Usa0JBQUE7RUNGTjtBQUNGOztBRE1FO0VBQ0UsWUFBQTtBQ0pKOztBRE1JO0VBQ0UsYUFBQTtBQ0pOOztBRE9FO0VBQ0UseUJBQUE7RUFDQSxjQUFBO0VBQ0EsbUNBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLGtCQUFBO0VBQ0EsU0FBQTtBQ0xKOztBRE9JO0VBQ0UsZUFBQTtFQUNBLHlCQUFBO0FDTE47O0FEUUk7RUFDRSxZQUFBO0VBQ0EsMEJBQUE7QUNOTiIsImZpbGUiOiJzcmMvYXBwL2FwcC5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5pbXAtY29tcGFueS1sb2dvLXNlY3Rpb24ge1xyXG4gIHdpZHRoOiA1MDBweDtcclxuICBoZWlnaHQ6IDI1MHB4O1xyXG4gIG1hcmdpbjogYXV0bztcclxufVxyXG5cclxuLmltcC1jb21wYW55LWxvZ28ge1xyXG4gIGhlaWdodDogMTAwJTtcclxuICB3aWR0aDogMTAwJTtcclxuICBvYmplY3QtZml0OiBjb250YWluO1xyXG59XHJcblxyXG46Om5nLWRlZXAgYTpub3QoW2hyZWZdKTpub3QoW3RhYmluZGV4XSl7XHJcbiAgY29sb3I6ICMwNDY0OTI7XHJcbiAgY3Vyc29yOiBwb2ludGVyO1xyXG59XHJcblxyXG4jY2xvdmVyVGVtcGxhdGUge1xyXG4gIGJhY2tncm91bmQtaW1hZ2U6IHVybCgvYXNzZXRzL2ltZy9uZWJ1bGEuanBnKTtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgbmF2IHtcclxuICAgIGp1c3RpZnktY29udGVudDogY2VudGVyO1xyXG4gICAgXHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICAgIGhlaWdodDogMTAwcHg7XHJcbiAgICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgICBwYWRkaW5nOiAxMHB4O1xyXG5cclxuICAgIGltZyB7XHJcbiAgICAgIHdpZHRoOiA0MDBweDtcclxuICAgIH1cclxuICAgIC5sb2dvdXRCb3gge1xyXG4gICAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICAgIHJpZ2h0OiAxMHB4O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGl2Lm91dGxldC1jb250YWluZXIge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTAwcHgpO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBkaXYub3V0bGV0IHtcclxuICAgICAgbWF4LXdpZHRoOiA4MjBweDtcclxuICAgICAgd2lkdGg6IDEwMCU7XHJcbiAgICAgIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICAgICAgcGFkZGluZzogMTBweDtcclxuICAgICAgYmFja2dyb3VuZDogd2hpdGU7XHJcbiAgICAgIG1pbi1oZWlnaHQ6IDUwJTtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICBAbWVkaWEgKG1pbi13aWR0aDogOTkycHgpIHtcclxuICAgIGRpdi5vdXRsZXQtY29udGFpbmVyIHtcclxuICAgICAgcGFkZGluZzogMzNweCAxNi42NjclO1xyXG4gICAgICBkaXYub3V0bGV0IHtcclxuICAgICAgICBtaW4td2lkdGg6IDY2LjY2NyU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIFxyXG4gIH1cclxuICAjZm9vdGVyQ29udGFpbmVyIHtcclxuICAgIHdpZHRoOiAxMDB2dztcclxuXHJcbiAgICBmb290ZXIucmVndWxhciB7XHJcbiAgICAgIHBhZGRpbmc6IDIwcHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGZvb3RlciwgOjpuZy1kZWVwIGZvb3RlciB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDQ2NDkyO1xyXG4gICAgY29sb3I6ICNmZmZmZmY7XHJcbiAgICBmb250LWZhbWlseTogTW9udHNlcnJhdCwgc2Fucy1zZXJpZjtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBwYWRkaW5nOiAzMHB4IDA7XHJcbiAgICB3aWR0aDogMTAwdnc7XHJcbiAgICBmb250LXNpemU6IDExcHg7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICBib3R0b206IDA7XHJcblxyXG4gICAgaDIsIC5oMiwgLmgyIHtcclxuICAgICAgZm9udC1zaXplOiAxOXB4O1xyXG4gICAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgfVxyXG5cclxuICAgIGEge1xyXG4gICAgICBjb2xvcjogd2hpdGU7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogdW5kZXJsaW5lO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCIuaW1wLWNvbXBhbnktbG9nby1zZWN0aW9uIHtcbiAgd2lkdGg6IDUwMHB4O1xuICBoZWlnaHQ6IDI1MHB4O1xuICBtYXJnaW46IGF1dG87XG59XG5cbi5pbXAtY29tcGFueS1sb2dvIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuOjpuZy1kZWVwIGE6bm90KFtocmVmXSk6bm90KFt0YWJpbmRleF0pIHtcbiAgY29sb3I6ICMwNDY0OTI7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuI2Nsb3ZlclRlbXBsYXRlIHtcbiAgYmFja2dyb3VuZC1pbWFnZTogdXJsKC9hc3NldHMvaW1nL25lYnVsYS5qcGcpO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xufVxuI2Nsb3ZlclRlbXBsYXRlIG5hdiB7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcbiAgaGVpZ2h0OiAxMDBweDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nOiAxMHB4O1xufVxuI2Nsb3ZlclRlbXBsYXRlIG5hdiBpbWcge1xuICB3aWR0aDogNDAwcHg7XG59XG4jY2xvdmVyVGVtcGxhdGUgbmF2IC5sb2dvdXRCb3gge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiAxMHB4O1xufVxuI2Nsb3ZlclRlbXBsYXRlIGRpdi5vdXRsZXQtY29udGFpbmVyIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgaGVpZ2h0OiBjYWxjKDEwMHZoIC0gMTAwcHgpO1xuICB3aWR0aDogMTAwJTtcbn1cbiNjbG92ZXJUZW1wbGF0ZSBkaXYub3V0bGV0LWNvbnRhaW5lciBkaXYub3V0bGV0IHtcbiAgbWF4LXdpZHRoOiA4MjBweDtcbiAgd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IDVweDtcbiAgcGFkZGluZzogMTBweDtcbiAgYmFja2dyb3VuZDogd2hpdGU7XG4gIG1pbi1oZWlnaHQ6IDUwJTtcbn1cbkBtZWRpYSAobWluLXdpZHRoOiA5OTJweCkge1xuICAjY2xvdmVyVGVtcGxhdGUgZGl2Lm91dGxldC1jb250YWluZXIge1xuICAgIHBhZGRpbmc6IDMzcHggMTYuNjY3JTtcbiAgfVxuICAjY2xvdmVyVGVtcGxhdGUgZGl2Lm91dGxldC1jb250YWluZXIgZGl2Lm91dGxldCB7XG4gICAgbWluLXdpZHRoOiA2Ni42NjclO1xuICB9XG59XG4jY2xvdmVyVGVtcGxhdGUgI2Zvb3RlckNvbnRhaW5lciB7XG4gIHdpZHRoOiAxMDB2dztcbn1cbiNjbG92ZXJUZW1wbGF0ZSAjZm9vdGVyQ29udGFpbmVyIGZvb3Rlci5yZWd1bGFyIHtcbiAgcGFkZGluZzogMjBweDtcbn1cbiNjbG92ZXJUZW1wbGF0ZSBmb290ZXIsICNjbG92ZXJUZW1wbGF0ZSA6Om5nLWRlZXAgZm9vdGVyIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA0NjQ5MjtcbiAgY29sb3I6ICNmZmZmZmY7XG4gIGZvbnQtZmFtaWx5OiBNb250c2VycmF0LCBzYW5zLXNlcmlmO1xuICBmb250LXdlaWdodDogNDAwO1xuICBwYWRkaW5nOiAzMHB4IDA7XG4gIHdpZHRoOiAxMDB2dztcbiAgZm9udC1zaXplOiAxMXB4O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGJvdHRvbTogMDtcbn1cbiNjbG92ZXJUZW1wbGF0ZSBmb290ZXIgaDIsICNjbG92ZXJUZW1wbGF0ZSBmb290ZXIgLmgyLCAjY2xvdmVyVGVtcGxhdGUgZm9vdGVyIC5oMiwgI2Nsb3ZlclRlbXBsYXRlIDo6bmctZGVlcCBmb290ZXIgaDIsICNjbG92ZXJUZW1wbGF0ZSA6Om5nLWRlZXAgZm9vdGVyIC5oMiwgI2Nsb3ZlclRlbXBsYXRlIDo6bmctZGVlcCBmb290ZXIgLmgyIHtcbiAgZm9udC1zaXplOiAxOXB4O1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xufVxuI2Nsb3ZlclRlbXBsYXRlIGZvb3RlciBhLCAjY2xvdmVyVGVtcGxhdGUgOjpuZy1kZWVwIGZvb3RlciBhIHtcbiAgY29sb3I6IHdoaXRlO1xuICB0ZXh0LWRlY29yYXRpb246IHVuZGVybGluZTtcbn0iXX0= */\"","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component, OnInit, ChangeDetectorRef } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Observable } from 'rxjs';\r\nimport { ApiService } from './shared/api.service';\r\nimport { AuthenticationService } from './shared/authentication.service';\r\nimport { UserService } from './user.service';\r\nimport { catchError, map } from 'rxjs/operators';\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 implements OnInit {\r\n errorMessage: string;\r\n invalidSSOConfiguration: string;\r\n withCloverTemplate: boolean;\r\n isUserLoggedIn$ = this.userService.userLoggedIn$;\r\n consumerSiteConfiguration$: Record = {};\r\n customFooterHtml$: Observable;\r\n showFooter = false;\r\n\r\n constructor(private route: ActivatedRoute, private userService: UserService, private apiService: ApiService, \r\n private authService: AuthenticationService, private sanitizer: DomSanitizer, private cdref: ChangeDetectorRef) { }\r\n\r\n ngOnInit(): void {\r\n this.authService.getCompanyLogo();\r\n this.withCloverTemplate = this.shouldUseCloverTemplate();\r\n this.customFooterHtml$ = this.apiService.getConsumerSiteConfiguration().pipe(map((config) => {\r\n config.forEach(configItem => this.consumerSiteConfiguration$[configItem.key] = configItem);\r\n let footer;\r\n if (this.consumerSiteConfiguration$['clover.global.footer.html'] && this.consumerSiteConfiguration$['clover.global.footer.html'].value) {\r\n footer = this.consumerSiteConfiguration$['clover.global.footer.html'].value;\r\n }\r\n \r\n if (this.consumerSiteConfiguration$['Legal.PrivacyPolicy.URL.CS'] && this.consumerSiteConfiguration$['Legal.PrivacyPolicy.URL.CS'].value) {\r\n const privacyUrl = this.consumerSiteConfiguration$['Legal.PrivacyPolicy.URL.CS'].value;\r\n window.localStorage.setItem('privacyUrl', privacyUrl);\r\n \r\n }\r\n \r\n if (this.consumerSiteConfiguration$['Legal.TermsOfUse.URL.CS'] && this.consumerSiteConfiguration$['Legal.TermsOfUse.URL.CS'].value) {\r\n const termsOfUseUrl = this.consumerSiteConfiguration$['Legal.TermsOfUse.URL.CS'].value;\r\n window.localStorage.setItem('termsOfUseUrl', termsOfUseUrl);\r\n }\r\n if (footer) {\r\n return footer;\r\n }\r\n this.showFooter = true;\r\n return null;\r\n })).pipe(catchError((_: HttpErrorResponse, caught) => {\r\n this.showFooter = true;\r\n return caught;\r\n }));\r\n\r\n this.route.queryParams.subscribe(queryParam => {\r\n this.invalidSSOConfiguration = queryParam['invalidSSOConfiguration'];\r\n if (this.invalidSSOConfiguration === \"1\")\r\n {\r\n console.warn(`Invalid SSO Configuration`);\r\n this.errorMessage = `Invalid SSO Configuration`;\r\n }\r\n })\r\n }\r\n\r\n ngAfterContentChecked() {\r\n this.cdref.detectChanges();\r\n }\r\n\r\n get companyLogo() {\r\n return this.sanitizer.bypassSecurityTrustUrl(this.authService.companyLogo);\r\n }\r\n\r\n onLogout(): void {\r\n if (this.authService.checkIfUserIsLoggedIn()) {\r\n this.authService.clearCookie('mml-auth-token');\r\n this.userService.setUserLoggedIn(false);\r\n }\r\n\r\n this.wipeSigningStates()\r\n }\r\n\r\n wipeSigningStates(): void {\r\n const newParams = new URLSearchParams();\r\n const params = new URLSearchParams(window.location.search);\r\n const blacklistedParams = ['documentId', 'signingRoomId', 'event'];\r\n params.forEach((value, key) => {\r\n if (!blacklistedParams.includes(key)) {\r\n newParams.append(key, value);\r\n }\r\n });\r\n\r\n const newUrl = `${window.location.pathname}?${newParams.toString()}`;\r\n window.location.replace(newUrl);\r\n }\r\n\r\n shouldUseCloverTemplate(): boolean {\r\n const cloverPages = [\r\n '/borrowerportal'\r\n ];\r\n return cloverPages.includes(document.location.pathname);\r\n }\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { APP_INITIALIZER, NgModule } from '@angular/core';\r\n\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { AppComponent } from './app.component';\r\nimport { BorrowerPortalComponent } from './components/borrower-portal/borrower-portal.component';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { WelcomeComponent } from './components/welcome/welcome.component';\r\nimport { AppSetting } from './shared/appSetting';\r\nimport { AppConfigService } from './shared/app-config.service';\r\nimport { CommonModule } from '@angular/common';\r\nimport { LoPortalComponent } from './components/lo-portal/lo-portal.component';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { HttpInterceptorService } from './shared/interceptors/http.interceptor';\r\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\r\nimport { MatButtonModule, MatDialogModule, MatIconModule, MatInputModule, MatRadioModule, MatSlideToggleModule } from '@angular/material';\r\nimport { SafeHtmlPipe } from './safe-html.pipe';\r\nimport { DecodeHtmlEntitiesPipe } from './decode-html-entities.pipe';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { ConsentPopUpComponent } from './components/modals/consent-pop-up/consent-pop-up.component';\r\nimport { HintComponent } from './components/modals/hint/hint.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n BorrowerPortalComponent,\r\n WelcomeComponent,\r\n LoPortalComponent,\r\n SafeHtmlPipe,\r\n DecodeHtmlEntitiesPipe,\r\n ConsentPopUpComponent,\r\n HintComponent\r\n ],\r\n imports: [\r\n BrowserModule,\r\n AppRoutingModule,\r\n HttpClientModule,\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n BrowserAnimationsModule,\r\n MatSlideToggleModule,\r\n MatButtonModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatFormFieldModule,\r\n MatDialogModule,\r\n MatRadioModule\r\n ],\r\n providers: [\r\n AppSetting,\r\n AppConfigService,\r\n CookieService,\r\n {\r\n provide: APP_INITIALIZER,\r\n useFactory: Initialize,\r\n deps: [AppConfigService, AppSetting],\r\n multi: true,\r\n },\r\n HttpInterceptorService,\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: HttpInterceptorService,\r\n multi: true,\r\n }],\r\n bootstrap: [AppComponent],\r\n entryComponents: [ConsentPopUpComponent, HintComponent]\r\n})\r\nexport class AppModule { }\r\n\r\nexport function Initialize(appConfigService: AppConfigService, appSetting: AppSetting): () => Promise {\r\n return (): Promise => { return appConfigService.GetAppSettings(appSetting); };\r\n}\r\n","module.exports = \".infoMessage {\\n font-size: 1.5rem;\\n text-align: center;\\n}\\n\\n.em-widget {\\n height: 60vh;\\n overflow-y: auto;\\n}\\n\\n#newLoginPage {\\n display: flex;\\n flex-direction: row;\\n font-family: \\\"Montserrat\\\", sans-serif;\\n padding: 22px;\\n}\\n\\n#newLoginPage > div {\\n padding: 0 10px;\\n}\\n\\n#newLoginPage > div.left-column h1 {\\n text-align: center;\\n margin-bottom: 42px;\\n}\\n\\n#newLoginPage h1 {\\n font-weight: 400;\\n margin-bottom: 0.75rem;\\n font-size: 20px;\\n}\\n\\n#newLoginPage div {\\n display: flex;\\n flex-direction: column;\\n width: 100%;\\n min-width: 50%;\\n position: relative;\\n}\\n\\n#newLoginPage a {\\n color: #36baf9;\\n text-decoration: none;\\n font-size: 14px;\\n}\\n\\n#newLoginPage div#signInHeader {\\n flex-direction: row;\\n width: 100%;\\n padding-bottom: 42px;\\n}\\n\\n#newLoginPage div#signInHeader a {\\n position: absolute;\\n right: 5px;\\n}\\n\\n#newLoginPage mat-form-field {\\n width: 100%;\\n}\\n\\n#newLoginPage ::ng-deep mat-form-field .mat-form-field-label {\\n font-size: 12px;\\n}\\n\\n#newLoginPage ::ng-deep mat-form-field.mat-focused .mat-form-field-label {\\n font-size: 14px;\\n}\\n\\n#newLoginPage div.password-requirements {\\n font-size: 14px;\\n color: black;\\n background-color: #e3f6fe;\\n padding: 3px 7px;\\n font-family: \\\"Montserrat\\\";\\n}\\n\\n#newLoginPage div.password-requirements h4 {\\n font-size: 14px;\\n font-weight: 600;\\n margin: 0;\\n}\\n\\n#newLoginPage div.password-requirements div#passwordRules {\\n display: flex;\\n flex-direction: row;\\n flex-wrap: wrap;\\n}\\n\\n#newLoginPage div.password-requirements div#passwordRules div {\\n display: inline;\\n max-width: 50%;\\n}\\n\\n#newLoginPage div.password-requirements div#passwordRules div i {\\n padding-right: 10px;\\n}\\n\\n#newLoginPage div#signInBody {\\n text-align: left;\\n}\\n\\n#newLoginPage .cta-button {\\n display: inline-block;\\n padding: 2px 10px;\\n font: inherit;\\n border-radius: 10px;\\n color: white;\\n background-color: #6ca942;\\n max-width: 180px;\\n text-decoration: none;\\n}\\n\\n#newLoginPage .hero {\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n width: 100%;\\n height: 100%;\\n padding: 42px 0;\\n border-radius: 10px;\\n margin-bottom: 42px;\\n}\\n\\n#newLoginPage .hero h1 {\\n font-size: 24px;\\n margin-bottom: 10px;\\n}\\n\\n#newLoginPage .tos {\\n font-size: 14px;\\n display: block;\\n}\\n\\n#newLoginPage .tos a {\\n font-size: inherit;\\n text-decoration: none;\\n display: inline;\\n}\\n\\n#newLoginPage button.toggle-show-password {\\n position: absolute;\\n right: 0;\\n top: 5px;\\n font-size: 20px;\\n cursor: pointer;\\n z-index: 2;\\n border: 0;\\n padding: 0;\\n background: none;\\n}\\n\\n#newLoginPage a.forgot-password {\\n margin: 10px 0 0;\\n}\\n\\n#newLoginPage div.centered {\\n display: flex;\\n flex-direction: column;\\n align-items: center;\\n width: 100%;\\n}\\n\\n#newLoginPage button.sign-in, #newLoginPage button.cta {\\n margin-top: 21px;\\n padding: 6px 16px;\\n font: inherit;\\n min-width: 50%;\\n color: white;\\n background-color: #4f8300;\\n max-width: 180px;\\n}\\n\\n#newLoginPage button.sign-in.btn-disabled, #newLoginPage button.cta.btn-disabled {\\n background-color: #6ca94254;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9ib3Jyb3dlci1wb3J0YWwvQzpcXEJBLlYuMVxcX3dvcmtcXDcyXFxzL3NyY1xcYXBwXFxjb21wb25lbnRzXFxib3Jyb3dlci1wb3J0YWxcXGJvcnJvd2VyLXBvcnRhbC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9ib3Jyb3dlci1wb3J0YWwvYm9ycm93ZXItcG9ydGFsLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsaUJBQUE7RUFDQSxrQkFBQTtBQ0NGOztBREVBO0VBQ0UsWUFBQTtFQUNBLGdCQUFBO0FDQ0Y7O0FERUE7RUFDRSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSxxQ0FBQTtFQUNBLGFBQUE7QUNDRjs7QURDRTtFQUNFLGVBQUE7QUNDSjs7QURBSTtFQUNFLGtCQUFBO0VBQ0EsbUJBQUE7QUNFTjs7QURDRTtFQUNFLGdCQUFBO0VBQ0Esc0JBQUE7RUFDQSxlQUFBO0FDQ0o7O0FERUU7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxXQUFBO0VBQ0EsY0FBQTtFQUNBLGtCQUFBO0FDQUo7O0FER0U7RUFDRSxjQUFBO0VBQ0EscUJBQUE7RUFDQSxlQUFBO0FDREo7O0FESUU7RUFDRSxtQkFBQTtFQUNBLFdBQUE7RUFDQSxvQkFBQTtBQ0ZKOztBREdJO0VBQ0Usa0JBQUE7RUFDQSxVQUFBO0FDRE47O0FES0U7RUFDRSxXQUFBO0FDSEo7O0FEUUk7RUFDRSxlQUFBO0FDTk47O0FEUUk7RUFDRSxlQUFBO0FDTk47O0FEVUU7RUFDRSxlQUFBO0VBQ0EsWUFBQTtFQUNBLHlCQUFBO0VBQ0EsZ0JBQUE7RUFDQSx5QkFBQTtBQ1JKOztBRFVJO0VBQ0UsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsU0FBQTtBQ1JOOztBRFdJO0VBQ0UsYUFBQTtFQUNBLG1CQUFBO0VBQ0EsZUFBQTtBQ1ROOztBRFdNO0VBQ0UsZUFBQTtFQUNBLGNBQUE7QUNUUjs7QURXUTtFQUNFLG1CQUFBO0FDVFY7O0FEZUU7RUFDRSxnQkFBQTtBQ2JKOztBRGdCRTtFQUNFLHFCQUFBO0VBQ0EsaUJBQUE7RUFDQSxhQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0VBQ0EseUJBQUE7RUFDQSxnQkFBQTtFQUNBLHFCQUFBO0FDZEo7O0FEaUJFO0VBQ0UsYUFBQTtFQUNBLHNCQUFBO0VBQ0EsdUJBQUE7RUFDQSxtQkFBQTtFQUNBLFdBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLG1CQUFBO0VBQ0EsbUJBQUE7QUNmSjs7QURpQkk7RUFDRSxlQUFBO0VBQ0EsbUJBQUE7QUNmTjs7QURvQkU7RUFDRSxlQUFBO0VBQ0EsY0FBQTtBQ2xCSjs7QURvQkk7RUFDRSxrQkFBQTtFQUNBLHFCQUFBO0VBQ0EsZUFBQTtBQ2xCTjs7QURzQkU7RUFDRSxrQkFBQTtFQUNBLFFBQUE7RUFDQSxRQUFBO0VBQ0EsZUFBQTtFQUNBLGVBQUE7RUFDQSxVQUFBO0VBQ0EsU0FBQTtFQUNBLFVBQUE7RUFDQSxnQkFBQTtBQ3BCSjs7QUR1QkU7RUFDRSxnQkFBQTtBQ3JCSjs7QUR3QkU7RUFDRSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxtQkFBQTtFQUNBLFdBQUE7QUN0Qko7O0FEeUJFO0VBQ0UsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGFBQUE7RUFDQSxjQUFBO0VBQ0EsWUFBQTtFQUNBLHlCQUFBO0VBQ0EsZ0JBQUE7QUN2Qko7O0FEeUJJO0VBQ0UsMkJBQUE7QUN2Qk4iLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2JvcnJvd2VyLXBvcnRhbC9ib3Jyb3dlci1wb3J0YWwuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaW5mb01lc3NhZ2Uge1xyXG4gIGZvbnQtc2l6ZTogMS41cmVtO1xyXG4gIHRleHQtYWxpZ246IGNlbnRlcjtcclxufVxyXG5cclxuLmVtLXdpZGdldCB7XHJcbiAgaGVpZ2h0OiA2MHZoO1xyXG4gIG92ZXJmbG93LXk6IGF1dG87XHJcbn1cclxuXHJcbiNuZXdMb2dpblBhZ2Uge1xyXG4gIGRpc3BsYXk6IGZsZXg7XHJcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcclxuICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmO1xyXG4gIHBhZGRpbmc6IDIycHg7XHJcblxyXG4gICY+ZGl2IHtcclxuICAgIHBhZGRpbmc6IDAgMTBweDtcclxuICAgICYubGVmdC1jb2x1bW4gaDEge1xyXG4gICAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDQycHg7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGgxIHtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAuNzVyZW07XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgfVxyXG5cclxuICBkaXYge1xyXG4gICAgZGlzcGxheTogZmxleDtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIG1pbi13aWR0aDogNTAlO1xyXG4gICAgcG9zaXRpb246IHJlbGF0aXZlO1xyXG4gIH1cclxuXHJcbiAgYSB7XHJcbiAgICBjb2xvcjogIzM2YmFmOTtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTsgXHJcbiAgICBmb250LXNpemU6IDE0cHg7XHJcbiAgfVxyXG5cclxuICBkaXYjc2lnbkluSGVhZGVyIHtcclxuICAgIGZsZXgtZGlyZWN0aW9uOiByb3c7XHJcbiAgICB3aWR0aDogMTAwJTtcclxuICAgIHBhZGRpbmctYm90dG9tOiA0MnB4O1xyXG4gICAgYSB7XHJcbiAgICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgICAgcmlnaHQ6IDVweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1hdC1mb3JtLWZpZWxkIHtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgOjpuZy1kZWVwIG1hdC1mb3JtLWZpZWxkIHtcclxuXHJcbiAgICAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xyXG4gICAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICB9XHJcbiAgICAmLm1hdC1mb2N1c2VkIC5tYXQtZm9ybS1maWVsZC1sYWJlbCB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGRpdi5wYXNzd29yZC1yZXF1aXJlbWVudHMge1xyXG4gICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgY29sb3I6IGJsYWNrO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2UzZjZmZTtcclxuICAgIHBhZGRpbmc6IDNweCA3cHg7XHJcbiAgICBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnO1xyXG5cclxuICAgIGg0IHtcclxuICAgICAgZm9udC1zaXplOiAxNHB4O1xyXG4gICAgICBmb250LXdlaWdodDogNjAwO1xyXG4gICAgICBtYXJnaW46IDA7XHJcbiAgICB9XHJcblxyXG4gICAgZGl2I3Bhc3N3b3JkUnVsZXMge1xyXG4gICAgICBkaXNwbGF5OiBmbGV4O1xyXG4gICAgICBmbGV4LWRpcmVjdGlvbjogcm93O1xyXG4gICAgICBmbGV4LXdyYXA6IHdyYXA7XHJcblxyXG4gICAgICBkaXYge1xyXG4gICAgICAgIGRpc3BsYXk6IGlubGluZTtcclxuICAgICAgICBtYXgtd2lkdGg6IDUwJTtcclxuXHJcbiAgICAgICAgaSB7XHJcbiAgICAgICAgICBwYWRkaW5nLXJpZ2h0OiAxMHB4O1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZGl2I3NpZ25JbkJvZHkge1xyXG4gICAgdGV4dC1hbGlnbjogbGVmdDtcclxuICB9XHJcblxyXG4gIC5jdGEtYnV0dG9uIHtcclxuICAgIGRpc3BsYXk6IGlubGluZS1ibG9jaztcclxuICAgIHBhZGRpbmc6IDJweCAxMHB4O1xyXG4gICAgZm9udDogaW5oZXJpdDtcclxuICAgIGJvcmRlci1yYWRpdXM6IDEwcHg7XHJcbiAgICBjb2xvcjogd2hpdGU7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjNmNhOTQyO1xyXG4gICAgbWF4LXdpZHRoOiAxODBweDtcclxuICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICB9XHJcblxyXG4gIC5oZXJvIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xyXG4gICAgd2lkdGg6IDEwMCU7XHJcbiAgICBoZWlnaHQ6IDEwMCU7XHJcbiAgICBwYWRkaW5nOiA0MnB4IDA7XHJcbiAgICBib3JkZXItcmFkaXVzOiAxMHB4O1xyXG4gICAgbWFyZ2luLWJvdHRvbTogNDJweDtcclxuXHJcbiAgICBoMSB7XHJcbiAgICAgIGZvbnQtc2l6ZTogMjRweDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMTBweDtcclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuICAudG9zIHtcclxuICAgIGZvbnQtc2l6ZTogMTRweDtcclxuICAgIGRpc3BsYXk6IGJsb2NrO1xyXG5cclxuICAgIGEge1xyXG4gICAgICBmb250LXNpemU6IGluaGVyaXQ7XHJcbiAgICAgIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcclxuICAgICAgZGlzcGxheTogaW5saW5lO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYnV0dG9uLnRvZ2dsZS1zaG93LXBhc3N3b3JkIHtcclxuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcclxuICAgIHJpZ2h0OiAwO1xyXG4gICAgdG9wOiA1cHg7XHJcbiAgICBmb250LXNpemU6IDIwcHg7XHJcbiAgICBjdXJzb3I6IHBvaW50ZXI7XHJcbiAgICB6LWluZGV4OiAyO1xyXG4gICAgYm9yZGVyOiAwO1xyXG4gICAgcGFkZGluZzogMDtcclxuICAgIGJhY2tncm91bmQ6IG5vbmU7XHJcbiAgfVxyXG5cclxuICBhLmZvcmdvdC1wYXNzd29yZCB7XHJcbiAgICBtYXJnaW46IDEwcHggMCAwO1xyXG4gIH1cclxuXHJcbiAgZGl2LmNlbnRlcmVkIHtcclxuICAgIGRpc3BsYXk6IGZsZXg7XHJcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xyXG4gICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcclxuICAgIHdpZHRoOiAxMDAlO1xyXG4gIH1cclxuXHJcbiAgYnV0dG9uLnNpZ24taW4sIGJ1dHRvbi5jdGEge1xyXG4gICAgbWFyZ2luLXRvcDogIDIxcHg7XHJcbiAgICBwYWRkaW5nOiA2cHggMTZweDtcclxuICAgIGZvbnQ6IGluaGVyaXQ7XHJcbiAgICBtaW4td2lkdGg6IDUwJTtcclxuICAgIGNvbG9yOiB3aGl0ZTtcclxuICAgIGJhY2tncm91bmQtY29sb3I6ICM0ZjgzMDA7XHJcbiAgICBtYXgtd2lkdGg6IDE4MHB4O1xyXG5cclxuICAgICYuYnRuLWRpc2FibGVkIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzZjYTk0MjU0O1xyXG4gICAgfVxyXG4gIH1cclxufSIsIi5pbmZvTWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59XG5cbi5lbS13aWRnZXQge1xuICBoZWlnaHQ6IDYwdmg7XG4gIG92ZXJmbG93LXk6IGF1dG87XG59XG5cbiNuZXdMb2dpblBhZ2Uge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmb250LWZhbWlseTogXCJNb250c2VycmF0XCIsIHNhbnMtc2VyaWY7XG4gIHBhZGRpbmc6IDIycHg7XG59XG4jbmV3TG9naW5QYWdlID4gZGl2IHtcbiAgcGFkZGluZzogMCAxMHB4O1xufVxuI25ld0xvZ2luUGFnZSA+IGRpdi5sZWZ0LWNvbHVtbiBoMSB7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgbWFyZ2luLWJvdHRvbTogNDJweDtcbn1cbiNuZXdMb2dpblBhZ2UgaDEge1xuICBmb250LXdlaWdodDogNDAwO1xuICBtYXJnaW4tYm90dG9tOiAwLjc1cmVtO1xuICBmb250LXNpemU6IDIwcHg7XG59XG4jbmV3TG9naW5QYWdlIGRpdiB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIHdpZHRoOiAxMDAlO1xuICBtaW4td2lkdGg6IDUwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuI25ld0xvZ2luUGFnZSBhIHtcbiAgY29sb3I6ICMzNmJhZjk7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbiAgZm9udC1zaXplOiAxNHB4O1xufVxuI25ld0xvZ2luUGFnZSBkaXYjc2lnbkluSGVhZGVyIHtcbiAgZmxleC1kaXJlY3Rpb246IHJvdztcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmctYm90dG9tOiA0MnB4O1xufVxuI25ld0xvZ2luUGFnZSBkaXYjc2lnbkluSGVhZGVyIGEge1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIHJpZ2h0OiA1cHg7XG59XG4jbmV3TG9naW5QYWdlIG1hdC1mb3JtLWZpZWxkIHtcbiAgd2lkdGg6IDEwMCU7XG59XG4jbmV3TG9naW5QYWdlIDo6bmctZGVlcCBtYXQtZm9ybS1maWVsZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBmb250LXNpemU6IDEycHg7XG59XG4jbmV3TG9naW5QYWdlIDo6bmctZGVlcCBtYXQtZm9ybS1maWVsZC5tYXQtZm9jdXNlZCAubWF0LWZvcm0tZmllbGQtbGFiZWwge1xuICBmb250LXNpemU6IDE0cHg7XG59XG4jbmV3TG9naW5QYWdlIGRpdi5wYXNzd29yZC1yZXF1aXJlbWVudHMge1xuICBmb250LXNpemU6IDE0cHg7XG4gIGNvbG9yOiBibGFjaztcbiAgYmFja2dyb3VuZC1jb2xvcjogI2UzZjZmZTtcbiAgcGFkZGluZzogM3B4IDdweDtcbiAgZm9udC1mYW1pbHk6IFwiTW9udHNlcnJhdFwiO1xufVxuI25ld0xvZ2luUGFnZSBkaXYucGFzc3dvcmQtcmVxdWlyZW1lbnRzIGg0IHtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBtYXJnaW46IDA7XG59XG4jbmV3TG9naW5QYWdlIGRpdi5wYXNzd29yZC1yZXF1aXJlbWVudHMgZGl2I3Bhc3N3b3JkUnVsZXMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogcm93O1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4jbmV3TG9naW5QYWdlIGRpdi5wYXNzd29yZC1yZXF1aXJlbWVudHMgZGl2I3Bhc3N3b3JkUnVsZXMgZGl2IHtcbiAgZGlzcGxheTogaW5saW5lO1xuICBtYXgtd2lkdGg6IDUwJTtcbn1cbiNuZXdMb2dpblBhZ2UgZGl2LnBhc3N3b3JkLXJlcXVpcmVtZW50cyBkaXYjcGFzc3dvcmRSdWxlcyBkaXYgaSB7XG4gIHBhZGRpbmctcmlnaHQ6IDEwcHg7XG59XG4jbmV3TG9naW5QYWdlIGRpdiNzaWduSW5Cb2R5IHtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbn1cbiNuZXdMb2dpblBhZ2UgLmN0YS1idXR0b24ge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIHBhZGRpbmc6IDJweCAxMHB4O1xuICBmb250OiBpbmhlcml0O1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2Y2E5NDI7XG4gIG1heC13aWR0aDogMTgwcHg7XG4gIHRleHQtZGVjb3JhdGlvbjogbm9uZTtcbn1cbiNuZXdMb2dpblBhZ2UgLmhlcm8ge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgd2lkdGg6IDEwMCU7XG4gIGhlaWdodDogMTAwJTtcbiAgcGFkZGluZzogNDJweCAwO1xuICBib3JkZXItcmFkaXVzOiAxMHB4O1xuICBtYXJnaW4tYm90dG9tOiA0MnB4O1xufVxuI25ld0xvZ2luUGFnZSAuaGVybyBoMSB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbiAgbWFyZ2luLWJvdHRvbTogMTBweDtcbn1cbiNuZXdMb2dpblBhZ2UgLnRvcyB7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZGlzcGxheTogYmxvY2s7XG59XG4jbmV3TG9naW5QYWdlIC50b3MgYSB7XG4gIGZvbnQtc2l6ZTogaW5oZXJpdDtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBkaXNwbGF5OiBpbmxpbmU7XG59XG4jbmV3TG9naW5QYWdlIGJ1dHRvbi50b2dnbGUtc2hvdy1wYXNzd29yZCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgcmlnaHQ6IDA7XG4gIHRvcDogNXB4O1xuICBmb250LXNpemU6IDIwcHg7XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgei1pbmRleDogMjtcbiAgYm9yZGVyOiAwO1xuICBwYWRkaW5nOiAwO1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuI25ld0xvZ2luUGFnZSBhLmZvcmdvdC1wYXNzd29yZCB7XG4gIG1hcmdpbjogMTBweCAwIDA7XG59XG4jbmV3TG9naW5QYWdlIGRpdi5jZW50ZXJlZCB7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHdpZHRoOiAxMDAlO1xufVxuI25ld0xvZ2luUGFnZSBidXR0b24uc2lnbi1pbiwgI25ld0xvZ2luUGFnZSBidXR0b24uY3RhIHtcbiAgbWFyZ2luLXRvcDogMjFweDtcbiAgcGFkZGluZzogNnB4IDE2cHg7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIG1pbi13aWR0aDogNTAlO1xuICBjb2xvcjogd2hpdGU7XG4gIGJhY2tncm91bmQtY29sb3I6ICM0ZjgzMDA7XG4gIG1heC13aWR0aDogMTgwcHg7XG59XG4jbmV3TG9naW5QYWdlIGJ1dHRvbi5zaWduLWluLmJ0bi1kaXNhYmxlZCwgI25ld0xvZ2luUGFnZSBidXR0b24uY3RhLmJ0bi1kaXNhYmxlZCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM2Y2E5NDI1NDtcbn0iXX0= */\"","import { Component } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { filter, take } from 'rxjs/operators';\r\nimport { ApiService } from 'src/app/shared/api.service';\r\nimport { AuthorizationFormValidators, RepeatPasswordErrorStateMatcher } from 'src/app/shared/validators';\r\nimport { UserService } from 'src/app/user.service';\r\nimport { ConsentStatusEnum, ESignerRoleEnum } from 'src/app/models/enums';\r\nimport { AuthenticationService } from 'src/app/shared/authentication.service';\r\nimport { AppSetting } from 'src/app/shared/appSetting';\r\nimport { ILoanViewModel } from 'src/app/models/viewmodels';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { ConsentPopUpComponent } from '../modals/consent-pop-up/consent-pop-up.component';\r\nimport { Validators, FormGroup, FormBuilder } from '@angular/forms';\r\n\r\nexport class BorrowerPortalSSOInfo{\r\n signUrl: string;\r\n lsid: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-borrower-portal',\r\n templateUrl: './borrower-portal-sso.html',\r\n // templateUrl: './borrower-portal.component.html',\r\n styleUrls: ['./borrower-portal.component.scss']\r\n})\r\nexport class BorrowerPortalComponent {\r\n ssoAuthPassed: string;\r\n loanAccessToken: string;\r\n consumerConnectSiteId: string;\r\n authCode: string;\r\n errorMessage: string;\r\n infoMessage: string;\r\n displayBorrowerPortal = false;\r\n showLoader = true;\r\n\r\n securityQuestion: string = 'Security Question:';\r\n showActivationScreen = true;\r\n\r\n formMain: FormGroup;\r\n passwordErrorMatcher = new RepeatPasswordErrorStateMatcher();\r\n\r\n showRegister = false;\r\n showPassword = false;\r\n retried = false;\r\n nothingMoreToDo = false;\r\n showForms = true;\r\n firstName: string;\r\n lastName: string;\r\n username: string;\r\n password: string;\r\n securityAnswer: string;\r\n confirmPassword: string;\r\n confirmEmail: string;\r\n userIsNotLoggedIn = true;\r\n signInButtonDisabled = false;\r\n showPasswordRequirements = false;\r\n accountStatusResponseObject = {} as IAccountStatusResponseViewModel;\r\n privacyUrl: string;\r\n termsOfUseUrl: string;\r\n\r\n loanAppId: string;\r\n borrowerId: string;\r\n eSignEvent: string;\r\n documentId: string;\r\n signingRoomId: string;\r\n internalESign: string;\r\n isWetSign: string;\r\n\r\n constructor(private route: ActivatedRoute, private apppSetting: AppSetting, private apiService: ApiService,\r\n private formBuilder: FormBuilder, private authService: AuthenticationService, private userService: UserService, private dialog: MatDialog) { }\r\n\r\n ngOnInit(): void {\r\n this.route.queryParams.pipe(\r\n filter(params => !!params),\r\n take(1)\r\n ).subscribe(queryParam => {\r\n this.loanAccessToken = queryParam['token'];\r\n this.ssoAuthPassed = queryParam['ssoAuthPassed'] || '';\r\n this.consumerConnectSiteId = queryParam['siteId'] || queryParam['siteid'];\r\n this.authCode = queryParam['authCode'];\r\n\r\n this.internalESign = queryParam['internalESign'];\r\n this.loanAppId = queryParam['loanAppId'];\r\n this.borrowerId = queryParam['signerId'];\r\n this.eSignEvent = queryParam['event'];\r\n this.documentId = queryParam['documentId'];\r\n this.signingRoomId = queryParam['signingRoomId'];\r\n this.privacyUrl = window.localStorage.getItem('privacyUrl');\r\n this.termsOfUseUrl = window.localStorage.getItem('termsOfUseUrl');\r\n this.isWetSign = queryParam['isWetSign'] || 'false';\r\n\r\n if (this.loanAppId) {\r\n this.decideScreen();\r\n } else {\r\n document.location.href=\"/\";\r\n return;\r\n }\r\n })\r\n }\r\n\r\n private onError(errorMessage: string, statusCode?: number) {\r\n this.signInButtonDisabled = false;\r\n this.errorMessage = errorMessage;\r\n }\r\n\r\n private buildUserData() {\r\n return {\r\n borrowerId: this.borrowerId,\r\n username: this.username,\r\n password: this.password,\r\n loanId: this.loanAppId,\r\n securityAnswer: this.securityAnswer,\r\n ...this.accountStatusResponseObject\r\n };\r\n }\r\n\r\n private decideScreen() {\r\n this.authService.verifyAccountStatus(this.buildUserData(), this.handleAccountStatus.bind(this), this.onError.bind(this));\r\n }\r\n\r\n private isAuthenticated(accountStatus: IAccountStatusResponseViewModel) {\r\n const mmlProfile = window.localStorage.getItem('mmlProfile');\r\n if (!mmlProfile) {\r\n return false;\r\n }\r\n\r\n const mmlProfileData = JSON.parse(mmlProfile);\r\n if (!mmlProfileData.authentication || mmlProfileData.authentication.userAccountName !== accountStatus.username) {\r\n return false;\r\n }\r\n\r\n const date = new Date(localStorage.getItem('mmlProfileTC'));\r\n const now = new Date();\r\n\r\n // If there is no time in local storage or if the time is more than 15 minutes ago, return false\r\n if (!date || (now.getTime() - date.getTime()) > 15 * 60 * 1000) {\r\n return false;\r\n }\r\n return true;\r\n }\r\n\r\n private handleAccountStatus(data: IAccountStatusResponseViewModel) {\r\n\r\n if (this.isAuthenticated(data)) {\r\n this.showLoader = false;\r\n this.userService.setUserLoggedIn(true);\r\n this.showForms = this.nothingMoreToDo = false;\r\n this.userIsNotLoggedIn = false;\r\n\r\n if (this.eSignEvent == \"signing_complete\" || this.eSignEvent == \"viewing_complete\" || this.eSignEvent == \"session_timeout\" || this.eSignEvent == \"decline\" || this.eSignEvent == \"cancel\") {\r\n this.nothingMoreToDo = true;\r\n if (this.eSignEvent != \"signing_complete\") {\r\n return;\r\n }\r\n }\r\n this.initiateESign();\r\n return;\r\n }\r\n\r\n this.showActivationScreen = !data.isActive;\r\n this.username = data.username;\r\n if (this.showActivationScreen) {\r\n this.securityQuestion = data.securityQuestionText;\r\n this.accountStatusResponseObject = data;\r\n\r\n this.formMain = this.formBuilder.group({\r\n password: ['', [\r\n Validators.required,\r\n AuthorizationFormValidators.oneLowercase,\r\n AuthorizationFormValidators.oneUppercase,\r\n AuthorizationFormValidators.oneDigit,\r\n AuthorizationFormValidators.specialCharacters,\r\n AuthorizationFormValidators.eightCharacters,\r\n ]],\r\n confirmPassword: ['', Validators.required],\r\n securityAnswer: ['', Validators.required]\r\n }, { validator: AuthorizationFormValidators.samePasswords });\r\n } else {\r\n this.formMain = this.formBuilder.group({\r\n password: ['', [\r\n Validators.required,\r\n ]]\r\n });\r\n }\r\n this.showLoader = false;\r\n }\r\n\r\n activateAccount() {\r\n if (this.formMain.invalid) {\r\n return;\r\n }\r\n this.signInButtonDisabled = true;\r\n this.password = this.formMain.value.password;\r\n\r\n this.authService.activateUser(this.buildUserData(), this.signIn.bind(this), this.onError.bind(this));\r\n }\r\n\r\n signIn() {\r\n this.errorMessage = '';\r\n this.signInButtonDisabled = true;\r\n this.authService.authenticateAndGrantOAuthToken(this.username, this.password, this.initiateESign.bind(this), this.onError.bind(this));\r\n }\r\n\r\n get getInfoMessage(): string {\r\n if (this.errorMessage || this.showLoader || this.userIsNotLoggedIn || this.nothingMoreToDo) {\r\n return null;\r\n }\r\n switch (this.eSignEvent) {\r\n case \"signing_complete\":\r\n return \"You successfully completed eSigning the document!\";\r\n case \"viewing_complete\":\r\n return \"You successfully completed viewing the document\";\r\n case \"session_timeout\":\r\n return \"Your session timed out!\";\r\n case \"decline\":\r\n return \"You declined eSigning the document\";\r\n case \"cancel\":\r\n return \"You canceled eSigning the document\";\r\n default:\r\n return \"*Contact your loan officer or check email in order to eSign documents\";\r\n }\r\n }\r\n\r\n private formulateEventDetail(title, description = ''): Record {\r\n if (description !== '') {\r\n description = ` ${description}. `;\r\n }\r\n return { title, description };\r\n }\r\n get getEventDetail(): Record {\r\n switch (this.eSignEvent) {\r\n case \"signing_complete\":\r\n return this.formulateEventDetail(\r\n \"By signing the document you've completed the process.\",\r\n \"You're all set\");\r\n case \"viewing_complete\":\r\n return this.formulateEventDetail(\"You successfully completed viewing the document\")\r\n case \"decline\":\r\n return this.formulateEventDetail(\"You declined eSigning the document\")\r\n case \"cancel\":\r\n return this.formulateEventDetail(\"You canceled eSigning the document\")\r\n default:\r\n return this.formulateEventDetail(\"Contact your loan officer or check email in order to eSign documents\")\r\n }\r\n }\r\n\r\n private getESignReturnUrl(): string {\r\n let currentUrl = window.location.href;\r\n if (currentUrl.includes('?')) {\r\n currentUrl = `${currentUrl}&ssoByEsignSite=true`;\r\n } else {\r\n currentUrl = `${currentUrl}?ssoByEsignSite=true`;\r\n }\r\n return encodeURIComponent(currentUrl);\r\n }\r\n\r\n private initiateESign(): void {\r\n this.userService.setUserLoggedIn(true);\r\n\r\n if (!this.internalESign) {\r\n this.showLoader = false;\r\n console.warn(`One of required params is missing`);\r\n this.errorMessage = `One of required params is missing!`;\r\n return;\r\n }\r\n\r\n if (!!this.eSignEvent && this.eSignEvent == \"signing_complete\") {\r\n this.apiService.HandleSignatureEvent(this.loanAppId, this.documentId, this.borrowerId, ESignerRoleEnum.Borrower, this.signingRoomId, this.eSignEvent).subscribe(\r\n (data) => {\r\n this.showLoader = false;\r\n },\r\n (error: HttpErrorResponse) => {\r\n this.showLoader = false;\r\n console.warn(`Error while handling ESign event`, error);\r\n this.errorMessage = `Error while handling ESign event: ${error.message}`;\r\n });\r\n }\r\n else {\r\n this.apiService.getLoanApp(this.loanAppId, this.borrowerId).subscribe(\r\n (data) => {\r\n const loanVm = data.result as ILoanViewModel;\r\n this.showLoader = false;\r\n //check if current borrower eConsented and open modal; if accepted, update status in DB and then GetESignUrl\r\n const currentBorrower = loanVm.transactionInfo.borrowers.find(x => x.borrowerId == this.borrowerId.toLowerCase());\r\n if (currentBorrower && currentBorrower.eConsent){\r\n if (currentBorrower.eConsent.consentStatus !== ConsentStatusEnum.Accept) {\r\n const disclosureStatus = loanVm.transactionInfo.loanApplications[0].disclosureStatusDetails.disclosureStatus;\r\n const docDelivery = loanVm.transactionInfo.loanApplications[0].docDelivery;\r\n\r\n const eConsentModal = this.dialog.open(ConsentPopUpComponent, {\r\n width: '820px',\r\n data: {\r\n parentLoanId: loanVm.loanId, borrower: currentBorrower, docDelivery: loanVm.transactionInfo.loanApplications[0].docDelivery,\r\n disclosureStatus: disclosureStatus, isLegalDisclaimerConfirmed: loanVm.isLegalDisclaimerConfirmed, encompassBorrowerPairId: loanVm.transactionInfo.loanApplications[0].encompassBorrowerPairId\r\n },\r\n disableClose: true, closeOnNavigation: false\r\n });\r\n eConsentModal.afterClosed().subscribe(modalResponse => {\r\n console.log('Modal Closed');\r\n if (modalResponse && modalResponse.borrowerDeclined === true) {\r\n this.logOut();\r\n }\r\n else if (modalResponse.wasEconsentSuccessful) {\r\n this.apiService.GetESignUrl(this.loanAppId, this.borrowerId, ESignerRoleEnum.Borrower, this.isWetSign, this.getESignReturnUrl()).subscribe(\r\n (getEsignUrlResponse) => {\r\n if (getEsignUrlResponse.response) {\r\n return this.apiService.trackPreviewDocs(this.loanAppId, this.borrowerId).subscribe(\r\n (trackResponse) => {\r\n window.location.href = getEsignUrlResponse.response;\r\n return;\r\n });\r\n }\r\n this.logOut();\r\n },\r\n (error: HttpErrorResponse) => {\r\n this.showLoader = false;\r\n console.warn(`Error while getting ESign URL`, error);\r\n this.errorMessage = `An error occurred while getting ESign URL: ${error.message}`;\r\n this.logOut();\r\n });\r\n }\r\n },\r\n (error: HttpErrorResponse) => {\r\n this.showLoader = false;\r\n });\r\n }\r\n else {\r\n this.apiService.GetESignUrl(this.loanAppId, this.borrowerId, ESignerRoleEnum.Borrower, this.isWetSign, this.getESignReturnUrl()).subscribe(\r\n (getEsignUrlResponse) => {\r\n return this.apiService.trackPreviewDocs(this.loanAppId, this.borrowerId).subscribe(\r\n (trackResponse) => {\r\n this.showLoader = false;\r\n if (getEsignUrlResponse.response) {\r\n window.location.href = getEsignUrlResponse.response;\r\n }\r\n else {\r\n this.logOut();\r\n }\r\n });\r\n },\r\n (error: HttpErrorResponse) => {\r\n this.showLoader = false;\r\n console.warn(`Error while getting ESign URL`, error);\r\n this.errorMessage = `An error occurred while getting ESign URL: ${error.message}`;\r\n this.logOut();\r\n });\r\n }}\r\n },\r\n (error: HttpErrorResponse) => {\r\n this.showLoader = false;\r\n console.warn(`Error occured while loading the loan.`, error);\r\n this.errorMessage = `An error occurred while loading the loan: ${error.message}`;\r\n this.logOut();\r\n });\r\n }\r\n }\r\n\r\n logOut()\r\n {\r\n this.authService.clearCookie('mml-auth-token');\r\n this.userService.setUserLoggedIn(false);\r\n localStorage.removeItem('mmlProfile');\r\n localStorage.removeItem('mml-auth-token');\r\n window.location.href = '/';\r\n }\r\n}\r\n\r\n\r\ninterface IAccountStatusResponseViewModel {\r\n isActive: Boolean,\r\n accountExists: Boolean,\r\n username: string,\r\n securityQuestionText: string,\r\n securityQuestionId: number,\r\n divisionId: number,\r\n branchId: string,\r\n channelId: number,\r\n}\r\n","module.exports = \".imp-new-auth {\\n top: 0px;\\n left: 0px;\\n right: 0px;\\n background-color: white;\\n text-align: center;\\n z-index: 3000;\\n display: flex;\\n flex-direction: column;\\n height: 100%;\\n position: relative;\\n}\\n\\n.imp-company-logo-section {\\n width: 500px;\\n height: 250px;\\n margin: auto;\\n}\\n\\n.imp-company-logo {\\n height: 100%;\\n width: 100%;\\n -o-object-fit: contain;\\n object-fit: contain;\\n}\\n\\n.imp-new-auth-banner {\\n margin-top: 10px;\\n}\\n\\n.imp-new-auth-banner .sign-in-logo {\\n font-size: 105px;\\n}\\n\\n.imp-new-auth-banner .sign-in-explanation-section {\\n font-size: 17px;\\n}\\n\\n.imp-new-auth-banner .explanation-text {\\n font-size: 17px;\\n color: #000000;\\n}\\n\\n.imp-new-auth-banner .explanation-text-green {\\n font-size: 17px;\\n color: #1fb25a;\\n font-weight: bold;\\n}\\n\\n.imp-new-auth .sign-in-section {\\n width: 100%;\\n background: #FFF;\\n padding: 20px 0px;\\n position: relative;\\n margin-top: 50px;\\n}\\n\\n@media (min-width: 768px) {\\n .imp-new-auth .bar-well:before,\\n.imp-new-auth .bar-well:after {\\n content: \\\"\\\";\\n position: absolute;\\n z-index: -1;\\n height: 100%;\\n box-shadow: 0 0 10px 3px rgba(0, 0, 0, 0.1);\\n top: 0;\\n bottom: 0;\\n left: 20%;\\n right: 20%;\\n border-radius: 300px/15px;\\n }\\n}\\n\\n.form-input {\\n width: 240px;\\n margin: auto;\\n}\\n\\n.form-button {\\n width: 240px;\\n background: #208DDC;\\n box-shadow: 0px 3px 2px -2px #c3c3c3;\\n border-radius: 2.5px;\\n}\\n\\n.sign-in-error {\\n color: red;\\n font-size: 15px;\\n}\\n\\n.infoMessage {\\n font-size: 1.5rem;\\n text-align: center;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9sby1wb3J0YWwvQzpcXEJBLlYuMVxcX3dvcmtcXDcyXFxzL3NyY1xcYXBwXFxjb21wb25lbnRzXFxsby1wb3J0YWxcXGxvLXBvcnRhbC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9sby1wb3J0YWwvbG8tcG9ydGFsLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBO0VBQ0UsUUFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EsdUJBQUE7RUFDQSxrQkFBQTtFQUNBLGFBQUE7RUFDQSxhQUFBO0VBQ0Esc0JBQUE7RUFDQSxZQUFBO0VBQ0Esa0JBQUE7QUNDRjs7QURFQTtFQUNFLFlBQUE7RUFDQSxhQUFBO0VBQ0EsWUFBQTtBQ0NGOztBREVBO0VBQ0UsWUFBQTtFQUNBLFdBQUE7RUFDQSxzQkFBQTtLQUFBLG1CQUFBO0FDQ0Y7O0FERUE7RUFDRSxnQkFBQTtBQ0NGOztBREVBO0VBQ0UsZ0JBQUE7QUNDRjs7QURFQTtFQUNFLGVBQUE7QUNDRjs7QURFQTtFQUNFLGVBQUE7RUFDQSxjQUFBO0FDQ0Y7O0FERUE7RUFDRSxlQUFBO0VBQ0EsY0FBQTtFQUNBLGlCQUFBO0FDQ0Y7O0FERUE7RUFDRSxXQUFBO0VBQ0EsZ0JBQUE7RUFDQSxpQkFBQTtFQUNBLGtCQUFBO0VBQ0EsZ0JBQUE7QUNDRjs7QURFQTtFQUNFOztJQUVFLFdBQUE7SUFDQSxrQkFBQTtJQUNBLFdBQUE7SUFDQSxZQUFBO0lBR0EsMkNBQUE7SUFDQSxNQUFBO0lBQ0EsU0FBQTtJQUNBLFNBQUE7SUFDQSxVQUFBO0lBRUEseUJBQUE7RUNDRjtBQUNGOztBREVBO0VBQ0UsWUFBQTtFQUNBLFlBQUE7QUNBRjs7QURHQTtFQUNFLFlBQUE7RUFDQSxtQkFBQTtFQUNBLG9DQUFBO0VBQ0Esb0JBQUE7QUNBRjs7QURHQTtFQUNFLFVBQUE7RUFDQSxlQUFBO0FDQUY7O0FER0E7RUFDRSxpQkFBQTtFQUNBLGtCQUFBO0FDQUYiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL2xvLXBvcnRhbC9sby1wb3J0YWwuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIuaW1wLW5ldy1hdXRoIHtcclxuICB0b3A6IDBweDtcclxuICBsZWZ0OiAwcHg7XHJcbiAgcmlnaHQ6IDBweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiB3aGl0ZTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgei1pbmRleDogMzAwMDtcclxuICBkaXNwbGF5OiBmbGV4O1xyXG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmltcC1jb21wYW55LWxvZ28tc2VjdGlvbiB7XHJcbiAgd2lkdGg6IDUwMHB4O1xyXG4gIGhlaWdodDogMjUwcHg7XHJcbiAgbWFyZ2luOiBhdXRvO1xyXG59XHJcblxyXG4uaW1wLWNvbXBhbnktbG9nbyB7XHJcbiAgaGVpZ2h0OiAxMDAlO1xyXG4gIHdpZHRoOiAxMDAlO1xyXG4gIG9iamVjdC1maXQ6IGNvbnRhaW47XHJcbn1cclxuXHJcbi5pbXAtbmV3LWF1dGgtYmFubmVyIHtcclxuICBtYXJnaW4tdG9wOiAxMHB4O1xyXG59XHJcblxyXG4uaW1wLW5ldy1hdXRoLWJhbm5lciAuc2lnbi1pbi1sb2dvIHtcclxuICBmb250LXNpemU6IDEwNXB4O1xyXG59XHJcblxyXG4uaW1wLW5ldy1hdXRoLWJhbm5lciAuc2lnbi1pbi1leHBsYW5hdGlvbi1zZWN0aW9uIHtcclxuICBmb250LXNpemU6IDE3cHg7XHJcbn1cclxuXHJcbi5pbXAtbmV3LWF1dGgtYmFubmVyIC5leHBsYW5hdGlvbi10ZXh0IHtcclxuICBmb250LXNpemU6IDE3cHg7XHJcbiAgY29sb3I6ICMwMDAwMDA7XHJcbn1cclxuXHJcbi5pbXAtbmV3LWF1dGgtYmFubmVyIC5leHBsYW5hdGlvbi10ZXh0LWdyZWVuIHtcclxuICBmb250LXNpemU6IDE3cHg7XHJcbiAgY29sb3I6ICMxZmIyNWE7XHJcbiAgZm9udC13ZWlnaHQ6IGJvbGQ7XHJcbn1cclxuXHJcbi5pbXAtbmV3LWF1dGggLnNpZ24taW4tc2VjdGlvbiB7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgYmFja2dyb3VuZDogI0ZGRjtcclxuICBwYWRkaW5nOiAyMHB4IDBweDtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgbWFyZ2luLXRvcDogNTBweDtcclxufVxyXG5cclxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XHJcbiAgLmltcC1uZXctYXV0aCAuYmFyLXdlbGw6YmVmb3JlLFxyXG4gIC5pbXAtbmV3LWF1dGggLmJhci13ZWxsOmFmdGVyIHtcclxuICAgIGNvbnRlbnQ6IFwiXCI7XHJcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgICB6LWluZGV4OiAtMTtcclxuICAgIGhlaWdodDogMTAwJTtcclxuICAgIC13ZWJraXQtYm94LXNoYWRvdzogMCAwIDEwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDEwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTtcclxuICAgIGJveC1zaGFkb3c6IDAgMCAxMHB4IDNweCByZ2JhKDAsIDAsIDAsIDAuMSk7XHJcbiAgICB0b3A6IDA7XHJcbiAgICBib3R0b206IDA7XHJcbiAgICBsZWZ0OiAyMCU7XHJcbiAgICByaWdodDogMjAlO1xyXG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiAzMDBweCAvIDE1cHg7XHJcbiAgICBib3JkZXItcmFkaXVzOiAzMDBweCAvIDE1cHg7XHJcbiAgfVxyXG59XHJcblxyXG4uZm9ybS1pbnB1dCB7XHJcbiAgd2lkdGg6IDI0MHB4O1xyXG4gIG1hcmdpbjogYXV0bztcclxufVxyXG5cclxuLmZvcm0tYnV0dG9uIHtcclxuICB3aWR0aDogMjQwcHg7XHJcbiAgYmFja2dyb3VuZDogIzIwOEREQztcclxuICBib3gtc2hhZG93OiAwcHggM3B4IDJweCAtMnB4ICNjM2MzYzM7XHJcbiAgYm9yZGVyLXJhZGl1czogMi41cHg7XHJcbn1cclxuXHJcbi5zaWduLWluLWVycm9yIHtcclxuICBjb2xvcjogcmVkO1xyXG4gIGZvbnQtc2l6ZTogMTVweDtcclxufVxyXG5cclxuLmluZm9NZXNzYWdlIHtcclxuICBmb250LXNpemU6IDEuNXJlbTtcclxuICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbn1cclxuIiwiLmltcC1uZXctYXV0aCB7XG4gIHRvcDogMHB4O1xuICBsZWZ0OiAwcHg7XG4gIHJpZ2h0OiAwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHdoaXRlO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHotaW5kZXg6IDMwMDA7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGhlaWdodDogMTAwJTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uaW1wLWNvbXBhbnktbG9nby1zZWN0aW9uIHtcbiAgd2lkdGg6IDUwMHB4O1xuICBoZWlnaHQ6IDI1MHB4O1xuICBtYXJnaW46IGF1dG87XG59XG5cbi5pbXAtY29tcGFueS1sb2dvIHtcbiAgaGVpZ2h0OiAxMDAlO1xuICB3aWR0aDogMTAwJTtcbiAgb2JqZWN0LWZpdDogY29udGFpbjtcbn1cblxuLmltcC1uZXctYXV0aC1iYW5uZXIge1xuICBtYXJnaW4tdG9wOiAxMHB4O1xufVxuXG4uaW1wLW5ldy1hdXRoLWJhbm5lciAuc2lnbi1pbi1sb2dvIHtcbiAgZm9udC1zaXplOiAxMDVweDtcbn1cblxuLmltcC1uZXctYXV0aC1iYW5uZXIgLnNpZ24taW4tZXhwbGFuYXRpb24tc2VjdGlvbiB7XG4gIGZvbnQtc2l6ZTogMTdweDtcbn1cblxuLmltcC1uZXctYXV0aC1iYW5uZXIgLmV4cGxhbmF0aW9uLXRleHQge1xuICBmb250LXNpemU6IDE3cHg7XG4gIGNvbG9yOiAjMDAwMDAwO1xufVxuXG4uaW1wLW5ldy1hdXRoLWJhbm5lciAuZXhwbGFuYXRpb24tdGV4dC1ncmVlbiB7XG4gIGZvbnQtc2l6ZTogMTdweDtcbiAgY29sb3I6ICMxZmIyNWE7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uaW1wLW5ldy1hdXRoIC5zaWduLWluLXNlY3Rpb24ge1xuICB3aWR0aDogMTAwJTtcbiAgYmFja2dyb3VuZDogI0ZGRjtcbiAgcGFkZGluZzogMjBweCAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgbWFyZ2luLXRvcDogNTBweDtcbn1cblxuQG1lZGlhIChtaW4td2lkdGg6IDc2OHB4KSB7XG4gIC5pbXAtbmV3LWF1dGggLmJhci13ZWxsOmJlZm9yZSxcbi5pbXAtbmV3LWF1dGggLmJhci13ZWxsOmFmdGVyIHtcbiAgICBjb250ZW50OiBcIlwiO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB6LWluZGV4OiAtMTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgLXdlYmtpdC1ib3gtc2hhZG93OiAwIDAgMTBweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIC1tb3otYm94LXNoYWRvdzogMCAwIDEwcHggM3B4IHJnYmEoMCwgMCwgMCwgMC4xKTtcbiAgICBib3gtc2hhZG93OiAwIDAgMTBweCAzcHggcmdiYSgwLCAwLCAwLCAwLjEpO1xuICAgIHRvcDogMDtcbiAgICBib3R0b206IDA7XG4gICAgbGVmdDogMjAlO1xuICAgIHJpZ2h0OiAyMCU7XG4gICAgLW1vei1ib3JkZXItcmFkaXVzOiAzMDBweC8xNXB4O1xuICAgIGJvcmRlci1yYWRpdXM6IDMwMHB4LzE1cHg7XG4gIH1cbn1cbi5mb3JtLWlucHV0IHtcbiAgd2lkdGg6IDI0MHB4O1xuICBtYXJnaW46IGF1dG87XG59XG5cbi5mb3JtLWJ1dHRvbiB7XG4gIHdpZHRoOiAyNDBweDtcbiAgYmFja2dyb3VuZDogIzIwOEREQztcbiAgYm94LXNoYWRvdzogMHB4IDNweCAycHggLTJweCAjYzNjM2MzO1xuICBib3JkZXItcmFkaXVzOiAyLjVweDtcbn1cblxuLnNpZ24taW4tZXJyb3Ige1xuICBjb2xvcjogcmVkO1xuICBmb250LXNpemU6IDE1cHg7XG59XG5cbi5pbmZvTWVzc2FnZSB7XG4gIGZvbnQtc2l6ZTogMS41cmVtO1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG59Il19 */\"","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { Component } from '@angular/core';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { filter, take } from 'rxjs/operators';\r\nimport { ESignerRoleEnum } from 'src/app/models/enums';\r\nimport { ApiService } from 'src/app/shared/api.service';\r\nimport { AuthenticationService } from 'src/app/shared/authentication.service';\r\nimport { UserService } from 'src/app/user.service';\r\n\r\n@Component({\r\n selector: 'app-lo-portal',\r\n templateUrl: './lo-portal.component.html',\r\n styleUrls: ['./lo-portal.component.scss']\r\n})\r\nexport class LoPortalComponent {\r\n showLoader = false;\r\n username: string;\r\n password: string;\r\n errorMessage: string = null;\r\n loanAppId: string;\r\n signerUsername: string;\r\n eSignEvent: string;\r\n documentId: string;\r\n signingRoomId: string;\r\n signInButtonDisabled = false;\r\n isUserLoggedIn$ = this.userService.userLoggedIn$;\r\n\r\n constructor(private route: ActivatedRoute, private apiService: ApiService, private authService: AuthenticationService, private userService: UserService, private sanitizer: DomSanitizer, private cookieService: CookieService) { }\r\n\r\n ngOnInit() {\r\n this.route.queryParams.pipe(\r\n filter(params => !!params),\r\n take(1)\r\n ).subscribe(queryParam => {\r\n this.loanAppId = queryParam['loanAppId'];\r\n this.documentId = queryParam['documentId'];\r\n this.signingRoomId = queryParam['signingRoomId'];\r\n this.eSignEvent = queryParam['event'];\r\n this.signerUsername = queryParam['loUsername'];\r\n\r\n // Check if User is logged in, if yes redirect to , if no display Sign in\r\n if (this.authService.checkIfUserIsLoggedIn()) {\r\n this.onLoginSuccess();\r\n }\r\n })\r\n }\r\n\r\n signIn() {\r\n if (this.username.toLowerCase() != this.signerUsername.toLowerCase()){\r\n this.onError('Whoops, the Email or Password is incorrect');\r\n return;\r\n }\r\n\r\n this.errorMessage = '';\r\n this.signInButtonDisabled = true;\r\n this.authService.authenticateAndGrantOAuthToken(this.username, this.password, this.onLoginSuccess.bind(this), this.onError.bind(this));\r\n }\r\n\r\n private onLoginSuccess() {\r\n this.userService.setUserLoggedIn(true);\r\n this.signInButtonDisabled = false;\r\n if (!!this.eSignEvent) {\r\n this.showLoader = true;\r\n this.apiService.HandleSignatureEvent(this.loanAppId, this.documentId, \"LO\", ESignerRoleEnum.LO, this.signingRoomId, this.eSignEvent).subscribe(\r\n (data) => {\r\n this.showLoader = false;\r\n },\r\n (error: HttpErrorResponse) => {\r\n this.showLoader = false;\r\n console.warn(`Error while handling ESign event`, error);\r\n this.errorMessage = `Error while handling ESign event: ${error.message}`;\r\n });\r\n return;\r\n }\r\n else if (this.loanAppId) {\r\n this.showLoader = true;\r\n this.apiService.GetESignUrl(this.loanAppId, \"LO\", ESignerRoleEnum.LO, 'false', encodeURIComponent(window.location.href)).subscribe(\r\n (data) => {\r\n this.showLoader = false;\r\n if (data.response){\r\n window.location.href = data.response;\r\n }\r\n else {\r\n this.userService.setUserLoggedIn(false);\r\n this.clearStoredSiteData();\r\n }\r\n },\r\n (error: HttpErrorResponse) => {\r\n this.showLoader = false;\r\n console.warn(`Error while getting ESign URL`, error);\r\n this.errorMessage = `An error occurred while getting ESign URL: ${error.message}`;\r\n });\r\n }\r\n }\r\n\r\n private onError(errorMessage: string) {\r\n this.signInButtonDisabled = false;\r\n this.errorMessage = errorMessage;\r\n }\r\n\r\n get getInfoMessage(): string {\r\n if (this.errorMessage || this.showLoader) {\r\n return null;\r\n }\r\n switch (this.eSignEvent) {\r\n case \"signing_complete\":\r\n return \"You successfully completed eSigning the document!\";\r\n case \"viewing_complete\":\r\n return \"You successfully completed viewing the document\";\r\n case \"session_timeout\":\r\n return \"Your session timed out!\";\r\n case \"decline\":\r\n return \"You declined eSigning the document\";\r\n case \"cancel\":\r\n return \"You canceled eSigning the document\";\r\n default:\r\n return \"*Check your email in order to eSign documents\";\r\n }\r\n }\r\n\r\n clearStoredSiteData(): void{\r\n this.cookieService.delete('mml-auth-token');\r\n localStorage.removeItem('mmlProfile');\r\n }\r\n}\r\n","module.exports = \"#modal {\\n max-height: 96vh;\\n}\\n\\nh1.page-title {\\n text-align: center;\\n text-transform: uppercase;\\n margin-bottom: 33px;\\n padding-bottom: 16px;\\n border-bottom-width: 2px;\\n border-bottom-style: solid;\\n margin: 1.2rem;\\n}\\n\\n.border-color-static {\\n border-color: #046492;\\n}\\n\\n.color-static {\\n color: #046492 !important;\\n font-size: 1.4rem;\\n}\\n\\n.vs {\\n font-size: 24px;\\n}\\n\\n.borrower-options {\\n margin-bottom: 15px;\\n}\\n\\n.modal-footer button {\\n font-family: inherit;\\n min-width: 140px;\\n}\\n\\n.modal-footer button.mat-primary-outline {\\n border-width: 1px;\\n border-style: solid;\\n}\\n\\n.mat-checkbox,\\n.mat-radio-button {\\n font-family: inherit;\\n}\\n\\n.description {\\n text-align: center;\\n font-size: 1.44em;\\n}\\n\\nh2 {\\n font-size: 18px;\\n font-weight: bold;\\n}\\n\\n.buttons button {\\n background-color: #4f8300;\\n min-width: 190px;\\n font-family: inherit;\\n}\\n\\n::ng-deep .mat-radio-label {\\n white-space: break-spaces !important;\\n}\\n\\n::ng-deep .mat-radio-outer-circle {\\n border-color: #046492 !important;\\n}\\n\\n::ng-deep .mat-radio-inner-circle {\\n background-color: #046492 !important;\\n}\\n\\n::ng-deep .mat-radio-persistent-ripple {\\n background-color: #046492 !important;\\n}\\n\\na, a:not([href]):not([tabindex]), a:not([href]):not([class]) {\\n color: #046492;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tb2RhbHMvY29uc2VudC1wb3AtdXAvQzpcXEJBLlYuMVxcX3dvcmtcXDcyXFxzL3NyY1xcYXBwXFxjb21wb25lbnRzXFxtb2RhbHNcXGNvbnNlbnQtcG9wLXVwXFxjb25zZW50LXBvcC11cC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9tb2RhbHMvY29uc2VudC1wb3AtdXAvY29uc2VudC1wb3AtdXAuY29tcG9uZW50LnNjc3MiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7RUFDSSxnQkFBQTtBQ0NKOztBREVFO0VBQ0Usa0JBQUE7RUFDQSx5QkFBQTtFQUNBLG1CQUFBO0VBQ0Esb0JBQUE7RUFDQSx3QkFBQTtFQUNBLDBCQUFBO0VBQ0EsY0FBQTtBQ0NKOztBREVFO0VBQ0UscUJBQUE7QUNDSjs7QURFRTtFQUNFLHlCQUFBO0VBQ0EsaUJBQUE7QUNDSjs7QURFRTtFQUNFLGVBQUE7QUNDSjs7QURFRTtFQUNFLG1CQUFBO0FDQ0o7O0FER0k7RUFDRSxvQkFBQTtFQUNBLGdCQUFBO0FDQU47O0FEQ007RUFDRSxpQkFBQTtFQUNBLG1CQUFBO0FDQ1I7O0FESUU7O0VBRUUsb0JBQUE7QUNESjs7QURJRTtFQUNFLGtCQUFBO0VBQ0EsaUJBQUE7QUNESjs7QURJRTtFQUNFLGVBQUE7RUFDQSxpQkFBQTtBQ0RKOztBREtJO0VBQ0UseUJBQUE7RUFDQSxnQkFBQTtFQUNBLG9CQUFBO0FDRk47O0FETUU7RUFDRSxvQ0FBQTtBQ0hKOztBRE1FO0VBQ0UsZ0NBQUE7QUNISjs7QURNRTtFQUNFLG9DQUFBO0FDSEo7O0FET0U7RUFDRSxvQ0FBQTtBQ0pKOztBRE9FO0VBQ0UsY0FBQTtBQ0pKIiwiZmlsZSI6InNyYy9hcHAvY29tcG9uZW50cy9tb2RhbHMvY29uc2VudC1wb3AtdXAvY29uc2VudC1wb3AtdXAuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyIjbW9kYWwge1xyXG4gICAgbWF4LWhlaWdodDogOTZ2aDtcclxuICB9XHJcbiAgXHJcbiAgaDEucGFnZS10aXRsZSB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xyXG4gICAgbWFyZ2luLWJvdHRvbTogMzNweDtcclxuICAgIHBhZGRpbmctYm90dG9tOiAxNnB4O1xyXG4gICAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xyXG4gICAgYm9yZGVyLWJvdHRvbS1zdHlsZTogc29saWQ7XHJcbiAgICBtYXJnaW46IDEuMnJlbTtcclxuICB9XHJcblxyXG4gIC5ib3JkZXItY29sb3Itc3RhdGlje1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjMDQ2NDkyO1xyXG4gIH1cclxuXHJcbiAgLmNvbG9yLXN0YXRpYyB7XHJcbiAgICBjb2xvcjogIzA0NjQ5MiAhaW1wb3J0YW50O1xyXG4gICAgZm9udC1zaXplOiAxLjRyZW07XHJcbiAgfVxyXG4gIFxyXG4gIC52cyB7XHJcbiAgICBmb250LXNpemU6IDI0cHg7XHJcbiAgfVxyXG5cclxuICAuYm9ycm93ZXItb3B0aW9uc3tcclxuICAgIG1hcmdpbi1ib3R0b206IDE1cHg7XHJcbiAgfVxyXG4gIFxyXG4gIC5tb2RhbC1mb290ZXIge1xyXG4gICAgYnV0dG9uIHtcclxuICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbiAgICAgIG1pbi13aWR0aDogMTQwcHg7XHJcbiAgICAgICYubWF0LXByaW1hcnktb3V0bGluZSB7XHJcbiAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XHJcbiAgICAgICAgYm9yZGVyLXN0eWxlOiBzb2xpZDtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLm1hdC1jaGVja2JveCxcclxuICAubWF0LXJhZGlvLWJ1dHRvbiB7XHJcbiAgICBmb250LWZhbWlseTogaW5oZXJpdDtcclxuICB9XHJcblxyXG4gIC5kZXNjcmlwdGlvbiB7XHJcbiAgICB0ZXh0LWFsaWduOiBjZW50ZXI7XHJcbiAgICBmb250LXNpemU6IDEuNDRlbTtcclxuICB9XHJcblxyXG4gIGgyIHtcclxuICAgIGZvbnQtc2l6ZTogMThweDtcclxuICAgIGZvbnQtd2VpZ2h0OiBib2xkO1xyXG4gIH1cclxuXHJcbiAgLmJ1dHRvbnMge1xyXG4gICAgYnV0dG9uIHtcclxuICAgICAgYmFja2dyb3VuZC1jb2xvcjogIzRmODMwMDtcclxuICAgICAgbWluLXdpZHRoOiAxOTBweDtcclxuICAgICAgZm9udC1mYW1pbHk6IGluaGVyaXQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICA6Om5nLWRlZXAgLm1hdC1yYWRpby1sYWJlbHtcclxuICAgIHdoaXRlLXNwYWNlOiBicmVhay1zcGFjZXMgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIDo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XHJcbiAgICBib3JkZXItY29sb3I6ICMwNDY0OTIgIWltcG9ydGFudDtcclxuICB9XHJcblxyXG4gIDo6bmctZGVlcCAubWF0LXJhZGlvLWlubmVyLWNpcmNsZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDQ2NDkyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBcclxuICA6Om5nLWRlZXAgLm1hdC1yYWRpby1wZXJzaXN0ZW50LXJpcHBsZSB7XHJcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDQ2NDkyICFpbXBvcnRhbnQ7XHJcbiAgfVxyXG5cclxuICBhLCBhOm5vdChbaHJlZl0pOm5vdChbdGFiaW5kZXhdKSwgIGE6bm90KFtocmVmXSk6bm90KFtjbGFzc10pe1xyXG4gICAgY29sb3I6ICMwNDY0OTI7XHJcbn0iLCIjbW9kYWwge1xuICBtYXgtaGVpZ2h0OiA5NnZoO1xufVxuXG5oMS5wYWdlLXRpdGxlIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICB0ZXh0LXRyYW5zZm9ybTogdXBwZXJjYXNlO1xuICBtYXJnaW4tYm90dG9tOiAzM3B4O1xuICBwYWRkaW5nLWJvdHRvbTogMTZweDtcbiAgYm9yZGVyLWJvdHRvbS13aWR0aDogMnB4O1xuICBib3JkZXItYm90dG9tLXN0eWxlOiBzb2xpZDtcbiAgbWFyZ2luOiAxLjJyZW07XG59XG5cbi5ib3JkZXItY29sb3Itc3RhdGljIHtcbiAgYm9yZGVyLWNvbG9yOiAjMDQ2NDkyO1xufVxuXG4uY29sb3Itc3RhdGljIHtcbiAgY29sb3I6ICMwNDY0OTIgIWltcG9ydGFudDtcbiAgZm9udC1zaXplOiAxLjRyZW07XG59XG5cbi52cyB7XG4gIGZvbnQtc2l6ZTogMjRweDtcbn1cblxuLmJvcnJvd2VyLW9wdGlvbnMge1xuICBtYXJnaW4tYm90dG9tOiAxNXB4O1xufVxuXG4ubW9kYWwtZm9vdGVyIGJ1dHRvbiB7XG4gIGZvbnQtZmFtaWx5OiBpbmhlcml0O1xuICBtaW4td2lkdGg6IDE0MHB4O1xufVxuLm1vZGFsLWZvb3RlciBidXR0b24ubWF0LXByaW1hcnktb3V0bGluZSB7XG4gIGJvcmRlci13aWR0aDogMXB4O1xuICBib3JkZXItc3R5bGU6IHNvbGlkO1xufVxuXG4ubWF0LWNoZWNrYm94LFxuLm1hdC1yYWRpby1idXR0b24ge1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cblxuLmRlc2NyaXB0aW9uIHtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBmb250LXNpemU6IDEuNDRlbTtcbn1cblxuaDIge1xuICBmb250LXNpemU6IDE4cHg7XG4gIGZvbnQtd2VpZ2h0OiBib2xkO1xufVxuXG4uYnV0dG9ucyBidXR0b24ge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjNGY4MzAwO1xuICBtaW4td2lkdGg6IDE5MHB4O1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbn1cblxuOjpuZy1kZWVwIC5tYXQtcmFkaW8tbGFiZWwge1xuICB3aGl0ZS1zcGFjZTogYnJlYWstc3BhY2VzICFpbXBvcnRhbnQ7XG59XG5cbjo6bmctZGVlcCAubWF0LXJhZGlvLW91dGVyLWNpcmNsZSB7XG4gIGJvcmRlci1jb2xvcjogIzA0NjQ5MiAhaW1wb3J0YW50O1xufVxuXG46Om5nLWRlZXAgLm1hdC1yYWRpby1pbm5lci1jaXJjbGUge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjMDQ2NDkyICFpbXBvcnRhbnQ7XG59XG5cbjo6bmctZGVlcCAubWF0LXJhZGlvLXBlcnNpc3RlbnQtcmlwcGxlIHtcbiAgYmFja2dyb3VuZC1jb2xvcjogIzA0NjQ5MiAhaW1wb3J0YW50O1xufVxuXG5hLCBhOm5vdChbaHJlZl0pOm5vdChbdGFiaW5kZXhdKSwgYTpub3QoW2hyZWZdKTpub3QoW2NsYXNzXSkge1xuICBjb2xvcjogIzA0NjQ5Mjtcbn0iXX0= */\"","import { ViewEncapsulation } from '@angular/compiler/src/core';\r\nimport { ChangeDetectorRef, Component, ElementRef, Inject, Input, OnInit, Renderer2, ViewChild } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\nimport { Observable, Subject, Unsubscribable } from 'rxjs';\r\nimport { filter, take } from 'rxjs/operators';\r\nimport { ConsentStatusEnum, DisclosureStatusEnum } from 'src/app/models/enums';\r\nimport { IBorrowerViewModel } from 'src/app/models/viewmodels';\r\nimport { ApiService } from 'src/app/shared/api.service';\r\nimport { TcpaVerbiageService } from 'src/app/shared/tcpa-verbiage.service';\r\nimport { HintComponent } from '../hint/hint.component';\r\n\r\ninterface ModalInputData {\r\n parentLoanId: string;\r\n borrower: IBorrowerViewModel;\r\n docDelivery: number;\r\n disclosureStatus: DisclosureStatusEnum;\r\n isLegalDisclaimerConfirmed: boolean;\r\n encompassBorrowerPairId: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-consent-pop-up',\r\n templateUrl: './consent-pop-up.component.html',\r\n styleUrls: ['./consent-pop-up.component.scss']\r\n})\r\nexport class ConsentPopUpComponent implements OnInit {\r\n\r\n /** Show saving indicator */\r\n @Input() isSaving = false;\r\n /** Used to display errors in the UI */\r\n @Input() error: string;\r\n /** Boolean set by the modal to force single user mode */\r\n @Input() isForcedSingleBorrowerMode: boolean;\r\n /** Toggle full / condensed view of the consent text */\r\n showAllText = false;\r\n /** eConsent text shown in the UI */\r\n eConsentText: string = null;\r\n /** Status that is selected in the UI */\r\n selectedConsentStatus: ConsentStatusEnum;\r\n /** Used in UI to compare */\r\n consentStatusEnum = ConsentStatusEnum;\r\n /** Used to show WordPress variables in template */\r\n showCommunicationConsentText = false;\r\n /** Used to show variable in template */\r\n companyName: string;\r\n private subscriptions: Unsubscribable[] = [];\r\n tcpaDisclaimerMarkup: string = null;\r\n privacyUrl: string;\r\n privacyHtml: string;\r\n termsUrl: string;\r\n termsHtml: string;\r\n thirdPartyUrl: string;\r\n thirdPartyHtml: string;\r\n @ViewChild('tcpa', { static: false }) tcpa: ElementRef;\r\n eSignPortalConfigurationLoaded = new Subject();\r\n\r\n\r\n radioControl = new FormControl();\r\n\r\n constructor(public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: ModalInputData, private ref: ChangeDetectorRef, private apiService: ApiService, private renderer: Renderer2,\r\n private tcpaVerbiageService: TcpaVerbiageService, private dialog: MatDialog) { }\r\n\r\n ngOnInit() {\r\n this.eConsentText = 'Test';\r\n this.showCommunicationConsentText = true;\r\n this.apiService.getESignPortalonfiguration().subscribe((config) => {\r\n this.showCommunicationConsentText = config.find(x => x.key == 'config.area.tcpa.enabled').value === 'true' && !this.data.isLegalDisclaimerConfirmed;\r\n this.eConsentText = config.find(x => x.key == 'sys.conf.econsent').value || null;\r\n this.tcpaDisclaimerMarkup = config.find(x => x.key == 'sys.conf.tcpa').value || null;\r\n this.privacyUrl = (config.find(x => x.key == 'clover.editor.footer.privacypolicyurl').value || config.find(x => x.key == 'Legal.PrivacyPolicy.URL.CS').value) || '#';\r\n this.privacyHtml = config.find(x => x.key == 'Legal.PrivacyPolicy.Manual.CS').value || null;\r\n this.termsUrl = (config.find(x => x.key == 'clover.editor.footer.termsofuseurl').value || config.find(x => x.key == 'Legal.TermsOfUse.URL.CS').value) || '#';\r\n this.termsHtml = config.find(x => x.key == 'Legal.TermsOfUse.Manual.CS').value || null;\r\n this.thirdPartyUrl = config.find(x => x.key == 'Legal.ThirdPartySuppliers.URL.CS').value || '#';\r\n this.thirdPartyHtml = config.find(x => x.key == 'Legal.ThirdPartySuppliers.Manual.CS').value || null;\r\n this.eSignPortalConfigurationLoaded.next(true);\r\n });\r\n }\r\n\r\n ngAfterContentInit() {\r\n // Clear errors\r\n this.setError(null);\r\n this.eSignPortalConfigurationLoaded.asObservable().pipe(\r\n filter(Boolean),\r\n take(1)\r\n ).subscribe(() => {\r\n if (this.showCommunicationConsentText) {\r\n const { nativeElement: tcpa } = this.tcpa;\r\n this.tcpaVerbiageService.applyVerbiage(this.renderer, tcpa, this.subscriptions, {\r\n onTermsClick: () => this.onTermsClick(),\r\n onPrivacyClick: () => this.onPrivacyClick(),\r\n onThirdPartyClick: () => this.onThirdPartyClick(),\r\n tcpaDisclaimerMarkup: this.tcpaDisclaimerMarkup,\r\n companyName: this.companyName\r\n });\r\n }\r\n });\r\n\r\n }\r\n\r\n /** Show more / hide text */\r\n onReadMoreClick(): boolean {\r\n this.showAllText = !this.showAllText;\r\n this.ref.markForCheck();\r\n return false;\r\n }\r\n\r\n /** Toggle saving flag */\r\n setIsSaving(isSaving = true): void {\r\n this.isSaving = isSaving;\r\n this.ref.markForCheck();\r\n }\r\n\r\n /**\r\n * Show error message in UI\r\n * @param error Message to display in UI\r\n */\r\n setError(error: string = `An error occurred. Please try again.`): void {\r\n this.error = error;\r\n this.ref.markForCheck();\r\n }\r\n\r\n /**\r\n * Handle terms of use link click\r\n */\r\n onTermsClick(): void {\r\n return this.openModalOrNewWindow(this.termsHtml, 'Terms of Use', this.termsUrl);\r\n }\r\n\r\n /**\r\n * Handle privacy policy link click\r\n */\r\n onPrivacyClick(): void {\r\n return this.openModalOrNewWindow(this.privacyHtml, 'Privacy Policy', this.privacyUrl);\r\n }\r\n\r\n /**\r\n * Handle third party supplier link click\r\n */\r\n onThirdPartyClick(): void {\r\n return this.openModalOrNewWindow(this.thirdPartyHtml, 'Third Party Suppliers', this.thirdPartyUrl);\r\n }\r\n\r\n onSubmit(): void {\r\n // Trigger validation\r\n this.radioControl.setValidators([Validators.required]);\r\n this.radioControl.updateValueAndValidity();\r\n const selectedConsentStatus = this.selectedConsentStatus;\r\n const radioControlValue = this.radioControl.value;\r\n const selectedBorrower = this.data.borrower;\r\n const originalEconsentStatuses = selectedBorrower.eConsent && selectedBorrower.eConsent.consentStatus || null;\r\n\r\n // Clear errors\r\n if (radioControlValue == null || radioControlValue == undefined) {\r\n this.radioControl.setErrors({ required: true });\r\n\r\n return;\r\n }\r\n\r\n this.setError(null);\r\n\r\n if (selectedBorrower.eConsent) {\r\n selectedBorrower.eConsent.consentStatus = selectedConsentStatus;\r\n }\r\n\r\n this.setIsSaving(true);\r\n\r\n this.apiService.updateEConsentDisclosureTrackingData(selectedBorrower, this.data.encompassBorrowerPairId).subscribe(() => {\r\n this.apiService.saveEconsentStatus(selectedBorrower, this.data.parentLoanId, this.showCommunicationConsentText, this.data.disclosureStatus, this.data.docDelivery, 1).subscribe(() => {\r\n this.setIsSaving(false);\r\n this.dialogRef.close({ wasEconsentSuccessful: selectedBorrower.eConsent.consentStatus == ConsentStatusEnum.Accept, borrowerDeclined: selectedBorrower.eConsent.consentStatus == ConsentStatusEnum.Decline });\r\n }, () => {\r\n this.setError(`An error occurred while saving. Please try again.`);\r\n this.setIsSaving(false);\r\n });\r\n }, () => {\r\n this.setError(`An error occurred while updating disclosure tracking log. Please try again.`);\r\n this.setIsSaving(false);\r\n });\r\n }\r\n\r\n private openModalOrNewWindow(modalHtml: string, modalTitle: string, newWindowUrl: string): void {\r\n setTimeout(() => {\r\n if (modalHtml) {\r\n this.dialog.open(HintComponent, {\r\n width: '820px',\r\n data: { title: modalTitle, body: modalHtml }, panelClass: 'custom-hint-dialog'\r\n });\r\n } else {\r\n window.open(newWindowUrl, '_blank');\r\n }\r\n });\r\n return;\r\n }\r\n}\r\n","module.exports = \":host .modal-body {\\n overflow-y: auto;\\n max-height: calc(100vh - 170px);\\n padding: 1rem;\\n}\\n\\n#modal .modal-header {\\n border-bottom: 2px solid #046492;\\n margin-bottom: 1rem;\\n padding: 1rem;\\n}\\n\\n::ng-deep .custom-hint-dialog .mat-dialog-container {\\n padding: 0;\\n}\\n\\n.modal-title {\\n color: #046492;\\n border-bottom: 0;\\n font-weight: 700;\\n text-align: center;\\n text-transform: uppercase;\\n font-size: 1.36rem;\\n}\\n\\n.modal-footer {\\n justify-content: center;\\n border: 0;\\n padding: 0.75rem;\\n}\\n\\n.modal-button {\\n color: #046492;\\n border-color: #046492;\\n border: 1px solid #046492;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvY29tcG9uZW50cy9tb2RhbHMvaGludC9DOlxcQkEuVi4xXFxfd29ya1xcNzJcXHMvc3JjXFxhcHBcXGNvbXBvbmVudHNcXG1vZGFsc1xcaGludFxcaGludC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvY29tcG9uZW50cy9tb2RhbHMvaGludC9oaW50LmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNJO0VBQ0UsZ0JBQUE7RUFDQSwrQkFBQTtFQUNBLGFBQUE7QUNBTjs7QURJRTtFQUNFLGdDQUFBO0VBQ0EsbUJBQUE7RUFDQSxhQUFBO0FDREo7O0FES0c7RUFDRyxVQUFBO0FDRk47O0FETUE7RUFDRSxjQUFBO0VBQ0UsZ0JBQUE7RUFDQSxnQkFBQTtFQUNBLGtCQUFBO0VBQ0EseUJBQUE7RUFDQSxrQkFBQTtBQ0hKOztBRE1BO0VBQ0UsdUJBQUE7RUFDRSxTQUFBO0VBQ0EsZ0JBQUE7QUNISjs7QURNQTtFQUNFLGNBQUE7RUFDRSxxQkFBQTtFQUNBLHlCQUFBO0FDSEoiLCJmaWxlIjoic3JjL2FwcC9jb21wb25lbnRzL21vZGFscy9oaW50L2hpbnQuY29tcG9uZW50LnNjc3MiLCJzb3VyY2VzQ29udGVudCI6WyI6aG9zdCB7XHJcbiAgICAubW9kYWwtYm9keSB7XHJcbiAgICAgIG92ZXJmbG93LXk6IGF1dG87XHJcbiAgICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxNzBweCk7XHJcbiAgICAgIHBhZGRpbmc6IDFyZW07XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAjbW9kYWwgLm1vZGFsLWhlYWRlciB7XHJcbiAgICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzA0NjQ5MjtcclxuICAgIG1hcmdpbi1ib3R0b206IDFyZW07XHJcbiAgICBwYWRkaW5nOiAxcmVtO1xyXG59XHJcblxyXG46Om5nLWRlZXAgLmN1c3RvbS1oaW50LWRpYWxvZyB7XHJcbiAgIC5tYXQtZGlhbG9nLWNvbnRhaW5lcntcclxuICAgICAgcGFkZGluZzogMDtcclxuICB9XHJcbn1cclxuXHJcbi5tb2RhbC10aXRsZSB7XHJcbiAgY29sb3I6ICMwNDY0OTI7XHJcbiAgICBib3JkZXItYm90dG9tOiAwO1xyXG4gICAgZm9udC13ZWlnaHQ6IDcwMDtcclxuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcclxuICAgIHRleHQtdHJhbnNmb3JtOiB1cHBlcmNhc2U7XHJcbiAgICBmb250LXNpemU6IDEuMzZyZW07XHJcbn1cclxuXHJcbi5tb2RhbC1mb290ZXJ7XHJcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XHJcbiAgICBib3JkZXI6IDA7XHJcbiAgICBwYWRkaW5nOiAwLjc1cmVtO1xyXG59XHJcblxyXG4ubW9kYWwtYnV0dG9ue1xyXG4gIGNvbG9yOiAjMDQ2NDkyO1xyXG4gICAgYm9yZGVyLWNvbG9yOiAjMDQ2NDkyO1xyXG4gICAgYm9yZGVyOiAxcHggc29saWQgIzA0NjQ5MjtcclxufVxyXG4gICIsIjpob3N0IC5tb2RhbC1ib2R5IHtcbiAgb3ZlcmZsb3cteTogYXV0bztcbiAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDE3MHB4KTtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuI21vZGFsIC5tb2RhbC1oZWFkZXIge1xuICBib3JkZXItYm90dG9tOiAycHggc29saWQgIzA0NjQ5MjtcbiAgbWFyZ2luLWJvdHRvbTogMXJlbTtcbiAgcGFkZGluZzogMXJlbTtcbn1cblxuOjpuZy1kZWVwIC5jdXN0b20taGludC1kaWFsb2cgLm1hdC1kaWFsb2ctY29udGFpbmVyIHtcbiAgcGFkZGluZzogMDtcbn1cblxuLm1vZGFsLXRpdGxlIHtcbiAgY29sb3I6ICMwNDY0OTI7XG4gIGJvcmRlci1ib3R0b206IDA7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgdGV4dC10cmFuc2Zvcm06IHVwcGVyY2FzZTtcbiAgZm9udC1zaXplOiAxLjM2cmVtO1xufVxuXG4ubW9kYWwtZm9vdGVyIHtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGJvcmRlcjogMDtcbiAgcGFkZGluZzogMC43NXJlbTtcbn1cblxuLm1vZGFsLWJ1dHRvbiB7XG4gIGNvbG9yOiAjMDQ2NDkyO1xuICBib3JkZXItY29sb3I6ICMwNDY0OTI7XG4gIGJvcmRlcjogMXB4IHNvbGlkICMwNDY0OTI7XG59Il19 */\"","import { ChangeDetectionStrategy, Component, Inject, OnInit } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material';\r\n\r\ninterface HintData {\r\n title?: string;\r\n body?: string;\r\n}\r\n\r\n@Component({\r\n selector: 'app-hint',\r\n templateUrl: './hint.component.html',\r\n styleUrls: ['./hint.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class HintComponent implements OnInit {\r\n\r\n constructor(public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: HintData) { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public submit() {\r\n this.dialogRef.close();\r\n }\r\n\r\n}\r\n","module.exports = \"\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsImZpbGUiOiJzcmMvYXBwL2NvbXBvbmVudHMvd2VsY29tZS93ZWxjb21lLmNvbXBvbmVudC5zY3NzIn0= */\"","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-welcome',\r\n templateUrl: './welcome.component.html',\r\n styleUrls: ['./welcome.component.scss']\r\n})\r\nexport class WelcomeComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n// Usage: {{ value | parseDomFromString }}\r\n// This will convert '<div>' to
\r\n@Pipe({\r\n name: 'decodeHtmlEntities',\r\n})\r\nexport class DecodeHtmlEntitiesPipe implements PipeTransform {\r\n constructor() {}\r\n\r\n public transform(value: string): string {\r\n const parser = new DOMParser();\r\n return parser.parseFromString(value, 'text/html').body.textContent;\r\n }\r\n}\r\n","export enum AuthenticationStatusEnum {\r\n Unknown = 0,\r\n ValidPassword = 1,\r\n InvalidPassword = 2,\r\n InvalidUserName = 3,\r\n InActiveUser = 4,\r\n AccountLocked = 5,\r\n InvalidEmailOrSecurityAnswer = 6,\r\n AccountLockFailed = 7,\r\n PasswordExpired = 8,\r\n ResetPasswordOnNextLogin = 9,\r\n }","export enum ESignerRoleEnum {\r\n Borrower = 1,\r\n CoBorrower = 2,\r\n LO = 3\r\n}\r\n\r\nexport enum BorrowerContextTypeEnum {\r\n Borrower = 0,\r\n CoBorrower = 1,\r\n Both = 2,\r\n}\r\n\r\nexport enum ConsentStatusEnum {\r\n None = 0,\r\n Accept = 1,\r\n Decline = 2,\r\n}\r\n\r\nexport enum BooleanTypeEnum {\r\n False = 0,\r\n True = 1,\r\n Null = -1,\r\n}\r\n\r\n\r\nexport enum DisclosureStatusEnum {\r\n NotNeeded = 1,\r\n InitialDisclosureRequired = 2,\r\n ReDisclosureRequired = 3,\r\n RequestInProgress = 4,\r\n DisclosuresCreated = 5,\r\n DisclosuresFailed = 6,\r\n WaitingToBeSigned = 7,\r\n DisclosuresSigned = 8,\r\n Mailed = 9,\r\n SignedOffline = 10,\r\n ExitWorkflow = 11,\r\n ReDisclosuresInProgress = 12,\r\n ReDisclosuresCreated = 13,\r\n ReDisclosuresWaitingToBeSigned = 14,\r\n ReDisclosuresSigned = 15,\r\n ReDisclosuresMailed = 16,\r\n ReDisclosuresSignedOffline = 17,\r\n ReDisclosuresFailed = 18,\r\n AutoEFailed = 19,\r\n AutoECreated = 20,\r\n WaitingForExitWorkflow = 21,\r\n}\r\n\r\nexport enum DocDeliveryTypeEnum {\r\n Mail = 0,\r\n Electronic = 1,\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\r\n\r\n// Usage: {{ value | safeHtml: 'html' }}\r\n@Pipe({\r\n name: 'safeHtml',\r\n})\r\nexport class SafeHtmlPipe implements PipeTransform {\r\n constructor(protected _sanitizer: DomSanitizer) {}\r\n\r\n public transform(\r\n value: string,\r\n type: string = 'html',\r\n ): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\r\n switch (type) {\r\n case 'html':\r\n return this._sanitizer.bypassSecurityTrustHtml(value);\r\n case 'style':\r\n return this._sanitizer.bypassSecurityTrustStyle(value);\r\n case 'script':\r\n return this._sanitizer.bypassSecurityTrustScript(value);\r\n case 'url':\r\n return this._sanitizer.bypassSecurityTrustUrl(value);\r\n case 'resourceUrl':\r\n return this._sanitizer.bypassSecurityTrustResourceUrl(value);\r\n default:\r\n throw new Error(`Invalid safe type specified: ${type}`);\r\n }\r\n }\r\n}","import { HttpClient, HttpResponse } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { throwError, Observable } from \"rxjs\";\r\nimport { map, tap, catchError } from \"rxjs/operators\";\r\nimport { ConsentStatusEnum, DisclosureStatusEnum, DocDeliveryTypeEnum, ESignerRoleEnum } from \"../models/enums\";\r\nimport { IBorrowerViewModel } from \"../models/viewmodels\";\r\nimport { AppSetting } from \"./appSetting\";\r\n\r\n\r\n// export interface IAuthenticationResponseViewModel {\r\n// authentication: IAuthenticationViewModel;\r\n// authenticationRequestType: AuthenticationRequestTypeEnum;\r\n// authenticationStatus: AuthenticationStatusEnum;\r\n// errorMessage: string;\r\n// succeeded: boolean;\r\n// token: string;\r\n// }\r\n\r\nexport interface IChannelViewModel {\r\n borrowerSiteURL: string;\r\n channelId: number;\r\n channelManagerId?: number;\r\n city: string;\r\n cposDefaultLO: number;\r\n cposUrlApproved: boolean;\r\n disclosuresLenderName: string;\r\n displayName: string;\r\n divisions: IDivisionViewModel[];\r\n isWholesale?: boolean;\r\n name: string;\r\n nmlsNumber: string;\r\n phone: string;\r\n state: string;\r\n streetAddress: string;\r\n theme: string;\r\n zip: string;\r\n}\r\nexport interface IDivisionViewModel {\r\n branches: IBranchViewModel[];\r\n city: string;\r\n cposDefaultLO: number;\r\n cposUrlApproved: boolean;\r\n disclosuresLenderName: string;\r\n displayName: string;\r\n divisionId: number;\r\n divisionManagerId?: number;\r\n divisionName: string;\r\n email: string;\r\n isSeparateBusinessEntity: boolean;\r\n nmlsNumber: string;\r\n phone: string;\r\n state: string;\r\n streetAddress: string;\r\n theme: string;\r\n zip: string;\r\n}\r\nexport interface IBranchViewModel {\r\n addressId?: string;\r\n branchId: string;\r\n branchManager?: number;\r\n city: string;\r\n defaultBrokerCompensationAmount?: number;\r\n defaultBrokerCompensationPercent?: number;\r\n disclosuresLenderName: string;\r\n displayName: string;\r\n licenses: object[];\r\n maxCompensation?: number;\r\n minCompensation?: number;\r\n name: string;\r\n phone: string;\r\n priceApprover?: number;\r\n rateApprover?: number;\r\n state: string;\r\n streetAddress: string;\r\n theme: string;\r\n zip: string;\r\n}\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ApiService {\r\n constructor(private http: HttpClient, private appSetting: AppSetting) { }\r\n\r\n public GetSSOLoginUrlForBorrowerPortal() {\r\n const url = `${this.appSetting.apiUrl}/api/security/GetSSOLoginUrlForBorrowerPortal?eSignUrl=${encodeURIComponent(window.location.href)}`;\r\n return this.http.get(url);\r\n }\r\n\r\n public GetESignUrl(loanAppId: string, signerId: string, signerRole: ESignerRoleEnum, isWetSign: string, returnUrl: string) {\r\n const url = `${this.appSetting.apiUrl}/api/ESigningService/GetSigningRoomUrl?loanAppId=${loanAppId}&signerId=${signerId}&signerRole=${signerRole}&isWetSign=${isWetSign}&returnUrl=${returnUrl}`;\r\n return this.http.get(url);\r\n }\r\n\r\n public HandleSignatureEvent(loanAppId: string, documentId: string, signerId: string, signerRole: ESignerRoleEnum, signingRoomId: string, signEvent: string) {\r\n const url = `${this.appSetting.apiUrl}/api/ESigningService/HandleSignatureEvent?loanAppId=${loanAppId}&documentId=${documentId}&signerId=${signerId}&signerRole=${signerRole}&signingRoomId=${signingRoomId}&signEvent=${signEvent}`;\r\n const token = JSON.parse(localStorage.getItem('mmlProfile')).token;\r\n return this.http.get(url, { headers: { Authorization: `Bearer ${token}` } } );\r\n }\r\n\r\n public SignOutSSO() {\r\n let lsid = localStorage.getItem('settings-app-lsid');\r\n const url = `${this.appSetting.apiUrl}/api/security/SignOutSSO`;\r\n const relayState = encodeURIComponent(window.location.origin);\r\n\r\n const params = {\r\n lsid,\r\n relayState\r\n };\r\n\r\n return this.http.post(url, null, { params, responseType: 'text' });\r\n }\r\n\r\n public getCompanyLogo() {\r\n const url = `${this.appSetting.apiUrl}/api/CompanyProfile/BranchLogo/`;\r\n return this.http.get(url);\r\n }\r\n\r\n public getCompany() {\r\n const callTimestamp = new Date().getTime().toString();\r\n const url = `${this.appSetting.apiUrl}/api/CompanyProfileService/GetCompanyBasicInfo/`;\r\n const params = {\r\n callTimestamp,\r\n userId: 'User',\r\n };\r\n return this.http.get(url, { params });\r\n }\r\n\r\n public async verifyAccountStatus(data: any) {\r\n const userAccountId = '123456'; // This odd value is the account id for the esign site.\r\n const callTimestamp = new Date().getTime().toString();\r\n const registerUrl = `${this.appSetting.apiUrl}/api/users/status`;\r\n\r\n const requestBody = {\r\n accountStatusRequestViewModel: {\r\n accountStatus: {\r\n borrowerId: data.borrowerId,\r\n loanId: data.loanId\r\n },\r\n },\r\n };\r\n\r\n const params = {\r\n userAccountId,\r\n callTimestamp,\r\n };\r\n\r\n return this.http\r\n .post(registerUrl, requestBody, { observe: 'response', params });\r\n }\r\n\r\n /**\r\n * Used to create a new user and loan\r\n * @param data\r\n */\r\n public async activateUser(data: any) {\r\n const userAccountId = '123456'; // This odd value is the account id for the esign site.\r\n const callTimestamp = new Date().getTime().toString();\r\n const registerUrl = `${this.appSetting.apiUrl}/api/users/register`;\r\n\r\n const requestBody = {\r\n authenticationRequestViewModel: {\r\n authenticationRequestType: 4,\r\n authentication: {\r\n userAccountName: data.username,\r\n ...data\r\n },\r\n },\r\n };\r\n\r\n const params = {\r\n userAccountId,\r\n callTimestamp,\r\n };\r\n\r\n var useCredentials = false;\r\n\r\n return this.http\r\n .post(registerUrl, requestBody, { observe: 'response', params, withCredentials: useCredentials });\r\n }\r\n\r\n // /**\r\n // * Used by both login and register to handle an authenticated response\r\n // * @param response\r\n // */\r\n // public handleAuthResponseHeaders(response: HttpResponse): void {\r\n // // Store the auth token\r\n // const token = response.headers.get('authorization');\r\n // if (token) {\r\n // this.settings.token = token;\r\n // this.isLoggedIn = true;\r\n // } else {\r\n // console.log('Missing Oauth token in the response header', response.url, response.body, response.status, response.headers);\r\n // }\r\n // }\r\n\r\n // /**\r\n // * Used by both login and register to handle an authenticated response\r\n // * @param response\r\n // */\r\n // public handleAuthResponseBody(response: IAuthenticationResponseViewModel): void {\r\n // // console.log('handleAuthResponseBody', this.settings.userId);\r\n // if (!(response && response.authentication)) {\r\n // console.error(`AUTH ENDPOINT DID NOT RETURN AUTHENTICATION DATA`);\r\n // }\r\n // // Store the loan ID when first logging in\r\n // if (!this.settings.loanId) {\r\n // this.settings.loanId = response.authentication.loanId || null;\r\n // }\r\n // // Store the user ID when first logging in\r\n // this.settings.userId =\r\n // (response.authentication.accountIds &&\r\n // response.authentication.accountIds.length &&\r\n // response.authentication.accountIds[0] &&\r\n // response.authentication.accountIds[0].toString &&\r\n // response.authentication.accountIds[0].toString()) ||\r\n // null;\r\n // // Store the userName when first logging in\r\n // this.settings.userName = response.authentication.userAccountName || null;\r\n // this.settings.userFullName = response.authentication.firstName + ' ' + response.authentication.lastName || null;\r\n // this.settings.ssoUser = response.authentication.isSSOUser || false;\r\n\r\n // this.analytics.mixpanelSuperProps({ 'Loan Id': this.settings.loanId });\r\n // this.analytics.mixpanelSuperProps({ 'CV Guid': this.settings.loanId });\r\n\r\n // this.checkAuthorization = false;\r\n // this.keepAlive();\r\n // this.sessionExpired = false;\r\n\r\n // // Clear the opened loans session cookie in case the browser (e.g., Chrome, Edge) settings have a\r\n // // pick-up-where-you-left-off option that keeps cookies accross sesions.\r\n // this.clearOpenedLoanIdsCookie();\r\n // }\r\n\r\n public authenticateAndGrantOAuthToken(username: string, password: string) {\r\n const url = `${this.appSetting.apiUrl}/api/SecurityService/AuthenticateAndGrantConsumerSiteOAuthToken?serviceAccountUserAccountId=123456`;\r\n\r\n const formData = this.getFormDataForAuth();\r\n formData.append('username', username);\r\n formData.append('password', password);\r\n\r\n return this.http.post(url, formData, { observe: 'response' });\r\n }\r\n\r\n public grantOauthTokenForConsumer(username: string, password: string) {\r\n const url = `${this.appSetting.apiUrl}/api/SecurityService/GrantOauthTokenForConsumer`;\r\n let lsid = localStorage.getItem('settings-app-lsid');\r\n\r\n const formData = this.getFormDataForAuth();\r\n formData.append('username', username);\r\n formData.append('password', password);\r\n formData.append('leadSourceId', lsid);\r\n formData.append('loanId', null);\r\n\r\n return this.http.post(url, formData, { observe: 'response' });\r\n }\r\n\r\n private getFormDataForAuth(): FormData {\r\n const formData = new FormData();\r\n formData.append('client_id', `MmlOAuthClientDescription`);\r\n formData.append('redirect_uri', `https://qa01concierge.newleaflending.com`);\r\n formData.append('scope', `scope-mml-lc`);\r\n formData.append('response_type', `token`);\r\n return formData;\r\n }\r\n\r\n authenticateWithSSSToken() {\r\n const formData = this.getFormDataForAuth();\r\n const endpoint = `${this.appSetting.apiUrl}/api/security/AuthenticateWithSSOToken`;\r\n return this.http.post(endpoint, formData, { observe: 'response', withCredentials: true });\r\n }\r\n\r\n trackPreviewDocs(loanAppId: string, borrowerId: string) {\r\n const endpoint = `${this.appSetting.apiUrl}/api/ESigningService/trackPreviewDocs?loanApplicationId=${loanAppId}&borrowerId=${borrowerId}`;\r\n return this.http.get(endpoint);\r\n }\r\n\r\n getLoanApp(loanAppId: string, borrowerId: string) {\r\n const formData = this.getFormDataForAuth();\r\n const endpoint = `${this.appSetting.apiUrl}/api/Loan/EagerLoadESignPortal?loanAppid=${loanAppId}&borrowerId=${borrowerId}&userAccountId=-1`;\r\n return this.http.get(endpoint);\r\n }\r\n\r\n /**\r\n * Save the eConsent status for borrower\r\n * @param borrower\r\n * @param parent loan id\r\n * @param acceptConsent Is eConsent being accepted\r\n * @param disclosureStatus Disclosure status of the loan\r\n * @param docDelivery DocDelivery of the loan\r\n * @param numberOfConsentingBorrowers Number of borrowers that accept eConsent\r\n */\r\n saveEconsentStatus(borrower: IBorrowerViewModel, loanId: string, showCommunicationConsentText: boolean, disclosureStatus: DisclosureStatusEnum, docDelivery: DocDeliveryTypeEnum, numberOfConsentingBorrowers: number): Observable {\r\n const callTimestamp = new Date().getTime().toString();\r\n const url = `${this.appSetting.apiUrl}/api/ConsumerSiteService/BorrowerEConsent`;\r\n const params = {\r\n callTimestamp,\r\n userId: 'User',\r\n };\r\n\r\n if (borrower.eConsent) {\r\n borrower.eConsent.source = window.location.origin;\r\n }\r\n\r\n // Create a API request for each borrower that needs to be saved\r\n return this.http.post(url, {\r\n borrowerViewModel: borrower,\r\n documentDeliveryType: this.getDocDelivery(disclosureStatus, docDelivery, numberOfConsentingBorrowers),\r\n loanId: loanId,\r\n communicationConsentTextAvailable: showCommunicationConsentText\r\n }, { params }).pipe(map((response) => {\r\n if (response && response.errorMsg) {\r\n throw new Error(response.errorMsg);\r\n } else {\r\n return response;\r\n }\r\n }));\r\n }\r\n\r\n updateEConsentDisclosureTrackingData(borrower: IBorrowerViewModel, encompassBorrowerPairId: string) {\r\n const endpoint = `${this.appSetting.apiUrl}/api/ConsumerSiteService/UpdateEConsentDisclosureTrackingData`;\r\n return this.http.post(endpoint, {borrowerViewModel: borrower, encompassBorrowerPairId: encompassBorrowerPairId});\r\n }\r\n\r\n public getESignPortalonfiguration() {\r\n let lsid = localStorage.getItem('settings-app-lsid');\r\n const url = `${this.appSetting.apiUrl}/api/Configuration/ESignPortal?leadSourceId=${lsid}`;\r\n return this.http.get(url);\r\n }\r\n\r\n public getConsumerSiteConfiguration() {\r\n let lsid = localStorage.getItem('settings-app-lsid');\r\n const url = `${this.appSetting.apiUrl}/api/Configuration/ConsumerSiteConfiguration?leadSourceId=${lsid}`;\r\n return this.http.get(url);\r\n }\r\n\r\n /**\r\n * Set docDelivery in order to disclsoure status\r\n * @param disclosureStatus Disclosure status of the loan\r\n * @param docDelivery DocDelivery of the loan\r\n * @param numberOfConsentingBorrowers Number of borrowers that accept eConsent\r\n */\r\n private getDocDelivery(disclosureStatus: DisclosureStatusEnum, docDelivery: DocDeliveryTypeEnum, numberOfConsentingBorrowers: number): DocDeliveryTypeEnum {\r\n const disclosureCreatedEnums = [DisclosureStatusEnum.DisclosuresCreated, DisclosureStatusEnum.DisclosuresSigned, DisclosureStatusEnum.WaitingToBeSigned];\r\n\r\n if (disclosureCreatedEnums.some(x => x == disclosureStatus)) {\r\n return docDelivery;\r\n } else {\r\n return numberOfConsentingBorrowers > 0 ? DocDeliveryTypeEnum.Electronic : DocDeliveryTypeEnum.Mail\r\n }\r\n }\r\n}\r\n","import { HttpClient } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { AppSetting } from \"./appSetting\";\r\n\r\n@Injectable()\r\nexport class AppConfigService {\r\n constructor(private http: HttpClient) { }\r\n\r\n public GetAppSettings(appSetting: AppSetting): Promise {\r\n return new Promise((resolve: (a: boolean) => void): void => { \r\n this.http.get('../../env.json')\r\n .pipe(map((x: AppSetting) => { \r\n appSetting.apiUrl = x.apiUrl; \r\n resolve(true); \r\n }))\r\n .subscribe(); \r\n });\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AppSetting\r\n{\r\n apiUrl: string;\r\n lsId: string;\r\n\r\n private _token: string | null = null;\r\n public get token(): string | null {\r\n return this._token || localStorage.getItem(AppSettingsProps.token);\r\n }\r\n public set token(value: string | null) {\r\n this._token = value;\r\n if (!value) {\r\n localStorage.removeItem(AppSettingsProps.token);\r\n }\r\n else {\r\n localStorage.setItem(AppSettingsProps.token, value);\r\n }\r\n }\r\n\r\n private _userAccountId: string | null = null;\r\n public get userAccountId(): string | null {\r\n return this._userAccountId || localStorage.getItem(AppSettingsProps.userAccountId);\r\n }\r\n public set userAccountId(value: string | null) {\r\n this._userAccountId = value;\r\n if (!value) {\r\n localStorage.removeItem(AppSettingsProps.userAccountId);\r\n }\r\n else {\r\n localStorage.setItem(AppSettingsProps.userAccountId, value);\r\n }\r\n }\r\n}\r\n\r\nexport enum AppSettingsProps {\r\n token = 'token',\r\n userAccountId = 'userAccountId'\r\n}\r\n","import { HttpErrorResponse, HttpResponse } from \"@angular/common/http\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { ApiService } from \"./api.service\";\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { AuthenticationResponse } from \"../models/authenticationResponse\";\r\nimport { AuthenticationStatusEnum } from \"../models/authenticationStatusEnum\";\r\nimport { AppSetting } from \"./appSetting\";\r\n\r\n@Injectable({providedIn:'root'})\r\nexport class AuthenticationService {\r\n private _companyLogo: string;\r\n constructor(private apiService: ApiService, private appSetting: AppSetting, private cookieService: CookieService) { }\r\n\r\n get companyLogo(): string {\r\n return this._companyLogo;\r\n }\r\n\r\n public async verifyAccountStatus(data: object, successCallback: (body: object) => void, errorCallback: (errorMesage: string) => void) {\r\n const registration = await this.apiService.verifyAccountStatus(data)\r\n registration.subscribe(\r\n (response) => {\r\n if (!response.body.accountExists) {\r\n errorCallback(\"User not found\");\r\n return;\r\n }\r\n successCallback(response.body);\r\n },\r\n (error: HttpErrorResponse) => {\r\n const message = 'An error occurred while verifying account status';\r\n console.warn(message, error);\r\n errorCallback(message);\r\n });\r\n }\r\n\r\n public async activateUser(data: object, successCallback: (body: object) => void, errorCallback: (errorMesage: string) => void) {\r\n const activation = await this.apiService.activateUser(data)\r\n activation.subscribe(\r\n (response) => {\r\n if (response.body.errorMessage) {\r\n errorCallback(response.body.errorMessage === \"User is not valid.\" ? \"Security answer is incorrect\" : response.body.errorMessage);\r\n return;\r\n }\r\n if (response.body.authentication && response.body.authentication.leadSourceId) {\r\n localStorage.setItem('settings-app-lsid', response.body.authentication.leadSourceId.toString());\r\n }\r\n successCallback(response.body)\r\n },\r\n (error: HttpErrorResponse) => {\r\n const message = 'An error occurred while activating a new user';\r\n console.warn(message, error);\r\n errorCallback(message);\r\n });\r\n }\r\n\r\n public authenticateAndGrantOAuthToken(username: string, password: string, successCallback: () => void, errorCallback: (errorMesage: string) => void)\r\n {\r\n this.apiService.authenticateAndGrantOAuthToken(username, password).subscribe(\r\n (data) => {\r\n this.processAuthResponse(data.body.response, successCallback, errorCallback);\r\n },\r\n (error: HttpErrorResponse) => {\r\n const message = 'An error occurred during authentication';\r\n console.warn(message, error);\r\n errorCallback(message);\r\n });\r\n }\r\n\r\n public grantOauthTokenForConsumer(username: string, password: string, successCallback: () => void, errorCallback: (errorMesage: string, statusCode?: number) => void)\r\n {\r\n this.apiService.grantOauthTokenForConsumer(username, password).subscribe(\r\n (data) => {\r\n this.processAuthResponse(data.body.response, successCallback, errorCallback);\r\n },\r\n (error: HttpErrorResponse) => {\r\n console.warn(`An error occurred during authentication`, error);\r\n errorCallback('An error occurred during authentication');\r\n });\r\n }\r\n\r\n public authenticateWithSSOToken() {\r\n this.apiService.authenticateWithSSSToken().subscribe(\r\n (data) => {\r\n this.handleAuthResponse(data);\r\n //if (data.body && data.body.response) {\r\n // this.handleAuthResponseBody(data.body.response);\r\n\r\n //}\r\n },\r\n (error: HttpErrorResponse) => {\r\n\r\n });\r\n }\r\n\r\n public handleAuthResponse(data: HttpResponse): void {\r\n // Store the auth token\r\n const token = data.headers.get('authorization');\r\n if (token) {\r\n this.appSetting.token = token;\r\n this.appSetting.userAccountId =\r\n (data.body.response.authentication.accountIds &&\r\n data.body.response.authentication.accountIds.length &&\r\n data.body.response.authentication.accountIds[0] &&\r\n data.body.response.authentication.accountIds[0].toString &&\r\n data.body.response.authentication.accountIds[0].toString()) ||\r\n null;\r\n\r\n } else {\r\n console.log('Missing Oauth token in the response header', data.url, data.body, data.status, data.headers);\r\n }\r\n }\r\n\r\n ///**\r\n // * Used by both login and register to handle an authenticated response\r\n // * @param response\r\n // */\r\n //public handleAuthResponseBody(response: IAuthenticationResponseViewModel): void {\r\n // // console.log('handleAuthResponseBody', this.settings.userId);\r\n // if (!(response && response.authentication)) {\r\n // console.error(`AUTH ENDPOINT DID NOT RETURN AUTHENTICATION DATA`);\r\n // }\r\n // // Store the loan ID when first logging in\r\n // if (!this.settings.loanId) {\r\n // this.settings.loanId = response.authentication.loanId || null;\r\n // }\r\n // // Store the user ID when first logging in\r\n // this.settings.userId =\r\n // (response.authentication.accountIds &&\r\n // response.authentication.accountIds.length &&\r\n // response.authentication.accountIds[0] &&\r\n // response.authentication.accountIds[0].toString &&\r\n // response.authentication.accountIds[0].toString()) ||\r\n // null;\r\n // // Store the userName when first logging in\r\n // this.settings.userName = response.authentication.userAccountName || null;\r\n // this.settings.userFullName = response.authentication.firstName + ' ' + response.authentication.lastName || null;\r\n // this.settings.ssoUser = response.authentication.isSSOUser || false;\r\n\r\n // this.analytics.mixpanelSuperProps({ 'Loan Id': this.settings.loanId });\r\n // this.analytics.mixpanelSuperProps({ 'CV Guid': this.settings.loanId });\r\n // this.keepAlive();\r\n // this.sessionExpired = false;\r\n\r\n // // Clear the opened loans session cookie in case the browser (e.g., Chrome, Edge) settings have a\r\n // // pick-up-where-you-left-off option that keeps cookies accross sesions.\r\n // this.clearOpenedLoanIdsCookie();\r\n //}\r\n\r\n public checkIfUserIsLoggedIn(){\r\n //Check mml-auth-token and mml-profile\r\n var mmlProfile: AuthenticationResponse = null;\r\n var mmlAuthToken = this.cookieService.get('mml-auth-token');\r\n var value = localStorage.getItem('mmlProfile');\r\n if (value) {\r\n mmlProfile = JSON.parse(value);\r\n }\r\n return !!mmlAuthToken && !!mmlProfile && mmlProfile.succeeded;\r\n }\r\n\r\n public clearCookie(cookieName: string) {\r\n this.cookieService.delete(cookieName);\r\n }\r\n\r\n private processAuthResponse(response: AuthenticationResponse, successCallback: () => void, errorCallback: (errorMesage: string) => void) {\r\n if (response.succeeded) {\r\n // Set the Token stored in App Settings to null since it will not be sued when authenticating LO\r\n this.appSetting.token = null;\r\n // Add to local storage\r\n localStorage.setItem('mmlProfile', JSON.stringify(response));\r\n localStorage.setItem('mmlProfileTC', (new Date()).toString());\r\n localStorage.setItem('mml-auth-token', response.token);\r\n if (response.authentication && response.authentication.leadSourceId) {\r\n localStorage.setItem('settings-app-lsid', response.authentication.leadSourceId.toString());\r\n }\r\n //cookie expires in 30 minutes\r\n const cookieExpirationDate = new Date();\r\n cookieExpirationDate.setMinutes(cookieExpirationDate.getMinutes() + 30);\r\n this.cookieService.set('mml-auth-token', response.token, cookieExpirationDate, '', '', false, 'Lax');\r\n successCallback();\r\n }\r\n else if (response.authenticationStatus == AuthenticationStatusEnum.PasswordExpired || response.authenticationStatus == AuthenticationStatusEnum.ResetPasswordOnNextLogin){\r\n errorCallback('Password must be changed!');\r\n }\r\n else if (response.authenticationStatus == AuthenticationStatusEnum.AccountLocked){\r\n errorCallback('User account is locked !');\r\n }\r\n else {\r\n errorCallback('Whoops, the Email or Password is incorrect');\r\n }\r\n }\r\n\r\n public getCompanyLogo() {\r\n this.apiService.getCompanyLogo().subscribe(\r\n (response) => {\r\n let imageType = null;\r\n switch (response[0]) {\r\n case '/':\r\n imageType = 'jpg';\r\n break;\r\n case 'i':\r\n imageType = 'png';\r\n break;\r\n case 'R':\r\n imageType = 'gif';\r\n break;\r\n case 'P':\r\n imageType = 'svg+xml'\r\n break;\r\n }\r\n this._companyLogo = 'data:image/' + imageType + ';base64,' + String(response);\r\n },\r\n (error: HttpErrorResponse) => {\r\n console.warn(`An error occurred while getting the company logo.`, error);\r\n });\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpEvent, HttpInterceptor, HttpHandler, HttpRequest } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { AppSetting } from 'src/app/shared/appSetting';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { CookieService } from 'ngx-cookie-service';\r\n\r\n@Injectable()\r\nexport class HttpInterceptorService implements HttpInterceptor {\r\n /**\r\n * Append bearer token to auth settings\r\n * @param settings\r\n */\r\n constructor(private settings: AppSetting, private cookieService: CookieService) {}\r\n\r\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\r\n // If token present, add bearer token\r\n var headers = req.headers;\r\n if (this.settings.token) {\r\n headers = headers.set('Authorization', this.settings.token);\r\n }\r\n else if (this.cookieService.check('mml-auth-token')){\r\n let token = this.cookieService.get('mml-auth-token')\r\n headers = headers.set('Authorization', 'Bearer ' + token);\r\n } else {\r\n let token = localStorage.getItem('mml-auth-token');\r\n if (token) {\r\n headers = headers.set('Authorization', 'Bearer ' + token);\r\n }\r\n }\r\n headers = headers.set('x-cv-client-id', 'esignportal');\r\n // Create headers element\r\n // Clone request, add headers\r\n const cloneReq = next.handle(req.clone({ headers: headers }));\r\n // Return request, handle errors globally here\r\n return cloneReq.pipe(catchError(error => {\r\n // If forbidden error, end session\r\n if (error.status === 401 || error.status === 403) {\r\n }\r\n // Catch and rethrow error\r\n return throwError(error);\r\n }) as any);\r\n }\r\n}\r\n","import { Injectable, Renderer2 } from '@angular/core';\r\nimport { Unsubscribable } from 'rxjs';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TcpaVerbiageService {\r\n\r\n constructor() { }\r\n\r\n applyVerbiage(renderer: Renderer2, target: HTMLElement, subscriptions: Unsubscribable[], options: TcpaVerbiageOptions) {\r\n if (options.tcpaDisclaimerMarkup) {\r\n this.applyDisclaimerMarkup(renderer, target, options.tcpaDisclaimerMarkup);\r\n }\r\n Array.prototype.forEach.call(target.querySelectorAll('*[data-tag]'), (element: Element) => {\r\n for (const tag of element.getAttribute('data-tag').split(/\\s+/)) {\r\n this.applyTag(renderer, element, tag, subscriptions, options);\r\n }\r\n });\r\n }\r\n\r\n private applyTag(\r\n renderer: Renderer2,\r\n element: Element,\r\n tag: string,\r\n subscriptions: Unsubscribable[],\r\n {onTermsClick, onPrivacyClick, onThirdPartyClick, companyName}: TcpaVerbiageOptions\r\n ) {\r\n switch (tag) {\r\n case 'link-terms':\r\n return this.setTagLink(renderer, element, subscriptions, _ => onTermsClick && onTermsClick());\r\n case 'link-privacy':\r\n return this.setTagLink(renderer, element, subscriptions, _ => onPrivacyClick && onPrivacyClick());\r\n case 'link-thirdparty':\r\n return this.setTagLink(renderer, element, subscriptions, _ => onThirdPartyClick && onThirdPartyClick());\r\n case 'text-companyName':\r\n return this.setTagText(renderer, element, companyName);\r\n }\r\n }\r\n private unescapeHtml(renderer: Renderer2, str: string) {\r\n const div = renderer.createElement('div');\r\n div.innerHTML = str;\r\n return div.textContent;\r\n }\r\n private applyDisclaimerMarkup(renderer: Renderer2, element: Element, markup: string) {\r\n // we will assume this is valid markup\r\n element.innerHTML = this.unescapeHtml(renderer, markup);\r\n }\r\n private setTagLink(renderer: Renderer2, element: Element, subscriptions: Unsubscribable[], clickHandler: (event: any) => (boolean|void)) {\r\n subscriptions.push({ unsubscribe: renderer.listen(element, 'click', clickHandler) });\r\n renderer.setProperty(element, 'tabindex', 0);\r\n }\r\n private setTagText(_renderer: Renderer2, element: Element, text: string) {\r\n element.textContent = text;\r\n }\r\n}\r\n\r\nexport interface TcpaVerbiageOptions {\r\n onTermsClick?: () => void;\r\n onPrivacyClick?: () => void;\r\n onThirdPartyClick?: () => void;\r\n tcpaDisclaimerMarkup?: string;\r\n companyName: string;\r\n}\r\n","import { AbstractControl, FormControl, FormGroup, FormGroupDirective, NgForm, ValidatorFn } from '@angular/forms';\r\nimport { ErrorStateMatcher } from '@angular/material/core';\r\n\r\n/**\r\n * Form Group Validators\r\n */\r\nexport class AuthorizationFormValidators {\r\n static samePasswords(group: FormGroup | AbstractControl) {\r\n const password = group.get('password').value;\r\n const passwordConfirm = group.get('confirmPassword').value;\r\n\r\n // If both are blank or both are equal, do not show an error\r\n return (!password && !passwordConfirm) || password === passwordConfirm ? null : { notSamePassword: true };\r\n }\r\n static oneLowercase(control: FormControl) {\r\n return !control.value || AuthorizationFormUtils.hasLowercase(control.value) ? null : { oneLowercase: true };\r\n }\r\n static oneUppercase(control: FormControl) {\r\n return !control.value || AuthorizationFormUtils.hasUppercase(control.value) ? null : { oneUppercase: true };\r\n }\r\n static oneDigit(control: FormControl) {\r\n return !control.value || AuthorizationFormUtils.hasDigit(control.value) ? null : { oneDigit: true };\r\n }\r\n static specialCharacters(control: FormControl) {\r\n return !control.value || AuthorizationFormUtils.hasSpecialCharacter(control.value) ? null : { specialCharacters: true };\r\n }\r\n static eightCharacters(control: FormControl) {\r\n return !control.value || AuthorizationFormUtils.hasEightCharacters(control.value) ? null : { specialCharacters: true };\r\n }\r\n static doesNotEqual(comparisonString: string): ValidatorFn {\r\n return (control: AbstractControl) => {\r\n return control.value === comparisonString ? { exactMatchNotAllowed: true } : null;\r\n };\r\n }\r\n static validEmail(control: FormControl) {\r\n if (!control.value) {\r\n return null;\r\n }\r\n return AuthorizationFormUtils.isValidEmail(control.value) ? null : { validEmail: true };\r\n }\r\n}\r\n\r\n/**\r\n * Reusable tests can be used in validators or in other Angular components\r\n */\r\nexport class AuthorizationFormUtils {\r\n static hasLowercase(value: string) {\r\n return /[a-z]/.test(value);\r\n }\r\n static hasUppercase(value: string) {\r\n return /[A-Z]/.test(value);\r\n }\r\n static hasDigit(value: string) {\r\n return /[0-9]/.test(value);\r\n }\r\n static hasSpecialCharacter(value: string) {\r\n return /[!@#\\$%\\^\\&*\\)\\(+=._-]/.test(value);\r\n }\r\n static hasEightCharacters(value: string) {\r\n return value && value.length && value.length >= 8;\r\n }\r\n static isValidEmail(value: string) {\r\n // Note there is no perfect email regex, hence the 99.99%. Taken from https://emailregex.com/\r\n // The same expression is used in OPOS...\r\n return /^(([^<>()\\[\\]\\\\.,;:\\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,}))$/.test(value);\r\n }\r\n}\r\n\r\n\r\n\r\n\r\n/**\r\n * Error state matchers for Material Input fields\r\n */\r\n\r\nexport class RepeatPasswordErrorStateMatcher implements ErrorStateMatcher {\r\n isErrorState(control: FormControl | null, form: FormGroupDirective | NgForm | null): boolean {\r\n return (\r\n control\r\n && (control.invalid || control.parent.get('password').value !== control.value)\r\n && (control.touched || (form && form.submitted))\r\n );\r\n }\r\n}\r\n\r\n","import { Injectable } from \"@angular/core\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\n\r\n@Injectable({providedIn:'root'})\r\nexport class UserService {\r\n private userLoggedInState = new BehaviorSubject(false);\r\n userLoggedIn$ = this.userLoggedInState.asObservable();\r\n \r\n /*get userLoggedIn$()\r\n { return this.userLoggedInState.asObservable();}*/\r\n\r\n constructor() { }\r\n\r\n public setUserLoggedIn(value: boolean) {\r\n this.userLoggedInState.next(value);\r\n }\r\n}\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};\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\n\r\nif (environment.production) {\r\n enableProdMode();\r\n}\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"],"sourceRoot":"webpack:///"}