{"version":3,"file":"main.js","mappings":"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","sources":["./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/breadcrumb-header/breadcrumb-header.component.ts","./src/app/breadcrumb-header/breadcrumb-header.component.html","./src/app/breadcrumb-trail/breadcrumb-trail.component.ts","./src/app/breadcrumb-trail/breadcrumb-trail.component.html","./src/app/breadcrumb-trail/breadcrumb/breadcrumb.component.ts","./src/app/breadcrumb-trail/breadcrumb/breadcrumb.component.html","./src/app/components/metal-level-box/metal-level-box.component.ts","./src/app/components/metal-level-box/metal-level-box.component.html","./src/app/components/snackbar/snackbar.component.ts","./src/app/components/snackbar/snackbar.component.html","./src/app/enrollment-button/enrollment-button.component.ts","./src/app/enrollment-button/enrollment-button.component.html","./src/app/enrollment-button/warning-modal/warning-modal.component.ts","./src/app/enrollment-button/warning-modal/warning-modal.component.html","./src/app/material-module.ts","./src/app/models/selected-plan.ts","./src/app/page-not-found/page-not-found.component.ts","./src/app/page-not-found/page-not-found.component.html","./src/app/plan-card-group/plan-card-group.component.ts","./src/app/plan-card-group/plan-card-group.component.html","./src/app/plan-card/plan-card.component.ts","./src/app/plan-card/plan-card.component.html","./src/app/plan-confirmation/plan-confirmation.component.ts","./src/app/plan-confirmation/plan-confirmation.component.html","./src/app/plan-details-modal/plan-details-modal.component.ts","./src/app/plan-details-modal/plan-details-modal.component.html","./src/app/plan-grid/plan-grid.component.ts","./src/app/plan-grid/plan-grid.component.html","./src/app/plan-list/plan-list.component.ts","./src/app/plan-list/plan-list.component.html","./src/app/send-to-ease-modal/send-to-ease-modal.component.ts","./src/app/send-to-ease-modal/send-to-ease-modal.component.html","./src/app/services/core-api.service.ts","./src/app/services/utils.service.ts","./src/main.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.scss']\r\n})\r\nexport class AppComponent {\r\n title = 'PlanConfirmationApp';\r\n constructor() { }\r\n}\r\n\r\n","\r\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\nimport { AppComponent } from './app.component';\r\nimport { PlanConfirmationComponent } from './plan-confirmation/plan-confirmation.component';\r\nimport { PlanGridComponent } from './plan-grid/plan-grid.component';\r\nimport { PageNotFoundComponent } from './page-not-found/page-not-found.component';\r\n\r\nimport { MaterialModule } from './material-module';\r\nimport { BreadcrumbHeaderComponent } from './breadcrumb-header/breadcrumb-header.component';\r\nimport { BreadcrumbTrailComponent } from './breadcrumb-trail/breadcrumb-trail.component';\r\nimport { BreadcrumbComponent } from './breadcrumb-trail/breadcrumb/breadcrumb.component';\r\nimport { PlanDetailsModalComponent } from './plan-details-modal/plan-details-modal.component';\r\nimport { MetalLevelBoxComponent } from './components/metal-level-box/metal-level-box.component';\r\nimport { PlanListComponent } from 'src/app/plan-list/plan-list.component';\r\nimport { PlanCardComponent } from './plan-card/plan-card.component';\r\nimport { PlanCardGroupComponent } from './plan-card-group/plan-card-group.component';\r\nimport { EnrollmentButtonComponent } from './enrollment-button/enrollment-button.component';\r\nimport { WarningModalComponent } from './enrollment-button/warning-modal/warning-modal.component';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { SnackBarComponent } from './components/snackbar/snackbar.component';\r\nimport { SendToEaseModalComponent } from './send-to-ease-modal/send-to-ease-modal.component';\r\n\r\nconst appRoutes: Routes = [\r\n { path: 'planConfirmation/:quoteId/:enrollmentId', component: PlanConfirmationComponent },\r\n { path: 'planconfirmation/:quoteId/:enrollmentId', component: PlanConfirmationComponent },\r\n { path: '**', component: PageNotFoundComponent }\r\n];\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n PlanConfirmationComponent,\r\n PlanGridComponent,\r\n PageNotFoundComponent,\r\n BreadcrumbHeaderComponent,\r\n BreadcrumbTrailComponent,\r\n BreadcrumbComponent,\r\n PlanDetailsModalComponent,\r\n MetalLevelBoxComponent,\r\n PlanListComponent,\r\n PlanCardComponent,\r\n PlanCardGroupComponent,\r\n EnrollmentButtonComponent,\r\n WarningModalComponent,\r\n SnackBarComponent,\r\n SendToEaseModalComponent\r\n ],\r\n //entryComponents: [PlanDetailsModalComponent, WarningModalComponent, SnackBarComponent,SendToEaseModalComponent],\r\n imports: [\r\n RouterModule.forRoot(appRoutes, { enableTracing: true, relativeLinkResolution: 'corrected' }),\r\n BrowserModule,\r\n BrowserAnimationsModule,\r\n MaterialModule,\r\n HttpClientModule\r\n ],\r\n exports: [WarningModalComponent],\r\n providers: [CookieService],\r\n bootstrap: [AppComponent]\r\n})\r\nexport class AppModule {}\r\n","import { Component, OnInit } from '@angular/core';\r\nimport { CoreApiService } from '../services/core-api.service';\r\nimport { QuoteSummary } from '../models/quote-summary';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { SnackBarComponent } from '../components/snackbar/snackbar.component';\r\n\r\n@Component({\r\n selector: 'breadcrumb-header',\r\n templateUrl: './breadcrumb-header.component.html',\r\n styleUrls: ['./breadcrumb-header.component.scss']\r\n})\r\nexport class BreadcrumbHeaderComponent implements OnInit {\r\n\r\n public quoteSummary: QuoteSummary;\r\n public quoteid: number;\r\n public companyName: string;\r\n \r\n constructor(private api: CoreApiService,\r\n private route: ActivatedRoute,\r\n private toast: MatSnackBar) { }\r\n\r\n openSnackBar() {\r\n this.toast.openFromComponent(SnackBarComponent, {\r\n duration: 4000,\r\n horizontalPosition: 'left',\r\n verticalPosition: 'bottom',\r\n\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.quoteid = this.api.decryptedQuoteId(this.route.snapshot.params['quoteId']);\r\n this.api.getQuoteSummary(this.api.decryptedQuoteId(this.route.snapshot.params['quoteId']), this.api.decryptedEnrollmentId(this.route.snapshot.params['enrollmentId'])).subscribe(qs => {\r\n if (qs) {\r\n this.quoteSummary = qs;\r\n } else {\r\n console.error('Invalid Quote ID and no quote summary information returned');\r\n }\r\n });\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n

These are the plans included in your quote. Please review and confirm before continuing.

\r\n
\r\n
\r\n
\r\n","import { Component, AfterContentInit, Input, ContentChildren, QueryList } from '@angular/core';\r\nimport { BreadcrumbComponent } from './breadcrumb/breadcrumb.component';\r\n\r\n@Component({\r\n selector: 'breadcrumb-trail',\r\n templateUrl: './breadcrumb-trail.component.html',\r\n styleUrls: ['./breadcrumb-trail.component.scss']\r\n})\r\nexport class BreadcrumbTrailComponent implements AfterContentInit {\r\n\r\n @Input()\r\n spacing: number;\r\n\r\n @Input()\r\n height: number;\r\n\r\n @ContentChildren(BreadcrumbComponent)\r\n breadcrumbs: QueryList;\r\n\r\n private _totalWidth: number;\r\n set totalWidth(totalWidth: number) {\r\n this._totalWidth = totalWidth;\r\n }\r\n\r\n get totalWidth() {\r\n return this._totalWidth;\r\n }\r\n\r\n setupBreadCrumbs(list: QueryList) {\r\n let calculatedTotalWidth = 0.0;\r\n list.forEach((b) => {\r\n b.left = calculatedTotalWidth;\r\n b.height = this.height;\r\n b.isFirst = b == list.first;\r\n b.isLast = b == list.last;\r\n\r\n calculatedTotalWidth += b.totalWidth;\r\n if (!b.isLast) {\r\n calculatedTotalWidth += this.spacing;\r\n }\r\n });\r\n\r\n this.totalWidth = calculatedTotalWidth;\r\n }\r\n\r\n ngAfterContentInit() {\r\n this.setupBreadCrumbs(this.breadcrumbs);\r\n this.breadcrumbs.changes.subscribe(list => this.setupBreadCrumbs(list));\r\n }\r\n}\r\n","
\r\n \r\n \r\n \r\n
\r\n","import { Component, Input, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: '[breadcrumb]',\r\n templateUrl: './breadcrumb.component.html',\r\n styleUrls: ['./breadcrumb.component.scss']\r\n})\r\nexport class BreadcrumbComponent {\r\n\r\n @Input()\r\n width: number;\r\n\r\n @Input()\r\n color: string;\r\n\r\n @Input()\r\n label: string;\r\n\r\n private _left: number;\r\n private _height: number;\r\n private _isFirst: boolean;\r\n private _isLast: boolean;\r\n private _path: string;\r\n\r\n set left(left: number) {\r\n this._left = left;\r\n this.updatePath();\r\n }\r\n\r\n set height(height: number) {\r\n this._height = height;\r\n this.updatePath();\r\n }\r\n\r\n set isFirst(isFirst: boolean) {\r\n this._isFirst = isFirst;\r\n this.updatePath();\r\n }\r\n\r\n set isLast(isLast: boolean) {\r\n this._isLast = isLast;\r\n this.updatePath();\r\n }\r\n\r\n set path(path: string) {\r\n this._path = path;\r\n }\r\n\r\n get path() {\r\n return this._path;\r\n }\r\n\r\n get height() {\r\n return this._height;\r\n }\r\n\r\n get totalWidth() {\r\n // return height because each end cap is height/2 wide\r\n return this._isFirst ? this._height + this.width : this._height / 2 + this.width;\r\n }\r\n\r\n get textLeft() {\r\n return this._isFirst ? this._left + this._height / 2 + this.width / 2 : this._left + this.width / 2;\r\n }\r\n\r\n updatePath() {\r\n let halfHeight = this._height / 2;\r\n let newPath = this._isFirst\r\n // The first piece considers the rounded edge of the arc to be at x=0\r\n ? `M ${this._left + halfHeight}, 0.0 `\r\n // Subsequent pieces consider the label section to be at x=0, with the arror \"tail\" at x=-halfHeight\r\n : `M ${this._left}, 0.0 `;\r\n\r\n // The top of the label section is \"width\" long\r\n newPath += `h ${this.width} `;\r\n\r\n newPath += this._isLast\r\n // The last piece ends with an arc\r\n ? `a ${halfHeight}, ${halfHeight}, 0, 0, 1, 0.0, ${this._height} `\r\n // Previous pieces end with an arrow \"head\"\r\n : `l ${halfHeight}, ${halfHeight} l ${-halfHeight}, ${halfHeight} `;\r\n\r\n // The bottom of the label section is \"width\" long\r\n newPath += `h ${-this.width} `;\r\n\r\n newPath += this._isFirst\r\n // The first piece starts with an arc at x = 0\r\n ? `a ${halfHeight}, ${halfHeight}, 0, 0, 1, 0.0, ${-this._height}`\r\n // Subsequent pieces start with an arrow \"tail\" that goes left of x=0 to \"fit\" into the previous arrow \"head\"\r\n : `h ${-halfHeight} l ${halfHeight}, ${-halfHeight} l ${-halfHeight}, ${-halfHeight} h ${halfHeight}`;\r\n\r\n this.path = newPath;\r\n }\r\n}\r\n","\r\n{{label}}\r\n","import { Component, OnInit, OnChanges, Input, Output } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-metal-level-box',\r\n templateUrl: './metal-level-box.component.html',\r\n styleUrls: ['./metal-level-box.component.scss']\r\n})\r\nexport class MetalLevelBoxComponent implements OnInit, OnChanges {\r\n\r\n metalLevelClass = 'none';\r\n @Input() metalLevel = '';\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnChanges() {\r\n switch (this.metalLevel.toLowerCase()) {\r\n case 'gold':\r\n this.metalLevelClass = 'gold metal-box';\r\n break;\r\n case 'platinum':\r\n this.metalLevelClass = 'platinum metal-box';\r\n break;\r\n case 'silver':\r\n this.metalLevelClass = 'silver metal-box';\r\n break;\r\n case 'bronze':\r\n this.metalLevelClass = 'bronze metal-box';\r\n break;\r\n default:\r\n this.metalLevelClass = 'none';\r\n break;\r\n }\r\n }\r\n\r\n}\r\n","
\r\n {{metalLevel}} \r\n
\r\n","import { Component } from '@angular/core';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\n\r\n@Component({\r\n selector: 'snackbar.component',\r\n templateUrl: './snackbar.component.html',\r\n styleUrls: ['./snackbar.component.scss']\r\n})\r\nexport class SnackBarComponent {}\r\n","
\r\n error\r\n

Error occured. Please try again.

\r\n
\r\n\r\n","import { Component, OnInit, Input } from '@angular/core';\r\nimport { QuoteSummary } from '../models/quote-summary';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { CoreApiService } from '../services/core-api.service';\r\nimport { MatDialog } from '@angular/material/dialog';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { WarningModalComponent } from './warning-modal/warning-modal.component';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport { oeresult } from '../models/oeresult';\r\nimport { SelectedPlan } from '../models/selected-plan';\r\nimport { SnackBarComponent } from '../components/snackbar/snackbar.component';\r\n\r\n\r\n@Component({\r\n selector: 'app-enrollment-button',\r\n templateUrl: './enrollment-button.component.html',\r\n styleUrls: ['./enrollment-button.component.scss']\r\n})\r\nexport class EnrollmentButtonComponent implements OnInit {\r\n public cookieValue: string;\r\n @Input() selectedPlans: Object;\r\n @Input() allPlansByLoc: Object;\r\n public quoteSummary: QuoteSummary;\r\n public quoteid: string;\r\n public enrollmentId: string;\r\n public benAdmin: string;\r\n public enrollmentmethod: string;\r\n public oeResult: oeresult;\r\n public isLoading = false;\r\n public isDisabled = true;\r\n public redirectToAwsUrl: string;\r\n public awsRedirectUrl: string;\r\n loc = [];\r\n locWithPlans = [];\r\n\r\n constructor(\r\n private api: CoreApiService,\r\n private route: ActivatedRoute,\r\n public dialog: MatDialog,\r\n private cookieService: CookieService,\r\n private toast: MatSnackBar\r\n ) {}\r\n openSnackBar() {\r\n this.isLoading = false;\r\n this.toast.openFromComponent(SnackBarComponent, {\r\n duration: 4000,\r\n horizontalPosition: 'left',\r\n verticalPosition: 'bottom'\r\n });\r\n if (!this.isLoading) {\r\n this.dialog.closeAll();\r\n }\r\n }\r\n ngOnInit() {\r\n this.quoteid = this.api.decryptedQuoteId(this.route.snapshot.params['quoteId']);\r\n this.enrollmentId = this.api.decryptedEnrollmentId(this.route.snapshot.params['enrollmentId']);\r\n this.cookieValue = this.cookieService.get('canvasUrl'); // To Get Cookie value\r\n this.api\r\n .getQuoteSummary(\r\n this.api.decryptedQuoteId(this.route.snapshot.params['quoteId']),\r\n this.api.decryptedEnrollmentId(this.route.snapshot.params['enrollmentId'])\r\n )\r\n .subscribe(qs => {\r\n this.quoteSummary = qs;\r\n });\r\n } \r\n\r\n get hasSelectedPlans(): boolean {\r\n if (this.selectedPlans) {\r\n for (const key in this.selectedPlans) {\r\n if (this.selectedPlans.hasOwnProperty(key)) {\r\n const value = this.selectedPlans[key];\r\n if (value.length > 0) {\r\n this.isDisabled = false;\r\n return true;\r\n }\r\n }\r\n }\r\n }\r\n this.isDisabled = true;\r\n return false;\r\n }\r\n \r\n confirmEnrollment(): void {\r\n\r\n // Checks for lines of coverage that have no selected plans.\r\n // If the line of coverage has no selections, it's added to an array. \r\n this.getPlans();\r\n for (const key in this.selectedPlans) {\r\n if (this.selectedPlans.hasOwnProperty(key)) {\r\n const value = this.selectedPlans[key];\r\n if (value.length === 0) {\r\n if (this.locWithPlans.indexOf(key) > -1) {\r\n if (key === 'Voluntary') {\r\n this.loc.push('Critical Illness, Accident, Hospital Indemnity');\r\n continue;\r\n }\r\n else if (key === 'LegalServices') {\r\n this.loc.push('Legal Services');\r\n continue;\r\n }\r\n else if (key === 'IdentityProtection') {\r\n this.loc.push('Identity Protection');\r\n continue;\r\n }\r\n this.loc.push(key);\r\n }\r\n else {\r\n continue;\r\n }\r\n }\r\n }\r\n }\r\n // Call the sendSelections method to persist any plans that were selected without saving them first\r\n this.sendSelections();\r\n // If the Array is empty, call the send enrollment method.\r\n // Otherwise, call the warning dialog method.\r\n if (this.loc.length === 0) {\r\n this.isLoading = true;\r\n this.submitEnrollment();\r\n } else {\r\n this.scrollToCenter();\r\n this.openWarningDialog();\r\n }\r\n }\r\n\r\n openWarningDialog() {\r\n const dialogRef = this.dialog.open(WarningModalComponent, {\r\n width: '580px', height: \"300px\",\r\n disableClose: true,\r\n data: { parentComponent: this }\r\n });\r\n dialogRef.afterClosed().subscribe(() => {\r\n this.loc = [];\r\n });\r\n }\r\n\r\n // This script will scroll the page to the position where the modal is open.\r\n scrollToCenter() {\r\n const win: any = window;\r\n const sizes = win.Sfdc.canvas.client.size();\r\n const offSet = 200;\r\n const top = (sizes.heights.contentHeight / 2) - offSet;\r\n const args = JSON.stringify({ oeScrollToTop: true, top: top });\r\n return this.getCanvasToken().then((token: any) => {\r\n window.top.postMessage(args, token.client.targetOrigin);\r\n });\r\n }\r\n\r\n isCanvas() {\r\n const isInCanvas = window !== window.top;\r\n return isInCanvas;\r\n }\r\n\r\n private parseCanvasToken(signedRequest) {\r\n const win:any= window;\r\n const part = signedRequest.split('.')[1];\r\n const decodedToken = win.Sfdc.canvas.decode(part);\r\n const canvasToken = JSON.parse(decodedToken);\r\n return canvasToken;\r\n }\r\n\r\n private getCanvasToken() {\r\n const win: any = window;\r\n return new Promise((resolve, reject) => {\r\n win.Sfdc.canvas.client.refreshSignedRequest((data: any) => {\r\n if (data.status === 200) {\r\n const signedRequest = data.payload.response;\r\n const token = this.parseCanvasToken(signedRequest);\r\n resolve(token);\r\n } else {\r\n reject(new Error('Error occurred while getting canvas token'));\r\n }\r\n });\r\n });\r\n }\r\n \r\n //set PC Complete\r\n private setPlanConfirmationComplete() {\r\n this.api\r\n .setPlanSelectionComplete(\r\n this.api.decryptedQuoteId(this.route.snapshot.params['quoteId']),\r\n this.api.decryptedEnrollmentId(this.route.snapshot.params['enrollmentId']),\r\n 'nobody'\r\n )\r\n .subscribe(res => { });\r\n }\r\n\r\n submitEnrollment() {\r\n this.setPlanConfirmationComplete();\r\n this.raiseRedirectEventToAWS(false);\r\n }\r\n\r\n raiseRedirectEventToAWS(isCancel) {\r\n this.getCanvasToken().then((token: any) => {\r\n var enrollmentUrl, args, intUrl;\r\n var decryptedEnrollmentId = this.api.decryptedEnrollmentId(token.context.environment.parameters.enrollmentId);\r\n //Broker login flow via AWS or ASD Users\r\n if (token.context.user.userType.toUpperCase().trim() === \"POWER_CUSTOMER_SUCCESS\" || token.context.environment.parameters.isASDUser.toUpperCase().trim() === \"TRUE\") {\r\n if (isCancel === true) { \r\n enrollmentUrl = token.client.targetOrigin + \"/s/enrollment/\" +\r\n decryptedEnrollmentId;\r\n } else {\r\n enrollmentUrl = token.client.targetOrigin +\r\n \"/s/startenrollment?stage=Client+Details&enId=\" +\r\n decryptedEnrollmentId + \"&redirected=true\";\r\n }\r\n args = JSON.stringify({\r\n appendRedirectLocation: false,\r\n oeRedirectUrl: enrollmentUrl\r\n });\r\n console.log(\"Raised Redirect to AWS - Broker Login\");\r\n window.top.postMessage(args, token.client.targetOrigin);\r\n \r\n }\r\n \r\n else {\r\n //This is the internal SalesForce User Flow and the redirect url should also be provided by AWS.\r\n intUrl = \"https://\" + token.context.environment.locationUrl.split(\"/\")[2];\r\n enrollmentUrl = intUrl +\r\n \"/lightning/cmp/c__AFocus_Resume_Enrollment?c__recordId=\" +\r\n decryptedEnrollmentId + \"&isShowWizard=false\";\r\n if (isCancel === true) {\r\n enrollmentUrl = enrollmentUrl + \"&cancelled=true\";\r\n }\r\n //Internal user\r\n args = JSON.stringify({\r\n appendRedirectLocation: false,\r\n enrollmentId: decryptedEnrollmentId,\r\n oeRedirectUrl: enrollmentUrl\r\n\r\n });\r\n \r\n\r\n //Raise message\r\n //intUrl is the parent URL for the internal user login\r\n console.log(\"Redirect Event Argument for Internal User {0}\", args);\r\n console.log(\"Raised Redirect to AWS - Internal User login, Token received {0}\", token);\r\n window.top.postMessage(args, intUrl);\r\n \r\n }\r\n });\r\n }\r\n\r\n sendSelections() {\r\n const data = [];\r\n for (const loc in this.selectedPlans) {\r\n if (this.selectedPlans.hasOwnProperty(loc)) {\r\n this.selectedPlans[loc].map(p =>\r\n data.push(new SelectedPlan(p))\r\n );\r\n }\r\n }\r\n this.api\r\n .savePlanSelections(\r\n this.api.decryptedQuoteId(this.route.snapshot.params['quoteId']),\r\n this.api.decryptedEnrollmentId(this.route.snapshot.params['enrollmentId']),\r\n 'nobody',\r\n data\r\n )\r\n .subscribe(res => {});\r\n }\r\n isEmpty(value) {\r\n return (value == null || value.length === 0);\r\n }\r\n\r\n cancelEnrollment() {\r\n this.raiseRedirectEventToAWS(true);\r\n }\r\n\r\n getPlans() {\r\n\r\n let allPlans = this.allPlansByLoc;\r\n for (var loc in allPlans) {\r\n if (allPlans.hasOwnProperty(loc)) {\r\n if (this.locWithPlans.indexOf(loc) > -1) {\r\n continue;\r\n }\r\n else {\r\n var plans = allPlans[loc].selectedPlanSummaries\r\n if (plans !== null) {\r\n if (loc === 'HospitalIndemnity' || loc === 'Accident' || loc === 'CriticalIllness') {\r\n loc = 'Voluntary';\r\n }\r\n if (this.locWithPlans.indexOf(loc) > -1) {\r\n continue;\r\n }\r\n this.locWithPlans.push(loc);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n}\r\n","

\r\n Please carefully review the plans you have selected above for\r\n {{ quoteSummary?.company?.name }} before continuing. \r\n

\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n","import { Observable } from 'rxjs';\r\nimport { EnrollmentButtonComponent } from './../enrollment-button.component';\r\nimport { Component, OnInit, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\n\r\nexport interface DialogData {\r\n parentComponent: EnrollmentButtonComponent;\r\n}\r\n\r\n@Component({\r\n selector: 'app-warning-modal',\r\n templateUrl: './warning-modal.component.html',\r\n styleUrls: ['./warning-modal.component.scss']\r\n})\r\nexport class WarningModalComponent implements OnInit {\r\n isLoading = this.data.parentComponent.isLoading;\r\n\r\n constructor(\r\n public dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: DialogData\r\n ) {\r\n }\r\n\r\n onCancelClick(): void {\r\n this.dialogRef.close();\r\n }\r\n\r\n callAPI() {\r\n console.log(this.isLoading);\r\n this.isLoading = true;\r\n this.data.parentComponent.submitEnrollment();\r\n }\r\n ngOnInit(): void {}\r\n}\r\n","
\r\n

Begin Enrollment?

\r\n
1\">\r\n warning\r\n
\r\n \r\n Missing Plan Selections for  {{ data.parentComponent.loc.join(', ') }}\r\n \r\n
\r\n \r\n If you do not intend to enroll in these lines of coverage, click\r\n Continue to begin enrollment. Otherwise, click Cancel to select\r\n plans.\r\n \r\n
\r\n
\r\n
\r\n warning\r\n
\r\n Missing Plan Selections for  {{ data.parentComponent.loc }}\r\n
\r\n \r\n If you do not intend to enroll in  {{ data.parentComponent.loc }},\r\n click Continue to begin enrollment. Otherwise, click Cancel to\r\n select  {{ data.parentComponent.loc }} plans.\r\n \r\n
\r\n
\r\n
\r\n\r\n\r\n
\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n \r\n
\r\n","import { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { ScrollingModule } from '@angular/cdk/scrolling';\r\nimport { CdkTableModule } from '@angular/cdk/table';\r\nimport { CdkTreeModule } from '@angular/cdk/tree';\r\nimport { NgModule } from '@angular/core';\r\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\r\nimport { MatBadgeModule } from '@angular/material/badge';\r\nimport { MatBottomSheetModule } from '@angular/material/bottom-sheet';\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\nimport { MatChipsModule } from '@angular/material/chips';\r\nimport { MatNativeDateModule, MatRippleModule } from '@angular/material/core';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatExpansionModule } from '@angular/material/expansion';\r\nimport { MatGridListModule } from '@angular/material/grid-list';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatListModule } from '@angular/material/list';\r\nimport { MatMenuModule } from '@angular/material/menu';\r\nimport { MatPaginatorModule } from '@angular/material/paginator';\r\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\r\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatSelectModule } from '@angular/material/select';\r\nimport { MatSidenavModule } from '@angular/material/sidenav';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatSliderModule } from '@angular/material/slider';\r\nimport { MatSnackBarModule } from '@angular/material/snack-bar';\r\nimport { MatSortModule } from '@angular/material/sort';\r\nimport { MatStepperModule } from '@angular/material/stepper';\r\nimport { MatTableModule } from '@angular/material/table';\r\nimport { MatTabsModule } from '@angular/material/tabs';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\nimport { MatTooltipModule } from '@angular/material/tooltip';\r\nimport { MatTreeModule } from '@angular/material/tree';\r\n\r\n@NgModule({\r\n exports: [\r\n CdkTableModule,\r\n CdkTreeModule,\r\n DragDropModule,\r\n MatAutocompleteModule,\r\n MatBadgeModule,\r\n MatBottomSheetModule,\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatCheckboxModule,\r\n MatChipsModule,\r\n MatStepperModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatExpansionModule,\r\n MatGridListModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatListModule,\r\n MatMenuModule,\r\n MatNativeDateModule,\r\n MatPaginatorModule,\r\n MatProgressBarModule,\r\n MatProgressSpinnerModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSelectModule,\r\n MatSidenavModule,\r\n MatSliderModule,\r\n MatSlideToggleModule,\r\n MatSnackBarModule,\r\n MatSortModule,\r\n MatStepperModule,\r\n MatTableModule,\r\n MatTabsModule,\r\n MatToolbarModule,\r\n MatTooltipModule,\r\n MatTreeModule,\r\n ScrollingModule\r\n ]\r\n})\r\nexport class MaterialModule {}\r\n","import {PlanSummary} from './plan-summary';\r\n\r\nexport class SelectedPlan {\r\n id: number;\r\n isCustom: boolean;\r\n lineOfCoverage: string;\r\n\r\n constructor(planSummary: PlanSummary) {\r\n this.id = planSummary.id;\r\n this.isCustom = planSummary.isCustom;\r\n this.lineOfCoverage = planSummary.lineOfCoverage;\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-page-not-found',\r\n templateUrl: './page-not-found.component.html',\r\n styleUrls: ['./page-not-found.component.scss']\r\n})\r\nexport class PageNotFoundComponent implements OnInit {\r\n\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n}\r\n","\r\n\r\n \r\n 404 Page Not Found\r\n\r\n We're sorry, the page you requested could not be found.\r\n \r\n\r\n","import { Component, OnInit, OnChanges, Input, EventEmitter, Output, ViewChild } from '@angular/core';\r\nimport { PlanSummary } from '../models/plan-summary';\r\nimport { PlanSummariesByLineOfCoverage } from '../models/plan-summaries-by-loc';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { CoreApiService } from 'src/app/services/core-api.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Utils } from '../services/utils.service';\r\nimport { PlanCardComponent } from '../plan-card/plan-card.component';\r\nimport { PlanDetailsModalComponent } from '../plan-details-modal/plan-details-modal.component';\r\nimport { VoluntaryCarriers } from \"../models/voluntarycarriers\";\r\nimport { MatRadioChange } from '@angular/material/radio';\r\n\r\n@Component({\r\n selector: 'app-plan-card-group',\r\n templateUrl: './plan-card-group.component.html',\r\n styleUrls: ['./plan-card-group.component.scss']\r\n})\r\nexport class PlanCardGroupComponent implements OnInit, OnChanges {\r\n\r\n _planSummaries: PlanSummariesByLineOfCoverage;\r\n _planCardComponent: PlanCardComponent;\r\n _voluntaryCarriers: VoluntaryCarriers[] = [];\r\n _selectedCarrierName: string = null;\r\n _showPlanGrid: boolean = false;\r\n eventFromPlanCardGroupComponent;\r\n\r\n @Output('selected') selectedEmitter = new EventEmitter();\r\n \r\n\r\n isLoading: boolean = true;\r\n private _baseColumns: string[] = ['select', 'carrier', 'name', 'type'];\r\n private additionalColumns = {\r\n 'Medical': ['premium', 'deductible'],\r\n 'Dental': ['premium', 'deductible', 'maximum'],\r\n 'Vision': [],\r\n 'Life': [],\r\n 'Disability': []\r\n };\r\n \r\n @Input()\r\n set planSummaries(planSummaries: PlanSummariesByLineOfCoverage) {\r\n this._planSummaries = planSummaries;\r\n if (typeof planSummaries === 'undefined') {\r\n return;\r\n }\r\n this._planSummaries.selectedPlanSummaries.forEach(ps => {\r\n if (ps.isSelected) {\r\n this.selection.select(ps);\r\n }\r\n });\r\n \r\n this._planSummaries.selectedPlanSummaries.forEach(ps => {\r\n if (ps.carrier != null && this._voluntaryCarriers != null && !this._voluntaryCarriers.some(c => c.code === ps.carrier.code)) {\r\n\r\n var vCarrier: VoluntaryCarriers = {\r\n code: ps.carrier.code,\r\n name: ps.carrier.name,\r\n selectedCarrierLogoUrl: ps.carrierLogoUrl,\r\n isCarrierSelected: false\r\n //TODO :Revisit isCarrierSelected as this logic will not work and point carrier logo to salesforce\r\n }\r\n this._voluntaryCarriers.push(vCarrier);\r\n }\r\n });\r\n\r\n this._planSummaries.selectedPlanSummaries.forEach(ps => {\r\n if (ps.isSelected) {\r\n let voluntaryCarrier: VoluntaryCarriers = this._voluntaryCarriers.find(x => x.code === ps.carrier.code);\r\n if (typeof voluntaryCarrier === 'undefined') {\r\n return;\r\n } else {\r\n voluntaryCarrier.isCarrierSelected = ps.isSelected;\r\n }\r\n }\r\n });\r\n\r\n this._planSummaries.offlinePlanSummaries.forEach(ps => {\r\n if (ps.isSelected) {\r\n this.selection.select(ps);\r\n }\r\n });\r\n \r\n this.selectedEmitter.emit(this.selection.selected);\r\n }\r\n\r\n \r\n LoC: string;\r\n selectedValue: string = '';\r\n\r\n // Refactor thought: This might be changed to an @Input and fed in\r\n LoCDescriptions = {\r\n 'Medical': 'DESCRIPTION FOR MEDICAL GOES HERE',\r\n 'Dental': 'DESCRIPTION FOR DENTAL GOES HERE',\r\n 'Vision': 'DESCRIPTION FOR VISION GOES HERE',\r\n 'Life': 'DESCRIPTION FOR LIFE GOES HERE',\r\n 'Disability': 'DESCRIPTION FOR DISABILITY GOES HERE',\r\n\r\n };\r\n\r\n // [0] is the selectedBenefits key, [1] is the search-for string\r\n private selectedBenefitsKeys = [\r\n ['deductible', 'Deductible'],\r\n ['maximum', 'Annual Maximum']\r\n ];\r\n\r\n selection: SelectionModel = new SelectionModel(true, []);\r\n\r\n displayedColumns: string[] = [];\r\n \r\n get columnFilterOptions() {\r\n const cols = this.displayedColumns.slice(1);\r\n cols.forEach((c) => c = c[0].toUpperCase() + c.substring(1));\r\n return cols;\r\n }\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n isAnySelected() {\r\n return this.selection.selected.length > 0;\r\n }\r\n\r\n anyPlanSelected() {\r\n var planCount = this.selection.selected.length;\r\n if (planCount > 0) {\r\n this.carrierToSelect = this.selection.selected[0].carrier.code;\r\n }\r\n }\r\n\r\n \r\n dataSource: MatTableDataSource;\r\n filteredDataSource: MatTableDataSource;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort) sort: MatSort;\r\n message: string;\r\n carrierToSelect: string;\r\n\r\n constructor(private api: CoreApiService, private route: ActivatedRoute, public dialog: MatDialog, public utils: Utils) { }\r\n\r\n openPlanModal(plan: PlanSummary) {\r\n console.log('plan', plan);\r\n this.scrollToCenter();\r\n const dialogRef = this.dialog.open(PlanDetailsModalComponent, { data: { plan: plan, selections: this.selection } });\r\n }\r\n\r\n private get planSummaryData() {\r\n let data: PlanSummary[] = [];\r\n if (this._planSummaries) {\r\n const selPlans = this._planSummaries.selectedPlanSummaries;\r\n if (selPlans && selPlans.length > 0) {\r\n data = data.concat(selPlans);\r\n }\r\n if (this.showOfflinePlans) {\r\n const offlinePlans = this._planSummaries.offlinePlanSummaries;\r\n if (offlinePlans && offlinePlans.length > 0) {\r\n data = data.concat(offlinePlans);\r\n }\r\n }\r\n }\r\n return data;\r\n }\r\n\r\n get hasOfflinePlans() {\r\n return this._planSummaries && this._planSummaries.offlinePlanSummaries && this._planSummaries.offlinePlanSummaries.length > 0;\r\n }\r\n\r\n showOfflinePlans = false;\r\n \r\n private tableConfigSort() {\r\n this.dataSource.sort = this.sort;\r\n\r\n // Custom sorting logic to control what the sort is based on for what column\r\n // will need updated based on benefits for other lines of coverage\r\n this.dataSource.sortingDataAccessor = (item: any, property: string) => {\r\n if (property in item.selectedBenefits) {\r\n return item.selectedBenefits[property][1];\r\n }\r\n // the below logic for select works, but the sort overrides the checkbox\r\n // so I've removed sortability for the select column in the html\r\n switch (property) {\r\n case 'carrier': return item.carrier.name;\r\n case 'select': return this.selection.selected.includes(item);\r\n case 'type': return item.type;\r\n default: return item[property];\r\n }\r\n };\r\n }\r\n\r\n private buildSelectedBenefits(ps: PlanSummary) {\r\n const d: any = {};\r\n this.selectedBenefitsKeys.forEach(function (sb) {\r\n const e = ps.benefits.find(b => b.name === sb[1]);\r\n d[sb[0]] = [['N/A', null]];\r\n if (e) {\r\n d[sb[0]][0] = e.inValue;\r\n d[sb[0]][1] = e.inNumericValue;\r\n }\r\n });\r\n ps.selectedBenefits = d;\r\n }\r\n\r\n private tableConfigFilter() {\r\n this.dataSource.filterPredicate = (data: PlanSummary, filter: string) => {\r\n\r\n if (!filter) {\r\n return true;\r\n }\r\n\r\n let compareTo = '';\r\n this.displayedColumns.forEach((col) => {\r\n if (col in data.selectedBenefits) {\r\n // string comparison for filters, as opposed to number comp for sort\r\n compareTo += data.selectedBenefits[col][0];\r\n }\r\n switch (col) {\r\n case 'carrier': compareTo += data.carrier.name; compareTo += data.carrier.code; break;\r\n case 'name': compareTo += data.name; break;\r\n case 'type': compareTo += data.type; break;\r\n default: break; // Default is to leave it empty string, as initialized to\r\n }\r\n });\r\n\r\n // Remove the currency styling characters from the filter\r\n compareTo = this.stripCurrencyFormatting(compareTo).toLowerCase();\r\n return compareTo.includes(filter);\r\n };\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.selection.changed.subscribe((sel) => {\r\n this.selectedEmitter.emit(this.selection.selected);\r\n });\r\n this.anyPlanSelected();\r\n this.filteredDataSource = this.dataSource;\r\n this.filterPlansOnLoad();\r\n \r\n }\r\n\r\n ngOnChanges() {\r\n\r\n if (this._planSummaries) {\r\n this.isLoading = false;\r\n if (this._planSummaries.selectedPlanSummaries) {\r\n this._planSummaries.selectedPlanSummaries.forEach((p) => { this.buildSelectedBenefits.bind(this)(p); p.isOffline = false; });\r\n }\r\n if (this._planSummaries.offlinePlanSummaries) {\r\n this._planSummaries.offlinePlanSummaries.forEach((p) => { this.buildSelectedBenefits.bind(this)(p); p.isOffline = true; });\r\n }\r\n }\r\n\r\n if (this._planSummaries && this._planSummaries.selectedPlanSummaries) {\r\n this.isLoading = false;\r\n this.LoC = this._planSummaries.selectedPlanSummaries[0].lineOfCoverage;\r\n }\r\n const data = this.planSummaryData;\r\n if (data && data.length > 0) {\r\n this.LoC = data[0].lineOfCoverage;\r\n\r\n // pulls out the benefits that'll be displayed on the grid\r\n // into their own dictionary, along with relevant sorting value\r\n this.processTableConfig();\r\n\r\n let toDisplay = this._baseColumns;\r\n if (this.LoC in this.additionalColumns) {\r\n toDisplay = toDisplay.concat(this.additionalColumns[this.LoC]);\r\n }\r\n if (this.hasOfflinePlans) {\r\n toDisplay = toDisplay.concat(['offline']);\r\n }\r\n this.displayedColumns = toDisplay;\r\n }\r\n }\r\n\r\n eventFromPlanCardGroup() {\r\n return this._selectedCarrierName;\r\n }\r\n\r\n masterToggle() {\r\n this.isAllSelected()\r\n ? this.dataSource.filteredData.forEach(row => this.selection.deselect(row))\r\n : this.dataSource.filteredData.forEach(row => this.selection.select(row)); \r\n }\r\n\r\n filterDataSource(carrierName: string) {\r\n return this.dataSource.data = this.planSummaryData.filter(c => c.carrier.code === carrierName);\r\n }\r\n\r\n filterPlansOnLoad() {\r\n if (this.selection.selected.length > 0) {\r\n var cName = this.selection.selected[0].carrier.code;\r\n this.filterDataSource(cName);\r\n this._showPlanGrid = true;\r\n } \r\n }\r\n\r\n onRadioChange($event: MatRadioChange , carrierCode) {\r\n this._selectedCarrierName = carrierCode;\r\n this.filterDataSource(this._selectedCarrierName);\r\n this.selection.clear();\r\n this.dataSource.filteredData.forEach(row => this.selection.deselect(row));\r\n this.carrierToSelect = carrierCode;\r\n this._showPlanGrid = true;\r\n }\r\n\r\n processTableConfig() {\r\n this.dataSource = new MatTableDataSource(this.planSummaryData);\r\n this.dataSource.paginator = this.paginator;\r\n this.tableConfigFilter();\r\n this.tableConfigSort();\r\n }\r\n\r\n private stripCurrencyFormatting(t: string): string {\r\n return t.replace('$', '').replace(',', '');\r\n }\r\n\r\n filterOffline(isChecked: boolean) {\r\n this.showOfflinePlans = isChecked;\r\n const newData = this.planSummaryData;\r\n this.dataSource.data = newData;\r\n\r\n if (newData.length < this.paginator.pageSize * this.paginator.pageIndex) {\r\n this.paginator.firstPage();\r\n }\r\n }\r\n\r\n applyFilter(filterValue: string) {\r\n this.dataSource.filter = this.stripCurrencyFormatting(filterValue).trim().toLowerCase();\r\n this.filteredDataSource.filter = this.stripCurrencyFormatting(filterValue).trim().toLowerCase();\r\n }\r\n\r\n private parseCanvasToken(signedRequest) {\r\n const win: any = window;\r\n const part = signedRequest.split('.')[1];\r\n const decodedToken = win.Sfdc.canvas.decode(part);\r\n const canvasToken = JSON.parse(decodedToken);\r\n return canvasToken;\r\n }\r\n\r\n private getCanvasToken() {\r\n const win: any = window;\r\n return new Promise((resolve, reject) => {\r\n win.Sfdc.canvas.client.refreshSignedRequest((data: any) => {\r\n if (data.status === 200) {\r\n const signedRequest = data.payload.response;\r\n const token = this.parseCanvasToken(signedRequest);\r\n resolve(token);\r\n } else {\r\n reject(new Error('Error occurred while getting canvas token'));\r\n }\r\n });\r\n });\r\n }\r\n\r\n // This script will scroll the page to the position where the modal is open.\r\n scrollToCenter() {\r\n const win: any = window;\r\n const sizes = win.Sfdc.canvas.client.size();\r\n const offSet = 300;\r\n const top = (sizes.heights.contentHeight / 2) - offSet;\r\n const args = JSON.stringify({ oeScrollToTop: true, top: top });\r\n return this.getCanvasToken().then((token: any) => {\r\n window.top.postMessage(args, token.client.targetOrigin);\r\n });\r\n }\r\n}\r\n","\r\n
\r\n \r\n
\r\n Carriers\r\n
\r\n Please select one of the carriers below and select plans you want to make available in your online enrollment.\r\n
\r\n {{LoCDescriptions[LoC]}}\r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Show Offline Plans\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n Please select a carrier to see plans.\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Carrier {{element.carrier.name}} Plan Name Type {{element.type}}
\r\n
\r\n
\r\n
\r\n
\r\n\r\n\r\n","import { Component, OnInit, Input, Output, EventEmitter} from '@angular/core';\r\nimport { PlanSummary } from '../models/plan-summary';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { CoreApiService } from '../services/core-api.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { SnackBarComponent } from '../components/snackbar/snackbar.component';\r\nimport { VoluntaryCarriers } from \"../models/voluntarycarriers\";\r\nimport { MatRadioChange, MatRadioButton } from '@angular/material/radio';\r\n\r\n@Component({\r\n selector: 'app-plan-card',\r\n templateUrl: './plan-card.component.html',\r\n styleUrls: ['./plan-card.component.scss']\r\n})\r\nexport class PlanCardComponent implements OnInit {\r\n\r\n @Input() plan: PlanSummary;\r\n @Input() voluntaryCarrier: VoluntaryCarriers;\r\n @Input() isSelected: boolean;\r\n @Input() isPlanSelected: boolean;\r\n @Input() sendDataToPlanCard: string;\r\n @Input() carrierSelect : string;\r\n value: string = null\r\n markCarrierChecked : boolean = false;\r\n selectedRadioButtonValue: string = 'Selected';\r\n @Output() radioButtonSelectionChanged = new EventEmitter();\r\n @Output() selectedCarrierName = new EventEmitter();\r\n isCarrierSelected: boolean = false;\r\n carrierName: MatRadioButton;\r\n\r\n\r\n constructor(\r\n private api: CoreApiService,\r\n private route: ActivatedRoute,\r\n private matIconRegistry: MatIconRegistry,\r\n private domSanitizer: DomSanitizer,\r\n private toast: MatSnackBar\r\n ) {\r\n this.matIconRegistry.addSvgIcon(\r\n 'voluntary_icon',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl(\r\n '../../assets/images/voluntary-icon.svg'\r\n )\r\n );\r\n }\r\n\r\n openSnackBar() {\r\n this.toast.openFromComponent(SnackBarComponent, {\r\n duration: 4000,\r\n horizontalPosition: 'left',\r\n verticalPosition: 'bottom'\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n ngOnChanges() {\r\n\r\n this.markCarrierChecked = false;\r\n this.markChecked();\r\n }\r\n\r\n carrierNameOnChange(mrChange: MatRadioChange) {\r\n this.carrierName = mrChange.value;\r\n this._selectedCarrierName();\r\n if (this.isPlanSelected) {\r\n this.isCarrierSelected = true;\r\n } \r\n }\r\n\r\n markChecked() {\r\n if (this.voluntaryCarrier.code === this.carrierSelect) {\r\n this.markCarrierChecked = true;\r\n this.isPlanSelected = true;\r\n } else {\r\n this.markCarrierChecked = false;\r\n this.isPlanSelected = false;\r\n }\r\n }\r\n\r\n _selectedCarrierName() {\r\n this.isPlanSelected = false;\r\n if (this.sendDataToPlanCard.toString() === this.carrierName.toString()) {\r\n return this.isPlanSelected = true;\r\n } \r\n }\r\n}\r\n\r\n","\r\n
\r\n
\r\n \r\n \r\n Selected\r\n Not Selected\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
{{voluntaryCarrier.name}}
\r\n
\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewChild,\r\n AfterViewInit\r\n} from '@angular/core';\r\nimport { CoreApiService } from '../services/core-api.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { PlanSummariesByLineOfCoverage } from 'src/app/models/plan-summaries-by-loc';\r\nimport { MatIconRegistry } from '@angular/material/icon';\r\nimport { MatSnackBar } from '@angular/material/snack-bar';\r\nimport { MatStepper } from '@angular/material/stepper';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { STEPPER_GLOBAL_OPTIONS, StepperSelectionEvent } from '@angular/cdk/stepper';\r\nimport { SelectedPlan } from '../models/selected-plan';\r\nimport { SnackBarComponent } from '../components/snackbar/snackbar.component';\r\n\r\n@Component({\r\n selector: 'app-plan-confirmation',\r\n templateUrl: './plan-confirmation.component.html',\r\n styleUrls: ['./plan-confirmation.component.scss'],\r\n providers: [\r\n {\r\n provide: STEPPER_GLOBAL_OPTIONS,\r\n useValue: {\r\n displayDefaultIndicatorType: false\r\n }\r\n }\r\n ]\r\n})\r\nexport class PlanConfirmationComponent implements OnInit, AfterViewInit {\r\n objectKeys = Object.keys;\r\n isLoading: boolean = true;\r\n show: boolean = false;\r\n locs = [];\r\n selectedLoc: string;\r\n index = 0;\r\n newSelectedIndex: number;\r\n planSummariesbyLoC: PlanSummariesByLineOfCoverage[] = [];\r\n planSummariesForVoluntaryLoC: PlanSummariesByLineOfCoverage[] = [];\r\n quoteList: any = [];\r\n isQuoteValid: boolean = false;\r\n validQuote: boolean;\r\n showText : boolean;\r\n\r\n @ViewChild(MatStepper) stepper: MatStepper;\r\n loCConfigs = {\r\n Medical: { stepperView: 'grid' },\r\n Dental: { stepperView: 'grid' },\r\n Vision: { stepperView: 'grid' },\r\n Life: { stepperView: 'grid' },\r\n Disability: { stepperView: 'grid' },\r\n Voluntary: { stepperView: 'card' }, \r\n PetBenefits: { stepperView: 'card' },\r\n LegalServices: { stepperView: 'card' },\r\n IdentityProtection: { stepperView: 'card' }\r\n };\r\n\r\n selectedPlansbyLoC = {\r\n Medical: [],\r\n Dental: [],\r\n Vision: [],\r\n Life: [],\r\n Disability: [],\r\n Voluntary: [], \r\n PetBenefits: [],\r\n LegalServices: [],\r\n IdentityProtection: []\r\n };\r\n \r\n isSectionComplete = {\r\n Medical: false,\r\n Dental: false,\r\n Vision: false,\r\n Life: false,\r\n Disability: false,\r\n Voluntary: false, \r\n PetBenefits: false,\r\n LegalServices: false,\r\n IdentityProtection: false\r\n };\r\n\r\n constructor(\r\n private api: CoreApiService,\r\n private route: ActivatedRoute,\r\n private matIconRegistry: MatIconRegistry,\r\n private domSanitizer: DomSanitizer,\r\n private toast: MatSnackBar\r\n ) {\r\n this.matIconRegistry.addSvgIcon(\r\n 'medical_case',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl(\r\n '../../assets/images/medical-icon.svg'\r\n )\r\n );\r\n this.matIconRegistry.addSvgIcon(\r\n 'dental_tooth',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl(\r\n '../../assets/images/dental-icon.svg'\r\n )\r\n );\r\n this.matIconRegistry.addSvgIcon(\r\n 'vision_icon',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl(\r\n '../../assets/images/vision-icon.svg'\r\n )\r\n );\r\n this.matIconRegistry.addSvgIcon(\r\n 'life_person',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl(\r\n '../../assets/images/life-icon.svg'\r\n )\r\n );\r\n this.matIconRegistry.addSvgIcon(\r\n 'disability_icon',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl(\r\n '../../assets/images/disability-icon.svg'\r\n )\r\n );\r\n this.matIconRegistry.addSvgIcon(\r\n 'voluntary_icon',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl(\r\n '../../assets/images/voluntary-icon.svg'\r\n )\r\n );\r\n this.matIconRegistry.addSvgIcon(\r\n 'pets_icon',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl(\r\n '../../assets/images/pets-icon.svg'\r\n )\r\n );\r\n this.matIconRegistry.addSvgIcon(\r\n 'legal_icon',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl(\r\n '../../assets/images/legal-icon.svg'\r\n )\r\n );\r\n this.matIconRegistry.addSvgIcon(\r\n 'cyber_icon',\r\n this.domSanitizer.bypassSecurityTrustResourceUrl(\r\n '../../assets/images/cyber-icon.svg'\r\n )\r\n );\r\n }\r\n\r\n openSnackBar() {\r\n this.toast.openFromComponent(SnackBarComponent, {\r\n duration: 4000,\r\n horizontalPosition: 'left',\r\n verticalPosition: 'bottom'\r\n });\r\n }\r\n\r\n ngOnInit() {\r\n this.showText = false;\r\n this.loadQuote();\r\n //this.api.getToken().subscribe({\r\n // next: (data) => {\r\n // this.api.setCsrf(data.toString());\r\n // } \r\n //});\r\n }\r\n \r\n loadQuote() {\r\n console.log(\"Loading in Plan-Confirmation Component\");\r\n var decryptedQuoteId = this.api.decryptedQuoteId(this.route.snapshot.params['quoteId']);\r\n console.log(\"Loading quote for decrypted is :\" + decryptedQuoteId);\r\n return this.api.getQuote(decryptedQuoteId).subscribe((data: {}) => {\r\n if (data) {\r\n console.log(\"Valid Quote\");\r\n return this.validQuote = true;\r\n\r\n } else {\r\n this.showText = true;\r\n return this.validQuote = false;\r\n }\r\n });\r\n }\r\n\r\n testSelection(selectedPlans, LoC) {\r\n this.selectedPlansbyLoC[LoC] = selectedPlans;\r\n }\r\n\r\n hasPlans(): boolean {\r\n return (\r\n !(this.planSummariesbyLoC === undefined\r\n || this.planSummariesbyLoC === null\r\n || Object.keys(this.planSummariesbyLoC).length === 0 )\r\n );\r\n }\r\n\r\n showHasNoPlans(): boolean {\r\n return !this.hasPlans() && !this.isLoading;\r\n }\r\n \r\n ngAfterViewInit(): void {\r\n console.log(\"GettingPlanSummaries in Plan-Confirmation Component\");\r\n this.api\r\n .getPlanSummaries( \r\n this.api.decryptedQuoteId(this.route.snapshot.params['quoteId']),\r\n this.api.decryptedEnrollmentId(this.route.snapshot.params['enrollmentId'])\r\n )\r\n .subscribe(\r\n res => {\r\n if (res) {\r\n this.planSummariesbyLoC = res;\r\n this.planSummariesbyLoC;\r\n let selectedIndex = 0;\r\n let selectedSection = 'Medical';\r\n let selectedPlansArr = [];\r\n let offlinePlansArr = [];\r\n let i = 0;\r\n for (var loc in this.planSummariesbyLoC) {\r\n if (this.planSummariesbyLoC.hasOwnProperty(loc)) {\r\n let lv: string = loc;\r\n if (loc === 'HospitalIndemnity' || loc === 'CriticalIllness' || loc === 'Accident') {\r\n if (!this.planSummariesbyLoC.hasOwnProperty(\"Voluntary\")) {\r\n this.planSummariesbyLoC[\"Voluntary\"] = [];\r\n }\r\n\r\n switch (loc) {\r\n case \"HospitalIndemnity\":\r\n loc = \"Voluntary\";\r\n selectedPlansArr = selectedPlansArr.concat(this.planSummariesbyLoC[\"HospitalIndemnity\"]\r\n .selectedPlanSummaries);\r\n offlinePlansArr = offlinePlansArr.concat(this.planSummariesbyLoC[\"HospitalIndemnity\"]\r\n .offlinePlanSummaries);\r\n delete this.planSummariesbyLoC[\"HospitalIndemnity\"];\r\n break;\r\n\r\n case \"Accident\":\r\n loc = \"Voluntary\";\r\n selectedPlansArr = selectedPlansArr.concat(this.planSummariesbyLoC[\"Accident\"]\r\n .selectedPlanSummaries);\r\n offlinePlansArr = offlinePlansArr.concat(this.planSummariesbyLoC[\"Accident\"]\r\n .offlinePlanSummaries);\r\n delete this.planSummariesbyLoC[\"Accident\"];\r\n break;\r\n\r\n case \"CriticalIllness\":\r\n loc = \"Voluntary\";\r\n selectedPlansArr = selectedPlansArr.concat(\r\n this.planSummariesbyLoC[\"CriticalIllness\"].selectedPlanSummaries);\r\n offlinePlansArr = offlinePlansArr.concat(\r\n this.planSummariesbyLoC[\"CriticalIllness\"].offlinePlanSummaries);\r\n delete this.planSummariesbyLoC['CriticalIllness'];\r\n break;\r\n\r\n default:\r\n break;\r\n }\r\n this.planSummariesbyLoC[\"Voluntary\"].selectedPlanSummaries = selectedPlansArr;\r\n this.planSummariesbyLoC[\"Voluntary\"].offlinePlanSummaries = offlinePlansArr;\r\n }\r\n if (this.locs.indexOf(loc) === -1) this.locs.push(loc);\r\n this.planSummariesbyLoC[\r\n loc\r\n ].selectedPlanSummaries.forEach(ps => {\r\n if (ps.isSelected) {\r\n this.selectedPlansbyLoC[loc].push(ps);\r\n selectedIndex = i;\r\n selectedSection = loc;\r\n }\r\n });\r\n this.planSummariesbyLoC[\r\n loc\r\n ].offlinePlanSummaries.forEach(ps => {\r\n if (ps.isSelected) {\r\n this.selectedPlansbyLoC[loc].push(ps);\r\n selectedIndex = i;\r\n selectedSection = loc;\r\n }\r\n });\r\n //We do not want to increase the 'i' when its voluntary and its already there in locs list or else we will get index out of bounds error.\r\n if (loc === \"Voluntary\" && this.locs.indexOf(\"Voluntary\") > -1) {\r\n continue;\r\n } else {\r\n i++;\r\n }\r\n\r\n }\r\n }\r\n for (const lc in this.planSummariesbyLoC) {\r\n if (this.planSummariesbyLoC.hasOwnProperty(lc)) {\r\n if (lc === selectedSection) {\r\n break;\r\n }\r\n this.isSectionComplete[lc] = true;\r\n }\r\n }\r\n setTimeout(() => {\r\n if (this.hasPlans()) {\r\n this.stepper.selectedIndex = selectedIndex;\r\n this.selectedLoc = this.locs[selectedIndex];\r\n }\r\n this.isLoading = false;\r\n }, 2000);\r\n } else {\r\n console.error(\r\n 'Invalid Quote ID and no plan summary information returned'\r\n );\r\n this.openSnackBar();\r\n }\r\n console.log(\"Finished Getting PlanSummaries Plan-Confirmation Component\");\r\n },\r\n error => {\r\n console.error(\r\n 'Error occured while fetching plan summary',\r\n error\r\n );\r\n // this.openSnackBar();\r\n }\r\n );\r\n }\r\n\r\n sectionState(loc: string) {\r\n if (this.isSectionComplete[loc] === true) {\r\n return [loc].toString() + '_complete';\r\n } else {\r\n return [loc].toString() + '_incomplete';\r\n }\r\n }\r\n \r\n // Gets the index of the currently selected step to use for icon overrides\r\n saveAndContinue(event: StepperSelectionEvent) {\r\n this.selectedLoc = this.locs[event.selectedIndex];\r\n let i = 0;\r\n for (const key in this.selectedPlansbyLoC) {\r\n if (this.selectedPlansbyLoC.hasOwnProperty(key)) {\r\n if (i === event.previouslySelectedIndex) {\r\n this.isSectionComplete[key] = true;\r\n break;\r\n }\r\n i++;\r\n }\r\n }\r\n\r\n this.sendSelections();\r\n }\r\n sendSelections() {\r\n const data = [];\r\n for (const loc in this.selectedPlansbyLoC) {\r\n if (this.selectedPlansbyLoC.hasOwnProperty(loc)) {\r\n this.selectedPlansbyLoC[loc].map(p =>\r\n data.push(new SelectedPlan(p))\r\n );\r\n }\r\n }\r\n this.api\r\n .savePlanSelections(\r\n this.api.decryptedQuoteId(this.route.snapshot.params['quoteId']),\r\n this.api.decryptedEnrollmentId(this.route.snapshot.params['enrollmentId']),\r\n 'nobody',\r\n data\r\n )\r\n .subscribe(res => {});\r\n }\r\n}\r\n","
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n

Your quote does not contain any plans. Please go back to quoting and review your quote.

\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Critical Illness, Accident, Hospital Indemnity Plans\r\n
\r\n
\r\n Identity Protection Plans\r\n
\r\n
\r\n Legal Services Plans\r\n
\r\n
\r\n Pet Benefits Plans\r\n
\r\n
\r\n \r\n {{ loc }} Plans\r\n \r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n\r\n \r\n
\r\n   \r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
Quote not found / Invalid Quote
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { PlanSummary } from '../models/plan-summary';\r\nimport { Benefit } from '../models/benefit';\r\nimport { SelectionModel } from '@angular/cdk/collections';\r\nimport { Utils } from '../services/utils.service';\r\n\r\nexport interface PlanDetailsData {\r\n plan: PlanSummary;\r\n selections: SelectionModel;\r\n}\r\n\r\n@Component({\r\n selector: 'app-plan-details-modal',\r\n templateUrl: './plan-details-modal.component.html',\r\n styleUrls: ['./plan-details-modal.component.scss']\r\n})\r\nexport class PlanDetailsModalComponent {\r\n\r\n dataSource: MatTableDataSource;\r\n displayedColumns = ['benefit', 'inValue', 'outValue'];\r\n\r\n constructor(\r\n public utils: Utils,\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: PlanDetailsData) {\r\n\r\n this.dataSource = new MatTableDataSource(this.data.plan.benefits);\r\n }\r\n\r\n onYesClick(): void {\r\n if (!this.data.selections.isSelected(this.data.plan)) {\r\n this.data.selections.toggle(this.data.plan);\r\n }\r\n this.dialogRef.close();\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

Plan Details

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

{{data.plan.carrier.name.toUpperCase()}}

\r\n

{{data.plan.name}}

\r\n
\r\n \r\n
\r\n
Plan Type
\r\n
{{data.plan.type}}
\r\n
\r\n
\r\n
\r\n
Monthly Premium
\r\n
{{utils.formatCurrency(data.plan.premium)}}
\r\n
\r\n
\r\n Renewal\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
Benefit {{element.name}} \r\n
\r\n In Network\r\n
\r\n
{{element.inValue}} \r\n
\r\n Out of Network\r\n
\r\n
{{element.outValue}}
\r\n
\r\n
\r\n \r\n \r\n
\r\n","import { SelectionModel } from '@angular/cdk/collections';\r\nimport { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { MatPaginator } from '@angular/material/paginator';\r\nimport { MatSort } from '@angular/material/sort';\r\nimport { MatTableDataSource } from '@angular/material/table';\r\nimport { Component, OnInit, OnChanges, Input, Output, EventEmitter, ViewChild } from '@angular/core';\r\nimport { CoreApiService } from 'src/app/services/core-api.service';\r\nimport { PlanSummary } from 'src/app/models/plan-summary';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { Utils } from '../services/utils.service';\r\n\r\nimport { MatCheckboxModule } from '@angular/material/checkbox';\r\n\r\nimport { PlanDetailsModalComponent } from '../plan-details-modal/plan-details-modal.component';\r\n\r\n@Component({\r\n selector: 'app-plan-grid',\r\n templateUrl: './plan-grid.component.html',\r\n styleUrls: ['./plan-grid.component.scss'],\r\n providers: [{ provide: MatCheckboxModule, useValue: 'check'}],\r\n})\r\nexport class PlanGridComponent implements OnInit, OnChanges {\r\n\r\n/* * * * * * * *\r\nNotes on integrating with plan-confirmation:\r\n- Configure additionalColumns to display LoC-specific columns\r\n* * * * * * * */\r\n\r\n /* ADDING A COLUMN\r\n * - Add the column name. This will likely be to additionalColumns - match to LoC that will have the new column\r\n * - Add column block in ng-container in HTML (feel free to copy-paste from defined column and change as needed)\r\n * - The matColumnDef parameter in the html MUST match the string added to additionalColumns\r\n * - Define the column data\r\n * - - New data will likely be benefit records. Add an array to selectedBenefitsKeys, matching the format defined above the variable\r\n * - - Code will automatically pull out a benefit with that name and place it in the selectedBenefits dictionary attached to each plan\r\n * - - The \"Deductible\" benefit is a good example to follow through\r\n * - If data is pulled from selectedBenefitsKeys, into selectedBenefits, sorting and filtering should Just Work (tm)\r\n * - If not, you'll need to modify the sorting/filtering logic to accomodate the new column\r\n * - - Sorting: tableConfigSort\r\n * - - Filtering: tableConfigFilter\r\n * - That should be all that's needed\r\n */\r\n\r\n\r\n @Output('selected') selectedEmitter = new EventEmitter();\r\n\r\n _planSummaries: {selectedPlanSummaries: PlanSummary[], offlinePlanSummaries: PlanSummary[]};\r\n\r\n @Input()\r\n set planSummaries(planSummaries: {selectedPlanSummaries: PlanSummary[], offlinePlanSummaries: PlanSummary[]}) {\r\n this._planSummaries = planSummaries;\r\n if (typeof planSummaries === 'undefined') {\r\n return;\r\n }\r\n this._planSummaries.selectedPlanSummaries.forEach(ps => {\r\n if (ps.isSelected) {\r\n this.selection.select(ps);\r\n }\r\n });\r\n this._planSummaries.offlinePlanSummaries.forEach(ps => {\r\n if (ps.isSelected) {\r\n this.selection.select(ps);\r\n }\r\n });\r\n this.selectedEmitter.emit(this.selection.selected);\r\n }\r\n\r\n private get planSummaryData() {\r\n let data: PlanSummary[] = [];\r\n if (this._planSummaries) {\r\n const selPlans = this._planSummaries.selectedPlanSummaries;\r\n if (selPlans && selPlans.length > 0) {\r\n data = data.concat(selPlans);\r\n }\r\n if (this._planSummaries.selectedPlanSummaries.length < 1) {\r\n this.showOfflinePlans = true;\r\n this.isDisabled = true;\r\n } else {\r\n this.isDisabled = false;\r\n }\r\n if (this.showOfflinePlans) {\r\n const offlinePlans = this._planSummaries.offlinePlanSummaries;\r\n if (offlinePlans && offlinePlans.length > 0) {\r\n if (data !== null) {\r\n data = data.concat(offlinePlans);\r\n } else {\r\n data = offlinePlans;\r\n }\r\n \r\n }\r\n }\r\n\r\n }\r\n\r\n return data;\r\n }\r\n\r\n get hasOfflinePlans() {\r\n return this._planSummaries && this._planSummaries.offlinePlanSummaries && this._planSummaries.offlinePlanSummaries.length > 0;\r\n }\r\n\r\n showOfflinePlans = false;\r\n\r\n isLoading = true;\r\n\r\n private _baseColumns: string[] = ['select', 'renewal', 'carrier', 'name', 'type'];\r\n private additionalColumns = {\r\n 'Medical': ['premium', 'deductible'],\r\n 'Dental': ['premium', 'deductible', 'maximum'],\r\n 'Vision': [],\r\n 'Life': [],\r\n 'Disability': []\r\n };\r\n\r\n displayedColumns: string[] = [];\r\n\r\n get columnFilterOptions() {\r\n const cols = this.displayedColumns.slice(1);\r\n cols.forEach((c) => c = c[0].toUpperCase() + c.substring(1));\r\n return cols;\r\n }\r\n\r\n // [0] is the selectedBenefits key, [1] is the search-for string\r\n private selectedBenefitsKeys = [\r\n ['deductible', 'Deductible'],\r\n ['maximum', 'Annual Maximum']\r\n ];\r\n\r\n dataSource: MatTableDataSource;\r\n selection: SelectionModel = new SelectionModel(true, []);\r\n LoC: string;\r\n isDisabled: boolean;\r\n\r\n @ViewChild(MatPaginator, { static: true }) paginator: MatPaginator;\r\n @ViewChild(MatSort, { static: true }) sort: MatSort;\r\n\r\n constructor(private api: CoreApiService, private route: ActivatedRoute, public dialog: MatDialog, public utils: Utils) { }\r\n\r\n openPlanModal(plan: PlanSummary) {\r\n console.log('plan', plan);\r\n this.scrollToCenter();\r\n const dialogRef = this.dialog.open(PlanDetailsModalComponent, { data: { plan: plan, selections: this.selection } });\r\n }\r\n\r\n ngOnInit() {\r\n this.selection.changed.subscribe((sel) => {\r\n this.selectedEmitter.emit(this.selection.selected);\r\n });\r\n }\r\n\r\n ngOnChanges() {\r\n\r\n if (this._planSummaries) {\r\n this.isLoading = false;\r\n if (this._planSummaries.selectedPlanSummaries) {\r\n this._planSummaries.selectedPlanSummaries.forEach((p) => { this.buildSelectedBenefits.bind(this)(p); p.isOffline = false; });\r\n }\r\n if (this._planSummaries.offlinePlanSummaries) {\r\n this._planSummaries.offlinePlanSummaries.forEach((p) => { this.buildSelectedBenefits.bind(this)(p); p.isOffline = true; });\r\n }\r\n }\r\n\r\n const data = this.planSummaryData;\r\n if (data && data.length > 0) {\r\n this.LoC = data[0].lineOfCoverage;\r\n\r\n // pulls out the benefits that'll be displayed on the grid\r\n // into their own dictionary, along with relevant sorting value\r\n this.processTableConfig();\r\n\r\n let toDisplay = this._baseColumns;\r\n if (this.LoC in this.additionalColumns) {\r\n toDisplay = toDisplay.concat(this.additionalColumns[this.LoC]);\r\n }\r\n if (this.hasOfflinePlans) {\r\n toDisplay = toDisplay.concat(['offline']);\r\n }\r\n this.displayedColumns = toDisplay;\r\n\r\n }\r\n }\r\n\r\n // This defines how the filter text field is treated\r\n // As of writing this (02/22/2019), the filter input is processed by:\r\n // - Removing any currency formatting\r\n // - Trimming off leading/trailing whitespace\r\n // - Making it lowercase\r\n // THEN the filter is applied\r\n // This filter is evaluated against every visible row of the dataSource, using the matching logic\r\n // defined in tableConfigFilter\r\n applyFilter(filterValue: string) {\r\n this.dataSource.filter = this.stripCurrencyFormatting(filterValue).trim().toLowerCase();\r\n }\r\n\r\n filterOffline(isChecked: boolean) {\r\n this.showOfflinePlans = isChecked;\r\n const newData = this.planSummaryData;\r\n this.dataSource.data = newData;\r\n \r\n\r\n // pageIndex is 0-indexed, so this works without shifting indexes\r\n // this just makes it so, if the user is looking at a page that won't exist\r\n // because offline plans were removed, then they will be returned to the first page\r\n if (newData.length < this.paginator.pageSize * this.paginator.pageIndex) {\r\n this.paginator.firstPage();\r\n }\r\n }\r\n\r\n // Copy-pasted straight from https://material.angular.io/components/table/overview\r\n /** Whether the number of selected elements matches the total number of rows. */\r\n isAllSelected() {\r\n const numSelected = this.selection.selected.length;\r\n const numRows = this.dataSource.data.length;\r\n return numSelected === numRows;\r\n }\r\n\r\n /** Selects all rows if they are not all selected; otherwise clear selection. */\r\n masterToggle() {\r\n this.isAllSelected() ?\r\n this.dataSource.filteredData.forEach(row => this.selection.deselect(row)) :\r\n this.dataSource.filteredData.forEach(row => this.selection.select(row));\r\n }\r\n\r\n processTableConfig() {\r\n this.dataSource = new MatTableDataSource(this.planSummaryData);\r\n this.dataSource.paginator = this.paginator;\r\n\r\n this.tableConfigFilter();\r\n this.tableConfigSort();\r\n }\r\n\r\n private buildSelectedBenefits(ps: PlanSummary) {\r\n const d: any = {};\r\n this.selectedBenefitsKeys.forEach(function(sb) {\r\n const e = ps.benefits.find(b => b.name === sb[1]);\r\n d[sb[0]] = [['N/A', null]];\r\n if (e) {\r\n d[sb[0]][0] = e.inValue;\r\n d[sb[0]][1] = e.inNumericValue;\r\n }\r\n });\r\n ps.selectedBenefits = d;\r\n }\r\n\r\n private tableConfigSort() {\r\n this.dataSource.sort = this.sort;\r\n\r\n // Custom sorting logic to control what the sort is based on for what column\r\n // will need updated based on benefits for other lines of coverage\r\n this.dataSource.sortingDataAccessor = (item: any, property: string) => {\r\n if (property in item.selectedBenefits) {\r\n return item.selectedBenefits[property][1];\r\n }\r\n // the below logic for select works, but the sort overrides the checkbox\r\n // so I've removed sortability for the select column in the html\r\n switch (property) {\r\n case 'carrier': return item.carrier.name;\r\n case 'select': return this.selection.selected.includes(item);\r\n case 'offline': return item.isOffline;\r\n default: return item[property];\r\n }\r\n };\r\n }\r\n\r\n private tableConfigFilter() {\r\n this.dataSource.filterPredicate = (data: PlanSummary, filter: string) => {\r\n\r\n if (!filter) {\r\n return true;\r\n }\r\n\r\n let compareTo = '';\r\n this.displayedColumns.forEach((col) => {\r\n if (col in data.selectedBenefits) {\r\n // string comparison for filters, as opposed to number comp for sort\r\n compareTo += data.selectedBenefits[col][0];\r\n }\r\n switch (col) {\r\n case 'carrier': compareTo += data.carrier.name; compareTo += data.carrier.code; break;\r\n case 'name': compareTo += data.name; break;\r\n case 'type': compareTo += data.type; break;\r\n case 'premium': compareTo += data.premium.toString(); break;\r\n default: break; // Default is to leave it empty string, as initialized to\r\n }\r\n });\r\n\r\n // Remove the currency styling characters from the filter\r\n compareTo = this.stripCurrencyFormatting(compareTo).toLowerCase();\r\n return compareTo.includes(filter);\r\n };\r\n\r\n }\r\n\r\n // Instead of filtering on the monetary amount for money columns, filter on the text value\r\n // but remove the currency presentation characters so a filter on '1000' matches '$1,000'\r\n // There is probably a better way to do this?\r\n private stripCurrencyFormatting(t: string): string {\r\n return t.replace('$', '').replace(',', '');\r\n }\r\n\r\n private parseCanvasToken(signedRequest) {\r\n const win: any = window;\r\n const part = signedRequest.split('.')[1];\r\n const decodedToken = win.Sfdc.canvas.decode(part);\r\n const canvasToken = JSON.parse(decodedToken);\r\n return canvasToken;\r\n }\r\n\r\n private getCanvasToken() {\r\n const win: any = window;\r\n return new Promise((resolve, reject) => {\r\n win.Sfdc.canvas.client.refreshSignedRequest((data: any) => {\r\n if (data.status === 200) {\r\n const signedRequest = data.payload.response;\r\n const token = this.parseCanvasToken(signedRequest);\r\n resolve(token);\r\n } else {\r\n reject(new Error('Error occurred while getting canvas token'));\r\n }\r\n });\r\n });\r\n }\r\n\r\n // This script will scroll the page to the position where the modal is open.\r\n scrollToCenter() {\r\n const win: any = window;\r\n const sizes = win.Sfdc.canvas.client.size();\r\n const offSet = 600;\r\n const top = (sizes.heights.contentHeight / 2) - offSet;\r\n const args = JSON.stringify({ oeScrollToTop: true, top: top });\r\n return this.getCanvasToken().then((token: any) => {\r\n window.top.postMessage(args, token.client.targetOrigin);\r\n });\r\n }\r\n}\r\n","
\r\n \r\n Show Offline Plans\r\n \r\n \r\n \r\n \r\n
\r\n\r\n\r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n Renewal check Carrier {{element.carrier.name}} Plan Name Type {{element.type}} Deductible {{element.selectedBenefits['deductible'][0]}} Mo. Quoted Premium {{utils.formatCurrency(element.premium)}} Maximum {{element.selectedBenefits['maximum'][0]}} Offline Plan check
\r\n\r\n\r\n","import { Component, OnInit, Input, OnChanges } from '@angular/core';\r\nimport { PlanSummary } from '../models/plan-summary';\r\n\r\n@Component({\r\n selector: 'app-plan-list',\r\n templateUrl: './plan-list.component.html',\r\n styleUrls: ['./plan-list.component.scss']\r\n})\r\nexport class PlanListComponent implements OnInit, OnChanges {\r\n @Input() plans: PlanSummary[];\r\n objKeys = Object.keys;\r\n carrierCount = {};\r\n\r\n constructor() {}\r\n\r\n ngOnInit() {}\r\n\r\n ngOnChanges() {\r\n this.carrierCount = {};\r\n if (this.plans) {\r\n this.plans.forEach(p => {\r\n const carrier = p.carrier['name'];\r\n if (!(carrier in this.carrierCount)) {\r\n this.carrierCount[carrier] = 0;\r\n }\r\n this.carrierCount[carrier]++;\r\n });\r\n }\r\n }\r\n}\r\n","
\r\n \r\n No Plans Selected\r\n \r\n \r\n {{carrier}}({{carrierCount[carrier]}}){{isLast ? '' : ', '}}\r\n \r\n
\r\n","import { Component, Inject } from '@angular/core';\r\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\r\nimport { Utils } from '../services/utils.service';\r\nimport { EnrollmentButtonComponent } from '../enrollment-button/enrollment-button.component';\r\n\r\n@Component({\r\n selector: 'app-send-to-ease-modal',\r\n templateUrl: './send-to-ease-modal.component.html',\r\n styleUrls: ['./send-to-ease-modal.component.scss']\r\n})\r\nexport class SendToEaseModalComponent {\r\n public cookieValue: string;\r\n constructor(\r\n public utils: Utils,\r\n private dialogRef: MatDialogRef,\r\n @Inject(MAT_DIALOG_DATA) public data: EnrollmentButtonComponent) { }\r\n\r\n onSyncClick(): void {\r\n this.dialogRef.close();\r\n console.log(\"Redirecting to AWS DashBoard\");\r\n var awsUrl = this.data.awsRedirectUrl;\r\n console.log(\"Aws URL -> \" + awsUrl);\r\n if (awsUrl == null || awsUrl === '') {\r\n window.top.location.href = 'https://www.agencyworkspace.com/';\r\n } else {\r\n window.top.location.href = awsUrl;\r\n }\r\n console.log(\"Redirected To AWS DashBoard\");\r\n }\r\n\r\n onNoClick(): void {\r\n this.dialogRef.close();\r\n }\r\n}\r\n","

Plans sent to Ease

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

\r\n BenefitMall is syncing your New Group plans, rates, and census information to Ease.
\r\n You will receive an email when data has successfully synced. Once synced, you will login to your Ease account to complete enrollments.\r\n
CONTINUE and return to Agency Workspace.\r\n

\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { QuoteSummary } from '../models/quote-summary';\r\nimport { PlanSummariesByLineOfCoverage } from '../models/plan-summaries-by-loc';\r\nimport { Observable, BehaviorSubject } from 'rxjs';\r\nimport { SelectedPlan } from '../models/selected-plan';\r\nimport { oeresult } from '../models/oeresult';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CoreApiService {\r\n private quoteSummaryUrl = 'api/quoteData/quoteSummary/';\r\n private planSummaryUrl = 'api/quoteData/planSummaries/';\r\n private planSelectionUrl = 'api/quoteData/planSelection/';\r\n private planSelectionCompleteUrl = 'api/quoteData/planSelectionComplete/';\r\n private csrfTokenUrl = 'api/quoteData/GetAntiForgeryToken'\r\n private planEnrollmentUrl = 'api/quoteData/planEnrollment/';\r\n csrfToken: string='';\r\n private readonly headers: HttpHeaders;\r\n private readonly postHeaders: HttpHeaders;\r\n antiForgeryToken = new BehaviorSubject('')\r\n constructor(private httpClient: HttpClient) {\r\n this.headers = new HttpHeaders().set(\r\n 'Content-Type',\r\n 'application/json'\r\n );\r\n }\r\n\r\n removeEncryptionSalt = (id) => {\r\n let decryptedId = id\r\n .split(\"\")\r\n .reverse()\r\n .join(\"\")\r\n .match(/.{1,32}/g) //The Encryption Salt is of 32bit. If AWS changes this length, we need to change here too.\r\n .reverse()\r\n .map((i) => i.split(\"\").reverse().join(\"\"));\r\n return decryptedId;\r\n };\r\n\r\n decryptedQuoteId(quoteId: string) {\r\n try {\r\n console.log(\"Processing in API Service while Decrypting QuoteId\");\r\n var decryptedQuoteId = atob(decodeURIComponent(quoteId));\r\n return this.removeEncryptionSalt(decryptedQuoteId)[0];\r\n }\r\n catch {\r\n console.log(\"Error in API Service while Decrypting QuoteId\");\r\n } \r\n }\r\n\r\n decryptedEnrollmentId(enrollmentId: string) {\r\n try {\r\n console.log(\"Processing in API Service while Decrypting EnrollmentId\");\r\n var decryptedenrollmentId = atob(decodeURIComponent(enrollmentId));\r\n return this.removeEncryptionSalt(decryptedenrollmentId)[0];\r\n }\r\n catch {\r\n console.log(\"Error in API Service while Decrypting EnrollmentId\");\r\n }\r\n \r\n }\r\n\r\n setCsrf(token: string) {\r\n this.antiForgeryToken.next(token);\r\n this.getCsrf().subscribe({\r\n next: (token) => {\r\n this.csrfToken = token;\r\n },\r\n error: (error) => console.log(error)\r\n });\r\n }\r\n\r\n getCsrf() {\r\n return this.antiForgeryToken\r\n }\r\n getAuthHeaderForPost(): HttpHeaders {\r\n return new HttpHeaders({\r\n 'xsrf-token': this.csrfToken\r\n });\r\n }\r\n public getQuoteSummary(\r\n quoteId: string,\r\n enrollmentId: string\r\n ): Observable {\r\n return this.httpClient.get(\r\n this.quoteSummaryUrl + quoteId + '/' + enrollmentId\r\n );\r\n }\r\n public getPlanSummaries(\r\n quoteId: string,\r\n enrollmentId: string\r\n ): Observable {\r\n return this.httpClient.get(\r\n this.planSummaryUrl + quoteId + '/' + enrollmentId\r\n );\r\n }\r\n public savePlanSelections(\r\n quoteId: string,\r\n enrollmentId: string,\r\n user: string,\r\n planSelections: SelectedPlan[]\r\n ): Observable {\r\n return this.httpClient.post(\r\n this.planSelectionUrl + quoteId + '/' + enrollmentId,\r\n { user, planSelections },\r\n { headers: this.getAuthHeaderForPost() }\r\n );\r\n }\r\n public getToken() {\r\n return this.httpClient.get(this.csrfTokenUrl, { responseType:'text' })\r\n }\r\n public setPlanSelectionComplete(\r\n quoteId: string,\r\n enrollmentId: string,\r\n user: string\r\n ): Observable {\r\n return this.httpClient.post( \r\n this.planSelectionCompleteUrl + quoteId + '/' + enrollmentId,\r\n { user },\r\n { headers: this.getAuthHeaderForPost() }\r\n );\r\n }\r\n\r\n public startPlanEnrollment(\r\n quoteId: string,\r\n enrollmentId: string,\r\n user: string\r\n ): Observable {\r\n return this.httpClient.post (\r\n this.planEnrollmentUrl + quoteId + '/' + enrollmentId,\r\n { user },\r\n { headers: this.headers }\r\n );\r\n }\r\n\r\n public getQuote(\r\n quoteId: string\r\n ): Observable {\r\n return this.httpClient.get(\r\n this.quoteSummaryUrl + quoteId\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 Utils {\r\n\r\n constructor() { }\r\n\r\n formatCurrency(money: number): string {\r\n return money.toLocaleString('en-US', { style: 'currency', currency: 'USD' });\r\n }\r\n}\r\n","import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\r\nimport { AppModule } from './app/app.module';\r\n\r\nplatformBrowserDynamic().bootstrapModule(AppModule)\r\n .catch(err => console.error(err));\r\n"],"names":[],"sourceRoot":"webpack:///","x_google_ignoreList":[]}