{"version":3,"file":"main.24337a60baba1aa3.js","mappings":"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ACrC;AACkC;AACjB;AACA;AACE;AACI;AACoB;AACzB;AAChB;AACc;AACI;AACE;AACQ;AACrB;AACa;AACb;AACa;AACrB;AACY;AAC4B;AACjB;AAC0B;AACS;AAC3B;AACW;AACrB;AACmB;AACb;AACjB;AAC4C;AACM;AACG;AAClB;AAC4B;AACqB;AAG/B;AAGI;AAClE;AACwB;AACF;AACA;AACR;AACuB;AACqB;AAChC;AAC4C;AACT;AACzC;AACmC;AAClB;AACY;AACqB;AACsB;AACvB;AACH;AACjC;AAC4D;AACN;AACH;AACM;AACrB;AAGR;AACoB;AAClD;AACqD;AACf;AAC3D;AACqB;AACC;AACgB;AAC1B;AACiB;AACK;AACJ;AACd;AACO;AACK;AACb;AACsB;AAC5C;AACgB;AAC4B;AACX;AACjB;AACc;AACA;AACM;AACsB;AAC7C;AAC+C;AACS;AAC5B;AACG;AACgB;AACvB;AACH;AACqB;AACI;AACN;AACM;AACxD;AACG;AACkB;AAC2B;AACX;AACW;AACT;AACI;AACJ;AACa;AACpD;AACoD;AAClB;AACe;AACA;AACY;AACM;AACvE;AACqD;AACnD;AACW;AACU;AACkD;AACL;AACM;AACK;AACzB;AACM;AACmB;AACtB;AACoB;AACf;AACL;AAChC;AACJ;;;AACtE,MAAM,gBAAgB,GAAG,CAAC,SAA2B,EAAE,EAAE;IACvD,OAAO,GAAG,EAAE;QACV,OAAO,SAAS,CAAC,aAAa,EAAE,CAAC;IACnC,CAAC,CAAC;AACJ,CAAC,CAAC;AAyKK,MAAM,SAAS;;kEAAT,SAAS;wGAAT,SAAS,cANd,wDAAY;6GArCL;QACP,kEAAgB;QAChB,sEAAW;QACX,0EAAa;QACb,4EAAc;QACd,8FAAsB;QACtB,uDAAS;QACT,+EAAe;QACf,0FAAoB;QACpB,wFAAmB;QACnB,mEAAc;QACd,+EAAe;QACf,kFAAgB;QAChB,8FAAsB;QACtB,qFAAiB;QACjB,iFAAe;QACf,+DAAY;QACZ,8DAAW;QACX,4DAAU;QACV;YACI,OAAO,EAAE,QAAQ;YACjB,QAAQ,EAAE,MAAM;SACnB;QA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","sources":["./src/app/active-panel/active-panel.component.ts","./src/app/active-panel/active-panel.component.html","./src/app/active-panel/asset-verification/asset-verification.component.ts","./src/app/active-panel/asset-verification/asset-verification.component.html","./src/app/active-panel/benefit-estimate/benefit-estimate.component.ts","./src/app/active-panel/benefit-estimate/benefit-estimate.component.html","./src/app/active-panel/benefit-estimate/benefit-wizard/benefit-details/benefit-details.component.ts","./src/app/active-panel/benefit-estimate/benefit-wizard/benefit-details/benefit-details.component.html","./src/app/active-panel/benefit-estimate/benefit-wizard/benefit-wizard.component.ts","./src/app/active-panel/benefit-estimate/benefit-wizard/benefit-wizard.component.html","./src/app/active-panel/benefit-estimate/benefit-wizard/estimate-beneficiary/estimate-beneficiary.component.ts","./src/app/active-panel/benefit-estimate/benefit-wizard/estimate-beneficiary/estimate-beneficiary.component.html","./src/app/active-panel/benefit-estimate/benefit-wizard/final-estimate/final-estimate.component.ts","./src/app/active-panel/benefit-estimate/benefit-wizard/final-estimate/final-estimate.component.html","./src/app/active-panel/benefit-estimate/benefit-wizard/final-grid/final-grid.component.ts","./src/app/active-panel/benefit-estimate/benefit-wizard/final-grid/final-grid.component.html","./src/app/active-panel/benefit-estimate/benefit-wizard/military-service/military-service.component.ts","./src/app/active-panel/benefit-estimate/benefit-wizard/military-service/military-service.component.html","./src/app/active-panel/benefit-estimate/benefit-wizard/retirement-date/retirement-date.component.ts","./src/app/active-panel/benefit-estimate/benefit-wizard/retirement-date/retirement-date.component.html","./src/app/active-panel/benefit-estimate/benefit-wizard/salary-projection/salary-projection.component.ts","./src/app/active-panel/benefit-estimate/benefit-wizard/salary-projection/salary-projection.component.html","./src/app/active-panel/benefit-estimate/benefit-wizard/service-projection/service-projection.component.ts","./src/app/active-panel/benefit-estimate/benefit-wizard/service-projection/service-projection.component.html","./src/app/active-panel/benefit-estimate/benefit-wizard/sick-leave/sick-leave.component.ts","./src/app/active-panel/benefit-estimate/benefit-wizard/sick-leave/sick-leave.component.html","./src/app/active-panel/benefit-estimate/monthly-basic-allowance/monthly-basic-allowance.component.ts","./src/app/active-panel/benefit-estimate/monthly-basic-allowance/monthly-basic-allowance.component.html","./src/app/active-panel/benefit-estimate/saved-estimates/saved-estimates.component.ts","./src/app/active-panel/benefit-estimate/saved-estimates/saved-estimates.component.html","./src/app/active-panel/benefit-estimate/termsconditions/termsconditions.component.ts","./src/app/active-panel/benefit-estimate/termsconditions/termsconditions.component.html","./src/app/active-panel/viewaccount/accountbalance/accountbalance.component.ts","./src/app/active-panel/viewaccount/accountbalance/accountbalance.component.html","./src/app/active-panel/viewaccount/generalinfo/generalinfo.component.ts","./src/app/active-panel/viewaccount/generalinfo/generalinfo.component.html","./src/app/active-panel/viewaccount/servicecredit/servicecredit.component.ts","./src/app/active-panel/viewaccount/servicecredit/servicecredit.component.html","./src/app/active-panel/viewaccount/viewaccount.component.ts","./src/app/active-panel/viewaccount/viewaccount.component.html","./src/app/app-config.service.ts","./src/app/app-routing.module.ts","./src/app/app.component.ts","./src/app/app.component.html","./src/app/app.module.ts","./src/app/auth/auth.guard.ts","./src/app/auth/auth.interceptor.ts","./src/app/auth/bene-nav.guard.ts","./src/app/auth/dd-nav.guard.ts","./src/app/auth/tax-nav.guard.ts","./src/app/auth/wizard-nav.guard.ts","./src/app/callback/callback.component.ts","./src/app/callback/callback.component.html","./src/app/documents/documents.component.ts","./src/app/documents/documents.component.html","./src/app/documents/other-documents/other-documents.component.ts","./src/app/documents/other-documents/other-documents.component.html","./src/app/documents/psb/psb.component.ts","./src/app/documents/psb/psb.component.html","./src/app/documents/ten99r-list/ten99r-list.component.ts","./src/app/documents/ten99r-list/ten99r-list.component.html","./src/app/drop-retiree-panel/drop-retiree-panel.component.ts","./src/app/drop-retiree-panel/drop-retiree-panel.component.html","./src/app/forbidden/forbidden.component.ts","./src/app/forbidden/forbidden.component.html","./src/app/home/home.component.ts","./src/app/home/home.component.html","./src/app/messages/compose-message/compose-message.component.ts","./src/app/messages/compose-message/compose-message.component.html","./src/app/messages/secure-messages.component.ts","./src/app/messages/secure-messages.component.html","./src/app/messages/view-message/view-message.component.ts","./src/app/messages/view-message/view-message.component.html","./src/app/models/FederalTaxDetails.model.ts","./src/app/models/bank-details.model.ts","./src/app/models/beneDetails.model.ts","./src/app/models/benefitEstimateWizard.model.ts","./src/app/nonactive-panel/nonactive-panel.component.ts","./src/app/nonactive-panel/nonactive-panel.component.html","./src/app/outage-notice/outage-notice.component.ts","./src/app/outage-notice/outage-notice.component.html","./src/app/payeenonretiree-panel/payeenonretiree-panel.component.ts","./src/app/payeenonretiree-panel/payeenonretiree-panel.component.html","./src/app/payeeretiree-panel/direct-deposit/bank-info/bank-info.component.ts","./src/app/payeeretiree-panel/direct-deposit/bank-info/bank-info.component.html","./src/app/payeeretiree-panel/direct-deposit/dd-upload/dd-upload.component.ts","./src/app/payeeretiree-panel/direct-deposit/dd-upload/dd-upload.component.html","./src/app/payeeretiree-panel/direct-deposit/deposit-summary/deposit-summary.component.ts","./src/app/payeeretiree-panel/direct-deposit/deposit-summary/deposit-summary.component.html","./src/app/payeeretiree-panel/direct-deposit/direct-deposit.component.ts","./src/app/payeeretiree-panel/direct-deposit/direct-deposit.component.html","./src/app/payeeretiree-panel/direct-deposit/joint-account/joint-account.component.ts","./src/app/payeeretiree-panel/direct-deposit/joint-account/joint-account.component.html","./src/app/payeeretiree-panel/federal-tax-withholding/credit/credit.component.ts","./src/app/payeeretiree-panel/federal-tax-withholding/credit/credit.component.html","./src/app/payeeretiree-panel/federal-tax-withholding/federal-tax-withholding.component.ts","./src/app/payeeretiree-panel/federal-tax-withholding/federal-tax-withholding.component.html","./src/app/payeeretiree-panel/federal-tax-withholding/incomes/incomes.component.ts","./src/app/payeeretiree-panel/federal-tax-withholding/incomes/incomes.component.html","./src/app/payeeretiree-panel/federal-tax-withholding/marital-status/marital-status.component.ts","./src/app/payeeretiree-panel/federal-tax-withholding/marital-status/marital-status.component.html","./src/app/payeeretiree-panel/federal-tax-withholding/optional/optional.component.ts","./src/app/payeeretiree-panel/federal-tax-withholding/optional/optional.component.html","./src/app/payeeretiree-panel/federal-tax-withholding/show-form/show-form.component.ts","./src/app/payeeretiree-panel/federal-tax-withholding/show-form/show-form.component.html","./src/app/payeeretiree-panel/federal-tax-withholding/summary/summary.component.ts","./src/app/payeeretiree-panel/federal-tax-withholding/summary/summary.component.html","./src/app/payeeretiree-panel/federal-tax-withholding/withhold-or-not/withhold-or-not.component.ts","./src/app/payeeretiree-panel/federal-tax-withholding/withhold-or-not/withhold-or-not.component.html","./src/app/payeeretiree-panel/income-verification/income-verification.component.ts","./src/app/payeeretiree-panel/income-verification/income-verification.component.html","./src/app/payeeretiree-panel/payeeretiree-panel.component.ts","./src/app/payeeretiree-panel/payeeretiree-panel.component.html","./src/app/payeeretiree-panel/payment-history/payment-history.component.ts","./src/app/payeeretiree-panel/payment-history/payment-history.component.html","./src/app/payeeretiree-panel/retiree-view-account/retiree-benefit-info/retiree-benefit-info.component.ts","./src/app/payeeretiree-panel/retiree-view-account/retiree-benefit-info/retiree-benefit-info.component.html","./src/app/payeeretiree-panel/retiree-view-account/retiree-retirement-info/retiree-retirement-info.component.ts","./src/app/payeeretiree-panel/retiree-view-account/retiree-retirement-info/retiree-retirement-info.component.html","./src/app/payeeretiree-panel/retiree-view-account/retiree-tax-recovery-info/retiree-tax-recovery-info.component.ts","./src/app/payeeretiree-panel/retiree-view-account/retiree-tax-recovery-info/retiree-tax-recovery-info.component.html","./src/app/payeeretiree-panel/retiree-view-account/retiree-view-account.component.ts","./src/app/payeeretiree-panel/retiree-view-account/retiree-view-account.component.html","./src/app/payeeretiree-panel/state-tax-withholding/md-state-tax/md-state-tax.component.ts","./src/app/payeeretiree-panel/state-tax-withholding/md-state-tax/md-state-tax.component.html","./src/app/payeeretiree-panel/state-tax-withholding/md-tax-summary/md-tax-summary.component.ts","./src/app/payeeretiree-panel/state-tax-withholding/md-tax-summary/md-tax-summary.component.html","./src/app/payeeretiree-panel/state-tax-withholding/state-tax-withholding.component.ts","./src/app/payeeretiree-panel/state-tax-withholding/state-tax-withholding.component.html","./src/app/payeeretiree-panel/tax-withholding/federal-tax/federal-tax.component.ts","./src/app/payeeretiree-panel/tax-withholding/federal-tax/federal-tax.component.html","./src/app/payeeretiree-panel/tax-withholding/state-tax/state-tax.component.ts","./src/app/payeeretiree-panel/tax-withholding/state-tax/state-tax.component.html","./src/app/payeeretiree-panel/tax-withholding/tax-sumamry/tax-sumamry.component.ts","./src/app/payeeretiree-panel/tax-withholding/tax-sumamry/tax-sumamry.component.html","./src/app/payeeretiree-panel/tax-withholding/tax-withholding.component.ts","./src/app/payeeretiree-panel/tax-withholding/tax-withholding.component.html","./src/app/profile/contact-update/address/address-form/address-form.component.ts","./src/app/profile/contact-update/address/address-form/address-form.component.html","./src/app/profile/contact-update/address/address.component.ts","./src/app/profile/contact-update/address/address.component.html","./src/app/profile/contact-update/comm-pref/comm-pref.component.ts","./src/app/profile/contact-update/comm-pref/comm-pref.component.html","./src/app/profile/contact-update/contact-update.component.ts","./src/app/profile/contact-update/contact-update.component.html","./src/app/profile/contact-update/email/email.component.ts","./src/app/profile/contact-update/email/email.component.html","./src/app/profile/contact-update/phone/phone.component.ts","./src/app/profile/contact-update/phone/phone.component.html","./src/app/profile/profile.component.ts","./src/app/profile/profile.component.html","./src/app/profile/security-update/change-password/change-password.component.ts","./src/app/profile/security-update/change-password/change-password.component.html","./src/app/profile/security-update/change-username/change-username.component.ts","./src/app/profile/security-update/change-username/change-username.component.html","./src/app/profile/security-update/security-questions/security-questions.component.ts","./src/app/profile/security-update/security-questions/security-questions.component.html","./src/app/profile/security-update/security-update.component.ts","./src/app/profile/security-update/security-update.component.html","./src/app/shared/accountsummary/accountsummary.component.ts","./src/app/shared/accountsummary/accountsummary.component.html","./src/app/shared/auto-logout-dialog/auto-logout-dialog.component.ts","./src/app/shared/auto-logout-dialog/auto-logout-dialog.component.html","./src/app/shared/beneficiary-info/bene-details/bene-details.component.ts","./src/app/shared/beneficiary-info/bene-details/bene-details.component.html","./src/app/shared/beneficiary-info/bene-details/bene-text/bene-text.component.ts","./src/app/shared/beneficiary-info/bene-details/bene-text/bene-text.component.html","./src/app/shared/beneficiary-info/bene-details/edit-bene/edit-bene.component.ts","./src/app/shared/beneficiary-info/bene-details/edit-bene/edit-bene.component.html","./src/app/shared/beneficiary-info/bene-form/bene-form.component.ts","./src/app/shared/beneficiary-info/bene-form/bene-form.component.html","./src/app/shared/beneficiary-info/beneficiary-info.component.ts","./src/app/shared/beneficiary-info/beneficiary-info.component.html","./src/app/shared/beneficiary-info/view-bene/view-bene.component.ts","./src/app/shared/beneficiary-info/view-bene/view-bene.component.html","./src/app/shared/dialog-box/dialog-box.component.ts","./src/app/shared/dialog-box/dialog-box.component.html","./src/app/shared/e-sign/e-sign.component.ts","./src/app/shared/e-sign/e-sign.component.html","./src/app/shared/feature-outage/feature-outage.component.ts","./src/app/shared/feature-outage/feature-outage.component.html","./src/app/shared/feedback/feedback.component.ts","./src/app/shared/feedback/feedback.component.html","./src/app/shared/footer/footer.component.ts","./src/app/shared/footer/footer.component.html","./src/app/shared/global.ts","./src/app/shared/message-count/message-count.component.ts","./src/app/shared/message-count/message-count.component.html","./src/app/shared/navbar/navbar.component.ts","./src/app/shared/navbar/navbar.component.html","./src/app/shared/notification/notification.component.ts","./src/app/shared/notification/notification.component.html","./src/app/shared/panelbar/panelbar.component.ts","./src/app/shared/panelbar/panelbar.component.html","./src/app/shared/personal-info/personal-info.component.ts","./src/app/shared/personal-info/personal-info.component.html","./src/app/shared/service-error/service-error.component.ts","./src/app/shared/service-error/service-error.component.html","./src/app/shared/services/app-insight.service.ts","./src/app/shared/services/benefit-estimate.service.ts","./src/app/shared/services/benefit-wizard.service.ts","./src/app/shared/services/document.service.ts","./src/app/shared/services/google-analytics.service.ts","./src/app/shared/services/member.service.ts","./src/app/shared/services/messages.service.ts","./src/app/shared/services/mysrps-app.service.ts","./src/app/shared/services/read-config.service.ts","./src/app/shared/services/retiree.service.ts","./src/app/shared/services/set-style.service.ts","./src/app/shared/services/toast-message.service.ts","./src/app/shared/services/user.service.ts","./src/app/user-exception/user-exception.component.ts","./src/app/user-exception/user-exception.component.html","./src/app/user/sign-in/sign-in.component.ts","./src/app/user/sign-up/sign-up.component.ts","./src/app/user/sign-up/sign-up.component.html","./src/app/user/unactivated-user/unactivated-user.component.ts","./src/app/user/unactivated-user/unactivated-user.component.html","./src/app/user/user.component.ts","./src/app/user/user.component.html","./src/app/withdrawn-panel/withdrawn-panel.component.ts","./src/app/withdrawn-panel/withdrawn-panel.component.html","./src/environments/environment.ts","./src/main.ts","ignored|C:\\agent\\_work\\766\\s\\node_modules\\crypto-js|crypto"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-active-panel',\n templateUrl: './active-panel.component.html',\n styleUrls: ['./active-panel.component.css']\n})\nexport class ActivePanelComponent implements OnInit {\n constructor() {}\n\n ngOnInit() {\n }\n}\n","\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { DocumentService } from '../../shared/services/document.service';\nimport { UserService } from '../../shared/services/user.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../../shared/services/toast-message.service';\nimport { ReadConfigService } from '../../shared/services/read-config.service';\nimport { MemberService } from '../../shared/services/member.service';\nimport { Router } from '@angular/router';\nimport { SetStyleService } from '../../shared/services/set-style.service';\n\n@Component({\n selector: 'app-asset-verification',\n templateUrl: './asset-verification.component.html',\n styleUrls: ['./asset-verification.component.css']\n})\n\nexport class AssetVerificationComponent implements OnInit {\n letterHeading: any;\n accountId: any;\n dataLoading = false;\n userDetails: any;\n showAppOutage: boolean;\n appOutageMessage: any;\n futureOutageMessage: any;\n constructor(\n private documentService: DocumentService,\n private readConfigService: ReadConfigService,\n private userService: UserService,\n private memberService: MemberService,\n private toastService: ToastMessageService,\n private router: Router,\n private setStyleService: SetStyleService) { }\n\n ngOnInit() {\n this.letterHeading = this.readConfigService.getLetterHeading();\n this.userDetails = this.userService.getUserInputData();\n this.showComponent();\n setTimeout(() => this.setStyleService.setPanelBarStyle('Asset Verification'), 2000);\n }\n\n showComponent() {\n this.memberService.getAssetOutage(this.userDetails).subscribe((data: any) => {\n if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else if (data.statusCode === 200) {\n if (data.hideFeature) {\n this.showAppOutage = true;\n this.appOutageMessage = data.outageMessage;\n } else {\n this.futureOutageMessage = data.outageMessage;\n }\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n });\n }\n\n /**\n * @description\n * Function to get Asset Verification Letter\n */\n viewAssetLetter() {\n this.accountId = this.userService.getMdsAccountId();\n this.dataLoading = true;\n const selectedAccount = this.userService.getSelectedAccount();\n if (selectedAccount !== null && this.accountId) {\n const userType = selectedAccount.label.split('|')[6];\n const letterType = userType === 'L' ? 'L' : 'M';\n const uniqueId = selectedAccount.uniqueId;\n const fy = selectedAccount.fiscalYear;\n this.documentService.getAssetLetter(uniqueId, fy, letterType, this.accountId, this.userDetails)\n .subscribe(() => {\n this.dataLoading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.dataLoading = false;\n this.toastService.getErrorMessage();\n });\n } else {\n this.dataLoading = false;\n this.toastService.getErrorMessage();\n }\n }\n}\n","

Asset Verification

\n
\n \n
\n \n
\n
\n {{letterHeading}}Asset Verification letter.\n
\n \n View/Print Letter\n
\n
\n \n
\n
\n
\n
\n \n
\n","import { Component, OnInit } from '@angular/core';\nimport { SetStyleService } from '../../shared/services/set-style.service';\n\n@Component({\n selector: 'app-benefit-estimate',\n templateUrl: './benefit-estimate.component.html',\n styleUrls: ['./benefit-estimate.component.css']\n})\n\nexport class BenefitEstimateComponent implements OnInit {\n constructor(\n private setStyleService: SetStyleService\n ) { }\n ngOnInit() {\n setTimeout(() => this.setStyleService.setPanelBarStyle('Estimate Benefits'), 2000);\n }\n}\n","
\r\n \r\n
","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-benefit-details',\n templateUrl: './benefit-details.component.html',\n styleUrls: ['./benefit-details.component.css']\n})\nexport class BenefitDetailsComponent implements OnInit {\n prepData: any;\n @Input() creditableDetails: any;\n @Input() eligibilityDetails: any;\n @Input() normalRetDate: any;\n @Input() earlyRetDate: any;\n @Input() retDetails: any;\n @Input() afcDetails: any;\n @Input() benefitDetails: any;\n @Input() nextScreenDetails: any;\n\n constructor() { }\n\n ngOnInit() {\n }\n}\n","
\r\n
\r\n
\r\n Total Creditable Service: {{creditableDetails.years}} Year(s) {{creditableDetails.months}}\r\n Month(s)\r\n
\r\n
\r\n Total Eligibility Service: {{eligibilityDetails.years}} Year(s)\r\n {{eligibilityDetails.months}}\r\n Month(s)\r\n
\r\n
\r\n Retirement Date: {{retDetails | date:'MM/dd/yyyy'}}\r\n
\r\n
\r\n Early Service Retirement Date: {{earlyRetDate | date:'MM/dd/yyyy'}}\r\n
\r\n
\r\n Normal Service Retirement Date: {{normalRetDate | date:'MM/dd/yyyy'}}\r\n
\r\n
\r\n Average Final Compensation: {{afcDetails | currency:'USD'}}\r\n
\r\n
\r\n Monthly Basic Allowance: {{benefitDetails | currency:'USD'}}\r\n
\r\n
\r\n
","import {\n Component, OnInit, ViewChild, ElementRef, Renderer2,\n ChangeDetectorRef, DoCheck, ViewContainerRef\n} from '@angular/core';\nimport { TabStripComponent } from '@progress/kendo-angular-layout';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { UserService } from '../../../shared/services/user.service';\nimport { BenefitWizardService } from '../../../shared/services/benefit-wizard.service';\nimport {\n Navigation, ServiceProjection, RetirementDate, SalaryProjection, SickLeave,\n Beneficiary, Common, MilitaryService\n} from '../../../models/benefitEstimateWizard.model';\nimport { GoogleAnalyticsService } from '../../../shared/services/google-analytics.service';\n\n@Component({\n selector: 'app-benefit-wizard',\n templateUrl: './benefit-wizard.component.html',\n styleUrls: ['./benefit-wizard.component.css']\n})\nexport class BenefitWizardComponent implements OnInit, DoCheck {\n\n @ViewChild('tabstrip') tabstrip: TabStripComponent;\n @ViewChild('progressBar') progressBar: ElementRef;\n @ViewChild('deskprogressBar') deskprogressBar: ElementRef;\n @ViewChild('container', { read: ViewContainerRef }) public container: ViewContainerRef;\n public currentScreen = 0;\n public showProgressBar = false;\n public percentage = 0;\n percentageIncrease = 16;\n numberofTabs = 6;\n public showprogresstext = false;\n selectedAccount: any;\n showTabNav = true;\n disableNone = 0;\n navigationData: Navigation;\n progressDiffNav = false;\n screenData: any;\n tabsChange = false;\n beneficiaryTab = false;\n militaryTab = true;\n finalData: any;\n militaryInfoIconValues: any;\n tabSelected = false;\n constructor(private router: Router,\n private userService: UserService,\n private activatedRoute: ActivatedRoute,\n private wizardService: BenefitWizardService,\n private cdRef: ChangeDetectorRef,\n private renderer: Renderer2,\n private googleAnalyticsService: GoogleAnalyticsService) {\n if (sessionStorage.getItem('loadedInfoIcons') === null) {\n this.loadInfoIcons(50);\n } else {\n this.loadInfoIcons(0);\n }\n }\n\n ngOnInit() {\n this.selectedAccount = this.userService.getSelectedAccount();\n this.setTabStyles();\n this.checkOrp();\n window.scrollTo(0, 0);\n }\n\n checkOrp() {\n const orpFlag = this.activatedRoute.snapshot.queryParams.orpFlag;\n if (orpFlag !== undefined && orpFlag === 'O') {\n this.beneficiaryTab = true;\n this.showTabNav = false;\n this.militaryTab = false;\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Esimate Beneficiary', 'Click', 10);\n } else {\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Esimate Military Service', 'Click', 10);\n this.militaryTab = true;\n }\n this.tabSelected = true;\n }\n\n loadInfoIcons(timeDelay: any) {\n setTimeout(() => {\n if (sessionStorage.getItem('loadedInfoIcons') === null) {\n this.loadInfoIcons(timeDelay);\n } else {\n this.militaryInfoIconValues = this.userService.getInfoIconValues('Member', 'Estimate Benefits_Custom Estimate_Military');\n }\n }, timeDelay);\n }\n\n ngDoCheck() {\n this.cdRef.detectChanges();\n }\n\n goToMonthlyBasicAllowance() {\n if (this.selectedAccount !== null) {\n this.router.navigate(['/' + this.selectedAccount.role + '/Estimate Benefits/MonthlyBasicAllowance']);\n }\n }\n\n setTabStyles() {\n const alltabItems = document.querySelector('.k-tabstrip-items');\n if (alltabItems !== null) {\n const tabItemsElements = (alltabItems as HTMLElement);\n tabItemsElements.style.display = 'none';\n }\n }\n\n resetTabs() {\n this.navigationData = this.wizardService.getNavigation();\n this.progressDiffNav = true;\n let max: any;\n const diff = this.navigationData.nextScreen - this.navigationData.currentScreen;\n if (diff === 1) { max = 6; this.resetAllTabsDisplay(); } else { max = this.navigationData.nextScreen; }\n this.resetTabsDisplay((this.navigationData.currentScreen), max);\n for (let i = this.navigationData.currentScreen + 1; i < this.navigationData.nextScreen; i++) {\n const displayItems = document.querySelector('#progress' + (i + 1));\n this.setCounter(1);\n displayItems.classList.add('display-none');\n }\n }\n\n setTabsDisplay() {\n this.navigationData = this.wizardService.getNavigation();\n this.progressDiffNav = true;\n this.resetTabsDisplay(1, this.numberofTabs);\n for (let i = this.navigationData.currentScreen + 1; i < this.navigationData.nextScreen; i++) {\n const displayItems = document.querySelector('#progress' + (i + 1));\n if (displayItems) {\n displayItems.classList.add('display-none');\n }\n }\n }\n\n resetTabsDisplay(current: any, max: any) {\n if (this.tabsChange === false) {\n for (let i = current; i < max; i++) {\n const displayItems = document.querySelector('#progress' + (i + 1));\n if (displayItems !== null && displayItems.className.indexOf('display-none') < 0) {\n this.setCounter(0);\n displayItems.classList.remove('display-none');\n }\n }\n }\n }\n\n resetAllTabsDisplay() {\n const startButton = this.navigationData.currentScreen + 1;\n for (let i = startButton; i < this.numberofTabs; i++) {\n const displayItems = document.querySelector('#progress' + (i + 1));\n if (displayItems) {\n this.setCounter(0);\n displayItems.classList.remove('display-none');\n }\n }\n }\n\n setCounter(mode: any) {\n if (mode === 1) {\n this.disableNone = this.disableNone + 1;\n } else {\n if (this.disableNone > 0) { this.disableNone = this.disableNone - 1; }\n }\n }\n\n setTagDisplay(id: any) {\n switch (id + 1) {\n case 1:\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Estimate Military Service', 'Click', 10);\n break;\n case 2:\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Estimate Service Projection', 'Click', 10);\n break;\n case 3:\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Estimate Retirement Date', 'Click', 10);\n break;\n case 4:\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Estimate Salary Projection', 'Click', 10);\n break;\n case 5:\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Estimate Sick Leave', 'Click', 10);\n break;\n case 6:\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Estimate Beneficiary', 'Click', 10);\n break;\n }\n }\n\n goToAssumptions(mode: any) {\n if (mode === 1) {\n this.setTabsDisplay();\n this.showprogresstext = true;\n this.tabsChange = true;\n this.setDeskToProgressBar('progress' + (this.navigationData.currentScreen + 1));\n } else if (mode === 0) {\n if (this.currentScreen === -1) {\n this.setDeskToProgressBar('progress' + this.currentScreen);\n this.goToMonthlyBasicAllowance();\n this.tabsChange = true;\n return;\n }\n }\n this.goToAssumptionsTab(this.currentScreen, mode);\n }\n\n goToAssumptionsTab(selected: any, mode: any) {\n const progressItems = document.getElementsByClassName('active').length;\n const tabDisplayNoneItemsLen = document.getElementsByClassName('display-none').length;\n const perIncrease = Math.floor(100 / (this.numberofTabs - tabDisplayNoneItemsLen));\n this.showProgressBar = true;\n if (mode === 1) {\n this.disableNone = tabDisplayNoneItemsLen;\n if (progressItems >= 1) {\n this.percentage = (progressItems) * perIncrease;\n } else {\n const diff = this.navigationData.nextScreen - this.navigationData.currentScreen;\n if ((diff >= 2 && this.progressDiffNav === true) || this.progressDiffNav === false) {\n this.percentage = (this.navigationData.currentScreen + 1) * perIncrease;\n } else { this.percentage = (this.navigationData.currentScreen) * perIncrease; }\n }\n }\n if (this.percentage <= (this.percentageIncrease * this.numberofTabs)) {\n if (this.progressBar !== undefined) {\n this.renderer.setStyle(this.progressBar.nativeElement, 'width', this.percentage + '%');\n }\n }\n this.tabstrip.selectTab(selected);\n }\n\n setPercentage() {\n const tabDisplayNoneItemsLen = document.getElementsByClassName('tab-link display-none').length;\n const activeNoneItemsLen = document.getElementsByClassName('active display-none').length;\n const perIncrease = 100 / (this.numberofTabs - tabDisplayNoneItemsLen);\n const progressItems = document.getElementsByClassName('active').length - activeNoneItemsLen;\n this.percentage = Math.floor((progressItems) * perIncrease);\n if (this.progressBar !== undefined) {\n this.renderer.setStyle(this.progressBar.nativeElement, 'width', this.percentage + '%');\n }\n }\n\n goToReset(mode: any) {\n if (mode === 1) {\n this.showprogresstext = true;\n // current tab will progress till current screen\n this.setDeskToProgressBar('progress' + this.currentScreen);\n // tabs after the current tabs will reset\n for (let i = this.currentScreen + 1; i < 8; i++) {\n this.resetProgressBar('progress' + i);\n }\n // progressbar will reset till current screen\n this.goToAssumptionsTab(this.currentScreen, mode);\n this.tabstrip.selectTab(this.currentScreen);\n } else {\n for (let i = this.currentScreen + 1; i < 8; i++) {\n this.resetProgressBar('progress' + i);\n }\n }\n }\n\n changeTab(id: any) {\n this.setTagDisplay(id - 1);\n this.tabstrip.selectTab(id - 1);\n this.setDeskToProgressBar('progress' + id);\n this.currentScreen = id - 1;\n this.tabsChange = true;\n }\n\n setDeskToProgressBar(item: any) {\n const progressItems = document.querySelector('#' + item);\n if (progressItems != null) {\n const progressItemsElement = (progressItems as HTMLElement);\n progressItemsElement.classList.add('text-white');\n progressItemsElement.classList.add('background-red');\n progressItemsElement.classList.add('active');\n progressItemsElement.classList.remove('disabledbutton');\n }\n }\n\n resetProgressBar(item: any) {\n const progressItems = document.querySelector('#' + item);\n if (progressItems != null) {\n const progressItemsElement = (progressItems as HTMLElement);\n progressItemsElement.classList.remove('text-white');\n progressItemsElement.classList.remove('background-red');\n progressItemsElement.classList.remove('active');\n progressItemsElement.classList.add('disabledbutton');\n }\n }\n\n resetSessionData(resetScreen: any, resetCommon: boolean = false, resetnavigation: boolean = false) {\n resetScreen = resetScreen === 6 ? 0 : resetScreen;\n const resetData0 = new MilitaryService();\n const resetData1 = new ServiceProjection();\n const resetData2 = new RetirementDate();\n const resetData3 = new SalaryProjection();\n const resetData4 = new SickLeave();\n const resetData5 = new Beneficiary();\n for (let i = resetScreen + 1; i < this.numberofTabs; i++) {\n if (i === 1) { this.wizardService.setServiceProjection(resetData1); }\n if (i === 2) { this.wizardService.setRetirementDate(resetData2); }\n if (i === 3) { this.wizardService.setSalaryProjection(resetData3); }\n if (i === 4) { this.wizardService.setSickLeave(resetData4); }\n if (i === 5) { this.wizardService.setBeneficiary(resetData5); }\n }\n if (resetCommon) {\n const commonData = new Common();\n this.wizardService.setCommon(commonData);\n this.wizardService.setMilitary(resetData0);\n }\n if (resetnavigation) {\n const navigationData = new Navigation();\n this.wizardService.setNavigation(navigationData);\n }\n }\n\n setCurrentScreen(screen: any) {\n this.screenData = screen;\n this.currentScreen = isNaN(Number(screen.screen)) ? -1 : Number(screen.screen);\n this.setTagDisplay(this.currentScreen);\n if (this.currentScreen === 6) {\n this.finalData = screen.finalData;\n this.resetSessionData(0, true, true);\n this.showTabNav = false;\n this.tabstrip.selectTab(this.currentScreen);\n } else if (this.beneficiaryTab && this.currentScreen === 0) {\n this.tabstrip.selectTab(5);\n } else {\n this.showTabNav = true;\n if (screen.reset) {\n this.resetSessionData(screen.current);\n this.goToReset(Number(screen.mode));\n } else if (screen.display) {\n this.tabsChange = false;\n this.setTabsDisplay();\n } else if (screen.retain) {\n this.tabsChange = false;\n this.resetTabs();\n } else if (screen.resetTabs) {\n this.resetAllTabsDisplay();\n } else {\n this.goToAssumptions(Number(screen.mode));\n }\n this.setPercentage();\n }\n }\n}\n","
\n
\n
\n
\n
\n Military Service Credit\n Military\n
\n \n
\n
\n
\n Projecting your Service\n Service\n
\n \n
\n
\n
\n Projecting your Retirement Date\n Retirement Date\n
\n \n
\n
\n
\n Projecting your Salary to Retirement\n Salary\n
\n \n
\n
\n
\n Unused Sick Leave Service Credit\n Sick Leave\n
\n \n
\n
\n
\n Your Beneficiaries\n Beneficiaries\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, Output, EventEmitter, ViewChild, ElementRef, AfterViewChecked } from '@angular/core';\nimport { BenefitEstimateService } from '../../../../shared/services/benefit-estimate.service';\nimport { BenefitWizardService } from '../../../../shared/services/benefit-wizard.service';\nimport { Beneficiary, Navigation, EstimateData } from '../../../../models/benefitEstimateWizard.model';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../../../../shared/services/toast-message.service';\nimport { Router } from '@angular/router';\nimport { UserService } from '../../../../shared/services/user.service';\nimport { SortDescriptor, orderBy } from '@progress/kendo-data-query';\nimport { GridDataResult } from '@progress/kendo-angular-grid';\nimport { ReadConfigService } from '../../../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-estimate-beneficiary',\n templateUrl: './estimate-beneficiary.component.html',\n styleUrls: ['./estimate-beneficiary.component.css']\n})\nexport class EstimateBeneficiaryComponent implements OnInit {\n introduction: any;\n beneficiaryConfig: any;\n previousTitle: any;\n nextTitle: any;\n url: any;\n disclaimerText: any;\n wizardData: Beneficiary;\n navigationData: Navigation;\n prepData: any;\n linkTexts: any;\n disableOtherBeneficiary = true;\n selectedAccount: any;\n uniqueId: any;\n system: any;\n hideSelMarried = true;\n hideBeneficiarySelection = false;\n beneficiaryData: any;\n relationshipInfo: any;\n genderInfo: any;\n formData: any;\n dataReset = true;\n previousScreenCode: any;\n comments = '';\n estimateData: EstimateData;\n defaultItem: { relationShip: string, Id: string; } = { relationShip: 'Select relationship', Id: null };\n genderDefaultItem: { gender: string, Id: string; } = { gender: 'Select gender', Id: null };\n @Output() progressModel = new EventEmitter();\n notOrp: boolean;\n @ViewChild('beneficiaryform') beneficiaryform: ElementRef;\n opencommentbox = false;\n selectedBeneID: any;\n showErrorOther = false;\n finalData: any;\n informationMsg = '';\n loadingIcon = false;\n max: Date = new Date();\n beneList: any;\n gridView: any[];\n gridData: GridDataResult;\n sort: SortDescriptor[] = [{\n field: 'benyRelationCode',\n dir: 'asc'\n }, {\n field: 'lastname',\n dir: 'asc'\n }, {\n field: 'firstname',\n dir: 'asc'\n }];\n pageSize = 10;\n skip = 0;\n otherBeneSelected = false;\n noneBeneSelected = false;\n userDetails: any;\n constructor(\n private estimateService: BenefitEstimateService,\n private userService: UserService,\n private wizardService: BenefitWizardService,\n private toastService: ToastMessageService,\n private readConfigService: ReadConfigService,\n private router: Router) { }\n\n ngOnInit() {\n this.prepData = this.estimateService.getEstimatePrepData();\n if (this.prepData !== null) {\n this.uniqueId = this.userService.getTileId();\n this.userDetails = this.userService.getUserInputData();\n this.setConfiData();\n this.wizardData = this.wizardService.getBeneficiary();\n if (this.wizardData.dob !== undefined) { this.wizardData.dob = new Date(this.wizardData.dob); }\n this.getAllRelationships();\n this.getNavigationData();\n if ((this.prepData.system === '3') || (this.prepData.system === '4') || (this.prepData.system === '5')\n || (this.prepData.system === '8') || (this.prepData.system === '9')) {\n this.hideSelMarried = false;\n this.hideBeneficiarySelection = true;\n }\n this.getAllBenyData();\n this.notOrp = this.prepData.orpFlag !== 'O';\n }\n window.scrollTo(0, 0);\n }\n\n /**\n * @description\n * Function to close dialog box\n */\n close() {\n this.opencommentbox = false;\n }\n\n setGender(gender: any) {\n if (gender === 'M') { return 'Male'; }\n if (gender === 'F') { return 'Female'; }\n }\n\n getAge(dateString: any) {\n const today = new Date();\n const birthDate = new Date(dateString);\n let age = today.getFullYear() - birthDate.getFullYear();\n const m = today.getMonth() - birthDate.getMonth();\n if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {\n age--;\n }\n return age;\n }\n\n getAllBenyData() {\n this.estimateService.getBenefitBeneficiaryData(this.uniqueId, this.userDetails).subscribe((response: any) => {\n if (response.success) {\n this.beneList = response.result;\n const spouseRecord = this.beneList.filter((x: any) => x.relationship === 'Spouse');\n const nonSpouseRecord = this.beneList.filter((x: any) => x.relationship !== 'Spouse');\n this.beneficiaryData = this.hideSelMarried ? this.beneList : nonSpouseRecord;\n if (this.hideSelMarried && (spouseRecord.length > 0 || nonSpouseRecord.length > 0)) {\n if (spouseRecord.length > 0) {\n this.wizardData.selOption = spouseRecord[0].id.toString();\n this.selectedBeneID = spouseRecord[0].id;\n } else {\n this.wizardData.selOption = this.beneficiaryData[0].id.toString();\n this.selectedBeneID = this.beneficiaryData[0].id;\n }\n } else {\n this.wizardData.selOption = null;\n this.disableOtherBeneficiary = false;\n this.selectedBeneID = 0;\n }\n const otherBene = {\n benyName: 'Other Beneficiary',\n benyRelationCode: '',\n dob: '',\n firstname: '',\n gender: '',\n id: 'otherBene',\n lastname: '',\n mi: '',\n relationship: '',\n };\n const noneBene = {\n benyName: 'None',\n benyRelationCode: '',\n dob: '',\n firstname: '',\n gender: '',\n id: 'none',\n lastname: '',\n mi: '',\n relationship: '',\n };\n this.gridView = orderBy(this.beneficiaryData, this.sort);\n this.gridView.push(otherBene);\n this.gridView.push(noneBene);\n this.beneficiaryData.push(otherBene);\n this.beneficiaryData.push(noneBene);\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n } else if (response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.toastService.getErrorMessage();\n });\n }\n\n getAllRelationships() {\n this.estimateService.getBeneficiaryRelationshipData().subscribe(response => {\n if (response.success) {\n this.relationshipInfo = response.result;\n if (!this.hideSelMarried) {\n this.relationshipInfo.splice(0, 1);\n }\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.toastService.getErrorMessage();\n });\n }\n\n setConfiData() {\n this.selectedAccount = this.userService.getSelectedAccount();\n this.beneficiaryConfig = this.readConfigService.getBeneficiaryText();\n if (this.prepData.system === 4) {\n this.introduction = this.beneficiaryConfig.Introduction['4'];\n } else if (this.prepData.system === 5) {\n this.introduction = this.beneficiaryConfig.Introduction['5'];\n } else if (this.prepData.system === 3 || this.prepData.system === 8 || this.prepData.system === 9) {\n this.introduction = this.beneficiaryConfig.Introduction['3, 8, and 9'];\n } else {\n this.introduction = this.beneficiaryConfig.Introduction['1, 2, 6, 7, G and H'];\n }\n this.previousTitle = this.beneficiaryConfig.PreviousTitle;\n this.nextTitle = this.beneficiaryConfig.NextTitle;\n this.url = this.beneficiaryConfig.Link;\n this.disclaimerText = this.beneficiaryConfig.Disclaimer;\n this.genderInfo = this.estimateService.getGender();\n }\n\n getNavigationData() {\n this.linkTexts = this.readConfigService.getEstimateLinkTexts();\n this.navigationData = this.wizardService.getNavigation();\n if (this.navigationData.currentScreen === 0) {\n this.previousTitle = this.linkTexts.Military;\n } else if (this.navigationData.currentScreen === 1) {\n this.previousTitle = this.linkTexts.Service;\n } else if (this.navigationData.currentScreen === 2) {\n this.previousTitle = this.linkTexts.RetirementDate;\n } else if (this.navigationData.currentScreen === 3) {\n this.previousTitle = this.linkTexts.Salary;\n } else {\n this.previousTitle = this.linkTexts.SickLeave;\n }\n this.previousScreenCode = this.navigationData.currentScreen;\n }\n\n selOption(event: any, value: any) {\n if (event.target.checked) {\n if (value.benyName === 'Other Beneficiary') {\n this.otherBeneSelected = true;\n this.noneBeneSelected = false;\n this.disableOtherBeneficiary = false;\n this.showErrorOther = false;\n this.selectedBeneID = 0;\n } else {\n this.otherBeneSelected = false;\n if (value.benyName !== 'None') {\n this.noneBeneSelected = false;\n this.selectedBeneID = event.target.id;\n } else {\n this.selectedBeneID = 0;\n this.noneBeneSelected = true;\n this.showErrorOther = false;\n }\n this.disableOtherBeneficiary = true;\n this.wizardData.relationship = undefined;\n this.wizardData.dob = undefined;\n this.wizardData.firstname = undefined;\n this.wizardData.lastname = undefined;\n this.wizardData.mi = undefined;\n this.wizardData.gender = undefined;\n }\n }\n }\n\n marriedSelChange(event: any) {\n if (event === 'no') {\n this.hideBeneficiarySelection = false;\n } else {\n this.otherBeneSelected = false;\n this.noneBeneSelected = false;\n this.wizardData.selOption = null;\n this.hideBeneficiarySelection = true;\n }\n }\n\n sortChange(sort: SortDescriptor[]): void {\n this.sort = sort;\n this.gridView = orderBy(this.beneList, this.sort);\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n\n saveEstimate(data: any) {\n this.loadingIcon = true;\n const inputData = {\n data,\n user: this.userService.getUserInputData(),\n accountId: this.userService.getMdsAccountId(),\n transactionLogData: {\n TransactionType: this.readConfigService.getTransactionType('SaveCustomEstimate'),\n LogInTime: this.userService.getLastLoginTime()\n }\n };\n if (inputData.accountId) {\n this.estimateService.saveCustomEstimate(inputData).subscribe(response => {\n if (response.statusCode === 200) {\n this.finalData = response.result;\n sessionStorage.setItem('customEstimate', JSON.stringify(this.finalData));\n sessionStorage.removeItem('wizardData');\n if (this.selectedAccount !== null) {\n this.router.navigate(['/' + this.selectedAccount.role + '/Estimate Benefits/SaveCustomEstimate']);\n }\n } else if (response.statusCode === 204) {\n this.close();\n this.toastService.getCustomErrorMessage(response.message);\n } else if (response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n this.loadingIcon = false;\n this.opencommentbox = false;\n },\n (err: HttpErrorResponse) => {\n this.loadingIcon = false;\n this.opencommentbox = false;\n this.close();\n console.log(err.error);\n this.toastService.getErrorMessage();\n });\n } else {\n this.loadingIcon = false;\n this.opencommentbox = false;\n this.close();\n this.toastService.getErrorMessage();\n }\n }\n\n setPrepData() {\n this.estimateData.OldMilitary = 0;\n this.estimateData.NewMilitary = 0;\n this.estimateData.StopWorkDt = this.prepData.lastPayrollDate;\n this.estimateData.RetDt = this.prepData.normalRetDt;\n this.estimateData.AFC = this.prepData.normalAfc;\n this.estimateData.SalIncMonth = 0;\n this.estimateData.GrowthRate = 0;\n this.estimateData.SLMonths = 0;\n this.estimateData.ProjEligSvc = this.prepData.transitElig;\n this.estimateData.ProjCredSvc = this.prepData.transitCred;\n this.estimateData.RedFactor = this.prepData.earlyRedFactor;\n this.estimateData.RegReduced = this.prepData.reducedInfo.regReduced;\n this.estimateData.BifReduced = this.prepData.reducedInfo.bifReduced;\n this.estimateData.EnhReduced = this.prepData.reducedInfo.enhReduced;\n this.estimateData.RefReduced = this.prepData.reducedInfo.refReduced;\n this.estimateData.SSIL = this.prepData.normalSSIL;\n }\n\n setBeneficiaryData() {\n let selectedbene = new Beneficiary();\n if (this.hideBeneficiarySelection) {\n const spouseRecord = this.beneList.filter((x: any) => x.relationship === 'Spouse');\n if (spouseRecord.length > 0) {\n selectedbene = spouseRecord[0];\n } else {\n const spouseRelCode = this.relationshipInfo.filter((x: any) => x.relationShip === 'Spouse')[0];\n selectedbene.benyRelationCode = spouseRelCode ? spouseRelCode : '01 ';\n }\n } else {\n if (this.otherBeneSelected) {\n this.wizardData.benyRelationCode = this.wizardData.relationship;\n selectedbene = this.wizardData;\n selectedbene.gender = selectedbene.gender.substring(0, 1);\n } else if (this.noneBeneSelected) {\n selectedbene.dob = '';\n } else {\n selectedbene = this.beneficiaryData.filter((x: any) => x.id === Number(this.selectedBeneID))[0];\n }\n }\n this.estimateData.BenDOB = selectedbene !== undefined ? selectedbene.dob : undefined;\n this.estimateData.BenFName = selectedbene !== undefined ? selectedbene.firstname : undefined;\n this.estimateData.BenLName = selectedbene !== undefined ? selectedbene.lastname : undefined;\n this.estimateData.BenMI = selectedbene !== undefined ? selectedbene.mi : undefined;\n this.estimateData.BenRelationCode = selectedbene !== undefined ? selectedbene.benyRelationCode : undefined;\n this.estimateData.BenGender = selectedbene !== undefined ? selectedbene.gender : undefined;\n }\n\n setCommonData() {\n const commonData = this.wizardService.getCommon();\n this.estimateData.StopWorkDt = commonData.stopWorkDate;\n this.estimateData.ProjEligSvc = commonData.AFCResult !== undefined ? commonData.AFCResult.projEligSvc : undefined;\n this.estimateData.ProjCredSvc = commonData.AFCResult !== undefined ? commonData.AFCResult.projCredSvc : undefined;\n this.estimateData.RedFactor = commonData.AFCResult !== undefined ? commonData.AFCResult.reductionFactor : undefined;\n this.estimateData.RegReduced = commonData.reducedInfo !== undefined ? commonData.reducedInfo.regReduced : undefined;\n this.estimateData.BifReduced = commonData.reducedInfo !== undefined ? commonData.reducedInfo.bifReduced : undefined;\n this.estimateData.EnhReduced = commonData.reducedInfo !== undefined ? commonData.reducedInfo.enhReduced : undefined;\n this.estimateData.RefReduced = commonData.reducedInfo !== undefined ? commonData.reducedInfo.refReduced : undefined;\n this.estimateData.SSIL = commonData.AFCResult !== undefined ? commonData.AFCResult.ssil : undefined;\n this.estimateData.AFC = commonData.updatedAFC;\n }\n\n setSalaryData() {\n const salaryData = this.wizardService.getSalaryProjection();\n if (salaryData.selOption === 'input') {\n this.estimateData.SalIncMonth = salaryData.growthMonth;\n this.estimateData.GrowthRate = salaryData.growthPercent;\n } else if (salaryData.selOption === 'project') {\n this.estimateData.SalIncMonth = salaryData.salIncreaseMonth;\n this.estimateData.GrowthRate = salaryData.selSalaryPercentage;\n }\n }\n\n setSickLeaveData() {\n const sickLeaveData = this.wizardService.getSickLeave();\n if (sickLeaveData.addService !== undefined) {\n this.estimateData.SLMonths = sickLeaveData.addServiceMonths;\n } else {\n this.estimateData.SLMonths = 0;\n }\n }\n\n setRetirementData() {\n const retireData = this.wizardService.getRetirementDate();\n this.estimateData.RetDt = retireData.rtDate;\n }\n\n setMilitaryData() {\n const militaryData = this.wizardService.getMilitary();\n let year = 0; let month = 0;\n if (militaryData.duringYear !== undefined) {\n year = militaryData.duringYear;\n }\n if (militaryData.duringMonth !== undefined) {\n month = militaryData.duringMonth;\n }\n this.estimateData.OldMilitary = this.estimateService.convertMonths(year,\n month, this.prepData.tenMonth);\n year = 0; month = 0;\n if (militaryData.priorYear !== undefined) {\n year = militaryData.priorYear;\n }\n if (militaryData.priorMonth !== undefined) {\n month = militaryData.priorMonth;\n }\n this.estimateData.NewMilitary = this.estimateService.convertMonths(year,\n month, this.prepData.tenMonth);\n }\n\n onSubmit() {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n this.wizardService.setBeneficiary(this.wizardData);\n sessionStorage.setItem('wizardData', JSON.stringify(this.formData));\n this.opencommentbox = true;\n }\n\n next() {\n if (this.hideBeneficiarySelection && this.wizardData.selMarried) {\n return true;\n } else {\n if (!this.wizardData.selOption) {\n return false;\n }\n if (this.otherBeneSelected) {\n if (this.wizardData.dob !== undefined) {\n const currentAge = (this.getAge(this.wizardData.dob));\n if (currentAge < 0) {\n this.informationMsg = 'Date of Birth cannot be in the future.';\n this.showErrorOther = true;\n return false;\n } else {\n this.showErrorOther = false;\n this.informationMsg = '';\n }\n if (currentAge > 110) {\n this.showErrorOther = true;\n this.informationMsg = 'You cannot choose a beneficiary whose age at your retirement is greater than 110 years.';\n return false;\n } else {\n this.showErrorOther = false;\n this.informationMsg = '';\n }\n }\n if ((this.wizardData.relationship === undefined) || (this.wizardData.relationship === '')\n || (this.wizardData.relationship === 0)) {\n return false;\n }\n if ((this.wizardData.gender === undefined) || (this.wizardData.gender === 'Select gender')\n || (this.wizardData.gender === 0)) {\n return false;\n }\n if ((this.wizardData.dob === undefined) || (this.wizardData.dob === null)\n || (this.wizardData.dob === 0)) {\n return false;\n }\n if ((this.wizardData.firstname === undefined) || (this.wizardData.firstname === null)\n || (this.wizardData.firstname === '')) {\n return false;\n }\n if ((this.wizardData.lastname === undefined) || (this.wizardData.lastname === null)\n || (this.wizardData.lastname === '')) {\n return false;\n }\n return true;\n }\n if (!this.noneBeneSelected) {\n if (this.beneficiaryData !== undefined) {\n const selectedbene = this.beneficiaryData.filter((x: any) => x.id === Number(this.selectedBeneID))[0];\n if (selectedbene !== undefined && selectedbene.dob !== undefined) {\n const currentAge = (this.getAge(selectedbene.dob));\n if (currentAge > 110) {\n this.showErrorOther = true;\n this.informationMsg = 'You cannot choose a beneficiary whose age at your retirement is greater than 110 years.';\n return false;\n } else {\n this.informationMsg = '';\n this.showErrorOther = false;\n }\n }\n }\n }\n }\n return true;\n }\n\n /**\n * Function to navigate to the previous page\n */\n previousScreen() {\n this.progressModel.emit({ mode: '0', screen: this.previousScreenCode, reset: false });\n }\n\n exitEstimate() {\n this.progressModel.emit({ mode: '0', screen: '-1', reset: false });\n }\n\n /**\n * Function to navigate to the next page\n */\n nextScreen() {\n this.estimateData = new EstimateData();\n this.estimateData.UniqueId = this.uniqueId;\n const commonData = this.wizardService.getCommon();\n this.estimateData.Comments = this.comments;\n this.setBeneficiaryData();\n if (!this.notOrp || commonData === undefined) {\n this.setPrepData();\n } else {\n this.setSalaryData();\n this.setSickLeaveData();\n this.setRetirementData();\n this.setMilitaryData();\n this.setCommonData();\n }\n this.saveEstimate(this.estimateData);\n }\n}\n","
\n
\n

Your Beneficiary Selection For This Estimate

\n
\n {{introduction}}\n
\n
\n
\n
\n
\n Do you plan on being married on your Retirement Date?\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n \n \n \n \n
\n
\n
\n Name\n
\n
\n
\n
\n \n \n
\n
\n Name\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n Date of Birth\n
\n
\n
\n
\n {{ dataItem.dob | date:'MM/dd/yyyy'}}\n
\n
\n \n \n
\n
\n
\n
\n Gender\n
\n
\n
\n
\n {{ dataItem.gender }}\n
\n
\n \n \n
\n
\n
\n
\n Relationship\n
\n
\n
\n
\n {{ dataItem.relationship }}\n
\n
\n \n \n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n
\n
\n \n \n
{{ dataItem.dob | date:'MM/dd/yyyy'}}
\n
\n \n \n
\n
\n
\n \n \n
\n {{ dataItem.gender === 'F' ? 'Female' : dataItem.gender === 'M' ? 'Male' : '' }}\n
\n
\n \n \n
\n
\n
\n \n \n
{{ dataItem.relationship }}
\n
\n \n \n
\n
\n
\n
\n
\n
\n

{{disclaimerText}}\n updating your\n beneficiaries.\n

\n
\n
\n

{{informationMsg}}

\n
\n
\n \n

\n \n

\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, ViewEncapsulation, Output, EventEmitter, AfterViewInit } from '@angular/core';\nimport { BenefitEstimateService } from '../../../../shared/services/benefit-estimate.service';\nimport { UserService } from '../../../../shared/services/user.service';\nimport { Router } from '@angular/router';\nimport { DocumentService } from '../../../../shared/services/document.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../../../../shared/services/toast-message.service';\nimport { ReadConfigService } from '../../../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-final-estimate',\n templateUrl: './final-estimate.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./final-estimate.component.css']\n})\nexport class FinalEstimateComponent implements OnInit, AfterViewInit {\n\n finalDetails: any[];\n @Output() progressModel = new EventEmitter();\n public selected = 0;\n public items = [];\n introduction: any;\n note: any;\n selectedAccount: any;\n showLoadingIcon: boolean;\n currentEstId: any;\n types: any;\n oneTab = false;\n gridData: any;\n accountId: any;\n orpFlag: any;\n eId: any;\n elArr = [];\n el: HTMLElement;\n newAnnuityFactors: any;\n showActuarialChangesText: boolean;\n\n constructor(private router: Router,\n private userService: UserService,\n private estimateService: BenefitEstimateService,\n private documentService: DocumentService,\n private readConfigService: ReadConfigService,\n private toastService: ToastMessageService) { }\n\n ngOnInit() {\n this.selectedAccount = this.userService.getSelectedAccount();\n this.accountId = this.userService.getMdsAccountId();\n this.finalDetails = JSON.parse(sessionStorage.getItem('customEstimate'));\n if (this.finalDetails && this.finalDetails.length > 0) {\n this.setConfigData();\n if (this.finalDetails.length === 1) {\n this.oneTab = true;\n this.gridData = this.finalDetails[0];\n this.currentEstId = this.finalDetails[0].id;\n this.eId = this.finalDetails[0].eId;\n } else {\n this.oneTab = false;\n this.setTabData();\n }\n } else {\n if (this.selectedAccount !== null) {\n this.router.navigate(['/' + this.selectedAccount.role + '/Estimate Benefits/BenefitWizard']);\n }\n }\n window.scrollTo(0, 0);\n }\n\n ngAfterViewInit() {\n const tabstripEls = document.querySelectorAll('.final-estimate .k-tabstrip>.k-tabstrip-items .k-item');\n if (!this.oneTab && tabstripEls.length > 1) {\n tabstripEls.forEach(element => {\n this.elArr.push(element as HTMLElement);\n });\n this.elArr.forEach(element => {\n element.style.width = 100 / this.finalDetails.length + '%';\n });\n }\n }\n\n setConfigData() {\n const finalEstimateConfig = this.readConfigService.getFinalEstimateText();\n this.introduction = finalEstimateConfig.Introduction;\n this.note = finalEstimateConfig.Note;\n this.types = finalEstimateConfig.Types;\n this.newAnnuityFactors = finalEstimateConfig.NewAnnuityOptionFactor;\n const currentDate = new Date();\n let messageEndDate = this.readConfigService.getSavedEstimatesText().MessageEndDate;\n messageEndDate = messageEndDate ? new Date(messageEndDate) : null;\n this.showActuarialChangesText = !!(currentDate < messageEndDate);\n }\n\n setTabData() {\n this.finalDetails.forEach((element: any) => {\n let type = '';\n if (element.totalAdditional > 0 && element.totalDefciency > 0) {\n type = this.types[0];\n } else if (element.totalAdditional > 0) {\n type = this.types[1];\n } else if (element.totalDefciency > 0) {\n type = this.types[2];\n } else {\n type = this.types[3];\n }\n const item = {\n id: element.id,\n gridData: element,\n eId: element.eId,\n type\n };\n this.items.push(item);\n });\n this.currentEstId = this.items[0].id;\n this.eId = this.items[0].eId;\n }\n\n viewBenefitEstimateLetter() {\n this.showLoadingIcon = true;\n if (this.accountId !== null) {\n const userDetails = this.userService.getUserInputData();\n this.documentService.generateEstimateLetter(this.eId, this.accountId, userDetails).subscribe(() => {\n this.showLoadingIcon = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.showLoadingIcon = false;\n this.toastService.getErrorMessage();\n });\n } else {\n this.showLoadingIcon = false;\n this.toastService.getErrorMessage();\n }\n }\n\n public onTabSelect(e: any) {\n this.items.forEach((element: any) => {\n if (e.title === element.type) {\n this.currentEstId = element.id;\n this.eId = element.eId;\n }\n });\n }\n\n compareEstimates() {\n if (this.selectedAccount !== null) {\n this.router.navigate(['/' + this.selectedAccount.role + '/Estimate Benefits/SavedEstimates']);\n }\n }\n\n restartWizard() {\n const prepdata = this.estimateService.getEstimatePrepData();\n if (prepdata !== null) {\n this.orpFlag = prepdata.orpFlag;\n if (this.selectedAccount !== null) {\n if (this.orpFlag === 'O') {\n this.router.navigate(['/' + this.selectedAccount.role + '/Estimate Benefits/BenefitWizard'],\n { queryParams: { orpFlag: 'O' } });\n } else {\n this.router.navigate(['/' + this.selectedAccount.role + '/Estimate Benefits/BenefitWizard']);\n }\n }\n }\n }\n}\n","
\n
\n

Your Retirement Estimate

\n
\n {{introduction}}\n
\n
\n
\n \n
\n
\n \n \n \n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n","import { Component, OnInit, Input, ViewChild } from '@angular/core';\nimport { BenefitEstimateService } from '../../../../shared/services/benefit-estimate.service';\nimport { GridComponent } from '@progress/kendo-angular-grid';\nimport { UserService } from '../../../../shared/services/user.service';\nimport { ReadConfigService } from '../../../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-final-grid',\n templateUrl: './final-grid.component.html',\n styleUrls: ['./final-grid.component.css']\n})\nexport class FinalGridComponent implements OnInit {\n\n @Input() gridDetails: any;\n @Input() styleDetails: any;\n @ViewChild(GridComponent, { static: true }) grid: GridComponent;\n gridItem = [];\n retDate: any;\n creditableService: any;\n eligibilityService: any;\n afc: any;\n redFactor: any;\n beneName: string;\n beneRel: any;\n dob: any;\n comments: any;\n totalAdditional: any;\n totalDefciency: any;\n currentEstId: any;\n optionDescription: any;\n system: any;\n iconInfo: any;\n rMonthlyAllowanceInfo = '';\n bMonthlyAllowanceInfo = '';\n pValueInfo = '';\n mDRInfo = '';\n addBeneDOBText = '';\n scrollMessage: any;\n constructor(\n private estimateService: BenefitEstimateService,\n private userService: UserService,\n private readConfigService: ReadConfigService) {\n }\n\n ngOnInit() {\n this.scrollMessage = this.readConfigService.getMobileScrollMessage();\n if (sessionStorage.getItem('loadedInfoIcons') === null) {\n this.loadInfoIconsWithDelay(50);\n } else {\n this.loadInfoIcons();\n }\n this.setBasicInfo(this.gridDetails);\n }\n\n setBasicInfo(basicDetails: any) {\n this.currentEstId = basicDetails.id;\n this.retDate = basicDetails.dateofRetirement;\n this.creditableService = this.estimateService.calculateYearsAndMonths(basicDetails.totalService, basicDetails.creditMonths);\n this.eligibilityService = this.estimateService.calculateYearsAndMonths(basicDetails.eligibilityMonths +\n basicDetails.eligibilityProjMonths, basicDetails.creditMonths);\n this.afc = basicDetails.afc;\n this.redFactor = basicDetails.reductionFactor;\n this.beneName = basicDetails.benFname === '' && basicDetails.benLname === '' ?\n '- -' : basicDetails.benFname + ' ' + basicDetails.benMi + ' ' + basicDetails.benLname;\n this.beneRel = basicDetails.benyRelationship;\n this.dob = basicDetails.benyDOB;\n this.totalAdditional = basicDetails.totalAdditional;\n this.totalDefciency = basicDetails.totalDefciency;\n this.comments = basicDetails.comments;\n this.optionDescription = this.readConfigService.getOptionDescription();\n // add extra bene dob text for options 2, 3, 5 and 6\n this.addBeneDOBText = this.optionDescription.BeneDOBText;\n this.system = basicDetails.system;\n this.setTableData(basicDetails);\n }\n\n setTableData(element: any) {\n if (element.system === '5') {\n this.gridItem.push(this.getItem('Basic', element.basicAllowance, '', element.opt1PresentValue, element.opt1DeclineRate));\n } else {\n this.gridItem.push(this.getItem('Basic', element.basicAllowance, '', '', ''));\n }\n if (this.isShow(element.opt1Allowance)) {\n this.gridItem.push(this.getItem('Option 1', element.opt1Allowance, '', element.opt1PresentValue, element.opt1DeclineRate));\n }\n if (this.isShow(element.opt2Allowance)) {\n this.gridItem.push(this.getItem('Option 2', element.opt2Allowance, element.opt2BenAllowance, '', ''));\n }\n if (this.isShow(element.opt3Allowance)) {\n this.gridItem.push(this.getItem('Option 3', element.opt3Allowance, element.opt3BenAllowance, '', ''));\n }\n if (this.isShow(element.opt4Allowance)) {\n this.gridItem.push(this.getItem('Option 4', element.opt4Allowance, '', element.opt4PresentValue, element.opt4DeclineRate));\n }\n if (this.isShow(element.opt5Allowance)) {\n this.gridItem.push(this.getItem('Option 5', element.opt5Allowance, element.opt5BenAllowance, '', ''));\n }\n if (this.isShow(element.opt6Allowance)) {\n this.gridItem.push(this.getItem('Option 6', element.opt6Allowance, element.opt6BenAllowance, '', ''));\n }\n this.grid.expandRow(0);\n }\n\n getItem(\n optionId: string,\n retireeMonthlyAllowance: any,\n beneficiaryMonthlyAllowance: any,\n presentValue: string,\n monthlyDecliningRate: string\n ): any {\n return {\n option: optionId,\n retireeMonthlyAllowance,\n beneficiaryMonthlyAllowance,\n presentValue,\n monthlyDecliningRate\n };\n }\n\n isShow(allowance: number): boolean {\n return allowance > 0;\n }\n\n loadInfoIcons() {\n this.iconInfo = this.userService.getInfoIconValues('Member', 'Estimate Benefits_Custom Estimate_SavedEstimates');\n if (this.iconInfo !== null) {\n this.rMonthlyAllowanceInfo = this.getIconDescription('Retiree Monthly Allowance');\n this.bMonthlyAllowanceInfo = this.getIconDescription('Beneficiary Monthly Allowance');\n this.pValueInfo = this.getIconDescription('Present Value');\n this.mDRInfo = this.getIconDescription('Monthly Declining Rate');\n }\n }\n\n loadInfoIconsWithDelay(timeDelay: any) {\n setTimeout(() => {\n if (sessionStorage.getItem('loadedInfoIcons') === null) {\n this.loadInfoIconsWithDelay(timeDelay);\n } else {\n this.loadInfoIcons();\n }\n }, timeDelay);\n }\n\n getIconDescription(label: any): any {\n const descItem = this.iconInfo.filter((item: any) => item.label === label)[0];\n return descItem !== undefined ? descItem.description : '';\n }\n}\n","
\n
\n
\n
\n Estimate ID: {{currentEstId}}\n
\n
\n
\n
\n Retirement Date: {{retDate | date: 'MM/dd/yyyy'}}\n
\n
\n Average Final Compensation: {{afc | currency:'USD'}}\n
\n
\n
\n
\n Creditable Service: {{creditableService.years}} Years\n {{creditableService.months}}\n Months\n
\n
\n Eligibility Service: {{eligibilityService.years}} Years\n {{eligibilityService.months}}\n Months\n
\n
\n
\n
\n Beneficiary: {{beneName}} ({{beneRel}})\n
\n
\n Beneficiary Date of Birth:\n {{dob === '1900-01-01T00:00:00' ? '- -' : dob | date: 'MM/dd/yyyy'}}\n
\n
\n
\n
\n Early Benefit Reduction: {{redFactor}}%\n
\n
\n Total Additional Amount: {{totalAdditional | currency:'USD'}}\n
\n
\n Total Deficiency Amount: {{totalDefciency | currency:'USD'}}\n
\n
\n
\n
\n Comments: {{comments}}\n
\n
\n
\n \n \n \n \n \n Retiree Monthly Allowance\n \n \n
{{ dataItem.retireeMonthlyAllowance | currency:'USD'}}
\n
\n
\n \n \n Beneficiary Monthly Allowance\n \n \n
{{ dataItem.beneficiaryMonthlyAllowance | currency:'USD'}}
\n
\n
\n \n \n Present Value\n \n \n
{{ dataItem.presentValue | currency:'USD'}}
\n
\n
\n \n \n Monthly Declining Rate\n \n \n
{{ dataItem.monthlyDecliningRate | currency:'USD'}}
\n
\n
\n \n
\n {{optionDescription[dataItem.option].Heading}}\n
\n
\n
\n {{optionDescription[dataItem.option].Description[system]}}\n
\n
\n {{optionDescription[dataItem.option].Description}}\n {{addBeneDOBText}}\n
\n
\n
\n
\n {{ optionDescription[dataItem.option].Description[\"5-1\"] }}\n
\n
\n {{ optionDescription[dataItem.option].Description[\"5-2\"] }}\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n","import { Component, OnInit, ViewChild, ElementRef, EventEmitter, Output, ChangeDetectorRef, DoCheck, Input } from '@angular/core';\nimport { BenefitEstimateService } from '../../../../shared/services/benefit-estimate.service';\nimport { BenefitWizardService } from '../../../../shared/services/benefit-wizard.service';\nimport { MilitaryService, Navigation, Common, ServiceProjection, RetirementDate } from '../../../../models/benefitEstimateWizard.model';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../../../../shared/services/toast-message.service';\nimport { DatePipe } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { ReadConfigService } from '../../../../shared/services/read-config.service';\nimport { UserService } from '../../../../shared/services/user.service';\n\n@Component({\n selector: 'app-military-service',\n templateUrl: './military-service.component.html',\n styleUrls: ['./military-service.component.css']\n})\n\nexport class MilitaryServiceComponent implements OnInit, DoCheck {\n introduction1: any;\n introduction2: any;\n disclaimer: any;\n militarytext: any;\n warningtext: any;\n showMilitary = false;\n maxEnrollpriorYear = 0;\n maxEnrollpriorMonth = 0;\n maxEnrollduringYear = 0;\n maxEnrollduringMonth = 0;\n maxMonths = 11;\n showduring = 'block';\n showprior = 'block';\n maxYears = 5;\n maxSys4Years: any;\n previousTitle: any;\n nextTitle: any;\n militaryUrl: any;\n formUrl: any;\n urlText: any;\n wizardData: any;\n navigationData: Navigation;\n commonData: Common;\n prepData: any;\n militaryServiceConfig: any;\n priorMilitary: any;\n duringMilitary: any;\n enrollDate: any;\n nextBtn = false;\n minEnrollPriorMonth = 0;\n minEnrollDuringMonth = 0;\n formData: any;\n dataReset: boolean;\n nextScreenCode: any;\n creditableService: any;\n creditYears: any;\n eligibilityYears: any;\n showMsg = true;\n informationMsg: any;\n sys4and5Message: any;\n informationActiveMsg: any;\n linkTexts: any;\n calculateOnChange = false;\n formDirty = false;\n dataLoading: boolean;\n public cacheServerData: any;\n showHeading = true;\n showMax = true;\n maxData: any;\n daysinRange: any;\n eligibilitySer: any;\n warningClass = 'normalclass';\n @Output() progressModel = new EventEmitter();\n @ViewChild('militaryform') militaryform: ElementRef;\n continueDisabled = false;\n creditableSer: { years: number; months: number; };\n showPriorError: any;\n showDuringError: any;\n maxInputPrior: any;\n maxInputDuring: any;\n showInactiveError: any;\n @Input() IconInfo: any;\n eDtInfo = '';\n mscPriorToEnrollInfo = '';\n mscDuringEnrollInfo = '';\n amtPriorToEnrollInfo = '';\n amtDuringEnrollInfo = '';\n userDetails: any;\n uniqueId: string;\n constructor(private estimateService: BenefitEstimateService,\n private wizardService: BenefitWizardService,\n private cdRef: ChangeDetectorRef,\n private userService: UserService,\n private readConfigService: ReadConfigService,\n private toastService: ToastMessageService,\n private router: Router) { }\n\n ngOnInit() {\n this.prepData = this.estimateService.getEstimatePrepData();\n this.setConfiData();\n if (this.prepData !== null) {\n this.uniqueId = this.userService.getTileId();\n this.userDetails = this.userService.getUserInputData();\n this.creditableService = this.prepData.normalServiceCredit.creditable.current + this.prepData.transitCred;\n this.creditYears = this.estimateService.calculateYearsAndMonths(this.creditableService, this.prepData.tenMonth).years;\n this.priorMilitary = this.estimateService.calculateYearsAndMonths(\n this.prepData.militaryService.newService, this.prepData.tenMonth);\n this.maxEnrollpriorYear = this.maxYears - this.priorMilitary.years;\n this.duringMilitary = this.estimateService.calculateYearsAndMonths(\n this.prepData.militaryService.oldService, this.prepData.tenMonth);\n this.maxEnrollduringYear = this.maxYears - this.duringMilitary.years;\n this.wizardData = this.wizardService.getMilitary();\n this.enrollDate = this.prepData.enrollDate;\n this.eligibilitySer = this.getEligiServicesInfo();\n this.creditableSer = this.getCreditServicesInfo();\n if ((this.prepData.system === '5') || (this.prepData.system === '4')) {\n this.sys4and5();\n } else { this.displayButtonTitles(); }\n this.setDisplay();\n }\n if (this.IconInfo !== undefined && this.IconInfo !== null) {\n this.loadInfoIcons();\n }\n window.scrollTo(0, 0);\n }\n loadInfoIcons() {\n this.eDtInfo = this.getIconDescription('Enrollment Date');\n this.mscDuringEnrollInfo = this.getIconDescription('Your military service credit during enrollment');\n this.mscPriorToEnrollInfo = this.getIconDescription('Your military service credit prior to enrollment');\n this.amtDuringEnrollInfo = this.getIconDescription('Additional military time during enrollment');\n this.amtPriorToEnrollInfo = this.getIconDescription('Additional military time prior to enrollment');\n }\n getIconDescription(label: any): any {\n return this.IconInfo.filter((item: any) => item.label === label)[0].description;\n }\n ngDoCheck() {\n this.cdRef.detectChanges();\n }\n\n sys4and5() {\n let maxService = 0;\n let maxDataService = 0;\n if (this.prepData.system === '5') { maxService = 267; maxDataService = 36; }\n if (this.prepData.system === '4') { maxService = 192; maxDataService = 60; }\n if (maxService - this.creditableService === 0) {\n this.showMsg = true;\n this.showHeading = false;\n this.informationMsg = this.sys4and5Message;\n this.displayButtonTitles();\n } else {\n this.showMsg = false;\n this.showHeading = true;\n this.maxData = maxService - this.creditableService;\n if (this.maxData <= maxDataService) {\n this.maxSys4Years = this.estimateService.calculateYearsAndMonths(this.maxData, this.prepData.tenMonth);\n this.showMax = false;\n this.displayButtonTitles();\n } else { this.displayButtonTitles(); }\n }\n }\n\n displayButtonTitles() {\n this.calculateOnChange = false;\n let service = 0;\n const milServerData = this.wizardService.getCommon();\n if (milServerData.currentDate !== undefined) {\n service = this.prepData.eligService + this.prepData.transitElig + this.getTotalMilitary();\n } else {\n service = this.prepData.eligService + this.prepData.transitElig;\n }\n this.eligibilityYears = this.estimateService.calculateYearsAndMonths(service, this.prepData.tenMonth).years;\n if ((this.prepData.system === '5') && (this.creditYears >= 8) || (this.prepData.system !== '5') && (this.creditYears >= 10)) {\n if (this.prepData.statusCode === 'A') {\n this.nextScreenCode = '1';\n this.nextTitle = this.linkTexts.Service;\n } else if (((this.prepData.statusCode === 'JS') || (this.prepData.statusCode === 'LS'))\n && this.getDaysDifference() <= this.daysinRange) {\n this.gotoService();\n } else {\n const currentDate = new Date(this.getCurrentDate()).valueOf();\n const retDate = new Date(this.prepData.normalRetDt).valueOf();\n if (this.prepData.system === '6' || this.prepData.system === '7') {\n this.calculateOnChange = true;\n if ((this.prepData.showNormal === true && this.prepData.showEarly === false &&\n this.prepData.showVest === false && retDate <= currentDate) ||\n (this.eligibilityYears < 15)) {\n this.gotoBeneficiary();\n } else {\n this.gotoRetirement();\n }\n } else {\n if (this.prepData.system === '5') {\n if (this.prepData.corsflag === '3') { this.setCORSflag(600, 719); } else { this.setCORSflag(660, 743); }\n } else {\n this.gotoBeneficiary();\n }\n }\n }\n } else {\n this.showMsg = true;\n this.showprior = 'none';\n this.showduring = 'block';\n if (this.prepData.statusCode === 'A') {\n this.gotoService();\n } else {\n this.gotoBeneficiary();\n }\n this.informationMsg = this.informationActiveMsg;\n }\n if (this.prepData.orpFlag === 'O') {\n this.gotoBeneficiary();\n }\n this.setNavigation(0, 0, Number(this.nextScreenCode), false);\n }\n\n gotoBeneficiary() {\n this.nextScreenCode = '5';\n this.nextTitle = this.linkTexts.Beneficiary;\n }\n\n gotoRetirement() {\n this.nextScreenCode = '2';\n this.nextTitle = this.linkTexts.RetirementDate;\n }\n\n gotoService() {\n this.nextScreenCode = '1';\n this.nextTitle = this.linkTexts.Service;\n }\n\n setCORSflag(value1: any, value2: any) {\n const ageDiff = this.getAgeDifference();\n if ((ageDiff >= value1) && (ageDiff <= value2)) {\n this.nextScreenCode = '2';\n this.nextTitle = this.linkTexts.RetirementDate;\n } else {\n this.nextScreenCode = '5';\n this.nextTitle = this.linkTexts.Beneficiary;\n }\n }\n\n getDaysDifference() {\n const dt1 = new Date(this.prepData.lastPayrollDate);\n const dt2 = new Date(this.getCurrentDate());\n return Math.floor((Date.UTC(dt2.getFullYear(), dt2.getMonth(), dt2.getDate()) -\n Date.UTC(dt1.getFullYear(), dt1.getMonth(), dt1.getDate())) / (1000 * 60 * 60 * 24));\n }\n\n getAgeDifference() {\n const birthDt = new Date(this.prepData.birthDate);\n const monDiff = this.estimateService.getMonthDiff(birthDt, new Date(this.getCurrentDate()));\n return monDiff;\n }\n\n keytab(event) {\n const target = event.target || event.srcElement;\n const max = target.getAttribute('aria-valuemax');\n target.setAttribute('maxLength', max.length);\n }\n\n getCurrentDate() {\n const dat = new Date();\n const datePipe = new DatePipe('en-US');\n const currentDay = Number(datePipe.transform(dat, 'dd'));\n if (currentDay > 1) {\n const projDate = new Date(new Date().setMonth(new Date().getMonth() + 1));\n return (datePipe.transform(projDate.setDate(1), 'MM/dd/yyyy'));\n } else {\n return (datePipe.transform(new Date().setDate(1), 'MM/dd/yyyy'));\n }\n }\n\n setConfiData() {\n const years = this.prepData.system === '5' ? 8 : 10;\n this.linkTexts = this.readConfigService.getEstimateLinkTexts();\n this.militaryServiceConfig = this.readConfigService.getMilitaryServiceText();\n this.introduction1 = this.militaryServiceConfig.Introduction1;\n this.introduction2 = this.militaryServiceConfig.Introduction2;\n this.disclaimer = this.militaryServiceConfig.Disclaimer;\n this.militarytext = this.militaryServiceConfig.Text;\n this.warningtext = this.militaryServiceConfig.Warning;\n this.previousTitle = this.linkTexts.MonthlyBasic;\n this.urlText = this.militaryServiceConfig.LinkText;\n this.militaryUrl = this.militaryServiceConfig.LinkUrl;\n this.formUrl = this.militaryServiceConfig.FormUrl;\n this.informationActiveMsg = this.militaryServiceConfig.Information.replace('{0}', years);\n this.sys4and5Message = this.militaryServiceConfig.Sys4and5Message;\n this.daysinRange = this.militaryServiceConfig.daysinRange;\n }\n\n setNavigation(previous: any, current: any, next: any, reset: any) {\n this.navigationData = this.wizardService.getNavigation();\n this.navigationData.previousScreen = previous;\n this.navigationData.currentScreen = current;\n this.navigationData.nextScreen = next;\n this.wizardService.setNavigation(this.navigationData);\n this.progressModel.emit({ resetTabs: reset });\n this.progressModel.emit({ display: true });\n }\n\n setDisplay() {\n if ((this.priorMilitary.years >= this.maxYears) ||\n (this.priorMilitary.years === this.maxYears - 1\n && (this.priorMilitary.months === this.maxMonths))) {\n this.showprior = 'none';\n }\n if ((this.duringMilitary.years >= this.maxYears) ||\n ((this.duringMilitary.years === (this.maxYears - 1))\n && (this.duringMilitary.months === this.maxMonths))) {\n this.showduring = 'none';\n }\n if ((this.showprior === 'none') && (this.showduring === 'none')) { this.militarytext = this.warningtext; }\n if (this.wizardData.selOption === 'yes') { this.setMilitaryBox(1); }\n }\n\n /*** Common Functions */\n /**\n * Function to navigate to the previous page\n */\n previousScreen() {\n this.progressModel.emit({ mode: '0', screen: '-1', reset: false });\n }\n /**\n * Function to navigate to the next page\n */\n nextScreen(reset: boolean) {\n this.navigationData.previousScreen = 0;\n this.navigationData.currentScreen = 0;\n this.navigationData.nextScreen = Number(this.nextScreenCode);\n this.wizardService.setNavigation(this.navigationData);\n this.progressModel.emit({ mode: '1', screen: this.nextScreenCode, reset: this.dataReset });\n }\n\n /*** End Common Functions */\n\n next(militaryform: any): boolean {\n if (this.wizardData.selOption === 'yes') {\n this.formDirty = militaryform.dirty;\n if (this.showDuringError) { return false; }\n if (this.showPriorError) { return false; }\n if ((this.showprior === 'none') && (this.showduring === 'none')) { return true; }\n if ((((this.wizardData.duringMonth === undefined) || (this.wizardData.duringMonth === null)) &&\n ((this.wizardData.duringYear === undefined) || (this.wizardData.duringYear === null)) &&\n ((this.wizardData.priorMonth === undefined) || (this.wizardData.priorMonth === null)) &&\n ((this.wizardData.priorYear === undefined) || (this.wizardData.priorYear === null)))) {\n return false;\n }\n if (this.showMax === false) {\n const totalMilitary = this.getTotalMilitary();\n if (totalMilitary > this.maxData) {\n this.warningClass = 'warningclass';\n return false;\n } else { this.warningClass = 'normalclass'; }\n }\n }\n if (!militaryform.valid) {\n return false;\n }\n return true;\n }\n\n getTotalMilitary() {\n return this.estimateService.getMilitaryService(this.prepData.tenMonth, this.wizardData);\n }\n\n getCreditServicesInfo() {\n const totalMilitary = this.getTotalMilitary();\n return this.estimateService.calculateYearsAndMonths(\n (this.creditableService + totalMilitary), this.prepData.tenMonth);\n }\n\n getEligiServicesInfo() {\n const totalMilitary = this.getTotalMilitary();\n return this.estimateService.calculateYearsAndMonths(\n (this.prepData.eligService + this.prepData.transitElig + totalMilitary), this.prepData.tenMonth);\n }\n\n saveIntoSessionData(save: boolean) {\n if (this.prepData.tenMonth > 0) {\n const totalMilitary = this.getTotalMilitary();\n this.continueDisabled = true;\n if (save === true) {\n const milServerData = this.wizardService.getCommon();\n if (milServerData.currentDate === undefined || this.formDirty === true) {\n this.setServerData(totalMilitary);\n } else { this.nextScreen(this.dataReset); }\n } else {\n this.eligibilitySer = this.getEligiServicesInfo();\n this.continueDisabled = false;\n this.showMsg = false;\n const currentDate = new Date(this.getCurrentDate()).valueOf();\n const retDate = new Date(this.prepData.normalRetDt).valueOf();\n if ((this.prepData.showNormal === true && this.prepData.showEarly === false &&\n this.prepData.showVest === false && retDate <= currentDate) || (this.eligibilitySer.years < 15)) {\n this.nextScreenCode = '5';\n this.nextTitle = this.linkTexts.Beneficiary;\n } else {\n this.nextScreenCode = '2';\n this.nextTitle = this.linkTexts.RetirementDate;\n }\n this.setNavigation(0, 0, Number(this.nextScreenCode), true);\n }\n }\n }\n\n setServerData(totalMilitary: any) {\n this.dataLoading = true;\n this.estimateService.getWizardPrepData(this.prepData.eligService, totalMilitary,\n this.uniqueId, this.userDetails).subscribe((data: any) => {\n if (data.statusCode === 200) {\n this.commonData = this.wizardService.getCommon();\n this.cacheServerData = data.result;\n this.commonData.birthDate = data.result.adjBirthDate;\n this.commonData.currentDate = data.result.currentDate;\n this.commonData.earlyRetirementDate = data.result.earlyRetDate;\n this.commonData.maxNormalRetirementDate = data.result.maxNormRetDate;\n this.commonData.creditableService = data.result.normProjCredSvc;\n this.commonData.eligibilityService = data.result.normProjEligSvc;\n this.commonData.normalRetirementDate = data.result.normRetDate;\n this.commonData.SSIL = data.result.normSSIL;\n this.commonData.vestedRetirementDate = data.result.vestRetDate;\n this.commonData.updatedNRD = this.commonData.normalRetirementDate;\n this.commonData.updatedERD = this.commonData.earlyRetirementDate;\n this.commonData.stopWorkDate = this.prepData.lastPayrollDate;\n this.commonData.maxSalLimit = data.result.maxSalLimit;\n this.wizardService.setCommon(this.commonData);\n if ((this.nextScreenCode === '5') || (this.nextScreenCode === '2')) { this.setAFCCalculation(); } else {\n this.nextScreen(this.dataReset); this.dataLoading = false;\n }\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n this.dataLoading = false;\n });\n }\n\n setAFCCalculation() {\n const retDt = this.commonData.normalRetirementDate;\n const stopWorkDt = new Date('01/01/1900');\n this.estimateService.calculateBenefitAmount('S', retDt, stopWorkDt, this.wizardData, this.uniqueId,\n this.userDetails).subscribe((data: any) => {\n if (data.statusCode === 200) {\n const retDateData = this.wizardService.getRetirementDate();\n retDateData.rtDate = retDt;\n if (this.nextScreenCode === '2') {\n retDateData.benefitAmount = data.result.benefit;\n retDateData.minDt = this.estimateService.getMinimumRetirementDate(this.commonData);\n retDateData.maxDt = this.commonData.maxNormalRetirementDate;\n retDateData.previousScreen = 0;\n }\n this.wizardService.setRetirementDate(retDateData);\n this.commonData.AFCResult = data.result.afcResult;\n this.commonData.updatedAFC = data.result.afcResult.afc;\n this.commonData.basicAllownance = data.result.benefit;\n this.commonData.reducedInfo = data.result.reducedInfo;\n this.wizardService.setCommon(this.commonData);\n this.nextScreen(this.dataReset);\n this.dataLoading = false;\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.dataLoading = false;\n this.toastService.getErrorMessage();\n });\n }\n\n onSubmit() {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n if ((this.formData.militaryData.selOption === this.wizardData.selOption) &&\n (this.formData.militaryData.duringMonth === this.wizardData.duringMonth) &&\n (this.formData.militaryData.duringYear === this.wizardData.duringYear) &&\n (this.formData.militaryData.priorMonth === this.wizardData.priorMonth) &&\n (this.formData.militaryData.priorYear === this.wizardData.priorYear)) {\n this.dataReset = false;\n } else { this.dataReset = true; this.resetSessionData(); }\n this.setData();\n this.wizardData.startWizard = true;\n this.wizardService.setMilitary(this.wizardData);\n this.saveIntoSessionData(true);\n }\n\n resetSessionData() {\n const svcProjData = new ServiceProjection();\n const retDateData = new RetirementDate();\n this.wizardService.setServiceProjection(svcProjData);\n this.wizardService.setRetirementDate(retDateData);\n }\n\n setMilitaryBox(option: any) {\n if (option === 1) {\n this.showMilitary = true;\n this.formDirty = true;\n this.eligibilitySer = this.getEligiServicesInfo();\n this.creditableSer = this.getCreditServicesInfo();\n } else {\n this.showMilitary = false;\n this.formDirty = true;\n this.eligibilitySer = this.estimateService.calculateYearsAndMonths(\n (this.prepData.eligService + this.prepData.transitElig), this.prepData.tenMonth);\n this.creditableSer = this.estimateService.calculateYearsAndMonths(\n (this.creditableService), this.prepData.tenMonth);\n }\n }\n\n setData() {\n if (this.showMilitary === false) {\n this.wizardData = new MilitaryService();\n }\n }\n\n onChange(option: any, militaryform: any, data: any) {\n this.eligibilitySer = this.getEligiServicesInfo();\n this.creditableSer = this.getCreditServicesInfo();\n const maxService = this.prepData.tenMonth === 10 ? 50 : 60;\n if (this.showMax) {\n if (option === 1) {\n const priorYearsinMonths = isNaN(this.wizardData.priorYear) ? 0 : Number(this.wizardData.priorYear) * this.prepData.tenMonth;\n let priormonths = isNaN(this.wizardData.priorMonth) ? 0 : Number(this.wizardData.priorMonth);\n if (this.prepData.tenMonth === 10) {\n priormonths = this.estimateService.getTenMonths(priormonths);\n }\n const totalAddedPriorService = priormonths + priorYearsinMonths + this.prepData.militaryService.newService;\n this.maxInputPrior = this.estimateService.calculateYearsAndMonths\n (maxService - this.prepData.militaryService.newService, this.prepData.tenMonth);\n if (totalAddedPriorService > maxService) {\n this.showPriorError = true;\n } else { this.showPriorError = false; }\n }\n if (option === 2) {\n if (data != null) {\n if (this.prepData.statusCode !== 'A') {\n this.showInactiveError = true;\n } else {\n this.showInactiveError = false;\n }\n } else {\n this.showInactiveError = false;\n }\n const duringYearsinMonths = isNaN(this.wizardData.duringYear) ? 0 : Number(this.wizardData.duringYear) * this.prepData.tenMonth;\n let duringMonths = isNaN(this.wizardData.duringMonth) ? 0 : Number(this.wizardData.duringMonth);\n if (this.prepData.tenMonth === 10) {\n duringMonths = this.estimateService.getTenMonths(duringMonths);\n }\n const totalAddedDuringService = duringMonths + duringYearsinMonths + this.prepData.militaryService.oldService;\n this.maxInputDuring = this.estimateService.calculateYearsAndMonths\n (maxService - this.prepData.militaryService.oldService, this.prepData.tenMonth);\n if (totalAddedDuringService > maxService) {\n this.showDuringError = true;\n } else {\n this.showDuringError = false;\n }\n }\n this.next(militaryform);\n if (this.calculateOnChange) {\n this.saveIntoSessionData(false);\n }\n }\n }\n}\n","
\n
\n
\n
\n

Military Service Credit

\n
\n \n {{introduction1}}\n \n \n \n \n Form 43: Claim of Retirement Credit for Military Service\n \n \n \n \n {{introduction2}}\n \n
\n \n
\n

{{informationMsg}}

\n
\n
\n
\n
\n
\n
\n
\n Have you served in the United States Military and have not claimed credit for your military service?\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n {{disclaimer}}\n
\n
\n
\n
\n Your Enrollment Date is:\n \n {{ enrollDate | date:'MM/dd/yyyy'}}\n
\n
\n
\n
\n Your military service credit already awarded to you and prior to your Enrollment Date is:\n \n \n {{priorMilitary.years}} Years \n {{priorMilitary.months}} Months\n \n
\n
\n
\n
\n Your military service credit already awarded to you and after your Enrollment Date is:\n \n \n {{duringMilitary.years}} Years \n {{duringMilitary.months}} Months\n \n
\n
\n
\n
\n {{militarytext}}\n
\n
\n
\n

Based on your current service credit, a\n maximum of {{maxSys4Years.years}} year(s) and {{maxSys4Years.months}} month(s) of additional military\n time can be claimed.

\n
\n
\n
\n How much additional military time do you have prior to your\n Enrollment Date? (Maximum {{maxYears}} years)\n \n
\n
\n \n Years\n \n \n Months\n
\n
\n
\n
\n \n Should not be more than {{maxInputPrior.years}} year(s) {{maxInputPrior.months}} month(s)\n \n
\n
\n 11\">\n Maximum value allowed is 11 in months\n \n
\n
\n
\n
\n How much additional military time do you have after Enrollment Date?\n (Maximum {{maxYears}} years)\n \n
\n
\n \n \n Years\n \n \n Months\n
\n
\n
\n
\n \n Should not be more than {{maxInputDuring.years}} year(s) {{maxInputDuring.months}} month(s)\n \n
\n
\n 11\">\n Maximum value allowed is 11 in months\n \n
\n
\n
\n
\n {{militaryServiceConfig.InactiveMessage}}\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, Output, ViewChild, EventEmitter, ElementRef } from '@angular/core';\nimport { BenefitWizardService } from '../../../../shared/services/benefit-wizard.service';\nimport { BenefitEstimateService } from '../../../../shared/services/benefit-estimate.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { RetirementDate, Navigation, Common, ServiceProjection } from '../../../../models/benefitEstimateWizard.model';\nimport { ToastMessageService } from '../../../../shared/services/toast-message.service';\nimport { Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { ReadConfigService } from '../../../../shared/services/read-config.service';\nimport { UserService } from '../../../../shared/services/user.service';\nimport { CalendarComponent, DatePickerComponent } from '@progress/kendo-angular-dateinputs';\n\n\n@Component({\n selector: 'app-retirement-date',\n templateUrl: './retirement-date.component.html',\n styleUrls: ['./retirement-date.component.css']\n})\nexport class RetirementDateComponent implements OnInit {\n value: Date;\n min: Date = new Date();\n max: Date = new Date();\n retDtHeading: any;\n introduction = '';\n estimatePrepData: any;\n previousTitle: any;\n nextTitle: any;\n basicAllowance: any;\n sliderMoved = false;\n retirementDate: RetirementDate;\n navigationData: Navigation;\n serviceProjData: ServiceProjection;\n commonData: Common;\n AFCResult: any;\n reducedInfo: any;\n linkTexts: any;\n valueHorizontal = 5;\n valueVertical = 5;\n selectedRetirementDate: any;\n earlyRetirementDate: any;\n normalRetirementDate: any;\n stopWorkDate: any;\n smallStep = 1;\n showButtons = true;\n retirementType = 'Normal Retirement';\n retirementTypeEarlyDescription = 'Early Retirement';\n retirementTypeNormalDescription = 'Normal Retirement';\n retirementTypeNotEligibleDescription = 'Not Eligible';\n earlyColor = '#CF1242';\n normalColor = '#DBA001';\n notEligibleColor = 'red';\n tickPlacement = 'before';\n previousScreenCode: any;\n invalidSRD: any;\n cacheData = [];\n @Output() progressModel = new EventEmitter();\n @ViewChild('servProj') servProj: ElementRef;\n creditableSer: { years: number; months: number; };\n eligibilitySer: { years: number; months: number; };\n afc: any;\n resetData: boolean;\n datePipe: DatePipe;\n uniqueId: string;\n userDetails: any;\n scrollMessage: any;\n\n constructor(private estimateService: BenefitEstimateService,\n private wizardService: BenefitWizardService,\n private toastService: ToastMessageService,\n private readConfigService: ReadConfigService,\n private userService: UserService,\n private router: Router) { }\n\n ngOnInit() {\n this.uniqueId = this.userService.getTileId();\n this.scrollMessage = this.readConfigService.getMobileScrollMessage();\n this.userDetails = this.userService.getUserInputData();\n this.retirementDate = this.wizardService.getRetirementDate();\n this.getNavigationData();\n const retDtConfig = this.readConfigService.getRetirementDateText();\n this.introduction = retDtConfig.Introduction;\n this.estimatePrepData = this.estimateService.getEstimatePrepData();\n this.retDtHeading = retDtConfig.Heading;\n this.commonData = this.wizardService.getCommon();\n this.AFCResult = this.commonData.AFCResult;\n this.serviceProjData = this.wizardService.getServiceProjection();\n this.datePipe = new DatePipe('en-US');\n this.normalRetirementDate = new Date(this.datePipe.transform(this.commonData.updatedNRD, 'MM/dd/yyyy'));\n this.setRetirementTypeStyle(this.normalColor);\n const minDt = new Date(this.datePipe.transform(this.retirementDate.minDt, 'MM/dd/yyyy'));\n const maxDt = new Date(this.datePipe.transform(this.retirementDate.maxDt, 'MM/dd/yyyy'));\n this.min = minDt;\n this.max = maxDt;\n if (this.commonData.updatedERD !== null && this.commonData.updatedERD !== undefined) {\n const earlyDt = new Date(this.datePipe.transform(this.commonData.updatedERD, 'MM/dd/yyyy'));\n if (earlyDt >= minDt) {\n this.earlyRetirementDate = earlyDt;\n } else if (minDt < this.normalRetirementDate) {\n this.earlyRetirementDate = minDt;\n }\n }\n if (this.serviceProjData.selOption === 'no') {\n if (new Date(this.datePipe.transform(this.serviceProjData.stopWorkDate, 'MM/dd/yyyy')) <= this.normalRetirementDate) {\n this.stopWorkDate = this.serviceProjData.stopWorkDate;\n } else {\n this.stopWorkDate = this.normalRetirementDate;\n }\n }\n if (this.retirementDate.rtDate !== undefined) {\n this.selectedRetirementDate = this.retirementDate.rtDate;\n } else {\n this.selectedRetirementDate = this.normalRetirementDate.setMonth(this.normalRetirementDate.getMonth());\n }\n this.value = new Date(this.datePipe.transform(this.selectedRetirementDate, 'MM/dd/yyyy'));\n if (this.retirementDate.benefitAmount !== undefined) {\n this.basicAllowance = this.retirementDate.benefitAmount;\n }\n if (this.retirementDate.rtType !== undefined) {\n this.retirementType = this.retirementDate.rtType;\n }\n this.setupSWD();\n this.navigationData.currentScreen = 2;\n this.setupNextScreen(this.selectedRetirementDate);\n this.creditableSer = this.estimateService.calculateYearsAndMonths(this.estimatePrepData.totalService +\n this.AFCResult.projCredSvc, this.estimatePrepData.tenMonth);\n this.eligibilitySer = this.estimateService.calculateYearsAndMonths(this.estimatePrepData.eligService +\n this.AFCResult.projEligSvc, this.estimatePrepData.tenMonth);\n this.afc = this.AFCResult.afc;\n window.scrollTo(0, 0);\n }\n\n getColorCodeCls(date: Date) {\n return date.valueOf() < new Date(this.datePipe.transform(this.normalRetirementDate, 'MM/dd/yyyy')).valueOf() ? 'early' : 'normal';\n }\n\n getNavigationData() {\n this.linkTexts = this.readConfigService.getEstimateLinkTexts();\n this.navigationData = this.wizardService.getNavigation();\n if (this.retirementDate.previousScreen === 0) {\n this.previousTitle = this.linkTexts.Military;\n this.previousScreenCode = this.retirementDate.previousScreen;\n } else {\n this.previousTitle = this.linkTexts.Service;\n this.previousScreenCode = 1;\n }\n this.nextTitle = this.linkTexts.Salary;\n }\n\n valueChange(value: Date): void {\n if (value !== null && value.valueOf() > 0 && value.valueOf() >= this.min.valueOf() && value.valueOf() <= this.max.valueOf()) {\n this.selectedRetirementDate = value;\n this.invalidSRD = false;\n this.setValue();\n } else {\n this.invalidSRD = true;\n }\n }\n\n setValue() {\n const selRetirementDate = this.selectedRetirementDate;\n if (this.dateCheck(this.earlyRetirementDate, this.normalRetirementDate, selRetirementDate) === true) {\n this.retirementType = this.retirementTypeEarlyDescription;\n this.setRetirementTypeStyle(this.earlyColor);\n } else if (this.normalRetirementDate <= selRetirementDate) {\n this.retirementType = this.retirementTypeNormalDescription;\n this.setRetirementTypeStyle(this.normalColor);\n } else {\n this.retirementType = this.retirementTypeNotEligibleDescription;\n this.setRetirementTypeStyle(this.notEligibleColor);\n }\n this.setupSWD();\n this.setupNextScreen(selRetirementDate);\n this.basicAllowance = '';\n if (this.cacheData !== undefined && this.cacheData.length > 0) {\n const data = this.cacheData.find(x => x.RtDt === selRetirementDate.toLocaleDateString());\n if (data !== undefined) {\n this.basicAllowance = data.BenefitAmount;\n this.AFCResult = data.AFCResult;\n this.reducedInfo = data.ReducedInfo;\n this.creditableSer = this.estimateService.calculateYearsAndMonths(this.estimatePrepData.totalService +\n this.AFCResult.projCredSvc, this.estimatePrepData.tenMonth);\n this.eligibilitySer = this.estimateService.calculateYearsAndMonths(this.estimatePrepData.eligService +\n this.AFCResult.projEligSvc, this.estimatePrepData.tenMonth);\n this.afc = this.AFCResult.afc;\n return;\n }\n }\n this.sliderMoved = true;\n if (this.basicAllowance === '') {\n const milData = this.wizardService.getMilitary().selOption === 'no' ? null : this.wizardService.getMilitary();\n const retType = new Date(this.datePipe.transform(selRetirementDate, 'MM/dd/yyyy')) <\n new Date(this.datePipe.transform(this.normalRetirementDate, 'MM/dd/yyyy')) ? 'E' : 'N';\n const stopWrkDt = this.serviceProjData.selOption === 'no' ? new Date(this.datePipe.transform(this.stopWorkDate, 'MM/dd/yyyy')) :\n new Date('01/01/1900');\n this.estimateService.calculateBenefitAmount(retType, selRetirementDate, stopWrkDt, milData, this.uniqueId,\n this.userDetails).subscribe((data: any) => {\n if (data.statusCode === 200) {\n this.basicAllowance = data.result.benefit;\n this.sliderMoved = false;\n this.AFCResult = data.result.afcResult;\n this.reducedInfo = data.result.reducedInfo;\n this.creditableSer = this.estimateService.calculateYearsAndMonths(this.estimatePrepData.totalService +\n this.AFCResult.projCredSvc, this.estimatePrepData.tenMonth);\n this.eligibilitySer = this.estimateService.calculateYearsAndMonths(this.estimatePrepData.eligService +\n this.AFCResult.projEligSvc, this.estimatePrepData.tenMonth);\n this.afc = this.AFCResult.afc;\n const cacheItem = {\n RtDt: new Date(this.datePipe.transform(selRetirementDate, 'MM/dd/yyyy')).toLocaleDateString(),\n BenefitAmount: this.basicAllowance,\n AFCResult: data.result.afcResult,\n ReducedInfo: data.result.reducedInfo\n };\n this.cacheData.push(cacheItem);\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n });\n }\n }\n\n setRetirementTypeStyle(color: string) {\n const objElement = document.querySelector('.retirementType');\n const objHtmlElement = (objElement as HTMLElement);\n objHtmlElement.style.color = color;\n }\n\n dateCheck(from: any, to: any, check: any) {\n let fDate: number;\n let lDate: number;\n let cDate: number;\n fDate = Date.parse(from);\n lDate = Date.parse(to);\n cDate = Date.parse(check);\n if ((cDate < lDate && cDate >= fDate)) {\n return true;\n }\n return false;\n }\n\n goToPrev() {\n // Navigate to the previous page\n this.previousScreen();\n }\n\n goToNext() {\n if (this.save()) {\n // Navigate to the next page\n if (this.resetData !== undefined) {\n this.nextScreen(this.resetData);\n }\n }\n }\n\n save(): boolean {\n this.resetData = false;\n const formData = JSON.parse(sessionStorage.getItem('wizardData')).rtDateData;\n if (this.selectedRetirementDate !== formData.rtDate) {\n this.resetData = true;\n }\n this.retirementDate.benefitAmount = this.basicAllowance;\n this.retirementDate.rtDate = this.selectedRetirementDate;\n this.retirementDate.rtType = this.retirementType;\n this.retirementDate.previousScreen = this.previousScreenCode;\n this.wizardService.setRetirementDate(this.retirementDate);\n this.setupSWD();\n this.commonData.AFCResult = this.AFCResult;\n this.commonData.updatedAFC = this.AFCResult.afc;\n this.commonData.basicAllownance = this.basicAllowance;\n if (this.reducedInfo !== undefined) {\n this.commonData.reducedInfo = this.reducedInfo;\n }\n this.wizardService.setCommon(this.commonData);\n return true;\n }\n\n setupSWD() {\n if (this.serviceProjData.selOption === 'yes') {\n this.commonData.stopWorkDate = this.selectedRetirementDate;\n this.wizardService.setCommon(this.commonData);\n }\n }\n\n getSWD(): any {\n return new Date(this.datePipe.transform(this.wizardService.getCommon().stopWorkDate, 'MM/dd/yyyy'));\n }\n\n setupNextScreen(retDt: any) {\n const rtDt = new Date(this.datePipe.transform(retDt, 'MM/dd/yyyy')).valueOf();\n const curDt = new Date(this.datePipe.transform(this.commonData.currentDate, 'MM/dd/yyyy')).valueOf();\n const swDt = this.getSWD().valueOf();\n if (swDt > curDt) {\n this.navigationData.nextScreen = 3; // move to salary projection\n this.nextTitle = this.linkTexts.Salary;\n } else if (swDt === curDt) {\n if (swDt === rtDt) {\n if (this.estimatePrepData.system === '4' || this.estimatePrepData.system === '5') {\n this.navigationData.nextScreen = 5; // move to beneficiary\n this.nextTitle = this.linkTexts.Beneficiary;\n } else {\n this.navigationData.nextScreen = 4; // move to sick leave\n this.nextTitle = this.linkTexts.SickLeave;\n }\n } else {\n this.navigationData.nextScreen = 5; // move to beneficiary\n this.nextTitle = this.linkTexts.Beneficiary;\n }\n } else {\n this.navigationData.nextScreen = 5; // move to beneficiary\n this.nextTitle = this.linkTexts.Beneficiary;\n }\n this.setNavigation(this.previousScreenCode, 2, this.navigationData.nextScreen);\n }\n\n setNavigation(previous: any, current: any, next: any) {\n this.navigationData = this.wizardService.getNavigation();\n this.navigationData.previousScreen = previous;\n this.navigationData.currentScreen = current;\n this.navigationData.nextScreen = next;\n this.wizardService.setNavigation(this.navigationData);\n this.progressModel.emit({ retain: true });\n }\n\n /* Common Functions */\n /**\n * Function to navigate to the previous page\n */\n previousScreen() {\n this.progressModel.emit({ mode: '0', screen: this.previousScreenCode, reset: false });\n }\n\n /**\n * Function to navigate to the next page\n */\n nextScreen(reset: any) {\n this.setNavigation(this.previousScreenCode, 2, this.navigationData.nextScreen);\n this.progressModel.emit({ mode: '1', screen: this.navigationData.nextScreen, current: 2, reset });\n }\n\n /* End Common Functions */\n\n continue(): boolean {\n if (this.basicAllowance === undefined || this.basicAllowance === '' || this.invalidSRD) {\n return false;\n }\n return true;\n }\n}\n","
\n
\n

Your Retirement Date

\n
\n {{introduction}}\n
\n
\n
\n {{retDtHeading}} {{ stopWorkDate | date: 'MMMM, yyyy' }}\n
\n
\n
\n
\n
\n
\n Early Service Retirement Date:\n {{ earlyRetirementDate | date: 'MM/dd/yyyy' }}\n
\n
\n
\n
\n
\n Normal Service Retirement Date:\n {{ normalRetirementDate | date: 'MM/dd/yyyy' }}\n
\n
\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Retirement Date\n \n Retirement Type\n \n Monthly Basic Allowance\n
\n \n \n \n {{title}}\n \n \n \n {{context.formattedValue}}\n \n \n \n {{title}}\n \n \n \n \n Retirement date must be between {{min | date: 'MMMM yyyy'}} and {{max | date: 'MMMM yyyy'}}\n \n \n {{retirementType}}\n \n \n \n {{basicAllowance | currency:'USD'}}\n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n","import { Component, OnInit, Output, EventEmitter, ViewChild, ElementRef, AfterViewInit } from '@angular/core';\nimport { BenefitEstimateService } from '../../../../shared/services/benefit-estimate.service';\nimport { BenefitWizardService } from '../../../../shared/services/benefit-wizard.service';\nimport { SalaryProjection, Navigation, Common, RetirementDate } from '../../../../models/benefitEstimateWizard.model';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../../../../shared/services/toast-message.service';\nimport { Router } from '@angular/router';\nimport { ReadConfigService } from '../../../../shared/services/read-config.service';\nimport { UserService } from '../../../../shared/services/user.service';\n@Component({\n selector: 'app-salary-projection',\n templateUrl: './salary-projection.component.html',\n styleUrls: ['./salary-projection.component.css']\n})\nexport class SalaryProjectionComponent implements OnInit, AfterViewInit {\n introduction: any;\n salaryProjectionConfig: any;\n previousTitle: any;\n nextTitle: any;\n wizardData: SalaryProjection;\n navigationData: Navigation;\n commonData: Common;\n retirementData: RetirementDate;\n prepData: any;\n monthItems: any;\n disableSalaryMonth = true;\n disableSalIncrease = true;\n disableInputAFC = true;\n formData: any;\n dataReset = true;\n linkTexts: any;\n previousScreenCode: any;\n nextScreenCode: any;\n showGrowth = false;\n continueDisabled = false;\n warningMessage: any;\n showWarning = false;\n increaseMonthName: any;\n maxAFCInput: any;\n tickWidth: any;\n showLastReported: any;\n serviceProjData: any;\n minMonth: any;\n monthNames = ['Initial', 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December'];\n reducedInfo: any;\n @Output() progressModel = new EventEmitter();\n @ViewChild('salaryProjectionform') salaryProjectionform: ElementRef;\n creditableSer: any;\n eligibilitySer: { years: number; months: number; };\n userDetails: any;\n constructor(\n private estimateService: BenefitEstimateService,\n private wizardService: BenefitWizardService,\n private readConfigService: ReadConfigService,\n private toastService: ToastMessageService,\n private userService: UserService,\n private router: Router) { }\n\n ngOnInit() {\n this.prepData = this.estimateService.getEstimatePrepData();\n this.setConfiData();\n this.userDetails = this.userService.getUserInputData();\n this.wizardData = this.wizardService.getSalaryProjection();\n this.commonData = this.wizardService.getCommon();\n if (this.commonData !== undefined) {\n this.maxAFCInput = this.commonData.maxSalLimit;\n }\n this.retirementData = this.wizardService.getRetirementDate();\n this.wizardData.retDate = this.retirementData.rtDate;\n this.wizardData.currentAFC = this.commonData.AFCResult.afc;\n if (this.wizardData.calculatedAFC === null || this.wizardData.calculatedAFC === undefined) {\n this.wizardData.calculatedAFC = this.wizardData.currentAFC;\n }\n if (this.wizardData.calculatedMonthlyAllowance === null || this.wizardData.calculatedMonthlyAllowance === undefined) {\n this.wizardData.calculatedMonthlyAllowance = this.retirementData.benefitAmount;\n }\n this.minMonth = 1;\n this.serviceProjData = this.wizardService.getServiceProjection();\n const retDate = this.serviceProjData.selOption === 'no' ? this.serviceProjData.stopWorkDate : this.retirementData.rtDate;\n if (this.estimateService.getMonthDiff(new Date(this.commonData.currentDate), new Date(retDate)) < 12) {\n this.showLastReported = true;\n } else {\n this.minMonth = 1;\n }\n if (this.wizardData.selOption === 'input') {\n this.showGrowth = true;\n if (this.wizardData.inputAFC < this.wizardData.currentAFC) {\n this.showWarning = true;\n this.wizardData.calculatedAFC = undefined;\n this.wizardData.calculatedMonthlyAllowance = undefined;\n } else { this.showWarning = false; }\n } else if (this.wizardData.selOption === 'project') {\n this.selectionChange(this.wizardData.salIncreaseMonth, 1);\n } else {\n this.increaseMonthName = this.monthNames[this.minMonth - 1];\n }\n this.monthItems = this.estimateService.getMonthsName();\n this.setOptions();\n this.getNavigationData();\n this.setYearsBetween();\n this.creditableSer = this.estimateService.calculateYearsAndMonths(this.prepData.totalService +\n this.commonData.AFCResult.projCredSvc, this.prepData.tenMonth);\n this.eligibilitySer = this.estimateService.calculateYearsAndMonths(this.prepData.eligService +\n this.commonData.AFCResult.projEligSvc, this.prepData.tenMonth);\n if (window.screen.width <= 480) { // for mobile view change the tick width for better view\n this.tickWidth = '23';\n } else {\n this.tickWidth = '35';\n }\n this.settingMonthSlider();\n window.scrollTo(0, 0);\n }\n\n ngAfterViewInit() {\n this.settingMonthSlider();\n }\n\n keytab(event: any) {\n const target = event.target || event.srcElement;\n const length = (target.getAttribute('aria-valuemax')).length;\n target.setAttribute('maxLength', length);\n }\n\n settingMonthSlider() {\n const target = document.getElementById('monthSlider');\n const tickelements = Array.from(target.querySelectorAll('.k-tick'));\n if (tickelements.length > 0) {\n for (let i = 0; i < tickelements.length; i++) {\n const objHtmlElement = (tickelements[i] as HTMLElement);\n objHtmlElement.title = this.monthNames[i + (this.minMonth - 1)];\n objHtmlElement.title = objHtmlElement.title === this.monthNames[0] ? '' : objHtmlElement.title;\n const objSpanChild = objHtmlElement.querySelector('.k-label');\n const objSpanChildHtml = (objSpanChild) as HTMLElement;\n if (i === 0) {\n objSpanChildHtml.style.marginLeft = '-6px';\n objSpanChildHtml.style.visibility = 'hidden';\n } else {\n objSpanChildHtml.style.marginLeft = '1px';\n }\n if (this.tickWidth === '35') {\n // only for big screen view change the Month Name\n objSpanChildHtml.innerHTML = '

' + this.monthNames[i + (this.minMonth - 1)].substring(0, 3) + '

';\n } else {\n // only for small screen view change to month number\n objSpanChildHtml.innerHTML = '

' + i + '

';\n }\n }\n }\n }\n\n setYearsBetween() {\n const retDateYear = new Date(this.wizardData.retDate).getFullYear();\n const retDateMonth = new Date(this.wizardData.retDate).getMonth();\n let currentYear = new Date().getFullYear();\n const currentMonth = new Date().getMonth();\n if (currentMonth >= retDateMonth) { currentYear = currentYear + 1; }\n return (retDateYear - currentYear);\n }\n\n setOptions() {\n if (this.wizardData.selOption === 'input') {\n this.disableInputAFC = false;\n this.disableSalaryMonth = true;\n } else if (this.wizardData.selOption === 'project') {\n this.disableSalaryMonth = false;\n this.disableInputAFC = true;\n }\n }\n\n setConfiData() {\n this.salaryProjectionConfig = this.readConfigService.getSalaryProjText();\n this.introduction = this.salaryProjectionConfig.Introduction;\n this.previousTitle = this.salaryProjectionConfig.PrevTitle;\n this.nextTitle = this.salaryProjectionConfig.NextTitle;\n this.warningMessage = this.salaryProjectionConfig.WarningMessage;\n }\n\n salaryOption(event: any) {\n if (event.target.checked) {\n if (event.target.value === 'current') {\n this.disableSalaryMonth = true;\n this.disableInputAFC = true;\n this.showGrowth = false;\n this.showWarning = false;\n this.wizardData.growthPercent = 0;\n this.wizardData.inputAFC = undefined;\n this.wizardData.salIncreaseMonth = null;\n this.increaseMonthName = null;\n this.wizardData.selSalaryPercentage = null;\n this.wizardData.calculatedAFC = this.wizardData.currentAFC;\n this.wizardData.calculatedMonthlyAllowance = this.retirementData.benefitAmount;\n } else if (event.target.value === 'project') {\n this.disableSalIncrease = true;\n this.disableSalaryMonth = false;\n this.wizardData.growthPercent = 0;\n this.disableInputAFC = true;\n this.showGrowth = false;\n this.showWarning = false;\n this.wizardData.inputAFC = undefined;\n this.wizardData.calculatedAFC = undefined;\n this.wizardData.calculatedMonthlyAllowance = undefined;\n this.wizardData.salIncreaseMonth = null; // this.minMonth;\n this.wizardData.selSalaryPercentage = 0;\n } else if (event.target.value === 'input') {\n this.disableSalaryMonth = true;\n this.disableInputAFC = false;\n this.showGrowth = true;\n this.wizardData.growthPercent = 0;\n this.wizardData.inputAFC = this.wizardData.currentAFC;\n this.wizardData.calculatedAFC = undefined;\n this.wizardData.salIncreaseMonth = this.minMonth;\n this.increaseMonthName = null;\n this.wizardData.selSalaryPercentage = 0;\n this.wizardData.calculatedMonthlyAllowance = undefined;\n this.setGrowthRate(this.wizardData.inputAFC, this.setYearsBetween(), 3);\n }\n }\n }\n\n onChange(value: number) {\n this.continueDisabled = true;\n if (value < this.wizardData.currentAFC) {\n this.showWarning = true;\n this.warningMessage = this.salaryProjectionConfig.WarningMessage;\n } else {\n if (value > this.maxAFCInput) {\n this.showWarning = true;\n this.warningMessage = this.salaryProjectionConfig.AFCSalaryMessage.replace('{0}', this.maxAFCInput);\n } else {\n this.showWarning = false;\n }\n }\n if (this.showWarning) {\n this.wizardData.calculatedAFC = undefined;\n this.wizardData.calculatedMonthlyAllowance = undefined;\n this.wizardData.growthPercent = 0;\n return;\n }\n if (value <= 0 || value < (Number(this.maxAFCInput) + 1) || value === undefined || value === null) {\n this.wizardData.calculatedAFC = value;\n this.setGrowthRate(value, this.setYearsBetween(), 3);\n } else {\n this.wizardData.calculatedAFC = undefined;\n this.wizardData.calculatedMonthlyAllowance = undefined;\n this.wizardData.growthPercent = 0;\n }\n }\n\n setGrowthRate(inputSalary: any, yearsBetween: any, option: any) {\n let salary = 0;\n if ((this.prepData.system === '6') || (this.prepData.system === '7') || (this.prepData.system === '9')\n || (this.prepData.system === 'H')) {\n salary = this.prepData.fteSalary;\n } else { salary = this.prepData.actualSalary; }\n this.estimateService.getGrowthRate(inputSalary, salary, yearsBetween, this.userDetails).subscribe(response => {\n if (response.success) {\n this.wizardData.growthPercent = isNaN(response.result) ? 0 : response.result;\n if (this.wizardData.growthPercent < 0) {\n this.wizardData.growthPercent = 0;\n }\n if (Number(this.wizardData.growthPercent) > 20.00000) {\n this.showWarning = true;\n this.warningMessage = this.salaryProjectionConfig.AFCSalaryMessageCap;\n this.wizardData.calculatedAFC = undefined;\n this.wizardData.calculatedMonthlyAllowance = undefined;\n } else {\n this.showWarning = false;\n this.getAFCData(option);\n }\n } else if (response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.continueDisabled = true;\n this.toastService.getErrorMessage();\n });\n }\n\n selectionChange(data: any, option: any) {\n this.continueDisabled = true;\n if (option === 1 && data === 1) {\n this.disableSalIncrease = true;\n this.wizardData.inputAFC = undefined;\n this.wizardData.calculatedAFC = undefined;\n this.wizardData.calculatedMonthlyAllowance = undefined;\n this.wizardData.salIncreaseMonth = this.minMonth;\n this.wizardData.selSalaryPercentage = 0;\n this.increaseMonthName = this.monthNames[0];\n } else {\n if (option === 1) {\n this.increaseMonthName = this.monthNames[data - 1];\n }\n this.getAFCData(option);\n this.disableSalIncrease = false;\n }\n }\n\n getAFCData(option: any) {\n let growthPct = 0;\n let growthMnth = 0;\n this.wizardData.calculatedAFC = undefined;\n this.wizardData.calculatedMonthlyAllowance = undefined;\n if (this.wizardData.selOption === 'project') {\n growthPct = isNaN(this.wizardData.selSalaryPercentage) ? 0 : this.wizardData.selSalaryPercentage;\n if (this.wizardData.salIncreaseMonth !== undefined) {\n if (this.wizardData.salIncreaseMonth !== null) {\n growthMnth = this.wizardData.salIncreaseMonth;\n }\n }\n growthMnth--;\n } else if (this.wizardData.selOption === 'input') {\n growthPct = this.wizardData.growthPercent;\n const projDate = new Date(new Date(this.wizardData.retDate).setMonth(new Date(this.wizardData.retDate).getMonth()));\n growthMnth = projDate.getMonth() + 1;\n this.wizardData.growthMonth = growthMnth;\n }\n if (growthPct === null) { growthPct = 0; }\n if (growthMnth === undefined) { growthMnth = 0; }\n if (growthPct >= 0 && growthMnth >= 0) {\n this.continueDisabled = true;\n const retDate = this.serviceProjData.selOption === 'no' ? this.serviceProjData.stopWorkDate : this.retirementData.rtDate;\n this.estimateService.calculateAFCSalary(growthPct, growthMnth, retDate, this.commonData.AFCResult.reductionFactor,\n this.commonData.AFCResult.projCredSvc, this.commonData.AFCResult.ssil, this.userDetails)\n .subscribe(data => {\n this.continueDisabled = true;\n if (data.statusCode === 200) {\n if (option === 3) {\n if (!((this.prepData.system === '4') || (this.prepData.system === '5'))) {\n this.wizardData.calculatedAFC = data.result.afcResult;\n } else {\n this.wizardData.calculatedAFC = this.wizardData.inputAFC;\n }\n } else {\n this.wizardData.calculatedAFC = data.result.afcResult;\n }\n this.wizardData.calculatedMonthlyAllowance = data.result.benefit;\n this.reducedInfo = data.result.reducedInfo;\n this.continueDisabled = false;\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.continueDisabled = false;\n this.toastService.getErrorMessage();\n });\n }\n }\n\n getNavigationData() {\n this.linkTexts = this.readConfigService.getEstimateLinkTexts();\n this.navigationData = this.wizardService.getNavigation();\n if (this.navigationData.nextScreen > 3) {\n if (this.wizardData.previousScreen !== undefined) {\n this.previousScreenCode = this.wizardData.previousScreen;\n } else {\n if (this.navigationData.currentScreen === 1) {\n this.previousScreenCode = 1;\n } else {\n this.previousScreenCode = 2;\n }\n }\n } else {\n if (this.navigationData.currentScreen === 1) {\n this.previousScreenCode = 1;\n } else {\n this.previousScreenCode = 2;\n }\n }\n if (this.previousScreenCode === 1) {\n this.previousTitle = this.linkTexts.Service;\n } else {\n this.previousTitle = this.linkTexts.RetirementDate;\n }\n const stopDt = new Date(this.commonData.stopWorkDate).valueOf();\n const retDt = new Date(this.wizardData.retDate).valueOf();\n if (stopDt === retDt) {\n if ((this.prepData.system === '5') || (this.prepData.system === '4')) {\n this.nextTitle = this.linkTexts.Beneficiary; this.nextScreenCode = 5;\n } else {\n this.nextTitle = this.linkTexts.SickLeave; this.nextScreenCode = 4;\n }\n } else {\n this.nextTitle = this.linkTexts.Beneficiary; this.nextScreenCode = 5;\n }\n this.navigationData.previousScreen = this.previousScreenCode;\n this.navigationData.currentScreen = 3;\n this.navigationData.nextScreen = this.nextScreenCode;\n this.wizardService.setNavigation(this.navigationData);\n this.progressModel.emit({ retain: true });\n }\n\n next(salaryProjectionform: any): boolean {\n if ((((this.wizardData.currentAFC === undefined) || (this.wizardData.currentAFC === null) ||\n (this.wizardData.calculatedAFC === 0)) &&\n ((this.wizardData.retDate === undefined) || (this.wizardData.retDate === null)))) {\n return false;\n }\n if (!salaryProjectionform.valid) {\n return false;\n }\n if (this.continueDisabled) { return false; }\n if (this.wizardData.selOption === 'input') {\n if ((this.wizardData.inputAFC === undefined) || (this.wizardData.inputAFC === null)\n || (this.wizardData.inputAFC === 0)) {\n return false;\n }\n if (this.continueDisabled) { return false; }\n if (this.showWarning) { return false; }\n }\n if (this.wizardData.selOption === 'project') {\n if ((this.wizardData.selSalaryPercentage === undefined) || (this.wizardData.selSalaryPercentage === null)\n || (this.wizardData.selSalaryPercentage === 0)) {\n return false;\n }\n if ((this.wizardData.salIncreaseMonth === undefined) || (this.wizardData.salIncreaseMonth === 0)\n || (this.wizardData.salIncreaseMonth === null) || (this.wizardData.salIncreaseMonth === 1)) {\n return false;\n }\n if (this.continueDisabled) { return false; }\n }\n return true;\n }\n\n onSubmit() {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n this.wizardData.previousScreen = this.previousScreenCode;\n this.wizardData.salIncreaseMonth--;\n this.wizardService.setSalaryProjection(this.wizardData);\n this.nextScreen(this.dataReset);\n this.saveData();\n }\n\n saveData() {\n this.commonData = this.wizardService.getCommon();\n this.commonData.basicAllownance = this.wizardData.calculatedMonthlyAllowance;\n this.commonData.updatedAFC = this.wizardData.calculatedAFC;\n if (this.reducedInfo !== undefined) {\n this.commonData.reducedInfo = this.reducedInfo;\n }\n this.wizardService.setCommon(this.commonData);\n }\n\n /*** Common Functions */\n /**\n * Function to navigate to the previous page\n */\n previousScreen() {\n this.progressModel.emit({ mode: '0', screen: this.previousScreenCode, reset: false });\n }\n\n /**\n * Function to navigate to the next page\n */\n nextScreen(reset: boolean) {\n this.navigationData.previousScreen = this.previousScreenCode;\n this.navigationData.currentScreen = 3;\n this.navigationData.nextScreen = this.nextScreenCode;\n this.wizardService.setNavigation(this.navigationData);\n this.progressModel.emit({ mode: 1, screen: this.nextScreenCode, reset: false });\n }\n /*** End Common Functions */\n}\n","
\n
\n

Projecting Your Salary to Retirement

\n
\n {{introduction}}\n
\n
\n
\n
\n Retirement Date: {{wizardData.retDate | date: 'MM/dd/yyyy'}}\n
\n
\n AFC at Retirement: \n {{wizardData.calculatedAFC | currency:'USD'}}\n
\n
\n Monthly Basic Allowance: \n {{wizardData.calculatedMonthlyAllowance | currency:'USD'}}\n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n You have selected {{increaseMonthName}}\n
\n
\n Please select month\n
\n
\n
\n \n \n
0\">\n You have selected\n {{wizardData.selSalaryPercentage + '%'}}\n Salary increase\n \n
\n
\n Please select % Salary increase\n
\n
\n
\n
\n
\n \n \n \n $\n \n \n
\n
\n \n \n
\n

Projected Growth Rate: {{wizardData.growthPercent}}%\n

\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, EventEmitter, ElementRef, Output, ViewChild } from '@angular/core';\nimport { BenefitEstimateService } from '../../../../shared/services/benefit-estimate.service';\nimport { BenefitWizardService } from '../../../../shared/services/benefit-wizard.service';\nimport { ServiceProjection, Navigation, Common, MilitaryService, RetirementDate } from '../../../../models/benefitEstimateWizard.model';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../../../../shared/services/toast-message.service';\nimport { Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { ReadConfigService } from '../../../../shared/services/read-config.service';\nimport { UserService } from '../../../../shared/services/user.service';\n@Component({\n selector: 'app-service-projection',\n templateUrl: './service-projection.component.html',\n styleUrls: ['./service-projection.component.css']\n})\nexport class ServiceProjectionComponent implements OnInit {\n public projServiceHeading: any;\n public introduction: any;\n public value: Date;\n public min: Date = new Date();\n public max: Date = new Date();\n rdRetireOptions: any;\n rdWorkOptions: any;\n showWorkRetire: any;\n showRetireOptions: any;\n defaultWorkDate: any;\n maxWorkDate: any;\n defaultWorkAge: any;\n maxWorkAge: any;\n minAgeYrs: any;\n minAgeMos: any;\n maxAgeYrs: any;\n maxAgeMos: any;\n workAgeYrs: any;\n workAgeMos: any;\n estimatePrepData: any;\n serviceProj: ServiceProjection;\n commonData: Common;\n militaryData: MilitaryService;\n retDateData: RetirementDate;\n previousTitle: any;\n nextTitle: any;\n linkTexts: any;\n nextScreenCode: any;\n navigationData: Navigation;\n eligService: any;\n totalES: any;\n totalCS: any;\n totalESTxt = '';\n totalCSTxt = '';\n invalidAge: any;\n invalidSWD: any;\n minWorkAgeTxt = '';\n maxWorkAgeTxt = '';\n disableNextBtn = false;\n normRtDate: any;\n earlyRtDate: any;\n selectedWorkDate: any;\n stopWorkDate: any;\n @Output() progressModel = new EventEmitter();\n @ViewChild('servProj') servProj: ElementRef;\n creditableSer: { years: number; months: number; };\n eligibilitySer: { years: number; months: number; };\n earlyRtData: any;\n normalRtData: any;\n nextScreenData = true;\n datePipe: DatePipe;\n userDetails: any;\n uniqueId: string;\n\n constructor(private estimateService: BenefitEstimateService,\n private wizardService: BenefitWizardService,\n private readConfigService: ReadConfigService,\n private toastService: ToastMessageService,\n private userService: UserService,\n private router: Router) { }\n\n ngOnInit() {\n this.uniqueId = this.userService.getTileId();\n this.userDetails = this.userService.getUserInputData();\n this.datePipe = new DatePipe('en-US');\n const serviceProjConfig = this.readConfigService.getServiceProjText();\n this.introduction = serviceProjConfig.Introduction;\n this.estimatePrepData = this.estimateService.getEstimatePrepData();\n this.projServiceHeading = serviceProjConfig.Heading.replace('{0}', this.estimatePrepData.ftePercent);\n this.getNavigationData();\n this.commonData = this.wizardService.getCommon();\n this.serviceProj = this.wizardService.getServiceProjection();\n this.militaryData = this.wizardService.getMilitary();\n this.setDefaultWorkDate();\n this.min = new Date(this.datePipe.transform(this.defaultWorkDate, 'MM/dd/yyyy'));\n this.max = new Date(this.datePipe.transform(this.commonData.maxNormalRetirementDate, 'MM/dd/yyyy'));\n this.maxWorkDate = this.max;\n if (this.serviceProj.selOption !== undefined) {\n this.rdRetireOptions = this.serviceProj.selOption;\n this.nextScreenCode = 2;\n if (this.rdRetireOptions === 'no') {\n this.showRetireOptions = true;\n }\n }\n this.value = new Date(this.datePipe.transform(this.defaultWorkDate, 'MM/dd/yyyy'));\n if (this.serviceProj.workAge !== undefined && this.serviceProj.workAge !== 0) {\n this.rdWorkOptions = 'age';\n const wrkAge = this.estimateService.calculateYearsAndMonths(this.serviceProj.workAge, 12);\n this.workAgeMos = wrkAge.months;\n this.workAgeYrs = wrkAge.years;\n this.stopWorkDate = new Date(this.datePipe.transform(this.serviceProj.stopWorkDate, 'MM/dd/yyyy'));\n this.setDefaultWorkAge();\n this.getProjService(this.stopWorkDate);\n } else {\n this.rdWorkOptions = 'date';\n if (this.serviceProj.workDate === undefined) {\n this.serviceProj.workDate = this.defaultWorkDate;\n this.value = new Date(this.datePipe.transform(this.defaultWorkDate, 'MM/dd/yyyy'));\n } else {\n this.serviceProj.workDate = new Date(this.datePipe.transform(this.serviceProj.workDate, 'MM/dd/yyyy'));\n this.value = this.serviceProj.workDate;\n this.stopWorkDate = new Date(this.datePipe.transform(this.serviceProj.stopWorkDate, 'MM/dd/yyyy'));\n }\n this.selectedWorkDate = this.serviceProj.workDate;\n if (this.showRetireOptions) {\n this.getProjService(this.selectedWorkDate);\n }\n }\n this.normalRtData = this.commonData.normalRetirementDate;\n this.earlyRtData = this.commonData.earlyRetirementDate;\n window.scrollTo(0, 0);\n }\n\n setDefaultWorkDate() {\n const curDt = new Date(this.datePipe.transform(this.commonData.currentDate, 'MM/dd/yyyy'));\n const normRtDt = new Date(this.datePipe.transform(this.commonData.normalRetirementDate, 'MM/dd/yyyy'));\n const earlyRtDt = new Date(this.datePipe.transform(this.commonData.earlyRetirementDate, 'MM/dd/yyyy'));\n const vestRtDt = new Date(this.datePipe.transform(this.commonData.vestedRetirementDate, 'MM/dd/yyyy'));\n if (this.commonData.earlyRetirementDate === null && this.commonData.vestedRetirementDate === null) {\n if (normRtDt > curDt) {\n this.defaultWorkDate = normRtDt;\n } else {\n this.defaultWorkDate = curDt;\n }\n return;\n } else if (this.commonData.earlyRetirementDate !== null && this.commonData.vestedRetirementDate !== null) {\n if (earlyRtDt < vestRtDt && earlyRtDt < normRtDt) {\n this.defaultWorkDate = earlyRtDt;\n } else if (normRtDt < vestRtDt && normRtDt < earlyRtDt) {\n this.defaultWorkDate = normRtDt;\n } else {\n this.defaultWorkDate = vestRtDt;\n }\n } else if (this.commonData.earlyRetirementDate !== null && this.commonData.vestedRetirementDate === null) {\n if (earlyRtDt < normRtDt) {\n this.defaultWorkDate = earlyRtDt;\n } else {\n this.defaultWorkDate = normRtDt;\n }\n } else if (this.commonData.earlyRetirementDate === null && this.commonData.vestedRetirementDate !== null) {\n if (vestRtDt < normRtDt) {\n this.defaultWorkDate = vestRtDt;\n } else {\n this.defaultWorkDate = normRtDt;\n }\n }\n\n if (this.defaultWorkDate < curDt) {\n this.defaultWorkDate = curDt;\n }\n }\n\n setDefaultWorkAge() {\n const curDt = new Date(this.datePipe.transform(this.defaultWorkDate, 'MM/dd/yyyy'));\n const birthDt = new Date(this.datePipe.transform(this.commonData.birthDate, 'MM/dd/yyyy'));\n let monDiff = this.estimateService.getMonthDiff(birthDt, curDt);\n this.defaultWorkAge = monDiff;\n const minAge = this.estimateService.calculateYearsAndMonths(monDiff, 12);\n this.minAgeMos = minAge.months;\n this.minAgeYrs = minAge.years;\n if (this.serviceProj.workAge !== undefined) {\n const wrkAge = this.estimateService.calculateYearsAndMonths(this.serviceProj.workAge, 12);\n this.workAgeMos = wrkAge.months;\n this.workAgeYrs = wrkAge.years;\n } else {\n this.workAgeMos = minAge.months;\n this.workAgeYrs = minAge.years;\n this.serviceProj.workAge = monDiff;\n }\n const maxDt = new Date(this.datePipe.transform(this.commonData.maxNormalRetirementDate, 'MM/dd/yyyy'));\n monDiff = this.estimateService.getMonthDiff(birthDt, maxDt);\n this.maxWorkAge = monDiff;\n const maxAge = this.estimateService.calculateYearsAndMonths(monDiff, 12);\n this.maxAgeMos = maxAge.months;\n this.maxAgeYrs = maxAge.years;\n }\n\n getSWDAge(swDt: any): any {\n const birthDt = new Date(this.datePipe.transform(this.commonData.birthDate, 'MM/dd/yyyy'));\n const monDiff = this.estimateService.getMonthDiff(birthDt, new Date(this.datePipe.transform(swDt, 'MM/dd/yyyy')));\n return monDiff;\n }\n\n workUntilRetireChange(value: any) {\n this.rdRetireOptions = value;\n if (value === 'no') {\n this.showRetireOptions = true;\n this.stopWorkDate = this.selectedWorkDate;\n if (this.rdWorkOptions === 'age') {\n this.onAgeChange();\n }\n this.getProjService(this.selectedWorkDate);\n } else if (value === 'yes') {\n this.showRetireOptions = false;\n this.invalidAge = false;\n this.disableNextBtn = false;\n this.nextScreenCode = 2;\n this.nextTitle = this.linkTexts.RetirementDate;\n }\n this.progressModel.emit({ resetTabs: true });\n this.setNavigation(1, 1, Number(this.nextScreenCode));\n }\n\n workUntilRetireOptionChange(event: any) {\n if (event.target.checked) {\n if (event.target.value === 'date') {\n if (this.selectedWorkDate === undefined) {\n this.selectedWorkDate = this.defaultWorkDate;\n }\n this.invalidAge = false;\n this.value = new Date(this.datePipe.transform(this.selectedWorkDate, 'MM/dd/yyyy'));\n this.serviceProj.workDate = this.selectedWorkDate;\n this.stopWorkDate = this.selectedWorkDate;\n this.getProjService(this.selectedWorkDate);\n } else if (event.target.value === 'age') {\n this.setDefaultWorkAge();\n const swd = this.getSWD(this.serviceProj.workAge);\n this.stopWorkDate = swd;\n this.onAgeChange();\n }\n }\n }\n\n getSWD(workAge: any): any {\n const birthDt = this.commonData.birthDate;\n return this.estimateService.addMonths(birthDt, workAge);\n }\n\n public valueChange(value: Date): void {\n if (value !== null && value.valueOf() > 0 && value.valueOf() >= this.min.valueOf() && value.valueOf() <= this.max.valueOf()) {\n this.invalidSWD = false;\n this.selectedWorkDate = value;\n this.stopWorkDate = value;\n this.getProjService(value);\n this.progressModel.emit({ resetTabs: true });\n } else {\n this.invalidSWD = true;\n }\n }\n\n getProjService(stopWorkDt: any) {\n if (stopWorkDt !== null && stopWorkDt !== undefined) {\n const ms = this.estimateService.getMilitaryService(this.estimatePrepData.tenMonth, this.militaryData);\n this.estimateService.getProjService(stopWorkDt, ms, this.uniqueId, this.userDetails).subscribe((data: any) => {\n if (data.statusCode === 200) {\n const credSvc = data.result.projCredSvc;\n const eligSvc = data.result.projEligSvc;\n this.totalCS = credSvc + this.estimatePrepData.totalService;\n const cs = this.estimateService.calculateYearsAndMonths(this.totalCS, this.estimatePrepData.tenMonth);\n this.creditableSer = cs;\n this.totalCSTxt = cs.years + ' Year(s) ' + cs.months + ' Month(s)';\n this.totalES = eligSvc + this.estimatePrepData.eligService;\n const es = this.estimateService.calculateYearsAndMonths(this.totalES, this.estimatePrepData.tenMonth);\n this.totalESTxt = es.years + ' Year(s) ' + es.months + ' Month(s)';\n this.eligibilitySer = es;\n this.normRtDate = data.result.normRetDate;\n this.earlyRtDate = data.result.earlyRetDate;\n this.earlyRtData = (this.earlyRtDate >= this.normRtDate) ? null : this.earlyRtDate;\n this.normalRtData = this.normRtDate;\n this.setupNextScreen(stopWorkDt);\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n });\n }\n }\n\n setupNextScreen(stopWorkDt: any) {\n if (this.showRetireOptions) {\n const curDt = new Date(this.datePipe.transform(this.commonData.currentDate, 'MM/dd/yyyy')).valueOf();\n const nrDt = new Date(this.datePipe.transform(this.normRtDate, 'MM/dd/yyyy')).valueOf();\n const swDt = new Date(this.datePipe.transform(stopWorkDt, 'MM/dd/yyyy')).valueOf();\n if (this.estimatePrepData.system === '5') {\n const age = this.getSWDAge(stopWorkDt);\n const ageLimit = this.estimatePrepData.corsflag === '3' ? 600 : 660;\n if (age >= ageLimit && swDt < nrDt) {\n this.nextScreenCode = 2; // move to retirement date\n this.nextTitle = this.linkTexts.RetirementDate;\n } else {\n if (swDt > curDt) {\n this.setUpSalOrBScreen(stopWorkDt);\n } else {\n this.nextScreenCode = 5; // move to beneficiaries\n this.nextTitle = this.linkTexts.Beneficiary;\n }\n }\n } else if (this.estimatePrepData.system === '4') {\n if (swDt > curDt) {\n this.setUpSalOrBScreen(stopWorkDt);\n } else {\n this.nextScreenCode = 5; // move to beneficiaries\n this.nextTitle = this.linkTexts.Beneficiary;\n }\n } else if (this.estimatePrepData.system !== '6' && this.estimatePrepData.system !== '7') {\n if (swDt > curDt) {\n this.setUpSalOrSLScreen(stopWorkDt);\n } else if (swDt === curDt) {\n if (swDt === nrDt) {\n this.nextScreenCode = 4; // move to sick leave\n this.nextTitle = this.linkTexts.SickLeave;\n } else {\n this.nextScreenCode = 5; // move to beneficiaries\n this.nextTitle = this.linkTexts.Beneficiary;\n }\n }\n } else {\n if (this.totalES >= (15 * this.estimatePrepData.tenMonth) && swDt < nrDt) {\n this.nextScreenCode = 2; // move to retirement date\n this.nextTitle = this.linkTexts.RetirementDate;\n } else {\n if (swDt > curDt) {\n this.setUpSalOrSLScreen(stopWorkDt);\n } else {\n if (swDt === nrDt) {\n this.nextScreenCode = 4; // move to sick leave\n this.nextTitle = this.linkTexts.SickLeave;\n } else {\n this.nextScreenCode = 5; // move to beneficiaries\n this.nextTitle = this.linkTexts.Beneficiary;\n }\n }\n }\n }\n this.setNavigation(1, 1, Number(this.nextScreenCode));\n }\n }\n\n setUpSalOrSLScreen(stopWorkDt: any) {\n this.nextScreenCode = 3;\n this.navigationData.nextScreen = 3; // move to salary projection\n this.nextTitle = this.linkTexts.Salary;\n }\n\n setUpSalOrBScreen(stopWorkDt: any) {\n this.nextScreenCode = 3; // move to salary projection\n this.nextTitle = this.linkTexts.Salary;\n }\n\n onAgeChange() {\n const minAge = this.minAgeYrs * 12 + this.minAgeMos;\n const maxAge = this.maxAgeYrs * 12 + this.maxAgeMos;\n const workAge = this.workAgeYrs * 12 + this.workAgeMos;\n if (workAge < minAge || workAge > maxAge) {\n this.invalidAge = true;\n this.minWorkAgeTxt = this.minAgeYrs + ' years and ' + this.minAgeMos + ' months';\n this.maxWorkAgeTxt = this.maxAgeYrs + ' years and ' + this.maxAgeMos + ' months';\n } else {\n this.invalidAge = false;\n this.stopWorkDate = this.getSWD(workAge);\n if (this.stopWorkDate >= new Date(this.datePipe.transform(this.commonData.maxNormalRetirementDate, 'MM/dd/yyyy'))) {\n this.setUpSalOrSLScreen(this.stopWorkDate);\n } else {\n this.nextScreenCode = 2;\n this.nextTitle = this.linkTexts.RetirementDate;\n }\n this.serviceProj.workAge = workAge;\n this.getProjService(this.stopWorkDate);\n }\n this.progressModel.emit({ resetTabs: true });\n }\n\n save(form: any): boolean {\n if (!form.valid) {\n return false;\n }\n this.serviceProj = new ServiceProjection();\n this.serviceProj.selOption = this.rdRetireOptions;\n if (this.rdRetireOptions === 'no') {\n if (this.rdWorkOptions === 'date' && form.controls.workuntildate !== undefined) {\n this.serviceProj.workDate = this.selectedWorkDate;\n } else if (this.rdWorkOptions === 'age' && form.controls.txtAgeYrs !== undefined && form.controls.txtAgeMos !== undefined) {\n this.serviceProj.workAge = form.controls.txtAgeYrs.value * 12 + form.controls.txtAgeMos.value;\n }\n this.serviceProj.stopWorkDate = this.stopWorkDate;\n }\n this.wizardService.setServiceProjection(this.serviceProj);\n return true;\n }\n\n setNavigation(previous: any, current: any, next: any) {\n this.nextScreenData = (isNaN(next) || next === 2);\n this.navigationData = this.wizardService.getNavigation();\n this.navigationData.previousScreen = previous;\n this.navigationData.currentScreen = current;\n this.navigationData.nextScreen = next;\n this.wizardService.setNavigation(this.navigationData);\n this.progressModel.emit({ display: true });\n }\n\n getNavigationData() {\n this.linkTexts = this.readConfigService.getEstimateLinkTexts();\n this.navigationData = this.wizardService.getNavigation();\n this.previousTitle = this.linkTexts.Military;\n this.nextTitle = this.linkTexts.RetirementDate;\n }\n\n goToPrev(form: any) {\n // Navigate to the military page\n this.previousScreen();\n }\n\n getMinDt(): Date {\n let minDt: Date;\n let maxDt: Date;\n const earlyDt = new Date(this.datePipe.transform(this.showRetireOptions ? this.earlyRtDate :\n this.commonData.earlyRetirementDate, 'MM/dd/yyyy'));\n const stopDt = new Date(this.datePipe.transform(this.stopWorkDate, 'MM/dd/yyyy'));\n const normDt = new Date(this.datePipe.transform(this.showRetireOptions ? this.normRtDate :\n this.commonData.normalRetirementDate, 'MM/dd/yyyy'));\n if (this.showRetireOptions) {\n if (this.earlyRtDate === null || stopDt > earlyDt) {\n maxDt = stopDt;\n } else {\n maxDt = earlyDt;\n }\n if (normDt < maxDt) {\n minDt = normDt;\n } else {\n minDt = maxDt;\n }\n } else {\n if (this.commonData.earlyRetirementDate === null || normDt < earlyDt) {\n minDt = normDt;\n } else {\n minDt = earlyDt;\n }\n }\n return minDt;\n }\n\n goToNext(form: any) {\n let resetData = false;\n const swd = this.stopWorkDate === undefined ? undefined : this.stopWorkDate.toISOString();\n const formData = JSON.parse(sessionStorage.getItem('wizardData')).serviceProjData;\n if (this.rdRetireOptions !== formData.selOption ||\n swd !== formData.stopWorkDate || this.serviceProj.workAge !== formData.workAge) {\n resetData = true;\n }\n this.progressModel.emit({ screen: this.nextScreenCode, current: 1, reset: resetData, display: true });\n this.disableNextBtn = true;\n if (this.save(form)) {\n let retDt: Date;\n let stopWorkDt = new Date('01/01/1900');\n const minDt = this.getMinDt();\n let maxDt = this.maxWorkDate;\n if (this.showRetireOptions) {\n stopWorkDt = this.stopWorkDate;\n maxDt = this.normRtDate;\n retDt = this.normRtDate;\n } else {\n retDt = this.commonData.normalRetirementDate;\n maxDt = this.commonData.maxNormalRetirementDate;\n }\n const milData = this.militaryData.selOption === 'no' ? null : this.militaryData;\n this.estimateService.calculateBenefitAmount('S', retDt, stopWorkDt, milData, this.uniqueId,\n this.userDetails).subscribe((data: any) => {\n if (data.statusCode === 200) {\n this.retDateData = new RetirementDate();\n this.retDateData.rtDate = this.showRetireOptions ? this.normRtDate : this.commonData.normalRetirementDate;\n this.retDateData.benefitAmount = data.result.benefit;\n this.retDateData.minDt = minDt;\n this.retDateData.maxDt = maxDt;\n this.wizardService.setRetirementDate(this.retDateData);\n this.commonData.AFCResult = data.result.afcResult;\n this.commonData.updatedAFC = data.result.afcResult.afc;\n this.commonData.basicAllownance = data.result.benefit;\n if (this.showRetireOptions) {\n this.commonData.updatedNRD = this.normRtDate;\n this.commonData.updatedERD = this.earlyRtDate;\n this.commonData.stopWorkDate = this.stopWorkDate;\n } else {\n this.commonData.updatedNRD = this.commonData.normalRetirementDate;\n this.commonData.updatedERD = this.commonData.earlyRetirementDate;\n }\n this.commonData.reducedInfo = data.result.reducedInfo;\n this.wizardService.setCommon(this.commonData);\n this.disableNextBtn = false;\n this.nextScreen();\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n },\n (err: HttpErrorResponse) => {\n this.disableNextBtn = false;\n console.log(err);\n this.toastService.getErrorMessage();\n });\n }\n }\n /*** Common Functions */\n\n /**\n * Function to navigate to the previous page\n */\n previousScreen() {\n this.progressModel.emit({ mode: '0', screen: '0', reset: false });\n }\n\n /**\n * Function to navigate to the next page\n */\n nextScreen() {\n this.setupNextScreen(this.rdWorkOptions === 'age' ? this.stopWorkDate : this.selectedWorkDate);\n this.setNavigation(1, 1, Number(this.nextScreenCode));\n const config = { mode: '1', screen: this.nextScreenCode, current: 2 };\n this.progressModel.emit(config);\n }\n\n /*** End Common Functions */\n\n continue(form: any): boolean {\n return form && form.valid && (this.rdRetireOptions === 'yes' || this.rdRetireOptions === 'no')\n && !this.invalidAge && !this.invalidSWD && !this.disableNextBtn;\n }\n\n previous(form: any): boolean {\n return form && form.valid && !this.invalidAge;\n }\n}\n","
\n
\n

Projecting Your Service Credit To Retirement

\n
\n {{introduction}}\n
\n
\n
\n
{{projServiceHeading}}
\n
\n
\n Will you work until you retire?\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n

Please select one option and enter a value. Note: You cannot enter a\n value less than\n the\n default value

\n
\n \n \n \n \n
\n \n Stop Workdate must be between {{min | date: 'MMMM yyyy'}} and {{max | date: 'MMMM yyyy'}}\n \n
\n \n \n \n \n Year(s)\n \n \n Month(s)\n \n
\n
\n \n Age must be between {{minWorkAgeTxt}} and {{maxWorkAgeTxt}}\n \n
\n
\n 11\">\n Month must be between 0 and 11\n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\nimport { BenefitEstimateService } from '../../../../shared/services/benefit-estimate.service';\nimport { BenefitWizardService } from '../../../../shared/services/benefit-wizard.service';\nimport { SickLeave, Navigation, Common } from '../../../../models/benefitEstimateWizard.model';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../../../../shared/services/toast-message.service';\nimport { Router } from '@angular/router';\nimport { ReadConfigService } from '../../../../shared/services/read-config.service';\nimport { UserService } from '../../../../shared/services/user.service';\n\n@Component({\n selector: 'app-sick-leave',\n templateUrl: './sick-leave.component.html',\n styleUrls: ['./sick-leave.component.css']\n})\nexport class SickLeaveComponent implements OnInit {\n\n @Output() progressModel = new EventEmitter();\n introduction: any;\n prepData: any;\n wizardData: SickLeave;\n navigationData: Navigation;\n sickLeaveConfig: any;\n note: any;\n previousTitle: any;\n nextTitle: any;\n formData: any;\n dataReset: boolean;\n max: number;\n withoutUnusedMonths: any;\n withoutUnusedAllowance: any;\n additonalUnused = { years: 0, months: 0 };\n additonalUnusedAllowance = 0;\n totalUnused = { years: 0, months: 0 };\n totalUnusedMonths = 0;\n totalUnusedAllowance: any;\n selectedMonths: number;\n selectedLeaves: number;\n initialData = 0;\n focused: boolean;\n prevWizardData: any;\n rangeArr: [any];\n withoutUnused: { years: number; months: number; };\n retDate: any;\n linkTexts: any;\n previousScreenCode: any;\n benefit: any;\n benefitDef: any;\n afc: any;\n maxLength: number;\n ssil: any;\n creditableService: { years: number; months: number; };\n eligibilityService: { years: number; months: number; };\n normalRetDate: any;\n earlyRetDate: any;\n projecService: any;\n commonData: Common;\n reducedInfo: any;\n reductionFactor: any;\n uniqueId: string;\n userDetails: any;\n scrollMessage: any;\n dataLoading: boolean;\n isCalculating: boolean;\n\n constructor(\n private estimateService: BenefitEstimateService,\n private wizardService: BenefitWizardService,\n private readConfigService: ReadConfigService,\n private toastService: ToastMessageService,\n private userService: UserService,\n private router: Router) { }\n\n ngOnInit() {\n this.dataLoading = true;\n this.prepData = this.estimateService.getEstimatePrepData();\n if (this.prepData !== null) {\n this.uniqueId = this.userService.getTileId();\n this.userDetails = this.userService.getUserInputData();\n this.wizardData = this.wizardService.getSickLeave();\n this.commonData = this.wizardService.getCommon();\n this.withoutUnusedMonths = this.prepData.totalService;\n this.scrollMessage = this.readConfigService.getMobileScrollMessage();\n this.afc = this.commonData.updatedAFC;\n this.projecService = this.commonData.AFCResult.projCredSvc;\n this.ssil = this.commonData.AFCResult.ssil;\n this.reductionFactor = this.commonData.AFCResult.reductionFactor;\n this.normalRetDate = this.commonData.normalRetirementDate;\n this.earlyRetDate = this.commonData.earlyRetirementDate;\n this.withoutUnused = this.estimateService.calculateYearsAndMonths(this.prepData.totalService + this.projecService,\n this.prepData.tenMonth);\n const retData = this.wizardService.getRetirementDate();\n this.retDate = retData.rtDate;\n this.withoutUnusedAllowance = this.commonData.basicAllownance ? this.commonData.basicAllownance : 0;\n this.selectedLeaves = this.wizardData.selectedLeaves;\n this.getNavigationData();\n this.getSickLeaveLookup();\n }\n window.scrollTo(0, 0);\n }\n\n /**\n * @description\n * Function to get sick leave look up table\n */\n getSickLeaveLookup() {\n this.estimateService.getSickLeavesLookup(this.prepData.tenMonth).subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.result) {\n this.rangeArr = data.result;\n this.max = Math.trunc(((this.withoutUnusedMonths + this.projecService) * 15) / this.prepData.tenMonth);\n this.maxLength = this.max.toString().length;\n this.setConfigData();\n this.onChange(this.selectedLeaves);\n } else if (data.statusCode === 204) {\n this.toastService.getCustomErrorMessage(data.message);\n }\n this.dataLoading = false;\n },\n (err: HttpErrorResponse) => {\n this.dataLoading = false;\n console.log(err);\n this.toastService.getErrorMessage();\n });\n }\n\n /**\n * @description\n * Function to set config data\n */\n setConfigData() {\n this.navigationData = this.wizardService.getNavigation();\n this.sickLeaveConfig = this.readConfigService.getSickLeaveText();\n this.introduction = this.sickLeaveConfig.Introduction;\n this.note = this.sickLeaveConfig.Note;\n this.nextTitle = this.sickLeaveConfig.NextTitle;\n }\n\n /**\n * @description\n * Function to set input box maxlength\n */\n keytab(event: any) {\n const target = event.target || event.srcElement;\n const length = (target.getAttribute('aria-valuemax')).length;\n target.setAttribute('maxLength', length);\n }\n\n /**\n * @description\n * Function to trigger changes to table data depending on the number of days entered in the numeric box\n */\n onChange(value: any) {\n this.isCalculating = true;\n // to avoid calling the api if the validation fails\n if (value <= 0 || value > this.max || value === undefined || value === null) {\n this.selectedLeaves = 0;\n this.additonalUnused = { years: 0, months: 0 };\n this.additonalUnusedAllowance = 0;\n this.totalUnused = this.withoutUnused;\n this.totalUnusedAllowance = this.withoutUnusedAllowance;\n if (!(value > this.max)) {\n this.saveData();\n }\n this.isCalculating = false;\n } else {\n if (this.rangeArr !== undefined) {\n this.rangeArr.forEach((element: any) => {\n if (value >= element.minDays && value <= element.maxDays) {\n this.selectedMonths = element.svc;\n }\n });\n this.selectedLeaves = value;\n this.additonalUnused = this.estimateService.calculateYearsAndMonths\n (this.selectedMonths, this.prepData.tenMonth);\n }\n this.totalUnusedMonths = this.selectedMonths + this.withoutUnusedMonths + this.projecService;\n this.totalUnused = this.estimateService.calculateYearsAndMonths\n (this.totalUnusedMonths, this.prepData.tenMonth);\n this.estimateService.calculateSLBenefitAmount(this.afc, this.retDate, this.selectedMonths,\n this.projecService, this.ssil, this.reductionFactor, this.uniqueId, this.userDetails)\n .subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.result) {\n this.benefit = data.result.benefit;\n this.benefitDef = data.result.benefitDef;\n this.totalUnusedAllowance = this.benefit;\n this.additonalUnusedAllowance = this.totalUnusedAllowance - this.withoutUnusedAllowance;\n this.reducedInfo = data.result.reducedInfo;\n this.saveData();\n } else if (data.statusCode === 204 && data.message) {\n this.toastService.getCustomErrorMessage(data.message);\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n this.isCalculating = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n this.isCalculating = false;\n });\n }\n }\n\n /**\n * @description\n * Function to save the changes in session\n */\n saveData() {\n this.wizardData.selectedLeaves = this.selectedLeaves;\n this.wizardData.addService = this.additonalUnused;\n this.wizardData.addServiceMonths = this.selectedMonths;\n this.wizardData.addAllowance = this.additonalUnusedAllowance;\n this.wizardData.totalService = this.totalUnused;\n this.wizardData.totalAllowance = this.totalUnusedAllowance;\n this.wizardData.previousScreen = this.previousScreenCode;\n }\n\n /**\n * @description\n * Function to set navigation data in and out\n */\n getNavigationData() {\n this.linkTexts = this.readConfigService.getEstimateLinkTexts();\n this.navigationData = this.wizardService.getNavigation();\n const sickLeaveData = JSON.parse(sessionStorage.getItem('wizardData')).sickLeaveData;\n if (this.navigationData.currentScreen === 1 || sickLeaveData.previousScreen === 1) {\n this.previousTitle = this.linkTexts.Service;\n this.previousScreenCode = 1;\n } else if (this.navigationData.currentScreen === 2 || sickLeaveData.previousScreen === 2) {\n this.previousTitle = this.linkTexts.RetirementDate;\n this.previousScreenCode = 2;\n } else {\n this.previousTitle = this.linkTexts.Salary;\n this.previousScreenCode = 3;\n }\n this.nextTitle = this.linkTexts.SickLeave;\n }\n\n /**\n * @description\n * Function to navigate to the previous page\n */\n previousScreen() {\n this.progressModel.emit({ mode: '0', screen: this.previousScreenCode, reset: false });\n }\n\n /**\n * @description\n * Function to navigate to the next page\n */\n nextScreen() {\n this.navigationData.previousScreen = this.previousScreenCode;\n this.navigationData.currentScreen = 4;\n this.navigationData.nextScreen = 5;\n this.wizardService.setNavigation(this.navigationData);\n this.progressModel.emit({ mode: '1', screen: '5' });\n }\n\n /**\n * @description\n * Function to check if the form is valid\n * @returns boolean\n */\n continue(form: any): boolean {\n if ((this.wizardData.selectedLeaves === undefined) || (this.wizardData.selectedLeaves === null)) {\n return false;\n }\n if (!form.valid) {\n return false;\n }\n if (this.isCalculating) {\n return false;\n }\n return true;\n }\n\n /**\n * @description\n * Function to navigate to the next page\n */\n goToNext() {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n if (this.formData !== null) {\n if (this.formData.sickLeaveData.selectedLeaves === this.wizardData.selectedLeaves) {\n this.dataReset = false;\n } else { this.dataReset = true; }\n if (this.reducedInfo !== undefined) {\n this.commonData.reducedInfo = this.reducedInfo;\n }\n this.wizardService.setCommon(this.commonData);\n this.wizardService.setSickLeave(this.wizardData);\n this.nextScreen();\n }\n }\n}\n","
\n
\n
\n

Your Unused Sick Leave Service Credit

\n
\n
\n
\n {{introduction}}\n
\n
\n
\n Maximum number of unused sick leave days possible for you at your Retirement Date:\n {{max}} days\n \n
\n
\n
\n
\n Enter the number of unused sick leave days that you expect to have at your Retirement Date: \n
\n \n \n
\n
\n
\n
\n \n You can only enter a value between 0 and {{max}} days.\n \n
\n
{{note}}
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
Without Unused
\n
Sick Leave Credit
\n
\n
\n \n \n
\n
Additional Unused
\n
Sick Leave Credit
\n
\n
\n \n \n
\n
Total
\n
\n
Creditable Service{{withoutUnused.years}} Years {{withoutUnused.months}} Months{{additonalUnused.years}} Years {{additonalUnused.months}} Months{{totalUnused.years}} Years {{totalUnused.months}} Months
Monthly Basic Allowance{{withoutUnusedAllowance |currency:'USD'}}{{additonalUnusedAllowance |currency:'USD'}}{{totalUnusedAllowance |currency:'USD'}}
\n
\n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { BenefitEstimateService } from '../../../shared/services/benefit-estimate.service';\nimport { Router } from '@angular/router';\nimport { UserService } from '../../../shared/services/user.service';\nimport { interval } from 'rxjs';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../../../shared/services/toast-message.service';\nimport { take } from 'rxjs/operators';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-monthly-basic-allowance',\n templateUrl: './monthly-basic-allowance.component.html',\n styleUrls: ['./monthly-basic-allowance.component.css']\n})\n\nexport class MonthlyBasicAllowanceComponent implements OnInit {\n introduction: any;\n monthlyBasicConfig: any;\n dataLoading: boolean;\n selectedAccount: any;\n vestingDt: any;\n boxData = [];\n reductionFactor: any;\n showButton = false;\n rules = [];\n orpFlag = '';\n afcInfo = '';\n eligInfo = '';\n creditableInfo = '';\n ebrInfo = '';\n scrollMessage: any;\n constructor(\n private router: Router,\n private userService: UserService,\n private benefitEstimateService: BenefitEstimateService,\n private readConfigService: ReadConfigService,\n private toastService: ToastMessageService) {\n }\n\n ngOnInit() {\n if (sessionStorage.getItem('loadedInfoIcons') === null) {\n this.loadInfoIconsWithDelay(50);\n } else {\n this.loadInfoIcons();\n }\n this.scrollMessage = this.readConfigService.getMobileScrollMessage();\n this.monthlyBasicConfig = this.readConfigService.getMonthlyBasicText();\n this.introduction = this.monthlyBasicConfig.Introduction;\n this.selectedAccount = this.userService.getSelectedAccount();\n this.dataLoading = true;\n const prepdata = this.benefitEstimateService.getEstimatePrepData();\n if (prepdata !== null) {\n const basicAllowance = prepdata;\n this.orpFlag = prepdata.orpFlag;\n this.getBoxDetails(basicAllowance, prepdata.eligMethod);\n }\n window.scrollTo(0, 0);\n this.dataLoading = false;\n }\n\n /**\n * @description\n * Function to get eligibility rules for normal and early retirement\n * @returns eligibilityRules\n */\n loadRules(eligId: any, tenMonth: any, type: any): any {\n let eligibilityRules = [];\n if (this.rules.length > 3) {\n const ele = this.rules[4];\n if (type === 'E' && (ele.min_age > 0) && (ele.min_serv > 0)) {\n eligibilityRules.push('Age ' +\n this.convertYears(ele.min_age, 12) + ' with at least ' +\n this.convertYears(ele.min_serv, tenMonth) +\n ' years of Eligibility Service');\n } else {\n for (const element of this.rules) {\n const minAge = this.convertYears(element.min_age, 12);\n const minServ = this.convertYears(element.min_serv, tenMonth);\n if ((minAge > 0) && (minServ > 0) && (element.typ === 'N')) {\n eligibilityRules.push('Age ' + minAge.toString() + ' with ' + minServ.toString() +\n ' years of Eligibility Service; or');\n }\n }\n }\n if (this.rules[0].elig_serv > 0 && type === 'N') {\n const eligServ = this.convertYears(this.rules[0].elig_serv, tenMonth);\n eligibilityRules.push(eligServ.toString() + ' years of Eligibility Service');\n }\n } else {\n for (const element of this.rules) {\n if (type === element.typ) {\n const minAge = this.convertYears(element.min_age, 12);\n const eligServ = this.convertYears(element.elig_serv, tenMonth);\n const minServ = this.convertYears(element.min_serv, tenMonth);\n if (element.rule90) {\n eligibilityRules.push('Sum of age and years of Eligibility Service equal to 90; or');\n }\n let str = '';\n if (minAge > 0) {\n str = 'Age ' + minAge.toString();\n }\n if ((minAge > 0) && (minServ > 0)) {\n str = str + ' with ' + minServ.toString() + ' years of Eligibility Service';\n }\n if (minServ > 0 && minAge === 0) {\n str = minServ.toString() + ' years of Eligibility Service';\n }\n if (eligServ > 0 && eligServ !== minServ) {\n eligibilityRules.push(str + '; or');\n eligibilityRules.push(eligServ.toString() + ' years of Eligibility Service');\n } else {\n eligibilityRules.push(str);\n }\n }\n }\n }\n if ((eligId === 15 || eligId === 16) || (eligId === 17 && type === 'E')) {\n eligibilityRules = [];\n }\n return eligibilityRules;\n }\n\n /**\n * @description\n * Function to convert months to years\n * @returns years\n */\n convertYears(months: any, tenMonth: any) {\n return this.benefitEstimateService.calculateYearsAndMonths(months, tenMonth).years;\n }\n\n /**\n * @description\n * Function to load box details depending on the show flags\n */\n getBoxDetails(data: any, eligId: any) {\n this.benefitEstimateService.getEligibilityRules(eligId).subscribe((msgData: any) => {\n if (msgData.statusCode === 200) {\n this.rules = msgData.result;\n if (data.showNormal) {\n this.boxData.push({\n showData: true,\n headingText: 'Normal',\n introTxt: this.monthlyBasicConfig.NormalIntro,\n // check orp flag for normal only\n eligibilityTexts: this.orpFlag.toUpperCase() === 'O' ? ['Age ' + data.retAge / 12 + ' years.'] :\n this.loadRules(eligId, data.tenMonth, 'N'),\n retDt: data.normalRetDt,\n retAge: this.benefitEstimateService.calculateYearsAndMonths(data.normalRetAge, 12),\n basicAllow: data.normalBasicAllow,\n afc: data.normalAfc,\n eligibilityCurrent: this.benefitEstimateService.calculateYearsAndMonths(\n data.normalServiceCredit.eligibility.current,\n data.tenMonth),\n eligibilityProjected: this.benefitEstimateService.calculateYearsAndMonths(\n data.normalServiceCredit.eligibility.projected,\n data.tenMonth),\n eligibilityTotals: this.benefitEstimateService.calculateYearsAndMonths(\n (data.normalServiceCredit.eligibility.current +\n data.normalServiceCredit.eligibility.projected),\n data.tenMonth),\n credibilityCurrent: this.benefitEstimateService.calculateYearsAndMonths(\n data.normalServiceCredit.creditable.current,\n data.tenMonth),\n credibilityProjected: this.benefitEstimateService.calculateYearsAndMonths(\n data.normalServiceCredit.creditable.projected,\n data.tenMonth),\n credibilityTotals: this.benefitEstimateService.calculateYearsAndMonths(\n (data.normalServiceCredit.creditable.current +\n data.normalServiceCredit.creditable.projected),\n data.tenMonth)\n });\n }\n if (data.showEarly) {\n this.reductionFactor = (1 - data.earlyRedFactor) * 100;\n this.boxData.push({\n showData: true,\n headingText: 'Early',\n introTxt: this.monthlyBasicConfig.EarlyIntro,\n eligibilityTexts: this.loadRules(eligId, data.tenMonth, 'E'),\n retDt: data.earlyRetDt,\n retAge: this.benefitEstimateService.calculateYearsAndMonths(data.earlyRetAge, 12),\n basicAllow: data.earlyBasicAllow,\n afc: data.earlyAfc,\n eligibilityCurrent: this.benefitEstimateService.calculateYearsAndMonths(\n data.earlyServiceCredit.eligibility.current,\n data.tenMonth),\n eligibilityProjected: this.benefitEstimateService.calculateYearsAndMonths(\n data.earlyServiceCredit.eligibility.projected,\n data.tenMonth),\n eligibilityTotals: this.benefitEstimateService.calculateYearsAndMonths(\n (data.earlyServiceCredit.eligibility.current +\n data.earlyServiceCredit.eligibility.projected),\n data.tenMonth),\n credibilityCurrent: this.benefitEstimateService.calculateYearsAndMonths(\n data.earlyServiceCredit.creditable.current,\n data.tenMonth),\n credibilityProjected: this.benefitEstimateService.calculateYearsAndMonths(\n data.earlyServiceCredit.creditable.projected,\n data.tenMonth),\n credibilityTotals: this.benefitEstimateService.calculateYearsAndMonths(\n (data.earlyServiceCredit.creditable.current +\n data.earlyServiceCredit.creditable.projected),\n data.tenMonth)\n });\n }\n if (data.showVest) {\n if (data.vestingDt !== null) {\n this.boxData.push({\n showData: false,\n headingText: 'Vested',\n introTxt: this.monthlyBasicConfig.VestedIntro,\n vestingYears: this.benefitEstimateService.calculateYearsAndMonths(data.vestMonths,\n data.tenMonth).years,\n vestingDate: data.vestingDt\n });\n } else {\n this.boxData.push({\n showData: true,\n headingText: 'Vested',\n introTxt: this.monthlyBasicConfig.VestedIntro,\n retDt: data.vestRetDt,\n retAge: this.benefitEstimateService.calculateYearsAndMonths(data.vestRetAge, 12),\n basicAllow: data.vestBasicAllow,\n afc: data.vestAfc,\n eligibilityCurrent: this.benefitEstimateService.calculateYearsAndMonths(\n data.vestServiceCredit.eligibility.current,\n data.tenMonth),\n eligibilityProjected: this.benefitEstimateService.calculateYearsAndMonths(\n data.vestServiceCredit.eligibility.projected,\n data.tenMonth),\n eligibilityTotals: this.benefitEstimateService.calculateYearsAndMonths(\n (data.vestServiceCredit.eligibility.current +\n data.vestServiceCredit.eligibility.projected),\n data.tenMonth),\n credibilityCurrent: this.benefitEstimateService.calculateYearsAndMonths(\n data.vestServiceCredit.creditable.current,\n data.tenMonth),\n credibilityProjected: this.benefitEstimateService.calculateYearsAndMonths(\n data.vestServiceCredit.creditable.projected,\n data.tenMonth),\n credibilityTotals: this.benefitEstimateService.calculateYearsAndMonths(\n (data.vestServiceCredit.creditable.current +\n data.vestServiceCredit.creditable.projected),\n data.tenMonth)\n });\n }\n }\n this.setColClass();\n this.dataLoading = false;\n this.showButton = true;\n } else {\n this.toastService.getErrorMessage();\n }\n if (data.showNormal === false && data.showEarly === false && data.showVest === false) {\n this.showButton = false;\n }\n if (!data.normalAfc) {\n this.showButton = false;\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n this.dataLoading = false;\n });\n }\n\n /**\n * @description\n * Function to set the column's class dynamically depending on the number of boxes\n * @returns Object\n */\n setColClass() {\n let rowRetClass = '';\n let tableClass = '';\n let valueClass = '';\n if (this.boxData && this.boxData.length === 1) {\n rowRetClass = 'col s12 m12 l10 push-l1 xl8 push-xl2';\n tableClass = 'col s12 m10 push-m1 l8 push-l2 xl8 push-xl2 remove-default-padding ';\n valueClass = 'display-flex';\n } else if (this.boxData && this.boxData.length === 2) {\n rowRetClass = 'col s12 m12 l6 xl6';\n tableClass = 'col s12 m10 l10 xl10 remove-default-padding ';\n valueClass = 'display-flex';\n } else if (this.boxData && this.boxData.length === 3) {\n rowRetClass = 'col s12 m12 l4 xl4';\n tableClass = 'col s12 m10 push-m1 l12 xl12 remove-default-padding ';\n valueClass = 'display-block';\n }\n return {\n rowRetClass,\n tableClass,\n valueClass\n };\n }\n\n /**\n * @description\n * Function to navigate to the next page\n */\n goToNext() {\n if (this.selectedAccount !== null) {\n if (this.orpFlag === '') {\n this.router.navigate(['/' + this.selectedAccount.role + '/Estimate Benefits/BenefitWizard']);\n } else {\n this.router.navigate(['/' + this.selectedAccount.role + '/Estimate Benefits/BenefitWizard'],\n { queryParams: { orpFlag: this.orpFlag } });\n }\n }\n }\n\n loadInfoIconsWithDelay(timeDelay: any) {\n setTimeout(() => {\n if (sessionStorage.getItem('loadedInfoIcons') === null) {\n this.loadInfoIconsWithDelay(timeDelay);\n } else {\n this.loadInfoIcons();\n }\n }, timeDelay);\n }\n\n loadInfoIcons() {\n const iconInfo = this.userService.getInfoIconValues('Member', 'Estimate Benefits_Monthly Basic allowance');\n if (iconInfo !== null) {\n this.creditableInfo = this.getIconDescription(iconInfo, 'Creditable');\n this.afcInfo = this.getIconDescription(iconInfo, 'Average Final Compensation');\n this.eligInfo = this.getIconDescription(iconInfo, 'Eligibility');\n this.ebrInfo = this.getIconDescription(iconInfo, 'Early Benefit Reduction');\n }\n }\n\n getIconDescription(iconInfo: any, label: any): any {\n const descItem = iconInfo.filter((item: any) => item.label === label)[0];\n return descItem !== undefined ? descItem.description : '';\n }\n}\n","

Monthly Basic Allowance

\n
\n
\n
\n
\n {{introduction}}\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n
\n
{{data.headingText}} Retirement
\n
\n {{data.introTxt}}
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
{{data.headingText}} Retirement
\n
\n
\n {{data.introTxt}}\n
\n
\n
\n
\n Vesting Date: \n {{data.vestingDate | date:'MM/dd/yyyy'}}\n
\n
\n Vesting Requirements:\n
{{data.vestingYears}} years of Eligibility Service
\n
\n
\n
\n
\n
\n
\n Monthly Basic Allowance:\n
\n {{data.basicAllow | currency:'USD'}}\n
\n
\n
\n
\n
\n Retirement Date: \n {{data.retDt | date:'MM/dd/yyyy'}}\n
\n
\n
\n
\n Age at Retirement Date:\n
\n {{data.retAge.years}} Years\n {{data.retAge.months}} Months\n \n
\n
\n
\n
\n
\n
\n
\n
Additional Information
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n Average Final Compensation:\n
\n {{data.afc | currency:'USD'}}\n
\n
\n
\n
\n
\n Service Credit:\n
\n \n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
EligibilityYearsMonths
Current{{data.eligibilityCurrent.years}}{{data.eligibilityCurrent.months}}
Projected{{data.eligibilityProjected.years}}{{data.eligibilityProjected.months}}
Total{{data.eligibilityTotals.years}}{{data.eligibilityTotals.months}}
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
CreditableYearsMonths
Current{{data.credibilityCurrent.years}}{{data.credibilityCurrent.months}}
Projected{{data.credibilityProjected.years}}{{data.credibilityProjected.months}}
Total{{data.credibilityTotals.years}}{{data.credibilityTotals.months}}
\n
\n
\n
\n
0\">\n
\n Eligibility Requirements:\n
\n
\n
{{text}}
\n
\n
\n
\n
\n
\n Early Benefit Reduction:\n {{reductionFactor | number:'1.1-1' }}%\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, ViewChild } from '@angular/core';\nimport { GridComponent, GridDataResult, PageChangeEvent } from '@progress/kendo-angular-grid';\nimport { CompositeFilterDescriptor, SortDescriptor, filterBy, orderBy } from '@progress/kendo-data-query';\nimport { Router } from '@angular/router';\nimport { DocumentService } from '../../../shared/services/document.service';\nimport { UserService } from '../../../shared/services/user.service';\nimport { BenefitEstimateService } from '../../../shared/services/benefit-estimate.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../../../shared/services/toast-message.service';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'app-saved-estimates',\n templateUrl: './saved-estimates.component.html',\n styleUrls: ['./saved-estimates.component.css']\n})\nexport class SavedEstimatesComponent implements OnInit {\n allBenefitEstimates: any;\n account: any;\n private selectedAccount: any;\n public estimateCounts = 0;\n public compareDisabled = true;\n public deleteDisabled = true;\n public opened = false;\n gridLoading: boolean;\n showBtn: boolean;\n @ViewChild(GridComponent) grid: GridComponent;\n public selectedData = new Array();\n public gridData: GridDataResult;\n public filters: CompositeFilterDescriptor;\n public sort: SortDescriptor[] = [{\n field: 'dateofNotice',\n dir: 'desc'\n }];\n public pageSize = 10;\n public skip = 0;\n gridView: any[];\n introduction: any;\n accountId: any;\n showLoadingIcon = false;\n showIneligibiltyText: any;\n config: any;\n buttonText: any;\n userDetails: any;\n scrollMessage: any;\n showAppOutage: any;\n appOutageMessage: any;\n futureOutageMessage: any;\n compareLoader: boolean;\n newAnnuityFactors: any;\n messageBeginDate: any;\n datePipe: DatePipe;\n showActuarialChangesText: boolean;\n messageEndDate: Date;\n\n constructor(\n private documentService: DocumentService,\n private router: Router,\n private userService: UserService,\n private estimateService: BenefitEstimateService,\n private readConfigService: ReadConfigService,\n private toastService: ToastMessageService) { }\n\n ngOnInit() {\n this.userDetails = this.userService.getUserInputData();\n this.config = this.readConfigService.getSavedEstimatesText();\n this.introduction = this.config.Introduction;\n this.newAnnuityFactors = this.config.NewAnnuityOptionFactor;\n this.messageBeginDate = this.config.MessageBeginDate ? new Date(this.config.MessageBeginDate) : null;\n this.messageEndDate = this.config.MessageEndDate ? new Date(this.config.MessageEndDate) : null;\n this.datePipe = new DatePipe('en-US');\n this.account = this.userService.getUserSession();\n this.scrollMessage = this.readConfigService.getMobileScrollMessage();\n this.getButtonStatus();\n this.getEstimateData();\n window.scrollTo(0, 0);\n }\n\n close(status: any) {\n if (status === 'yes') {\n this.showLoadingIcon = true;\n this.deleteEstimates();\n } else {\n this.opened = false;\n }\n }\n\n compare() {\n this.compareLoader = true;\n const data = this.selectedData.join(',');\n this.documentService.compareEstimateLetter(data, this.userDetails).subscribe(() => {\n this.compareLoader = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.compareLoader = false;\n this.toastService.getErrorMessage();\n });\n }\n\n delete() {\n this.opened = true;\n }\n\n viewBenefitEstimateLetter(data: any) {\n this.accountId = this.userService.getMdsAccountId();\n if (this.accountId) {\n this.documentService.generateEstimateLetter(data.eId, this.accountId, this.userDetails).subscribe(() => {\n data.isClicked = !data.isClicked;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n data.isClicked = !data.isClicked;\n this.toastService.getErrorMessage();\n });\n } else {\n data.isClicked = !data.isClicked;\n this.toastService.getErrorMessage();\n }\n }\n\n deleteEstimates() {\n const inputData = {\n eId: this.selectedData,\n transactionLogData: {\n TransactionType: 'DELETE ESTIMATE',\n LoginTime: this.userService.getLastLoginTime()\n },\n user: this.userDetails\n };\n this.estimateService.deleteBenefitEstimates(inputData).subscribe(response => {\n if (response.success) {\n this.getEstimateData();\n this.deleteDisabled = true;\n this.selectedData = [];\n this.opened = false;\n this.showLoadingIcon = false;\n } else if (response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.showLoadingIcon = false;\n this.opened = false;\n this.toastService.getErrorMessage();\n });\n }\n\n getEstimateData() {\n this.gridLoading = true;\n this.compareDisabled = true;\n this.deleteDisabled = true;\n this.selectedAccount = this.userService.getSelectedAccount();\n if (this.selectedAccount !== null) {\n this.estimateService.getAllBenefitEstimates(this.selectedAccount.uniqueId, this.userDetails).subscribe(response => {\n if (response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else if (response.statusCode === 200) {\n if (response.hideFeature) {\n // for app feature outage\n this.showAppOutage = true;\n this.appOutageMessage = response.outageMessage;\n } else {\n this.futureOutageMessage = response.outageMessage;\n this.estimateCounts = response.result.length;\n this.allBenefitEstimates = response.result;\n this.gridView = this.allBenefitEstimates;\n if (this.allBenefitEstimates.length > 0 && this.messageBeginDate) {\n let show = false;\n this.allBenefitEstimates.forEach((element: any) => {\n element.flag = false;\n const retDt = new Date(this.datePipe.transform(element.dateofRetirement, 'MM/dd/yyyy'));\n const cretDt = new Date(this.datePipe.transform(element.dateofNotice, 'MM/dd/yyyy'));\n if (retDt >= this.messageEndDate && cretDt < this.messageBeginDate) {\n show = true;\n element.flag = true;\n }\n });\n this.showActuarialChangesText = show;\n }\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n } else {\n this.toastService.getErrorMessage();\n }\n this.gridLoading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n this.gridLoading = false;\n });\n }\n }\n\n getButtonStatus() {\n if (JSON.parse(sessionStorage.getItem('showVest'))) {\n this.showBtn = true;\n this.introduction = this.introduction;\n this.buttonText = this.config.ShowButton;\n } else {\n this.showBtn = false;\n this.showIneligibiltyText = this.config.HideButton;\n }\n }\n\n pageChange(event: PageChangeEvent): void {\n this.skip = event.skip;\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n\n sortChange(sort: SortDescriptor[]): void {\n this.sort = sort;\n this.gridView = orderBy(this.gridView, this.sort);\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n\n searchGrid(e: any) {\n const options = { year: 'numeric', month: 'numeric', day: 'numeric' } as any;\n const optionswithtime = { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' } as any;\n this.allBenefitEstimates.forEach((data: any) => {\n data.id = data.id.toString();\n data.dateofNotice = new Date(data.dateofNotice).toLocaleString('en-US', optionswithtime);\n data.estmtSource = data.estmtSource.toString();\n data.dateofRetirement = new Date(data.dateofRetirement).toLocaleDateString('en-US', options);\n });\n this.filters = {\n filters: [\n { field: 'id', value: e.target.value, operator: 'contains', ignoreCase: true },\n { field: 'dateofNotice', value: e.target.value, operator: 'contains', ignoreCase: true },\n { field: 'estmtSource', value: e.target.value, operator: 'contains', ignoreCase: true },\n { field: 'dateofRetirement', value: e.target.value, operator: 'contains' },\n { field: 'comments', value: e.target.value, operator: 'contains', ignoreCase: true }\n ], logic: 'or'\n };\n this.gridView = filterBy(this.allBenefitEstimates, this.filters);\n this.skip = 0;\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n\n clickedPage(event: any) {\n this.compareDisabled = true;\n this.deleteDisabled = true;\n if (event.selectedRows.length > 0) {\n this.selectedData.push(event.selectedRows[0].dataItem.eId);\n } else if (event.deselectedRows.length > 0) {\n const index = this.selectedData.indexOf(event.deselectedRows[0].dataItem.eId);\n this.selectedData.splice(index, 1);\n }\n if (this.selectedData.length >= 1) { this.deleteDisabled = false; }\n if (this.selectedData.length >= 2) { this.compareDisabled = false; }\n if (this.selectedData.length > 3) { this.compareDisabled = true; }\n }\n\n showTermsPage() {\n if (this.selectedAccount !== null) {\n this.router.navigate(['/' + this.selectedAccount.role + '/Estimate Benefits/TermsConditions']);\n }\n }\n}\n","

Estimate Benefits

\n
\n
\n
\n
\n \n
\n
\n {{introduction}}\n
\n
\n
\n {{buttonText ? buttonText : ''}}\n
\n
\n
\n {{showIneligibiltyText}}\n
\n
\n
\n \n
\n
\n
\n
\n
\n My Saved Estimates \n {{estimateCounts}}\n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n

Are you sure you want to delete these records?

\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n 0\">\n
\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n \n \n
\n \n
\n
\n
\n \n \n
\n \n
\n \n
\n
\n
\n
\n \n \n
{{dataItem.estmtSource}}
\n
\n
\n \n \n
{{dataItem.dateofNotice | date:'MM/dd/yyyy hh:mm:ss a'}}
\n
\n
\n \n \n
{{dataItem.dateofRetirement | date:'MM/dd/yyyy'}}
\n
\n
\n \n \n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n","import { Component, OnInit, ChangeDetectorRef, DoCheck } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { UserService } from '../../../shared/services/user.service';\nimport { TransactionLog } from '../../../models/transactionlog.model';\nimport { BenefitEstimateService } from '../../../shared/services/benefit-estimate.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../../../shared/services/toast-message.service';\nimport { MysrpsAppService } from '../../../shared/services/mysrps-app.service';\nimport { interval } from 'rxjs';\nimport { takeWhile } from 'rxjs/operators';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-termsconditions',\n templateUrl: './termsconditions.component.html',\n styleUrls: ['./termsconditions.component.css']\n})\nexport class TermsconditionsComponent implements OnInit, DoCheck {\n continueDisabled = true;\n introduction: any;\n disclaimer: any;\n acknowledgement: any;\n transactionLog: any;\n warningsData: any;\n rdValue: any;\n Signature: TransactionLog;\n userName: string;\n selectedAccount: any;\n uniqueId: any;\n dataWarnings: any;\n dataLoading: boolean;\n termsCondConfig: any;\n serverError: boolean;\n transactionType: any;\n userDetails: any;\n introductionP2: any;\n\n constructor(\n private router: Router,\n private userService: UserService,\n private cdRef: ChangeDetectorRef,\n private mysrpsAppService: MysrpsAppService,\n private readConfigService: ReadConfigService,\n private estimateService: BenefitEstimateService,\n private toastService: ToastMessageService) { }\n\n ngDoCheck() {\n this.cdRef.detectChanges();\n }\n\n ngOnInit() {\n this.dataLoading = true;\n this.userDetails = this.userService.getUserInputData();\n this.termsCondConfig = this.readConfigService.getTermsandConditionsText();\n this.introduction = this.termsCondConfig.Introduction;\n this.introductionP2 = this.termsCondConfig.IntroductionP2;\n this.disclaimer = this.termsCondConfig.SignatureDisclaimer;\n this.acknowledgement = this.termsCondConfig.Acknowledgement;\n this.transactionType = this.readConfigService.getTransactionType('CreateEstimate');\n this.selectedAccount = this.userService.getSelectedAccount();\n if (this.selectedAccount !== null) {\n this.uniqueId = this.selectedAccount.uniqueId;\n if (JSON.parse(sessionStorage.getItem('prepDataLoadingFailed')) === null) {\n this.loadPrepData();\n } else if (JSON.parse(sessionStorage.getItem('prepDataLoadingFailed'))) {\n this.dataLoading = false;\n setTimeout(() => {\n this.toastService.getErrorMessage();\n }, 100);\n } else {\n this.getEstimateDataWarnings();\n }\n }\n this.cdRef.detectChanges();\n window.scrollTo(0, 0);\n }\n\n getEstimateDataWarnings() {\n this.estimateService.getAllDataWarnings(this.uniqueId, this.userDetails).subscribe(response => {\n if (response.success) {\n this.dataWarnings = response.result;\n this.warningsData = this.estimateService.getDataWarningsConfig(this.dataWarnings);\n this.setdisplay();\n this.dataLoading = false;\n } else if (response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n this.dataLoading = false;\n });\n }\n\n setdisplay() {\n if (this.warningsData !== undefined && this.warningsData.length === 0) {\n return 'displaynone';\n }\n }\n\n goToSavedEstimates() {\n if (this.selectedAccount !== undefined) {\n this.router.navigate(['/' + this.selectedAccount.role + '/Estimate Benefits/SavedEstimates']);\n }\n }\n\n goToNextPage(signName: any) {\n if (this.selectedAccount !== undefined) {\n const data = {\n TransactionType: this.transactionType,\n SignatureName: signName,\n LogInTime: this.userService.getLastLoginTime()\n };\n const inputData = {\n crmCase: null,\n user: this.userDetails,\n data\n };\n if (this.dataWarnings) {\n if (this.dataWarnings.search(/salary/gi) !== -1 && this.dataWarnings.search(/service/gi) !== -1) {\n inputData.crmCase = {\n caseType: this.readConfigService.getCRMCaseType('AccountAudit'),\n description: this.dataWarnings\n };\n this.mysrpsAppService.createTransactionLog(inputData).subscribe();\n } else if (this.dataWarnings.search(/salary/gi) !== -1) {\n inputData.crmCase = {\n caseType: this.readConfigService.getCRMCaseType('SalaryAudit'),\n description: this.dataWarnings\n };\n this.mysrpsAppService.createTransactionLog(inputData).subscribe();\n } else if (this.dataWarnings.search(/service/gi) !== -1) {\n inputData.crmCase = {\n caseType: this.readConfigService.getCRMCaseType('ServiceAudit'),\n description: this.dataWarnings\n };\n this.mysrpsAppService.createTransactionLog(inputData).subscribe();\n }\n } else {\n this.mysrpsAppService.createTransactionLog(inputData).subscribe();\n }\n this.router.navigate(['/' + this.selectedAccount.role + '/Estimate Benefits/MonthlyBasicAllowance']);\n }\n }\n\n esignResponse(event: any) {\n if (event.btnClicked === 'cancel') {\n this.goToSavedEstimates();\n } else if (event.btnClicked === 'continue') {\n this.goToNextPage(event.signName);\n }\n }\n\n /**\n * @description\n * Function to call predata to check whether the prepdata is in session or not\n * @returns predata\n */\n loadPrepData() {\n let prepdata: any;\n let stopCondition = false;\n interval(10000)\n .pipe(\n takeWhile(i => !stopCondition)\n ).subscribe(i => {\n // This will be called every 10 seconds until `stopCondition` flag is set to true\n prepdata = this.estimateService.getEstimatePrepData();\n if (prepdata !== null && this.selectedAccount !== null) {\n this.getEstimateDataWarnings();\n stopCondition = true;\n }\n });\n }\n}\n\n","

Terms and Conditions

\n
\n
\n
\n
\n
\n
\n Warnings About your Account\n
\n
\n
\n
\n \n
\n
\n {{data.name}}
\n
\n {{data.message}}\n
\n
\n
\n
\n
\n
\n
\n
\n {{introduction}}\n
\n
\n {{introductionP2}}\n
\n
\n
\n
\n
\n Signature\n
\n
\n {{disclaimer}} \n
\n
\n
\n {{acknowledgement}}\n
\n \n
\n
\n
\n
\n
\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-accountbalance',\n templateUrl: './accountbalance.component.html',\n styleUrls: ['./accountbalance.component.css']\n})\nexport class AccountbalanceComponent implements OnInit {\n @Input() MemberInfo: any;\n @Input() IconInfo: any;\n showAdditional: boolean;\n showDeficiency: boolean;\n ecrInfo = '';\n irInfo = '';\n caiInfo = '';\n mandatoryInfo = '';\n additionalInfo = '';\n deficiencyInfo = '';\n constructor() { }\n\n ngOnInit() {\n if (this.MemberInfo !== undefined) {\n this.showAdditional = this.MemberInfo.additionalTotal > 0;\n this.showDeficiency = this.MemberInfo.deficiencyTotal > 0;\n }\n if (this.IconInfo !== undefined && this.IconInfo !== null) {\n this.loadInfoIcons();\n }\n }\n loadInfoIcons() {\n this.ecrInfo = this.getIconDescription('Employee Contribution Rate');\n this.irInfo = this.getIconDescription('Interest Rate');\n this.caiInfo = this.getIconDescription('Contributions and Interest');\n this.mandatoryInfo = this.getIconDescription('Mandatory');\n this.additionalInfo = this.getIconDescription('Additional');\n this.deficiencyInfo = this.getIconDescription('Deficiency');\n }\n getIconDescription(label: any): any {\n const descItem = this.IconInfo.filter((item: any) => item.label === label)[0];\n return descItem !== undefined ? descItem.description : '';\n }\n}\n","
\n
\n
\n
\n Employee Contribution Rate :\n {{MemberInfo.contributionRate}}% {{MemberInfo.crMessage}}\n
\n
\n Interest Rate :\n {{MemberInfo.interestRate}}%\n
\n
\n

Contributions and Interest

\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
ContributionInterestTotal
Mandatory \n {{MemberInfo.mandatoryContribution | currency:'USD'}}{{MemberInfo.mandatoryInterest | currency:'USD'}}{{MemberInfo.mandatoryTotal | currency:'USD'}}
Additional \n {{MemberInfo.additionalContribution | currency:'USD'}}{{MemberInfo.additionalInterest | currency:'USD'}}{{MemberInfo.additionalTotal | currency:'USD'}}
Total{{MemberInfo.totalContribution | currency:'USD'}}{{MemberInfo.totalInterest | currency:'USD'}}{{MemberInfo.totalBalance | currency:'USD'}}
Deficiency \n {{MemberInfo.deficiencyContribution | currency:'USD'}}{{MemberInfo.deficiencyInterest | currency:'USD'}}{{MemberInfo.deficiencyTotal | currency:'USD'}}
\n
\n
\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-generalinfo',\n templateUrl: './generalinfo.component.html',\n styleUrls: ['./generalinfo.component.css']\n})\nexport class GeneralinfoComponent implements OnInit {\n @Input() MemberInfo: any;\n @Input() IconInfo: any;\n isPartTime: boolean;\n isALStatus: boolean;\n isDRStatus: boolean;\n fullTimeEqPercent: any;\n enrollmentDtInfo = '';\n approvedLEDtInfo = '';\n ppeDtInfo = '';\n aaSalaryInfo = '';\n fteSalaryInfo = '';\n ftePercentInfo = '';\n nsrDtInfo = '';\n constructor() { }\n\n ngOnInit() {\n if (this.MemberInfo !== undefined) {\n this.isALStatus = this.MemberInfo.statusCode === 'AL';\n this.isDRStatus = this.MemberInfo.statusCode === 'DR';\n sessionStorage.setItem('droFlag', this.MemberInfo.droFlag);\n this.isPartTime = this.MemberInfo.fullTimeEquivalentSalary > 0 &&\n this.MemberInfo.fullTimeEquivalentSalary !== this.MemberInfo.actualAnnualSalary;\n this.fullTimeEqPercent = this.MemberInfo.fullTimeEquivalentPercent === 0 ?\n 100 : this.MemberInfo.fullTimeEquivalentPercent;\n }\n if (this.IconInfo !== undefined && this.IconInfo !== null) {\n this.loadInfoIcons();\n }\n }\n\n loadInfoIcons() {\n this.enrollmentDtInfo = this.getIconDescription('Enrollment Date');\n this.approvedLEDtInfo = this.getIconDescription('Approved Leave End Date');\n this.ppeDtInfo = this.getIconDescription('Pay Period Ending Date');\n this.nsrDtInfo = this.getIconDescription('Normal Service Retirement Date');\n this.aaSalaryInfo = this.getIconDescription('Actual Annual Salary');\n this.fteSalaryInfo = this.getIconDescription('Full Time Equivalent Salary');\n this.ftePercentInfo = this.getIconDescription('Full Time Equivalent Percent');\n }\n getIconDescription(label: any): any {\n const descItem = this.IconInfo.filter((item: any) => item.label === label)[0];\n return descItem !== undefined ? descItem.description : '';\n }\n}\n","
\n
\n
\n

Important Dates

\n
\n
\n Enrollment Date : {{MemberInfo.enrollmentDate\n | date: 'MM/dd/yyyy'}}\n
\n
\n Approved Leave End Date : {{MemberInfo.lastActiveDate |\n date: 'MM/dd/yyyy'}}\n
\n
\n Normal Service Retirement Date : {{MemberInfo.lastActiveDate |\n date: 'MM/dd/yyyy'}}\n
\n
\n
\n
\n

Last Reported Payroll

\n
\n
\n Pay Period Ending Date :\n {{MemberInfo.lastPayrollDate | date: 'MM/dd/yyyy'}}\n
\n
\n Actual Annual Salary :\n {{MemberInfo.actualAnnualSalary | currency:'USD':'symbol':'1.0-2'}} \n
\n
\n Full Time Equivalent Percent : {{fullTimeEqPercent}}%\n
\n
\n Full Time Equivalent Salary :\n {{MemberInfo.fullTimeEquivalentSalary | currency:'USD':'symbol':'1.0-2'}} \n
\n
\n
\n
\n
\n","import { Component, OnInit, Input } from '@angular/core';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\nimport { Router } from '@angular/router';\nimport { UserService } from '../../../shared/services/user.service';\n\n@Component({\n selector: 'app-servicecredit',\n templateUrl: './servicecredit.component.html',\n styleUrls: ['./servicecredit.component.css']\n})\nexport class ServicecreditComponent implements OnInit {\n @Input() MemberInfo: any;\n @Input() IconInfo: any;\n showTenMonthsLabel: boolean;\n showPriorInfo: boolean;\n membership: any;\n eligibilityYears: any;\n eligibilityMonths: any;\n creditableInfo = '';\n membershipInfo = '';\n purchasedInfo = '';\n militaryInfo = '';\n eligibilityInfo = '';\n priorInfo = '';\n sybInfo = '';\n scrollMessage: any;\n msg = '';\n config: any;\n constructor(\n private route: Router,\n private readConfigService: ReadConfigService,\n private userService: UserService) { }\n\n ngOnInit() {\n this.config = this.readConfigService.getMemeberViewTextFromDB();\n this.msg = this.config.ServiceCreditMsg1 ? this.config.ServiceCreditMsg1.replace('{0}', this.MemberInfo.membershipLabel) : '';\n this.scrollMessage = this.readConfigService.getMobileScrollMessage();\n if (this.MemberInfo !== undefined) {\n this.showTenMonthsLabel = this.MemberInfo.tenMonthFlag === 1;\n if (this.MemberInfo.prior !== undefined && this.MemberInfo.prior !== null) {\n const prior = this.MemberInfo.prior.split('|');\n this.showPriorInfo = parseInt(prior[0], 0) > 0 || parseInt(prior[1], 0) > 0;\n this.membership = this.MemberInfo.membershipLabel === '' ? 'Membership' : '*Membership';\n switch (this.MemberInfo.system) {\n case '1':\n case '2':\n case '2C':\n case '3':\n case '4':\n case '5':\n this.eligibilityYears = this.MemberInfo.totalService.split('|')[0];\n this.eligibilityMonths = this.MemberInfo.totalService.split('|')[1];\n break;\n default:\n this.eligibilityYears = this.MemberInfo.eligibility.split('|')[0];\n this.eligibilityMonths = this.MemberInfo.eligibility.split('|')[1];\n break;\n }\n }\n }\n if (this.IconInfo !== undefined && this.IconInfo !== null) {\n this.loadInfoIcons();\n }\n }\n loadInfoIcons() {\n this.creditableInfo = this.getIconDescription('Creditable');\n this.membershipInfo = this.getIconDescription('Membership');\n this.purchasedInfo = this.getIconDescription('Purchased');\n this.militaryInfo = this.getIconDescription('Military');\n this.eligibilityInfo = this.getIconDescription('Eligibility');\n this.priorInfo = this.getIconDescription('Prior');\n this.sybInfo = this.getIconDescription('Service Year Basis');\n }\n getIconDescription(label: any): any {\n const descItem = this.IconInfo.filter((item: any) => item.label === label)[0];\n return descItem !== undefined ? descItem.description : '';\n }\n\n onEstimateLinkClick() {\n const account = this.userService.getSelectedAccount();\n const role = account ? account.role : '';\n if (role) {\n this.route.navigate(['/' + role + '/Estimate Benefits/SavedEstimates']);\n }\n }\n}","
\n
\n
\n
\n \n Service Year Basis\n \n : 10 Months\n \n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
Creditable YearsMonths
{{membership}} {{MemberInfo.membership.split('|')[0]}} {{MemberInfo.membership.split('|')[1]}}
Purchased \n {{MemberInfo.purchased.split('|')[0]}} {{MemberInfo.purchased.split('|')[1]}}
Military \n {{MemberInfo.military.split('|')[0]}} {{MemberInfo.military.split('|')[1]}}
Prior \n {{MemberInfo.prior.split('|')[0]}} {{MemberInfo.prior.split('|')[1]}}
Total {{MemberInfo.totalService.split('|')[0]}} {{MemberInfo.totalService.split('|')[1]}}
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
YearsMonths
Eligibility \n {{eligibilityYears}} {{eligibilityMonths}}
\n
\n \n
\n
\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MemberService } from '../../shared/services/member.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { UserService } from '../../shared/services/user.service';\nimport { ToastMessageService } from '../../shared/services/toast-message.service';\nimport { Router } from '@angular/router';\nimport { ReadConfigService } from '../../shared/services/read-config.service';\nimport { SetStyleService } from '../../shared/services/set-style.service';\n@Component({\n selector: 'app-viewaccount',\n templateUrl: './viewaccount.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./viewaccount.component.css']\n})\nexport class ViewaccountComponent implements OnInit {\n\n memberInfo: any;\n show: any;\n handbookUrl: any;\n dataLoading = true;\n system: any;\n showHandBook: boolean;\n generalInfoIconValues: any;\n serviceCreditInfoIconValues: any;\n accountBalanceInfoIconValues: any;\n showMessage: boolean;\n showAppOutage: boolean;\n futureOutageMessage: any;\n appOutageMessage: any;\n psbMessage: any;\n constructor(\n private memberService: MemberService,\n private userService: UserService,\n private toastService: ToastMessageService,\n private readConfigService: ReadConfigService,\n private router: Router,\n private setStyleService: SetStyleService) { }\n\n ngOnInit() {\n this.LoadMemberDetails();\n if (sessionStorage.getItem('loadedInfoIcons') === null) {\n this.loadInfoIcons(50);\n } else {\n this.loadInfoIcons(0);\n }\n setTimeout(() => this.setStyleService.setPanelBarStyle('View Account'), 2000);\n }\n\n /**\n * @description\n * Function to load member details\n */\n LoadMemberDetails() {\n const account = this.userService.getSelectedAccount();\n const userDetails = this.userService.getUserInputData();\n if (account !== null) {\n this.memberService.getMemberDetails(account.uniqueId, account.fiscalYear, userDetails).subscribe((data: any) => {\n if (data.statusCode === 200) {\n if (data.hideFeature) {\n this.showAppOutage = true;\n this.appOutageMessage = data.outageMessage;\n this.dataLoading = false;\n } else {\n this.futureOutageMessage = data.outageMessage;\n this.memberInfo = data.result;\n this.show = true;\n const message = this.readConfigService.getVaPsbMessage();\n this.psbMessage = account.role.toLowerCase() === 'active' && message ? message : null;\n this.system = this.memberInfo.system;\n this.showMessage = this.memberInfo.orpFlag !== '' ? this.readConfigService.getOPRText().Message : null;\n this.showHandBook = this.memberInfo.handbook !== '';\n this.handbookUrl = this.readConfigService.getHandbookUrl() + this.memberInfo.handbook;\n this.dataLoading = false;\n }\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n this.dataLoading = false;\n });\n }\n }\n\n loadInfoIcons(timeDelay: any) {\n setTimeout(() => {\n if (sessionStorage.getItem('loadedInfoIcons') === null) {\n this.loadInfoIcons(timeDelay);\n } else {\n this.generalInfoIconValues = this.userService.getInfoIconValues('Member', 'View Account_General Information');\n this.serviceCreditInfoIconValues = this.userService.getInfoIconValues('Member', 'View Account_Service Credit');\n this.accountBalanceInfoIconValues = this.userService.getInfoIconValues('Member', 'View Account_Account Balance');\n }\n }, timeDelay);\n }\n}\n","

View Account

\n
\n
\n \n
\n
\n \n \n \n
\n
\n \n Note: {{showMessage}}\n \n
\n
\n \n \n \n \n \"SRPS\"\n General Information\n \n \n \n \n \n \n \n \n \"SRPS\"\n Service Credit\n \n \n \n \n \n \n \n \n \n \"SRPS\"\n Account Balance\n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n \n
\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\r\nimport { Global } from './shared/global';\r\n\r\n@Injectable()\r\nexport class AppConfigService {\r\n appConfig: any;\r\n darkKeys: any;\r\n outageNoticeDetails: object;\r\n infoIconValues: any;\r\n reqHeader = new HttpHeaders({ 'Content-Type': 'application/json', 'No-Auth': 'True', 'API_Key': 't0Tk8OeRFqhKu1G2DqPW1EI6SkxMAGkd' });\r\n dbConfig: any;\r\n\r\n constructor(private http: HttpClient) { }\r\n\r\n /**\r\n * @description\r\n * This is a loadAppConfig function to return a promise for appConfig.json file\r\n *\r\n */\r\n async loadAppConfig(): Promise {\r\n const data = await this.http.get('./assets/data/appConfig.json', { headers: this.reqHeader })\r\n .toPromise();\r\n this.appConfig = data;\r\n if (this.appConfig.ServerDown) {\r\n this.outageNoticeDetails = this.appConfig.OutageOfflineText;\r\n sessionStorage.setItem('outage', 'true');\r\n }\r\n this.loadConfigSettings().then(\r\n () => { this.loadScheduledMaintenance().then(\r\n () => { },\r\n (err) => console.log(err)\r\n ); },\r\n (err) => console.log(err)\r\n );\r\n }\r\n\r\n /**\r\n * @description\r\n * This is a loadDarkFeatures function\r\n *\r\n */\r\n async loadDarkFeatures(): Promise {\r\n const url = this.appConfig.API_URL + Global.BASE_DARK_FEATURES_ENDPOINT;\r\n const data = await this.http.get(url, { headers: this.reqHeader })\r\n .toPromise();\r\n if (data && data['statusCode'] === 200 && data['result'] && data['result'].length) {\r\n this.darkKeys = data['result'];\r\n this.darkKeys = this.darkKeys.filter((item: any) =>\r\n item.feature.search(/admin/gi) === -1);\r\n sessionStorage.setItem('DFLoaded', 'true');\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n * This is a getScheduledMaintenance function\r\n */\r\n async loadScheduledMaintenance(): Promise {\r\n const url = this.appConfig.API_URL + Global.BASE_GET_SCHEDULED_MAINTANANCE_ENDPOINT;\r\n const data = await this.http.get(url, { headers: this.reqHeader })\r\n .toPromise();\r\n if (data && data['statusCode'] === 200 && data['result'] && data['result'].apps.search(/0/gi) !== -1) {\r\n this.outageNoticeDetails = data['result'];\r\n sessionStorage.setItem('outage', 'true');\r\n } else {\r\n if (!this.appConfig.ServerDown) {\r\n sessionStorage.setItem('outage', 'false');\r\n }\r\n }\r\n this.loadInfoIconValues().then(\r\n () => { },\r\n (err) => console.log(err)\r\n );\r\n this.loadDarkFeatures().then(\r\n () => { },\r\n (err) => console.log(err)\r\n );\r\n }\r\n\r\n /**\r\n * @description\r\n * This is a loadInfoIconValues function\r\n */\r\n async loadInfoIconValues(): Promise {\r\n sessionStorage.removeItem('loadedInfoIcons');\r\n const url = this.appConfig.API_URL + Global.BASE_GET_INFOICON_VALUES_ENDPOINT;\r\n const data = await this.http.get(url, { headers: this.reqHeader })\r\n .toPromise();\r\n if (data && data['statusCode'] === 200) {\r\n this.infoIconValues = data['result'];\r\n sessionStorage.setItem('loadedInfoIcons', 'true');\r\n } else {\r\n sessionStorage.setItem('loadedInfoIcons', 'false');\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n * This is a load config values from db\r\n */\r\n async loadConfigSettings(): Promise {\r\n sessionStorage.removeItem('configSettings');\r\n const url = this.appConfig.API_URL + Global.BASE_GET_CONFIG_ENDPOINT;\r\n const data = await this.http.get(url, { headers: this.reqHeader })\r\n .toPromise();\r\n if (data && data['statusCode'] === 200 && data['result']) {\r\n this.dbConfig = data['result'];\r\n sessionStorage.setItem('configSettings', 'true');\r\n } else {\r\n sessionStorage.setItem('configSettings', 'false');\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n * This is a getConfig function to return appConfig variable value\r\n *\r\n */\r\n getConfig(): any {\r\n return this.appConfig;\r\n }\r\n\r\n /**\r\n * @description\r\n * This is a getScheduledMaintenance function to return outageNoticeDetails Object value\r\n */\r\n getScheduledMaintenance() {\r\n return this.outageNoticeDetails;\r\n }\r\n\r\n /**\r\n * @description\r\n * This is a getInfoIconValues function to return InfoIcon Values.\r\n */\r\n getInfoIconValues() {\r\n return this.infoIconValues;\r\n }\r\n\r\n /**\r\n * @description\r\n * This is a getDbConfigValues function to return config values from db\r\n */\r\n getDbConfigValues(value: any) {\r\n if (this.dbConfig && value) {\r\n const config = this.dbConfig.filter((x: any) => x.setting === value);\r\n if (config) {\r\n return config.reduce((obj: any, item: any) => (obj[item.key] = item.value, obj), {});\r\n }\r\n }\r\n return '';\r\n }\r\n\r\n /**\r\n * @description\r\n * This is a getDarkKeyValue function to return boolean from the key values in dark feature object enabled\r\n *\r\n * @retruns {boolean} for the dark key value\r\n */\r\n getDarkKeyValue(value: string): any {\r\n let canEnable = false;\r\n if (this.darkKeys === undefined) {\r\n return canEnable;\r\n }\r\n this.darkKeys.some((element: any) => {\r\n if (element.feature === value) {\r\n canEnable = element.enabled;\r\n }\r\n });\r\n return canEnable;\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\nimport { HomeComponent } from './home/home.component';\nimport { AuthGuard } from './auth/auth.guard';\nimport { DocumentsComponent } from './documents/documents.component';\nimport { SecureMessagesComponent } from './messages/secure-messages.component';\nimport { ContactUpdateComponent } from './profile/contact-update/contact-update.component';\nimport { SecurityUpdateComponent } from './profile/security-update/security-update.component';\nimport { ForbiddenComponent } from './forbidden/forbidden.component';\nimport { ActivePanelComponent } from './active-panel/active-panel.component';\nimport { ViewaccountComponent } from './active-panel/viewaccount/viewaccount.component';\nimport { BenefitEstimateComponent } from './active-panel/benefit-estimate/benefit-estimate.component';\nimport { SavedEstimatesComponent } from './active-panel/benefit-estimate/saved-estimates/saved-estimates.component';\nimport { TermsconditionsComponent } from './active-panel/benefit-estimate/termsconditions/termsconditions.component';\nimport { MonthlyBasicAllowanceComponent } from './active-panel/benefit-estimate/monthly-basic-allowance/monthly-basic-allowance.component';\nimport { BenefitWizardComponent } from './active-panel/benefit-estimate/benefit-wizard/benefit-wizard.component';\nimport { WizardNavGuard } from './auth/wizard-nav.guard';\nimport { FinalEstimateComponent } from './active-panel/benefit-estimate/benefit-wizard/final-estimate/final-estimate.component';\nimport { AssetVerificationComponent } from './active-panel/asset-verification/asset-verification.component';\nimport { NonActivePanelComponent } from './nonactive-panel/nonactive-panel.component';\nimport { PayeeRetireePanelComponent } from './payeeretiree-panel/payeeretiree-panel.component';\nimport { RetireeViewAccountComponent } from './payeeretiree-panel/retiree-view-account/retiree-view-account.component';\nimport { PaymentHistoryComponent } from './payeeretiree-panel/payment-history/payment-history.component';\nimport { IncomeVerificationComponent } from './payeeretiree-panel/income-verification/income-verification.component';\nimport { TaxWithholdingComponent } from './payeeretiree-panel/tax-withholding/tax-withholding.component';\nimport { PayeeNonRetireePanelComponent } from './payeenonretiree-panel/payeenonretiree-panel.component';\nimport { DropRetireePanelComponent } from './drop-retiree-panel/drop-retiree-panel.component';\nimport { WithdrawnPanelComponent } from './withdrawn-panel/withdrawn-panel.component';\nimport { UserComponent } from './user/user.component';\nimport { SignUpComponent } from './user/sign-up/sign-up.component';\nimport { SignInComponent } from './user/sign-in/sign-in.component';\nimport { ProfileComponent } from './profile/profile.component';\nimport { ChangeUsernameComponent } from './profile/security-update/change-username/change-username.component';\nimport { ChangePasswordComponent } from './profile/security-update/change-password/change-password.component';\nimport { SecurityQuestionsComponent } from './profile/security-update/security-questions/security-questions.component';\nimport { UnactivatedUserComponent } from './user/unactivated-user/unactivated-user.component';\nimport { CallbackComponent } from './callback/callback.component';\nimport { UserExceptionComponent } from './user-exception/user-exception.component';\nimport { BeneficiaryInfoComponent } from './shared/beneficiary-info/beneficiary-info.component';\nimport { ViewBeneComponent } from './shared/beneficiary-info/view-bene/view-bene.component';\nimport { BeneDetailsComponent } from './shared/beneficiary-info/bene-details/bene-details.component';\nimport { BeneFormComponent } from './shared/beneficiary-info/bene-form/bene-form.component';\nimport { BeneNavGuard } from './auth/bene-nav.guard';\nimport { ServiceErrorComponent } from './shared/service-error/service-error.component';\nimport { DirectDepositComponent } from './payeeretiree-panel/direct-deposit/direct-deposit.component';\nimport { DdNavGuard } from './auth/dd-nav.guard';\nimport { TaxNavGuard } from './auth/tax-nav.guard';\nimport { StateTaxWithholdingComponent } from './payeeretiree-panel/state-tax-withholding/state-tax-withholding.component';\nimport { FederalTaxWithholdingComponent } from './payeeretiree-panel/federal-tax-withholding/federal-tax-withholding.component';\n\nconst routes: Routes = [\n { path: 'home', component: HomeComponent, canActivate: [AuthGuard] },\n { path: 'unactivateduser', component: UnactivatedUserComponent },\n { path: 'callback', component: CallbackComponent },\n { path: 'usererror', component: UserExceptionComponent },\n { path: 'documents', component: DocumentsComponent, canActivate: [AuthGuard] },\n { path: 'messages', component: SecureMessagesComponent, canActivate: [AuthGuard] },\n { path: 'forbidden', component: ForbiddenComponent },\n { path: 'serviceerror', component: ServiceErrorComponent, canActivate: [AuthGuard] },\n {\n path: 'profile', component: ProfileComponent, canActivate: [AuthGuard],\n children: [\n { path: '', redirectTo: 'contactinformation', pathMatch: 'full' },\n { path: 'contactinformation', component: ContactUpdateComponent },\n { path: 'securityinformation', component: SecurityUpdateComponent },\n { path: 'securityinformation/changeusername', component: ChangeUsernameComponent },\n { path: 'securityinformation/changepassword', component: ChangePasswordComponent },\n { path: 'securityinformation/securityquestions', component: SecurityQuestionsComponent }\n ]\n },\n {\n path: 'Active', component: ActivePanelComponent,\n canActivate: [AuthGuard], data: { roles: ['Active'] },\n children: [\n { path: '', redirectTo: 'View Account', pathMatch: 'full' },\n { path: 'View Account', component: ViewaccountComponent },\n {\n path: 'Estimate Benefits', component: BenefitEstimateComponent,\n children: [\n { path: '', redirectTo: 'SavedEstimates', pathMatch: 'full' },\n { path: 'SavedEstimates', component: SavedEstimatesComponent },\n { path: 'TermsConditions', component: TermsconditionsComponent },\n { path: 'MonthlyBasicAllowance', component: MonthlyBasicAllowanceComponent },\n { path: 'BenefitWizard', component: BenefitWizardComponent, canDeactivate: [WizardNavGuard] },\n { path: 'SaveCustomEstimate', component: FinalEstimateComponent, canDeactivate: [WizardNavGuard] }\n ]\n },\n { path: 'Asset Verification', component: AssetVerificationComponent },\n {\n path: 'Beneficiary Information', component: BeneficiaryInfoComponent,\n children: [\n { path: '', redirectTo: 'ViewBeneficiary', pathMatch: 'full' },\n { path: 'ViewBeneficiary', component: ViewBeneComponent },\n { path: 'AddBeneficiary', component: BeneDetailsComponent, canDeactivate: [BeneNavGuard] },\n { path: 'BeneficiaryForm', component: BeneFormComponent }\n ]\n }\n ]\n },\n {\n path: 'NonActive', component: NonActivePanelComponent,\n canActivate: [AuthGuard], data: { roles: ['NonActive'] },\n children: [\n { path: '', redirectTo: 'View Account', pathMatch: 'full' },\n { path: 'View Account', component: ViewaccountComponent },\n {\n path: 'Estimate Benefits', component: BenefitEstimateComponent,\n children: [\n { path: '', redirectTo: 'SavedEstimates', pathMatch: 'full' },\n { path: 'SavedEstimates', component: SavedEstimatesComponent },\n { path: 'TermsConditions', component: TermsconditionsComponent },\n { path: 'MonthlyBasicAllowance', component: MonthlyBasicAllowanceComponent },\n { path: 'BenefitWizard', component: BenefitWizardComponent, canDeactivate: [WizardNavGuard] },\n { path: 'SaveCustomEstimate', component: FinalEstimateComponent, canDeactivate: [WizardNavGuard] }\n ]\n },\n { path: 'Asset Verification', component: AssetVerificationComponent },\n {\n path: 'Beneficiary Information', component: BeneficiaryInfoComponent,\n children: [\n { path: '', redirectTo: 'ViewBeneficiary', pathMatch: 'full' },\n { path: 'ViewBeneficiary', component: ViewBeneComponent },\n { path: 'AddBeneficiary', component: BeneDetailsComponent, canDeactivate: [BeneNavGuard] }\n ]\n }\n ]\n },\n {\n path: 'PayeeRetiree', component: PayeeRetireePanelComponent,\n canActivate: [AuthGuard], data: { roles: ['PayeeRetiree'] },\n children: [\n { path: '', redirectTo: 'View Account', pathMatch: 'full' },\n { path: 'View Account', component: RetireeViewAccountComponent },\n { path: 'Payment History', component: PaymentHistoryComponent },\n { path: 'Income Verification', component: IncomeVerificationComponent },\n { path: 'Update Tax Withholding', component: TaxWithholdingComponent, canDeactivate: [TaxNavGuard] },\n { path: 'Update Federal Tax Withholding', component: FederalTaxWithholdingComponent },\n { path: 'Update State Tax Withholding', component: StateTaxWithholdingComponent },\n {\n path: 'Beneficiary Information', component: BeneficiaryInfoComponent,\n children: [\n { path: '', redirectTo: 'ViewBeneficiary', pathMatch: 'full' },\n { path: 'ViewBeneficiary', component: ViewBeneComponent },\n { path: 'AddBeneficiary', component: BeneDetailsComponent, canDeactivate: [BeneNavGuard] }\n ]\n },\n { path: 'Update Direct Deposit', component: DirectDepositComponent, canDeactivate: [DdNavGuard] }\n ]\n },\n {\n path: 'PayeeNonRetiree', component: PayeeNonRetireePanelComponent,\n canActivate: [AuthGuard], data: { roles: ['PayeeNonRetiree'] },\n children: [\n { path: '', redirectTo: 'View Account', pathMatch: 'full' },\n { path: 'View Account', component: RetireeViewAccountComponent },\n { path: 'Payment History', component: PaymentHistoryComponent },\n { path: 'Income Verification', component: IncomeVerificationComponent },\n { path: 'Update Tax Withholding', component: TaxWithholdingComponent, canDeactivate: [TaxNavGuard] },\n { path: 'Update Federal Tax Withholding', component: FederalTaxWithholdingComponent },\n { path: 'Update State Tax Withholding', component: StateTaxWithholdingComponent },\n {\n path: 'Beneficiary Information', component: BeneficiaryInfoComponent,\n children: [\n { path: '', redirectTo: 'ViewBeneficiary', pathMatch: 'full' },\n { path: 'ViewBeneficiary', component: ViewBeneComponent },\n { path: 'AddBeneficiary', component: BeneDetailsComponent, canDeactivate: [BeneNavGuard] }\n ]\n },\n { path: 'Update Direct Deposit', component: DirectDepositComponent, canDeactivate: [DdNavGuard] }\n ]\n },\n {\n path: 'DROPRetiree', component: DropRetireePanelComponent,\n canActivate: [AuthGuard], data: { roles: ['DROPRetiree'] },\n children: [\n { path: '', redirectTo: 'View Account', pathMatch: 'full' },\n { path: 'View Account', component: RetireeViewAccountComponent },\n {\n path: 'Beneficiary Information', component: BeneficiaryInfoComponent,\n children: [\n { path: '', redirectTo: 'ViewBeneficiary', pathMatch: 'full' },\n { path: 'ViewBeneficiary', component: ViewBeneComponent },\n { path: 'AddBeneficiary', component: BeneDetailsComponent, canDeactivate: [BeneNavGuard] }\n ]\n }\n ]\n },\n { path: 'Withdrawn', component: WithdrawnPanelComponent, canActivate: [AuthGuard], data: { roles: ['Withdrawn'] } },\n { path: 'signup', component: UserComponent, children: [{ path: '', component: SignUpComponent }] },\n { path: 'login', component: UserComponent, children: [{ path: '', component: SignInComponent }] },\n { path: '', redirectTo: '/login', pathMatch: 'full' },\n { path: '**', redirectTo: '/login', pathMatch: 'full' }\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes, { relativeLinkResolution: 'legacy' })],\n exports: [RouterModule]\n})\nexport class AppRoutingModule { }\n","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { OutageNoticeComponent } from './outage-notice/outage-notice.component';\r\nimport { OAuthService, AuthConfig } from 'angular-oauth2-oidc';\r\nimport { JwksValidationHandler } from 'angular-oauth2-oidc-jwks';\r\nimport { AppConfigService } from './app-config.service';\r\nimport { Idle } from 'idlejs/dist';\r\nimport { ReadConfigService } from './shared/services/read-config.service';\r\nimport { AppInsightService } from './shared/services/app-insight.service';\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: './app.component.html',\r\n styleUrls: ['./app.component.css']\r\n})\r\nexport class AppComponent implements OnInit {\r\n title = 'app';\r\n loadingIcon: boolean;\r\n showNotification: boolean;\r\n messageBody: string;\r\n googleAnalyticsKey: any;\r\n openLogOut: boolean;\r\n displayTime = '';\r\n displayMsg = '';\r\n timeLeft: any;\r\n totalTime: any;\r\n timer: any;\r\n me: any;\r\n idle: any;\r\n isLoggedIn: any;\r\n staticMsg: any;\r\n config: any;\r\n outageMethodTimeout: number;\r\n constructor(private oauthService: OAuthService,\r\n private appConfig: AppConfigService,\r\n private readConfigService: ReadConfigService,\r\n private router: Router,\r\n private appInsightsService: AppInsightService) {\r\n this.config = this.appConfig.getConfig();\r\n this.googleAnalyticsKey = this.config !== undefined ? this.config.GA_ID : '';\r\n this.outageMethodTimeout = this.config !== undefined ? this.config.OutageMethodTimeout : 1000;\r\n // this.removeCookies();\r\n this.appendGaTrackingCode();\r\n this.verifyScheduledOutage();\r\n }\r\n\r\n ngOnInit() {\r\n this.appInsightsService.logPageView('Home');\r\n this.openLogOut = false;\r\n const idleTimeout = this.readConfigService.getAppIdleTimeout('IdleTimeIntervalInMins');\r\n this.idle = new Idle()\r\n .whenNotInteractive()\r\n .within(idleTimeout)\r\n .do(() => this.logOutConfirm())\r\n .start();\r\n }\r\n\r\n logOutConfirm(): void {\r\n if (!this.oauthService.hasValidAccessToken()) {\r\n return;\r\n }\r\n this.openLogOut = true;\r\n this.timeLeft = this.readConfigService.getAppIdleTimeout('DisplayTimeInSeconds');\r\n this.staticMsg = this.readConfigService.getAppIdleTimeout('DiplayMessage');\r\n this.displayTime = '00:' + this.timeLeft;\r\n this.userTimeOut(this.timeLeft);\r\n }\r\n\r\n userTimeOut(i: any): void {\r\n if (this.openLogOut) {\r\n this.timer = setTimeout(() => {\r\n const minutes = Math.floor(i / 60);\r\n const seconds = i - minutes * 60;\r\n i = i - 1;\r\n this.displayTime = '0' + minutes + ':' + ('0' + seconds).slice(-2);\r\n this.displayMsg = this.staticMsg.replace('{0}', this.displayTime);\r\n if (i === 0) {\r\n this.logout();\r\n } else {\r\n this.userTimeOut(i);\r\n }\r\n }, 1000);\r\n }\r\n }\r\n\r\n logout(): void {\r\n this.logOutClose();\r\n sessionStorage.clear();\r\n sessionStorage.setItem('logout', 'true');\r\n this.router.navigate(['/login']);\r\n }\r\n\r\n logOutClose(): void {\r\n this.timeLeft = -1;\r\n this.openLogOut = false;\r\n }\r\n\r\n private appendGaTrackingCode() {\r\n try {\r\n const gaScript = document.createElement('script');\r\n gaScript.setAttribute('async', 'true');\r\n gaScript.setAttribute('src', `https://www.googletagmanager.com/gtag/js?id=` + this.googleAnalyticsKey);\r\n\r\n const gaScript2 = document.createElement('script');\r\n gaScript2.innerText = `window.dataLayer = window.dataLayer || [];function gtag(){dataLayer.push(arguments);}` +\r\n `gtag(\\'js\\', new Date());gtag(\\'config\\', \\'` + this.googleAnalyticsKey + ` \\');`;\r\n document.documentElement.firstChild.appendChild(gaScript);\r\n document.documentElement.firstChild.appendChild(gaScript2);\r\n } catch (ex) {\r\n console.error('Error appending google analytics');\r\n console.error(ex);\r\n }\r\n }\r\n\r\n verifyScheduledOutage() {\r\n setTimeout(() => {\r\n if (sessionStorage.getItem('outage') === null) {\r\n this.verifyScheduledOutage();\r\n }\r\n if (JSON.parse(sessionStorage.getItem('outage'))) {\r\n this.loadingIcon = true;\r\n const outageDetails = this.readConfigService.getOutageScheduledDetails();\r\n if (outageDetails && outageDetails.showOutage) {\r\n this.router.config = [];\r\n this.router.config.push(\r\n { path: 'outagenotice', component: OutageNoticeComponent },\r\n { path: '', redirectTo: '/outagenotice', pathMatch: 'full' },\r\n { path: '**', redirectTo: '/outagenotice', pathMatch: 'full' }\r\n );\r\n this.router.navigate(['/outagenotice']);\r\n } else {\r\n this.saCallback();\r\n }\r\n this.loadingIcon = false;\r\n } else {\r\n this.saCallback();\r\n }\r\n }, this.outageMethodTimeout);\r\n }\r\n\r\n removeCookies() {\r\n const res = document.cookie;\r\n const multiple = res.split(';');\r\n // tslint:disable-next-line:prefer-for-of\r\n for (let i = 0; i < multiple.length; i++) {\r\n const key = multiple[i].split('=');\r\n document.cookie = key[0] + ' =; expires = Thu, 01 Jan 1970 00:00:00 UTC';\r\n }\r\n }\r\n\r\n saCallback() {\r\n setTimeout(() => {\r\n const saConfig = this.readConfigService.getSAConfig();\r\n if (sessionStorage.getItem('configSettings') !== null && !JSON.parse(sessionStorage.getItem('configSettings'))) {\r\n // redirect to user notification page in case db settings call failed.\r\n this.router.navigate(['/serviceerror']);\r\n return;\r\n }\r\n if (saConfig === '') {\r\n this.saCallback();\r\n return;\r\n }\r\n const authUrl = saConfig !== undefined ? saConfig.AuthUrl : '';\r\n const originUrl = saConfig !== undefined ? saConfig.OriginUrl : '';\r\n const authScope = saConfig !== undefined ? saConfig.AuthScope : '';\r\n const clientInfo = saConfig !== undefined ? saConfig.ClientId : '';\r\n const clientSecret = saConfig !== undefined ? saConfig.ClientSecret : '';\r\n const tokenUrl = saConfig !== undefined ? saConfig.TokenEndPoint : '';\r\n // const jwks = config !== undefined ? config.Jwks : '';\r\n const authConfig: AuthConfig = {\r\n // Url of the Identity Provider\r\n issuer: authUrl,\r\n // URL of the SPA to redirect the user to after login\r\n redirectUri: originUrl,\r\n tokenEndpoint: tokenUrl,\r\n responseType: 'code',\r\n dummyClientSecret: clientSecret,\r\n // URL of the SPA to redirect the user after silent refresh\r\n // silentRefreshRedirectUri: originUrl,\r\n // The SPA's id. The SPA is registerd with this id at the auth-server\r\n clientId: clientInfo,\r\n // set the scope for the permissions the client should request\r\n // The first three are defined by OIDC. The 4th is a usecase-specific one\r\n scope: authScope\r\n // nonceStateSeparator: ';'\r\n // silentRefreshShowIFrame: true,\r\n // showDebugInformation: true\r\n };\r\n\r\n this.oauthService.configure(authConfig);\r\n this.oauthService.tokenValidationHandler = new JwksValidationHandler();\r\n // this.oauthService.loadDiscoveryDocumentAndTryLogin();\r\n if (!this.oauthService.hasValidAccessToken()) {\r\n this.oauthService.loadDiscoveryDocument().then(() => {\r\n this.oauthService.tryLogin({\r\n disableOAuth2StateCheck: true\r\n });\r\n });\r\n }\r\n }, 100);\r\n }\r\n}\r\n","
\n
\n
\n
\n \n \n

\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n","import { BrowserModule } from '@angular/platform-browser';\r\nimport { NgModule, CUSTOM_ELEMENTS_SCHEMA, APP_INITIALIZER } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { LayoutModule } from '@progress/kendo-angular-layout';\r\nimport { InputsModule } from '@progress/kendo-angular-inputs';\r\nimport { TooltipModule } from '@progress/kendo-angular-tooltip';\r\nimport { DropDownsModule } from '@progress/kendo-angular-dropdowns';\r\nimport { DateInputsModule, DatePickerModule } from '@progress/kendo-angular-dateinputs';\r\nimport { DialogsModule } from '@progress/kendo-angular-dialog';\r\nimport { AppComponent } from './app.component';\r\nimport { UserService } from './shared/services/user.service';\r\nimport { MemberService } from './shared/services/member.service';\r\nimport { RetireeService } from './shared/services/retiree.service';\r\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\r\nimport { UserComponent } from './user/user.component';\r\nimport { SignInComponent } from './user/sign-in/sign-in.component';\r\nimport { HomeComponent } from './home/home.component';\r\nimport { SignUpComponent } from './user/sign-up/sign-up.component';\r\nimport { AuthGuard } from './auth/auth.guard';\r\nimport { AuthInterceptor } from './auth/auth.interceptor';\r\nimport { NonActivePanelComponent } from './nonactive-panel/nonactive-panel.component';\r\nimport { ForbiddenComponent } from './forbidden/forbidden.component';\r\nimport { PayeeRetireePanelComponent } from './payeeretiree-panel/payeeretiree-panel.component';\r\nimport { PayeeNonRetireePanelComponent } from './payeenonretiree-panel/payeenonretiree-panel.component';\r\nimport { ActivePanelComponent } from './active-panel/active-panel.component';\r\nimport { ViewaccountComponent } from './active-panel/viewaccount/viewaccount.component';\r\nimport { NavbarComponent } from './shared/navbar/navbar.component';\r\nimport { WithdrawnPanelComponent } from './withdrawn-panel/withdrawn-panel.component';\r\nimport { PanelbarComponent } from './shared/panelbar/panelbar.component';\r\nimport { AppConfigService } from './app-config.service';\r\nimport { GeneralinfoComponent } from './active-panel/viewaccount/generalinfo/generalinfo.component';\r\nimport { ServicecreditComponent } from './active-panel/viewaccount/servicecredit/servicecredit.component';\r\nimport { AccountbalanceComponent } from './active-panel/viewaccount/accountbalance/accountbalance.component';\r\nimport { AccountsummaryComponent } from './shared/accountsummary/accountsummary.component';\r\nimport { RetireeViewAccountComponent } from './payeeretiree-panel/retiree-view-account/retiree-view-account.component';\r\nimport { RetireeBenefitInfoComponent } from './payeeretiree-panel/retiree-view-account/retiree-benefit-info/retiree-benefit-info.component';\r\nimport {\r\n RetireeRetirementInfoComponent\r\n} from './payeeretiree-panel/retiree-view-account/retiree-retirement-info/retiree-retirement-info.component';\r\nimport {\r\n RetireeTaxRecoveryInfoComponent\r\n} from './payeeretiree-panel/retiree-view-account/retiree-tax-recovery-info/retiree-tax-recovery-info.component';\r\nimport { CommonModule } from '@angular/common';\r\nimport { GridModule, ExcelModule } from '@progress/kendo-angular-grid';\r\nimport { DocumentService } from './shared/services/document.service';\r\nimport { DocumentsComponent } from './documents/documents.component';\r\nimport { PsbComponent } from './documents/psb/psb.component';\r\nimport { Ten99RlistComponent } from './documents/ten99r-list/ten99r-list.component';\r\nimport { PaymentHistoryComponent } from './payeeretiree-panel/payment-history/payment-history.component';\r\nimport { ExcelExportModule } from '@progress/kendo-angular-excel-export';\r\nimport { IncomeVerificationComponent } from './payeeretiree-panel/income-verification/income-verification.component';\r\nimport { AssetVerificationComponent } from './active-panel/asset-verification/asset-verification.component';\r\nimport { FooterComponent } from './shared/footer/footer.component';\r\nimport { BenefitEstimateComponent } from './active-panel/benefit-estimate/benefit-estimate.component';\r\nimport { BenefitEstimateService } from './shared/services/benefit-estimate.service';\r\nimport { OtherDocumentsComponent } from './documents/other-documents/other-documents.component';\r\nimport { TermsconditionsComponent } from './active-panel/benefit-estimate/termsconditions/termsconditions.component';\r\nimport { MonthlyBasicAllowanceComponent } from './active-panel/benefit-estimate/monthly-basic-allowance/monthly-basic-allowance.component';\r\nimport { SavedEstimatesComponent } from './active-panel/benefit-estimate/saved-estimates/saved-estimates.component';\r\nimport { BenefitWizardComponent } from './active-panel/benefit-estimate/benefit-wizard/benefit-wizard.component';\r\nimport { BenefitWizardService } from './shared/services/benefit-wizard.service';\r\nimport { ServiceProjectionComponent } from './active-panel/benefit-estimate/benefit-wizard/service-projection/service-projection.component';\r\nimport { MilitaryServiceComponent } from './active-panel/benefit-estimate/benefit-wizard/military-service/military-service.component';\r\nimport { RetirementDateComponent } from './active-panel/benefit-estimate/benefit-wizard/retirement-date/retirement-date.component';\r\nimport { SalaryProjectionComponent } from './active-panel/benefit-estimate/benefit-wizard/salary-projection/salary-projection.component';\r\nimport { SickLeaveComponent } from './active-panel/benefit-estimate/benefit-wizard/sick-leave/sick-leave.component';\r\nimport {\r\n EstimateBeneficiaryComponent\r\n} from './active-panel/benefit-estimate/benefit-wizard/estimate-beneficiary/estimate-beneficiary.component';\r\nimport { FinalEstimateComponent } from './active-panel/benefit-estimate/benefit-wizard/final-estimate/final-estimate.component';\r\nimport { ToastMessageService } from './shared/services/toast-message.service';\r\nimport { BenefitDetailsComponent } from './active-panel/benefit-estimate/benefit-wizard/benefit-details/benefit-details.component';\r\nimport { FinalGridComponent } from './active-panel/benefit-estimate/benefit-wizard/final-grid/final-grid.component';\r\nimport { WizardNavGuard } from './auth/wizard-nav.guard';\r\nimport { DialogBoxComponent } from './shared/dialog-box/dialog-box.component';\r\nimport { SecureMessagesComponent } from './messages/secure-messages.component';\r\nimport { ComposeMessageComponent } from './messages/compose-message/compose-message.component';\r\nimport { MessagesService } from './shared/services/messages.service';\r\nimport { ViewMessageComponent } from './messages/view-message/view-message.component';\r\nimport { ContactUpdateComponent } from './profile/contact-update/contact-update.component';\r\nimport { MessageCountComponent } from './shared/message-count/message-count.component';\r\nimport { FeedbackComponent } from './shared/feedback/feedback.component';\r\nimport { OutageNoticeComponent } from './outage-notice/outage-notice.component';\r\nimport { NotificationComponent } from './shared/notification/notification.component';\r\nimport { MysrpsAppService } from './shared/services/mysrps-app.service';\r\nimport { DropRetireePanelComponent } from './drop-retiree-panel/drop-retiree-panel.component';\r\nimport { OAuthModule } from 'angular-oauth2-oidc';\r\nimport { CallbackComponent } from './callback/callback.component';\r\nimport { UnactivatedUserComponent } from './user/unactivated-user/unactivated-user.component';\r\nimport { UserExceptionComponent } from './user-exception/user-exception.component';\r\nimport { ESignComponent } from './shared/e-sign/e-sign.component';\r\nimport { PhoneComponent } from './profile/contact-update/phone/phone.component';\r\nimport { EmailComponent } from './profile/contact-update/email/email.component';\r\nimport { AddressComponent } from './profile/contact-update/address/address.component';\r\nimport { AddressFormComponent } from './profile/contact-update/address/address-form/address-form.component';\r\nimport { ProfileComponent } from './profile/profile.component';\r\nimport { ChangePasswordComponent } from './profile/security-update/change-password/change-password.component';\r\nimport { SecurityQuestionsComponent } from './profile/security-update/security-questions/security-questions.component';\r\nimport { CommPrefComponent } from './profile/contact-update/comm-pref/comm-pref.component';\r\nimport { SecurityUpdateComponent } from './profile/security-update/security-update.component';\r\nimport { ChangeUsernameComponent } from './profile/security-update/change-username/change-username.component';\r\nimport { PersonalInfoComponent } from './shared/personal-info/personal-info.component';\r\nimport { GoogleAnalyticsService } from './shared/services/google-analytics.service';\r\nimport { TaxWithholdingComponent } from './payeeretiree-panel/tax-withholding/tax-withholding.component';\r\nimport { FederalTaxComponent } from './payeeretiree-panel/tax-withholding/federal-tax/federal-tax.component';\r\nimport { StateTaxComponent } from './payeeretiree-panel/tax-withholding/state-tax/state-tax.component';\r\nimport { TaxSumamryComponent } from './payeeretiree-panel/tax-withholding/tax-sumamry/tax-sumamry.component';\r\nimport { PdfJsViewerModule } from 'ng2-pdfjs-viewer';\r\nimport { AppRoutingModule } from './app-routing.module';\r\nimport { NotificationModule } from '@progress/kendo-angular-notification';\r\nimport { AutoLogoutDialogComponent } from './shared/auto-logout-dialog/auto-logout-dialog.component';\r\nimport { FeatureOutageComponent } from './shared/feature-outage/feature-outage.component';\r\nimport { BeneDetailsComponent } from './shared/beneficiary-info/bene-details/bene-details.component';\r\nimport { BeneFormComponent } from './shared/beneficiary-info/bene-form/bene-form.component';\r\nimport { BeneficiaryInfoComponent } from './shared/beneficiary-info/beneficiary-info.component';\r\nimport { ViewBeneComponent } from './shared/beneficiary-info/view-bene/view-bene.component';\r\nimport { EditBeneComponent } from './shared/beneficiary-info/bene-details/edit-bene/edit-bene.component';\r\nimport { BeneNavGuard } from './auth/bene-nav.guard';\r\nimport { BeneTextComponent } from './shared/beneficiary-info/bene-details/bene-text/bene-text.component';\r\nimport { ServiceErrorComponent } from './shared/service-error/service-error.component';\r\nimport { DirectDepositComponent } from './payeeretiree-panel/direct-deposit/direct-deposit.component';\r\nimport { BankInfoComponent } from './payeeretiree-panel/direct-deposit/bank-info/bank-info.component';\r\nimport { JointAccountComponent } from './payeeretiree-panel/direct-deposit/joint-account/joint-account.component';\r\nimport { DepositSummaryComponent } from './payeeretiree-panel/direct-deposit/deposit-summary/deposit-summary.component';\r\nimport { DdNavGuard } from './auth/dd-nav.guard';\r\nimport { DdUploadComponent } from './payeeretiree-panel/direct-deposit/dd-upload/dd-upload.component';\r\nimport { TaxNavGuard } from './auth/tax-nav.guard';\r\nimport { UploadModule } from '@progress/kendo-angular-upload';\r\nimport { ProgressBarModule } from '@progress/kendo-angular-progressbar';\r\nimport { StateTaxWithholdingComponent } from './payeeretiree-panel/state-tax-withholding/state-tax-withholding.component';\r\nimport { MdStateTaxComponent } from './payeeretiree-panel/state-tax-withholding/md-state-tax/md-state-tax.component';\r\nimport { MdTaxSummaryComponent } from './payeeretiree-panel/state-tax-withholding/md-tax-summary/md-tax-summary.component';\r\nimport { FederalTaxWithholdingComponent } from './payeeretiree-panel/federal-tax-withholding/federal-tax-withholding.component';\r\nimport { CreditComponent } from './payeeretiree-panel/federal-tax-withholding/credit/credit.component';\r\nimport { OptionalComponent } from './payeeretiree-panel/federal-tax-withholding/optional/optional.component';\r\nimport { WithholdOrNotComponent } from './payeeretiree-panel/federal-tax-withholding/withhold-or-not/withhold-or-not.component';\r\nimport { IncomesComponent } from './payeeretiree-panel/federal-tax-withholding/incomes/incomes.component';\r\nimport { MaritalStatusComponent } from './payeeretiree-panel/federal-tax-withholding/marital-status/marital-status.component';\r\nimport { ShowFormComponent } from './payeeretiree-panel/federal-tax-withholding/show-form/show-form.component';\r\nimport { SummaryComponent } from './payeeretiree-panel/federal-tax-withholding/summary/summary.component';\r\nimport { AppInsightService } from './shared/services/app-insight.service';\r\nimport { SetStyleService } from './shared/services/set-style.service';\r\nconst appInitializerFn = (appConfig: AppConfigService) => {\r\n return () => {\r\n return appConfig.loadAppConfig();\r\n };\r\n};\r\n\r\n@NgModule({\r\n declarations: [\r\n AppComponent,\r\n SignUpComponent,\r\n UserComponent,\r\n SignInComponent,\r\n HomeComponent,\r\n NonActivePanelComponent,\r\n ForbiddenComponent,\r\n PayeeRetireePanelComponent,\r\n PayeeNonRetireePanelComponent,\r\n ActivePanelComponent,\r\n ViewaccountComponent,\r\n NavbarComponent,\r\n WithdrawnPanelComponent,\r\n PanelbarComponent,\r\n GeneralinfoComponent,\r\n ServicecreditComponent,\r\n AccountbalanceComponent,\r\n AccountsummaryComponent,\r\n RetireeViewAccountComponent,\r\n RetireeBenefitInfoComponent,\r\n RetireeRetirementInfoComponent,\r\n RetireeTaxRecoveryInfoComponent,\r\n DocumentsComponent,\r\n PsbComponent,\r\n Ten99RlistComponent,\r\n PaymentHistoryComponent,\r\n IncomeVerificationComponent,\r\n AssetVerificationComponent,\r\n FooterComponent,\r\n BenefitEstimateComponent,\r\n OtherDocumentsComponent,\r\n TermsconditionsComponent,\r\n MonthlyBasicAllowanceComponent,\r\n SavedEstimatesComponent,\r\n MilitaryServiceComponent,\r\n BenefitWizardComponent,\r\n ServiceProjectionComponent,\r\n RetirementDateComponent,\r\n SalaryProjectionComponent,\r\n SickLeaveComponent,\r\n EstimateBeneficiaryComponent,\r\n FinalEstimateComponent,\r\n BenefitDetailsComponent,\r\n FinalGridComponent,\r\n DialogBoxComponent,\r\n SecureMessagesComponent,\r\n ComposeMessageComponent,\r\n ViewMessageComponent,\r\n ContactUpdateComponent,\r\n MessageCountComponent,\r\n FeedbackComponent,\r\n OutageNoticeComponent,\r\n NotificationComponent,\r\n DropRetireePanelComponent,\r\n ESignComponent,\r\n CallbackComponent,\r\n UnactivatedUserComponent,\r\n UserExceptionComponent,\r\n PhoneComponent,\r\n EmailComponent,\r\n AddressComponent,\r\n AddressFormComponent,\r\n ChangePasswordComponent,\r\n SecurityQuestionsComponent,\r\n ProfileComponent,\r\n CommPrefComponent,\r\n SecurityUpdateComponent,\r\n ChangeUsernameComponent,\r\n PersonalInfoComponent,\r\n TaxWithholdingComponent,\r\n FederalTaxComponent,\r\n StateTaxComponent,\r\n TaxSumamryComponent,\r\n AutoLogoutDialogComponent,\r\n FeatureOutageComponent,\r\n BeneDetailsComponent,\r\n BeneFormComponent,\r\n BeneficiaryInfoComponent,\r\n ViewBeneComponent,\r\n EditBeneComponent,\r\n BeneTextComponent,\r\n ServiceErrorComponent,\r\n DirectDepositComponent,\r\n BankInfoComponent,\r\n JointAccountComponent,\r\n DepositSummaryComponent,\r\n DdUploadComponent,\r\n StateTaxWithholdingComponent,\r\n MdStateTaxComponent,\r\n MdTaxSummaryComponent,\r\n FederalTaxWithholdingComponent,\r\n WithholdOrNotComponent,\r\n CreditComponent,\r\n IncomesComponent,\r\n OptionalComponent,\r\n MaritalStatusComponent,\r\n ShowFormComponent,\r\n SummaryComponent\r\n ],\r\n imports: [\r\n AppRoutingModule,\r\n BrowserModule,\r\n CommonModule,\r\n FormsModule,\r\n DateInputsModule,\r\n DatePickerModule,\r\n OAuthModule.forRoot(),\r\n HttpClientModule,\r\n BrowserAnimationsModule,\r\n LayoutModule,\r\n InputsModule,\r\n TooltipModule,\r\n DropDownsModule,\r\n GridModule,\r\n ExcelModule,\r\n DialogsModule,\r\n ExcelExportModule,\r\n PdfJsViewerModule,\r\n NotificationModule,\r\n UploadModule,\r\n ProgressBarModule\r\n ],\r\n providers: [\r\n AppConfigService,\r\n UserService,\r\n MemberService,\r\n RetireeService,\r\n BenefitEstimateService,\r\n AuthGuard,\r\n DocumentService,\r\n BenefitWizardService,\r\n ToastMessageService,\r\n WizardNavGuard,\r\n MessagesService,\r\n MysrpsAppService,\r\n GoogleAnalyticsService,\r\n AppInsightService,\r\n SetStyleService,\r\n BeneNavGuard,\r\n TaxNavGuard,\r\n DdNavGuard,\r\n {\r\n provide: 'Window',\r\n useValue: window\r\n },\r\n {\r\n provide: HTTP_INTERCEPTORS,\r\n useClass: AuthInterceptor,\r\n multi: true\r\n }, {\r\n provide: APP_INITIALIZER,\r\n useFactory: appInitializerFn,\r\n multi: true,\r\n deps: [\r\n AppConfigService\r\n ]\r\n }\r\n ],\r\n bootstrap: [\r\n AppComponent\r\n ],\r\n schemas: [\r\n CUSTOM_ELEMENTS_SCHEMA\r\n ]\r\n})\r\nexport class AppModule { }\r\n","import { Injectable } from '@angular/core';\nimport { CanActivate, ActivatedRouteSnapshot, Router } from '@angular/router';\nimport { UserService } from '../shared/services/user.service';\nimport { OutageNoticeComponent } from '../outage-notice/outage-notice.component';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { ReadConfigService } from '../shared/services/read-config.service';\n\n@Injectable()\nexport class AuthGuard implements CanActivate {\n constructor(private router: Router,\n private userService: UserService,\n private readConfigService: ReadConfigService,\n private oauthService: OAuthService) { }\n canActivate(next: ActivatedRouteSnapshot): boolean {\n const outageDetails = this.readConfigService.getOutageScheduledDetails();\n if (outageDetails && outageDetails.showOutage) {\n this.router.config = [];\n this.router.config.push(\n { path: 'outagenotice', component: OutageNoticeComponent },\n { path: '', redirectTo: '/outagenotice', pathMatch: 'full' },\n { path: '**', redirectTo: '/outagenotice', pathMatch: 'full' }\n );\n this.router.navigate(['/outagenotice']);\n return false;\n }\n if (sessionStorage.getItem('access_token') != null) {\n if (this.oauthService.hasValidAccessToken()) {\n const roles = next.data.roles as Array;\n if (roles) {\n const match = this.userService.roleMatch(roles);\n if (match) {\n return true;\n } else {\n this.router.navigate(['/forbidden']);\n return false;\n }\n } else {\n return true;\n }\n } else {\n console.log('Invalid token, redirecting to error page from authguard');\n }\n } else {\n console.log('Access token missing, redirecting to error page from authguard');\n }\n this.router.navigateByUrl('/usererror');\n return false;\n }\n}\n","import { HttpInterceptor, HttpRequest, HttpHandler, HttpEvent, HttpErrorResponse, HttpResponse } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { Injectable } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { tap } from 'rxjs/operators';\nimport { AppConfigService } from '../app-config.service';\nimport { DialogService } from '@progress/kendo-angular-dialog';\nimport { AutoLogoutDialogComponent } from '../shared/auto-logout-dialog/auto-logout-dialog.component';\nimport { OutageNoticeComponent } from '../outage-notice/outage-notice.component';\n\n@Injectable()\nexport class AuthInterceptor implements HttpInterceptor {\n\n constructor(\n private router: Router,\n private appConfig: AppConfigService,\n private dialogService: DialogService) { }\n\n private dialog: any;\n\n intercept(req: HttpRequest, next: HttpHandler): Observable> {\n const userToken = sessionStorage.getItem('access_token');\n const config = this.appConfig.getConfig();\n const loginTime: any = sessionStorage.getItem('logInTime') ?\n new Date(sessionStorage.getItem('logInTime')) : null;\n const currentTime: any = new Date();\n const outageDetails: any = this.appConfig.getScheduledMaintenance();\n // compare current time to schedule maintenance time to redirect to outage\n if (outageDetails && outageDetails.startDt && outageDetails.endDt && outageDetails.maintenanceFlag) {\n const dayLightFlag = outageDetails.isDayLightOn != null && outageDetails.isDayLightOn != '' ? outageDetails.isDayLightOn : false;\n const timeOffset = dayLightFlag ? -4 : -5;\n const stDate = new Date(outageDetails.startDt);\n const utc = stDate.getTime() + (stDate.getTimezoneOffset() * 60000);\n const startDt: any = new Date(utc + (3600000 * timeOffset));\n const enDate = new Date(outageDetails.endDt);\n const utc1 = enDate.getTime() + (enDate.getTimezoneOffset() * 60000);\n const endDt: any = new Date(utc1 + (3600000 * timeOffset));\n if (startDt <= currentTime && endDt > currentTime) {\n if (this.dialog) {\n this.dialog.close();\n }\n this.dialog = this.dialogService.open({\n content: AutoLogoutDialogComponent\n });\n const message = this.dialog.content.instance;\n message.interseptorText = config.OutageText.LogoutUserDuringOutage;\n setTimeout(() => {\n this.dialog.close();\n sessionStorage.clear();\n this.router.config = [];\n this.router.config.push(\n { path: 'outagenotice', component: OutageNoticeComponent },\n { path: '', redirectTo: '/outagenotice', pathMatch: 'full' },\n { path: '**', redirectTo: '/outagenotice', pathMatch: 'full' }\n );\n this.router.navigate(['/outagenotice']);\n }, 5000);\n }\n }\n if (req.headers.get('No-Auth') === 'True' || req.url.indexOf('.well-known') > 0 || req.url.indexOf('secureauth') > 0) {\n return next.handle(req.clone());\n }\n // compare user login time to current time to redirect to login page\n if (loginTime !== null && currentTime - loginTime >\n config.AppIdleTimeout.RedirectToLoginInMins * 60000) {\n if (this.dialog) {\n this.dialog.close();\n }\n this.dialog = this.dialogService.open({\n content: AutoLogoutDialogComponent\n });\n const message = this.dialog.content.instance;\n message.interseptorText = config.AppIdleTimeout.RedirectToLoginMessage;\n setTimeout(() => {\n this.dialog.close();\n sessionStorage.clear();\n this.router.navigateByUrl('/');\n }, 5000);\n } else if (userToken != null && userToken !== undefined) {\n const clonedreq = req.clone({\n headers: req.headers.set('Authorization', 'Bearer ' + userToken).set('Pragma', 'no-cache')\n });\n return next.handle(clonedreq)\n .pipe(tap(\n succ => { },\n err => {\n if (err instanceof HttpErrorResponse) {\n switch (err.status) {\n // service error\n case 400:\n this.router.navigate(['/serviceerror']);\n break;\n // forbidden\n case 401:\n this.router.navigate(['/forbidden'], { queryParams: { error: 401 } });\n break;\n // unauthorized\n case 403:\n this.router.navigateByUrl('/forbidden');\n break;\n }\n }\n }\n ));\n } else {\n console.log('access token missing, redirecting to error page from auth interceptor.');\n this.router.navigateByUrl('/usererror');\n }\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { CanDeactivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\r\nimport { Observable, of } from 'rxjs';\r\nimport { DialogCloseResult, DialogService } from '@progress/kendo-angular-dialog';\r\nimport { map } from 'rxjs/operators';\r\nimport { BeneDetailsComponent } from '../shared/beneficiary-info/bene-details/bene-details.component';\r\n\r\n@Injectable()\r\nexport class BeneNavGuard implements CanDeactivate {\r\n constructor(private dialogService: DialogService) { }\r\n canDeactivate(\r\n component: BeneDetailsComponent,\r\n currentRoute: ActivatedRouteSnapshot,\r\n currentState: RouterStateSnapshot,\r\n nextState?: RouterStateSnapshot\r\n ): Observable {\r\n const sessionData: any = sessionStorage.getItem('userAccounts');\r\n if (!component.showContainer || !component.changeDetected || !sessionData) {\r\n return of(true);\r\n } else {\r\n return this.dialogService\r\n .open({\r\n title: 'Please confirm',\r\n content: 'If you leave this page, all of your changes from this session will be lost.',\r\n appendTo: component.container,\r\n actions: [\r\n { text: 'Leave', primary: true },\r\n { text: 'Stay' }\r\n ],\r\n width: 450,\r\n minWidth: 250\r\n })\r\n .result\r\n .pipe(map((option: any) => {\r\n if (option instanceof DialogCloseResult || option.text === 'Stay') {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }));\r\n }\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, CanDeactivate } from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { DirectDepositComponent } from '../payeeretiree-panel/direct-deposit/direct-deposit.component';\nimport { DialogService, DialogCloseResult } from '@progress/kendo-angular-dialog';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\n\nexport class DdNavGuard implements CanDeactivate {\n constructor(private dialogService: DialogService) { }\n canDeactivate(\n component: DirectDepositComponent,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot\n ): Observable {\n const sessionData: any = sessionStorage.getItem('userAccounts');\n if (!component.changeDetected || !sessionData) {\n return of(true);\n } else {\n return this.dialogService\n .open({\n title: 'Please confirm',\n content: 'If you leave this page, all of your changes from this session will be lost.',\n appendTo: component.container,\n actions: [\n { text: 'Leave', primary: true },\n { text: 'Stay' }\n ],\n width: 450,\n minWidth: 250\n })\n .result\n .pipe(map((option: any) => {\n if (option instanceof DialogCloseResult || option.text === 'Stay') {\n const panel = document.getElementById('account-nav');\n const panelChildNodes = Array.from(panel.querySelectorAll('kendo-panelbar-item'));\n const ddPanel = panelChildNodes.find(x => x.textContent && x.textContent.trim() === 'Update Direct Deposit');\n const next = nextState.url.split('/')[2];\n const nextPanel = panelChildNodes.find(x => x.textContent && x.textContent.trim() === next.replace(/%20/g, ' '));\n if (ddPanel) {\n const selectElement = ddPanel.querySelector('.k-header');\n const objHtmlElement = (selectElement as HTMLElement);\n objHtmlElement.classList.add('k-state-selected');\n }\n if (nextPanel) {\n const selectElement = nextPanel.querySelector('.k-header');\n const objHtmlElement = (selectElement as HTMLElement);\n objHtmlElement.classList.remove('k-state-selected');\n }\n return false;\n } else {\n return true;\n }\n }));\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRouteSnapshot, RouterStateSnapshot, CanDeactivate } from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { TaxWithholdingComponent } from '../payeeretiree-panel/tax-withholding/tax-withholding.component';\nimport { DialogService, DialogCloseResult } from '@progress/kendo-angular-dialog';\nimport { map } from 'rxjs/operators';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TaxNavGuard implements CanDeactivate {\n constructor(private dialogService: DialogService) { }\n canDeactivate(\n component: TaxWithholdingComponent,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot\n ): Observable {\n const sessionData: any = sessionStorage.getItem('userAccounts');\n if (!component.changeDetected || !sessionData) {\n return of(true);\n } else {\n return this.dialogService\n .open({\n title: 'Please confirm',\n content: 'If you leave this page, all of your changes from this session will be lost.',\n appendTo: component.container,\n actions: [\n { text: 'Leave', primary: true },\n { text: 'Stay' }\n ],\n width: 450,\n minWidth: 250\n })\n .result\n .pipe(map((option: any) => {\n if (option instanceof DialogCloseResult || option.text === 'Stay') {\n const panel = document.getElementById('account-nav');\n const panelChildNodes = Array.from(panel.querySelectorAll('kendo-panelbar-item'));\n const taxPanel = panelChildNodes.find(x => x.textContent && x.textContent.trim() === 'Update Tax Withholding');\n const next = nextState.url.split('/')[2];\n const nextPanel = panelChildNodes.find(x => x.textContent && x.textContent.trim() === next.replace(/%20/g, ' '));\n if (taxPanel) {\n const selectElement = taxPanel.querySelector('.k-header');\n const objHtmlElement = (selectElement as HTMLElement);\n objHtmlElement.classList.add('k-state-selected');\n }\n if (nextPanel) {\n const selectElement = nextPanel.querySelector('.k-header');\n const objHtmlElement = (selectElement as HTMLElement);\n objHtmlElement.classList.remove('k-state-selected');\n }\n return false;\n } else {\n return true;\n }\n }));\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { CanDeactivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';\nimport { Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { DialogService, DialogCloseResult } from '@progress/kendo-angular-dialog';\nimport { BenefitWizardComponent } from '../active-panel/benefit-estimate/benefit-wizard/benefit-wizard.component';\n\n@Injectable()\nexport class WizardNavGuard implements CanDeactivate {\n constructor(private dialogService: DialogService) { }\n canDeactivate(\n component: BenefitWizardComponent,\n currentRoute: ActivatedRouteSnapshot,\n currentState: RouterStateSnapshot,\n nextState?: RouterStateSnapshot\n ): Observable {\n const customEstimate: any = JSON.parse((sessionStorage.getItem('customEstimate')));\n const wizardData: any = JSON.parse((sessionStorage.getItem('wizardData')));\n const nextPage: any = nextState ? nextState.url.toString().split('/')[3] : null;\n if (customEstimate && nextPage !== 'SaveCustomEstimate') {\n sessionStorage.removeItem('customEstimate');\n }\n if (wizardData !== undefined && wizardData !== null && !(wizardData.militaryData.startWizard)) {\n return of(true);\n } else if (wizardData === null) {\n return of(true);\n } else {\n return this.dialogService\n .open({\n title: 'Please confirm',\n content: 'If you leave the wizard, all your wizard data from this session will be lost.',\n appendTo: component.container,\n actions: [\n { text: 'Leave', primary: true },\n { text: 'Stay' }\n ],\n width: 450,\n minWidth: 250\n })\n .result\n .pipe(map((option: any) => {\n if (option instanceof DialogCloseResult || option.text === 'Stay') {\n return false;\n } else if (nextState.url === '/login') {\n sessionStorage.clear();\n }\n sessionStorage.removeItem('wizardData');\n return true;\n }));\n }\n }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { OAuthService } from 'angular-oauth2-oidc';\nimport { AppConfigService } from '../app-config.service';\n\n@Component({\n selector: 'app-callback',\n templateUrl: './callback.component.html',\n styleUrls: ['./callback.component.css']\n})\nexport class CallbackComponent implements OnInit {\n loadingIcon: boolean;\n accesToken: any;\n idToken: any;\n iCounter: any;\n maxCounter = 6;\n initialTimeout = 2000;\n maxCounterTimeout = 1500;\n constructor(\n private appConfig: AppConfigService,\n private router: Router,\n private oauthService: OAuthService) {\n const config = this.appConfig.getConfig() ? this.appConfig.getConfig().CallbackSettings : null;\n if (config) {\n this.maxCounter = config.MaxCounter;\n this.initialTimeout = config.InitialTimeout;\n this.maxCounterTimeout = config.MaxCounterTimeout;\n }\n }\n\n ngOnInit() {\n this.loadingIcon = true;\n const url = window.location.href;\n const params = this.getAllUrlParams(url);\n this.iCounter = 0;\n if (params && params.length > 0) {\n setTimeout(() => {\n this.isNotAuthorized();\n }, this.initialTimeout);\n }\n }\n\n isNotAuthorized(): any {\n if (this.iCounter === this.maxCounter) {\n this.router.navigateByUrl('/usererror');\n return;\n }\n this.iCounter++;\n setTimeout(() => {\n this.accesToken = this.oauthService.getAccessToken();\n this.idToken = this.oauthService.getIdToken();\n if (sessionStorage.getItem('access_token') === null) {\n if (this.accesToken !== null && this.accesToken !== undefined) {\n sessionStorage.setItem('access_token', this.accesToken);\n sessionStorage.setItem('id_token', this.idToken);\n this.goToHome();\n } else {\n this.isNotAuthorized();\n }\n } else {\n this.goToHome();\n }\n }, this.maxCounterTimeout);\n }\n\n goToHome(): void {\n this.loadingIcon = false;\n this.iCounter = 0;\n this.router.navigate(['/home']);\n }\n\n getAllUrlParams(url: any): any {\n // get query string from url (optional) or window\n const queryString = url.split('?')[1];\n // we'll store the parameters here\n const obj = {};\n // if query string exists\n if (queryString) {\n // split our query string into its component parts\n const arr = queryString.split('&');\n return arr;\n }\n return obj;\n }\n}\n","
\n","import { Component, OnInit } from '@angular/core';\nimport { DocumentService } from '../shared/services/document.service';\nimport { UserService } from '../shared/services/user.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../shared/services/toast-message.service';\nimport { ReadConfigService } from '../shared/services/read-config.service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-documents',\n templateUrl: './documents.component.html',\n styleUrls: ['./documents.component.css']\n})\n\nexport class DocumentsComponent implements OnInit {\n public docTypeLinks: Array;\n isTen99Doc: any;\n myDocs: any[];\n dataLoading: boolean;\n note: any;\n noDocsMsg: any;\n types: any;\n showAppOutage: boolean;\n appOutageMessage: any;\n futureOutageMessage: any;\n showMyDocs = false;\n userDetails: any;\n config: any;\n\n constructor(private documentService: DocumentService,\n private userService: UserService,\n private router: Router,\n private readConfigService: ReadConfigService,\n private toastService: ToastMessageService) { }\n\n ngOnInit() {\n window.scrollTo(0, 0);\n this.userDetails = this.userService.getUserInputData();\n this.config = this.readConfigService.getDocumentsText();\n this.loadLinks();\n this.loadMyDocuments();\n }\n\n /**\n * @description\n * Function to load document type components\n */\n loadLinks() {\n this.documentService.getDocumentTypes(this.userDetails).subscribe((data: any) => {\n if (data.statusCode === 200) {\n if (data.hideFeature) {\n // for app feature outage\n this.showAppOutage = true;\n this.appOutageMessage = data.outageMessage;\n } else {\n this.futureOutageMessage = data.outageMessage;\n this.note = this.config.Note;\n this.types = this.config.DocTypes;\n this.docTypeLinks = data.result;\n this.isTen99Doc = this.docTypeLinks.indexOf(this.types['2']) !== -1;\n }\n } else {\n this.toastService.getErrorMessage();\n }\n }, (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n });\n }\n\n /**\n * @description\n * Function to load all other documents\n */\n loadMyDocuments() {\n const mdsAccountId = this.userService.getMdsAccountId();\n if (mdsAccountId) {\n this.documentService.getMyDocuments(mdsAccountId, this.userDetails).subscribe((data: any) => {\n if (data.StatusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.showMyDocs = data.length > 0;\n this.myDocs = data;\n if (!this.showMyDocs) {\n setTimeout(() => {\n this.noDocsMsg = this.config.NoDocuments;\n }, 300);\n }\n }\n this.dataLoading = false;\n }, (err: HttpErrorResponse) => {\n console.log(err);\n this.dataLoading = false;\n this.toastService.getErrorMessage();\n });\n } else {\n this.dataLoading = false;\n this.toastService.getErrorMessage();\n }\n }\n}\n","\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n \n {{note}}\n \n \n {{noDocsMsg}}\n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n

Documents

\n \n
\n
\n","import { AfterViewChecked, Component, OnInit, Input } from '@angular/core';\nimport { UserService } from '../../shared/services/user.service';\nimport { DocumentService } from '../../shared/services/document.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { CompositeFilterDescriptor, SortDescriptor, filterBy, orderBy } from '@progress/kendo-data-query';\nimport { PageChangeEvent, GridDataResult } from '@progress/kendo-angular-grid';\nimport { ToastMessageService } from '../../shared/services/toast-message.service';\nimport { GoogleAnalyticsService } from '../../shared/services/google-analytics.service';\n\n@Component({\n selector: 'app-other-documents',\n templateUrl: './other-documents.component.html',\n styleUrls: ['./other-documents.component.css']\n})\n\nexport class OtherDocumentsComponent implements OnInit, AfterViewChecked {\n @Input() docList: any[];\n dataLoading: boolean;\n isMyDoc: boolean;\n public gridData: GridDataResult;\n public filters: CompositeFilterDescriptor;\n public sort: SortDescriptor[] = [{\n field: 'submitted',\n dir: 'desc'\n }];\n public pageSize = 10;\n public skip = 0;\n gridView: any[];\n userDetails: any;\n\n constructor(\n private userService: UserService,\n private documentService: DocumentService,\n private toastService: ToastMessageService,\n private googleAnalyticsService: GoogleAnalyticsService) { }\n\n ngOnInit() {\n this.dataLoading = true;\n this.userDetails = this.userService.getUserInputData();\n this.loadMyDocuments();\n }\n\n ngAfterViewChecked() {\n const pagination = document.getElementsByTagName('kendo-pager');\n const screen = window.innerWidth;\n if (pagination.length > 0 && screen > 992) {\n pagination[0].classList.remove('k-pager-mobile-sm');\n }\n }\n\n /**\n * @description\n * Function to load all other documents\n */\n loadMyDocuments() {\n this.isMyDoc = this.docList.length > 0;\n this.gridView = this.docList;\n this.gridView = orderBy(this.gridView, this.sort);\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n\n /**\n * @description\n * Function to get other document\n */\n viewDoc(data: any) {\n this.googleAnalyticsService.emitEvent('Button', 'Clicked View ' + data.name, 'Click', 10);\n this.documentService.getMyDocument(data.id, this.userDetails, data.name).subscribe(() => {\n data.isClicked = !data.isClicked;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n data.isClicked = !data.isClicked;\n this.toastService.getErrorMessage();\n });\n }\n\n /**\n * @description\n * Function to search the table\n */\n onChange(e: any) {\n this.docList.forEach((data) => {\n data.name = data.name.toString();\n data.submitted = data.submitted.toString();\n });\n this.filters = {\n filters: [\n { field: 'name', value: e.target.value, operator: 'contains' },\n { field: 'submitted', value: e.target.value, operator: 'contains' }\n ], logic: 'or'\n };\n this.gridView = filterBy(this.docList, this.filters);\n this.skip = 0;\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n\n /**\n * @description\n * Function to sort the table\n */\n sortChange(sort: SortDescriptor[]): void {\n this.sort = sort;\n this.gridView = orderBy(this.gridView, this.sort);\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n\n /**\n * @description\n * Function to chnage the page of the table\n */\n pageChange(event: PageChangeEvent): void {\n this.skip = event.skip;\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n}\n","
\n
Other Documents
\n
\n \n \n \n \n \n
\n
\n
\n Date\n
\n
\n
\n
\n {{ dataItem.submitted | date:'MM/dd/yyyy hh:mm a'}}\n
\n
\n
\n
\n Description\n
\n
\n
\n
\n {{ dataItem.name }}\n
\n
\n
\n
\n
\n \n \n View\n \n \n
\n
\n
\n
\n
\n \n \n
{{ dataItem.submitted | date:'MM/dd/yyyy hh:mm a'}}
\n
\n
\n \n \n
{{ dataItem.name }}
\n
\n
\n \n \n
\n \n \n View\n \n \n
\n
\n
\n
\n
\n
\n","import { AfterViewChecked, Component, OnInit } from '@angular/core';\nimport { process, State } from '@progress/kendo-data-query';\nimport { GridDataResult } from '@progress/kendo-angular-grid';\nimport { DocumentService } from '../../shared/services/document.service';\nimport { UserService } from '../../shared/services/user.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../../shared/services/toast-message.service';\nimport { GoogleAnalyticsService } from '../../shared/services/google-analytics.service';\nimport { ReadConfigService } from '../../shared/services/read-config.service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-psb',\n templateUrl: './psb.component.html',\n styleUrls: ['./psb.component.css']\n})\n\nexport class PsbComponent implements OnInit, AfterViewChecked {\n public gridData: GridDataResult;\n psbList = [];\n state: State = {\n sort: [],\n };\n disclaimerText: any;\n loadDisplay: boolean;\n systems = [];\n userDetails: any;\n psbMessage: any;\n\n constructor(\n private documentService: DocumentService,\n private userService: UserService,\n private toastService: ToastMessageService,\n private readConfigService: ReadConfigService,\n private router: Router,\n private googleAnalyticsService: GoogleAnalyticsService) { }\n\n ngOnInit() {\n this.disclaimerText = this.readConfigService.getDisclaimer();\n this.userDetails = this.userService.getUserInputData();\n this.loadPSBListDetails();\n this.loadDisplay = true;\n }\n\n ngAfterViewChecked() {\n const pagination = document.getElementsByTagName('kendo-pager');\n const screen = window.innerWidth;\n if (pagination.length > 0 && screen > 992) {\n pagination[0].classList.remove('k-pager-mobile-sm');\n }\n }\n\n /**\n * @description\n * Function to load all psb documents\n */\n loadPSBListDetails() {\n const account = this.userService.getUserSession();\n const userAccounts = account.userAccounts;\n userAccounts.forEach((element: any) => {\n const accountLabel = element.label.split('|');\n this.systems.push(accountLabel[1]);\n });\n this.documentService.getPSBList(this.userDetails).subscribe((data: any) => {\n if (data.StatusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else if (data.success) {\n data.result.forEach((ele: any) => {\n let matchFound = false;\n this.systems.forEach(element => {\n if (ele.systemName.toLowerCase() === element.toLowerCase()) {\n matchFound = true;\n }\n });\n if (matchFound) {\n this.psbList.push(ele);\n }\n });\n data.result = this.psbList;\n this.gridData = process(data.result, this.state);\n const message = this.readConfigService.getMdPsbMessage();\n this.psbMessage = this.isActiveRole(account.userRoles) ? message : null;\n this.loadDisplay = false;\n } else {\n this.toastService.getErrorMessage();\n }\n }, (err: HttpErrorResponse) => {\n console.log(err);\n this.loadDisplay = false;\n this.toastService.getErrorMessage();\n });\n }\n\n isActiveRole(roles: any): boolean {\n return roles.split(',').find((element: any) => element.toLowerCase() === 'active');\n }\n\n /**\n * @description\n * Function to get psb document\n */\n viewPSB(data: any) {\n this.googleAnalyticsService.emitEvent('Button', 'Clicked View PSB ' + data.fiscalYear, 'Click', 10);\n this.documentService.getPSB(data.id, this.userDetails, data.fiscalYear).subscribe(() => {\n data.isClicked = !data.isClicked;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n data.isClicked = !data.isClicked;\n this.toastService.getErrorMessage();\n });\n }\n}\n","
Personal Statement of Benefits
\n
\n \n \n \n
\n

\n {{disclaimerText}}\n

\n
\n
\n \n \n \n
{{ dataItem.fiscalYear }}
\n
\n
\n \n \n
{{ dataItem.systemName }}
\n
\n
\n \n \n
\n \n \n View\n \n \n
\n
\n
\n
\n
\n
\n","import { AfterViewChecked, Component, OnInit } from '@angular/core';\nimport { CompositeFilterDescriptor, filterBy, SortDescriptor, orderBy } from '@progress/kendo-data-query';\nimport { DocumentService } from '../../shared/services/document.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { UserService } from '../../shared/services/user.service';\nimport { GridDataResult, PageChangeEvent } from '@progress/kendo-angular-grid';\nimport { ToastMessageService } from '../../shared/services/toast-message.service';\nimport { GoogleAnalyticsService } from '../../shared/services/google-analytics.service';\nimport { Router } from '@angular/router';\nimport { ReadConfigService } from '../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-ten99r-list',\n templateUrl: './ten99r-list.component.html',\n styleUrls: ['./ten99r-list.component.css']\n})\n\nexport class Ten99RlistComponent implements OnInit, AfterViewChecked {\n ten99RList: any[];\n dataLoading: boolean;\n public gridData: GridDataResult;\n public filters: CompositeFilterDescriptor;\n public sort: SortDescriptor[] = [{\n field: 'fiscalYear',\n dir: 'desc'\n }];\n public pageSize = 5;\n public skip = 0;\n gridView: any[];\n userDetails: any;\n ten99RMessage: any;\n constructor(\n private userService: UserService,\n private documentService: DocumentService,\n private toastService: ToastMessageService,\n private readConfigService: ReadConfigService,\n private router: Router,\n private googleAnalyticsService: GoogleAnalyticsService) { }\n\n ngOnInit() {\n this.userDetails = this.userService.getUserInputData();\n this.load1099RListDetails();\n this.dataLoading = true;\n }\n\n ngAfterViewChecked() {\n const pagination = document.getElementsByTagName('kendo-pager');\n const screen = window.innerWidth;\n if (pagination.length > 0 && screen > 992) {\n pagination[0].classList.remove('k-pager-mobile-sm');\n }\n }\n\n /**\n * @description\n * Function to load all 1099r documents\n */\n load1099RListDetails() {\n const account = this.userService.getUserSession();\n this.documentService.getTen99RList(this.userDetails).subscribe((data: any) => {\n if (data.StatusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else if (data.success) {\n this.ten99RList = data.result;\n this.gridView = this.ten99RList;\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n const message = this.readConfigService.getMd1099RMessage();\n const role = account.userRoles.toLowerCase();\n // tslint:disable-next-line:max-line-length\n this.ten99RMessage = (role.includes('payeeretiree') || role.includes('payeenonretiree') || role.includes('withdrawn')) && message ? message : null;\n this.dataLoading = false;\n }\n }, (err: HttpErrorResponse) => {\n console.log(err);\n this.dataLoading = false;\n this.toastService.getErrorMessage();\n });\n }\n\n /**\n * @description\n * Function to get 1099r document\n */\n view1009R(data: any) {\n this.googleAnalyticsService.emitEvent('Button', 'Clicked View 1099R ' + data.fiscalYear, 'Click', 10);\n this.documentService.getTen99R(data.id, this.userDetails, data.fiscalYear).subscribe(() => {\n data.isClicked = !data.isClicked;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n data.isClicked = !data.isClicked;\n this.toastService.getErrorMessage();\n });\n }\n\n /**\n * @description\n * Function to search the table\n */\n onChange(e: any) {\n this.ten99RList.forEach((data) => {\n data.fiscalYear = data.fiscalYear.toString();\n data.grossAmount = data.grossAmount.toString();\n });\n this.filters = {\n filters: [\n { field: 'fiscalYear', value: e.target.value, operator: 'contains' },\n { field: 'grossAmount', value: e.target.value, operator: 'contains' }\n ], logic: 'or'\n };\n this.gridView = filterBy(this.ten99RList, this.filters);\n this.skip = 0;\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n\n /**\n * @description\n * Function to sort the table\n */\n sortChange(sort: SortDescriptor[]): void {\n this.sort = sort;\n this.gridView = orderBy(this.gridView, this.sort);\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n\n /**\n * @description\n * Function to chnage the page of the table\n */\n pageChange(event: PageChangeEvent): void {\n this.skip = event.skip;\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n}\n","
1099-R Tax Documents
\n
\n \n \n \n
\n
\n \n \n \n \n
{{ dataItem.fiscalYear }}
\n
\n
\n \n \n
{{ dataItem.grossAmount | currency:'USD'}}
\n
\n
\n \n \n
\n \n \n View\n \n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-drop-retiree-panel',\n templateUrl: './drop-retiree-panel.component.html',\n styleUrls: ['./drop-retiree-panel.component.css']\n})\nexport class DropRetireePanelComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit() {\n }\n}\n","\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { ReadConfigService } from '../shared/services/read-config.service';\n\n@Component({\n selector: 'app-forbidden',\n templateUrl: './forbidden.component.html',\n styleUrls: ['./forbidden.component.css']\n})\nexport class ForbiddenComponent implements OnInit {\n errorTitle: any;\n errorMessage: any;\n contactLink: any;\n constructor(\n private router: Router,\n private readConfigService: ReadConfigService,\n private activatedRoute: ActivatedRoute) { }\n\n ngOnInit() {\n const errorCode = this.activatedRoute.snapshot.queryParams.error;\n if (errorCode !== undefined && errorCode === '401') {\n const config = this.readConfigService.getUnauthorizedUserText();\n this.errorTitle = config.Title;\n this.errorMessage = config.Message;\n } else {\n const config = this.readConfigService.getForbiddenText();\n this.errorTitle = config.Title;\n this.errorMessage = config.Message;\n this.contactLink = config.ContactUsLink;\n }\n this.redirectToLogIn();\n }\n\n redirectToLogIn() {\n const loginRedirectTime = this.readConfigService.getLoginRedirectTime();\n setTimeout(() => {\n sessionStorage.clear();\n sessionStorage.setItem('logout', 'true');\n this.router.navigate(['/login']);\n }, loginRedirectTime);\n }\n}\n","\n
\n
\n
\n
\n
\n

{{errorTitle}}

\n
\n \"Maryland\n
\n \n {{errorMessage}}\n \n \n Try logging back in or\n let us know!\n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { HttpErrorResponse, HttpResponse } from '@angular/common/http';\nimport { UserService } from '../shared/services/user.service';\nimport { Router } from '@angular/router';\nimport { BenefitEstimateService } from '../shared/services/benefit-estimate.service';\nimport { DocumentService } from '../shared/services/document.service';\n\n@Component({\n selector: 'app-home',\n templateUrl: './home.component.html',\n styleUrls: ['./home.component.css']\n})\n\nexport class HomeComponent implements OnInit {\n isLoginError: boolean;\n userAccounts: any[];\n isLoading: boolean;\n page: any;\n isUserActivated = true;\n isLoggedIn: any;\n userClaims: any;\n userName: any;\n emailTxt: any;\n userDetails: any;\n constructor(\n private router: Router,\n private userService: UserService,\n private estimateService: BenefitEstimateService,\n private documentService: DocumentService) { }\n\n ngOnInit() {\n setTimeout(() => {\n this.getUserStatus();\n }, 200);\n }\n\n getUserStatus() {\n this.userClaims = this.userService.getUserClaims();\n if (this.userClaims !== null) {\n if (this.userClaims.status === 'Activated') {\n this.loadSettings();\n } else {\n this.router.navigate(['/unactivateduser']);\n }\n } else {\n const claims = JSON.parse(window.atob(sessionStorage.getItem('access_token').split('.')[1]));\n this.getUserClaims(claims.sub);\n }\n }\n\n callRoleMatch(role: any): boolean {\n return this.userService.roleMatch([role]);\n }\n\n loadSettings() {\n this.isUserActivated = true;\n this.isLoggedIn = false;\n this.loadDarkFeatures();\n this.getAccounts(this.userClaims.mskUser);\n this.isLoggedIn = true;\n if (sessionStorage.getItem('setLastLogInInfo') === null) {\n this.setLastLogIn(this.userClaims.mskUser);\n }\n }\n\n setLastLogIn(userName: any) {\n this.isLoading = true;\n const logInTime = this.userService.getLastLoginTime();\n this.userService.setLastLogInInfo(userName, logInTime).subscribe((data: any) => {\n if (data && data.statusCode === 200) {\n sessionStorage.setItem('setLastLogInInfo', 'true');\n }\n this.isLoading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err.message);\n this.isLoading = false;\n });\n }\n\n loadDarkFeatures() {\n setTimeout(() => {\n if (sessionStorage.getItem('DFLoaded') === null) {\n this.loadDarkFeatures();\n }\n }, 200);\n this.loadConfigSettings();\n }\n\n loadConfigSettings() {\n setTimeout(() => {\n if (sessionStorage.getItem('configSettings') === null) {\n this.loadConfigSettings();\n }\n }, 200);\n }\n\n getUserClaims(userName: any) {\n this.isLoading = true;\n this.userService.getUserDetails(userName).subscribe((data: any) => {\n if (data && data.result) {\n this.userClaims = data.result;\n if (this.userClaims.status === 'Activated') {\n this.loadSettings();\n }\n } else {\n this.isLoginError = true;\n }\n this.isLoading = false;\n },\n (err: HttpErrorResponse) => {\n this.isLoginError = true;\n this.isLoading = false;\n console.log(err.message);\n });\n }\n\n getAccounts(userName: any) {\n this.isLoading = true;\n this.userService.getUserAccounts(userName).subscribe((data: any) => {\n if (data && data.accounts) {\n this.userAccounts = data.accounts;\n const userRoles = this.userAccounts[0].roles;\n const sessionData = {\n role: userRoles,\n accounts: this.userAccounts,\n prId: data.personId,\n mskUser: userName,\n userId: data.userId\n };\n this.userService.setUserSession(sessionData);\n this.userDetails = this.userService.getUserInputData();\n this.getMDSAccountId();\n // redirect user to respective account view if they have only one account tile if it is not withdrawn\n if (this.userAccounts && this.userAccounts.length === 1) {\n this.tileClick(this.userAccounts[0]);\n this.page = this.getRouterLink(this.userAccounts[0].role);\n this.router.navigateByUrl(this.page);\n }\n // early loading of prpdata for benefit estimates\n this.loadEstimatesPrepData();\n } else {\n this.isLoginError = true;\n }\n this.isLoading = false;\n },\n (err: HttpErrorResponse) => {\n this.isLoginError = true;\n this.isLoading = false;\n console.log(err.message);\n });\n }\n\n goToEmailPage() {\n this.router.navigate(['/emailuser'], { queryParams: { userName: this.userName } });\n }\n\n /**\n * @description\n * Function to set tile display depending on number of user accounts\n * @returns retClass\n */\n setClass() {\n return this.userAccounts && this.userAccounts.length === 1 ?\n 'display-none' : 'col s12 m12 l6 xl6 remove-default-padding';\n }\n\n /**\n * @description\n * Function to set selectedaccount and uniqueid to session storage\n */\n tileClick(accountType: any) {\n this.userService.setSelectedAccount(accountType);\n if (accountType.accountType === 'MEMBER' && accountType.role !== 'Withdrawn') {\n this.userService.setTileId(accountType.uniqueId);\n }\n }\n\n /**\n * @description\n * Function to get link depending on the user's role\n * @returns link\n */\n getRouterLink(role: any): any {\n return '/' + role;\n }\n\n /**\n * @description\n * Function to pre-load estimate prepdata which is used in esimate benefits for eligible members\n */\n loadEstimatesPrepData() {\n if (this.estimateService.getPrepData() === null) {\n this.userAccounts.forEach((account: any) => {\n // prepdata will not be loaded for withdrawn members and retirees\n if (account.accountType === 'MEMBER' && account.role !== 'Withdrawn') {\n this.estimateService.getAllBenefitEstimateData(account.uniqueId, this.userDetails).subscribe((data: any) => {\n if (data && data.statusCode === 200) {\n this.estimateService.setPrepData(data.result, account.uniqueId);\n } else {\n sessionStorage.setItem('prepDataLoadingFailed', 'true');\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n sessionStorage.setItem('prepDataLoadingFailed', 'true');\n });\n }\n });\n }\n }\n\n /**\n * @description\n * Function to get MDSAccount Id from document service\n */\n getMDSAccountId() {\n this.userService.getMdsAccountId();\n }\n}\n","\n
\n
\n
\n
\n
\n
\n
\n Employer:\n {{account.label.split('|')[0]}}\n
\n System:\n {{account.label.split('|')[1]}}\n
\n Status:\n {{account.label.split('|')[2]}}\n
\n Click Here\n
\n
\n
\n
\n
\n
\n
\n {{emailTxt}}\n
\n Email me a new link\n
\n
\n
\n
\n
\n","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\nimport { MessagesService } from '../../shared/services/messages.service';\nimport { ToastMessageService } from '../../shared/services/toast-message.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { DatePipe } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { UserService } from '../../shared/services/user.service';\nimport { ReadConfigService } from '../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-compose-message',\n templateUrl: './compose-message.component.html',\n styleUrls: ['./compose-message.component.css']\n})\nexport class ComposeMessageComponent implements OnInit {\n public listItems: any[];\n selectedValue: any;\n messageVal: any;\n subject: any;\n defaultItem = { name: 'Select Topic', id: null };\n @Output() closeModel: EventEmitter = new EventEmitter();\n composeIntroduction: any;\n constructor(\n private msgService: MessagesService,\n private userService: UserService,\n private toastService: ToastMessageService,\n private readConfigService: ReadConfigService,\n private router: Router) { }\n\n ngOnInit() {\n this.composeIntroduction = this.readConfigService.getSecuMessagesText().ComposeMessage;\n this.msgService.getMessageTopics().subscribe((data: any) => {\n if (data.statusCode === 200) {\n this.listItems = data.result;\n this.selectedValue = this.defaultItem.id;\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.toastService.getErrorMessage();\n });\n }\n\n send() {\n const datePipe = new DatePipe('en-US');\n const now = Date.now();\n const myFormattedDate = datePipe.transform(now, 'short');\n const msg = {\n pId: sessionStorage.getItem('personId'),\n TopicId: this.selectedValue,\n Subject: this.subject,\n Message: this.messageVal,\n MessageType: 'Secure Message',\n SendDt: myFormattedDate\n };\n const userDetails = this.userService.getUserInputData();\n this.msgService.sendMessage(msg, userDetails).subscribe((data: any) => {\n if (data.statusCode === 201) {\n this.closeModel.emit(false);\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.toastService.getErrorMessage();\n });\n }\n\n isDisabled(): boolean {\n return !this.selectedValue || this.messageVal === undefined || this.messageVal === ''\n || this.subject === undefined || this.subject === '';\n }\n\n keyup(value: any, option: any) {\n option === 1 ? this.subject = value.replace(/^\\s+/g, '') : this.messageVal = value.replace(/^\\s+/g, '');\n }\n}\n","
\n {{composeIntroduction}}\n
\n
\n
\n
\n Subject:\n
\n
\n
\n \n \n \n
\n
\n
\n
\n Topic:\n
\n
\n \n \n
\n
\n
\n
\n Message:\n
\n
\n \n {{messageVal.length}}/1000\n
\n
\n
\n
\n \n
\n
\n","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\nimport { GridDataResult, PageChangeEvent, SelectableSettings } from '@progress/kendo-angular-grid';\nimport { CompositeFilterDescriptor, SortDescriptor, filterBy, orderBy } from '@progress/kendo-data-query';\nimport { MessagesService } from '../shared/services/messages.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../shared/services/toast-message.service';\nimport { UserService } from '../shared/services/user.service';\nimport { GoogleAnalyticsService } from '../shared/services/google-analytics.service';\nimport { Router } from '@angular/router';\nimport { ReadConfigService } from '../shared/services/read-config.service';\n\n@Component({\n selector: 'app-secure-messages',\n templateUrl: './secure-messages.component.html',\n styleUrls: ['./secure-messages.component.css']\n})\nexport class SecureMessagesComponent implements OnInit {\n public messagesData: any;\n public selectedData = new Array();\n public gridData: GridDataResult;\n public filters: CompositeFilterDescriptor;\n public sort: SortDescriptor[] = [{\n field: 'receivedDt',\n dir: 'desc'\n }];\n public pageSize = 10;\n public skip = 0;\n gridView: any[];\n gridLoading: boolean;\n messageCount: any;\n composeMessage: boolean;\n winHandle: Window;\n openMessage = false;\n selectedValue = 'Received Messages';\n public listItems: Array = ['Received Messages', 'Sent Messages', 'Archived Messages'];\n allMessages: any[];\n selectedSubject: any;\n selectedTopic: any;\n opened = false;\n selectableSettings: SelectableSettings;\n sentMessage = false;\n selectedAccount: any;\n userDetails: any;\n msgData: any;\n deleteDisabled = true;\n futureOutageMessage: any;\n public hiddenColumns: string[] = [];\n @Output() updateMsgCount: EventEmitter = new EventEmitter();\n scrollMessage: any;\n showAppOutage: boolean;\n appOutageMessage: any;\n constructor(\n private messagesService: MessagesService,\n private userService: UserService,\n private toastService: ToastMessageService,\n private readConfigService: ReadConfigService,\n private googleAnalyticsService: GoogleAnalyticsService,\n private router: Router) { }\n\n ngOnInit() {\n this.selectedAccount = this.userService.getUserSession();\n this.userDetails = this.userService.getUserInputData();\n this.scrollMessage = this.readConfigService.getMobileScrollMessage();\n this.loadData();\n this.selectableSettings = { checkboxOnly: true, mode: 'multiple' };\n }\n\n compose() {\n this.composeMessage = true;\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Compose Message', 'Click', 10);\n }\n\n close() {\n this.composeMessage = false;\n this.openMessage = false;\n this.opened = false;\n }\n\n closeDialog() {\n this.composeMessage = false;\n this.openMessage = false;\n this.opened = false;\n this.loadData();\n }\n\n updateGrid() {\n const updatedCount = this.messageCount - 1;\n sessionStorage.setItem('unreadMsgCount', updatedCount.toString());\n if (updatedCount < 1) {\n sessionStorage.removeItem('showunreadmsg');\n }\n this.messageCount = updatedCount;\n this.loadData();\n }\n\n loadData() {\n this.messagesService.getSecureMessages(this.userDetails).subscribe((data: any) => {\n if (data && data.statusCode === 200) {\n if (data.hideFeature) {\n // for app feature outage\n this.showAppOutage = true;\n this.appOutageMessage = data.outageMessage;\n } else {\n this.futureOutageMessage = data.outageMessage;\n this.popuplateGridData(data);\n }\n } else if (data && data.statusCode === 204) {\n this.futureOutageMessage = data.outageMessage;\n } else if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.toastService.getErrorMessage();\n });\n }\n\n delete() {\n this.opened = true;\n }\n\n deleteMessage() {\n this.opened = false;\n const msgIds = this.selectedData.toString();\n this.messagesService.deleteMessage(msgIds, this.userDetails).subscribe((data: any) => {\n if (data.statusCode === 200) {\n this.popuplateGridData(data);\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.toastService.getErrorMessage();\n });\n }\n\n popuplateGridData(data: any) {\n this.deleteDisabled = true;\n this.allMessages = data.result;\n this.filterGridView(this.selectedValue);\n }\n\n filterGridView(value: any) {\n this.selectedData = [];\n this.deleteDisabled = true;\n if (this.allMessages === undefined) {\n return;\n }\n if (value === 'Sent Messages') {\n this.messagesData = this.allMessages.filter((x: any) => x.sendDt !== null && x.deleted !== true);\n this.sort = [{\n field: 'sendDt',\n dir: 'desc'\n }];\n } else if (value === 'Received Messages') {\n this.messagesData = this.allMessages.filter((x: any) => x.receivedDt !== null && x.deleted !== true);\n this.messageCount = this.messagesData.filter((x: any) => x.read !== true).length;\n sessionStorage.setItem('unreadMsgCount', this.messageCount.toString());\n this.sort = [{\n field: 'receivedDt',\n dir: 'desc'\n }];\n } else {\n this.messagesData = this.allMessages.filter((x: any) => x.receivedDt !== null && x.deleted === true);\n this.sort = [{\n field: 'receivedDt',\n dir: 'desc'\n }];\n }\n this.gridView = orderBy(this.messagesData, this.sort);\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n\n viewMessage(dataItem: any) {\n this.msgData = dataItem;\n this.openMessage = true;\n }\n\n pageChange(event: PageChangeEvent): void {\n this.skip = event.skip;\n this.gridView = this.messagesData;\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n\n sortChange(sort: SortDescriptor[]): void {\n this.sort = sort;\n this.gridView = orderBy(this.messagesData, this.sort);\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n\n searchGrid(e: any) {\n const optionswithtime = { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' } as any;\n this.messagesData.forEach((data: any) => {\n data.id = data.id.toString();\n if (data.receivedDt !== null) {\n data.receivedDt = new Date(data.receivedDt).toLocaleString('en-US', optionswithtime);\n }\n if (data.sendDt !== null) {\n data.sendDt = new Date(data.sendDt).toLocaleString('en-US', optionswithtime);\n }\n });\n this.filters = {\n filters: [\n { field: 'id', value: e.target.value, operator: 'contains', ignoreCase: true },\n { field: 'subject', value: e.target.value, operator: 'contains', ignoreCase: true },\n { field: 'topic', value: e.target.value, operator: 'contains', ignoreCase: true },\n { field: 'receivedDt', value: e.target.value, operator: 'contains' },\n { field: 'sendDt', value: e.target.value, operator: 'contains' }\n ], logic: 'or'\n };\n this.gridView = filterBy(this.messagesData, this.filters);\n this.skip = 0;\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n\n /**\n * @description\n * Function to navigate to respective component depending on role\n */\n changeMenu(value: any) {\n this.hiddenColumns = [];\n this.sentMessage = value === 'Sent Messages';\n this.sentMessage ? this.hiddenColumns.push('receivedDt') : this.hiddenColumns.push('sendDt');\n this.filterGridView(value);\n }\n\n clickedPage(event: any) {\n this.deleteDisabled = true;\n if (event.selectedRows.length > 0) {\n this.selectedData.push(event.selectedRows[0].dataItem.id);\n } else if (event.deselectedRows.length > 0) {\n const index = this.selectedData.indexOf(event.deselectedRows[0].dataItem.id);\n this.selectedData.splice(index, 1);\n }\n if (this.selectedData.length > 0) { this.deleteDisabled = false; }\n }\n\n /**\n * @description\n * Function to set padding for messages number\n */\n setPaddingClass() {\n let paddingClass = '';\n if (this.messageCount < 11) {\n paddingClass = 'num-padding-single';\n } else {\n paddingClass = 'num-padding-double';\n }\n return paddingClass;\n }\n}\n","\n
\n
\n
\n
\n
\n

Send/Receive Message

\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n \n Unread Messages \n \n \n \n \n \n
\n
\n \n \n
\n \n \n
\n
\n
\n \n
\n
\n
\n \n

Are you sure you want to delete these records?

\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n \n \n 0\">\n
\n \n \n
\n
\n \n
\n \n \n
\n
\n
\n \n \n
\n
{{dataItem.subject}}\n
\n
\n
\n
\n {{dataItem.subject}}
\n
\n
\n
\n {{dataItem.subject}}
\n
\n
\n
\n \n \n
{{dataItem.topic}}
\n
\n
\n \n \n
{{dataItem.receivedDt | date:'MM/dd/yyyy hh:mm a'}}
\n
\n
\n \n \n
{{dataItem.sendDt | date:'MM/dd/yyyy hh:mm a'}}
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { MessagesService } from '../../shared/services/messages.service';\nimport { ToastMessageService } from '../../shared/services/toast-message.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { UserService } from '../../shared/services/user.service';\n\n@Component({\n selector: 'app-view-message',\n templateUrl: './view-message.component.html',\n styleUrls: ['./view-message.component.css']\n})\nexport class ViewMessageComponent implements OnInit {\n\n constructor(private msgService: MessagesService,\n private toastService: ToastMessageService,\n private userService: UserService,\n private router: Router) { }\n\n setSubject: any;\n setTopic: any;\n origMsg: any;\n messageVal: any;\n reply: any;\n showReply = false;\n deletedMsg: any;\n @Input() msgData: any;\n @Output() closeModel: EventEmitter = new EventEmitter();\n @Output() updateGrid: EventEmitter = new EventEmitter();\n\n ngOnInit() {\n this.setSubject = this.msgData.subject;\n this.setTopic = this.msgData.topic;\n this.origMsg = this.msgData.message;\n this.deletedMsg = this.msgData.deleted;\n if (this.msgData.receivedDt !== null && this.msgData.read !== true) {\n this.readMessage();\n }\n if (this.msgData.receivedDt !== null && this.msgData.parentId === 0) {\n this.showReply = true;\n }\n }\n\n sendMessage() {\n const curDt = new Date().toLocaleString();\n const msg = {\n PersonId: this.msgData.personId,\n TopicId: this.msgData.topicId,\n Subject: this.msgData.subject,\n Message: this.messageVal,\n MessageType: 'Secure Message',\n SendDt: curDt,\n ParentId: this.msgData.id\n };\n const userDetails = this.userService.getUserInputData();\n this.msgService.sendMessage(msg, userDetails).subscribe((data: any) => {\n if (data.statusCode === 201) {\n this.closeModel.emit(false);\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.toastService.getErrorMessage();\n });\n }\n\n readMessage() {\n this.msgService.readMessage(this.msgData.id).subscribe((data: any) => {\n if (data.statusCode === 200) {\n this.updateGrid.emit();\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.toastService.getErrorMessage();\n });\n }\n\n replyMessage() {\n this.reply = true;\n }\n\n isDisabled(): boolean {\n return this.messageVal === undefined || this.messageVal === '';\n }\n}\n","
\n
\n Subject:\n
\n
\n
\n {{setSubject}}\n
\n
\n
\n
\n
\n Topic:\n
\n
\n
\n {{setTopic}}\n
\n
\n
\n
\n
\n Message:\n
\n
\n
\n \n {{messageVal.length}}/1000\n
\n
\n \n {{origMsg}}\n \n
\n
\n
\n
\n
\n \n \n
\n
","export class FedTaxDetails {\r\n maritalStatus: string;\r\n // income\r\n jobIncomeAmount: Number = 0;\r\n otherPensionAmount: Number = 0;\r\n totalIncomeAmount: Number = 0;\r\n // credit\r\n dependentCount: Number = 0;\r\n otherDependentCount: Number = 0;\r\n educationCreditAmount: Number = 0;\r\n totalCreditAmount: Number;\r\n // optional\r\n otherIncomeAmount: Number = 0;\r\n deductionAmount: Number = 0;\r\n extraWithholdAmount: Number = 0;\r\n // calculated\r\n fedExemptions: Number;\r\n fedExemptionTax: Number;\r\n adjustedGross: Number;\r\n maxAllowed: Number;\r\n}\r\n\r\nexport class FedTaxDetailsAPI {\r\n id: number;\r\n adjustedGross: Number;\r\n maritalStatus: string;\r\n fedExemptions: Number;\r\n fedExemptionTax: Number;\r\n fedFlatTax: Number;\r\n maxAllowed: Number;\r\n totIncome: Number;\r\n totTaxCredit: Number;\r\n othIncome: Number;\r\n deductions: Number;\r\n uid: Number;\r\n}\r\n\r\n\r\n\r\n","export class BankDetails {\r\n public routingNumber = '';\r\n public accountNumber = '';\r\n public bankName = '';\r\n public accountType = '';\r\n public showForm = null;\r\n public jointAccountFirstNm = null;\r\n public jointAccountMI = null;\r\n public jointAccountLastNm = null;\r\n public jointAccountSignature = '';\r\n public jointAccountEmailId = null;\r\n}\r\n","export class BeneDetails {\r\n public id: any;\r\n public fullName: any;\r\n public firstName: any;\r\n public mi: any;\r\n public lastName: any;\r\n public gender: any;\r\n public doB: any;\r\n public relationship: any;\r\n public beneType: any;\r\n public address1: any;\r\n public address2: any;\r\n public city: any;\r\n public state: any;\r\n public zip: any;\r\n}\r\n","export class Navigation {\n public currentScreen = 0;\n public previousScreen = 0;\n public nextScreen = 0;\n public resetScreen: any;\n}\n\nexport class MilitaryService {\n public priorYear: number;\n public priorMonth: number;\n public duringYear: number;\n public duringMonth: number;\n public startWizard = false;\n public selOption = 'no';\n}\n\nexport class ServiceProjection {\n public workDate: any;\n public workAge: any;\n public stopWorkDate: any;\n public selOption: any;\n}\n\nexport class RetirementDate {\n public rtDate: any;\n public rtType: any;\n public benefitAmount: any;\n public minDt: any;\n public maxDt: any;\n public previousScreen: any;\n}\n\nexport class SalaryProjection {\n public retDate: Date;\n public currentAFC: number;\n public salIncreaseMonth = 1;\n public selSalaryPercentage = 0;\n public inputAFC: number;\n public selOption = 'current';\n public calculatedAFC: number;\n public calculatedMonthlyAllowance: number;\n public previousScreen: any;\n public growthPercent: any;\n public growthMonth: any = 0;\n}\n\nexport class SickLeave {\n public selectedLeaves = 0;\n public addService: { years: number, months: number };\n public addServiceMonths: any;\n public totalService: { years: number, months: number };\n public addAllowance: any;\n public totalAllowance: any;\n public previousScreen: any;\n}\n\nexport class Beneficiary {\n public selOption = 'Spouse';\n public relationship: any = '';\n public benyRelationCode: any = '';\n public gender: any = '';\n public firstname: any = '';\n public mi: any = '';\n public lastname: any = '';\n public dob: any;\n public selMarried: string;\n public estimateId: any;\n public previousScreen: any;\n}\n\nexport class Common {\n public normalRetirementDate: any;\n public birthDate: any;\n public maxNormalRetirementDate: any;\n public earlyRetirementDate: any;\n public vestedRetirementDate: any;\n public SSIL: any;\n public eligibilityService: any;\n public creditableService: any;\n public currentDate: any;\n public AFCResult: any;\n public basicAllownance: any;\n public planTierService: any;\n public updatedNRD: any;\n public updatedERD: any;\n public stopWorkDate: any;\n public updatedAFC: any;\n public reducedInfo: any;\n public maxSalLimit: any;\n}\n\n// used to save custom estimate data.\nexport class EstimateData {\n public UniqueId: any;\n public OldMilitary: any = 0;\n public NewMilitary: any = 0;\n public StopWorkDt: any;\n public RetDt: any;\n public ProjEligSvc: any;\n public ProjCredSvc: any;\n public AFC: any = 0;\n public SalIncMonth: any = 0;\n public GrowthRate: any = 0;\n public SLMonths: any;\n public BenDOB: any;\n public BenFName: any;\n public BenLName: any;\n public BenMI: any;\n public BenRelationCode: any;\n public BenGender: any;\n public RegReduced: any;\n public BifReduced: any;\n public EnhReduced: any;\n public RefReduced: any;\n public Comments: any;\n public RedFactor: any;\n public SSIL: any;\n}\n\nexport class WizardData {\n public navigationData: Navigation = new Navigation();\n public serviceProjData: ServiceProjection = new ServiceProjection();\n public militaryData: MilitaryService = new MilitaryService();\n public rtDateData: RetirementDate = new RetirementDate();\n public salaryProjData: SalaryProjection = new SalaryProjection();\n public sickLeaveData: SickLeave = new SickLeave();\n public beneficiaryData: Beneficiary = new Beneficiary();\n public commonData: Common = new Common();\n}\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-nonactive-panel',\n templateUrl: './nonactive-panel.component.html',\n styleUrls: ['./nonactive-panel.component.css']\n})\nexport class NonActivePanelComponent implements OnInit {\n private isLoggedIn: any = true;\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { ReadConfigService } from '../shared/services/read-config.service';\n\n@Component({\n selector: 'app-outage-notice',\n templateUrl: './outage-notice.component.html',\n styleUrls: ['./outage-notice.component.css']\n})\nexport class OutageNoticeComponent implements OnInit {\n outageMessage: any;\n outageTitle: any;\n\n constructor(private readConfigService: ReadConfigService) { }\n\n ngOnInit() {\n this.setDefaultSettings();\n this.loadOutageDetails();\n }\n\n loadOutageDetails() {\n const outageSettings = this.readConfigService.getOutageScheduledDetails();\n if (outageSettings) {\n this.outageMessage = outageSettings.outageMessage;\n this.outageTitle = outageSettings.outageType;\n }\n }\n\n setDefaultSettings() {\n const outageConfig = this.readConfigService.getOutageText();\n this.outageMessage = outageConfig.Message;\n this.outageTitle = outageConfig.Title;\n }\n}\n","\n
\n
\n
\n
\n
\n

{{outageTitle}}

\n
\n \"Maryland\n
\n \n {{outageMessage}}\n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-payeenonretiree-panel',\n templateUrl: './payeenonretiree-panel.component.html',\n styleUrls: ['./payeenonretiree-panel.component.css']\n})\nexport class PayeeNonRetireePanelComponent implements OnInit {\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n","import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\nimport { BankDetails } from '../../../models/bank-details.model';\nimport { UserService } from '../../../shared/services/user.service';\nimport { RetireeService } from '../../../shared/services/retiree.service';\nimport { ToastMessageService } from '../../../shared/services/toast-message.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-bank-info',\n templateUrl: './bank-info.component.html',\n styleUrls: ['./bank-info.component.css']\n})\nexport class BankInfoComponent implements OnInit {\n\n showRoutingError: boolean;\n disableAccNumber: boolean;\n rebankAcc: any;\n loadingIcon: boolean;\n foreginChecked: boolean;\n isValidAccNo: boolean;\n showError: boolean;\n bankLoading = false;\n readonly accountPattern = '^([0-9]+-)*[0-9]+$';\n @Input() config: any;\n @Input() bankDetails: BankDetails;\n @Output() progressModel = new EventEmitter();\n\n constructor(\n private router: Router,\n private userService: UserService,\n private retireeService: RetireeService,\n private toastService: ToastMessageService\n ) { }\n\n ngOnInit() {\n }\n\n getBankNameFromRoutingNumber(routingNo: string) {\n this.bankLoading = true;\n const inputData = {\n routingNo,\n user: this.userService.getUserInputData()\n };\n this.retireeService.getBankName(inputData).subscribe((data: any) => {\n if (data) {\n if (data.statusCode === 200) {\n if (data.result && data.result.bankName) {\n const result = data.result;\n this.bankDetails.bankName = result.bankName;\n this.disableAccNumber = false;\n this.showRoutingError = false;\n } else {\n this.showRoutingError = true;\n }\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n } else {\n this.toastService.getErrorMessage();\n }\n this.bankLoading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n this.bankLoading = false;\n });\n }\n\n onValueChange() {\n this.isValidAccNo = false;\n this.showError = false;\n const accNumber = (this.bankDetails.accountNumber || '').replace(/[^0-9\\-\\*]/g, '');\n this.bankDetails.accountNumber = accNumber;\n const isValidAccNo = accNumber.match(this.accountPattern);\n if (isValidAccNo) {\n if (this.rebankAcc && this.rebankAcc !== accNumber) {\n this.showError = true;\n }\n } else {\n this.isValidAccNo = true;\n }\n }\n\n onRnValueChange(bankInfoForm: any) {\n const e = this.allowIntegers(bankInfoForm);\n if (e && e.length === 9 && e !== '000000000' && e !== '999999999') {\n this.showRoutingError = false;\n this.getBankNameFromRoutingNumber(e);\n } else {\n this.showRoutingError = true;\n this.bankDetails.bankName = null;\n this.bankDetails.accountNumber = null;\n this.disableAccNumber = true;\n this.rebankAcc = null;\n }\n }\n\n allowIntegers(bankInfoForm: any) {\n const form = bankInfoForm.form.value;\n form.routingNumber = form.routingNumber.replace(/[^0-9]/g, '');\n bankInfoForm.reset(form);\n return form.routingNumber;\n }\n\n cancel() {\n this.progressModel.emit({ goTo: 'viewaccount', changeDetected: false });\n }\n\n nextScreen() {\n this.progressModel.emit({\n goTo: 'jointAccountData',\n bankAccountInfo: this.bankDetails,\n changeDetected: true\n });\n }\n}\n","
\n
\n \n
\n
\n
\n
\n
\n Routing Number:\n
\n
\n \n \n {{bankDetails.bankName}}\n
\n \n {{config.RoutingNumberError}}\n \n
\n
\n
\n
\n
\n Type of Account:\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n Account Number:\n
\n
\n \n
\n \n {{config.InvalidAccountNumber}}\n \n
\n
\n
\n
\n
\n Re-Enter Account Number:\n
\n
\n \n
\n \n {{config.NotMatching}}\n \n
\n
\n
\n
\n
\n
\n
Foreign transfers
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n","import { Component, OnInit, Input, Output, EventEmitter, AfterViewInit } from '@angular/core';\nimport { BankDetails } from '../../../models/bank-details.model';\nimport { UserService } from '../../../shared/services/user.service';\nimport { DocumentService } from '../../../shared/services/document.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../../../shared/services/toast-message.service';\n\n@Component({\n selector: 'app-dd-upload',\n templateUrl: './dd-upload.component.html',\n styleUrls: ['./dd-upload.component.css']\n})\nexport class DdUploadComponent implements OnInit, AfterViewInit {\n\n uploadSaveUrl = 'saveUrl';\n @Input() config: any;\n @Input() bankDetails: BankDetails;\n @Output() progressModel = new EventEmitter();\n response: any;\n userDetails: any;\n disbaleBtn = true;\n uploadFile: any;\n restrictions: any;\n innerLoading: boolean;\n\n constructor(\n private userService: UserService,\n private documentService: DocumentService,\n private toastService: ToastMessageService) { }\n\n ngOnInit() {\n this.restrictions = JSON.parse(this.config.UploadRestrictions);\n }\n\n ngAfterViewInit() {\n const items = document.querySelectorAll('.k-dropzone-hint');\n if (items && items.length > 0) {\n const dropZoneTextSpan = (items[0] as HTMLElement);\n dropZoneTextSpan.innerText = 'or drag and drop here to upload';\n }\n }\n\n uploadEventHandler() {\n this.disbaleBtn = true;\n this.innerLoading = true;\n this.userDetails = this.userService.getUserInputData();\n const inputData = {\n formData: {\n routingNumber: this.bankDetails.routingNumber,\n accountNumber: this.userService.encrypt(this.bankDetails.accountNumber, 'post'),\n bankName: this.bankDetails.bankName,\n accountType: this.bankDetails.accountType,\n jointAccountFirstNm: this.userService.encrypt(this.bankDetails.jointAccountFirstNm, 'post'),\n jointAccountMI: this.userService.encrypt(this.bankDetails.jointAccountMI, 'post'),\n jointAccountLastNm: this.userService.encrypt(this.bankDetails.jointAccountLastNm, 'post'),\n jointAccountSignature: this.bankDetails.jointAccountSignature,\n jointAccountEmailId: this.userService.encrypt(this.bankDetails.jointAccountEmailId, 'post')\n },\n user: this.userDetails,\n };\n this.documentService.getDirectDepositLetter(JSON.stringify(inputData), this.documentService.getFileUpload()).subscribe((response) => {\n if (response) {\n this.response = response;\n setTimeout(() => {\n this.nextScreen();\n }, 1000);\n } else {\n this.innerLoading = false;\n this.toastService.getCustomErrorMessage(this.config.FileErrorMsg);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.progressModel.emit({ changeDetected: false });\n this.innerLoading = false;\n this.toastService.getCustomErrorMessage(err.statusText || err.message || err.error);\n });\n }\n\n onFileSelect(e: any) {\n if (e && e.files && e.files.length === 1) {\n const selectedFile = e.files[0];\n if (selectedFile.size > this.restrictions.maxFileSize) {\n this.disbaleBtn = true;\n this.toastService.getCustomErrorMessage(this.config.FileSizeValidationMsg);\n return ;\n }\n this.disbaleBtn = !!(selectedFile.validationErrors);\n this.uploadFile = selectedFile;\n this.documentService.saveFileUpload(selectedFile);\n }\n }\n\n removeEventHandler() {\n this.disbaleBtn = true;\n this.uploadFile = null;\n this.documentService.saveFileUpload(null);\n }\n\n cancel() {\n this.progressModel.emit({\n goTo: 'jointAccountData',\n bankAccountInfo: this.bankDetails,\n changeDetected: true\n });\n }\n\n nextScreen() {\n this.progressModel.emit({\n goTo: 'summary',\n bankAccountInfo: this.bankDetails,\n changeDetected: true,\n response: this.response\n });\n }\n}\n","
\n
\n \n
\n
\n \n {{config.UploadTitle}}\n \n
\n
{{config.FileInstructions}}
\n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n","import { Component, OnInit, Output, EventEmitter, Input, ViewChild } from '@angular/core';\nimport { UserService } from '../../../shared/services/user.service';\nimport { RetireeService } from '../../../shared/services/retiree.service';\nimport { ToastMessageService } from '../../../shared/services/toast-message.service';\nimport { BankDetails } from '../../../models/bank-details.model';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { DocumentService } from '../../../shared/services/document.service';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'app-deposit-summary',\n templateUrl: './deposit-summary.component.html',\n styleUrls: ['./deposit-summary.component.css']\n})\n\nexport class DepositSummaryComponent implements OnInit {\n disableBackBtn: boolean;\n showEsign: boolean;\n showSummaryPdf: boolean;\n dataLoading = true;\n showErrorChange: boolean;\n loadingIcon: boolean;\n datePipe: DatePipe;\n userDetails: any;\n showSuccessChange: boolean;\n docInfo: any;\n showLoadingIcon: boolean;\n @Input() config: any;\n @Input() response: any;\n @Input() bankDetails: BankDetails;\n @Output() progressModel = new EventEmitter();\n @ViewChild('pdfViewerOnDemand') pdfViewerOnDemand: any;\n multiAccount: boolean;\n uniqueId: any;\n\n constructor(\n private userService: UserService,\n private retireeService: RetireeService,\n private documentService: DocumentService,\n private toastService: ToastMessageService) { }\n\n ngOnInit() {\n this.disableBackBtn = false;\n this.datePipe = new DatePipe('en-US');\n const session = this.userService.getUserSession();\n this.uniqueId = this.userService.getSelectedAccount().uniqueId;\n if (session.userAccounts && session.userAccounts.length > 1) {\n this.multiAccount = session.userAccounts.some((x: any) => x.uniqueId !== this.uniqueId\n && x.role.indexOf('Retiree') > -1);\n }\n this.showEsign = true;\n if (this.response) {\n this.dataLoading = false;\n this.showSummaryPdf = true;\n setTimeout(() => {\n this.pdfViewerOnDemand.pdfSrc = this.response;\n this.pdfViewerOnDemand.refresh();\n }, 100);\n } else {\n this.dataLoading = false;\n this.showSummaryPdf = false;\n this.showErrorChange = true;\n }\n window.scroll(0, 0);\n }\n\n esignResponse(event: any) {\n this.disableBackBtn = event.btnClicked === 'continue';\n if (event.btnClicked === 'cancel') {\n this.progressModel.emit({ goTo: 'bankAccountInfo', changeDetected: false });\n } else if (event.btnClicked === 'continue') {\n this.userDetails = this.userService.getUserInputData();\n const inputData = {\n formData: {\n routingNumber: this.bankDetails.routingNumber,\n accountNumber: this.userService.encrypt(this.bankDetails.accountNumber, 'post'),\n bankName: this.bankDetails.bankName,\n accountType: this.bankDetails.accountType,\n jointAccountFirstNm: this.userService.encrypt(this.bankDetails.jointAccountFirstNm, 'post'),\n jointAccountMI: this.userService.encrypt(this.bankDetails.jointAccountMI, 'post'),\n jointAccountLastNm: this.userService.encrypt(this.bankDetails.jointAccountLastNm, 'post'),\n jointAccountSignature: this.bankDetails.jointAccountSignature,\n jointAccountEmailId: this.userService.encrypt(this.bankDetails.jointAccountEmailId, 'post'),\n accountId: this.userService.getMdsAccountId(),\n uniqueId: this.uniqueId,\n signature: event.signName,\n loginTime: this.userService.getLastLoginTime(),\n signDate: this.datePipe.transform(new Date(), 'MM/dd/yyyy')\n },\n user: this.userDetails,\n };\n this.retireeService.updateDirectDepositInfo(JSON.stringify(inputData), this.documentService.getFileUpload())\n .subscribe((data: any) => {\n this.progressModel.emit({ changeDetected: false });\n if (data && data.statusCode === 200 && data.result) {\n this.showSuccessChange = true;\n this.showSummaryPdf = false;\n this.docInfo = data.result;\n } else {\n this.showSummaryPdf = false;\n this.showErrorChange = true;\n }\n },\n (err: HttpErrorResponse) => {\n this.showSummaryPdf = false;\n console.log(err);\n this.showErrorChange = true;\n });\n }\n }\n\n goBack() {\n this.progressModel.emit({\n goTo: 'upload',\n bankAccountInfo: this.bankDetails,\n changeDetected: true,\n response: this.response,\n });\n }\n\n goToVa() {\n this.progressModel.emit({ goTo: 'viewaccount', changeDetected: false });\n }\n\n viewDirectDepositLetter() {\n this.showLoadingIcon = true;\n this.documentService.getMergedDocuments(this.docInfo, this.userDetails, 'Direct Deposit Authorization').subscribe(() => {\n this.showLoadingIcon = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.showLoadingIcon = false;\n this.toastService.getErrorMessage();\n });\n }\n}\n","
\n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n {{config.SignDisclaimer}}\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n {{config.SuccessMessage}}\n \n \n
\n \n
\n
\n {{config.AfterSubmission1}}\n
\n
\n {{config.AfterSubmission2}}\n
\n
\n {{config.MultipleAccounts}}\n
\n
\n
\n
\n
\n \n {{config.ErrorMessage}}\n \n
\n
\n
\n
\n \n
\n
\n
\n","import { Component, OnInit, ViewContainerRef, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { RetireeService } from '../../shared/services/retiree.service';\nimport { UserService } from '../../shared/services/user.service';\nimport { ToastMessageService } from '../../shared/services/toast-message.service';\nimport { ReadConfigService } from '../../shared/services/read-config.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { GoogleAnalyticsService } from '../../shared/services/google-analytics.service';\nimport { BankDetails } from '../../models/bank-details.model';\nimport { SetStyleService } from '../../shared/services/set-style.service';\n\n@Component({\n selector: 'app-direct-deposit',\n templateUrl: './direct-deposit.component.html',\n styleUrls: ['./direct-deposit.component.css']\n})\nexport class DirectDepositComponent implements OnInit {\n\n selectedPage: any;\n loadingIcon: boolean;\n showAppOutage: boolean;\n futureOutageMessage: boolean;\n appOutageMessage: any;\n config: any;\n bankAccountInfo: BankDetails;\n changeDetected = false;\n @ViewChild('container', { read: ViewContainerRef }) public container: ViewContainerRef;\n response: any;\n\n constructor(\n private router: Router,\n private userService: UserService,\n private retireeService: RetireeService,\n private toastService: ToastMessageService,\n private readConfigService: ReadConfigService,\n private googleAnalyticsService: GoogleAnalyticsService,\n private setStyleService: SetStyleService) {\n if (sessionStorage.getItem('configSettings') === null) {\n this.loadConfig(50);\n } else {\n this.loadConfig(0);\n }\n }\n\n ngOnInit() {\n setTimeout(() => this.setStyleService.setPanelBarStyle('Update Direct Deposit'), 2000);\n }\n\n loadConfig(timeDelay: any) {\n setTimeout(() => {\n if (sessionStorage.getItem('configSettings') === null) {\n this.loadConfig(timeDelay);\n } else {\n this.bankAccountInfo = new BankDetails();\n this.config = this.readConfigService.getUpdateDirectDeposit();\n this.selectedPage = 1;\n this.getOutage();\n }\n }, timeDelay);\n }\n\n getOutage() {\n const userDetails = this.userService.getUserInputData();\n this.retireeService.getDirectDepositOutage(userDetails).subscribe((data: any) => {\n if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else if (data && data.statusCode === 200) {\n if (data.hideFeature) {\n // for app feature outage\n this.showAppOutage = true;\n this.appOutageMessage = data.outageMessage;\n } else {\n this.futureOutageMessage = data.outageMessage;\n }\n } else {\n this.toastService.getErrorMessage();\n }\n this.loadingIcon = false;\n },\n (err: HttpErrorResponse) => {\n this.loadingIcon = false;\n console.log(err);\n this.toastService.getErrorMessage();\n });\n }\n\n setScreen(emit: any) {\n if (emit) {\n this.bankAccountInfo = emit.bankAccountInfo ? emit.bankAccountInfo : new BankDetails();\n this.changeDetected = emit.changeDetected;\n switch (emit.goTo) {\n case 'bankAccountInfo':\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Update Direct Deposit Screen 1', 'Click', 10);\n this.selectedPage = 1;\n break;\n case 'jointAccountData':\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Update Direct Deposit Screen 2', 'Click', 10);\n this.selectedPage = 2;\n break;\n case 'upload':\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Update Direct Deposit Screen 3', 'Click', 10);\n this.selectedPage = 3;\n break;\n case 'summary':\n this.response = emit.response;\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Update Direct Deposit Screen 4', 'Click', 10);\n this.selectedPage = 4;\n break;\n case 'viewaccount':\n const panel = document.getElementById('account-nav');\n if (panel) {\n const panelChildNodes = Array.from(panel.querySelectorAll('kendo-panelbar-item'));\n const accountPanel = panelChildNodes.find(x => x.textContent && x.textContent.trim() === 'View Account');\n const ddPanel = panelChildNodes.find(x => x.textContent && x.textContent.trim() === 'Update Direct Deposit');\n if (accountPanel) {\n const selectElement = accountPanel.querySelector('.k-link');\n const objHtmlElement = (selectElement as HTMLElement);\n objHtmlElement.classList.add('k-selected');\n }\n if (ddPanel) {\n const selectElement = ddPanel.querySelector('.k-link');\n const objHtmlElement = (selectElement as HTMLElement);\n objHtmlElement.classList.remove('k-selected');\n }\n this.router.navigateByUrl('/' + this.router.url.split('/')[1] + '/View Account');\n break;\n }\n }\n }\n }\n}\n","

Update Direct Deposit

\r\n
\r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n","import { Component, OnInit, Input, EventEmitter, Output } from '@angular/core';\nimport { BankDetails } from '../../../models/bank-details.model';\n\n@Component({\n selector: 'app-joint-account',\n templateUrl: './joint-account.component.html',\n styleUrls: ['./joint-account.component.css']\n})\nexport class JointAccountComponent implements OnInit {\n\n @Input() config: any;\n @Input() bankDetails: BankDetails;\n @Output() progressModel = new EventEmitter();\n\n constructor() { }\n\n ngOnInit() {\n }\n\n setChange(flag: boolean) {\n this.bankDetails.jointAccountFirstNm = '';\n this.bankDetails.jointAccountMI = '';\n this.bankDetails.jointAccountLastNm = '';\n this.bankDetails.jointAccountEmailId = '';\n this.bankDetails.jointAccountSignature = flag ? 'Email notice sent' : '';\n }\n\n cancel() {\n this.bankDetails.jointAccountFirstNm = '';\n this.bankDetails.jointAccountMI = '';\n this.bankDetails.jointAccountLastNm = '';\n this.bankDetails.jointAccountEmailId = '';\n this.bankDetails.jointAccountSignature = '';\n this.bankDetails.showForm = null;\n this.progressModel.emit({\n goTo: 'bankAccountInfo',\n bankAccountInfo: this.bankDetails,\n changeDetected: false\n });\n }\n\n nextScreen() {\n this.progressModel.emit({\n goTo: 'upload',\n bankAccountInfo: this.bankDetails,\n changeDetected: true\n });\n }\n}\n","
\n
\n \n
\n
\n Joint Account Holder\n
\n
{{config.JointAccountText}}
\n
\n
\n
\n {{config.JointAccountQuestion}}\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n
\n First Name:\n
\n
\n
\n \n
\n
\n
\n
\n
\n Middle Initial:\n
\n
\n \n
\n
\n
\n
\n Last Name:\n
\n
\n \n
\n
\n
\n
\n Email:\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'app-credit',\n templateUrl: './credit.component.html',\n styleUrls: ['./credit.component.css']\n})\nexport class CreditComponent implements OnInit {\n @Input() exemptionsList: any;\n @Input() W4Text: any;\n @Input() selectedTaxDetails: any;\n @Input() maxInput: number;\n @Output() progressModel = new EventEmitter();\n currentTabIndex = 3;\n totalCreditAmount: number;\n goNext = false;\n\n constructor() { }\n\n ngOnInit() {\n this.onDependentCountChange(this.selectedTaxDetails.dependentCount);\n this.onOtherDependentCountChange(this.selectedTaxDetails.otherDependentCount);\n this.onEduCreditChange(this.selectedTaxDetails.educationCreditAmount);\n };\n\n onDependentCountChange(event: any) {\n this.selectedTaxDetails.dependentCount = event;\n this.totalCreditAmount = event * 2000 + this.selectedTaxDetails.otherDependentCount * 500 + this.selectedTaxDetails.educationCreditAmount;\n this.selectedTaxDetails.totalCreditAmount = this.totalCreditAmount;\n }\n\n onOtherDependentCountChange(event: any) {\n this.selectedTaxDetails.otherDependentCount = event;\n this.totalCreditAmount = event * 500 + this.selectedTaxDetails.dependentCount * 2000 + this.selectedTaxDetails.educationCreditAmount;\n this.selectedTaxDetails.totalCreditAmount = this.totalCreditAmount;\n }\n\n onEduCreditChange(event: any) {\n if (event === null) {\n this.selectedTaxDetails.educationCreditAmount = 0.00;\n this.totalCreditAmount = this.selectedTaxDetails.otherDependentCount * 500 + this.selectedTaxDetails.dependentCount * 2000\n + event;\n this.selectedTaxDetails.totalCreditAmount = this.totalCreditAmount;\n this.goNext = false;\n return;\n }\n if (event > this.maxInput) {\n this.goNext = true;\n return;\n }\n this.selectedTaxDetails.educationCreditAmount = event;\n this.totalCreditAmount = this.selectedTaxDetails.otherDependentCount * 500 + this.selectedTaxDetails.dependentCount * 2000\n + event;\n this.goNext = false;\n this.selectedTaxDetails.totalCreditAmount = this.totalCreditAmount;\n }\n\n nextScreen() {\n this.progressModel.emit(\n {\n tabIndex: this.currentTabIndex + 1,\n selected: this.selectedTaxDetails,\n prev: false\n });\n }\n\n previousScreen() {\n this.progressModel.emit({\n tabIndex: this.currentTabIndex - 1,\n selected: this.selectedTaxDetails,\n prev: true,\n fromIndex: this.currentTabIndex\n });\n }\n\n startOver() {\n this.progressModel.emit({ tabIndex: 0, option: '' });\n }\n}\n","\n
\n {{W4Text.W4Step3}}\n
\n {{W4Text.W4Step3condition}}\n
\n
\n \n
\n
\n {{W4Text.W4Step3childDependent}}\n
\n \n \n
\n
\n
\n $\n {{selectedTaxDetails.dependentCount * 2000 | number : '1.2-2'}}\n
\n
\n \n
\n
\n {{W4Text.W4Step3otherDependent}}\n
\n \n \n
\n
\n
\n \n $\n \n {{selectedTaxDetails.otherDependentCount * 500 | number : '1.2-2'}}\n
\n
\n \n
\n
\n {{W4Text.W4Step3educationDeduction}}\n
\n
\n \n $\n \n \n \n
\n
\n
maxInput\">\n \n You can only enter a value between 0 and {{maxInput | number : '1.2-2'}}.\n \n
\n \n
\n
\n {{W4Text.W4Step3totalDeduction}}\n
\n
\n \n $\n \n {{(selectedTaxDetails.educationCreditAmount \n + selectedTaxDetails.dependentCount * 2000 \n + selectedTaxDetails.otherDependentCount * 500).toFixed(2) | number : '1.2-2'}} \n
\n
\n
\n
\n\n
\n \n
\n \n
\n \n
\n \n
\n \n
\n \n
\n
\n","import { Component, OnInit, Output, EventEmitter, ViewChild } from '@angular/core';\nimport { RetireeService } from '../../shared/services/retiree.service';\nimport { ReadConfigService } from '../../shared/services/read-config.service';\nimport { UserService } from '../../shared/services/user.service';\nimport { TabStripComponent } from '@progress/kendo-angular-layout';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../../shared/services/toast-message.service';\nimport { FedTaxDetails, FedTaxDetailsAPI } from '../../models/FederalTaxDetails.model';\nimport { GoogleAnalyticsService } from '../../shared/services/google-analytics.service';\nimport { Router } from '@angular/router';\nimport { SetStyleService } from '../../shared/services/set-style.service';\n\n@Component({\n selector: 'app-federal-tax-withholding',\n templateUrl: './federal-tax-withholding.component.html',\n styleUrls: ['./federal-tax-withholding.component.css']\n})\n\nexport class FederalTaxWithholdingComponent implements OnInit {\n @Output() progressModel = new EventEmitter();\n maritalStatusItems: Array<{ key: string, value: string }> =\n [\n { key: 'S', value: 'Single or Married filing separately' },\n { key: 'M', value: 'Married filing jointly or Qualifying widow(er)' },\n { key: 'H', value: 'Head of household' }\n ];\n exemptionsList = [];\n maxExemptions: number;\n displayMessage: boolean;\n message: any;\n //init taxDetails\n DBTaxDetails: FedTaxDetailsAPI;\n selectedTaxDetails: FedTaxDetails = new FedTaxDetails();\n uniqueId: any;\n taxWithholdConfig: any;\n pdfConfig: any;\n W4Text: any;\n config: any;\n loading: boolean = true;\n option = '';\n userDetails: any;\n maxInput = 9999999.99;\n showTab: boolean;\n @ViewChild('tabstrip') tabstrip: TabStripComponent;\n showAppOutage: boolean;\n appOutageMessage: any;\n futureOutageMessage: any;\n showNoWizardMessage = false;\n showWizard: boolean;\n constructor(private retireeService: RetireeService,\n private readConfigService: ReadConfigService,\n private userService: UserService,\n private toastService: ToastMessageService,\n private googleAnalyticsService: GoogleAnalyticsService,\n private router: Router,\n private setStyleService: SetStyleService\n ) { }\n\n ngOnInit() {\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Federal Tax Withholding', 'Click', 10);\n // config of static text from DB\n this.W4Text = this.readConfigService.getW4TextFromDB();\n // get tax confi \n const taxWithholdConfig = this.readConfigService.getTaxWithholdingText().FederalText;\n this.userDetails = this.userService.getUserInputData();\n this.message = taxWithholdConfig.Message;\n this.pdfConfig = this.readConfigService.getTaxWithholdingText().SummaryText;\n // get retiree ID and fed tax details\n this.uniqueId = this.userService.getSelectedAccount().uniqueId;\n const inputData = {\n uniqueId: this.uniqueId,\n user: this.userDetails\n };\n this.retireeService.getFedTaxWithholding(inputData).subscribe((data: any) => {\n if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else if (data && data.statusCode === 200) {\n if (data.hideFeature) {\n // for app feature outage\n this.showAppOutage = true;\n this.appOutageMessage = data.outageMessage;\n this.showWizard = false;\n this.showTab = false;\n } else {\n this.futureOutageMessage = data.outageMessage;\n this.DBTaxDetails = data.result;\n this.resetSelectedValueToDefault();\n this.showWizard = true;\n this.showTab = true;\n }\n } else {\n this.toastService.getErrorMessage();\n }\n this.loading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n this.loading = false;\n });\n this.message = 'Note: ' + taxWithholdConfig.DisplayNote;\n this.maxExemptions = taxWithholdConfig.MaxExemptions;\n for (let i = 0; i <= this.maxExemptions; i++) {\n this.exemptionsList.push(i);\n }\n // set the current tab to selected style\n this.setSelectedTabStyle('progress' + 0);\n window.scroll(0, 0);\n setTimeout(() => this.setStyleService.setPanelBarStyle('Update Federal Tax Withholding'), 2000);\n }\n\n ngAfterViewChecked() {\n this.setSelectedTabStyle('progress' + 0);\n }\n\n setCurrentScreen(childEmitValues: any) {\n if (childEmitValues.hideTab === true) {\n this.showTab = false;\n return;\n } else {\n this.showTab = true;\n }\n if (childEmitValues.selected) {\n this.selectedTaxDetails = childEmitValues.selected;\n }\n if (childEmitValues.option && childEmitValues.option.length > 0) {\n this.option = childEmitValues.option;\n }\n if (childEmitValues.tabIndex === 0 && childEmitValues.option === 'no') {\n this.option = childEmitValues.option;\n this.selectedTaxDetails.maritalStatus = 'S';\n }\n if (childEmitValues.tabIndex === 0 && childEmitValues.option === '') {\n this.resetForm();\n this.option = '';\n }\n // retract if go prev\n if (childEmitValues.prev === true) {\n this.resetTabStyle('progress' + (childEmitValues.fromIndex))\n }\n this.tabstrip.selectTab(childEmitValues.tabIndex);\n this.setSelectedTabStyle('progress' + (childEmitValues.tabIndex));\n }\n\n // rest form value to values get from API\n resetForm() {\n this.resetSelectedValueToDefault();\n // reset all tab style \n for (let i = 1; i < 7; i++) {\n this.resetTabStyle('progress' + i);\n }\n }\n\n // reset selected values to default values \n resetSelectedValueToDefault() {\n // default marital status is Single \n this.selectedTaxDetails.maritalStatus = 'S';\n this.selectedTaxDetails.totalIncomeAmount = 0;\n this.selectedTaxDetails.totalCreditAmount = 0;\n this.selectedTaxDetails.otherIncomeAmount = 0;\n this.selectedTaxDetails.deductionAmount = 0;\n this.selectedTaxDetails.extraWithholdAmount = 0;\n this.selectedTaxDetails.fedExemptions = 0;\n this.selectedTaxDetails.fedExemptionTax = 0;\n this.selectedTaxDetails.maxAllowed = this.DBTaxDetails.maxAllowed;\n this.selectedTaxDetails.adjustedGross = this.DBTaxDetails.adjustedGross;\n this.selectedTaxDetails.jobIncomeAmount = 0;\n this.selectedTaxDetails.otherPensionAmount = 0;\n this.selectedTaxDetails.dependentCount = 0;\n this.selectedTaxDetails.otherDependentCount = 0;\n this.selectedTaxDetails.educationCreditAmount = 0;\n }\n\n setSelectedTabStyle(item: any) {\n const tabId = document.querySelector('#' + item);\n if (tabId != null) {\n const tabElement = (tabId as HTMLElement);\n tabElement.classList.add('text-white');\n tabElement.classList.add('background-red');\n tabElement.classList.add('active');\n tabElement.classList.remove('disabledbutton');\n }\n }\n\n resetTabStyle(item: any) {\n const tabElement = document.querySelector('#' + item);\n if (tabElement != null) {\n const progressItemsElement = (tabElement as HTMLElement);\n progressItemsElement.classList.remove('text-white');\n progressItemsElement.classList.remove('background-red');\n progressItemsElement.classList.remove('active');\n progressItemsElement.classList.add('disabledbutton');\n }\n }\n}\n","

Update Federal Tax Withholding

\n
\n
\n \n
\n
\n
Important:
\n
\n
\n
    \n
  • {{W4Text.W4Warning}}
  • \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n Withhold or Not\n Withhold or Not\n
\n \n
\n
\n
\n Marital Status\n Marital Status\n
\n \n
\n
\n
\n Income from Jobs & Annuities\n Income from Jobs & Annuities\n
\n \n
\n
\n
\n Tax Credit\n Tax Credits\n
\n \n
\n
\n
\n Adjustments\n Adjustments\n
\n \n
\n
\n
\n Summary\n Summary\n
\n \n
\n
\n
\n View and Sign\n View and Sign\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n
\n \n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n@Component({\n selector: 'app-incomes',\n templateUrl: './incomes.component.html',\n styleUrls: ['./incomes.component.css']\n})\nexport class IncomesComponent implements OnInit {\n @Input() W4Text: any;\n @Input() selectedTaxDetails : any;\n @Output() progressModel = new EventEmitter();\n @Input() maxInput: number;\n currentTabIndex = 2;\n totalTaxable = 0.00;\n validJobIncome = true;\n validOtherPensionIncome = true;\n goNext = !(this.validOtherPensionIncome && this.validJobIncome);\n\n constructor() { }\n\n ngOnInit() {\n this.totalTaxable = this.selectedTaxDetails.jobIncomeAmount + this.selectedTaxDetails.otherPensionAmount;\n }\n\n onJobIncomeAmountValueChange(event: any) {\n if (event === null) {\n this.selectedTaxDetails.jobIncomeAmount = 0.00;\n this.totalTaxable = event + this.selectedTaxDetails.otherPensionAmount;\n this.validJobIncome = true;\n this.goNext = !(this.validOtherPensionIncome && this.validJobIncome);\n this.selectedTaxDetails.totalIncomeAmount = this.totalTaxable;\n return;\n }\n if (event > this.maxInput) {\n this.validJobIncome = false;\n this.totalTaxable = event + this.selectedTaxDetails.otherPensionAmount;\n this.goNext = !(this.validOtherPensionIncome && this.validJobIncome);\n return;\n }\n if (event !== undefined && event !== null && event > -1) {\n this.validJobIncome = true;\n this.goNext = !(this.validOtherPensionIncome && this.validJobIncome);\n this.selectedTaxDetails.jobIncomeAmount = event;\n this.totalTaxable = event + this.selectedTaxDetails.otherPensionAmount;\n this.selectedTaxDetails.totalIncomeAmount = this.totalTaxable;\n }\n }\n\n onOtherPensionAmountValueChange(event: any) {\n if (event === null) {\n this.selectedTaxDetails.otherPensionAmount = 0.00;\n this.totalTaxable = event + this.selectedTaxDetails.jobIncomeAmount;\n this.validOtherPensionIncome = true;\n this.goNext = !(this.validOtherPensionIncome && this.validJobIncome);\n this.selectedTaxDetails.totalIncomeAmount = this.totalTaxable;\n return;\n }\n if (event > this.maxInput) {\n this.validOtherPensionIncome = false;\n this.goNext = !(this.validOtherPensionIncome && this.validJobIncome);\n this.totalTaxable = event + this.selectedTaxDetails.jobIncomeAmount;\n return;\n }\n if (event !== undefined && event !== null && event > -1) {\n this.validOtherPensionIncome = true;\n this.goNext = !(this.validOtherPensionIncome && this.validJobIncome);\n this.selectedTaxDetails.otherPensionAmount = event;\n this.totalTaxable = event + this.selectedTaxDetails.jobIncomeAmount;\n this.selectedTaxDetails.totalIncomeAmount = this.totalTaxable;\n }\n }\n nextScreen() {\n this.progressModel.emit({\n tabIndex: this.currentTabIndex + 1, \n selected: this.selectedTaxDetails,\n prev: false\n });\n }\n\n previousScreen() {\n this.progressModel.emit({ tabIndex: this.currentTabIndex - 1, \n selected: this.selectedTaxDetails,\n prev: true,\n fromIndex: this.currentTabIndex });\n }\n\n startOver() {\n this.progressModel.emit({ tabIndex: 0, option: '' });\n }\n}\n","\n
\n {{W4Text.W4Step2}}\n
{{W4Text.W4Step2a}}
\n
\n \n
\n
\n {{W4Text.W4Step2i}} \n
\n
\n \n $\n \n \n \n
\n
\n
maxInput\">\n \n You can only enter a value between 0 and {{maxInput | number : '1.2-2'}}.\n \n
\n \n
\n
\n {{W4Text.W4Step2ii}} \n
\n
\n \n $\n \n \n \n
\n
\n
maxInput\">\n \n You can only enter a value between 0 and {{maxInput | number : '1.2-2'}}.\n \n
\n \n
\n
\n \n {{W4Text.W4Step2iii}}\n \n
\n
\n \n $\n \n {{totalTaxable | number : '1.2-2'}}\n
\n
\n
\n
\n\n
\n \n
\n \n
\n \n
\n \n
\n \n
\n \n
\n
","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { DropDownListComponent } from '@progress/kendo-angular-dropdowns';\nimport { FedTaxDetails } from '../../../models/FederalTaxDetails.model';\n\n@Component({\n selector: 'app-marital-status',\n templateUrl: './marital-status.component.html',\n styleUrls: ['./marital-status.component.css']\n})\n\nexport class MaritalStatusComponent implements OnInit {\n currentTabIndex = 1;\n maritalStatusSelected: string;\n maritalItemsValues: any;\n @Input() maritalStatusItems: any;\n @Input() W4Step1: string;\n @Input() selectedTaxDetails: FedTaxDetails;\n @Output() progressModel = new EventEmitter();\n @ViewChild(\"dropdownlist\") public dropdownlist: DropDownListComponent;\n constructor() { }\n\n ngOnInit() {\n this.maritalStatusSelected = this.maritalStatusItems.filter(obj => obj.key === this.selectedTaxDetails.maritalStatus)[0].value;\n this.maritalItemsValues = this.maritalStatusItems.map((obj) => obj.value);\n this.onMaritalStatusChange(this.maritalStatusSelected);\n }\n\n onMaritalStatusChange(event: any) {\n if (event) {\n this.maritalStatusSelected = event;\n this.selectedTaxDetails.maritalStatus = this.maritalStatusItems.filter(obj => obj.value === event)[0].key;\n }\n }\n\n nextScreen() {\n this.progressModel.emit({\n tabIndex: this.currentTabIndex + 1,\n selected: this.selectedTaxDetails,\n prev: false\n });\n }\n\n previousScreen() {\n this.progressModel.emit({\n tabIndex: this.currentTabIndex - 1,\n selected: this.selectedTaxDetails,\n option: 'yes',\n prev: true,\n fromIndex: this.currentTabIndex\n });\n }\n\n startOver() {\n this.progressModel.emit({ tabIndex: 0, option: '' });\n }\n}\n","\n
\n
\n
\n Step 1 (c): {{W4Step1}}\n
\n \n \n
\n
\n
\n
\n\n
\n \n
\n \n
\n \n
\n \n
\n \n
\n \n
\n
","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\n\n\n@Component({\n selector: 'app-optional',\n templateUrl: './optional.component.html',\n styleUrls: ['./optional.component.css']\n})\nexport class OptionalComponent implements OnInit {\n @Input() W4Text: any;\n @Input() selectedTaxDetails: any;\n @Input() maxInput: number;\n @Output() progressModel = new EventEmitter();\n currentTabIndex = 4;\n validDeduction = true;\n validOthIncome = true;\n goNext = !(this.validOthIncome && this.validDeduction);\n\n constructor() { }\n\n ngOnInit() {\n this.onOtherIncomeAmountChange(this.selectedTaxDetails.otherIncomeAmount);\n this.onDeductionAmountChange(this.selectedTaxDetails.deductionAmount);\n }\n\n onOtherIncomeAmountChange(event: any) {\n if (event === null) {\n this.selectedTaxDetails.otherIncomeAmount = 0.00;\n this.validOthIncome = true;\n this.goNext = !(this.validOthIncome && this.validDeduction);\n return;\n }\n if (event > this.maxInput) {\n this.validOthIncome = false;\n this.goNext = !(this.validOthIncome && this.validDeduction);\n return;\n }\n this.selectedTaxDetails.otherIncomeAmount = event;\n this.validOthIncome = true;\n this.goNext = !(this.validOthIncome && this.validDeduction);\n }\n\n onDeductionAmountChange(event: any) {\n if (event === null) {\n this.selectedTaxDetails.deductionAmount = 0.00;\n this.validDeduction = true;\n this.goNext = !(this.validOthIncome && this.validDeduction);\n return;\n }\n if (event > this.maxInput) {\n this.validDeduction = false;\n this.goNext = !(this.validOthIncome && this.validDeduction);\n return;\n }\n this.selectedTaxDetails.deductionAmount = event;\n this.validDeduction = true;\n this.goNext = !(this.validOthIncome && this.validDeduction);\n }\n\n nextScreen() {\n this.progressModel.emit({\n tabIndex: this.currentTabIndex + 1,\n selected: this.selectedTaxDetails,\n prev: false\n });\n }\n\n previousScreen() {\n this.progressModel.emit({\n tabIndex: this.currentTabIndex - 1,\n selected: this.selectedTaxDetails,\n prev: true,\n fromIndex: this.currentTabIndex\n });\n }\n\n startOver() {\n this.progressModel.emit({ tabIndex: 0, option: '' });\n }\n}\n","\n
\n {{W4Text.W4Step4}}\n
\n \n
\n
\n {{W4Text.W4Step4a}}\n
\n
\n \n $\n \n \n \n
\n
\n
maxInput\">\n \n You can only enter a value between 0 and {{maxInput | number : '1.2-2'}}.\n \n
\n \n
\n
\n \n {{W4Text.W4Step4b}}\n IRS W4P\n Form\n and enter the result here\n \n
\n
\n \n $\n \n \n \n
\n
\n
maxInput\">\n \n You can only enter a value between 0 and {{maxInput | number : '1.2-2'}}.\n \n
\n
\n
\n\n
\n \n
\n \n
\n \n
\n \n
\n \n
\n \n
\n
\n","import { DatePipe } from '@angular/common';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { DocumentService } from '../../../shared/services/document.service';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\nimport { RetireeService } from '../../../shared/services/retiree.service';\nimport { ToastMessageService } from '../../../shared/services/toast-message.service';\nimport { UserService } from '../../../shared/services/user.service';\n\n@Component({\n selector: 'app-show-form',\n templateUrl: './show-form.component.html',\n styleUrls: ['./show-form.component.css']\n})\nexport class ShowFormComponent implements OnInit {\n @ViewChild('pdfViewerOnDemand') pdfViewerOnDemand: any;\n @Input() retireeId: Number;\n @Input() selectedTaxDetails: any;\n @Input() W4Text: any;\n @Input() option: any;\n @Output() progressModel = new EventEmitter();\n currentTabIndex = 6;\n pdfConfig: any;\n letterData: any;\n dbData: any;\n disclaimer: any;\n taxWithholdConfig: any;\n loading = true;\n signature: string = \"\";\n prevTab: string;\n disableNextBtn = true;\n disablePrevBtn = true;\n showPrevBtn: boolean;\n trsacType: any;\n signName: any;\n showSuccessChange = false;\n showPdf = true;\n showErrorChange = false;\n showNoChange = false;\n encryptedId: any;\n accountId: any;\n docId: any;\n userDetails: any;\n transactionType: any;\n showEsign = false;\n datePipe: DatePipe;\n updateDone = false;\n updating = false;\n pdfLoading = false;\n\n constructor(\n private documentService: DocumentService,\n private readConfigService: ReadConfigService,\n private retireeService: RetireeService,\n private userService: UserService,\n private toastService: ToastMessageService,\n private router: Router){\n }\n\n ngOnInit() {\n this.datePipe = new DatePipe('en-US');\n this.transactionType = this.readConfigService.getTransactionType('UpdateTaxWithholding');\n this.userDetails = this.userService.getUserInputData();\n this.showPrevBtn = true;\n this.taxWithholdConfig = this.readConfigService.getTaxWithholdingText();\n this.pdfConfig = this.readConfigService.getTaxWithholdingText().SummaryText;\n if (this.option === 'no') {\n this.resetSelectedTaxDetails();\n }\n this.letterData = this.option === 'yes' ? {\n MaritalStatus: this.selectedTaxDetails ? this.selectedTaxDetails.maritalStatus : '',\n JobIncome: this.selectedTaxDetails ? this.selectedTaxDetails.jobIncomeAmount : 0,\n PensionIncome: this.selectedTaxDetails ? this.selectedTaxDetails.otherPensionAmount : 0,\n ChildCredits: this.selectedTaxDetails ? this.selectedTaxDetails.dependentCount * 2000 : 0,\n OthDepCredits: this.selectedTaxDetails ? this.selectedTaxDetails.otherDependentCount * 500 : 0,\n OtherCredits: this.selectedTaxDetails ? this.selectedTaxDetails.educationCreditAmount : 0,\n OtherIncome: this.selectedTaxDetails ? this.selectedTaxDetails.otherIncomeAmount : 0,\n Deductions: this.selectedTaxDetails ? this.selectedTaxDetails.deductionAmount : 0,\n ExtraWithholding: this.selectedTaxDetails ? this.selectedTaxDetails.extraWithholdAmount : 0,\n NoTaxWithholding: this.option === 'no'\n } : {\n MaritalStatus: this.selectedTaxDetails ? this.selectedTaxDetails.maritalStatus : '',\n JobIncome: 0,\n PensionIncome: 0,\n ChildCredits: 0,\n OthDepCredits: 0,\n OtherCredits: 0,\n OtherIncome: 0,\n Deductions: 0,\n ExtraWithholding: 0,\n NoTaxWithholding: this.option === 'no'\n };\n this.prevTab = this.option === 'no' ? 'Withhold or Not' : this.option === 'yes' ? 'Summary' : null;\n //get filled PDF for display\n const inputData = {\n data: {\n ...this.letterData,\n Signature: '',\n EncryptedId: this.userService.getSelectedAccount().uniqueId\n },\n user: this.userDetails\n };\n this.documentService.getFedTaxWithholdingLetter(inputData).subscribe((response) => {\n if (response && response.length > 1) {\n setTimeout(() => {\n this.pdfViewerOnDemand.pdfSrc = response;\n this.pdfViewerOnDemand.refresh();\n }, 100);\n setTimeout(() => {\n this.loading = false;\n this.disableNextBtn = false;\n this.disablePrevBtn = false;\n this.showEsign = true;\n }, 500);\n } else {\n // no reponse then send err MSG\n this.loading = false;\n this.showPdf = false;\n this.showErrorChange = true;\n this.pdfConfig.ErrorMessage = this.documentService.errorMessage;\n }\n },\n (err: HttpErrorResponse) => {\n this.loading = false;\n this.showPdf = false;\n this.showErrorChange = true;\n this.pdfConfig.ErrorMessage = this.documentService.errorMessage;\n console.log(err.error);\n });\n }\n\n resetSelectedTaxDetails() {\n this.selectedTaxDetails.maritalStatus = '';\n this.selectedTaxDetails.totalIncomeAmount = 0;\n this.selectedTaxDetails.totalCreditAmount = 0;\n this.selectedTaxDetails.otherIncomeAmount = 0;\n this.selectedTaxDetails.deductionAmount = 0;\n this.selectedTaxDetails.extraWithholdAmount = 0;\n this.selectedTaxDetails.fedExemptions = 99;\n this.selectedTaxDetails.fedExemptionTax = 0;\n this.selectedTaxDetails.jobIncomeAmount = 0;\n this.selectedTaxDetails.otherPensionAmount = 0;\n this.selectedTaxDetails.dependentCount = 0;\n this.selectedTaxDetails.otherDependentCount = 0;\n this.selectedTaxDetails.educationCreditAmount = 0;\n this.selectedTaxDetails.fedExemptionTax = 0;\n }\n\n previousScreen() {\n if (this.option === 'no') {\n this.progressModel.emit({\n tabIndex: 0,\n option: 'no',\n prev: true,\n fromIndex: this.currentTabIndex\n });\n } else {\n this.progressModel.emit({\n tabIndex: this.currentTabIndex - 1,\n prev: true,\n fromIndex: this.currentTabIndex\n });\n }\n }\n\n startOver() {\n this.progressModel.emit({ tabIndex: 0, option: '', prev: false, hideTab: false });\n }\n\n esignResponse(event: any) {\n this.updating = true;\n const today = this.datePipe.transform(new Date(), 'MM/dd/yyyy');\n if (event.btnClicked === 'cancel') {\n // go back to first screen\n this.startOver();\n } else if (event.btnClicked === 'continue' && event.transacCreated) {\n this.signName = event.signName;\n const signInfo = {\n loginTime: this.userService.getLastLoginTime(),\n signDate: today,\n signature: this.signName\n };\n this.accountId = this.userService.getMdsAccountId();\n this.dbData = this.option === 'yes' ? {\n Id: this.userService.getSelectedAccount().uniqueId,\n MaritalStatus: this.selectedTaxDetails.maritalStatus,\n FedExemptions: this.selectedTaxDetails.fedExemptions,\n FedExemptionTax: this.selectedTaxDetails.fedExemptionTax,\n FedFlatTax: this.selectedTaxDetails.extraWithholdAmount,\n TotIncome: this.selectedTaxDetails.totalIncomeAmount,\n TotTaxCredit: this.selectedTaxDetails.totalCreditAmount,\n OthIncome: this.selectedTaxDetails.otherIncomeAmount,\n Deductions: this.selectedTaxDetails.deductionAmount\n } : {\n Id: this.userService.getSelectedAccount().uniqueId,\n MaritalStatus: this.selectedTaxDetails.maritalStatus,\n FedExemptions: 99,\n FedExemptionTax: 0,\n FedFlatTax: 0,\n TotIncome: 0,\n TotTaxCredit: 0,\n OthIncome: 0,\n Deductions: 0\n };\n const inputData = {\n letterData: {\n ...this.letterData,\n FedExemptionTax: this.selectedTaxDetails.fedExemptionTax,\n ...signInfo,\n encryptedId: this.userService.getSelectedAccount().uniqueId,\n },\n user: this.userDetails,\n data: this.dbData,\n accountId: this.accountId\n };\n this.retireeService.updateFedTaxWithholding(inputData).subscribe((data: any) => {\n if (data && data.statusCode === 200 && data.result) {\n this.progressModel.emit({ hideTab: true });\n this.showSuccessChange = true;\n this.showPdf = false;\n this.docId = data.result;\n this.updateDone = true;\n this.showEsign = false;\n this.loading = false;\n }\n },\n (err: HttpErrorResponse) => {\n this.showPdf = false;\n this.showEsign = false;\n this.updateDone = true;\n console.log(err);\n this.loading = false;\n this.showErrorChange = true;\n });\n }\n }\n\n viewSignedTaxWithholdingLetter() {\n this.pdfLoading = true;\n // will download the signed W4 form to user local\n this.documentService.getMyDocument(this.docId, this.userDetails, \"Federal Tax Withholding Form\").subscribe(() => {\n this.pdfLoading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.pdfLoading = false;\n this.toastService.getErrorMessage();\n });\n }\n\n goToVa() {\n const panel = document.getElementById('account-nav');\n const accountPanel = panel.querySelectorAll('kendo-panelbar-item')[0];\n const taxPanel = panel.querySelectorAll('kendo-panelbar-item')[3];\n if (accountPanel) {\n const selectElement = accountPanel.querySelector('.k-link');\n const objHtmlElement = (selectElement as HTMLElement);\n objHtmlElement.classList.add('k-selected');\n }\n if (taxPanel) {\n const selectElement = taxPanel.querySelector('.k-link');\n const objHtmlElement = (selectElement as HTMLElement);\n objHtmlElement.classList.remove('k-selected');\n }\n this.router.navigateByUrl('/' + this.router.url.split('/')[1] + '/View Account');\n }\n}\n","
\n
{{W4Text.W4Sign}}
\n \n
\n
\n \n \n
\n
\n\n
\n
\n
\n
\n \n {{pdfConfig.FedSignDisclaimer}}\n \n
\n
\n \n \n
\n
\n\n
\n \n
\n \n
\n \n
\n \n
\n
\n\n\n\n
\n
\n \n {{pdfConfig.NoChangeMessage}}\n \n
\n
\n
\n
\n \n {{pdfConfig.SuccessMessage}}\n \n \n
\n \n
\n
\n
\n
\n
\n \n {{pdfConfig.ErrorMessage}}\n \n
\n
\n
\n
\n \n
\n \n
\n \n
\n
\n","import { HttpErrorResponse } from '@angular/common/http';\nimport { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FedTaxDetailsAPI } from '../../../models/FederalTaxDetails.model';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\nimport { RetireeService } from '../../../shared/services/retiree.service';\nimport { ToastMessageService } from '../../../shared/services/toast-message.service';\nimport { UserService } from '../../../shared/services/user.service';\n\n@Component({\n selector: 'app-summary',\n templateUrl: './summary.component.html',\n styleUrls: ['./summary.component.css']\n})\nexport class SummaryComponent implements OnInit {\n @Input() W4Text: any;\n @Input() DBTaxDetails: any;\n @Input() selectedTaxDetails: any;\n @Input() maritalStatusItems: any;\n @Output() progressModel = new EventEmitter();\n selectedMaritalValue: string;\n DBMaritalValue: string;\n payCheckValue: number;\n newFedTax: number;\n currentTabIndex = 5;\n userDetails: any;\n goNext = false;\n maxExemptionFloor: number;\n infoIconMessage:any;\n constructor(private retireeService: RetireeService,\n private toastService: ToastMessageService,\n private readConfigService: ReadConfigService,\n private userService: UserService) { }\n\n ngOnInit() {\n this.maxExemptionFloor = Math.floor(this.selectedTaxDetails.maxAllowed);\n this.userDetails = this.userService.getUserInputData();\n this.selectedMaritalValue = this.maritalStatusItems.filter(obj => obj.key === this.selectedTaxDetails.maritalStatus)[0].value;\n this.DBMaritalValue = this.DBTaxDetails.maritalStatus.length > 0\n ? this.maritalStatusItems.filter(obj => obj.key === this.DBTaxDetails.maritalStatus)[0].value\n : '';\n // update current tax details\n this.calculateFedTaxAmount();\n this.selectedTaxDetails.fedExemptionTax = this.newFedTax;\n this.selectedTaxDetails.fedExemptions = 0;\n this.infoIconMessage = this.readConfigService.getTaxWithholdingText().FederalText.Warning;\n }\n\n onExtraWithholdAmountChange(event: any) {\n if (event === null || event == 0) {\n this.selectedTaxDetails.extraWithholdAmount = 0.00;\n this.goNext = false;\n return;\n }\n if (event > this.DBTaxDetails.maxAllowed - this.newFedTax) {\n this.goNext = true;\n return;\n }\n this.selectedTaxDetails.extraWithholdAmount = event;\n this.goNext = false;\n }\n\n calculateFedTaxAmount() {\n const taxData =\n {\n id: this.DBTaxDetails.id,\n adjustedGross: this.selectedTaxDetails.adjustedGross,\n maritalStatus: this.selectedTaxDetails.maritalStatus,\n fedExemptions: 0,\n fedExemptionTax: 0,\n maxAllowed: 0,\n totTaxCredit: this.selectedTaxDetails.totalCreditAmount,\n totIncome: this.selectedTaxDetails.totalIncomeAmount,\n othIncome: this.selectedTaxDetails.otherIncomeAmount,\n deductions: this.selectedTaxDetails.deductionAmount,\n fedFlatTax: this.selectedTaxDetails.extraWithholdAmount,\n uid: this.DBTaxDetails.uid\n };\n this.retireeService.calculateFedTaxWithholding(taxData, this.userDetails).subscribe((data: any) => {\n if (data.success) {\n this.newFedTax = data.result;\n this.onExtraWithholdAmountChange(this.newFedTax < this.maxExemptionFloor ? this.selectedTaxDetails.extraWithholdAmount : 0);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n });\n }\n\n nextScreen() {\n this.selectedTaxDetails.fedExemptionTax = this.newFedTax < this.maxExemptionFloor ? this.newFedTax : this.maxExemptionFloor;\n this.progressModel.emit({\n tabIndex: this.currentTabIndex + 1,\n selected: this.selectedTaxDetails,\n option: 'yes',\n prev: false\n });\n }\n\n previousScreen() {\n this.progressModel.emit({\n tabIndex: this.currentTabIndex - 1,\n selected: this.selectedTaxDetails,\n prev: true,\n fromIndex: this.currentTabIndex\n });\n }\n\n startOver() {\n this.progressModel.emit({ tabIndex: 0, option: '' });\n }\n\n}\n","\r\n
\r\n
\r\n {{W4Text.W4Step4}}\r\n
\r\n \r\n
\r\n
\r\n {{W4Text.W4Step4c}}\r\n \r\n
\r\n
\r\n \r\n $\r\n \r\n = selectedTaxDetails.maxAllowed\" decimals='0' [format]=\"'n0'\" [min]=\"0\" [autoCorrect]=\"true\"\r\n [spinners]=\"false\" ngDefaultControl>\r\n \r\n
\r\n
\r\n
\r\n
= selectedTaxDetails.maxAllowed\">\r\n \r\n \r\n
\r\n
selectedTaxDetails.maxAllowed - newFedTax\">\r\n \r\n You can only enter a value between 0 and {{selectedTaxDetails.maxAllowed - newFedTax}}.\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n Federal Tax Withholding\r\n
\r\n
\r\n \r\n \r\n Existing\r\n \r\n \r\n \r\n New\r\n \r\n
\r\n Marital Status\r\n \r\n {{DBMaritalValue}}\r\n \r\n {{selectedMaritalValue}}\r\n
\r\n Income from Jobs & Annuities\r\n \r\n ${{DBTaxDetails.totIncome | number : '1.2-2'}}\r\n \r\n \r\n ${{selectedTaxDetails.totalIncomeAmount | number : '1.2-2'}}\r\n \r\n
\r\n Tax Credits\r\n \r\n ${{DBTaxDetails.totTaxCredit | number : '1.2-2'}}\r\n \r\n ${{selectedTaxDetails.totalCreditAmount | number : '1.2-2'}}\r\n
\r\n Other Income\r\n \r\n ${{DBTaxDetails.othIncome | number : '1.2-2'}}\r\n \r\n ${{selectedTaxDetails.otherIncomeAmount | number : '1.2-2'}}\r\n
\r\n Deductions\r\n \r\n ${{DBTaxDetails.deductions | number : '1.2-2'}}\r\n \r\n \r\n ${{\r\n selectedTaxDetails.deductionAmount | number : '1.2-2'\r\n }}\r\n \r\n
\r\n Exemption Amount\r\n \r\n ${{DBTaxDetails.fedExemptionTax | number : '1.2-2'}}\r\n \r\n ${{newFedTax < selectedTaxDetails.maxAllowed ? (newFedTax | number : '1.2-2' ) :\r\n (maxExemptionFloor | number : '1.2-2' )}} \r\n
\r\n Extra Withholding\r\n \r\n ${{DBTaxDetails.fedFlatTax | number : '1.2-2'}}\r\n \r\n ${{selectedTaxDetails.extraWithholdAmount | number : '1.2-2'}}\r\n
\r\n Total Tax Withhold\r\n \r\n \r\n \r\n ${{\r\n DBTaxDetails.fedExemptionTax +\r\n DBTaxDetails.fedFlatTax | number : '1.2-2'\r\n }}\r\n \r\n \r\n \r\n \r\n ${{newFedTax < selectedTaxDetails.maxAllowed ?\r\n (selectedTaxDetails.extraWithholdAmount + newFedTax | number : '1.2-2' ): (maxExemptionFloor | number\r\n : '1.2-2' )}}\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n
= selectedTaxDetails.maxAllowed\" class=\"disclaimer-note display-flex margin-10\">\r\n
\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n
","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'app-withhold-or-not',\n templateUrl: './withhold-or-not.component.html',\n styleUrls: ['./withhold-or-not.component.css']\n})\nexport class WithholdOrNotComponent implements OnInit {\n constructor() { }\n showNextBtn = false;\n currentTabIndex = 0;\n nextTab: string;\n withhold: boolean;\n @Input() option: string;\n @Input() StartOption: string;\n @Output() progressModel = new EventEmitter();\n \n ngOnInit() {\n if (this.option && this.option.length > 0 ) {\n this.withholdFromPension(this.option);\n const radio = document.getElementById(this.option + '-change') as HTMLInputElement;\n if (radio) {\n radio.checked = true;\n }\n this.withhold = this.option === 'yes';\n }\n }\n\n //screen1 selected yes can go to screen2 \n withholdFromPension(option: any) {\n if (option === 'yes') {\n this.withhold = true;\n this.showNextBtn = true;\n this.nextTab = 'Marital Status';\n } else if (option === 'no') {\n this.withhold = false;\n this.showNextBtn = true;\n this.nextTab = 'View and Sign';\n }\n }\n\n nextScreen() {\n if (this.withhold) {\n this.progressModel.emit({\n tabIndex: this.currentTabIndex + 1,\n option: '',\n prev: false\n });\n } else {\n this.progressModel.emit({\n tabIndex: 6,\n option: 'no',\n prev: false\n });\n }\n }\n}\n","\n
\n
\n
\n
\n {{StartOption}} \n
\n
\n \n \n \n \n
\n
\n
\n
\n\n
\n
\n
\n \n
\n \n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { UserService } from '../../shared/services/user.service';\nimport { DocumentService } from '../../shared/services/document.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { MysrpsAppService } from '../../shared/services/mysrps-app.service';\nimport { ToastMessageService } from '../../shared/services/toast-message.service';\nimport { ReadConfigService } from '../../shared/services/read-config.service';\nimport { Router } from '@angular/router';\nimport { RetireeService } from '../../shared/services/retiree.service';\nimport { SetStyleService } from '../../shared/services/set-style.service';\n\n@Component({\n selector: 'app-income-verification',\n templateUrl: './income-verification.component.html',\n styleUrls: ['./income-verification.component.css']\n})\n\nexport class IncomeVerificationComponent implements OnInit {\n letterHeading: any;\n accountId: any;\n dataLoading = false;\n userDetails: any;\n showAppOutage: boolean;\n appOutageMessage: any;\n futureOutageMessage: any;\n constructor(\n private documentService: DocumentService,\n private readConfigService: ReadConfigService,\n private userService: UserService,\n private retireeService: RetireeService,\n private router: Router,\n private toastService: ToastMessageService,\n private setStyleService: SetStyleService) { }\n\n ngOnInit() {\n this.letterHeading = this.readConfigService.getLetterHeading();\n this.userDetails = this.userService.getUserInputData();\n this.showComponent();\n setTimeout(() => this.setStyleService.setPanelBarStyle('Income Verification'), 2000);\n }\n\n showComponent() {\n this.retireeService.getIncomeOutage(this.userDetails).subscribe((data: any) => {\n if (data.statusCode === 200) {\n if (data.hideFeature) {\n // for app feature outage\n this.showAppOutage = true;\n this.appOutageMessage = data.outageMessage;\n } else {\n this.futureOutageMessage = data.outageMessage;\n }\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.toastService.getErrorMessage();\n });\n }\n\n /**\n * @description\n * Function to get Income Verification Letter\n */\n viewIncomeLetter() {\n this.accountId = this.userService.getMdsAccountId();\n this.dataLoading = true;\n const selectedAccount = this.userService.getSelectedAccount();\n if (selectedAccount !== null && this.accountId) {\n let letterType: any;\n switch (selectedAccount.status) {\n case 'Alternate Payee':\n letterType = 'A';\n break;\n case 'Alternate Payee (Payment Suspended)':\n letterType = 'AS';\n break;\n case 'Retiree (Payment Suspended)':\n case 'Beneficiary of Deceased Retiree (Payment Suspended)':\n letterType = 'RS';\n break;\n default:\n letterType = 'R';\n break;\n }\n const uniqueId = selectedAccount.uniqueId;\n this.documentService.getIncomeLetter(uniqueId, letterType, this.accountId, this.userDetails)\n .subscribe(() => {\n this.dataLoading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.dataLoading = false;\n this.toastService.getErrorMessage();\n });\n } else {\n this.dataLoading = false;\n this.toastService.getErrorMessage();\n }\n }\n}\n","

Income Verification

\n
\n \n
\n \n
\n
\n {{letterHeading}}Income Verification letter.\n \n
\n \n
\n
\n
\n
\n \n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-payeeretiree-panel',\n templateUrl: './payeeretiree-panel.component.html',\n styleUrls: ['./payeeretiree-panel.component.css']\n})\nexport class PayeeRetireePanelComponent implements OnInit {\n constructor() { }\n\n ngOnInit() {\n }\n}\n","\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n","import { Component, OnInit, ViewChild, ViewEncapsulation } from '@angular/core';\nimport { RetireeService } from '../../shared/services/retiree.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { GroupDescriptor, DataResult, process } from '@progress/kendo-data-query';\nimport { GridComponent } from '@progress/kendo-angular-grid';\nimport { UserService } from '../../shared/services/user.service';\nimport { ToastMessageService } from '../../shared/services/toast-message.service';\nimport { Router } from '@angular/router';\nimport { DatePipe } from '@angular/common';\nimport { ReadConfigService } from '../../shared/services/read-config.service';\nimport { SetStyleService } from '../../shared/services/set-style.service';\n\n@Component({\n selector: 'app-payment-history',\n templateUrl: './payment-history.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrls: [`./payment-history.component.css`]\n})\nexport class PaymentHistoryComponent implements OnInit {\n paymentHistory: any;\n ded: any;\n deducId: any;\n deductions: any;\n gridData: any;\n gridLoading: boolean;\n @ViewChild(GridComponent) grid: GridComponent;\n groupLength: number;\n paymentType: string;\n docId = new Date();\n showAppOutage: any;\n appOutageMessage: any;\n futureOutageMessage: any;\n scrollMessage: any;\n constructor(\n private retireeService: RetireeService,\n private userService: UserService,\n private toastService: ToastMessageService,\n private readConfigService: ReadConfigService,\n private router: Router,\n private setStyleService: SetStyleService\n ) {\n }\n\n public groups: GroupDescriptor[] = [{ field: 'calenderYear', dir: 'desc' }];\n public gridView: DataResult;\n\n public ngOnInit(): void {\n this.gridLoading = true;\n this.scrollMessage = this.readConfigService.getMobileScrollMessage();\n this.loadPaymentHistory();\n setTimeout(() => this.setStyleService.setPanelBarStyle('Payment History') , 2000);\n }\n\n /**\n * @description\n * Function to load the payment history details\n */\n loadPaymentHistory() {\n const account = this.userService.getSelectedAccount();\n const datePipe = new DatePipe('en-US');\n if (account !== null) {\n const accountLabel = account.label.split('|');\n const location = accountLabel[3];\n const system = accountLabel[4];\n const userDetails = this.userService.getUserInputData();\n this.retireeService.getPaymentHistory(location, system, userDetails).subscribe((data: any) => {\n if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else if (data.statusCode === 200) {\n if (data.hideFeature) {\n // for app feature outage\n this.showAppOutage = true;\n this.appOutageMessage = data.outageMessage;\n } else {\n this.futureOutageMessage = data.outageMessage;\n this.paymentHistory = data.result;\n // inserting payment type to payment history grid details\n this.paymentHistory.forEach((element: any) => {\n this.paymentType = element.netAmount < 0 ? 'Cancellation' : element.bankAccount === '' ? 'Check' : 'Direct Deposit';\n element.paymentType = this.paymentType;\n // formatting the date\n element.payDate = new Date(datePipe.transform(element.payDate, 'MM/dd/yyyy'));\n });\n this.gridView = process(this.paymentHistory, { group: this.groups });\n // expanding and collapsing of groups\n this.groupLength = this.gridView.data.length;\n for (let i = 1; i < this.groupLength; i++) {\n this.grid.collapseGroup(i.toString());\n }\n }\n } else {\n this.toastService.getErrorMessage();\n }\n this.gridLoading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n this.gridLoading = false;\n });\n }\n }\n\n /**\n * @description\n * Function to load deductions for the deductions grid\n */\n loadDeductions(record: any) {\n return this.retireeService.getDeductions(record);\n }\n\n /**\n * @description\n * Function to expand only one payment history details (inner) grid\n *\n * @param e event\n */\n onExpand(e: any) {\n for (let i = 0; i < this.gridView.total; i++) {\n if (i === e.index) {\n continue;\n }\n this.grid.collapseRow(i);\n }\n }\n}\n\n","
\n

Payment History

\n
\n \n
\n \n
\n
\n \n
\n \n
\n \n \n \n
{{dataItem.payDate | date:'MM/dd/yyyy'}}
\n
\n
\n \n \n
{{dataItem.paymentType}}
\n
\n
\n \n \n
{{dataItem.chkNo}}
\n
\n
\n \n \n
{{ dataItem.grossAmount | currency:'USD'}}
\n
\n
\n \n \n
{{ dataItem.totalDeductions | currency:'USD'}}
\n
\n
\n \n \n
{{ dataItem.netAmount | currency:'USD'}}
\n
\n
\n \n \n
{{ dataItem.calenderYear }}
\n
\n
\n \n
\n

Address:
\n {{dataItem.address1}}\n
{{dataItem.address2}}\n
{{dataItem.cityStateZip}}\n

\n

Bank Name:\n {{dataItem.bankName}}\n
\n Bank Account: {{dataItem.bankAccount}}

\n \n
\n \n \n \n \n
{{ dataItem.value | currency:'USD'}}
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n","import { Component, OnInit, Input } from '@angular/core';\nimport { RetireeService } from '../../../shared/services/retiree.service';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-retiree-benefit-info',\n templateUrl: './retiree-benefit-info.component.html',\n styleUrls: ['./retiree-benefit-info.component.css']\n})\nexport class RetireeBenefitInfoComponent implements OnInit {\n @Input() RetireeInfo: any;\n @Input() IconInfo: any;\n lastPaymentDate: any;\n nextPaymentDate: any;\n paymentMode: any;\n addressLine1: any;\n addressLine2: any;\n cityStateZip: any;\n eftComplianceMessage: any;\n bankName: any;\n bankRoutingNumber: any;\n bankAccount: any;\n baseBenefit: any;\n isCostOfLivingAdjustment: boolean;\n isAdditionalAnnuity: boolean;\n adjustedGrossBenefit: any;\n federalTaxes: any;\n mdStateTaxes: any;\n netBenefit: any;\n isEdroAmount: boolean;\n isWorkmanCompensation: boolean;\n totalDeductions: any;\n gridData: any;\n showAdditions: boolean;\n showSubtractions: boolean;\n deductions: any;\n baseBenefitInfo = '';\n aBaseBenefitInfo = '';\n colaInfo = '';\n aaInfo = '';\n stBaseBenefitInfo = '';\n edroAmountInfo = '';\n wcInfo = '';\n scrollMessage: any;\n constructor(private retireeService: RetireeService,\n private readConfigService: ReadConfigService) { }\n\n ngOnInit() {\n if (this.RetireeInfo !== undefined) {\n this.scrollMessage = this.readConfigService.getMobileScrollMessage();\n this.lastPaymentDate = this.RetireeInfo.lastPaymentDate;\n this.nextPaymentDate = this.RetireeInfo.nextPaymentDate;\n this.paymentMode = this.RetireeInfo.paymentMode.toLowerCase();\n this.addressLine1 = this.RetireeInfo.addressLine1;\n this.addressLine2 = this.RetireeInfo.addressLine2;\n this.cityStateZip = this.RetireeInfo.cityStateZip;\n this.eftComplianceMessage = this.RetireeInfo.eftComplianceMessage;\n this.bankName = this.RetireeInfo.bankName;\n this.bankRoutingNumber = this.RetireeInfo.bankRoutingNumber;\n this.bankAccount = this.RetireeInfo.bankAccount;\n // benefit amounts\n this.baseBenefit = this.RetireeInfo.baseBenefit;\n this.isCostOfLivingAdjustment = this.RetireeInfo.costOfLivingAdjustment > 0;\n this.isAdditionalAnnuity = this.RetireeInfo.additionalAnnuity > 0;\n this.showAdditions = this.isAdditionalAnnuity || this.isCostOfLivingAdjustment;\n this.adjustedGrossBenefit = this.RetireeInfo.adjustedGrossBenefit;\n this.federalTaxes = this.RetireeInfo.federalTaxes;\n this.mdStateTaxes = this.RetireeInfo.mdStateTaxes;\n this.netBenefit = this.RetireeInfo.netBenefit;\n this.isEdroAmount = this.RetireeInfo.edroAmount > 0;\n this.isWorkmanCompensation = this.RetireeInfo.workmanCompensation > 0;\n this.showSubtractions = this.isEdroAmount || this.isWorkmanCompensation;\n this.totalDeductions = this.RetireeInfo.totalDeductions;\n this.loadDeductionTable();\n }\n if (this.IconInfo !== undefined && this.IconInfo !== null) {\n this.loadInfoIcons();\n }\n }\n\n /**\n * @description\n * Function to load deductions in a table\n */\n loadDeductionTable() {\n this.deductions = this.retireeService.getDeductions(this.RetireeInfo);\n }\n\n loadInfoIcons() {\n this.baseBenefitInfo = this.getIconDescription('Base Benefit');\n this.aBaseBenefitInfo = this.getIconDescription('Addition(s) to Base Benefit');\n this.colaInfo = this.getIconDescription('Cost of Living Adjustment');\n this.aaInfo = this.getIconDescription('Additional Annuity');\n this.stBaseBenefitInfo = this.getIconDescription('Subtraction(s) to Base Benefit');\n this.edroAmountInfo = this.getIconDescription('EDRO Amount');\n this.wcInfo = this.getIconDescription('Benefit Recovery Offset');\n }\n\n getIconDescription(label: any): any {\n const descItem = this.IconInfo.filter((item: any) => item.label === label)[0];\n return descItem !== undefined ? descItem.description : '';\n }\n}\n\n\n","
\n
\n \n
\n

Dates

\n
\n
\n \n Last Payment Date: {{lastPaymentDate | date: 'MM/dd/yyyy'}}\n \n
\n
\n \n Next Payment Date: {{nextPaymentDate | date: 'MM/dd/yyyy'}}\n \n
\n
\n
\n \n \n
\n

Check

\n
\n
\n \n Mailing Address:\n
\n {{addressLine1}}\n
\n
\n \n {{addressLine2}}\n \n
\n
\n {{cityStateZip}}\n
\n
\n
\n \n
\n {{eftComplianceMessage}}\n
\n
\n
\n
\n
\n \n \n
\n

Direct Deposit

\n
\n
\n \n Bank Name: {{bankName}}\n \n
\n
\n \n Bank Routing Number: {{bankRoutingNumber}}\n \n
\n
\n \n Bank Account: {{bankAccount}}\n \n
\n
\n
\n \n \n
\n

Benefit Information

\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n Base Benefit \n \n {{RetireeInfo.baseBenefit | currency:'USD'}}\n
\n Addition(s) to Base Benefit \n
\n
\n Cost of Living Adjustment \n
\n
\n Additional Annuity \n
\n
\n
\n {{RetireeInfo.costOfLivingAdjustment | currency:'USD'}}\n
\n
\n {{RetireeInfo.additionalAnnuity | currency:'USD'}}\n
\n
\n Subtraction(s) to Base Benefit \n
\n
\n EDRO Amount \n
\n
\n Benefit Recovery Offset \n
\n
\n
\n {{RetireeInfo.edroAmount | currency:'USD'}}\n
\n
\n {{RetireeInfo.workmanCompensation | currency:'USD'}}\n
\n
\n Adjusted Gross Benefit\n \n {{RetireeInfo.adjustedGrossBenefit | currency:'USD'}}\n
\n Deductions\n
\n {{deduction.name}}\n \n {{deduction.value | currency:'USD'}}\n
\n Deductions Total\n \n {{totalDeductions | currency:'USD'}}\n
\n Net Benefit\n \n {{netBenefit| currency:'USD'}}\n
\n
\n
\n \n
\n
\n
\n
\n","import { Component, OnInit, Input } from '@angular/core';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-retiree-retirement-info',\n templateUrl: './retiree-retirement-info.component.html',\n styleUrls: ['./retiree-retirement-info.component.css']\n})\nexport class RetireeRetirementInfoComponent implements OnInit {\n @Input() RetireeInfo: any;\n @Input() IconInfo: any;\n retirementDate: any;\n retirementType: any;\n optionSelected: any;\n optionDescription: any;\n presentValueLabel: any;\n showPresentValue: boolean;\n showEarningsLimitation: boolean;\n optionHeading: any;\n options: any;\n eLimitationInfo = '';\n constructor(private readConfigService: ReadConfigService) { }\n\n ngOnInit() {\n if (this.RetireeInfo) {\n const system = this.RetireeInfo.system;\n this.retirementDate = this.RetireeInfo.retirementDate;\n this.retirementType = this.RetireeInfo.retirementType;\n this.options = this.readConfigService.getOptionDescription();\n this.optionSelected = this.RetireeInfo.optionSelected.substring(0, 8);\n sessionStorage.setItem('optionSelected', this.optionSelected.substring(7, 8));\n this.optionHeading = this.options.Basic.Heading;\n if (this.optionSelected === 'Option 0' && system === '5') {\n this.optionDescription = this.options.Basic.Description['5-1'] +\n this.options.Basic.Description['5-2'];\n } else if (this.optionSelected !== 'Option 0' || system !== '5') {\n this.optionSelected === 'Option 0' ?\n this.optionDescription = this.options.Basic.Description[system] :\n this.optionDescription = this.options[this.optionSelected].Description;\n }\n this.presentValueLabel = this.RetireeInfo.presentValueLabel;\n this.showPresentValue = this.presentValueLabel !== '' && this.RetireeInfo.presentValue > 0;\n this.showEarningsLimitation = this.RetireeInfo.earningsLimitation > 0;\n if (this.RetireeInfo.edroAmount > 0) {\n sessionStorage.setItem('droFlag', 'L');\n }\n }\n if (this.IconInfo !== undefined && this.IconInfo !== null) {\n this.loadInfoIcons();\n }\n }\n\n loadInfoIcons() {\n const descItem = this.IconInfo.filter((item: any) => item.label === 'Earnings Limitation')[0];\n this.eLimitationInfo = descItem !== undefined ? descItem.description : '';\n }\n}\n","
\n
\n \n Retirement Date: {{retirementDate | date: 'MM/dd/yyyy'}}\n \n
\n \n Retirement Type: {{retirementType}}\n \n
\n \n \n Retirement Allowance Option Selected:\n \n
\n
\n
\n {{optionSelected}} — {{optionHeading}}\n
\n {{optionDescription}}\n
\n \n {{presentValueLabel}}: {{RetireeInfo.presentValue | currency:'USD'}}\n
\n
\n \n Earnings Limitation:\n {{RetireeInfo.earningsLimitation | currency:'USD'}}\n
\n
\n
\n
\n","import { Component, OnInit, Input } from '@angular/core';\nimport { UserService } from '../../../shared/services/user.service';\n\n@Component({\n selector: 'app-retiree-tax-recovery-info',\n templateUrl: './retiree-tax-recovery-info.component.html',\n styleUrls: ['./retiree-tax-recovery-info.component.css']\n})\nexport class RetireeTaxRecoveryInfoComponent implements OnInit {\n @Input()\n RetireeInfo: any;\n @Input() IconInfo: any;\n account: any;\n accountStatus: any;\n isRemainingTaxFree: boolean;\n isRetireeWithBtf: boolean;\n isRetireeWithRp: boolean;\n isRemBalStRetPickupCont: boolean;\n isAltPayWithTf: boolean;\n isAltPayWithBp: boolean;\n taxRecoveryMessage: any;\n bTaxFreeInfo = '';\n rTaxFreeInfo = '';\n bbosrpupContribInfo = '';\n rbosrpupContribInfo = '';\n constructor(private userService: UserService) { }\n\n ngOnInit() {\n this.getStatus();\n if (this.RetireeInfo !== undefined) {\n this.isRetireeWithBtf = this.accountStatus !== 'Alternate Payee' && this.RetireeInfo.beginningTaxFree > 0;\n this.isAltPayWithTf = this.accountStatus === 'Alternate Payee' && this.RetireeInfo.remainingTaxFree > 0;\n this.isRemainingTaxFree = this.isRetireeWithBtf || this.isAltPayWithTf;\n this.isRetireeWithRp = this.accountStatus !== 'Alternate Payee' && this.RetireeInfo.begBalStRetPickupCont > 0;\n this.isAltPayWithBp = this.accountStatus === 'Alternate Payee' && this.RetireeInfo.remBalStRetPickupCont > 0;\n this.isRemBalStRetPickupCont = this.isRetireeWithRp || this.isAltPayWithBp;\n this.taxRecoveryMessage = this.RetireeInfo.taxRecoveryMessage;\n }\n if (this.IconInfo !== undefined && this.IconInfo !== null) {\n this.loadInfoIcons();\n }\n }\n\n /**\n * @description\n * Function to get the account status\n */\n getStatus(): any {\n this.account = this.userService.getSelectedAccount();\n if (this.account !== null) {\n const status = this.account.status.split('(');\n if (status.length === 2) {\n this.accountStatus = status[0];\n } else {\n this.accountStatus = this.account.status;\n }\n }\n }\n\n loadInfoIcons() {\n this.bTaxFreeInfo = this.getIconDescription('Beginning Tax Free');\n this.rTaxFreeInfo = this.getIconDescription('Remaining Tax Free');\n this.bbosrpupContribInfo = this.getIconDescription('Beginning Balance of State Retirement Pick-up Program Contributions');\n this.rbosrpupContribInfo = this.getIconDescription('Remaining Balance of State Retirement Pick-up Program Contributions');\n }\n\n getIconDescription(label: any): any {\n const descItem = this.IconInfo.filter((item: any) => item.label === label)[0];\n return descItem !== undefined ? descItem.description : '';\n }\n}\n","
\n
\n
\n
\n {{taxRecoveryMessage}}\n \n
\n Beginning Tax Free :\n {{RetireeInfo.beginningTaxFree | currency:'USD'}}\n
\n \n
\n Remaining Tax Free :\n {{RetireeInfo.remainingTaxFree | currency:'USD'}}\n
\n \n
\n Beginning Balance of State Retirement Pick-up Program Contributions : {{RetireeInfo.begBalStRetPickupCont |\n currency:'USD'}}\n
\n \n
\n Remaining Balance of State Retirement Pick-up Program Contributions : {{RetireeInfo.remBalStRetPickupCont |\n currency:'USD'}}\n
\n
\n
\n
\n
","import { Component, OnInit } from '@angular/core';\nimport { RetireeService } from '../../shared/services/retiree.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { UserService } from '../../shared/services/user.service';\nimport { ToastMessageService } from '../../shared/services/toast-message.service';\nimport { Router } from '@angular/router';\nimport { ReadConfigService } from '../../shared/services/read-config.service';\nimport { AppInsightService } from '../../shared/services/app-insight.service';\nimport { SetStyleService } from '../../shared/services/set-style.service';\n\n@Component({\n selector: 'app-retiree-view-account',\n templateUrl: './retiree-view-account.component.html',\n styleUrls: ['./retiree-view-account.component.css']\n})\nexport class RetireeViewAccountComponent implements OnInit {\n\n retireeInfo: any;\n handbookUrl: any;\n beginningTaxFree: any;\n remainingTaxFree: any;\n begBalStRetPickupCont: any;\n remBalStRetPickupCont: any;\n system: any;\n accountStatus: any;\n account: any;\n dataLoading = true;\n benefitInfoIconValues: any;\n taxRecoveryInfoIconValues: any;\n retInfoIconValues: any;\n dropAccount: any;\n healthBenefits: any;\n edroMessage: any;\n edroStartDate: any;\n showAppOutage: boolean;\n appOutageMessage: any;\n futureOutageMessage: any;\n ten99RMessage: any;\n constructor(private retireeService: RetireeService,\n private userService: UserService,\n private toastService: ToastMessageService,\n private readConfigService: ReadConfigService,\n private router: Router,\n private setStyleService: SetStyleService ) { }\n\n ngOnInit() {\n this.loadRetireeDetails();\n this.getStatus();\n this.showTaxRecoveryInfo();\n if (sessionStorage.getItem('loadedInfoIcons') === null) {\n this.loadInfoIcons(50);\n } else {\n this.loadInfoIcons(0);\n }\n setTimeout(() => this.setStyleService.setPanelBarStyle('View Account'), 1000);\n }\n\n /**\n * @description\n * Function to load the retiree account details\n */\n loadRetireeDetails() {\n const account = this.userService.getSelectedAccount();\n if (account !== null) {\n this.dropAccount = account.role === 'DROPRetiree' ? this.readConfigService.getDROPRoleText().Message : null;\n const userDetails = this.userService.getUserInputData();\n this.retireeService.getRetireeDetails(account.uniqueId, userDetails).subscribe((data: any) => {\n if (data.statusCode === 200) {\n if (data.hideFeature) {\n this.showAppOutage = true;\n this.appOutageMessage = data.outageMessage;\n this.dataLoading = false;\n } else {\n this.futureOutageMessage = data.outageMessage;\n this.retireeInfo = data.result;\n this.healthBenefits = this.dropAccount ? null : this.retireeInfo.healthBenefits ? this.retireeInfo.healthBenefits : null;\n this.edroMessage = this.retireeInfo.edroStartDate ? this.retireeInfo.edroMessage : null;\n this.edroStartDate = this.retireeInfo.edroStartDate;\n this.beginningTaxFree = this.retireeInfo.beginningTaxFree;\n this.remainingTaxFree = this.retireeInfo.remainingTaxFree;\n this.begBalStRetPickupCont = this.retireeInfo.begBalStRetPickupCont;\n this.remBalStRetPickupCont = this.retireeInfo.remBalStRetPickupCont;\n this.system = this.retireeInfo.system;\n const message = this.readConfigService.getVa1099RMessage();\n const role = account.role.toLowerCase();\n this.ten99RMessage = (role === 'payeeretiree' || role === 'payeenonretiree') && message ? message : null;\n this.handbookUrl = this.readConfigService.getHandbookUrl() + this.retireeInfo.handbook;\n this.dataLoading = false;\n }\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n this.dataLoading = false;\n });\n }\n }\n\n /**\n * @description\n * Function to get the account status\n */\n getStatus(): any {\n this.account = this.userService.getSelectedAccount();\n if (this.account !== null) {\n const status = this.account.status.split('|');\n if (status.length === 2) {\n this.accountStatus = status[0];\n } else {\n this.accountStatus = this.account.status;\n }\n }\n }\n\n /**\n * @description\n * Function to return boolean true/false to hide/show tax recovery info\n */\n showTaxRecoveryInfo(): boolean {\n if ((this.accountStatus === 'Alternate Payee' && (this.remainingTaxFree > 0 || this.remBalStRetPickupCont > 0))\n || this.beginningTaxFree > 0 || this.begBalStRetPickupCont > 0) {\n return true;\n }\n return false;\n }\n\n loadInfoIcons(timeDelay: any) {\n setTimeout(() => {\n if (sessionStorage.getItem('loadedInfoIcons') === null) {\n this.loadInfoIcons(timeDelay);\n } else {\n this.benefitInfoIconValues = this.userService.getInfoIconValues('Retiree', 'View Account_Benefit Information');\n this.taxRecoveryInfoIconValues = this.userService.getInfoIconValues('Retiree', 'View Account_Tax Recovery Information');\n this.retInfoIconValues = this.userService.getInfoIconValues('Retiree', 'View Account_Retirement Information');\n }\n }, timeDelay);\n }\n}\n","

View Account

\n
\n \n
\n \n
\n
\n \n \n \n
\n
\n
\n \n Note: {{dropAccount}}\n \n
\n
\n \n Note: {{healthBenefits}}\n \n
\n
\n \n Note: {{edroMessage}} since {{edroStartDate | date: 'MM/dd/yyyy'}}.\n \n
\n
\n
\n \n \n \n \n \n \"SRPS\"\n Retirement Information\n \n \n \n \n \n \n \n \n \n \"SRPS\"\n Benefit Information\n \n \n \n \n \n \n \n \n \n \"SRPS\"\n Tax Recovery Information\n \n \n \n \n \n \n \n \n \n
\n
\n
\n
\n \n
\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-md-state-tax',\n templateUrl: './md-state-tax.component.html',\n styleUrls: ['./md-state-tax.component.css']\n})\nexport class MdStateTaxComponent implements OnInit {\n @Output() progressModel = new EventEmitter();\n @Input() taxDetails: any;\n @Input() federalDetails: any;\n showDetails = false;\n disableNextBtn = true;\n showNew = false;\n maxAddAmount = 2;\n amountSelected: any;\n selOption: any;\n showQuestion = false;\n changeOption: string;\n note1: any;\n note2: any;\n urlLink: any;\n constructor(private readConfigService: ReadConfigService) { }\n\n ngOnInit() {\n const taxWithholdConfig = this.readConfigService.getTaxWithholdingText().StateText;\n this.note1 = taxWithholdConfig.Note1;\n this.note2 = taxWithholdConfig.Note2;\n this.urlLink = taxWithholdConfig.UrlLink;\n this.maxAddAmount = this.taxDetails.maxAllowed;\n window.scroll(0, 0);\n }\n\n setChange(option: any) {\n if (option === 'yes') {\n this.showQuestion = true;\n this.disableNextBtn = true;\n } else {\n this.showNew = false;\n this.showQuestion = false;\n this.showDetails = false;\n this.disableNextBtn = false;\n this.amountSelected = this.taxDetails.stateTaxAmt;\n this.selOption = null;\n }\n }\n\n setState(option: any) {\n this.selOption = option;\n if (option === 'yes') {\n this.showDetails = true;\n this.disableNextBtn = true;\n this.onChange(this.taxDetails.stateTaxAmt);\n } else {\n this.showNew = true;\n this.showDetails = false;\n this.amountSelected = 0;\n this.disableNextBtn = this.taxDetails.stateTaxAmt === this.amountSelected;\n }\n }\n\n formValid(form: NgForm) {\n return form.valid;\n }\n\n nextScreen() {\n this.progressModel.emit({\n goTo: 'summary',\n stateData: {\n complete: true,\n changeOption: this.changeOption === 'yes',\n stateOption: this.changeOption === 'no' ? true : this.selOption === 'yes',\n stateTaxAmt: this.amountSelected,\n }\n });\n }\n\n onChange(event: any) {\n this.amountSelected = event;\n this.showNew = true;\n this.disableNextBtn = this.taxDetails.stateTaxAmt === this.amountSelected;\n }\n\n /**\n * @description\n * Function to set input box maxlength\n */\n keytab(event: any) {\n const target = event.target || event.srcElement;\n const length = Math.trunc(target.getAttribute('aria-valuemax')).toString().length;\n target.setAttribute('maxLength', length);\n target.setAttribute('minLength', 1);\n }\n}\n\n","
\n
\n
\n
Maryland State Tax Withholding Request
\n
\n {{note1}}\n \n link {{note2}}\n
\n
\n
\n \n The adjusted gross amount of your retirement benefit is {{taxDetails.adjustedGross | currency:'USD'}}\n \n
\n
\n \n Do you wish to make any changes to your current Maryland Tax Withholding?\n \n \n \n \n \n
\n
\n \n Do you want to have any Maryland income tax withheld from your pension or annuity?\n \n \n \n \n \n
\n
\n
\n
\n Enter flat dollar amount to be withheld for Maryland State Tax Withholding:\n \n $\n \n \n \n
\n \n You can only enter a value between 1 and {{maxAddAmount}}.\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
State Tax Withholding
\n
\n \n \n Existing\n \n \n \n New\n \n
\n Total\n \n ${{taxDetails.stateTaxAmt}}\n \n -1\">${{amountSelected}}\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n","import { Component, OnInit, Output, EventEmitter, Input, ViewChild } from '@angular/core';\nimport { RetireeService } from '../../../shared/services/retiree.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { DocumentService } from '../../../shared/services/document.service';\nimport { ToastMessageService } from '../../../shared/services/toast-message.service';\nimport { UserService } from '../../../shared/services/user.service';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'app-md-tax-summary',\n templateUrl: './md-tax-summary.component.html',\n styleUrls: ['./md-tax-summary.component.css']\n})\nexport class MdTaxSummaryComponent implements OnInit {\n embedURL: any;\n @Output() progressModel = new EventEmitter();\n @Input() taxDetails: any;\n @Input() stateDetails: any;\n showEsign = false;\n withholdingData: any;\n uniqueId: any;\n dataLoading = true;\n showNoChange = false;\n updateProgress = false;\n showSummaryPdf: boolean;\n showLoadingIcon: boolean;\n showSuccessChange: boolean;\n showErrorChange: boolean;\n taxWithholdConfig: any;\n disclaimer: any;\n tEmail: any;\n pPhone: any;\n signName: any;\n accountId: any;\n transactionType: any;\n @ViewChild('pdfViewerOnDemand') pdfViewerOnDemand: any;\n userDetails: any;\n docId: any;\n datePipe: DatePipe;\n\n constructor(private retireeService: RetireeService,\n private documentService: DocumentService,\n private toastService: ToastMessageService,\n private userService: UserService,\n private readConfigService: ReadConfigService) { }\n\n ngOnInit() {\n this.datePipe = new DatePipe('en-US');\n this.accountId = this.userService.getMdsAccountId();\n this.userDetails = this.userService.getUserInputData();\n this.showEsign = true;\n this.taxWithholdConfig = this.readConfigService.getTaxWithholdingText().SummaryText;\n this.transactionType = this.readConfigService.getTransactionType('UpdateTaxWithholding');\n this.showSummaryPdf = true;\n this.withholdingData = {\n Id: this.userService.getSelectedAccount().uniqueId,\n adjustedGross: this.taxDetails.adjustedGross,\n stateOption: this.stateDetails.stateOption,\n stateTaxAmt: this.stateDetails.stateTaxAmt === null ? 0 : this.stateDetails.stateTaxAmt,\n };\n if (!this.stateDetails.changeOption) {\n this.dataLoading = false;\n this.showSummaryPdf = false;\n this.showNoChange = true;\n } else {\n const inputData = {\n data: {\n encryptedId: this.withholdingData.Id,\n taxWithhold: this.withholdingData.stateOption,\n withholdingAmount: this.withholdingData.stateTaxAmt\n },\n user: this.userDetails,\n };\n if (this.accountId) {\n this.documentService.getStateTaxWithholdingLetter(inputData)\n .subscribe((response) => {\n if (response) {\n this.dataLoading = false;\n this.showSummaryPdf = true;\n setTimeout(() => {\n this.pdfViewerOnDemand.pdfSrc = response;\n this.pdfViewerOnDemand.refresh();\n }, 100);\n } else {\n this.dataLoading = false;\n this.showSummaryPdf = false;\n this.taxWithholdConfig.ErrorMessage = this.documentService.errorMessage;\n this.showErrorChange = true;\n }\n },\n (err: HttpErrorResponse) => {\n this.dataLoading = false;\n this.showSummaryPdf = false;\n this.taxWithholdConfig.ErrorMessage = this.documentService.errorMessage;\n this.showErrorChange = true;\n console.log(err);\n });\n } else {\n this.dataLoading = false;\n this.showSummaryPdf = false;\n this.taxWithholdConfig.ErrorMessage = this.documentService.errorMessage;\n this.showErrorChange = true;\n }\n }\n window.scroll(0, 0);\n }\n esignResponse(event: any) {\n if (event.btnClicked === 'cancel') {\n this.goToState();\n } else if (event.btnClicked === 'continue') {\n this.updateProgress = true;\n const inputData = {\n data: {\n encryptedId: this.withholdingData.Id,\n taxWithhold: this.withholdingData.stateOption,\n withholdingAmount: this.withholdingData.stateTaxAmt,\n signature: event.signName,\n signDate: this.datePipe.transform(new Date(), 'MM/dd/yyyy'),\n logInTime: this.userService.getLastLoginTime()\n },\n accountId: this.accountId,\n user: this.userDetails\n };\n this.retireeService.updateStateTaxWithholding(inputData).subscribe((data: any) => {\n this.progressModel.emit({ changeDetected: false });\n if (data && data.statusCode === 200 && data.result) {\n this.showSuccessChange = true;\n this.showSummaryPdf = false;\n this.docId = data.result;\n } else {\n this.showSummaryPdf = false;\n this.showErrorChange = true;\n }\n this.updateProgress = false;\n },\n (err: HttpErrorResponse) => {\n this.showSummaryPdf = false;\n console.log(err);\n this.showErrorChange = true;\n this.updateProgress = false;\n });\n }\n }\n goToState() {\n this.progressModel.emit({ goTo: 'state', from: 'summary' });\n }\n goToVa() {\n this.progressModel.emit({ goTo: 'viewaccount', changeDetected: false });\n }\n viewTaxWithholdingLetter() {\n this.showLoadingIcon = true;\n this.documentService.getMyDocument(this.docId, this.userDetails, 'State Tax Withholding Form').subscribe(() => {\n this.showLoadingIcon = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.showLoadingIcon = false;\n this.toastService.getErrorMessage();\n });\n }\n}\n","
\n
\n
\n
State Tax Withholding Summary and Signature
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n {{taxWithholdConfig.STWSignDisclaimer}}\n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n {{taxWithholdConfig.NoChangeMessage}}\n \n
\n
\n
\n
\n \n {{taxWithholdConfig.SuccessMessage}}\n \n \n
\n \n
\n
\n
\n
\n
\n \n {{taxWithholdConfig.ErrorMessage}}\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n","import { Component, OnInit } from '@angular/core';\nimport { RetireeService } from '../../shared/services/retiree.service';\nimport { UserService } from '../../shared/services/user.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../../shared/services/toast-message.service';\nimport { Router } from '@angular/router';\nimport { ReadConfigService } from '../../shared/services/read-config.service';\nimport { GoogleAnalyticsService } from '../../shared/services/google-analytics.service';\nimport { SetStyleService } from '../../shared/services/set-style.service';\n\n@Component({\n selector: 'app-state-tax-withholding',\n templateUrl: './state-tax-withholding.component.html',\n styleUrls: ['./state-tax-withholding.component.css']\n})\nexport class StateTaxWithholdingComponent implements OnInit {\n showFederalTable = false;\n showStateTable = false;\n showSummary = false;\n uniqueId: any;\n taxWithholdingDetails: any;\n stateData: any;\n loadingIcon = true;\n showNoWizardMessage = false;\n message: any;\n showAppOutage: boolean;\n appOutageMessage: any;\n futureOutageMessage: any;\n\n constructor(private retireeService: RetireeService,\n private userService: UserService,\n private toastService: ToastMessageService,\n private readConfigService: ReadConfigService,\n private googleAnalyticsService: GoogleAnalyticsService,\n private router: Router,\n private setStyleService: SetStyleService\n ) { }\n\n ngOnInit() {\n this.googleAnalyticsService.emitEvent('Button', 'Clicked State Tax Withholding', 'Click', 10);\n this.uniqueId = this.userService.getSelectedAccount().uniqueId;\n const userDetails = this.userService.getUserInputData();\n const inputData = {\n uniqueId: this.uniqueId,\n user: userDetails\n };\n this.retireeService.getStateTaxWithholding(inputData).subscribe((data: any) => {\n if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else if (data && data.statusCode === 200) {\n if (data.hideFeature) {\n // for app feature outage\n this.showAppOutage = true;\n this.appOutageMessage = data.outageMessage;\n } else {\n this.futureOutageMessage = data.outageMessage;\n this.taxWithholdingDetails = data.result;\n if (this.taxWithholdingDetails.adjustedGross > 0) {\n this.showStateTable = true;\n } else {\n const taxWithholdConfig = this.readConfigService.getTaxWithholdingText();\n this.message = taxWithholdConfig.Message;\n this.showNoWizardMessage = true;\n }\n }\n this.loadingIcon = false;\n } else {\n this.loadingIcon = false;\n this.toastService.getErrorMessage();\n }\n },\n (err: HttpErrorResponse) => {\n this.loadingIcon = false;\n console.log(err);\n this.toastService.getErrorMessage();\n });\n setTimeout(() => this.setStyleService.setPanelBarStyle('Update State Tax Withholding'), 2000);\n }\n\n setScreen(emit: any) {\n switch (emit.goTo) {\n case 'state':\n this.showFederalTable = false;\n this.showStateTable = true;\n this.showSummary = false;\n break;\n case 'summary':\n this.stateData = emit.stateData;\n this.showStateTable = false;\n this.showSummary = true;\n break;\n case 'viewaccount':\n const panel = document.getElementById('account-nav');\n const accountPanel = panel.querySelectorAll('kendo-panelbar-item')[0];\n const taxPanel = panel.querySelectorAll('kendo-panelbar-item')[4];\n if (accountPanel) {\n const selectElement = accountPanel.querySelector('.k-link');\n const objHtmlElement = (selectElement as HTMLElement);\n objHtmlElement.classList.add('k-selected');\n }\n if (taxPanel) {\n const selectElement = taxPanel.querySelector('.k-link');\n const objHtmlElement = (selectElement as HTMLElement);\n objHtmlElement.classList.remove('k-selected');\n }\n this.router.navigateByUrl('/' + this.router.url.split('/')[1] + '/View Account');\n break;\n }\n }\n}\n","

Update State Tax Withholding

\n
\n \n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n {{message}}\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\nimport { RetireeService } from '../../../shared/services/retiree.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../../../shared/services/toast-message.service';\nimport { UserService } from '../../../shared/services/user.service';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-federal-tax',\n templateUrl: './federal-tax.component.html',\n styleUrls: ['./federal-tax.component.css']\n})\nexport class FederalTaxComponent implements OnInit {\n @Output() progressModel = new EventEmitter();\n @Input() taxDetails: any;\n showDetails = false;\n public mstatusItems: Array = ['Single or Married, but withhold at higher “Single” rate', 'Married'];\n disableNextBtn = true;\n showQuestion = false;\n exemptionsList = [];\n maxExemptions: number;\n exeSelected: any;\n amountSelected: any;\n changeOption: string;\n selOption: string;\n mstatusSelected: any;\n exemptionAmount: any;\n showNew = false;\n maxAddAmount = 2;\n totalFed: any;\n @Input() federalDetails: any;\n displayMessage: boolean;\n message: any;\n resetFormLable: any;\n disableFlatAmt = true;\n exeAmtGreater: boolean;\n greaterExeAmtMsg: any;\n constructor(private retireeService: RetireeService,\n private userService: UserService,\n private readConfigService: ReadConfigService,\n private toastService: ToastMessageService) { }\n\n ngOnInit() {\n const taxWithholdConfig = this.readConfigService.getTaxWithholdingText().FederalText;\n this.message = 'Note: ' + taxWithholdConfig.DisplayNote;\n this.resetFormLable = taxWithholdConfig.ResetFormLabel;\n this.maxExemptions = taxWithholdConfig.MaxExemptions;\n this.greaterExeAmtMsg = taxWithholdConfig.GreaterExepmtionAmount;\n for (let i = 0; i <= this.maxExemptions; i++) {\n this.exemptionsList.push(i);\n }\n if (this.federalDetails && this.federalDetails.complete) {\n this.changeOption = this.federalDetails.changeOption ? 'yes' : 'no';\n this.setChange(this.federalDetails.changeOption ? 'yes' : 'no');\n if (this.federalDetails.changeOption) {\n this.selOption = this.federalDetails.selectionOption ? 'yes' : 'no';\n this.setFederal(this.federalDetails.selectionOption ? 'yes' : 'no');\n if (this.federalDetails.selectionOption) {\n this.onChangeStatus(this.federalDetails.mstatusSelected === 'S' ? this.mstatusItems[0] :\n this.federalDetails.mstatusSelected === 'M' ? this.mstatusItems[1] : null);\n this.onChange(this.federalDetails.exeSelected);\n this.exemptionAmount = this.federalDetails.exemptionAmount;\n this.onValueChange(this.federalDetails.amountSelected);\n this.totalFed = this.federalDetails.totalFed;\n }\n }\n }\n window.scroll(0, 0);\n }\n\n setChange(option: any) {\n if (option === 'yes') {\n this.showQuestion = true;\n this.disableNextBtn = true;\n } else {\n this.showNew = false;\n this.disableNextBtn = false;\n this.showQuestion = false;\n this.showDetails = false;\n this.selOption = null;\n this.mstatusSelected = this.taxDetails.maritalStatus;\n this.exeSelected = this.taxDetails.fedExemptions;\n this.exemptionAmount = this.taxDetails.fedExemptionTax;\n this.amountSelected = this.taxDetails.fedFlatTax;\n this.totalFed = null;\n this.exeAmtGreater = false;\n }\n }\n\n setFederal(option: any) {\n if (option === 'yes') {\n this.showDetails = true;\n this.disableNextBtn = true;\n this.onChangeStatus(this.taxDetails.maritalStatus === 'S' ? this.mstatusItems[0] :\n this.taxDetails.maritalStatus === 'M' ? this.mstatusItems[1] : null);\n this.exeSelected = this.taxDetails.fedExemptions > 95 ? null : this.taxDetails.fedExemptions;\n this.exemptionAmount = this.taxDetails.fedExemptionTax;\n this.amountSelected = this.taxDetails.fedFlatTax;\n this.disableFlatAmt = false;\n this.totalFed = this.taxDetails.fedExemptionTax + this.taxDetails.fedFlatTax;\n this.showNew = true;\n this.disableNextBtn = true;\n } else {\n this.showNew = true;\n this.showDetails = false;\n this.mstatusSelected = null;\n this.exeSelected = 99;\n this.exemptionAmount = 0;\n this.amountSelected = 0;\n this.totalFed = 0;\n this.exeAmtGreater = false;\n this.btnDisable();\n }\n }\n\n onChangeStatus(event: any) {\n if (event) {\n this.mstatusSelected = event;\n const mstatusCode = this.mstatusSelected === this.mstatusItems[1] ? 'M' : this.mstatusSelected === this.mstatusItems[0] ? 'S' : null;\n this.showNew = true;\n this.amountSelected = 0;\n this.btnDisable();\n this.calculateExemptionAmount(this.taxDetails.adjustedGross, this.exeSelected, mstatusCode);\n } else {\n this.btnDisable();\n }\n }\n\n btnDisable() {\n const mstatusCode = this.mstatusSelected === this.mstatusItems[1] ? 'M' :\n this.mstatusSelected === this.mstatusItems[0] ? 'S' : null;\n if (this.selOption === 'no') {\n this.disableNextBtn = !(this.taxDetails.maritalStatus !== mstatusCode ||\n this.taxDetails.fedExemptions !== this.exeSelected ||\n this.taxDetails.fedFlatTax !== this.amountSelected);\n } else {\n if (this.exeSelected || this.exeSelected < 95) {\n this.disableNextBtn = !(this.taxDetails.maritalStatus !== mstatusCode ||\n this.taxDetails.fedExemptions !== this.exeSelected ||\n this.taxDetails.fedFlatTax !== this.amountSelected);\n } else {\n this.disableNextBtn = !(this.taxDetails.maritalStatus !== mstatusCode ||\n this.taxDetails.fedFlatTax !== this.amountSelected);\n }\n }\n }\n\n onChange(event: any) {\n if (event !== undefined && event !== null && event > -1 && event < 96) {\n this.exeSelected = event;\n const mstatusCode = this.mstatusSelected === this.mstatusItems[1] ? 'M' : this.mstatusSelected === this.mstatusItems[0] ? 'S' : null;\n this.btnDisable();\n this.amountSelected = 0;\n this.calculateExemptionAmount(this.taxDetails.adjustedGross, this.exeSelected, mstatusCode);\n } else {\n this.btnDisable();\n this.exeSelected = null;\n }\n }\n\n calculateExemptionAmount(adjustedGross: any, exeSel: any, mstatusCode: any) {\n if (this.amountSelected !== this.taxDetails.fedFlatTax) {\n this.displayMessage = !(this.exeSelected !== undefined && this.exeSelected !== null &&\n this.exeSelected > -1 && this.mstatusSelected);\n } else {\n this.displayMessage = false;\n }\n if (exeSel !== undefined && exeSel !== null && exeSel > -1 && mstatusCode) {\n this.disableFlatAmt = false;\n const userDetails = this.userService.getUserInputData();\n this.retireeService.calculateTaxWithholding(adjustedGross, exeSel, mstatusCode, userDetails).subscribe((data: any) => {\n if (data && data.success) {\n this.exemptionAmount = data.result.adjustedGross;\n if (this.exemptionAmount < this.taxDetails.maxAllowed) {\n this.disableFlatAmt = false;\n this.exeAmtGreater = false;\n this.maxAddAmount = this.taxDetails.maxAllowed - this.exemptionAmount;\n if (this.amountSelected > this.maxAddAmount) {\n this.disableNextBtn = true;\n } else {\n this.btnDisable();\n }\n } else {\n this.exeAmtGreater = true;\n this.disableFlatAmt = true;\n this.disableNextBtn = true;\n this.amountSelected = null;\n }\n this.totalFed = this.exemptionAmount + this.amountSelected;\n } else {\n this.toastService.getErrorMessage();\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n });\n } else {\n this.disableNextBtn = true;\n }\n }\n\n /**\n * @description\n * Function to set input box maxlength\n */\n keytab(event: any) {\n const target = event.target || event.srcElement;\n const length = Math.trunc(target.getAttribute('aria-valuemax')).toString().length;\n target.setAttribute('maxLength', length);\n target.setAttribute('minLength', 1);\n }\n\n onValueChange(event: any) {\n if (event !== undefined && event !== null && event > -1) {\n this.amountSelected = event;\n const mstatusCode = this.mstatusSelected === this.mstatusItems[1] ? 'M' : this.mstatusSelected === this.mstatusItems[0] ? 'S' : null;\n this.btnDisable();\n this.calculateExemptionAmount(this.taxDetails.adjustedGross, this.exeSelected, mstatusCode);\n this.totalFed = this.exemptionAmount + this.amountSelected;\n } else {\n this.disableNextBtn = true;\n }\n }\n\n onBlur(value: any) {\n if (!value) {\n this.amountSelected = 0;\n this.btnDisable();\n }\n }\n\n nextScreen() {\n const fedData = {\n complete: true,\n changeOption: this.changeOption === 'yes',\n selectionOption: this.selOption === 'yes',\n mstatusSelected: this.mstatusSelected ? (this.mstatusSelected === 'Married' || this.mstatusSelected === 'M' ?\n 'M' : 'S') : null,\n exeSelected: this.selOption === 'no' ? 99 : this.exeSelected,\n exemptionAmount: this.exemptionAmount,\n amountSelected: this.amountSelected,\n totalFed: this.totalFed\n };\n this.progressModel.emit({\n goTo: 'state',\n federalData: fedData,\n changeDetected: true\n });\n }\n\n cancel() {\n this.progressModel.emit({\n goTo: 'viewaccount',\n changeDetected: false\n });\n }\n\n formReset() {\n this.showNew = false;\n this.changeOption = null;\n this.disableNextBtn = true;\n this.showQuestion = false;\n this.showDetails = false;\n this.selOption = null;\n this.mstatusSelected = null;\n this.exeSelected = null;\n this.exemptionAmount = null;\n this.amountSelected = null;\n this.totalFed = null;\n this.exeAmtGreater = false;\n }\n}\n","
\n
\n
\n
Federal Tax Withholding Request
\n
\n
\n \n The adjusted gross amount of your retirement benefit is\n {{taxDetails.adjustedGross | currency:'USD'}}\n \n
\n
\n \n Do you wish to make any changes to your current Federal Tax Withholding?\n \n \n \n \n \n
\n
\n
\n
\n \n Do you want to have any federal income tax withheld from your pension or annuity?\n \n \n \n \n \n
\n
\n
\n
\n \n Select your marital status:\n \n \n \n
\n
\n Select the total number of allowances you are claiming for withholding: \n \n \n
\n \n {{greaterExeAmtMsg}}\n \n
\n
\n
\n Enter additional flat dollar amount to be withheld\n : $ \n \n \n
\n \n You can only enter a value between 0 and {{maxAddAmount}}.\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
Federal Tax Withholding
\n
\n \n \n Existing\n \n \n \n New\n \n
\n Marital Status\n \n {{taxDetails.maritalStatus === 'M' ? mstatusItems[1] : taxDetails.maritalStatus === 'S' ? mstatusItems[0] : ''}}\n \n {{mstatusSelected}}\n
\n Exemptions\n \n {{taxDetails.fedExemptions === 99 || taxDetails.fedExemptions === 96 ? '' : taxDetails.fedExemptions}}\n \n {{selOption === 'no' ? '' : exeSelected}}\n
\n Exemption Amount\n \n ${{taxDetails.fedExemptionTax}}\n \n -1\">${{exemptionAmount}}\n
\n Flat Dollar Amount\n \n ${{taxDetails.fedFlatTax}}\n \n ${{amountSelected}}\n $0\n
\n Total\n \n ${{taxDetails.fedExemptionTax + taxDetails.fedFlatTax}}\n \n -1\">\n ${{totalFed}}\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n","import { Component, OnInit, Output, EventEmitter, Input } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-state-tax',\n templateUrl: './state-tax.component.html',\n styleUrls: ['./state-tax.component.css']\n})\nexport class StateTaxComponent implements OnInit {\n @Output() progressModel = new EventEmitter();\n @Input() taxDetails: any;\n @Input() federalDetails: any;\n showDetails = false;\n disableNextBtn = true;\n showNew = false;\n maxAddAmount = 2;\n amountSelected: any;\n selOption: any;\n showQuestion = false;\n changeOption: string;\n note1: any;\n note2: any;\n urlLink: any;\n constructor(private readConfigService: ReadConfigService) { }\n\n ngOnInit() {\n const taxWithholdConfig = this.readConfigService.getTaxWithholdingText().StateText;\n this.note1 = taxWithholdConfig.Note1;\n this.note2 = taxWithholdConfig.Note2;\n this.urlLink = taxWithholdConfig.UrlLink;\n this.maxAddAmount = this.taxDetails.maxAllowed - this.federalDetails.totalFed;\n window.scroll(0, 0);\n }\n\n setChange(option: any) {\n if (option === 'yes') {\n this.showQuestion = true;\n this.disableNextBtn = true;\n } else {\n this.showNew = false;\n this.showQuestion = false;\n this.showDetails = false;\n this.disableNextBtn = false;\n this.amountSelected = this.taxDetails.stateTaxAmt;\n this.selOption = null;\n }\n }\n\n setState(option: any) {\n this.selOption = option;\n if (option === 'yes') {\n this.showDetails = true;\n this.disableNextBtn = true;\n this.onChange(this.taxDetails.stateTaxAmt);\n } else {\n this.showNew = true;\n this.showDetails = false;\n this.amountSelected = 0;\n this.disableNextBtn = this.taxDetails.stateTaxAmt === this.amountSelected;\n }\n }\n\n formValid(form: NgForm) {\n return form.valid;\n }\n\n previousScreen() {\n this.progressModel.emit({\n goTo: 'federal',\n from: 'state',\n federalData: this.federalDetails,\n changeDetected: true\n });\n }\n\n nextScreen() {\n this.progressModel.emit({\n goTo: 'summary',\n stateData: {\n complete: true,\n changeOption: this.changeOption === 'yes',\n stateOption: this.changeOption === 'no' ? true : this.selOption === 'yes',\n stateTaxAmt: this.amountSelected,\n },\n changeDetected: true\n });\n }\n\n onChange(event: any) {\n this.amountSelected = event;\n this.showNew = true;\n this.disableNextBtn = this.taxDetails.stateTaxAmt === this.amountSelected;\n }\n\n /**\n * @description\n * Function to set input box maxlength\n */\n keytab(event: any) {\n const target = event.target || event.srcElement;\n const length = Math.trunc(target.getAttribute('aria-valuemax')).toString().length;\n target.setAttribute('maxLength', length);\n target.setAttribute('minLength', 1);\n }\n}\n","
\n
\n
\n
Maryland State Tax Withholding Request
\n
\n {{note1}}\n \n link {{note2}}\n
\n
\n
\n \n The adjusted gross amount of your retirement benefit is {{taxDetails.adjustedGross | currency:'USD'}}\n \n
\n
\n \n Do you wish to make any changes to your current Maryland Tax Withholding?\n \n \n \n \n \n
\n
\n \n Do you want to have any Maryland income tax withheld from your pension or annuity?\n \n \n \n \n \n
\n
\n
\n
\n Enter flat dollar amount to be withheld for Maryland State Tax Withholding:\n \n $\n \n \n \n
\n \n You can only enter a value between 1 and {{maxAddAmount}}.\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n
State Tax Withholding
\n
\n \n \n Existing\n \n \n \n New\n \n
\n Total\n \n ${{taxDetails.stateTaxAmt}}\n \n -1\">${{amountSelected}}\n
\n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n","import { Component, OnInit, Output, EventEmitter, Input, ViewChild } from '@angular/core';\nimport { RetireeService } from '../../../shared/services/retiree.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { DocumentService } from '../../../shared/services/document.service';\nimport { ToastMessageService } from '../../../shared/services/toast-message.service';\nimport { UserService } from '../../../shared/services/user.service';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'app-tax-sumamry',\n templateUrl: './tax-sumamry.component.html',\n styleUrls: ['./tax-sumamry.component.css']\n})\n\nexport class TaxSumamryComponent implements OnInit {\n @Output() progressModel = new EventEmitter();\n @Input() taxDetails: any;\n @Input() federalDetails: any;\n @Input() stateDetails: any;\n showEsign = false;\n withholdingData: any;\n uniqueId: any;\n dataLoading = true;\n showNoChange = false;\n showSummaryPdf: boolean;\n showLoadingIcon: boolean;\n showSuccessChange: boolean;\n showErrorChange: boolean;\n taxWithholdConfig: any;\n trsacType: any;\n disclaimer: any;\n tEmail: any;\n pPhone: any;\n transactionType: any;\n accountId: any;\n @ViewChild('pdfViewerOnDemand') pdfViewerOnDemand: any;\n userDetails: any;\n docId: any;\n datePipe: DatePipe;\n\n constructor(\n private retireeService: RetireeService,\n private documentService: DocumentService,\n private toastService: ToastMessageService,\n private userService: UserService,\n private readConfigService: ReadConfigService) { }\n\n ngOnInit() {\n this.datePipe = new DatePipe('en-US');\n this.accountId = this.userService.getMdsAccountId();\n this.userDetails = this.userService.getUserInputData();\n this.showEsign = true;\n this.taxWithholdConfig = this.readConfigService.getTaxWithholdingText().SummaryText;\n this.transactionType = this.readConfigService.getTransactionType('UpdateTaxWithholding');\n this.showSummaryPdf = true;\n this.withholdingData = {\n Id: this.userService.getSelectedAccount().uniqueId,\n federalChange: this.federalDetails.changeOption,\n federalOption: this.federalDetails.changeOption ? !this.federalDetails.selectionOption : false,\n adjustedGross: this.taxDetails.adjustedGross,\n stateOption: this.stateDetails.stateOption,\n stateTaxAmt: this.stateDetails.stateTaxAmt === null ? 0 : this.stateDetails.stateTaxAmt,\n maritalStatus: this.federalDetails.mstatusSelected ? this.federalDetails.mstatusSelected : '',\n fedExemptions: this.federalDetails.exeSelected === null ? 0 : this.federalDetails.exeSelected,\n fedExemptionTax: this.federalDetails.exemptionAmount === null ? 0 : this.federalDetails.exemptionAmount,\n fedFlatTax: this.federalDetails.amountSelected === null ? 0 : this.federalDetails.amountSelected\n };\n if (!this.withholdingData.federalChange && !this.stateDetails.changeOption) {\n this.dataLoading = false;\n this.showSummaryPdf = false;\n this.showNoChange = true;\n } else {\n const inputData = {\n data: {\n id: this.withholdingData.Id,\n fedExemptions: this.withholdingData.fedExemptions,\n maritalStatus: this.withholdingData.maritalStatus,\n federalOption: this.withholdingData.federalOption,\n fedFlatTax: this.withholdingData.fedFlatTax,\n fedExemptionTax: this.withholdingData.fedExemptionTax,\n stateOption: this.withholdingData.stateOption,\n stateTaxAmt: this.withholdingData.stateTaxAmt\n },\n accountId: this.accountId,\n user: this.userDetails,\n };\n if (inputData.accountId) {\n this.documentService.getTaxWithholdingLetter(inputData)\n .subscribe((response) => {\n if (response) {\n this.dataLoading = false;\n this.showSummaryPdf = true;\n setTimeout(() => {\n this.pdfViewerOnDemand.pdfSrc = response;\n this.pdfViewerOnDemand.refresh();\n }, 100);\n } else {\n this.dataLoading = false;\n this.showSummaryPdf = false;\n this.taxWithholdConfig.ErrorMessage = this.documentService.errorMessage;\n this.showErrorChange = true;\n }\n },\n (err: HttpErrorResponse) => {\n this.dataLoading = false;\n this.showSummaryPdf = false;\n this.taxWithholdConfig.ErrorMessage = this.documentService.errorMessage;\n this.showErrorChange = true;\n console.log(err);\n });\n } else {\n this.dataLoading = false;\n this.showSummaryPdf = false;\n this.taxWithholdConfig.ErrorMessage = this.documentService.errorMessage;\n this.showErrorChange = true;\n }\n }\n window.scroll(0, 0);\n }\n\n esignResponse(event: any) {\n if (event.btnClicked === 'cancel') {\n this.goToFederal();\n } else if (event.btnClicked === 'continue') {\n const inputData = {\n data: {\n id: this.withholdingData.Id,\n fedExemptions: this.withholdingData.fedExemptions,\n maritalStatus: this.withholdingData.maritalStatus,\n federalOption: this.withholdingData.federalOption,\n fedFlatTax: this.withholdingData.fedFlatTax,\n fedExemptionTax: this.withholdingData.fedExemptionTax,\n stateOption: this.withholdingData.stateOption,\n stateTaxAmt: this.withholdingData.stateTaxAmt\n },\n email: this.tEmail ? this.tEmail : '',\n phone: this.pPhone ? this.pPhone : '',\n accountId: this.accountId,\n user: this.userDetails,\n transactionLogData: {\n TransactionType: this.transactionType,\n SignatureName: event.signName,\n SignatureDate: this.datePipe.transform(new Date(), 'MM/dd/yyyy'),\n LoginTime: this.userService.getLastLoginTime()\n }\n };\n this.retireeService.updateTaxWithholding(inputData).subscribe((data: any) => {\n this.progressModel.emit({ changeDetected: false });\n if (data && data.statusCode === 200 && data.result) {\n this.showSuccessChange = true;\n this.showSummaryPdf = false;\n this.docId = data.result;\n } else {\n this.showSummaryPdf = false;\n this.showErrorChange = true;\n }\n },\n (err: HttpErrorResponse) => {\n this.showSummaryPdf = false;\n console.log(err);\n this.showErrorChange = true;\n });\n }\n }\n\n goToFederal() {\n this.progressModel.emit({ goTo: 'federal', from: 'summary', changeDetected: false });\n }\n\n goToVa() {\n this.progressModel.emit({ goTo: 'viewaccount', changeDetected: false });\n }\n\n viewTaxWithholdingLetter() {\n this.showLoadingIcon = true;\n this.documentService.getMyDocument(this.docId, this.userDetails, 'Tax Withholding Form').subscribe(() => {\n this.showLoadingIcon = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.showLoadingIcon = false;\n this.toastService.getErrorMessage();\n });\n }\n}\n","
\n
\n
\n
Tax Withholding Summary and Signature
\n
\n \n \n
\n
\n
\n
\n
\n Daytime Phone\n
\n \n \n
\n
\n
\n Email Address\n \n
\n
\n
\n \n {{taxWithholdConfig.SignDisclaimer}}\n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n {{taxWithholdConfig.NoChangeMessage}}\n \n
\n
\n
\n
\n \n {{taxWithholdConfig.SuccessMessage}}\n \n \n
\n \n
\n
\n
\n
\n
\n \n {{taxWithholdConfig.ErrorMessage}}\n \n
\n
\n
\n
\n \n
\n
\n
\n","import { Component, OnInit, ViewChild, ViewContainerRef } from '@angular/core';\nimport { RetireeService } from '../../shared/services/retiree.service';\nimport { UserService } from '../../shared/services/user.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../../shared/services/toast-message.service';\nimport { GoogleAnalyticsService } from '../../shared/services/google-analytics.service';\nimport { Router } from '@angular/router';\nimport { ReadConfigService } from '../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-tax-withholding',\n templateUrl: './tax-withholding.component.html',\n styleUrls: ['./tax-withholding.component.css']\n})\nexport class TaxWithholdingComponent implements OnInit {\n showFederalTable = false;\n showStateTable = false;\n showSummary = false;\n uniqueId: any;\n taxWithholdingDetails: any;\n federalData: any;\n stateData: any;\n loadingIcon = true;\n showNoWizardMessage = false;\n message: any;\n showAppOutage: boolean;\n appOutageMessage: any;\n futureOutageMessage: any;\n changeDetected: any;\n @ViewChild('container', { read: ViewContainerRef }) public container: ViewContainerRef;\n\n constructor(private retireeService: RetireeService,\n private userService: UserService,\n private toastService: ToastMessageService,\n private googleAnalyticsService: GoogleAnalyticsService,\n private readConfigService: ReadConfigService,\n private router: Router) { }\n\n ngOnInit() {\n const panel = document.getElementById('account-nav');\n const accountPanel = panel.querySelectorAll('kendo-panelbar-item')[0];\n const taxPanel = panel.querySelectorAll('kendo-panelbar-item')[3];\n if (accountPanel) {\n const selectElement = accountPanel.querySelector('.k-header');\n const objHtmlElement = (selectElement as HTMLElement);\n objHtmlElement.classList.remove('k-state-selected');\n }\n if (taxPanel) {\n const selectElement = taxPanel.querySelector('.k-header');\n const objHtmlElement = (selectElement as HTMLElement);\n objHtmlElement.classList.add('k-state-selected');\n }\n this.uniqueId = this.userService.getSelectedAccount().uniqueId;\n const userDetails = this.userService.getUserInputData();\n this.retireeService.getTaxWithholding(this.uniqueId, userDetails).subscribe((data: any) => {\n if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else if (data && data.statusCode === 200) {\n if (data.hideFeature) {\n // for app feature outage\n this.showAppOutage = true;\n this.appOutageMessage = data.outageMessage;\n } else {\n this.futureOutageMessage = data.outageMessage;\n this.taxWithholdingDetails = data.result;\n this.taxWithholdingDetails.maritalStatus = this.taxWithholdingDetails.maritalStatus === '' ? null :\n this.taxWithholdingDetails.maritalStatus;\n if (this.taxWithholdingDetails.adjustedGross > 0) {\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Federal Tax Withholding', 'Click', 10);\n this.showFederalTable = true;\n } else {\n const taxWithholdConfig = this.readConfigService.getTaxWithholdingText();\n this.message = taxWithholdConfig.Message;\n this.showNoWizardMessage = true;\n }\n }\n } else {\n this.toastService.getErrorMessage();\n }\n this.loadingIcon = false;\n },\n (err: HttpErrorResponse) => {\n this.loadingIcon = false;\n console.log(err);\n this.toastService.getErrorMessage();\n });\n }\n\n setScreen(emit: any) {\n if (emit) {\n this.changeDetected = emit.changeDetected;\n switch (emit.goTo) {\n case 'federal':\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Federal Tax Withholding', 'Click', 10);\n if (emit.from !== 'state') {\n this.federalData = null;\n } else {\n this.federalData = emit.federalData;\n }\n this.showStateTable = false;\n this.showFederalTable = true;\n this.showSummary = false;\n break;\n case 'state':\n this.googleAnalyticsService.emitEvent('Button', 'Clicked State Tax Withholding', 'Click', 10);\n this.federalData = emit.federalData;\n this.showFederalTable = false;\n this.showStateTable = true;\n this.showSummary = false;\n break;\n case 'summary':\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Summary Tax Withholding', 'Click', 10);\n this.stateData = emit.stateData;\n this.showStateTable = false;\n this.showSummary = true;\n break;\n case 'viewaccount':\n const panel = document.getElementById('account-nav');\n const panelChildNodes = Array.from(panel.querySelectorAll('kendo-panelbar-item'));\n const accountPanel = panelChildNodes.find(x => x.textContent && x.textContent.trim() === 'View Account');\n const taxPanel = panelChildNodes.find(x => x.textContent && x.textContent.trim() === 'Update Tax Withholding');\n if (accountPanel) {\n const selectElement = accountPanel.querySelector('.k-header');\n const objHtmlElement = (selectElement as HTMLElement);\n objHtmlElement.classList.add('k-state-selected');\n }\n if (taxPanel) {\n const selectElement = taxPanel.querySelector('.k-header');\n const objHtmlElement = (selectElement as HTMLElement);\n objHtmlElement.classList.remove('k-state-selected');\n }\n this.router.navigateByUrl('/' + this.router.url.split('/')[1] + '/View Account');\n break;\n }\n }\n }\n}\n","

Update Tax Withholding

\n
\n \n
\n \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n {{message}}\n \n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\nimport { MysrpsAppService } from '../../../../shared/services/mysrps-app.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { NgForm } from '@angular/forms';\nimport { UserService } from '../../../../shared/services/user.service';\nimport { ToastMessageService } from '../../../../shared/services/toast-message.service';\nimport { Router } from '@angular/router';\nimport { ReadConfigService } from '../../../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-address-form',\n templateUrl: './address-form.component.html',\n styleUrls: ['./address-form.component.css']\n})\nexport class AddressFormComponent implements OnInit {\n\n disableSaveBtn = true;\n editAddress = false;\n @Input() formType: string;\n @Output() progressModel = new EventEmitter();\n @Input() userProfile: any;\n stateCodes: any;\n stateData: any;\n addressl1: any;\n addressl2: any;\n addressl3: any;\n addressl4: any;\n addressl5: any;\n selectedState: any;\n selectedCountry: any;\n isPrimChecked = false;\n primCountry: any;\n secCountry: any;\n defaultValue: { id: number, name: string, code: number; } = { id: null, name: ' Select State...', code: null };\n updateMessage: any;\n addressConfig: any;\n isLoading: boolean;\n constructor(private userService: UserService,\n private mysrpsAppService: MysrpsAppService,\n private readConfigService: ReadConfigService,\n private toastService: ToastMessageService,\n private router: Router) { }\n\n ngOnInit() {\n const config = this.readConfigService.getProfileText('ContactUpdate').Address;\n this.updateMessage = config.UpdateMessage;\n this.addressConfig = this.readConfigService.getAddressPlaceholder();\n this.getStatesNames();\n this.isPrimChecked = this.formType === 'primaryadd' || this.formType === 'primaryedit';\n }\n\n getStatesNames() {\n this.mysrpsAppService.getStates().subscribe((data: any) => {\n if (data && data.statusCode === 200) {\n this.stateCodes = data.result;\n this.stateData = this.stateCodes.slice();\n if (this.formType === 'primaryedit') {\n this.addressl1 = this.userProfile.primaryAddrLine1;\n this.addressl2 = this.userProfile.primaryAddrLine2;\n this.addressl3 = this.userProfile.primaryCity;\n this.addressl4 = this.userProfile.primaryState === '' ? this.defaultValue : this.userProfile.primaryState;\n this.addressl5 = this.userProfile.primaryZip;\n const primState = this.stateCodes.filter(\n (s: any) => s.code.toLowerCase() === this.userProfile.primaryState.toLowerCase())[0];\n this.stateValueChange(primState);\n } else if (this.formType === 'secondaryedit') {\n this.addressl1 = this.userProfile.secondaryAddrLine1;\n this.addressl2 = this.userProfile.secondaryAddrLine2;\n this.addressl3 = this.userProfile.secondaryCity;\n this.addressl4 = this.userProfile.secondaryState;\n this.addressl5 = this.userProfile.secondaryZip;\n const secState = this.stateCodes.filter(\n (s: any) => s.code.toLowerCase() === this.userProfile.secondaryState.toLowerCase())[0];\n this.stateValueChange(secState);\n }\n }\n },\n (err: HttpErrorResponse) => {\n this.toastService.getErrorMessage();\n console.log(err);\n });\n }\n\n stateChange(filter: any): void {\n this.stateData = this.stateCodes.filter((s: any) => s.name.toLowerCase().indexOf(filter.toLowerCase()) !== -1);\n }\n\n stateValueChange(value: any): void {\n if (value && value.code) {\n this.disableSaveBtn = false;\n this.addressl4 = value;\n this.selectedState = value.code;\n } else {\n this.disableSaveBtn = true;\n this.addressl4 = null;\n }\n }\n\n keytab() {\n if (this.addressl5 !== null) {\n this.addressl5 = this.zipMasking(this.addressl5);\n if (this.addressl5.length === 10 || this.addressl5.length === 5) {\n this.disableSaveBtn = false;\n } else {\n this.disableSaveBtn = true;\n }\n }\n }\n\n zipMasking(value: any) {\n if (value !== null) {\n let val = value.replace(/\\D/g, '');\n let newVal = '';\n if (val.length > 5) {\n value = val;\n }\n if ((val.length > 5) && (val.length < 10)) {\n newVal += val.substr(0, 5) + '-';\n val = val.substr(5);\n }\n newVal += val;\n value = newVal.substring(0, 10);\n return value;\n } else {\n return null;\n }\n }\n\n saveAddr() {\n this.isLoading = true;\n const inputData = {\n accountId: this.userService.getMdsAccountId(),\n profile: {\n PrimaryAddrLine1: this.addressl1,\n PrimaryAddrLine2: this.addressl2 ? this.addressl2 : '',\n PrimaryCity: this.addressl3,\n PrimaryState: this.addressl4 ? this.addressl4.code : '',\n PrimaryCountry: '',\n PrimaryZip: this.addressl5,\n IsPrimary: this.isPrimChecked\n },\n transactionLogData: {\n TransactionType: this.readConfigService.getTransactionType('UpdateAddress'),\n LoginTime: this.userService.getLastLoginTime()\n },\n user: this.userService.getUserInputData()\n };\n this.userService.updateUserAddress(inputData).subscribe((data: any) => {\n if (data) {\n switch (data.statusCode) {\n case 200:\n this.toastService.getCustomSuccessMessage(this.updateMessage);\n this.progressModel.emit();\n break;\n case 206:\n // missing field\n this.toastService.getCustomErrorMessage(data.message);\n break;\n case 403:\n this.router.navigate(['/forbidden']);\n break;\n }\n } else {\n this.toastService.getErrorMessage();\n }\n this.isLoading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n this.isLoading = false;\n });\n }\n\n cancelAddr() {\n this.editAddress = false;\n this.addressl1 = null;\n this.addressl2 = null;\n this.addressl3 = null;\n this.addressl4 = null;\n this.addressl5 = null;\n this.progressModel.emit({\n btnClicked: 'cancel',\n formDetails: this.formType\n });\n }\n\n formValid(form: NgForm) {\n if (!this.addressl4) {\n this.stateValueChange(this.addressl4);\n }\n return form.valid;\n }\n}\n","
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n \n {{ dataItem.name }}\n \n \n
\n
\n \n
\n
\n
\n
\n \n Save\n \n \n \n Cancel\n \n
\n
\n \n
\n
\n
\n
\n
\n","import { Component, OnInit, Input } from '@angular/core';\nimport { UserService } from '../../../shared/services/user.service';\nimport { ToastMessageService } from '../../../shared/services/toast-message.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-address',\n templateUrl: './address.component.html',\n styleUrls: ['./address.component.css']\n})\nexport class AddressComponent implements OnInit {\n @Input() profileDetails: any;\n editPrimAddress = false;\n showAddPrim = false;\n showAddPrimForm = false;\n showPrimAddress = false;\n editSecAddress = false;\n showAddSec = false;\n showAddSecForm = false;\n showSecAddress = false;\n disablePEditBtn = false;\n disableSEditBtn = false;\n showPrimEditBtn = true;\n openDialog = false;\n dTitle = 'Confirm';\n dContent = 'Are you sure you want to delete this address?';\n dSContent = 'Are you sure you want to switch your addresses?';\n switchConfirm = false;\n switchMessage: any;\n deleteMessage: any;\n activeEmployeeMessage: any;\n isLoading: boolean;\n switchLoading = false;\n\n constructor(\n private userService: UserService,\n private readConfigService: ReadConfigService,\n private toastService: ToastMessageService,\n private router: Router) { }\n\n ngOnInit() {\n const config = this.readConfigService.getProfileText('ContactUpdate').Address;\n this.dTitle = config.DialogTitle;\n this.dSContent = config.DialogContentForSwitch;\n this.dContent = config.DialogContentForDelete;\n this.switchMessage = config.SwitchMessage;\n this.deleteMessage = config.DeleteMessage;\n this.activeEmployeeMessage = config.ActiveEmployeeMessage;\n this.checkAddressId();\n }\n\n checkAddressId() {\n if (this.profileDetails.secondaryAddressId !== '0') {\n this.showSecAddress = true;\n this.showAddSec = false;\n this.editSecAddress = false;\n this.showAddSecForm = false;\n } else {\n this.showAddSec = true;\n this.showSecAddress = false;\n this.editSecAddress = false;\n }\n if (this.profileDetails.primaryAddressId !== '0') {\n this.showPrimAddress = true;\n this.editPrimAddress = false;\n this.showAddPrim = false;\n this.showAddPrimForm = false;\n } else {\n this.showAddPrim = true;\n this.showSecAddress = false;\n this.showAddSec = false;\n }\n this.checkForActive();\n }\n\n checkForActive() {\n let notActive = false;\n this.profileDetails.userStatus.forEach((element: any) => {\n notActive = element.search(/active/gi) === -1 ? true :\n !(element.search(/inactive/gi) === -1);\n if (!notActive) {\n this.showPrimEditBtn = false;\n }\n });\n }\n\n onEditAddress(type: any) {\n if (type.primary) {\n if (type.add) {\n this.showAddPrimForm = true;\n this.showPrimAddress = false;\n this.editPrimAddress = false;\n this.showAddSec = false;\n this.editSecAddress = false;\n } else {\n this.editPrimAddress = true;\n this.showPrimAddress = false;\n this.showAddSec = false;\n this.editSecAddress = false;\n this.disableSEditBtn = true;\n }\n } else {\n if (type.add) {\n this.showAddSecForm = true;\n this.showAddSec = false;\n this.showSecAddress = false;\n this.editPrimAddress = false;\n this.disablePEditBtn = true;\n } else {\n this.editSecAddress = true;\n this.disablePEditBtn = true;\n this.showSecAddress = false;\n }\n }\n }\n\n setData(emit: any) {\n if (emit && emit.btnClicked === 'cancel') {\n this.checkAddressId();\n switch (emit.formDetails) {\n case 'primaryedit':\n this.editPrimAddress = false;\n this.showPrimAddress = true;\n this.disableSEditBtn = false;\n break;\n case 'primaryadd':\n this.editPrimAddress = false;\n this.showPrimAddress = true;\n this.disableSEditBtn = false;\n break;\n case 'secondaryedit':\n this.editSecAddress = false;\n this.showSecAddress = true;\n this.disablePEditBtn = false;\n break;\n case 'secondaryadd':\n this.showAddSec = true;\n this.showAddSecForm = false;\n this.disablePEditBtn = false;\n break;\n }\n } else {\n this.disablePEditBtn = false;\n this.disableSEditBtn = false;\n this.loadProfileDetails();\n }\n }\n\n showDialog(type: any) {\n type === 1 ? this.openDialog = true : this.switchConfirm = true;\n }\n\n confirmYes(emit: any, type: any) {\n if (type === 'delete') {\n if (emit.confirmDelete === 'yes') {\n this.deleteAddr();\n }\n this.openDialog = false;\n } else {\n if (emit.confirmDelete === 'yes') {\n this.setPrimAddress();\n }\n this.switchConfirm = false;\n }\n }\n\n deleteAddr() {\n this.isLoading = true;\n const inputData = {\n accountId: this.userService.getMdsAccountId(),\n transactionLogData: {\n TransactionType: this.readConfigService.getTransactionType('DeleteAddress'),\n LoginTime: this.userService.getLastLoginTime()\n },\n user: this.userService.getUserInputData()\n };\n this.userService.deleteUserAddress(inputData).subscribe((data: any) => {\n if (data.statusCode === 200) {\n this.toastService.getCustomSuccessMessage(this.deleteMessage);\n this.loadProfileDetails();\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.toastService.getErrorMessage();\n }\n this.isLoading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n this.isLoading = false;\n });\n }\n\n setPrimAddress() {\n this.switchLoading = true;\n const inputData = {\n transactionLogData: {\n TransactionType: this.readConfigService.getTransactionType('SwitchAddress'),\n LoginTime: this.userService.getLastLoginTime()\n },\n user: this.userService.getUserInputData()\n };\n this.userService.switchUserAddress(inputData).subscribe((data: any) => {\n if (data.statusCode === 200) {\n this.loadProfileDetails();\n this.toastService.getCustomSuccessMessage(this.switchMessage);\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.toastService.getErrorMessage();\n }\n this.switchLoading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.switchLoading = false;\n this.toastService.getErrorMessage();\n });\n }\n\n loadProfileDetails() {\n this.userService.getUserProfile().subscribe((data: any) => {\n if (data.statusCode === 200) {\n data.result.userStatus = this.profileDetails.userStatus;\n this.profileDetails = data.result;\n this.profileDetails.CRMCaseType = this.readConfigService.getCRMCaseType('Contact');\n this.profileDetails.primaryZip = this.profileDetails.primaryZip.substring(6, 10) === '0000' ?\n this.profileDetails.primaryZip.substring(0, 5) : this.profileDetails.primaryZip;\n this.profileDetails.secondaryZip = this.profileDetails.secondaryZip.substring(6, 10) === '0000' ?\n this.profileDetails.secondaryZip.substring(0, 5) : this.profileDetails.secondaryZip;\n this.userService.setProfile(this.profileDetails);\n this.checkAddressId();\n this.showAddSecForm = false;\n this.disablePEditBtn = false;\n } else if (data.statusCode === 204) {\n this.toastService.getCustomErrorMessage(data.message);\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.toastService.getErrorMessage();\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n });\n }\n}\n","
\n \n
\n
\n
\n {{activeEmployeeMessage}}\n
\n
\n
Primary\n
\n
\n
\n
\n
\n
\n
\n \n {{profileDetails.primaryAddrLine1}}\n \n
\n
\n \n {{profileDetails.primaryAddrLine2}}\n \n
\n
\n \n {{profileDetails.primaryCity}} {{profileDetails.primaryState | uppercase}} {{profileDetails.primaryZip}}\n {{profileDetails.primaryZip.substring(0,5)}}\n \n
\n
\n \n {{profileDetails.primaryCountry | uppercase}}\n \n
\n
\n
\n \n \n Edit\n \n
\n
\n
\n \n \n
\n
\n
\n \n
\n \n
\n
\n
\n
Primary\n
\n
\n
\n
\n \n \n
\n
\n
\n \n
\n
\n
\n
Secondary\n
\n
\n
\n
\n
\n
\n \n {{profileDetails.secondaryAddrLine1}}\n \n
\n
\n \n {{profileDetails.secondaryAddrLine2}}\n \n
\n
\n \n {{profileDetails.secondaryCity}} {{profileDetails.secondaryState | uppercase}} {{profileDetails.secondaryZip}}\n {{profileDetails.secondaryZip.substring(0,5)}}\n \n
\n
\n \n {{profileDetails.secondaryCountry | uppercase}}\n \n
\n
\n
\n
\n \n \n Edit\n \n \n \n Delete\n \n
\n
\n \n
\n
\n
\n \n \n
\n
\n
\n \n
\n \n
\n
Secondary\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
","import { Component, OnInit, Input } from '@angular/core';\nimport { UserService } from '../../../shared/services/user.service';\nimport { ToastMessageService } from '../../../shared/services/toast-message.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-comm-pref',\n templateUrl: './comm-pref.component.html',\n styleUrls: ['./comm-pref.component.css']\n})\nexport class CommPrefComponent implements OnInit {\n\n selOption = 'email';\n checked = true;\n @Input() profileDetails: any;\n config: any;\n intro: any;\n showEditPref = false;\n updateMessage: any;\n isLoading: boolean;\n constructor(private userService: UserService,\n private readConfigService: ReadConfigService,\n private toastService: ToastMessageService,\n private router: Router) { }\n\n ngOnInit() {\n this.config = this.readConfigService.getProfileText('ContactUpdate').CommPref;\n this.updateMessage = this.config.UpdateMessage;\n this.checkPrimComm();\n }\n\n checkPrimComm() {\n this.showEditPref = false;\n this.intro = this.config.Phrase2 + this.config.Introduction;\n this.profileDetails.commPreference = this.profileDetails.commPreference === '' ? 'Email' : this.profileDetails.commPreference;\n this.setPrimComm(this.profileDetails.commPreference);\n }\n\n editPref() {\n this.intro = this.config.Phrase1 + this.config.Introduction;\n this.showEditPref = true;\n }\n\n setPrimComm(value: string) {\n this.selOption = value;\n }\n\n savePref() {\n this.isLoading = true;\n const inputData = {\n commpreference: this.selOption,\n transactionLogData: {\n TransactionType: this.readConfigService.getTransactionType('UpdateCommPref'),\n LoginTime: this.userService.getLastLoginTime()\n },\n user: this.userService.getUserInputData()\n };\n this.userService.updateContactPref(inputData).subscribe((data: any) => {\n if (data.statusCode === 200) {\n this.toastService.getCustomSuccessMessage(this.updateMessage);\n this.userService.setProfileData('commPreference', this.selOption);\n this.profileDetails.commPreference = this.selOption;\n this.checkPrimComm();\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.toastService.getErrorMessage();\n }\n this.isLoading = false;\n },\n (err: HttpErrorResponse) => {\n this.isLoading = false;\n console.log(err);\n this.toastService.getErrorMessage();\n });\n }\n\n cancelPref() {\n this.checkPrimComm();\n }\n}\n","
\n
\n \n {{intro}}\n \n
\n
\n
\n
\n {{profileDetails.commPreference === 'Mail' ? 'Primary Address' : 'Primary Email'}}\n
\n
\n \n \n Edit\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n Save\n \n \n \n Cancel\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, DoCheck, ChangeDetectorRef } from '@angular/core';\nimport { UserService } from '../../shared/services/user.service';\n\n@Component({\n selector: 'app-contact-update',\n templateUrl: './contact-update.component.html',\n styleUrls: ['./contact-update.component.css']\n})\nexport class ContactUpdateComponent implements OnInit, DoCheck {\n\n userProfile: any;\n dataLoading = true;\n constructor(private userService: UserService,\n private cdRef: ChangeDetectorRef) { }\n\n ngOnInit() {\n window.scroll(0, 0);\n this.dataLoading = true;\n this.userProfile = this.userService.getProfile();\n this.dataLoading = false;\n }\n\n ngDoCheck() {\n this.cdRef.detectChanges();\n }\n}\n","
\n
\n
\n
\n

Contact Information

\n
\n \n \n \n \n \"SRPS\"\n Addresses\n \n \n \n \n \n \n \n \n \"SRPS\"\n Email Addresses\n \n \n \n \n \n \n \n \n \"SRPS\"\n Phone Numbers\n \n \n \n \n \n \n \n \n \"SRPS\"\n Communication Preference\n \n \n \n \n \n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, Input } from '@angular/core';\nimport { UserService } from '../../../shared/services/user.service';\nimport { ToastMessageService } from '../../../shared/services/toast-message.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-email',\n templateUrl: './email.component.html',\n styleUrls: ['./email.component.css']\n})\nexport class EmailComponent implements OnInit {\n\n @Input() profileDetails: any;\n showSecondary = false;\n showForm = false;\n showAddEmail = false;\n sEmail: any;\n openDialog = false;\n dTitle = 'Confirm';\n newSecondaryVsPrimaryMessage: any;\n newSecondaryVsOldMessage: any;\n updateMessage: any;\n deleteMessage: any;\n dContent: any;\n isLoading: boolean;\n\n constructor(private userService: UserService,\n private readConfigService: ReadConfigService,\n private toastService: ToastMessageService) { }\n\n ngOnInit() {\n const config = this.readConfigService.getProfileText('ContactUpdate').Email;\n this.newSecondaryVsPrimaryMessage = config.NewSecondaryVsPrimaryMessage;\n this.newSecondaryVsOldMessage = config.NewSecondaryVsOldMessage;\n this.dTitle = config.DialogTitle;\n this.dContent = config.DialogContent;\n this.updateMessage = config.UpdateMessage;\n this.deleteMessage = config.DeleteMessage;\n this.checkEmail();\n }\n\n checkEmail() {\n if (this.profileDetails.secondaryEmail !== '') {\n this.showSecondary = true;\n this.showAddEmail = false;\n } else {\n this.showAddEmail = true;\n this.showSecondary = false;\n }\n }\n\n saveEmail(value: any) {\n this.isLoading = true;\n const inputData = {\n accountId: this.userService.getMdsAccountId(),\n secondaryemail: this.userService.encrypt(value, 'post'),\n transactionLogData: {\n TransactionType: this.readConfigService.getTransactionType('UpdateEmail'),\n LoginTime: this.userService.getLastLoginTime()\n },\n user: this.userService.getUserInputData()\n };\n this.userService.updateUserEmail(inputData).subscribe((data: any) => {\n if (data.statusCode === 200) {\n this.cancel();\n value === '' ? this.toastService.getCustomSuccessMessage(this.deleteMessage) :\n this.toastService.getCustomSuccessMessage(this.updateMessage);\n this.userService.setProfileData('secondaryEmail', value);\n this.profileDetails.secondaryEmail = value;\n this.checkEmail();\n }\n this.isLoading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n this.isLoading = false;\n });\n }\n\n showDialog() {\n this.openDialog = true;\n }\n\n confirmDelete(emit: any) {\n if (emit.confirmDelete === 'yes') {\n this.saveEmail('');\n }\n this.openDialog = false;\n }\n\n editEmail() {\n this.sEmail = this.profileDetails.secondaryEmail;\n this.showForm = true;\n this.showSecondary = false;\n }\n\n addEmail() {\n this.showForm = true;\n this.showAddEmail = false;\n }\n\n cancel() {\n this.showForm = false;\n this.sEmail = null;\n this.checkEmail();\n }\n}\n","
\n
\n
\n
\n
Primary\n
\n
\n
\n
\n {{profileDetails.userName | lowercase}}\n
\n
\n
\n \n
\n
Secondary\n
\n
\n
\n
\n \n
\n
\n
\n \n \n Save\n \n \n \n Cancel\n \n
\n
\n \n
\n
\n
\n
\n {{newSecondaryVsPrimaryMessage}}\n
\n
\n {{newSecondaryVsOldMessage}}\n
\n
\n
\n
\n
\n
\n
Secondary\n
\n
\n
\n {{profileDetails.secondaryEmail | lowercase}} \n
\n
\n
\n \n \n Edit\n \n \n \n Delete\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n \n \n
\n","import { Component, OnInit, Input } from '@angular/core';\nimport { UserService } from '../../../shared/services/user.service';\nimport { ToastMessageService } from '../../../shared/services/toast-message.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-phone',\n templateUrl: './phone.component.html',\n styleUrls: ['./phone.component.css']\n})\nexport class PhoneComponent implements OnInit {\n @Input() profileDetails: any;\n editPrim = false;\n showSecondary: boolean;\n showAddPhone: boolean;\n disablePEditBtn: boolean;\n disableSEditBtn: boolean;\n pPhone: any;\n sPhone: any;\n editSec = false;\n openDialog = false;\n newPrimaryVsOldMessage: any;\n newPrimaryVsSecondaryMessage: any;\n newSecondaryVsPrimaryMessage: any;\n newSecondaryVsOldMessage: any;\n newSecondaryVsNewPrimaryMessage: any;\n updateMessage: any;\n dContent: string;\n dTitle = 'Confirm';\n isLoading: boolean;\n constructor(\n private userService: UserService,\n private readConfigService: ReadConfigService,\n private toastService: ToastMessageService,\n private router: Router) { }\n\n ngOnInit() {\n const config = this.readConfigService.getProfileText('ContactUpdate').Phone;\n this.newPrimaryVsOldMessage = config.NewPrimaryVsOldMessage;\n this.newPrimaryVsSecondaryMessage = config.NewPrimaryVsSecondaryMessage;\n this.newSecondaryVsPrimaryMessage = config.NewSecondaryVsPrimaryMessage;\n this.newSecondaryVsOldMessage = config.NewSecondaryVsOldMessage;\n this.newSecondaryVsNewPrimaryMessage = config.NewSecondaryVsNewPrimaryMessage;\n this.dTitle = config.DialogTitle;\n this.dContent = config.DialogContent;\n this.updateMessage = config.UpdateMessage;\n this.checkSecPhone();\n }\n\n checkSecPhone() {\n if (this.profileDetails.secondaryPhone !== '') {\n this.showSecondary = true;\n this.showAddPhone = false;\n } else {\n this.showAddPhone = true;\n this.showSecondary = false;\n }\n }\n\n editPPhone() {\n this.disableSEdit();\n this.disbaleAdd();\n this.disableDelete();\n this.editPrim = true;\n this.pPhone = this.profileDetails.primaryPhone;\n this.sPhone = this.profileDetails.secondaryPhone;\n }\n\n editSPhone() {\n this.disbalePEdit();\n this.pPhone = this.profileDetails.primaryPhone;\n this.sPhone = this.profileDetails.secondaryPhone;\n this.editSec = true;\n this.showAddPhone = this.profileDetails.secondaryPhone === '';\n this.showSecondary = false;\n }\n\n cancelPPhone() {\n this.editPrim = false;\n this.pPhone = this.profileDetails.primaryPhone;\n this.sPhone = this.profileDetails.secondaryPhone;\n this.allowAdd();\n this.allowSEdit();\n this.allowDelete();\n this.allowPEdit();\n }\n\n cancelSPhone() {\n this.checkSecPhone();\n this.editSec = false;\n this.pPhone = this.profileDetails.primaryPhone;\n this.sPhone = this.profileDetails.secondaryPhone;\n this.allowAdd();\n this.allowSEdit();\n this.allowDelete();\n this.allowPEdit();\n }\n\n showDialog() {\n this.openDialog = true;\n }\n\n confirmDelete(emit: any) {\n if (emit.confirmDelete === 'yes') {\n this.savePhone(this.profileDetails.primaryPhone, '');\n }\n this.openDialog = false;\n }\n\n savePhone(value1: any, value2: any) {\n this.isLoading = true;\n const inputData = {\n accountId: this.userService.getMdsAccountId(),\n profile: {\n PrimaryPhone: this.userService.encrypt(value1, 'post'),\n SecondaryPhone: this.userService.encrypt(value2, 'post')\n },\n transactionLogData: {\n TransactionType: this.readConfigService.getTransactionType('UpdatePhone'),\n LoginTime: this.userService.getLastLoginTime()\n },\n user: this.userService.getUserInputData()\n };\n this.userService.updateUserPhone(inputData).subscribe((data: any) => {\n if (data.statusCode === 200) {\n this.toastService.getCustomSuccessMessage(this.updateMessage);\n this.editSec = false;\n this.editPrim = false;\n this.userService.setProfileData('primaryPhone', value1);\n this.userService.setProfileData('secondaryPhone', value2);\n this.profileDetails.primaryPhone = value1;\n this.profileDetails.secondaryPhone = value2;\n this.checkSecPhone();\n this.allowAdd();\n this.allowSEdit();\n this.allowDelete();\n this.allowPEdit();\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.toastService.getErrorMessage();\n }\n this.isLoading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n this.isLoading = false;\n });\n }\n\n onValueChange(event: any) {\n this.sPhone = event;\n }\n\n addAnother() {\n this.editSec = true;\n this.pPhone = this.profileDetails.primaryPhone;\n this.sPhone = null;\n this.showAddPhone = false;\n this.disbalePEdit();\n }\n\n disbalePEdit() {\n let primDiv = document.getElementById('editPBtn');\n if (primDiv) {\n primDiv.classList.add('disable-link');\n }\n }\n\n disableSEdit() {\n let secDiv = document.getElementById('editSBtn');\n if (secDiv) {\n secDiv.classList.add('disable-link');\n }\n }\n\n disbaleAdd() {\n let addBtn = document.getElementById('addBtn');\n if (addBtn) {\n addBtn.classList.add('disable-link');\n }\n }\n\n disableDelete() {\n let deleteBtn = document.getElementById('deletePhone');\n if (deleteBtn) {\n deleteBtn.classList.add('disable-link');\n }\n }\n\n allowPEdit() {\n let primDiv = document.getElementById('editPBtn');\n if (primDiv) {\n primDiv.classList.remove('disable-link');\n }\n }\n\n allowSEdit() {\n let secDiv = document.getElementById('editSBtn');\n if (secDiv) {\n secDiv.classList.remove('disable-link');\n }\n }\n\n allowDelete() {\n let deleteBtn = document.getElementById('deletePhone');\n if (deleteBtn) {\n deleteBtn.classList.remove('disable-link');\n }\n }\n\n allowAdd() {\n let addBtn = document.getElementById('addBtn');\n if (addBtn) {\n addBtn.classList.remove('disable-link');\n }\n }\n}","
\n
\n
\n
\n
\n
Primary\n
\n
\n
\n {{profileDetails.primaryPhone}}\n
\n
\n \n \n Edit\n \n
\n
\n
\n
\n
Primary\n
\n
\n
\n \n \n
\n
\n
\n \n \n Save\n \n \n \n Cancel\n \n
\n
\n \n
\n
\n
\n
\n {{newPrimaryVsOldMessage}}\n
\n
\n {{newPrimaryVsSecondaryMessage}}\n
\n
\n
\n
\n
\n \n
\n
\n
Secondary\n
\n
\n
\n {{profileDetails.secondaryPhone}}\n \n
\n
\n
\n \n \n Edit\n \n \n \n Delete\n \n
\n
\n \n
\n
\n
\n
\n
\n
Secondary\n
\n
\n
\n \n \n
\n
\n
\n \n \n Save\n \n \n \n Cancel\n \n
\n
\n \n
\n
\n
\n \n {{newSecondaryVsPrimaryMessage}}\n
\n
\n {{newSecondaryVsOldMessage}}\n
\n
\n {{newSecondaryVsNewPrimaryMessage}}\n
\n
\n
\n
\n
\n
\n \n\n
\n \n \n
\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { UserService } from '../shared/services/user.service';\nimport { ToastMessageService } from '../shared/services/toast-message.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ReadConfigService } from '../shared/services/read-config.service';\n\n@Component({\n selector: 'app-profile',\n templateUrl: './profile.component.html',\n styleUrls: ['./profile.component.css']\n})\nexport class ProfileComponent implements OnInit {\n selectedId: any;\n sideTasks = [];\n selectedValue: any;\n showChild = false;\n userProfile: any;\n dataLoading = true;\n showPersonalInfo = true;\n showContactInfo: any;\n showSecurityInfo: any;\n showAppOutage: boolean;\n appOutageMessage: any;\n futureOutageMessage: any;\n constructor(\n private userService: UserService,\n private router: Router,\n private readConfigService: ReadConfigService,\n private toastService: ToastMessageService) { }\n\n ngOnInit() {\n const status = [];\n const profileSideTasks = this.readConfigService.getUserProfileSideTasks();\n this.setSelectedId();\n const session = this.userService.getUserSession();\n session.userAccounts.forEach((element: any) => {\n status.push(element.status);\n });\n this.userService.getUserProfile().subscribe((data: any) => {\n if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else if (data.statusCode === 200) {\n if (data.hideFeature) {\n // for app feature outage\n this.showAppOutage = true;\n this.appOutageMessage = data.outageMessage;\n } else {\n this.futureOutageMessage = data.outageMessage;\n this.userProfile = data.result;\n this.userProfile.userStatus = status;\n this.userProfile.CRMCaseType = this.readConfigService.getCRMCaseType('Contact');\n this.userProfile.primaryZip = this.userProfile.primaryZip.substring(6, 10) === '0000' ?\n this.userProfile.primaryZip.substring(0, 5) : this.userProfile.primaryZip;\n this.userProfile.secondaryZip = this.userProfile.secondaryZip.substring(6, 10) === '0000' ?\n this.userProfile.secondaryZip.substring(0, 5) : this.userProfile.secondaryZip;\n this.userService.setProfile(this.userProfile);\n this.showContactInfo = this.userService.showDarkFeature('ContactInfo');\n this.showSecurityInfo = this.userService.showDarkFeature('SecurityInfo');\n if (this.showContactInfo) {\n this.sideTasks.push(profileSideTasks[0]);\n this.selectedValue = profileSideTasks[0];\n }\n if (this.showSecurityInfo) {\n this.sideTasks.push(profileSideTasks[1]);\n }\n if (!this.showContactInfo && this.showSecurityInfo) {\n this.selectedValue = profileSideTasks[1];\n this.router.navigate(['/profile/securityinformation']);\n }\n this.showChild = true;\n }\n } else if (data.statusCode === 204) {\n this.futureOutageMessage = data.outageMessage;\n this.toastService.getCustomErrorMessage(data.message);\n } else {\n this.toastService.getErrorMessage();\n }\n this.dataLoading = false;\n },\n (err: HttpErrorResponse) => {\n this.showChild = false;\n this.dataLoading = false;\n this.showPersonalInfo = false;\n console.log(err);\n this.toastService.getErrorMessage();\n });\n setTimeout(() => {\n if (document.querySelectorAll('[role=\"listbox\"]') !== undefined) {\n const sliderSelectionElement = document.querySelectorAll('[role=\"listbox\"]');\n if (sliderSelectionElement.length > 0) {\n const selectElement = sliderSelectionElement[0].querySelector('.k-icon');\n const objHtmlElement = (selectElement as HTMLElement);\n objHtmlElement.style.color = 'white !important';\n objHtmlElement.style.content = '\\E015 !important';\n objHtmlElement.classList.add('icon-arrow-chevron-down');\n const kinputElement = document.querySelector('.k-input');\n const objInputHtmlElement = (kinputElement as HTMLElement);\n objInputHtmlElement.style.padding = '25px';\n objInputHtmlElement.style.fontSize = '27px !important';\n const kselectElement = document.querySelector('.k-select');\n const objSelectHtmlElement = (kselectElement as HTMLElement);\n objSelectHtmlElement.style.backgroundColor = '#464646';\n objSelectHtmlElement.style.width = '50px';\n }\n }\n }, 500);\n }\n\n /**\n * @description\n * Function to set selected task even on refreshing\n * customized code to work on prod only\n */\n setSelectedId() {\n const paths = location.pathname.replace(/\\//g, ',').split(',');\n if (paths.length > 2) {\n const selectedPath = paths[2].toLowerCase();\n this.selectedValue = selectedPath.includes('contact') ? this.sideTasks[0] : this.sideTasks[1];\n this.selectedId = paths[2];\n }\n }\n\n onPanelChange(event: any) {\n event.forEach((element: any) => {\n if (element.selected) {\n this.selectedValue = element.title;\n this.selectedId = element.title.toLowerCase().replace(' ', '');\n }\n });\n }\n\n selectionChange(e: any) {\n this.selectedValue = e;\n this.selectedId = e.toLowerCase().replace(' ', '');\n this.router.navigate(['/profile/' + this.selectedId]);\n }\n}\n","\n
\n
\n
\n
\n \n
\n \n
\n \n
\n \n
\n \n
\n
\n \n \n {{ dataItem }}\n \n \n \n \n \n \n \n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n

Profile

\n
\n \n
\n
\n
\n
\n","import { Component, OnInit, ChangeDetectorRef, DoCheck } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { UserService } from '../../../shared/services/user.service';\nimport { ToastMessageService } from '../../../shared/services/toast-message.service';\nimport { Router } from '@angular/router';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-change-password',\n templateUrl: './change-password.component.html',\n styleUrls: ['./change-password.component.css']\n})\nexport class ChangePasswordComponent implements OnInit, DoCheck {\n curpassword: string;\n password: string;\n repassword: string;\n inputType1 = 'password';\n inputType2 = 'password';\n inputType3 = 'password';\n passCharcters: string;\n passStrength: string;\n strength = null;\n samePhrase = false;\n notsamePhrase = false;\n disableRe = true;\n userProfile: any;\n wrongPassword = false;\n openDialog = false;\n dContent = '';\n config: any;\n wrongPasswordText: any;\n isLoading = false;\n usedPhrase = false;\n existedPasswordtext: any;\n showRules = false;\n samePasswordMessage: any;\n curpasswordFocused = false;\n passwordFocused = false;\n repasswordFocused = false;\n user: any;\n\n constructor(\n private readConfigService: ReadConfigService,\n private userService: UserService,\n private cdRef: ChangeDetectorRef,\n private toastService: ToastMessageService,\n private router: Router) {\n }\n\n ngOnInit() {\n window.scroll(0, 0);\n this.config = this.readConfigService.getProfileText('SecurityUpdate').Password;\n this.samePasswordMessage = this.config.SamePasswordMessage;\n this.existedPasswordtext = this.config.ExisitingPassword;\n this.dContent = this.config.PasswordChangeSuccess;\n this.wrongPasswordText = this.config.WrongPasswordMessage;\n this.userProfile = this.userService.getProfile();\n this.user = this.userService.getUserInputData();\n }\n\n ngDoCheck() {\n this.cdRef.detectChanges();\n }\n\n disableSave(form: NgForm) {\n if (!this.curpasswordFocused) {\n this.curpassword = null;\n }\n if (!this.passwordFocused) {\n this.password = null;\n }\n if (!this.repasswordFocused) {\n this.repassword = null;\n }\n if (form.value.curpassphrase && form.value.passphrase) {\n if (form.value.curpassphrase.trim() === form.value.passphrase.trim()) {\n this.samePhrase = true;\n return true;\n } else {\n this.samePhrase = false;\n }\n }\n if (form.value.passphrase && form.value.repassphrase) {\n if (form.value.passphrase.trim() !== form.value.repassphrase.trim()) {\n this.notsamePhrase = true;\n return true;\n } else {\n this.notsamePhrase = false;\n }\n }\n if (this.usedPhrase) {\n return true;\n }\n if (form.value.curpassphrase && form.value.passphrase && form.value.repassphrase) {\n return false;\n } else {\n return true;\n }\n }\n\n onFocus(): void {\n this.passwordFocused = true;\n this.showRules = true;\n }\n\n onBlur(value: any) {\n if (!this.curpasswordFocused && !this.curpassword) {\n this.curpassword = null;\n }\n if (!this.passwordFocused && !this.password) {\n this.password = null;\n }\n if (!this.repasswordFocused && !this.repassword) {\n this.repassword = null;\n }\n this.showRules = false;\n if (!this.samePhrase && value && value.length > 0) {\n const inputData = {\n password: this.userService.encrypt(value.trim(), 'post'),\n user: this.user\n };\n this.userService.isPwdUsed(inputData).subscribe((data: any) => {\n if (data && data.statusCode === 200) {\n if (data.result) {\n this.usedPhrase = true;\n this.repassword = null;\n } else {\n this.usedPhrase = false;\n }\n } else if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.toastService.getErrorMessage();\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n });\n }\n }\n\n cancelPassword() {\n this.router.navigate(['/profile/securityinformation']);\n }\n\n scorePassword(pass: any) {\n let score = 0;\n if (!pass) {\n return score;\n }\n // award every unique letter until 5 repetitions\n const letters = new Object();\n for (const i of pass) {\n letters[i] = (letters[i] || 0) + 1;\n score += 5.0 / letters[i];\n }\n // bonus points for mixing it up\n const variations = {\n digits: /\\d/.test(pass),\n lower: /[a-z]/.test(pass),\n upper: /[A-Z]/.test(pass),\n nonWords: /\\W/.test(pass),\n };\n let variationCount = 0;\n Object.keys(variations).forEach(element => {\n variationCount += (variations[element] === true) ? 1 : 0;\n });\n score += (variationCount - 1) * 10;\n return score;\n }\n\n checkPassStrength(pass: any) {\n const score = this.scorePassword(pass);\n if (score > 80) {\n return 'Strong';\n }\n if (score > 60) {\n return 'Good';\n }\n if (score >= 5) {\n return 'Weak';\n }\n return null;\n }\n\n textChange() {\n if (this.password) {\n this.password = this.password.replace(/[+]/g, '').replace(/^\\s+/g, '');\n this.repassword = null;\n const pass = this.password;\n if (pass.length < 8) {\n this.passCharcters = 'text-red';\n } else {\n this.passCharcters = 'text-green';\n }\n this.strength = this.checkPassStrength(pass);\n if (this.strength === 'Weak' || this.strength === null) {\n this.passStrength = 'text-red';\n } else {\n this.passStrength = 'text-green';\n }\n } else {\n this.strength = null;\n this.passCharcters = 'text-black';\n this.passStrength = 'text-black';\n }\n }\n\n curPasskeyup() {\n if (this.curpassword) {\n this.curpassword = this.curpassword.replace(/[+]/g, '').replace(/^\\s+/g, '');\n this.wrongPassword = false;\n }\n }\n\n submitPassword() {\n this.isLoading = true;\n const inputData = {\n accountId: this.userService.getMdsAccountId(),\n lastName: this.userProfile.lastName,\n currentPassword: this.userService.encrypt(this.curpassword.trim(), 'post'),\n newPassword: this.userService.encrypt(this.password.trim(), 'post'),\n transactionLogData: {\n TransactionType: this.readConfigService.getTransactionType('UpdatePassword'),\n LoginTime: this.userService.getLastLoginTime()\n },\n user: this.user\n };\n if (inputData.accountId) {\n this.userService.changePassword(inputData).subscribe((data: any) => {\n if (data && data.status === 'success' && data.message === 'Password was changed.') {\n this.openDialog = true;\n setTimeout(() => {\n sessionStorage.clear();\n sessionStorage.setItem('logout', 'true');\n this.router.navigate(['/login']);\n }, 5000);\n } else if (data && data.StatusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else if (data && data.status === 'failed' && data.message === 'Unable to validate your original password.') {\n this.wrongPassword = true;\n this.curpassword = null;\n this.password = null;\n this.repassword = null;\n } else {\n this.toastService.getErrorMessage();\n this.cancelPassword();\n }\n this.isLoading = false;\n },\n (err: HttpErrorResponse) => {\n this.isLoading = false;\n console.log(err);\n this.cancelPassword();\n this.toastService.getErrorMessage();\n });\n } else {\n this.isLoading = false;\n this.cancelPassword();\n this.toastService.getErrorMessage();\n }\n }\n}\n","
\n

Change Password

\n \n
\n
\n
\n
\n
Current Password:
\n
\n
\n \n
\n
\n
\n
\n
\n
New Password:
\n
\n
\n \n
\n
\n
\n
\n {{existedPasswordtext}}\n
\n
\n {{samePasswordMessage}}\n
\n
\n
    \n
  • * Password Strength: {{strength}}\n
  • \n
  • * Use 8 to 64 characters
  • \n
  • * Password is case sensitive
  • \n
  • * Avoid using the same password for multiple sites.
  • \n
  • * Avoid using '+' special character.
  • \n
\n
\n
\n
\n
Re-Enter New Password:
\n
\n
\n \n
\n
\n
0\" class=\"align-center\">\n \n Passwords don't match\n
\n
\n
\n {{wrongPasswordText}}\n
\n
\n
\n
\n \n \n Save\n \n \n \n Cancel\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n \n \n
\n","import { Component, OnInit, ChangeDetectorRef, DoCheck } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { NgForm } from '@angular/forms';\nimport { UserService } from '../../../shared/services/user.service';\nimport { ToastMessageService } from '../../../shared/services/toast-message.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-change-username',\n templateUrl: './change-username.component.html',\n styleUrls: ['./change-username.component.css']\n})\nexport class ChangeUsernameComponent implements OnInit, DoCheck {\n sameEmail: boolean;\n notsameEmail: boolean;\n userProfile: any;\n newEmail: any;\n reEmail: any;\n existedEmail: boolean;\n usedEmail = false;\n openDialog = false;\n existedEmailtext: any;\n dContent: any;\n formatError = false;\n invalidEmailFormat: any;\n usernameExists: any;\n newUsernameVsOld: any;\n usernamesDontMatch: any;\n newEmailFocused = false;\n reEmailFocused = false;\n isLoading: boolean;\n user: any;\n\n constructor(\n private cdRef: ChangeDetectorRef,\n private userService: UserService,\n private readConfigService: ReadConfigService,\n private toastService: ToastMessageService,\n private router: Router) { }\n\n ngOnInit() {\n window.scroll(0, 0);\n const config = this.readConfigService.getProfileText('SecurityUpdate').Username;\n this.invalidEmailFormat = config.InvalidEmailFormat;\n this.usernameExists = config.UsernameExists;\n this.newUsernameVsOld = config.NewUsernameVsOld;\n this.usernamesDontMatch = config.UsernamesDontMatch;\n this.existedEmailtext = config.SecondaryEmailasUsername;\n this.dContent = config.UsernameChangeSuccess;\n this.userProfile = this.userService.getProfile();\n this.user = this.userService.getUserInputData();\n }\n\n ngDoCheck() {\n this.cdRef.detectChanges();\n }\n\n onBlur(value: any, formValue: any) {\n if (!this.newEmailFocused && !this.newEmail) {\n this.newEmail = null;\n }\n if (!this.reEmailFocused && !this.reEmail) {\n this.reEmail = null;\n }\n if (formValue && formValue.value && formValue.value.length > 0 && formValue.invalid) {\n this.formatError = true;\n } else {\n this.formatError = false;\n const inputData = {\n username: this.userService.encrypt(value.trim(), 'post'),\n user: this.user\n };\n if (!this.sameEmail && value && value.length > 0) {\n this.userService.isUsernameExists(inputData).subscribe((data: any) => {\n if (data && data.statusCode === 200) {\n if (data.result) {\n this.usedEmail = true;\n this.reEmail = null;\n } else {\n this.usedEmail = false;\n }\n } else if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.toastService.getErrorMessage();\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n });\n }\n }\n }\n\n submitUsername() {\n this.isLoading = true;\n const inputData = {\n crmCaseData: {\n caseType: this.userProfile.CRMCaseType,\n Description: this.readConfigService.getCRMCaseDesc('UpdateUsername')\n },\n accountId: this.userService.getMdsAccountId(),\n lastName: this.userProfile.lastName,\n username: this.userService.encrypt(this.newEmail.trim(), 'post'),\n transactionLogData: {\n TransactionType: this.readConfigService.getTransactionType('UpdateUsername'),\n LoginTime: this.userService.getLastLoginTime()\n },\n user: this.user\n };\n if (inputData.accountId) {\n if (this.userProfile.secondaryEmail === this.newEmail) {\n inputData.crmCaseData = {\n caseType: this.userProfile.CRMCaseType,\n Description: this.readConfigService.getCRMCaseDesc('UpdateUsernameSEmail')\n };\n }\n this.userService.changeUsername(inputData).subscribe((data: any) => {\n if (data && data.statusCode === 201) {\n const response = data.result;\n if (response.accountStatus === 'Username exists') {\n this.usedEmail = true;\n this.newEmail = null;\n this.reEmail = null;\n } else if (response.accountStatus === 'Username updated') {\n this.openDialog = true;\n this.usedEmail = false;\n setTimeout(() => {\n sessionStorage.clear();\n sessionStorage.setItem('logout', 'true');\n this.router.navigate(['/login']);\n }, 5000);\n }\n } else if (data && data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.toastService.getErrorMessage();\n this.cancelUsername();\n }\n this.isLoading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.cancelUsername();\n this.toastService.getErrorMessage();\n this.isLoading = false;\n });\n } else {\n this.cancelUsername();\n this.toastService.getErrorMessage();\n this.isLoading = false;\n }\n }\n\n disableSave(form: NgForm) {\n if (!this.newEmailFocused) {\n this.newEmail = null;\n }\n if (!this.reEmailFocused) {\n this.reEmail = null;\n }\n if (form.invalid) {\n return true;\n }\n if (form.value.newUser) {\n if (this.userProfile.userName === form.value.newUser.trim()) {\n this.sameEmail = true;\n return true;\n } else {\n this.sameEmail = false;\n }\n // check for secondary email as username and display a message\n if (this.userProfile.secondaryEmail === form.value.newUser.trim()) {\n this.existedEmail = true;\n } else {\n this.existedEmail = false;\n }\n }\n if (form.value.newUser && form.value.reUser) {\n if (form.value.newUser.trim() !== form.value.reUser.trim()) {\n this.notsameEmail = true;\n return true;\n } else {\n this.notsameEmail = false;\n }\n }\n if (this.usedEmail) {\n return true;\n }\n if (form.value.newUser && form.value.reUser) {\n return false;\n } else {\n return true;\n }\n }\n\n newUserKeyup() {\n if (this.newEmail) {\n this.newEmail = this.newEmail.toLowerCase().replace(/[+]/g, '').replace(/^\\s+/g, '');\n this.reEmail = null;\n this.usedEmail = false;\n }\n }\n\n reEnterUserKeyup() {\n if (this.reEmail) {\n this.reEmail = this.reEmail.toLowerCase().replace(/[+]/g, '').replace(/^\\s+/g, '');\n }\n }\n\n cancelUsername() {\n this.router.navigate(['/profile/securityinformation']);\n }\n}\n","
\n

Change Username

\n
\n
\n
\n
\n
Current Username:
\n
\n
\n {{userProfile.userName}}\n
\n
\n
\n
\n
New Username:
\n
\n
\n \n
\n {{invalidEmailFormat}}\n
\n
\n
\n
\n {{usernameExists}}\n
\n
\n {{newUsernameVsOld}}\n
\n
\n
\n
Re-Enter New Username:
\n
\n
\n \n
0\" class=\"align-center\">\n {{usernamesDontMatch}}\n
\n
\n
\n
\n
\n
\n \n \n Save\n \n \n \n Cancel\n \n
\n
\n \n
\n
\n
\n
\n {{existedEmailtext}}\n
\n
\n
\n
\n
\n \n \n
\n","import { Component, OnInit } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { MysrpsAppService } from '../../../shared/services/mysrps-app.service';\nimport { UserService } from '../../../shared/services/user.service';\nimport { ToastMessageService } from '../../../shared/services/toast-message.service';\nimport { Router } from '@angular/router';\nimport { ReadConfigService } from '../../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-security-questions',\n templateUrl: './security-questions.component.html',\n styleUrls: ['./security-questions.component.css']\n})\nexport class SecurityQuestionsComponent implements OnInit {\n showNewQuestions: boolean;\n listItems: any;\n qns1: any;\n qns2: any;\n qns3: any;\n listItems1: any;\n listItems2: any;\n listItems3: any;\n ans1: string;\n ans2: string;\n ans3: string;\n userProfile: any;\n selectedQuestions = [];\n intro: string;\n loadingIcon = true;\n isLoading = false;\n\n constructor(private mysrpsAppService: MysrpsAppService,\n private userService: UserService,\n private readConfigService: ReadConfigService,\n private toastService: ToastMessageService,\n private router: Router) { }\n\n ngOnInit() {\n this.loadingIcon = true;\n this.getSecQns();\n }\n\n getSecQns() {\n setTimeout(() => {\n if (sessionStorage.getItem('saq') === null) {\n this.getSecQns();\n } else {\n this.userProfile = this.userService.getProfile();\n const config = this.readConfigService.getProfileText('SecurityUpdate');\n this.intro = config.Introduction;\n this.selectedQuestions = this.userService.getSecurityQns();\n const count = this.selectedQuestions.length;\n if (count === 3) {\n this.showNewQuestions = false;\n } else {\n this.showNewQuestions = true;\n this.getNewQuestions();\n }\n }\n this.loadingIcon = false;\n }, 100);\n }\n\n editSaq() {\n this.getNewQuestions();\n this.showNewQuestions = true;\n }\n\n keyup(value: any, option: number) {\n if (value) {\n if (option === 1) {\n this.ans1 = value.replace(/[+]/g, '').replace(/^\\s+/g, '');\n } else if (option === 2) {\n this.ans2 = value.replace(/[+]/g, '').replace(/^\\s+/g, '');\n } else {\n this.ans3 = value.replace(/[+]/g, '').replace(/^\\s+/g, '');\n }\n }\n }\n\n getNewQuestions() {\n this.mysrpsAppService.getSecurityQuestions().subscribe((data: any) => {\n if (data.statusCode === 200) {\n this.listItems = data.result;\n this.listItems1 = this.listItems.filter((s: any) => (s.id !== 2 && s.id !== 3));\n this.listItems2 = this.listItems.filter((s: any) => (s.id !== 1 && s.id !== 3));\n this.listItems3 = this.listItems.filter((s: any) => (s.id !== 1 && s.id !== 2));\n this.qns1 = { id: null, name: 'Security Question 1' };\n this.qns2 = { id: null, name: 'Security Question 2' };\n this.qns3 = { id: null, name: 'Security Question 3' };\n }\n },\n (err: HttpErrorResponse) => {\n this.toastService.getErrorMessage();\n console.log(err);\n });\n }\n\n handleOrderChange(option: any, event: any) {\n if (option === 1) {\n this.listItems2 = this.listItems.filter((s: any) => (s.id !== event.id && s.id !== this.qns3.id));\n this.listItems3 = this.listItems.filter((s: any) => (s.id !== event.id && s.id !== this.qns2.id));\n } else if (option === 2) {\n this.listItems1 = this.listItems.filter((s: any) => (s.id !== event.id && s.id !== this.qns3.id));\n this.listItems3 = this.listItems.filter((s: any) => (s.id !== event.id && s.id !== this.qns1.id));\n } else {\n this.listItems1 = this.listItems.filter((s: any) => (s.id !== event.id && s.id !== this.qns2.id));\n this.listItems2 = this.listItems.filter((s: any) => (s.id !== event.id && s.id !== this.qns1.id));\n }\n }\n\n saveData() {\n this.isLoading = true;\n const inputData = {\n accountId: this.userService.getMdsAccountId(),\n lastName: this.userProfile.lastName,\n KnowledgeBase: {\n Kbkbq1: {\n Question: this.qns1.name, Answer: this.userService.encrypt(this.ans1.trim(), 'post')\n },\n Kbkbq2: {\n Question: this.qns2.name, Answer: this.userService.encrypt(this.ans2.trim(), 'post')\n },\n Kbkbq3: {\n Question: this.qns3.name, Answer: this.userService.encrypt(this.ans3.trim(), 'post')\n }\n },\n transactionLogData: {\n TransactionType: this.readConfigService.getTransactionType('UpdateSecQns'),\n LoginTime: this.userService.getLastLoginTime()\n },\n user: this.userService.getUserInputData()\n };\n if (inputData.accountId) {\n this.userService.changeSecurityQuestions(inputData).subscribe((response) => {\n if (response.status === 'success') {\n this.userService.setSecurityQns([this.qns1.name, this.qns2.name, this.qns3.name]);\n this.toastService.getCustomSuccessMessage('Security questions updated successfully!');\n this.cancel();\n } else if (response.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.toastService.getErrorMessage();\n this.cancel();\n }\n this.isLoading = false;\n },\n (err: HttpErrorResponse) => {\n this.isLoading = false;\n console.log(err);\n this.cancel();\n this.toastService.getErrorMessage();\n });\n } else {\n this.isLoading = false;\n this.cancel();\n this.toastService.getErrorMessage();\n }\n }\n\n cancel() {\n this.router.navigate(['/profile/securityinformation']);\n }\n}\n","
\n

Security Questions

\n
\n
\n {{intro}}\n
\n
Your current questions\n
\n
\n
\n {{question}}\n
\n
\n
\n \n \n Edit\n \n \n \n Cancel\n \n
\n
\n
\n
\n
\n \n \n {{ dataItem.name }}\n \n \n
\n
\n \n
\n
\n
\n
\n \n \n {{ dataItem.name }}\n \n \n
\n
\n \n
\n
\n
\n
\n \n \n {{ dataItem.name }}\n \n \n
\n
\n \n
\n
\n
\n
\n
\n \n \n Save\n \n \n \n Cancel\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { UserService } from '../../shared/services/user.service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-security-update',\n templateUrl: './security-update.component.html',\n styleUrls: ['./security-update.component.css']\n})\nexport class SecurityUpdateComponent implements OnInit {\n dataLoading: boolean;\n userProfile: any;\n\n constructor(private userService: UserService,\n private router: Router) { }\n\n ngOnInit() {\n window.scroll(0, 0);\n this.dataLoading = true;\n this.userProfile = this.userService.getProfile();\n this.dataLoading = false;\n }\n\n goTo(path: string) {\n this.router.navigate(['/profile/securityinformation/' + path]);\n }\n}\n","
\n
\n
\n
\n

Security Information

\n \n
\n
\n
Username\n
\n
\n
\n \n \n Edit\n \n
\n
\n \n
\n
\n
Password\n
\n
\n
\n \n \n Edit\n \n
\n
\n \n
\n
\n
Security Questions\n
\n
\n
\n \n \n View\n \n
\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { UserService } from '../services/user.service';\nimport { ToastMessageService } from '../services/toast-message.service';\n\n@Component({\n selector: 'app-accountsummary',\n templateUrl: './accountsummary.component.html',\n styleUrls: ['./accountsummary.component.css']\n})\nexport class AccountsummaryComponent implements OnInit {\n employer: any;\n system: any;\n accountStatus: any;\n extAccountStatus: any;\n constructor(private userService: UserService,\n private toastService: ToastMessageService) {\n }\n\n ngOnInit() {\n this.loadSummaryInfo();\n }\n\n /**\n * @description\n * Function to load account summary information\n */\n loadSummaryInfo() {\n const selectedAccount = this.userService.getSelectedAccount();\n if (selectedAccount !== null) {\n const accountLabel = selectedAccount.label.split('|');\n this.employer = accountLabel[0];\n this.system = accountLabel[1];\n const status = selectedAccount.status.split('(');\n if (status.length === 2) {\n this.accountStatus = status[0];\n this.extAccountStatus = '(' + status[1];\n } else {\n this.accountStatus = selectedAccount.status;\n }\n } else {\n this.toastService.getErrorMessage();\n }\n }\n}\n\n","
\n
\n
My Employer
\n
{{employer}}
\n
\n
\n
My System
\n
{{system}}
\n
\n
\n
My Status
\n
{{accountStatus}}\n {{extAccountStatus}}
\n
\n
\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-auto-logout-dialog',\n templateUrl: './auto-logout-dialog.component.html',\n styleUrls: ['./auto-logout-dialog.component.css']\n})\nexport class AutoLogoutDialogComponent implements OnInit {\n\n @Input() innerContent: string;\n @Input() interseptorText: string;\n constructor() { }\n\n ngOnInit() {\n }\n}\n","
\n
\n
\n \n
\n
\n
\n
\n {{innerContent ? innerContent : interseptorText}}\n
\n
\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, ViewEncapsulation, ViewChild, ViewContainerRef } from '@angular/core';\nimport { BeneDetails } from '../../../models/beneDetails.model';\nimport { ToastMessageService } from '../../services/toast-message.service';\nimport { BenefitEstimateService } from '../../services/benefit-estimate.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { State, process, filterBy, CompositeFilterDescriptor } from '@progress/kendo-data-query';\nimport { UserService } from '../../services/user.service';\nimport { Router } from '@angular/router';\nimport { MysrpsAppService } from '../../services/mysrps-app.service';\nimport { ReadConfigService } from '../../services/read-config.service';\n\n@Component({\n selector: 'app-bene-details',\n templateUrl: './bene-details.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./bene-details.component.css']\n})\nexport class BeneDetailsComponent implements OnInit {\n\n beneData = new BeneDetails();\n dataLoading: boolean;\n staticInfo = { relationshipInfo: [], genderInfo: [], beneTypes: [] };\n state: State = {\n sort: [{\n field: 'beneType',\n dir: 'desc'\n }, {\n field: 'relationCode',\n dir: 'asc'\n }, {\n field: 'lastName',\n dir: 'asc'\n }, {\n field: 'firstName',\n dir: 'asc'\n }],\n skip: 0,\n take: 10\n };\n filters: CompositeFilterDescriptor;\n gridData: any;\n beneList = [];\n editDataItem: BeneDetails;\n isNew: boolean;\n selectedDataItem: any;\n isDeleteOpened: boolean;\n gridView: any;\n stateCodes: any;\n userRole: any;\n selectedAccount: any;\n intro: string;\n isMember: boolean;\n showText = true;\n changeDetected = false;\n @ViewChild('container', { read: ViewContainerRef }) public container: ViewContainerRef;\n confirmationText: string;\n showContainer = true;\n config: any;\n selOption: any;\n infoIconText: any;\n showBeneForm: boolean;\n rulesAgreed: any;\n showPrimBeneText: any;\n noBeneText: any;\n initLength: number;\n personAdderss: any;\n estateBene: any;\n\n constructor(\n private router: Router,\n private estimateService: BenefitEstimateService,\n private readConfigService: ReadConfigService,\n private userService: UserService,\n private mysrpsAppService: MysrpsAppService,\n private toastService: ToastMessageService) { }\n\n ngOnInit() {\n this.onLanding();\n }\n\n onLanding() {\n this.dataLoading = true;\n this.showText = !this.rulesAgreed;\n this.showBeneForm = false;\n const selectedAccount = this.userService.getSelectedAccount();\n this.userRole = selectedAccount.role;\n this.isMember = selectedAccount.accountType.toLowerCase() === 'member';\n this.config = this.readConfigService.getViewBeneText();\n this.intro = this.config.ChangeBeneIntro;\n this.confirmationText = this.config.GridChangesText;\n this.infoIconText = this.config.InfoIconText;\n this.noBeneText = this.config.NoBeneText;\n this.state.take = this.config.MaxPrimaryBenes + this.config.MaxContingentBenes;\n this.getAllRelationships();\n this.getStatesNames();\n window.scrollTo(0, 0);\n }\n\n getAllRelationships() {\n this.estimateService.getBeneficiaryRelationshipData().subscribe(response => {\n if (response.success) {\n this.staticInfo.relationshipInfo = response.result;\n this.staticInfo.genderInfo = this.estimateService.getGender();\n this.staticInfo.beneTypes = this.config.BeneTypes;\n this.beneList = this.mysrpsAppService.getBeneData();\n this.initLength = this.beneList.length;\n if (this.beneList) {\n this.beneList.forEach((dataItem: any, index: number) => {\n // assign a uid to perform actions\n dataItem.uid = index + 1;\n if (!(dataItem.relationship && dataItem.relationship.relationCode)) {\n if (!dataItem.relationship || dataItem.relationship === 'Other') {\n dataItem.relationship = { id: 19, relationCode: '19', relationShip: 'Other' };\n } else {\n if (this.rulesAgreed) {\n dataItem.relationship = this.staticInfo.relationshipInfo.find((s: any) =>\n s.relationShip.toLowerCase() === dataItem.relationship.relationShip.toLowerCase());\n } else {\n dataItem.relationship = this.staticInfo.relationshipInfo.find((s: any) =>\n s.relationShip.toLowerCase() === dataItem.relationship.toLowerCase());\n }\n }\n }\n if (dataItem.gender && !dataItem.gender.gender) {\n dataItem.gender = dataItem.gender === 'M' ? this.staticInfo.genderInfo[0] :\n dataItem.gender === 'F' ? this.staticInfo.genderInfo[1] : null;\n }\n if (dataItem.doB) {\n dataItem.doB = new Date(dataItem.doB);\n }\n });\n }\n this.estateBene = this.beneList.find((element: any) => element.fullName.toLowerCase().search(/estate/gi) !== -1);\n this.gridData = process(this.beneList, this.state);\n }\n this.dataLoading = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.toastService.getErrorMessage();\n this.dataLoading = false;\n });\n }\n\n next() {\n this.rulesAgreed = true;\n this.showText = false;\n window.scrollTo(0, 0);\n }\n\n getPersonAddress() {\n this.mysrpsAppService.getUserAddress(this.userService.getUserInputData()).subscribe(response => {\n if (response.statusCode === 200 && response.result) {\n const result = response.result;\n const userAddress: any = {};\n userAddress.address1 = result.address1;\n userAddress.address2 = result.address2;\n const city = result.city.split(' ');\n const newCity = city.filter(v => v != '');\n const length = newCity.length;\n userAddress.state = this.stateCodes.filter((s: any) => s.code.toLowerCase() === newCity[length - 2].toLowerCase())[0];\n userAddress.zip = newCity[length - 1].length >= 5 ? newCity[length - 1].substring(0,5) : '';\n newCity.splice(length - 2, 2);\n userAddress.city = newCity.join(' ');\n this.personAdderss = userAddress;\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.toastService.getErrorMessage();\n });\n }\n\n getStatesNames() {\n this.mysrpsAppService.getStates().subscribe((data: any) => {\n if (data.statusCode === 200) {\n this.stateCodes = data.result;\n this.getPersonAddress();\n }\n },\n (err: HttpErrorResponse) => {\n this.toastService.getErrorMessage();\n console.log(err);\n });\n }\n\n onStateChange(state: State) {\n this.state = state;\n this.gridData = process(this.beneList, this.state);\n }\n\n addHandler() {\n this.editDataItem = new BeneDetails();\n this.isNew = true;\n }\n\n editHandler(e: any) {\n this.editDataItem = e.dataItem;\n this.isNew = false;\n }\n\n cancelHandler(data: any) {\n const index = this.beneList.findIndex((s: any) => s.uid === data.uid);\n this.beneList[index] = data;\n this.editDataItem = data;\n this.editDataItem = undefined;\n this.gridData = process(this.beneList, this.state);\n window.scrollTo(0, 0);\n }\n\n saveHandler(data: any) {\n this.changeDetected = true;\n if (this.isNew) {\n data.uid = this.beneList.length + 1;\n this.beneList.push(data);\n }\n this.gridData = process(this.beneList, this.state);\n this.editDataItem = undefined;\n window.scrollTo(0, 0);\n }\n\n openDeleteDialog({ dataItem }) {\n const primaryBene = this.beneList.filter((element: any) => element.beneType === this.staticInfo.beneTypes[0]);\n const contingentBene = this.beneList.filter((element: any) => element.beneType === this.staticInfo.beneTypes[1]);\n this.showPrimBeneText = primaryBene.length === 1 && contingentBene.length > 0 && dataItem.beneType === this.staticInfo.beneTypes[0]\n ? this.config.MinimumOnePrimBeneText : null;\n this.selectedDataItem = dataItem;\n this.isDeleteOpened = true;\n }\n\n close(status?: any) {\n if (status === 'yes') {\n this.changeDetected = true;\n this.removeHandler();\n }\n this.isDeleteOpened = false;\n this.selectedDataItem = null;\n }\n\n generateForm() {\n if (this.beneList.length < 1) {\n const defaultBene = {\n address1: this.personAdderss.address1,\n address2: this.personAdderss.address2,\n beneType: 'Primary',\n city: this.personAdderss.city,\n fullName: 'My Estate',\n id: this.estateBene && this.estateBene.id ? this.estateBene.id : 0,\n state: this.personAdderss.state,\n zip: this.personAdderss.zip\n };\n this.beneList.push(defaultBene);\n } else {\n this.beneList = this.gridData.data;\n }\n this.mysrpsAppService.setBeneData(this.beneList);\n this.showBeneForm = true;\n }\n\n cancel() {\n this.showContainer = false;\n this.router.navigate(['/' + this.userRole + '/Beneficiary Information/ViewBeneficiary']);\n }\n\n showAdditionalInfo(dataItem: any): boolean {\n return dataItem.doB || (dataItem.lastName && dataItem.firstName);\n }\n\n removeHandler() {\n this.beneList = this.beneList.filter(element => element.uid !== this.selectedDataItem.uid);\n this.beneList.forEach((element: any) => {\n element.uid = this.beneList.indexOf(element) + 1;\n });\n this.gridData = process(this.beneList, this.state);\n }\n\n searchGrid(e: any) {\n this.filters = {\n filters: [\n { field: 'fullName', value: e.target.value, operator: 'contains', ignoreCase: true },\n { field: 'lastName', value: e.target.value, operator: 'contains', ignoreCase: true },\n { field: 'firstName', value: e.target.value, operator: 'contains', ignoreCase: true },\n { field: 'beneType', value: e.target.value, operator: 'contains', ignoreCase: true }\n ],\n logic: 'or'\n };\n this.gridData = filterBy(this.beneList, this.filters);\n this.state.skip = 0;\n this.gridData = process(this.gridData, this.state);\n }\n}\n","
\n
\n
\n

Updating Beneficiary Information: Step 1

\n \n
\n
\n

Updating Beneficiary Information: Step 2

\n
\n
\n \n
\n
\n
\n \n \n \n \n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n \n \n
\n
\n
\n
\n
\n Name:\n \n {{dataItem.firstName}} {{dataItem.mi ? dataItem.mi : ''}} {{dataItem.lastName}}\n \n \n {{dataItem.fullName}}\n \n
\n
\n
\n
\n
\n
\n Date of Birth:\n {{ dataItem.doB | date:'MM/dd/yyyy' }}\n
\n
\n
\n
\n
\n
\n Relationship:\n \n {{dataItem.relationship.relationShip}}\n \n
\n
\n
\n
\n
\n
\n Type :\n {{ dataItem.beneType }}\n
\n
\n
\n
\n
\n \n \n
\n \n {{dataItem.firstName}} {{dataItem.mi ? dataItem.mi : ''}} {{dataItem.lastName}}\n \n \n {{dataItem.fullName}}\n \n
\n
\n
\n \n \n
\n \n {{dataItem.doB | date:'MM/dd/yyyy'}}\n \n
\n
\n
\n \n \n
\n \n {{dataItem.relationship.relationShip}}\n \n
\n
\n
\n \n \n Type \n \n \n
\n \n {{dataItem.beneType}}\n \n
\n
\n
\n \n \n \n \n Edit\n \n \n \n Delete\n \n \n \n \n
\n
\n First Name: {{ dataItem.firstName }}\n
\n
\n Middle Initial: {{ dataItem.mi }}\n
\n
\n Last Name: {{ dataItem.lastName }}\n
\n
\n SSN: {{ dataItem.ssn }}\n
\n
\n Gender:\n {{dataItem.gender.gender}}\n
\n
\n Death Date: {{ dataItem.doD | date:'MM/dd/yyyy' }}\n
\n
\n
\n
\n
\n
0 && beneList.length === 0\">\n
\n
\n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n

Updating Beneficiary Information: Step 2

\n \n \n
\n
\n
\n
\n\n

\n {{showPrimBeneText}}\n

\n

Are you sure you want to delete\n \n {{selectedDataItem.firstName ? selectedDataItem.firstName + ' ' + selectedDataItem.lastName\n : selectedDataItem.fullName}}?\n

\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n","import { Component, OnInit, Output, EventEmitter } from '@angular/core';\nimport { ReadConfigService } from '../../../services/read-config.service';\n\n@Component({\n selector: 'app-bene-text',\n templateUrl: './bene-text.component.html',\n styleUrls: ['./bene-text.component.css']\n})\nexport class BeneTextComponent implements OnInit {\n\n @Output() emit: EventEmitter = new EventEmitter();\n @Output() cancel: EventEmitter = new EventEmitter();\n enableContinue = false;\n intro: string;\n config: any;\n heading: any;\n notes: any;\n checkBoxText: any;\n constructor(private readConfigService: ReadConfigService) { }\n\n ngOnInit() {\n const config = this.readConfigService.getViewBeneText();\n this.intro = config.Terms;\n this.heading = config.NotesHeading;\n const maxPrimary = config.MaxPrimaryBenes;\n const maxContinget = config.MaxContingentBenes;\n this.notes = config.NotesBody.replace('{0}', maxPrimary).replace('{1}', maxContinget);\n this.checkBoxText = config.Acknowledgement;\n window.scrollTo(0, 0);\n }\n\n next(option: number) {\n if (option === 1) {\n this.emit.emit();\n } else {\n this.cancel.emit();\n }\n }\n}\n","
\n \n
\n
\n \n {{heading}}\n \n
\n
\n \n
\n
\n \n \n
\n
\n
\n \n
\n
\n \n
\n
\n","import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ChangeDetectorRef, DoCheck } from '@angular/core';\nimport { BeneDetails } from '../../../../models/beneDetails.model';\nimport { NgForm } from '@angular/forms';\nimport { ReadConfigService } from '../../../services/read-config.service';\nimport { DatePipe } from '@angular/common';\n\n@Component({\n selector: 'app-edit-bene',\n templateUrl: './edit-bene.component.html',\n styleUrls: ['./edit-bene.component.css']\n})\n\nexport class EditBeneComponent implements OnInit, DoCheck {\n public active = false;\n @Input() public isNew = false;\n @Input() staticInfo: any;\n @Input() stateData: any;\n defaultItem = { relationShip: 'Select Relation', relationCode: null };\n genderDefaultItem = { gender: 'Select Gender', Id: null };\n beneTypeDefaultItem = 'Select Type';\n defaultValue = { id: null, name: ' Select State', code: null };\n stateCodes: any;\n selectedState: any;\n initData: any;\n @Input() model: BeneDetails;\n @Output() cancel: EventEmitter = new EventEmitter();\n @Output() save: EventEmitter = new EventEmitter();\n @Input() allData: any;\n @Input() personAdderss: any;\n @ViewChild('editBeneForm') editBeneForm: NgForm;\n maxdoB = new Date();\n beneData: any;\n isPersonQuestion: boolean;\n showNames: any;\n disableSaveBtn: boolean;\n @Input() isMember: boolean;\n selOption: any;\n config: any;\n maxPrim: any;\n maxCont: any;\n noOfPrimary = 0;\n noOfContingent: any;\n question: any;\n allBeneData = [];\n duplicateFound: string;\n relationshipData: any;\n datePipe: DatePipe;\n primEstateBene = 0;\n showEstate: boolean;\n nonPersonPlaceholder: string;\n introText: any;\n addressLine2Placeholder: any;\n invalidDob: any;\n beneTypeError: any;\n address1Placeholder: any;\n\n constructor(\n private readConfigService: ReadConfigService,\n private cdRef: ChangeDetectorRef) { }\n\n ngOnInit() {\n this.config = this.readConfigService.getViewBeneText();\n this.maxPrim = this.config.MaxPrimaryBenes;\n this.maxCont = this.config.MaxContingentBenes;\n this.question = this.config.BenePersonQuestion;\n this.address1Placeholder = this.readConfigService.getAddressPlaceholder().Line1;\n this.addressLine2Placeholder = this.readConfigService.getAddressPlaceholder().Line2;\n this.isPersonQuestion = this.isNew;\n this.invalidDob = this.config.InvalidDob;\n this.beneData = this.model;\n this.relationshipData = this.staticInfo.relationshipInfo;\n if (this.allData.length > 0 && this.beneData) {\n this.allBeneData = this.allData.filter((s: any) => s.uid !== this.beneData.uid);\n this.getBeneTypeCount();\n }\n if (this.stateData) {\n this.stateCodes = this.stateData.slice();\n }\n this.initData = JSON.stringify(this.beneData);\n if (this.beneData) {\n this.showNames = !!(this.beneData.doB || (this.beneData.lastName && this.beneData.firstName));\n }\n if (!this.isNew) {\n if (this.showNames) {\n this.setBeneAsPerson(true);\n } else {\n if (this.beneData.fullName.toLowerCase().search(/estate/gi) !== -1) {\n this.setBeneAsPerson(false, 1);\n } else if (this.beneData.fullName.toLowerCase().search(/trust/gi) !== -1) {\n this.setBeneAsPerson(false, 3);\n }\n }\n }\n this.active = this.beneData !== undefined;\n window.scrollTo(0, 0);\n }\n\n ngDoCheck() {\n this.cdRef.detectChanges();\n }\n\n getBeneTypeCount() {\n this.primEstateBene = this.allBeneData.find((element: any) => element.fullName.search(/estate/gi) !== -1\n && element.beneType === this.staticInfo.beneTypes[0]);\n this.noOfPrimary = this.allBeneData.filter((element: any) => element.beneType === this.staticInfo.beneTypes[0]).length;\n this.noOfContingent = this.allBeneData.filter((element: any) => element.beneType === this.staticInfo.beneTypes[1]).length;\n }\n\n beneTypeChange(e: any) {\n this.beneTypeError = null;\n if (e === this.staticInfo.beneTypes[0] && this.noOfPrimary >= this.maxPrim) {\n this.beneTypeError = this.config.MaxPrimaryBenesError.replace('{0}', this.maxPrim);\n } else if (e === this.staticInfo.beneTypes[1] && this.noOfPrimary < 1) {\n // there should be at least one primary bene before naming a contingent\n this.beneTypeError = this.config.MinimumOnePrimBeneError;\n } else if (e === this.staticInfo.beneTypes[1] && this.noOfContingent >= this.maxCont) {\n this.beneTypeError = this.config.MaxContingentBenesError.replace('{0}', this.maxCont);\n } else if (this.primEstateBene && (e === this.staticInfo.beneTypes[1]) ||\n this.noOfContingent > 0 && (e === this.staticInfo.beneTypes[0] && this.showEstate)) {\n // estate is named as a primary beneficiary, do not designate contingent beneficiaries\n this.beneTypeError = this.config.PrimEstateBenetext;\n }\n }\n\n setBeneAsPerson(flag: boolean, mode?: number) {\n this.showNames = flag;\n this.isPersonQuestion = false;\n switch (mode) {\n case 1:\n this.showEstate = true;\n this.beneData.fullName = 'My Estate';\n this.introText = this.config.EstateText + this.config.CommonText;\n this.nonPersonPlaceholder = '';\n if (this.personAdderss) {\n this.beneData.address1 = this.personAdderss.address1;\n this.beneData.address2 = this.personAdderss.address2;\n this.beneData.city = this.personAdderss.city;\n this.beneData.state = this.personAdderss.state;\n this.beneData.zip = this.personAdderss.zip;\n }\n break;\n case 2:\n this.showEstate = false;\n this.beneData.fullName = this.isNew ? '' : this.beneData.fullName;\n this.nonPersonPlaceholder = 'List the complete corporate or legal name';\n this.introText = this.config.CharityText + this.config.CommonText;\n break;\n case 3:\n this.showEstate = false;\n this.beneData.fullName = this.isNew ? '' : this.beneData.fullName;\n this.nonPersonPlaceholder = 'name of the trust';\n this.address1Placeholder = 'name of the trustee';\n this.addressLine2Placeholder = 'address of the trustee';\n this.introText = this.config.TrustText + this.config.CommonText;\n break;\n default:\n this.showEstate = false;\n this.introText = this.isNew ? this.config.AddPersonText + this.config.CommonText :\n this.config.EditPersonText + this.config.CommonText;\n this.nonPersonPlaceholder = '';\n break;\n }\n }\n\n onSave(e: any): void {\n this.beneData.id = this.isNew ? 0 : this.beneData.id;\n if (this.showNames) {\n this.beneData.fullName = this.beneData.mi ?\n this.beneData.firstName + ' ' + this.beneData.mi + ' ' + this.beneData.lastName\n : this.beneData.firstName + ' ' + this.beneData.lastName;\n this.beneData.relationCode = this.beneData.relationship.relationCode;\n } else {\n this.beneData.doB = null;\n this.beneData.relationCode = '19';\n this.beneData.relationShip = 'Other';\n }\n e.preventDefault();\n this.save.emit(this.beneData);\n this.active = false;\n }\n\n onCancel(e: any): void {\n e.preventDefault();\n this.beneData = JSON.parse(this.initData);\n this.beneData.doB = this.showNames ? new Date(this.beneData.doB) : null;\n this.closeForm();\n }\n\n private closeForm(): void {\n this.cancel.emit(this.beneData);\n this.active = false;\n }\n\n stateValueChange(value: any): void {\n this.keytab();\n if (value) {\n this.beneData.state = value;\n this.selectedState = value.code;\n }\n if (!this.beneData.address1 && !this.beneData.address2 && !this.beneData.city && !this.beneData.zip\n && (this.beneData.state === this.defaultValue)) {\n delete this.beneData.address1;\n delete this.beneData.address2;\n delete this.beneData.city;\n delete this.beneData.state;\n delete this.beneData.zip;\n this.disableSaveBtn = false;\n }\n }\n\n checkDuplicateBene() {\n let matchFound = false;\n this.duplicateFound = '';\n this.allBeneData.forEach((element: any) => {\n if (element.relationship && element.relationship.relationShip === 'Spouse') {\n this.relationshipData = this.staticInfo.relationshipInfo.filter((s: any) => s.relationShip !== 'Spouse');\n }\n if (!this.showNames && this.beneData.fullName === element.fullName) {\n this.duplicateFound = this.config.DuplicateBeneText;\n matchFound = true;\n }\n this.datePipe = new DatePipe('en-US');\n const eledoB = this.datePipe.transform(element.doB, 'MM/dd/yyyy');\n const benedoB = this.datePipe.transform(this.beneData.doB, 'MM/dd/yyyy');\n if (this.showNames && this.beneData.firstName === element.firstName && this.beneData.mi === element.mi\n && this.beneData.lastName === element.lastName && eledoB && benedoB === eledoB) {\n this.duplicateFound = this.config.DuplicateBeneText;\n matchFound = true;\n }\n });\n return matchFound;\n }\n\n keytab() {\n this.disableSaveBtn = false;\n if (!this.beneData.address1 && !this.beneData.address2 && !this.beneData.city && !this.beneData.zip\n && (!this.beneData.state || this.beneData.state === this.defaultValue)) {\n delete this.beneData.address1;\n delete this.beneData.address2;\n delete this.beneData.city;\n delete this.beneData.state;\n delete this.beneData.zip;\n this.disableSaveBtn = false;\n } else if (this.beneData.address1 && this.beneData.city && this.beneData.zip && this.beneData.state\n && this.beneData.state.id) {\n if (this.beneData.zip) {\n if (this.beneData.zip.length === 5) {\n this.disableSaveBtn = false;\n } else {\n this.disableSaveBtn = true;\n }\n }\n } else {\n this.disableSaveBtn = true;\n }\n }\n\n disableBtn(form: NgForm) {\n if (form) {\n if (this.allBeneData.length > 0) {\n if (this.checkDuplicateBene()) {\n return true;\n }\n }\n if (this.beneTypeError) {\n return true;\n }\n if (!this.showNames) {\n if (this.beneData.beneType === this.beneTypeDefaultItem || !this.beneData.address1\n || !(this.beneData.state) || ( this.beneData.state && !this.beneData.state.code )|| !this.beneData.city || !this.beneData.zip ) {\n return true;\n }\n } else {\n if (!this.beneData.gender || !this.beneData.gender.Id || !this.beneData.relationship ||\n !this.beneData.relationship.id || this.beneData.beneType === this.beneTypeDefaultItem) {\n return true;\n }\n }\n if (this.initData === JSON.stringify(this.beneData)) {\n return true;\n }\n if (form.invalid) {\n return true;\n }\n if (this.disableSaveBtn) {\n return true;\n }\n }\n return false;\n }\n}\n","
\n
\n \n {{ isNew ? 'Add New Beneficiary' : 'Edit Beneficiary' }}\n \n
\n
\n
\n \n {{question}}\n \n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n First Name*:\n
\n
\n \n
\n
\n
\n
\n Middle Initial:\n
\n
\n \n
\n
\n
\n
\n Last Name*:\n
\n
\n \n
\n
\n
\n
\n Gender*:\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n Relationship*:\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n Date of Birth*:\n
\n
\n
\n \n \n
\n
\n {{invalidDob}}\n
\n
\n {{duplicateFound}}\n
\n
\n
\n
\n
\n
\n
\n Name*:\n
\n
\n
\n {{beneData.fullName}}\n
\n
\n \n
\n
\n {{duplicateFound}}\n
\n
\n
\n
\n
\n
\n Type*:\n
\n
\n
\n \n \n
\n
\n {{beneTypeError}}\n
\n
\n
\n
\n
\n Address*:\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n \n {{ dataItem.name }}\n \n \n
\n
\n \n
\n
\n
\n
\n * - Required information\n
\n
\n
\n
\n \n \n
\n
\n","import { Component, OnInit, ViewChild, Output, EventEmitter } from '@angular/core';\nimport { DocumentService } from '../../services/document.service';\nimport { ReadConfigService } from '../../services/read-config.service';\nimport { DomSanitizer } from '@angular/platform-browser';\nimport { UserService } from '../../services/user.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { DatePipe } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { MysrpsAppService } from '../../services/mysrps-app.service';\nimport { ToastMessageService } from '../../services/toast-message.service';\n\n@Component({\n selector: 'app-bene-form',\n templateUrl: './bene-form.component.html',\n styleUrls: ['./bene-form.component.css']\n})\nexport class BeneFormComponent implements OnInit {\n dataLoading = true;\n showNoChange = false;\n showEsign = false;\n showFormPdf: boolean;\n disclaimer: any;\n @ViewChild('pdfViewerOnDemand') pdfViewerOnDemand: any;\n @Output() cancel: EventEmitter = new EventEmitter();\n @Output() exit: EventEmitter = new EventEmitter();\n beneConfig: any;\n showErrorChange: boolean;\n beneData: any;\n signName: any;\n datePipe: DatePipe;\n showSuccessChange: boolean;\n inputData: any;\n showLoadingIcon: boolean;\n letterId: any;\n userDetails: any;\n initData: any;\n userRole: any;\n intro: any;\n reminder: any;\n\n constructor(\n private router: Router,\n private readConfigService: ReadConfigService,\n private documentService: DocumentService,\n private mysrpsAppService: MysrpsAppService,\n private toastService: ToastMessageService,\n public sanitizer: DomSanitizer,\n private userService: UserService) { }\n\n ngOnInit() {\n this.datePipe = new DatePipe('en-US');\n const selectedAccount = this.userService.getSelectedAccount();\n this.userRole = selectedAccount.role;\n if (this.userRole !== null) {\n this.beneData = {\n uniqueId: selectedAccount.uniqueId,\n system: selectedAccount.label.split('|')[4],\n accountType: selectedAccount.accountType,\n signature: '',\n status: this.userRole.toLowerCase() === 'active' ? 'Active' : this.userRole.search(/retiree/gi) !== -1 ?\n 'Retiree' : this.userRole,\n beneInfo: this.mysrpsAppService.getBeneData()\n };\n }\n this.userDetails = this.userService.getUserInputData();\n this.beneData.beneInfo.forEach((element: any) => {\n if (element.firstName) {\n element.firstName = this.userService.encrypt(element.firstName.trim(), 'post');\n }\n if (element.lastName) {\n element.lastName = this.userService.encrypt(element.lastName.trim(), 'post');\n }\n if (element.mi) {\n element.mi = this.userService.encrypt(element.mi.trim(), 'post');\n }\n if (element.fullName) {\n element.fullName = this.userService.encrypt(element.fullName.trim(), 'post');\n }\n if (element.gender) {\n element.gender = element.gender.gender === 'Male' ? 'M' : 'F';\n }\n if (element.relationship) {\n element.relationCode = element.relationship.relationCode;\n element.relationship = element.relationship.relationShip;\n }\n if (element.state) {\n element.state = element.state.code;\n }\n if (element.doB) {\n element.doB = this.datePipe.transform(element.doB, 'MM/dd/yyyy');\n element.doB = this.userService.encrypt(element.doB, 'post');\n }\n if (element.doB || (element.lastName && element.firstName)) {\n element.isPerson = 'True';\n } else {\n element.isPerson = 'False';\n element.doB = this.userService.encrypt('01/01/1900', 'post');\n element.lastName = '';\n element.firstName = '';\n element.mi = '';\n element.relationCode = '19';\n element.relationShip = 'Other';\n element.relationship = 'Other';\n }\n delete element.doD;\n delete element.ssn;\n });\n this.beneData.accountId = this.userService.getMdsAccountId();\n this.beneData.loginTime = this.userService.getLastLoginTime();\n const config = this.readConfigService.getViewBeneText();\n this.beneConfig = config.SummaryText;\n this.intro = config.BeneFormIntro;\n this.showEsign = true;\n const inputData = {\n user: this.userDetails,\n form4Data: this.beneData\n };\n if (this.beneData.accountId) {\n this.documentService.getDesignateBeneLetter(inputData).subscribe((response) => {\n if (response) {\n this.dataLoading = false;\n this.showFormPdf = true;\n this.disclaimer = this.beneConfig.SignDisclaimer;\n this.reminder = this.beneConfig.Reminder;\n setTimeout(() => {\n this.pdfViewerOnDemand.pdfSrc = response;\n this.pdfViewerOnDemand.refresh();\n }, 100);\n } else {\n this.dataLoading = false;\n this.showFormPdf = false;\n this.beneConfig.ErrorMessage = this.documentService.errorMessage;\n this.showErrorChange = true;\n }\n },\n (err: HttpErrorResponse) => {\n this.dataLoading = false;\n this.showFormPdf = false;\n this.beneConfig.ErrorMessage = this.documentService.errorMessage;\n this.showErrorChange = true;\n console.log(err.error);\n });\n } else {\n this.dataLoading = false;\n this.showFormPdf = false;\n this.beneConfig.ErrorMessage = this.documentService.errorMessage;\n this.showErrorChange = true;\n }\n window.scrollTo(0, 0);\n }\n\n test() {\n this.showSuccessChange = true;\n this.showFormPdf = false;\n }\n\n esignResponse(event: any) {\n if (event.btnClicked === 'cancel') {\n this.cancel.emit();\n } else if (event.btnClicked === 'continue') {\n this.beneData.signature = event.signName;\n this.beneData.signDate = this.datePipe.transform(new Date(), 'MM/dd/yyyy');\n this.mysrpsAppService.updateBeneficiaries(this.userDetails, this.beneData)\n .subscribe((data: any) => {\n if (data.statusCode === 200 && data.result) {\n this.letterId = data.result;\n this.exit.emit();\n this.showSuccessChange = true;\n this.showFormPdf = false;\n } else {\n this.showFormPdf = false;\n this.exit.emit();\n this.showErrorChange = true;\n }\n },\n (err: HttpErrorResponse) => {\n this.showFormPdf = false;\n this.exit.emit();\n console.log(err);\n this.showErrorChange = true;\n });\n }\n }\n\n goToView() {\n this.exit.emit();\n this.router.navigate(['/' + this.userRole + '/Beneficiary Information/ViewBeneficiary']);\n }\n\n viewLetter() {\n this.showLoadingIcon = true;\n this.documentService.getMyDocument(this.letterId, this.userDetails, 'Designation of Beneficiary Form').subscribe(() => {\n this.showLoadingIcon = false;\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.showLoadingIcon = false;\n this.toastService.getErrorMessage();\n });\n }\n}\n","
\n
\n

Updating Beneficiary Information: Step 3

\n
\n \n
\n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n
\n
\n \n {{beneConfig.NoChangeMessage}}\n \n
\n
\n
\n

Updating Beneficiary Information: Completed

\n
\n \n {{beneConfig.SuccessMessage}}\n \n \n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n {{beneConfig.ErrorMessage}}\n \n
\n
\n
\n \n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { SetStyleService } from '../services/set-style.service';\n\n@Component({\n selector: 'app-beneficiary-info',\n templateUrl: './beneficiary-info.component.html',\n styleUrls: ['./beneficiary-info.component.css']\n})\nexport class BeneficiaryInfoComponent implements OnInit {\n\n constructor(\n private setStyleService: SetStyleService\n ) { }\n\n ngOnInit() {\n setTimeout(() => this.setStyleService.setPanelBarStyle('Beneficiary Information'), 2000);\n }\n}\n","\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { GridDataResult } from '@progress/kendo-angular-grid';\nimport { SortDescriptor, orderBy } from '@progress/kendo-data-query';\nimport { ReadConfigService } from '../../services/read-config.service';\nimport { UserService } from '../../services/user.service';\nimport { Router } from '@angular/router';\nimport { ToastMessageService } from '../../services/toast-message.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { MysrpsAppService } from '../../services/mysrps-app.service';\n\n@Component({\n selector: 'app-view-bene',\n templateUrl: './view-bene.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./view-bene.component.css']\n})\nexport class ViewBeneComponent implements OnInit {\n beneList: any[];\n gridView: any[];\n gridData: GridDataResult;\n sort: SortDescriptor[] = [{\n field: 'beneType',\n dir: 'desc'\n }, {\n field: 'relationCode',\n dir: 'asc'\n }, {\n field: 'lastName',\n dir: 'asc'\n }, {\n field: 'firstName',\n dir: 'asc'\n }];\n pageSize = 10;\n skip = 0;\n config: any;\n intro1: any;\n intro2: any;\n deleteDisabled: boolean;\n changeDisabled: boolean;\n selectedData = [];\n dataLoading: boolean;\n showUpdateLink: boolean;\n userDetails: any;\n showAppOutage: boolean;\n appOutageMessage: any;\n futureOutageMessage: any;\n system: any;\n infoIconText: any;\n\n constructor(\n private router: Router,\n private readConfigService: ReadConfigService,\n private mysrpsAppService: MysrpsAppService,\n private userService: UserService,\n private toastService: ToastMessageService) { }\n\n ngOnInit() {\n this.dataLoading = true;\n const account = this.userService.getSelectedAccount();\n this.userDetails = this.userService.getUserInputData();\n const accountType = account.accountType;\n this.system = account.label.split('|')[4];\n this.config = this.readConfigService.getViewBeneText();\n this.intro1 = this.config.Introduction;\n this.infoIconText = this.config.InfoIconText;\n const uniqueId = account.uniqueId;\n this.loadBeneDetails(uniqueId, accountType);\n window.scrollTo(0, 0);\n }\n\n loadBeneDetails(uniqueId: any, accountType: any) {\n this.mysrpsAppService.getViewBeneData(uniqueId, accountType, this.userDetails).subscribe(response => {\n if (response) {\n if (response.statusCode === 200) {\n if (response.hideFeature) {\n this.showAppOutage = true;\n this.appOutageMessage = response.outageMessage;\n this.dataLoading = false;\n } else if (response.result && response.decKey) {\n this.futureOutageMessage = response.outageMessage;\n this.beneList = response.result;\n this.beneList.forEach((element: any) => {\n element.id = this.userService.decryptData(element.id, response.decKey);\n element.ssn = element.ssn ? this.userService.decryptData(element.ssn, response.decKey) : '';\n element.fullName = this.userService.decryptData(element.fullName, response.decKey);\n element.lastName = this.userService.decryptData(element.lastName, response.decKey);\n element.mi = element.mi ? this.userService.decryptData(element.mi, response.decKey) : '';\n element.firstName = this.userService.decryptData(element.firstName, response.decKey);\n element.doB = element.doB ? this.userService.decryptData(element.doB, response.decKey) : null;\n element.doD = element.doD ? this.userService.decryptData(element.doD, response.decKey) : null;\n });\n this.mysrpsAppService.setBeneData(this.beneList);\n this.gridView = orderBy(this.beneList, this.sort);\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n } else if (response.statusCode === 204) {\n this.futureOutageMessage = response.outageMessage;\n this.mysrpsAppService.setBeneData([]);\n } else {\n this.showUpdateLink = false;\n this.toastService.getErrorMessage();\n }\n if (response.statusCode === 200 || response.statusCode === 204) {\n // update bene button display\n if (this.userService.showDarkFeature('UpdateBeneficiary') && !this.isSys4or5() && !this.checkDroFlag() &&\n (accountType.toLowerCase() === 'member' || this.checkRetiree())) {\n this.intro2 = this.config.Introduction2;\n this.showUpdateLink = true;\n } else {\n this.intro2 = accountType.toLowerCase() === 'member' ? this.config.MemberIntroduction : this.config.RetireeIntroduction;\n }\n }\n } else {\n this.showUpdateLink = false;\n this.toastService.getErrorMessage();\n }\n this.dataLoading = false;\n },\n (err: HttpErrorResponse) => {\n this.showUpdateLink = false;\n this.dataLoading = false;\n console.log(err);\n this.toastService.getErrorMessage();\n });\n }\n\n checkRetiree() {\n const option = sessionStorage.getItem('optionSelected');\n return this.system !== 'G' && this.system !== 'H' ? ((option === '0' && this.system !== '3') &&\n (option === '0' && this.system !== '8') &&\n (option === '0' && this.system !== '9')) || option === '1' || option === '4' : false;\n }\n\n checkDroFlag() {\n return sessionStorage.getItem('droFlag') === 'L';\n }\n\n isSys4or5() {\n return this.system === '4' || this.system === '5';\n }\n\n showAdditionalInfo(dataItem: any): boolean {\n return dataItem.doB || (dataItem.lastName && dataItem.firstName);\n }\n\n editBeny() {\n const selectedAccount = this.userService.getSelectedAccount();\n if (selectedAccount !== null) {\n this.router.navigate(['/' + selectedAccount.role + '/Beneficiary Information/AddBeneficiary']);\n }\n }\n\n sortChange(sort: SortDescriptor[]): void {\n this.sort = sort;\n this.gridView = orderBy(this.beneList, this.sort);\n this.gridData = {\n data: this.gridView.slice(this.skip, this.skip + this.pageSize),\n total: this.gridView.length\n };\n }\n}\n","

Beneficiary Information

\n
\n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n \n \n \n \n \n \n \n
\n
\n
\n
\n
\n Name:\n {{ dataItem.fullName }}\n
\n
\n
\n
\n
\n
\n Date of Birth:\n {{ dataItem.doB | date:'MM/dd/yyyy' }}\n
\n
\n
\n
\n
\n
\n Relationship:\n {{ dataItem.relationship }}\n
\n
\n
\n
\n
\n
\n Type :\n {{ dataItem.beneType }}\n
\n
\n
\n
\n
\n \n \n
{{ dataItem.fullName }}
\n
\n
\n \n \n
{{ dataItem.doB | date:'MM/dd/yyyy'}}
\n
\n
\n \n \n
{{ dataItem.relationship }}
\n
\n
\n \n \n Type \n \n \n
{{ dataItem.beneType }}
\n
\n
\n \n
\n
\n First Name: {{ dataItem.firstName }}\n
\n
\n Middle Initial: {{ dataItem.mi }}\n
\n
\n Last Name: {{ dataItem.lastName }}\n
\n
\n SSN: {{ dataItem.ssn }}\n
\n
\n Gender:\n {{ dataItem.gender === 'F' ? 'Female' : dataItem.gender === 'M' ? 'Male' : '' }}\n
\n
\n Death Date: {{ dataItem.doD | date:'MM/dd/yyyy' }}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n
\n
\n
\n
\n
\n \n
\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'app-dialog-box',\r\n templateUrl: './dialog-box.component.html',\r\n styleUrls: ['./dialog-box.component.css']\r\n})\r\nexport class DialogBoxComponent implements OnInit {\r\n\r\n @Input() dialogTitle: string;\r\n @Input() dialogContent: string;\r\n @Output() progressModel = new EventEmitter();\r\n @Input() actions: boolean;\r\n constructor() { }\r\n\r\n ngOnInit() {\r\n }\r\n\r\n public close(status: any) {\r\n if (status === 'yes') {\r\n this.progressModel.emit({ confirmDelete: 'yes' });\r\n }\r\n this.progressModel.emit({ confirmDelete: 'no' });\r\n }\r\n}\r\n","
\n \n \n {{dialogTitle}}\n \n
\n \n
\n
\n
\n

{{dialogContent}}

\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n
\n
\n","import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';\n\n@Component({\n selector: 'app-e-sign',\n templateUrl: './e-sign.component.html',\n styleUrls: ['./e-sign.component.css']\n})\nexport class ESignComponent implements OnInit {\n\n @Input() transactionType: string;\n rdValue: string;\n show = false;\n serverError: any;\n @Output() progressModel = new EventEmitter();\n signatureAffirm = false;\n signatureName = '';\n signatureDate = new Date();\n loadingIcon: boolean;\n\n constructor() { }\n\n ngOnInit() {\n this.signatureAffirm = false;\n this.show = true;\n }\n\n selectionChange(event: any) {\n if (event.target.checked) {\n if (event.target.value === 'agree') {\n this.signatureAffirm = true;\n this.rdValue = 'agree';\n } else {\n this.rdValue = 'disagree';\n }\n }\n }\n\n cancel() {\n this.progressModel.emit({ btnClicked: 'cancel' });\n }\n\n cancelBtnDisable(form: any): boolean {\n if (form && form.controls && form.controls.termsSelection) {\n if (form.controls.termsSelection.value === 'disagree' ||\n (form.valid && form.controls.termsSelection.value === 'agree')) {\n return true;\n } else {\n return false;\n }\n }\n if (this.serverError) {\n return false;\n }\n return true;\n }\n\n continue(form: any): boolean {\n if (form && form.controls && form.controls.termsSelection) {\n if (!form.valid || form.controls.termsSelection.value !== 'agree') {\n return false;\n }\n }\n if (this.serverError) {\n return false;\n }\n return true;\n }\n\n createTransactionLog() {\n this.loadingIcon = true;\n this.progressModel.emit({ transacCreated: true, btnClicked: 'continue', signName: this.signatureName });\n }\n}\n","
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n Date\n
\n \n {{signatureDate | date:'MM/dd/yyyy' }}\n \n
\n
\n
Signature*
\n \n Signature is Required\n \n
\n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-feature-outage',\n templateUrl: './feature-outage.component.html',\n styleUrls: ['./feature-outage.component.css']\n})\nexport class FeatureOutageComponent implements OnInit {\n @Input() message: any;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","
\n
\n
\n \n
\n
\n
\n
\n {{message}}\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { UserService } from '../services/user.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../services/toast-message.service';\nimport { MysrpsAppService } from '../services/mysrps-app.service';\nimport { GoogleAnalyticsService } from '../services/google-analytics.service';\nimport { ReadConfigService } from '../services/read-config.service';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'app-feedback',\n templateUrl: './feedback.component.html',\n styleUrls: ['./feedback.component.css']\n})\nexport class FeedbackComponent implements OnInit {\n openDialog = false;\n intro: any;\n feedback: any;\n showAppOutage: boolean;\n appOutageMessage: any;\n userDetails: any;\n futureOutageMessage: any;\n constructor(\n private userService: UserService,\n private mysrpsAppService: MysrpsAppService,\n private toastService: ToastMessageService,\n private router: Router,\n private googleAnalyticsService: GoogleAnalyticsService,\n private readConfigService: ReadConfigService) { }\n\n ngOnInit() {\n this.intro = this.readConfigService.getFeedbackText();\n }\n\n showComponent() {\n this.userDetails = this.userService.getUserInputData();\n this.mysrpsAppService.getFeedbackOutage(this.userDetails).subscribe((data: any) => {\n if (data.statusCode === 200) {\n // for app feature outage\n if (data.hideFeature) {\n this.showAppOutage = true;\n this.appOutageMessage = data.outageMessage;\n } else {\n this.showAppOutage = false;\n this.futureOutageMessage = data.outageMessage;\n }\n } else if (data.statusCode === 403) {\n this.router.navigate(['/forbidden']);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err.error);\n this.toastService.getErrorMessage();\n });\n }\n\n open() {\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Feedback', 'Click', 10);\n this.openDialog = true;\n this.showComponent();\n }\n\n close() {\n this.openDialog = false;\n }\n\n keyup(value: any) {\n this.feedback = value.replace(/^\\s+/g, '');\n }\n\n ngSubmit() {\n this.mysrpsAppService.saveFeedback(this.feedback.trim(), this.userDetails).subscribe((response: any) => {\n if (response.statusCode === 201) {\n this.openDialog = false;\n this.toastService.getCustomSuccessMessage('Feedback submitted successfully.');\n } else if (response.statusCode === 403) {\n this.openDialog = false;\n this.toastService.getCustomErrorMessage(response.message);\n }\n },\n (err: HttpErrorResponse) => {\n this.openDialog = false;\n console.log(err);\n this.toastService.getErrorMessage();\n });\n this.feedback = null;\n }\n}\n","
\n \n
\n\n
\n \n
\n \n
\n \n
\n
\n \n
\n \n {{feedback.length}}/500\n \n
\n
\n
\n \n
\n
\n
\n
\n \n
\n
\n","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\nimport { MysrpsAppService } from '../services/mysrps-app.service';\nimport { GoogleAnalyticsService } from '../services/google-analytics.service';\nimport { ReadConfigService } from '../services/read-config.service';\n\n@Component({\n selector: 'app-footer',\n templateUrl: './footer.component.html',\n encapsulation: ViewEncapsulation.None,\n styleUrls: ['./footer.component.css']\n})\nexport class FooterComponent implements OnInit {\n contactLink: any;\n memberForms: any;\n retireeForms: any;\n disclaimer: any;\n pSPolicies: any;\n faqs: any;\n mainSiteLink: any;\n facebook: any;\n twitter: any;\n youTube: any;\n constructor(private readConfigService: ReadConfigService,\n private googleAnalyticsService: GoogleAnalyticsService) { }\n\n ngOnInit() {\n const config = this.readConfigService.getFooterLinks();\n this.mainSiteLink = config.MainSiteLink;\n this.contactLink = this.mainSiteLink + config.ContactLink;\n this.memberForms = this.mainSiteLink + config.MemberForms;\n this.retireeForms = this.mainSiteLink + config.RetireeForms;\n this.disclaimer = this.mainSiteLink + config.Disclaimer;\n this.pSPolicies = this.mainSiteLink + config.PSPolicies;\n this.faqs = this.mainSiteLink + config.Faqs;\n this.facebook = config.Facebook;\n this.twitter = config.Twitter;\n this.youTube = config.YouTube;\n }\n\n gaEvent() {\n this.googleAnalyticsService.emitEvent('Link', 'Clicked FAQs', 'Click', 10);\n }\n}\n","\n","export class Global {\r\n public static BASE_DARK_FEATURES_ENDPOINT = '/api/App/GetDarkFeatures';\r\n public static BASE_AUTH_LOGIN_ENDPOINT = '/api/auth/LogIn';\r\n public static BASE_ACCOUNTS_REGISTER_ENDPOINT = '/api/accounts/Register';\r\n public static BASE_USER_CLAIMS_ENDPOINT = '/api/accounts/GetUserClaims';\r\n public static BASE_ACCOUNTS_GETROLES_ENDPOINT = '/api/accounts/GetRoles';\r\n public static BASE_ROLE_TASKS_ENDPOINT = '/api/accounts/GetRoleTasks';\r\n public static BASE_DOCUMENT_TYPES_ENDPOINT = '/api/documents/GetDocumentTypes';\r\n public static BASE_TEN99R_LIST_ENDPOINT = '/api/documents/GetTen99RList';\r\n public static BASE_PSB_LIST_ENDPOINT = '/api/documents/GetPSBList';\r\n public static BASE_GENERATE_1099R_ENDPOINT = '/api/documents/Generate1099R';\r\n public static BASE_GENERATE_PSB_ENDPOINT = '/api/documents/GeneratePSB';\r\n public static BASE_GET_DOCUMENT_ENDPOINT = '/api/documents/GetMyDocument';\r\n public static BASE_GET_DOCUMENTS_ENDPOINT = '/api/documents/GetMyDocuments';\r\n public static BASE_GET_MDSACCOUNT_ENDPOINT = '/api/documents/GetMDSAccountId';\r\n public static BASE_INCOME_LETTER_ENDPOINT = '/api/Retiree/GenerateIncomeLetter';\r\n public static BASE_PAYMENT_HISTORY_ENDPOINT = '/api/Retiree/getPaymentHistory';\r\n public static BASE_RETIREE_DETAILS_ENDPOINT = '/api/Retiree/GetRetireeDetails';\r\n public static BASE_ASSET_LETTER_ENDPOINT = '/api/Member/GenerateAssetLetter';\r\n public static BASE_MEMBER_TOTALS_ENDPOINT = '/api/Member/GetMemberTotals';\r\n public static BASE_MEMBER_DETAILS_ENDPOINT = '/api/Member/GetMemberDetails';\r\n public static BASE_WITHDRAWN_DETAILS_ENDPOINT = '/api/Member/GetWithdrawnDetails';\r\n public static BASE_ESTIMATE_DETAILS_ENDPOINT = '/api/Estimates/getAllBenefitEstimates';\r\n public static BASE_ESTIMATE_DELETE_ENDPOINT = '/api/Estimates/deleteBenefitEstimates';\r\n public static BASE_ESTIMATE_LETTER_ENDPOINT = '/api/Estimates/GenerateEstimateLetter';\r\n public static BASE_COMPARE_ESTIMATE_LETTER_ENDPOINT = '/api/Estimates/CompareBenefitEstimates';\r\n public static BASE_CREATE_TRANSACTION_LOG_ENDPOINT = '/api/Estimates/CreateTransactionLog';\r\n public static BASE_ESTIMATE_DATA_WARNINGS_ENDPOINT = '/api/Estimates/GetEstimateDataWarnings';\r\n public static BASE_MEMBER_HANDBOOK_ENDPOINT = 'https://www.sra.state.md.us/sites/main/files/file-attachments/';\r\n public static BASE_GET_BENEFIT_ESTIMATE_ENDPOINT = '/api/Estimates/GetMonthlyBasicAllowance';\r\n public static BASE_GET_ELIGIBILITY_RULES_ENDPOINT = '/api/Estimates/getEligibilityRules';\r\n public static BASE_GET_RETIREMENT_DATE_ENDPOINT = '/api/Estimates/GetRetirementDateInfo';\r\n public static BASE_GET_BENEFICIARY_DATA_ENDPOINT = '/api/Estimates/GetBenyData';\r\n public static BASE_GET_BENEFICIARY_RELATIONSHIPS_ENDPOINT = '/api/Estimates/GetRelationships';\r\n public static BASE_GET_SICK_LEAVE_LOOKUP_ENDPOINT = '/api/Estimates/GetSickLeavesLookup';\r\n public static BASE_GET_ESTIMATE_WIZARDDATA_ENDPOINT = '/api/Estimates/GetEstWizardPrepData';\r\n public static BASE_GET_ESTIMATE_WIZARD_PROJSERVICE_ENDPOINT = '/api/Estimates/GetProjectedService';\r\n public static BASE_GET_MONTHLYBENEFIT_ENDPOINT = '/api/Estimates/GetMonthlyBenefit';\r\n public static BASE_GET_GROWTHRATE_ENDPOINT = '/api/Estimates/GetGrowthRate';\r\n public static BASE_GET_AFC_SALARY_ENDPOINT = '/api/Estimates/GetAFCSalaryInfo';\r\n public static BASE_GET_ESTIMATE_SAVE_ENDPOINT = '/api/Estimates/SaveCustomEstimate';\r\n public static BASE_GET_MESSAGETOPICS_ENDPOINT = '/api/Messages/GetMessageTopics';\r\n public static BASE_GET_SECUREMESSAGES_ENDPOINT = '/api/Messages/GetSecureMessages';\r\n public static BASE_SEND_MESSAGE_ENDPOINT = '/api/Messages/SendMessage';\r\n public static BASE_DELETE_MESSAGE_ENDPOINT = '/api/Messages/DeleteMessage';\r\n public static BASE_READ_MESSAGE_ENDPOINT = '/api/Messages/ReadMessage';\r\n public static BASE_GET_UNREADMESSAGE_COUNT_ENDPOINT = '/api/Messages/GetUnreadMessageCount';\r\n public static BASE_GET_STATE_CODES_ENDPOINT = '/api/accounts/GetStates';\r\n public static BASE_GET_SECURITY_QUESTIONS_ENDPOINT = '/api/accounts/GetSecurityQuestions';\r\n public static BASE_GET_FEEDBACK_SAVE_ENDPOINT = '/api/accounts/SaveFeedback';\r\n public static BASE_GET_SCHEDULED_MAINTANANCE_ENDPOINT = '/api/App/GetScheduledMaintenance';\r\n public static BASE_GET_INFOICON_VALUES_ENDPOINT = '/api/App/GetIconInfo';\r\n public static BASE_ACCOUNTS_ENDPOINT = '/api/accounts/GetUserAccounts';\r\n public static BASE_ACCOUNTS_SET_LASTLOGIN_ENDPOINT = '/api/accounts/SetLastLogIn';\r\n public static BASE_USER_STATUS_ENDPOINT = '/api/accounts/GetUserStatus';\r\n public static BASE_ACCOUNTS_ACTIVATION_EMAIL_ENDPOINT = '/api/accounts/SendUserActivationEmail';\r\n public static BASE_USER_PROFILE_ENDPOINT = '/api/Accounts/GetUserProfile';\r\n public static BASE_CHANGE_PASSWORD_ENDPOINT = '/api/Accounts/ChangePassword';\r\n public static BASE_SET_SECURITY_QUESTIONS_ENDPOINT = '/api/Accounts/UpdateSecurityInfo';\r\n public static BASE_UPDATE_EMAIL_ENDPOINT = '/api/Accounts/UpdateUserSecondaryEmail';\r\n public static BASE_UPDATE_PHONE_ENDPOINT = '/api/Accounts/UpdateUserPhone';\r\n public static BASE_SWITCH_ADDRESS_ENDPOINT = '/api/Accounts/SwitchUserAddress';\r\n public static BASE_UPDATE_ADDRESS_ENDPOINT = '/api/Accounts/UpdateUserAddress';\r\n public static BASE_DELETE_ADDRESS_ENDPOINT = '/api/Accounts/DeleteUserAddress';\r\n public static BASE_UPDATE_CONTACT_PREF_ENDPOINT = '/api/Accounts/UpdateCommPref';\r\n public static BASE_GET_PERSON_KBQ_ENDPOINT = '/api/Accounts/GetUserSecQuestions';\r\n public static BASE_CHANGE_USERNAME_ENDPOINT = '/api/Accounts/ChangeUsername';\r\n public static BASE_USERNAME_EXISTS_ENDPOINT = '/api/Accounts/IsUsernameExists';\r\n public static BASE_PASSWORD_EXISTS_ENDPOINT = '/api/Accounts/IsPwdUsed';\r\n public static BASE_GET_TAXWITHHOLDING_ENDPOINT = '/api/Retiree/GetTaxWithholding';\r\n public static BASE_CALCULATE_TAXWITHHOLDING_ENDPOINT = '/api/Retiree/CalculateTaxWithholding';\r\n public static BASE_TAXWITHHOLDING_LETTER_ENDPOINT = '/api/Retiree/GenerateTaxWithholdingLetter';\r\n public static BASE_UPDATE_TAXWITHHOLDING_ENDPOINT = '/api/Retiree/UpdateTaxWithholding';\r\n public static BASE_GET_BENE_INFO_ENDPOINT = '/api/accounts/GetBenyData';\r\n public static BASE_GET_ASSET_OUTAGE_ENDPOINT = '/api/Member/GetAssetVerification';\r\n public static BASE_GET_FEEDBACK_OUTAGE_ENDPOINT = '/api/Accounts/GetFeedbackOutage';\r\n public static BASE_GET_INCOME_OUTAGE_ENDPOINT = '/api/Retiree/GetIncomeVerification';\r\n public static BASE_DESIGNATE_BENE_LETTER_ENDPOINT = '/api/Accounts/GenrateForm4Letter';\r\n public static BASE_CHANGE_BENE_ENDPOINT = '/api/Accounts/ChangeBeneficiaries';\r\n public static BASE_GET_USER_ADDRESS_ENDPOINT = '/api/Accounts/GetUserAddress';\r\n public static BASE_GET_DD_OUTAGE_ENDPOINT = '/api/Retiree/GetDirectDepositOutage';\r\n public static BASE_GET_BANK_NAME_ENDPOINT = '/api/Retiree/GetBankInfo';\r\n public static BASE_PREVIEW_DIRECT_DEPOSIT_ENDPOINT = '/api/Retiree/GenerateDirectDepositForm';\r\n public static BASE_UPDATE_DIRECT_DEPOSIT_INFO_ENDPOINT = '/api/Retiree/UpdateDirectDeposit';\r\n public static BASE_GET_CONFIG_ENDPOINT = '/api/App/GetConfigSettings';\r\n public static BASE_GET_MERGED_DOCUMENT_ENDPOINT = '/api/documents/GetMergedDocuments';\r\n public static BASE_GET_STATETAXWITHHOLDING_ENDPOINT = '/api/Retiree/GetStateTaxWithholding';\r\n public static BASE_STATE_TAXWITHHOLDING_LETTER_ENDPOINT = '/api/Retiree/GenerateStateTaxWithholdingLetter';\r\n public static BASE_UPDATE_STATETAXWITHHOLDING_ENDPOINT = '/api/Retiree/UpdateStateTaxWithholding';\r\n public static BASE_GET_FEDTAXWITHHOLDING_ENDPOINT = '/api/Retiree/GetFedTaxWithholding';\r\n public static BASE_CALCULATE_FEDTAXWITHHOLDING_ENDPOINT = '/api/Retiree/CalculateFedTaxWithholding';\r\n public static BASE_FED_TAXWITHHOLDING_LETTER_ENDPOINT = '/api/Retiree/GenerateFedTaxWithholdingLetter';\r\n public static BASE_UPDATE_FEDTAXWITHHOLDING_ENDPOINT = '/api/Retiree/UpdateFedTaxWithholding';\r\n}\r\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-message-count',\n templateUrl: './message-count.component.html',\n styleUrls: ['./message-count.component.css']\n})\nexport class MessageCountComponent implements OnInit {\n\n @Input() fromDetails: any;\n @Input() msgCount: any;\n constructor() { }\n\n ngOnInit() {\n }\n\n}\n","\n {{msgCount}}\n\n","import { Component, OnInit, Input } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { UserService } from '../services/user.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../services/toast-message.service';\nimport { MessagesService } from '../services/messages.service';\nimport { DatePipe } from '@angular/common';\nimport { GoogleAnalyticsService } from '../services/google-analytics.service';\nimport { ReadConfigService } from '../services/read-config.service';\n\n@Component({\n selector: 'app-navbar',\n templateUrl: './navbar.component.html',\n styleUrls: ['./navbar.component.css']\n})\nexport class NavbarComponent implements OnInit {\n\n @Input() public isLoggedIn: any;\n @Input() public activePath: any;\n @Input() public unreadMsgCount: any;\n userClaims: any;\n showDocuments: boolean;\n showMessages: boolean;\n showProfile: boolean;\n isLoginError: boolean;\n isMobileMenu = false;\n showMsgDialog: boolean;\n personId: any;\n messageBody = '';\n messageLink: string;\n showNotification: boolean;\n omessageBody: string;\n minutes: number;\n messagesConfig: any;\n showSecQnsNotif = false;\n secqnsBody: any;\n showFeedback: any;\n constructor(\n private router: Router,\n private userService: UserService,\n private messagesService: MessagesService,\n private toastService: ToastMessageService,\n private readConfigService: ReadConfigService,\n private googleAnalyticsService: GoogleAnalyticsService) { }\n\n ngOnInit() {\n if (this.isLoggedIn) {\n this.setUserClaims();\n if (this.userClaims !== null) {\n if (this.userClaims.status === 'Activated') {\n setTimeout(() => {\n this.showDarkFeatures();\n }, 100);\n }\n } else {\n const claims = JSON.parse(window.atob(sessionStorage.getItem('access_token').split('.')[1]));\n this.getUserClaims(claims.sub);\n }\n this.getOutageNotif();\n if (this.activePath !== 'profile' && this.userService.getSecurityQns().length !== 3) {\n this.checkSecQns();\n }\n }\n this.setSelectedId();\n window.scrollTo(0, 0);\n }\n\n showDarkFeatures() {\n setTimeout(() => {\n if (sessionStorage.getItem('DFLoaded') === null) {\n this.showDarkFeatures();\n }\n this.messagesConfig = this.readConfigService.getSecuMessagesText();\n this.minutes = this.showMessages ? this.messagesConfig.messageTimeoutMin : 100;\n if (sessionStorage.getItem('unreadMsgCount') !== null) {\n this.unreadMsgCount = JSON.parse(sessionStorage.getItem('unreadMsgCount'));\n } else {\n if (this.userClaims.userName) {\n this.getUnreadMsgCount(this.userClaims.userName);\n }\n }\n if (this.showMessages) {\n this.setUnreadMsgCount();\n }\n if (sessionStorage.getItem('DFLoaded')) {\n this.showDocuments = this.userService.showDarkFeature('Documents');\n this.showMessages = this.userService.showDarkFeature('Messages');\n this.showFeedback = this.userService.showDarkFeature('UserFeedback');\n this.showProfile = this.userService.showDarkFeature('UserProfile');\n }\n }, 200);\n }\n\n getUserClaims(userName: any) {\n this.userService.getUserDetails(userName).subscribe((data: any) => {\n this.userClaims = data.result;\n if (this.userClaims.status === 'Activated') {\n this.showDarkFeatures();\n }\n },\n (err: HttpErrorResponse) => {\n this.isLoginError = true;\n console.log(err.message);\n });\n }\n\n setUserClaims() {\n this.userClaims = this.userService.getUserClaims();\n }\n\n setUnreadMsgCount() {\n setTimeout(() => {\n if (this.userClaims.userName) {\n this.getUnreadMsgCount(this.userClaims.userName);\n }\n }, (this.minutes * 60000));\n }\n\n checkSecQns() {\n setTimeout(() => {\n if (sessionStorage.getItem('userId') === null) {\n this.checkSecQns();\n } else {\n if (this.userService.getSecurityQns().length !== 3) {\n this.secqnsBody = this.readConfigService.getSecQnsNotifText();\n this.userService.getPersonKBQ().subscribe((response: any) => {\n if (response.statusCode === 200) {\n const secQns = response.result;\n const count = secQns ? secQns.length : 0;\n this.userService.setSecurityQns(secQns);\n if (count !== 3) {\n this.showSecQnsNotif = true;\n }\n } else if (response.StatusCode === 204 && response.Status === 'not found') {\n this.showSecQnsNotif = true;\n this.userService.setSecurityQns([]);\n } else if (response.StatusCode === 403) {\n this.router.navigate(['/forbidden']);\n } else {\n this.userService.setSecurityQns([]);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n });\n }\n }\n }, 500);\n }\n\n gotToSecQns() {\n this.router.navigate(['/profile/securityinformation/securityquestions']);\n }\n\n getOutageNotif() {\n const outageDetails = this.readConfigService.getOutageScheduledDetails();\n const outageConfig = this.readConfigService.getOutageText();\n if (outageDetails && outageDetails.maintenanceFlag && outageDetails.showNotification &&\n !outageDetails.showOutage && sessionStorage.getItem('showOutageNotif') === null) {\n this.showNotification = true;\n const datePipe = new DatePipe('en-US');\n this.omessageBody = outageConfig.Notification.replace('{0}', datePipe.transform(outageDetails.startDt, 'EEEE, MMMM d, y, h:mm a'));\n this.omessageBody = this.omessageBody.replace('{1}', datePipe.transform(outageDetails.endDt, 'EEEE, MMMM d, y, h:mm a'));\n }\n }\n\n closeOutage() {\n this.showNotification = false;\n sessionStorage.setItem('showOutageNotif', 'true');\n }\n\n getUnreadMsgCount(username: any) {\n const userDetails = this.userService.getUserInputData(true);\n this.messagesService.getUnreadMessageCount(userDetails).subscribe((data: any) => {\n if (data.statusCode === 200) {\n this.unreadMsgCount = data.result;\n sessionStorage.setItem('unreadMsgCount', this.unreadMsgCount.toString());\n if (this.unreadMsgCount > 0 && sessionStorage.getItem('showunreadmsg') === null) {\n this.showMsgDialog = true;\n this.messageBody = 'You have ' + this.unreadMsgCount + ' unread message(s).';\n }\n this.setUnreadMsgCount();\n }\n },\n (err: HttpErrorResponse) => {\n if (sessionStorage.getItem('unreadMsgCount') !== null) {\n console.log(err.error);\n this.toastService.getErrorMessage();\n }\n });\n }\n\n close() {\n this.showMsgDialog = false;\n sessionStorage.setItem('showunreadmsg', 'true');\n sessionStorage.setItem('unreadMsgCount', this.unreadMsgCount.toString());\n }\n\n /**\n * @description\n * Function to set selected nav even on refreshing\n * customized code to work on prod only\n */\n setSelectedId() {\n const paths = location.pathname.replace(/\\//g, ',').split(',');\n if (paths.length > 1) {\n this.activePath = paths[1];\n }\n }\n\n /**\n * @description\n * Function to control mobile menu show and hide\n */\n showMobilemenu() {\n window.scrollTo(0, 0);\n const appFooter = document.getElementById('app-footer');\n const middleContent = document.getElementById('middle-content');\n const appNotification = document.getElementsByClassName('shared-notification');\n if (appFooter !== null && middleContent !== null) {\n if (!this.isMobileMenu) {\n this.isMobileMenu = true;\n appFooter.classList.add('conditional-display');\n middleContent.classList.add('conditional-display');\n // tslint:disable-next-line: prefer-for-of\n for (let i = 0; i < appNotification.length; i++) {\n appNotification[i].classList.add('conditional-display');\n }\n } else {\n this.isMobileMenu = false;\n appFooter.classList.remove('conditional-display');\n middleContent.classList.remove('conditional-display');\n // tslint:disable-next-line: prefer-for-of\n for (let i = 0; i < appNotification.length; i++) {\n appNotification[i].classList.remove('conditional-display');\n }\n }\n }\n }\n\n /**\n * @description\n * Function to set class for mobile menu icon\n */\n setClass() {\n let retClass: any;\n if (this.isMobileMenu) {\n retClass = 'close';\n }\n return retClass;\n }\n\n /**\n * @description\n * Function to set class if there are any unread messages\n */\n setMessageClass() {\n let liClass = '';\n let linkClass = '';\n if (this.unreadMsgCount > 0) {\n liClass = 'messages-li';\n linkClass = 'messages-link';\n }\n return {\n liClass,\n linkClass\n };\n }\n\n /**\n * @description\n * Function to set padding for messages number\n */\n setPaddingClass() {\n let paddingClass = '';\n if (this.unreadMsgCount < 11) {\n paddingClass = 'num-padding-single';\n } else {\n paddingClass = 'num-padding-double';\n }\n return paddingClass;\n }\n\n /**\n * @description\n * Function to clear session storage and logout\n */\n logout() {\n this.googleAnalyticsService.emitEvent('Button', 'Clicked Log Out', 'Click', 10);\n sessionStorage.clear();\n sessionStorage.setItem('logout', 'true');\n this.router.navigate(['/login']);\n }\n}\n","
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n \n mySRPS\n \n
\n
\n
\n \n \n Welcome {{userClaims.firstName}} {{userClaims.middleInitial}}\n {{userClaims.lastName}}\n \n \n
\n
\n \n
\n
\n \n
\n
\n
\n \n
\n
\n
\n \n
\n \n
\n
\n
\n \n mySRPS\n \n
\n
\n \n \n Welcome {{userClaims.firstName}} {{userClaims.middleInitial}}\n {{userClaims.lastName}}\n \n \n
\n \n \n \n Home\n \n \n \n \n My Documents\n \n \n \n \n Messages\n
0\">\n \n
\n \n \n \n
\n
\n
\n
\n \n \n Profile\n \n \n
\n
\n
\n
\n
\n
\n \n
\n\n\n

{{secqnsBody}}

\n
\n
\n \n
\n
\n
\n\n
\n \n
\n\n
\n \n
\n\n
\n \n
\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-notification',\n templateUrl: './notification.component.html',\n styleUrls: ['./notification.component.css']\n})\nexport class NotificationComponent implements OnInit {\n\n @Input() notifBody: string;\n @Input() divId: string;\n\n constructor() { }\n\n ngOnInit() {\n }\n\n close() {\n const notifDiv = document.getElementById(this.divId);\n if (notifDiv) {\n notifDiv.remove();\n }\n }\n}\n","
\n
\n {{notifBody}}\n
\n \n
\n","import { Component, OnInit, Input, AfterViewInit } from '@angular/core';\r\nimport { UserService } from '../services/user.service';\r\nimport { HttpErrorResponse } from '@angular/common/http';\r\nimport { MemberService } from '../services/member.service';\r\nimport { Router } from '@angular/router';\r\nimport { ToastMessageService } from '../services/toast-message.service';\r\n\r\n@Component({\r\n selector: 'app-panelbar',\r\n templateUrl: './panelbar.component.html',\r\n styleUrls: ['./panelbar.component.css']\r\n})\r\n\r\nexport class PanelbarComponent implements OnInit, AfterViewInit {\r\n rolelinks: Array;\r\n account: any;\r\n links: any = [];\r\n @Input() role: any;\r\n selectedItem: any;\r\n memberTotals: any;\r\n memberStatus: any;\r\n selectedValue: any;\r\n selectedId = '';\r\n showEstimateBenefits: boolean;\r\n showAssetLetter: boolean;\r\n\r\n constructor(\r\n private router: Router,\r\n private userService: UserService,\r\n private memberService: MemberService,\r\n private toastService: ToastMessageService) { }\r\n\r\n ngOnInit() {\r\n this.account = this.userService.getSelectedAccount();\r\n if (this.account !== null) {\r\n setTimeout(() => {\r\n if (sessionStorage.getItem('DFLoaded')) {\r\n if (this.account.role === 'NonActive' || this.account.role === 'Active') {\r\n this.showEstimateBenefits = this.userService.showDarkFeature('EstimateBenefits');\r\n this.showAssetLetter = this.userService.showDarkFeature('AssetVerification');\r\n const userDetails = this.userService.getUserInputData();\r\n if (this.showAssetLetter || this.showEstimateBenefits) {\r\n this.memberService.getMemberTotals(this.account.uniqueId, this.account.fiscalYear, userDetails).subscribe((data: any) => {\r\n if (data && data.success) {\r\n this.memberTotals = data.result.total;\r\n this.memberStatus = data.result.statusCode;\r\n sessionStorage.setItem('showVest', data.result.showVest);\r\n this.loadLinks(this.account);\r\n } else if (data && data.statusCode === 403) {\r\n this.router.navigate(['/forbidden']);\r\n } else {\r\n this.toastService.getErrorMessage();\r\n }\r\n },\r\n (err: HttpErrorResponse) => {\r\n console.log(err);\r\n this.toastService.getErrorMessage();\r\n });\r\n } else {\r\n this.loadLinks(this.account);\r\n }\r\n } else {\r\n this.loadLinks(this.account);\r\n }\r\n }\r\n }, 500);\r\n }\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (document.querySelectorAll('[role=\"listbox\"]') !== undefined) {\r\n const sliderSelectionElement = document.querySelectorAll('#navDropdown');\r\n if (sliderSelectionElement.length > 0) {\r\n const selectElement = sliderSelectionElement[0].querySelector('.k-icon');\r\n const objHtmlElement = (selectElement as HTMLElement);\r\n objHtmlElement.style.color = 'white !important';\r\n objHtmlElement.style.content = '\\E015 !important';\r\n objHtmlElement.classList.add('icon-arrow-chevron-down');\r\n const iconWrapper = document.querySelector('.k-input-button');\r\n const iconWrapperElement = (iconWrapper as HTMLElement);\r\n const kinputElement = document.querySelector('.k-input-inner');\r\n const objInputHtmlElement = (kinputElement as HTMLElement);\r\n objInputHtmlElement.style.padding = '25px';\r\n objInputHtmlElement.style.fontSize = '27px !important';\r\n const kselectElement = document.querySelector('.k-list-ul');\r\n const kselectHtmlElement = (kselectElement as HTMLElement);\r\n if (this.account !== null) {\r\n if (this.account.role === 'PayeeRetiree' || this.account.role === 'PayeeNonRetiree') {\r\n iconWrapperElement.classList.add('iconRStyle');\r\n } else {\r\n iconWrapperElement.classList.add('iconStyle');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n * Function to account task links\r\n */\r\n loadLinks(account: any) {\r\n this.userService.getRoleTasks(account.role).subscribe((response => this.mapToTasks(response)),\r\n (err: HttpErrorResponse) => {\r\n console.log(err);\r\n this.toastService.getErrorMessage();\r\n });\r\n }\r\n\r\n /**\r\n * @description\r\n * Function to remove task from array\r\n */\r\n arrayRemove(arr: [any], value: any): any[] {\r\n return arr.filter((task: any) => {\r\n return task.path !== value;\r\n });\r\n }\r\n\r\n /**\r\n * @description\r\n * Function to map tasks to links\r\n */\r\n mapToTasks(tasks: any) {\r\n tasks.forEach((item: any) => {\r\n this.links.push({\r\n id: item.taskId, title: item.taskLinkName, path: item.taskLinkName,\r\n disabled: item.taskLinkName !== 'View Account' && item.taskLinkName !== 'Payment History' &&\r\n item.taskLinkName !== 'Income Verification' && item.taskLinkName !== 'Asset Verification' &&\r\n item.taskLinkName !== 'Estimate Benefits' && item.taskLinkName !== 'Update Tax Withholding' &&\r\n item.taskLinkName !== 'Beneficiary Information' && item.taskLinkName !== 'Update Direct Deposit'\r\n && item.taskLinkName !== 'Update Federal Tax Withholding' &&\r\n item.taskLinkName !== 'Update State Tax Withholding',\r\n selected: item.taskLinkName === this.selectedItem\r\n });\r\n });\r\n // check for dark feature\r\n if (this.account.role === 'NonActive' || this.account.role === 'Active') {\r\n if (!this.userService.showDarkFeature('MemberViewAccount')) {\r\n this.links = this.arrayRemove(this.links, 'View Account');\r\n }\r\n } else {\r\n if (!this.userService.showDarkFeature('RetireeViewAccount')) {\r\n this.links = this.arrayRemove(this.links, 'View Account');\r\n }\r\n }\r\n if (!this.showEstimateBenefits) {\r\n this.links = this.arrayRemove(this.links, 'Estimate Benefits');\r\n }\r\n if (!this.userService.showDarkFeature('PaymentHistory')) {\r\n this.links = this.arrayRemove(this.links, 'Payment History');\r\n }\r\n if (!this.showAssetLetter) {\r\n this.links = this.arrayRemove(this.links, 'Asset Verification');\r\n }\r\n if (!this.userService.showDarkFeature('IncomeVerification')) {\r\n this.links = this.arrayRemove(this.links, 'Income Verification');\r\n }\r\n if (!this.userService.showDarkFeature('TaxWithholding')) {\r\n this.links = this.arrayRemove(this.links, 'Update Tax Withholding');\r\n }\r\n if (!this.userService.showDarkFeature('DesignateBeneficiary')) {\r\n this.links = this.arrayRemove(this.links, 'Designate Beneficiary');\r\n }\r\n if (!this.userService.showDarkFeature('BeneficiaryInfo')) {\r\n this.links = this.arrayRemove(this.links, 'Beneficiary Information');\r\n }\r\n if (!this.userService.showDarkFeature('DirectDeposit')) {\r\n this.links = this.arrayRemove(this.links, 'Update Direct Deposit');\r\n }\r\n if (!this.userService.showDarkFeature('FederalTaxWithholding')) {\r\n this.links = this.arrayRemove(this.links, 'Update Federal Tax Withholding');\r\n }\r\n if (!this.userService.showDarkFeature('StateTaxWithholding')) {\r\n this.links = this.arrayRemove(this.links, 'Update State Tax Withholding');\r\n }\r\n // check for ineligible tasks for the useraccount and remove them\r\n if (this.memberTotals === 0 && (this.memberStatus !== 'A' && this.memberStatus !== 'AL' && this.memberStatus !== 'JS'\r\n && this.memberStatus !== 'LS' && this.memberStatus !== 'DR' && this.memberStatus !== 'I' && this.memberStatus !== 'T')) {\r\n this.links = this.arrayRemove(this.links, 'Estimate Benefits');\r\n this.links = this.arrayRemove(this.links, 'Asset Verification');\r\n } else if (this.memberStatus !== 'A' && this.memberStatus !== 'AL' && this.memberStatus !== 'JS'\r\n && this.memberStatus !== 'LS' && this.memberStatus !== 'DR' && this.memberStatus !== 'I' && this.memberStatus !== 'T') {\r\n this.links = this.arrayRemove(this.links, 'Estimate Benefits');\r\n } else if (this.memberTotals === 0) {\r\n this.links = this.arrayRemove(this.links, 'Asset Verification');\r\n }\r\n this.rolelinks = this.links;\r\n this.setSelectedId();\r\n if (this.rolelinks.length > 0) {\r\n this.selectedValue = this.rolelinks[0].id;\r\n } else {\r\n this.router.navigate(['/forbidden']);\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n * Function to set selected task even on refreshing\r\n * customized code to work on prod only\r\n */\r\n setSelectedId() {\r\n const paths = location.pathname.replace(/\\//g, ',').split(',');\r\n if (paths.length > 3) {\r\n this.selectedId = paths[2].replace(/%20/g, ' ');\r\n }\r\n }\r\n\r\n /**\r\n * @description\r\n * Function to disable tasks\r\n */\r\n itemDisabled(itemArgs: { dataItem: any, index: number; }): any {\r\n return itemArgs.dataItem.disabled;\r\n }\r\n\r\n /**\r\n * @description\r\n * Function to navigate to respective component depending on role\r\n */\r\n changeMenu(value: any) {\r\n let currentLink: any = [];\r\n currentLink = this.links.filter((s: any) => s.id.toLowerCase().indexOf(value.toLowerCase()) !== -1);\r\n if (currentLink[0] !== undefined) {\r\n if (currentLink[0].path !== undefined && this.account !== null) {\r\n this.router.navigate(['/' + this.account.role + '/', currentLink[0].path]);\r\n }\r\n }\r\n }\r\n}\r\n","
\r\n
\r\n \r\n \r\n {{ dataItem.title }}\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n","import { Component, OnInit, Input } from '@angular/core';\n\n@Component({\n selector: 'app-personal-info',\n templateUrl: './personal-info.component.html',\n styleUrls: ['./personal-info.component.css']\n})\nexport class PersonalInfoComponent implements OnInit {\n\n @Input() profileDetails: any;\n constructor() { }\n\n ngOnInit() {\n }\n}\n","
\n
\n
Social Security Number
\n
{{profileDetails.ssn}}
\n
\n
\n
Birth Date
\n
{{profileDetails.birthDate | date:'MM/dd/yyyy'}}
\n
\n
\n
Gender
\n
\n {{profileDetails.gender === 'M' ? 'Male' : profileDetails.gender === 'F' ? 'Female' : ''}}\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { ReadConfigService } from '../services/read-config.service';\n\n@Component({\n selector: 'app-service-error',\n templateUrl: './service-error.component.html',\n styleUrls: ['./service-error.component.css']\n})\nexport class ServiceErrorComponent implements OnInit {\n errorTitle: any;\n errorMessage: any;\n\n constructor(private readConfigService: ReadConfigService) { }\n\n ngOnInit() {\n const config = this.readConfigService.getServiceErrorText();\n this.errorTitle = config.Title;\n this.errorMessage = config.Message;\n }\n}\n","\n
\n
\n
\n
\n
\n

{{errorTitle}}

\n
\n \"Maryland\n
\n \n {{errorMessage}}\n \n
\n
\n
\n
\n
\n
\n","import { ApplicationInsights } from '@microsoft/applicationinsights-web';\nimport { ReadConfigService } from './read-config.service';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class AppInsightService {\n appInsights: ApplicationInsights;\n constructor(private readConfigService: ReadConfigService) {\n const key = this.readConfigService.readAppInsightKey();\n this.appInsights = new ApplicationInsights({\n config: {\n instrumentationKey: key,\n enableAutoRouteTracking: true // option to log all route changes\n }\n });\n this.appInsights.loadAppInsights();\n }\n\n logPageView(name?: string, url?: string) { // option to call manually\n this.appInsights.trackPageView({\n name: name,\n uri: url\n });\n }\n\n logEvent(name: string, properties?: { [key: string]: any }) {\n this.appInsights.trackEvent({ name: name}, properties);\n }\n\n logMetric(name: string, average: number, properties?: { [key: string]: any }) {\n this.appInsights.trackMetric({ name: name, average: average }, properties);\n }\n\n logException(exception: Error, severityLevel?: number) {\n this.appInsights.trackException({ exception: exception, severityLevel: severityLevel });\n }\n\n logTrace(message: string, properties?: { [key: string]: any }) {\n this.appInsights.trackTrace({ message: message}, properties);\n }\n}","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders, HttpParams, HttpErrorResponse } from '@angular/common/http';\nimport { Observable, throwError } from 'rxjs';\nimport { Global } from '../global';\nimport { EstimateData } from '../../models/benefitEstimateWizard.model';\nimport { map, catchError } from 'rxjs/operators';\nimport { DatePipe } from '@angular/common';\nimport { ReadConfigService } from './read-config.service';\n\n@Injectable()\nexport class BenefitEstimateService {\n\n constructor(private http: HttpClient, private readConfigService: ReadConfigService) {\n }\n\n readonly rootUrl = this.readConfigService.getApiUrl();\n reqHeader = new HttpHeaders({\n 'Content-Type': 'application/json'\n });\n\n getAllBenefitEstimates(uniqueId: string, user: any): Observable {\n const inputData = {\n uniqueId,\n user\n };\n const url = this.rootUrl + Global.BASE_ESTIMATE_DETAILS_ENDPOINT;\n return this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getAllDataWarnings(uniqueId: string, user: any): Observable {\n const prepData = this.getEstimatePrepData();\n const data = {\n AgeofMember: prepData.memberAge,\n System: prepData.system,\n StatusCode: prepData.statusCode,\n VestDate: prepData.vestDate,\n LinkId: prepData.linkId,\n EligService: prepData.eligService,\n LastPayrollDate: prepData.lastPayrollDate,\n Plan: prepData.plan,\n JobCode: prepData.jobCode,\n DroFlag: prepData.droFlag\n };\n const inputData = {\n data,\n uniqueId,\n user\n };\n const url = this.rootUrl + Global.BASE_ESTIMATE_DATA_WARNINGS_ENDPOINT;\n return this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n deleteBenefitEstimates(inputData: any): Observable {\n const url = this.rootUrl + Global.BASE_ESTIMATE_DELETE_ENDPOINT;\n return this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getDataWarningsConfig(data: any): any {\n const result: any[] = [];\n if (data !== undefined) {\n const arrValues = data.split(',');\n const dataWarnings = this.readConfigService.getTermsandConditionsText().DataWarnings;\n arrValues.forEach((element: any) => {\n if (dataWarnings[element] !== undefined) {\n const item = {\n message: dataWarnings[element],\n name: element\n };\n result.push(item);\n }\n });\n }\n return result;\n }\n\n compareBenefitEstimates(id: any): Observable {\n const url = this.rootUrl + Global.BASE_COMPARE_ESTIMATE_LETTER_ENDPOINT;\n return this.http.post(url, id)\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getAllBenefitEstimateData(uniqueId: string, user: any): Observable {\n const inputData = {\n uniqueId,\n user\n };\n const url = this.rootUrl + Global.BASE_GET_BENEFIT_ESTIMATE_ENDPOINT;\n return this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getEligibilityRules(eligID: any): Observable {\n const params = new HttpParams()\n .set('eligID', eligID);\n const url = this.rootUrl + Global.BASE_GET_ELIGIBILITY_RULES_ENDPOINT;\n return this.http.get(url, { headers: this.reqHeader, params })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n calculateBenefitAmount(retType: any, retDt: any, stpWrkDt: any, milData: any, uniqueId: string, user: any): Observable {\n const prepData = this.getEstimatePrepData();\n let ms = 0;\n if (milData !== null) {\n ms = this.getMilitaryService(prepData.tenMonth, milData);\n }\n const data = {\n UniqueId: uniqueId,\n LinkId: prepData.linkId,\n RetDt: retDt,\n WorkStopDt: stpWrkDt,\n FTEPercent: prepData.ftePercent,\n TotReg: prepData.totalRegular,\n TotBif: prepData.totalBifurcated,\n TotEnh: prepData.totalEnhanced,\n TotRef: prepData.totalReformed,\n ActualSal: prepData.actualSalary,\n StatusCode: prepData.statusCode,\n RetType: retType,\n BnftMethod: prepData.bnftMethod,\n EligMethod: prepData.eligMethod,\n TenMonth: prepData.tenMonth,\n Ssil: prepData.ssil,\n Voluntary: prepData.voluntary,\n Deficiency: prepData.deficiency,\n RedFactor: 1,\n PlanTier: prepData.planTier,\n EligService: prepData.eligService,\n MilitService: ms\n };\n const inputData = {\n data,\n user\n };\n const body = JSON.stringify(inputData);\n const url = this.rootUrl + Global.BASE_GET_RETIREMENT_DATE_ENDPOINT;\n return this.http.post(url, body, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n calculateSLBenefitAmount(afc: any, retDt: any, months: any, projCrSvc: any, ssil: any, reductionFactor: any,\n uniqueId: string, user: any): Observable {\n const prepData = this.getEstimatePrepData();\n switch (prepData.planTier) {\n case 'REF':\n prepData.totalReformed = prepData.totalReformed + projCrSvc;\n break;\n case 'BIF':\n prepData.totalBifurcated = prepData.totalBifurcated + projCrSvc;\n break;\n case 'REG':\n prepData.totalRegular = prepData.totalRegular + projCrSvc;\n break;\n case 'ENH':\n prepData.totalEnhanced = prepData.totalEnhanced + projCrSvc;\n break;\n }\n const data = {\n UniqueId: uniqueId,\n LinkId: prepData.linkId,\n RetDt: retDt,\n FTEPercent: prepData.ftePercent,\n TotReg: prepData.totalRegular,\n TotBif: prepData.totalBifurcated,\n TotEnh: prepData.totalEnhanced,\n TotRef: prepData.totalReformed,\n ActualSal: prepData.actualSalary,\n StatusCode: prepData.statusCode,\n BnftMethod: prepData.bnftMethod,\n EligMethod: prepData.eligMethod,\n TenMonth: prepData.tenMonth,\n Ssil: ssil,\n Voluntary: prepData.voluntary,\n Deficiency: prepData.deficiency,\n RedFactor: reductionFactor,\n PlanTier: prepData.planTier,\n EligService: prepData.eligService,\n AFC: afc,\n SLMonths: months\n };\n const inputData = {\n data,\n user\n };\n const body = JSON.stringify(inputData);\n const url = this.rootUrl + Global.BASE_GET_MONTHLYBENEFIT_ENDPOINT;\n return this.http.post(url, body, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getBenefitBeneficiaryData(uniqueId: string, user: any): Observable {\n const inputData = {\n uniqueId,\n user\n };\n const url = this.rootUrl + Global.BASE_GET_BENEFICIARY_DATA_ENDPOINT;\n return this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getBeneficiaryRelationshipData(): Observable {\n const url = this.rootUrl + Global.BASE_GET_BENEFICIARY_RELATIONSHIPS_ENDPOINT;\n return this.http.get(url, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getGrowthRate(inputSalary: any, currentAFC: any, yearsBetween: any, user: any): Observable {\n const inputData = {\n inputSalary,\n currentAFC,\n yearsBetween,\n user\n };\n const url = this.rootUrl + Global.BASE_GET_GROWTHRATE_ENDPOINT;\n return this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n calculateAFCSalary(growthPct: any, growthMnth: any, retDt: any, rednFactor: any, credService: any,\n ssil: any, user: any): Observable {\n const prepData = this.getEstimatePrepData();\n const data = {\n LinkId: prepData.linkId,\n RetDt: retDt,\n TotReg: prepData.totalRegular,\n TotBif: prepData.totalBifurcated,\n TotEnh: prepData.totalEnhanced,\n TotRef: prepData.totalReformed,\n RetType: 'S',\n BnftMethod: prepData.bnftMethod,\n EligMethod: prepData.eligMethod,\n TenMonth: prepData.tenMonth,\n Ssil: ssil,\n Voluntary: prepData.voluntary,\n Deficiency: prepData.deficiency,\n RedFactor: rednFactor,\n PlanTier: prepData.planTier,\n CredService: credService,\n GrowthPct: growthPct,\n GrowthMnth: growthMnth\n };\n const inputData = {\n data,\n user\n };\n const body = JSON.stringify(inputData);\n const url = this.rootUrl + Global.BASE_GET_AFC_SALARY_ENDPOINT;\n return this.http.post(url, body, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getWizardPrepData(eligservice: any, militservice: any, uniqueId: string, user: any): Observable {\n const prepData = this.getEstimatePrepData();\n const data = {\n UniqueId: uniqueId,\n EligService: eligservice,\n MilitService: militservice,\n BirthDt: prepData.birthDate,\n EligMethod: prepData.eligMethod,\n LastPayDt: prepData.lastPayrollDate,\n StatusCode: prepData.statusCode,\n FTEPercent: prepData.ftePercent,\n TenMonth: prepData.tenMonth\n };\n const inputData = {\n data,\n user\n };\n const body = JSON.stringify(inputData);\n const url = this.rootUrl + Global.BASE_GET_ESTIMATE_WIZARDDATA_ENDPOINT;\n return this.http.post(url, body, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getProjService(workStopDt: any, militservice: any, uniqueId: string, user: any): Observable {\n const prepData = this.getEstimatePrepData();\n const data = {\n UniqueId: uniqueId,\n WorkStopDt: workStopDt,\n LastPayDt: prepData.lastPayrollDate,\n StatusCode: prepData.statusCode,\n FTEPercent: prepData.ftePercent,\n TenMonth: prepData.tenMonth,\n EligService: prepData.eligService,\n MilitService: militservice,\n EligMethod: prepData.eligMethod\n };\n const inputData = {\n data,\n user\n };\n const body = JSON.stringify(inputData);\n const url = this.rootUrl + Global.BASE_GET_ESTIMATE_WIZARD_PROJSERVICE_ENDPOINT;\n return this.http.post(url, body, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getSickLeavesLookup(tenMonth: any): Observable {\n const params = new HttpParams()\n .set('tenMonth', tenMonth);\n const url = this.rootUrl + Global.BASE_GET_SICK_LEAVE_LOOKUP_ENDPOINT;\n return this.http.get(url, { headers: this.reqHeader, params })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n saveCustomEstimate(inputData: any): Observable {\n const url = this.rootUrl + Global.BASE_GET_ESTIMATE_SAVE_ENDPOINT;\n return this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getMilitaryService(tenMonth: any, wizardData: any): any {\n let years = isNaN(wizardData.priorYear) ? 0 : Number(wizardData.priorYear);\n years += isNaN(wizardData.duringYear) ? 0 : Number(wizardData.duringYear);\n let priormonths = isNaN(wizardData.priorMonth) ? 0 : Number(wizardData.priorMonth);\n if (tenMonth === 10) {\n priormonths = this.getTenMonths(priormonths);\n }\n let duringmonths = isNaN(wizardData.duringMonth) ? 0 : Number(wizardData.duringMonth);\n if (tenMonth === 10) {\n duringmonths = this.getTenMonths(duringmonths);\n }\n return (years * tenMonth) + (priormonths + duringmonths);\n }\n\n getTenMonths(months: any) {\n if (months >= 6 && months <= 10) { months = months - 1; } else if ((months >= 11)) { months = 10; }\n return months;\n }\n\n convertMonths(years: any, month: any, tenMonth: any) {\n const calYears = isNaN(years) ? 0 : Number(years) * tenMonth;\n let calmonths = isNaN(month) ? 0 : Number(month);\n if (tenMonth === 10) {\n calmonths = this.getTenMonths(calmonths);\n }\n return calYears + calmonths;\n }\n\n getMonthDiff(date1: { getFullYear: () => number; getMonth: () => number; },\n date2: { getFullYear: () => number; getMonth: () => number; }) {\n let Nomonths: number;\n Nomonths = (date2.getFullYear() - date1.getFullYear()) * 12;\n Nomonths -= date1.getMonth() + 1;\n Nomonths += date2.getMonth() + 1;\n // we should add + 1 to get correct month number\n return Nomonths <= 0 ? 0 : Nomonths;\n }\n\n getMinimumRetirementDate(commonData: any) {\n const curDt = new Date(commonData.currentDate);\n const normRtDt = new Date(commonData.normalRetirementDate);\n const earlyRtDt = new Date(commonData.earlyRetirementDate);\n const vestRtDt = new Date(commonData.vestedRetirementDate);\n let defaultWorkDate = new Date();\n if (commonData.earlyRetirementDate === null && commonData.vestedRetirementDate === null) {\n if (normRtDt > curDt) {\n defaultWorkDate = normRtDt;\n } else {\n defaultWorkDate = curDt;\n }\n } else if (commonData.earlyRetirementDate !== null && commonData.vestedRetirementDate !== null) {\n if (earlyRtDt < vestRtDt && earlyRtDt < normRtDt) {\n defaultWorkDate = earlyRtDt;\n } else if (normRtDt < vestRtDt && normRtDt < earlyRtDt) {\n defaultWorkDate = normRtDt;\n } else {\n defaultWorkDate = vestRtDt;\n }\n } else if (commonData.earlyRetirementDate !== null && commonData.vestedRetirementDate === null) {\n if (earlyRtDt < normRtDt) {\n defaultWorkDate = earlyRtDt;\n } else {\n defaultWorkDate = normRtDt;\n }\n } else if (commonData.earlyRetirementDate === null && commonData.vestedRetirementDate !== null) {\n if (vestRtDt < normRtDt) {\n defaultWorkDate = vestRtDt;\n } else {\n defaultWorkDate = normRtDt;\n }\n }\n\n if (defaultWorkDate < curDt) {\n defaultWorkDate = curDt;\n }\n return defaultWorkDate;\n }\n\n setPrepData(prepData: any, uniqueId: any) {\n const result = { id: uniqueId, data: prepData };\n let estimateData: any[] = this.getPrepData();\n if (estimateData === null) {\n const temp: any[] = [];\n temp.push(result);\n estimateData = temp;\n } else {\n if (estimateData.filter((item: any) => item.id === uniqueId).length === 0) {\n estimateData.push(result);\n }\n }\n sessionStorage.setItem('estimatePrepData', JSON.stringify(estimateData));\n }\n\n getPrepData(): [any] {\n if (sessionStorage.getItem('estimatePrepData') === null) {\n return null;\n } else {\n return JSON.parse(sessionStorage.getItem('estimatePrepData'));\n }\n }\n\n getEstimatePrepData(): any {\n const estimateData: any[] = this.getPrepData();\n const uniqueId = sessionStorage.getItem('tid');\n if (estimateData !== null) {\n return estimateData.filter((item: any) => item.id === uniqueId)[0].data;\n }\n return null;\n }\n\n calculateYearsAndMonths(totalMonths: number, divisor: number) {\n return {\n years: Math.floor(totalMonths / divisor),\n months: totalMonths % divisor\n };\n }\n\n getMonthsName() {\n const monthItems: Array<{ text: string, value: number; }> = [\n { text: 'January', value: 1 },\n { text: 'February', value: 2 },\n { text: 'March', value: 3 },\n { text: 'April', value: 4 },\n { text: 'May', value: 5 },\n { text: 'June', value: 6 },\n { text: 'July', value: 7 },\n { text: 'August', value: 8 },\n { text: 'September', value: 9 },\n { text: 'October', value: 10 },\n { text: 'November', value: 11 },\n { text: 'December', value: 12 }\n ];\n return monthItems;\n }\n\n\n getGender() {\n const genderItems: Array<{ gender: string, Id: number; }> = [\n { gender: 'Male', Id: 1 },\n { gender: 'Female', Id: 2 }\n ];\n return genderItems;\n }\n\n addMonths(source: Date, months: number): Date {\n const datePipe = new DatePipe('en-US');\n const dt = new Date(source);\n const mos = dt.getMonth() + months;\n return new Date(datePipe.transform(dt.setMonth(mos, 1), 'MM/dd/yyyy'));\n }\n\n handleError(error: HttpErrorResponse) {\n return throwError(error || 'Server error');\n }\n}\n","import { Injectable } from '@angular/core';\nimport {\n WizardData, MilitaryService, ServiceProjection,\n Navigation, RetirementDate, SalaryProjection, SickLeave, Beneficiary, Common\n} from '../../models/benefitEstimateWizard.model';\n\n@Injectable()\nexport class BenefitWizardService {\n\n private formData: WizardData = new WizardData();\n constructor() {\n this.setConstructor();\n }\n\n setConstructor() {\n this.formData.navigationData = new Navigation();\n this.formData.militaryData = new MilitaryService();\n this.formData.serviceProjData = new ServiceProjection();\n this.formData.rtDateData = new RetirementDate();\n this.formData.salaryProjData = new SalaryProjection();\n this.formData.sickLeaveData = new SickLeave();\n this.formData.beneficiaryData = new Beneficiary();\n this.formData.commonData = new Common();\n }\n\n setNavigation(data: Navigation) {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n if (this.formData !== null) {\n this.formData.navigationData.previousScreen = data.previousScreen;\n this.formData.navigationData.nextScreen = data.nextScreen;\n this.formData.navigationData.currentScreen = data.currentScreen;\n this.formData.navigationData.resetScreen = data.resetScreen;\n sessionStorage.setItem('wizardData', JSON.stringify(this.formData));\n }\n }\n\n getNavigation(): Navigation {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n let navigationData = new Navigation();\n if (this.formData !== null) {\n navigationData = {\n previousScreen: this.formData.navigationData.previousScreen,\n nextScreen: this.formData.navigationData.nextScreen,\n currentScreen: this.formData.navigationData.currentScreen,\n resetScreen: this.formData.navigationData.resetScreen\n };\n } else {\n this.formData = new WizardData();\n this.formData.navigationData = navigationData;\n sessionStorage.setItem('wizardData', JSON.stringify(this.formData));\n }\n return navigationData;\n }\n\n setMilitary(data: MilitaryService) {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n if (this.formData !== null) {\n this.formData.militaryData.priorYear = data.priorYear;\n this.formData.militaryData.priorMonth = data.priorMonth;\n this.formData.militaryData.duringYear = data.duringYear;\n this.formData.militaryData.duringMonth = data.duringMonth;\n this.formData.militaryData.startWizard = data.startWizard;\n this.formData.militaryData.selOption = data.selOption;\n sessionStorage.setItem('wizardData', JSON.stringify(this.formData));\n }\n }\n\n getMilitary(): MilitaryService {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n let militaryData = new MilitaryService();\n if (this.formData !== null) {\n militaryData = {\n priorYear: this.formData.militaryData.priorYear,\n priorMonth: this.formData.militaryData.priorMonth,\n duringYear: this.formData.militaryData.duringYear,\n duringMonth: this.formData.militaryData.duringMonth,\n startWizard: this.formData.militaryData.startWizard,\n selOption: this.formData.militaryData.selOption\n };\n } else {\n this.formData = new WizardData();\n this.formData.militaryData = militaryData;\n sessionStorage.setItem('wizardData', JSON.stringify(this.formData));\n }\n return militaryData;\n }\n\n setServiceProjection(data: ServiceProjection) {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n if (this.formData !== null) {\n this.formData.serviceProjData.workDate = data.workDate;\n this.formData.serviceProjData.workAge = data.workAge;\n this.formData.serviceProjData.stopWorkDate = data.stopWorkDate;\n this.formData.serviceProjData.selOption = data.selOption;\n sessionStorage.setItem('wizardData', JSON.stringify(this.formData));\n }\n }\n\n getServiceProjection(): ServiceProjection {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n let serviceProjData = new ServiceProjection();\n if (this.formData !== null) {\n serviceProjData = {\n workDate: this.formData.serviceProjData.workDate,\n workAge: this.formData.serviceProjData.workAge,\n stopWorkDate: this.formData.serviceProjData.stopWorkDate,\n selOption: this.formData.serviceProjData.selOption\n };\n }\n return serviceProjData;\n }\n\n setRetirementDate(data: RetirementDate) {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n if (this.formData !== null) {\n this.formData.rtDateData.rtDate = data.rtDate;\n this.formData.rtDateData.rtType = data.rtType;\n this.formData.rtDateData.benefitAmount = data.benefitAmount;\n this.formData.rtDateData.minDt = data.minDt;\n this.formData.rtDateData.maxDt = data.maxDt;\n this.formData.rtDateData.previousScreen = data.previousScreen;\n sessionStorage.setItem('wizardData', JSON.stringify(this.formData));\n }\n }\n\n getRetirementDate(): RetirementDate {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n let retirementDate = new RetirementDate();\n if (this.formData !== null && this.formData.rtDateData !== undefined) {\n retirementDate = {\n rtDate: this.formData.rtDateData.rtDate,\n rtType: this.formData.rtDateData.rtType,\n benefitAmount: this.formData.rtDateData.benefitAmount,\n minDt: this.formData.rtDateData.minDt,\n maxDt: this.formData.rtDateData.maxDt,\n previousScreen: this.formData.rtDateData.previousScreen\n };\n }\n return retirementDate;\n }\n\n setSalaryProjection(data: SalaryProjection) {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n if (this.formData !== null) {\n this.formData.salaryProjData.retDate = data.retDate;\n this.formData.salaryProjData.currentAFC = data.currentAFC;\n this.formData.salaryProjData.salIncreaseMonth = data.salIncreaseMonth;\n this.formData.salaryProjData.selSalaryPercentage = data.selSalaryPercentage;\n this.formData.salaryProjData.selOption = data.selOption;\n this.formData.salaryProjData.inputAFC = data.inputAFC;\n this.formData.salaryProjData.calculatedAFC = data.calculatedAFC;\n this.formData.salaryProjData.calculatedMonthlyAllowance = data.calculatedMonthlyAllowance;\n this.formData.salaryProjData.previousScreen = data.previousScreen;\n this.formData.salaryProjData.growthPercent = data.growthPercent;\n this.formData.salaryProjData.growthMonth = data.growthMonth;\n sessionStorage.setItem('wizardData', JSON.stringify(this.formData));\n }\n }\n\n getSalaryProjection(): SalaryProjection {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n let salaryData = new SalaryProjection();\n if (this.formData !== null) {\n salaryData = {\n retDate: this.formData.salaryProjData.retDate,\n currentAFC: this.formData.salaryProjData.currentAFC,\n salIncreaseMonth: this.formData.salaryProjData.salIncreaseMonth,\n selSalaryPercentage: this.formData.salaryProjData.selSalaryPercentage,\n selOption: this.formData.salaryProjData.selOption,\n inputAFC: this.formData.salaryProjData.inputAFC,\n calculatedAFC: this.formData.salaryProjData.calculatedAFC,\n calculatedMonthlyAllowance: this.formData.salaryProjData.calculatedMonthlyAllowance,\n previousScreen: this.formData.salaryProjData.previousScreen,\n growthPercent: this.formData.salaryProjData.growthPercent,\n growthMonth: this.formData.salaryProjData.growthMonth\n };\n } else {\n this.formData = new WizardData();\n this.formData.salaryProjData = salaryData;\n sessionStorage.setItem('wizardData', JSON.stringify(this.formData));\n }\n return salaryData;\n }\n\n setSickLeave(data: SickLeave) {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n if (this.formData !== null) {\n this.formData.sickLeaveData.selectedLeaves = data.selectedLeaves;\n this.formData.sickLeaveData.addService = data.addService;\n this.formData.sickLeaveData.addServiceMonths = data.addServiceMonths;\n this.formData.sickLeaveData.addAllowance = data.addAllowance;\n this.formData.sickLeaveData.totalService = data.totalService;\n this.formData.sickLeaveData.totalAllowance = data.totalAllowance;\n this.formData.sickLeaveData.previousScreen = data.previousScreen;\n sessionStorage.setItem('wizardData', JSON.stringify(this.formData));\n }\n }\n\n getSickLeave(): SickLeave {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n let leaveData = new SickLeave();\n if (this.formData !== null) {\n leaveData = {\n selectedLeaves: this.formData.sickLeaveData.selectedLeaves,\n addService: this.formData.sickLeaveData.addService,\n addServiceMonths: this.formData.sickLeaveData.addServiceMonths,\n addAllowance: this.formData.sickLeaveData.addAllowance,\n totalService: this.formData.sickLeaveData.totalService,\n totalAllowance: this.formData.sickLeaveData.totalAllowance,\n previousScreen: this.formData.rtDateData.previousScreen\n };\n }\n return leaveData;\n }\n\n setBeneficiary(data: Beneficiary) {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n if (this.formData !== null) {\n this.formData.beneficiaryData.dob = data.dob;\n this.formData.beneficiaryData.firstname = data.firstname;\n this.formData.beneficiaryData.lastname = data.lastname;\n this.formData.beneficiaryData.mi = data.mi;\n this.formData.beneficiaryData.gender = data.gender;\n this.formData.beneficiaryData.relationship = data.relationship;\n this.formData.beneficiaryData.selMarried = data.selMarried;\n this.formData.beneficiaryData.selOption = data.selOption;\n this.formData.beneficiaryData.estimateId = data.estimateId;\n this.formData.beneficiaryData.previousScreen = data.previousScreen;\n this.formData.beneficiaryData.benyRelationCode = data.benyRelationCode;\n sessionStorage.setItem('wizardData', JSON.stringify(this.formData));\n }\n }\n\n getBeneficiary(): Beneficiary {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n let beneficiaryData = new Beneficiary();\n if (this.formData !== null) {\n beneficiaryData = {\n dob: this.formData.beneficiaryData.dob,\n firstname: this.formData.beneficiaryData.firstname,\n mi: this.formData.beneficiaryData.mi,\n benyRelationCode: this.formData.beneficiaryData.benyRelationCode,\n lastname: this.formData.beneficiaryData.lastname,\n gender: this.formData.beneficiaryData.gender,\n relationship: this.formData.beneficiaryData.relationship,\n selMarried: this.formData.beneficiaryData.selMarried,\n selOption: this.formData.beneficiaryData.selOption,\n estimateId: this.formData.beneficiaryData.estimateId,\n previousScreen: this.formData.rtDateData.previousScreen\n };\n }\n return beneficiaryData;\n }\n\n setCommon(data: Common) {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n if (this.formData !== null) {\n this.formData.commonData.normalRetirementDate = data.normalRetirementDate;\n this.formData.commonData.birthDate = data.birthDate;\n this.formData.commonData.maxNormalRetirementDate = data.maxNormalRetirementDate;\n this.formData.commonData.earlyRetirementDate = data.earlyRetirementDate;\n this.formData.commonData.vestedRetirementDate = data.vestedRetirementDate;\n this.formData.commonData.SSIL = data.SSIL;\n this.formData.commonData.eligibilityService = data.eligibilityService;\n this.formData.commonData.creditableService = data.creditableService;\n this.formData.commonData.currentDate = data.currentDate;\n this.formData.commonData.AFCResult = data.AFCResult;\n this.formData.commonData.basicAllownance = data.basicAllownance;\n this.formData.commonData.planTierService = data.planTierService;\n this.formData.commonData.updatedERD = data.updatedERD;\n this.formData.commonData.updatedNRD = data.updatedNRD;\n this.formData.commonData.stopWorkDate = data.stopWorkDate;\n this.formData.commonData.updatedAFC = data.updatedAFC;\n this.formData.commonData.reducedInfo = data.reducedInfo;\n this.formData.commonData.maxSalLimit = data.maxSalLimit;\n sessionStorage.setItem('wizardData', JSON.stringify(this.formData));\n }\n }\n\n getCommon(): Common {\n this.formData = JSON.parse(sessionStorage.getItem('wizardData'));\n let commonData = new Common();\n if (this.formData !== null) {\n commonData = {\n normalRetirementDate: this.formData.commonData.normalRetirementDate,\n birthDate: this.formData.commonData.birthDate,\n maxNormalRetirementDate: this.formData.commonData.maxNormalRetirementDate,\n earlyRetirementDate: this.formData.commonData.earlyRetirementDate,\n vestedRetirementDate: this.formData.commonData.vestedRetirementDate,\n SSIL: this.formData.commonData.SSIL,\n eligibilityService: this.formData.commonData.eligibilityService,\n creditableService: this.formData.commonData.creditableService,\n currentDate: this.formData.commonData.currentDate,\n AFCResult: this.formData.commonData.AFCResult,\n basicAllownance: this.formData.commonData.basicAllownance,\n planTierService: this.formData.commonData.planTierService,\n updatedERD: this.formData.commonData.updatedERD,\n updatedNRD: this.formData.commonData.updatedNRD,\n stopWorkDate: this.formData.commonData.stopWorkDate,\n updatedAFC: this.formData.commonData.updatedAFC,\n reducedInfo: this.formData.commonData.reducedInfo,\n maxSalLimit: this.formData.commonData.maxSalLimit\n };\n } else {\n this.formData = new WizardData();\n this.formData.commonData = commonData;\n sessionStorage.setItem('wizardData', JSON.stringify(this.formData));\n }\n return commonData;\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { Global } from '../global';\r\nimport { ToastMessageService } from './toast-message.service';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { ReadConfigService } from './read-config.service';\r\n\r\n@Injectable()\r\nexport class DocumentService {\r\n\r\n uploadedFile: any;\r\n readonly rootUrl = this.readConfigService.getApiUrl();\r\n reqHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n errorMessage = this.readConfigService.getDocumentErrorMessage();\r\n errorSize = this.readConfigService.getDocumentMinSize();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private readConfigService: ReadConfigService,\r\n private toastService: ToastMessageService) { }\r\n\r\n getDocumentTypes(user: any): Observable {\r\n const inputData = { user };\r\n const url = this.rootUrl + Global.BASE_DOCUMENT_TYPES_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getTen99RList(user: any): Observable {\r\n const inputData = { user };\r\n const url = this.rootUrl + Global.BASE_TEN99R_LIST_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getPSBList(user: any): Observable {\r\n const inputData = { user };\r\n const url = this.rootUrl + Global.BASE_PSB_LIST_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getTen99R(Id: any, user: any, fileName: string): Observable {\r\n const inputData = {\r\n Id,\r\n user\r\n };\r\n fileName = '1099R ' + fileName + '.pdf';\r\n const url = this.rootUrl + Global.BASE_GENERATE_1099R_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader, responseType: 'blob' as 'json' })\r\n .pipe(map(res => {\r\n if (res && res.size > this.errorSize) {\r\n this.downloadFile(res, 'application/pdf', fileName);\r\n } else {\r\n this.toastService.getCustomErrorMessage(this.errorMessage);\r\n }\r\n }),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getPSB(Id: any, user: any, fileName: string): Observable {\r\n const inputData = {\r\n Id,\r\n user\r\n };\r\n fileName = 'Personal Statement of Benefits ' + fileName + '.pdf';\r\n const url = this.rootUrl + Global.BASE_GENERATE_PSB_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader, responseType: 'blob' as 'json' })\r\n .pipe(map(res => {\r\n if (res && res.size > this.errorSize) {\r\n this.downloadFile(res, 'application/pdf', fileName);\r\n } else {\r\n this.toastService.getCustomErrorMessage(this.errorMessage);\r\n }\r\n }),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getIncomeLetter(Id: any, letterType: any, accountId: any, user: any): Observable {\r\n const inputData = {\r\n Id,\r\n accountId,\r\n letterType,\r\n user\r\n };\r\n const fileName = 'IncomeVerficationLetter.pdf';\r\n const url = this.rootUrl + Global.BASE_INCOME_LETTER_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader, responseType: 'blob' as 'json' })\r\n .pipe(map(res => {\r\n if (res && res.size > this.errorSize) {\r\n this.downloadFile(res, 'application/pdf', fileName);\r\n } else {\r\n this.toastService.getCustomErrorMessage(this.errorMessage);\r\n }\r\n }),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getAssetLetter(Id: any, FiscalYear: any, LetterType: any, AccountId: any, user: any): Observable {\r\n const inputData = {\r\n Id,\r\n FiscalYear,\r\n AccountId,\r\n LetterType,\r\n user\r\n };\r\n const fileName = 'AssetVerficationLetter.pdf';\r\n const url = this.rootUrl + Global.BASE_ASSET_LETTER_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader, responseType: 'blob' as 'json' })\r\n .pipe(map(res => {\r\n if (res && res.size > this.errorSize) {\r\n this.downloadFile(res, 'application/pdf', fileName);\r\n } else {\r\n this.toastService.getCustomErrorMessage(this.errorMessage);\r\n }\r\n }),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n compareEstimateLetter(ids: any, user: any): Observable {\r\n const inputData = {\r\n ids,\r\n user\r\n };\r\n const fileName = 'CompareEstimateLetter.pdf';\r\n const url = this.rootUrl + Global.BASE_COMPARE_ESTIMATE_LETTER_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader, responseType: 'blob' as 'json' })\r\n .pipe(map(res => {\r\n if (res && res.size > this.errorSize) {\r\n this.downloadFile(res, 'application/pdf', fileName);\r\n } else {\r\n this.toastService.getCustomErrorMessage(this.errorMessage);\r\n }\r\n }),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n generateEstimateLetter(estID: any, accountId: any, user: any): Observable {\r\n const inputData = {\r\n estID,\r\n accountId,\r\n user\r\n };\r\n const fileName = 'EstimateLetter.pdf';\r\n const url = this.rootUrl + Global.BASE_ESTIMATE_LETTER_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader, responseType: 'blob' as 'json' })\r\n .pipe(map(res => {\r\n if (res && res.size > this.errorSize) {\r\n this.downloadFile(res, 'application/pdf', fileName);\r\n } else {\r\n this.toastService.getCustomErrorMessage(this.errorMessage);\r\n }\r\n }),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getMyDocument(docId: any, user: any, fileName: string): Observable {\r\n const inputData = {\r\n docId,\r\n user\r\n };\r\n const url = this.rootUrl + Global.BASE_GET_DOCUMENT_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader, responseType: 'blob' as 'json' })\r\n .pipe(map(res => {\r\n if (res && res.size > this.errorSize) {\r\n this.downloadFile(res, 'application/pdf', fileName);\r\n } else {\r\n this.toastService.getCustomErrorMessage(this.errorMessage);\r\n }\r\n }),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getMyDocuments(accountId: any, user: any): Observable {\r\n const inputData = {\r\n accountId,\r\n user\r\n };\r\n const url = this.rootUrl + Global.BASE_GET_DOCUMENTS_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getTaxWithholdingLetter(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_TAXWITHHOLDING_LETTER_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader, responseType: 'blob' as 'json' })\r\n .pipe(map((response: any) => response && response.size > this.errorSize ? window.URL.createObjectURL(response) : null),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getFedTaxWithholdingLetter(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_FED_TAXWITHHOLDING_LETTER_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader, responseType: 'blob' as 'json' })\r\n .pipe(map((response: any) => response && response.size > this.errorSize ? window.URL.createObjectURL(response) : null),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getStateTaxWithholdingLetter(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_STATE_TAXWITHHOLDING_LETTER_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader, responseType: 'blob' as 'json' })\r\n .pipe(map((response: any) => response && response.size > this.errorSize ? window.URL.createObjectURL(response) : null),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getDesignateBeneLetter(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_DESIGNATE_BENE_LETTER_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader, responseType: 'blob' as 'json' })\r\n .pipe(map((response: any) => response && response.size > this.errorSize ? window.URL.createObjectURL(response) : null),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getDirectDepositLetter(inputData: any, file: any): Observable {\r\n const formData: FormData = new FormData();\r\n formData.append('userInfo', inputData);\r\n formData.append('uploadFile', file.rawFile);\r\n const headers = new HttpHeaders();\r\n headers.append('Content-Type', 'multipart/form-data');\r\n const url = this.rootUrl + Global.BASE_PREVIEW_DIRECT_DEPOSIT_ENDPOINT;\r\n return this.http.post(url, formData, { headers, responseType: 'blob' as 'json' })\r\n .pipe(map((response: any) => response && response.size > this.errorSize ? window.URL.createObjectURL(response) : null),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getMergedDocuments(docInfo: any, user: any, fileName: string): Observable {\r\n const inputData = {\r\n docInfo,\r\n user\r\n };\r\n const url = this.rootUrl + Global.BASE_GET_MERGED_DOCUMENT_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader, responseType: 'blob' as 'json' })\r\n .pipe(map(res => {\r\n if (res && res.size > this.errorSize) {\r\n this.downloadFile(res, 'application/pdf', fileName);\r\n } else {\r\n this.toastService.getCustomErrorMessage(this.errorMessage);\r\n }\r\n }),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n saveFileUpload(file: any) {\r\n this.uploadedFile = file;\r\n }\r\n\r\n getFileUpload() {\r\n return this.uploadedFile;\r\n }\r\n\r\n downloadFile(blob: any, type: string, filename: string): string {\r\n const url = window.URL.createObjectURL(blob); // <-- work with blob directly\r\n // IE & Edge\r\n if ((window.navigator as any).msSaveOrOpenBlob) {\r\n // msSaveBlob only available for IE & Edge\r\n (window.navigator as any).msSaveOrOpenBlob(blob, filename);\r\n } else {\r\n // create hidden dom element (so it works in all browsers)\r\n // const data = window.URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = filename;\r\n link.click();\r\n setTimeout(() => {\r\n // For Firefox it is necessary to delay revoking the ObjectURL\r\n window.URL.revokeObjectURL(url);\r\n }, 100);\r\n }\r\n return url;\r\n }\r\n\r\n handleError(error: HttpErrorResponse) {\r\n return throwError(error || 'Server error');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { Router, NavigationEnd } from '@angular/router';\n// tslint:disable-next-line: ban-types\ndeclare var ga: Function;\n\n@Injectable()\nexport class GoogleAnalyticsService {\n constructor(public router: Router) {\n this.router.events.subscribe(event => {\n try {\n if (typeof ga === 'function') {\n if (event instanceof NavigationEnd) {\n ga('set', 'page', event.urlAfterRedirects);\n ga('send', 'pageview');\n }\n }\n } catch (e) {\n console.log(e);\n }\n });\n }\n\n /**\n * @description\n * Emit google analytics event\n */\n public emitEvent(eventCategory: string,\n eventAction: string,\n eventLabel: string = null,\n eventValue: number = null) {\n if (typeof ga === 'function') {\n ga('send', 'event', {\n eventCategory,\n eventLabel,\n eventAction,\n eventValue\n });\n }\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { Global } from '../global';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { ReadConfigService } from './read-config.service';\r\n\r\n@Injectable()\r\nexport class MemberService {\r\n constructor(private http: HttpClient,\r\n private readConfigService: ReadConfigService) {\r\n }\r\n readonly rootUrl = this.readConfigService.getApiUrl();\r\n reqHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n\r\n getMemberDetails(uniqueId: any, fiscalYear: any, user: any): Observable {\r\n const inputData = {\r\n uniqueId,\r\n fiscalYear,\r\n user\r\n };\r\n const url = this.rootUrl + Global.BASE_MEMBER_DETAILS_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getWithdrawnDetails(uniqueId: any, fiscalYear: any, user: any): Observable {\r\n const inputData = {\r\n uniqueId,\r\n fiscalYear,\r\n user\r\n };\r\n const url = this.rootUrl + Global.BASE_WITHDRAWN_DETAILS_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getMemberTotals(uniqueId: any, fiscalYear: any, user: any): Observable {\r\n const inputData = {\r\n uniqueId,\r\n fiscalYear,\r\n user\r\n };\r\n const url = this.rootUrl + Global.BASE_MEMBER_TOTALS_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getAssetOutage(user: any): Observable {\r\n const inputData = {\r\n user\r\n };\r\n const url = this.rootUrl + Global.BASE_GET_ASSET_OUTAGE_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n handleError(error: HttpErrorResponse) {\r\n return throwError(error || 'Server error');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { HttpClient, HttpParams } from '@angular/common/http';\nimport { Observable, throwError, of } from 'rxjs';\nimport { HttpHeaders, HttpErrorResponse } from '@angular/common/http';\nimport { Global } from '../global';\nimport { map, catchError } from 'rxjs/operators';\nimport { ReadConfigService } from './read-config.service';\n\n@Injectable()\nexport class MessagesService {\n\n constructor(private http: HttpClient,\n private readConfigService: ReadConfigService) { }\n\n readonly rootUrl = this.readConfigService.getApiUrl();\n reqHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\n\n getMessageTopics(): Observable {\n const url = this.rootUrl + Global.BASE_GET_MESSAGETOPICS_ENDPOINT;\n return this.http.get(url, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getSecureMessages(user: any): Observable {\n const inputData = { user };\n const url = this.rootUrl + Global.BASE_GET_SECUREMESSAGES_ENDPOINT;\n return this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n sendMessage(message: any, user: any): Observable {\n const inputData = {\n message,\n user\n };\n const url = this.rootUrl + Global.BASE_SEND_MESSAGE_ENDPOINT;\n return this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n readMessage(msgId: any): Observable {\n const params = new HttpParams()\n .set('msgId', msgId);\n const url = this.rootUrl + Global.BASE_READ_MESSAGE_ENDPOINT;\n return this.http.get(url, { headers: this.reqHeader, params })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n deleteMessage(msgIds: any, user: any): Observable {\n const inputData = {\n msgIds,\n user\n };\n const url = this.rootUrl + Global.BASE_DELETE_MESSAGE_ENDPOINT;\n return this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getUnreadMessageCount(user: any): Observable {\n const inputData = { user };\n const url = this.rootUrl + Global.BASE_GET_UNREADMESSAGE_COUNT_ENDPOINT;\n return user.userId ? this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err))) : of({});\n }\n\n handleError(error: HttpErrorResponse) {\n return throwError(error || 'Server error');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Observable, throwError } from 'rxjs';\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\nimport { Global } from '../global';\nimport { map, catchError } from 'rxjs/operators';\nimport { ReadConfigService } from './read-config.service';\n\n@Injectable()\nexport class MysrpsAppService {\n\n constructor(\n private http: HttpClient,\n private readConfigService: ReadConfigService) { }\n\n readonly rootUrl = this.readConfigService.getApiUrl();\n reqHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\n\n createTransactionLog(inputData: any): Observable {\n const url = this.rootUrl + Global.BASE_CREATE_TRANSACTION_LOG_ENDPOINT;\n return this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getStates(): Observable {\n const url = this.rootUrl + Global.BASE_GET_STATE_CODES_ENDPOINT;\n return this.http.get(url, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getSecurityQuestions(): Observable {\n const url = this.rootUrl + Global.BASE_GET_SECURITY_QUESTIONS_ENDPOINT;\n return this.http.get(url, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n saveFeedback(feedback: any, user: any): Observable {\n const data = {\n feedback,\n user\n };\n const body = JSON.stringify(data);\n const url = this.rootUrl + Global.BASE_GET_FEEDBACK_SAVE_ENDPOINT;\n return this.http.post(url, body, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getViewBeneData(uniqueId: any, benyType: any, user: any): Observable {\n const data = {\n uniqueId,\n benyType,\n user\n };\n const body = JSON.stringify(data);\n const url = this.rootUrl + Global.BASE_GET_BENE_INFO_ENDPOINT;\n return this.http.post(url, body, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getUserAddress(user: any): Observable {\n const body = JSON.stringify({ user });\n const url = this.rootUrl + Global.BASE_GET_USER_ADDRESS_ENDPOINT;\n return this.http.post(url, body, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n setBeneData(data: any) {\n sessionStorage.setItem('beneData', JSON.stringify(data));\n }\n\n getBeneData() {\n return JSON.parse(sessionStorage.getItem('beneData'));\n }\n\n updateBeneficiaries(user: any, form4Data: any) {\n const inputData = { user, form4Data };\n const url = this.rootUrl + Global.BASE_CHANGE_BENE_ENDPOINT;\n return this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n getFeedbackOutage(user: any): Observable {\n const inputData = {\n user\n };\n const url = this.rootUrl + Global.BASE_GET_FEEDBACK_OUTAGE_ENDPOINT;\n return this.http.post(url, inputData, { headers: this.reqHeader })\n .pipe(map((response: any) => response),\n catchError(err => this.handleError(err)));\n }\n\n handleError(error: HttpErrorResponse) {\n return throwError(error || 'Server error');\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AppConfigService } from '../../app-config.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ReadConfigService {\n\n\n constructor(private appConfig: AppConfigService) { }\n\n config: any = this.appConfig.getConfig();\n\n // common\n getApiUrl(): string {\n return this.config ? this.config.API_URL : '';\n }\n\n // key does not exist in appConfig\n getApiTimeout(): number {\n return this.config ? this.config.ApiTimeout : 300;\n }\n\n // mysrps\n getOptionDescription() {\n return this.config.OptionDescription;\n }\n\n getFeedbackText(): any {\n return this.config.Feedback;\n }\n\n getSecQnsNotifText(): any {\n return this.config.SecQnsNotif;\n }\n\n getOutageScheduledDetails(): any {\n return this.appConfig.getScheduledMaintenance();\n }\n\n getFooterLinks() {\n return this.config.FooterLinks;\n }\n\n getSecuMessagesText() {\n return this.config.SecureMessages;\n }\n\n getOutageText() {\n return this.config.OutageText;\n }\n\n getForbiddenText() {\n return this.config.ForbiddenText;\n }\n\n getUnauthorizedUserText() {\n return this.config.UnauthorizedUserText;\n }\n\n getServiceErrorText() {\n return this.config.ServiceError;\n }\n\n getDROPRoleText() {\n return this.config.DROPRole;\n }\n\n getOPRText() {\n return this.config.ORPFlag;\n }\n\n getEmailText() {\n return this.config.EmailText;\n }\n\n getFrozenUserText() {\n return this.config.FrozenUserText;\n }\n\n getSuspendedUserText() {\n return this.config.SuspendUserText;\n }\n\n getProfileText(task: string) {\n return this.config.UserProfile[task];\n }\n\n getCRMCaseType(type: string) {\n return this.config.CRMCaseTypes[type];\n }\n\n getCRMCaseDesc(type: string) {\n return this.config.CRMCaseDescriptions[type];\n }\n\n getTransactionType(type: string) {\n return this.config.TransactionLogtypes[type];\n }\n\n getAppIdleTimeout(type: string) {\n return this.config.AppIdleTimeout[type];\n }\n\n getUserProfileSideTasks() {\n return this.config.UserProfileSideTasks;\n }\n\n getViewBeneText() {\n return this.config.ViewBeneficiary;\n }\n\n getLoginRedirectTime() {\n return this.config.LoginRedirectTime;\n }\n\n getMobileScrollMessage() {\n return this.config.MobileScrollMessage;\n }\n\n getAddressPlaceholder() {\n return this.config.AddressPlaceholder;\n }\n\n // documents\n\n getDocumentErrorMessage() {\n return this.config ? this.config.DocumentErrorMessage : '';\n }\n\n getDocumentMinSize() {\n return this.config ? this.config.ResponseSize : 100;\n }\n\n getDocumentsText(): any {\n return this.config.Documents;\n }\n\n getDisclaimer(): any {\n return this.config.Disclaimer;\n }\n\n getLetterHeading(): any {\n return this.config.letterHeading;\n }\n\n // member\n\n getVaPsbMessage() {\n return this.appConfig.getDbConfigValues('General') ? this.appConfig.getDbConfigValues('General').vaPsbMessage : '';\n }\n\n getMdPsbMessage() {\n return this.appConfig.getDbConfigValues('General') ? this.appConfig.getDbConfigValues('General').mdPsbMessage : '';\n }\n\n getHandbookUrls(): any {\n return this.config.handbook;\n }\n\n getWithdrawnMessage() {\n return this.config.WithdrawnMessage;\n }\n\n // retiree\n getTaxWithholdingText(): any {\n return this.config.TaxWithholding;\n }\n\n getW4TextFromDB() {\n return this.appConfig.getDbConfigValues('UpdateFederalTax');\n }\n\n getDeductionMappings() {\n return this.config.DeductionMappings;\n }\n\n getVa1099RMessage() {\n return this.appConfig.getDbConfigValues('General') ? this.appConfig.getDbConfigValues('General').va1099RMessage : '';\n }\n\n getMd1099RMessage() {\n return this.appConfig.getDbConfigValues('General') ? this.appConfig.getDbConfigValues('General').md1099RMessage : '';\n }\n\n getUpdateDirectDeposit() {\n return this.appConfig.getDbConfigValues('UpdateDirectDeposit');\n }\n\n getSAConfig() {\n return this.appConfig.getDbConfigValues('SA');\n }\n\n // benefit estimates\n\n getSavedEstimatesText(): any {\n return this.config.BenefitEstimates.SavedEstimates;\n }\n\n getTermsandConditionsText(): any {\n return this.config.BenefitEstimates.TermsAndConditions;\n }\n\n getTransactionLog(): any {\n return this.config.BenefitEstimates.TransactionLog;\n }\n\n getMonthlyBasicText(): any {\n return this.config.BenefitEstimates.MonthlyBasicAllowance;\n }\n\n getMilitaryServiceText(): any {\n return this.config.BenefitEstimates.MilitaryService;\n }\n\n getServiceProjText(): any {\n return this.config.BenefitEstimates.ServiceProjection;\n }\n\n getRetirementDateText(): any {\n return this.config.BenefitEstimates.RetirementDate;\n }\n\n getSalaryProjText(): any {\n return this.config.BenefitEstimates.SalaryProjection;\n }\n\n getSickLeaveText(): any {\n return this.config.BenefitEstimates.UnusedSickLeave;\n }\n\n getBeneficiaryText(): any {\n return this.config.BenefitEstimates.Beneficiary;\n }\n\n getFinalEstimateText(): any {\n return this.config.BenefitEstimates.FinalEstimate;\n }\n\n getEstimateLinkTexts(): any {\n return this.config.BenefitEstimates.EstimateLinkTexts;\n }\n\n getHandbookUrl(): any {\n return this.config.HandbookUrl;\n }\n\n getMemeberViewTextFromDB() {\n return this.appConfig.getDbConfigValues('MemberViewAccount');\n }\n\n readAppInsightKey() {\n return this.config.AppInsightKey;\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse, HttpParams } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { Global } from '../global';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { ReadConfigService } from './read-config.service';\r\nimport { FedTaxDetailsAPI } from '../../models/FederalTaxDetails.model';\r\n\r\n@Injectable()\r\nexport class RetireeService {\r\n system: any;\r\n location: any;\r\n constructor(private http: HttpClient,\r\n private readConfigService: ReadConfigService) {\r\n }\r\n\r\n readonly rootUrl = this.readConfigService.getApiUrl();\r\n reqHeader = new HttpHeaders({ 'Content-Type': 'application/json' });\r\n apiTimeout = this.readConfigService.getApiTimeout();\r\n\r\n getRetireeDetails(uniqueId: any, user: any): Observable {\r\n const inputData = {\r\n uniqueId,\r\n user\r\n };\r\n const url = this.rootUrl + Global.BASE_RETIREE_DETAILS_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getPaymentHistory(location: any, system: any, user: any): Observable {\r\n const inputData = {\r\n location,\r\n system,\r\n user\r\n };\r\n const url = this.rootUrl + Global.BASE_PAYMENT_HISTORY_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getTaxWithholding(uniqueId: any, user: any): Observable {\r\n const inputData = {\r\n uniqueId,\r\n user\r\n };\r\n const url = this.rootUrl + Global.BASE_GET_TAXWITHHOLDING_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getFedTaxWithholding(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_GET_FEDTAXWITHHOLDING_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getStateTaxWithholding(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_GET_STATETAXWITHHOLDING_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n calculateTaxWithholding(adjustedGross: any, fedExemptions: any, maritalStatus: any, user: any): Observable {\r\n const inputData = {\r\n adjustedGross,\r\n fedExemptions,\r\n maritalStatus,\r\n user\r\n };\r\n const url = this.rootUrl + Global.BASE_CALCULATE_TAXWITHHOLDING_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n calculateFedTaxWithholding(inputData: FedTaxDetailsAPI, userInfo: any): Observable {\r\n const url = this.rootUrl + Global.BASE_CALCULATE_FEDTAXWITHHOLDING_ENDPOINT;\r\n return this.http.post(url, { input: inputData , user: userInfo }, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n updateFedTaxWithholding(inputData: any): Observable {\r\n const reqHeader = new HttpHeaders({\r\n 'Content-Type': 'application/json'\r\n });\r\n \r\n const url = this.rootUrl + Global.BASE_UPDATE_FEDTAXWITHHOLDING_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: reqHeader })\r\n .pipe(map((response: any) => response)\r\n ,catchError(err => this.handleError(err)));\r\n }\r\n\r\n updateTaxWithholding(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_UPDATE_TAXWITHHOLDING_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n updateStateTaxWithholding(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_UPDATE_STATETAXWITHHOLDING_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getDeductions(record: any): any {\r\n const props = Object.keys(record);\r\n const deductionMappings = this.readConfigService.getDeductionMappings();\r\n const result: any[] = [];\r\n const fedTax: any = {\r\n name: deductionMappings.federalTaxes,\r\n value: record.federalTaxes === null ? 0.00 : record.federalTaxes\r\n };\r\n const stateTax: any = {\r\n name: deductionMappings.mdStateTaxes,\r\n value: record.mdStateTaxes === null ? 0.00 : record.mdStateTaxes\r\n };\r\n result.push(fedTax);\r\n result.push(stateTax);\r\n props.forEach(element => {\r\n if (element !== 'federalTaxes' && element !== 'mdStateTaxes' &&\r\n deductionMappings[element] !== undefined && record[element] !== 0) {\r\n const item = {\r\n name: deductionMappings[element],\r\n value: record[element]\r\n };\r\n result.push(item);\r\n }\r\n });\r\n return result;\r\n }\r\n\r\n getIncomeOutage(user: any): Observable {\r\n const inputData = { user };\r\n const url = this.rootUrl + Global.BASE_GET_INCOME_OUTAGE_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getDirectDepositOutage(user: any): Observable {\r\n const inputData = { user };\r\n const url = this.rootUrl + Global.BASE_GET_DD_OUTAGE_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getBankName(data: any): Observable {\r\n const url = this.rootUrl + Global.BASE_GET_BANK_NAME_ENDPOINT;\r\n return this.http.post(url, data, { headers: this.reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n updateDirectDepositInfo(data: any, file: any): Observable {\r\n const formData: FormData = new FormData();\r\n formData.append('userInfo', data);\r\n formData.append('uploadFile', file.rawFile);\r\n const headers = new HttpHeaders();\r\n headers.append('Content-Type', 'multipart/form-data');\r\n const url = this.rootUrl + Global.BASE_UPDATE_DIRECT_DEPOSIT_INFO_ENDPOINT;\r\n return this.http.post(url, formData, { headers })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n handleError(error: HttpErrorResponse) {\r\n return throwError(error || 'Server error');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SetStyleService {\n\n constructor() {\n }\n\n setPanelBarStyle(name: any) {\n // set style for non mobile size screen\n if (window.innerWidth > 900) {\n const panel = document.getElementById('account-nav') as HTMLElement | null;\n if (!panel) return;\n const items = panel.querySelectorAll('.k-link');\n items.forEach(item => item.classList.toggle('k-selected', item.textContent === name));\n } else {\n // when mobile screen size, need to set style manually for non click navigation to panel bar item\n const displayItem = document.getElementById('navDropdown');\n const selected = displayItem ? displayItem.querySelectorAll('.k-input-value-text') : null;\n if (selected) {\n selected[0].textContent = name;\n }\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { AppConfigService } from '../../app-config.service';\nimport { NotificationService } from '@progress/kendo-angular-notification';\n\n@Injectable()\nexport class ToastMessageService {\n\n config = this.appConfigService.getConfig() ? this.appConfigService.getConfig().ToastrMessages : null;\n tryAgainText = this.config ? this.config.TryAgainText : '';\n errorHideAfter = this.config ? this.config.Error.HideAfter : 10000;\n warnignHideAfter = this.config ? this.config.Warning.HideAfter : 10000;\n successHideAfter = this.config ? this.config.Success.HideAfter : 10000;\n constructor(\n private appConfigService: AppConfigService,\n private notificationService: NotificationService) { }\n\n getErrorMessage() {\n const notifInstance = this.notificationService.show({\n content: this.config ? this.config.Error.Message : '',\n position: { horizontal: 'left', vertical: 'top' },\n animation: { type: 'fade', duration: 400 },\n type: { style: 'error', icon: false },\n closable: true\n });\n\n setTimeout(() => {\n if (notifInstance) {\n notifInstance.hide();\n }\n }, this.errorHideAfter);\n }\n\n getCustomErrorMessage(message: string, showTryAgain?: boolean) {\n const notifInstance = this.notificationService.show({\n content: showTryAgain ? message + this.tryAgainText : message,\n position: { horizontal: 'left', vertical: 'top' },\n animation: { type: 'fade', duration: 400 },\n type: { style: 'error', icon: false },\n closable: true\n });\n\n setTimeout(() => {\n if (notifInstance) {\n notifInstance.hide();\n }\n }, this.errorHideAfter);\n }\n\n getWarningMessage() {\n const notifInstance = this.notificationService.show({\n content: this.config.Warning.Message,\n position: { horizontal: 'left', vertical: 'top' },\n animation: { type: 'fade', duration: 400 },\n type: { style: 'warning', icon: false },\n closable: true\n });\n\n setTimeout(() => {\n if (notifInstance) {\n notifInstance.hide();\n }\n }, this.warnignHideAfter);\n }\n\n getSuccessMessage() {\n const notifInstance = this.notificationService.show({\n content: this.config.Success.Message,\n position: { horizontal: 'left', vertical: 'top' },\n animation: { type: 'fade', duration: 400 },\n type: { style: 'success', icon: false },\n closable: true\n });\n\n setTimeout(() => {\n if (notifInstance) {\n notifInstance.hide();\n }\n }, this.successHideAfter);\n }\n\n getCustomSuccessMessage(message: string) {\n const notifInstance = this.notificationService.show({\n content: message,\n position: { horizontal: 'left', vertical: 'top' },\n animation: { type: 'fade', duration: 400 },\n type: { style: 'success', icon: false },\n closable: true\n });\n\n setTimeout(() => {\n if (notifInstance) {\n notifInstance.hide();\n }\n }, this.successHideAfter);\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse, HttpResponse } from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { User } from '../../models/user.model';\r\nimport { AppConfigService } from '../../app-config.service';\r\nimport { Global } from '../global';\r\nimport * as CryptoJS from 'crypto-js';\r\nimport { map, catchError } from 'rxjs/operators';\r\nimport { Router } from '@angular/router';\r\n\r\n\r\n@Injectable()\r\nexport class UserService {\r\n account: any;\r\n userProfile: any;\r\n userSecQns = [];\r\n\r\n constructor(private http: HttpClient, private appConfig: AppConfigService, private router: Router) { }\r\n\r\n config: any = this.appConfig.getConfig();\r\n readonly rootUrl = this.config ? this.config.API_URL : '';\r\n readonly cryptoKey = 'msra';\r\n reqHeaderJson = new HttpHeaders({\r\n 'Content-Type': 'application/json'\r\n });\r\n\r\n registerUser(user: User): Observable {\r\n const body = JSON.stringify(user);\r\n const reqHeader = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'No-Auth': 'True'\r\n });\r\n return this.http.post(this.rootUrl + Global.BASE_ACCOUNTS_REGISTER_ENDPOINT,\r\n body, { headers: reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n login(userName: any, password: any): Observable {\r\n const headers = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n 'No-Auth': 'True'\r\n });\r\n const data = JSON.stringify({ userName, password });\r\n return this.http\r\n .post(\r\n this.rootUrl + Global.BASE_AUTH_LOGIN_ENDPOINT,\r\n data, { headers }\r\n )\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getUserClaims(): any {\r\n if (sessionStorage.getItem('id_token') === null || sessionStorage.getItem('id_token') === undefined) {\r\n return null;\r\n }\r\n let claims: any;\r\n if (sessionStorage.getItem('id_token_claims_obj') === '\"\"') {\r\n claims = JSON.parse(window.atob(sessionStorage.getItem('id_token').split('.')[1]));\r\n } else {\r\n if (sessionStorage.getItem('id_token_claims_obj') !== null) {\r\n claims = JSON.parse(sessionStorage.getItem('id_token_claims_obj'));\r\n } else {\r\n claims = JSON.parse(window.atob(sessionStorage.getItem('id_token').split('.')[1]));\r\n }\r\n }\r\n return {\r\n firstName: claims.given_name,\r\n lastName: claims.family_name,\r\n middleInitial: claims.middle_name ? claims.middle_name : '',\r\n status: claims.status,\r\n userName: claims.sub,\r\n mskUser: claims.axftpkv\r\n };\r\n }\r\n\r\n getUserInputData(skipCheck?: boolean): any {\r\n const mskUser = sessionStorage.getItem('mskUser');\r\n const pId = sessionStorage.getItem('personId');\r\n const userId = sessionStorage.getItem('userId');\r\n if (!skipCheck) {\r\n if (!mskUser || !pId || !userId) {\r\n this.router.navigate(['/forbidden']);\r\n }\r\n }\r\n return {\r\n userId,\r\n pId,\r\n mskUser\r\n };\r\n }\r\n\r\n getAllRoles(): Observable {\r\n const reqHeader = new HttpHeaders({ 'No-Auth': 'True' });\r\n return this.http.get(this.rootUrl + Global.BASE_ACCOUNTS_GETROLES_ENDPOINT,\r\n { headers: reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getRoleTasks(role: any): Observable {\r\n const inputData = {\r\n role\r\n };\r\n const url = this.rootUrl + Global.BASE_ROLE_TASKS_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeaderJson })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n roleMatch(allowedRoles: any): boolean {\r\n let isMatch = false;\r\n const roles = this.decryptText(sessionStorage.getItem('userRoles'));\r\n const userRoles: string[] = roles.split(',');\r\n allowedRoles.forEach((element: any) => {\r\n if (userRoles.indexOf(element) > -1) {\r\n isMatch = true;\r\n return false;\r\n }\r\n });\r\n return isMatch;\r\n }\r\n\r\n getUserSession(): any {\r\n const accounts = JSON.parse(this.decryptText(sessionStorage.getItem('userAccounts')));\r\n const roles = this.decryptText(sessionStorage.getItem('userRoles'));\r\n const sessionData = {\r\n personId: this.getUserInputData().pId,\r\n userRoles: roles,\r\n userAccounts: JSON.parse(accounts),\r\n mskUser: this.getUserInputData().mskUser,\r\n userId: this.getUserInputData().userId\r\n };\r\n return sessionData;\r\n }\r\n\r\n setUserSession(data: any) {\r\n sessionStorage.setItem('logInTime', new Date().toString());\r\n sessionStorage.setItem('userRoles', this.encryptText(data.role));\r\n sessionStorage.setItem('userAccounts', this.encryptText(JSON.stringify(JSON.stringify(data.accounts))));\r\n sessionStorage.setItem('personId', data.prId.toString());\r\n sessionStorage.setItem('userId', data.userId.toString());\r\n sessionStorage.setItem('mskUser', data.mskUser.toString());\r\n }\r\n\r\n setSelectedAccount(accountType: any) {\r\n sessionStorage.setItem('selectedAccount', this.encryptText(JSON.stringify(accountType)));\r\n }\r\n\r\n getSelectedAccount() {\r\n if (sessionStorage.getItem('selectedAccount') !== null) {\r\n return this.account = JSON.parse(this.decryptText(sessionStorage.getItem('selectedAccount')));\r\n }\r\n return null;\r\n }\r\n\r\n getMDSAccount(user: any): Observable {\r\n const inputData = { user };\r\n const url = this.rootUrl + Global.BASE_GET_MDSACCOUNT_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeaderJson })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n setMdsAccountId(id: any) {\r\n sessionStorage.setItem('mdsAccountId', id);\r\n }\r\n\r\n getMdsAccountId() {\r\n if (sessionStorage.getItem('mdsAccountId') === null) {\r\n this.getMDSAccount(this.getUserInputData()).subscribe((data: any) => {\r\n if (data.result) {\r\n this.setMdsAccountId(data.result);\r\n return data.result;\r\n }\r\n },\r\n (err: HttpErrorResponse) => {\r\n console.log(err);\r\n });\r\n } else {\r\n return sessionStorage.getItem('mdsAccountId');\r\n }\r\n }\r\n\r\n setTileId(data: string) {\r\n sessionStorage.setItem('tid', data);\r\n }\r\n\r\n getTileId(): string {\r\n return sessionStorage.getItem('tid');\r\n }\r\n\r\n getUserName(): any {\r\n if (sessionStorage.getItem('access_token') === null) {\r\n return '';\r\n }\r\n const claims = JSON.parse(window.atob(sessionStorage.getItem('access_token').split('.')[1]));\r\n return claims.sub;\r\n }\r\n\r\n getUserDetails(userName: any): Observable {\r\n const inputData = {\r\n userName\r\n };\r\n const reqHeader = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n Pragma: 'no-cache'\r\n });\r\n const url = this.rootUrl + Global.BASE_USER_CLAIMS_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getUserAccounts(userName: any): Observable {\r\n const inputData = {\r\n userName\r\n };\r\n const reqHeader = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n Pragma: 'no-cache'\r\n });\r\n const url = this.rootUrl + Global.BASE_ACCOUNTS_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getLastLoginTime() {\r\n const claims = JSON.parse(window.atob(sessionStorage.getItem('access_token').split('.')[1]));\r\n return claims.nbf;\r\n }\r\n\r\n setLastLogInInfo(userName: any, logInTime: any): Observable {\r\n const inputData = {\r\n username: userName,\r\n lastlogin: logInTime\r\n };\r\n const reqHeader = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n Pragma: 'no-cache'\r\n });\r\n const url = this.rootUrl + Global.BASE_ACCOUNTS_SET_LASTLOGIN_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getUserStatus(userName: any): Observable {\r\n const inputData = {\r\n userName\r\n };\r\n const reqHeader = new HttpHeaders({\r\n 'Content-Type': 'application/json',\r\n Pragma: 'no-cache'\r\n });\r\n const url = this.rootUrl + Global.BASE_USER_STATUS_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: reqHeader })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getUserProfile(): Observable {\r\n const inputData = {\r\n user: this.getUserInputData()\r\n };\r\n const url = this.rootUrl + Global.BASE_USER_PROFILE_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeaderJson })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n setProfile(data: any) {\r\n this.userProfile = data;\r\n }\r\n\r\n setProfileData(key: any, value: any) {\r\n this.userProfile[key] = value;\r\n }\r\n\r\n getProfile() {\r\n return this.userProfile;\r\n }\r\n\r\n updateUserPhone(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_UPDATE_PHONE_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeaderJson })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n getPersonKBQ(): Observable {\r\n const inputData = {\r\n user: this.getUserInputData()\r\n };\r\n const url = this.rootUrl + Global.BASE_GET_PERSON_KBQ_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeaderJson })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n isUsernameExists(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_USERNAME_EXISTS_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeaderJson })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n changeUsername(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_CHANGE_USERNAME_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeaderJson })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n updateUserEmail(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_UPDATE_EMAIL_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeaderJson })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n updateUserAddress(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_UPDATE_ADDRESS_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeaderJson })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n updateContactPref(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_UPDATE_CONTACT_PREF_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeaderJson })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n switchUserAddress(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_SWITCH_ADDRESS_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeaderJson })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n deleteUserAddress(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_DELETE_ADDRESS_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeaderJson })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n isPwdUsed(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_PASSWORD_EXISTS_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeaderJson })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n changePassword(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_CHANGE_PASSWORD_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeaderJson })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n changeSecurityQuestions(inputData: any): Observable {\r\n const url = this.rootUrl + Global.BASE_SET_SECURITY_QUESTIONS_ENDPOINT;\r\n return this.http.post(url, inputData, { headers: this.reqHeaderJson })\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n setSecurityQns(data: any) {\r\n this.userSecQns = data ? data : [];\r\n sessionStorage.setItem('saq', JSON.stringify(data));\r\n }\r\n\r\n getSecurityQns() {\r\n this.userSecQns = this.userSecQns.length > 0 ? this.userSecQns : JSON.parse(sessionStorage.getItem('saq')) ?\r\n JSON.parse(sessionStorage.getItem('saq')) : [];\r\n return this.userSecQns;\r\n }\r\n\r\n showDarkFeature(value: string) {\r\n return this.appConfig.getDarkKeyValue(value);\r\n }\r\n\r\n getInfoIconValues(category: any, area: any): any {\r\n const infoIconValues = this.appConfig.getInfoIconValues();\r\n if (infoIconValues !== undefined && infoIconValues !== null) {\r\n return infoIconValues.filter((item: any) => item.category === category && item.area === area);\r\n }\r\n return null;\r\n }\r\n\r\n sendActivationLink(userName: any): Observable {\r\n const headers = new HttpHeaders();\r\n const formData = new FormData();\r\n formData.append('userName', userName);\r\n return this.http\r\n .post(\r\n this.rootUrl + Global.BASE_ACCOUNTS_ACTIVATION_EMAIL_ENDPOINT,\r\n formData, { headers }\r\n )\r\n .pipe(map((response: any) => response),\r\n catchError(err => this.handleError(err)));\r\n }\r\n\r\n encryptText(text: any): any {\r\n return CryptoJS.AES.encrypt(text, this.cryptoKey).toString();\r\n }\r\n\r\n decryptText(text: any): any {\r\n return CryptoJS.AES.decrypt(text, this.cryptoKey).toString(CryptoJS.enc.Utf8);\r\n }\r\n\r\n encrypt(msg: any, type: any) {\r\n const randomKey = Array.from(Array(16), () => Math.floor(Math.random() * 36).toString(36)).join('');\r\n var key = CryptoJS.enc.Utf8.parse(randomKey);\r\n const randomVector = Array.from(Array(16), () => Math.floor(Math.random() * 36).toString(36)).join('');\r\n var iv = CryptoJS.enc.Utf8.parse(randomVector);\r\n var encrypted = CryptoJS.AES.encrypt(CryptoJS.enc.Utf8.parse(msg), key,\r\n {\r\n keySize: 128 / 8,\r\n iv: iv,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.Pkcs7\r\n });\r\n const result = CryptoJS.enc.Base64.stringify(iv.concat(encrypted.ciphertext).concat(key));\r\n const encodedVal = encodeURIComponent(result);\r\n return type === 'post' ? result : encodedVal;\r\n }\r\n\r\n decryptData(encryptData: any, passPhrase: any): any {\r\n const key = CryptoJS.enc.Utf8.parse(passPhrase);\r\n const iv = CryptoJS.enc.Utf8.parse(passPhrase);\r\n const decrypted = CryptoJS.AES.decrypt(encryptData, key,\r\n {\r\n keySize: 128 / 8,\r\n iv,\r\n mode: CryptoJS.mode.CBC,\r\n padding: CryptoJS.pad.Pkcs7\r\n });\r\n return decrypted.toString(CryptoJS.enc.Utf8);\r\n }\r\n\r\n handleError(error: HttpErrorResponse) {\r\n return throwError(error || 'Server error');\r\n }\r\n}\r\n","import { Component, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { ReadConfigService } from '../shared/services/read-config.service';\n\n@Component({\n selector: 'app-user-exception',\n templateUrl: './user-exception.component.html',\n styleUrls: ['./user-exception.component.css']\n})\nexport class UserExceptionComponent implements OnInit {\n\n constructor(\n private router: Router,\n private readConfigService: ReadConfigService) { }\n\n ngOnInit() {\n this.redirectToLogIn();\n }\n\n redirectToLogIn() {\n const loginRedirectTime = this.readConfigService.getLoginRedirectTime();\n setTimeout(() => {\n sessionStorage.setItem('logout', 'true');\n this.router.navigate(['/login']);\n }, loginRedirectTime);\n }\n}\n","\n
\n
\n
\n
\n
\n
\n Some user error occured, please close this session.\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { UserService } from '../../shared/services/user.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { Router } from '@angular/router';\nimport { OAuthService } from 'angular-oauth2-oidc';\n\n@Component({\n selector: 'app-sign-in',\n templateUrl: './sign-in.component.html',\n styleUrls: ['./sign-in.component.css']\n})\nexport class SignInComponent implements OnInit {\n form: any;\n isLoginError = false;\n isFreezeError: boolean;\n errorMsg: any;\n constructor(private userService: UserService, private router: Router, private oauthService: OAuthService) { }\n\n\n ngOnInit() {\n const logout = sessionStorage.getItem('logout');\n if (logout === 'true') {\n this.logoff();\n } else {\n this.login();\n }\n }\n\n public login() {\n this.oauthService.initCodeFlow();\n // this.oauthService.initImplicitFlow();\n }\n\n public logoff() {\n sessionStorage.clear();\n // this.oauthService.logOut();\n window.location.reload();\n }\n\n // OnSubmit(userName, password) {\n // this.userService.login(userName.trim(), password).subscribe((data: any) => {\n // this.userService.setUserSession(data);\n // this.router.navigate(['/home']);\n // },\n // (err: HttpErrorResponse) => {\n // this.errorMsg = err.error.login_failure[0];\n // this.isLoginError = true;\n // });\n // }\n}\n","import { Component, OnInit } from '@angular/core';\nimport { NgForm } from '@angular/forms';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { User } from '../../models/user.model';\nimport { UserService } from '../../shared/services/user.service';\nimport { ToastMessageService } from '../../shared/services/toast-message.service';\n\n\n@Component({\n selector: 'app-sign-up',\n templateUrl: './sign-up.component.html',\n styleUrls: ['./sign-up.component.css']\n})\nexport class SignUpComponent implements OnInit {\n user: User;\n emailPattern = '^[a-z0-9._%+-]+@[a-z0-9.-]+\\.[a-z]{2,4}$';\n ssnPattern = '^\\d{3}\\-?\\d{2}\\-?\\d{4}$';\n roles: any[];\n ssnMask: '000-00-0000';\n constructor(private userService: UserService,\n private toastService: ToastMessageService) { }\n\n ngOnInit() {\n this.resetForm();\n }\n\n resetForm(form?: NgForm) {\n if (form != null) {\n form.reset();\n }\n this.user = {\n UserName: '',\n Password: '',\n Email: '',\n FirstName: '',\n LastName: ''\n };\n }\n\n OnSubmit(form: NgForm) {\n this.userService.registerUser(this.user)\n .subscribe((data: any) => {\n if (data.succeeded === true) {\n this.resetForm(form);\n this.toastService.getCustomErrorMessage('User registration successful');\n } else {\n this.toastService.getCustomErrorMessage(data.errors[0]);\n }\n }, (err: HttpErrorResponse) => {\n if (err.error.DuplicateUserName !== undefined) {\n this.toastService.getCustomErrorMessage(err.error.DuplicateUserName[0]);\n } else if (err.error[0] !== undefined) {\n this.toastService.getCustomErrorMessage(err.error[0].toString());\n } else {\n this.toastService.getCustomErrorMessage(err.error);\n }\n });\n }\n}\n","
\n
\n
\n \n \n
\n
\n \n Password\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { UserService } from '../../shared/services/user.service';\nimport { ReadConfigService } from '../../shared/services/read-config.service';\n\n@Component({\n selector: 'app-unactivated-user',\n templateUrl: './unactivated-user.component.html',\n styleUrls: ['./unactivated-user.component.css']\n})\nexport class UnactivatedUserComponent implements OnInit {\n displayMsg: any;\n userStatus: any;\n userName: any;\n emailTxt: any;\n userClaims: any;\n contactUsLink: any;\n constructor(private userService: UserService,\n private readConfigService: ReadConfigService) { }\n\n ngOnInit() {\n this.userClaims = this.userService.getUserClaims();\n this.userName = this.userClaims.userName;\n this.userStatus = this.userClaims.status;\n const config = this.readConfigService.getFooterLinks();\n this.contactUsLink = config.MainSiteLink + config.ContactLink;\n switch (this.userStatus) {\n case 'Suspended':\n this.displayMsg = this.readConfigService.getSuspendedUserText().Message;\n break;\n case 'Frozen':\n this.displayMsg = this.readConfigService.getFrozenUserText().Message;\n break;\n case 'Registered':\n this.userStatus = 'Not Activated';\n this.emailTxt = this.readConfigService.getEmailText().Message;\n break;\n }\n }\n}\n","\n
\n
\n
\n
\n
\n

User {{userStatus}}

\n
\n {{displayMsg}}contact us.\n
\n
\n
\n {{emailTxt}}contact us.\n
\n
\n
\n
\n
\n
\n
\n","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'app-user',\n templateUrl: './user.component.html',\n styleUrls: ['./user.component.css']\n})\nexport class UserComponent implements OnInit {\n isLoggedIn = false;\n constructor() { }\n\n ngOnInit() {\n window.scrollTo(0, 0);\n }\n}\n","
\n
\n
\n \n
\n
\n","import { Component, OnInit } from '@angular/core';\nimport { UserService } from '../shared/services/user.service';\nimport { MemberService } from '../shared/services/member.service';\nimport { HttpErrorResponse } from '@angular/common/http';\nimport { ToastMessageService } from '../shared/services/toast-message.service';\nimport { DatePipe } from '@angular/common';\nimport { Router } from '@angular/router';\nimport { ReadConfigService } from '../shared/services/read-config.service';\n\n@Component({\n selector: 'app-withdrawn-panel',\n templateUrl: './withdrawn-panel.component.html',\n styleUrls: ['./withdrawn-panel.component.css']\n})\nexport class WithdrawnPanelComponent implements OnInit {\n memberInfo: any;\n withdrawnMessage: any;\n docsLink: any;\n withdrawnMessage1: any;\n withdrawnMessage2: any;\n showAppOutage: boolean;\n appOutageMessage: any;\n futureOutageMessage: any;\n ten99RMessage: any;\n constructor(private router: Router,\n private userService: UserService,\n private memberService: MemberService,\n private readConfigService: ReadConfigService,\n private toastService: ToastMessageService) { }\n\n ngOnInit() {\n const selectedAccount = this.userService.getSelectedAccount();\n const userDetails = this.userService.getUserInputData();\n if (selectedAccount !== null) {\n this.memberService.getWithdrawnDetails(selectedAccount.uniqueId, selectedAccount.fiscalYear, userDetails).subscribe((data: any) => {\n if (data.statusCode === 200) {\n if (data.hideFeature) {\n this.showAppOutage = true;\n this.appOutageMessage = data.outageMessage;\n } else {\n this.futureOutageMessage = data.outageMessage;\n const message = this.readConfigService.getWithdrawnMessage();\n const message1 = message.message1;\n const datePipe = new DatePipe('en-US');\n this.withdrawnMessage1 = message1.replace('{0}', datePipe.transform(data.result.statusDate, 'MM/dd/yyyy'));\n this.withdrawnMessage2 = message.message2;\n const va1099RMessage = this.readConfigService.getVa1099RMessage();\n this.ten99RMessage = selectedAccount.role.toLowerCase() === 'withdrawn' && va1099RMessage ? va1099RMessage : null;\n }\n } else if (data.statusCode === 204) {\n this.futureOutageMessage = data.outageMessage;\n this.toastService.getCustomErrorMessage(data.message);\n }\n },\n (err: HttpErrorResponse) => {\n console.log(err);\n this.toastService.getErrorMessage();\n });\n }\n }\n\n goToMyDocs() {\n this.router.navigateByUrl('/documents');\n }\n}\n","\n
\n
\n
\n
\n \n
\n \n
\n \n
\n
\n
\n \n {{ten99RMessage}}\n \n
\n
\n
\n
\n {{withdrawnMessage1}}\n \"My Documents\"{{withdrawnMessage2}}\n
\n
\n
\n
\n
\n
\n \n
\n
","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * For easier debugging in development mode, you can import the following file\n * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`.\n *\n * This import should be commented out in production mode because it will have a negative impact\n * on performance if an error is thrown.\n */\n// import 'zone.js/plugins/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n","/* (ignored) */"],"names":["HttpHeaders","Global","AppConfigService","constructor","http","reqHeader","loadAppConfig","_this","_asyncToGenerator","data","get","headers","toPromise","appConfig","ServerDown","outageNoticeDetails","OutageOfflineText","sessionStorage","setItem","loadConfigSettings","then","loadScheduledMaintenance","err","console","log","loadDarkFeatures","_this2","url","API_URL","BASE_DARK_FEATURES_ENDPOINT","length","darkKeys","filter","item","feature","search","_this3","BASE_GET_SCHEDULED_MAINTANANCE_ENDPOINT","apps","loadInfoIconValues","_this4","removeItem","BASE_GET_INFOICON_VALUES_ENDPOINT","infoIconValues","_this5","BASE_GET_CONFIG_ENDPOINT","dbConfig","getConfig","getScheduledMaintenance","getInfoIconValues","getDbConfigValues","value","config","x","setting","reduce","obj","key","getDarkKeyValue","canEnable","undefined","some","element","enabled","i0","ɵɵinject","i1","HttpClient","factory","ɵfac","OutageNoticeComponent","JwksValidationHandler","Idle","ɵɵelementStart","ɵɵlistener","AppComponent_kendo_dialog_5_Template_kendo_dialog_close_0_listener","ɵɵrestoreView","_r2","ctx_r1","ɵɵnextContext","ɵɵresetView","logOutClose","ɵɵelement","AppComponent_kendo_dialog_5_Template_button_click_4_listener","ctx_r3","ɵɵtext","ɵɵelementEnd","AppComponent_kendo_dialog_5_Template_button_click_7_listener","ctx_r4","logout","ɵɵproperty","ɵɵadvance","ctx_r0","displayMsg","ɵɵsanitizeHtml","AppComponent","oauthService","readConfigService","router","appInsightsService","title","displayTime","googleAnalyticsKey","GA_ID","outageMethodTimeout","OutageMethodTimeout","appendGaTrackingCode","verifyScheduledOutage","ngOnInit","logPageView","openLogOut","idleTimeout","getAppIdleTimeout","idle","whenNotInteractive","within","do","logOutConfirm","start","hasValidAccessToken","timeLeft","staticMsg","userTimeOut","i","timer","setTimeout","minutes","Math","floor","seconds","slice","replace","clear","navigate","gaScript","document","createElement","setAttribute","gaScript2","innerText","documentElement","firstChild","appendChild","ex","error","getItem","JSON","parse","loadingIcon","outageDetails","getOutageScheduledDetails","showOutage","push","path","component","redirectTo","pathMatch","saCallback","removeCookies","res","cookie","multiple","split","saConfig","getSAConfig","authUrl","AuthUrl","originUrl","OriginUrl","authScope","AuthScope","clientInfo","ClientId","clientSecret","ClientSecret","tokenUrl","TokenEndPoint","authConfig","issuer","redirectUri","tokenEndpoint","responseType","dummyClientSecret","clientId","scope","configure","tokenValidationHandler","loadDiscoveryDocument","tryLogin","disableOAuth2StateCheck","ɵɵdirectiveInject","OAuthService","i2","i3","ReadConfigService","i4","Router","i5","AppInsightService","selectors","decls","vars","consts","template","AppComponent_Template","rf","ctx","ɵɵtemplate","AppComponent_kendo_dialog_5_Template"],"sourceRoot":"webpack:///","x_google_ignoreList":[]}